@usenaive-sdk/cli 0.15.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.md +43 -402
  2. package/dist/index.js +51796 -502
  3. package/package.json +22 -18
  4. package/dist/client.d.ts +0 -108
  5. package/dist/client.js +0 -458
  6. package/dist/client.js.map +0 -1
  7. package/dist/commands/account-kits.d.ts +0 -2
  8. package/dist/commands/account-kits.js +0 -71
  9. package/dist/commands/account-kits.js.map +0 -1
  10. package/dist/commands/aeo.d.ts +0 -2
  11. package/dist/commands/aeo.js +0 -451
  12. package/dist/commands/aeo.js.map +0 -1
  13. package/dist/commands/agent-profiles.d.ts +0 -11
  14. package/dist/commands/agent-profiles.js +0 -120
  15. package/dist/commands/agent-profiles.js.map +0 -1
  16. package/dist/commands/agents.d.ts +0 -2
  17. package/dist/commands/agents.js +0 -916
  18. package/dist/commands/agents.js.map +0 -1
  19. package/dist/commands/app-data.d.ts +0 -2
  20. package/dist/commands/app-data.js +0 -445
  21. package/dist/commands/app-data.js.map +0 -1
  22. package/dist/commands/approvals.d.ts +0 -2
  23. package/dist/commands/approvals.js +0 -242
  24. package/dist/commands/approvals.js.map +0 -1
  25. package/dist/commands/apps.d.ts +0 -9
  26. package/dist/commands/apps.js +0 -844
  27. package/dist/commands/apps.js.map +0 -1
  28. package/dist/commands/audio.d.ts +0 -9
  29. package/dist/commands/audio.js +0 -391
  30. package/dist/commands/audio.js.map +0 -1
  31. package/dist/commands/auth.d.ts +0 -31
  32. package/dist/commands/auth.js +0 -428
  33. package/dist/commands/auth.js.map +0 -1
  34. package/dist/commands/billing.d.ts +0 -2
  35. package/dist/commands/billing.js +0 -250
  36. package/dist/commands/billing.js.map +0 -1
  37. package/dist/commands/brain.d.ts +0 -2
  38. package/dist/commands/brain.js +0 -1300
  39. package/dist/commands/brain.js.map +0 -1
  40. package/dist/commands/browser.d.ts +0 -2
  41. package/dist/commands/browser.js +0 -378
  42. package/dist/commands/browser.js.map +0 -1
  43. package/dist/commands/business.d.ts +0 -2
  44. package/dist/commands/business.js +0 -566
  45. package/dist/commands/business.js.map +0 -1
  46. package/dist/commands/cards.d.ts +0 -2
  47. package/dist/commands/cards.js +0 -419
  48. package/dist/commands/cards.js.map +0 -1
  49. package/dist/commands/ceo.d.ts +0 -2
  50. package/dist/commands/ceo.js +0 -369
  51. package/dist/commands/ceo.js.map +0 -1
  52. package/dist/commands/clone.d.ts +0 -2
  53. package/dist/commands/clone.js +0 -203
  54. package/dist/commands/clone.js.map +0 -1
  55. package/dist/commands/companies.d.ts +0 -10
  56. package/dist/commands/companies.js +0 -283
  57. package/dist/commands/companies.js.map +0 -1
  58. package/dist/commands/company-data.d.ts +0 -2
  59. package/dist/commands/company-data.js +0 -168
  60. package/dist/commands/company-data.js.map +0 -1
  61. package/dist/commands/compute.d.ts +0 -2
  62. package/dist/commands/compute.js +0 -498
  63. package/dist/commands/compute.js.map +0 -1
  64. package/dist/commands/config.d.ts +0 -2
  65. package/dist/commands/config.js +0 -36
  66. package/dist/commands/config.js.map +0 -1
  67. package/dist/commands/connections.d.ts +0 -8
  68. package/dist/commands/connections.js +0 -137
  69. package/dist/commands/connections.js.map +0 -1
  70. package/dist/commands/cron-jobs.d.ts +0 -2
  71. package/dist/commands/cron-jobs.js +0 -245
  72. package/dist/commands/cron-jobs.js.map +0 -1
  73. package/dist/commands/domains.d.ts +0 -2
  74. package/dist/commands/domains.js +0 -474
  75. package/dist/commands/domains.js.map +0 -1
  76. package/dist/commands/ecommerce.d.ts +0 -2
  77. package/dist/commands/ecommerce.js +0 -277
  78. package/dist/commands/ecommerce.js.map +0 -1
  79. package/dist/commands/email.d.ts +0 -2
  80. package/dist/commands/email.js +0 -336
  81. package/dist/commands/email.js.map +0 -1
  82. package/dist/commands/employees.d.ts +0 -2
  83. package/dist/commands/employees.js +0 -190
  84. package/dist/commands/employees.js.map +0 -1
  85. package/dist/commands/env.d.ts +0 -7
  86. package/dist/commands/env.js +0 -112
  87. package/dist/commands/env.js.map +0 -1
  88. package/dist/commands/formation.d.ts +0 -2
  89. package/dist/commands/formation.js +0 -273
  90. package/dist/commands/formation.js.map +0 -1
  91. package/dist/commands/identity.d.ts +0 -2
  92. package/dist/commands/identity.js +0 -110
  93. package/dist/commands/identity.js.map +0 -1
  94. package/dist/commands/images.d.ts +0 -2
  95. package/dist/commands/images.js +0 -371
  96. package/dist/commands/images.js.map +0 -1
  97. package/dist/commands/init.d.ts +0 -5
  98. package/dist/commands/init.js +0 -43
  99. package/dist/commands/init.js.map +0 -1
  100. package/dist/commands/jobs.d.ts +0 -2
  101. package/dist/commands/jobs.js +0 -144
  102. package/dist/commands/jobs.js.map +0 -1
  103. package/dist/commands/keys.d.ts +0 -2
  104. package/dist/commands/keys.js +0 -156
  105. package/dist/commands/keys.js.map +0 -1
  106. package/dist/commands/legacy-auth.d.ts +0 -27
  107. package/dist/commands/legacy-auth.js +0 -64
  108. package/dist/commands/legacy-auth.js.map +0 -1
  109. package/dist/commands/llm.d.ts +0 -2
  110. package/dist/commands/llm.js +0 -125
  111. package/dist/commands/llm.js.map +0 -1
  112. package/dist/commands/login.d.ts +0 -2
  113. package/dist/commands/login.js +0 -65
  114. package/dist/commands/login.js.map +0 -1
  115. package/dist/commands/logout.d.ts +0 -7
  116. package/dist/commands/logout.js +0 -55
  117. package/dist/commands/logout.js.map +0 -1
  118. package/dist/commands/logs.d.ts +0 -2
  119. package/dist/commands/logs.js +0 -42
  120. package/dist/commands/logs.js.map +0 -1
  121. package/dist/commands/loops.d.ts +0 -2
  122. package/dist/commands/loops.js +0 -260
  123. package/dist/commands/loops.js.map +0 -1
  124. package/dist/commands/media.d.ts +0 -2
  125. package/dist/commands/media.js +0 -183
  126. package/dist/commands/media.js.map +0 -1
  127. package/dist/commands/memory.d.ts +0 -2
  128. package/dist/commands/memory.js +0 -151
  129. package/dist/commands/memory.js.map +0 -1
  130. package/dist/commands/mobile.d.ts +0 -4
  131. package/dist/commands/mobile.js +0 -382
  132. package/dist/commands/mobile.js.map +0 -1
  133. package/dist/commands/module.d.ts +0 -8
  134. package/dist/commands/module.js +0 -48
  135. package/dist/commands/module.js.map +0 -1
  136. package/dist/commands/objectives.d.ts +0 -2
  137. package/dist/commands/objectives.js +0 -243
  138. package/dist/commands/objectives.js.map +0 -1
  139. package/dist/commands/payments.d.ts +0 -2
  140. package/dist/commands/payments.js +0 -131
  141. package/dist/commands/payments.js.map +0 -1
  142. package/dist/commands/people.d.ts +0 -2
  143. package/dist/commands/people.js +0 -197
  144. package/dist/commands/people.js.map +0 -1
  145. package/dist/commands/phone.d.ts +0 -2
  146. package/dist/commands/phone.js +0 -289
  147. package/dist/commands/phone.js.map +0 -1
  148. package/dist/commands/projects.d.ts +0 -13
  149. package/dist/commands/projects.js +0 -220
  150. package/dist/commands/projects.js.map +0 -1
  151. package/dist/commands/queue.d.ts +0 -2
  152. package/dist/commands/queue.js +0 -121
  153. package/dist/commands/queue.js.map +0 -1
  154. package/dist/commands/register.d.ts +0 -2
  155. package/dist/commands/register.js +0 -88
  156. package/dist/commands/register.js.map +0 -1
  157. package/dist/commands/report.d.ts +0 -17
  158. package/dist/commands/report.js +0 -109
  159. package/dist/commands/report.js.map +0 -1
  160. package/dist/commands/sandbox.d.ts +0 -2
  161. package/dist/commands/sandbox.js +0 -558
  162. package/dist/commands/sandbox.js.map +0 -1
  163. package/dist/commands/search.d.ts +0 -2
  164. package/dist/commands/search.js +0 -223
  165. package/dist/commands/search.js.map +0 -1
  166. package/dist/commands/seo.d.ts +0 -2
  167. package/dist/commands/seo.js +0 -528
  168. package/dist/commands/seo.js.map +0 -1
  169. package/dist/commands/sessions.d.ts +0 -6
  170. package/dist/commands/sessions.js +0 -109
  171. package/dist/commands/sessions.js.map +0 -1
  172. package/dist/commands/social-data.d.ts +0 -2
  173. package/dist/commands/social-data.js +0 -245
  174. package/dist/commands/social-data.js.map +0 -1
  175. package/dist/commands/social.d.ts +0 -2
  176. package/dist/commands/social.js +0 -407
  177. package/dist/commands/social.js.map +0 -1
  178. package/dist/commands/status.d.ts +0 -2
  179. package/dist/commands/status.js +0 -79
  180. package/dist/commands/status.js.map +0 -1
  181. package/dist/commands/support.d.ts +0 -2
  182. package/dist/commands/support.js +0 -134
  183. package/dist/commands/support.js.map +0 -1
  184. package/dist/commands/tasks.d.ts +0 -2
  185. package/dist/commands/tasks.js +0 -409
  186. package/dist/commands/tasks.js.map +0 -1
  187. package/dist/commands/teams.d.ts +0 -69
  188. package/dist/commands/teams.js +0 -503
  189. package/dist/commands/teams.js.map +0 -1
  190. package/dist/commands/trading.d.ts +0 -2
  191. package/dist/commands/trading.js +0 -333
  192. package/dist/commands/trading.js.map +0 -1
  193. package/dist/commands/up.d.ts +0 -551
  194. package/dist/commands/up.js +0 -1149
  195. package/dist/commands/up.js.map +0 -1
  196. package/dist/commands/usage.d.ts +0 -2
  197. package/dist/commands/usage.js +0 -73
  198. package/dist/commands/usage.js.map +0 -1
  199. package/dist/commands/use.d.ts +0 -12
  200. package/dist/commands/use.js +0 -96
  201. package/dist/commands/use.js.map +0 -1
  202. package/dist/commands/users.d.ts +0 -10
  203. package/dist/commands/users.js +0 -82
  204. package/dist/commands/users.js.map +0 -1
  205. package/dist/commands/vault.d.ts +0 -2
  206. package/dist/commands/vault.js +0 -101
  207. package/dist/commands/vault.js.map +0 -1
  208. package/dist/commands/verification.d.ts +0 -2
  209. package/dist/commands/verification.js +0 -152
  210. package/dist/commands/verification.js.map +0 -1
  211. package/dist/commands/verify-email.d.ts +0 -19
  212. package/dist/commands/verify-email.js +0 -130
  213. package/dist/commands/verify-email.js.map +0 -1
  214. package/dist/commands/video.d.ts +0 -2
  215. package/dist/commands/video.js +0 -417
  216. package/dist/commands/video.js.map +0 -1
  217. package/dist/commands/voice.d.ts +0 -2
  218. package/dist/commands/voice.js +0 -516
  219. package/dist/commands/voice.js.map +0 -1
  220. package/dist/commands/wallet.d.ts +0 -2
  221. package/dist/commands/wallet.js +0 -244
  222. package/dist/commands/wallet.js.map +0 -1
  223. package/dist/commands/webhooks.d.ts +0 -13
  224. package/dist/commands/webhooks.js +0 -119
  225. package/dist/commands/webhooks.js.map +0 -1
  226. package/dist/commands/whoami.d.ts +0 -2
  227. package/dist/commands/whoami.js +0 -53
  228. package/dist/commands/whoami.js.map +0 -1
  229. package/dist/config.d.ts +0 -42
  230. package/dist/config.js +0 -83
  231. package/dist/config.js.map +0 -1
  232. package/dist/index.d.ts +0 -3
  233. package/dist/index.js.map +0 -1
  234. package/dist/lib/brain-select.d.ts +0 -193
  235. package/dist/lib/brain-select.js +0 -403
  236. package/dist/lib/brain-select.js.map +0 -1
  237. package/dist/lib/cli-validation.d.ts +0 -12
  238. package/dist/lib/cli-validation.js +0 -46
  239. package/dist/lib/cli-validation.js.map +0 -1
  240. package/dist/lib/config-errors.d.ts +0 -4
  241. package/dist/lib/config-errors.js +0 -13
  242. package/dist/lib/config-errors.js.map +0 -1
  243. package/dist/lib/deprecation.d.ts +0 -158
  244. package/dist/lib/deprecation.js +0 -140
  245. package/dist/lib/deprecation.js.map +0 -1
  246. package/dist/lib/duration.d.ts +0 -8
  247. package/dist/lib/duration.js +0 -11
  248. package/dist/lib/duration.js.map +0 -1
  249. package/dist/lib/http-response.d.ts +0 -11
  250. package/dist/lib/http-response.js +0 -96
  251. package/dist/lib/http-response.js.map +0 -1
  252. package/dist/lib/llm-paywall.d.ts +0 -82
  253. package/dist/lib/llm-paywall.js +0 -231
  254. package/dist/lib/llm-paywall.js.map +0 -1
  255. package/dist/lib/pricing.d.ts +0 -132
  256. package/dist/lib/pricing.js +0 -148
  257. package/dist/lib/pricing.js.map +0 -1
  258. package/dist/lib/starter-config.d.ts +0 -13
  259. package/dist/lib/starter-config.js +0 -71
  260. package/dist/lib/starter-config.js.map +0 -1
  261. package/dist/lib/stream-frames.d.ts +0 -114
  262. package/dist/lib/stream-frames.js +0 -169
  263. package/dist/lib/stream-frames.js.map +0 -1
  264. package/dist/lib/teams-catalog.d.ts +0 -141
  265. package/dist/lib/teams-catalog.js +0 -841
  266. package/dist/lib/teams-catalog.js.map +0 -1
  267. package/dist/lib/unknown-command.d.ts +0 -71
  268. package/dist/lib/unknown-command.js +0 -132
  269. package/dist/lib/unknown-command.js.map +0 -1
  270. package/dist/lib/version-check.d.ts +0 -26
  271. package/dist/lib/version-check.js +0 -21
  272. package/dist/lib/version-check.js.map +0 -1
  273. package/dist/output.d.ts +0 -246
  274. package/dist/output.js +0 -539
  275. package/dist/output.js.map +0 -1
  276. package/dist/prompt.d.ts +0 -17
  277. package/dist/prompt.js +0 -70
  278. package/dist/prompt.js.map +0 -1
  279. package/dist/version.d.ts +0 -2
  280. package/dist/version.js +0 -14
  281. package/dist/version.js.map +0 -1
@@ -1,474 +0,0 @@
1
- import { Command, Option, InvalidArgumentError } from "commander";
2
- import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
3
- import { agentOutput } from "../output.js";
4
- function parsePositiveInt(label, min, max) {
5
- return (raw) => {
6
- const n = parseInt(raw, 10);
7
- if (!Number.isFinite(n) || n < min || n > max) {
8
- throw new InvalidArgumentError(`${label} must be an integer between ${min} and ${max}.`);
9
- }
10
- return n;
11
- };
12
- }
13
- export const domainsCmd = new Command("domains")
14
- .description("Manage email domains — list, connect, verify, search, purchase, edit DNS")
15
- .addHelpText("after", `
16
- Subcommands:
17
- naive domains List all domains for your company
18
- naive domains connect Connect a custom domain (BYOD)
19
- naive domains setup-records Show the Resend email-provider setup records to add at your registrar
20
- (alias: dns-records)
21
- naive domains verify Trigger DNS verification for a domain
22
- naive domains search Check if a domain is available for purchase
23
- naive domains purchase Purchase a domain via checkout
24
- naive domains zone-records List every DNS record in the live Vercel zone (with provider record IDs)
25
- naive domains set-record Create or replace a DNS record on the zone
26
- naive domains delete-record Delete a DNS record from the zone
27
-
28
- Two DNS surfaces (don't mix them up):
29
- setup-records → Resend email-provider records the customer must add at their registrar to pass
30
- email verification (read-only). Equivalent: GET /v1/domains/:id/dns-records.
31
- zone-records → Every record currently in the live Vercel zone, with provider record IDs needed
32
- for delete-record. Equivalent: GET /v1/domains/:id/zone-records.
33
-
34
- Domain types:
35
- System domain Auto-provisioned on registration ({slug}.usenaive.ai); read-only for DNS edits
36
- Custom domain Your own domain connected via 'domains connect'
37
- Purchased domain Bought through Naive via domain registrar
38
-
39
- Workflow for custom domains:
40
- 1. naive domains connect --domain mycompany.com → get DNS records
41
- 2. Add DNS records at your registrar (e.g., Cloudflare, Namecheap)
42
- 3. naive domains verify <domain_id> → verify DNS propagation
43
- 4. naive email create --local-part support → create inboxes
44
-
45
- Workflow for purchasing a new domain:
46
- 1. naive domains search example.com → check availability + price
47
- 2. naive domains purchase example.com → get checkout URL
48
- 3. Complete payment at checkout URL
49
- 4. naive domains → verify domain is active
50
-
51
- Workflow for editing DNS on a connected domain:
52
- 1. naive domains zone-records <domain_id> → list current records, copy provider IDs
53
- 2. naive domains set-record <domain_id> --type CNAME --name www --value shops.myshopify.com
54
- 3. naive domains delete-record <domain_id> <record_id> (use --acknowledge-unowned for non-Naive records)
55
-
56
- System domains ({slug}.usenaive.ai):
57
- Auto-provisioned on registration with status=active. Two independent tracks:
58
- dns_status → Resend EMAIL readiness (pending_verification | provisioned)
59
- app_connect_status → app HTTP attach (null | pending_dns | connected |
60
- agent_managed_pending | agent_managed)
61
- Do NOT treat dns_status=pending_verification as "app domain broken".
62
- App attach: naive apps domains connect / verify-dns (platform writes zone DNS).
63
- Email ready: naive domains verify <id> when dns_status is still pending_verification.
64
-
65
- DNS edit safety (server-enforced):
66
- - Allowed types only: A, AAAA, CNAME, MX, TXT, CAA
67
- - DMARC, DKIM, and inbound MX/TXT records are protected (returns 403 PROTECTED_RECORD)
68
- - System domains: zone-records list is allowed; set/delete return 403 SYSTEM_DOMAIN
69
- - Wildcards ('*' or '*.foo') and CNAME at apex are rejected
70
- - CAA values must use an allowed CA (ssl.com, letsencrypt.org, digicert.com,
71
- sectigo.com, globalsign.com, amazon.com, pki.goog, google.com)
72
- - Per-company rate limit: 5 mutations/min, 20/hr — honor the Retry-After header on 429
73
-
74
- Examples:
75
- $ naive domains
76
- $ naive domains connect --domain mycompany.com
77
- $ naive domains setup-records <domain-uuid>
78
- $ naive domains verify <domain-uuid>
79
- $ naive domains search coolstartup.ai
80
- $ naive domains purchase coolstartup.ai
81
- $ naive domains zone-records <domain-uuid>
82
- $ naive domains set-record <domain-uuid> --type A --name @ --value 76.76.21.21
83
- $ naive domains delete-record <domain-uuid> <record-id>
84
- `);
85
- domainsCmd
86
- .command("list", { isDefault: true })
87
- .description("List all domains for your company")
88
- .action(async () => {
89
- const resp = await apiRequest("GET", "/v1/domains");
90
- handleApiError("domains.list", resp);
91
- const data = resp.data;
92
- const count = data.domains?.length ?? 0;
93
- const active = data.domains?.filter((d) => d.status === "active").length ?? 0;
94
- const pendingByod = data.domains?.filter((d) => d.status === "pending_dns").length ?? 0;
95
- const emailPending = data.domains?.filter((d) => d.dns_status === "pending_verification" || d.dns_status === "provisioning").length ?? 0;
96
- const appPending = data.domains?.filter((d) => d.app_connect_status === "pending_dns").length ?? 0;
97
- const appConnected = data.domains?.filter((d) => d.app_connect_status === "connected").length ?? 0;
98
- agentOutput({
99
- action: "domains.list",
100
- result: resp.data,
101
- next_steps: [
102
- ...(emailPending > 0
103
- ? [{ command: "naive domains verify <domain_id>", description: "Re-check Resend EMAIL dns_status (not app HTTP)" }]
104
- : []),
105
- ...(pendingByod > 0
106
- ? [{ command: "naive domains setup-records <domain_id>", description: "View Resend setup records to add for BYOD pending domains" }]
107
- : []),
108
- ...(appPending > 0
109
- ? [{ command: "naive apps domains verify-dns <appId> <domainId>", description: "Finish app HTTP attach (app_connect_status=pending_dns)" }]
110
- : []),
111
- { command: "naive domains connect --domain <your-domain.com>", description: "Connect a custom domain" },
112
- ...(active > 0
113
- ? [
114
- { command: "naive email create --local-part <name>", description: "Create an inbox on an active domain" },
115
- { command: "naive domains zone-records <domain_id>", description: "Inspect every record on the live Vercel zone (for DNS edits)" },
116
- ]
117
- : []),
118
- ],
119
- hints: [
120
- `${count} domain${count !== 1 ? "s" : ""} total (${active} active, ${pendingByod} BYOD pending_dns)`,
121
- `Tracks: email dns_status pending=${emailPending}; app_connect pending_dns=${appPending}, connected=${appConnected}`,
122
- "System domains: status=active on register. dns_status=email (Resend); app_connect_status=app HTTP (Vercel). Do not conflate them.",
123
- "Custom domains require DNS record setup before they can be used for email",
124
- ],
125
- related_commands: [
126
- "naive domains connect",
127
- "naive domains verify",
128
- "naive domains zone-records",
129
- "naive apps domains connect",
130
- "naive apps domains verify-dns",
131
- "naive email inboxes",
132
- "naive email create",
133
- ],
134
- });
135
- });
136
- domainsCmd
137
- .command("connect")
138
- .description("Connect a custom domain (BYOD) to your company for email")
139
- .requiredOption("--domain <domain>", "Domain to connect (e.g., 'mycompany.com')")
140
- .addHelpText("after", `
141
- Examples:
142
- $ naive domains connect --domain mycompany.com
143
- $ naive domains connect --domain mail.mycompany.com
144
-
145
- What this does:
146
- 1. Registers the domain with the email provider
147
- 2. Returns DNS records (MX, TXT, CNAME) you must add at your registrar
148
- 3. Sets domain status to 'pending_dns' until verified
149
-
150
- After connecting:
151
- 1. Add the returned DNS records at your domain registrar
152
- 2. Wait for DNS propagation (usually 5-60 minutes)
153
- 3. Run 'naive domains verify <domain_id>' to check
154
- 4. Once verified, create inboxes with 'naive email create'
155
- `)
156
- .action(async (opts) => {
157
- const resp = await apiRequest("POST", "/v1/domains/connect", { domain: opts.domain });
158
- handleApiError("domains.connect", resp);
159
- const data = resp.data;
160
- agentOutput({
161
- action: "domains.connect",
162
- result: resp.data,
163
- next_steps: [
164
- { command: `naive domains setup-records ${data.id}`, description: "View setup records to add (in case you need them again)" },
165
- { command: `naive domains verify ${data.id}`, description: "Verify DNS after adding records", when: "After adding DNS records at your registrar" },
166
- ],
167
- hints: [
168
- `Domain '${data.domain}' registered — add the DNS records shown above at your registrar`,
169
- `${data.dns_records?.length ?? 0} DNS record(s) to add`,
170
- "DNS propagation typically takes 5-60 minutes",
171
- `Domain ID: ${data.id}`,
172
- ],
173
- related_commands: ["naive domains setup-records", "naive domains verify", "naive domains"],
174
- });
175
- });
176
- domainsCmd
177
- .command("setup-records <domain_id>")
178
- .alias("dns-records")
179
- .description("Show the Resend email-provider setup records the customer must add at their registrar to pass verification (read-only)")
180
- .addHelpText("after", `
181
- Examples:
182
- $ naive domains setup-records 550e8400-e29b-41d4-a716-446655440000
183
- $ naive domains dns-records 550e8400-e29b-41d4-a716-446655440000 # alias
184
-
185
- Returns the DNS records you need to add at your domain registrar to pass
186
- email-domain verification:
187
- - MX records for email receiving
188
- - TXT records for SPF verification
189
- - CNAME records for DKIM signing
190
-
191
- Each record includes its current verification status.
192
-
193
- This is read-only and informational. To inspect or edit the live Vercel zone
194
- (every record, not just the Resend setup records), use:
195
- - naive domains zone-records <id>
196
- - naive domains set-record <id> --type ... --name ... --value ...
197
- - naive domains delete-record <id> <record_id>
198
- `)
199
- .action(async (domainId) => {
200
- const resp = await apiRequest("GET", `/v1/domains/${domainId}/dns-records`);
201
- handleApiError("domains.dns-records", resp);
202
- const data = resp.data;
203
- const verified = data.records?.filter((r) => r.status === "verified").length ?? 0;
204
- const total = data.records?.length ?? 0;
205
- agentOutput({
206
- action: "domains.setup-records",
207
- result: resp.data,
208
- next_steps: [
209
- ...(verified < total
210
- ? [
211
- { command: `naive domains verify ${data.domain_id}`, description: "Trigger verification after adding records" },
212
- ]
213
- : [
214
- { command: `naive email create --local-part support --domain-id ${data.domain_id}`, description: "Create an inbox on this domain" },
215
- { command: `naive domains zone-records ${data.domain_id}`, description: "Inspect every record on the live Vercel zone (for DNS edits)" },
216
- ]),
217
- ],
218
- hints: [
219
- `${verified}/${total} records verified for ${data.domain}`,
220
- ...(verified < total ? ["Add the unverified records at your DNS registrar, then run verify"] : ["All records verified — domain is ready for email"]),
221
- "These are Resend's setup records (read-only). Use 'naive domains zone-records' to see/edit every record on the live Vercel zone.",
222
- ],
223
- related_commands: ["naive domains verify", "naive domains", "naive domains zone-records", "naive email create"],
224
- });
225
- });
226
- domainsCmd
227
- .command("verify <domain_id>")
228
- .description("Trigger DNS verification for a custom domain")
229
- .addHelpText("after", `
230
- Examples:
231
- $ naive domains verify 550e8400-e29b-41d4-a716-446655440000
232
-
233
- What this does:
234
- 1. Asks the email provider to re-check your DNS records
235
- 2. Returns current verification status for each record
236
- 3. If all records verify, the domain status changes to 'active'
237
- 4. Active domains can be used to create email inboxes
238
-
239
- Note: DNS propagation can take 5-60 minutes after adding records.
240
- If verification fails, wait and try again.
241
- `)
242
- .action(async (domainId) => {
243
- const resp = await apiRequest("POST", `/v1/domains/${domainId}/verify`);
244
- handleApiError("domains.verify", resp);
245
- const data = resp.data;
246
- agentOutput({
247
- action: "domains.verify",
248
- result: resp.data,
249
- next_steps: data.verified
250
- ? [
251
- { command: `naive email create --local-part support --domain-id ${data.domain_id}`, description: "Create an inbox on this domain" },
252
- { command: "naive email inboxes", description: "List all inboxes" },
253
- ]
254
- : [
255
- { command: `naive domains dns-records ${data.domain_id}`, description: "Check which records still need to be added" },
256
- { command: `naive domains verify ${data.domain_id}`, description: "Try again after DNS propagation", when: "Wait 5-10 minutes" },
257
- ],
258
- hints: data.verified
259
- ? [`Domain '${data.domain}' is now verified and active!`, "You can create email inboxes on this domain"]
260
- : [`Domain '${data.domain}' is not yet verified`, "Ensure all DNS records are added and allow time for propagation"],
261
- related_commands: ["naive domains dns-records", "naive domains", "naive email create"],
262
- });
263
- });
264
- domainsCmd
265
- .command("search <domain>")
266
- .description("Check if a domain is available for purchase and get its price")
267
- .addHelpText("after", `
268
- Examples:
269
- $ naive domains search coolstartup.ai
270
- $ naive domains search mybrand.com
271
-
272
- Returns availability status and price (if available).
273
- If available, use 'naive domains purchase <domain>' to buy.
274
- `)
275
- .action(async (domain) => {
276
- const resp = await apiRequest("GET", `/v1/domains/search?domain=${encodeURIComponent(domain)}`);
277
- handleApiError("domains.search", resp);
278
- const data = resp.data;
279
- agentOutput({
280
- action: "domains.search",
281
- result: resp.data,
282
- next_steps: data.available
283
- ? [{ command: `naive domains purchase ${data.domain}`, description: `Purchase for $${data.price}` }]
284
- : [{ command: `naive domains search <other-domain>`, description: "Try a different domain" }],
285
- hints: data.available
286
- ? [`${data.domain} is available for $${data.price}!`]
287
- : [`${data.domain} is not available for purchase`],
288
- related_commands: ["naive domains purchase", "naive domains"],
289
- });
290
- });
291
- domainsCmd
292
- .command("zone-records <domain_id>")
293
- .description("List every DNS record on a domain's live Vercel zone (with provider record IDs)")
294
- .addHelpText("after", `
295
- Examples:
296
- $ naive domains zone-records 550e8400-e29b-41d4-a716-446655440000
297
-
298
- Returns every DNS record in the zone (A, AAAA, CNAME, MX, TXT, NS, CAA),
299
- including the provider record ID needed for delete-record.
300
-
301
- Differs from 'dns-records' (which shows only the Resend setup records).
302
- `)
303
- .action(async (domainId) => {
304
- const resp = await apiRequest("GET", `/v1/domains/${domainId}/zone-records`);
305
- handleApiError("domains.zone-records", resp);
306
- const data = resp.data;
307
- // Authoritative — the server decides this, not the hostname shape.
308
- const isSystem = (data.registrar ?? "").trim().toLowerCase() === "system";
309
- agentOutput({
310
- action: "domains.zone-records",
311
- result: resp.data,
312
- next_steps: isSystem
313
- ? [
314
- {
315
- command: "naive apps domains connect <appId> <domainId>",
316
- description: "Attach this system domain to an app (the platform writes the HTTP DNS)",
317
- },
318
- {
319
- command: "naive apps domains verify-dns <appId> <domainId>",
320
- description: "Re-check the app HTTP attach after connect",
321
- },
322
- ]
323
- : [
324
- { command: `naive domains set-record ${data.domain_id} --type A --name www --value 76.76.21.21`, description: "Create or replace a DNS record" },
325
- ...(data.records.length > 0
326
- ? [{ command: `naive domains delete-record ${data.domain_id} ${data.records[0].id}`, description: "Delete a DNS record by its provider record ID" }]
327
- : []),
328
- ],
329
- hints: [
330
- `${data.records.length} record(s) on ${data.domain}`,
331
- ...(isSystem
332
- ? [
333
- "System domain: zone-records is inspect-only. set/delete → 403 SYSTEM_DOMAIN.",
334
- "App HTTP DNS is written by `naive apps domains connect` / `verify-dns`, not by you.",
335
- ]
336
- : []),
337
- ...(data.mock ? ["mock: true — no real Vercel writes occurred (DOMAIN_MOCK or no VERCEL_REGISTRAR_TOKEN)"] : []),
338
- ],
339
- related_commands: isSystem
340
- ? ["naive apps domains connect", "naive apps domains verify-dns", "naive domains"]
341
- : ["naive domains set-record", "naive domains delete-record", "naive domains"],
342
- });
343
- });
344
- domainsCmd
345
- .command("set-record <domain_id>")
346
- .description("Create or replace a DNS record on a domain's Vercel zone")
347
- .addOption(new Option("--type <type>", "Record type").choices(["A", "AAAA", "CNAME", "MX", "TXT", "CAA"]).makeOptionMandatory())
348
- .requiredOption("--value <value>", "Record value (e.g. an IPv4, hostname, TXT string, or '0 issue \"letsencrypt.org\"')")
349
- .option("--name <name>", "Record name; '@' or omit for apex, 'www' for www subdomain", "@")
350
- .option("--ttl <ttl>", "TTL in seconds (60-86400)", parsePositiveInt("--ttl", 60, 86400))
351
- .option("--priority <priority>", "MX priority (required for MX)", parsePositiveInt("--priority", 0, 65535))
352
- .addOption(new Option("--mode <mode>", "replace (default) updates the existing record at this name+type; append always creates a new row").choices(["replace", "append"]).default("replace"))
353
- .option("--acknowledge-unowned", "Overwrite a record that wasn't created by Naive")
354
- .addHelpText("after", `
355
- Examples:
356
- $ naive domains set-record <id> --type A --name @ --value 76.76.21.21
357
- $ naive domains set-record <id> --type CNAME --name www --value shops.myshopify.com
358
- $ naive domains set-record <id> --type MX --name @ --value mx1.example.com --priority 10
359
- $ naive domains set-record <id> --type CAA --name @ --value '0 issue "letsencrypt.org"'
360
-
361
- Safety rules:
362
- - System domains (registrar=system): zone-records list is allowed; set/delete are forbidden.
363
- - DMARC/DKIM/inbound MX & TXT records are protected.
364
- - Wildcard names ('*' or '*.foo') are rejected.
365
- - CAA values must use an allowed CA.
366
- - Per-company rate limit: 5/min, 20/hr.
367
- `)
368
- .action(async (domainId, opts) => {
369
- const body = {
370
- type: opts.type,
371
- name: opts.name,
372
- value: opts.value,
373
- mode: opts.mode,
374
- };
375
- if (opts.ttl !== undefined)
376
- body.ttl = opts.ttl;
377
- if (opts.priority !== undefined)
378
- body.priority = opts.priority;
379
- if (opts.acknowledgeUnowned)
380
- body.acknowledge_unowned = true;
381
- const resp = await apiRequest("POST", `/v1/domains/${domainId}/zone-records`, body);
382
- handleApiError("domains.set-record", resp);
383
- const data = resp.data;
384
- agentOutput({
385
- action: "domains.set-record",
386
- result: resp.data,
387
- next_steps: [
388
- { command: `naive domains zone-records ${domainId}`, description: "Confirm the record is present" },
389
- ],
390
- hints: [
391
- `Wrote ${data.record.type} record at '${data.record.name || "@"}' (id: ${data.record.id})`,
392
- ...(data.replaced_count > 0 ? [`Replaced ${data.replaced_count} existing record(s) via ${data.path}`] : []),
393
- ...(data.ownership === "unowned-acknowledged" ? ["Overwrote a record that was not created by Naive (acknowledge_unowned=true)"] : []),
394
- ...(data.mock ? ["mock: true — no real Vercel write occurred"] : []),
395
- ],
396
- related_commands: ["naive domains zone-records", "naive domains delete-record"],
397
- });
398
- });
399
- domainsCmd
400
- .command("delete-record <domain_id> <record_id>")
401
- .description("Delete a DNS record from a domain's Vercel zone (use zone-records to find the record_id)")
402
- .option("--acknowledge-unowned", "Delete a record that wasn't created by Naive")
403
- .addHelpText("after", `
404
- Examples:
405
- $ naive domains delete-record <domain-uuid> <record-id>
406
- $ naive domains delete-record <domain-uuid> <record-id> --acknowledge-unowned
407
-
408
- Run 'naive domains zone-records <domain_id>' first to discover record IDs.
409
-
410
- Protected records (DMARC, DKIM, inbound MX/TXT) and system domains cannot be deleted.
411
- `)
412
- .action(async (domainId, recordId, opts) => {
413
- const path = opts.acknowledgeUnowned
414
- ? `/v1/domains/${domainId}/zone-records/${recordId}?acknowledge_unowned=true`
415
- : `/v1/domains/${domainId}/zone-records/${recordId}`;
416
- const resp = await apiRequest("DELETE", path);
417
- handleApiError("domains.delete-record", resp);
418
- const data = resp.data;
419
- agentOutput({
420
- action: "domains.delete-record",
421
- result: resp.data,
422
- next_steps: [
423
- { command: `naive domains zone-records ${domainId}`, description: "Confirm the record is gone" },
424
- ],
425
- hints: [
426
- "DNS record deleted",
427
- ...(data.ownership === "unowned-acknowledged" ? ["Deleted a record that was not created by Naive (acknowledge_unowned=true)"] : []),
428
- ...(data.mock ? ["mock: true — no real Vercel delete occurred"] : []),
429
- ],
430
- related_commands: ["naive domains zone-records", "naive domains set-record"],
431
- });
432
- });
433
- domainsCmd
434
- .command("purchase <domain>")
435
- .description("Purchase a domain via checkout")
436
- .addHelpText("after", `
437
- Examples:
438
- $ naive domains purchase coolstartup.ai
439
-
440
- What this does:
441
- 1. Checks domain availability and price
442
- 2. Creates a checkout session
443
- 3. Returns a URL to complete payment
444
- 4. After payment, the domain is registered automatically
445
-
446
- Limits:
447
- Maximum 3 purchased domains per company.
448
-
449
- Governance:
450
- Purchasing a domain is SENSITIVE (spends money) and may require human
451
- approval. If so the response has status "pending_approval" and the purchase
452
- runs only after 'naive approvals approve <id>'.
453
- `)
454
- .action(async (domain) => {
455
- const resp = await apiRequest("POST", "/v1/domains/purchase", { domain });
456
- handleApiError("domains.purchase", resp);
457
- if (handlePendingApproval("domains.purchase", resp))
458
- return;
459
- const data = resp.data;
460
- agentOutput({
461
- action: "domains.purchase",
462
- result: resp.data,
463
- next_steps: [
464
- { command: "naive domains", description: "Check domain status after payment" },
465
- ],
466
- hints: [
467
- `Open this URL to complete payment: ${data.checkout_url}`,
468
- `Domain: ${data.domain} — Price: ${data.price}`,
469
- "After payment, the domain will be registered and DNS provisioned automatically",
470
- ],
471
- related_commands: ["naive domains", "naive domains search"],
472
- });
473
- });
474
- //# sourceMappingURL=domains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/commands/domains.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const ecommerceCmd: Command;