@eevee-ta/cli 0.1.0-beta.1
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 +492 -0
- package/assets/skills/eevee-mcp/SKILL.md +127 -0
- package/assets/skills/eevee-mcp/reference.md +105 -0
- package/assets/skills/eevee-migration/SKILL.md +181 -0
- package/assets/skills/eevee-project-setup/SKILL.md +266 -0
- package/dist/src/bin/cli.js +237 -0
- package/dist/src/bin/cli.js.map +1 -0
- package/dist/src/commands/business-command.js +340 -0
- package/dist/src/commands/business-command.js.map +1 -0
- package/dist/src/commands/config-command.js +71 -0
- package/dist/src/commands/config-command.js.map +1 -0
- package/dist/src/commands/intl-command.js +131 -0
- package/dist/src/commands/intl-command.js.map +1 -0
- package/dist/src/commands/lint-command.js +105 -0
- package/dist/src/commands/lint-command.js.map +1 -0
- package/dist/src/commands/mcp-command.js +167 -0
- package/dist/src/commands/mcp-command.js.map +1 -0
- package/dist/src/commands/skill-command.js +116 -0
- package/dist/src/commands/skill-command.js.map +1 -0
- package/dist/src/lib/args.js +77 -0
- package/dist/src/lib/args.js.map +1 -0
- package/dist/src/lib/business-catalog.js +445 -0
- package/dist/src/lib/business-catalog.js.map +1 -0
- package/dist/src/lib/config.js +69 -0
- package/dist/src/lib/config.js.map +1 -0
- package/dist/src/lib/intl-catalog.js +58 -0
- package/dist/src/lib/intl-catalog.js.map +1 -0
- package/dist/src/lib/intl-config.js +125 -0
- package/dist/src/lib/intl-config.js.map +1 -0
- package/dist/src/lib/intl-downloader.js +217 -0
- package/dist/src/lib/intl-downloader.js.map +1 -0
- package/dist/src/lib/intl-serializers/csv.js +25 -0
- package/dist/src/lib/intl-serializers/csv.js.map +1 -0
- package/dist/src/lib/intl-serializers/custom.js +23 -0
- package/dist/src/lib/intl-serializers/custom.js.map +1 -0
- package/dist/src/lib/intl-serializers/index.js +22 -0
- package/dist/src/lib/intl-serializers/index.js.map +1 -0
- package/dist/src/lib/intl-serializers/js.js +10 -0
- package/dist/src/lib/intl-serializers/js.js.map +1 -0
- package/dist/src/lib/intl-serializers/json.js +7 -0
- package/dist/src/lib/intl-serializers/json.js.map +1 -0
- package/dist/src/lib/intl-serializers/properties.js +43 -0
- package/dist/src/lib/intl-serializers/properties.js.map +1 -0
- package/dist/src/lib/intl-serializers/ts.js +16 -0
- package/dist/src/lib/intl-serializers/ts.js.map +1 -0
- package/dist/src/lib/intl-serializers/xml.js +21 -0
- package/dist/src/lib/intl-serializers/xml.js.map +1 -0
- package/dist/src/lib/json.js +40 -0
- package/dist/src/lib/json.js.map +1 -0
- package/dist/src/lib/lint-config.js +180 -0
- package/dist/src/lib/lint-config.js.map +1 -0
- package/dist/src/lib/lint-java.js +226 -0
- package/dist/src/lib/lint-java.js.map +1 -0
- package/dist/src/lib/lint-types.js +2 -0
- package/dist/src/lib/lint-types.js.map +1 -0
- package/dist/src/lib/lint-web.js +183 -0
- package/dist/src/lib/lint-web.js.map +1 -0
- package/dist/src/lib/lint.js +192 -0
- package/dist/src/lib/lint.js.map +1 -0
- package/dist/src/lib/mcp-client.js +185 -0
- package/dist/src/lib/mcp-client.js.map +1 -0
- package/dist/src/lib/output.js +34 -0
- package/dist/src/lib/output.js.map +1 -0
- package/dist/src/lib/skill-installer.js +123 -0
- package/dist/src/lib/skill-installer.js.map +1 -0
- package/dist/src/lib/tool-docs.js +66 -0
- package/dist/src/lib/tool-docs.js.map +1 -0
- package/dist/src/lib/types.js +2 -0
- package/dist/src/lib/types.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-command.js","sourceRoot":"","sources":["../../../src/commands/skill-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export class CliError extends Error {
|
|
2
|
+
exitCode;
|
|
3
|
+
usage;
|
|
4
|
+
constructor(message, exitCode = 1, usage) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = 'CliError';
|
|
7
|
+
this.exitCode = exitCode;
|
|
8
|
+
this.usage = usage;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function wantsValue(spec) {
|
|
12
|
+
return spec?.value === true;
|
|
13
|
+
}
|
|
14
|
+
export function parseArgs(argv, specs) {
|
|
15
|
+
const byName = new Map();
|
|
16
|
+
for (const spec of specs) {
|
|
17
|
+
byName.set(spec.long, spec);
|
|
18
|
+
if (spec.short)
|
|
19
|
+
byName.set(spec.short.replace(/^[-]+/, ''), spec);
|
|
20
|
+
}
|
|
21
|
+
const positionals = [];
|
|
22
|
+
const options = new Map();
|
|
23
|
+
for (let index = 0; index < argv.length; index++) {
|
|
24
|
+
const arg = argv[index];
|
|
25
|
+
if (arg === '--') {
|
|
26
|
+
positionals.push(...argv.slice(index + 1));
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
if (!arg.startsWith('-') || arg === '-' || /^-\d+(?:\.\d+)?$/.test(arg)) {
|
|
30
|
+
positionals.push(arg);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
let rawKey = arg;
|
|
34
|
+
let inlineValue;
|
|
35
|
+
const eq = rawKey.indexOf('=');
|
|
36
|
+
if (eq >= 0) {
|
|
37
|
+
rawKey = arg.slice(0, eq);
|
|
38
|
+
inlineValue = arg.slice(eq + 1);
|
|
39
|
+
}
|
|
40
|
+
const key = rawKey.replace(/^[-]+/, '');
|
|
41
|
+
const spec = byName.get(key);
|
|
42
|
+
if (!spec)
|
|
43
|
+
throw new CliError(`未知选项: ${key}`, 64);
|
|
44
|
+
options.set(spec.long, true);
|
|
45
|
+
if (wantsValue(spec)) {
|
|
46
|
+
const value = inlineValue ?? argv[++index];
|
|
47
|
+
if (value === undefined)
|
|
48
|
+
throw new CliError(`选项缺少值: ${key}`, 64);
|
|
49
|
+
options.set(spec.long, value);
|
|
50
|
+
}
|
|
51
|
+
else if (inlineValue !== undefined) {
|
|
52
|
+
options.set(spec.long, inlineValue);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
for (const spec of specs) {
|
|
56
|
+
if (!options.has(spec.long) && spec.default !== undefined)
|
|
57
|
+
options.set(spec.long, spec.default);
|
|
58
|
+
}
|
|
59
|
+
return { positionals, options };
|
|
60
|
+
}
|
|
61
|
+
export function requireOption(options, long) {
|
|
62
|
+
const value = options.get(long);
|
|
63
|
+
if (typeof value !== 'string' || !value.trim())
|
|
64
|
+
throw new CliError(`缺少必填选项 --${long}`, 64);
|
|
65
|
+
return value.trim();
|
|
66
|
+
}
|
|
67
|
+
export function optionalOption(options, long) {
|
|
68
|
+
const value = options.get(long);
|
|
69
|
+
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
70
|
+
}
|
|
71
|
+
export function hasFlag(options, long) {
|
|
72
|
+
return options.get(long) === true || options.get(long) === 'true';
|
|
73
|
+
}
|
|
74
|
+
export function optionCount(options, names) {
|
|
75
|
+
return names.filter((name) => options.has(name)).length;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/lib/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
function argument(name, location, description = '', kind = 'string', required = false) {
|
|
2
|
+
return { name, location, kind, description, required };
|
|
3
|
+
}
|
|
4
|
+
export const BUSINESS_COMMANDS = [
|
|
5
|
+
{
|
|
6
|
+
group: 'project', action: 'list', title: '查询项目列表', aliases: ['项目列表', '查询项目列表', '获取项目列表'],
|
|
7
|
+
method: 'GET', path: '/api/v1/projects', arguments: [],
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
group: 'project', action: 'create', title: '新增项目', aliases: ['新增项目', '新建项目', '创建项目'],
|
|
11
|
+
method: 'POST', path: '/api/v1/projects',
|
|
12
|
+
arguments: [
|
|
13
|
+
argument('name', 'body', '项目名称', 'string', true),
|
|
14
|
+
argument('description', 'body', '项目描述'),
|
|
15
|
+
argument('locales', 'body', '支持语言数组;也可用逗号分隔', 'string-array', true),
|
|
16
|
+
argument('ref_locale', 'body', '参考语言'),
|
|
17
|
+
argument('avatar_id', 'body', '已上传头像对象名(MCP 不上传文件)'),
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
group: 'project', action: 'detail', title: '查询项目详情', aliases: ['项目详情', '查询项目详情'],
|
|
22
|
+
method: 'GET', path: '/api/v1/projects/{id}',
|
|
23
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
group: 'project', action: 'stats', title: '查询项目统计', aliases: ['项目统计', '查询项目统计'],
|
|
27
|
+
method: 'GET', path: '/api/v1/projects/{id}/stats',
|
|
28
|
+
arguments: [
|
|
29
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
30
|
+
argument('version_id', 'query', '版本 ID,可选过滤', 'integer'),
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
group: 'project', action: 'assets', title: '查询项目资产统计', aliases: ['项目资产', '查询项目资产'],
|
|
35
|
+
method: 'GET', path: '/api/v1/projects/{id}/assets',
|
|
36
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
group: 'project', action: 'update', title: '修改项目', aliases: ['更新项目', '编辑项目'],
|
|
40
|
+
method: 'PATCH', path: '/api/v1/projects/{id}',
|
|
41
|
+
arguments: [
|
|
42
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
43
|
+
argument('name', 'body'), argument('description', 'body'),
|
|
44
|
+
argument('locales', 'body', '', 'string-array'), argument('ref_locale', 'body'),
|
|
45
|
+
argument('avatar_id', 'body'),
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
group: 'project', action: 'delete', title: '删除项目', aliases: [], destructive: true,
|
|
50
|
+
method: 'DELETE', path: '/api/v1/projects/{id}',
|
|
51
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
group: 'version', action: 'list', title: '查询版本列表', aliases: ['版本列表', '查询版本列表'],
|
|
55
|
+
method: 'GET', path: '/api/v1/projects/{id}/versions',
|
|
56
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
group: 'version', action: 'create', title: '新增版本', aliases: ['新增版本', '创建版本'],
|
|
60
|
+
method: 'POST', path: '/api/v1/projects/{id}/versions',
|
|
61
|
+
arguments: [
|
|
62
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
63
|
+
argument('name', 'body', '版本名称', 'string', true),
|
|
64
|
+
argument('description', 'body'),
|
|
65
|
+
argument('status', 'body', '1=待开始 2=开发中 3=待上线 4=已上线', 'integer'),
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
group: 'version', action: 'update', title: '修改版本信息', aliases: ['更新版本', '编辑版本'],
|
|
70
|
+
method: 'PATCH', path: '/api/v1/projects/{id}/versions/{versionId}',
|
|
71
|
+
arguments: [
|
|
72
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
73
|
+
argument('versionId', 'path', '版本 ID', 'integer', true),
|
|
74
|
+
argument('name', 'body'), argument('description', 'body'),
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
group: 'version', action: 'set-status', title: '设置版本状态', aliases: ['设置版本状态', '修改版本状态'],
|
|
79
|
+
method: 'PATCH', path: '/api/v1/projects/{id}/versions/{versionId}/status',
|
|
80
|
+
arguments: [
|
|
81
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
82
|
+
argument('versionId', 'path', '版本 ID', 'integer', true),
|
|
83
|
+
argument('status', 'body', '1=待开始 2=开发中 3=待上线 4=已上线', 'integer', true),
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
group: 'version', action: 'delete', title: '删除版本', aliases: [],
|
|
88
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/versions/{versionId}', destructive: true,
|
|
89
|
+
arguments: [
|
|
90
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
91
|
+
argument('versionId', 'path', '版本 ID', 'integer', true),
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
group: 'version', action: 'clear', title: '清空项目版本', aliases: ['清空版本'], destructive: true,
|
|
96
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/versions',
|
|
97
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
group: 'term', action: 'list', title: '查询词条列表', aliases: ['词条列表', '查询词条列表'],
|
|
101
|
+
method: 'GET', path: '/api/v1/projects/{id}/terms',
|
|
102
|
+
arguments: [
|
|
103
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
104
|
+
argument('version_id', 'query', '版本 ID 过滤', 'integer'),
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
group: 'term', action: 'create', title: '新增词条', aliases: ['新增词条', '创建词条'],
|
|
109
|
+
method: 'POST', path: '/api/v1/projects/{id}/versions/{versionId}/terms',
|
|
110
|
+
arguments: [
|
|
111
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
112
|
+
argument('versionId', 'path', '版本 ID', 'integer', true),
|
|
113
|
+
argument('name', 'body', '词条名称', 'string', true),
|
|
114
|
+
argument('description', 'body'),
|
|
115
|
+
argument('params', 'body', '参数数组或 JSON', 'array'),
|
|
116
|
+
argument('source_info', 'body', '来源信息对象', 'object'),
|
|
117
|
+
argument('translations', 'body', '{"zh-CN":"你好","en-US":"Hello"}', 'object'),
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
group: 'term', action: 'detail', title: '查询词条详情', aliases: ['词条详情', '查询词条详情'],
|
|
122
|
+
method: 'GET', path: '/api/v1/projects/{id}/terms/{termId}',
|
|
123
|
+
arguments: [
|
|
124
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
125
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
group: 'term', action: 'update', title: '修改词条基本信息', aliases: ['更新词条', '编辑词条'],
|
|
130
|
+
method: 'PATCH', path: '/api/v1/projects/{id}/terms/{termId}',
|
|
131
|
+
arguments: [
|
|
132
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
133
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
134
|
+
argument('name', 'body'), argument('description', 'body'),
|
|
135
|
+
argument('params', 'body', '', 'array'), argument('source_info', 'body', '', 'object'),
|
|
136
|
+
argument('translations', 'body', '', 'object'),
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
group: 'term', action: 'delete', title: '删除词条', aliases: [], destructive: true,
|
|
141
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/terms/{termId}',
|
|
142
|
+
arguments: [
|
|
143
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
144
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
group: 'term', action: 'set-tags', title: '设置词条标签', aliases: ['设置词条标签', '词条打标签'],
|
|
149
|
+
method: 'POST', path: '/api/v1/projects/{id}/terms/{termId}/tags',
|
|
150
|
+
arguments: [
|
|
151
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
152
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
153
|
+
argument('tag_ids', 'body', '标签 ID,全量逗号分隔', 'integer-array', true),
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
group: 'term', action: 'move-version', title: '批量移动词条版本', aliases: ['批量移动词条版本'],
|
|
158
|
+
method: 'POST', path: '/api/v1/projects/{id}/terms/version',
|
|
159
|
+
arguments: [
|
|
160
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
161
|
+
argument('term_ids', 'body', '词条 ID,逗号分隔', 'integer-array', true),
|
|
162
|
+
argument('version_id', 'body', '目标版本 ID', 'integer', true),
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
group: 'term', action: 'freeze', title: '锁定词条', aliases: ['锁定词条'],
|
|
167
|
+
method: 'POST', path: '/api/v1/projects/{id}/terms/{termId}/frozen',
|
|
168
|
+
arguments: [
|
|
169
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
170
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
group: 'term', action: 'unfreeze', title: '解锁词条', aliases: ['解除锁定词条'],
|
|
175
|
+
method: 'POST', path: '/api/v1/projects/{id}/terms/{termId}/unfrozen',
|
|
176
|
+
arguments: [
|
|
177
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
178
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
group: 'term', action: 'clear', title: '清空项目词条', aliases: ['清空词条'], destructive: true,
|
|
183
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/terms',
|
|
184
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
group: 'term', action: 'add-doc-link', title: '添加词条文档链接附件', aliases: ['添加文档链接附件'],
|
|
188
|
+
method: 'POST', path: '/api/v1/projects/{id}/terms/{termId}/attachs',
|
|
189
|
+
arguments: [
|
|
190
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
191
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
192
|
+
argument('link', 'body', '文档 URL', 'string', true),
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
group: 'term', action: 'delete-attachment', title: '删除词条附件', aliases: ['删除附件'],
|
|
197
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/attachs/{attachId}', destructive: true,
|
|
198
|
+
arguments: [
|
|
199
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
200
|
+
argument('attachId', 'path', '附件 ID', 'integer', true),
|
|
201
|
+
],
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
group: 'translation', action: 'set-content', title: '设置翻译内容', aliases: ['保存翻译内容', '写入翻译内容'],
|
|
205
|
+
method: 'POST', path: '/api/v1/projects/{id}/terms/{termId}/translations/content',
|
|
206
|
+
arguments: [
|
|
207
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
208
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
209
|
+
argument('locale', 'body', '语言代码', 'string', true),
|
|
210
|
+
argument('content', 'body', '译文内容', 'string', true),
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
group: 'translation', action: 'set-status', title: '设置单条翻译状态', aliases: ['设置翻译状态'],
|
|
215
|
+
method: 'POST', path: '/api/v1/projects/{id}/terms/{termId}/translations/status',
|
|
216
|
+
arguments: [
|
|
217
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
218
|
+
argument('termId', 'path', '词条 ID', 'integer', true),
|
|
219
|
+
argument('locale', 'body', '语言代码', 'string', true),
|
|
220
|
+
argument('status', 'body', '1=待处理 2=已机翻 3=已翻译 4=已审核', 'integer', true),
|
|
221
|
+
],
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
group: 'translation', action: 'batch-set-status', title: '批量设置翻译状态', aliases: ['批量设置翻译状态'],
|
|
225
|
+
method: 'POST', path: '/api/v1/projects/{id}/translations/statuses',
|
|
226
|
+
arguments: [
|
|
227
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
228
|
+
argument('locales', 'body', '语言数组', 'string-array', true),
|
|
229
|
+
argument('status', 'body', '', 'integer', true),
|
|
230
|
+
argument('term_ids', 'body', '可选,逗号分隔词条 ID', 'integer-array'),
|
|
231
|
+
],
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
group: 'translation', action: 'assign-translators', title: '批量指派翻译负责人', aliases: ['指派翻译负责人'],
|
|
235
|
+
method: 'POST', path: '/api/v1/projects/{id}/translations/translators',
|
|
236
|
+
arguments: [
|
|
237
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
238
|
+
argument('locales', 'body', '', 'string-array', true),
|
|
239
|
+
argument('translator_ids', 'body', '用户 ID 数组,可用重复 flag', 'integer-array', true),
|
|
240
|
+
argument('term_ids', 'body', '', 'integer-array'),
|
|
241
|
+
],
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
group: 'translation', action: 'assign-reviewers', title: '批量指派审核负责人', aliases: ['指派审核负责人'],
|
|
245
|
+
method: 'POST', path: '/api/v1/projects/{id}/translations/reviewers',
|
|
246
|
+
arguments: [
|
|
247
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
248
|
+
argument('locales', 'body', '', 'string-array', true),
|
|
249
|
+
argument('reviewer_ids', 'body', '用户 ID 数组', 'integer-array', true),
|
|
250
|
+
argument('term_ids', 'body', '', 'integer-array'),
|
|
251
|
+
],
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
group: 'translation', action: 'clear', title: '清空项目翻译', aliases: ['清空翻译'], destructive: true,
|
|
255
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/translations',
|
|
256
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
group: 'tag-group', action: 'list', title: '查询标签组树', aliases: ['标签组列表', '查询标签组'],
|
|
260
|
+
method: 'GET', path: '/api/v1/projects/{id}/tag-groups',
|
|
261
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
group: 'tag-group', action: 'create', title: '新增标签组', aliases: ['新增标签组', '创建标签组'],
|
|
265
|
+
method: 'POST', path: '/api/v1/projects/{id}/tag-groups',
|
|
266
|
+
arguments: [
|
|
267
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
268
|
+
argument('name', 'body', '', 'string', true),
|
|
269
|
+
argument('color', 'body', '#RRGGBB'), argument('single_choice', 'body', '', 'boolean'),
|
|
270
|
+
argument('required', 'body', '', 'boolean'), argument('customizable', 'body', '', 'boolean'),
|
|
271
|
+
argument('description', 'body'),
|
|
272
|
+
],
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
group: 'tag-group', action: 'update', title: '修改标签组', aliases: ['更新标签组'],
|
|
276
|
+
method: 'PATCH', path: '/api/v1/projects/{id}/tag-groups/{groupId}',
|
|
277
|
+
arguments: [
|
|
278
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
279
|
+
argument('groupId', 'path', '标签组 ID', 'integer', true),
|
|
280
|
+
argument('name', 'body'), argument('color', 'body'), argument('single_choice', 'body', '', 'boolean'),
|
|
281
|
+
argument('required', 'body', '', 'boolean'), argument('customizable', 'body', '', 'boolean'),
|
|
282
|
+
argument('description', 'body'),
|
|
283
|
+
],
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
group: 'tag-group', action: 'delete', title: '删除标签组', aliases: [], destructive: true,
|
|
287
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/tag-groups/{groupId}',
|
|
288
|
+
arguments: [
|
|
289
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
290
|
+
argument('groupId', 'path', '标签组 ID', 'integer', true),
|
|
291
|
+
],
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
group: 'tag-group', action: 'clear', title: '清空项目标签组', aliases: ['清空标签组'], destructive: true,
|
|
295
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/tag-groups',
|
|
296
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
group: 'tag', action: 'create', title: '新增标签', aliases: ['新增标签', '创建标签'],
|
|
300
|
+
method: 'POST', path: '/api/v1/projects/{id}/tag-groups/{groupId}/tags',
|
|
301
|
+
arguments: [
|
|
302
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
303
|
+
argument('groupId', 'path', '标签组 ID', 'integer', true),
|
|
304
|
+
argument('name', 'body', '标签名称', 'string', true),
|
|
305
|
+
],
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
group: 'tag', action: 'update', title: '修改标签', aliases: ['更新标签'],
|
|
309
|
+
method: 'PATCH', path: '/api/v1/projects/{id}/tags/{tagId}',
|
|
310
|
+
arguments: [
|
|
311
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
312
|
+
argument('tagId', 'path', '标签 ID', 'integer', true),
|
|
313
|
+
argument('name', 'body', '', 'string', true),
|
|
314
|
+
],
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
group: 'tag', action: 'delete', title: '删除标签', aliases: [], destructive: true,
|
|
318
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/tags/{tagId}',
|
|
319
|
+
arguments: [
|
|
320
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
321
|
+
argument('tagId', 'path', '标签 ID', 'integer', true),
|
|
322
|
+
],
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
group: 'tag', action: 'clear', title: '清空项目标签', aliases: ['清空标签'], destructive: true,
|
|
326
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/tags',
|
|
327
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
group: 'permission', action: 'list', title: '查询项目权限列表', aliases: ['权限列表', '查询权限列表'],
|
|
331
|
+
method: 'GET', path: '/api/v1/projects/{id}/permissions',
|
|
332
|
+
arguments: [
|
|
333
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
334
|
+
argument('user_id', 'query', '', 'integer'), argument('perm_type', 'query', ''),
|
|
335
|
+
argument('locale', 'query'),
|
|
336
|
+
],
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
group: 'permission', action: 'create', title: '新增项目权限', aliases: ['新增权限', '授权项目成员'],
|
|
340
|
+
method: 'POST', path: '/api/v1/projects/{id}/permissions',
|
|
341
|
+
arguments: [
|
|
342
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
343
|
+
argument('user_id', 'body', '目标用户 ID', 'integer', true),
|
|
344
|
+
argument('perm_type', 'body', '1=管理员 2=成员 3=翻译师 4=审核师', 'integer', true),
|
|
345
|
+
argument('locale', 'body', '翻译师/审核师必填'),
|
|
346
|
+
],
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
group: 'permission', action: 'delete', title: '删除一条项目权限', aliases: ['删除权限'], destructive: true,
|
|
350
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/permissions/{permId}',
|
|
351
|
+
arguments: [
|
|
352
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
353
|
+
argument('permId', 'path', '权限记录 ID', 'integer', true),
|
|
354
|
+
],
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
group: 'permission', action: 'clear', title: '清空项目权限', aliases: ['清空权限'], destructive: true,
|
|
358
|
+
method: 'DELETE', path: '/api/v1/projects/{id}/permissions',
|
|
359
|
+
arguments: [argument('id', 'path', '项目 ID', 'integer', true)],
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
group: 'log', action: 'list', title: '查询操作日志', aliases: ['操作日志列表', '查询日志'],
|
|
363
|
+
method: 'GET', path: '/api/v1/projects/{id}/logs',
|
|
364
|
+
arguments: [
|
|
365
|
+
argument('id', 'path', '项目 ID', 'integer', true),
|
|
366
|
+
argument('page', 'query', '', 'integer'), argument('page_size', 'query', '', 'integer'),
|
|
367
|
+
argument('op_type', 'query', ''), argument('op_target', 'query', ''),
|
|
368
|
+
argument('operator_id', 'query', '', 'integer'),
|
|
369
|
+
],
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
group: 'profile', action: 'show', title: '查看我的资料', aliases: ['查看我的资料', '我的资料'],
|
|
373
|
+
method: 'GET', path: '/api/v1/auth/profile', arguments: [],
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
group: 'config', action: 'locales', title: '查询支持的语言', aliases: ['语言列表', '查询支持语言'],
|
|
377
|
+
method: 'GET', path: '/api/v1/config/locales', arguments: [],
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
group: 'config', action: 'users', title: '查询可选用户列表', aliases: ['可选用户列表'],
|
|
381
|
+
method: 'GET', path: '/api/v1/config/users', arguments: [],
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
group: 'user', action: 'list', title: '查询系统用户列表', aliases: ['用户列表', '查询用户列表'],
|
|
385
|
+
method: 'GET', path: '/api/v1/users',
|
|
386
|
+
arguments: [
|
|
387
|
+
argument('page', 'query', '', 'integer'), argument('page_size', 'query', '', 'integer'),
|
|
388
|
+
argument('keyword', 'query'), argument('frozen', 'query'),
|
|
389
|
+
argument('user_type', 'query', '1=普通 2=超管 3=应用', 'integer'),
|
|
390
|
+
],
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
group: 'user', action: 'update', title: '修改系统用户', aliases: ['更新系统用户'],
|
|
394
|
+
method: 'PATCH', path: '/api/v1/users/{id}',
|
|
395
|
+
arguments: [
|
|
396
|
+
argument('id', 'path', '用户 ID', 'integer', true),
|
|
397
|
+
argument('name', 'body'), argument('name_en', 'body'), argument('email', 'body'),
|
|
398
|
+
argument('avatar', 'body'), argument('open_id', 'body'),
|
|
399
|
+
],
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
group: 'user', action: 'set-type', title: '设置系统用户类型', aliases: ['设置用户类型'],
|
|
403
|
+
method: 'PATCH', path: '/api/v1/users/{id}/type',
|
|
404
|
+
arguments: [
|
|
405
|
+
argument('id', 'path', '用户 ID', 'integer', true),
|
|
406
|
+
argument('user_type', 'body', '1=普通 2=超管 3=应用', 'integer', true),
|
|
407
|
+
],
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
group: 'user', action: 'reset-token', title: '重置指定用户的 token', aliases: ['重置用户token'],
|
|
411
|
+
method: 'POST', path: '/api/v1/users/{id}/reset-token',
|
|
412
|
+
arguments: [argument('id', 'path', '用户 ID', 'integer', true)],
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
group: 'user', action: 'set-frozen', title: '冻结或解冻系统用户', aliases: ['冻结解冻用户'],
|
|
416
|
+
method: 'POST', path: '/api/v1/users/{id}/frozen',
|
|
417
|
+
arguments: [
|
|
418
|
+
argument('id', 'path', '用户 ID', 'integer', true),
|
|
419
|
+
argument('frozen', 'body', 'true=冻结 false=解冻', 'boolean', true),
|
|
420
|
+
],
|
|
421
|
+
},
|
|
422
|
+
];
|
|
423
|
+
export function findBusinessCommand(group, action) {
|
|
424
|
+
return BUSINESS_COMMANDS.find((command) => command.group === group && command.action === action);
|
|
425
|
+
}
|
|
426
|
+
/** 中文短语可能被 shell 按空格拆成多个 argv;返回前缀一定匹配时保留原文并整体消费 */
|
|
427
|
+
export async function findOperation(client, command) {
|
|
428
|
+
let offset = 0;
|
|
429
|
+
do {
|
|
430
|
+
const result = await client.callTool('list_api_operations', { limit: 200, offset });
|
|
431
|
+
const wrapped = result.structuredContent;
|
|
432
|
+
const operations = wrapped?.operations ?? [];
|
|
433
|
+
const match = operations.find((item) => item.method === command.method && normalize(item.path) === normalize(command.path));
|
|
434
|
+
if (match)
|
|
435
|
+
return match.id;
|
|
436
|
+
if (!operations.length || typeof wrapped.total !== 'number')
|
|
437
|
+
break;
|
|
438
|
+
offset += Math.max(operations.length, wrapped.returned ?? operations.length);
|
|
439
|
+
} while (offset < 10_000);
|
|
440
|
+
throw new Error(`服务器目录中未找到业务接口:${command.method} ${command.path}`);
|
|
441
|
+
}
|
|
442
|
+
function normalize(path) {
|
|
443
|
+
return `/${path.replace(/^\/+|\/+$/g, '')}`;
|
|
444
|
+
}
|
|
445
|
+
//# sourceMappingURL=business-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-catalog.js","sourceRoot":"","sources":["../../../src/lib/business-catalog.ts"],"names":[],"mappings":"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"}
|