@unstoppabledomains/ud-cli 0.1.17 → 0.1.18
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 +32 -6
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +3 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +35 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/env.js +2 -2
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +185 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/lib/completion.d.ts +11 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +314 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +3 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/types.d.ts +1 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +7 -3
- package/dist/program.js.map +1 -1
- package/package.json +5 -2
- package/skills/ud-cli/SKILL.md +189 -0
- package/skills/ud-cli/references/cart-and-checkout.md +108 -0
- package/skills/ud-cli/references/dns-management.md +141 -0
- package/skills/ud-cli/references/marketplace.md +113 -0
- package/skills/ud-cli/references/search-and-purchase.md +144 -0
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ API keys have the format `ud_mcp_` followed by 64 hex characters. Generate one f
|
|
|
51
51
|
### Managing credentials
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
ud auth
|
|
54
|
+
ud auth status # Check current auth status
|
|
55
55
|
ud auth logout # Clear stored credentials
|
|
56
56
|
```
|
|
57
57
|
|
|
@@ -59,7 +59,7 @@ ud auth logout # Clear stored credentials
|
|
|
59
59
|
|
|
60
60
|
| Option | Description |
|
|
61
61
|
|--------|-------------|
|
|
62
|
-
| `--env <environment>` | Override active environment (`production` or `
|
|
62
|
+
| `--env <environment>` | Override active environment (`production` or `sandbox`) |
|
|
63
63
|
| `--format <format>` | Output format: `table` (default), `json`, or `csv` |
|
|
64
64
|
| `--fields [columns]` | Show available fields, or specify columns to display |
|
|
65
65
|
| `--quiet` | Suppress output except errors |
|
|
@@ -105,7 +105,7 @@ ud
|
|
|
105
105
|
├── auth
|
|
106
106
|
│ ├── login Authenticate (OAuth or API key)
|
|
107
107
|
│ ├── logout Clear stored credentials
|
|
108
|
-
│ └──
|
|
108
|
+
│ └── status Check current auth status
|
|
109
109
|
├── domains
|
|
110
110
|
│ ├── list List portfolio domains
|
|
111
111
|
│ ├── get <domains...> Get detailed domain info
|
|
@@ -171,6 +171,8 @@ ud
|
|
|
171
171
|
│ ├── set <command> <key> <value> Save a default option
|
|
172
172
|
│ ├── get [command] Show saved defaults
|
|
173
173
|
│ └── reset <command> [key] Remove saved defaults
|
|
174
|
+
├── skill
|
|
175
|
+
│ └── install Install Claude Code skill
|
|
174
176
|
├── env
|
|
175
177
|
│ ├── show Show current environment
|
|
176
178
|
│ └── set <environment> Switch default environment
|
|
@@ -376,17 +378,41 @@ ud domains dns records add example.com --file records.json
|
|
|
376
378
|
ud domains list --format json | jq '.domains[].name'
|
|
377
379
|
```
|
|
378
380
|
|
|
381
|
+
## Agent Skills
|
|
382
|
+
|
|
383
|
+
ud-cli ships a skill that teaches coding agents (Claude Code, Cursor, GitHub Copilot, etc.) how to use domain management commands.
|
|
384
|
+
|
|
385
|
+
### Install via npx skills (recommended)
|
|
386
|
+
|
|
387
|
+
Works with 40+ agents, no prior install needed:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
npx skills add unstoppabledomains/ud-cli
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Install via ud-cli
|
|
394
|
+
|
|
395
|
+
If you already have the CLI installed:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
ud skill install
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
Both methods copy the skill to `.claude/skills/ud-cli/` (or the equivalent for your agent). The skill covers search, DNS, cart, marketplace, and all other ud-cli workflows.
|
|
402
|
+
|
|
403
|
+
For skills-less operation, agents can also read `ud --help` directly.
|
|
404
|
+
|
|
379
405
|
## Environments
|
|
380
406
|
|
|
381
407
|
| Environment | Base URL |
|
|
382
408
|
|-------------|----------|
|
|
383
409
|
| `production` (default) | `https://api.unstoppabledomains.com` |
|
|
384
|
-
| `
|
|
410
|
+
| `sandbox` | `https://api.ud-sandbox.com` |
|
|
385
411
|
|
|
386
412
|
```bash
|
|
387
413
|
ud env show # Show current environment
|
|
388
|
-
ud env set
|
|
389
|
-
ud --env
|
|
414
|
+
ud env set sandbox # Switch default environment
|
|
415
|
+
ud --env sandbox <cmd> # Override environment for a single command
|
|
390
416
|
```
|
|
391
417
|
|
|
392
418
|
Credentials are stored per-environment, so you can be authenticated to both simultaneously.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8D3D"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -47,7 +47,7 @@ export function registerAuthCommands(program) {
|
|
|
47
47
|
console.log(chalk.green(`Logged out of ${env}.`));
|
|
48
48
|
});
|
|
49
49
|
auth
|
|
50
|
-
.command('
|
|
50
|
+
.command('status')
|
|
51
51
|
.description('Show current authentication status')
|
|
52
52
|
.action(async () => {
|
|
53
53
|
const status = await verifyAuth();
|
|
@@ -76,6 +76,7 @@ async function loginApiKey(env, key) {
|
|
|
76
76
|
const status = await verifyAuth();
|
|
77
77
|
if (status.authenticated) {
|
|
78
78
|
console.log(chalk.green(`✓ API key saved and verified for ${env}.`));
|
|
79
|
+
console.log(chalk.dim('Tip: Run "ud install" to enable shell tab completion.'));
|
|
79
80
|
}
|
|
80
81
|
else {
|
|
81
82
|
console.log(chalk.yellow(`API key saved for ${env}, but verification failed: ${status.message}`));
|
|
@@ -88,6 +89,7 @@ async function loginOAuth(env) {
|
|
|
88
89
|
await performOAuthLogin();
|
|
89
90
|
setEnvConfig({ authMethod: 'oauth' }, env);
|
|
90
91
|
console.log(chalk.green(`✓ OAuth login successful for ${env}.`));
|
|
92
|
+
console.log(chalk.dim('Tip: Run "ud install" to enable shell tab completion.'));
|
|
91
93
|
}
|
|
92
94
|
catch (err) {
|
|
93
95
|
console.error(chalk.red(`OAuth login failed: ${err instanceof Error ? err.message : String(err)}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAE1E,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,EAAE,OAAO,CAAC;SAC1E,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;QAE3B,8DAA8D;QAC9D,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;QAE3B,yCAAyC;QACzC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,SAAS,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzD,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;wBACjC,MAAM,WAAW,CACf,QAAQ,CAAC,mBAAmB,EAC5B,MAAM,CAAC,YAAY,EACnB,SAAS,CAAC,KAAK,CAAC,QAAQ,CACzB,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,GAAY;IAClD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,UAAU,CAAC,GAAG,EAAE,GAAkB,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,GAAkB,CAAC,CAAC;IAE5D,gCAAgC;IAChC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAElC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,GAAG,8BAA8B,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAW;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,iBAAiB,EAAE,CAAC;QAC1B,YAAY,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,GAAkB,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsChE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { generateCompletion, SUPPORTED_SHELLS } from '../lib/completion.js';
|
|
2
|
+
export function registerCompletionCommand(program) {
|
|
3
|
+
program
|
|
4
|
+
.command('completion')
|
|
5
|
+
.description('Generate shell completion scripts')
|
|
6
|
+
.requiredOption('-s, --shell <shell>', `Shell type (${SUPPORTED_SHELLS.join(', ')})`)
|
|
7
|
+
.addHelpText('after', [
|
|
8
|
+
'',
|
|
9
|
+
'Examples:',
|
|
10
|
+
' # Bash — add to ~/.bashrc',
|
|
11
|
+
' eval "$(ud completion -s bash)"',
|
|
12
|
+
'',
|
|
13
|
+
' # Zsh — save to a directory in your $fpath',
|
|
14
|
+
' ud completion -s zsh > "${fpath[1]}/_ud"',
|
|
15
|
+
'',
|
|
16
|
+
' # Fish',
|
|
17
|
+
' ud completion -s fish > ~/.config/fish/completions/ud.fish',
|
|
18
|
+
'',
|
|
19
|
+
' # PowerShell — add to $PROFILE',
|
|
20
|
+
' ud completion -s powershell >> $PROFILE',
|
|
21
|
+
'',
|
|
22
|
+
'Tip: Run "ud install" to auto-detect your shell and set this up for you.',
|
|
23
|
+
].join('\n'))
|
|
24
|
+
.action((opts) => {
|
|
25
|
+
const shell = opts.shell.toLowerCase();
|
|
26
|
+
if (!SUPPORTED_SHELLS.includes(shell)) {
|
|
27
|
+
console.error(`Unsupported shell: ${shell}. Must be one of: ${SUPPORTED_SHELLS.join(', ')}`);
|
|
28
|
+
process.exitCode = 1;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const output = generateCompletion(program, shell);
|
|
32
|
+
process.stdout.write(output);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,mCAAmC,CAAC;SAChD,cAAc,CAAC,qBAAqB,EAAE,eAAe,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACpF,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,WAAW;QACX,6BAA6B;QAC7B,mCAAmC;QACnC,EAAE;QACF,8CAA8C;QAC9C,4CAA4C;QAC5C,EAAE;QACF,UAAU;QACV,8DAA8D;QAC9D,EAAE;QACF,kCAAkC;QAClC,2CAA2C;QAC3C,EAAE;QACF,0EAA0E;KAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CAAC,CAAC,IAAuB,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAc,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,CACX,sBAAsB,KAAK,qBAAqB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9E,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/commands/env.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { getDefaultEnv, setDefaultEnv, apiBaseUrl } from '../lib/config.js';
|
|
3
|
-
const VALID_ENVS = ['production', 'staging'];
|
|
3
|
+
const VALID_ENVS = ['production', 'sandbox', 'staging'];
|
|
4
4
|
export function registerEnvCommands(program) {
|
|
5
5
|
const env = program.command('env').description('Manage environment settings');
|
|
6
6
|
env
|
|
@@ -14,7 +14,7 @@ export function registerEnvCommands(program) {
|
|
|
14
14
|
});
|
|
15
15
|
env
|
|
16
16
|
.command('set <environment>')
|
|
17
|
-
.description('Set the default environment (production or
|
|
17
|
+
.description('Set the default environment (production or sandbox)')
|
|
18
18
|
.action((environment) => {
|
|
19
19
|
if (!VALID_ENVS.includes(environment)) {
|
|
20
20
|
console.error(chalk.red(`Invalid environment: ${environment}. Must be one of: ${VALID_ENVS.join(', ')}`));
|
package/dist/commands/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,UAAU,GAAkB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,UAAU,GAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEvE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IAE9E,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,CAAC,WAAmB,EAAE,EAAE;QAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAA0B,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,WAAW,qBAAqB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1G,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,aAAa,CAAC,WAA0B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAA0B,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6LpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmC7D"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { mkdir, readFile, writeFile, access, cp } from 'node:fs/promises';
|
|
2
|
+
import { homedir, platform } from 'node:os';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { generateCompletion } from '../lib/completion.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Shell detection
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
function detectShell() {
|
|
11
|
+
const shell = process.env.SHELL ?? '';
|
|
12
|
+
if (shell.endsWith('/zsh'))
|
|
13
|
+
return 'zsh';
|
|
14
|
+
if (shell.endsWith('/bash'))
|
|
15
|
+
return 'bash';
|
|
16
|
+
if (shell.endsWith('/fish'))
|
|
17
|
+
return 'fish';
|
|
18
|
+
// PowerShell doesn't set $SHELL — check PSModulePath as a heuristic
|
|
19
|
+
if (process.env.PSModulePath)
|
|
20
|
+
return 'powershell';
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Completion installers (per-shell)
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
const COMPLETION_MARKER = '# ud-cli shell completion';
|
|
27
|
+
async function fileContains(filePath, marker) {
|
|
28
|
+
try {
|
|
29
|
+
const content = await readFile(filePath, 'utf-8');
|
|
30
|
+
return content.includes(marker);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function appendToFile(filePath, content) {
|
|
37
|
+
const dir = path.dirname(filePath);
|
|
38
|
+
await mkdir(dir, { recursive: true });
|
|
39
|
+
try {
|
|
40
|
+
const existing = await readFile(filePath, 'utf-8');
|
|
41
|
+
const separator = existing.endsWith('\n') ? '' : '\n';
|
|
42
|
+
await writeFile(filePath, existing + separator + content + '\n');
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// File doesn't exist — create it
|
|
46
|
+
await writeFile(filePath, content + '\n');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function installBash() {
|
|
50
|
+
// macOS bash login shells read ~/.bash_profile, not ~/.bashrc
|
|
51
|
+
const rcName = platform() === 'darwin' ? '.bash_profile' : '.bashrc';
|
|
52
|
+
const rcFile = path.join(homedir(), rcName);
|
|
53
|
+
if (await fileContains(rcFile, COMPLETION_MARKER)) {
|
|
54
|
+
return { message: `Shell completions already installed in ${rcFile}` };
|
|
55
|
+
}
|
|
56
|
+
const snippet = `\n${COMPLETION_MARKER}\neval "$(ud completion -s bash)"\n`;
|
|
57
|
+
await appendToFile(rcFile, snippet);
|
|
58
|
+
return { message: `Shell completions added to ${rcFile}`, activateHint: `source ~/${rcName}` };
|
|
59
|
+
}
|
|
60
|
+
async function installZsh(program) {
|
|
61
|
+
const completionDir = path.join(homedir(), '.zsh', 'completions');
|
|
62
|
+
const completionFile = path.join(completionDir, '_ud');
|
|
63
|
+
// Write the completion script
|
|
64
|
+
await mkdir(completionDir, { recursive: true });
|
|
65
|
+
const script = generateCompletion(program, 'zsh');
|
|
66
|
+
await writeFile(completionFile, script);
|
|
67
|
+
// Ensure fpath includes the completions directory.
|
|
68
|
+
// The fpath line must appear BEFORE any framework (oh-my-zsh, prezto, etc.)
|
|
69
|
+
// that calls compinit, so we prepend it near the top of .zshrc rather than
|
|
70
|
+
// appending at the end.
|
|
71
|
+
const rcFile = path.join(homedir(), '.zshrc');
|
|
72
|
+
const alreadyHasFpath = await fileContains(rcFile, '~/.zsh/completions');
|
|
73
|
+
if (!alreadyHasFpath) {
|
|
74
|
+
const fpathSnippet = `${COMPLETION_MARKER}\nfpath=(~/.zsh/completions $fpath)\n\n`;
|
|
75
|
+
try {
|
|
76
|
+
const existing = await readFile(rcFile, 'utf-8');
|
|
77
|
+
await writeFile(rcFile, fpathSnippet + existing);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// No .zshrc — create one with fpath + compinit (no framework to rely on)
|
|
81
|
+
await writeFile(rcFile, `${fpathSnippet}autoload -Uz compinit && compinit\n`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return { message: `Shell completions written to ${completionFile}`, activateHint: 'source ~/.zshrc' };
|
|
85
|
+
}
|
|
86
|
+
async function installFish(program) {
|
|
87
|
+
const completionDir = path.join(homedir(), '.config', 'fish', 'completions');
|
|
88
|
+
const completionFile = path.join(completionDir, 'ud.fish');
|
|
89
|
+
await mkdir(completionDir, { recursive: true });
|
|
90
|
+
const script = generateCompletion(program, 'fish');
|
|
91
|
+
await writeFile(completionFile, script);
|
|
92
|
+
// Fish auto-loads completions from ~/.config/fish/completions/ — no source needed
|
|
93
|
+
return { message: `Shell completions written to ${completionFile}` };
|
|
94
|
+
}
|
|
95
|
+
async function installPowershell(program) {
|
|
96
|
+
// $PROFILE is not available in Node — use platform-appropriate default
|
|
97
|
+
const profileDir = platform() === 'win32'
|
|
98
|
+
? path.join(homedir(), 'Documents', 'PowerShell')
|
|
99
|
+
: path.join(homedir(), '.config', 'powershell');
|
|
100
|
+
const profileFile = path.join(profileDir, 'Microsoft.PowerShell_profile.ps1');
|
|
101
|
+
if (await fileContains(profileFile, COMPLETION_MARKER)) {
|
|
102
|
+
return { message: `Shell completions already installed in ${profileFile}` };
|
|
103
|
+
}
|
|
104
|
+
const script = generateCompletion(program, 'powershell');
|
|
105
|
+
const snippet = `\n${COMPLETION_MARKER}\n${script}`;
|
|
106
|
+
await appendToFile(profileFile, snippet);
|
|
107
|
+
return { message: `Shell completions added to ${profileFile}`, activateHint: `. $PROFILE` };
|
|
108
|
+
}
|
|
109
|
+
async function installCompletions(program, shell) {
|
|
110
|
+
switch (shell) {
|
|
111
|
+
case 'bash':
|
|
112
|
+
return installBash();
|
|
113
|
+
case 'zsh':
|
|
114
|
+
return installZsh(program);
|
|
115
|
+
case 'fish':
|
|
116
|
+
return installFish(program);
|
|
117
|
+
case 'powershell':
|
|
118
|
+
return installPowershell(program);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// ---------------------------------------------------------------------------
|
|
122
|
+
// Skills installer (moved from skill.ts)
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
function getSkillsSource() {
|
|
125
|
+
if (typeof __dirname === 'string') {
|
|
126
|
+
// CJS bundle: dist/ud-cli.cjs → package root
|
|
127
|
+
return path.resolve(__dirname, '..', 'skills', 'ud-cli');
|
|
128
|
+
}
|
|
129
|
+
// ESM: dist/commands/install.js → package root
|
|
130
|
+
const thisFile = fileURLToPath(import.meta.url);
|
|
131
|
+
return path.resolve(path.dirname(thisFile), '..', '..', 'skills', 'ud-cli');
|
|
132
|
+
}
|
|
133
|
+
async function installSkills(target) {
|
|
134
|
+
const cwd = target ?? process.cwd();
|
|
135
|
+
const sourceDir = getSkillsSource();
|
|
136
|
+
try {
|
|
137
|
+
await access(sourceDir);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
console.error(chalk.red('Skill files not found. If using a standalone binary, download from:\n' +
|
|
141
|
+
' https://github.com/unstoppabledomains/ud-cli/tree/main/skills/ud-cli'));
|
|
142
|
+
process.exitCode = 1;
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const destDir = path.join(cwd, '.claude', 'skills', 'ud-cli');
|
|
146
|
+
await cp(sourceDir, destDir, { recursive: true });
|
|
147
|
+
const relDest = path.relative(cwd, destDir);
|
|
148
|
+
console.log(chalk.green(`Skill installed to ${relDest}/`));
|
|
149
|
+
console.log(chalk.dim('Claude Code will now discover ud-cli commands automatically.'));
|
|
150
|
+
}
|
|
151
|
+
// ---------------------------------------------------------------------------
|
|
152
|
+
// Command registration
|
|
153
|
+
// ---------------------------------------------------------------------------
|
|
154
|
+
export function registerInstallCommand(program) {
|
|
155
|
+
program
|
|
156
|
+
.command('install')
|
|
157
|
+
.description('Install shell completions and optional integrations')
|
|
158
|
+
.option('--skills', 'Install coding agent skill to current directory')
|
|
159
|
+
.option('--skills-target <dir>', 'Target directory for skill install')
|
|
160
|
+
.action(async (opts) => {
|
|
161
|
+
// Always install shell completions
|
|
162
|
+
const shell = detectShell();
|
|
163
|
+
if (shell) {
|
|
164
|
+
try {
|
|
165
|
+
const result = await installCompletions(program, shell);
|
|
166
|
+
console.log(chalk.green(`\u2713 ${result.message}`));
|
|
167
|
+
if (result.activateHint) {
|
|
168
|
+
console.log(chalk.dim(` To activate now, run: ${result.activateHint}`));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
console.error(chalk.red(`Failed to install shell completions: ${err instanceof Error ? err.message : String(err)}`));
|
|
173
|
+
process.exitCode = 1;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
console.log(chalk.yellow('Could not detect your shell. Use "ud completion -s <shell>" to generate a script manually.'));
|
|
178
|
+
}
|
|
179
|
+
// Optionally install skills
|
|
180
|
+
if (opts.skills || opts.skillsTarget) {
|
|
181
|
+
await installSkills(opts.skillsTarget);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell completion script generators.
|
|
3
|
+
*
|
|
4
|
+
* Walks the Commander command tree at runtime and produces self-contained
|
|
5
|
+
* completion scripts for bash, zsh, fish, and powershell.
|
|
6
|
+
*/
|
|
7
|
+
import type { Command } from 'commander';
|
|
8
|
+
export type Shell = 'bash' | 'zsh' | 'fish' | 'powershell';
|
|
9
|
+
export declare const SUPPORTED_SHELLS: readonly Shell[];
|
|
10
|
+
export declare function generateCompletion(program: Command, shell: Shell): string;
|
|
11
|
+
//# sourceMappingURL=completion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/lib/completion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAMjD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,CAAC;AAE3D,eAAO,MAAM,gBAAgB,EAAE,SAAS,KAAK,EAAmD,CAAC;AA0WjG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAazE"}
|