@usenaive-sdk/cli 0.2.3 → 0.2.5
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.
- package/dist/commands/aeo.d.ts +2 -0
- package/dist/commands/aeo.js +410 -0
- package/dist/commands/aeo.js.map +1 -0
- package/dist/commands/app-data.d.ts +2 -0
- package/dist/commands/app-data.js +415 -0
- package/dist/commands/app-data.js.map +1 -0
- package/dist/commands/business.d.ts +2 -0
- package/dist/commands/business.js +451 -0
- package/dist/commands/business.js.map +1 -0
- package/dist/commands/ecommerce.d.ts +2 -0
- package/dist/commands/ecommerce.js +267 -0
- package/dist/commands/ecommerce.js.map +1 -0
- package/dist/commands/seo.d.ts +2 -0
- package/dist/commands/seo.js +504 -0
- package/dist/commands/seo.js.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
+
import { agentOutput } from "../output.js";
|
|
4
|
+
export const ecommerceCmd = new Command("ecommerce")
|
|
5
|
+
.description("E-commerce data — Google Shopping and Amazon product/seller/review data")
|
|
6
|
+
.addHelpText("after", `
|
|
7
|
+
Subcommands:
|
|
8
|
+
naive ecommerce google <endpoint> Google Shopping data (products, product-info, sellers, reviews)
|
|
9
|
+
naive ecommerce google sellers-ad-url Resolve a Google Sellers ad click URL
|
|
10
|
+
naive ecommerce amazon <endpoint> Amazon data (products, asin, sellers)
|
|
11
|
+
naive ecommerce task-get <id> Retrieve results for a completed task
|
|
12
|
+
naive ecommerce tasks-ready List tasks that are ready to retrieve
|
|
13
|
+
|
|
14
|
+
Google Shopping endpoints:
|
|
15
|
+
products Search Google Shopping products by keyword
|
|
16
|
+
product-info Get detailed info for a specific product
|
|
17
|
+
sellers Get sellers for a specific product
|
|
18
|
+
reviews Get reviews for a specific product
|
|
19
|
+
|
|
20
|
+
Amazon endpoints:
|
|
21
|
+
products Search Amazon products by keyword
|
|
22
|
+
asin Get product details by ASIN
|
|
23
|
+
sellers Get sellers for a product by ASIN
|
|
24
|
+
|
|
25
|
+
All endpoints use the Standard (async) method:
|
|
26
|
+
1. Submit a task with the initial command (task_post)
|
|
27
|
+
2. Check if task is ready with 'naive ecommerce tasks-ready'
|
|
28
|
+
3. Retrieve results with 'naive ecommerce task-get <id>'
|
|
29
|
+
|
|
30
|
+
Examples:
|
|
31
|
+
$ naive ecommerce google products --keyword "laptop"
|
|
32
|
+
$ naive ecommerce google product-info --product-id "123456"
|
|
33
|
+
$ naive ecommerce google sellers --product-id "123456"
|
|
34
|
+
$ naive ecommerce google reviews --product-id "123456"
|
|
35
|
+
$ naive ecommerce google sellers-ad-url --aclk "DChcSEwi..."
|
|
36
|
+
$ naive ecommerce amazon products --keyword "headphones"
|
|
37
|
+
$ naive ecommerce amazon asin --asin "B08N5WRWNW"
|
|
38
|
+
$ naive ecommerce amazon sellers --asin "B08N5WRWNW"
|
|
39
|
+
$ naive ecommerce task-get abc123 --platform google --endpoint products
|
|
40
|
+
$ naive ecommerce tasks-ready --platform google --endpoint products
|
|
41
|
+
|
|
42
|
+
Costs:
|
|
43
|
+
Task submission (task_post): free
|
|
44
|
+
Task retrieval (task_get): 2 credits
|
|
45
|
+
`);
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
// google <endpoint>
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
const googleCmd = ecommerceCmd
|
|
50
|
+
.command("google <endpoint>")
|
|
51
|
+
.description("Google Shopping — products, product-info, sellers, reviews (task_post)")
|
|
52
|
+
.option("--keyword <keyword>", "Search keyword (for products)")
|
|
53
|
+
.option("--product-id <id>", "Product ID (for product-info, sellers, reviews)")
|
|
54
|
+
.option("--language-code <code>", "Language code (e.g., en)")
|
|
55
|
+
.option("--location-code <code>", "Location code (e.g., 2840 for US)")
|
|
56
|
+
.option("--tag <tag>", "Tag for the task")
|
|
57
|
+
.addHelpText("after", `
|
|
58
|
+
Endpoints:
|
|
59
|
+
products Requires --keyword
|
|
60
|
+
product-info Requires --product-id
|
|
61
|
+
sellers Requires --product-id
|
|
62
|
+
reviews Requires --product-id
|
|
63
|
+
|
|
64
|
+
Examples:
|
|
65
|
+
$ naive ecommerce google products --keyword "laptop" --location-code 2840
|
|
66
|
+
$ naive ecommerce google product-info --product-id "123456"
|
|
67
|
+
$ naive ecommerce google sellers --product-id "123456"
|
|
68
|
+
$ naive ecommerce google reviews --product-id "123456"
|
|
69
|
+
|
|
70
|
+
Submits a task_post. Use 'naive ecommerce task-get <id>' to retrieve results.
|
|
71
|
+
`)
|
|
72
|
+
.action(async (endpoint, opts) => {
|
|
73
|
+
const body = {};
|
|
74
|
+
if (opts.keyword)
|
|
75
|
+
body.keyword = opts.keyword;
|
|
76
|
+
if (opts.productId)
|
|
77
|
+
body.product_id = opts.productId;
|
|
78
|
+
if (opts.languageCode)
|
|
79
|
+
body.language_code = opts.languageCode;
|
|
80
|
+
if (opts.locationCode)
|
|
81
|
+
body.location_code = parseInt(opts.locationCode);
|
|
82
|
+
if (opts.tag)
|
|
83
|
+
body.tag = opts.tag;
|
|
84
|
+
const slug = endpoint.replace(/_/g, "-");
|
|
85
|
+
const resp = await apiRequest("POST", `/v1/ecommerce/google/${slug}/task`, body);
|
|
86
|
+
handleApiError("ecommerce.google", resp);
|
|
87
|
+
const data = resp.data;
|
|
88
|
+
const taskId = data.tasks?.[0]?.id;
|
|
89
|
+
agentOutput({
|
|
90
|
+
action: `ecommerce.google.${endpoint}`,
|
|
91
|
+
result: resp.data,
|
|
92
|
+
next_steps: [
|
|
93
|
+
...(taskId
|
|
94
|
+
? [
|
|
95
|
+
{ command: `naive ecommerce tasks-ready --platform google --endpoint ${slug}`, description: "Check if the task is ready" },
|
|
96
|
+
{ command: `naive ecommerce task-get ${taskId} --platform google --endpoint ${slug}`, description: "Retrieve results when ready" },
|
|
97
|
+
]
|
|
98
|
+
: []),
|
|
99
|
+
{ command: `naive ecommerce google ${slug} --help`, description: "See all options" },
|
|
100
|
+
],
|
|
101
|
+
hints: [
|
|
102
|
+
`Google Shopping ${endpoint} task submitted`,
|
|
103
|
+
...(taskId ? [`Task ID: ${taskId}`] : []),
|
|
104
|
+
"Task submission is free — credits are charged on retrieval (2 credits)",
|
|
105
|
+
],
|
|
106
|
+
related_commands: ["naive ecommerce task-get", "naive ecommerce tasks-ready"],
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
// google sellers-ad-url
|
|
110
|
+
ecommerceCmd
|
|
111
|
+
.command("google-sellers-ad-url")
|
|
112
|
+
.description("Resolve a Google Sellers ad click URL")
|
|
113
|
+
.requiredOption("--aclk <aclk>", "Ad click URL identifier")
|
|
114
|
+
.addHelpText("after", `
|
|
115
|
+
Examples:
|
|
116
|
+
$ naive ecommerce google-sellers-ad-url --aclk "DChcSEwi..."
|
|
117
|
+
|
|
118
|
+
Returns the resolved seller URL from a Google Shopping ad click.
|
|
119
|
+
`)
|
|
120
|
+
.action(async (opts) => {
|
|
121
|
+
const resp = await apiRequest("GET", `/v1/ecommerce/google/sellers/ad-url/${encodeURIComponent(opts.aclk)}`);
|
|
122
|
+
handleApiError("ecommerce.google.sellers-ad-url", resp);
|
|
123
|
+
agentOutput({
|
|
124
|
+
action: "ecommerce.google.sellers-ad-url",
|
|
125
|
+
result: resp.data,
|
|
126
|
+
next_steps: [
|
|
127
|
+
{ command: 'naive ecommerce google sellers --product-id "<id>"', description: "Get sellers for a product" },
|
|
128
|
+
],
|
|
129
|
+
hints: [
|
|
130
|
+
"Resolved Google Sellers ad URL",
|
|
131
|
+
],
|
|
132
|
+
related_commands: ["naive ecommerce google sellers"],
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
// ---------------------------------------------------------------------------
|
|
136
|
+
// amazon <endpoint>
|
|
137
|
+
// ---------------------------------------------------------------------------
|
|
138
|
+
ecommerceCmd
|
|
139
|
+
.command("amazon <endpoint>")
|
|
140
|
+
.description("Amazon — products, asin, sellers (task_post)")
|
|
141
|
+
.option("--keyword <keyword>", "Search keyword (for products)")
|
|
142
|
+
.option("--asin <asin>", "Amazon ASIN (for asin, sellers)")
|
|
143
|
+
.option("--language-code <code>", "Language code")
|
|
144
|
+
.option("--location-code <code>", "Location code")
|
|
145
|
+
.option("--tag <tag>", "Tag for the task")
|
|
146
|
+
.addHelpText("after", `
|
|
147
|
+
Endpoints:
|
|
148
|
+
products Requires --keyword
|
|
149
|
+
asin Requires --asin
|
|
150
|
+
sellers Requires --asin
|
|
151
|
+
|
|
152
|
+
Examples:
|
|
153
|
+
$ naive ecommerce amazon products --keyword "headphones"
|
|
154
|
+
$ naive ecommerce amazon asin --asin "B08N5WRWNW"
|
|
155
|
+
$ naive ecommerce amazon sellers --asin "B08N5WRWNW"
|
|
156
|
+
|
|
157
|
+
Submits a task_post. Use 'naive ecommerce task-get <id>' to retrieve results.
|
|
158
|
+
`)
|
|
159
|
+
.action(async (endpoint, opts) => {
|
|
160
|
+
const body = {};
|
|
161
|
+
if (opts.keyword)
|
|
162
|
+
body.keyword = opts.keyword;
|
|
163
|
+
if (opts.asin)
|
|
164
|
+
body.asin = opts.asin;
|
|
165
|
+
if (opts.languageCode)
|
|
166
|
+
body.language_code = opts.languageCode;
|
|
167
|
+
if (opts.locationCode)
|
|
168
|
+
body.location_code = parseInt(opts.locationCode);
|
|
169
|
+
if (opts.tag)
|
|
170
|
+
body.tag = opts.tag;
|
|
171
|
+
const slug = endpoint.replace(/_/g, "-");
|
|
172
|
+
const resp = await apiRequest("POST", `/v1/ecommerce/amazon/${slug}/task`, body);
|
|
173
|
+
handleApiError("ecommerce.amazon", resp);
|
|
174
|
+
const data = resp.data;
|
|
175
|
+
const taskId = data.tasks?.[0]?.id;
|
|
176
|
+
agentOutput({
|
|
177
|
+
action: `ecommerce.amazon.${endpoint}`,
|
|
178
|
+
result: resp.data,
|
|
179
|
+
next_steps: [
|
|
180
|
+
...(taskId
|
|
181
|
+
? [
|
|
182
|
+
{ command: `naive ecommerce tasks-ready --platform amazon --endpoint ${slug}`, description: "Check if the task is ready" },
|
|
183
|
+
{ command: `naive ecommerce task-get ${taskId} --platform amazon --endpoint ${slug}`, description: "Retrieve results when ready" },
|
|
184
|
+
]
|
|
185
|
+
: []),
|
|
186
|
+
{ command: `naive ecommerce amazon ${slug} --help`, description: "See all options" },
|
|
187
|
+
],
|
|
188
|
+
hints: [
|
|
189
|
+
`Amazon ${endpoint} task submitted`,
|
|
190
|
+
...(taskId ? [`Task ID: ${taskId}`] : []),
|
|
191
|
+
"Task submission is free — credits are charged on retrieval (2 credits)",
|
|
192
|
+
],
|
|
193
|
+
related_commands: ["naive ecommerce task-get", "naive ecommerce tasks-ready"],
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
// task-get <id>
|
|
198
|
+
// ---------------------------------------------------------------------------
|
|
199
|
+
ecommerceCmd
|
|
200
|
+
.command("task-get <id>")
|
|
201
|
+
.description("Retrieve results for a completed e-commerce task")
|
|
202
|
+
.requiredOption("--platform <platform>", "Platform: google | amazon")
|
|
203
|
+
.requiredOption("--endpoint <endpoint>", "Endpoint: products, product-info, sellers, reviews, asin")
|
|
204
|
+
.option("--format <format>", "Response format: advanced | html (default: advanced)", "advanced")
|
|
205
|
+
.addHelpText("after", `
|
|
206
|
+
Examples:
|
|
207
|
+
$ naive ecommerce task-get abc123 --platform google --endpoint products
|
|
208
|
+
$ naive ecommerce task-get abc123 --platform amazon --endpoint asin --format html
|
|
209
|
+
|
|
210
|
+
Cost: 2 credits
|
|
211
|
+
`)
|
|
212
|
+
.action(async (id, opts) => {
|
|
213
|
+
const slug = opts.endpoint.replace(/_/g, "-");
|
|
214
|
+
let path = `/v1/ecommerce/${opts.platform}/${slug}/task/${id}`;
|
|
215
|
+
if (opts.format === "html")
|
|
216
|
+
path += "/html";
|
|
217
|
+
const resp = await apiRequest("GET", path);
|
|
218
|
+
handleApiError("ecommerce.task-get", resp);
|
|
219
|
+
agentOutput({
|
|
220
|
+
action: "ecommerce.task-get",
|
|
221
|
+
result: resp.data,
|
|
222
|
+
next_steps: [
|
|
223
|
+
...(opts.format !== "html"
|
|
224
|
+
? [{ command: `naive ecommerce task-get ${id} --platform ${opts.platform} --endpoint ${opts.endpoint} --format html`, description: "Get HTML format" }]
|
|
225
|
+
: []),
|
|
226
|
+
{ command: `naive ecommerce ${opts.platform} ${slug} --help`, description: "Submit another task" },
|
|
227
|
+
],
|
|
228
|
+
hints: [
|
|
229
|
+
`Retrieved ${opts.platform} ${opts.endpoint} task ${id} (${opts.format} format)`,
|
|
230
|
+
"Cost: 2 credits",
|
|
231
|
+
],
|
|
232
|
+
related_commands: ["naive ecommerce tasks-ready"],
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
// ---------------------------------------------------------------------------
|
|
236
|
+
// tasks-ready
|
|
237
|
+
// ---------------------------------------------------------------------------
|
|
238
|
+
ecommerceCmd
|
|
239
|
+
.command("tasks-ready")
|
|
240
|
+
.description("List e-commerce tasks that are ready to retrieve")
|
|
241
|
+
.requiredOption("--platform <platform>", "Platform: google | amazon")
|
|
242
|
+
.requiredOption("--endpoint <endpoint>", "Endpoint: products, product-info, sellers, reviews, asin")
|
|
243
|
+
.addHelpText("after", `
|
|
244
|
+
Examples:
|
|
245
|
+
$ naive ecommerce tasks-ready --platform google --endpoint products
|
|
246
|
+
$ naive ecommerce tasks-ready --platform amazon --endpoint asin
|
|
247
|
+
`)
|
|
248
|
+
.action(async (opts) => {
|
|
249
|
+
const slug = opts.endpoint.replace(/_/g, "-");
|
|
250
|
+
const resp = await apiRequest("GET", `/v1/ecommerce/${opts.platform}/${slug}/tasks-ready`);
|
|
251
|
+
handleApiError("ecommerce.tasks-ready", resp);
|
|
252
|
+
const data = resp.data;
|
|
253
|
+
const count = data.tasks?.length ?? 0;
|
|
254
|
+
agentOutput({
|
|
255
|
+
action: "ecommerce.tasks-ready",
|
|
256
|
+
result: resp.data,
|
|
257
|
+
next_steps: count > 0
|
|
258
|
+
? [{ command: `naive ecommerce task-get ${data.tasks[0].id} --platform ${opts.platform} --endpoint ${opts.endpoint}`, description: "Retrieve the first ready task" }]
|
|
259
|
+
: [{ command: `naive ecommerce ${opts.platform} ${slug} --help`, description: "Submit a new task" }],
|
|
260
|
+
hints: [
|
|
261
|
+
`${count} task(s) ready for ${opts.platform} ${opts.endpoint}`,
|
|
262
|
+
...(count > 0 ? ["Use 'naive ecommerce task-get <id>' to retrieve results (2 credits each)"] : ["No tasks ready yet — check back later"]),
|
|
263
|
+
],
|
|
264
|
+
related_commands: ["naive ecommerce task-get"],
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
//# sourceMappingURL=ecommerce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecommerce.js","sourceRoot":"","sources":["../../src/commands/ecommerce.ts"],"names":[],"mappings":"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"}
|