@unstoppabledomains/ud-cli 0.1.17 → 0.1.19

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.
Files changed (39) hide show
  1. package/README.md +63 -34
  2. package/dist/commands/auth.d.ts.map +1 -1
  3. package/dist/commands/auth.js +3 -1
  4. package/dist/commands/auth.js.map +1 -1
  5. package/dist/commands/completion.d.ts +3 -0
  6. package/dist/commands/completion.d.ts.map +1 -0
  7. package/dist/commands/completion.js +35 -0
  8. package/dist/commands/completion.js.map +1 -0
  9. package/dist/commands/env.js +2 -2
  10. package/dist/commands/env.js.map +1 -1
  11. package/dist/commands/install.d.ts +3 -0
  12. package/dist/commands/install.d.ts.map +1 -0
  13. package/dist/commands/install.js +185 -0
  14. package/dist/commands/install.js.map +1 -0
  15. package/dist/lib/command-hooks.js +3 -3
  16. package/dist/lib/command-hooks.js.map +1 -1
  17. package/dist/lib/command-registry.d.ts.map +1 -1
  18. package/dist/lib/command-registry.js +12 -11
  19. package/dist/lib/command-registry.js.map +1 -1
  20. package/dist/lib/completion.d.ts +11 -0
  21. package/dist/lib/completion.d.ts.map +1 -0
  22. package/dist/lib/completion.js +314 -0
  23. package/dist/lib/completion.js.map +1 -0
  24. package/dist/lib/config.d.ts.map +1 -1
  25. package/dist/lib/config.js +3 -1
  26. package/dist/lib/config.js.map +1 -1
  27. package/dist/lib/formatter.js +2 -2
  28. package/dist/lib/formatter.js.map +1 -1
  29. package/dist/lib/types.d.ts +1 -1
  30. package/dist/lib/types.d.ts.map +1 -1
  31. package/dist/program.d.ts.map +1 -1
  32. package/dist/program.js +7 -3
  33. package/dist/program.js.map +1 -1
  34. package/package.json +5 -2
  35. package/skills/ud-cli/SKILL.md +189 -0
  36. package/skills/ud-cli/references/cart-and-checkout.md +108 -0
  37. package/skills/ud-cli/references/dns-management.md +141 -0
  38. package/skills/ud-cli/references/marketplace.md +113 -0
  39. 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 whoami # Check current auth status
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 `staging`) |
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,12 +105,13 @@ ud
105
105
  ├── auth
106
106
  │ ├── login Authenticate (OAuth or API key)
107
107
  │ ├── logout Clear stored credentials
108
- │ └── whoami Check current auth status
108
+ │ └── status Check current auth status
109
109
  ├── domains
110
110
  │ ├── list List portfolio domains
111
111
  │ ├── get <domains...> Get detailed domain info
112
112
  │ ├── push <domains...> Push domains to another user
113
- │ ├── operations <domains...> Get pending operations
113
+ │ ├── operations
114
+ │ │ └── show <domains...> Show pending operations
114
115
  │ ├── tags
115
116
  │ │ ├── add <domains...> Add tags to domains
116
117
  │ │ └── remove <domains...> Remove tags from domains
@@ -123,31 +124,32 @@ ud
123
124
  │ │ └── create Create ICANN contact
124
125
  │ ├── dns
125
126
  │ │ ├── records
126
- │ │ │ ├── list <domain> List DNS records
127
+ │ │ │ ├── show <domain> Show DNS records
127
128
  │ │ │ ├── add <domain> Add DNS records
128
129
  │ │ │ ├── update Update DNS records
129
130
  │ │ │ ├── remove Remove DNS records
130
131
  │ │ │ └── remove-all <domains...> Remove all DNS records
131
132
  │ │ └── nameservers
132
- │ │ ├── list <domain> List nameservers
133
+ │ │ ├── show <domain> Show nameservers
133
134
  │ │ ├── set-custom Set custom nameservers
134
135
  │ │ └── set-default Reset to default nameservers
135
136
  │ └── hosting
136
137
  │ ├── redirects
137
- │ │ ├── list <domain> List redirect configurations
138
+ │ │ ├── show <domain> Show redirect configurations
138
139
  │ │ ├── add Add redirect configuration
139
140
  │ │ └── remove Remove redirect configuration
140
141
  │ └── landers
141
142
  │ ├── generate <domains...> Generate AI landing page
142
- │ ├── status <domains...> Check lander generation status
143
+ │ ├── show <domains...> Show lander status
143
144
  │ └── remove <domains...> Remove AI landing page
144
145
  ├── cart
145
- │ ├── get Get shopping cart with pricing
146
+ │ ├── list List shopping cart with pricing
146
147
  │ ├── remove Remove items from cart
147
148
  │ ├── checkout Complete cart checkout
148
149
  │ ├── url Get checkout URL
149
- │ ├── payment-methods Get available payment methods
150
- │ ├── add-payment-method Get URL to add payment method
150
+ │ ├── payment-methods
151
+ ├── list List available payment methods
152
+ │ │ └── add Get URL to add payment method
151
153
  │ └── add [domain...] Smart add (auto-detects source)
152
154
  │ ├── registration <domains...> Add domains for registration
153
155
  │ ├── listed <domains...> Add marketplace-listed domains
@@ -164,13 +166,16 @@ ud
164
166
  │ │ └── respond Respond to marketplace offers
165
167
  │ └── leads
166
168
  │ ├── list List domain conversation leads
167
- │ ├── get <domain> Get or create domain conversation
168
- ├── messages List messages in a conversation
169
- └── send Send a message in a conversation
169
+ │ ├── open <domain> Inquire about a domain
170
+ └── messages
171
+ ├── list List messages in a conversation
172
+ │ └── send Send a message in a conversation
170
173
  ├── config
171
174
  │ ├── set <command> <key> <value> Save a default option
172
175
  │ ├── get [command] Show saved defaults
173
176
  │ └── reset <command> [key] Remove saved defaults
177
+ ├── skill
178
+ │ └── install Install Claude Code skill
174
179
  ├── env
175
180
  │ ├── show Show current environment
176
181
  │ └── set <environment> Switch default environment
@@ -191,7 +196,7 @@ ud tlds List available TLDs
191
196
  ud domains list List portfolio domains
192
197
  ud domains get <domains...> Get detailed domain info
193
198
  ud domains push <domains...> Push domains to another user
194
- ud domains operations <domains...> Get pending operations
199
+ ud domains operations show <domains...> Show pending operations
195
200
  ud domains tags add <domains...> Add tags to domains
196
201
  ud domains tags remove <domains...> Remove tags from domains
197
202
  ud domains flags update <domains...> Update domain flags
@@ -203,12 +208,12 @@ ud domains contacts create Create ICANN contact
203
208
  #### DNS (`ud domains dns`)
204
209
 
205
210
  ```
206
- ud domains dns records list <domain> List DNS records
211
+ ud domains dns records show <domain> Show DNS records
207
212
  ud domains dns records add <domain> Add DNS records
208
213
  ud domains dns records update Update DNS records
209
214
  ud domains dns records remove Remove DNS records
210
215
  ud domains dns records remove-all <domains...> Remove all DNS records
211
- ud domains dns nameservers list <domain> List nameservers
216
+ ud domains dns nameservers show <domain> Show nameservers
212
217
  ud domains dns nameservers set-custom Set custom nameservers
213
218
  ud domains dns nameservers set-default Reset to default nameservers
214
219
  ```
@@ -216,23 +221,23 @@ ud domains dns nameservers set-default Reset to default nameservers
216
221
  #### Hosting (`ud domains hosting`)
217
222
 
218
223
  ```
219
- ud domains hosting redirects list <domain> List redirect configurations
224
+ ud domains hosting redirects show <domain> Show redirect configurations
220
225
  ud domains hosting redirects add Add redirect configuration
221
226
  ud domains hosting redirects remove Remove redirect configuration
222
227
  ud domains hosting landers generate <domains...> Generate AI landing page
223
- ud domains hosting landers status <domains...> Check lander generation status
228
+ ud domains hosting landers show <domains...> Show lander status
224
229
  ud domains hosting landers remove <domains...> Remove AI landing page
225
230
  ```
226
231
 
227
232
  ### Cart
228
233
 
229
234
  ```
230
- ud cart get Get shopping cart with pricing
235
+ ud cart list List shopping cart with pricing
231
236
  ud cart remove Remove items from cart
232
237
  ud cart checkout Complete cart checkout (requires --confirm)
233
238
  ud cart url Get checkout URL
234
- ud cart payment-methods Get available payment methods
235
- ud cart add-payment-method Get URL to add payment method
239
+ ud cart payment-methods list List available payment methods
240
+ ud cart payment-methods add Get URL to add payment method
236
241
  ud cart add [domain...] Smart add — auto-detects source and routes
237
242
  ud cart add registration <domains...> Add domains for registration
238
243
  ud cart add listed <domains...> Add marketplace-listed domains
@@ -252,9 +257,9 @@ ud marketplace listings cancel Cancel listings (requires --co
252
257
  ud marketplace offers list List marketplace offers
253
258
  ud marketplace offers respond Respond to marketplace offers
254
259
  ud marketplace leads list List domain conversation leads
255
- ud marketplace leads get <domain> Get or create domain conversation
256
- ud marketplace leads messages List messages in a conversation
257
- ud marketplace leads send Send a message in a conversation
260
+ ud marketplace leads open <domain> Inquire about a domain
261
+ ud marketplace leads messages list List messages in a conversation
262
+ ud marketplace leads messages send Send a message in a conversation
258
263
  ```
259
264
 
260
265
  ### Config
@@ -278,7 +283,7 @@ ud domains list
278
283
  ud domains list --fields name,expiresAt
279
284
 
280
285
  # Save a default output format
281
- ud config set "domains dns records list" format json
286
+ ud config set "domains dns records show" format json
282
287
 
283
288
  # View all saved defaults
284
289
  ud config get
@@ -308,7 +313,7 @@ ud cart add registration mybusiness.com mybusiness.io
308
313
  ud cart add --type renewal mysite.com
309
314
 
310
315
  # Review cart and checkout
311
- ud cart get
316
+ ud cart list
312
317
  ud cart checkout --confirm
313
318
  ```
314
319
 
@@ -316,7 +321,7 @@ ud cart checkout --confirm
316
321
 
317
322
  ```bash
318
323
  # List current records
319
- ud domains dns records list example.com --format json
324
+ ud domains dns records show example.com --format json
320
325
 
321
326
  # Add an A record (single-item shorthand)
322
327
  ud domains dns records add example.com --type A --values 1.2.3.4
@@ -348,9 +353,9 @@ ud marketplace offers respond --data '{"offers":[{"offerId":"o123","action":"acc
348
353
 
349
354
  # Manage leads
350
355
  ud marketplace leads list
351
- ud marketplace leads get mydomain.com
352
- ud marketplace leads messages --conversation-id 42
353
- ud marketplace leads send --conversation-id 42 --content "Thanks for your interest!"
356
+ ud marketplace leads open mydomain.com
357
+ ud marketplace leads messages list --conversation-id 42
358
+ ud marketplace leads messages send --conversation-id 42 --content "Thanks for your interest!"
354
359
  ```
355
360
 
356
361
  ### Advanced usage
@@ -376,17 +381,41 @@ ud domains dns records add example.com --file records.json
376
381
  ud domains list --format json | jq '.domains[].name'
377
382
  ```
378
383
 
384
+ ## Agent Skills
385
+
386
+ ud-cli ships a skill that teaches coding agents (Claude Code, Cursor, GitHub Copilot, etc.) how to use domain management commands.
387
+
388
+ ### Install via npx skills (recommended)
389
+
390
+ Works with 40+ agents, no prior install needed:
391
+
392
+ ```bash
393
+ npx skills add unstoppabledomains/ud-cli
394
+ ```
395
+
396
+ ### Install via ud-cli
397
+
398
+ If you already have the CLI installed:
399
+
400
+ ```bash
401
+ ud skill install
402
+ ```
403
+
404
+ 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.
405
+
406
+ For skills-less operation, agents can also read `ud --help` directly.
407
+
379
408
  ## Environments
380
409
 
381
410
  | Environment | Base URL |
382
411
  |-------------|----------|
383
412
  | `production` (default) | `https://api.unstoppabledomains.com` |
384
- | `staging` | `https://api.ud-staging.com` |
413
+ | `sandbox` | `https://api.ud-sandbox.com` |
385
414
 
386
415
  ```bash
387
416
  ud env show # Show current environment
388
- ud env set staging # Switch default environment
389
- ud --env staging <cmd> # Override environment for a single command
417
+ ud env set sandbox # Switch default environment
418
+ ud --env sandbox <cmd> # Override environment for a single command
390
419
  ```
391
420
 
392
421
  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;AASpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8D3D"}
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"}
@@ -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('whoami')
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":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerCompletionCommand(program: Command): void;
3
+ //# sourceMappingURL=completion.d.ts.map
@@ -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"}
@@ -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 staging)')
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(', ')}`));
@@ -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;AAE5D,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"}
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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerInstallCommand(program: Command): void;
3
+ //# sourceMappingURL=install.d.ts.map
@@ -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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"}
@@ -49,7 +49,7 @@ const HOOKS = {
49
49
  },
50
50
  ud_cart_checkout: {
51
51
  requireConfirm: {
52
- message: 'Are you sure you want to complete this purchase? Review your cart with: ud cart get',
52
+ message: 'Are you sure you want to complete this purchase? Review your cart with: ud cart list',
53
53
  },
54
54
  },
55
55
  ud_listing_cancel: {
@@ -105,8 +105,8 @@ export function formatOperationHint(result) {
105
105
  return '';
106
106
  const domainList = [...domains].join(' ');
107
107
  const trackCmd = domainList
108
- ? `ud domains operations ${domainList}`
109
- : 'ud domains operations <domain>';
108
+ ? `ud domains operations show ${domainList}`
109
+ : 'ud domains operations show <domain>';
110
110
  return chalk.dim(`Tip: DNS changes are async. Track with: ${trackCmd}`);
111
111
  }
112
112
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"command-hooks.js","sourceRoot":"","sources":["../../src/lib/command-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-hooks.js","sourceRoot":"","sources":["../../src/lib/command-hooks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../src/lib/command-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,EAiTxC,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAMpC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAMzD"}
1
+ {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../src/lib/command-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,EAkTxC,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAMpC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAMzD"}