sino-bc-cli 1.1.0 → 1.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.
Files changed (56) hide show
  1. package/README.md +39 -28
  2. package/dist/SKILL.md +46 -21
  3. package/dist/api-doc/README.md +80 -0
  4. package/dist/api-doc/biz-line-query.md +212 -0
  5. package/dist/api-doc/biz-line-strategy.md +313 -0
  6. package/dist/api-doc/icenter-mcp-strategy-dimension-facebook-ad-list.md +162 -0
  7. package/dist/api-doc/icenter-mcp-strategy-metrics-facebook-ad-list.md +197 -0
  8. package/dist/api-doc/icenter-mcp-version-query.md +69 -0
  9. package/dist/commands/api-endpoint.command.d.ts +58 -0
  10. package/dist/commands/api-endpoint.command.js +212 -0
  11. package/dist/commands/api-endpoint.command.js.map +1 -0
  12. package/dist/commands/api-list.command.d.ts +39 -0
  13. package/dist/commands/api-list.command.js +179 -0
  14. package/dist/commands/api-list.command.js.map +1 -0
  15. package/dist/commands/bc-api.command.d.ts +20 -0
  16. package/dist/commands/bc-api.command.js +30 -0
  17. package/dist/commands/bc-api.command.js.map +1 -0
  18. package/dist/commands/ic-api.command.d.ts +8 -42
  19. package/dist/commands/ic-api.command.js +7 -186
  20. package/dist/commands/ic-api.command.js.map +1 -1
  21. package/dist/commands/index.d.ts +3 -2
  22. package/dist/commands/index.js +11 -9
  23. package/dist/commands/index.js.map +1 -1
  24. package/dist/constants/api-catalog.d.ts +34 -0
  25. package/dist/constants/api-catalog.js +118 -0
  26. package/dist/constants/api-catalog.js.map +1 -0
  27. package/dist/constants/api-doc.d.ts +2 -0
  28. package/dist/constants/api-doc.js +6 -1
  29. package/dist/constants/api-doc.js.map +1 -1
  30. package/dist/constants/biz-line-api-doc.d.ts +19 -0
  31. package/dist/constants/biz-line-api-doc.js +353 -0
  32. package/dist/constants/biz-line-api-doc.js.map +1 -0
  33. package/dist/constants/gateway.d.ts +4 -0
  34. package/dist/constants/gateway.js +5 -1
  35. package/dist/constants/gateway.js.map +1 -1
  36. package/dist/constants/index.d.ts +7 -14
  37. package/dist/constants/index.js +16 -13
  38. package/dist/constants/index.js.map +1 -1
  39. package/dist/core/cli-app.js +5 -5
  40. package/dist/core/cli-app.js.map +1 -1
  41. package/dist/core/command-registry.d.ts +2 -2
  42. package/dist/core/command-registry.js +2 -2
  43. package/dist/types/index.d.ts +2 -0
  44. package/dist/types/index.js.map +1 -1
  45. package/dist/utils/browser.d.ts +16 -0
  46. package/dist/utils/browser.js +79 -0
  47. package/dist/utils/browser.js.map +1 -1
  48. package/dist/utils/http.js +1 -0
  49. package/dist/utils/http.js.map +1 -1
  50. package/package.json +2 -3
  51. package/dist/commands/homepage.command.d.ts +0 -19
  52. package/dist/commands/homepage.command.js +0 -96
  53. package/dist/commands/homepage.command.js.map +0 -1
  54. package/dist/commands/nexus-swagger.command.d.ts +0 -19
  55. package/dist/commands/nexus-swagger.command.js +0 -95
  56. package/dist/commands/nexus-swagger.command.js.map +0 -1
@@ -1,53 +1,19 @@
1
- import { ICommand } from '../types';
1
+ import { IApiDocEndpoint } from '../types';
2
+ import { BaseApiEndpointCommand } from './api-endpoint.command';
2
3
  /**
3
4
  * 调用 iCenter 接口地址命令
4
5
  * 命令名称: /ic-api
5
- * 功能: 交互选择 api-doc 中的接口,向对应 iCenter 接口地址发起调用
6
+ * 功能: 交互选择 api-doc 中的 iCenter 接口,向对应接口地址发起调用
6
7
  */
7
- export declare class IcApiCommand implements ICommand {
8
+ export declare class IcApiCommand extends BaseApiEndpointCommand {
8
9
  /** 命令名称 */
9
10
  readonly name: string;
10
11
  /** 命令描述 */
11
12
  readonly description: string;
12
13
  /** 命令使用示例 */
13
14
  readonly usage: string;
14
- /**
15
- * 命令执行函数
16
- * @param args 位置参数:[ENV] [API_KEY]
17
- * @param options 解析后的选项,支持 --env / --api-key
18
- */
19
- execute(args: string[], options?: Record<string, unknown>): Promise<void>;
20
- /**
21
- * 解析环境参数,优先级:--env > 位置参数中的合法 ENV > 默认 prod
22
- */
23
- private resolveEnv;
24
- /**
25
- * 解析 API Key,优先级:--api-key > 非 ENV 的位置参数 > 默认值
26
- */
27
- private resolveApiKey;
28
- /**
29
- * 从 options 中按候选 key 取第一个有效值
30
- */
31
- private pickOption;
32
- /**
33
- * 打印接口清单并让用户选择
34
- */
35
- private selectApi;
36
- /**
37
- * 打印即将发起的请求概要
38
- */
39
- private printRequestPreview;
40
- /**
41
- * 按接口方法发起请求并打印响应
42
- */
43
- private callApi;
44
- /**
45
- * 将响应格式化为可读 JSON 文本
46
- * version 接口可能返回 text/plain,需兜底解析
47
- */
48
- private formatResponse;
49
- /**
50
- * 统一处理 HTTP 失败:优先打印服务端响应体
51
- */
52
- private handleRequestError;
15
+ /** 可调用接口清单 */
16
+ protected readonly endpoints: IApiDocEndpoint[];
17
+ /** 接口清单来源说明 */
18
+ protected readonly docSource: string;
53
19
  }
@@ -1,55 +1,14 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.IcApiCommand = void 0;
40
- const _ = __importStar(require("lodash"));
41
- const dayjs_1 = __importDefault(require("dayjs"));
42
- const chalk_1 = __importDefault(require("chalk"));
43
- const axios_1 = require("axios");
44
- const types_1 = require("../types");
45
- const utils_1 = require("../utils");
46
4
  const constants_1 = require("../constants");
5
+ const api_endpoint_command_1 = require("./api-endpoint.command");
47
6
  /**
48
7
  * 调用 iCenter 接口地址命令
49
8
  * 命令名称: /ic-api
50
- * 功能: 交互选择 api-doc 中的接口,向对应 iCenter 接口地址发起调用
9
+ * 功能: 交互选择 api-doc 中的 iCenter 接口,向对应接口地址发起调用
51
10
  */
52
- class IcApiCommand {
11
+ class IcApiCommand extends api_endpoint_command_1.BaseApiEndpointCommand {
53
12
  /** 命令名称 */
54
13
  name = constants_1.COMMAND_NAMES.IC_API;
55
14
  /** 命令描述 */
@@ -61,148 +20,10 @@ class IcApiCommand {
61
20
  /${constants_1.COMMAND_NAMES.IC_API} prod sk-your-api-key
62
21
  sino-bc-cli /${constants_1.COMMAND_NAMES.IC_API} --env=pre --api-key=sk-xxx
63
22
  `;
64
- /**
65
- * 命令执行函数
66
- * @param args 位置参数:[ENV] [API_KEY]
67
- * @param options 解析后的选项,支持 --env / --api-key
68
- */
69
- async execute(args, options) {
70
- utils_1.logger.debug(`[IcApiCommand] 命令执行开始,参数: ${JSON.stringify(args)}`);
71
- const startTime = (0, dayjs_1.default)();
72
- const env = this.resolveEnv(args, options);
73
- const apiKey = this.resolveApiKey(args, options);
74
- const gateway = (0, constants_1.getGatewayConfig)(env);
75
- utils_1.logger.info(`[${utils_1.CommonUtils.formatDate(startTime)}] 当前环境: ${gateway.label} (${env}),网关: ${gateway.baseUrl}`);
76
- const api = await this.selectApi();
77
- const url = (0, constants_1.joinGatewayUrl)(env, api.path);
78
- this.printRequestPreview(api, url, apiKey);
79
- await this.callApi(api, url, apiKey);
80
- const durationSec = _.round((0, dayjs_1.default)().diff(startTime) / 1000, 2);
81
- utils_1.logger.debug(`[IcApiCommand] 命令执行完成,耗时: ${durationSec} 秒`);
82
- }
83
- /**
84
- * 解析环境参数,优先级:--env > 位置参数中的合法 ENV > 默认 prod
85
- */
86
- resolveEnv(args, options) {
87
- const optionValue = this.pickOption(options, ['env', 'ENV']);
88
- if ((0, constants_1.isEnvName)(optionValue)) {
89
- return optionValue;
90
- }
91
- if (!_.isNil(optionValue) && optionValue !== true) {
92
- throw new Error(`无效的 ENV: ${String(optionValue)},仅支持 test / pre / prod`);
93
- }
94
- const argEnv = _.find(args, (item) => (0, constants_1.isEnvName)(_.toLower(_.trim(item))));
95
- if (!_.isNil(argEnv)) {
96
- return _.toLower(_.trim(argEnv));
97
- }
98
- return types_1.EnvName.PROD;
99
- }
100
- /**
101
- * 解析 API Key,优先级:--api-key > 非 ENV 的位置参数 > 默认值
102
- */
103
- resolveApiKey(args, options) {
104
- const optionValue = this.pickOption(options, ['api-key', 'apiKey', 'API_KEY']);
105
- if (_.isString(optionValue) && !_.isEmpty(_.trim(optionValue))) {
106
- return _.trim(optionValue);
107
- }
108
- const argKey = _.find(args, (item) => !(0, constants_1.isEnvName)(_.toLower(_.trim(item))));
109
- if (!_.isNil(argKey) && !_.isEmpty(_.trim(argKey))) {
110
- return _.trim(argKey);
111
- }
112
- return constants_1.DEFAULT_API_KEY;
113
- }
114
- /**
115
- * 从 options 中按候选 key 取第一个有效值
116
- */
117
- pickOption(options, keys) {
118
- if (_.isNil(options)) {
119
- return undefined;
120
- }
121
- const matchedKey = _.find(keys, (key) => !_.isUndefined(options[key]));
122
- return _.isNil(matchedKey) ? undefined : options[matchedKey];
123
- }
124
- /**
125
- * 打印接口清单并让用户选择
126
- */
127
- async selectApi() {
128
- process.stdout.write('\n');
129
- process.stdout.write(chalk_1.default.bold('📦 可调用接口') + chalk_1.default.gray('(来源: src/api-doc)') + '\n\n');
130
- _.forEach(constants_1.ICENTER_MCP_APIS, (api, index) => {
131
- const serial = chalk_1.default.greenBright(` ${index + 1}.`);
132
- const title = chalk_1.default.whiteBright(` ${api.displayName}`);
133
- const meta = chalk_1.default.gray(` ${api.method} ${api.name}`);
134
- const desc = chalk_1.default.white(` ${api.description}`);
135
- process.stdout.write(`${serial}${title}\n${meta}\n${desc}\n\n`);
136
- });
137
- const selectedIndex = await utils_1.PromptUtils.selectIndex(constants_1.ICENTER_MCP_APIS.length);
138
- return constants_1.ICENTER_MCP_APIS[selectedIndex];
139
- }
140
- /**
141
- * 打印即将发起的请求概要
142
- */
143
- printRequestPreview(api, url, apiKey) {
144
- utils_1.logger.info(`已选择: ${api.displayName} (${api.name})`);
145
- utils_1.logger.info(`请求方法: ${api.method}`);
146
- utils_1.logger.info(`请求地址: ${url}`);
147
- utils_1.logger.debug(`Authorization: Bearer ${apiKey}`);
148
- utils_1.logger.tip('已注入请求头 Authorization: Bearer ***');
149
- if (!_.isNil(api.defaultBody)) {
150
- utils_1.logger.info('请求体(文档默认示例):');
151
- utils_1.logger.info(api.defaultBody);
152
- }
153
- else {
154
- utils_1.logger.info('该接口无请求体');
155
- }
156
- }
157
- /**
158
- * 按接口方法发起请求并打印响应
159
- */
160
- async callApi(api, url, apiKey) {
161
- const config = {
162
- timeout: api.timeout,
163
- headers: {
164
- Authorization: `Bearer ${apiKey}`,
165
- 'Content-Type': 'application/json',
166
- },
167
- };
168
- try {
169
- utils_1.logger.info('正在发起请求...');
170
- const data = api.method === 'GET'
171
- ? await utils_1.HttpUtils.get(url, config)
172
- : await utils_1.HttpUtils.post(url, api.defaultBody, config);
173
- utils_1.logger.success('接口调用成功,响应如下:');
174
- process.stdout.write(this.formatResponse(data) + '\n');
175
- }
176
- catch (error) {
177
- this.handleRequestError(error);
178
- }
179
- }
180
- /**
181
- * 将响应格式化为可读 JSON 文本
182
- * version 接口可能返回 text/plain,需兜底解析
183
- */
184
- formatResponse(data) {
185
- if (_.isString(data)) {
186
- try {
187
- return JSON.stringify(JSON.parse(data), null, 2);
188
- }
189
- catch {
190
- return data;
191
- }
192
- }
193
- return JSON.stringify(data, null, 2);
194
- }
195
- /**
196
- * 统一处理 HTTP 失败:优先打印服务端响应体
197
- */
198
- handleRequestError(error) {
199
- if (error instanceof axios_1.AxiosError && !_.isNil(error.response)) {
200
- utils_1.logger.error(`接口调用失败,HTTP 状态码: ${error.response.status}`);
201
- process.stdout.write(this.formatResponse(error.response.data) + '\n');
202
- throw new Error(`接口调用失败: HTTP ${error.response.status}`);
203
- }
204
- throw error instanceof Error ? error : new Error(String(error));
205
- }
23
+ /** 可调用接口清单 */
24
+ endpoints = constants_1.ICENTER_MCP_APIS;
25
+ /** 接口清单来源说明 */
26
+ docSource = 'src/api-doc';
206
27
  }
207
28
  exports.IcApiCommand = IcApiCommand;
208
29
  //# sourceMappingURL=ic-api.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-api.command.js","sourceRoot":"","sources":["../../src/commands/ic-api.command.ts"],"names":[],"mappings":"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"}
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"}
@@ -5,7 +5,8 @@ import type { ICommand } from '../types';
5
5
  * 新增命令时只需在此数组中添加即可,无需修改注册逻辑
6
6
  */
7
7
  export declare const commands: ICommand[];
8
- export { HomepageCommand } from './homepage.command';
9
- export { NexusSwaggerCommand } from './nexus-swagger.command';
8
+ export { ApiListCommand } from './api-list.command';
9
+ export { BaseApiEndpointCommand } from './api-endpoint.command';
10
+ export { BcApiCommand } from './bc-api.command';
10
11
  export { IcApiCommand } from './ic-api.command';
11
12
  export { InitCommand } from './init.command';
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InitCommand = exports.IcApiCommand = exports.NexusSwaggerCommand = exports.HomepageCommand = exports.commands = void 0;
4
- const homepage_command_1 = require("./homepage.command");
5
- const nexus_swagger_command_1 = require("./nexus-swagger.command");
3
+ exports.InitCommand = exports.IcApiCommand = exports.BcApiCommand = exports.BaseApiEndpointCommand = exports.ApiListCommand = exports.commands = void 0;
4
+ const api_list_command_1 = require("./api-list.command");
5
+ const bc_api_command_1 = require("./bc-api.command");
6
6
  const ic_api_command_1 = require("./ic-api.command");
7
7
  const init_command_1 = require("./init.command");
8
8
  /**
@@ -11,15 +11,17 @@ const init_command_1 = require("./init.command");
11
11
  * 新增命令时只需在此数组中添加即可,无需修改注册逻辑
12
12
  */
13
13
  exports.commands = [
14
- new homepage_command_1.HomepageCommand(),
15
- new nexus_swagger_command_1.NexusSwaggerCommand(),
14
+ new api_list_command_1.ApiListCommand(),
15
+ new bc_api_command_1.BcApiCommand(),
16
16
  new ic_api_command_1.IcApiCommand(),
17
17
  new init_command_1.InitCommand(),
18
18
  ];
19
- var homepage_command_2 = require("./homepage.command");
20
- Object.defineProperty(exports, "HomepageCommand", { enumerable: true, get: function () { return homepage_command_2.HomepageCommand; } });
21
- var nexus_swagger_command_2 = require("./nexus-swagger.command");
22
- Object.defineProperty(exports, "NexusSwaggerCommand", { enumerable: true, get: function () { return nexus_swagger_command_2.NexusSwaggerCommand; } });
19
+ var api_list_command_2 = require("./api-list.command");
20
+ Object.defineProperty(exports, "ApiListCommand", { enumerable: true, get: function () { return api_list_command_2.ApiListCommand; } });
21
+ var api_endpoint_command_1 = require("./api-endpoint.command");
22
+ Object.defineProperty(exports, "BaseApiEndpointCommand", { enumerable: true, get: function () { return api_endpoint_command_1.BaseApiEndpointCommand; } });
23
+ var bc_api_command_2 = require("./bc-api.command");
24
+ Object.defineProperty(exports, "BcApiCommand", { enumerable: true, get: function () { return bc_api_command_2.BcApiCommand; } });
23
25
  var ic_api_command_2 = require("./ic-api.command");
24
26
  Object.defineProperty(exports, "IcApiCommand", { enumerable: true, get: function () { return ic_api_command_2.IcApiCommand; } });
25
27
  var init_command_2 = require("./init.command");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,mEAA8D;AAC9D,qDAAgD;AAChD,iDAA6C;AAG7C;;;;GAIG;AACU,QAAA,QAAQ,GAAe;IAClC,IAAI,kCAAe,EAAE;IACrB,IAAI,2CAAmB,EAAE;IACzB,IAAI,6BAAY,EAAE;IAClB,IAAI,0BAAW,EAAE;CAClB,CAAC;AAEF,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AACpD,qDAAgD;AAChD,qDAAgD;AAChD,iDAA6C;AAG7C;;;;GAIG;AACU,QAAA,QAAQ,GAAe;IAClC,IAAI,iCAAc,EAAE;IACpB,IAAI,6BAAY,EAAE;IAClB,IAAI,6BAAY,EAAE;IAClB,IAAI,0BAAW,EAAE;CAClB,CAAC;AAEF,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,+DAAgE;AAAvD,8HAAA,sBAAsB,OAAA;AAC/B,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
@@ -0,0 +1,34 @@
1
+ import { IApiDocEndpoint } from '../types';
2
+ /**
3
+ * /api-list 中单条可调用接口的展示信息
4
+ * 在 IApiDocEndpoint 上补充调用命令与本地文档文件名
5
+ */
6
+ export interface IApiCatalogItem {
7
+ /** 接口定义 */
8
+ endpoint: IApiDocEndpoint;
9
+ /** 对应的调用命令(不含斜杠),如 ic-api / bc-api */
10
+ command: string;
11
+ /** 相对 api-doc 目录的文档文件名 */
12
+ docFile: string;
13
+ }
14
+ /**
15
+ * 汇总全部可调用接口,顺序与 /ic-api、/bc-api 清单一致
16
+ */
17
+ export declare function getApiCatalog(): IApiCatalogItem[];
18
+ /**
19
+ * 分组标题旁展示的调用命令
20
+ */
21
+ export declare function getGroupCommand(group: string): string;
22
+ /**
23
+ * 解析 api-doc 目录:开发态为 src/api-doc,编译后为 dist/api-doc
24
+ * @param fromDir 起点目录,默认当前模块所在目录
25
+ */
26
+ export declare function resolveApiDocDir(fromDir?: string): string | undefined;
27
+ /**
28
+ * 将本地路径转为 file:// URL,供终端 OSC 8 超链接使用
29
+ */
30
+ export declare function toFileUrl(filePath: string): string;
31
+ /**
32
+ * 在 markdown 中定位展示名对应的标题行号(1-based),找不到则返回 undefined
33
+ */
34
+ export declare function findDocHeadingLine(filePath: string, displayName: string): number | undefined;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getApiCatalog = getApiCatalog;
37
+ exports.getGroupCommand = getGroupCommand;
38
+ exports.resolveApiDocDir = resolveApiDocDir;
39
+ exports.toFileUrl = toFileUrl;
40
+ exports.findDocHeadingLine = findDocHeadingLine;
41
+ const fs_1 = require("fs");
42
+ const path_1 = require("path");
43
+ const _ = __importStar(require("lodash"));
44
+ const api_doc_1 = require("./api-doc");
45
+ const biz_line_api_doc_1 = require("./biz-line-api-doc");
46
+ /**
47
+ * 汇总全部可调用接口,顺序与 /ic-api、/bc-api 清单一致
48
+ */
49
+ function getApiCatalog() {
50
+ const icenter = _.map(api_doc_1.ICENTER_MCP_APIS, (endpoint) => ({
51
+ endpoint,
52
+ command: 'ic-api',
53
+ docFile: `${endpoint.name}.md`,
54
+ }));
55
+ const bizLine = _.map(biz_line_api_doc_1.BIZ_LINE_APIS, (endpoint) => ({
56
+ endpoint,
57
+ command: 'bc-api',
58
+ docFile: endpoint.group === biz_line_api_doc_1.BIZ_LINE_GROUPS.QUERY ? 'biz-line-query.md' : 'biz-line-strategy.md',
59
+ }));
60
+ return [...icenter, ...bizLine];
61
+ }
62
+ /**
63
+ * 分组标题旁展示的调用命令
64
+ */
65
+ function getGroupCommand(group) {
66
+ if (group === api_doc_1.ICENTER_GROUP) {
67
+ return 'ic-api';
68
+ }
69
+ return 'bc-api';
70
+ }
71
+ /**
72
+ * 解析 api-doc 目录:开发态为 src/api-doc,编译后为 dist/api-doc
73
+ * @param fromDir 起点目录,默认当前模块所在目录
74
+ */
75
+ function resolveApiDocDir(fromDir = __dirname) {
76
+ const candidates = [
77
+ (0, path_1.join)(fromDir, '../api-doc'),
78
+ (0, path_1.join)(fromDir, '../../src/api-doc'),
79
+ (0, path_1.join)(fromDir, '../../api-doc'),
80
+ ];
81
+ return _.find(candidates, (dir) => (0, fs_1.existsSync)(dir));
82
+ }
83
+ /**
84
+ * 将本地路径转为 file:// URL,供终端 OSC 8 超链接使用
85
+ */
86
+ function toFileUrl(filePath) {
87
+ const normalized = _.replace(filePath, /\\/g, '/');
88
+ if (/^[A-Za-z]:/.test(normalized)) {
89
+ return `file:///${encodeURI(normalized)}`;
90
+ }
91
+ return `file://${encodeURI(normalized)}`;
92
+ }
93
+ /**
94
+ * 去掉 markdown 标题前缀、序号和写操作标记,便于与 displayName 精确比对
95
+ */
96
+ function normalizeHeading(line) {
97
+ return _.trim(line)
98
+ .replace(/^#{1,6}\s+/, '')
99
+ .replace(/^\d+\.\s+/, '')
100
+ .replace(/\s*⚠️\s*$/, '');
101
+ }
102
+ /**
103
+ * 在 markdown 中定位展示名对应的标题行号(1-based),找不到则返回 undefined
104
+ */
105
+ function findDocHeadingLine(filePath, displayName) {
106
+ if (!(0, fs_1.existsSync)(filePath)) {
107
+ return undefined;
108
+ }
109
+ const lines = _.split((0, fs_1.readFileSync)(filePath, 'utf-8'), /\r?\n/);
110
+ const index = _.findIndex(lines, (line) => {
111
+ if (!_.startsWith(_.trim(line), '#')) {
112
+ return false;
113
+ }
114
+ return normalizeHeading(line) === displayName;
115
+ });
116
+ return index >= 0 ? index + 1 : undefined;
117
+ }
118
+ //# sourceMappingURL=api-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-catalog.js","sourceRoot":"","sources":["../../src/constants/api-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { IApiDocEndpoint } from '../types';
2
+ /** iCenter MCP 接口分组名称,用于 /api-list 分节展示 */
3
+ export declare const ICENTER_GROUP = "iCenter MCP";
2
4
  /**
3
5
  * iCenter MCP 可调用接口清单
4
6
  * 与 src/api-doc/README.md 及各接口文档中的请求示例保持一致
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ICENTER_MCP_APIS = void 0;
3
+ exports.ICENTER_MCP_APIS = exports.ICENTER_GROUP = void 0;
4
+ /** iCenter MCP 接口分组名称,用于 /api-list 分节展示 */
5
+ exports.ICENTER_GROUP = 'iCenter MCP';
4
6
  /**
5
7
  * iCenter MCP 可调用接口清单
6
8
  * 与 src/api-doc/README.md 及各接口文档中的请求示例保持一致
@@ -10,6 +12,7 @@ exports.ICENTER_MCP_APIS = [
10
12
  name: 'icenter-mcp-strategy-dimension-facebook-ad-list',
11
13
  displayName: 'Facebook广告策略维度数据',
12
14
  description: '查询广告策略配置(不含成效指标)',
15
+ group: exports.ICENTER_GROUP,
13
16
  method: 'POST',
14
17
  path: '/icenter/mcp/strategy/dimension/facebook/ad/list',
15
18
  timeout: 20000,
@@ -39,6 +42,7 @@ exports.ICENTER_MCP_APIS = [
39
42
  name: 'icenter-mcp-strategy-metrics-facebook-ad-list',
40
43
  displayName: 'Facebook广告策略成效数据',
41
44
  description: '查询策略维度 + 成效指标(最多近 21 天)',
45
+ group: exports.ICENTER_GROUP,
42
46
  method: 'POST',
43
47
  path: '/icenter/mcp/strategy/metrics/facebook/ad/list',
44
48
  timeout: 20000,
@@ -72,6 +76,7 @@ exports.ICENTER_MCP_APIS = [
72
76
  name: 'icenter-mcp-version-query',
73
77
  displayName: '查询git最新提交版本',
74
78
  description: '查询 iCenter 服务 git 最新提交版本',
79
+ group: exports.ICENTER_GROUP,
75
80
  method: 'GET',
76
81
  path: '/icenter/version',
77
82
  timeout: 20000,
@@ -1 +1 @@
1
- {"version":3,"file":"api-doc.js","sourceRoot":"","sources":["../../src/constants/api-doc.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,gBAAgB,GAAsB;IACjD;QACE,IAAI,EAAE,iDAAiD;QACvD,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,kBAAkB;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,kDAAkD;QACxD,OAAO,EAAE,KAAK;QACd,kBAAkB;QAClB,WAAW,EAAE;YACX,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE;gBACf,UAAU,EAAE,CAAC,sBAAsB,CAAC;aACrC;YACD,UAAU,EAAE;gBACV,YAAY;gBACZ,OAAO;gBACP,SAAS;gBACT,WAAW;gBACX,mBAAmB;gBACnB,cAAc;gBACd,eAAe;aAChB;YACD,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,EAAE;SACT;KACF;IACD;QACE,IAAI,EAAE,+CAA+C;QACrD,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,yBAAyB;QACtC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gDAAgD;QACtD,OAAO,EAAE,KAAK;QACd,kBAAkB;QAClB,WAAW,EAAE;YACX,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE;gBACf,UAAU,EAAE,CAAC,sBAAsB,CAAC;aACrC;YACD,UAAU,EAAE;gBACV,YAAY;gBACZ,WAAW;gBACX,mBAAmB;gBACnB,cAAc;aACf;YACD,UAAU,EAAE;gBACV,WAAW;gBACX,aAAa;gBACb,QAAQ;gBACR,UAAU;gBACV,gBAAgB;aACjB;YACD,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,EAAE;SACT;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,0BAA0B;QACvC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,KAAK;KACf;CACF,CAAC"}
1
+ {"version":3,"file":"api-doc.js","sourceRoot":"","sources":["../../src/constants/api-doc.ts"],"names":[],"mappings":";;;AAEA,2CAA2C;AAC9B,QAAA,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACU,QAAA,gBAAgB,GAAsB;IACjD;QACE,IAAI,EAAE,iDAAiD;QACvD,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,kBAAkB;QAC/B,KAAK,EAAE,qBAAa;QACpB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,kDAAkD;QACxD,OAAO,EAAE,KAAK;QACd,kBAAkB;QAClB,WAAW,EAAE;YACX,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE;gBACf,UAAU,EAAE,CAAC,sBAAsB,CAAC;aACrC;YACD,UAAU,EAAE;gBACV,YAAY;gBACZ,OAAO;gBACP,SAAS;gBACT,WAAW;gBACX,mBAAmB;gBACnB,cAAc;gBACd,eAAe;aAChB;YACD,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,EAAE;SACT;KACF;IACD;QACE,IAAI,EAAE,+CAA+C;QACrD,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,yBAAyB;QACtC,KAAK,EAAE,qBAAa;QACpB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gDAAgD;QACtD,OAAO,EAAE,KAAK;QACd,kBAAkB;QAClB,WAAW,EAAE;YACX,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE;gBACf,UAAU,EAAE,CAAC,sBAAsB,CAAC;aACrC;YACD,UAAU,EAAE;gBACV,YAAY;gBACZ,WAAW;gBACX,mBAAmB;gBACnB,cAAc;aACf;YACD,UAAU,EAAE;gBACV,WAAW;gBACX,aAAa;gBACb,QAAQ;gBACR,UAAU;gBACV,gBAAgB;aACjB;YACD,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,EAAE;SACT;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,0BAA0B;QACvC,KAAK,EAAE,qBAAa;QACpB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,KAAK;KACf;CACF,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { IApiDocEndpoint } from '../types';
2
+ /**
3
+ * sino-opti-hive 服务在网关上的路由前缀
4
+ * 所有业务线接口的相对路径都需要带上该前缀
5
+ */
6
+ export declare const SINO_OPTI_HIVE_PREFIX = "/sino-opti-hive";
7
+ /** 接口分组名称,与接口文档左侧标签一致 */
8
+ export declare const BIZ_LINE_GROUPS: {
9
+ /** 业务线查询(Biz Line Open Controller,对外开放查询) */
10
+ readonly QUERY: "业务线查询";
11
+ /** 业务线策略(Biz Line Controller,业务线与周策略维护) */
12
+ readonly STRATEGY: "业务线策略";
13
+ };
14
+ /**
15
+ * sino-opti-hive 业务线接口清单
16
+ * 数据来源:https://o-test-sino-opti-hive.meetsocial.com/doc.html
17
+ * 与 src/api-doc/biz-line-query.md、src/api-doc/biz-line-strategy.md 保持一致
18
+ */
19
+ export declare const BIZ_LINE_APIS: IApiDocEndpoint[];