@runa-cmd/core 0.2.0-beta.6 → 1.0.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 +667 -0
- package/README.md +98 -11
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +98 -14
- package/dist/cli.js.map +1 -1
- package/dist/command.d.ts +1 -1
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js +3 -3
- package/dist/command.js.map +1 -1
- package/dist/config/loader.d.ts +2 -2
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +8 -5
- package/dist/config/loader.js.map +1 -1
- package/dist/config/scope.js +2 -2
- package/dist/config/scope.js.map +1 -1
- package/dist/errors.d.ts +83 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +114 -11
- package/dist/errors.js.map +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +29 -8
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +1 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -0
- package/dist/internal.js.map +1 -1
- package/dist/parse/resolve.d.ts +7 -0
- package/dist/parse/resolve.d.ts.map +1 -1
- package/dist/parse/resolve.js +140 -25
- package/dist/parse/resolve.js.map +1 -1
- package/dist/parse/schema-adapter.d.ts +2 -0
- package/dist/parse/schema-adapter.d.ts.map +1 -1
- package/dist/parse/schema-adapter.js.map +1 -1
- package/dist/parse/variadic.js +3 -3
- package/dist/parse/variadic.js.map +1 -1
- package/dist/plugin.d.ts +14 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +111 -20
- package/dist/plugin.js.map +1 -1
- package/dist/testing.d.ts +7 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +13 -0
- package/dist/testing.js.map +1 -1
- package/dist/tool-channel.d.ts +5 -1
- package/dist/tool-channel.d.ts.map +1 -1
- package/dist/tool-channel.js.map +1 -1
- package/dist/trace.d.ts +24 -0
- package/dist/trace.d.ts.map +1 -1
- package/dist/trace.js.map +1 -1
- package/dist/types.d.ts +164 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +14 -0
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAgB,CAAC,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
package/dist/config/loader.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import type { ConfigLoader } from '../types.js';
|
|
|
2
2
|
export type { ConfigLoader } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Built-in JSON config file loader.
|
|
5
|
-
* Reads the file and parses it with JSON.parse().
|
|
6
|
-
*
|
|
5
|
+
* Reads the file and parses it with JSON.parse(). Its errors name the file
|
|
6
|
+
* first, as every config error does: `my-tool.config.json: invalid JSON: …`.
|
|
7
7
|
*/
|
|
8
8
|
export declare function jsonLoader(): ConfigLoader;
|
|
9
9
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAmBzC"}
|
package/dist/config/loader.js
CHANGED
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { readFile } from 'node:fs/promises';
|
|
8
8
|
// ─── Public API ─────────────────────────────────────────────
|
|
9
|
+
/** One line: Node quotes the file inside a JSON error, newlines included. */
|
|
10
|
+
const reasonOf = (err) => (err instanceof Error ? err.message : String(err)).replace(/\s*\n\s*/g, ' ');
|
|
9
11
|
/**
|
|
10
12
|
* Built-in JSON config file loader.
|
|
11
|
-
* Reads the file and parses it with JSON.parse().
|
|
12
|
-
*
|
|
13
|
+
* Reads the file and parses it with JSON.parse(). Its errors name the file
|
|
14
|
+
* first, as every config error does: `my-tool.config.json: invalid JSON: …`.
|
|
13
15
|
*/
|
|
14
16
|
export function jsonLoader() {
|
|
15
17
|
return {
|
|
@@ -20,13 +22,14 @@ export function jsonLoader() {
|
|
|
20
22
|
content = await readFile(filePath, 'utf-8');
|
|
21
23
|
}
|
|
22
24
|
catch (err) {
|
|
23
|
-
throw new Error(
|
|
25
|
+
throw new Error(`${filePath}: can't be read: ${reasonOf(err)}`);
|
|
24
26
|
}
|
|
25
27
|
try {
|
|
26
|
-
|
|
28
|
+
// Trailing whitespace means nothing to JSON, and Node would quote it in the error
|
|
29
|
+
return JSON.parse(content.trimEnd());
|
|
27
30
|
}
|
|
28
31
|
catch (err) {
|
|
29
|
-
throw new Error(
|
|
32
|
+
throw new Error(`${filePath}: invalid JSON: ${reasonOf(err)}`);
|
|
30
33
|
}
|
|
31
34
|
},
|
|
32
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACzB,OAAO;QACN,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,QAAgB;YAC1B,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACJ,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,+DAA+D;AAE/D,6EAA6E;AAC7E,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAU,EAAE,CACzC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACzB,OAAO;QACN,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,QAAgB;YAC1B,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACJ,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,oBAAoB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,CAAC;gBACJ,kFAAkF;gBAClF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAY,CAAC;YACjD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,mBAAmB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/dist/config/scope.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfigError, RunaError } from '../errors.js';
|
|
1
|
+
import { ConfigError, ERROR_CODES, RunaError } from '../errors.js';
|
|
2
2
|
import { findSuggestion } from '../suggest.js';
|
|
3
3
|
/** What editors read to validate the file: it says nothing to the CLI. */
|
|
4
4
|
const EDITOR_KEY = '$schema';
|
|
@@ -95,7 +95,7 @@ export function assertConfigNames(target) {
|
|
|
95
95
|
const { settable } = rootOptions(target);
|
|
96
96
|
for (const name of Object.keys(namedCommands(target))) {
|
|
97
97
|
if (settable.includes(name)) {
|
|
98
|
-
throw new RunaError(`Option '${name}' and command '${name}' share a name, so a config file can't tell them apart. Rename one.`, { code:
|
|
98
|
+
throw new RunaError(`Option '${name}' and command '${name}' share a name, so a config file can't tell them apart. Rename one.`, { code: ERROR_CODES.CONFIG_COLLISION, exitCode: 1 });
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
package/dist/config/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/config/scope.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/config/scope.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -6,15 +6,91 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { z } from 'zod';
|
|
8
8
|
type ZodIssue = z.core.$ZodIssue;
|
|
9
|
+
/**
|
|
10
|
+
* Every code Runa's core throws. They're contract: tell errors apart by them,
|
|
11
|
+
* with {@link isRunaError}. The README lists when each one comes up.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ERROR_CODES: {
|
|
14
|
+
/** An argument or option is missing, or breaks its schema. Exit 2 */
|
|
15
|
+
readonly VALIDATION_ERROR: 'VALIDATION_ERROR';
|
|
16
|
+
/** The config file can't be used: broken JSON, an unknown key. Exit 2 */
|
|
17
|
+
readonly INVALID_CONFIG: 'INVALID_CONFIG';
|
|
18
|
+
/** No command has that name. Exit 127 */
|
|
19
|
+
readonly COMMAND_NOT_FOUND: 'COMMAND_NOT_FOUND';
|
|
20
|
+
/** A CommandError without its own code. Exit 1 */
|
|
21
|
+
readonly COMMAND_ERROR: 'COMMAND_ERROR';
|
|
22
|
+
/** SIGINT or SIGTERM stopped the run, and run() failed or didn't end in time */
|
|
23
|
+
readonly INTERRUPTED: 'INTERRUPTED';
|
|
24
|
+
/** run() returned a value its output schema rejects. Exit 1 */
|
|
25
|
+
readonly INVALID_OUTPUT: 'INVALID_OUTPUT';
|
|
26
|
+
/** The command declares format, and run() returned nothing. Exit 1 */
|
|
27
|
+
readonly MISSING_RESULT: 'MISSING_RESULT';
|
|
28
|
+
/** A middleware returned without calling next(). Exit 1 */
|
|
29
|
+
readonly MIDDLEWARE_DID_NOT_CALL_NEXT: 'MIDDLEWARE_DID_NOT_CALL_NEXT';
|
|
30
|
+
/** A middleware called next() without awaiting it. Exit 1 */
|
|
31
|
+
readonly MIDDLEWARE_DID_NOT_AWAIT_NEXT: 'MIDDLEWARE_DID_NOT_AWAIT_NEXT';
|
|
32
|
+
/** Two options end up as the same flag or alias */
|
|
33
|
+
readonly OPTION_COLLISION: 'OPTION_COLLISION';
|
|
34
|
+
/** A boolean `noCache` would clash with `--no-cache` */
|
|
35
|
+
readonly INVALID_OPTION_NAME: 'INVALID_OPTION_NAME';
|
|
36
|
+
/** A z.boolean() without .default() or .optional(): it would be required */
|
|
37
|
+
readonly INVALID_BOOLEAN_OPTION: 'INVALID_BOOLEAN_OPTION';
|
|
38
|
+
/** An alias isn't `-x` nor `--word`, as `'e'` or `'-ab'` */
|
|
39
|
+
readonly INVALID_OPTION_ALIAS: 'INVALID_OPTION_ALIAS';
|
|
40
|
+
/** meta.options names a key that options doesn't have */
|
|
41
|
+
readonly INVALID_META_OPTIONS: 'INVALID_META_OPTIONS';
|
|
42
|
+
/** A command has more than one list argument */
|
|
43
|
+
readonly INVALID_VARIADIC_ARGS: 'INVALID_VARIADIC_ARGS';
|
|
44
|
+
/** The list argument isn't the last one */
|
|
45
|
+
readonly INVALID_VARIADIC_POSITION: 'INVALID_VARIADIC_POSITION';
|
|
46
|
+
/** A command key isn't kebab-case, or doesn't match its meta.name */
|
|
47
|
+
readonly INVALID_COMMAND_NAME: 'INVALID_COMMAND_NAME';
|
|
48
|
+
/** A command of defineCLI declares meta.version, which only runCLI reads */
|
|
49
|
+
readonly INVALID_COMMAND_VERSION: 'INVALID_COMMAND_VERSION';
|
|
50
|
+
/** A global option and a command share a name */
|
|
51
|
+
readonly CONFIG_COLLISION: 'CONFIG_COLLISION';
|
|
52
|
+
/** A plugin without meta.name or setup() */
|
|
53
|
+
readonly INVALID_PLUGIN: 'INVALID_PLUGIN';
|
|
54
|
+
/** A lazy plugin failed to load, or has no default export */
|
|
55
|
+
readonly PLUGIN_LOAD_ERROR: 'PLUGIN_LOAD_ERROR';
|
|
56
|
+
/** A plugin depends on one that isn't registered */
|
|
57
|
+
readonly PLUGIN_MISSING_DEPENDENCY: 'PLUGIN_MISSING_DEPENDENCY';
|
|
58
|
+
/** Plugins depend on each other in a cycle */
|
|
59
|
+
readonly PLUGIN_CIRCULAR_DEPENDENCY: 'PLUGIN_CIRCULAR_DEPENDENCY';
|
|
60
|
+
/** A plugin used part of the API without declaring its capability */
|
|
61
|
+
readonly PLUGIN_CAPABILITY_VIOLATION: 'PLUGIN_CAPABILITY_VIOLATION';
|
|
62
|
+
/** Two plugins replace the help */
|
|
63
|
+
readonly HELP_ALREADY_REPLACED: 'HELP_ALREADY_REPLACED';
|
|
64
|
+
};
|
|
65
|
+
/** One of Runa's error codes. */
|
|
66
|
+
export type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
|
|
67
|
+
/**
|
|
68
|
+
* Whether `error` is a RunaError, and has `code` if you give one. Unlike
|
|
69
|
+
* instanceof, it works when a plugin and the CLI each install their own core.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* if (isRunaError(error, ERROR_CODES.INVALID_CONFIG)) { ... }
|
|
73
|
+
* if (isRunaError(error, 'DEPLOY_FAILED')) { ... } // a CommandError's own code
|
|
74
|
+
*/
|
|
75
|
+
export declare function isRunaError(error: unknown, code?: ErrorCode | (string & {})): error is RunaError;
|
|
76
|
+
/**
|
|
77
|
+
* The base of every error Runa throws. Its message reaches stderr as written,
|
|
78
|
+
* and the process exits with its exit code.
|
|
79
|
+
*/
|
|
9
80
|
export declare class RunaError extends Error {
|
|
81
|
+
/** What happened, as a stable name: tell errors apart by it, not by the message */
|
|
10
82
|
readonly code: string;
|
|
83
|
+
/** The exit code the process ends with */
|
|
11
84
|
readonly exitCode: number;
|
|
12
85
|
constructor(message: string, options: {
|
|
13
86
|
code: string;
|
|
14
87
|
exitCode?: number;
|
|
88
|
+
cause?: unknown;
|
|
15
89
|
});
|
|
16
90
|
}
|
|
91
|
+
/** An argument or option is missing or invalid: a usage error, with exit 2. */
|
|
17
92
|
export declare class ValidationError extends RunaError {
|
|
93
|
+
/** One issue per value that failed, as Zod reports them */
|
|
18
94
|
readonly issues: ZodIssue[];
|
|
19
95
|
constructor(issues: ZodIssue[]);
|
|
20
96
|
}
|
|
@@ -25,10 +101,17 @@ export declare class ValidationError extends RunaError {
|
|
|
25
101
|
export declare class ConfigError extends RunaError {
|
|
26
102
|
constructor(message: string);
|
|
27
103
|
}
|
|
104
|
+
/** No command has that name: exit 127, as in a shell. */
|
|
28
105
|
export declare class CommandNotFoundError extends RunaError {
|
|
106
|
+
/** The closest command name, if one is close enough to suggest */
|
|
29
107
|
readonly suggestion?: string;
|
|
30
108
|
constructor(commandName: string, suggestion?: string);
|
|
31
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* A failure you throw from run(), for the people using your CLI and for a
|
|
112
|
+
* model calling it as a tool: both read the message as you wrote it.
|
|
113
|
+
* Default code: `COMMAND_ERROR`. Default exit code: 1.
|
|
114
|
+
*/
|
|
32
115
|
export declare class CommandError extends RunaError {
|
|
33
116
|
constructor(message: string, options?: {
|
|
34
117
|
code?: string;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,KAAK,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AASjC,qBAAa,SAAU,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -3,12 +3,98 @@ import { longFlag } from './flag-name.js';
|
|
|
3
3
|
const captureStackTrace =
|
|
4
4
|
// biome-ignore lint/complexity/noBannedTypes: V8's captureStackTrace expects Function for the constructor argument
|
|
5
5
|
Error.captureStackTrace;
|
|
6
|
+
// ─── Error codes ────────────────────────────────────────────
|
|
7
|
+
/**
|
|
8
|
+
* Every code Runa's core throws. They're contract: tell errors apart by them,
|
|
9
|
+
* with {@link isRunaError}. The README lists when each one comes up.
|
|
10
|
+
*/
|
|
11
|
+
export const ERROR_CODES = {
|
|
12
|
+
// While someone runs the CLI
|
|
13
|
+
/** An argument or option is missing, or breaks its schema. Exit 2 */
|
|
14
|
+
VALIDATION_ERROR: 'VALIDATION_ERROR',
|
|
15
|
+
/** The config file can't be used: broken JSON, an unknown key. Exit 2 */
|
|
16
|
+
INVALID_CONFIG: 'INVALID_CONFIG',
|
|
17
|
+
/** No command has that name. Exit 127 */
|
|
18
|
+
COMMAND_NOT_FOUND: 'COMMAND_NOT_FOUND',
|
|
19
|
+
/** A CommandError without its own code. Exit 1 */
|
|
20
|
+
COMMAND_ERROR: 'COMMAND_ERROR',
|
|
21
|
+
/** SIGINT or SIGTERM stopped the run, and run() failed or didn't end in time */
|
|
22
|
+
INTERRUPTED: 'INTERRUPTED',
|
|
23
|
+
/** run() returned a value its output schema rejects. Exit 1 */
|
|
24
|
+
INVALID_OUTPUT: 'INVALID_OUTPUT',
|
|
25
|
+
/** The command declares format, and run() returned nothing. Exit 1 */
|
|
26
|
+
MISSING_RESULT: 'MISSING_RESULT',
|
|
27
|
+
/** A middleware returned without calling next(). Exit 1 */
|
|
28
|
+
MIDDLEWARE_DID_NOT_CALL_NEXT: 'MIDDLEWARE_DID_NOT_CALL_NEXT',
|
|
29
|
+
/** A middleware called next() without awaiting it. Exit 1 */
|
|
30
|
+
MIDDLEWARE_DID_NOT_AWAIT_NEXT: 'MIDDLEWARE_DID_NOT_AWAIT_NEXT',
|
|
31
|
+
// At startup, from the CLI's code. All exit 1
|
|
32
|
+
/** Two options end up as the same flag or alias */
|
|
33
|
+
OPTION_COLLISION: 'OPTION_COLLISION',
|
|
34
|
+
/** A boolean `noCache` would clash with `--no-cache` */
|
|
35
|
+
INVALID_OPTION_NAME: 'INVALID_OPTION_NAME',
|
|
36
|
+
/** A z.boolean() without .default() or .optional(): it would be required */
|
|
37
|
+
INVALID_BOOLEAN_OPTION: 'INVALID_BOOLEAN_OPTION',
|
|
38
|
+
/** An alias isn't `-x` nor `--word`, as `'e'` or `'-ab'` */
|
|
39
|
+
INVALID_OPTION_ALIAS: 'INVALID_OPTION_ALIAS',
|
|
40
|
+
/** meta.options names a key that options doesn't have */
|
|
41
|
+
INVALID_META_OPTIONS: 'INVALID_META_OPTIONS',
|
|
42
|
+
/** A command has more than one list argument */
|
|
43
|
+
INVALID_VARIADIC_ARGS: 'INVALID_VARIADIC_ARGS',
|
|
44
|
+
/** The list argument isn't the last one */
|
|
45
|
+
INVALID_VARIADIC_POSITION: 'INVALID_VARIADIC_POSITION',
|
|
46
|
+
/** A command key isn't kebab-case, or doesn't match its meta.name */
|
|
47
|
+
INVALID_COMMAND_NAME: 'INVALID_COMMAND_NAME',
|
|
48
|
+
/** A command of defineCLI declares meta.version, which only runCLI reads */
|
|
49
|
+
INVALID_COMMAND_VERSION: 'INVALID_COMMAND_VERSION',
|
|
50
|
+
/** A global option and a command share a name */
|
|
51
|
+
CONFIG_COLLISION: 'CONFIG_COLLISION',
|
|
52
|
+
/** A plugin without meta.name or setup() */
|
|
53
|
+
INVALID_PLUGIN: 'INVALID_PLUGIN',
|
|
54
|
+
/** A lazy plugin failed to load, or has no default export */
|
|
55
|
+
PLUGIN_LOAD_ERROR: 'PLUGIN_LOAD_ERROR',
|
|
56
|
+
/** A plugin depends on one that isn't registered */
|
|
57
|
+
PLUGIN_MISSING_DEPENDENCY: 'PLUGIN_MISSING_DEPENDENCY',
|
|
58
|
+
/** Plugins depend on each other in a cycle */
|
|
59
|
+
PLUGIN_CIRCULAR_DEPENDENCY: 'PLUGIN_CIRCULAR_DEPENDENCY',
|
|
60
|
+
/** A plugin used part of the API without declaring its capability */
|
|
61
|
+
PLUGIN_CAPABILITY_VIOLATION: 'PLUGIN_CAPABILITY_VIOLATION',
|
|
62
|
+
/** Two plugins replace the help */
|
|
63
|
+
HELP_ALREADY_REPLACED: 'HELP_ALREADY_REPLACED',
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Marks a RunaError. Symbol.for is global, so two copies of core installed
|
|
67
|
+
* side by side mark their errors the same, and instanceof doesn't have to agree.
|
|
68
|
+
*/
|
|
69
|
+
const RUNA_ERROR = Symbol.for('@runa-cmd/core:RunaError');
|
|
70
|
+
/**
|
|
71
|
+
* Whether `error` is a RunaError, and has `code` if you give one. Unlike
|
|
72
|
+
* instanceof, it works when a plugin and the CLI each install their own core.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* if (isRunaError(error, ERROR_CODES.INVALID_CONFIG)) { ... }
|
|
76
|
+
* if (isRunaError(error, 'DEPLOY_FAILED')) { ... } // a CommandError's own code
|
|
77
|
+
*/
|
|
78
|
+
export function isRunaError(error, code) {
|
|
79
|
+
if (!(error instanceof Error))
|
|
80
|
+
return false;
|
|
81
|
+
const marked = error instanceof RunaError || RUNA_ERROR in error;
|
|
82
|
+
return marked && (code === undefined || error.code === code);
|
|
83
|
+
}
|
|
6
84
|
// ─── RunaError ──────────────────────────────────────────────
|
|
85
|
+
/**
|
|
86
|
+
* The base of every error Runa throws. Its message reaches stderr as written,
|
|
87
|
+
* and the process exits with its exit code.
|
|
88
|
+
*/
|
|
7
89
|
export class RunaError extends Error {
|
|
90
|
+
/** What happened, as a stable name: tell errors apart by it, not by the message */
|
|
8
91
|
code;
|
|
92
|
+
/** The exit code the process ends with */
|
|
9
93
|
exitCode;
|
|
10
94
|
constructor(message, options) {
|
|
11
|
-
super(message);
|
|
95
|
+
super(message, options.cause === undefined ? undefined : { cause: options.cause });
|
|
96
|
+
// Not enumerable: the mark isRunaError() reads stays out of logs and comparisons
|
|
97
|
+
Object.defineProperty(this, RUNA_ERROR, { value: true });
|
|
12
98
|
this.name = 'RunaError';
|
|
13
99
|
this.code = options.code;
|
|
14
100
|
this.exitCode = options.exitCode ?? 1;
|
|
@@ -18,19 +104,24 @@ export class RunaError extends Error {
|
|
|
18
104
|
}
|
|
19
105
|
}
|
|
20
106
|
// ─── ValidationError ────────────────────────────────────────
|
|
21
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Prefixes the path, unless the message already names it: as `<name>` or
|
|
109
|
+
* `--name` at a terminal, or as `'name'`, the key a tool call sends.
|
|
110
|
+
*/
|
|
22
111
|
function formatIssue(issue) {
|
|
23
112
|
const name = String(issue.path[0]);
|
|
24
|
-
const isNamed =
|
|
113
|
+
const isNamed = [`<${name}>`, longFlag(name), `'${name}'`].some((form) => issue.message.includes(form));
|
|
25
114
|
if (issue.path.length === 0 || isNamed)
|
|
26
115
|
return issue.message;
|
|
27
116
|
return `${issue.path.join('.')}: ${issue.message}`;
|
|
28
117
|
}
|
|
118
|
+
/** An argument or option is missing or invalid: a usage error, with exit 2. */
|
|
29
119
|
export class ValidationError extends RunaError {
|
|
120
|
+
/** One issue per value that failed, as Zod reports them */
|
|
30
121
|
issues;
|
|
31
122
|
constructor(issues) {
|
|
32
123
|
const message = issues.map(formatIssue).join('\n');
|
|
33
|
-
super(message, { code:
|
|
124
|
+
super(message, { code: ERROR_CODES.VALIDATION_ERROR, exitCode: 2 });
|
|
34
125
|
this.name = 'ValidationError';
|
|
35
126
|
this.issues = issues;
|
|
36
127
|
if (captureStackTrace) {
|
|
@@ -45,7 +136,7 @@ export class ValidationError extends RunaError {
|
|
|
45
136
|
*/
|
|
46
137
|
export class ConfigError extends RunaError {
|
|
47
138
|
constructor(message) {
|
|
48
|
-
super(message, { code:
|
|
139
|
+
super(message, { code: ERROR_CODES.INVALID_CONFIG, exitCode: 2 });
|
|
49
140
|
this.name = 'ConfigError';
|
|
50
141
|
if (captureStackTrace) {
|
|
51
142
|
captureStackTrace(this, this.constructor);
|
|
@@ -53,13 +144,15 @@ export class ConfigError extends RunaError {
|
|
|
53
144
|
}
|
|
54
145
|
}
|
|
55
146
|
// ─── CommandNotFoundError ───────────────────────────────────
|
|
147
|
+
/** No command has that name: exit 127, as in a shell. */
|
|
56
148
|
export class CommandNotFoundError extends RunaError {
|
|
149
|
+
/** The closest command name, if one is close enough to suggest */
|
|
57
150
|
suggestion;
|
|
58
151
|
constructor(commandName, suggestion) {
|
|
59
152
|
const message = suggestion
|
|
60
153
|
? `Command not found: '${commandName}'. Did you mean '${suggestion}'?`
|
|
61
154
|
: `Command not found: '${commandName}'.`;
|
|
62
|
-
super(message, { code:
|
|
155
|
+
super(message, { code: ERROR_CODES.COMMAND_NOT_FOUND, exitCode: 127 });
|
|
63
156
|
this.name = 'CommandNotFoundError';
|
|
64
157
|
this.suggestion = suggestion;
|
|
65
158
|
if (captureStackTrace) {
|
|
@@ -68,10 +161,15 @@ export class CommandNotFoundError extends RunaError {
|
|
|
68
161
|
}
|
|
69
162
|
}
|
|
70
163
|
// ─── CommandError ───────────────────────────────────────────
|
|
164
|
+
/**
|
|
165
|
+
* A failure you throw from run(), for the people using your CLI and for a
|
|
166
|
+
* model calling it as a tool: both read the message as you wrote it.
|
|
167
|
+
* Default code: `COMMAND_ERROR`. Default exit code: 1.
|
|
168
|
+
*/
|
|
71
169
|
export class CommandError extends RunaError {
|
|
72
170
|
constructor(message, options) {
|
|
73
171
|
super(message, {
|
|
74
|
-
code: options?.code ??
|
|
172
|
+
code: options?.code ?? ERROR_CODES.COMMAND_ERROR,
|
|
75
173
|
exitCode: options?.exitCode ?? 1,
|
|
76
174
|
});
|
|
77
175
|
this.name = 'CommandError';
|
|
@@ -99,7 +197,7 @@ export function isDebugEnabled(env = process.env) {
|
|
|
99
197
|
}
|
|
100
198
|
function debugDetails(error) {
|
|
101
199
|
const details = [error.stack ?? error.name];
|
|
102
|
-
if (error
|
|
200
|
+
if (isRunaError(error))
|
|
103
201
|
details.push(`Code: ${error.code}`);
|
|
104
202
|
if (error.cause !== undefined) {
|
|
105
203
|
const cause = error.cause instanceof Error ? error.cause.stack : String(error.cause);
|
|
@@ -110,14 +208,19 @@ function debugDetails(error) {
|
|
|
110
208
|
/** The run was stopped from outside. Its exit code comes from what stopped it. */
|
|
111
209
|
export class InterruptedError extends RunaError {
|
|
112
210
|
constructor(message) {
|
|
113
|
-
super(message, { code:
|
|
211
|
+
super(message, { code: ERROR_CODES.INTERRUPTED });
|
|
114
212
|
this.name = 'InterruptedError';
|
|
115
213
|
}
|
|
116
214
|
}
|
|
117
|
-
|
|
215
|
+
// By the mark, not instanceof: an error from another copy of core, as one a
|
|
216
|
+
// plugin brings, ends the same way (T-254)
|
|
217
|
+
const isExpectedFailure = (error) => isRunaError(error) && error.message.trim() !== '';
|
|
118
218
|
/** Whether the failure comes from how the CLI was called, not from running it. */
|
|
119
219
|
export function isUsageError(error) {
|
|
120
|
-
|
|
220
|
+
const usage = ['ValidationError', 'CommandNotFoundError'];
|
|
221
|
+
return (error instanceof ValidationError ||
|
|
222
|
+
error instanceof CommandNotFoundError ||
|
|
223
|
+
(isRunaError(error) && usage.includes(error.name)));
|
|
121
224
|
}
|
|
122
225
|
/**
|
|
123
226
|
* Why a run failed, never empty, with no advice attached. It is all an agent
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,mEAAmE;AACnE,MAAM,iBAAiB;AACtB,mHAAmH;AAClH,KAA0E,CAAC,iBAAiB,CAAC;AAE/F,+DAA+D;AAE/D,MAAM,OAAO,SAAU,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAEX,SAAS,EACT,OAAO,EAEP,UAAU,EAEV,YAAY,EACZ,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,WAAW,YAAI,QAAQ,EAAE,IAAI,CAAU,CAAC;AA0BrD,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQtE;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAUxF;
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAEX,SAAS,EACT,OAAO,EAEP,UAAU,EAEV,YAAY,EACZ,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,WAAW,YAAI,QAAQ,EAAE,IAAI,CAAU,CAAC;AA0BrD,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQtE;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAUxF;AAiCD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAQ5E;AAsHD,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAGrD"}
|
package/dist/help.js
CHANGED
|
@@ -40,13 +40,15 @@ export function builtInOptions(globals, version) {
|
|
|
40
40
|
return options;
|
|
41
41
|
}
|
|
42
42
|
/** Global options work on every command, so its help lists those it didn't take. */
|
|
43
|
-
function withGlobals(command, globals) {
|
|
43
|
+
function withGlobals(command, globals, isRoot) {
|
|
44
44
|
const taken = new Set(command.options.flatMap((option) => [option.name, ...(option.alias ?? []).map(bare)]));
|
|
45
45
|
const inherited = globals
|
|
46
46
|
.filter((option) => !taken.has(option.name))
|
|
47
47
|
.map((option) => ({
|
|
48
48
|
...option,
|
|
49
49
|
alias: option.alias?.filter((alias) => !taken.has(bare(alias))),
|
|
50
|
+
// The CLI's own options when the command is the CLI; else they come from above
|
|
51
|
+
...(isRoot ? {} : { inherited: true }),
|
|
50
52
|
}));
|
|
51
53
|
return { ...command, options: [...command.options, ...inherited] };
|
|
52
54
|
}
|
|
@@ -70,7 +72,7 @@ export function findHelpTarget(schema, path) {
|
|
|
70
72
|
// With runCLI the command is the CLI, and its name is already the first word
|
|
71
73
|
const isRoot = path[0] === schema.root;
|
|
72
74
|
const commandLine = isRoot ? command.fullPath : [schema.meta.name, ...command.fullPath];
|
|
73
|
-
return { ...withGlobals(command, schema.globalOptions), commandLine };
|
|
75
|
+
return { ...withGlobals(command, schema.globalOptions, isRoot), commandLine };
|
|
74
76
|
}
|
|
75
77
|
// ─── Plain renderer ─────────────────────────────────────────
|
|
76
78
|
function table(rows) {
|
|
@@ -88,18 +90,28 @@ function optionFlags(option) {
|
|
|
88
90
|
const value = option.type === 'boolean'
|
|
89
91
|
? ''
|
|
90
92
|
: ` <${option.valueName ?? option.enumValues?.join('|') ?? kind}>${isList ? '...' : ''}`;
|
|
91
|
-
|
|
93
|
+
// A boolean that starts on is turned off with --no-x: the flag says so
|
|
94
|
+
const long = startsOn(option) ? `--[no-]${option.flag}` : `--${option.flag}`;
|
|
95
|
+
return `${[...aliases, long].join(', ')}${value}`;
|
|
96
|
+
}
|
|
97
|
+
/** A boolean whose default is true: what a person can do with it is turn it off. */
|
|
98
|
+
function startsOn(option) {
|
|
99
|
+
return option.type === 'boolean' && option.defaultValue === true;
|
|
92
100
|
}
|
|
93
101
|
/**
|
|
94
102
|
* The default as help shows it: the author's text if there is one, else the
|
|
95
|
-
* value. A false default says nothing a flag doesn't, so
|
|
103
|
+
* value. A false default or an empty list says nothing a flag doesn't, so
|
|
104
|
+
* neither is shown.
|
|
96
105
|
*/
|
|
97
106
|
function defaultShown(option) {
|
|
98
107
|
if (option.defaultDescription !== undefined)
|
|
99
108
|
return option.defaultDescription;
|
|
100
|
-
|
|
109
|
+
const { defaultValue } = option;
|
|
110
|
+
if (defaultValue === undefined || defaultValue === false)
|
|
111
|
+
return undefined;
|
|
112
|
+
if (Array.isArray(defaultValue) && defaultValue.length === 0)
|
|
101
113
|
return undefined;
|
|
102
|
-
return String(
|
|
114
|
+
return String(defaultValue);
|
|
103
115
|
}
|
|
104
116
|
function optionDetails(option) {
|
|
105
117
|
const details = [option.description ?? ''];
|
|
@@ -142,6 +154,11 @@ function argUsage({ name, required, isVariadic }) {
|
|
|
142
154
|
const label = isVariadic ? `${name}...` : name;
|
|
143
155
|
return required ? `<${label}>` : `[${label}]`;
|
|
144
156
|
}
|
|
157
|
+
/** An argument's description, with the values it takes if it's an enum. */
|
|
158
|
+
function argDetails({ description, enumValues }) {
|
|
159
|
+
const values = enumValues?.length ? `(${enumValues.join(' | ')})` : '';
|
|
160
|
+
return [description ?? '', values].filter(Boolean).join(' ');
|
|
161
|
+
}
|
|
145
162
|
function renderCommand(command) {
|
|
146
163
|
const path = (command.commandLine ?? command.fullPath).join(' ');
|
|
147
164
|
const sections = [[path]];
|
|
@@ -156,10 +173,14 @@ function renderCommand(command) {
|
|
|
156
173
|
];
|
|
157
174
|
sections.push(['USAGE', ` ${usage.join(' ')}`]);
|
|
158
175
|
if (command.args.length > 0) {
|
|
159
|
-
const rows = command.args.map((arg) => [arg.name, arg
|
|
176
|
+
const rows = command.args.map((arg) => [arg.name, argDetails(arg)]);
|
|
160
177
|
sections.push(['ARGUMENTS', ...table(rows)]);
|
|
161
178
|
}
|
|
162
|
-
|
|
179
|
+
// The command's own options first; the global ones work too, and go apart
|
|
180
|
+
sections.push(...optionSections(command.options.filter((option) => !option.inherited)));
|
|
181
|
+
const globals = command.options.filter((option) => option.inherited);
|
|
182
|
+
if (globals.length > 0)
|
|
183
|
+
sections.push(['GLOBAL OPTIONS', ...table(globals.map(optionRow))]);
|
|
163
184
|
if (hasSubcommands)
|
|
164
185
|
sections.push(['COMMANDS', ...commandRows(command.subcommands ?? [])]);
|
|
165
186
|
return sections;
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAU,CAAC;AAErD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEjE,MAAM,aAAa,GAAiB;IACnC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,CAAC,IAAI,CAAC;CACb,CAAC;AAEF,MAAM,gBAAgB,GAAiB;IACtC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,kBAAkB;IAC/B,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,KAAK;CACf,CAAC;AAEF,iEAAiE;AACjE,SAAS,KAAK,CAAC,MAAkB;IAChC,OAAO,MAAM,IAAI,MAAM,CAAC;AACzB,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,KAAa;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAA+B,CAAC;IAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9E,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CACtE,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,OAAuB,EAAE,OAAgB;IACvE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,SAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
export { defineCLI, runCLI } from './cli.js';
|
|
8
8
|
export { defineCommand } from './command.js';
|
|
9
9
|
export { jsonLoader } from './config/loader.js';
|
|
10
|
-
export { CommandError, CommandNotFoundError, ConfigError, RunaError, ValidationError, } from './errors.js';
|
|
10
|
+
export { CommandError, CommandNotFoundError, ConfigError, ERROR_CODES, type ErrorCode, isRunaError, RunaError, ValidationError, } from './errors.js';
|
|
11
11
|
export { getSchema } from './introspect.js';
|
|
12
12
|
export { defineMiddleware } from './middleware.js';
|
|
13
13
|
export type { SchemaAdapter, SchemaDescription } from './parse/schema-adapter.js';
|
|
14
14
|
export { definePlugin } from './plugin.js';
|
|
15
|
-
export type { ArgSchema, CLI, CLIConfig, CLIConfigOptions, CLIMeta, CLISchema, Command, CommandConfig, CommandMeta, CommandSchema, CommandTree, ConfigLoader, FormatContext, HelpHandler, HelpTarget, HookContext, HookHandler, HookName, InferArgs, InferOptions, Invocation, Middleware, MiddlewareContext, MiddlewareFn, NamedCommandMeta, OptionMeta, OptionSchema, ParamMetadata, ParamType, PluginAPI, PluginCapabilities, PluginConfig, PluginMeta, RunCLIOptions, RunContext, RunReturn, } from './types.js';
|
|
15
|
+
export type { ArgSchema, CLI, CLIConfig, CLIConfigOptions, CLIMeta, CLISchema, Command, CommandConfig, CommandMeta, CommandSchema, CommandTree, ConfigLoader, FormatContext, HelpHandler, HelpTarget, HookContext, HookHandler, HookName, InferArgs, InferOptions, Invocation, Middleware, MiddlewareContext, MiddlewareFn, NamedCommandMeta, OptionMeta, OptionSchema, ParamMetadata, ParamType, PluginAPI, PluginCapabilities, PluginConfig, PluginMeta, RunCLIOptions, RunContext, RunResult, RunReturn, } from './types.js';
|
|
16
16
|
export { HOOK_NAMES, PARAM_TYPES } from './types.js';
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|