poe-code 3.0.372 → 3.0.373

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.
@@ -2036,6 +2036,40 @@ function renderApprovalDeclined(error) {
2036
2036
  logger.error(error.message);
2037
2037
  process.exitCode = 1;
2038
2038
  }
2039
+ function renderCliErrorPattern(pattern) {
2040
+ const logger = createLogger();
2041
+ if (pattern.kind === "usage") {
2042
+ logger.error(appendUsagePointer(pattern.message, {
2043
+ rootUsageName: pattern.rootUsageName,
2044
+ commandPath: pattern.commandPath
2045
+ }));
2046
+ process.exitCode = 1;
2047
+ return;
2048
+ }
2049
+ if (pattern.kind === "runtime-user") {
2050
+ logger.error(pattern.message);
2051
+ process.exitCode = 1;
2052
+ return;
2053
+ }
2054
+ if (pattern.kind === "toolcraft-bug") {
2055
+ logger.error(`toolcraft hit an internal invariant: ${pattern.error.message}\n` +
2056
+ `This is a bug in toolcraft or in the command definition; ` +
2057
+ `it cannot be worked around by changing argv. ` +
2058
+ `Re-run with --debug for a stack trace and file an issue.`);
2059
+ if (pattern.debugStackMode !== undefined && pattern.error.stack) {
2060
+ process.stderr.write(`${formatDebugStack(pattern.error.stack, pattern.debugStackMode)}\n`);
2061
+ }
2062
+ process.exitCode = 1;
2063
+ return;
2064
+ }
2065
+ logger.error(pattern.debugStackMode !== undefined
2066
+ ? pattern.message
2067
+ : `${pattern.message} Use --debug for a stack trace.`);
2068
+ if (pattern.debugStackMode !== undefined && pattern.stack !== undefined) {
2069
+ process.stderr.write(`${formatDebugStack(pattern.stack, pattern.debugStackMode)}\n`);
2070
+ }
2071
+ process.exitCode = 1;
2072
+ }
2039
2073
  function validateServices(services) {
2040
2074
  for (const name of Object.keys(services)) {
2041
2075
  if (RESERVED_SERVICE_NAMES.has(name)) {
@@ -2862,22 +2896,25 @@ function renderHttpError(error, options) {
2862
2896
  function handleRunError(error, options) {
2863
2897
  const logger = createLogger();
2864
2898
  if (error instanceof UserError) {
2865
- logger.error(appendUsagePointer(error.message, {
2866
- rootUsageName: options.rootUsageName,
2867
- commandPath: options.commandPath
2868
- }));
2869
- process.exitCode = 1;
2899
+ renderCliErrorPattern(options.userErrorPattern === "usage"
2900
+ ? {
2901
+ kind: "usage",
2902
+ message: error.message,
2903
+ rootUsageName: options.rootUsageName,
2904
+ commandPath: options.commandPath
2905
+ }
2906
+ : {
2907
+ kind: "runtime-user",
2908
+ message: error.message
2909
+ });
2870
2910
  return;
2871
2911
  }
2872
2912
  if (error instanceof Error && error.name === "ToolcraftBugError") {
2873
- logger.error(`toolcraft hit an internal invariant: ${error.message}\n` +
2874
- `This is a bug in toolcraft or in the command definition; ` +
2875
- `it cannot be worked around by changing argv. ` +
2876
- `Re-run with --debug for a stack trace and file an issue.`);
2877
- if (options.debugStackMode !== undefined && error.stack) {
2878
- process.stderr.write(`${formatDebugStack(error.stack, options.debugStackMode)}\n`);
2879
- }
2880
- process.exitCode = 1;
2913
+ renderCliErrorPattern({
2914
+ kind: "toolcraft-bug",
2915
+ error,
2916
+ debugStackMode: options.debugStackMode
2917
+ });
2881
2918
  return;
2882
2919
  }
2883
2920
  if (error instanceof CommanderError) {
@@ -2916,11 +2953,12 @@ function handleRunError(error, options) {
2916
2953
  return;
2917
2954
  }
2918
2955
  const message = error instanceof Error ? error.message : String(error);
2919
- logger.error(options.debugStackMode !== undefined ? message : `${message} Use --debug for a stack trace.`);
2920
- if (options.debugStackMode !== undefined && error instanceof Error && error.stack) {
2921
- process.stderr.write(`${formatDebugStack(error.stack, options.debugStackMode)}\n`);
2922
- }
2923
- process.exitCode = 1;
2956
+ renderCliErrorPattern({
2957
+ kind: "unexpected",
2958
+ message,
2959
+ stack: error instanceof Error ? error.stack : undefined,
2960
+ debugStackMode: options.debugStackMode
2961
+ });
2924
2962
  }
2925
2963
  function formatCommanderErrorMessage(error) {
2926
2964
  return error.message.startsWith("error:") ? error.message : `error: ${error.message}`;
@@ -3220,7 +3258,8 @@ export async function runCLI(roots, options = {}) {
3220
3258
  program,
3221
3259
  argv: process.argv,
3222
3260
  rootUsageName,
3223
- commandPath: resolvedCommandPath
3261
+ commandPath: resolvedCommandPath,
3262
+ userErrorPattern: errorReportContext?.params === undefined ? "usage" : "runtime-user"
3224
3263
  });
3225
3264
  }
3226
3265
  }