@duyquangnvx/agent-cli 0.25.0 → 0.27.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 +13 -0
- package/dist/context/secrets.d.ts +5 -1
- package/dist/context/secrets.js +18 -5
- package/dist/context/secrets.js.map +1 -1
- package/dist/context.d.ts +15 -7
- package/dist/define-command.d.ts +22 -13
- package/dist/define-command.js.map +1 -1
- package/dist/define.d.ts +9 -3
- package/dist/define.js.map +1 -1
- package/dist/help.js +6 -0
- package/dist/help.js.map +1 -1
- package/dist/run-command.js +18 -13
- package/dist/run-command.js.map +1 -1
- package/docs/README.md +2 -2
- package/docs/guides/commands.md +1 -1
- package/docs/guides/doctor.md +1 -1
- package/docs/guides/effects-and-plans.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,19 @@ What changed in each release of `@duyquangnvx/agent-cli` (the Runtime) and `@duy
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## v0.27.0 (2026-11-08)
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- A Secret declared `optional: true` is one the Command runs without, such as a token that overrides a saved login: it is read as any Secret is, `ctx.secret` types it `Secret | undefined`, and its absence fails nothing. Help JSON lists it with `"optional": true`, and `doctor` names it only when set; a name needed by any Command or by `defineCli({ secrets })` stays needed there.
|
|
12
|
+
- Each Command's text help lists its Secrets under `Secrets:`, each with where to get it.
|
|
13
|
+
|
|
14
|
+
## v0.26.0 (2026-11-06)
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- `ctx.dryRun` tells a Command whether the run is a dry run: true only in the `plan` of a run given `--dry-run`, false in `apply` and in every Command without a Plan. A plan whose reads change something of their own, such as a stored login, can skip that change without reading the command line.
|
|
19
|
+
|
|
7
20
|
## v0.25.0 (2026-11-05)
|
|
8
21
|
|
|
9
22
|
### Changed
|
|
@@ -24,7 +24,11 @@ export interface SecretScope {
|
|
|
24
24
|
}
|
|
25
25
|
/** Looks `name` up in the env, then in `envFile`; an empty value counts as unset. */
|
|
26
26
|
export declare function secretOf({ envFile, env, fileError }: SecretScope, name: string): Secret | undefined;
|
|
27
|
+
export declare function isNeeded({ optional }: SecretDeclaration): boolean;
|
|
27
28
|
/** Fails with `SECRET_MISSING`, naming every missing Secret at once, unless all are set. */
|
|
28
29
|
export declare function checkSecrets(secrets: readonly SecretDeclaration[], scope: SecretScope, rerun: Rerun): void;
|
|
29
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* The `doctor` row over every distinct Secret the CLI and its Commands declare; none without any. A
|
|
32
|
+
* name needed anywhere counts as needed, and an unset optional one goes unmentioned.
|
|
33
|
+
*/
|
|
30
34
|
export declare function secretRows(secrets: readonly SecretDeclaration[], commands: Commands): DoctorCheck[];
|
package/dist/context/secrets.js
CHANGED
|
@@ -30,8 +30,11 @@ export function secretOf({ envFile, env, fileError }, name) {
|
|
|
30
30
|
const fromFile = readDotenv(envFile, fileError)[name];
|
|
31
31
|
return fromFile ? { value: fromFile, origin: { kind: "file", path: envFile } } : undefined;
|
|
32
32
|
}
|
|
33
|
+
export function isNeeded({ optional }) {
|
|
34
|
+
return optional !== true;
|
|
35
|
+
}
|
|
33
36
|
function missingIn(scope, secrets) {
|
|
34
|
-
return secrets.filter((
|
|
37
|
+
return secrets.filter((secret) => isNeeded(secret) && secretOf(scope, secret.name) === undefined);
|
|
35
38
|
}
|
|
36
39
|
function getItFrom({ get }) {
|
|
37
40
|
return `(get it from ${get})`;
|
|
@@ -55,11 +58,15 @@ export function checkSecrets(secrets, scope, rerun) {
|
|
|
55
58
|
function originOf({ origin }) {
|
|
56
59
|
return origin.kind === "env" ? "the environment" : origin.path;
|
|
57
60
|
}
|
|
58
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* The `doctor` row over every distinct Secret the CLI and its Commands declare; none without any. A
|
|
63
|
+
* name needed anywhere counts as needed, and an unset optional one goes unmentioned.
|
|
64
|
+
*/
|
|
59
65
|
export function secretRows(secrets, commands) {
|
|
60
66
|
const declared = declaredIn(secrets, commands, (command) => command.secrets);
|
|
61
67
|
if (declared.length === 0)
|
|
62
68
|
return [];
|
|
69
|
+
const needed = new Map(declaredIn(secrets.filter(isNeeded), commands, (command) => command.secrets?.filter(isNeeded)).map((declaration) => [declaration.name, declaration]));
|
|
63
70
|
return [
|
|
64
71
|
{
|
|
65
72
|
name: "secrets",
|
|
@@ -68,16 +75,22 @@ export function secretRows(secrets, commands) {
|
|
|
68
75
|
declaration,
|
|
69
76
|
secret: secretOf({ env, envFile, fileError }, declaration.name),
|
|
70
77
|
}));
|
|
71
|
-
const missing = read.
|
|
78
|
+
const missing = read.flatMap(({ declaration, secret }) => {
|
|
79
|
+
const neededAs = needed.get(declaration.name);
|
|
80
|
+
return secret === undefined && neededAs !== undefined ? [neededAs] : [];
|
|
81
|
+
});
|
|
72
82
|
if (missing.length > 0) {
|
|
73
|
-
const each = missing.map((
|
|
83
|
+
const each = missing.map((declaration) => `${declaration.name} is not set ${getItFrom(declaration)}`);
|
|
74
84
|
return {
|
|
75
85
|
state: "problem",
|
|
76
86
|
message: `${each.join(", ")}; add ${missing.length === 1 ? "it" : "them"} to ${envFile} or the environment`,
|
|
77
87
|
};
|
|
78
88
|
}
|
|
79
89
|
const found = read.flatMap(({ declaration, secret }) => secret === undefined ? [] : [`${declaration.name} from ${originOf(secret)}`]);
|
|
80
|
-
return {
|
|
90
|
+
return {
|
|
91
|
+
state: "ok",
|
|
92
|
+
message: found.length > 0 ? found.join(", ") : "no Secret is set, and none is needed",
|
|
93
|
+
};
|
|
81
94
|
},
|
|
82
95
|
},
|
|
83
96
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/context/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAY/C,2FAA2F;AAC3F,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,GAAQ;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CACjB,IAAY,EACZ,SAAoB;IAEpB,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AASD,qFAAqF;AACrF,MAAM,UAAU,QAAQ,CACtB,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAe,EACxC,IAAY;IAEZ,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,SAAS,SAAS,CAAC,KAAkB,EAAE,OAAqC;IAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/context/secrets.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -22,15 +22,16 @@ export interface BuildStamp {
|
|
|
22
22
|
readonly builtAt: string;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* What a Command declares it needs, which types its `ctx`: `secretName`, the names of
|
|
26
|
-
* and `errors`, the part of the Error table
|
|
25
|
+
* What a Command declares it needs, which types its `ctx`: `secretName`, the names of the `secrets`
|
|
26
|
+
* it needs, `optionalSecretName`, those it runs without, and `errors`, the part of the Error table
|
|
27
|
+
* its `errors` names.
|
|
27
28
|
*/
|
|
28
|
-
export interface Needs<SecretName extends string = string, Errors extends ErrorTable = ErrorTable> {
|
|
29
|
+
export interface Needs<SecretName extends string = string, Errors extends ErrorTable = ErrorTable, OptionalSecretName extends string = string> {
|
|
29
30
|
readonly secretName: SecretName;
|
|
31
|
+
readonly optionalSecretName: OptionalSecretName;
|
|
30
32
|
readonly errors: Errors;
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
export type NoNeeds = Needs<never, NoErrors>;
|
|
34
|
+
export type NoNeeds = Needs<never, NoErrors, never>;
|
|
34
35
|
/** `Declared` is what the Command declares it needs, so `secret` and `fail` take only those. */
|
|
35
36
|
export interface Context<Ports = unknown, Settings = unknown, Declared extends Needs = NoNeeds> {
|
|
36
37
|
readonly cwd: string;
|
|
@@ -123,10 +124,11 @@ export interface Context<Ports = unknown, Settings = unknown, Declared extends N
|
|
|
123
124
|
readonly project: Project<Settings> | undefined;
|
|
124
125
|
/**
|
|
125
126
|
* One of the Command's declared `secrets`, with where it came from: the env, then
|
|
126
|
-
* `$XDG_CONFIG_HOME/<cli>/.env` (default `~/.config`). The Runtime checked each before
|
|
127
|
-
* Command started, so
|
|
127
|
+
* `$XDG_CONFIG_HOME/<cli>/.env` (default `~/.config`). The Runtime checked each it needs before
|
|
128
|
+
* the Command started, so only an optional one may be `undefined`.
|
|
128
129
|
*/
|
|
129
130
|
secret(name: Declared["secretName"]): Secret;
|
|
131
|
+
secret(name: Declared["optionalSecretName"]): Secret | undefined;
|
|
130
132
|
/**
|
|
131
133
|
* The `CliError` for one of the Command's declared `errors`, as `cliError` builds it, for the
|
|
132
134
|
* Command to throw: `details` must match the code's schema.
|
|
@@ -144,6 +146,12 @@ export interface Context<Ports = unknown, Settings = unknown, Declared extends N
|
|
|
144
146
|
fileError(error: unknown, at: FileAccess): unknown;
|
|
145
147
|
/** Whether the caller passed `--force`; always false for a Command without it. */
|
|
146
148
|
readonly force: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Whether the run is a dry run: true only in the `plan` of a run given `--dry-run`, so a plan can
|
|
151
|
+
* skip what a dry run must not change, such as a stored login; false in `apply` and every Command
|
|
152
|
+
* without a Plan.
|
|
153
|
+
*/
|
|
154
|
+
readonly dryRun: boolean;
|
|
147
155
|
/**
|
|
148
156
|
* The caller's own line as a Next step, with each flag in `remove` dropped along with its value
|
|
149
157
|
* (`--from 3` and `--from=3`, every time it was given) and the words in `add` placed before any
|
package/dist/define-command.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type * as z from "zod";
|
|
2
2
|
import { type StandardFlagName } from "./command-line/flags.js";
|
|
3
3
|
import type { Needs } from "./context.js";
|
|
4
|
-
import type { ActCommand, Command, DestructiveCommand, InputSchema, ListCommand, NoInput, ReadCommand, ServeCommand, WriteCommand } from "./define.js";
|
|
4
|
+
import type { ActCommand, Command, DestructiveCommand, InputSchema, ListCommand, NoInput, ReadCommand, SecretDeclaration, ServeCommand, WriteCommand } from "./define.js";
|
|
5
5
|
import type { ErrorTable, NoErrors } from "./error-table.js";
|
|
6
6
|
import type { RowSchema } from "./list.js";
|
|
7
7
|
type Kebab<Key extends string> = Key extends `${infer Head}${infer Tail}` ? `${Head extends Lowercase<Head> ? Head : `-${Lowercase<Head>}`}${Kebab<Tail>}` : Key;
|
|
@@ -21,24 +21,33 @@ interface WithOutput<Schema extends z.ZodType> {
|
|
|
21
21
|
interface WithoutOutput {
|
|
22
22
|
readonly output?: undefined;
|
|
23
23
|
}
|
|
24
|
-
type
|
|
24
|
+
type NeededName<Secrets extends readonly SecretDeclaration[]> = Exclude<Secrets[number], {
|
|
25
|
+
readonly optional: true;
|
|
26
|
+
}>["name"];
|
|
27
|
+
type OptionalName<Secrets extends readonly SecretDeclaration[]> = Extract<Secrets[number], {
|
|
28
|
+
readonly optional: true;
|
|
29
|
+
}>["name"];
|
|
30
|
+
type NeedsOf<Secrets extends readonly SecretDeclaration[], Errors extends ErrorTable> = Needs<NeededName<Secrets>, Errors, OptionalName<Secrets>>;
|
|
31
|
+
type DeclaredSecrets<Secrets extends readonly SecretDeclaration[]> = {
|
|
32
|
+
readonly secrets?: Secrets;
|
|
33
|
+
} & NoInfer<string extends Secrets[number]["name"] ? {
|
|
25
34
|
readonly secrets?: {
|
|
26
35
|
readonly "give each Secret's name as a literal, or the object as const": never;
|
|
27
36
|
};
|
|
28
37
|
} : unknown>;
|
|
29
38
|
/** Declares a Command whose `ctx.ports` is the CLI's `Ports`. */
|
|
30
39
|
export interface DefineCommand<Ports, Settings = unknown, Table extends ErrorTable = NoErrors> {
|
|
31
|
-
<Row extends RowSchema, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
32
|
-
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
33
|
-
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
34
|
-
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
35
|
-
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
36
|
-
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
37
|
-
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
38
|
-
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
39
|
-
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
40
|
-
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
41
|
-
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
40
|
+
<Row extends RowSchema, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: ListCommand<Args, Options, Row, Ports, Settings, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ListCommand<Args, Options, Row, Ports, Settings, NeedsOf<Secrets, Pick<Table, Code>>>;
|
|
41
|
+
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: ReadCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ReadCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema>;
|
|
42
|
+
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: ReadCommand<Args, Options, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ReadCommand<Args, Options, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput;
|
|
43
|
+
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: ActCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ActCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema>;
|
|
44
|
+
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: ActCommand<Args, Options, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ActCommand<Args, Options, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput;
|
|
45
|
+
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: ServeCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ServeCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema>;
|
|
46
|
+
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: ServeCommand<Args, Options, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ServeCommand<Args, Options, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput;
|
|
47
|
+
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: WriteCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): WriteCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema>;
|
|
48
|
+
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: WriteCommand<Args, Options, Plan, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): WriteCommand<Args, Options, Plan, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput;
|
|
49
|
+
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: DestructiveCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): DestructiveCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, NeedsOf<Secrets, Pick<Table, Code>>> & WithOutput<Schema>;
|
|
50
|
+
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends keyof Table & string = never>(command: DestructiveCommand<Args, Options, Plan, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): DestructiveCommand<Args, Options, Plan, Data, Ports, Settings, Data, NeedsOf<Secrets, Pick<Table, Code>>> & WithoutOutput;
|
|
42
51
|
}
|
|
43
52
|
/** Throws when the Command's declaration breaks a rule its type cannot express; `label` names it. */
|
|
44
53
|
export declare function checkCommand(command: Command, label: string, table: ErrorTable): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.js","sourceRoot":"","sources":["../src/define-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-command.js","sourceRoot":"","sources":["../src/define-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAmXjC,qGAAqG;AACrG,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,KAAa,EAAE,KAAiB;IAC7E,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3B,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB,EAAE,KAAa,EAAE,KAAiB;IACrE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAClF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAK9B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAA2B,OAAiB;IAC3D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA2B,gBAAgB,EAAE,CAAC"}
|
package/dist/define.d.ts
CHANGED
|
@@ -30,6 +30,11 @@ export interface SecretDeclaration<Name extends string = string> {
|
|
|
30
30
|
readonly name: Name;
|
|
31
31
|
/** Where to obtain the key, such as the page that issues it; shown when it is missing. */
|
|
32
32
|
readonly get: string;
|
|
33
|
+
/**
|
|
34
|
+
* The Command runs without it, as with a token that overrides a saved login: its absence fails
|
|
35
|
+
* nothing, `ctx.secret` may give `undefined`, and help JSON marks it.
|
|
36
|
+
*/
|
|
37
|
+
readonly optional?: true;
|
|
33
38
|
}
|
|
34
39
|
/** Bounds a whole run, so a long run stops before the caller's own timeout and can be continued. */
|
|
35
40
|
export interface RunDeadline<In> {
|
|
@@ -61,10 +66,11 @@ interface CommandBase<Args extends InputSchema, Options extends InputSchema, Dec
|
|
|
61
66
|
readonly tools?: readonly Tool[];
|
|
62
67
|
/**
|
|
63
68
|
* Read after `tools`, before `plan`, `run` or `start`, `--dry-run` included: missing ones fail the
|
|
64
|
-
* run with `SECRET_MISSING` (exit 2), naming each with its `get` and the CLI's `.env
|
|
65
|
-
* reads only these, help JSON lists them, and `doctor` checks
|
|
69
|
+
* run with `SECRET_MISSING` (exit 2), naming each with its `get` and the CLI's `.env`; an optional
|
|
70
|
+
* one never does. `ctx.secret` reads only these, help JSON lists them, and `doctor` checks
|
|
71
|
+
* each it needs and reports each set.
|
|
66
72
|
*/
|
|
67
|
-
readonly secrets?: readonly SecretDeclaration<Declared["secretName"]>[];
|
|
73
|
+
readonly secrets?: readonly SecretDeclaration<Declared["secretName"] | Declared["optionalSecretName"]>[];
|
|
68
74
|
/**
|
|
69
75
|
* The codes of the CLI's Error table the Command throws, listed with their class in help JSON;
|
|
70
76
|
* `ctx.fail` throws only these. A run ending in a table code missing here, an `AggregateError`
|
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AA2bA,0FAA0F;AAC1F,MAAM,UAAU,SAAS,CAAC,IAAwB;IAChD,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AACzC,CAAC"}
|
package/dist/help.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { visibleCommands, } from "./command-spec.js";
|
|
2
|
+
import { isNeeded } from "./context/secrets.js";
|
|
2
3
|
import { EXIT_CODES, reachableExitClasses, SIGNAL_EXIT_CODES } from "./exit-classes.js";
|
|
3
4
|
function table(rows) {
|
|
4
5
|
const width = Math.max(...rows.map(([left]) => left.length));
|
|
@@ -103,6 +104,10 @@ function argRow(field) {
|
|
|
103
104
|
function optionRow(field) {
|
|
104
105
|
return fieldRow(field, defaultsOf(field));
|
|
105
106
|
}
|
|
107
|
+
function secretRow(declaration) {
|
|
108
|
+
const name = isNeeded(declaration) ? declaration.name : `${declaration.name} (optional)`;
|
|
109
|
+
return [name, `get it from ${declaration.get}`];
|
|
110
|
+
}
|
|
106
111
|
function flagRow({ usage, description }) {
|
|
107
112
|
return [usage, description];
|
|
108
113
|
}
|
|
@@ -113,6 +118,7 @@ function commandLines(spec, style, { examples }) {
|
|
|
113
118
|
...(examples ? examplesSection(spec.examples, style) : []),
|
|
114
119
|
...section("Arguments", spec.args.map(argRow), style),
|
|
115
120
|
...section("Options", spec.options.map(optionRow), style),
|
|
121
|
+
...section("Secrets", (spec.command.secrets ?? []).map(secretRow), style),
|
|
116
122
|
...(spec.help === undefined ? [] : ["", spec.help]),
|
|
117
123
|
"",
|
|
118
124
|
`${style.bold("Effect:")} ${spec.effect} (${EFFECT_NOTES[spec.effect]})`,
|
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;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
package/dist/run-command.js
CHANGED
|
@@ -10,7 +10,7 @@ import { RunControl } from "./context/interrupts.js";
|
|
|
10
10
|
import { checkOperator } from "./context/operator.js";
|
|
11
11
|
import { outputsGuard } from "./context/outputs.js";
|
|
12
12
|
import { projectOf } from "./context/project.js";
|
|
13
|
-
import { envFileOf, secretOf } from "./context/secrets.js";
|
|
13
|
+
import { envFileOf, isNeeded, secretOf } from "./context/secrets.js";
|
|
14
14
|
import { noSideTask, startSideTask } from "./context/side-task.js";
|
|
15
15
|
import { contextSpawn, contextSpawnDetached, realSpawn, realSpawnDetached, } from "./context/spawn.js";
|
|
16
16
|
import { spillTo } from "./context/spill.js";
|
|
@@ -70,20 +70,23 @@ function portsBaseOf(scope, signal) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
function contextOf(portsBase, control, parts) {
|
|
73
|
-
const { ports, project, force, secrets = [], rerun, deliver, notice } = parts;
|
|
74
|
-
const declared = new
|
|
73
|
+
const { ports, project, force, dryRun, secrets = [], rerun, deliver, notice } = parts;
|
|
74
|
+
const declared = new Map(secrets.map((declaration) => [declaration.name, declaration]));
|
|
75
|
+
function secret(name) {
|
|
76
|
+
const declaration = declared.get(name);
|
|
77
|
+
// Only a cast reaches an undeclared name, and only a `.env` edited mid-run a missing value.
|
|
78
|
+
if (declaration === undefined) {
|
|
79
|
+
throw new Error(`ctx.secret("${name}") names a Secret the Command does not declare`);
|
|
80
|
+
}
|
|
81
|
+
const found = portsBase.secret(name);
|
|
82
|
+
if (found === undefined && isNeeded(declaration)) {
|
|
83
|
+
throw new Error(`ctx.secret("${name}") found no value`);
|
|
84
|
+
}
|
|
85
|
+
return found;
|
|
86
|
+
}
|
|
75
87
|
return {
|
|
76
88
|
...portsBase,
|
|
77
|
-
secret
|
|
78
|
-
// Only a cast reaches an undeclared name, and only a `.env` edited mid-run a missing value.
|
|
79
|
-
if (!declared.has(name)) {
|
|
80
|
-
throw new Error(`ctx.secret("${name}") names a Secret the Command does not declare`);
|
|
81
|
-
}
|
|
82
|
-
const secret = portsBase.secret(name);
|
|
83
|
-
if (secret === undefined)
|
|
84
|
-
throw new Error(`ctx.secret("${name}") found no value`);
|
|
85
|
-
return secret;
|
|
86
|
-
},
|
|
89
|
+
secret,
|
|
87
90
|
fail: cliErrorOf,
|
|
88
91
|
deadline: (ms, options) => control.deadline(ms, options),
|
|
89
92
|
runToEnd: (name, work) => control.runToEnd(name, work),
|
|
@@ -93,6 +96,7 @@ function contextOf(portsBase, control, parts) {
|
|
|
93
96
|
},
|
|
94
97
|
project,
|
|
95
98
|
force,
|
|
99
|
+
dryRun,
|
|
96
100
|
rerun,
|
|
97
101
|
poll: (check, { intervalMs, signal: stop }) => poll(portsBase.clock, check, intervalMs, stop === undefined ? control.signal : AbortSignal.any([control.signal, stop])),
|
|
98
102
|
deliver,
|
|
@@ -214,6 +218,7 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
214
218
|
ports: once(() => ports(portsBase)),
|
|
215
219
|
project,
|
|
216
220
|
force: flags.force,
|
|
221
|
+
dryRun: flags.dryRun,
|
|
217
222
|
secrets: command.secrets,
|
|
218
223
|
rerun: rerunOf,
|
|
219
224
|
notice: (text) => write.stderr(noticeLine(text, routed.json)),
|
package/dist/run-command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
|
@@ -30,7 +30,7 @@ Read [Principles](principles.md) once, then the guide for the task at hand. Ever
|
|
|
30
30
|
## A Command is done when
|
|
31
31
|
|
|
32
32
|
- Every Error table code it throws, its helpers' and ports' included, is in its `errors`, and it throws its own through `ctx.fail`.
|
|
33
|
-
- Every key it reads is in its `secrets`, whose `get` says where to obtain it
|
|
33
|
+
- Every key it reads is in its `secrets`, whose `get` says where to obtain it; one it can run without, such as a token that overrides a saved login, is `optional: true`.
|
|
34
34
|
- Each line to run next is a Next step in `next`, never in the hint's prose; a rerun of the caller's own line comes from `ctx.rerun()`; the hint says whether running them is safe, and a step only the operator can take says so.
|
|
35
35
|
- It declares `output` or `rows`.
|
|
36
36
|
- It has `examples` with realistic full command lines starting with the CLI's name, which `checkExamples(cli)` passes.
|
|
@@ -40,7 +40,7 @@ Read [Principles](principles.md) once, then the guide for the task at hand. Ever
|
|
|
40
40
|
- Its tests, through `runCli`, cover:
|
|
41
41
|
- the success output, in text and under `--json`;
|
|
42
42
|
- each `CliError` code;
|
|
43
|
-
- for a Command with `secrets
|
|
43
|
+
- for a Command with `secrets` it needs, `SECRET_MISSING` before any work; for an optional one, a run with it unset;
|
|
44
44
|
- for a write or destructive Command, that `--dry-run` and each refused guard change nothing;
|
|
45
45
|
- for a write Command, that it is idempotent: a second run after a success changes nothing;
|
|
46
46
|
- cancellation by passing `signal` to `runCli`, aborted once with the reason `"SIGTERM"` for 143;
|
package/docs/guides/commands.md
CHANGED
|
@@ -28,7 +28,7 @@ Reach the outside through `ctx`, so tests control it:
|
|
|
28
28
|
|
|
29
29
|
- the working directory and environment as `ctx.cwd` and `ctx.env`;
|
|
30
30
|
- the file system through `ctx.files`, whose failures name the path; a `node:fs` failure is a bug (exit 70). Pass `mode` to its `write` or `mkdir` for a file or folder holding tokens. Catch a file code from `runtimeCodes` to say what to do instead, as [`example/bundle.ts`](../example/bundle.ts) turns `ALREADY_EXISTS` into its own `BUNDLE_EXISTS`;
|
|
31
|
-
- a key or token through `ctx.secret(name)`, for a name in the Command's `secrets`. The Runtime reads each declared Secret from the environment, then the CLI's `.env` at `ctx.envFile` (`~/.config/<name>/.env`, or under `$XDG_CONFIG_HOME`), an empty value counting as unset, and fails the run with `SECRET_MISSING` before any work, `--dry-run` included, when one is unset; so `ctx.secret` returns a `Secret`, never `undefined`. Messages name its `origin` and keep its `value` out of the agent's context. `doctor` reports every declared Secret; a key it should check that no Command requires goes in `defineCli({ secrets })`;
|
|
31
|
+
- a key or token through `ctx.secret(name)`, for a name in the Command's `secrets`. The Runtime reads each declared Secret from the environment, then the CLI's `.env` at `ctx.envFile` (`~/.config/<name>/.env`, or under `$XDG_CONFIG_HOME`), an empty value counting as unset, and fails the run with `SECRET_MISSING` before any work, `--dry-run` included, when one is unset; so `ctx.secret` returns a `Secret`, never `undefined`. The exception is a key that only replaces something the CLI already has, such as a token that overrides a saved login: declared `optional: true`, its absence fails nothing and `ctx.secret` may give `undefined`, while help still names it, so an agent learns the key exists. Messages name its `origin` and keep its `value` out of the agent's context. `doctor` reports every declared Secret it needs, and each optional one that is set; a key it should check that no Command requires goes in `defineCli({ secrets })`;
|
|
32
32
|
- a program through `ctx.spawn`, listed in the Command's `tools`, so a missing one fails before any work and `doctor` checks it. Its `stdin` option feeds the program, from an async iterable for input too large to hold, and its `onLine` option receives each line the program writes as it comes;
|
|
33
33
|
- `ctx.progress` while a long step runs, since a Coding agent may kill a CLI that stays silent;
|
|
34
34
|
- `ctx.notice` for something the caller should know beside the data, such as that a copy it relies on is behind. A fact the next step acts on belongs in the data instead.
|
package/docs/guides/doctor.md
CHANGED
|
@@ -38,7 +38,7 @@ A row returns one of:
|
|
|
38
38
|
|
|
39
39
|
When any row is a problem, `doctor` fails with one error per problem row, its `code` or `DOCTOR_PROBLEMS` (exit 2) without one, so it exits by the class that must act first as any Command does: an expired session 3, a network failure 75. Give a problem the code of its real cause. A row that throws becomes its own problem, with a `CliError`'s message and hint as the message, its first Next step other than `ctx.rerun()` as `fix`, and its code as `code`; the failure ends with `doctor` as typed, which a rerun in the row's hint means. A row whose `ctx.spawn` finds no declared tool on `PATH` is `skipped`, since that tool's row reports it. Each row runs under its own deadline, 10 s unless it sets `deadlineMs`, and `ctx.signal` aborts at that deadline, so pass it on. A row with `advisory: true` shows its problem and `fix` but never fails `doctor`; when it has no `fix`, `next` ends with `doctor` as typed.
|
|
40
40
|
|
|
41
|
-
The Runtime's `secrets` row checks every Secret the CLI and its Commands declare, naming where each came from and never its value, so no row of yours reads a key.
|
|
41
|
+
The Runtime's `secrets` row checks every Secret the CLI and its Commands declare, naming where each came from and never its value, so no row of yours reads a key. An optional Secret appears only when set, unless some Command or the CLI needs the same name.
|
|
42
42
|
|
|
43
43
|
The `install` and `registry` rows follow `defineCli({ install })`, and are `skipped` without it. Both are advisory: a project may stay on an older release on purpose.
|
|
44
44
|
|
|
@@ -22,7 +22,7 @@ render: (link) => `Saved link ${link.id}: ${link.url}`,
|
|
|
22
22
|
renderPlan: (plan) => `Would save link ${plan.add.id}: ${plan.add.url}`,
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
`plan` reads and validates only: every side effect lives in `apply`, so a dry run is always safe. Keep the Plan to paths, hashes and numbers and produce bytes in `apply`.
|
|
25
|
+
`plan` reads and validates only: every side effect lives in `apply`, so a dry run is always safe. A read in `plan` that changes something of its own, such as a client that refreshes and stores a login, skips that change when `ctx.dryRun` is true. Keep the Plan to paths, hashes and numbers and produce bytes in `apply`.
|
|
26
26
|
|
|
27
27
|
A Command that writes files declares `outputs(plan)`, which earns it `--force` and refuses to replace an existing output without it. Write them in `apply` through `ctx.files` or a port's `files`. Refuse an output that is also an input by comparing `ctx.files.stat` ids; `--force` never covers that.
|
|
28
28
|
|