@arrislink/axon 1.1.0 → 1.1.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.
Files changed (2) hide show
  1. package/dist/index.js +589 -568
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -29,6 +29,495 @@ var __export = (target, all) => {
29
29
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
30
30
  var __require = import.meta.require;
31
31
 
32
+ // node_modules/chalk/source/vendor/ansi-styles/index.js
33
+ function assembleStyles() {
34
+ const codes = new Map;
35
+ for (const [groupName, group] of Object.entries(styles)) {
36
+ for (const [styleName, style] of Object.entries(group)) {
37
+ styles[styleName] = {
38
+ open: `\x1B[${style[0]}m`,
39
+ close: `\x1B[${style[1]}m`
40
+ };
41
+ group[styleName] = styles[styleName];
42
+ codes.set(style[0], style[1]);
43
+ }
44
+ Object.defineProperty(styles, groupName, {
45
+ value: group,
46
+ enumerable: false
47
+ });
48
+ }
49
+ Object.defineProperty(styles, "codes", {
50
+ value: codes,
51
+ enumerable: false
52
+ });
53
+ styles.color.close = "\x1B[39m";
54
+ styles.bgColor.close = "\x1B[49m";
55
+ styles.color.ansi = wrapAnsi16();
56
+ styles.color.ansi256 = wrapAnsi256();
57
+ styles.color.ansi16m = wrapAnsi16m();
58
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
59
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
60
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
61
+ Object.defineProperties(styles, {
62
+ rgbToAnsi256: {
63
+ value(red, green, blue) {
64
+ if (red === green && green === blue) {
65
+ if (red < 8) {
66
+ return 16;
67
+ }
68
+ if (red > 248) {
69
+ return 231;
70
+ }
71
+ return Math.round((red - 8) / 247 * 24) + 232;
72
+ }
73
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
74
+ },
75
+ enumerable: false
76
+ },
77
+ hexToRgb: {
78
+ value(hex) {
79
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
80
+ if (!matches) {
81
+ return [0, 0, 0];
82
+ }
83
+ let [colorString] = matches;
84
+ if (colorString.length === 3) {
85
+ colorString = [...colorString].map((character) => character + character).join("");
86
+ }
87
+ const integer = Number.parseInt(colorString, 16);
88
+ return [
89
+ integer >> 16 & 255,
90
+ integer >> 8 & 255,
91
+ integer & 255
92
+ ];
93
+ },
94
+ enumerable: false
95
+ },
96
+ hexToAnsi256: {
97
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
98
+ enumerable: false
99
+ },
100
+ ansi256ToAnsi: {
101
+ value(code) {
102
+ if (code < 8) {
103
+ return 30 + code;
104
+ }
105
+ if (code < 16) {
106
+ return 90 + (code - 8);
107
+ }
108
+ let red;
109
+ let green;
110
+ let blue;
111
+ if (code >= 232) {
112
+ red = ((code - 232) * 10 + 8) / 255;
113
+ green = red;
114
+ blue = red;
115
+ } else {
116
+ code -= 16;
117
+ const remainder = code % 36;
118
+ red = Math.floor(code / 36) / 5;
119
+ green = Math.floor(remainder / 6) / 5;
120
+ blue = remainder % 6 / 5;
121
+ }
122
+ const value = Math.max(red, green, blue) * 2;
123
+ if (value === 0) {
124
+ return 30;
125
+ }
126
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
127
+ if (value === 2) {
128
+ result += 60;
129
+ }
130
+ return result;
131
+ },
132
+ enumerable: false
133
+ },
134
+ rgbToAnsi: {
135
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
136
+ enumerable: false
137
+ },
138
+ hexToAnsi: {
139
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
140
+ enumerable: false
141
+ }
142
+ });
143
+ return styles;
144
+ }
145
+ var ANSI_BACKGROUND_OFFSET = 10, wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`, wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`, styles, modifierNames, foregroundColorNames, backgroundColorNames, colorNames, ansiStyles, ansi_styles_default;
146
+ var init_ansi_styles = __esm(() => {
147
+ styles = {
148
+ modifier: {
149
+ reset: [0, 0],
150
+ bold: [1, 22],
151
+ dim: [2, 22],
152
+ italic: [3, 23],
153
+ underline: [4, 24],
154
+ overline: [53, 55],
155
+ inverse: [7, 27],
156
+ hidden: [8, 28],
157
+ strikethrough: [9, 29]
158
+ },
159
+ color: {
160
+ black: [30, 39],
161
+ red: [31, 39],
162
+ green: [32, 39],
163
+ yellow: [33, 39],
164
+ blue: [34, 39],
165
+ magenta: [35, 39],
166
+ cyan: [36, 39],
167
+ white: [37, 39],
168
+ blackBright: [90, 39],
169
+ gray: [90, 39],
170
+ grey: [90, 39],
171
+ redBright: [91, 39],
172
+ greenBright: [92, 39],
173
+ yellowBright: [93, 39],
174
+ blueBright: [94, 39],
175
+ magentaBright: [95, 39],
176
+ cyanBright: [96, 39],
177
+ whiteBright: [97, 39]
178
+ },
179
+ bgColor: {
180
+ bgBlack: [40, 49],
181
+ bgRed: [41, 49],
182
+ bgGreen: [42, 49],
183
+ bgYellow: [43, 49],
184
+ bgBlue: [44, 49],
185
+ bgMagenta: [45, 49],
186
+ bgCyan: [46, 49],
187
+ bgWhite: [47, 49],
188
+ bgBlackBright: [100, 49],
189
+ bgGray: [100, 49],
190
+ bgGrey: [100, 49],
191
+ bgRedBright: [101, 49],
192
+ bgGreenBright: [102, 49],
193
+ bgYellowBright: [103, 49],
194
+ bgBlueBright: [104, 49],
195
+ bgMagentaBright: [105, 49],
196
+ bgCyanBright: [106, 49],
197
+ bgWhiteBright: [107, 49]
198
+ }
199
+ };
200
+ modifierNames = Object.keys(styles.modifier);
201
+ foregroundColorNames = Object.keys(styles.color);
202
+ backgroundColorNames = Object.keys(styles.bgColor);
203
+ colorNames = [...foregroundColorNames, ...backgroundColorNames];
204
+ ansiStyles = assembleStyles();
205
+ ansi_styles_default = ansiStyles;
206
+ });
207
+
208
+ // node_modules/chalk/source/vendor/supports-color/index.js
209
+ import process2 from "process";
210
+ import os from "os";
211
+ import tty from "tty";
212
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
213
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
214
+ const position = argv.indexOf(prefix + flag);
215
+ const terminatorPosition = argv.indexOf("--");
216
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
217
+ }
218
+ function envForceColor() {
219
+ if ("FORCE_COLOR" in env) {
220
+ if (env.FORCE_COLOR === "true") {
221
+ return 1;
222
+ }
223
+ if (env.FORCE_COLOR === "false") {
224
+ return 0;
225
+ }
226
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
227
+ }
228
+ }
229
+ function translateLevel(level) {
230
+ if (level === 0) {
231
+ return false;
232
+ }
233
+ return {
234
+ level,
235
+ hasBasic: true,
236
+ has256: level >= 2,
237
+ has16m: level >= 3
238
+ };
239
+ }
240
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
241
+ const noFlagForceColor = envForceColor();
242
+ if (noFlagForceColor !== undefined) {
243
+ flagForceColor = noFlagForceColor;
244
+ }
245
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
246
+ if (forceColor === 0) {
247
+ return 0;
248
+ }
249
+ if (sniffFlags) {
250
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
251
+ return 3;
252
+ }
253
+ if (hasFlag("color=256")) {
254
+ return 2;
255
+ }
256
+ }
257
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
258
+ return 1;
259
+ }
260
+ if (haveStream && !streamIsTTY && forceColor === undefined) {
261
+ return 0;
262
+ }
263
+ const min = forceColor || 0;
264
+ if (env.TERM === "dumb") {
265
+ return min;
266
+ }
267
+ if (process2.platform === "win32") {
268
+ const osRelease = os.release().split(".");
269
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
270
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
271
+ }
272
+ return 1;
273
+ }
274
+ if ("CI" in env) {
275
+ if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) {
276
+ return 3;
277
+ }
278
+ if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
279
+ return 1;
280
+ }
281
+ return min;
282
+ }
283
+ if ("TEAMCITY_VERSION" in env) {
284
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
285
+ }
286
+ if (env.COLORTERM === "truecolor") {
287
+ return 3;
288
+ }
289
+ if (env.TERM === "xterm-kitty") {
290
+ return 3;
291
+ }
292
+ if (env.TERM === "xterm-ghostty") {
293
+ return 3;
294
+ }
295
+ if (env.TERM === "wezterm") {
296
+ return 3;
297
+ }
298
+ if ("TERM_PROGRAM" in env) {
299
+ const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
300
+ switch (env.TERM_PROGRAM) {
301
+ case "iTerm.app": {
302
+ return version >= 3 ? 3 : 2;
303
+ }
304
+ case "Apple_Terminal": {
305
+ return 2;
306
+ }
307
+ }
308
+ }
309
+ if (/-256(color)?$/i.test(env.TERM)) {
310
+ return 2;
311
+ }
312
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
313
+ return 1;
314
+ }
315
+ if ("COLORTERM" in env) {
316
+ return 1;
317
+ }
318
+ return min;
319
+ }
320
+ function createSupportsColor(stream, options = {}) {
321
+ const level = _supportsColor(stream, {
322
+ streamIsTTY: stream && stream.isTTY,
323
+ ...options
324
+ });
325
+ return translateLevel(level);
326
+ }
327
+ var env, flagForceColor, supportsColor, supports_color_default;
328
+ var init_supports_color = __esm(() => {
329
+ ({ env } = process2);
330
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
331
+ flagForceColor = 0;
332
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
333
+ flagForceColor = 1;
334
+ }
335
+ supportsColor = {
336
+ stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
337
+ stderr: createSupportsColor({ isTTY: tty.isatty(2) })
338
+ };
339
+ supports_color_default = supportsColor;
340
+ });
341
+
342
+ // node_modules/chalk/source/utilities.js
343
+ function stringReplaceAll(string, substring, replacer) {
344
+ let index = string.indexOf(substring);
345
+ if (index === -1) {
346
+ return string;
347
+ }
348
+ const substringLength = substring.length;
349
+ let endIndex = 0;
350
+ let returnValue = "";
351
+ do {
352
+ returnValue += string.slice(endIndex, index) + substring + replacer;
353
+ endIndex = index + substringLength;
354
+ index = string.indexOf(substring, endIndex);
355
+ } while (index !== -1);
356
+ returnValue += string.slice(endIndex);
357
+ return returnValue;
358
+ }
359
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
360
+ let endIndex = 0;
361
+ let returnValue = "";
362
+ do {
363
+ const gotCR = string[index - 1] === "\r";
364
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r
365
+ ` : `
366
+ `) + postfix;
367
+ endIndex = index + 1;
368
+ index = string.indexOf(`
369
+ `, endIndex);
370
+ } while (index !== -1);
371
+ returnValue += string.slice(endIndex);
372
+ return returnValue;
373
+ }
374
+
375
+ // node_modules/chalk/source/index.js
376
+ function createChalk(options) {
377
+ return chalkFactory(options);
378
+ }
379
+ var stdoutColor, stderrColor, GENERATOR, STYLER, IS_EMPTY, levelMapping, styles2, applyOptions = (object, options = {}) => {
380
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
381
+ throw new Error("The `level` option should be an integer from 0 to 3");
382
+ }
383
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
384
+ object.level = options.level === undefined ? colorLevel : options.level;
385
+ }, chalkFactory = (options) => {
386
+ const chalk = (...strings) => strings.join(" ");
387
+ applyOptions(chalk, options);
388
+ Object.setPrototypeOf(chalk, createChalk.prototype);
389
+ return chalk;
390
+ }, getModelAnsi = (model, level, type, ...arguments_) => {
391
+ if (model === "rgb") {
392
+ if (level === "ansi16m") {
393
+ return ansi_styles_default[type].ansi16m(...arguments_);
394
+ }
395
+ if (level === "ansi256") {
396
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
397
+ }
398
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
399
+ }
400
+ if (model === "hex") {
401
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
402
+ }
403
+ return ansi_styles_default[type][model](...arguments_);
404
+ }, usedModels, proto, createStyler = (open, close, parent) => {
405
+ let openAll;
406
+ let closeAll;
407
+ if (parent === undefined) {
408
+ openAll = open;
409
+ closeAll = close;
410
+ } else {
411
+ openAll = parent.openAll + open;
412
+ closeAll = close + parent.closeAll;
413
+ }
414
+ return {
415
+ open,
416
+ close,
417
+ openAll,
418
+ closeAll,
419
+ parent
420
+ };
421
+ }, createBuilder = (self2, _styler, _isEmpty) => {
422
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
423
+ Object.setPrototypeOf(builder, proto);
424
+ builder[GENERATOR] = self2;
425
+ builder[STYLER] = _styler;
426
+ builder[IS_EMPTY] = _isEmpty;
427
+ return builder;
428
+ }, applyStyle = (self2, string) => {
429
+ if (self2.level <= 0 || !string) {
430
+ return self2[IS_EMPTY] ? "" : string;
431
+ }
432
+ let styler = self2[STYLER];
433
+ if (styler === undefined) {
434
+ return string;
435
+ }
436
+ const { openAll, closeAll } = styler;
437
+ if (string.includes("\x1B")) {
438
+ while (styler !== undefined) {
439
+ string = stringReplaceAll(string, styler.close, styler.open);
440
+ styler = styler.parent;
441
+ }
442
+ }
443
+ const lfIndex = string.indexOf(`
444
+ `);
445
+ if (lfIndex !== -1) {
446
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
447
+ }
448
+ return openAll + string + closeAll;
449
+ }, chalk, chalkStderr, source_default;
450
+ var init_source = __esm(() => {
451
+ init_ansi_styles();
452
+ init_supports_color();
453
+ ({ stdout: stdoutColor, stderr: stderrColor } = supports_color_default);
454
+ GENERATOR = Symbol("GENERATOR");
455
+ STYLER = Symbol("STYLER");
456
+ IS_EMPTY = Symbol("IS_EMPTY");
457
+ levelMapping = [
458
+ "ansi",
459
+ "ansi",
460
+ "ansi256",
461
+ "ansi16m"
462
+ ];
463
+ styles2 = Object.create(null);
464
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
465
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
466
+ styles2[styleName] = {
467
+ get() {
468
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
469
+ Object.defineProperty(this, styleName, { value: builder });
470
+ return builder;
471
+ }
472
+ };
473
+ }
474
+ styles2.visible = {
475
+ get() {
476
+ const builder = createBuilder(this, this[STYLER], true);
477
+ Object.defineProperty(this, "visible", { value: builder });
478
+ return builder;
479
+ }
480
+ };
481
+ usedModels = ["rgb", "hex", "ansi256"];
482
+ for (const model of usedModels) {
483
+ styles2[model] = {
484
+ get() {
485
+ const { level } = this;
486
+ return function(...arguments_) {
487
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
488
+ return createBuilder(this, styler, this[IS_EMPTY]);
489
+ };
490
+ }
491
+ };
492
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
493
+ styles2[bgModel] = {
494
+ get() {
495
+ const { level } = this;
496
+ return function(...arguments_) {
497
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
498
+ return createBuilder(this, styler, this[IS_EMPTY]);
499
+ };
500
+ }
501
+ };
502
+ }
503
+ proto = Object.defineProperties(() => {}, {
504
+ ...styles2,
505
+ level: {
506
+ enumerable: true,
507
+ get() {
508
+ return this[GENERATOR].level;
509
+ },
510
+ set(level) {
511
+ this[GENERATOR].level = level;
512
+ }
513
+ }
514
+ });
515
+ Object.defineProperties(createChalk.prototype, styles2);
516
+ chalk = createChalk();
517
+ chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
518
+ source_default = chalk;
519
+ });
520
+
32
521
  // node_modules/commander/lib/error.js
33
522
  var require_error = __commonJS((exports) => {
34
523
  class CommanderError extends Error {
@@ -611,7 +1100,7 @@ var require_command = __commonJS((exports) => {
611
1100
  var childProcess = __require("child_process");
612
1101
  var path = __require("path");
613
1102
  var fs = __require("fs");
614
- var process2 = __require("process");
1103
+ var process3 = __require("process");
615
1104
  var { Argument, humanReadableArgName } = require_argument();
616
1105
  var { CommanderError } = require_error();
617
1106
  var { Help } = require_help();
@@ -653,10 +1142,10 @@ var require_command = __commonJS((exports) => {
653
1142
  this._showHelpAfterError = false;
654
1143
  this._showSuggestionAfterError = true;
655
1144
  this._outputConfiguration = {
656
- writeOut: (str) => process2.stdout.write(str),
657
- writeErr: (str) => process2.stderr.write(str),
658
- getOutHelpWidth: () => process2.stdout.isTTY ? process2.stdout.columns : undefined,
659
- getErrHelpWidth: () => process2.stderr.isTTY ? process2.stderr.columns : undefined,
1145
+ writeOut: (str) => process3.stdout.write(str),
1146
+ writeErr: (str) => process3.stderr.write(str),
1147
+ getOutHelpWidth: () => process3.stdout.isTTY ? process3.stdout.columns : undefined,
1148
+ getErrHelpWidth: () => process3.stderr.isTTY ? process3.stderr.columns : undefined,
660
1149
  outputError: (str, write) => write(str)
661
1150
  };
662
1151
  this._hidden = false;
@@ -852,7 +1341,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
852
1341
  if (this._exitCallback) {
853
1342
  this._exitCallback(new CommanderError(exitCode, code, message));
854
1343
  }
855
- process2.exit(exitCode);
1344
+ process3.exit(exitCode);
856
1345
  }
857
1346
  action(fn) {
858
1347
  const listener = (args) => {
@@ -1047,16 +1536,16 @@ Expecting one of '${allowedValues.join("', '")}'`);
1047
1536
  }
1048
1537
  parseOptions = parseOptions || {};
1049
1538
  if (argv === undefined && parseOptions.from === undefined) {
1050
- if (process2.versions?.electron) {
1539
+ if (process3.versions?.electron) {
1051
1540
  parseOptions.from = "electron";
1052
1541
  }
1053
- const execArgv = process2.execArgv ?? [];
1542
+ const execArgv = process3.execArgv ?? [];
1054
1543
  if (execArgv.includes("-e") || execArgv.includes("--eval") || execArgv.includes("-p") || execArgv.includes("--print")) {
1055
1544
  parseOptions.from = "eval";
1056
1545
  }
1057
1546
  }
1058
1547
  if (argv === undefined) {
1059
- argv = process2.argv;
1548
+ argv = process3.argv;
1060
1549
  }
1061
1550
  this.rawArgs = argv.slice();
1062
1551
  let userArgs;
@@ -1067,7 +1556,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1067
1556
  userArgs = argv.slice(2);
1068
1557
  break;
1069
1558
  case "electron":
1070
- if (process2.defaultApp) {
1559
+ if (process3.defaultApp) {
1071
1560
  this._scriptPath = argv[1];
1072
1561
  userArgs = argv.slice(2);
1073
1562
  } else {
@@ -1138,23 +1627,23 @@ Expecting one of '${allowedValues.join("', '")}'`);
1138
1627
  }
1139
1628
  launchWithNode = sourceExt.includes(path.extname(executableFile));
1140
1629
  let proc;
1141
- if (process2.platform !== "win32") {
1630
+ if (process3.platform !== "win32") {
1142
1631
  if (launchWithNode) {
1143
1632
  args.unshift(executableFile);
1144
- args = incrementNodeInspectorPort(process2.execArgv).concat(args);
1145
- proc = childProcess.spawn(process2.argv[0], args, { stdio: "inherit" });
1633
+ args = incrementNodeInspectorPort(process3.execArgv).concat(args);
1634
+ proc = childProcess.spawn(process3.argv[0], args, { stdio: "inherit" });
1146
1635
  } else {
1147
1636
  proc = childProcess.spawn(executableFile, args, { stdio: "inherit" });
1148
1637
  }
1149
1638
  } else {
1150
1639
  args.unshift(executableFile);
1151
- args = incrementNodeInspectorPort(process2.execArgv).concat(args);
1152
- proc = childProcess.spawn(process2.execPath, args, { stdio: "inherit" });
1640
+ args = incrementNodeInspectorPort(process3.execArgv).concat(args);
1641
+ proc = childProcess.spawn(process3.execPath, args, { stdio: "inherit" });
1153
1642
  }
1154
1643
  if (!proc.killed) {
1155
1644
  const signals = ["SIGUSR1", "SIGUSR2", "SIGTERM", "SIGINT", "SIGHUP"];
1156
1645
  signals.forEach((signal) => {
1157
- process2.on(signal, () => {
1646
+ process3.on(signal, () => {
1158
1647
  if (proc.killed === false && proc.exitCode === null) {
1159
1648
  proc.kill(signal);
1160
1649
  }
@@ -1165,7 +1654,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1165
1654
  proc.on("close", (code) => {
1166
1655
  code = code ?? 1;
1167
1656
  if (!exitCallback) {
1168
- process2.exit(code);
1657
+ process3.exit(code);
1169
1658
  } else {
1170
1659
  exitCallback(new CommanderError(code, "commander.executeSubCommandAsync", "(close)"));
1171
1660
  }
@@ -1182,7 +1671,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1182
1671
  throw new Error(`'${executableFile}' not executable`);
1183
1672
  }
1184
1673
  if (!exitCallback) {
1185
- process2.exit(1);
1674
+ process3.exit(1);
1186
1675
  } else {
1187
1676
  const wrappedError = new CommanderError(1, "commander.executeSubCommandAsync", "(error)");
1188
1677
  wrappedError.nestedError = err;
@@ -1530,11 +2019,11 @@ Expecting one of '${allowedValues.join("', '")}'`);
1530
2019
  }
1531
2020
  _parseOptionsEnv() {
1532
2021
  this.options.forEach((option) => {
1533
- if (option.envVar && option.envVar in process2.env) {
2022
+ if (option.envVar && option.envVar in process3.env) {
1534
2023
  const optionKey = option.attributeName();
1535
2024
  if (this.getOptionValue(optionKey) === undefined || ["default", "config", "env"].includes(this.getOptionValueSource(optionKey))) {
1536
2025
  if (option.required || option.optional) {
1537
- this.emit(`optionEnv:${option.name()}`, process2.env[option.envVar]);
2026
+ this.emit(`optionEnv:${option.name()}`, process3.env[option.envVar]);
1538
2027
  } else {
1539
2028
  this.emit(`optionEnv:${option.name()}`);
1540
2029
  }
@@ -1780,7 +2269,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1780
2269
  }
1781
2270
  help(contextOptions) {
1782
2271
  this.outputHelp(contextOptions);
1783
- let exitCode = process2.exitCode || 0;
2272
+ let exitCode = process3.exitCode || 0;
1784
2273
  if (exitCode === 0 && contextOptions && typeof contextOptions !== "function" && contextOptions.error) {
1785
2274
  exitCode = 1;
1786
2275
  }
@@ -1868,495 +2357,6 @@ var require_commander = __commonJS((exports) => {
1868
2357
  exports.InvalidOptionArgumentError = InvalidArgumentError;
1869
2358
  });
1870
2359
 
1871
- // node_modules/chalk/source/vendor/ansi-styles/index.js
1872
- function assembleStyles() {
1873
- const codes = new Map;
1874
- for (const [groupName, group] of Object.entries(styles)) {
1875
- for (const [styleName, style] of Object.entries(group)) {
1876
- styles[styleName] = {
1877
- open: `\x1B[${style[0]}m`,
1878
- close: `\x1B[${style[1]}m`
1879
- };
1880
- group[styleName] = styles[styleName];
1881
- codes.set(style[0], style[1]);
1882
- }
1883
- Object.defineProperty(styles, groupName, {
1884
- value: group,
1885
- enumerable: false
1886
- });
1887
- }
1888
- Object.defineProperty(styles, "codes", {
1889
- value: codes,
1890
- enumerable: false
1891
- });
1892
- styles.color.close = "\x1B[39m";
1893
- styles.bgColor.close = "\x1B[49m";
1894
- styles.color.ansi = wrapAnsi16();
1895
- styles.color.ansi256 = wrapAnsi256();
1896
- styles.color.ansi16m = wrapAnsi16m();
1897
- styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
1898
- styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
1899
- styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
1900
- Object.defineProperties(styles, {
1901
- rgbToAnsi256: {
1902
- value(red, green, blue) {
1903
- if (red === green && green === blue) {
1904
- if (red < 8) {
1905
- return 16;
1906
- }
1907
- if (red > 248) {
1908
- return 231;
1909
- }
1910
- return Math.round((red - 8) / 247 * 24) + 232;
1911
- }
1912
- return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
1913
- },
1914
- enumerable: false
1915
- },
1916
- hexToRgb: {
1917
- value(hex) {
1918
- const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
1919
- if (!matches) {
1920
- return [0, 0, 0];
1921
- }
1922
- let [colorString] = matches;
1923
- if (colorString.length === 3) {
1924
- colorString = [...colorString].map((character) => character + character).join("");
1925
- }
1926
- const integer = Number.parseInt(colorString, 16);
1927
- return [
1928
- integer >> 16 & 255,
1929
- integer >> 8 & 255,
1930
- integer & 255
1931
- ];
1932
- },
1933
- enumerable: false
1934
- },
1935
- hexToAnsi256: {
1936
- value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
1937
- enumerable: false
1938
- },
1939
- ansi256ToAnsi: {
1940
- value(code) {
1941
- if (code < 8) {
1942
- return 30 + code;
1943
- }
1944
- if (code < 16) {
1945
- return 90 + (code - 8);
1946
- }
1947
- let red;
1948
- let green;
1949
- let blue;
1950
- if (code >= 232) {
1951
- red = ((code - 232) * 10 + 8) / 255;
1952
- green = red;
1953
- blue = red;
1954
- } else {
1955
- code -= 16;
1956
- const remainder = code % 36;
1957
- red = Math.floor(code / 36) / 5;
1958
- green = Math.floor(remainder / 6) / 5;
1959
- blue = remainder % 6 / 5;
1960
- }
1961
- const value = Math.max(red, green, blue) * 2;
1962
- if (value === 0) {
1963
- return 30;
1964
- }
1965
- let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
1966
- if (value === 2) {
1967
- result += 60;
1968
- }
1969
- return result;
1970
- },
1971
- enumerable: false
1972
- },
1973
- rgbToAnsi: {
1974
- value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
1975
- enumerable: false
1976
- },
1977
- hexToAnsi: {
1978
- value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
1979
- enumerable: false
1980
- }
1981
- });
1982
- return styles;
1983
- }
1984
- var ANSI_BACKGROUND_OFFSET = 10, wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`, wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`, styles, modifierNames, foregroundColorNames, backgroundColorNames, colorNames, ansiStyles, ansi_styles_default;
1985
- var init_ansi_styles = __esm(() => {
1986
- styles = {
1987
- modifier: {
1988
- reset: [0, 0],
1989
- bold: [1, 22],
1990
- dim: [2, 22],
1991
- italic: [3, 23],
1992
- underline: [4, 24],
1993
- overline: [53, 55],
1994
- inverse: [7, 27],
1995
- hidden: [8, 28],
1996
- strikethrough: [9, 29]
1997
- },
1998
- color: {
1999
- black: [30, 39],
2000
- red: [31, 39],
2001
- green: [32, 39],
2002
- yellow: [33, 39],
2003
- blue: [34, 39],
2004
- magenta: [35, 39],
2005
- cyan: [36, 39],
2006
- white: [37, 39],
2007
- blackBright: [90, 39],
2008
- gray: [90, 39],
2009
- grey: [90, 39],
2010
- redBright: [91, 39],
2011
- greenBright: [92, 39],
2012
- yellowBright: [93, 39],
2013
- blueBright: [94, 39],
2014
- magentaBright: [95, 39],
2015
- cyanBright: [96, 39],
2016
- whiteBright: [97, 39]
2017
- },
2018
- bgColor: {
2019
- bgBlack: [40, 49],
2020
- bgRed: [41, 49],
2021
- bgGreen: [42, 49],
2022
- bgYellow: [43, 49],
2023
- bgBlue: [44, 49],
2024
- bgMagenta: [45, 49],
2025
- bgCyan: [46, 49],
2026
- bgWhite: [47, 49],
2027
- bgBlackBright: [100, 49],
2028
- bgGray: [100, 49],
2029
- bgGrey: [100, 49],
2030
- bgRedBright: [101, 49],
2031
- bgGreenBright: [102, 49],
2032
- bgYellowBright: [103, 49],
2033
- bgBlueBright: [104, 49],
2034
- bgMagentaBright: [105, 49],
2035
- bgCyanBright: [106, 49],
2036
- bgWhiteBright: [107, 49]
2037
- }
2038
- };
2039
- modifierNames = Object.keys(styles.modifier);
2040
- foregroundColorNames = Object.keys(styles.color);
2041
- backgroundColorNames = Object.keys(styles.bgColor);
2042
- colorNames = [...foregroundColorNames, ...backgroundColorNames];
2043
- ansiStyles = assembleStyles();
2044
- ansi_styles_default = ansiStyles;
2045
- });
2046
-
2047
- // node_modules/chalk/source/vendor/supports-color/index.js
2048
- import process2 from "process";
2049
- import os from "os";
2050
- import tty from "tty";
2051
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
2052
- const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
2053
- const position = argv.indexOf(prefix + flag);
2054
- const terminatorPosition = argv.indexOf("--");
2055
- return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
2056
- }
2057
- function envForceColor() {
2058
- if ("FORCE_COLOR" in env) {
2059
- if (env.FORCE_COLOR === "true") {
2060
- return 1;
2061
- }
2062
- if (env.FORCE_COLOR === "false") {
2063
- return 0;
2064
- }
2065
- return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
2066
- }
2067
- }
2068
- function translateLevel(level) {
2069
- if (level === 0) {
2070
- return false;
2071
- }
2072
- return {
2073
- level,
2074
- hasBasic: true,
2075
- has256: level >= 2,
2076
- has16m: level >= 3
2077
- };
2078
- }
2079
- function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
2080
- const noFlagForceColor = envForceColor();
2081
- if (noFlagForceColor !== undefined) {
2082
- flagForceColor = noFlagForceColor;
2083
- }
2084
- const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
2085
- if (forceColor === 0) {
2086
- return 0;
2087
- }
2088
- if (sniffFlags) {
2089
- if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
2090
- return 3;
2091
- }
2092
- if (hasFlag("color=256")) {
2093
- return 2;
2094
- }
2095
- }
2096
- if ("TF_BUILD" in env && "AGENT_NAME" in env) {
2097
- return 1;
2098
- }
2099
- if (haveStream && !streamIsTTY && forceColor === undefined) {
2100
- return 0;
2101
- }
2102
- const min = forceColor || 0;
2103
- if (env.TERM === "dumb") {
2104
- return min;
2105
- }
2106
- if (process2.platform === "win32") {
2107
- const osRelease = os.release().split(".");
2108
- if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
2109
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
2110
- }
2111
- return 1;
2112
- }
2113
- if ("CI" in env) {
2114
- if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) {
2115
- return 3;
2116
- }
2117
- if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
2118
- return 1;
2119
- }
2120
- return min;
2121
- }
2122
- if ("TEAMCITY_VERSION" in env) {
2123
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
2124
- }
2125
- if (env.COLORTERM === "truecolor") {
2126
- return 3;
2127
- }
2128
- if (env.TERM === "xterm-kitty") {
2129
- return 3;
2130
- }
2131
- if (env.TERM === "xterm-ghostty") {
2132
- return 3;
2133
- }
2134
- if (env.TERM === "wezterm") {
2135
- return 3;
2136
- }
2137
- if ("TERM_PROGRAM" in env) {
2138
- const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
2139
- switch (env.TERM_PROGRAM) {
2140
- case "iTerm.app": {
2141
- return version >= 3 ? 3 : 2;
2142
- }
2143
- case "Apple_Terminal": {
2144
- return 2;
2145
- }
2146
- }
2147
- }
2148
- if (/-256(color)?$/i.test(env.TERM)) {
2149
- return 2;
2150
- }
2151
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
2152
- return 1;
2153
- }
2154
- if ("COLORTERM" in env) {
2155
- return 1;
2156
- }
2157
- return min;
2158
- }
2159
- function createSupportsColor(stream, options = {}) {
2160
- const level = _supportsColor(stream, {
2161
- streamIsTTY: stream && stream.isTTY,
2162
- ...options
2163
- });
2164
- return translateLevel(level);
2165
- }
2166
- var env, flagForceColor, supportsColor, supports_color_default;
2167
- var init_supports_color = __esm(() => {
2168
- ({ env } = process2);
2169
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
2170
- flagForceColor = 0;
2171
- } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
2172
- flagForceColor = 1;
2173
- }
2174
- supportsColor = {
2175
- stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
2176
- stderr: createSupportsColor({ isTTY: tty.isatty(2) })
2177
- };
2178
- supports_color_default = supportsColor;
2179
- });
2180
-
2181
- // node_modules/chalk/source/utilities.js
2182
- function stringReplaceAll(string, substring, replacer) {
2183
- let index = string.indexOf(substring);
2184
- if (index === -1) {
2185
- return string;
2186
- }
2187
- const substringLength = substring.length;
2188
- let endIndex = 0;
2189
- let returnValue = "";
2190
- do {
2191
- returnValue += string.slice(endIndex, index) + substring + replacer;
2192
- endIndex = index + substringLength;
2193
- index = string.indexOf(substring, endIndex);
2194
- } while (index !== -1);
2195
- returnValue += string.slice(endIndex);
2196
- return returnValue;
2197
- }
2198
- function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
2199
- let endIndex = 0;
2200
- let returnValue = "";
2201
- do {
2202
- const gotCR = string[index - 1] === "\r";
2203
- returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r
2204
- ` : `
2205
- `) + postfix;
2206
- endIndex = index + 1;
2207
- index = string.indexOf(`
2208
- `, endIndex);
2209
- } while (index !== -1);
2210
- returnValue += string.slice(endIndex);
2211
- return returnValue;
2212
- }
2213
-
2214
- // node_modules/chalk/source/index.js
2215
- function createChalk(options) {
2216
- return chalkFactory(options);
2217
- }
2218
- var stdoutColor, stderrColor, GENERATOR, STYLER, IS_EMPTY, levelMapping, styles2, applyOptions = (object, options = {}) => {
2219
- if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
2220
- throw new Error("The `level` option should be an integer from 0 to 3");
2221
- }
2222
- const colorLevel = stdoutColor ? stdoutColor.level : 0;
2223
- object.level = options.level === undefined ? colorLevel : options.level;
2224
- }, chalkFactory = (options) => {
2225
- const chalk = (...strings) => strings.join(" ");
2226
- applyOptions(chalk, options);
2227
- Object.setPrototypeOf(chalk, createChalk.prototype);
2228
- return chalk;
2229
- }, getModelAnsi = (model, level, type, ...arguments_) => {
2230
- if (model === "rgb") {
2231
- if (level === "ansi16m") {
2232
- return ansi_styles_default[type].ansi16m(...arguments_);
2233
- }
2234
- if (level === "ansi256") {
2235
- return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
2236
- }
2237
- return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
2238
- }
2239
- if (model === "hex") {
2240
- return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
2241
- }
2242
- return ansi_styles_default[type][model](...arguments_);
2243
- }, usedModels, proto, createStyler = (open, close, parent) => {
2244
- let openAll;
2245
- let closeAll;
2246
- if (parent === undefined) {
2247
- openAll = open;
2248
- closeAll = close;
2249
- } else {
2250
- openAll = parent.openAll + open;
2251
- closeAll = close + parent.closeAll;
2252
- }
2253
- return {
2254
- open,
2255
- close,
2256
- openAll,
2257
- closeAll,
2258
- parent
2259
- };
2260
- }, createBuilder = (self2, _styler, _isEmpty) => {
2261
- const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
2262
- Object.setPrototypeOf(builder, proto);
2263
- builder[GENERATOR] = self2;
2264
- builder[STYLER] = _styler;
2265
- builder[IS_EMPTY] = _isEmpty;
2266
- return builder;
2267
- }, applyStyle = (self2, string) => {
2268
- if (self2.level <= 0 || !string) {
2269
- return self2[IS_EMPTY] ? "" : string;
2270
- }
2271
- let styler = self2[STYLER];
2272
- if (styler === undefined) {
2273
- return string;
2274
- }
2275
- const { openAll, closeAll } = styler;
2276
- if (string.includes("\x1B")) {
2277
- while (styler !== undefined) {
2278
- string = stringReplaceAll(string, styler.close, styler.open);
2279
- styler = styler.parent;
2280
- }
2281
- }
2282
- const lfIndex = string.indexOf(`
2283
- `);
2284
- if (lfIndex !== -1) {
2285
- string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
2286
- }
2287
- return openAll + string + closeAll;
2288
- }, chalk, chalkStderr, source_default;
2289
- var init_source = __esm(() => {
2290
- init_ansi_styles();
2291
- init_supports_color();
2292
- ({ stdout: stdoutColor, stderr: stderrColor } = supports_color_default);
2293
- GENERATOR = Symbol("GENERATOR");
2294
- STYLER = Symbol("STYLER");
2295
- IS_EMPTY = Symbol("IS_EMPTY");
2296
- levelMapping = [
2297
- "ansi",
2298
- "ansi",
2299
- "ansi256",
2300
- "ansi16m"
2301
- ];
2302
- styles2 = Object.create(null);
2303
- Object.setPrototypeOf(createChalk.prototype, Function.prototype);
2304
- for (const [styleName, style] of Object.entries(ansi_styles_default)) {
2305
- styles2[styleName] = {
2306
- get() {
2307
- const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
2308
- Object.defineProperty(this, styleName, { value: builder });
2309
- return builder;
2310
- }
2311
- };
2312
- }
2313
- styles2.visible = {
2314
- get() {
2315
- const builder = createBuilder(this, this[STYLER], true);
2316
- Object.defineProperty(this, "visible", { value: builder });
2317
- return builder;
2318
- }
2319
- };
2320
- usedModels = ["rgb", "hex", "ansi256"];
2321
- for (const model of usedModels) {
2322
- styles2[model] = {
2323
- get() {
2324
- const { level } = this;
2325
- return function(...arguments_) {
2326
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
2327
- return createBuilder(this, styler, this[IS_EMPTY]);
2328
- };
2329
- }
2330
- };
2331
- const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
2332
- styles2[bgModel] = {
2333
- get() {
2334
- const { level } = this;
2335
- return function(...arguments_) {
2336
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
2337
- return createBuilder(this, styler, this[IS_EMPTY]);
2338
- };
2339
- }
2340
- };
2341
- }
2342
- proto = Object.defineProperties(() => {}, {
2343
- ...styles2,
2344
- level: {
2345
- enumerable: true,
2346
- get() {
2347
- return this[GENERATOR].level;
2348
- },
2349
- set(level) {
2350
- this[GENERATOR].level = level;
2351
- }
2352
- }
2353
- });
2354
- Object.defineProperties(createChalk.prototype, styles2);
2355
- chalk = createChalk();
2356
- chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
2357
- source_default = chalk;
2358
- });
2359
-
2360
2360
  // src/core/config/defaults.ts
2361
2361
  import { homedir } from "os";
2362
2362
  import { join } from "path";
@@ -48091,6 +48091,12 @@ var require_table = __commonJS((exports, module) => {
48091
48091
  module.exports = Table;
48092
48092
  });
48093
48093
 
48094
+ // src/index.ts
48095
+ init_source();
48096
+ import { readFileSync as readFileSync8 } from "fs";
48097
+ import { dirname as dirname5, join as join13 } from "path";
48098
+ import { fileURLToPath } from "url";
48099
+
48094
48100
  // node_modules/commander/esm.mjs
48095
48101
  var import__ = __toESM(require_commander(), 1);
48096
48102
  var {
@@ -48107,12 +48113,6 @@ var {
48107
48113
  Help
48108
48114
  } = import__.default;
48109
48115
 
48110
- // src/index.ts
48111
- init_source();
48112
- import { readFileSync as readFileSync8 } from "fs";
48113
- import { join as join13, dirname as dirname5 } from "path";
48114
- import { fileURLToPath } from "url";
48115
-
48116
48116
  // src/commands/init.ts
48117
48117
  init_source();
48118
48118
  import { existsSync as existsSync3, mkdirSync as mkdirSync2 } from "fs";
@@ -53422,9 +53422,10 @@ init_source();
53422
53422
  import { existsSync as existsSync7, readFileSync as readFileSync4 } from "fs";
53423
53423
  import { join as join6 } from "path";
53424
53424
  init_errors();
53425
+ init_i18n();
53425
53426
  init_logger();
53426
- var specCommand = new Command("spec").description("\u7BA1\u7406\u9879\u76EE\u89C4\u683C\u6587\u6863");
53427
- specCommand.command("init").description("\u4EA4\u4E92\u5F0F\u521B\u5EFA\u9879\u76EE\u89C4\u683C").option("--from-file <path>", "\u4ECE\u73B0\u6709\u6587\u6863\u5BFC\u5165").option("--no-ai", "\u4E0D\u4F7F\u7528 AI \u751F\u6210").action(async (options) => {
53427
+ var specCommand = new Command("spec").description(t("Manage project specifications", "\u7BA1\u7406\u9879\u76EE\u89C4\u683C\u6587\u6863"));
53428
+ specCommand.command("init").description(t("Create project specification interactively", "\u4EA4\u4E92\u5F0F\u521B\u5EFA\u9879\u76EE\u89C4\u683C")).option("--from-file <path>", t("Import from existing document", "\u4ECE\u73B0\u6709\u6587\u6863\u5BFC\u5165")).option("--no-ai", t("Do not use AI generation", "\u4E0D\u4F7F\u7528 AI \u751F\u6210")).action(async (options) => {
53428
53429
  const { SpecCollector: SpecCollector2, SpecGenerator: SpecGenerator2 } = await Promise.resolve().then(() => (init_spec(), exports_spec));
53429
53430
  const projectRoot = process.cwd();
53430
53431
  if (!ConfigManager.isAxonProject(projectRoot)) {
@@ -53471,7 +53472,7 @@ specCommand.command("init").description("\u4EA4\u4E92\u5F0F\u521B\u5EFA\u9879\u7
53471
53472
  console.log(` 1. \u5BA1\u9605\u5E76\u7F16\u8F91 ${source_default.cyan(".openspec/spec.md")}`);
53472
53473
  console.log(` 2. ${source_default.cyan("ax plan")} - \u751F\u6210\u4EFB\u52A1\u56FE`);
53473
53474
  });
53474
- specCommand.command("edit").description("\u7F16\u8F91\u9879\u76EE\u89C4\u683C\u6587\u6863").action(async () => {
53475
+ specCommand.command("edit").description(t("Edit the project specification", "\u7F16\u8F91\u9879\u76EE\u89C4\u683C\u6587\u6863")).action(async () => {
53475
53476
  const projectRoot = process.cwd();
53476
53477
  if (!ConfigManager.isAxonProject(projectRoot)) {
53477
53478
  throw new AxonError("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Axon \u9879\u76EE", "SPEC_ERROR", [
@@ -53503,7 +53504,7 @@ specCommand.command("edit").description("\u7F16\u8F91\u9879\u76EE\u89C4\u683C\u6
53503
53504
  ]);
53504
53505
  }
53505
53506
  });
53506
- specCommand.command("show").description("\u663E\u793A\u5F53\u524D\u89C4\u683C\u6587\u6863").action(() => {
53507
+ specCommand.command("show").description(t("Display the current specification", "\u663E\u793A\u5F53\u524D\u89C4\u683C\u6587\u6863")).action(() => {
53507
53508
  const projectRoot = process.cwd();
53508
53509
  if (!ConfigManager.isAxonProject(projectRoot)) {
53509
53510
  throw new AxonError("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Axon \u9879\u76EE", "SPEC_ERROR");
@@ -53519,7 +53520,7 @@ specCommand.command("show").description("\u663E\u793A\u5F53\u524D\u89C4\u683C\u6
53519
53520
  const content = readFileSync4(specPath, "utf-8");
53520
53521
  console.log(content);
53521
53522
  });
53522
- specCommand.command("validate").description("\u9A8C\u8BC1\u89C4\u683C\u6587\u6863\u5B8C\u6574\u6027").action(() => {
53523
+ specCommand.command("validate").description(t("Validate specification completeness", "\u9A8C\u8BC1\u89C4\u683C\u6587\u6863\u5B8C\u6574\u6027")).action(() => {
53523
53524
  const projectRoot = process.cwd();
53524
53525
  if (!ConfigManager.isAxonProject(projectRoot)) {
53525
53526
  throw new AxonError("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Axon \u9879\u76EE", "SPEC_ERROR");
@@ -53550,11 +53551,12 @@ specCommand.command("validate").description("\u9A8C\u8BC1\u89C4\u683C\u6587\u686
53550
53551
  });
53551
53552
  // src/commands/plan.ts
53552
53553
  init_source();
53553
- import { existsSync as existsSync10, readFileSync as readFileSync6, writeFileSync as writeFileSync5, mkdirSync as mkdirSync5 } from "fs";
53554
- import { join as join9, dirname as dirname4 } from "path";
53554
+ import { existsSync as existsSync10, mkdirSync as mkdirSync5, readFileSync as readFileSync6, writeFileSync as writeFileSync5 } from "fs";
53555
+ import { dirname as dirname4, join as join9 } from "path";
53555
53556
  init_errors();
53557
+ init_i18n();
53556
53558
  init_logger();
53557
- var planCommand = new Command("plan").description("\u4ECE\u89C4\u683C\u6587\u6863\u751F\u6210\u4EFB\u52A1\u56FE").option("--visualize", "\u5728\u6D4F\u89C8\u5668\u4E2D\u53EF\u89C6\u5316").option("--output <path>", "\u81EA\u5B9A\u4E49\u8F93\u51FA\u8DEF\u5F84").option("--model <name>", "\u6307\u5B9A\u4F7F\u7528\u7684\u6A21\u578B").option("--dry-run", "\u53EA\u9A8C\u8BC1\uFF0C\u4E0D\u751F\u6210").action(async (options) => {
53559
+ var planCommand = new Command("plan").description(t("Generate task graph from specification", "\u4ECE\u89C4\u683C\u6587\u6863\u751F\u6210\u4EFB\u52A1\u56FE")).option("--visualize", t("Visualize in browser", "\u5728\u6D4F\u89C8\u5668\u4E2D\u53EF\u89C6\u5316")).option("--output <path>", t("Custom output path", "\u81EA\u5B9A\u4E49\u8F93\u51FA\u8DEF\u5F84")).option("--model <name>", t("Specify model to use", "\u6307\u5B9A\u4F7F\u7528\u7684\u6A21\u578B")).option("--dry-run", t("Validate only, do not generate", "\u53EA\u9A8C\u8BC1\uFF0C\u4E0D\u751F\u6210")).action(async (options) => {
53558
53560
  const { BeadsGenerator: BeadsGenerator2, validateGraph: validateGraph2 } = await Promise.resolve().then(() => (init_beads(), exports_beads));
53559
53561
  const { checkCompatibility: checkCompatibility2 } = await Promise.resolve().then(() => (init_version_check(), exports_version_check));
53560
53562
  await checkCompatibility2();
@@ -53568,9 +53570,7 @@ var planCommand = new Command("plan").description("\u4ECE\u89C4\u683C\u6587\u686
53568
53570
  const config = configManager.get();
53569
53571
  const specPath = join9(projectRoot, config.tools.openspec.path, "spec.md");
53570
53572
  if (!existsSync10(specPath)) {
53571
- throw new AxonError("\u89C4\u683C\u6587\u6863\u4E0D\u5B58\u5728", "PLAN_ERROR", [
53572
- "\u4F7F\u7528 `ax spec init` \u521B\u5EFA\u89C4\u683C\u6587\u6863"
53573
- ]);
53573
+ throw new AxonError("\u89C4\u683C\u6587\u6863\u4E0D\u5B58\u5728", "PLAN_ERROR", ["\u4F7F\u7528 `ax spec init` \u521B\u5EFA\u89C4\u683C\u6587\u6863"]);
53574
53574
  }
53575
53575
  if (options.dryRun) {
53576
53576
  logger.info("\u6267\u884C\u7A7A\u8FD0\u884C\u6A21\u5F0F...");
@@ -53629,10 +53629,11 @@ var planCommand = new Command("plan").description("\u4ECE\u89C4\u683C\u6587\u686
53629
53629
  });
53630
53630
  // src/commands/work.ts
53631
53631
  init_source();
53632
+ init_errors();
53633
+ init_i18n();
53632
53634
  init_logger();
53633
53635
  init_prompt();
53634
- init_errors();
53635
- var workCommand = new Command("work").description("\u6267\u884C\u4EFB\u52A1\u73E0\u5B50").option("-i, --interactive", "\u4EA4\u4E92\u6A21\u5F0F (\u9700\u786E\u8BA4)").option("--live", "\u5B9E\u65F6\u6D41\u5F0F\u8F93\u51FA").option("--all", "\u6267\u884C\u6240\u6709\u5F85\u5904\u7406\u4EFB\u52A1").option("--bead <id>", "\u6267\u884C\u6307\u5B9A\u4EFB\u52A1").action(async (options) => {
53636
+ var workCommand = new Command("work").description(t("Execute task beads", "\u6267\u884C\u4EFB\u52A1\u73E0\u5B50")).option("-i, --interactive", t("Interactive mode (requires confirmation)", "\u4EA4\u4E92\u6A21\u5F0F (\u9700\u786E\u8BA4)")).option("--live", t("Real-time streaming output", "\u5B9E\u65F6\u6D41\u5F0F\u8F93\u51FA")).option("--all", t("Execute all pending tasks", "\u6267\u884C\u6240\u6709\u5F85\u5904\u7406\u4EFB\u52A1")).option("--bead <id>", t("Execute specific task", "\u6267\u884C\u6307\u5B9A\u4EFB\u52A1")).action(async (options) => {
53636
53637
  const { BeadsExecutor: BeadsExecutor2 } = await Promise.resolve().then(() => (init_beads(), exports_beads));
53637
53638
  const { ensureGitSafety: ensureGitSafety2 } = await Promise.resolve().then(() => (init_safe_commit(), exports_safe_commit));
53638
53639
  const { checkCompatibility: checkCompatibility2 } = await Promise.resolve().then(() => (init_version_check(), exports_version_check));
@@ -53752,18 +53753,19 @@ var workCommand = new Command("work").description("\u6267\u884C\u4EFB\u52A1\u73E
53752
53753
  // src/commands/skills.ts
53753
53754
  init_source();
53754
53755
  import { existsSync as existsSync11 } from "fs";
53755
- import { join as join10, basename as basename4 } from "path";
53756
+ import { basename as basename4, join as join10 } from "path";
53756
53757
 
53757
53758
  // src/core/skills/index.ts
53758
53759
  init_library();
53759
53760
 
53760
53761
  // src/commands/skills.ts
53761
- init_logger();
53762
53762
  init_errors();
53763
- var skillsCommand = new Command("skills").description("\u7BA1\u7406\u6280\u80FD\u5E93");
53764
- skillsCommand.command("search <query>").description("\u641C\u7D22\u6280\u80FD\u6A21\u677F").option("-l, --limit <n>", "\u8FD4\u56DE\u7ED3\u679C\u6570\u91CF", "5").action(async (query, options) => {
53763
+ init_i18n();
53764
+ init_logger();
53765
+ var skillsCommand = new Command("skills").description(t("Manage skill library", "\u7BA1\u7406\u6280\u80FD\u5E93"));
53766
+ skillsCommand.command("search <query>").description(t("Search skill templates", "\u641C\u7D22\u6280\u80FD\u6A21\u677F")).option("-l, --limit <n>", t("Number of results to return", "\u8FD4\u56DE\u7ED3\u679C\u6570\u91CF"), "5").action(async (query, options) => {
53765
53767
  const projectRoot = process.cwd();
53766
- const limit = parseInt(options.limit, 10);
53768
+ const limit = Number.parseInt(options.limit, 10);
53767
53769
  let localPath = join10(projectRoot, ".skills");
53768
53770
  let globalPath = join10(process.env["HOME"] || "~", ".axon", "skills");
53769
53771
  if (ConfigManager.isAxonProject(projectRoot)) {
@@ -53794,7 +53796,7 @@ ${source_default.bold(skill.metadata.name)} ${source_default.dim(`(${score}% \u5
53794
53796
  }
53795
53797
  logger.blank();
53796
53798
  });
53797
- skillsCommand.command("list").description("\u5217\u51FA\u6240\u6709\u6280\u80FD").option("-t, --tags <tags>", "\u6309\u6807\u7B7E\u8FC7\u6EE4 (\u9017\u53F7\u5206\u9694)").option("-d, --difficulty <level>", "\u6309\u96BE\u5EA6\u8FC7\u6EE4 (easy/medium/hard)").action(async (options) => {
53799
+ skillsCommand.command("list").description(t("List all skills", "\u5217\u51FA\u6240\u6709\u6280\u80FD")).option("-t, --tags <tags>", t("Filter by tags (comma-separated)", "\u6309\u6807\u7B7E\u8FC7\u6EE4 (\u9017\u53F7\u5206\u9694)")).option("-d, --difficulty <level>", t("Filter by difficulty (easy/medium/hard)", "\u6309\u96BE\u5EA6\u8FC7\u6EE4 (easy/medium/hard)")).action(async (options) => {
53798
53800
  const projectRoot = process.cwd();
53799
53801
  let localPath = join10(projectRoot, ".skills");
53800
53802
  let globalPath = join10(process.env["HOME"] || "~", ".axon", "skills");
@@ -53838,7 +53840,7 @@ ${source_default.bold.blue(tag)} (${tagSkills.length})`);
53838
53840
  }
53839
53841
  logger.blank();
53840
53842
  });
53841
- skillsCommand.command("save <path>").description("\u5C06\u6587\u4EF6\u4FDD\u5B58\u4E3A\u6280\u80FD\u6A21\u677F").option("-n, --name <name>", "\u6280\u80FD\u540D\u79F0").option("-t, --tags <tags>", "\u6807\u7B7E (\u9017\u53F7\u5206\u9694)").option("-d, --description <desc>", "\u63CF\u8FF0").action(async (filePath, options) => {
53843
+ skillsCommand.command("save <path>").description(t("Save file as skill template", "\u5C06\u6587\u4EF6\u4FDD\u5B58\u4E3A\u6280\u80FD\u6A21\u677F")).option("-n, --name <name>", t("Skill name", "\u6280\u80FD\u540D\u79F0")).option("-t, --tags <tags>", t("Tags (comma-separated)", "\u6807\u7B7E (\u9017\u53F7\u5206\u9694)")).option("-d, --description <desc>", t("Description", "\u63CF\u8FF0")).action(async (filePath, options) => {
53842
53844
  const projectRoot = process.cwd();
53843
53845
  if (!ConfigManager.isAxonProject(projectRoot)) {
53844
53846
  throw new AxonError("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Axon \u9879\u76EE", "SKILLS_ERROR", [
@@ -53871,7 +53873,7 @@ skillsCommand.command("save <path>").description("\u5C06\u6587\u4EF6\u4FDD\u5B58
53871
53873
  await library2.save(skill, targetPath);
53872
53874
  logger.success(`\u6280\u80FD\u5DF2\u4FDD\u5B58: ${targetPath}`);
53873
53875
  });
53874
- skillsCommand.command("stats").description("\u663E\u793A\u6280\u80FD\u5E93\u7EDF\u8BA1").action(async () => {
53876
+ skillsCommand.command("stats").description(t("Show skill library statistics", "\u663E\u793A\u6280\u80FD\u5E93\u7EDF\u8BA1")).action(async () => {
53875
53877
  const projectRoot = process.cwd();
53876
53878
  let localPath = join10(projectRoot, ".skills");
53877
53879
  let globalPath = join10(process.env["HOME"] || "~", ".axon", "skills");
@@ -53908,9 +53910,10 @@ init_source();
53908
53910
  import { existsSync as existsSync12, readFileSync as readFileSync7 } from "fs";
53909
53911
  import { join as join11 } from "path";
53910
53912
  init_beads();
53911
- init_logger();
53912
53913
  init_errors();
53913
- var statusCommand = new Command("status").description("\u663E\u793A\u9879\u76EE\u72B6\u6001").option("--json", "JSON \u683C\u5F0F\u8F93\u51FA").option("--beads", "\u4EC5\u663E\u793A\u4EFB\u52A1\u8FDB\u5EA6").option("--cost", "\u4EC5\u663E\u793A\u6210\u672C\u7EDF\u8BA1").action(async (options) => {
53914
+ init_i18n();
53915
+ init_logger();
53916
+ var statusCommand = new Command("status").description(t("Show project status", "\u663E\u793A\u9879\u76EE\u72B6\u6001")).option("--json", t("Output in JSON format", "JSON \u683C\u5F0F\u8F93\u51FA")).option("--beads", t("Show task progress only", "\u4EC5\u663E\u793A\u4EFB\u52A1\u8FDB\u5EA6")).option("--cost", t("Show cost statistics only", "\u4EC5\u663E\u793A\u6210\u672C\u7EDF\u8BA1")).action(async (options) => {
53914
53917
  const projectRoot = process.cwd();
53915
53918
  if (!ConfigManager.isAxonProject(projectRoot)) {
53916
53919
  throw new AxonError("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Axon \u9879\u76EE", "STATUS_ERROR", [
@@ -54025,8 +54028,9 @@ import { join as join12 } from "path";
54025
54028
  init_anthropic();
54026
54029
  init_git();
54027
54030
  init_omo_config_reader();
54031
+ init_i18n();
54028
54032
  init_logger();
54029
- var doctorCommand = new Command("doctor").description("\u8BCA\u65AD\u73AF\u5883\u95EE\u9898").option("--check-keys", "\u9A8C\u8BC1 API \u5BC6\u94A5").option("--check-tools", "\u68C0\u67E5\u4F9D\u8D56\u5DE5\u5177").option("--fix", "\u5C1D\u8BD5\u81EA\u52A8\u4FEE\u590D").action(async (options) => {
54033
+ var doctorCommand = new Command("doctor").description(t("Diagnose environment issues", "\u8BCA\u65AD\u73AF\u5883\u95EE\u9898")).option("--check-keys", t("Verify API keys", "\u9A8C\u8BC1 API \u5BC6\u94A5")).option("--check-tools", t("Check dependencies", "\u68C0\u67E5\u4F9D\u8D56\u5DE5\u5177")).option("--fix", t("Try to auto-fix", "\u5C1D\u8BD5\u81EA\u52A8\u4FEE\u590D")).action(async (options) => {
54030
54034
  logger.title("Axon \u73AF\u5883\u8BCA\u65AD");
54031
54035
  const results = [];
54032
54036
  const projectRoot = process.cwd();
@@ -54211,12 +54215,13 @@ var doctorCommand = new Command("doctor").description("\u8BCA\u65AD\u73AF\u5883\
54211
54215
  });
54212
54216
  // src/commands/config.ts
54213
54217
  init_source();
54214
- init_logger();
54215
54218
  var import_cli_table3 = __toESM(require_table(), 1);
54216
- init_omo_config_reader();
54217
54219
  init_llm();
54218
- var configCommand = new Command("config").description("\u7BA1\u7406 LLM Provider \u914D\u7F6E");
54219
- configCommand.command("list").alias("ls").description("\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684 Provider").option("--json", "\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA").action(async (options) => {
54220
+ init_omo_config_reader();
54221
+ init_i18n();
54222
+ init_logger();
54223
+ var configCommand = new Command("config").description(t("Manage LLM Provider configuration", "\u7BA1\u7406 LLM Provider \u914D\u7F6E"));
54224
+ configCommand.command("list").alias("ls").description(t("List all available Providers", "\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684 Provider")).option("--json", t("Output in JSON format", "\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA")).action(async (options) => {
54220
54225
  const omo = new OMOConfigReader;
54221
54226
  const providers = omo.getAllProviders();
54222
54227
  if (options.json) {
@@ -54259,7 +54264,7 @@ configCommand.command("list").alias("ls").description("\u5217\u51FA\u6240\u6709\
54259
54264
  \u5F53\u524D\u9ED8\u8BA4: ${source_default.bold(primary.name)}`));
54260
54265
  }
54261
54266
  });
54262
- configCommand.command("show").description("\u663E\u793A\u5F53\u524D Axon \u8FD0\u884C\u6A21\u5F0F").action(() => {
54267
+ configCommand.command("show").description(t("Show current Axon running mode", "\u663E\u793A\u5F53\u524D Axon \u8FD0\u884C\u6A21\u5F0F")).action(() => {
54263
54268
  const client = new AxonLLMClient;
54264
54269
  const mode = client.getMode();
54265
54270
  const desc = client.getModeDescription();
@@ -54270,7 +54275,10 @@ configCommand.command("show").description("\u663E\u793A\u5F53\u524D Axon \u8FD0\
54270
54275
  const table = new import_cli_table3.default({
54271
54276
  colWidths: [20, 50]
54272
54277
  });
54273
- table.push(["\u8FD0\u884C\u6A21\u5F0F", mode === "cli" ? source_default.green(mode) : mode === "direct" ? source_default.blue(mode) : source_default.yellow(mode)], ["\u63CF\u8FF0", desc], ["\u914D\u7F6E\u6765\u6E90", omo.getConfigSource() || "\u65E0"], ["Providers \u6570\u91CF", omo.getAllProviders().length.toString()]);
54278
+ table.push([
54279
+ "\u8FD0\u884C\u6A21\u5F0F",
54280
+ mode === "cli" ? source_default.green(mode) : mode === "direct" ? source_default.blue(mode) : source_default.yellow(mode)
54281
+ ], ["\u63CF\u8FF0", desc], ["\u914D\u7F6E\u6765\u6E90", omo.getConfigSource() || "\u65E0"], ["Providers \u6570\u91CF", omo.getAllProviders().length.toString()]);
54274
54282
  console.log(table.toString());
54275
54283
  if (mode === "fallback") {
54276
54284
  console.log(source_default.yellow(`
@@ -54279,7 +54287,7 @@ configCommand.command("show").description("\u663E\u793A\u5F53\u524D Axon \u8FD0\
54279
54287
  console.log(source_default.cyan(" bunx oh-my-opencode install"));
54280
54288
  }
54281
54289
  });
54282
- configCommand.command("test").description("\u6D4B\u8BD5 Provider \u8FDE\u63A5").option("-p, --provider <name>", "\u6307\u5B9A Provider \u6D4B\u8BD5").option("-m, --model <model>", "\u6307\u5B9A\u6D4B\u8BD5\u4F7F\u7528\u7684\u6A21\u578B").action(async (options) => {
54290
+ configCommand.command("test").description(t("Test Provider connection", "\u6D4B\u8BD5 Provider \u8FDE\u63A5")).option("-p, --provider <name>", t("Specify Provider to test", "\u6307\u5B9A Provider \u6D4B\u8BD5")).option("-m, --model <model>", t("Specify model for testing", "\u6307\u5B9A\u6D4B\u8BD5\u4F7F\u7528\u7684\u6A21\u578B")).action(async (options) => {
54283
54291
  const spinner2 = ora("\u6B63\u5728\u521D\u59CB\u5316 LLM \u5BA2\u6237\u7AEF...").start();
54284
54292
  try {
54285
54293
  const omo = new OMOConfigReader;
@@ -54302,9 +54310,7 @@ configCommand.command("test").description("\u6D4B\u8BD5 Provider \u8FDE\u63A5").
54302
54310
  spinner2.text = `\u6D4B\u8BD5\u8FDE\u63A5: ${source_default.cyan(providerName)}${model ? ` (\u6A21\u578B: ${source_default.cyan(model)})` : ""}...`;
54303
54311
  const client = new AxonLLMClient;
54304
54312
  const start = Date.now();
54305
- const response = await client.chat([
54306
- { role: "user", content: 'Say "OK" if you can hear me.' }
54307
- ], {
54313
+ const response = await client.chat([{ role: "user", content: 'Say "OK" if you can hear me.' }], {
54308
54314
  model,
54309
54315
  temperature: 0.7
54310
54316
  });
@@ -54325,7 +54331,7 @@ configCommand.command("test").description("\u6D4B\u8BD5 Provider \u8FDE\u63A5").
54325
54331
  }
54326
54332
  }
54327
54333
  });
54328
- configCommand.command("failover").description("\u663E\u793A Failover \u94FE").action(() => {
54334
+ configCommand.command("failover").description(t("Show failover chain", "\u663E\u793A Failover \u94FE")).action(() => {
54329
54335
  const omo = new OMOConfigReader;
54330
54336
  const chain = omo.getFailoverChain();
54331
54337
  console.log(source_default.bold(`
@@ -54342,7 +54348,7 @@ configCommand.command("failover").description("\u663E\u793A Failover \u94FE").ac
54342
54348
  });
54343
54349
  }
54344
54350
  });
54345
- configCommand.command("setup").description("\u914D\u7F6E\u5411\u5BFC").action(async () => {
54351
+ configCommand.command("setup").description(t("Configuration wizard", "\u914D\u7F6E\u5411\u5BFC")).action(async () => {
54346
54352
  console.log(source_default.bold(`
54347
54353
  \uD83D\uDE80 Axon \u73AF\u5883\u914D\u7F6E\u5411\u5BFC
54348
54354
  `));
@@ -54369,7 +54375,7 @@ configCommand.command("setup").description("\u914D\u7F6E\u5411\u5BFC").action(as
54369
54375
  console.log(` \u8FD0\u884C ${source_default.cyan("ax config list")} \u67E5\u770B\u8BE6\u60C5`);
54370
54376
  console.log(` \u8FD0\u884C ${source_default.cyan("ax config test")} \u6D4B\u8BD5\u8FDE\u63A5`);
54371
54377
  });
54372
- configCommand.command("keys").description("\u5FEB\u901F\u8BBE\u7F6E API \u5BC6\u94A5 (\u901A\u8FC7 OMO)").argument("<provider>", "\u63D0\u4F9B\u5546 (anthropic, openai, etc)").argument("[key]", "API Key").action(async (provider, key) => {
54378
+ configCommand.command("keys").description(t("Quick setup API key (via OMO)", "\u5FEB\u901F\u8BBE\u7F6E API \u5BC6\u94A5 (\u901A\u8FC7 OMO)")).argument("<provider>", t("Provider (anthropic, openai, etc)", "\u63D0\u4F9B\u5546 (anthropic, openai, etc)")).argument("[key]", "API Key").action(async (provider, key) => {
54373
54379
  const cmd = "bunx oh-my-opencode";
54374
54380
  logger.info(`\u6B63\u5728\u8C03\u7528 ${cmd} \u8BBE\u7F6E\u5BC6\u94A5...`);
54375
54381
  try {
@@ -54513,23 +54519,38 @@ program2.addCommand(doctorCommand);
54513
54519
  program2.addCommand(configCommand);
54514
54520
  program2.addCommand(docsCommand);
54515
54521
  program2.addHelpText("after", `
54516
- ${source_default.bold("\u793A\u4F8B:")}
54517
- ${source_default.cyan("ax init my-project")} \u521D\u59CB\u5316\u65B0\u9879\u76EE
54518
- ${source_default.cyan("ax spec init")} \u4EA4\u4E92\u5F0F\u521B\u5EFA\u89C4\u683C
54519
- ${source_default.cyan("ax config keys anthropic")} \u914D\u7F6E API \u5BC6\u94A5
54520
- ${source_default.cyan("ax plan")} \u751F\u6210\u4EFB\u52A1\u56FE
54521
- ${source_default.cyan("ax work")} \u6267\u884C\u4E0B\u4E00\u4E2A\u4EFB\u52A1
54522
- ${source_default.cyan("ax status")} \u67E5\u770B\u9879\u76EE\u72B6\u6001
54523
-
54524
- ${source_default.bold("\u5FEB\u901F\u5F00\u59CB:")}
54525
- 1. ${source_default.cyan("ax init my-app")} \u521B\u5EFA\u9879\u76EE
54522
+ ${source_default.bold("Examples (English):")}
54523
+ ${source_default.cyan("ax init my-project")} Initialize a new project
54524
+ ${source_default.cyan("ax spec init")} Create specification interactively
54525
+ ${source_default.cyan("ax config keys anthropic")} Configure API key
54526
+ ${source_default.cyan("ax plan")} Generate task graph
54527
+ ${source_default.cyan("ax work")} Execute next task
54528
+ ${source_default.cyan("ax status")} View project status
54529
+
54530
+ ${source_default.bold("Quick Start (English):")}
54531
+ 1. ${source_default.cyan("ax init my-app")} Create project
54532
+ 2. ${source_default.cyan("cd my-app")}
54533
+ 3. ${source_default.cyan("ax spec init")} Define requirements
54534
+ 4. ${source_default.cyan("ax plan")} Break down tasks
54535
+ 5. ${source_default.cyan("ax work")} Start execution
54536
+
54537
+ ${source_default.bold("\u793A\u4F8B\uFF08\u4E2D\u6587\uFF09:")}
54538
+ ${source_default.cyan("ax init my-project")} \u521D\u59CB\u5316\u65B0\u9879\u76EE
54539
+ ${source_default.cyan("ax spec init")} \u4EA4\u4E92\u5F0F\u521B\u5EFA\u89C4\u683C
54540
+ ${source_default.cyan("ax config keys anthropic")} \u914D\u7F6E API \u5BC6\u94A5
54541
+ ${source_default.cyan("ax plan")} \u751F\u6210\u4EFB\u52A1\u56FE
54542
+ ${source_default.cyan("ax work")} \u6267\u884C\u4E0B\u4E00\u4E2A\u4EFB\u52A1
54543
+ ${source_default.cyan("ax status")} \u67E5\u770B\u9879\u76EE\u72B6\u6001
54544
+
54545
+ ${source_default.bold("\u5FEB\u901F\u5F00\u59CB\uFF08\u4E2D\u6587\uFF09:")}
54546
+ 1. ${source_default.cyan("ax init my-app")} \u521B\u5EFA\u9879\u76EE
54526
54547
  2. ${source_default.cyan("cd my-app")}
54527
- 3. ${source_default.cyan("ax spec init")} \u5B9A\u4E49\u9700\u6C42
54528
- 4. ${source_default.cyan("ax plan")} \u62C6\u89E3\u4EFB\u52A1
54529
- 5. ${source_default.cyan("ax work")} \u5F00\u59CB\u6267\u884C
54548
+ 3. ${source_default.cyan("ax spec init")} \u5B9A\u4E49\u9700\u6C42
54549
+ 4. ${source_default.cyan("ax plan")} \u62C6\u89E3\u4EFB\u52A1
54550
+ 5. ${source_default.cyan("ax work")} \u5F00\u59CB\u6267\u884C
54530
54551
 
54531
- ${source_default.dim("\u6587\u6863: https://github.com/arrislink/axon")}
54532
- ${source_default.dim("\u95EE\u9898\u53CD\u9988: https://github.com/arrislink/axon/issues")}
54552
+ ${source_default.dim("Documentation: https://github.com/arrislink/axon")}
54553
+ ${source_default.dim("Issues: https://github.com/arrislink/axon/issues")}
54533
54554
  `);
54534
54555
  process.on("uncaughtException", handleError);
54535
54556
  process.on("unhandledRejection", (reason) => {