@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,277 +0,0 @@
1
- import { Command } from "commander";
2
- import { apiRequest, handleApiError } from "../client.js";
3
- import { agentOutput, creditCostHint } from "../output.js";
4
- import { DATA_API_CREDIT_COSTS as P } from "../lib/pricing.js";
5
- export const ecommerceCmd = new Command("ecommerce")
6
- .description("E-commerce data — Google Shopping and Amazon product/seller/review data")
7
- .addHelpText("after", `
8
- Subcommands:
9
- naive ecommerce google <endpoint> Google Shopping data (products, product-info, sellers, reviews)
10
- naive ecommerce google sellers-ad-url Resolve a Google Sellers ad click URL
11
- naive ecommerce amazon <endpoint> Amazon data (products, asin, sellers)
12
- naive ecommerce task-get <id> Retrieve results for a completed task
13
- naive ecommerce tasks-ready List tasks that are ready to retrieve
14
-
15
- Google Shopping endpoints:
16
- products Search Google Shopping products by keyword
17
- product-info Get detailed info for a specific product
18
- sellers Get sellers for a specific product
19
- reviews Get reviews for a specific product
20
-
21
- Amazon endpoints:
22
- products Search Amazon products by keyword
23
- asin Get product details by ASIN
24
- sellers Get sellers for a product by ASIN
25
-
26
- All endpoints use the Standard (async) method:
27
- 1. Submit a task with the initial command (task_post)
28
- 2. Check if task is ready with 'naive ecommerce tasks-ready'
29
- 3. Retrieve results with 'naive ecommerce task-get <id>'
30
-
31
- Examples:
32
- $ naive ecommerce google products --keyword "laptop"
33
- $ naive ecommerce google product-info --product-id "123456"
34
- $ naive ecommerce google sellers --product-id "123456"
35
- $ naive ecommerce google reviews --product-id "123456"
36
- $ naive ecommerce google sellers-ad-url --aclk "DChcSEwi..."
37
- $ naive ecommerce amazon products --keyword "headphones"
38
- $ naive ecommerce amazon asin --asin "B08N5WRWNW"
39
- $ naive ecommerce amazon sellers --asin "B08N5WRWNW"
40
- $ naive ecommerce task-get abc123 --platform google --endpoint products
41
- $ naive ecommerce tasks-ready --platform google --endpoint products
42
-
43
- Costs (charged on task SUBMISSION; retrieval and tasks-ready are free):
44
- google products ${P.ecommerceGoogleProducts} google product-info ${P.ecommerceGoogleProductInfo}
45
- google sellers ${P.ecommerceGoogleSellers} google reviews ${P.ecommerceGoogleReviews}
46
- amazon products ${P.ecommerceAmazonProducts} amazon asin ${P.ecommerceAmazonAsin}
47
- amazon sellers ${P.ecommerceAmazonSellers} google sellers-ad-url free
48
-
49
- The provider bills only for setting a task, so nothing is charged when you
50
- collect the results. A review- or row-heavy task settles above the list price
51
- when it costs us more; the charge is the response's own credits_used.
52
- `);
53
- // ---------------------------------------------------------------------------
54
- // google <endpoint>
55
- // ---------------------------------------------------------------------------
56
- const googleCmd = ecommerceCmd
57
- .command("google <endpoint>")
58
- .description("Google Shopping — products, product-info, sellers, reviews (task_post)")
59
- .option("--keyword <keyword>", "Search keyword (for products)")
60
- .option("--product-id <id>", "Product ID (for product-info, sellers, reviews)")
61
- .option("--language-code <code>", "Language code (e.g., en)")
62
- .option("--location-code <code>", "Location code (e.g., 2840 for US)")
63
- .option("--tag <tag>", "Tag for the task")
64
- .addHelpText("after", `
65
- Endpoints:
66
- products Requires --keyword
67
- product-info Requires --product-id
68
- sellers Requires --product-id
69
- reviews Requires --product-id
70
-
71
- Examples:
72
- $ naive ecommerce google products --keyword "laptop" --location-code 2840
73
- $ naive ecommerce google product-info --product-id "123456"
74
- $ naive ecommerce google sellers --product-id "123456"
75
- $ naive ecommerce google reviews --product-id "123456"
76
-
77
- Submits a task_post. Use 'naive ecommerce task-get <id>' to retrieve results.
78
- `)
79
- .action(async (endpoint, opts) => {
80
- const body = {};
81
- if (opts.keyword)
82
- body.keyword = opts.keyword;
83
- if (opts.productId)
84
- body.product_id = opts.productId;
85
- if (opts.languageCode)
86
- body.language_code = opts.languageCode;
87
- if (opts.locationCode)
88
- body.location_code = parseInt(opts.locationCode);
89
- if (opts.tag)
90
- body.tag = opts.tag;
91
- const slug = endpoint.replace(/_/g, "-");
92
- const resp = await apiRequest("POST", `/v1/ecommerce/google/${slug}/task`, body);
93
- handleApiError("ecommerce.google", resp);
94
- const data = resp.data;
95
- const taskId = data.tasks?.[0]?.id;
96
- agentOutput({
97
- action: `ecommerce.google.${endpoint}`,
98
- result: resp.data,
99
- next_steps: [
100
- ...(taskId
101
- ? [
102
- { command: `naive ecommerce tasks-ready --platform google --endpoint ${slug}`, description: "Check if the task is ready" },
103
- { command: `naive ecommerce task-get ${taskId} --platform google --endpoint ${slug}`, description: "Retrieve results when ready" },
104
- ]
105
- : []),
106
- { command: `naive ecommerce google ${slug} --help`, description: "See all options" },
107
- ],
108
- hints: [
109
- `Google Shopping ${endpoint} task submitted`,
110
- ...(taskId ? [`Task ID: ${taskId}`] : []),
111
- "Credits are charged on submission; retrieving the results is free.",
112
- ...(creditCostHint(resp.data) ? [creditCostHint(resp.data)] : []),
113
- ],
114
- related_commands: ["naive ecommerce amazon", "naive ecommerce task-get"],
115
- });
116
- });
117
- // google sellers-ad-url
118
- ecommerceCmd
119
- .command("google-sellers-ad-url")
120
- .description("Resolve a Google Sellers ad click URL")
121
- .requiredOption("--aclk <aclk>", "Ad click URL identifier")
122
- .addHelpText("after", `
123
- Examples:
124
- $ naive ecommerce google-sellers-ad-url --aclk "DChcSEwi..."
125
-
126
- Returns the resolved seller URL from a Google Shopping ad click.
127
- `)
128
- .action(async (opts) => {
129
- const resp = await apiRequest("GET", `/v1/ecommerce/google/sellers/ad-url/${encodeURIComponent(opts.aclk)}`);
130
- handleApiError("ecommerce.google.sellers-ad-url", resp);
131
- agentOutput({
132
- action: "ecommerce.google.sellers-ad-url",
133
- result: resp.data,
134
- next_steps: [
135
- { command: 'naive ecommerce google sellers --product-id "<id>"', description: "Get sellers for a product" },
136
- ],
137
- hints: [
138
- "Resolved Google Sellers ad URL",
139
- ],
140
- related_commands: ["naive ecommerce google products", "naive ecommerce google sellers"],
141
- });
142
- });
143
- // ---------------------------------------------------------------------------
144
- // amazon <endpoint>
145
- // ---------------------------------------------------------------------------
146
- ecommerceCmd
147
- .command("amazon <endpoint>")
148
- .description("Amazon — products, asin, sellers (task_post)")
149
- .option("--keyword <keyword>", "Search keyword (for products)")
150
- .option("--asin <asin>", "Amazon ASIN (for asin, sellers)")
151
- .option("--language-code <code>", "Language code")
152
- .option("--location-code <code>", "Location code")
153
- .option("--tag <tag>", "Tag for the task")
154
- .addHelpText("after", `
155
- Endpoints:
156
- products Requires --keyword
157
- asin Requires --asin
158
- sellers Requires --asin
159
-
160
- Examples:
161
- $ naive ecommerce amazon products --keyword "headphones"
162
- $ naive ecommerce amazon asin --asin "B08N5WRWNW"
163
- $ naive ecommerce amazon sellers --asin "B08N5WRWNW"
164
-
165
- Submits a task_post. Use 'naive ecommerce task-get <id>' to retrieve results.
166
- `)
167
- .action(async (endpoint, opts) => {
168
- const body = {};
169
- if (opts.keyword)
170
- body.keyword = opts.keyword;
171
- if (opts.asin)
172
- body.asin = opts.asin;
173
- if (opts.languageCode)
174
- body.language_code = opts.languageCode;
175
- if (opts.locationCode)
176
- body.location_code = parseInt(opts.locationCode);
177
- if (opts.tag)
178
- body.tag = opts.tag;
179
- const slug = endpoint.replace(/_/g, "-");
180
- const resp = await apiRequest("POST", `/v1/ecommerce/amazon/${slug}/task`, body);
181
- handleApiError("ecommerce.amazon", resp);
182
- const data = resp.data;
183
- const taskId = data.tasks?.[0]?.id;
184
- agentOutput({
185
- action: `ecommerce.amazon.${endpoint}`,
186
- result: resp.data,
187
- next_steps: [
188
- ...(taskId
189
- ? [
190
- { command: `naive ecommerce tasks-ready --platform amazon --endpoint ${slug}`, description: "Check if the task is ready" },
191
- { command: `naive ecommerce task-get ${taskId} --platform amazon --endpoint ${slug}`, description: "Retrieve results when ready" },
192
- ]
193
- : []),
194
- { command: `naive ecommerce amazon ${slug} --help`, description: "See all options" },
195
- ],
196
- hints: [
197
- `Amazon ${endpoint} task submitted`,
198
- ...(taskId ? [`Task ID: ${taskId}`] : []),
199
- "Credits are charged on submission; retrieving the results is free.",
200
- ...(creditCostHint(resp.data) ? [creditCostHint(resp.data)] : []),
201
- ],
202
- related_commands: ["naive ecommerce google", "naive ecommerce task-get"],
203
- });
204
- });
205
- // ---------------------------------------------------------------------------
206
- // task-get <id>
207
- // ---------------------------------------------------------------------------
208
- ecommerceCmd
209
- .command("task-get <id>")
210
- .description("Retrieve results for a completed e-commerce task")
211
- .requiredOption("--platform <platform>", "Platform: google | amazon")
212
- .requiredOption("--endpoint <endpoint>", "Endpoint: products, product-info, sellers, reviews, asin")
213
- .option("--format <format>", "Response format: advanced | html (default: advanced)", "advanced")
214
- .addHelpText("after", `
215
- Examples:
216
- $ naive ecommerce task-get abc123 --platform google --endpoint products
217
- $ naive ecommerce task-get abc123 --platform amazon --endpoint asin --format html
218
-
219
- Cost: free — the task was charged when you submitted it.
220
- `)
221
- .action(async (id, opts) => {
222
- const slug = opts.endpoint.replace(/_/g, "-");
223
- let path = `/v1/ecommerce/${opts.platform}/${slug}/task/${id}`;
224
- if (opts.format === "html")
225
- path += "/html";
226
- const resp = await apiRequest("GET", path);
227
- handleApiError("ecommerce.task-get", resp);
228
- agentOutput({
229
- action: "ecommerce.task-get",
230
- result: resp.data,
231
- next_steps: [
232
- ...(opts.format !== "html"
233
- ? [{ command: `naive ecommerce task-get ${id} --platform ${opts.platform} --endpoint ${opts.endpoint} --format html`, description: "Get HTML format" }]
234
- : []),
235
- { command: `naive ecommerce ${opts.platform} ${slug} --help`, description: "Submit another task" },
236
- ],
237
- hints: [
238
- `Retrieved ${opts.platform} ${opts.endpoint} task ${id} (${opts.format} format)`,
239
- // Derived from the response's authoritative credits_used, not a constant (N7).
240
- ...(creditCostHint(resp.data) ? [creditCostHint(resp.data)] : []),
241
- ],
242
- related_commands: ["naive ecommerce tasks-ready"],
243
- });
244
- });
245
- // ---------------------------------------------------------------------------
246
- // tasks-ready
247
- // ---------------------------------------------------------------------------
248
- ecommerceCmd
249
- .command("tasks-ready")
250
- .description("List e-commerce tasks that are ready to retrieve")
251
- .requiredOption("--platform <platform>", "Platform: google | amazon")
252
- .requiredOption("--endpoint <endpoint>", "Endpoint: products, product-info, sellers, reviews, asin")
253
- .addHelpText("after", `
254
- Examples:
255
- $ naive ecommerce tasks-ready --platform google --endpoint products
256
- $ naive ecommerce tasks-ready --platform amazon --endpoint asin
257
- `)
258
- .action(async (opts) => {
259
- const slug = opts.endpoint.replace(/_/g, "-");
260
- const resp = await apiRequest("GET", `/v1/ecommerce/${opts.platform}/${slug}/tasks-ready`);
261
- handleApiError("ecommerce.tasks-ready", resp);
262
- const data = resp.data;
263
- const count = data.tasks?.length ?? 0;
264
- agentOutput({
265
- action: "ecommerce.tasks-ready",
266
- result: resp.data,
267
- next_steps: count > 0
268
- ? [{ command: `naive ecommerce task-get ${data.tasks[0].id} --platform ${opts.platform} --endpoint ${opts.endpoint}`, description: "Retrieve the first ready task" }]
269
- : [{ command: `naive ecommerce ${opts.platform} ${slug} --help`, description: "Submit a new task" }],
270
- hints: [
271
- `${count} task(s) ready for ${opts.platform} ${opts.endpoint}`,
272
- ...(count > 0 ? ["Use 'naive ecommerce task-get <id>' to retrieve results (free — charged at submission)"] : ["No tasks ready yet — check back later"]),
273
- ],
274
- related_commands: ["naive ecommerce task-get"],
275
- });
276
- });
277
- //# sourceMappingURL=ecommerce.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecommerce.js","sourceRoot":"","sources":["../../src/commands/ecommerce.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const emailCmd: Command;
@@ -1,336 +0,0 @@
1
- import { Command } from "commander";
2
- import { apiRequest, handleApiError } from "../client.js";
3
- import { agentOutput, creditCostHint } from "../output.js";
4
- import { FIXED_CREDIT_COSTS, reportedCreditsUsed } from "../lib/pricing.js";
5
- import { parseIntegerOption } from "../lib/cli-validation.js";
6
- export const emailCmd = new Command("email")
7
- .description("Send and manage emails using provisioned inboxes")
8
- .addHelpText("after", `
9
- Subcommands:
10
- naive email inboxes List available email inboxes (get UUIDs for sending)
11
- naive email create Create a new email inbox
12
- naive email delete Delete (deactivate) an email inbox
13
- naive email send Send an email from a specific inbox
14
- naive email inbox List received emails
15
- naive email sent List sent emails
16
- naive email read Read full email content by ID
17
-
18
- Workflow:
19
- 1. naive email create --local-part support → create a new inbox
20
- 2. naive email inboxes → discover available from addresses
21
- 3. naive email send --from-inbox <uuid> --to ... → send an email
22
- 4. naive email inbox → check for replies
23
- 5. naive email read <id> → read full email content
24
-
25
- Identity-aware: All operations are scoped to inboxes provisioned
26
- for your company. Use 'naive identity emails' to see all inboxes.
27
-
28
- Examples:
29
- $ naive email create --local-part support
30
- $ naive email inboxes
31
- $ naive email send --from-inbox abc-123 --to client@example.com --subject "Hello" --body "Hi there"
32
- $ naive email inbox --limit 10
33
- $ naive email read msg-uuid-456
34
- $ naive email delete <inbox-uuid>
35
- `);
36
- emailCmd
37
- .command("inboxes")
38
- .description("List all email inboxes available for sending (returns inbox UUIDs)")
39
- .addHelpText("after", `
40
- Examples:
41
- $ naive email inboxes
42
-
43
- Output includes:
44
- - id: inbox UUID (use as --from-inbox when sending)
45
- - address: the email address (e.g., support@yourcompany.com)
46
- - name: display name
47
- - status: active or disabled
48
-
49
- Note: This is equivalent to 'naive identity emails'. Use either command.
50
- `)
51
- .action(async () => {
52
- const resp = await apiRequest("GET", "/v1/email/inboxes");
53
- handleApiError("email.inboxes", resp);
54
- const data = resp.data;
55
- const count = data.inboxes?.length ?? 0;
56
- agentOutput({
57
- action: "email.inboxes",
58
- result: resp.data,
59
- next_steps: [
60
- ...(count > 0
61
- ? [{ command: `naive email send --from-inbox ${data.inboxes[0].id} --to <recipient> --subject <subject> --body <body>`, description: "Send an email using the first inbox" }]
62
- : []),
63
- { command: "naive email inbox", description: "Check received emails" },
64
- ],
65
- hints: [
66
- `${count} inbox${count !== 1 ? "es" : ""} available for sending`,
67
- "Use the inbox 'id' field as the --from-inbox parameter when sending",
68
- "Create new inboxes with 'naive email create --local-part <name>'",
69
- ],
70
- related_commands: ["naive email create", "naive email send", "naive email inbox", "naive identity emails"],
71
- });
72
- });
73
- emailCmd
74
- .command("create")
75
- .description("Create a new email inbox on your company's domain")
76
- .requiredOption("--local-part <name>", "The part before the @ sign (e.g., 'support', 'hello', 'sales-team')")
77
- .option("--domain-id <uuid>", "Specific domain UUID (uses company's default domain if not set)")
78
- .addHelpText("after", `
79
- Examples:
80
- $ naive email create --local-part support
81
- $ naive email create --local-part sales-team
82
- $ naive email create --local-part hello --domain-id <domain-uuid>
83
-
84
- What this does:
85
- 1. Validates the local_part (letters, numbers, dots, hyphens, min 2 chars)
86
- 2. Finds your company's active domain (or uses --domain-id)
87
- 3. Creates the inbox as local_part@yourdomain.com
88
- 4. Returns the inbox UUID for use in 'naive email send'
89
-
90
- Requirements:
91
- - Your company must have at least one active domain
92
- - The email address must not already exist
93
-
94
- The resulting address will be: <local_part>@<your-company-domain>
95
- `)
96
- .action(async (opts) => {
97
- const resp = await apiRequest("POST", "/v1/email/inboxes", {
98
- local_part: opts.localPart,
99
- ...(opts.domainId && { domain_id: opts.domainId }),
100
- });
101
- handleApiError("email.create", resp);
102
- const data = resp.data;
103
- agentOutput({
104
- action: "email.create",
105
- result: resp.data,
106
- next_steps: [
107
- { command: `naive email send --from-inbox ${data.id} --to <recipient> --subject <subject> --body <body>`, description: "Send an email from this new inbox" },
108
- { command: "naive email inboxes", description: "List all inboxes including the new one" },
109
- { command: "naive email inbox", description: "Monitor this inbox for incoming emails" },
110
- ],
111
- hints: [
112
- `Inbox created: ${data.address}`,
113
- `Inbox UUID: ${data.id}`,
114
- "Use this UUID as --from-inbox when sending emails",
115
- ],
116
- related_commands: ["naive email send", "naive email inboxes", "naive email delete"],
117
- });
118
- });
119
- emailCmd
120
- .command("delete <inbox_id>")
121
- .description("Delete (deactivate) an email inbox — emails to this address will no longer be received")
122
- .addHelpText("after", `
123
- Examples:
124
- $ naive email delete 550e8400-e29b-41d4-a716-446655440000
125
-
126
- What this does:
127
- Soft-deletes the inbox (marks as inactive). Emails sent to this
128
- address will no longer be routed to your company.
129
-
130
- Notes:
131
- - This is a soft delete — the address can be reclaimed later
132
- - Any emails already received remain accessible via 'naive email inbox'
133
- - Use 'naive email inboxes' to find the inbox UUID
134
- `)
135
- .action(async (inboxId) => {
136
- const resp = await apiRequest("DELETE", `/v1/email/inboxes/${inboxId}`);
137
- handleApiError("email.delete", resp);
138
- const data = resp.data;
139
- agentOutput({
140
- action: "email.delete",
141
- result: resp.data,
142
- next_steps: [
143
- { command: "naive email inboxes", description: "Verify inbox is removed from active list" },
144
- { command: "naive email create --local-part <name>", description: "Create a replacement inbox" },
145
- ],
146
- hints: [
147
- `Inbox deactivated: ${data.address}`,
148
- "Emails to this address will no longer be received",
149
- "Existing emails remain accessible",
150
- ],
151
- related_commands: ["naive email inboxes", "naive email create"],
152
- });
153
- });
154
- emailCmd
155
- .command("send")
156
- .description("Send an email from a specific provisioned inbox")
157
- .requiredOption("--from-inbox <uuid>", "Inbox UUID to send from (get via 'naive email inboxes')")
158
- .requiredOption("--to <email>", "Recipient email address")
159
- .requiredOption("--subject <subject>", "Email subject line")
160
- .requiredOption("--body <body>", "Email body (plain text or HTML)")
161
- .option("--reply-to <email>", "Reply-to address (if different from inbox)")
162
- .addHelpText("after", `
163
- Examples:
164
- $ naive email send --from-inbox abc-123-uuid --to client@example.com --subject "Invoice Ready" --body "Your invoice is attached."
165
- $ naive email send --from-inbox abc-123-uuid --to support@vendor.com --subject "Question" --body "<h1>Hi</h1><p>Body here</p>"
166
-
167
- What this does:
168
- 1. Validates the inbox UUID belongs to your company
169
- 2. Sends the email via the provisioned email service
170
- 3. Deducts ${FIXED_CREDIT_COSTS.emailSend} credits immediately
171
- 4. Returns a Naive message ID that works with 'naive email read'
172
-
173
- Parameters:
174
- --from-inbox The UUID of the inbox (NOT the email address). Get this from 'naive email inboxes'
175
- --to Recipient email address
176
- --subject Subject line
177
- --body Body content (plain text or HTML — HTML tags are auto-detected)
178
- --reply-to Optional reply-to override
179
-
180
- Cost: ${FIXED_CREDIT_COSTS.emailSend} credits per email sent
181
- `)
182
- .action(async (opts) => {
183
- const resp = await apiRequest("POST", "/v1/email/send", {
184
- from_inbox: opts.fromInbox,
185
- to: opts.to,
186
- subject: opts.subject,
187
- body: opts.body,
188
- ...(opts.replyTo && { reply_to: opts.replyTo }),
189
- });
190
- handleApiError("email.send", resp);
191
- const data = resp.data;
192
- const creditsUsed = reportedCreditsUsed(resp.data, FIXED_CREDIT_COSTS.emailSend);
193
- const readableMessageId = data.message_id;
194
- agentOutput({
195
- action: "email.send",
196
- result: resp.data,
197
- next_steps: [
198
- { command: "naive email inbox", description: "Monitor inbox for replies" },
199
- ...(!readableMessageId
200
- ? []
201
- : [{ command: `naive email read ${readableMessageId}`, description: "View the sent message details", when: "You want to review the sent content" }]),
202
- { command: "naive email sent", description: "List sent messages" },
203
- { command: "naive usage", description: "Check credit deduction" },
204
- ],
205
- hints: [
206
- `Email sent successfully (id: ${data.id})`,
207
- ...(readableMessageId ? [`Naive message id: ${readableMessageId}`] : []),
208
- // Prefer the response's authoritative credits_used via creditCostHint (N7);
209
- // fall back to the fixed pricing constant when the response omits it.
210
- // Either way the credits are deducted immediately on send (not on a later job).
211
- creditCostHint(resp.data)
212
- ? `${creditCostHint(resp.data)} (deducted immediately)`
213
- : `Cost: ${creditsUsed} credits (deducted immediately)`,
214
- ...(data.tracking_available === false
215
- ? ["Delivery succeeded, but sent-message tracking is temporarily unavailable"]
216
- : []),
217
- "Monitor for replies with 'naive email inbox'",
218
- ],
219
- related_commands: ["naive email inbox", "naive email read", "naive email inboxes"],
220
- });
221
- });
222
- emailCmd
223
- .command("sent")
224
- .description("List sent emails")
225
- .option("--limit <n>", "Maximum number of sent emails to return (default: 20, max: 100)", (value) => parseIntegerOption(value, "limit", 1, 100), 20)
226
- .option("--offset <n>", "Number of sent emails to skip (default: 0)", (value) => parseIntegerOption(value, "offset", 0), 0)
227
- .action(async (opts) => {
228
- const params = new URLSearchParams({ limit: String(opts.limit), offset: String(opts.offset) });
229
- const resp = await apiRequest("GET", `/v1/email/sent?${params}`);
230
- handleApiError("email.sent", resp);
231
- const data = resp.data;
232
- const messages = data.emails ?? [];
233
- const nextOffset = opts.offset + messages.length;
234
- agentOutput({
235
- action: "email.sent",
236
- result: resp.data,
237
- next_steps: [
238
- ...(messages[0]
239
- ? [{ command: `naive email read ${messages[0].id}`, description: "Read the most recent sent message" }]
240
- : []),
241
- ...(data.has_more
242
- ? [{ command: `naive email sent --limit ${opts.limit} --offset ${nextOffset}`, description: "Load the next page of sent messages" }]
243
- : []),
244
- ],
245
- hints: [`Found ${messages.length} sent email${messages.length === 1 ? "" : "s"}`],
246
- related_commands: ["naive email read", "naive email inbox", "naive email send"],
247
- });
248
- });
249
- emailCmd
250
- .command("inbox")
251
- .description("List received emails for your inboxes")
252
- .option("--inbox <uuid>", "Filter by specific inbox UUID")
253
- .option("--limit <n>", "Maximum number of emails to return (default: 20)", "20")
254
- .addHelpText("after", `
255
- Examples:
256
- $ naive email inbox
257
- $ naive email inbox --limit 5
258
- $ naive email inbox --inbox abc-123-uuid --limit 10
259
-
260
- What this does:
261
- Returns received emails for your company's inboxes, ordered by
262
- most recent. Each email includes:
263
- - id: message UUID (use with 'naive email read')
264
- - from: sender address
265
- - to: recipient (your inbox)
266
- - subject: email subject
267
- - received_at: timestamp
268
- - snippet: preview of body text
269
-
270
- Use --inbox to filter to a specific inbox, or omit to see all.
271
- `)
272
- .action(async (opts) => {
273
- const params = new URLSearchParams({ limit: opts.limit });
274
- if (opts.inbox)
275
- params.set("from_inbox", opts.inbox);
276
- const resp = await apiRequest("GET", `/v1/email/inbox?${params}`);
277
- handleApiError("email.inbox", resp);
278
- const data = resp.data;
279
- const count = data.emails?.length ?? 0;
280
- agentOutput({
281
- action: "email.inbox",
282
- result: resp.data,
283
- next_steps: [
284
- ...(count > 0
285
- ? [{ command: `naive email read ${data.emails[0].id}`, description: "Read the most recent email" }]
286
- : []),
287
- { command: "naive email inbox --limit 50", description: "Load more emails" },
288
- { command: "naive email send --from-inbox <uuid> --to <email> --subject <subject> --body <body>", description: "Reply to an email" },
289
- ],
290
- hints: [
291
- `${count} email${count !== 1 ? "s" : ""} found`,
292
- "Use 'naive email read <id>' to see full email content",
293
- ],
294
- related_commands: ["naive email read", "naive email send", "naive email inboxes"],
295
- });
296
- });
297
- emailCmd
298
- .command("read <message_id>")
299
- .description("Read the full content of a specific email by its ID")
300
- .addHelpText("after", `
301
- Examples:
302
- $ naive email read 550e8400-e29b-41d4-a716-446655440000
303
-
304
- What this does:
305
- Returns the full email content including:
306
- - From, To, Subject, Date
307
- - Full body (HTML and/or plain text)
308
- - Attachments list (if any)
309
- - Headers
310
-
311
- Use this to:
312
- - Read a full email after seeing it in 'naive email inbox'
313
- - Review a sent email after seeing it in 'naive email sent'
314
- - Extract information from an email for further processing
315
- `)
316
- .action(async (id) => {
317
- const resp = await apiRequest("GET", `/v1/email/${id}`);
318
- handleApiError("email.read", resp);
319
- const data = resp.data;
320
- const replyAddress = data.direction === "sent" ? data.to : data.from;
321
- agentOutput({
322
- action: "email.read",
323
- result: resp.data,
324
- next_steps: [
325
- { command: "naive email inbox", description: "Go back to inbox list" },
326
- { command: `naive email send --from-inbox <uuid> --to ${replyAddress} --subject "Re: ${data.subject}" --body <reply>`, description: data.direction === "sent" ? "Send a follow-up" : "Reply to this email" },
327
- ],
328
- hints: [
329
- data.direction === "sent"
330
- ? "This is a sent message; use the recipient address to follow up"
331
- : "Use the sender address with 'naive email send' to reply",
332
- ],
333
- related_commands: ["naive email inbox", "naive email send"],
334
- });
335
- });
336
- //# sourceMappingURL=email.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/commands/email.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const employeesCmd: Command;