@duyquangnvx/agent-cli 0.27.0 → 0.28.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.
- package/CHANGELOG.md +27 -0
- package/dist/agent-cli.js +9 -2
- package/dist/agent-cli.js.map +1 -1
- package/dist/built-ins/agents-md.d.ts +3 -2
- package/dist/built-ins/agents-md.js +8 -9
- package/dist/built-ins/agents-md.js.map +1 -1
- package/dist/built-ins/commands.d.ts +2 -1
- package/dist/built-ins/commands.js.map +1 -1
- package/dist/built-ins/doctor-rows.js +1 -1
- package/dist/built-ins/doctor-rows.js.map +1 -1
- package/dist/built-ins/doctor.d.ts +0 -1
- package/dist/built-ins/doctor.js +21 -8
- package/dist/built-ins/doctor.js.map +1 -1
- package/dist/built-ins/install/dependency.js +23 -23
- package/dist/built-ins/install/dependency.js.map +1 -1
- package/dist/built-ins/install/global-npm.d.ts +6 -3
- package/dist/built-ins/install/global-npm.js +19 -14
- package/dist/built-ins/install/global-npm.js.map +1 -1
- package/dist/built-ins/install/global.js +6 -7
- package/dist/built-ins/install/global.js.map +1 -1
- package/dist/built-ins/install/install.d.ts +0 -3
- package/dist/built-ins/install/install.js +0 -1
- package/dist/built-ins/install/install.js.map +1 -1
- package/dist/built-ins/install/release-check.js +10 -17
- package/dist/built-ins/install/release-check.js.map +1 -1
- package/dist/built-ins/npm.d.ts +8 -7
- package/dist/built-ins/npm.js +20 -12
- package/dist/built-ins/npm.js.map +1 -1
- package/dist/built-ins/project-root.d.ts +4 -4
- package/dist/built-ins/project-root.js +12 -22
- package/dist/built-ins/project-root.js.map +1 -1
- package/dist/built-ins/read.d.ts +5 -0
- package/dist/built-ins/read.js +29 -0
- package/dist/built-ins/read.js.map +1 -0
- package/dist/built-ins/setup.d.ts +1 -2
- package/dist/built-ins/setup.js +32 -26
- package/dist/built-ins/setup.js.map +1 -1
- package/dist/built-ins/skill/home.d.ts +2 -1
- package/dist/built-ins/skill/home.js +19 -17
- package/dist/built-ins/skill/home.js.map +1 -1
- package/dist/built-ins/skill/install-command.d.ts +2 -1
- package/dist/built-ins/skill/install-command.js +13 -11
- package/dist/built-ins/skill/install-command.js.map +1 -1
- package/dist/built-ins/skill/project.js +6 -7
- package/dist/built-ins/skill/project.js.map +1 -1
- package/dist/built-ins/skill/sync.d.ts +4 -3
- package/dist/built-ins/skill/sync.js +24 -17
- package/dist/built-ins/skill/sync.js.map +1 -1
- package/dist/built-ins/update.d.ts +1 -1
- package/dist/built-ins/update.js +9 -7
- package/dist/built-ins/update.js.map +1 -1
- package/dist/built-ins/upgrades.d.ts +2 -1
- package/dist/built-ins/upgrades.js +5 -12
- package/dist/built-ins/upgrades.js.map +1 -1
- package/dist/check-examples.js +5 -23
- package/dist/check-examples.js.map +1 -1
- package/dist/check-next-steps.d.ts +3 -9
- package/dist/check-next-steps.js +20 -32
- package/dist/check-next-steps.js.map +1 -1
- package/dist/command-line/line-problem.d.ts +14 -0
- package/dist/command-line/line-problem.js +41 -0
- package/dist/command-line/line-problem.js.map +1 -0
- package/dist/context/files.d.ts +3 -0
- package/dist/context/files.js +17 -2
- package/dist/context/files.js.map +1 -1
- package/dist/context/outputs.d.ts +13 -24
- package/dist/context/outputs.js +37 -37
- package/dist/context/outputs.js.map +1 -1
- package/dist/context/spawn.js +3 -1
- package/dist/context/spawn.js.map +1 -1
- package/dist/context/tools.d.ts +9 -4
- package/dist/context/tools.js +12 -12
- package/dist/context/tools.js.map +1 -1
- package/dist/context.d.ts +3 -1
- package/dist/define-command.d.ts +19 -12
- package/dist/define-command.js +5 -3
- package/dist/define-command.js.map +1 -1
- package/dist/define.d.ts +10 -3
- package/dist/define.js.map +1 -1
- package/dist/errors.d.ts +3 -6
- package/dist/errors.js +17 -28
- package/dist/errors.js.map +1 -1
- package/dist/execute.d.ts +7 -16
- package/dist/execute.js +11 -14
- package/dist/execute.js.map +1 -1
- package/dist/exit-classes.d.ts +7 -10
- package/dist/exit-classes.js +20 -81
- package/dist/exit-classes.js.map +1 -1
- package/dist/failure.d.ts +36 -0
- package/dist/failure.js +65 -0
- package/dist/failure.js.map +1 -0
- package/dist/help-json.js +5 -3
- package/dist/help-json.js.map +1 -1
- package/dist/help.js +3 -3
- package/dist/help.js.map +1 -1
- package/dist/output.d.ts +3 -10
- package/dist/output.js +14 -24
- package/dist/output.js.map +1 -1
- package/dist/run-cli.js +7 -5
- package/dist/run-cli.js.map +1 -1
- package/dist/run-command.d.ts +6 -1
- package/dist/run-command.js +31 -158
- package/dist/run-command.js.map +1 -1
- package/dist/run-options.d.ts +5 -2
- package/dist/run-scope.d.ts +35 -0
- package/dist/run-scope.js +138 -0
- package/dist/run-scope.js.map +1 -0
- package/dist/runtime-codes.d.ts +140 -1
- package/dist/runtime-codes.js +60 -4
- package/dist/runtime-codes.js.map +1 -1
- package/docs/example/cli.test.ts +9 -2
- package/docs/example/cli.ts +1 -0
- package/docs/example/folder.ts +1 -0
- package/docs/guides/commands.md +1 -1
- package/docs/guides/doctor.md +2 -1
- package/docs/guides/errors.md +1 -1
- package/docs/guides/testing.md +2 -1
- package/package.json +1 -1
- package/dist/command-errors.d.ts +0 -8
- package/dist/command-errors.js +0 -25
- package/dist/command-errors.js.map +0 -1
- package/dist/command-line/route-line.d.ts +0 -15
- package/dist/command-line/route-line.js +0 -18
- package/dist/command-line/route-line.js.map +0 -1
package/dist/exit-classes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-classes.js","sourceRoot":"","sources":["../src/exit-classes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exit-classes.js","sourceRoot":"","sources":["../src/exit-classes.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2C,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKrF,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAW,CAAC;AAIxE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;CAC6D,CAAC;AAEvE,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACnD,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAkB;IAC1D,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;AAC/E,CAAC;AAED,SAAS,eAAe,CAAC,IAAc;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS;QAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,SAAgC;IACpD,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,aAAa,CAAC;AACvF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,IAAc;IAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG;QACd,GAAG,iBAAiB;QACpB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;KAChE,CAAC;IACF,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type CommandSpec } from "./command-spec.js";
|
|
2
|
+
import type { ErrorTable } from "./error-table.js";
|
|
3
|
+
import { type ExitClass } from "./exit-classes.js";
|
|
4
|
+
/** One error a run failed with, and who must act on it. */
|
|
5
|
+
export interface ClassifiedLeaf {
|
|
6
|
+
readonly error: unknown;
|
|
7
|
+
readonly exitClass: ExitClass;
|
|
8
|
+
}
|
|
9
|
+
export interface Failure {
|
|
10
|
+
readonly leaves: readonly ClassifiedLeaf[];
|
|
11
|
+
readonly exitCode: number;
|
|
12
|
+
}
|
|
13
|
+
/** A check of a failure: `error`, or a bug saying what in it is wrong. */
|
|
14
|
+
export type FailureCheck = (error: unknown) => Promise<unknown>;
|
|
15
|
+
export interface FailureSources {
|
|
16
|
+
readonly cliName: string;
|
|
17
|
+
/** The CLI's own Error table; the Runtime's is always looked up too. */
|
|
18
|
+
readonly errors: ErrorTable;
|
|
19
|
+
/** The signal that interrupts the run, whose abort reason names the stop signal. */
|
|
20
|
+
readonly stop: AbortSignal | undefined;
|
|
21
|
+
/** The Command that ran, whose `errors` must declare each code that needs declaring. */
|
|
22
|
+
readonly command?: CommandSpec;
|
|
23
|
+
/** The run's control, which rewrites a failure after an interrupt or a missed deadline. */
|
|
24
|
+
readonly control?: {
|
|
25
|
+
errorAfter(error: unknown): unknown;
|
|
26
|
+
};
|
|
27
|
+
/** Absent in production, where a failure is never replaced by a bug in its Next steps. */
|
|
28
|
+
readonly nextStepCheck?: FailureCheck;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* What a run that threw `error` reports: the interrupt and deadline rewrite, then the undeclared
|
|
32
|
+
* code check, then the Next step check, each leaf classified, and the exit code they give.
|
|
33
|
+
*/
|
|
34
|
+
export declare function failureOf(error: unknown, sources: FailureSources): Promise<Failure>;
|
|
35
|
+
/** `failure` with `error`'s leaves after its own, which may change its exit code. */
|
|
36
|
+
export declare function withLeaves(failure: Failure, error: unknown, sources: Pick<FailureSources, "errors" | "stop">): Failure;
|
package/dist/failure.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { commandLabel } from "./command-spec.js";
|
|
2
|
+
import { CliError, errorsOf, UsageError } from "./errors.js";
|
|
3
|
+
import { classOfCode, EXIT_CODES, SIGNAL_EXIT_CODES, stopSignalOf, } from "./exit-classes.js";
|
|
4
|
+
import { mustDeclare } from "./runtime-codes.js";
|
|
5
|
+
/**
|
|
6
|
+
* What a run that threw `error` reports: the interrupt and deadline rewrite, then the undeclared
|
|
7
|
+
* code check, then the Next step check, each leaf classified, and the exit code they give.
|
|
8
|
+
*/
|
|
9
|
+
export async function failureOf(error, sources) {
|
|
10
|
+
const { command, control, nextStepCheck } = sources;
|
|
11
|
+
const rewritten = control === undefined ? error : control.errorAfter(error);
|
|
12
|
+
const declared = command === undefined ? rewritten : checkedCodes(rewritten, command, sources);
|
|
13
|
+
const checked = nextStepCheck === undefined ? declared : await nextStepCheck(declared);
|
|
14
|
+
return failureFrom(classified(checked, sources.errors), sources.stop);
|
|
15
|
+
}
|
|
16
|
+
/** `failure` with `error`'s leaves after its own, which may change its exit code. */
|
|
17
|
+
export function withLeaves(failure, error, sources) {
|
|
18
|
+
return failureFrom([...failure.leaves, ...classified(error, sources.errors)], sources.stop);
|
|
19
|
+
}
|
|
20
|
+
function classified(error, errors) {
|
|
21
|
+
return errorsOf(error).map((leaf) => ({ error: leaf, exitClass: exitClassOfOne(leaf, errors) }));
|
|
22
|
+
}
|
|
23
|
+
function failureFrom(leaves, stop) {
|
|
24
|
+
const exitClass = exitClassOf(leaves);
|
|
25
|
+
return {
|
|
26
|
+
leaves,
|
|
27
|
+
exitCode: exitClass === "interrupted"
|
|
28
|
+
? SIGNAL_EXIT_CODES[stopSignalOf(stop?.reason)]
|
|
29
|
+
: EXIT_CODES[exitClass],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// A code that neither the Runtime nor the CLI declares was thrown by mistake: a bug.
|
|
33
|
+
function exitClassOfOne(error, errors) {
|
|
34
|
+
if (!(error instanceof CliError))
|
|
35
|
+
return "bug";
|
|
36
|
+
if (error instanceof UsageError)
|
|
37
|
+
return "caller";
|
|
38
|
+
return classOfCode(error.code, errors) ?? "bug";
|
|
39
|
+
}
|
|
40
|
+
// Of several errors, the class that must act first decides; any bug makes the whole run one.
|
|
41
|
+
const ACT_FIRST = ["caller", "operator", "source", "wait", "interrupted"];
|
|
42
|
+
function exitClassOf(leaves) {
|
|
43
|
+
const classes = leaves.map((leaf) => leaf.exitClass);
|
|
44
|
+
if (classes.includes("bug"))
|
|
45
|
+
return "bug";
|
|
46
|
+
return ACT_FIRST.find((exitClass) => classes.includes(exitClass)) ?? "bug";
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* `error`, or a bug naming each code in it that the Command must declare in its `errors` and does
|
|
50
|
+
* not: one of the Error table, or a Runtime code only some Commands reach.
|
|
51
|
+
*/
|
|
52
|
+
function checkedCodes(error, { command, path }, { cliName, errors }) {
|
|
53
|
+
const declared = new Set(command.errors ?? []);
|
|
54
|
+
const undeclared = errorsOf(error).flatMap((leaf) => leaf instanceof CliError && mustDeclare(leaf.code, errors) && !declared.has(leaf.code)
|
|
55
|
+
? [leaf.code]
|
|
56
|
+
: []);
|
|
57
|
+
if (undeclared.length === 0)
|
|
58
|
+
return error;
|
|
59
|
+
const label = commandLabel(path, cliName).join(" ");
|
|
60
|
+
const codes = [...new Set(undeclared)].join(", ");
|
|
61
|
+
return new Error(`\`${label}\` threw ${codes}, which its errors do not declare`, {
|
|
62
|
+
cause: error,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,UAAU,EAEV,iBAAiB,EACjB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA8BjD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAc,EAAE,OAAuB;IACrE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/F,MAAM,OAAO,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvF,OAAO,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,UAAU,CACxB,OAAgB,EAChB,KAAc,EACd,OAAgD;IAEhD,OAAO,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,MAAkB;IACpD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,WAAW,CAAC,MAAiC,EAAE,IAA6B;IACnF,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,MAAM;QACN,QAAQ,EACN,SAAS,KAAK,aAAa;YACzB,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,SAAS,cAAc,CAAC,KAAc,EAAE,MAAkB;IACxD,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,QAAQ,CAAC;IACjD,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC;AAClD,CAAC;AAED,6FAA6F;AAC7F,MAAM,SAAS,GAAyB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAEhG,SAAS,WAAW,CAAC,MAAiC;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,KAAc,EACd,EAAE,OAAO,EAAE,IAAI,EAAe,EAC9B,EAAE,OAAO,EAAE,MAAM,EAA8C;IAE/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAClD,IAAI,YAAY,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACpF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACb,CAAC,CAAC,EAAE,CACP,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,KAAK,mCAAmC,EAAE;QAC/E,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC"}
|
package/dist/help-json.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
2
|
import { visibleCommands, } from "./command-spec.js";
|
|
3
3
|
import { errorTableOf } from "./error-table.js";
|
|
4
|
+
import { classOfCode } from "./exit-classes.js";
|
|
5
|
+
import { declaredRuntimeErrors } from "./runtime-codes.js";
|
|
4
6
|
// Transforms and other unrepresentable parts become `{}` rather than failing the whole help.
|
|
5
7
|
function inputSchema(schema) {
|
|
6
8
|
return z.toJSONSchema(schema, { io: "input", unrepresentable: "any" });
|
|
@@ -18,8 +20,8 @@ function commandData(spec, table) {
|
|
|
18
20
|
operator: spec.operator,
|
|
19
21
|
examples: spec.examples,
|
|
20
22
|
secrets: spec.command.secrets ?? [],
|
|
21
|
-
// `defineCli` checked that each declared code is in the table.
|
|
22
|
-
errors: (spec.command.errors ?? []).map((code) => ({ code, class:
|
|
23
|
+
// `defineCli` checked that each declared code is in the table or a declarable Runtime code.
|
|
24
|
+
errors: (spec.command.errors ?? []).map((code) => ({ code, class: classOfCode(code, table) })),
|
|
23
25
|
args: inputSchema(spec.command.args ?? z.object({})),
|
|
24
26
|
options: optionsSchema(spec.options),
|
|
25
27
|
standardFlags: spec.standardFlags.map(({ usage, description, schema }) => ({
|
|
@@ -58,7 +60,7 @@ function publishedTable(table, root) {
|
|
|
58
60
|
if (root.kind !== "command")
|
|
59
61
|
return table;
|
|
60
62
|
const declared = new Set(root.command.errors ?? []);
|
|
61
|
-
return Object.fromEntries(Object.entries(table).filter(([code]) => declared.has(code)));
|
|
63
|
+
return Object.fromEntries(Object.entries({ ...table, ...declaredRuntimeErrors }).filter(([code]) => declared.has(code)));
|
|
62
64
|
}
|
|
63
65
|
// The root names the CLI beside its version, as the text header does; its Commands keep the run-as.
|
|
64
66
|
// A single-Command CLI's root is its Command, whose `errors` list gives way to the table.
|
package/dist/help-json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-json.js","sourceRoot":"","sources":["../src/help-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAIL,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAmB,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"help-json.js","sourceRoot":"","sources":["../src/help-json.ts"],"names":[],"mappings":"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"}
|
package/dist/help.js
CHANGED
|
@@ -35,9 +35,9 @@ const EXIT_MEANINGS = {
|
|
|
35
35
|
source: "someone at the source acts",
|
|
36
36
|
wait: "not done yet: do what the hint says, then run it again",
|
|
37
37
|
};
|
|
38
|
-
function exitCodeRows(cli) {
|
|
38
|
+
function exitCodeRows(cli, root) {
|
|
39
39
|
const failures = [
|
|
40
|
-
...[...reachableExitClasses(cli)].map((exitClass) => [EXIT_CODES[exitClass], EXIT_MEANINGS[exitClass]]),
|
|
40
|
+
...[...reachableExitClasses(cli, root)].map((exitClass) => [EXIT_CODES[exitClass], EXIT_MEANINGS[exitClass]]),
|
|
41
41
|
[EXIT_CODES.bug, `a bug in ${cli.name}`],
|
|
42
42
|
];
|
|
43
43
|
return [
|
|
@@ -66,7 +66,7 @@ export function cliHelp(cli, root, style) {
|
|
|
66
66
|
const body = root.kind === "command"
|
|
67
67
|
? commandLines(root, style, { examples: false })
|
|
68
68
|
: listingLines(`${cli.name} ${cli.version}`, root, style, cli.description);
|
|
69
|
-
return lines(...body, ...section("Exit codes", exitCodeRows(cli), style), ...examplesSection(rootExamples(root), style));
|
|
69
|
+
return lines(...body, ...section("Exit codes", exitCodeRows(cli, root), style), ...examplesSection(rootExamples(root), style));
|
|
70
70
|
}
|
|
71
71
|
export function groupHelp(group, style) {
|
|
72
72
|
return lines(...listingLines(group.commandLine, group, style));
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKxF,SAAS,KAAK,CAAC,IAAoB;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAChC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CACjE,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,IAAoB,EAAE,KAAY;IAChE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5F,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AAClF,CAAC;AAED,SAAS,WAAW,CAAC,KAAgB;IACnC,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,KAAK,CAAC,GAAG,KAAwB;IACxC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CACnB,OAAe,EACf,KAAgB,EAChB,KAAY,EACZ,WAAoB;IAEpB,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QACnB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnD,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QACjD,EAAE;QACF,SAAS,KAAK,CAAC,WAAW,iDAAiD;KAC5E,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,aAAa,GAAsC;IACvD,MAAM,EAAE,8BAA8B;IACtC,QAAQ,EAAE,oCAAoC;IAC9C,MAAM,EAAE,4BAA4B;IACpC,IAAI,EAAE,wDAAwD;CAC/D,CAAC;AAEF,SAAS,YAAY,CAAC,GAAQ;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
package/dist/output.d.ts
CHANGED
|
@@ -1,31 +1,24 @@
|
|
|
1
|
-
import { type NextStepCheck } from "./check-next-steps.js";
|
|
2
1
|
import type { Invocation } from "./command-line/invocation.js";
|
|
3
2
|
import type { SpecNode } from "./command-spec.js";
|
|
4
3
|
import type { Spill } from "./context/spill.js";
|
|
5
4
|
import type { Env } from "./context.js";
|
|
6
5
|
import type { Cli } from "./define.js";
|
|
7
|
-
import { type ErrorTable } from "./error-table.js";
|
|
8
6
|
import { type ErrorFormat } from "./errors.js";
|
|
9
7
|
import type { Outcome } from "./execute.js";
|
|
8
|
+
import { type FailureSources } from "./failure.js";
|
|
10
9
|
import type { Style } from "./style.js";
|
|
11
10
|
export interface RunResult {
|
|
12
11
|
readonly stdout: string;
|
|
13
12
|
readonly stderr: string;
|
|
14
13
|
readonly exitCode: number;
|
|
15
14
|
}
|
|
16
|
-
export interface OutputFormat extends Pick<ErrorFormat, "bugs"
|
|
17
|
-
readonly cliName: string;
|
|
15
|
+
export interface OutputFormat extends Pick<ErrorFormat, "bugs">, FailureSources {
|
|
18
16
|
readonly env: Env;
|
|
19
17
|
readonly style: Style;
|
|
20
18
|
readonly invocation: Invocation;
|
|
21
19
|
readonly json: boolean;
|
|
22
|
-
readonly errors: ErrorTable;
|
|
23
|
-
/** The signal that interrupts the run, whose abort reason names the stop signal. */
|
|
24
|
-
readonly stop: AbortSignal | undefined;
|
|
25
20
|
/** The text help a usage error ends with; set only under an agent, which reads it in one go. */
|
|
26
21
|
readonly usageHelp?: string;
|
|
27
|
-
/** Set by `runCli` alone, so a production failure is never replaced by a bug in its Next steps. */
|
|
28
|
-
readonly checkNextStep?: NextStepCheck;
|
|
29
22
|
}
|
|
30
23
|
export interface DataFormat extends OutputFormat {
|
|
31
24
|
readonly fields: readonly string[] | undefined;
|
|
@@ -50,7 +43,7 @@ export declare function noticeLine(text: string, json: boolean): string;
|
|
|
50
43
|
export declare function startedOutput(outcome: Outcome, format: OutputFormat, spill: Spill): Promise<string> | string;
|
|
51
44
|
/** A serve Command stopped, or ended itself, after it started: that is how it is meant to end. */
|
|
52
45
|
export declare const STOPPED_RESULT: RunResult;
|
|
53
|
-
export declare function errorResult(error: unknown, format: OutputFormat): RunResult
|
|
46
|
+
export declare function errorResult(error: unknown, format: OutputFormat): Promise<RunResult>;
|
|
54
47
|
export declare function commandResult(settled: Settled, format: DataFormat, spill: Spill): Promise<RunResult>;
|
|
55
48
|
export declare function textHelp(node: SpecNode, root: SpecNode, cli: Cli, style: Style): string;
|
|
56
49
|
export declare function helpResult(node: SpecNode, root: SpecNode, cli: Cli, { style, json }: OutputFormat): RunResult;
|
package/dist/output.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
|
-
import { checkedNextSteps } from "./check-next-steps.js";
|
|
3
2
|
import { errorTableOf } from "./error-table.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { formatRuntimeError, UsageError } from "./errors.js";
|
|
4
|
+
import { failureOf, withLeaves } from "./failure.js";
|
|
6
5
|
import { cliHelp, commandHelp, groupHelp } from "./help.js";
|
|
7
6
|
import { cliHelpJson, commandHelpJson, groupHelpJson } from "./help-json.js";
|
|
8
7
|
import { Page, pageFooter, printedPage, projected, renderRows } from "./list.js";
|
|
@@ -38,18 +37,16 @@ export function noticeLine(text, json) {
|
|
|
38
37
|
function stderrLine(key, text, json) {
|
|
39
38
|
return json ? `${JSON.stringify({ [key]: text })}\n` : `${text}\n`;
|
|
40
39
|
}
|
|
41
|
-
function errorText(
|
|
42
|
-
const text = formatRuntimeError(
|
|
43
|
-
...format,
|
|
44
|
-
runAs: format.invocation.runAs,
|
|
45
|
-
isBug: (each) => isBug(each, format.errors),
|
|
46
|
-
isWait: (each) => isWait(each, format.errors),
|
|
47
|
-
});
|
|
40
|
+
function errorText({ leaves }, format) {
|
|
41
|
+
const text = formatRuntimeError(leaves, { ...format, runAs: format.invocation.runAs });
|
|
48
42
|
const { usageHelp, json } = format;
|
|
49
|
-
return usageHelp !== undefined && !json && error instanceof UsageError
|
|
43
|
+
return usageHelp !== undefined && !json && leaves.some((leaf) => leaf.error instanceof UsageError)
|
|
50
44
|
? `${text}\n${usageHelp}`
|
|
51
45
|
: text;
|
|
52
46
|
}
|
|
47
|
+
function failedResult(failure, format) {
|
|
48
|
+
return { stdout: "", stderr: errorText(failure, format), exitCode: failure.exitCode };
|
|
49
|
+
}
|
|
53
50
|
// A List Command keeps paging instead: `--limit` is how its caller sizes the output.
|
|
54
51
|
function stdoutOf({ value, render }, format, spill) {
|
|
55
52
|
const text = printed(value, render, format);
|
|
@@ -61,15 +58,8 @@ export function startedOutput(outcome, format, spill) {
|
|
|
61
58
|
}
|
|
62
59
|
/** A serve Command stopped, or ended itself, after it started: that is how it is meant to end. */
|
|
63
60
|
export const STOPPED_RESULT = { stdout: "", stderr: "", exitCode: SUCCESS_EXIT_CODE };
|
|
64
|
-
export function errorResult(error, format) {
|
|
65
|
-
|
|
66
|
-
? error
|
|
67
|
-
: checkedNextSteps(error, format.checkNextStep, format.invocation.runAs);
|
|
68
|
-
return {
|
|
69
|
-
stdout: "",
|
|
70
|
-
stderr: errorText(checked, format),
|
|
71
|
-
exitCode: exitCodeOf(checked, format.errors, format.stop),
|
|
72
|
-
};
|
|
61
|
+
export async function errorResult(error, format) {
|
|
62
|
+
return failedResult(await failureOf(error, format), format);
|
|
73
63
|
}
|
|
74
64
|
export async function commandResult(settled, format, spill) {
|
|
75
65
|
if (settled.ok) {
|
|
@@ -85,21 +75,21 @@ export async function commandResult(settled, format, spill) {
|
|
|
85
75
|
if (delivered === undefined) {
|
|
86
76
|
return errorResult(error, format);
|
|
87
77
|
}
|
|
78
|
+
const failure = await failureOf(error, format);
|
|
88
79
|
let outcome;
|
|
89
80
|
try {
|
|
90
81
|
outcome = delivered();
|
|
91
82
|
}
|
|
92
83
|
catch (rejected) {
|
|
93
|
-
return
|
|
84
|
+
return failedResult(withLeaves(failure, rejected, format), format);
|
|
94
85
|
}
|
|
95
|
-
const result =
|
|
86
|
+
const result = failedResult(failure, format);
|
|
96
87
|
try {
|
|
97
88
|
return { ...result, stdout: await stdoutOf(outcome, format, spill) };
|
|
98
89
|
}
|
|
99
90
|
catch (spillError) {
|
|
100
91
|
// The run's own error decides the exit code; the lost data is reported after it.
|
|
101
|
-
|
|
102
|
-
return { ...result, stderr: errorText(both, format) };
|
|
92
|
+
return { ...result, stderr: errorText(withLeaves(failure, spillError, format), format) };
|
|
103
93
|
}
|
|
104
94
|
}
|
|
105
95
|
// The root's help names the CLI and its version; a single Command is its CLI's root.
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAoB,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAqC,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQvD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AA2B5B,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;AACjE,CAAC;AAED,SAAS,OAAO,CACd,KAAc,EACd,MAAgC,EAChC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAc;IAE/C,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI;YACT,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;YAC7B,CAAC,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,wFAAwF;IACxF,OAAO,IAAI;QACT,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI;QACjD,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAa;IACzD,OAAO,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa;IACpD,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,GAA0B,EAAE,IAAY,EAAE,IAAa;IACzE,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;AACrE,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,MAAM,EAAW,EAAE,MAAoB;IAC1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IACvF,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACnC,OAAO,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,YAAY,UAAU,CAAC;QAChG,CAAC,CAAC,GAAG,IAAI,KAAK,SAAS,EAAE;QACzB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB,EAAE,MAAoB;IAC1D,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACxF,CAAC;AAED,qFAAqF;AACrF,SAAS,QAAQ,CACf,EAAE,KAAK,EAAE,MAAM,EAAW,EAC1B,MAAkB,EAClB,KAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAC3B,OAAgB,EAChB,MAAoB,EACpB,KAAY;IAEZ,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,cAAc,GAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAc,EAAE,MAAoB;IACpE,OAAO,YAAY,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgB,EAChB,MAAkB,EAClB,KAAY;IAEZ,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAC7D,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,OAAO,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACrC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,SAAS,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,QAAQ,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IACvE,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,iFAAiF;QACjF,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,IAAc,EAAE,GAAQ,EAAE,KAAY;IAC7E,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,MAAM,CAAC,IAAc,EAAE,IAAc,EAAE,GAAQ,EAAE,KAAY,EAAE,IAAa;IACnF,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAAc,EACd,IAAc,EACd,GAAQ,EACR,EAAE,KAAK,EAAE,IAAI,EAAgB;IAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAQ,EAAE,WAAmB;IACzD,MAAM,KAAK,GAAG;QACZ,WAAW,CAAC,GAAG,CAAC;QAChB,GAAG,CAAC,UAAU,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;QACzF,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3E,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AACtF,CAAC"}
|
package/dist/run-cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { runAsOf } from "./built-ins/install/run-as.js";
|
|
2
|
-
import {
|
|
2
|
+
import { nextStepCheck } from "./check-next-steps.js";
|
|
3
3
|
import { route } from "./command-line/route.js";
|
|
4
4
|
import { isAgent } from "./context/agent.js";
|
|
5
5
|
import { noSideTask } from "./context/side-task.js";
|
|
@@ -53,7 +53,11 @@ export async function runWithProgress(cli, argv, options, write, stopNotice) {
|
|
|
53
53
|
// A serve Command's data is too, since the caller uses it while the Command runs.
|
|
54
54
|
async function routeAndRun(cli, argv, options, write, stopNotice) {
|
|
55
55
|
const runAs = runAsOf(cli);
|
|
56
|
-
const root = rootSpec(cli, {
|
|
56
|
+
const root = rootSpec(cli, {
|
|
57
|
+
bin: options.bin,
|
|
58
|
+
node: options.node,
|
|
59
|
+
platform: options.platform ?? process.platform,
|
|
60
|
+
});
|
|
57
61
|
const format = {
|
|
58
62
|
cliName: cli.name,
|
|
59
63
|
env: options.env,
|
|
@@ -62,9 +66,7 @@ async function routeAndRun(cli, argv, options, write, stopNotice) {
|
|
|
62
66
|
json: false,
|
|
63
67
|
errors: errorTableOf(cli),
|
|
64
68
|
stop: options.signal,
|
|
65
|
-
...(options.checkNextSteps === true
|
|
66
|
-
? { checkNextStep: (step) => nextStepProblem(root, runAs, step) }
|
|
67
|
-
: {}),
|
|
69
|
+
...(options.checkNextSteps === true ? { nextStepCheck: nextStepCheck(root, runAs) } : {}),
|
|
68
70
|
};
|
|
69
71
|
const routed = route(root, format.invocation);
|
|
70
72
|
const misused = (node) => isAgent(options.env)
|
package/dist/run-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../src/run-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../src/run-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/run-command.d.ts
CHANGED
|
@@ -7,5 +7,10 @@ export interface Ran {
|
|
|
7
7
|
readonly result: RunResult;
|
|
8
8
|
readonly finishSideTask: FinishSideTask;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Leaves the Side task running, so the caller writes the result before it waits for it.
|
|
12
|
+
*
|
|
13
|
+
* A gate that needs no `ctx` (operator, parse, Project file) runs here; one that does (tools,
|
|
14
|
+
* Secrets, the Plan's) runs in `execute`, after the Notices, so a failing run still delivers them.
|
|
15
|
+
*/
|
|
11
16
|
export declare function runCommand(cli: Cli, routed: CommandRoute, options: RunSettings<unknown>, write: Writers, baseFormat: OutputFormat): Promise<Ran>;
|