sino-bc-cli 1.0.7 → 1.2.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/README.md +30 -22
- package/dist/SKILL.md +44 -23
- package/dist/commands/api-endpoint.command.d.ts +58 -0
- package/dist/commands/{bc-mcp.command.js → api-endpoint.command.js} +31 -30
- package/dist/commands/api-endpoint.command.js.map +1 -0
- package/dist/commands/bc-api.command.d.ts +20 -0
- package/dist/commands/bc-api.command.js +30 -0
- package/dist/commands/bc-api.command.js.map +1 -0
- package/dist/commands/ic-api.command.d.ts +19 -0
- package/dist/commands/ic-api.command.js +29 -0
- package/dist/commands/ic-api.command.js.map +1 -0
- package/dist/commands/index.d.ts +3 -3
- package/dist/commands/index.js +11 -13
- package/dist/commands/index.js.map +1 -1
- package/dist/constants/api-doc.js +3 -3
- package/dist/constants/api-doc.js.map +1 -1
- package/dist/constants/biz-line-api-doc.d.ts +19 -0
- package/dist/constants/biz-line-api-doc.js +353 -0
- package/dist/constants/biz-line-api-doc.js.map +1 -0
- package/dist/constants/gateway.d.ts +1 -1
- package/dist/constants/gateway.js +5 -5
- package/dist/constants/gateway.js.map +1 -1
- package/dist/constants/index.d.ts +3 -13
- package/dist/constants/index.js +7 -14
- package/dist/constants/index.js.map +1 -1
- package/dist/core/cli-app.js +5 -7
- package/dist/core/cli-app.js.map +1 -1
- package/dist/core/command-registry.d.ts +2 -2
- package/dist/core/command-registry.js +2 -2
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +2 -3
- package/dist/commands/bc-mcp.command.d.ts +0 -53
- package/dist/commands/bc-mcp.command.js.map +0 -1
- package/dist/commands/homepage.command.d.ts +0 -19
- package/dist/commands/homepage.command.js +0 -96
- package/dist/commands/homepage.command.js.map +0 -1
- package/dist/commands/nexus-swagger.command.d.ts +0 -19
- package/dist/commands/nexus-swagger.command.js +0 -95
- package/dist/commands/nexus-swagger.command.js.map +0 -1
package/README.md
CHANGED
|
@@ -91,7 +91,7 @@ sino-bc-cli /init
|
|
|
91
91
|
### ⑥ 免安装临时执行
|
|
92
92
|
|
|
93
93
|
```bash
|
|
94
|
-
npx sino-bc-cli
|
|
94
|
+
npx sino-bc-cli --help
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
注意 `npx` 方式不会持久注册 Agent 技能,需要技能能力时仍请走全局安装 + `/init`。
|
|
@@ -140,8 +140,10 @@ sino-bc-cli/
|
|
|
140
140
|
│ │
|
|
141
141
|
│ ├── commands/ # 📦 命令实现层(每命令一个文件,可独立扩展)
|
|
142
142
|
│ │ ├── index.ts # 命令批量注册入口
|
|
143
|
-
│ │ ├──
|
|
144
|
-
│ │
|
|
143
|
+
│ │ ├── init.command.ts # /init 命令实现(注册 Agent 技能)
|
|
144
|
+
│ │ ├── api-endpoint.command.ts # 接口调用类命令基类(选择接口 → 发起调用 → 打印响应)
|
|
145
|
+
│ │ ├── ic-api.command.ts # /ic-api 命令实现(调用 iCenter 接口地址)
|
|
146
|
+
│ │ └── bc-api.command.ts # /bc-api 命令实现(调用业务线查询 / 业务线策略接口)
|
|
145
147
|
│ │
|
|
146
148
|
│ ├── utils/ # 🛠 工具类层(高内聚的可复用工具)
|
|
147
149
|
│ │ ├── index.ts # 工具模块统一导出
|
|
@@ -155,7 +157,7 @@ sino-bc-cli/
|
|
|
155
157
|
│ │ └── index.ts # 全局接口、枚举定义(ICommand、LogLevel 等)
|
|
156
158
|
│ │
|
|
157
159
|
│ └── constants/ # 🔧 常量配置层
|
|
158
|
-
│ └── index.ts # CLI
|
|
160
|
+
│ └── index.ts # CLI 配置、命令名称、默认值
|
|
159
161
|
│
|
|
160
162
|
├── dist/ # 📤 编译输出目录(编译后自动生成)
|
|
161
163
|
│ └── ... # JavaScript 编译产物 + 类型声明 + SourceMap
|
|
@@ -234,8 +236,8 @@ npm run dev -- [参数]
|
|
|
234
236
|
# 示例:查看帮助
|
|
235
237
|
npm run dev -- --help
|
|
236
238
|
|
|
237
|
-
# 示例:执行 /
|
|
238
|
-
npm run dev -- /
|
|
239
|
+
# 示例:执行 /ic-api 命令
|
|
240
|
+
npm run dev -- /ic-api
|
|
239
241
|
```
|
|
240
242
|
|
|
241
243
|
### 5. 全局安装(推荐)
|
|
@@ -256,7 +258,8 @@ npm i sino-bc-cli -g
|
|
|
256
258
|
|
|
257
259
|
```bash
|
|
258
260
|
sino-bc-cli --help
|
|
259
|
-
sino-bc-cli /
|
|
261
|
+
sino-bc-cli /init
|
|
262
|
+
sino-bc-cli /ic-api
|
|
260
263
|
```
|
|
261
264
|
|
|
262
265
|
`npm i sino-bc-cli -g` 完成后会自动执行 `/init`,把 `SKILL.md` 写到用户主目录的 Agent 技能目录(`~/.agents/skills/sino-bc-cli` 等)。飞书豆包工作:技能·连接器 → 管理 → **本地** → 刷新。若未出现,手动执行:
|
|
@@ -273,10 +276,11 @@ sino-bc-cli /init
|
|
|
273
276
|
|
|
274
277
|
### 可用命令一览
|
|
275
278
|
|
|
276
|
-
| 命令
|
|
277
|
-
|
|
|
278
|
-
| `/
|
|
279
|
-
| `/
|
|
279
|
+
| 命令 | 说明 |
|
|
280
|
+
| :-------- | :-------------------------------------------------------------------------------------------- |
|
|
281
|
+
| `/init` | 将本包 `SKILL.md` 复制到用户主目录下的 Agent 技能目录,供飞书豆包工作 / Cursor / Claude / Codex 自动识别 |
|
|
282
|
+
| `/ic-api` | 交互选择并调用 iCenter 接口地址;`ENV` 默认 `prod`,`API_KEY` 默认使用网关常量 |
|
|
283
|
+
| `/bc-api` | 交互选择并调用业务线查询 / 业务线策略接口(共 22 个,路径统一带 `/sino-opti-hive` 前缀) |
|
|
280
284
|
|
|
281
285
|
### 全局选项
|
|
282
286
|
|
|
@@ -300,31 +304,35 @@ sino-bc-cli --help
|
|
|
300
304
|
sino-bc-cli -h
|
|
301
305
|
```
|
|
302
306
|
|
|
303
|
-
#### ②
|
|
307
|
+
#### ② 调用 iCenter 接口地址
|
|
304
308
|
|
|
305
309
|
```bash
|
|
306
|
-
sino-bc-cli /
|
|
310
|
+
sino-bc-cli /ic-api
|
|
311
|
+
sino-bc-cli /ic-api test
|
|
307
312
|
```
|
|
308
313
|
|
|
309
|
-
|
|
314
|
+
执行效果:交互选择接口后,向对应环境的 iCenter 接口地址发起请求。
|
|
310
315
|
|
|
311
|
-
#### ③
|
|
316
|
+
#### ③ 调用业务线查询 / 业务线策略接口
|
|
312
317
|
|
|
313
318
|
```bash
|
|
314
|
-
sino-bc-cli /
|
|
319
|
+
sino-bc-cli /bc-api
|
|
320
|
+
sino-bc-cli /bc-api test
|
|
315
321
|
```
|
|
316
322
|
|
|
317
|
-
|
|
323
|
+
执行效果:按「业务线查询(5 个)」「业务线策略(17 个)」两组列出接口,输入序号后向对应环境网关发起请求。所有路径统一带 `/sino-opti-hive` 路由前缀,接口清单见 [`src/api-doc/README.md`](./src/api-doc/README.md)。
|
|
324
|
+
|
|
325
|
+
> ⚠️ 业务线策略组含新建 / 编辑 / 删除等写操作接口,会按文档示例请求体直接发起调用,执行前请确认环境。
|
|
318
326
|
|
|
319
327
|
#### ④ 启用 Debug 模式运行
|
|
320
328
|
|
|
321
329
|
```bash
|
|
322
|
-
sino-bc-cli --debug /
|
|
330
|
+
sino-bc-cli --debug /ic-api
|
|
323
331
|
# 或使用短选项
|
|
324
|
-
sino-bc-cli -d /
|
|
332
|
+
sino-bc-cli -d /ic-api
|
|
325
333
|
```
|
|
326
334
|
|
|
327
|
-
Debug
|
|
335
|
+
Debug 模式会输出详细的日志,包括参数解析、命令注册、接口调用过程等信息,便于排查问题。
|
|
328
336
|
|
|
329
337
|
---
|
|
330
338
|
|
|
@@ -396,8 +404,8 @@ export class ExampleCommand implements ICommand {
|
|
|
396
404
|
import { ExampleCommand } from "./example.command"; // 新增导入
|
|
397
405
|
|
|
398
406
|
export const commands: ICommand[] = [
|
|
399
|
-
new
|
|
400
|
-
new
|
|
407
|
+
new InitCommand(),
|
|
408
|
+
new IcApiCommand(),
|
|
401
409
|
new ExampleCommand(), // 新增注册
|
|
402
410
|
];
|
|
403
411
|
```
|
package/dist/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: sino-bc-cli
|
|
3
3
|
description: >
|
|
4
4
|
BeyondClick CLI 项目说明、命令用法、扩展新命令与 npm 发布/回滚步骤。
|
|
5
|
-
Use when 开发或使用 sino-bc-cli、执行 /init /
|
|
5
|
+
Use when 开发或使用 sino-bc-cli、执行 /init /ic-api /bc-api、
|
|
6
6
|
把技能注册到飞书豆包工作 / Cursor / Claude / Codex、扩展命令、
|
|
7
7
|
npm publish、release:patch/minor/major、切 registry、排查 ENEEDAUTH/E403/EPUBLISHCONFLICT,
|
|
8
8
|
或发布到私有 Nexus / 企业私服。
|
|
@@ -116,7 +116,7 @@ npm run rebuild # 清理后重新编译
|
|
|
116
116
|
|
|
117
117
|
```bash
|
|
118
118
|
npm run dev -- --help
|
|
119
|
-
npm run dev -- /
|
|
119
|
+
npm run dev -- /ic-api
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
### 全局安装(推荐)
|
|
@@ -132,8 +132,8 @@ npm i sino-bc-cli -g
|
|
|
132
132
|
|
|
133
133
|
```bash
|
|
134
134
|
sino-bc-cli --help
|
|
135
|
-
sino-bc-cli /homepage
|
|
136
135
|
sino-bc-cli /init
|
|
136
|
+
sino-bc-cli /ic-api
|
|
137
137
|
```
|
|
138
138
|
|
|
139
139
|
`npm i -g` / `npm link` 后的 postinstall 会自动执行 `/init`,把 `SKILL.md` 写到 `~/.agents/skills/sino-bc-cli/`(以及 Codex / Cursor / Claude 目录)。飞书豆包工作:技能·连接器 → 管理 → **本地** → 刷新。未出现时再手动跑一遍 `/init`。
|
|
@@ -156,12 +156,11 @@ npm run rebuild # clean + tsc
|
|
|
156
156
|
|
|
157
157
|
### 可用命令
|
|
158
158
|
|
|
159
|
-
| 命令
|
|
160
|
-
|
|
|
161
|
-
| `/init`
|
|
162
|
-
| `/
|
|
163
|
-
| `/
|
|
164
|
-
| `/bc-mcp` | 交互选择并调用 iCenter MCP 接口;`ENV` 默认 `prod`,`API_KEY` 默认使用网关常量 |
|
|
159
|
+
| 命令 | 说明 |
|
|
160
|
+
| :-------- | :----------------------------------------------------------------------------------------------------------------- |
|
|
161
|
+
| `/init` | 将本包 `SKILL.md` 复制到用户主目录下的 Agent 技能目录,供飞书豆包工作 / Cursor / Claude / Codex 自动识别 |
|
|
162
|
+
| `/ic-api` | 交互选择并调用 iCenter 接口地址;`ENV` 默认 `prod`,`API_KEY` 默认使用网关常量 |
|
|
163
|
+
| `/bc-api` | 交互选择并调用业务线查询(5 个)/ 业务线策略(17 个)接口;路径统一带 `/sino-opti-hive` 前缀,参数同 `/ic-api` |
|
|
165
164
|
|
|
166
165
|
### 全局选项
|
|
167
166
|
|
|
@@ -177,19 +176,18 @@ npm run rebuild # clean + tsc
|
|
|
177
176
|
sino-bc-cli --version
|
|
178
177
|
sino-bc-cli --help
|
|
179
178
|
sino-bc-cli /init
|
|
180
|
-
sino-bc-cli /
|
|
181
|
-
sino-bc-cli /
|
|
182
|
-
sino-bc-cli /bc-
|
|
183
|
-
sino-bc-cli /bc-
|
|
184
|
-
sino-bc-cli --debug /
|
|
185
|
-
sino-bc-cli -d /
|
|
179
|
+
sino-bc-cli /ic-api
|
|
180
|
+
sino-bc-cli /ic-api test
|
|
181
|
+
sino-bc-cli /bc-api
|
|
182
|
+
sino-bc-cli /bc-api test
|
|
183
|
+
sino-bc-cli --debug /ic-api
|
|
184
|
+
sino-bc-cli -d /ic-api
|
|
186
185
|
```
|
|
187
186
|
|
|
188
187
|
- `/init`:把 `SKILL.md` 写到 `~/.agents/skills/sino-bc-cli/`(以及 Codex / Cursor / Claude 对应目录)。`npm i sino-bc-cli -g` 的 postinstall 会自动跑一遍;飞书豆包工作请到「技能·连接器 → 管理 → 本地」刷新。Windows 使用 `%USERPROFILE%`,macOS / Linux 使用 `$HOME`。
|
|
189
|
-
|
|
190
|
-
- `/
|
|
191
|
-
-
|
|
192
|
-
- Debug 会输出参数解析、命令注册、URL 打开过程
|
|
188
|
+
- `/ic-api`:交互选择并调用 iCenter 接口地址(默认 `prod` + 内置 API Key)
|
|
189
|
+
- `/bc-api`:交互选择并调用 sino-opti-hive 业务线接口,按「业务线查询 / 业务线策略」分组展示。接口清单在 `src/constants/biz-line-api-doc.ts`,文档在 `src/api-doc/biz-line-query.md`、`src/api-doc/biz-line-strategy.md`。所有路径带 `/sino-opti-hive` 前缀;策略组含写操作接口,执行前先确认环境
|
|
190
|
+
- Debug 会输出参数解析、命令注册、接口调用过程
|
|
193
191
|
|
|
194
192
|
### 跨平台兼容性
|
|
195
193
|
|
|
@@ -230,14 +228,37 @@ export class ExampleCommand implements ICommand {
|
|
|
230
228
|
import { ExampleCommand } from "./example.command";
|
|
231
229
|
|
|
232
230
|
export const commands: ICommand[] = [
|
|
233
|
-
new
|
|
234
|
-
new
|
|
231
|
+
new InitCommand(),
|
|
232
|
+
new IcApiCommand(),
|
|
235
233
|
new ExampleCommand(),
|
|
236
234
|
];
|
|
237
235
|
```
|
|
238
236
|
|
|
239
237
|
完成后 `npm run build`,即可使用 `sino-bc-cli /example`。
|
|
240
238
|
|
|
239
|
+
### 扩展「接口调用类」命令
|
|
240
|
+
|
|
241
|
+
新增一组接口调用命令(如 `/ic-api`、`/bc-api`)时,不要重复实现调用流程,继承 `BaseApiEndpointCommand` 即可复用「解析环境与 API Key → 分组展示接口 → 发起调用 → 打印响应」:
|
|
242
|
+
|
|
243
|
+
1. 在 `src/constants/` 下新建接口清单文件,导出 `IApiDocEndpoint[]`(`group` 字段用于分组展示)
|
|
244
|
+
2. 在 `src/commands/` 下继承 `BaseApiEndpointCommand`,只声明 `name`、`description`、`usage`、`endpoints`、`docSource`
|
|
245
|
+
3. 在 `src/constants/index.ts` 的 `COMMAND_NAMES` 中登记命令名并导出清单,再加入 `commands` 数组
|
|
246
|
+
|
|
247
|
+
```typescript
|
|
248
|
+
// src/commands/example-api.command.ts
|
|
249
|
+
import { IApiDocEndpoint } from "../types";
|
|
250
|
+
import { COMMAND_NAMES, EXAMPLE_APIS } from "../constants";
|
|
251
|
+
import { BaseApiEndpointCommand } from "./api-endpoint.command";
|
|
252
|
+
|
|
253
|
+
export class ExampleApiCommand extends BaseApiEndpointCommand {
|
|
254
|
+
public readonly name: string = COMMAND_NAMES.EXAMPLE_API;
|
|
255
|
+
public readonly description: string = "交互选择并调用示例接口";
|
|
256
|
+
public readonly usage: string = `/${COMMAND_NAMES.EXAMPLE_API} test`;
|
|
257
|
+
protected readonly endpoints: IApiDocEndpoint[] = EXAMPLE_APIS;
|
|
258
|
+
protected readonly docSource: string = "src/api-doc/example.md";
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
241
262
|
---
|
|
242
263
|
|
|
243
264
|
## npm 发布
|
|
@@ -378,7 +399,7 @@ npm view sino-bc-cli version
|
|
|
378
399
|
```powershell
|
|
379
400
|
npx sino-bc-cli@latest --version
|
|
380
401
|
npx sino-bc-cli@latest --help
|
|
381
|
-
# npx sino-bc-cli@latest /
|
|
402
|
+
# npx sino-bc-cli@latest /ic-api
|
|
382
403
|
```
|
|
383
404
|
|
|
384
405
|
**③ 浏览器打开包页**,确认 README 渲染、Version / License / Keywords、Dependencies(lodash、dayjs、axios、crypto-js、chalk、commander、open)
|
|
@@ -468,7 +489,7 @@ npm deprecate sino-bc-cli@* "此包已废弃,请使用 @newscope/sino-bc-cli"
|
|
|
468
489
|
| 发版白名单 files / publishConfig | `package.json` 的 `files` + `publishConfig` |
|
|
469
490
|
| TypeScript 编译配置 | `tsconfig.json` |
|
|
470
491
|
| CLI 入口(带 shebang) | `src/index.ts` → 编译后 `dist/index.js` |
|
|
471
|
-
|
|
|
492
|
+
| 网关 / 命令常量 | `src/constants/index.ts`、`src/constants/gateway.ts` |
|
|
472
493
|
|
|
473
494
|
---
|
|
474
495
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { IApiDocEndpoint, ICommand, EnvName } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* 接口调用类命令基类
|
|
4
|
+
* 统一封装「解析环境与 API Key → 交互选择接口 → 按网关地址发起调用 → 打印响应」流程
|
|
5
|
+
* 子类只需提供命令名、描述与可调用接口清单
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class BaseApiEndpointCommand implements ICommand {
|
|
8
|
+
/** 命令名称 */
|
|
9
|
+
abstract readonly name: string;
|
|
10
|
+
/** 命令描述 */
|
|
11
|
+
abstract readonly description: string;
|
|
12
|
+
/** 命令使用示例 */
|
|
13
|
+
abstract readonly usage: string;
|
|
14
|
+
/** 可调用接口清单 */
|
|
15
|
+
protected abstract readonly endpoints: IApiDocEndpoint[];
|
|
16
|
+
/** 接口清单来源说明,展示在选择列表标题处 */
|
|
17
|
+
protected abstract readonly docSource: string;
|
|
18
|
+
/**
|
|
19
|
+
* 命令执行函数
|
|
20
|
+
* @param args 位置参数:[ENV] [API_KEY]
|
|
21
|
+
* @param options 解析后的选项,支持 --env / --api-key
|
|
22
|
+
*/
|
|
23
|
+
execute(args: string[], options?: Record<string, unknown>): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* 解析环境参数,优先级:--env > 位置参数中的合法 ENV > 默认 prod
|
|
26
|
+
*/
|
|
27
|
+
protected resolveEnv(args: string[], options?: Record<string, unknown>): EnvName;
|
|
28
|
+
/**
|
|
29
|
+
* 解析 API Key,优先级:--api-key > 非 ENV 的位置参数 > 默认值
|
|
30
|
+
*/
|
|
31
|
+
protected resolveApiKey(args: string[], options?: Record<string, unknown>): string;
|
|
32
|
+
/**
|
|
33
|
+
* 从 options 中按候选 key 取第一个有效值
|
|
34
|
+
*/
|
|
35
|
+
protected pickOption(options: Record<string, unknown> | undefined, keys: string[]): unknown;
|
|
36
|
+
/**
|
|
37
|
+
* 打印接口清单并让用户选择
|
|
38
|
+
* 接口带 group 时按分组分节展示,序号仍为全局连续编号
|
|
39
|
+
*/
|
|
40
|
+
protected selectApi(): Promise<IApiDocEndpoint>;
|
|
41
|
+
/**
|
|
42
|
+
* 打印即将发起的请求概要
|
|
43
|
+
*/
|
|
44
|
+
protected printRequestPreview(api: IApiDocEndpoint, url: string, apiKey: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* 按接口方法发起请求并打印响应
|
|
47
|
+
*/
|
|
48
|
+
protected callApi(api: IApiDocEndpoint, url: string, apiKey: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* 将响应格式化为可读 JSON 文本
|
|
51
|
+
* 部分接口可能返回 text/plain,需兜底解析
|
|
52
|
+
*/
|
|
53
|
+
protected formatResponse(data: unknown): string;
|
|
54
|
+
/**
|
|
55
|
+
* 统一处理 HTTP 失败:优先打印服务端响应体
|
|
56
|
+
*/
|
|
57
|
+
protected handleRequestError(error: unknown): never;
|
|
58
|
+
}
|
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.
|
|
39
|
+
exports.BaseApiEndpointCommand = void 0;
|
|
40
40
|
const _ = __importStar(require("lodash"));
|
|
41
41
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
42
42
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -45,29 +45,18 @@ const types_1 = require("../types");
|
|
|
45
45
|
const utils_1 = require("../utils");
|
|
46
46
|
const constants_1 = require("../constants");
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
48
|
+
* 接口调用类命令基类
|
|
49
|
+
* 统一封装「解析环境与 API Key → 交互选择接口 → 按网关地址发起调用 → 打印响应」流程
|
|
50
|
+
* 子类只需提供命令名、描述与可调用接口清单
|
|
51
51
|
*/
|
|
52
|
-
class
|
|
53
|
-
/** 命令名称 */
|
|
54
|
-
name = constants_1.COMMAND_NAMES.BC_MCP;
|
|
55
|
-
/** 命令描述 */
|
|
56
|
-
description = '交互选择并调用 iCenter MCP 接口(请求体默认使用文档示例)';
|
|
57
|
-
/** 命令使用示例 */
|
|
58
|
-
usage = `
|
|
59
|
-
/${constants_1.COMMAND_NAMES.BC_MCP}
|
|
60
|
-
/${constants_1.COMMAND_NAMES.BC_MCP} test
|
|
61
|
-
/${constants_1.COMMAND_NAMES.BC_MCP} prod sk-your-api-key
|
|
62
|
-
sino-bc-cli /${constants_1.COMMAND_NAMES.BC_MCP} --env=pre --api-key=sk-xxx
|
|
63
|
-
`;
|
|
52
|
+
class BaseApiEndpointCommand {
|
|
64
53
|
/**
|
|
65
54
|
* 命令执行函数
|
|
66
55
|
* @param args 位置参数:[ENV] [API_KEY]
|
|
67
56
|
* @param options 解析后的选项,支持 --env / --api-key
|
|
68
57
|
*/
|
|
69
58
|
async execute(args, options) {
|
|
70
|
-
utils_1.logger.debug(`[
|
|
59
|
+
utils_1.logger.debug(`[${this.name}] 命令执行开始,参数: ${JSON.stringify(args)}`);
|
|
71
60
|
const startTime = (0, dayjs_1.default)();
|
|
72
61
|
const env = this.resolveEnv(args, options);
|
|
73
62
|
const apiKey = this.resolveApiKey(args, options);
|
|
@@ -78,7 +67,7 @@ class BcMcpCommand {
|
|
|
78
67
|
this.printRequestPreview(api, url, apiKey);
|
|
79
68
|
await this.callApi(api, url, apiKey);
|
|
80
69
|
const durationSec = _.round((0, dayjs_1.default)().diff(startTime) / 1000, 2);
|
|
81
|
-
utils_1.logger.debug(`[
|
|
70
|
+
utils_1.logger.debug(`[${this.name}] 命令执行完成,耗时: ${durationSec} 秒`);
|
|
82
71
|
}
|
|
83
72
|
/**
|
|
84
73
|
* 解析环境参数,优先级:--env > 位置参数中的合法 ENV > 默认 prod
|
|
@@ -123,19 +112,31 @@ class BcMcpCommand {
|
|
|
123
112
|
}
|
|
124
113
|
/**
|
|
125
114
|
* 打印接口清单并让用户选择
|
|
115
|
+
* 接口带 group 时按分组分节展示,序号仍为全局连续编号
|
|
126
116
|
*/
|
|
127
117
|
async selectApi() {
|
|
128
118
|
process.stdout.write('\n');
|
|
129
|
-
process.stdout.write(chalk_1.default.bold('📦 可调用接口') + chalk_1.default.gray(
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
119
|
+
process.stdout.write(chalk_1.default.bold('📦 可调用接口') + chalk_1.default.gray(`(来源: ${this.docSource})`) + '\n\n');
|
|
120
|
+
// 按 group 分组展示;无 group 的接口归入一个匿名分组
|
|
121
|
+
const grouped = _.groupBy(this.endpoints, (api) => api.group ?? '');
|
|
122
|
+
let serialNo = 0;
|
|
123
|
+
_.forEach(grouped, (apis, group) => {
|
|
124
|
+
if (!_.isEmpty(group)) {
|
|
125
|
+
process.stdout.write(chalk_1.default.bold.blueBright(` ── ${group} (${apis.length}) ──`) + '\n\n');
|
|
126
|
+
}
|
|
127
|
+
_.forEach(apis, (api) => {
|
|
128
|
+
serialNo += 1;
|
|
129
|
+
const serial = chalk_1.default.greenBright(` ${serialNo}.`);
|
|
130
|
+
const title = chalk_1.default.whiteBright(` ${api.displayName}`);
|
|
131
|
+
const meta = chalk_1.default.gray(` ${api.method} ${api.path}`);
|
|
132
|
+
const desc = chalk_1.default.white(` ${api.description}`);
|
|
133
|
+
process.stdout.write(`${serial}${title}\n${meta}\n${desc}\n\n`);
|
|
134
|
+
});
|
|
136
135
|
});
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
// 分组仅影响展示顺序,需按同样顺序取回选中项
|
|
137
|
+
const ordered = _.flatMap(grouped, (apis) => apis);
|
|
138
|
+
const selectedIndex = await utils_1.PromptUtils.selectIndex(ordered.length);
|
|
139
|
+
return ordered[selectedIndex];
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
141
142
|
* 打印即将发起的请求概要
|
|
@@ -179,7 +180,7 @@ class BcMcpCommand {
|
|
|
179
180
|
}
|
|
180
181
|
/**
|
|
181
182
|
* 将响应格式化为可读 JSON 文本
|
|
182
|
-
*
|
|
183
|
+
* 部分接口可能返回 text/plain,需兜底解析
|
|
183
184
|
*/
|
|
184
185
|
formatResponse(data) {
|
|
185
186
|
if (_.isString(data)) {
|
|
@@ -204,5 +205,5 @@ class BcMcpCommand {
|
|
|
204
205
|
throw error instanceof Error ? error : new Error(String(error));
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
|
-
exports.
|
|
208
|
-
//# sourceMappingURL=
|
|
208
|
+
exports.BaseApiEndpointCommand = BaseApiEndpointCommand;
|
|
209
|
+
//# sourceMappingURL=api-endpoint.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-endpoint.command.js","sourceRoot":"","sources":["../../src/commands/api-endpoint.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IApiDocEndpoint } from '../types';
|
|
2
|
+
import { BaseApiEndpointCommand } from './api-endpoint.command';
|
|
3
|
+
/**
|
|
4
|
+
* 调用 sino-opti-hive 业务线接口命令
|
|
5
|
+
* 命令名称: /bc-api
|
|
6
|
+
* 功能: 交互选择「业务线查询 / 业务线策略」接口,向对应接口地址发起调用
|
|
7
|
+
* 所有路径统一带 /sino-opti-hive 网关路由前缀
|
|
8
|
+
*/
|
|
9
|
+
export declare class BcApiCommand extends BaseApiEndpointCommand {
|
|
10
|
+
/** 命令名称 */
|
|
11
|
+
readonly name: string;
|
|
12
|
+
/** 命令描述 */
|
|
13
|
+
readonly description: string;
|
|
14
|
+
/** 命令使用示例 */
|
|
15
|
+
readonly usage: string;
|
|
16
|
+
/** 可调用接口清单 */
|
|
17
|
+
protected readonly endpoints: IApiDocEndpoint[];
|
|
18
|
+
/** 接口清单来源说明 */
|
|
19
|
+
protected readonly docSource: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BcApiCommand = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const api_endpoint_command_1 = require("./api-endpoint.command");
|
|
6
|
+
/**
|
|
7
|
+
* 调用 sino-opti-hive 业务线接口命令
|
|
8
|
+
* 命令名称: /bc-api
|
|
9
|
+
* 功能: 交互选择「业务线查询 / 业务线策略」接口,向对应接口地址发起调用
|
|
10
|
+
* 所有路径统一带 /sino-opti-hive 网关路由前缀
|
|
11
|
+
*/
|
|
12
|
+
class BcApiCommand extends api_endpoint_command_1.BaseApiEndpointCommand {
|
|
13
|
+
/** 命令名称 */
|
|
14
|
+
name = constants_1.COMMAND_NAMES.BC_API;
|
|
15
|
+
/** 命令描述 */
|
|
16
|
+
description = '交互选择并调用业务线查询 / 业务线策略接口(请求体默认使用文档示例)';
|
|
17
|
+
/** 命令使用示例 */
|
|
18
|
+
usage = `
|
|
19
|
+
/${constants_1.COMMAND_NAMES.BC_API}
|
|
20
|
+
/${constants_1.COMMAND_NAMES.BC_API} test
|
|
21
|
+
/${constants_1.COMMAND_NAMES.BC_API} prod sk-your-api-key
|
|
22
|
+
sino-bc-cli /${constants_1.COMMAND_NAMES.BC_API} --env=pre --api-key=sk-xxx
|
|
23
|
+
`;
|
|
24
|
+
/** 可调用接口清单 */
|
|
25
|
+
endpoints = constants_1.BIZ_LINE_APIS;
|
|
26
|
+
/** 接口清单来源说明 */
|
|
27
|
+
docSource = 'src/api-doc/biz-line-*.md';
|
|
28
|
+
}
|
|
29
|
+
exports.BcApiCommand = BcApiCommand;
|
|
30
|
+
//# sourceMappingURL=bc-api.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bc-api.command.js","sourceRoot":"","sources":["../../src/commands/bc-api.command.ts"],"names":[],"mappings":";;;AACA,4CAA4D;AAC5D,iEAAgE;AAEhE;;;;;GAKG;AACH,MAAa,YAAa,SAAQ,6CAAsB;IACtD,WAAW;IACK,IAAI,GAAW,yBAAa,CAAC,MAAM,CAAC;IAEpD,WAAW;IACK,WAAW,GAAW,qCAAqC,CAAC;IAE5E,aAAa;IACG,KAAK,GAAW;OAC3B,yBAAa,CAAC,MAAM;OACpB,yBAAa,CAAC,MAAM;OACpB,yBAAa,CAAC,MAAM;mBACR,yBAAa,CAAC,MAAM;GACpC,CAAC;IAEF,cAAc;IACK,SAAS,GAAsB,yBAAa,CAAC;IAEhE,eAAe;IACI,SAAS,GAAW,2BAA2B,CAAC;CACpE;AApBD,oCAoBC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IApiDocEndpoint } from '../types';
|
|
2
|
+
import { BaseApiEndpointCommand } from './api-endpoint.command';
|
|
3
|
+
/**
|
|
4
|
+
* 调用 iCenter 接口地址命令
|
|
5
|
+
* 命令名称: /ic-api
|
|
6
|
+
* 功能: 交互选择 api-doc 中的 iCenter 接口,向对应接口地址发起调用
|
|
7
|
+
*/
|
|
8
|
+
export declare class IcApiCommand extends BaseApiEndpointCommand {
|
|
9
|
+
/** 命令名称 */
|
|
10
|
+
readonly name: string;
|
|
11
|
+
/** 命令描述 */
|
|
12
|
+
readonly description: string;
|
|
13
|
+
/** 命令使用示例 */
|
|
14
|
+
readonly usage: string;
|
|
15
|
+
/** 可调用接口清单 */
|
|
16
|
+
protected readonly endpoints: IApiDocEndpoint[];
|
|
17
|
+
/** 接口清单来源说明 */
|
|
18
|
+
protected readonly docSource: string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IcApiCommand = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const api_endpoint_command_1 = require("./api-endpoint.command");
|
|
6
|
+
/**
|
|
7
|
+
* 调用 iCenter 接口地址命令
|
|
8
|
+
* 命令名称: /ic-api
|
|
9
|
+
* 功能: 交互选择 api-doc 中的 iCenter 接口,向对应接口地址发起调用
|
|
10
|
+
*/
|
|
11
|
+
class IcApiCommand extends api_endpoint_command_1.BaseApiEndpointCommand {
|
|
12
|
+
/** 命令名称 */
|
|
13
|
+
name = constants_1.COMMAND_NAMES.IC_API;
|
|
14
|
+
/** 命令描述 */
|
|
15
|
+
description = '交互选择并调用 iCenter 接口地址(请求体默认使用文档示例)';
|
|
16
|
+
/** 命令使用示例 */
|
|
17
|
+
usage = `
|
|
18
|
+
/${constants_1.COMMAND_NAMES.IC_API}
|
|
19
|
+
/${constants_1.COMMAND_NAMES.IC_API} test
|
|
20
|
+
/${constants_1.COMMAND_NAMES.IC_API} prod sk-your-api-key
|
|
21
|
+
sino-bc-cli /${constants_1.COMMAND_NAMES.IC_API} --env=pre --api-key=sk-xxx
|
|
22
|
+
`;
|
|
23
|
+
/** 可调用接口清单 */
|
|
24
|
+
endpoints = constants_1.ICENTER_MCP_APIS;
|
|
25
|
+
/** 接口清单来源说明 */
|
|
26
|
+
docSource = 'src/api-doc';
|
|
27
|
+
}
|
|
28
|
+
exports.IcApiCommand = IcApiCommand;
|
|
29
|
+
//# sourceMappingURL=ic-api.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ic-api.command.js","sourceRoot":"","sources":["../../src/commands/ic-api.command.ts"],"names":[],"mappings":";;;AACA,4CAA+D;AAC/D,iEAAgE;AAEhE;;;;GAIG;AACH,MAAa,YAAa,SAAQ,6CAAsB;IACtD,WAAW;IACK,IAAI,GAAW,yBAAa,CAAC,MAAM,CAAC;IAEpD,WAAW;IACK,WAAW,GAAW,mCAAmC,CAAC;IAE1E,aAAa;IACG,KAAK,GAAW;OAC3B,yBAAa,CAAC,MAAM;OACpB,yBAAa,CAAC,MAAM;OACpB,yBAAa,CAAC,MAAM;mBACR,yBAAa,CAAC,MAAM;GACpC,CAAC;IAEF,cAAc;IACK,SAAS,GAAsB,4BAAgB,CAAC;IAEnE,eAAe;IACI,SAAS,GAAW,aAAa,CAAC;CACtD;AApBD,oCAoBC"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { ICommand } from '../types';
|
|
|
5
5
|
* 新增命令时只需在此数组中添加即可,无需修改注册逻辑
|
|
6
6
|
*/
|
|
7
7
|
export declare const commands: ICommand[];
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
8
|
+
export { BaseApiEndpointCommand } from './api-endpoint.command';
|
|
9
|
+
export { BcApiCommand } from './bc-api.command';
|
|
10
|
+
export { IcApiCommand } from './ic-api.command';
|
|
11
11
|
export { InitCommand } from './init.command';
|
package/dist/commands/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InitCommand = exports.
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const bc_mcp_command_1 = require("./bc-mcp.command");
|
|
3
|
+
exports.InitCommand = exports.IcApiCommand = exports.BcApiCommand = exports.BaseApiEndpointCommand = exports.commands = void 0;
|
|
4
|
+
const bc_api_command_1 = require("./bc-api.command");
|
|
5
|
+
const ic_api_command_1 = require("./ic-api.command");
|
|
7
6
|
const init_command_1 = require("./init.command");
|
|
8
7
|
/**
|
|
9
8
|
* 命令导出统一入口
|
|
@@ -11,17 +10,16 @@ const init_command_1 = require("./init.command");
|
|
|
11
10
|
* 新增命令时只需在此数组中添加即可,无需修改注册逻辑
|
|
12
11
|
*/
|
|
13
12
|
exports.commands = [
|
|
14
|
-
new
|
|
15
|
-
new
|
|
16
|
-
new bc_mcp_command_1.BcMcpCommand(),
|
|
13
|
+
new bc_api_command_1.BcApiCommand(),
|
|
14
|
+
new ic_api_command_1.IcApiCommand(),
|
|
17
15
|
new init_command_1.InitCommand(),
|
|
18
16
|
];
|
|
19
|
-
var
|
|
20
|
-
Object.defineProperty(exports, "
|
|
21
|
-
var
|
|
22
|
-
Object.defineProperty(exports, "
|
|
23
|
-
var
|
|
24
|
-
Object.defineProperty(exports, "
|
|
17
|
+
var api_endpoint_command_1 = require("./api-endpoint.command");
|
|
18
|
+
Object.defineProperty(exports, "BaseApiEndpointCommand", { enumerable: true, get: function () { return api_endpoint_command_1.BaseApiEndpointCommand; } });
|
|
19
|
+
var bc_api_command_2 = require("./bc-api.command");
|
|
20
|
+
Object.defineProperty(exports, "BcApiCommand", { enumerable: true, get: function () { return bc_api_command_2.BcApiCommand; } });
|
|
21
|
+
var ic_api_command_2 = require("./ic-api.command");
|
|
22
|
+
Object.defineProperty(exports, "IcApiCommand", { enumerable: true, get: function () { return ic_api_command_2.IcApiCommand; } });
|
|
25
23
|
var init_command_2 = require("./init.command");
|
|
26
24
|
Object.defineProperty(exports, "InitCommand", { enumerable: true, get: function () { return init_command_2.InitCommand; } });
|
|
27
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAChD,qDAAgD;AAChD,iDAA6C;AAG7C;;;;GAIG;AACU,QAAA,QAAQ,GAAe;IAClC,IAAI,6BAAY,EAAE;IAClB,IAAI,6BAAY,EAAE;IAClB,IAAI,0BAAW,EAAE;CAClB,CAAC;AAEF,+DAAgE;AAAvD,8HAAA,sBAAsB,OAAA;AAC/B,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
|
|
@@ -11,7 +11,7 @@ exports.ICENTER_MCP_APIS = [
|
|
|
11
11
|
displayName: 'Facebook广告策略维度数据',
|
|
12
12
|
description: '查询广告策略配置(不含成效指标)',
|
|
13
13
|
method: 'POST',
|
|
14
|
-
path: '/mcp/strategy/dimension/facebook/ad/list',
|
|
14
|
+
path: '/icenter/mcp/strategy/dimension/facebook/ad/list',
|
|
15
15
|
timeout: 20000,
|
|
16
16
|
// 默认请求体取自文档「请求示例」
|
|
17
17
|
defaultBody: {
|
|
@@ -40,7 +40,7 @@ exports.ICENTER_MCP_APIS = [
|
|
|
40
40
|
displayName: 'Facebook广告策略成效数据',
|
|
41
41
|
description: '查询策略维度 + 成效指标(最多近 21 天)',
|
|
42
42
|
method: 'POST',
|
|
43
|
-
path: '/mcp/strategy/metrics/facebook/ad/list',
|
|
43
|
+
path: '/icenter/mcp/strategy/metrics/facebook/ad/list',
|
|
44
44
|
timeout: 20000,
|
|
45
45
|
// 默认请求体取自文档「请求示例」
|
|
46
46
|
defaultBody: {
|
|
@@ -73,7 +73,7 @@ exports.ICENTER_MCP_APIS = [
|
|
|
73
73
|
displayName: '查询git最新提交版本',
|
|
74
74
|
description: '查询 iCenter 服务 git 最新提交版本',
|
|
75
75
|
method: 'GET',
|
|
76
|
-
path: '/version',
|
|
76
|
+
path: '/icenter/version',
|
|
77
77
|
timeout: 20000,
|
|
78
78
|
},
|
|
79
79
|
];
|