@exedev/sdk 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1373 @@
1
+ // Code generated by "go run ./cmd/gensdkjs" in the exe.dev repository. DO NOT EDIT.
2
+ //
3
+ // Every public exe.dev command that runs over the HTTPS API (POST /exec), as a
4
+ // method of Commands, documented with the command's own help text. Positional
5
+ // arguments are parameters; flags are keys of the options object, spelled as
6
+ // on the command line.
7
+ export class Commands {
8
+ /**
9
+ * Browse documentation
10
+ *
11
+ * Usage: `doc [slug-or-query...]`
12
+ *
13
+ * Tag-scoped API keys may run this command.
14
+ */
15
+ doc(slugOrQueries, options) {
16
+ return this.run("doc", [slugOrQueries], options, {});
17
+ }
18
+ /**
19
+ * List your VMs
20
+ *
21
+ * Usage: `ls [-l] [--group=tag|region|type] [name|pattern]`
22
+ *
23
+ * Tag-scoped API keys may run this command.
24
+ */
25
+ ls(nameOrPattern, options) {
26
+ return this.run("ls", [nameOrPattern], options, {
27
+ group: "string",
28
+ l: "bool",
29
+ });
30
+ }
31
+ /**
32
+ * Create a new VM
33
+ *
34
+ * CLI examples:
35
+ * ```
36
+ * new # just give me a computer
37
+ * new --name=b --image=ubuntu:22.04 # custom image and name
38
+ * new --cpu=4 --memory=16GB # 4 CPUs, 16GB RAM
39
+ * new --disk=50GB # 50GB disk
40
+ * new --tag=prod,staging # create with tags
41
+ * new --env FOO=bar --env BAZ=qux # with environment variables
42
+ * new --integration=myproxy # attach an integration
43
+ * echo 'build me a web app' | ssh exe.dev new --prompt=/dev/stdin
44
+ * ```
45
+ *
46
+ * Tag-scoped API keys may run this command.
47
+ */
48
+ new(options) {
49
+ return this.run("new", [], options, {
50
+ comment: "string",
51
+ cpu: "number",
52
+ disk: "string",
53
+ env: "repeated",
54
+ image: "string",
55
+ integration: "repeated",
56
+ memory: "string",
57
+ name: "string",
58
+ "no-email": "bool",
59
+ "no-pool": "bool",
60
+ pool: "string",
61
+ prompt: "string",
62
+ "registry-auth": "string",
63
+ sandbox: "bool",
64
+ "setup-script": "string",
65
+ standalone: "bool",
66
+ tag: "repeated",
67
+ });
68
+ }
69
+ /**
70
+ * Delete a VM
71
+ *
72
+ * Usage: `rm <vmname>...`
73
+ *
74
+ * Tag-scoped API keys may run this command.
75
+ */
76
+ rm(vmnames, options) {
77
+ return this.run("rm", [vmnames], options, {});
78
+ }
79
+ /**
80
+ * Restart a VM
81
+ *
82
+ * Usage: `restart <vmname>`
83
+ *
84
+ * Tag-scoped API keys may run this command.
85
+ */
86
+ restart(vmname, options) {
87
+ return this.run("restart", [vmname], options, {});
88
+ }
89
+ /**
90
+ * Pause a VM (snapshot RAM to disk, free its CPU and memory)
91
+ *
92
+ * Usage: `pause <vmname>`
93
+ *
94
+ * CLI examples:
95
+ * ```
96
+ * pause my-vm # snapshot RAM to disk; resume later with 'resume my-vm'
97
+ * ```
98
+ *
99
+ * Tag-scoped API keys may run this command.
100
+ */
101
+ pause(vmname, options) {
102
+ return this.run("pause", [vmname], options, {});
103
+ }
104
+ /**
105
+ * Resume a paused VM (restore RAM from disk)
106
+ *
107
+ * Usage: `resume <vmname>`
108
+ *
109
+ * Tag-scoped API keys may run this command.
110
+ */
111
+ resume(vmname, options) {
112
+ return this.run("resume", [vmname], options, {});
113
+ }
114
+ /**
115
+ * rename a vm
116
+ *
117
+ * Usage: `rename <oldname> <newname>`
118
+ *
119
+ * Tag-scoped API keys may run this command.
120
+ */
121
+ rename(oldname, newname, options) {
122
+ return this.run("rename", [oldname, newname], options, {});
123
+ }
124
+ /**
125
+ * Add or remove tags on a VM
126
+ *
127
+ * Usage: `tag [-d] <vm> <tag-name> [tag-name...]`
128
+ *
129
+ * CLI examples:
130
+ * ```
131
+ * tag my-vm prod web # add tags
132
+ * tag -d my-vm prod web # remove tags
133
+ * ```
134
+ *
135
+ * Tag-scoped API keys may run this command.
136
+ */
137
+ tag(vm, tagNames, options) {
138
+ return this.run("tag", [vm, tagNames], options, {
139
+ d: "bool",
140
+ });
141
+ }
142
+ /**
143
+ * Copy an existing VM
144
+ *
145
+ * Usage: `cp <source-vm> [new-name] [--pool=<name>] [--memory=<size>] [--cpu=<count>] [--disk=<size>]`
146
+ *
147
+ * CLI examples:
148
+ * ```
149
+ * cp my-vm # copy with auto-generated name
150
+ * cp my-vm my-vm-copy # copy with specific name
151
+ * cp my-vm --cpu=4 --memory=16GB # copy with different resources
152
+ * cp my-vm my-pool-copy --pool=build # copy into a team pool
153
+ * cp my-vm --copy-tags=false # copy without tags
154
+ * ```
155
+ *
156
+ * Tag-scoped API keys may run this command.
157
+ */
158
+ cp(sourceVm, newName, options) {
159
+ return this.run("cp", [sourceVm, newName], options, {
160
+ "copy-tags": "bool",
161
+ cpu: "number",
162
+ disk: "string",
163
+ memory: "string",
164
+ pool: "string",
165
+ sandbox: "bool",
166
+ standalone: "bool",
167
+ });
168
+ }
169
+ /**
170
+ * Resize a VM's resources (memory, CPU, disk)
171
+ *
172
+ * Usage: `resize <vmname> [--memory=<size>] [--cpu=<count>] [--disk=<size>]`
173
+ *
174
+ * Tag-scoped API keys may run this command.
175
+ */
176
+ resize(vmname, options) {
177
+ return this.run("resize", [vmname], options, {
178
+ cpu: "number",
179
+ disk: "string",
180
+ memory: "string",
181
+ });
182
+ }
183
+ /**
184
+ * Set or clear a short comment on a VM
185
+ *
186
+ * Usage: `comment <hostname> <text>`
187
+ *
188
+ * CLI examples:
189
+ * ```
190
+ * comment my-vm staging copy
191
+ * comment my-vm "" # clear the comment
192
+ * ```
193
+ *
194
+ * Tag-scoped API keys may run this command.
195
+ */
196
+ comment(hostname, text, options) {
197
+ return this.run("comment", [hostname, text], options, {});
198
+ }
199
+ /**
200
+ * Link a custom domain to a VM
201
+ *
202
+ * Usage: `domain add [--wildcard] <vm> <domain>`
203
+ */
204
+ domainAdd(vm, domain, options) {
205
+ return this.run("domain add", [vm, domain], options, {
206
+ wildcard: "bool",
207
+ });
208
+ }
209
+ /**
210
+ * Remove a custom domain from a VM
211
+ *
212
+ * Usage: `domain rm <vm> <domain>`
213
+ */
214
+ domainRm(vm, domain, options) {
215
+ return this.run("domain rm", [vm, domain], options, {});
216
+ }
217
+ /**
218
+ * List custom domains for a VM (or -a for all your VMs)
219
+ *
220
+ * Usage: `domain ls <vm> | domain ls -a`
221
+ */
222
+ domainLs(args, options) {
223
+ return this.run("domain ls", [args], options, {
224
+ a: "bool",
225
+ });
226
+ }
227
+ /**
228
+ * Show current shares for a VM
229
+ *
230
+ * Usage: `share show <vm>`
231
+ *
232
+ * Tag-scoped API keys may run this command.
233
+ */
234
+ shareShow(vm, options) {
235
+ return this.run("share show", [vm], options, {
236
+ qr: "bool",
237
+ });
238
+ }
239
+ /**
240
+ * Set the HTTP proxy port for a VM
241
+ *
242
+ * Usage: `share port <vm> [port]`
243
+ *
244
+ * CLI examples:
245
+ * ```
246
+ * share port mybox 8080
247
+ * ```
248
+ *
249
+ * Tag-scoped API keys may run this command.
250
+ */
251
+ sharePort(vm, port, options) {
252
+ return this.run("share port", [vm, port], options, {});
253
+ }
254
+ /**
255
+ * Make the HTTP proxy publicly accessible
256
+ *
257
+ * Usage: `share set-public <vm>`
258
+ *
259
+ * Tag-scoped API keys may run this command.
260
+ */
261
+ shareSetPublic(vm, options) {
262
+ return this.run("share set-public", [vm], options, {});
263
+ }
264
+ /**
265
+ * Restrict the HTTP proxy to authenticated users
266
+ *
267
+ * Usage: `share set-private <vm>`
268
+ *
269
+ * Tag-scoped API keys may run this command.
270
+ */
271
+ shareSetPrivate(vm, options) {
272
+ return this.run("share set-private", [vm], options, {});
273
+ }
274
+ /**
275
+ * Share VM with a user via email, or grant shell access with --root
276
+ *
277
+ * Usage: `share add <vm> <email|team> [--root] [--message='...']`
278
+ *
279
+ * CLI examples:
280
+ * ```
281
+ * share add mybox user@example.com
282
+ * share add mybox user@example.com --message='Check this out'
283
+ * share add mybox team
284
+ * share add mybox teammate@example.com --root
285
+ * share add mybox team --root
286
+ * ```
287
+ *
288
+ * Tag-scoped API keys may run this command.
289
+ */
290
+ shareAdd(vm, emailOrTeam, options) {
291
+ return this.run("share add", [vm, emailOrTeam], options, {
292
+ message: "string",
293
+ qr: "bool",
294
+ root: "bool",
295
+ });
296
+ }
297
+ /**
298
+ * Revoke a user's access to a VM, or downgrade shell access to web with --root
299
+ *
300
+ * Usage: `share remove <vm> <email|team> [--root]`
301
+ *
302
+ * CLI examples:
303
+ * ```
304
+ * share remove mybox user@example.com
305
+ * share remove mybox team
306
+ * share remove mybox teammate@example.com --root
307
+ * share remove mybox team --root
308
+ * ```
309
+ *
310
+ * Tag-scoped API keys may run this command.
311
+ */
312
+ shareRemove(vm, emailOrTeam, options) {
313
+ return this.run("share remove", [vm, emailOrTeam], options, {
314
+ root: "bool",
315
+ });
316
+ }
317
+ /**
318
+ * Create a shareable link for a VM
319
+ *
320
+ * Usage: `share add-link <vm>`
321
+ *
322
+ * Tag-scoped API keys may run this command.
323
+ */
324
+ shareAddLink(vm, options) {
325
+ return this.run("share add-link", [vm], options, {
326
+ qr: "bool",
327
+ });
328
+ }
329
+ /**
330
+ * Revoke a shareable link
331
+ *
332
+ * Usage: `share remove-link <vm> <token>`
333
+ *
334
+ * Tag-scoped API keys may run this command.
335
+ */
336
+ shareRemoveLink(vm, token, options) {
337
+ return this.run("share remove-link", [vm, token], options, {});
338
+ }
339
+ /**
340
+ * Enable or disable inbound email for a VM
341
+ *
342
+ * Usage: `share receive-email <vm> [on|off] [--reply-policy=all|known|owner|none]`
343
+ *
344
+ * CLI examples:
345
+ * ```
346
+ * share receive-email mybox on
347
+ * share receive-email mybox off
348
+ * share receive-email mybox --reply-policy=known
349
+ * share receive-email mybox
350
+ * ```
351
+ *
352
+ * Tag-scoped API keys may run this command.
353
+ */
354
+ shareReceiveEmail(vm, onOrOff, options) {
355
+ return this.run("share receive-email", [vm, onOrOff], options, {
356
+ "reply-policy": "string",
357
+ });
358
+ }
359
+ /**
360
+ * Show user information (email, keys, etc)
361
+ *
362
+ * Usage: `whoami`
363
+ *
364
+ * Tag-scoped API keys may run this command.
365
+ */
366
+ whoami(options) {
367
+ return this.run("whoami", [], options, {});
368
+ }
369
+ /**
370
+ * List all SSH keys associated with your account
371
+ *
372
+ * Usage: `ssh-key list`
373
+ *
374
+ * Tag-scoped API keys may run this command.
375
+ */
376
+ sshKeyList(options) {
377
+ return this.run("ssh-key list", [], options, {});
378
+ }
379
+ /**
380
+ * Add a new SSH key to your account
381
+ *
382
+ * Usage: `ssh-key add [--tag=TAG] <public-key>`
383
+ *
384
+ * CLI examples:
385
+ * ```
386
+ * ssh-key add 'ssh-ed25519 AAAA... my-laptop'
387
+ *
388
+ * To generate a new key locally:
389
+ * ssh-keygen -t ed25519 -C "mnemonic-for-this-key" -f ~/.ssh/id_exe
390
+ *
391
+ * The -C flag sets a name for the key.
392
+ *
393
+ * Then add the public key from your local shell:
394
+ * cat ~/.ssh/id_exe.pub | ssh exe.dev ssh-key add
395
+ *
396
+ * Or from the exe.dev shell:
397
+ * ssh-key add 'ssh-ed25519 AAAA... my-laptop'
398
+ * ```
399
+ *
400
+ * Tag-scoped API keys may run this command.
401
+ */
402
+ sshKeyAdd(publicKey, options) {
403
+ return this.run("ssh-key add", [publicKey], options, {
404
+ tag: "string",
405
+ });
406
+ }
407
+ /**
408
+ * Remove an SSH key from your account
409
+ *
410
+ * Usage: `ssh-key remove <name|fingerprint|public-key>`
411
+ *
412
+ * Tag-scoped API keys may run this command.
413
+ */
414
+ sshKeyRemove(nameOrFingerprintOrPublicKey, options) {
415
+ return this.run("ssh-key remove", [nameOrFingerprintOrPublicKey], options, {});
416
+ }
417
+ /**
418
+ * Rename an SSH key
419
+ *
420
+ * Usage: `ssh-key rename <old-name> <new-name>`
421
+ *
422
+ * Tag-scoped API keys may run this command.
423
+ */
424
+ sshKeyRename(oldName, newName, options) {
425
+ return this.run("ssh-key rename", [oldName, newName], options, {});
426
+ }
427
+ /**
428
+ * Generate an API key for the exe.dev HTTPS API or for a specific VM
429
+ *
430
+ * Usage: `ssh-key generate-api-key [--label=NAME] [--vm=VMNAME] [--cmds=CMD1,CMD2] [--exp=30d]`
431
+ *
432
+ * CLI examples:
433
+ * ```
434
+ * # Generate a key for the exe.dev API (lobby commands like ls, new, whoami):
435
+ * ssh-key generate-api-key --label=ci --cmds=ls,new --exp=90d
436
+ *
437
+ * # Generate a key scoped to a VM (authenticates to its HTTPS proxy):
438
+ * ssh-key generate-api-key --vm=my-vm --label=deploy
439
+ * ```
440
+ *
441
+ * Tag-scoped API keys may run this command.
442
+ */
443
+ sshKeyGenerateApiKey(options) {
444
+ return this.run("ssh-key generate-api-key", [], options, {
445
+ cmds: "string",
446
+ exp: "string",
447
+ label: "string",
448
+ vm: "string",
449
+ });
450
+ }
451
+ /**
452
+ * Set your preferred region for new VMs.
453
+ *
454
+ * Usage: `set-region <region-code>`
455
+ */
456
+ setRegion(regionCode, options) {
457
+ return this.run("set-region", [regionCode], options, {});
458
+ }
459
+ /**
460
+ * List your integrations
461
+ *
462
+ * Usage: `integrations list [--json [--usage]]`
463
+ *
464
+ * Tag-scoped API keys may run this command.
465
+ */
466
+ integrationsList(options) {
467
+ return this.run("integrations list", [], options, {
468
+ usage: "bool",
469
+ });
470
+ }
471
+ /**
472
+ * Set up GitHub integration
473
+ *
474
+ * Usage: `integrations setup github [--list|--verify|-d]`
475
+ */
476
+ integrationsSetupGithub(options) {
477
+ return this.run("integrations setup github", [], options, {
478
+ d: "bool",
479
+ delete: "bool",
480
+ list: "bool",
481
+ verify: "bool",
482
+ });
483
+ }
484
+ /**
485
+ * Set up ChatGPT account access for LLM integrations
486
+ *
487
+ * Usage: `integrations setup chatgpt [--name=<account-name>|--list|--verify|-d]`
488
+ */
489
+ integrationsSetupChatgpt(options) {
490
+ return this.run("integrations setup chatgpt", [], options, {
491
+ d: "bool",
492
+ delete: "bool",
493
+ list: "bool",
494
+ name: "string",
495
+ verify: "bool",
496
+ });
497
+ }
498
+ /**
499
+ * Add a new integration
500
+ *
501
+ * Credential value flags (keys, tokens, passwords, bearer tokens, and webhook URLs) accept - to read from stdin.
502
+ *
503
+ * Usage: `integrations add <type> [--default | --name=<name> [--team] [args...]]`
504
+ */
505
+ integrationsAdd(type, options) {
506
+ return this.run("integrations add", [type], options, {
507
+ "act-as-user": "bool",
508
+ attach: "repeated",
509
+ bearer: "string",
510
+ comment: "string",
511
+ default: "bool",
512
+ fields: "string",
513
+ for: "string",
514
+ header: "repeated",
515
+ "host-key": "repeated",
516
+ name: "string",
517
+ "no-auth": "bool",
518
+ peer: "bool",
519
+ readonly: "bool",
520
+ repository: "string",
521
+ "strip-prefix": "string",
522
+ target: "string",
523
+ team: "bool",
524
+ });
525
+ }
526
+ /**
527
+ * Remove an integration
528
+ *
529
+ * Usage: `integrations remove <name> [--team]`
530
+ */
531
+ integrationsRemove(name, options) {
532
+ return this.run("integrations remove", [name], options, {
533
+ team: "bool",
534
+ });
535
+ }
536
+ /**
537
+ * Test an integration's credential (connection check)
538
+ *
539
+ * Usage: `integrations test <name> [--team]`
540
+ */
541
+ integrationsTest(name, options) {
542
+ return this.run("integrations test", [name], options, {
543
+ team: "bool",
544
+ });
545
+ }
546
+ /**
547
+ * Edit an integration
548
+ *
549
+ * Credential value flags (keys, tokens, passwords, bearer tokens, and webhook URLs) accept - to read from stdin.
550
+ *
551
+ * Usage: `integrations edit <name> [--team] [args...]`
552
+ */
553
+ integrationsEdit(name, args, options) {
554
+ return this.run("integrations edit", [name, args], options, {
555
+ "act-as-user": "bool",
556
+ bearer: "string",
557
+ "clear-header": "bool",
558
+ comment: "string",
559
+ fields: "string",
560
+ header: "repeated",
561
+ "host-key": "repeated",
562
+ "no-auth": "bool",
563
+ readonly: "bool",
564
+ repository: "string",
565
+ "strip-prefix": "string",
566
+ target: "string",
567
+ team: "bool",
568
+ "webhook-url": "string",
569
+ });
570
+ }
571
+ /**
572
+ * Attach an integration to a VM, tag, or all VMs
573
+ *
574
+ * A <spec> controls where the integration is mounted:
575
+ * vm:<vm-name> attach to a specific VM (personal only)
576
+ * tag:<tag-name> attach to every VM with the given tag
577
+ * auto:all attach to all current and future VMs (personal only)
578
+ *
579
+ * You can attach the same integration multiple times with different specs.
580
+ * Team integrations only support tag:<tag-name>.
581
+ *
582
+ * A grant can be time-boxed with --for <duration> or --until <RFC3339>;
583
+ * when it lapses, access stops immediately, with nothing to revoke.
584
+ * Re-attaching the same spec with a new --for/--until extends or shortens it.
585
+ *
586
+ * Usage: `integrations attach <name> <spec> [--team] [--for <duration> | --until <time>]`
587
+ *
588
+ * CLI examples:
589
+ * ```
590
+ * int attach my-mcp vm:dev1
591
+ * int attach my-mcp tag:production
592
+ * int attach my-mcp auto:all
593
+ * int attach shared-mcp tag:production
594
+ * int attach gmail vm:dev1 --for 2h
595
+ * ```
596
+ */
597
+ integrationsAttach(name, spec, options) {
598
+ return this.run("integrations attach", [name, spec], options, {
599
+ for: "string",
600
+ team: "bool",
601
+ until: "string",
602
+ });
603
+ }
604
+ /**
605
+ * Detach an integration from a VM, tag, or all VMs
606
+ *
607
+ * Usage: `integrations detach <name> <spec> [--team]`
608
+ */
609
+ integrationsDetach(name, spec, options) {
610
+ return this.run("integrations detach", [name, spec], options, {
611
+ team: "bool",
612
+ });
613
+ }
614
+ /**
615
+ * Rename an integration
616
+ *
617
+ * Usage: `integrations rename <name> <new-name> [--team]`
618
+ */
619
+ integrationsRename(name, newName, options) {
620
+ return this.run("integrations rename", [name, newName], options, {
621
+ team: "bool",
622
+ });
623
+ }
624
+ /**
625
+ * Browse the catalog of ready-made service integrations
626
+ *
627
+ * Usage: `integrations catalog [service-or-search-term]`
628
+ *
629
+ * CLI examples:
630
+ * ```
631
+ * int catalog
632
+ * int catalog stripe
633
+ * ```
634
+ */
635
+ integrationsCatalog(serviceOrSearchTerm, options) {
636
+ return this.run("integrations catalog", [serviceOrSearchTerm], options, {});
637
+ }
638
+ /**
639
+ * View and manage your team
640
+ */
641
+ team(options) {
642
+ return this.run("team", [], options, {});
643
+ }
644
+ /**
645
+ * Disband your team
646
+ *
647
+ * Usage: `team disable`
648
+ */
649
+ teamDisable(options) {
650
+ return this.run("team disable", [], options, {
651
+ yes: "bool",
652
+ });
653
+ }
654
+ /**
655
+ * List team members
656
+ *
657
+ * Usage: `team members`
658
+ */
659
+ teamMembers(options) {
660
+ return this.run("team members", [], options, {});
661
+ }
662
+ /**
663
+ * Show team pool, disk, and bandwidth usage for the billing period
664
+ *
665
+ * Usage: `team usage`
666
+ */
667
+ teamUsage(options) {
668
+ return this.run("team usage", [], options, {});
669
+ }
670
+ /**
671
+ * Add a user to the team
672
+ *
673
+ * Usage: `team add <email> [<user|admin|billing_owner>]`
674
+ */
675
+ teamAdd(email, userOrAdminOrBillingOwner, options) {
676
+ return this.run("team add", [email, userOrAdminOrBillingOwner], options, {});
677
+ }
678
+ /**
679
+ * Remove a user from the team
680
+ *
681
+ * Usage: `team remove <email> [--transfer-vms-to <email>]`
682
+ */
683
+ teamRemove(email, options) {
684
+ return this.run("team remove", [email], options, {
685
+ "transfer-vms-to": "string",
686
+ });
687
+ }
688
+ /**
689
+ * Change a team member's role
690
+ *
691
+ * Usage: `team role <email> <user|admin|billing_owner>`
692
+ */
693
+ teamRole(email, userOrAdminOrBillingOwner, options) {
694
+ return this.run("team role", [email, userOrAdminOrBillingOwner], options, {});
695
+ }
696
+ /**
697
+ * Rename your team
698
+ *
699
+ * Usage: `team rename <name>`
700
+ */
701
+ teamRename(name, options) {
702
+ return this.run("team rename", [name], options, {});
703
+ }
704
+ /**
705
+ * Show your team's plan
706
+ *
707
+ * Usage: `team billing plan [--all]`
708
+ *
709
+ * CLI examples:
710
+ * ```
711
+ * team billing plan
712
+ * team billing plan --all # plans your team can switch to
713
+ * ```
714
+ */
715
+ teamBillingPlan(options) {
716
+ return this.run("team billing plan", [], options, {
717
+ all: "bool",
718
+ });
719
+ }
720
+ /**
721
+ * Update team billing information
722
+ *
723
+ * Usage: `team billing update [--email=<email>] [--name=<name>] [--business-name=<name>] [--phone=<phone>] [--address-line1=<line>] [--address-line2=<line>] [--address-city=<city>] [--address-state=<state>] [--address-postal-code=<code>] [--address-country=<country>] [--tax-id-type=<type>] [--tax-id-value=<value>]`
724
+ */
725
+ teamBillingUpdate(options) {
726
+ return this.run("team billing update", [], options, {
727
+ "address-city": "string",
728
+ "address-country": "string",
729
+ "address-line1": "string",
730
+ "address-line2": "string",
731
+ "address-postal-code": "string",
732
+ "address-state": "string",
733
+ "business-name": "string",
734
+ email: "string",
735
+ name: "string",
736
+ phone: "string",
737
+ "tax-id-type": "string",
738
+ "tax-id-value": "string",
739
+ });
740
+ }
741
+ /**
742
+ * Transfer a VM to another team member
743
+ *
744
+ * Usage: `team transfer <vm_name> <target_email>`
745
+ */
746
+ teamTransfer(vmName, targetEmail, options) {
747
+ return this.run("team transfer", [vmName, targetEmail], options, {});
748
+ }
749
+ /**
750
+ * View and manage team auth settings
751
+ *
752
+ * Usage: `team auth`
753
+ */
754
+ teamAuth(options) {
755
+ return this.run("team auth", [], options, {});
756
+ }
757
+ /**
758
+ * Require OIDC for web login (web|off)
759
+ *
760
+ * Usage: `team auth require-oidc <web|off>`
761
+ */
762
+ teamAuthRequireOidc(webOrOff, options) {
763
+ return this.run("team auth require-oidc", [webOrOff], options, {});
764
+ }
765
+ /**
766
+ * Set the team auth provider (default, google, oidc)
767
+ *
768
+ * Usage: `team auth set <default|google|oidc> [--issuer-url=<url> --client-id=<id> --client-secret=<secret>]`
769
+ */
770
+ teamAuthSet(defaultOrGoogleOrOidc, options) {
771
+ return this.run("team auth set", [defaultOrGoogleOrOidc], options, {
772
+ "client-id": "string",
773
+ "client-secret": "string",
774
+ "display-name": "string",
775
+ "issuer-url": "string",
776
+ });
777
+ }
778
+ /**
779
+ * View and manage team settings
780
+ *
781
+ * Usage: `team settings`
782
+ */
783
+ teamSettings(options) {
784
+ return this.run("team settings", [], options, {});
785
+ }
786
+ /**
787
+ * View and manage automatic VM placement
788
+ *
789
+ * Usage: `team settings vm-placement`
790
+ */
791
+ teamSettingsVmPlacement(options) {
792
+ return this.run("team settings vm-placement", [], options, {});
793
+ }
794
+ /**
795
+ * Use ordinary VM placement
796
+ *
797
+ * Usage: `team settings vm-placement default`
798
+ */
799
+ teamSettingsVmPlacementDefault(options) {
800
+ return this.run("team settings vm-placement default", [], options, {});
801
+ }
802
+ /**
803
+ * Send bare new commands to a shared team pool
804
+ *
805
+ * Usage: `team settings vm-placement pool <name>`
806
+ */
807
+ teamSettingsVmPlacementPool(name, options) {
808
+ return this.run("team settings vm-placement pool", [name], options, {});
809
+ }
810
+ /**
811
+ * Create or reuse one team pool per member for bare new commands
812
+ *
813
+ * Usage: `team settings vm-placement member-pool --cpus=N [--max-vms=N]`
814
+ */
815
+ teamSettingsVmPlacementMemberPool(options) {
816
+ return this.run("team settings vm-placement member-pool", [], options, {
817
+ cpus: "number",
818
+ "max-vms": "number",
819
+ });
820
+ }
821
+ /**
822
+ * Keep bare new commands outside pools while migrating (legacy)
823
+ *
824
+ * Usage: `team settings vm-placement poolless`
825
+ */
826
+ teamSettingsVmPlacementPoolless(options) {
827
+ return this.run("team settings vm-placement poolless", [], options, {});
828
+ }
829
+ /**
830
+ * Set who can create standalone VMs
831
+ *
832
+ * Usage: `team settings standalone <off|admins-only|all-users>`
833
+ */
834
+ teamSettingsStandalone(offOrAdminsOnlyOrAllUsers, options) {
835
+ return this.run("team settings standalone", [offOrAdminsOnlyOrAllUsers], options, {});
836
+ }
837
+ /**
838
+ * Allow or block the exe.dev LLM gateway (your own API keys are unaffected)
839
+ *
840
+ * Usage: `team settings llm-gateway <on|off>`
841
+ */
842
+ teamSettingsLlmGateway(onOrOff, options) {
843
+ return this.run("team settings llm-gateway", [onOrOff], options, {});
844
+ }
845
+ /**
846
+ * Allow team VMs to share CPU cores with each other
847
+ *
848
+ * Usage: `team settings core-sharing <on|off>`
849
+ */
850
+ teamSettingsCoreSharing(onOrOff, options) {
851
+ return this.run("team settings core-sharing", [onOrOff], options, {});
852
+ }
853
+ /**
854
+ * Set who can share team VMs
855
+ *
856
+ * Usage: `team settings vm-sharing <admins-only|all-members>`
857
+ */
858
+ teamSettingsVmSharing(adminsOnlyOrAllMembers, options) {
859
+ return this.run("team settings vm-sharing", [adminsOnlyOrAllMembers], options, {});
860
+ }
861
+ /**
862
+ * Set how long members stay signed in on the web and mobile apps
863
+ *
864
+ * Usage: `team settings session-length <length>`
865
+ *
866
+ * CLI examples:
867
+ * ```
868
+ * team settings session-length 1d
869
+ * team settings session-length default
870
+ * ```
871
+ */
872
+ teamSettingsSessionLength(length, options) {
873
+ return this.run("team settings session-length", [length], options, {});
874
+ }
875
+ /**
876
+ * Allow users from your email domain to join this team on signup
877
+ *
878
+ * Usage: `team settings auto-join <on|off>`
879
+ */
880
+ teamSettingsAutoJoin(onOrOff, options) {
881
+ return this.run("team settings auto-join", [onOrOff], options, {});
882
+ }
883
+ /**
884
+ * List all VMs across your team
885
+ *
886
+ * Usage: `team vm ls [-l] [--group=tag|region|type|user|access] [name|pattern]`
887
+ *
888
+ * Tag-scoped API keys may run this command.
889
+ */
890
+ teamVmLs(nameOrPattern, options) {
891
+ return this.run("team vm ls", [nameOrPattern], options, {
892
+ group: "string",
893
+ l: "bool",
894
+ });
895
+ }
896
+ /**
897
+ * Create a pool: reserved capacity for your team's VMs
898
+ *
899
+ * Usage: `pool new <name> --cpus=N [--region=<region>] [--max-vms=M]`
900
+ */
901
+ poolNew(name, options) {
902
+ return this.run("pool new", [name], options, {
903
+ cpus: "number",
904
+ "max-vms": "number",
905
+ region: "string",
906
+ });
907
+ }
908
+ /**
909
+ * Show your team's dedicated hosts, where its new pools are placed
910
+ *
911
+ * Usage: `pool hosts`
912
+ */
913
+ poolHosts(options) {
914
+ return this.run("pool hosts", [], options, {});
915
+ }
916
+ /**
917
+ * List your team's pools, or show live or historical usage with --usage
918
+ *
919
+ * Usage: `pool list [pool-name] [--usage [--range=live|24h|7d|30d]]`
920
+ */
921
+ poolList(poolName, options) {
922
+ return this.run("pool list", [poolName], options, {
923
+ range: "string",
924
+ usage: "bool",
925
+ });
926
+ }
927
+ /**
928
+ * Adopt a VM into a pool; this can take several minutes
929
+ *
930
+ * Usage: `pool adopt --vm=<vm-name> --pool=<pool-name>`
931
+ *
932
+ * CLI examples:
933
+ * ```
934
+ * pool adopt --vm=builder --pool=compile
935
+ * ```
936
+ */
937
+ poolAdopt(options) {
938
+ return this.run("pool adopt", [], options, {
939
+ pool: "string",
940
+ vm: "string",
941
+ });
942
+ }
943
+ /**
944
+ * Detach a VM from its pool into its own standalone capacity (--poolless leaves it outside any pool)
945
+ *
946
+ * Usage: `pool detach --vm=<vm-name> [--poolless]`
947
+ *
948
+ * CLI examples:
949
+ * ```
950
+ * pool detach --vm=builder
951
+ * pool detach --vm=builder --poolless
952
+ * ```
953
+ */
954
+ poolDetach(options) {
955
+ return this.run("pool detach", [], options, {
956
+ poolless: "bool",
957
+ vm: "string",
958
+ });
959
+ }
960
+ /**
961
+ * Change a pool's CPU capacity or VM cap
962
+ *
963
+ * Usage: `pool resize <name> --cpus=N | pool resize <name> --max-vms=N [--force]`
964
+ */
965
+ poolResize(args, options) {
966
+ return this.run("pool resize", [args], options, {
967
+ cpus: "number",
968
+ force: "bool",
969
+ "max-vms": "string",
970
+ });
971
+ }
972
+ /**
973
+ * Rename a pool without changing its capacity or VMs
974
+ *
975
+ * Usage: `pool rename <old-name> <new-name>`
976
+ */
977
+ poolRename(oldName, newName, options) {
978
+ return this.run("pool rename", [oldName, newName], options, {});
979
+ }
980
+ /**
981
+ * Delete a pool (refused while it has VMs; --force detaches them)
982
+ *
983
+ * Usage: `pool delete <name> [--force]`
984
+ */
985
+ poolDelete(name, options) {
986
+ return this.run("pool delete", [name], options, {});
987
+ }
988
+ /**
989
+ * Show your current plan and resource limits
990
+ *
991
+ * Usage: `billing plan [--all]`
992
+ *
993
+ * CLI examples:
994
+ * ```
995
+ * billing plan
996
+ * billing plan --all # plans you can switch to
997
+ * ```
998
+ */
999
+ billingPlan(options) {
1000
+ return this.run("billing plan", [], options, {
1001
+ all: "bool",
1002
+ });
1003
+ }
1004
+ /**
1005
+ * Show VM resource usage against your plan quotas
1006
+ *
1007
+ * Usage: `billing usage [--range=cycle|24h|7d|30d] [--group=vm]`
1008
+ *
1009
+ * CLI examples:
1010
+ * ```
1011
+ * billing usage --range=7d
1012
+ * billing credits usage # Shelley/LLM credit spend instead
1013
+ * ```
1014
+ */
1015
+ billingUsage(options) {
1016
+ return this.run("billing usage", [], options, {
1017
+ group: "string",
1018
+ range: "string",
1019
+ });
1020
+ }
1021
+ /**
1022
+ * Show Shelley credit balances
1023
+ *
1024
+ * Usage: `billing credits [usage|transactions|buy]`
1025
+ */
1026
+ billingCredits(options) {
1027
+ return this.run("billing credits", [], options, {});
1028
+ }
1029
+ /**
1030
+ * Show Shelley (LLM) credit spend by model, day, or VM
1031
+ *
1032
+ * Usage: `billing credits usage [--month=YYYY-MM] [--group=model|day|box] [--detail]`
1033
+ *
1034
+ * CLI examples:
1035
+ * ```
1036
+ * billing credits usage --group=day
1037
+ * billing credits usage --group=box --detail
1038
+ * billing credits usage --month=2026-05 --group=box
1039
+ * ```
1040
+ */
1041
+ billingCreditsUsage(options) {
1042
+ return this.run("billing credits usage", [], options, {
1043
+ detail: "bool",
1044
+ group: "string",
1045
+ month: "string",
1046
+ });
1047
+ }
1048
+ /**
1049
+ * Show your credit purchases and gifts
1050
+ *
1051
+ * Usage: `billing credits transactions [--limit=N]`
1052
+ */
1053
+ billingCreditsTransactions(options) {
1054
+ return this.run("billing credits transactions", [], options, {
1055
+ limit: "string",
1056
+ });
1057
+ }
1058
+ /**
1059
+ * Buy Shelley credits with your personal payment method
1060
+ *
1061
+ * Usage: `billing credits buy <dollars> [--yes]`
1062
+ *
1063
+ * CLI examples:
1064
+ * ```
1065
+ * billing credits buy 25
1066
+ * billing credits buy 100 --yes
1067
+ * ```
1068
+ */
1069
+ billingCreditsBuy(dollars, options) {
1070
+ return this.run("billing credits buy", [dollars], options, {
1071
+ "idempotency-key": "string",
1072
+ yes: "bool",
1073
+ });
1074
+ }
1075
+ /**
1076
+ * Show invite rewards you've earned
1077
+ *
1078
+ * Usage: `billing rewards`
1079
+ */
1080
+ billingRewards(options) {
1081
+ return this.run("billing rewards", [], options, {});
1082
+ }
1083
+ /**
1084
+ * Change your subscription capacity
1085
+ *
1086
+ * Usage: `billing capacity [--cpu=N] [--yes]`
1087
+ *
1088
+ * CLI examples:
1089
+ * ```
1090
+ * billing capacity
1091
+ * billing capacity --cpu=4 --yes
1092
+ * ```
1093
+ */
1094
+ billingCapacity(options) {
1095
+ return this.run("billing capacity", [], options, {
1096
+ cpu: "number",
1097
+ yes: "bool",
1098
+ });
1099
+ }
1100
+ /**
1101
+ * Show your payment methods
1102
+ *
1103
+ * Usage: `billing payment [list]`
1104
+ */
1105
+ billingPayment(options) {
1106
+ return this.run("billing payment", [], options, {});
1107
+ }
1108
+ /**
1109
+ * List all payment methods on file
1110
+ *
1111
+ * Usage: `billing payment list`
1112
+ */
1113
+ billingPaymentList(options) {
1114
+ return this.run("billing payment list", [], options, {});
1115
+ }
1116
+ /**
1117
+ * Remove a saved payment method
1118
+ *
1119
+ * Usage: `billing payment remove <ref>`
1120
+ *
1121
+ * CLI examples:
1122
+ * ```
1123
+ * billing payment remove 4f1c2a9b8d3e
1124
+ * ```
1125
+ */
1126
+ billingPaymentRemove(ref, options) {
1127
+ return this.run("billing payment remove", [ref], options, {});
1128
+ }
1129
+ /**
1130
+ * Make a saved payment method the default
1131
+ *
1132
+ * Usage: `billing payment default <ref>`
1133
+ *
1134
+ * CLI examples:
1135
+ * ```
1136
+ * billing payment default 4f1c2a9b8d3e
1137
+ * ```
1138
+ */
1139
+ billingPaymentDefault(ref, options) {
1140
+ return this.run("billing payment default", [ref], options, {});
1141
+ }
1142
+ /**
1143
+ * Open the billing management page
1144
+ *
1145
+ * Usage: `billing manage`
1146
+ */
1147
+ billingManage(options) {
1148
+ return this.run("billing manage", [], options, {});
1149
+ }
1150
+ /**
1151
+ * Open the personal plan activation page
1152
+ *
1153
+ * Usage: `billing activate`
1154
+ */
1155
+ billingActivate(options) {
1156
+ return this.run("billing activate", [], options, {});
1157
+ }
1158
+ /**
1159
+ * Update your billing contact information
1160
+ *
1161
+ * Usage: `billing update [--email=<email>] [--name=<name>] [--business-name=<name>] [--phone=<phone>] [--address-line1=<line>] [--address-line2=<line>] [--address-city=<city>] [--address-state=<state>] [--address-postal-code=<code>] [--address-country=<country>] [--tax-id-type=<type>] [--tax-id-value=<value>]`
1162
+ */
1163
+ billingUpdate(options) {
1164
+ return this.run("billing update", [], options, {
1165
+ "address-city": "string",
1166
+ "address-country": "string",
1167
+ "address-line1": "string",
1168
+ "address-line2": "string",
1169
+ "address-postal-code": "string",
1170
+ "address-state": "string",
1171
+ "business-name": "string",
1172
+ email: "string",
1173
+ name: "string",
1174
+ phone: "string",
1175
+ "tax-id-type": "string",
1176
+ "tax-id-value": "string",
1177
+ });
1178
+ }
1179
+ /**
1180
+ * Show recent invoices
1181
+ *
1182
+ * Usage: `billing invoices`
1183
+ */
1184
+ billingInvoices(options) {
1185
+ return this.run("billing invoices", [], options, {});
1186
+ }
1187
+ /**
1188
+ * List invoices for your personal or team account
1189
+ *
1190
+ * Usage: `billing invoices list [--account=personal|team]`
1191
+ *
1192
+ * CLI examples:
1193
+ * ```
1194
+ * billing invoices list --account=team
1195
+ * ```
1196
+ */
1197
+ billingInvoicesList(options) {
1198
+ return this.run("billing invoices list", [], options, {
1199
+ account: "string",
1200
+ });
1201
+ }
1202
+ /**
1203
+ * Show one invoice with its usage breakdown
1204
+ *
1205
+ * Usage: `billing invoices show <id> [--vms]`
1206
+ *
1207
+ * CLI examples:
1208
+ * ```
1209
+ * billing invoices show in_1Abc --vms
1210
+ * ```
1211
+ */
1212
+ billingInvoicesShow(id, options) {
1213
+ return this.run("billing invoices show", [id], options, {
1214
+ vms: "bool",
1215
+ });
1216
+ }
1217
+ /**
1218
+ * Show credit purchase receipts and purchases (this billing account only)
1219
+ *
1220
+ * Usage: `billing receipts [--from=<YYYY-MM-DD>] [--to=<YYYY-MM-DD>]`
1221
+ *
1222
+ * CLI examples:
1223
+ * ```
1224
+ * billing receipts --from=2026-01-01 --to=2026-06-30
1225
+ * ```
1226
+ */
1227
+ billingReceipts(options) {
1228
+ return this.run("billing receipts", [], options, {
1229
+ from: "string",
1230
+ to: "string",
1231
+ });
1232
+ }
1233
+ /**
1234
+ * Open a consolidated credit purchase statement
1235
+ *
1236
+ * Usage: `billing statement [--from=<YYYY-MM-DD>] [--to=<YYYY-MM-DD>]`
1237
+ *
1238
+ * CLI examples:
1239
+ * ```
1240
+ * billing statement --from=2026-01-01 --to=2026-06-30
1241
+ * ```
1242
+ */
1243
+ billingStatement(options) {
1244
+ return this.run("billing statement", [], options, {
1245
+ from: "string",
1246
+ to: "string",
1247
+ });
1248
+ }
1249
+ /**
1250
+ * Connect a marketplace subscription to your team
1251
+ *
1252
+ * Usage: `billing provider link <aws|azure> --token=<link-token> [--size=<team-size>] [--team-name=<name>]`
1253
+ */
1254
+ billingProviderLink(awsOrAzure, options) {
1255
+ return this.run("billing provider link", [awsOrAzure], options, {
1256
+ size: "string",
1257
+ "team-name": "string",
1258
+ token: "string",
1259
+ });
1260
+ }
1261
+ /**
1262
+ * Manage your invite link and rewards
1263
+ */
1264
+ invite(options) {
1265
+ return this.run("invite", [], options, {});
1266
+ }
1267
+ /**
1268
+ * Show your active invite link and reward
1269
+ *
1270
+ * Usage: `invite show`
1271
+ */
1272
+ inviteShow(options) {
1273
+ return this.run("invite show", [], options, {});
1274
+ }
1275
+ /**
1276
+ * Print only your active invite link
1277
+ *
1278
+ * Usage: `invite link`
1279
+ */
1280
+ inviteLink(options) {
1281
+ return this.run("invite link", [], options, {});
1282
+ }
1283
+ /**
1284
+ * List invite rewards you can use
1285
+ *
1286
+ * Usage: `invite rewards`
1287
+ */
1288
+ inviteRewards(options) {
1289
+ return this.run("invite rewards", [], options, {});
1290
+ }
1291
+ /**
1292
+ * Choose the reward for your invite link
1293
+ *
1294
+ * Usage: `invite set-reward standard|bonus-credits|extra-memory|extra-disk`
1295
+ */
1296
+ inviteSetReward(standardOrBonusCreditsOrExtraMemoryOrExtraDisk, options) {
1297
+ return this.run("invite set-reward", [standardOrBonusCreditsOrExtraMemoryOrExtraDisk], options, {});
1298
+ }
1299
+ /**
1300
+ * Show signups, upgrades, and reward status
1301
+ *
1302
+ * Usage: `invite activity`
1303
+ */
1304
+ inviteActivity(options) {
1305
+ return this.run("invite activity", [], options, {});
1306
+ }
1307
+ /**
1308
+ * Request more trial invites
1309
+ *
1310
+ * Usage: `invite request`
1311
+ */
1312
+ inviteRequest(options) {
1313
+ return this.run("invite request", [], options, {});
1314
+ }
1315
+ /**
1316
+ * Open the invites page
1317
+ *
1318
+ * Usage: `invite manage`
1319
+ */
1320
+ inviteManage(options) {
1321
+ return this.run("invite manage", [], options, {});
1322
+ }
1323
+ /**
1324
+ * Install or upgrade Shelley to the current version
1325
+ *
1326
+ * Usage: `shelley install <vm>`
1327
+ *
1328
+ * Tag-scoped API keys may run this command.
1329
+ */
1330
+ shelleyInstall(vm, options) {
1331
+ return this.run("shelley install", [vm], options, {});
1332
+ }
1333
+ /**
1334
+ * Generate a magic link to log in to the website
1335
+ *
1336
+ * Usage: `browser`
1337
+ */
1338
+ browser(options) {
1339
+ return this.run("browser", [], options, {
1340
+ qr: "bool",
1341
+ });
1342
+ }
1343
+ /**
1344
+ * Allow exe.dev support to log in to a VM
1345
+ *
1346
+ * Usage: `grant-support-root <vmname> on|off`
1347
+ *
1348
+ * Tag-scoped API keys may run this command.
1349
+ */
1350
+ grantSupportRoot(vmname, onOrOff, options) {
1351
+ return this.run("grant-support-root", [vmname, onOrOff], options, {});
1352
+ }
1353
+ /**
1354
+ * Show vCPU, disk, IO, and network (RX/TX) metrics for a VM
1355
+ *
1356
+ * Usage: `stat <vm-name> [--range=24h|7d|30d]`
1357
+ *
1358
+ * CLI examples:
1359
+ * ```
1360
+ * stat my-vm # last 24 hours (default)
1361
+ * stat my-vm --range=7d # last 7 days
1362
+ * stat my-vm --range=30d # last 30 days
1363
+ * ```
1364
+ *
1365
+ * Tag-scoped API keys may run this command.
1366
+ */
1367
+ stat(vmName, options) {
1368
+ return this.run("stat", [vmName], options, {
1369
+ range: "string",
1370
+ });
1371
+ }
1372
+ }
1373
+ //# sourceMappingURL=commands.gen.js.map