@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,152 +0,0 @@
1
- import { Command } from "commander";
2
- import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
3
- import { agentOutput } from "../output.js";
4
- export const verificationCmd = new Command("verification")
5
- .description("Identity verification (KYC) for company founders/members via Footprint")
6
- .addHelpText("after", `
7
- Subcommands:
8
- naive verification start --members <json> Start KYC for a set of members
9
- naive verification list List all verification requests
10
- naive verification status <id> Get verification + member statuses
11
- naive verification complete <memberId> --token <token> Submit validation token
12
- naive verification resend <memberId> Resend a member's KYC link
13
-
14
- Members JSON format:
15
- [{"first_name":"Alice","last_name":"Smith","email":"alice@example.com",
16
- "ownership_percentage":60,"role":"primary","is_responsible_party":true},
17
- {"first_name":"Bob","last_name":"Jones","email":"bob@example.com",
18
- "ownership_percentage":40,"role":"secondary","is_responsible_party":false}]
19
-
20
- Rules:
21
- - Exactly one member must have role "primary"
22
- - Exactly one member must have is_responsible_party = true
23
- - Ownership percentages must sum to 100
24
- - Primary member receives their KYC link immediately
25
- - Secondary members are emailed their KYC links
26
-
27
- Governance:
28
- Starting KYC is SENSITIVE (handles PII) and may require human approval. If so,
29
- 'verification start' returns status "pending_approval" and KYC begins only
30
- after 'naive approvals approve <id>'.
31
- `);
32
- verificationCmd
33
- .command("start")
34
- .description("Start identity verification for a set of members")
35
- .requiredOption("--members <json>", "JSON array of members")
36
- .action(async (opts) => {
37
- let members;
38
- try {
39
- members = JSON.parse(opts.members);
40
- }
41
- catch {
42
- console.log(JSON.stringify({ success: false, error: "Invalid JSON for --members" }));
43
- process.exit(1);
44
- }
45
- const resp = await apiRequest("POST", "/v1/verification", { members });
46
- handleApiError("verification.start", resp);
47
- if (handlePendingApproval("verification.start", resp))
48
- return;
49
- const data = resp.data;
50
- agentOutput({
51
- action: "verification.start",
52
- result: resp.data,
53
- next_steps: [
54
- ...(data.primary_link
55
- ? [{ command: `Open ${data.primary_link}`, description: "Primary member: complete KYC in browser" }]
56
- : []),
57
- { command: `naive verification status ${data.id}`, description: "Check verification progress" },
58
- ],
59
- hints: [
60
- `Verification ${data.id} created with ${data.members.length} member(s)`,
61
- "Secondary members have been emailed their verification links",
62
- "Use 'naive verification status' to monitor progress",
63
- ],
64
- related_commands: ["naive verification list", "naive verification status", "naive verification resend"],
65
- });
66
- });
67
- verificationCmd
68
- .command("list")
69
- .description("List all identity verification requests")
70
- .action(async () => {
71
- const resp = await apiRequest("GET", "/v1/verification");
72
- handleApiError("verification.list", resp);
73
- const data = resp.data;
74
- agentOutput({
75
- action: "verification.list",
76
- result: resp.data,
77
- next_steps: data.verifications.length > 0
78
- ? [{ command: `naive verification status ${data.verifications[0].id}`, description: "View details of the latest verification" }]
79
- : [{ command: "naive verification start --members '<json>'", description: "Start a new verification" }],
80
- hints: [`Found ${data.verifications.length} verification(s)`],
81
- related_commands: ["naive verification start", "naive verification status"],
82
- });
83
- });
84
- verificationCmd
85
- .command("status <id>")
86
- .description("Get verification status with all member details")
87
- .action(async (id) => {
88
- const resp = await apiRequest("GET", `/v1/verification/${id}`);
89
- handleApiError("verification.status", resp);
90
- const data = resp.data;
91
- const pending = data.members.filter((m) => m.status !== "pass");
92
- agentOutput({
93
- action: "verification.status",
94
- result: resp.data,
95
- next_steps: [
96
- ...pending.map((m) => ({
97
- command: `naive verification resend ${m.id}`,
98
- description: `Resend link to ${m.email} (status: ${m.status})`,
99
- when: "member hasn't completed verification",
100
- })),
101
- ],
102
- hints: [
103
- `Status: ${data.status}`,
104
- `Ready for formation: ${data.ready_for_formation}`,
105
- `${data.members.filter((m) => m.status === "pass").length}/${data.members.length} members verified`,
106
- ],
107
- related_commands: ["naive verification list", "naive verification resend"],
108
- });
109
- });
110
- verificationCmd
111
- .command("complete <memberId>")
112
- .description("Submit a Footprint validation token for a member")
113
- .requiredOption("--token <token>", "Footprint validation token from onComplete callback")
114
- .action(async (memberId, opts) => {
115
- const resp = await apiRequest("POST", `/v1/verification/members/${memberId}/complete`, {
116
- validation_token: opts.token,
117
- });
118
- handleApiError("verification.complete", resp);
119
- const data = resp.data;
120
- agentOutput({
121
- action: "verification.complete",
122
- result: resp.data,
123
- next_steps: [
124
- { command: "naive verification list", description: "Check overall verification progress" },
125
- ],
126
- hints: [`Member ${data.email ?? memberId} status: ${data.status}`],
127
- related_commands: ["naive verification status", "naive verification list"],
128
- });
129
- });
130
- verificationCmd
131
- .command("resend <memberId>")
132
- .description("Resend/regenerate a KYC link for a member")
133
- .action(async (memberId) => {
134
- const resp = await apiRequest("POST", `/v1/verification/members/${memberId}/resend`);
135
- handleApiError("verification.resend", resp);
136
- const data = resp.data;
137
- agentOutput({
138
- action: "verification.resend",
139
- result: resp.data,
140
- next_steps: [
141
- ...(data.link
142
- ? [{ command: `Open ${data.link}`, description: "Member can complete KYC at this link" }]
143
- : []),
144
- { command: "naive verification list", description: "Check verification progress" },
145
- ],
146
- hints: [
147
- "New verification link generated and emailed to the member",
148
- ],
149
- related_commands: ["naive verification status", "naive verification list"],
150
- });
151
- });
152
- //# sourceMappingURL=verification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/commands/verification.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Command } from "commander";
2
- /**
3
- * EMAIL VERIFICATION, FROM THE SURFACE THE ACCOUNT WAS CREATED ON.
4
- *
5
- * `naive register` creates an account with a ZERO balance; the 20 free credits
6
- * are released when the email is verified. Until this command existed the only
7
- * way to finish that was to leave the terminal, open a mail client, and click a
8
- * link into the web app — from a tool whose whole premise is that an agent can
9
- * run it unattended. An agent could create an account it could never fund.
10
- *
11
- * `naive verification` is a different thing entirely (Footprint KYC for company
12
- * founders) and the collision is why this is `verify`, not a subcommand there.
13
- *
14
- * The token is the one in the emailed link. `POST /v1/auth/session/verify` takes
15
- * it unauthenticated and by design — possession of a 32-byte token mailed to the
16
- * address IS the proof, and requiring a session on top would put the browser
17
- * back in the loop this command exists to remove.
18
- */
19
- export declare const verifyEmailCmd: Command;
@@ -1,130 +0,0 @@
1
- import { Command } from "commander";
2
- import { apiRequest, handleApiError } from "../client.js";
3
- import { agentOutput } from "../output.js";
4
- /**
5
- * EMAIL VERIFICATION, FROM THE SURFACE THE ACCOUNT WAS CREATED ON.
6
- *
7
- * `naive register` creates an account with a ZERO balance; the 20 free credits
8
- * are released when the email is verified. Until this command existed the only
9
- * way to finish that was to leave the terminal, open a mail client, and click a
10
- * link into the web app — from a tool whose whole premise is that an agent can
11
- * run it unattended. An agent could create an account it could never fund.
12
- *
13
- * `naive verification` is a different thing entirely (Footprint KYC for company
14
- * founders) and the collision is why this is `verify`, not a subcommand there.
15
- *
16
- * The token is the one in the emailed link. `POST /v1/auth/session/verify` takes
17
- * it unauthenticated and by design — possession of a 32-byte token mailed to the
18
- * address IS the proof, and requiring a session on top would put the browser
19
- * back in the loop this command exists to remove.
20
- */
21
- export const verifyEmailCmd = new Command("verify-email")
22
- .description("Verify the account's email and release the 20 free signup credits")
23
- .argument("[token]", "The token from the verification email (the ?token=... in the link)")
24
- .option("--resend", "Send the verification email again to the account's own address")
25
- .addHelpText("after", `
26
- Examples:
27
- $ naive verify-email --resend Re-send the email, then read the token out of it
28
- $ naive verify-email uZMX0So46cVO... Verify and receive the 20 free credits
29
-
30
- Where the token comes from:
31
- The verification email contains a link ending in ?token=<token>. Pass that
32
- value. The whole link also works — the token is extracted from it.
33
-
34
- Why this matters:
35
- A new account starts at 0 credits and every billable call is refused with
36
- insufficient_credits until the email is verified. This is the step that
37
- turns a registered account into a usable one.
38
-
39
- One exception, and it does not go away on verification: the LLM router
40
- ('naive llm chat', /v1/llm and the provider proxies) does not accept free
41
- credit at all. It needs a paid account — a credit pack or a subscription.
42
- Verifying releases the 20 credits for every OTHER primitive.
43
-
44
- Notes:
45
- - The token is single-use and expires 24 hours after it is sent.
46
- - --resend replaces any previous token, so use the newest email.
47
- - --resend always goes to the account owner's own address; it cannot be
48
- pointed at a different inbox.
49
- `)
50
- .action(async (token, opts) => {
51
- if (opts.resend) {
52
- const resp = await apiRequest("POST", "/v1/auth/resend-verification", {});
53
- handleApiError("verify-email --resend", resp);
54
- const data = resp.data;
55
- agentOutput({
56
- action: "verify-email --resend",
57
- result: data,
58
- next_steps: data.already_verified
59
- ? [{ command: "naive status", description: "Confirm the credit balance" }]
60
- : [
61
- {
62
- command: "naive verify-email <token>",
63
- description: `Open the email at ${data.email ?? "the account address"} and pass the token from the link`,
64
- },
65
- ],
66
- hints: [
67
- data.already_verified
68
- ? "This account is already verified; the signup credits have been granted."
69
- : "Check the inbox for a link ending in ?token=<token> and pass that token to 'naive verify-email'.",
70
- ],
71
- });
72
- return;
73
- }
74
- if (!token) {
75
- // A bare `naive verify` is the most likely way someone arrives here, so it
76
- // answers with the route forward rather than a usage error.
77
- agentOutput({
78
- action: "verify-email",
79
- result: { error: "missing_token", detail: "A verification token is required." },
80
- next_steps: [
81
- { command: "naive verify-email --resend", description: "Send the verification email again" },
82
- { command: "naive verify-email <token>", description: "Verify with the token from the email link" },
83
- ],
84
- hints: [
85
- "The token is the ?token=... value in the verification email. If the email never arrived, run 'naive verify-email --resend' first.",
86
- ],
87
- });
88
- process.exitCode = 1;
89
- return;
90
- }
91
- // Accept a pasted URL as well as a bare token. People copy the link, not the
92
- // query parameter, and failing them for it would be a refusal over
93
- // formatting.
94
- const extracted = token.includes("token=")
95
- ? (token.split("token=")[1] ?? "").split("&")[0] ?? token
96
- : token;
97
- const resp = await apiRequest("POST", "/v1/auth/session/verify", { token: extracted.trim() });
98
- handleApiError("verify-email", resp);
99
- const data = resp.data;
100
- agentOutput({
101
- action: "verify-email",
102
- result: {
103
- verified: data.ok === true,
104
- credits_granted: data.credits_granted ?? 0,
105
- message: data.message,
106
- },
107
- next_steps: [
108
- { command: "naive status", description: "Confirm the balance and account state" },
109
- { command: "naive billing topup", description: "Buy more credits once the free ones are spent" },
110
- {
111
- command: "naive billing packs",
112
- description: "Needed BEFORE the LLM router will run — free credit does not buy model routing",
113
- when: "You intend to use 'naive llm chat' or the provider proxies",
114
- },
115
- ],
116
- hints: [
117
- // 🔴 This line used to end "…and billable calls will succeed." It is the
118
- // sentence an agent reads immediately before it calls the router, and
119
- // after the router stopped taking free credit it was a promise the next
120
- // command breaks. An agent that believes it loops verify → chat → 402 →
121
- // verify, because the only remedy it was ever told about is the one it
122
- // has already done.
123
- `Email verified. ${data.credits_granted ?? 20} free credits are on the account and billable calls will succeed — ` +
124
- `with ONE exception: the LLM router ('naive llm chat') does not accept free credit and refuses with ` +
125
- `llm_routing_requires_payment (402) until the account has paid for something. Every other primitive spends these credits normally.`,
126
- ],
127
- help_markdown: `### Email Verified\n\n**${data.credits_granted ?? 20} free credits** have been granted.\n\nBefore this, every billable call was refused with \`insufficient_credits\` — a new account starts at 0 on purpose. Run \`naive status\` to see the balance.\n\n**The LLM router is the exception.** \`naive llm chat\`, \`/v1/llm/*\` and the provider proxies require a **paid** account: a credit pack (\`naive billing topup\`) or a subscription (\`naive billing subscribe --plan pro\`). Free and comped credit will not buy model routing, however much of it is on the balance. Everything else — email, search, images, brain, runtime — spends these 20 credits.`,
128
- });
129
- });
130
- //# sourceMappingURL=verify-email.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify-email.js","sourceRoot":"","sources":["../../src/commands/verify-email.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const videoCmd: Command;