@eevee-ta/cli 1.0.1 → 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 (32) hide show
  1. package/README.md +175 -9
  2. package/assets/skills/eevee-integration/SKILL.md +46 -0
  3. package/assets/skills/eevee-integration/agents/openai.yaml +3 -0
  4. package/assets/skills/eevee-integration/references/intake.md +87 -0
  5. package/assets/skills/eevee-integration/references/java-springboot.md +182 -0
  6. package/assets/skills/eevee-integration/references/umijs.md +210 -0
  7. package/assets/skills/eevee-mcp/SKILL.md +74 -5
  8. package/assets/skills/eevee-mcp/reference.md +48 -3
  9. package/dist/src/bin/cli.js +23 -7
  10. package/dist/src/bin/cli.js.map +1 -1
  11. package/dist/src/commands/business-command.js +174 -2
  12. package/dist/src/commands/business-command.js.map +1 -1
  13. package/dist/src/commands/i18n-command.js +194 -0
  14. package/dist/src/commands/i18n-command.js.map +1 -0
  15. package/dist/src/commands/skill-command.js +42 -26
  16. package/dist/src/commands/skill-command.js.map +1 -1
  17. package/dist/src/lib/business-catalog.js +50 -20
  18. package/dist/src/lib/business-catalog.js.map +1 -1
  19. package/dist/src/lib/i18n-exporter.js +402 -0
  20. package/dist/src/lib/i18n-exporter.js.map +1 -0
  21. package/dist/src/lib/i18n-scanner.js +1172 -0
  22. package/dist/src/lib/i18n-scanner.js.map +1 -0
  23. package/dist/src/lib/mcp-client.js +1 -1
  24. package/dist/src/lib/mcp-client.js.map +1 -1
  25. package/dist/src/lib/skill-installer.js +19 -10
  26. package/dist/src/lib/skill-installer.js.map +1 -1
  27. package/dist/src/lib/updater.js +4 -4
  28. package/dist/src/lib/updater.js.map +1 -1
  29. package/dist/src/lib/version.js +1 -1
  30. package/dist/src/lib/version.js.map +1 -1
  31. package/install.sh +3 -3
  32. package/package.json +2 -2
@@ -165,6 +165,126 @@ function question(terminal, prompt) {
165
165
  terminal.question(prompt, (answer) => resolve(answer));
166
166
  });
167
167
  }
168
+ function moveVersionValues(values) {
169
+ const id = values.get('id');
170
+ const termIds = values.get('term_ids');
171
+ const versionId = values.get('version_id');
172
+ if (!Array.isArray(termIds) || termIds.length === 0)
173
+ throw new CliError('--term-ids 不能为空', 64);
174
+ if (!termIds.every((item) => typeof item === 'number' && Number.isSafeInteger(item) && item > 0)) {
175
+ throw new CliError('--term-ids 必须是正整数数组', 64);
176
+ }
177
+ if (typeof id !== 'number' || !Number.isSafeInteger(id) || id <= 0)
178
+ throw new CliError('--id 必须是正整数', 64);
179
+ if (typeof versionId !== 'number' || !Number.isSafeInteger(versionId) || versionId <= 0) {
180
+ throw new CliError('--version-id 必须是正整数', 64);
181
+ }
182
+ const rawStrategy = values.get('conflict_strategy');
183
+ if (rawStrategy !== undefined && rawStrategy !== 'overwrite' && rawStrategy !== 'ignore') {
184
+ throw new CliError('--conflict-strategy 只支持 overwrite 或 ignore', 64);
185
+ }
186
+ const rawDecisions = values.get('conflict_decisions');
187
+ if (rawDecisions !== undefined && (typeof rawDecisions !== 'object' || rawDecisions === null || Array.isArray(rawDecisions))) {
188
+ throw new CliError('--conflict-decisions 必须是 JSON 对象', 64);
189
+ }
190
+ if (rawStrategy !== undefined && rawDecisions !== undefined) {
191
+ throw new CliError('--conflict-strategy 与 --conflict-decisions 不能同时传入', 64);
192
+ }
193
+ const decisions = rawDecisions === undefined ? undefined : normalizeConflictDecisions(rawDecisions);
194
+ const expected = values.get('expected_conflict_term_ids');
195
+ if (expected !== undefined
196
+ && (!Array.isArray(expected) || !expected.every((item) => typeof item === 'number' && Number.isSafeInteger(item) && item > 0))) {
197
+ throw new CliError('--expected-conflict-term-ids 必须是正整数数组', 64);
198
+ }
199
+ return {
200
+ id,
201
+ termIds: [...new Set(termIds)],
202
+ versionId,
203
+ ...(rawStrategy === undefined ? {} : { conflictStrategy: rawStrategy }),
204
+ ...(decisions === undefined ? {} : { conflictDecisions: decisions }),
205
+ ...(expected === undefined ? {} : { expectedConflictTermIds: [...new Set(expected)] }),
206
+ };
207
+ }
208
+ function normalizeConflictDecisions(input) {
209
+ const output = {};
210
+ for (const [key, value] of Object.entries(input)) {
211
+ const termId = Number(key);
212
+ if (!Number.isSafeInteger(termId) || termId <= 0) {
213
+ throw new CliError('--conflict-decisions 的 key 必须是正整数词条 ID', 64);
214
+ }
215
+ if (value !== 'overwrite' && value !== 'ignore') {
216
+ throw new CliError('--conflict-decisions 的 value 只支持 overwrite 或 ignore', 64);
217
+ }
218
+ output[String(termId)] = value;
219
+ }
220
+ return output;
221
+ }
222
+ function parseConflicts(value) {
223
+ if (!Array.isArray(value))
224
+ throw new CliError('服务器返回的冲突列表格式不正确', 1);
225
+ return value.map((item) => {
226
+ if (!item || typeof item !== 'object' || Array.isArray(item)) {
227
+ throw new CliError('服务器返回的冲突条目格式不正确', 1);
228
+ }
229
+ const conflict = item;
230
+ if (typeof conflict.source_term_id !== 'number' || !Number.isSafeInteger(conflict.source_term_id)) {
231
+ throw new CliError('服务器返回的冲突条目缺少 source_term_id', 1);
232
+ }
233
+ return conflict;
234
+ });
235
+ }
236
+ function assertExpectedConflicts(conflicts, expected) {
237
+ if (expected === undefined)
238
+ return;
239
+ const actual = conflicts.map((item) => Number(item.source_term_id));
240
+ const same = actual.length === expected.length && [...new Set(expected)].every((id) => actual.includes(id));
241
+ if (!same)
242
+ throw new CliError('目标版本冲突情况与 --expected-conflict-term-ids 不一致,请重新预检', 1);
243
+ }
244
+ function assertDecisionsCoverConflicts(conflicts, decisions) {
245
+ const actual = new Set(conflicts.map((item) => String(item.source_term_id)));
246
+ const provided = new Set(Object.keys(decisions));
247
+ if (actual.size !== provided.size || [...actual].some((id) => !provided.has(id))) {
248
+ throw new CliError('--conflict-decisions 必须且只能覆盖当前全部冲突词条', 64);
249
+ }
250
+ }
251
+ function renderConflicts(conflicts) {
252
+ return conflicts.map((item, index) => {
253
+ const sourceId = item.source_term_id ?? '-';
254
+ const source = `${item.source_name ?? '-'} (#${sourceId}, v${item.source_version_id ?? '-'}, ${item.source_updated_at ?? '-'})`;
255
+ const target = `${item.target_name ?? '-'} (#${item.target_term_id ?? '-'}, v${item.target_version_id ?? '-'}, ${item.target_updated_at ?? '-'})`;
256
+ return `${index + 1}. ${source} -> 目标同名: ${target}`;
257
+ }).join('\n');
258
+ }
259
+ async function chooseConflictPlan(conflicts) {
260
+ console.log(`发现 ${conflicts.length} 个目标版本同名词条冲突:\n${renderConflicts(conflicts)}\n`);
261
+ const terminal = createInterface({ input: process.stdin, output: process.stdout });
262
+ try {
263
+ let answer = '';
264
+ while (!['', '1', '2', '3', 'q'].includes(answer.trim().toLowerCase())) {
265
+ answer = await question(terminal, '选择处理方案 [1=全部忽略(默认) 2=全部覆盖 3=逐项选择 q=取消]: ');
266
+ }
267
+ const choice = answer.trim().toLowerCase() || '1';
268
+ if (choice === 'q')
269
+ throw new CliError('已取消操作', 0);
270
+ if (choice === '1')
271
+ return { conflict_strategy: 'ignore' };
272
+ if (choice === '2')
273
+ return { conflict_strategy: 'overwrite' };
274
+ const decisions = {};
275
+ for (const [index, conflict] of conflicts.entries()) {
276
+ let itemAnswer = '';
277
+ while (!['1', '2'].includes(itemAnswer.trim().toLowerCase())) {
278
+ itemAnswer = await question(terminal, `第 ${index + 1}/${conflicts.length} 项 ${conflict.source_name} (#${conflict.source_term_id}) [1=忽略 2=覆盖]: `);
279
+ }
280
+ decisions[String(conflict.source_term_id)] = itemAnswer.trim().toLowerCase() === '1' ? 'ignore' : 'overwrite';
281
+ }
282
+ return { conflict_decisions: decisions };
283
+ }
284
+ finally {
285
+ terminal.close();
286
+ }
287
+ }
168
288
  function buildPath(command, values) {
169
289
  return command.path.replace(/\{([^}]+)\}/g, (_, name) => {
170
290
  const value = values.get(name);
@@ -184,10 +304,60 @@ export async function runBusiness(command, input) {
184
304
  if (!Number.isFinite(timeout) || timeout <= 0)
185
305
  throw new CliError('--timeout 必须是正整数毫秒', 64);
186
306
  const client = new McpClient(config, timeout);
307
+ if (command.group === 'term' && command.action === 'move-version') {
308
+ return await runMoveVersion(command, parsed, client);
309
+ }
310
+ const result = await callBusinessOperation(client, command, parsed.values);
311
+ reportBusinessResult(command, parsed, result);
312
+ }
313
+ async function runMoveVersion(command, parsed, client) {
314
+ const move = moveVersionValues(parsed.values);
315
+ const checkCommand = BUSINESS_COMMANDS.find((item) => item.group === 'term' && item.action === 'check-version-conflicts');
316
+ if (!checkCommand)
317
+ throw new Error('CLI 缺少词条版本冲突预检命令定义');
318
+ const checkValues = new Map([
319
+ ['id', move.id],
320
+ ['term_ids', move.termIds],
321
+ ['version_id', move.versionId],
322
+ ]);
323
+ const checkResult = await callBusinessOperation(client, checkCommand, checkValues);
324
+ if (checkResult.isError)
325
+ throw new CliError(`「${checkCommand.title}」执行失败`, 1);
326
+ const conflicts = parseConflicts(unwrapBusinessResult(checkResult));
327
+ assertExpectedConflicts(conflicts, move.expectedConflictTermIds);
328
+ if (move.conflictDecisions)
329
+ assertDecisionsCoverConflicts(conflicts, move.conflictDecisions);
330
+ const nextValues = new Map(parsed.values);
331
+ nextValues.set('expected_conflict_term_ids', conflicts.map((item) => Number(item.source_term_id)));
332
+ if (conflicts.length > 0) {
333
+ let choice;
334
+ if (move.conflictDecisions)
335
+ choice = { conflict_decisions: move.conflictDecisions };
336
+ else if (move.conflictStrategy)
337
+ choice = { conflict_strategy: move.conflictStrategy };
338
+ else if (process.stdin.isTTY && process.stdout.isTTY)
339
+ choice = await chooseConflictPlan(conflicts);
340
+ else
341
+ choice = { conflict_strategy: 'ignore' };
342
+ if (choice.conflict_strategy)
343
+ nextValues.set('conflict_strategy', choice.conflict_strategy);
344
+ else if (choice.conflict_decisions) {
345
+ assertDecisionsCoverConflicts(conflicts, choice.conflict_decisions);
346
+ nextValues.set('conflict_decisions', choice.conflict_decisions);
347
+ }
348
+ }
349
+ else {
350
+ nextValues.delete('conflict_strategy');
351
+ nextValues.delete('conflict_decisions');
352
+ }
353
+ const result = await callBusinessOperation(client, command, nextValues);
354
+ reportBusinessResult(command, parsed, result);
355
+ }
356
+ async function callBusinessOperation(client, command, values) {
187
357
  const parameters = {};
188
358
  const body = {};
189
359
  for (const argument of command.arguments) {
190
- const value = parsed.values.get(argument.name);
360
+ const value = values.get(argument.name);
191
361
  if (value === undefined)
192
362
  continue;
193
363
  if (argument.location === 'body')
@@ -196,11 +366,13 @@ export async function runBusiness(command, input) {
196
366
  parameters[argument.name] = value;
197
367
  }
198
368
  const operationId = await findOperation(client, command);
199
- const result = await client.callTool('call_api_operation', {
369
+ return await client.callTool('call_api_operation', {
200
370
  operation_id: operationId,
201
371
  parameters,
202
372
  body,
203
373
  });
374
+ }
375
+ function reportBusinessResult(command, parsed, result) {
204
376
  const human = parsed.controls.get('json') !== true && parsed.controls.get('raw') !== true;
205
377
  const text = human ? renderBusinessResult(result) : JSON.stringify({ ok: !result.isError, data: unwrapBusinessResult(result) }, null, 2);
206
378
  if (result.isError) {
@@ -1 +1 @@
1
- {"version":3,"file":"business-command.js","sourceRoot":"","sources":["../../../src/commands/business-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAOnF,MAAM,UAAU,uBAAuB,CAAC,KAAwB;IAC9D,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAC9B,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACnD,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,CAAC,MAAM,CACzD,CAAC;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAOD,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,QAA0B,EAAE,SAA4B;IAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;IACvC,MAAM,aAAa,GAAG,GAAW,EAAE;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,QAAQ,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1G,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;oBAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,QAAQ,CAAC,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC3F,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,QAAQ,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,QAAQ,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACzE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1E,MAAM,IAAI,QAAQ,CAAC,QAAQ,QAAQ,CAAC,IAAI,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAc,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAAC,QAAQ,QAAQ,CAAC,IAAI,YAAY,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC;QACrJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAwB,EACxB,OAAwB;IAExB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,WAA+B,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,MAAM,CAAC;QACjB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC3B,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI;eAC5G,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,GAAG,KAAK,MAAM;gBAAE,SAAS;YAC7B,MAAM,IAAI,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,YAAY,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACvE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpF,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,QAAQ,CAAC,QAAQ,SAAS,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;IACvF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,WAAW,CAAC,MAAM;YAAE,SAAS;QAC3E,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9D,QAAQ,CAAC,QAAQ;WACd,QAAQ,CAAC,QAAQ,KAAK,MAAM;WAC5B,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CACjC,CAAC;IACF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAClE,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,EAAE,CAAC;IACX,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,gBAAgB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ;YAAE,SAAS,CAAC,gDAAgD;QACzE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7H,CAAC;IACD,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,OAAwB,EAAE,MAAsC;IACtF,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS;SAC9B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAwB,EAAE,OAAgB;IAC1E,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO;QAAE,OAAO;IAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,IAAI,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,QAAQ,OAAO,CAAC,KAAK,cAAc,CAAC,CAAC;QAC7E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,QAA4C,EAAE,MAAc;IAC5E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,OAAwB,EAAE,MAAsC;IACjF,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB,EAAE,KAAwB;IAClF,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;QACxC,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC5C,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;KACjD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9C,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,MAAM,IAAI,GAA8B,EAAE,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;;YACzD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;QACzD,YAAY,EAAE,WAAW;QACzB,UAAU;QACV,IAAI;KACgB,CAAC,CAAC;IAExB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC1F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,IAAI,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,OAA8C,EAAE,IAAY;IACnF,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAID,SAAS,oBAAoB,CAAC,MAAe;IAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiD,CAAC;IAC5E,IAAI,UAAU,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC;QACnE,OAAO,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC;IAC9E,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;YACxD,IAAI,UAAU,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,CAAC;gBAAE,OAAO,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC;QACrG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,UAAU,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe;IAC3C,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACzH,OAAO,WAAW,CAAC,IAAsC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACpG,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,IAAoC;IACvD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/H,MAAM,IAAI,GAAG,CAAC,MAAgB,EAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5J,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK;;;UAGpB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM;;EAEvC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG;YACZ,IAAI,QAAQ,CAAC,QAAQ,GAAG;YACxB,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YAC/B,KAAK,UAAU,EAAE;YACjB,QAAQ,CAAC,WAAW;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YAC1C,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;SAC/D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAA2B;QAC1C,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,YAAY;QACzB,GAAG,EAAE,MAAM;QACX,UAAU,EAAE,aAAa;QACzB,GAAG,EAAE,MAAM;QACX,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,OAAO;KACd,CAAC;IAEF,MAAM,KAAK,GAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,KAAK,YAAY,CAAC,CAAC;QACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS;iBAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC;iBACnF,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;iBACjF,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS;iBACpC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC;iBAClD,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC1D,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,MAAM,GAAG;gBACb,aAAa;gBACb,KAAK;gBACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;aACrC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG;QACZ,UAAU;QACV,sBAAsB;QACtB,0DAA0D;QAC1D,qCAAqC;QACrC,mGAAmG;QACnG,2CAA2C;QAC3C,EAAE;QACF,iFAAiF;QACjF,8EAA8E;QAC9E,EAAE;KACH,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"business-command.js","sourceRoot":"","sources":["../../../src/commands/business-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import path from 'node:path';
2
+ import { CliError, hasFlag, optionalOption, parseArgs } from '../lib/args.js';
3
+ import { exportProjectI18n } from '../lib/i18n-exporter.js';
4
+ import { scanProjectI18n } from '../lib/i18n-scanner.js';
5
+ function repeatedValues(argv, name) {
6
+ const values = [];
7
+ for (let index = 0; index < argv.length; index++) {
8
+ const item = argv[index];
9
+ if (item === '--')
10
+ break;
11
+ if (item === `--${name}`) {
12
+ const value = argv[index + 1];
13
+ if (value)
14
+ values.push(value);
15
+ }
16
+ else if (item.startsWith(`--${name}=`)) {
17
+ values.push(item.slice(name.length + 3));
18
+ }
19
+ }
20
+ return values;
21
+ }
22
+ function red(value) {
23
+ return `\u001B[31m${value}\u001B[0m`;
24
+ }
25
+ export function i18nScanUsage() {
26
+ console.log(`EEVEE 国际化命令。
27
+
28
+ 用法:
29
+ eevee i18n scan [project-dir] [options]
30
+ eevee i18n export [project-dir] [options]
31
+
32
+ scan:
33
+ 扫描项目源码中的硬编码词条,兼容 JavaScript/TypeScript/JSX/Vue 与 Java Spring Boot 项目。
34
+
35
+ 配置:
36
+ 默认依次查找 intl.json、.eevee/i18n.json、eevee.i18n.json。
37
+ 旧版 outPaths / includes / excludes / excludeAscii / tagMatchMap /
38
+ excludePropertys / execludeTrack 配置保持兼容。
39
+
40
+ Spring Boot:
41
+ 默认包含 src/main/java/**/*.java 和模板文件;
42
+ 会跳过 Java 注释、Thymeleaf/JSP 表达式和 message tag;
43
+ 支持 messages*_zh*_CN*.properties 词条文件。
44
+
45
+ 选项:
46
+ --config <file> 指定国际化检查配置
47
+ --include <glob> 覆盖扫描 include,可重复
48
+ --exclude <glob> 追加扫描 exclude,可重复
49
+ --check-call-arguments 检查普通函数调用里的字符串(旧版插件默认跳过)
50
+ --check-annotations 预留:检查 Java 注解字符串
51
+ --json 输出 JSON 结果
52
+ --no-fail 有问题时也返回退出码 0
53
+
54
+ export:
55
+ 按 intl.json 的 outPaths/projectIds/tags 从服务端导出词条。
56
+
57
+ --target <dev|build> 输出目录:dev 使用 path,build 使用 buildPath;默认 dev
58
+ --env <offline|online> --target 的别名:offline=dev,online=build
59
+ --dry-run 只计算结果,不写入或清理文件
60
+ --url URL 覆盖 MCP 服务地址
61
+ --token TOKEN 覆盖认证 token
62
+ --timeout MS 请求超时;默认 60000
63
+ --json 输出 JSON 结果
64
+
65
+ 配置支持 format=json/js/ts/property/properties、groupByTag、clean、
66
+ localeAliases、path、buildPath、token、url。branchIds 配置版本 ID 数组,[] 表示全部;
67
+ tags=[] 表示全部词条,tags=[null] 表示无标签词条。
68
+
69
+ 示例:
70
+ eevee i18n scan
71
+ eevee i18n scan /path/to/spring-boot-service
72
+ eevee i18n scan --include 'src/main/java/**/*.java' --json
73
+ eevee i18n scan --include 'src/**/*.{ts,tsx}' --include 'src/**/*.{js,jsx}'
74
+ eevee i18n export
75
+ eevee i18n export --target build
76
+ eevee i18n export --env online --dry-run --json`);
77
+ }
78
+ export async function runI18n(subcommand, argv) {
79
+ if (argv.includes('--help') || argv.includes('-h')) {
80
+ i18nScanUsage();
81
+ return;
82
+ }
83
+ if (subcommand === 'export')
84
+ return runI18nExport(argv);
85
+ if (subcommand !== 'scan')
86
+ throw new CliError('用法: eevee i18n <scan|export>', 64);
87
+ const parsed = parseArgs(argv, [
88
+ { long: 'config', value: true },
89
+ { long: 'include', value: true },
90
+ { long: 'exclude', value: true },
91
+ { long: 'check-call-arguments' },
92
+ { long: 'check-annotations' },
93
+ { long: 'json' },
94
+ { long: 'no-fail' },
95
+ ]);
96
+ const projectDirectory = path.resolve(parsed.positionals[0] ?? process.cwd());
97
+ const configValue = optionalOption(parsed.options, 'config');
98
+ const result = await scanProjectI18n(projectDirectory, {
99
+ configPath: configValue ? path.resolve(projectDirectory, configValue) : undefined,
100
+ includes: repeatedValues(argv, 'include'),
101
+ excludes: repeatedValues(argv, 'exclude'),
102
+ checkCallArguments: hasFlag(parsed.options, 'check-call-arguments') || undefined,
103
+ checkAnnotations: hasFlag(parsed.options, 'check-annotations') || undefined,
104
+ });
105
+ if (hasFlag(parsed.options, 'json')) {
106
+ console.log(JSON.stringify({ ok: result.ok, data: result }, null, 2));
107
+ }
108
+ else {
109
+ printHumanResult(result);
110
+ }
111
+ if (!result.ok && !hasFlag(parsed.options, 'no-fail'))
112
+ process.exitCode = 1;
113
+ }
114
+ async function runI18nExport(argv) {
115
+ const parsed = parseArgs(argv, [
116
+ { long: 'config', value: true },
117
+ { long: 'target', value: true },
118
+ { long: 'env', value: true },
119
+ { long: 'url', value: true },
120
+ { long: 'token', value: true },
121
+ { long: 'timeout', value: true },
122
+ { long: 'dry-run' },
123
+ { long: 'json' },
124
+ ]);
125
+ const targetValue = optionalOption(parsed.options, 'target');
126
+ const envValue = optionalOption(parsed.options, 'env');
127
+ if (targetValue && envValue)
128
+ throw new CliError('--target 和 --env 只能选择一个', 64);
129
+ const target = normalizeExportTarget(targetValue ?? envValue);
130
+ const timeoutValue = optionalOption(parsed.options, 'timeout');
131
+ const timeout = timeoutValue ? Number(timeoutValue) : undefined;
132
+ if (timeout !== undefined && (!Number.isSafeInteger(timeout) || timeout <= 0)) {
133
+ throw new CliError('--timeout 必须是正整数毫秒', 64);
134
+ }
135
+ const projectDirectory = path.resolve(parsed.positionals[0] ?? process.cwd());
136
+ const configValue = optionalOption(parsed.options, 'config');
137
+ const result = await exportProjectI18n(projectDirectory, {
138
+ configPath: configValue ? path.resolve(projectDirectory, configValue) : undefined,
139
+ target,
140
+ url: optionalOption(parsed.options, 'url'),
141
+ token: optionalOption(parsed.options, 'token'),
142
+ timeout,
143
+ dryRun: hasFlag(parsed.options, 'dry-run'),
144
+ });
145
+ if (hasFlag(parsed.options, 'json')) {
146
+ console.log(JSON.stringify({ ok: true, data: result }, null, 2));
147
+ return;
148
+ }
149
+ printExportResult(result);
150
+ }
151
+ function normalizeExportTarget(value) {
152
+ if (!value || value === 'dev' || value === 'offline')
153
+ return 'dev';
154
+ if (value === 'build' || value === 'online')
155
+ return 'build';
156
+ throw new CliError('--target/--env 只支持 dev、build、offline、online', 64);
157
+ }
158
+ function printExportResult(result) {
159
+ console.log(`配置: ${result.configPath}`);
160
+ for (const output of result.outputs) {
161
+ console.log('');
162
+ console.log(`输出目录: ${output.directory}`);
163
+ console.log(`目标: ${output.target === 'dev' ? '开发目录' : '线上目录'}`);
164
+ console.log(`格式: ${output.format};按标签分组: ${output.groupByTag ? '是' : '否'};清理旧文件: ${output.clean ? '是' : '否'}`);
165
+ console.log(`语言: ${output.locales.join(', ')}`);
166
+ console.log(`覆盖重复 key: ${output.overwrites}`);
167
+ for (const project of output.projects) {
168
+ const tags = project.tags.length ? project.tags.map((tag) => tag ?? '无标签').join(', ') : '全部';
169
+ const branches = project.branches.length ? project.branches.join(', ') : '全部';
170
+ console.log(`项目 ${project.projectId} / 版本 ${branches}: ${project.terms} 条,标签: ${tags}`);
171
+ }
172
+ for (const file of output.files)
173
+ console.log(` ${file.file} ${file.keys} keys`);
174
+ }
175
+ }
176
+ function printHumanResult(result) {
177
+ console.log(`项目: ${result.projectRoot}`);
178
+ console.log(`配置: ${result.configPath ?? '(未找到,使用默认规则)'}`);
179
+ console.log(`扫描文件: ${result.scannedFiles}`);
180
+ console.log(`平台词条: ${result.dictionaryTerms}(标签: ${result.dictionaryTags.join(', ') || '-'})`);
181
+ console.log(`问题数量: ${result.issues.length ? red(String(result.issues.length)) : result.issues.length}`);
182
+ if (result.issues.length) {
183
+ console.log('');
184
+ for (const issue of result.issues) {
185
+ console.log(red(`${issue.file}:${issue.line}:${issue.column} [${issue.type}/${issue.language}] ${issue.message}`));
186
+ }
187
+ console.log('');
188
+ console.log(red('✖ 发现未国际化词条'));
189
+ }
190
+ else {
191
+ console.log('✓ 未发现国际化问题');
192
+ }
193
+ }
194
+ //# sourceMappingURL=i18n-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-command.js","sourceRoot":"","sources":["../../../src/commands/i18n-command.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { CliError, hasFlag, optionCount, optionalOption, parseArgs } from '../lib/args.js';
2
- import { allSkillAgents, bundledSkillDirectory, detectInstalledAgents, discoverInstalls, destinationFor, installSkill, parseAgents, SKILL_AGENTS, } from '../lib/skill-installer.js';
2
+ import { allSkillAgents, BUNDLED_SKILL_NAMES, bundledSkillDirectory, detectInstalledAgents, discoverInstalls, destinationFor, installSkill, parseAgents, parseSkillName, SKILL_AGENTS, } from '../lib/skill-installer.js';
3
3
  import { readFile, rm, stat } from 'node:fs/promises';
4
4
  import path from 'node:path';
5
+ const SKILL_ARGUMENT = { long: 'skill', value: true };
5
6
  export async function runSkills(subcommand, argv) {
6
7
  if (subcommand === 'list')
7
8
  return list();
8
9
  if (subcommand === 'paths')
9
- return paths();
10
+ return paths(argv);
10
11
  if (subcommand === 'info')
11
- return info();
12
+ return info(argv);
12
13
  if (subcommand === 'agents')
13
14
  return clients();
14
15
  if (subcommand === 'install')
@@ -19,8 +20,12 @@ export async function runSkills(subcommand, argv) {
19
20
  return uninstall(argv);
20
21
  throw new CliError('用法: eevee skills <install|update|list|paths|agents|info|uninstall>', 64);
21
22
  }
22
- async function install(argv, forceDefault = false) {
23
- const parsed = parseArgs(argv, [
23
+ function selectedSkill(parsed) {
24
+ return parseSkillName(optionalOption(parsed.options, 'skill'));
25
+ }
26
+ function parseSkillArgs(argv) {
27
+ return parseArgs(argv, [
28
+ SKILL_ARGUMENT,
24
29
  { long: 'agent', value: true },
25
30
  { long: 'global' },
26
31
  { long: 'project', value: true },
@@ -31,6 +36,10 @@ async function install(argv, forceDefault = false) {
31
36
  { long: 'auto' },
32
37
  { long: 'all' },
33
38
  ]);
39
+ }
40
+ async function install(argv, forceDefault = false) {
41
+ const parsed = parseSkillArgs(argv);
42
+ const skillName = selectedSkill(parsed);
34
43
  const selections = [
35
44
  ...parsed.positionals.filter((item) => !item.startsWith('-')),
36
45
  ];
@@ -63,6 +72,7 @@ async function install(argv, forceDefault = false) {
63
72
  throw new CliError('--global、--project 和 --dir 不能同时使用', 64);
64
73
  const globalMode = hasFlag(parsed.options, 'global');
65
74
  const results = await installSkill({
75
+ skillName,
66
76
  agents,
67
77
  global: globalMode,
68
78
  projectDirectory: projectValue,
@@ -86,35 +96,40 @@ async function clients() {
86
96
  }
87
97
  }
88
98
  async function list() {
89
- const installs = await discoverInstalls();
90
- if (installs.length === 0)
99
+ let found = false;
100
+ for (const skillName of BUNDLED_SKILL_NAMES) {
101
+ const installs = await discoverInstalls(skillName);
102
+ for (const item of installs) {
103
+ found = true;
104
+ console.log(`${skillName}\t${item.agent}\t${item.path}`);
105
+ }
106
+ }
107
+ if (!found)
91
108
  console.log('未发现全局安装');
92
- else
93
- for (const item of installs)
94
- console.log(`${item.agent}\t${item.path}`);
95
109
  }
96
- async function paths() {
97
- const source = await bundledSkillDirectory();
110
+ async function paths(argv) {
111
+ const parsed = parseArgs(argv, [SKILL_ARGUMENT]);
112
+ const skillName = selectedSkill(parsed);
113
+ const source = await bundledSkillDirectory(skillName);
98
114
  console.log(`source\t${source}`);
99
115
  for (const [agent, definition] of Object.entries(SKILL_AGENTS)) {
100
- const result = destinationFor(agent, { agents: [], global: true });
116
+ const result = destinationFor(agent, {
117
+ agents: [],
118
+ global: true,
119
+ skillName,
120
+ });
101
121
  console.log(`${definition.label}\t${result}`);
102
122
  }
103
123
  }
104
- async function info() {
105
- const source = path.join(await bundledSkillDirectory(), 'SKILL.md');
106
- const content = await readFile(source, 'utf8');
107
- console.log(content);
124
+ async function info(argv) {
125
+ const parsed = parseArgs(argv, [SKILL_ARGUMENT]);
126
+ const skillName = selectedSkill(parsed);
127
+ const source = path.join(await bundledSkillDirectory(skillName), 'SKILL.md');
128
+ console.log(await readFile(source, 'utf8'));
108
129
  }
109
130
  async function uninstall(argv) {
110
- const parsed = parseArgs(argv, [
111
- { long: 'agent', value: true },
112
- { long: 'global' },
113
- { long: 'project', value: true },
114
- { long: 'dir', value: true },
115
- { long: 'yes' },
116
- { long: 'all' },
117
- ]);
131
+ const parsed = parseSkillArgs(argv);
132
+ const skillName = selectedSkill(parsed);
118
133
  if (!hasFlag(parsed.options, 'yes'))
119
134
  throw new CliError('卸载需要 --yes 确认', 64);
120
135
  const selections = parsed.positionals.filter((item) => !item.startsWith('-'));
@@ -138,11 +153,12 @@ async function uninstall(argv) {
138
153
  global: globalMode,
139
154
  projectDirectory: projectValue,
140
155
  targetDirectory,
156
+ skillName,
141
157
  });
142
158
  try {
143
159
  if ((await stat(path.join(destination, 'SKILL.md'))).isFile()) {
144
160
  await rm(destination, { recursive: true });
145
- console.log(`removed ${destination}`);
161
+ console.log(`removed ${skillName} from ${destination}`);
146
162
  }
147
163
  }
148
164
  catch { /* 未安装则跳过 */ }