@getmcp/cli 0.1.5 → 0.3.1
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/README.md +144 -20
- package/dist/bin.d.ts +7 -5
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +88 -28
- package/dist/bin.js.map +1 -1
- package/dist/commands/add.d.ts +10 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +208 -71
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/check.d.ts +9 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +76 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/find.d.ts +10 -0
- package/dist/commands/find.d.ts.map +1 -0
- package/dist/commands/find.js +83 -0
- package/dist/commands/find.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +257 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +25 -27
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/remove.d.ts +9 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +83 -33
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/update.d.ts +14 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +99 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/config-file.d.ts.map +1 -1
- package/dist/config-file.js +6 -16
- package/dist/config-file.js.map +1 -1
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js.map +1 -1
- package/dist/errors.d.ts +49 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +84 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/lock.d.ts +49 -0
- package/dist/lock.d.ts.map +1 -0
- package/dist/lock.js +108 -0
- package/dist/lock.js.map +1 -0
- package/dist/preferences.d.ts.map +1 -1
- package/dist/preferences.js.map +1 -1
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +101 -0
- package/dist/utils.js.map +1 -0
- package/package.json +39 -39
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @getmcp/cli
|
|
2
2
|
|
|
3
|
-
CLI tool to install MCP servers into any AI application with one command. Auto-detects installed apps, generates the correct config format, and merges it into existing config files without overwriting.
|
|
3
|
+
CLI tool to install MCP servers into any AI application with one command. Auto-detects installed apps, generates the correct config format, and merges it into existing config files without overwriting. Tracks installations in a project-level `getmcp-lock.json` for team sharing and update workflows.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -28,27 +28,48 @@ getmcp add github
|
|
|
28
28
|
# Install with environment variables prompted interactively
|
|
29
29
|
getmcp add brave-search
|
|
30
30
|
# => Prompts: Enter BRAVE_API_KEY: ****
|
|
31
|
+
|
|
32
|
+
# Install to a specific app (non-interactive)
|
|
33
|
+
getmcp add github --app claude-desktop
|
|
34
|
+
|
|
35
|
+
# Install to multiple apps
|
|
36
|
+
getmcp add github --app vscode --app cursor
|
|
37
|
+
|
|
38
|
+
# Install to all detected apps without prompts
|
|
39
|
+
getmcp add github -y --all-apps
|
|
40
|
+
|
|
41
|
+
# Preview what would be written
|
|
42
|
+
getmcp add github --dry-run
|
|
31
43
|
```
|
|
32
44
|
|
|
33
45
|
The `add` command will:
|
|
46
|
+
|
|
34
47
|
1. Look up the server in the built-in registry
|
|
35
48
|
2. Auto-detect which AI apps you have installed
|
|
36
49
|
3. Ask which apps you want to configure (or configure all)
|
|
37
50
|
4. Prompt for any required environment variables
|
|
38
51
|
5. Generate the correct config format for each app
|
|
39
52
|
6. Merge the config into each app's config file (never overwrites existing servers)
|
|
53
|
+
7. Track the installation in `getmcp-lock.json`
|
|
40
54
|
|
|
41
55
|
### `getmcp remove <server-name>`
|
|
42
56
|
|
|
43
57
|
Remove an MCP server from your AI app configs.
|
|
44
58
|
|
|
45
59
|
```bash
|
|
60
|
+
# Interactive removal
|
|
46
61
|
getmcp remove github
|
|
62
|
+
|
|
63
|
+
# Remove without confirmation
|
|
64
|
+
getmcp remove github --yes
|
|
65
|
+
|
|
66
|
+
# Preview what would change
|
|
67
|
+
getmcp remove github --dry-run
|
|
47
68
|
```
|
|
48
69
|
|
|
49
70
|
### `getmcp list`
|
|
50
71
|
|
|
51
|
-
Browse the server registry.
|
|
72
|
+
Browse the server registry. Shows server name, description, transport type, and categories.
|
|
52
73
|
|
|
53
74
|
```bash
|
|
54
75
|
# List all available servers
|
|
@@ -64,22 +85,109 @@ getmcp list --category=developer-tools
|
|
|
64
85
|
getmcp list --installed
|
|
65
86
|
```
|
|
66
87
|
|
|
88
|
+
### `getmcp find [query]`
|
|
89
|
+
|
|
90
|
+
Interactive fuzzy search through the registry. Shows transport type, env var count, and categories in the selection hint. After selecting a server, jumps directly into the `add` flow.
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Interactive search prompt
|
|
94
|
+
getmcp find
|
|
95
|
+
|
|
96
|
+
# Search with a query
|
|
97
|
+
getmcp find database
|
|
98
|
+
|
|
99
|
+
# Aliases
|
|
100
|
+
getmcp search github
|
|
101
|
+
getmcp s docker
|
|
102
|
+
getmcp f web
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### `getmcp check`
|
|
106
|
+
|
|
107
|
+
Validate tracked installations against the registry and app configs. Reports servers removed from registry, servers missing from app configs, and apps that are no longer detected.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
getmcp check
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### `getmcp update`
|
|
114
|
+
|
|
115
|
+
Re-generate and merge configs for all tracked installations using the latest registry definitions.
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Interactive update
|
|
119
|
+
getmcp update
|
|
120
|
+
|
|
121
|
+
# Update without confirmation
|
|
122
|
+
getmcp update --yes
|
|
123
|
+
|
|
124
|
+
# Update only for specific apps
|
|
125
|
+
getmcp update --app vscode --app cursor
|
|
126
|
+
|
|
127
|
+
# Preview what would change
|
|
128
|
+
getmcp update --dry-run
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### `getmcp init`
|
|
132
|
+
|
|
133
|
+
Interactive wizard to scaffold a new MCP server registry entry. Prompts for metadata (ID, name, description, transport, command/URL, env vars, categories, runtime) and generates a TypeScript file ready for registration.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
getmcp init
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Command Aliases
|
|
140
|
+
|
|
141
|
+
| Command | Aliases |
|
|
142
|
+
| -------- | ---------------------- |
|
|
143
|
+
| `add` | `install`, `i` |
|
|
144
|
+
| `remove` | `rm`, `r`, `uninstall` |
|
|
145
|
+
| `list` | `ls` |
|
|
146
|
+
| `find` | `search`, `s`, `f` |
|
|
147
|
+
|
|
148
|
+
## Options
|
|
149
|
+
|
|
150
|
+
| Flag | Description |
|
|
151
|
+
| ------------------ | ------------------------------------------------------------ |
|
|
152
|
+
| `--help`, `-h` | Show help message |
|
|
153
|
+
| `--version`, `-v` | Show version number |
|
|
154
|
+
| `--yes`, `-y` | Skip confirmation prompts (use defaults) |
|
|
155
|
+
| `--app <id>` | Target a specific app (repeatable for multiple apps) |
|
|
156
|
+
| `--all-apps` | Target all detected apps |
|
|
157
|
+
| `--dry-run` | Preview changes without writing files |
|
|
158
|
+
| `--installed` | List servers installed in detected apps (for `list` command) |
|
|
159
|
+
| `--search=<query>` | Search the registry (for `list` command) |
|
|
160
|
+
| `--category=<cat>` | Filter by category (for `list` command) |
|
|
161
|
+
|
|
162
|
+
## Installation Tracking
|
|
163
|
+
|
|
164
|
+
When you install or remove servers, getmcp records the action in a `getmcp-lock.json` file in the current working directory. This file:
|
|
165
|
+
|
|
166
|
+
- Tracks which servers are installed to which apps
|
|
167
|
+
- Records which environment variable names were set (values are **not** stored for security)
|
|
168
|
+
- Stores installation and last-update timestamps
|
|
169
|
+
- Can be **committed to version control** for team sharing (like `package-lock.json`)
|
|
170
|
+
|
|
171
|
+
The lock file enables the `check` and `update` commands — `check` compares your lock file against actual app configs to detect drift, and `update` re-applies configs from the registry.
|
|
172
|
+
|
|
67
173
|
## Supported Apps
|
|
68
174
|
|
|
69
175
|
The CLI auto-detects and generates configs for:
|
|
70
176
|
|
|
71
|
-
| App
|
|
72
|
-
|
|
73
|
-
| Claude Desktop
|
|
74
|
-
| Claude Code
|
|
75
|
-
| VS Code / Copilot | `.vscode/mcp.json` |
|
|
76
|
-
| Cursor
|
|
77
|
-
| Cline
|
|
78
|
-
| Roo Code
|
|
79
|
-
| Goose
|
|
80
|
-
| Windsurf
|
|
81
|
-
| OpenCode
|
|
82
|
-
| Zed
|
|
177
|
+
| App | Config Location | Format |
|
|
178
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------ |
|
|
179
|
+
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS), `%AppData%\Claude\claude_desktop_config.json` (Windows) | JSON |
|
|
180
|
+
| Claude Code | `.mcp.json` (project), `~/.claude.json` (user) | JSON |
|
|
181
|
+
| VS Code / Copilot | `.vscode/mcp.json` | JSON |
|
|
182
|
+
| Cursor | `.cursor/mcp.json` | JSON |
|
|
183
|
+
| Cline | `cline_mcp_settings.json` (VS Code globalStorage) | JSON |
|
|
184
|
+
| Roo Code | `mcp_settings.json` (VS Code globalStorage) | JSON |
|
|
185
|
+
| Goose | `~/.config/goose/config.yaml` | YAML |
|
|
186
|
+
| Windsurf | `~/.codeium/windsurf/mcp_config.json` | JSON |
|
|
187
|
+
| OpenCode | `opencode.json` | JSONC |
|
|
188
|
+
| Zed | `settings.json` (Zed settings) | JSON |
|
|
189
|
+
| PyCharm | `.ai/mcp/mcp.json` (project-level, requires JetBrains AI Assistant plugin) | JSON |
|
|
190
|
+
| Codex | `~/.codex/config.toml` (global), `.codex/config.toml` (project) | TOML |
|
|
83
191
|
|
|
84
192
|
## Programmatic API
|
|
85
193
|
|
|
@@ -87,13 +195,33 @@ The CLI also exports its functions for use as a library:
|
|
|
87
195
|
|
|
88
196
|
```ts
|
|
89
197
|
import {
|
|
198
|
+
// App detection
|
|
90
199
|
detectApps,
|
|
91
200
|
detectInstalledApps,
|
|
201
|
+
// Config file operations
|
|
92
202
|
readConfigFile,
|
|
93
203
|
writeConfigFile,
|
|
94
204
|
mergeServerIntoConfig,
|
|
95
205
|
removeServerFromConfig,
|
|
96
206
|
listServersInConfig,
|
|
207
|
+
// Installation tracking
|
|
208
|
+
readLockFile,
|
|
209
|
+
writeLockFile,
|
|
210
|
+
trackInstallation,
|
|
211
|
+
trackRemoval,
|
|
212
|
+
getTrackedServers,
|
|
213
|
+
getLockFilePath,
|
|
214
|
+
// Preferences
|
|
215
|
+
readPreferences,
|
|
216
|
+
saveSelectedApps,
|
|
217
|
+
getSavedSelectedApps,
|
|
218
|
+
// Utilities
|
|
219
|
+
shortenPath,
|
|
220
|
+
parseFlags,
|
|
221
|
+
resolveAlias,
|
|
222
|
+
// Errors
|
|
223
|
+
CliError,
|
|
224
|
+
formatError,
|
|
97
225
|
} from "@getmcp/cli";
|
|
98
226
|
|
|
99
227
|
// Detect which apps are installed
|
|
@@ -107,13 +235,9 @@ const updated = mergeServerIntoConfig(config, "github", serverConfig, "claude-de
|
|
|
107
235
|
|
|
108
236
|
// Write back (preserves existing content)
|
|
109
237
|
await writeConfigFile("/path/to/config.json", updated);
|
|
110
|
-
```
|
|
111
238
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
getmcp --help Show help message
|
|
116
|
-
getmcp --version Show version number
|
|
239
|
+
// Track the installation
|
|
240
|
+
trackInstallation("github", ["claude-desktop"], ["GITHUB_PERSONAL_ACCESS_TOKEN"]);
|
|
117
241
|
```
|
|
118
242
|
|
|
119
243
|
## License
|
package/dist/bin.d.ts
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
* getmcp CLI entry point.
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
|
-
* getmcp add [server-id]
|
|
7
|
-
* getmcp remove <server-name>
|
|
8
|
-
* getmcp list [--installed]
|
|
9
|
-
* getmcp
|
|
10
|
-
* getmcp
|
|
6
|
+
* getmcp add [server-id] Install an MCP server (aliases: install, i)
|
|
7
|
+
* getmcp remove <server-name> Remove an MCP server (aliases: rm, r, uninstall)
|
|
8
|
+
* getmcp list [--installed] List available or installed servers (alias: ls)
|
|
9
|
+
* getmcp find [query] Interactive server search (aliases: search, s, f)
|
|
10
|
+
* getmcp check Check for registry updates
|
|
11
|
+
* getmcp update Update installed servers
|
|
12
|
+
* getmcp init Scaffold a new server entry
|
|
11
13
|
*/
|
|
12
14
|
export {};
|
|
13
15
|
//# sourceMappingURL=bin.d.ts.map
|
package/dist/bin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG"}
|
package/dist/bin.js
CHANGED
|
@@ -3,16 +3,23 @@
|
|
|
3
3
|
* getmcp CLI entry point.
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
|
-
* getmcp add [server-id]
|
|
7
|
-
* getmcp remove <server-name>
|
|
8
|
-
* getmcp list [--installed]
|
|
9
|
-
* getmcp
|
|
10
|
-
* getmcp
|
|
6
|
+
* getmcp add [server-id] Install an MCP server (aliases: install, i)
|
|
7
|
+
* getmcp remove <server-name> Remove an MCP server (aliases: rm, r, uninstall)
|
|
8
|
+
* getmcp list [--installed] List available or installed servers (alias: ls)
|
|
9
|
+
* getmcp find [query] Interactive server search (aliases: search, s, f)
|
|
10
|
+
* getmcp check Check for registry updates
|
|
11
|
+
* getmcp update Update installed servers
|
|
12
|
+
* getmcp init Scaffold a new server entry
|
|
11
13
|
*/
|
|
12
14
|
import { createRequire } from "node:module";
|
|
13
15
|
import { addCommand } from "./commands/add.js";
|
|
14
16
|
import { removeCommand } from "./commands/remove.js";
|
|
15
17
|
import { listCommand } from "./commands/list.js";
|
|
18
|
+
import { findCommand } from "./commands/find.js";
|
|
19
|
+
import { checkCommand } from "./commands/check.js";
|
|
20
|
+
import { updateCommand } from "./commands/update.js";
|
|
21
|
+
import { initCommand } from "./commands/init.js";
|
|
22
|
+
import { parseFlags, resolveAlias } from "./utils.js";
|
|
16
23
|
const require = createRequire(import.meta.url);
|
|
17
24
|
const { version: VERSION } = require("../package.json");
|
|
18
25
|
function printHelp() {
|
|
@@ -20,60 +27,112 @@ function printHelp() {
|
|
|
20
27
|
getmcp v${VERSION} — Install MCP servers into any AI application
|
|
21
28
|
|
|
22
29
|
Usage:
|
|
23
|
-
getmcp add [server-id] Install an MCP server
|
|
30
|
+
getmcp add [server-id] Install an MCP server
|
|
24
31
|
getmcp remove <server-name> Remove an MCP server from app configs
|
|
25
32
|
getmcp list List all available MCP servers
|
|
26
33
|
getmcp list --installed List servers installed in detected apps
|
|
27
34
|
getmcp list --search=<query> Search the registry
|
|
28
35
|
getmcp list --category=<cat> Filter by category
|
|
36
|
+
getmcp find [query] Interactive fuzzy search
|
|
37
|
+
getmcp check Check for registry updates
|
|
38
|
+
getmcp update Update installed servers
|
|
39
|
+
getmcp init Scaffold a new server entry
|
|
40
|
+
|
|
41
|
+
Command Aliases:
|
|
42
|
+
add install, i
|
|
43
|
+
remove rm, r, uninstall
|
|
44
|
+
list ls
|
|
45
|
+
find search, s, f
|
|
29
46
|
|
|
30
47
|
Options:
|
|
31
|
-
--help, -h
|
|
32
|
-
--version, -v
|
|
48
|
+
--help, -h Show this help message
|
|
49
|
+
--version, -v Show version number
|
|
50
|
+
--yes, -y Skip confirmation prompts (use defaults)
|
|
51
|
+
--app <id> Target specific app (repeatable)
|
|
52
|
+
--all-apps Target all detected apps
|
|
53
|
+
--dry-run Preview changes without writing files
|
|
33
54
|
|
|
34
55
|
Examples:
|
|
35
|
-
getmcp add
|
|
36
|
-
getmcp add github
|
|
37
|
-
getmcp
|
|
38
|
-
getmcp
|
|
39
|
-
getmcp
|
|
56
|
+
getmcp add # Interactive server selection
|
|
57
|
+
getmcp add github # Install GitHub MCP server
|
|
58
|
+
getmcp add github --app claude-desktop # Install to specific app
|
|
59
|
+
getmcp add github -y --all-apps # Install to all apps, no prompts
|
|
60
|
+
getmcp add github --dry-run # Preview what would be written
|
|
61
|
+
getmcp i github -y --app vscode --app cursor # Aliases + multiple apps
|
|
62
|
+
getmcp remove github # Remove GitHub from all apps
|
|
63
|
+
getmcp rm github -y # Remove without confirmation
|
|
64
|
+
getmcp ls --search=database # Find database-related servers
|
|
65
|
+
getmcp find # Interactive fuzzy search
|
|
66
|
+
getmcp check # Check for updates
|
|
67
|
+
getmcp update # Re-apply configs from registry
|
|
40
68
|
`);
|
|
41
69
|
}
|
|
42
70
|
async function main() {
|
|
43
71
|
const args = process.argv.slice(2);
|
|
44
|
-
|
|
72
|
+
const { command: rawCommand, serverId, flags } = parseFlags(args);
|
|
73
|
+
if (!rawCommand || flags.help) {
|
|
45
74
|
printHelp();
|
|
46
75
|
return;
|
|
47
76
|
}
|
|
48
|
-
if (
|
|
77
|
+
if (flags.version) {
|
|
49
78
|
console.log(VERSION);
|
|
50
79
|
return;
|
|
51
80
|
}
|
|
52
|
-
const command =
|
|
81
|
+
const command = resolveAlias(rawCommand);
|
|
82
|
+
if (!command) {
|
|
83
|
+
console.error(`Unknown command: ${rawCommand}`);
|
|
84
|
+
printHelp();
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
53
87
|
switch (command) {
|
|
54
88
|
case "add": {
|
|
55
|
-
|
|
56
|
-
|
|
89
|
+
await addCommand(serverId, {
|
|
90
|
+
yes: flags.yes,
|
|
91
|
+
apps: flags.apps,
|
|
92
|
+
allApps: flags.allApps,
|
|
93
|
+
dryRun: flags.dryRun,
|
|
94
|
+
});
|
|
57
95
|
break;
|
|
58
96
|
}
|
|
59
97
|
case "remove": {
|
|
60
|
-
|
|
61
|
-
|
|
98
|
+
await removeCommand(serverId, {
|
|
99
|
+
yes: flags.yes,
|
|
100
|
+
apps: flags.apps,
|
|
101
|
+
dryRun: flags.dryRun,
|
|
102
|
+
});
|
|
62
103
|
break;
|
|
63
104
|
}
|
|
64
105
|
case "list": {
|
|
65
|
-
const installed = args.includes("--installed");
|
|
66
|
-
const searchArg = args.find((a) => a.startsWith("--search="));
|
|
67
|
-
const categoryArg = args.find((a) => a.startsWith("--category="));
|
|
68
106
|
await listCommand({
|
|
69
|
-
installed,
|
|
70
|
-
search:
|
|
71
|
-
category:
|
|
107
|
+
installed: flags.installed,
|
|
108
|
+
search: flags.search,
|
|
109
|
+
category: flags.category,
|
|
110
|
+
});
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
case "find": {
|
|
114
|
+
await findCommand(serverId);
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case "check": {
|
|
118
|
+
await checkCommand();
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
case "update": {
|
|
122
|
+
await updateCommand({
|
|
123
|
+
yes: flags.yes,
|
|
124
|
+
apps: flags.apps,
|
|
125
|
+
allApps: flags.allApps,
|
|
126
|
+
dryRun: flags.dryRun,
|
|
72
127
|
});
|
|
73
128
|
break;
|
|
74
129
|
}
|
|
130
|
+
case "init": {
|
|
131
|
+
await initCommand();
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
75
134
|
default:
|
|
76
|
-
console.error(`Unknown command: ${
|
|
135
|
+
console.error(`Unknown command: ${rawCommand}`);
|
|
77
136
|
printHelp();
|
|
78
137
|
process.exit(1);
|
|
79
138
|
}
|
|
@@ -82,7 +141,8 @@ main().catch((err) => {
|
|
|
82
141
|
// Graceful exit on Ctrl+C / prompt cancellation
|
|
83
142
|
if (err instanceof Error &&
|
|
84
143
|
(err.message.includes("User force closed") ||
|
|
85
|
-
err.message.includes("prompt was canceled")
|
|
144
|
+
err.message.includes("prompt was canceled") ||
|
|
145
|
+
err.message.includes("Operation cancelled"))) {
|
|
86
146
|
console.log("\nCancelled.");
|
|
87
147
|
process.exit(0);
|
|
88
148
|
}
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE/E,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;UACJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyChB,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9B,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;QAChD,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,UAAU,CAAC,QAAQ,EAAE;gBACzB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,aAAa,CAAC,QAAQ,EAAE;gBAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,WAAW,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC5B,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,aAAa,CAAC;gBAClB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;YAChD,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,gDAAgD;IAChD,IACE,GAAG,YAAY,KAAK;QACpB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACxC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAC9C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/commands/add.d.ts
CHANGED
|
@@ -8,6 +8,15 @@
|
|
|
8
8
|
* 4. User selects which apps to configure
|
|
9
9
|
* 5. Generate config for each selected app
|
|
10
10
|
* 6. Merge into existing config files (never overwrite)
|
|
11
|
+
*
|
|
12
|
+
* Supports non-interactive mode via --yes, --app, --all-apps flags.
|
|
13
|
+
* Supports --dry-run to preview changes without writing.
|
|
11
14
|
*/
|
|
12
|
-
export
|
|
15
|
+
export interface AddOptions {
|
|
16
|
+
yes?: boolean;
|
|
17
|
+
apps?: string[];
|
|
18
|
+
allApps?: boolean;
|
|
19
|
+
dryRun?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function addCommand(serverIdArg?: string, options?: AddOptions): Promise<void>;
|
|
13
22
|
//# sourceMappingURL=add.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoBH,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuR9F"}
|