poe-code 3.0.372 → 3.0.374
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +136 -65
- package/dist/index.js.map +2 -2
- package/dist/metafile.json +1 -1
- package/package.json +1 -1
- package/packages/terminal-pilot/dist/cli.js +135 -64
- package/packages/terminal-pilot/dist/cli.js.map +2 -2
- package/packages/terminal-pilot/dist/testing/cli-repl.js +135 -64
- package/packages/terminal-pilot/dist/testing/cli-repl.js.map +2 -2
- package/packages/terminal-pilot/dist/testing/qa-cli.js +135 -64
- package/packages/terminal-pilot/dist/testing/qa-cli.js.map +2 -2
- package/packages/toolcraft/dist/cli.js +128 -53
|
@@ -1527,6 +1527,37 @@ function resolveOutput(resolvedFlags) {
|
|
|
1527
1527
|
}
|
|
1528
1528
|
return "rich";
|
|
1529
1529
|
}
|
|
1530
|
+
function resolveOutputFromArgv(argv) {
|
|
1531
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
1532
|
+
const token = argv[index] ?? "";
|
|
1533
|
+
if (token === "--json") {
|
|
1534
|
+
return "json";
|
|
1535
|
+
}
|
|
1536
|
+
if (token === "--md" || token === "--markdown") {
|
|
1537
|
+
return "md";
|
|
1538
|
+
}
|
|
1539
|
+
if (token === "--output") {
|
|
1540
|
+
const value = argv[index + 1];
|
|
1541
|
+
if (value === "rich" || value === "md" || value === "json") {
|
|
1542
|
+
return value;
|
|
1543
|
+
}
|
|
1544
|
+
if (value === "markdown") {
|
|
1545
|
+
return "md";
|
|
1546
|
+
}
|
|
1547
|
+
continue;
|
|
1548
|
+
}
|
|
1549
|
+
if (token.startsWith("--output=")) {
|
|
1550
|
+
const value = token.slice("--output=".length);
|
|
1551
|
+
if (value === "rich" || value === "md" || value === "json") {
|
|
1552
|
+
return value;
|
|
1553
|
+
}
|
|
1554
|
+
if (value === "markdown") {
|
|
1555
|
+
return "md";
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1559
|
+
return "rich";
|
|
1560
|
+
}
|
|
1530
1561
|
const DESIGN_SYSTEM_OUTPUT_BY_MODE = {
|
|
1531
1562
|
rich: "terminal",
|
|
1532
1563
|
md: "markdown",
|
|
@@ -2036,6 +2067,40 @@ function renderApprovalDeclined(error) {
|
|
|
2036
2067
|
logger.error(error.message);
|
|
2037
2068
|
process.exitCode = 1;
|
|
2038
2069
|
}
|
|
2070
|
+
function renderCliErrorPattern(pattern) {
|
|
2071
|
+
const logger = createLogger();
|
|
2072
|
+
if (pattern.kind === "usage") {
|
|
2073
|
+
logger.error(appendUsagePointer(pattern.message, {
|
|
2074
|
+
rootUsageName: pattern.rootUsageName,
|
|
2075
|
+
commandPath: pattern.commandPath
|
|
2076
|
+
}));
|
|
2077
|
+
process.exitCode = 1;
|
|
2078
|
+
return;
|
|
2079
|
+
}
|
|
2080
|
+
if (pattern.kind === "runtime-user") {
|
|
2081
|
+
logger.error(pattern.message);
|
|
2082
|
+
process.exitCode = 1;
|
|
2083
|
+
return;
|
|
2084
|
+
}
|
|
2085
|
+
if (pattern.kind === "toolcraft-bug") {
|
|
2086
|
+
logger.error(`toolcraft hit an internal invariant: ${pattern.error.message}\n` +
|
|
2087
|
+
`This is a bug in toolcraft or in the command definition; ` +
|
|
2088
|
+
`it cannot be worked around by changing argv. ` +
|
|
2089
|
+
`Re-run with --debug for a stack trace and file an issue.`);
|
|
2090
|
+
if (pattern.debugStackMode !== undefined && pattern.error.stack) {
|
|
2091
|
+
process.stderr.write(`${formatDebugStack(pattern.error.stack, pattern.debugStackMode)}\n`);
|
|
2092
|
+
}
|
|
2093
|
+
process.exitCode = 1;
|
|
2094
|
+
return;
|
|
2095
|
+
}
|
|
2096
|
+
logger.error(pattern.debugStackMode !== undefined
|
|
2097
|
+
? pattern.message
|
|
2098
|
+
: `${pattern.message} Use --debug for a stack trace.`);
|
|
2099
|
+
if (pattern.debugStackMode !== undefined && pattern.stack !== undefined) {
|
|
2100
|
+
process.stderr.write(`${formatDebugStack(pattern.stack, pattern.debugStackMode)}\n`);
|
|
2101
|
+
}
|
|
2102
|
+
process.exitCode = 1;
|
|
2103
|
+
}
|
|
2039
2104
|
function validateServices(services) {
|
|
2040
2105
|
for (const name of Object.keys(services)) {
|
|
2041
2106
|
if (RESERVED_SERVICE_NAMES.has(name)) {
|
|
@@ -2859,68 +2924,74 @@ function renderHttpError(error, options) {
|
|
|
2859
2924
|
process.stderr.write(`${formatDebugStack(stack, options.debugStackMode)}\n`);
|
|
2860
2925
|
}
|
|
2861
2926
|
}
|
|
2862
|
-
function handleRunError(error, options) {
|
|
2927
|
+
async function handleRunError(error, options) {
|
|
2863
2928
|
const logger = createLogger();
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
if (options.debugStackMode !== undefined && error.stack) {
|
|
2878
|
-
process.stderr.write(`${formatDebugStack(error.stack, options.debugStackMode)}\n`);
|
|
2879
|
-
}
|
|
2880
|
-
process.exitCode = 1;
|
|
2881
|
-
return;
|
|
2882
|
-
}
|
|
2883
|
-
if (error instanceof CommanderError) {
|
|
2884
|
-
process.exitCode = error.exitCode;
|
|
2885
|
-
if (error.code === "commander.helpDisplayed" || error.code === "commander.version") {
|
|
2929
|
+
await withOutputFormat(options.output, async () => {
|
|
2930
|
+
if (error instanceof UserError) {
|
|
2931
|
+
renderCliErrorPattern(options.userErrorPattern === "usage"
|
|
2932
|
+
? {
|
|
2933
|
+
kind: "usage",
|
|
2934
|
+
message: error.message,
|
|
2935
|
+
rootUsageName: options.rootUsageName,
|
|
2936
|
+
commandPath: options.commandPath
|
|
2937
|
+
}
|
|
2938
|
+
: {
|
|
2939
|
+
kind: "runtime-user",
|
|
2940
|
+
message: error.message
|
|
2941
|
+
});
|
|
2886
2942
|
return;
|
|
2887
2943
|
}
|
|
2888
|
-
if (error.
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2944
|
+
if (error instanceof Error && error.name === "ToolcraftBugError") {
|
|
2945
|
+
renderCliErrorPattern({
|
|
2946
|
+
kind: "toolcraft-bug",
|
|
2947
|
+
error,
|
|
2948
|
+
debugStackMode: options.debugStackMode
|
|
2949
|
+
});
|
|
2893
2950
|
return;
|
|
2894
2951
|
}
|
|
2895
|
-
if (error
|
|
2896
|
-
|
|
2897
|
-
|
|
2952
|
+
if (error instanceof CommanderError) {
|
|
2953
|
+
process.exitCode = error.exitCode;
|
|
2954
|
+
if (error.code === "commander.helpDisplayed" || error.code === "commander.version") {
|
|
2955
|
+
return;
|
|
2956
|
+
}
|
|
2957
|
+
if (error.code === "commander.unknownCommand") {
|
|
2958
|
+
logger.error(appendUsagePointer(formatUnknownCommandError(error, options.program, options.argv ?? process.argv), {
|
|
2959
|
+
rootUsageName: options.rootUsageName,
|
|
2960
|
+
commandPath: options.commandPath
|
|
2961
|
+
}));
|
|
2962
|
+
return;
|
|
2963
|
+
}
|
|
2964
|
+
if (error.code === "commander.unknownOption") {
|
|
2965
|
+
const argv = options.argv ?? process.argv;
|
|
2966
|
+
logger.error(appendUsagePointer(formatUnknownOptionError(error, options.program, argv), {
|
|
2967
|
+
rootUsageName: options.rootUsageName,
|
|
2968
|
+
commandPath: options.commandPath.length > 0
|
|
2969
|
+
? options.commandPath
|
|
2970
|
+
: findCurrentCommanderCommandPath(options.program, argv)
|
|
2971
|
+
}));
|
|
2972
|
+
return;
|
|
2973
|
+
}
|
|
2974
|
+
logger.error(appendUsagePointer(formatCommanderErrorMessage(error), {
|
|
2898
2975
|
rootUsageName: options.rootUsageName,
|
|
2899
2976
|
commandPath: options.commandPath.length > 0
|
|
2900
2977
|
? options.commandPath
|
|
2901
|
-
: findCurrentCommanderCommandPath(options.program, argv)
|
|
2978
|
+
: findCurrentCommanderCommandPath(options.program, options.argv ?? process.argv)
|
|
2902
2979
|
}));
|
|
2903
2980
|
return;
|
|
2904
2981
|
}
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
}
|
|
2918
|
-
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;
|
|
2982
|
+
if (isHttpErrorLike(error)) {
|
|
2983
|
+
renderHttpError(error, options);
|
|
2984
|
+
process.exitCode = 1;
|
|
2985
|
+
return;
|
|
2986
|
+
}
|
|
2987
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
2988
|
+
renderCliErrorPattern({
|
|
2989
|
+
kind: "unexpected",
|
|
2990
|
+
message,
|
|
2991
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
2992
|
+
debugStackMode: options.debugStackMode
|
|
2993
|
+
});
|
|
2994
|
+
});
|
|
2924
2995
|
}
|
|
2925
2996
|
function formatCommanderErrorMessage(error) {
|
|
2926
2997
|
return error.message.startsWith("error:") ? error.message : `error: ${error.message}`;
|
|
@@ -3212,15 +3283,19 @@ export async function runCLI(roots, options = {}) {
|
|
|
3212
3283
|
if (report !== undefined) {
|
|
3213
3284
|
process.stderr.write(`Saved error report to ${report.displayPath}\n`);
|
|
3214
3285
|
}
|
|
3215
|
-
handleRunError(error, {
|
|
3286
|
+
await handleRunError(error, {
|
|
3216
3287
|
debugStackMode: resolvedFlags !== undefined
|
|
3217
3288
|
? resolveDebugStackMode(resolvedFlags.debug)
|
|
3218
3289
|
: getDebugStackModeFromArgv(process.argv),
|
|
3290
|
+
output: resolvedFlags !== undefined
|
|
3291
|
+
? resolveOutput(resolvedFlags)
|
|
3292
|
+
: resolveOutputFromArgv(process.argv),
|
|
3219
3293
|
verbose: resolvedFlags ? Boolean(resolvedFlags.verbose) : process.argv.includes("--verbose"),
|
|
3220
3294
|
program,
|
|
3221
3295
|
argv: process.argv,
|
|
3222
3296
|
rootUsageName,
|
|
3223
|
-
commandPath: resolvedCommandPath
|
|
3297
|
+
commandPath: resolvedCommandPath,
|
|
3298
|
+
userErrorPattern: errorReportContext?.params === undefined ? "usage" : "runtime-user"
|
|
3224
3299
|
});
|
|
3225
3300
|
}
|
|
3226
3301
|
}
|