@usenaive-sdk/cli 0.2.3 → 0.2.6
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 +409 -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,415 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
+
import { agentOutput } from "../output.js";
|
|
4
|
+
export const appDataCmd = new Command("app-data")
|
|
5
|
+
.description("App Data — search, list, and review apps on Google Play and Apple App Store")
|
|
6
|
+
.addHelpText("after", `
|
|
7
|
+
Subcommands:
|
|
8
|
+
naive app-data google app-searches Search Google Play apps (task)
|
|
9
|
+
naive app-data google app-info Get app details from Google Play (task)
|
|
10
|
+
naive app-data google app-reviews Get app reviews from Google Play (task)
|
|
11
|
+
naive app-data google app-list Get app collections from Google Play (task)
|
|
12
|
+
naive app-data google app-listings Search Google Play app listings (live)
|
|
13
|
+
naive app-data apple app-searches Search Apple App Store apps (task)
|
|
14
|
+
naive app-data apple app-info Get app details from Apple App Store (task)
|
|
15
|
+
naive app-data apple app-reviews Get app reviews from Apple App Store (task)
|
|
16
|
+
naive app-data apple app-list Get app collections from Apple App Store (task)
|
|
17
|
+
naive app-data apple app-listings Search Apple App Store listings (live)
|
|
18
|
+
naive app-data task-get <id> Retrieve results for a completed task
|
|
19
|
+
naive app-data tasks-ready Check which tasks are ready for retrieval
|
|
20
|
+
|
|
21
|
+
Workflow (Standard method):
|
|
22
|
+
1. Submit a task with app-searches/app-info/app-reviews/app-list
|
|
23
|
+
2. Check task status with tasks-ready
|
|
24
|
+
3. Retrieve results with task-get
|
|
25
|
+
|
|
26
|
+
Workflow (Live method — app-listings only):
|
|
27
|
+
1. Submit and get results immediately
|
|
28
|
+
|
|
29
|
+
Cost: 1 credit per task retrieval or live request
|
|
30
|
+
`);
|
|
31
|
+
// --- Google subcommands ---
|
|
32
|
+
const googleCmd = new Command("google")
|
|
33
|
+
.description("Google Play app data endpoints");
|
|
34
|
+
googleCmd
|
|
35
|
+
.command("app-searches")
|
|
36
|
+
.description("Search Google Play apps (Standard method — submit task)")
|
|
37
|
+
.requiredOption("--keyword <keyword>", "Search keyword")
|
|
38
|
+
.option("--location-code <code>", "Location code (e.g., 2840 for US)")
|
|
39
|
+
.option("--language-code <code>", "Language code (e.g., en)")
|
|
40
|
+
.option("--depth <n>", "Number of results")
|
|
41
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
42
|
+
.action(async (opts) => {
|
|
43
|
+
const body = { keyword: opts.keyword };
|
|
44
|
+
if (opts.locationCode)
|
|
45
|
+
body.location_code = parseInt(opts.locationCode);
|
|
46
|
+
if (opts.languageCode)
|
|
47
|
+
body.language_code = opts.languageCode;
|
|
48
|
+
if (opts.depth)
|
|
49
|
+
body.depth = parseInt(opts.depth);
|
|
50
|
+
if (opts.priority)
|
|
51
|
+
body.priority = parseInt(opts.priority);
|
|
52
|
+
const resp = await apiRequest("POST", "/v1/app-data/google/app-searches", body);
|
|
53
|
+
handleApiError("app-data.google.app-searches", resp);
|
|
54
|
+
agentOutput({
|
|
55
|
+
action: "app-data.google.app-searches",
|
|
56
|
+
result: resp.data,
|
|
57
|
+
next_steps: [
|
|
58
|
+
{ command: "naive app-data tasks-ready --platform google --endpoint app-searches", description: "Check when task results are ready" },
|
|
59
|
+
{ command: "naive app-data task-get <task-id> --platform google --endpoint app-searches", description: "Retrieve results once ready" },
|
|
60
|
+
],
|
|
61
|
+
hints: [
|
|
62
|
+
`Task submitted for Google Play search: "${opts.keyword}"`,
|
|
63
|
+
"Use tasks-ready to check status, then task-get to retrieve results",
|
|
64
|
+
],
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
googleCmd
|
|
68
|
+
.command("app-info")
|
|
69
|
+
.description("Get Google Play app details (Standard method — submit task)")
|
|
70
|
+
.requiredOption("--app-id <id>", "App package name (e.g., com.example.app)")
|
|
71
|
+
.option("--location-code <code>", "Location code")
|
|
72
|
+
.option("--language-code <code>", "Language code")
|
|
73
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
74
|
+
.action(async (opts) => {
|
|
75
|
+
const body = { app_id: opts.appId };
|
|
76
|
+
if (opts.locationCode)
|
|
77
|
+
body.location_code = parseInt(opts.locationCode);
|
|
78
|
+
if (opts.languageCode)
|
|
79
|
+
body.language_code = opts.languageCode;
|
|
80
|
+
if (opts.priority)
|
|
81
|
+
body.priority = parseInt(opts.priority);
|
|
82
|
+
const resp = await apiRequest("POST", "/v1/app-data/google/app-info", body);
|
|
83
|
+
handleApiError("app-data.google.app-info", resp);
|
|
84
|
+
agentOutput({
|
|
85
|
+
action: "app-data.google.app-info",
|
|
86
|
+
result: resp.data,
|
|
87
|
+
next_steps: [
|
|
88
|
+
{ command: "naive app-data tasks-ready --platform google --endpoint app-info", description: "Check when results are ready" },
|
|
89
|
+
{ command: "naive app-data task-get <task-id> --platform google --endpoint app-info", description: "Retrieve results" },
|
|
90
|
+
],
|
|
91
|
+
hints: [
|
|
92
|
+
`Task submitted for Google Play app info: ${opts.appId}`,
|
|
93
|
+
"Results typically ready within 30 seconds",
|
|
94
|
+
],
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
googleCmd
|
|
98
|
+
.command("app-reviews")
|
|
99
|
+
.description("Get Google Play app reviews (Standard method — submit task)")
|
|
100
|
+
.requiredOption("--app-id <id>", "App package name (e.g., com.example.app)")
|
|
101
|
+
.option("--location-code <code>", "Location code")
|
|
102
|
+
.option("--language-code <code>", "Language code")
|
|
103
|
+
.option("--depth <n>", "Number of reviews to retrieve")
|
|
104
|
+
.option("--sort-by <sort>", "Sort order: most_relevant, newest, rating")
|
|
105
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
106
|
+
.action(async (opts) => {
|
|
107
|
+
const body = { app_id: opts.appId };
|
|
108
|
+
if (opts.locationCode)
|
|
109
|
+
body.location_code = parseInt(opts.locationCode);
|
|
110
|
+
if (opts.languageCode)
|
|
111
|
+
body.language_code = opts.languageCode;
|
|
112
|
+
if (opts.depth)
|
|
113
|
+
body.depth = parseInt(opts.depth);
|
|
114
|
+
if (opts.sortBy)
|
|
115
|
+
body.sort_by = opts.sortBy;
|
|
116
|
+
if (opts.priority)
|
|
117
|
+
body.priority = parseInt(opts.priority);
|
|
118
|
+
const resp = await apiRequest("POST", "/v1/app-data/google/app-reviews", body);
|
|
119
|
+
handleApiError("app-data.google.app-reviews", resp);
|
|
120
|
+
agentOutput({
|
|
121
|
+
action: "app-data.google.app-reviews",
|
|
122
|
+
result: resp.data,
|
|
123
|
+
next_steps: [
|
|
124
|
+
{ command: "naive app-data tasks-ready --platform google --endpoint app-reviews", description: "Check when results are ready" },
|
|
125
|
+
{ command: "naive app-data task-get <task-id> --platform google --endpoint app-reviews", description: "Retrieve results" },
|
|
126
|
+
],
|
|
127
|
+
hints: [
|
|
128
|
+
`Task submitted for Google Play reviews: ${opts.appId}`,
|
|
129
|
+
],
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
googleCmd
|
|
133
|
+
.command("app-list")
|
|
134
|
+
.description("Get Google Play app collection (Standard method — submit task)")
|
|
135
|
+
.requiredOption("--collection <collection>", "Collection ID (e.g., topselling_free, topselling_paid)")
|
|
136
|
+
.option("--category <category>", "App category")
|
|
137
|
+
.option("--location-code <code>", "Location code")
|
|
138
|
+
.option("--language-code <code>", "Language code")
|
|
139
|
+
.option("--depth <n>", "Number of apps to retrieve")
|
|
140
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
141
|
+
.action(async (opts) => {
|
|
142
|
+
const body = { app_collection: opts.collection };
|
|
143
|
+
if (opts.category)
|
|
144
|
+
body.app_category = opts.category;
|
|
145
|
+
if (opts.locationCode)
|
|
146
|
+
body.location_code = parseInt(opts.locationCode);
|
|
147
|
+
if (opts.languageCode)
|
|
148
|
+
body.language_code = opts.languageCode;
|
|
149
|
+
if (opts.depth)
|
|
150
|
+
body.depth = parseInt(opts.depth);
|
|
151
|
+
if (opts.priority)
|
|
152
|
+
body.priority = parseInt(opts.priority);
|
|
153
|
+
const resp = await apiRequest("POST", "/v1/app-data/google/app-list", body);
|
|
154
|
+
handleApiError("app-data.google.app-list", resp);
|
|
155
|
+
agentOutput({
|
|
156
|
+
action: "app-data.google.app-list",
|
|
157
|
+
result: resp.data,
|
|
158
|
+
next_steps: [
|
|
159
|
+
{ command: "naive app-data tasks-ready --platform google --endpoint app-list", description: "Check when results are ready" },
|
|
160
|
+
{ command: "naive app-data task-get <task-id> --platform google --endpoint app-list", description: "Retrieve results" },
|
|
161
|
+
],
|
|
162
|
+
hints: [
|
|
163
|
+
`Task submitted for Google Play collection: ${opts.collection}`,
|
|
164
|
+
],
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
googleCmd
|
|
168
|
+
.command("app-listings")
|
|
169
|
+
.description("Search Google Play app listings (Live — immediate results)")
|
|
170
|
+
.requiredOption("--title <title>", "App title or search term")
|
|
171
|
+
.option("--location-code <code>", "Location code")
|
|
172
|
+
.option("--language-code <code>", "Language code")
|
|
173
|
+
.option("--depth <n>", "Number of results")
|
|
174
|
+
.action(async (opts) => {
|
|
175
|
+
const body = { title: opts.title };
|
|
176
|
+
if (opts.locationCode)
|
|
177
|
+
body.location_code = parseInt(opts.locationCode);
|
|
178
|
+
if (opts.languageCode)
|
|
179
|
+
body.language_code = opts.languageCode;
|
|
180
|
+
if (opts.depth)
|
|
181
|
+
body.depth = parseInt(opts.depth);
|
|
182
|
+
const resp = await apiRequest("POST", "/v1/app-data/google/app-listings", body);
|
|
183
|
+
handleApiError("app-data.google.app-listings", resp);
|
|
184
|
+
agentOutput({
|
|
185
|
+
action: "app-data.google.app-listings",
|
|
186
|
+
result: resp.data,
|
|
187
|
+
next_steps: [
|
|
188
|
+
{ command: 'naive app-data google app-info --app-id "<app-id>"', description: "Get details for a specific app" },
|
|
189
|
+
{ command: 'naive app-data google app-reviews --app-id "<app-id>"', description: "Get reviews for a specific app" },
|
|
190
|
+
],
|
|
191
|
+
hints: [
|
|
192
|
+
`Live search results for Google Play listings: "${opts.title}"`,
|
|
193
|
+
"Cost: 1 credit",
|
|
194
|
+
],
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
appDataCmd.addCommand(googleCmd);
|
|
198
|
+
// --- Apple subcommands ---
|
|
199
|
+
const appleCmd = new Command("apple")
|
|
200
|
+
.description("Apple App Store app data endpoints");
|
|
201
|
+
appleCmd
|
|
202
|
+
.command("app-searches")
|
|
203
|
+
.description("Search Apple App Store apps (Standard method — submit task)")
|
|
204
|
+
.requiredOption("--keyword <keyword>", "Search keyword")
|
|
205
|
+
.option("--location-code <code>", "Location code")
|
|
206
|
+
.option("--language-code <code>", "Language code")
|
|
207
|
+
.option("--depth <n>", "Number of results")
|
|
208
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
209
|
+
.action(async (opts) => {
|
|
210
|
+
const body = { keyword: opts.keyword };
|
|
211
|
+
if (opts.locationCode)
|
|
212
|
+
body.location_code = parseInt(opts.locationCode);
|
|
213
|
+
if (opts.languageCode)
|
|
214
|
+
body.language_code = opts.languageCode;
|
|
215
|
+
if (opts.depth)
|
|
216
|
+
body.depth = parseInt(opts.depth);
|
|
217
|
+
if (opts.priority)
|
|
218
|
+
body.priority = parseInt(opts.priority);
|
|
219
|
+
const resp = await apiRequest("POST", "/v1/app-data/apple/app-searches", body);
|
|
220
|
+
handleApiError("app-data.apple.app-searches", resp);
|
|
221
|
+
agentOutput({
|
|
222
|
+
action: "app-data.apple.app-searches",
|
|
223
|
+
result: resp.data,
|
|
224
|
+
next_steps: [
|
|
225
|
+
{ command: "naive app-data tasks-ready --platform apple --endpoint app-searches", description: "Check when results are ready" },
|
|
226
|
+
{ command: "naive app-data task-get <task-id> --platform apple --endpoint app-searches", description: "Retrieve results" },
|
|
227
|
+
],
|
|
228
|
+
hints: [
|
|
229
|
+
`Task submitted for App Store search: "${opts.keyword}"`,
|
|
230
|
+
],
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
appleCmd
|
|
234
|
+
.command("app-info")
|
|
235
|
+
.description("Get Apple App Store app details (Standard method — submit task)")
|
|
236
|
+
.requiredOption("--app-id <id>", "App ID (numeric, e.g., 123456789)")
|
|
237
|
+
.option("--location-code <code>", "Location code")
|
|
238
|
+
.option("--language-code <code>", "Language code")
|
|
239
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
240
|
+
.action(async (opts) => {
|
|
241
|
+
const body = { app_id: opts.appId };
|
|
242
|
+
if (opts.locationCode)
|
|
243
|
+
body.location_code = parseInt(opts.locationCode);
|
|
244
|
+
if (opts.languageCode)
|
|
245
|
+
body.language_code = opts.languageCode;
|
|
246
|
+
if (opts.priority)
|
|
247
|
+
body.priority = parseInt(opts.priority);
|
|
248
|
+
const resp = await apiRequest("POST", "/v1/app-data/apple/app-info", body);
|
|
249
|
+
handleApiError("app-data.apple.app-info", resp);
|
|
250
|
+
agentOutput({
|
|
251
|
+
action: "app-data.apple.app-info",
|
|
252
|
+
result: resp.data,
|
|
253
|
+
next_steps: [
|
|
254
|
+
{ command: "naive app-data tasks-ready --platform apple --endpoint app-info", description: "Check when results are ready" },
|
|
255
|
+
{ command: "naive app-data task-get <task-id> --platform apple --endpoint app-info", description: "Retrieve results" },
|
|
256
|
+
],
|
|
257
|
+
hints: [
|
|
258
|
+
`Task submitted for App Store app info: ${opts.appId}`,
|
|
259
|
+
],
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
appleCmd
|
|
263
|
+
.command("app-reviews")
|
|
264
|
+
.description("Get Apple App Store app reviews (Standard method — submit task)")
|
|
265
|
+
.requiredOption("--app-id <id>", "App ID (numeric, e.g., 123456789)")
|
|
266
|
+
.option("--location-code <code>", "Location code")
|
|
267
|
+
.option("--language-code <code>", "Language code")
|
|
268
|
+
.option("--depth <n>", "Number of reviews to retrieve")
|
|
269
|
+
.option("--sort-by <sort>", "Sort order: most_relevant, newest, rating")
|
|
270
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
271
|
+
.action(async (opts) => {
|
|
272
|
+
const body = { app_id: opts.appId };
|
|
273
|
+
if (opts.locationCode)
|
|
274
|
+
body.location_code = parseInt(opts.locationCode);
|
|
275
|
+
if (opts.languageCode)
|
|
276
|
+
body.language_code = opts.languageCode;
|
|
277
|
+
if (opts.depth)
|
|
278
|
+
body.depth = parseInt(opts.depth);
|
|
279
|
+
if (opts.sortBy)
|
|
280
|
+
body.sort_by = opts.sortBy;
|
|
281
|
+
if (opts.priority)
|
|
282
|
+
body.priority = parseInt(opts.priority);
|
|
283
|
+
const resp = await apiRequest("POST", "/v1/app-data/apple/app-reviews", body);
|
|
284
|
+
handleApiError("app-data.apple.app-reviews", resp);
|
|
285
|
+
agentOutput({
|
|
286
|
+
action: "app-data.apple.app-reviews",
|
|
287
|
+
result: resp.data,
|
|
288
|
+
next_steps: [
|
|
289
|
+
{ command: "naive app-data tasks-ready --platform apple --endpoint app-reviews", description: "Check when results are ready" },
|
|
290
|
+
{ command: "naive app-data task-get <task-id> --platform apple --endpoint app-reviews", description: "Retrieve results" },
|
|
291
|
+
],
|
|
292
|
+
hints: [
|
|
293
|
+
`Task submitted for App Store reviews: ${opts.appId}`,
|
|
294
|
+
],
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
appleCmd
|
|
298
|
+
.command("app-list")
|
|
299
|
+
.description("Get Apple App Store app collection (Standard method — submit task)")
|
|
300
|
+
.requiredOption("--collection <collection>", "Collection ID (e.g., top_free_applications, top_paid_applications)")
|
|
301
|
+
.option("--category <category>", "App category")
|
|
302
|
+
.option("--location-code <code>", "Location code")
|
|
303
|
+
.option("--language-code <code>", "Language code")
|
|
304
|
+
.option("--depth <n>", "Number of apps to retrieve")
|
|
305
|
+
.option("--priority <n>", "Task priority (1=high, 2=normal)")
|
|
306
|
+
.action(async (opts) => {
|
|
307
|
+
const body = { app_collection: opts.collection };
|
|
308
|
+
if (opts.category)
|
|
309
|
+
body.app_category = opts.category;
|
|
310
|
+
if (opts.locationCode)
|
|
311
|
+
body.location_code = parseInt(opts.locationCode);
|
|
312
|
+
if (opts.languageCode)
|
|
313
|
+
body.language_code = opts.languageCode;
|
|
314
|
+
if (opts.depth)
|
|
315
|
+
body.depth = parseInt(opts.depth);
|
|
316
|
+
if (opts.priority)
|
|
317
|
+
body.priority = parseInt(opts.priority);
|
|
318
|
+
const resp = await apiRequest("POST", "/v1/app-data/apple/app-list", body);
|
|
319
|
+
handleApiError("app-data.apple.app-list", resp);
|
|
320
|
+
agentOutput({
|
|
321
|
+
action: "app-data.apple.app-list",
|
|
322
|
+
result: resp.data,
|
|
323
|
+
next_steps: [
|
|
324
|
+
{ command: "naive app-data tasks-ready --platform apple --endpoint app-list", description: "Check when results are ready" },
|
|
325
|
+
{ command: "naive app-data task-get <task-id> --platform apple --endpoint app-list", description: "Retrieve results" },
|
|
326
|
+
],
|
|
327
|
+
hints: [
|
|
328
|
+
`Task submitted for App Store collection: ${opts.collection}`,
|
|
329
|
+
],
|
|
330
|
+
});
|
|
331
|
+
});
|
|
332
|
+
appleCmd
|
|
333
|
+
.command("app-listings")
|
|
334
|
+
.description("Search Apple App Store listings (Live — immediate results)")
|
|
335
|
+
.requiredOption("--title <title>", "App title or search term")
|
|
336
|
+
.option("--location-code <code>", "Location code")
|
|
337
|
+
.option("--language-code <code>", "Language code")
|
|
338
|
+
.option("--depth <n>", "Number of results")
|
|
339
|
+
.action(async (opts) => {
|
|
340
|
+
const body = { title: opts.title };
|
|
341
|
+
if (opts.locationCode)
|
|
342
|
+
body.location_code = parseInt(opts.locationCode);
|
|
343
|
+
if (opts.languageCode)
|
|
344
|
+
body.language_code = opts.languageCode;
|
|
345
|
+
if (opts.depth)
|
|
346
|
+
body.depth = parseInt(opts.depth);
|
|
347
|
+
const resp = await apiRequest("POST", "/v1/app-data/apple/app-listings", body);
|
|
348
|
+
handleApiError("app-data.apple.app-listings", resp);
|
|
349
|
+
agentOutput({
|
|
350
|
+
action: "app-data.apple.app-listings",
|
|
351
|
+
result: resp.data,
|
|
352
|
+
next_steps: [
|
|
353
|
+
{ command: 'naive app-data apple app-info --app-id "<app-id>"', description: "Get details for a specific app" },
|
|
354
|
+
{ command: 'naive app-data apple app-reviews --app-id "<app-id>"', description: "Get reviews for a specific app" },
|
|
355
|
+
],
|
|
356
|
+
hints: [
|
|
357
|
+
`Live search results for App Store listings: "${opts.title}"`,
|
|
358
|
+
"Cost: 1 credit",
|
|
359
|
+
],
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
appDataCmd.addCommand(appleCmd);
|
|
363
|
+
// --- Cross-platform task management ---
|
|
364
|
+
appDataCmd
|
|
365
|
+
.command("task-get <task-id>")
|
|
366
|
+
.description("Retrieve results for a completed App Data task")
|
|
367
|
+
.requiredOption("--platform <platform>", "Platform: google or apple")
|
|
368
|
+
.requiredOption("--endpoint <endpoint>", "Endpoint: app-searches, app-info, app-reviews, or app-list")
|
|
369
|
+
.option("--format <format>", "Result format: advanced or html (Google only)", "advanced")
|
|
370
|
+
.action(async (taskId, opts) => {
|
|
371
|
+
const platform = opts.platform;
|
|
372
|
+
const endpoint = opts.endpoint;
|
|
373
|
+
const format = opts.format === "html" ? "/html" : "";
|
|
374
|
+
const resp = await apiRequest("GET", `/v1/app-data/${platform}/${endpoint}/${taskId}${format}`);
|
|
375
|
+
handleApiError("app-data.task-get", resp);
|
|
376
|
+
agentOutput({
|
|
377
|
+
action: "app-data.task-get",
|
|
378
|
+
result: resp.data,
|
|
379
|
+
next_steps: [
|
|
380
|
+
{ command: `naive app-data tasks-ready --platform ${platform} --endpoint ${endpoint}`, description: "Check for more ready tasks" },
|
|
381
|
+
{ command: `naive app-data ${platform} ${endpoint} --help`, description: "Submit another task" },
|
|
382
|
+
],
|
|
383
|
+
hints: [
|
|
384
|
+
`Retrieved results for task ${taskId} (${platform}/${endpoint})`,
|
|
385
|
+
"Cost: 1 credit",
|
|
386
|
+
],
|
|
387
|
+
});
|
|
388
|
+
});
|
|
389
|
+
appDataCmd
|
|
390
|
+
.command("tasks-ready")
|
|
391
|
+
.description("Check which App Data tasks are ready for retrieval")
|
|
392
|
+
.requiredOption("--platform <platform>", "Platform: google or apple")
|
|
393
|
+
.requiredOption("--endpoint <endpoint>", "Endpoint: app-searches, app-info, app-reviews, or app-list")
|
|
394
|
+
.action(async (opts) => {
|
|
395
|
+
const platform = opts.platform;
|
|
396
|
+
const endpoint = opts.endpoint;
|
|
397
|
+
const resp = await apiRequest("GET", `/v1/app-data/${platform}/${endpoint}/tasks-ready`);
|
|
398
|
+
handleApiError("app-data.tasks-ready", resp);
|
|
399
|
+
const tasks = (resp.data?.tasks ?? []);
|
|
400
|
+
agentOutput({
|
|
401
|
+
action: "app-data.tasks-ready",
|
|
402
|
+
result: resp.data,
|
|
403
|
+
next_steps: tasks.length > 0
|
|
404
|
+
? tasks.slice(0, 3).map((t) => ({
|
|
405
|
+
command: `naive app-data task-get ${t.id} --platform ${platform} --endpoint ${endpoint}`,
|
|
406
|
+
description: `Retrieve results for task ${t.id}`,
|
|
407
|
+
}))
|
|
408
|
+
: [{ command: `naive app-data ${platform} ${endpoint} --help`, description: "Submit a new task" }],
|
|
409
|
+
hints: [
|
|
410
|
+
`${tasks.length} task(s) ready for ${platform}/${endpoint}`,
|
|
411
|
+
...(tasks.length === 0 ? ["No tasks ready yet — tasks typically complete within 30 seconds"] : []),
|
|
412
|
+
],
|
|
413
|
+
});
|
|
414
|
+
});
|
|
415
|
+
//# sourceMappingURL=app-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-data.js","sourceRoot":"","sources":["../../src/commands/app-data.ts"],"names":[],"mappings":"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"}
|