@swmansion/argent 0.22.1-next.2 → 0.22.1-next.3
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/bin/argent-simulator-server.cjs +12 -19
- package/dist/bundled-paths.js +21 -28
- package/dist/bundled-paths.js.map +1 -1
- package/dist/cli-cmds.mjs +28 -46
- package/dist/cli.d.ts +3 -25
- package/dist/cli.js +12 -41
- package/dist/cli.js.map +1 -1
- package/dist/fatal-handlers.js +13 -17
- package/dist/fatal-handlers.js.map +1 -1
- package/dist/installer-help.d.ts +31 -49
- package/dist/installer-help.js +31 -54
- package/dist/installer-help.js.map +1 -1
- package/dist/installer.mjs +63 -120
- package/dist/mcp-server.mjs +16 -30
- package/dist/preview-window/main.cjs +9 -13
- package/dist/tool-server.cjs +426 -682
- package/package.json +1 -1
package/dist/installer-help.d.ts
CHANGED
|
@@ -1,35 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Help
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* functions, which do not themselves short-circuit on `--help`. Without an
|
|
7
|
-
* explicit guard `argent uninstall --help` runs the real uninstall — it even
|
|
8
|
-
* opens the destructive "Remove argent configuration from this workspace?"
|
|
9
|
-
* prompt. The dispatcher checks `installerHelpRequested` before dispatching so
|
|
10
|
-
* a help request prints usage and returns without loading or invoking any
|
|
11
|
-
* installer code.
|
|
12
|
-
*
|
|
13
|
-
* The other subcommands (run / tools / server / link / flags / …) handle
|
|
14
|
-
* `--help` themselves, so they are deliberately excluded here — intercepting
|
|
15
|
-
* them would swallow their own command-specific help.
|
|
16
|
-
*
|
|
17
|
-
* This module is also the single source of truth for each installer command's
|
|
18
|
-
* help text: the top-level `argent --help` table in cli.ts reads the summary
|
|
19
|
-
* and detail lines from `INSTALLER_COMMAND_META` so the two can't drift.
|
|
2
|
+
* Help for the subcommands that cannot serve `--help` themselves (see
|
|
3
|
+
* `INSTALLER_COMMANDS`), and the single source of truth for their help text:
|
|
4
|
+
* the top-level `argent --help` table in cli.ts renders the summary and detail
|
|
5
|
+
* lines from `INSTALLER_COMMAND_META`, so the two can't drift.
|
|
20
6
|
*/
|
|
21
7
|
/**
|
|
22
8
|
* Subcommands whose argv never reaches a `--help` handler. The installers
|
|
23
|
-
* forward theirs to side-effecting functions that
|
|
24
|
-
*
|
|
25
|
-
*
|
|
9
|
+
* forward theirs to side-effecting functions that ignore it, so `argent
|
|
10
|
+
* uninstall --help` would run the real uninstall, destructive prompt included;
|
|
11
|
+
* `mcp` is handed no argv at all — `startMcpServer` takes only its paths — so a
|
|
12
|
+
* help flag there starts the stdio server and blocks reading JSON-RPC from
|
|
13
|
+
* stdin. Every other subcommand parses `--help` itself.
|
|
26
14
|
*/
|
|
27
15
|
export declare const INSTALLER_COMMANDS: readonly ["init", "install", "update", "uninstall", "remove", "mcp"];
|
|
28
16
|
export type InstallerCommand = (typeof INSTALLER_COMMANDS)[number];
|
|
29
17
|
export declare function isInstallerCommand(command: string | undefined): command is InstallerCommand;
|
|
30
18
|
/**
|
|
31
|
-
* Flags that consume the next argv token, mirroring the real parsers
|
|
32
|
-
* (`extractFlag` in init-args.ts, the lookahead loops in update.ts). A
|
|
19
|
+
* Flags that consume the next argv token, mirroring the real parsers: a
|
|
33
20
|
* bareword `help` immediately after one of these is that flag's value, not a
|
|
34
21
|
* help request. `--project-root` (update) is agent-internal — parsed but
|
|
35
22
|
* deliberately absent from the help text. Kept in sync with the parsers by
|
|
@@ -37,17 +24,15 @@ export declare function isInstallerCommand(command: string | undefined): command
|
|
|
37
24
|
*/
|
|
38
25
|
export declare const VALUE_TAKING_FLAGS: Record<InstallerCommand, readonly string[]>;
|
|
39
26
|
/**
|
|
40
|
-
* True when `command` is an installer subcommand and `rest` requests help.
|
|
41
|
-
*
|
|
42
|
-
* installer code.
|
|
27
|
+
* True when `command` is an installer subcommand and `rest` requests help.
|
|
28
|
+
* Pure, so the dispatcher can short-circuit before loading installer code.
|
|
43
29
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* confirmation).
|
|
30
|
+
* Matches a help flag anywhere in `rest` (see `isHelpFlag`), or the bareword
|
|
31
|
+
* `help` (case-insensitive) in any position EXCEPT directly after a
|
|
32
|
+
* value-taking flag, where it is that flag's value: `argent init --from help`
|
|
33
|
+
* names a package literally called `help`. The bareword matters on the
|
|
34
|
+
* destructive path — `argent uninstall --yes help` would otherwise run a
|
|
35
|
+
* prompt-free uninstall (`--yes` skips the confirmation).
|
|
51
36
|
*/
|
|
52
37
|
export declare function installerHelpRequested(command: string | undefined, rest: string[]): boolean;
|
|
53
38
|
interface InstallerOption {
|
|
@@ -59,41 +44,38 @@ interface InstallerCommandMeta {
|
|
|
59
44
|
/**
|
|
60
45
|
* One-line summary shared with the top-level `argent --help` table. No
|
|
61
46
|
* trailing period — cli.ts renders it inline in a command list, and
|
|
62
|
-
* `printInstallerHelp` appends
|
|
47
|
+
* `printInstallerHelp` appends one.
|
|
63
48
|
*/
|
|
64
49
|
summary: string;
|
|
65
50
|
/**
|
|
66
51
|
* Extra lines rendered indented under the summary in the top-level command
|
|
67
|
-
* table (cli.ts)
|
|
68
|
-
*
|
|
52
|
+
* table (cli.ts) only; per-command `--help` conveys the same through its
|
|
53
|
+
* option descriptions.
|
|
69
54
|
*/
|
|
70
55
|
details?: string[];
|
|
71
56
|
/**
|
|
72
|
-
* Prose rendered under the summary in this command's own `--help` only —
|
|
73
|
-
*
|
|
74
|
-
* where the option list cannot carry what the reader needs to know.
|
|
57
|
+
* Prose rendered under the summary in this command's own `--help` only — the
|
|
58
|
+
* mirror of `details`. For what the option list cannot carry.
|
|
75
59
|
*/
|
|
76
60
|
notes?: string[];
|
|
77
61
|
/** Usage line, e.g. `argent init [options]`. */
|
|
78
62
|
usage: string;
|
|
79
|
-
/**
|
|
63
|
+
/** Flags listed in this command's help. Empty for aliases (see `aliasOf`). */
|
|
80
64
|
options: InstallerOption[];
|
|
81
65
|
/** When set, this command is an alias; its help defers to the target's. */
|
|
82
66
|
aliasOf?: InstallerCommand;
|
|
83
67
|
}
|
|
84
68
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* drift from the parsers.
|
|
69
|
+
* Help copy per subcommand. The summary and detail lines are the sole copy, also
|
|
70
|
+
* rendered by the top-level table in cli.ts. The option lists mirror the flags
|
|
71
|
+
* the installers parse (init-args.ts, update.ts, uninstall.ts,
|
|
72
|
+
* install-targets.ts in packages/argent-installer);
|
|
73
|
+
* test/installer-flags-sync.test.ts fails when they drift.
|
|
91
74
|
*/
|
|
92
75
|
export declare const INSTALLER_COMMAND_META: Record<InstallerCommand, InstallerCommandMeta>;
|
|
93
76
|
/**
|
|
94
|
-
* Print
|
|
95
|
-
*
|
|
96
|
-
* Read-only: no network, no wizard, no prompt.
|
|
77
|
+
* Print a subcommand's usage block. Read-only: no network, no wizard, no
|
|
78
|
+
* prompt.
|
|
97
79
|
*/
|
|
98
80
|
export declare function printInstallerHelp(command: InstallerCommand): void;
|
|
99
81
|
export {};
|
package/dist/installer-help.js
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Help
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* functions, which do not themselves short-circuit on `--help`. Without an
|
|
7
|
-
* explicit guard `argent uninstall --help` runs the real uninstall — it even
|
|
8
|
-
* opens the destructive "Remove argent configuration from this workspace?"
|
|
9
|
-
* prompt. The dispatcher checks `installerHelpRequested` before dispatching so
|
|
10
|
-
* a help request prints usage and returns without loading or invoking any
|
|
11
|
-
* installer code.
|
|
12
|
-
*
|
|
13
|
-
* The other subcommands (run / tools / server / link / flags / …) handle
|
|
14
|
-
* `--help` themselves, so they are deliberately excluded here — intercepting
|
|
15
|
-
* them would swallow their own command-specific help.
|
|
16
|
-
*
|
|
17
|
-
* This module is also the single source of truth for each installer command's
|
|
18
|
-
* help text: the top-level `argent --help` table in cli.ts reads the summary
|
|
19
|
-
* and detail lines from `INSTALLER_COMMAND_META` so the two can't drift.
|
|
2
|
+
* Help for the subcommands that cannot serve `--help` themselves (see
|
|
3
|
+
* `INSTALLER_COMMANDS`), and the single source of truth for their help text:
|
|
4
|
+
* the top-level `argent --help` table in cli.ts renders the summary and detail
|
|
5
|
+
* lines from `INSTALLER_COMMAND_META`, so the two can't drift.
|
|
20
6
|
*/
|
|
21
7
|
/**
|
|
22
8
|
* Subcommands whose argv never reaches a `--help` handler. The installers
|
|
23
|
-
* forward theirs to side-effecting functions that
|
|
24
|
-
*
|
|
25
|
-
*
|
|
9
|
+
* forward theirs to side-effecting functions that ignore it, so `argent
|
|
10
|
+
* uninstall --help` would run the real uninstall, destructive prompt included;
|
|
11
|
+
* `mcp` is handed no argv at all — `startMcpServer` takes only its paths — so a
|
|
12
|
+
* help flag there starts the stdio server and blocks reading JSON-RPC from
|
|
13
|
+
* stdin. Every other subcommand parses `--help` itself.
|
|
26
14
|
*/
|
|
27
15
|
export const INSTALLER_COMMANDS = [
|
|
28
16
|
"init",
|
|
@@ -36,22 +24,18 @@ export function isInstallerCommand(command) {
|
|
|
36
24
|
return INSTALLER_COMMANDS.includes(command);
|
|
37
25
|
}
|
|
38
26
|
/**
|
|
39
|
-
* True when `arg` is a help flag
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* destructive path (unless `--yes` was also passed).
|
|
27
|
+
* True when `arg` is a help flag: `--help`, `-h`, `--help=<anything>`,
|
|
28
|
+
* single-dash `-help`, or em/en-dash `—help` (smart-dash editors rewrite a
|
|
29
|
+
* pasted `--` into one), all case-insensitive. Anything else — `/help`,
|
|
30
|
+
* `--helpme` — falls through to the real command, where uninstall's
|
|
31
|
+
* confirmation still guards the destructive path unless `--yes` was passed.
|
|
45
32
|
*/
|
|
46
33
|
function isHelpFlag(arg) {
|
|
47
|
-
// Smart-dash normalization: a leading em/en dash stands for the `--` it was
|
|
48
|
-
// rewritten from.
|
|
49
34
|
const lower = arg.toLowerCase().replace(/^[—–]/, "--");
|
|
50
35
|
return lower === "--help" || lower === "-h" || lower === "-help" || lower.startsWith("--help=");
|
|
51
36
|
}
|
|
52
37
|
/**
|
|
53
|
-
* Flags that consume the next argv token, mirroring the real parsers
|
|
54
|
-
* (`extractFlag` in init-args.ts, the lookahead loops in update.ts). A
|
|
38
|
+
* Flags that consume the next argv token, mirroring the real parsers: a
|
|
55
39
|
* bareword `help` immediately after one of these is that flag's value, not a
|
|
56
40
|
* help request. `--project-root` (update) is agent-internal — parsed but
|
|
57
41
|
* deliberately absent from the help text. Kept in sync with the parsers by
|
|
@@ -63,22 +47,19 @@ export const VALUE_TAKING_FLAGS = {
|
|
|
63
47
|
update: ["--version", "--project-root"],
|
|
64
48
|
uninstall: [],
|
|
65
49
|
remove: [],
|
|
66
|
-
// `mcp` parses nothing, so
|
|
67
|
-
// `help` anywhere is unambiguously a help request.
|
|
50
|
+
// `mcp` parses nothing, so a bareword `help` in any position is a help request.
|
|
68
51
|
mcp: [],
|
|
69
52
|
};
|
|
70
53
|
/**
|
|
71
|
-
* True when `command` is an installer subcommand and `rest` requests help.
|
|
72
|
-
*
|
|
73
|
-
* installer code.
|
|
54
|
+
* True when `command` is an installer subcommand and `rest` requests help.
|
|
55
|
+
* Pure, so the dispatcher can short-circuit before loading installer code.
|
|
74
56
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* confirmation).
|
|
57
|
+
* Matches a help flag anywhere in `rest` (see `isHelpFlag`), or the bareword
|
|
58
|
+
* `help` (case-insensitive) in any position EXCEPT directly after a
|
|
59
|
+
* value-taking flag, where it is that flag's value: `argent init --from help`
|
|
60
|
+
* names a package literally called `help`. The bareword matters on the
|
|
61
|
+
* destructive path — `argent uninstall --yes help` would otherwise run a
|
|
62
|
+
* prompt-free uninstall (`--yes` skips the confirmation).
|
|
82
63
|
*/
|
|
83
64
|
export function installerHelpRequested(command, rest) {
|
|
84
65
|
if (!isInstallerCommand(command))
|
|
@@ -97,12 +78,11 @@ const NO_TELEMETRY_OPTION = {
|
|
|
97
78
|
description: "Opt out of anonymous telemetry for this run.",
|
|
98
79
|
};
|
|
99
80
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* drift from the parsers.
|
|
81
|
+
* Help copy per subcommand. The summary and detail lines are the sole copy, also
|
|
82
|
+
* rendered by the top-level table in cli.ts. The option lists mirror the flags
|
|
83
|
+
* the installers parse (init-args.ts, update.ts, uninstall.ts,
|
|
84
|
+
* install-targets.ts in packages/argent-installer);
|
|
85
|
+
* test/installer-flags-sync.test.ts fails when they drift.
|
|
106
86
|
*/
|
|
107
87
|
export const INSTALLER_COMMAND_META = {
|
|
108
88
|
init: {
|
|
@@ -182,8 +162,6 @@ export const INSTALLER_COMMAND_META = {
|
|
|
182
162
|
aliasOf: "uninstall",
|
|
183
163
|
},
|
|
184
164
|
mcp: {
|
|
185
|
-
// Byte-identical to the row the top-level table printed by hand, so moving
|
|
186
|
-
// that row onto this meta changes no output.
|
|
187
165
|
summary: "Start the MCP stdio server (used by editors)",
|
|
188
166
|
usage: "argent mcp",
|
|
189
167
|
notes: [
|
|
@@ -205,9 +183,8 @@ export const INSTALLER_COMMAND_META = {
|
|
|
205
183
|
},
|
|
206
184
|
};
|
|
207
185
|
/**
|
|
208
|
-
* Print
|
|
209
|
-
*
|
|
210
|
-
* Read-only: no network, no wizard, no prompt.
|
|
186
|
+
* Print a subcommand's usage block. Read-only: no network, no wizard, no
|
|
187
|
+
* prompt.
|
|
211
188
|
*/
|
|
212
189
|
export function printInstallerHelp(command) {
|
|
213
190
|
const meta = INSTALLER_COMMAND_META[command];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer-help.js","sourceRoot":"","sources":["../src/installer-help.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"installer-help.js","sourceRoot":"","sources":["../src/installer-help.ts"],"names":[],"mappings":"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"}
|