@usenaive-sdk/cli 0.2.6 → 0.2.8

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.
@@ -0,0 +1,262 @@
1
+ import { Command } from "commander";
2
+ import { apiRequest, handleApiError } from "../client.js";
3
+ import { agentOutput } from "../output.js";
4
+ export const formationCmd = new Command("formation")
5
+ .description("Company formation (LLC incorporation) via Doola — requires completed KYC")
6
+ .addHelpText("after", `
7
+ Subcommands:
8
+ naive formation naics-codes List NAICS industry codes
9
+ naive formation submit [options] Step 1: Validate KYC + create $249 Stripe Checkout
10
+ naive formation retry-payment <id> Regenerate checkout URL if it expired
11
+ naive formation execute <id> Step 2: Submit to Doola after payment
12
+ naive formation list List all formations
13
+ naive formation status <id> Get formation details
14
+ naive formation documents <id> List formation documents
15
+ naive formation download <formationId> <docId> Get document download URL
16
+
17
+ Flow:
18
+ 1. submit creates a draft formation and returns a Stripe Checkout URL ($249)
19
+ 2. User pays via the checkout URL
20
+ 3. execute submits the formation to Doola (decrypts PII from Footprint, maps fields)
21
+
22
+ If the checkout session expires before payment, run 'retry-payment' to get a fresh URL.
23
+
24
+ Requires completed identity verification (all members passed KYC).
25
+ PII (SSN, DOB, address) is pulled from Footprint vault automatically.
26
+ `);
27
+ formationCmd
28
+ .command("naics-codes")
29
+ .description("List available NAICS industry codes for company formation")
30
+ .action(async () => {
31
+ const resp = await apiRequest("GET", "/v1/formation/naics-codes");
32
+ handleApiError("formation.naics-codes", resp);
33
+ const data = resp.data;
34
+ agentOutput({
35
+ action: "formation.naics-codes",
36
+ result: resp.data,
37
+ next_steps: [
38
+ { command: "naive formation submit --verification-id <id> --state WY --naics <naicsCodeId> ...", description: "Submit formation with a NAICS code" },
39
+ ],
40
+ hints: [`Found ${data.naics_codes?.length ?? 0} NAICS codes`],
41
+ related_commands: ["naive formation submit"],
42
+ });
43
+ });
44
+ formationCmd
45
+ .command("submit")
46
+ .description("Submit company formation — requires completed KYC verification")
47
+ .requiredOption("--verification-id <id>", "UUID of the completed KYC verification")
48
+ .requiredOption("--state <state>", "2-letter US state code (e.g. WY, DE)")
49
+ .requiredOption("--naics <naicsCodeId>", "NAICS code ID from 'naive formation naics-codes'")
50
+ .requiredOption("--description <desc>", "Business description (max 256 chars)")
51
+ .requiredOption("--names <json>", "JSON array of name options: [{name, entity_type_ending}]")
52
+ .option("--address <json>", "JSON mailing address (optional — defaults to primary member's KYC address)")
53
+ .action(async (opts) => {
54
+ let nameOptions;
55
+ let mailingAddress;
56
+ try {
57
+ nameOptions = JSON.parse(opts.names);
58
+ }
59
+ catch {
60
+ console.error(JSON.stringify({ success: false, error: "Invalid JSON for --names" }));
61
+ process.exit(1);
62
+ }
63
+ if (opts.address) {
64
+ try {
65
+ mailingAddress = JSON.parse(opts.address);
66
+ }
67
+ catch {
68
+ console.error(JSON.stringify({ success: false, error: "Invalid JSON for --address" }));
69
+ process.exit(1);
70
+ }
71
+ }
72
+ const body = {
73
+ verification_id: opts.verificationId,
74
+ entity_type: "LLC",
75
+ state: opts.state,
76
+ naics_code_id: opts.naics,
77
+ description: opts.description,
78
+ name_options: nameOptions,
79
+ };
80
+ if (mailingAddress)
81
+ body.mailing_address = mailingAddress;
82
+ const resp = await apiRequest("POST", "/v1/formation", body);
83
+ handleApiError("formation.submit", resp);
84
+ const data = resp.data;
85
+ agentOutput({
86
+ action: "formation.submit",
87
+ result: resp.data,
88
+ next_steps: [
89
+ ...(data.checkout_url
90
+ ? [{ command: `Open ${data.checkout_url}`, description: `Pay the ${data.price_usd} formation fee in browser` }]
91
+ : []),
92
+ { command: `naive formation execute ${data.id}`, description: "After paying, run this to submit to Doola", when: "payment is complete" },
93
+ { command: `naive formation status ${data.id}`, description: "Check formation status" },
94
+ ],
95
+ hints: [
96
+ `Formation ${data.id} created with status: ${data.status}`,
97
+ `A ${data.price_usd} payment is required before submission to Doola`,
98
+ "Open the checkout_url, pay, then run 'naive formation execute' to submit",
99
+ ],
100
+ related_commands: ["naive formation execute", "naive formation status", "naive formation list"],
101
+ });
102
+ });
103
+ formationCmd
104
+ .command("retry-payment <id>")
105
+ .description("Generate a fresh Stripe Checkout URL for a formation whose checkout expired")
106
+ .action(async (id) => {
107
+ const resp = await apiRequest("POST", `/v1/formation/${id}/retry-payment`);
108
+ handleApiError("formation.retry-payment", resp);
109
+ const data = resp.data;
110
+ agentOutput({
111
+ action: "formation.retry-payment",
112
+ result: resp.data,
113
+ next_steps: [
114
+ ...(data.checkout_url
115
+ ? [{ command: `Open ${data.checkout_url}`, description: `Pay the ${data.price_usd} formation fee in browser` }]
116
+ : []),
117
+ { command: `naive formation status ${data.id}`, description: "Check formation status" },
118
+ ],
119
+ hints: [
120
+ `New checkout URL generated for formation ${data.id}`,
121
+ "Open the URL and complete payment, then call 'naive formation execute' to submit to Doola",
122
+ ],
123
+ related_commands: ["naive formation execute", "naive formation status"],
124
+ });
125
+ });
126
+ formationCmd
127
+ .command("execute <id>")
128
+ .description("Submit formation to Doola (after payment is complete)")
129
+ .action(async (id) => {
130
+ const resp = await apiRequest("POST", `/v1/formation/${id}/submit`);
131
+ handleApiError("formation.execute", resp);
132
+ const data = resp.data;
133
+ agentOutput({
134
+ action: "formation.execute",
135
+ result: resp.data,
136
+ next_steps: [
137
+ { command: `naive formation status ${data.id}`, description: "Track formation progress" },
138
+ { command: `naive formation documents ${data.id}`, description: "List documents (after completion)", when: "formation is completed" },
139
+ ],
140
+ hints: [
141
+ `Formation ${data.id} status: ${data.status}`,
142
+ data.doola_company_id ? `Doola Company ID: ${data.doola_company_id}` : "Doola is processing the formation",
143
+ "Formation typically takes days to weeks. Documents will be available after completion.",
144
+ ],
145
+ related_commands: ["naive formation status", "naive formation documents", "naive formation list"],
146
+ });
147
+ });
148
+ formationCmd
149
+ .command("list")
150
+ .description("List all company formation requests")
151
+ .action(async () => {
152
+ const resp = await apiRequest("GET", "/v1/formation");
153
+ handleApiError("formation.list", resp);
154
+ const data = resp.data;
155
+ const awaitingPayment = data.formations.filter((f) => f.status === "awaiting_payment");
156
+ const readyToExecute = data.formations.filter((f) => f.status === "pending" && f.payment_status === "paid");
157
+ const nextSteps = [];
158
+ if (readyToExecute.length > 0) {
159
+ nextSteps.push({ command: `naive formation execute ${readyToExecute[0].id}`, description: "Submit paid formation to Doola" });
160
+ }
161
+ else if (awaitingPayment.length > 0) {
162
+ nextSteps.push({ command: `naive formation status ${awaitingPayment[0].id}`, description: "View formation awaiting payment" });
163
+ }
164
+ else if (data.formations.length > 0) {
165
+ nextSteps.push({ command: `naive formation status ${data.formations[0].id}`, description: "View details of the latest formation" });
166
+ }
167
+ else {
168
+ nextSteps.push({ command: "naive formation submit ...", description: "Submit a new formation" });
169
+ }
170
+ agentOutput({
171
+ action: "formation.list",
172
+ result: resp.data,
173
+ next_steps: nextSteps,
174
+ hints: [
175
+ `Found ${data.formations.length} formation(s)`,
176
+ ...(awaitingPayment.length > 0 ? [`${awaitingPayment.length} awaiting payment`] : []),
177
+ ...(readyToExecute.length > 0 ? [`${readyToExecute.length} paid and ready to execute`] : []),
178
+ ],
179
+ related_commands: ["naive formation submit", "naive formation execute", "naive formation status"],
180
+ });
181
+ });
182
+ formationCmd
183
+ .command("status <id>")
184
+ .description("Get formation details and status")
185
+ .action(async (id) => {
186
+ const resp = await apiRequest("GET", `/v1/formation/${id}`);
187
+ handleApiError("formation.status", resp);
188
+ const data = resp.data;
189
+ const nextSteps = [];
190
+ const hints = [`Status: ${data.status}`, `Payment: ${data.payment_status}`];
191
+ if (data.status === "awaiting_payment" && data.payment_status === "unpaid") {
192
+ hints.push("Formation is waiting for $249 payment via Stripe Checkout");
193
+ nextSteps.push({ command: `naive formation retry-payment ${data.id}`, description: "Generate a fresh Stripe Checkout URL (if the original expired)" });
194
+ }
195
+ else if (data.status === "pending" && data.payment_status === "paid") {
196
+ hints.push("Payment received — ready to submit to Doola");
197
+ nextSteps.push({ command: `naive formation execute ${data.id}`, description: "Submit formation to Doola now" });
198
+ }
199
+ else if (data.status === "submitted" || data.status === "formation_completed") {
200
+ if (data.doola_company_id)
201
+ hints.push(`Doola Company ID: ${data.doola_company_id}`);
202
+ hints.push("Doola is processing the formation. Documents will appear when complete.");
203
+ if (data.doola_company_id) {
204
+ nextSteps.push({ command: `naive formation documents ${data.id}`, description: "List available documents" });
205
+ }
206
+ }
207
+ else if (data.status === "failed") {
208
+ hints.push(`Error: ${data.doola_error ?? "(unknown)"}`);
209
+ if (data.payment_status === "paid") {
210
+ hints.push("Payment was completed but formation failed at Doola. Contact support@usenaive.ai for assistance.");
211
+ nextSteps.push({ command: `naive formation execute ${data.id}`, description: "Retry the Doola submission (may resolve transient errors)" });
212
+ }
213
+ else {
214
+ hints.push("Payment was not completed. You can retry payment or start a new formation.");
215
+ nextSteps.push({ command: `naive formation retry-payment ${data.id}`, description: "Generate a fresh checkout URL and try again" });
216
+ }
217
+ }
218
+ agentOutput({
219
+ action: "formation.status",
220
+ result: resp.data,
221
+ next_steps: nextSteps,
222
+ hints,
223
+ related_commands: ["naive formation list", "naive formation execute", "naive formation documents"],
224
+ });
225
+ });
226
+ formationCmd
227
+ .command("documents <id>")
228
+ .description("List documents for a formation (Articles of Organization, EIN Letter, etc.)")
229
+ .action(async (id) => {
230
+ const resp = await apiRequest("GET", `/v1/formation/${id}/documents`);
231
+ handleApiError("formation.documents", resp);
232
+ const data = resp.data;
233
+ agentOutput({
234
+ action: "formation.documents",
235
+ result: resp.data,
236
+ next_steps: data.documents.length > 0
237
+ ? [{ command: `naive formation download ${id} ${data.documents[0].id}`, description: `Download ${data.documents[0].documentType}` }]
238
+ : [],
239
+ hints: [`Found ${data.documents.length} document(s)`],
240
+ related_commands: ["naive formation status", "naive formation download"],
241
+ });
242
+ });
243
+ formationCmd
244
+ .command("download <formationId> <documentId>")
245
+ .description("Get a temporary signed download URL for a formation document")
246
+ .action(async (formationId, documentId) => {
247
+ const resp = await apiRequest("GET", `/v1/formation/${formationId}/documents/${documentId}`);
248
+ handleApiError("formation.download", resp);
249
+ const data = resp.data;
250
+ agentOutput({
251
+ action: "formation.download",
252
+ result: resp.data,
253
+ next_steps: data.downloadUrl
254
+ ? [{ command: `curl -o "${data.name ?? "document.pdf"}" "${data.downloadUrl}"`, description: "Download the document" }]
255
+ : [],
256
+ hints: data.downloadUrl
257
+ ? ["Download URL is temporary — use it within 1 hour"]
258
+ : ["Document may not be ready yet"],
259
+ related_commands: ["naive formation documents"],
260
+ });
261
+ });
262
+ //# sourceMappingURL=formation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formation.js","sourceRoot":"","sources":["../../src/commands/formation.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,13 @@ import { Command } from "commander";
2
2
  import { apiRequest, handleApiError } from "../client.js";
3
3
  import { agentOutput } from "../output.js";
4
4
  export const imagesCmd = new Command("images")
5
- .description("Generate AI images (fal.ai) or search stock photos (Pexels)")
5
+ .description("Generate AI images or search stock photos")
6
6
  .addHelpText("after", `
7
7
  Subcommands:
8
- naive images generate <prompt> Generate images using fal.ai models
9
- naive images stock <query> Search stock photos from Pexels
8
+ naive images generate <prompt> Generate images using AI models
9
+ naive images stock <query> Search stock photos
10
10
  naive images status <job_id> Check generation job status
11
- naive images models List available fal.ai models
11
+ naive images models List available image generation models
12
12
 
13
13
  Examples:
14
14
  $ naive images generate "a futuristic city at sunset" --model fal-ai/flux/schnell
@@ -19,15 +19,15 @@ Examples:
19
19
 
20
20
  Cost:
21
21
  - Image generation: dynamic, model-dependent (use GET /v1/images/pricing to preview)
22
- - Pricing based on fal.ai model costs, converted to credits ($0.50/credit)
22
+ - Pricing based on model costs, converted to credits ($0.50/credit)
23
23
  - Stock photo search: 0 credits (free)
24
24
  - Credits deducted only on successful job completion
25
25
  `);
26
26
  imagesCmd
27
27
  .command("generate [prompt]")
28
- .description("Generate images using fal.ai (async — returns job ID)")
29
- .option("--model <model>", "fal.ai model ID (default: fal-ai/flux/schnell)")
30
- .option("--input <json>", "Full fal.ai input parameters as JSON (overrides prompt)")
28
+ .description("Generate images using AI models (async — returns job ID)")
29
+ .option("--model <model>", "Model ID (default: fal-ai/flux/schnell)")
30
+ .option("--input <json>", "Full input parameters as JSON (overrides prompt)")
31
31
  .option("--size <size>", "Image size: square_hd, landscape_4_3, landscape_16_9, portrait_4_3, portrait_16_9")
32
32
  .option("--num <n>", "Number of images to generate (default: 1)", "1")
33
33
  .option("--wait", "Wait for job to complete (polls until done)")
@@ -39,7 +39,7 @@ Examples:
39
39
  $ naive images generate "product photo" --model fal-ai/flux/schnell --wait
40
40
 
41
41
  What this does:
42
- 1. Submits an image generation request to fal.ai
42
+ 1. Submits an image generation request
43
43
  2. Returns a job ID (async processing)
44
44
  3. Use --wait to block until images are ready, or check with 'naive images status'
45
45
 
@@ -50,7 +50,7 @@ Available models (use 'naive images models' for full list):
50
50
  fal-ai/flux-realism Photorealistic results
51
51
  fal-ai/recraft-v3 Design-focused (logos, illustrations)
52
52
 
53
- Parameters (via --input JSON — passed directly to fal.ai):
53
+ Parameters (via --input JSON):
54
54
  prompt Text description of the image (required)
55
55
  image_size square_hd | square | landscape_4_3 | landscape_16_9 | portrait_4_3 | portrait_16_9
56
56
  num_images Number of images (1-4)
@@ -60,7 +60,7 @@ Parameters (via --input JSON — passed directly to fal.ai):
60
60
  output_format "jpeg" or "png" (default: jpeg)
61
61
  enable_safety_checker Boolean (default: true)
62
62
 
63
- Cost: dynamic — based on fal.ai model pricing ($0.50/credit)
63
+ Cost: dynamic — based on model pricing ($0.50/credit)
64
64
  Use 'GET /v1/images/pricing?model=<id>&num_images=<n>' to preview cost.
65
65
  Credits deducted only on successful completion. Failed jobs are free.
66
66
  `)
@@ -83,7 +83,7 @@ Cost: dynamic — based on fal.ai model pricing ($0.50/credit)
83
83
  error: { code: "missing_argument", message: "Provide a prompt or --input JSON" },
84
84
  recovery_steps: [
85
85
  { command: 'naive images generate "your prompt" --model fal-ai/flux/schnell', description: "Generate with a text prompt" },
86
- { command: "naive images generate --model <model> --input '{...}'", description: "Generate with full fal.ai parameters" },
86
+ { command: "naive images generate --model <model> --input '{...}'", description: "Generate with full model parameters" },
87
87
  { command: "naive images models", description: "List available models" },
88
88
  ],
89
89
  }, null, 2));
@@ -177,7 +177,7 @@ When completed, the result includes image URLs that you can download or use.
177
177
  });
178
178
  imagesCmd
179
179
  .command("stock <query>")
180
- .description("Search stock photos from Pexels")
180
+ .description("Search stock photos")
181
181
  .option("--count <n>", "Number of results (default: 10, max: 80)", "10")
182
182
  .option("--orientation <type>", "Filter: landscape | portrait | square")
183
183
  .option("--color <color>", "Filter by color (red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white, or hex like #ffffff)")
@@ -190,7 +190,7 @@ Examples:
190
190
  $ naive images stock "abstract background" --color blue --size large
191
191
 
192
192
  What this does:
193
- Searches Pexels for stock photos matching the query.
193
+ Searches stock photos matching the query.
194
194
  Returns photo URLs in multiple sizes (original, large, medium, small).
195
195
 
196
196
  Parameters:
@@ -232,13 +232,13 @@ Cost: 0 credits (free)
232
232
  });
233
233
  imagesCmd
234
234
  .command("models")
235
- .description("List available fal.ai image generation models with pricing")
235
+ .description("List available image generation models with pricing")
236
236
  .addHelpText("after", `
237
237
  Examples:
238
238
  $ naive images models
239
239
 
240
240
  What this does:
241
- Returns all supported fal.ai models with:
241
+ Returns all supported models with:
242
242
  - Model ID (use as --model parameter)
243
243
  - Name and description
244
244
  - Approximate generation time
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/commands/images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,6DAA6D,CAAC;KAC1E,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;CAmBvB,CAAC,CAAC;AAEH,SAAS;KACN,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;KAC3E,MAAM,CAAC,gBAAgB,EAAE,yDAAyD,CAAC;KACnF,MAAM,CAAC,eAAe,EAAE,mFAAmF,CAAC;KAC5G,MAAM,CAAC,WAAW,EAAE,2CAA2C,EAAE,GAAG,CAAC;KACrE,MAAM,CAAC,QAAQ,EAAE,6CAA6C,CAAC;KAC/D,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAI,EAAE,EAAE;IACjD,IAAI,KAA8B,CAAC;IAEnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,KAAK,GAAG;YACN,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW;YACpC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;SAC/B,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,kCAAkC,EAAE;YAChF,cAAc,EAAE;gBACd,EAAE,OAAO,EAAE,iEAAiE,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBAC1H,EAAE,OAAO,EAAE,uDAAuD,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBACzH,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,uBAAuB,EAAE;aACzE;SACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,qBAAqB,EAAE;QAC3D,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK;KACN,CAAC,CAAC;IACH,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAExC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,qBAAqB,CAAC;QACtD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,WAAW,CAAC;gBACV,MAAM,EAAE,2BAA2B;gBACnC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACpE,UAAU,EAAE,EAAE;gBACd,KAAK,EAAE,CAAC,6CAA6C,CAAC;aACvD,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC;gBACV,MAAM,EAAE,2BAA2B;gBACnC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;gBACnE,UAAU,EAAE;oBACV,EAAE,OAAO,EAAE,uBAAuB,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE;oBAC3F,EAAE,OAAO,EAAE,kBAAkB,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE;iBAClF;gBACD,KAAK,EAAE;oBACL,sCAAsC,SAAS,GAAG;oBAClD,gDAAgD;oBAChD,+CAA+C;iBAChD;gBACD,gBAAgB,EAAE,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,CAAC;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,CAAC;QACN,WAAW,CAAC;YACV,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,UAAU,EAAE;gBACV,EAAE,OAAO,EAAE,wDAAwD,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBAC5G,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,6BAA6B,EAAE;aACtF;YACD,KAAK,EAAE,CAAC,+BAA+B,CAAC;YACxC,gBAAgB,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,6CAA6C,CAAC;KAC1D,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;CAYvB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,cAAc,KAAK,EAAE,CAAC,CAAC;IAC5D,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAwE,CAAC;IAE3F,WAAW,CAAC;QACV,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM;gBACpD,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kCAAkC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;gBAC7H,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;gBAC1D,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,KAAK,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;gBAC5F,CAAC,CAAC,EAAE,CAAC;YACP,EAAE,OAAO,EAAE,oDAAoD,EAAE,WAAW,EAAE,wBAAwB,EAAE;SACzG;QACD,KAAK,EAAE;YACL,eAAe,IAAI,CAAC,MAAM,EAAE;YAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACnG;QACD,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,YAAY,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,0CAA0C,EAAE,IAAI,CAAC;KACvE,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,CAAC;KACvE,MAAM,CAAC,iBAAiB,EAAE,6HAA6H,CAAC;KACxJ,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;KACrE,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;CAmBvB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAI,EAAE,EAAE;IACpC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACnE,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAsD,CAAC;IACzE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;IAEvC,WAAW,CAAC;QACV,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,uBAAuB,KAAK,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACxF,EAAE,OAAO,EAAE,uBAAuB,KAAK,2BAA2B,EAAE,WAAW,EAAE,uBAAuB,EAAE;YAC1G,EAAE,OAAO,EAAE,wDAAwD,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,qCAAqC,EAAE;SACtK;QACD,KAAK,EAAE;YACL,SAAS,KAAK,sBAAsB,KAAK,GAAG;YAC5C,wEAAwE;YACxE,wBAAwB;SACzB;QACD,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;KACnE,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4DAA4D,CAAC;KACzE,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;CAUvB,CAAC;KACC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC1D,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEtC,WAAW,CAAC;QACV,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,wDAAwD,EAAE,WAAW,EAAE,4CAA4C,EAAE;SACjI;QACD,KAAK,EAAE;YACL,8EAA8E;YAC9E,mEAAmE;SACpE;QACD,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;KAClE,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,OAAO,CAAC,KAAa;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAA2F,CAAC;QAC9G,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5D,WAAW,CAAC;gBACV,MAAM,EAAE,2BAA2B;gBACnC,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,UAAU,EAAE;oBACV,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM;wBACpD,CAAC,CAAC;4BACE,EAAE,OAAO,EAAE,kCAAkC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,8BAA8B,EAAE;4BACzH,EAAE,OAAO,EAAE,4EAA4E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE;4BAClK,EAAE,OAAO,EAAE,0EAA0E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE;4BAChK,EAAE,OAAO,EAAE,2EAA2E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE;yBACjK;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,EAAE,OAAO,EAAE,wDAAwD,EAAE,WAAW,EAAE,wBAAwB,EAAE;oBAC5G,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,6BAA6B,EAAE;iBACtF;gBACD,KAAK,EAAE;oBACL,IAAI,CAAC,MAAM,KAAK,WAAW;wBACzB,CAAC,CAAC,yBAAyB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,iBAAiB;wBAC5E,CAAC,CAAC,yCAAyC;oBAC7C,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,wFAAwF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnI;gBACD,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,CAAC;aACrG,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/commands/images.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export const searchCmd = new Command("search")
7
7
  .option("--count <n>", "Number of results to return (default: 5)", "5")
8
8
  .addHelpText("after", `
9
9
  Subcommands:
10
- naive search <query> Quick web search (Tavily + Brave)
10
+ naive search <query> Quick web search
11
11
  naive search url <url> Extract content from a specific URL
12
12
  naive search research <query> Deep multi-source research (async)
13
13
 
@@ -19,14 +19,14 @@ Examples:
19
19
  $ naive search research "market size for AI coding tools" --depth thorough
20
20
 
21
21
  Quick Search:
22
- Uses Tavily or Brave to return top web results with:
22
+ Returns top web results with:
23
23
  - Title, URL, snippet for each result
24
24
  - Relevance scores (when available)
25
25
  Cost: 1 credit
26
26
 
27
27
  URL Extraction:
28
28
  Fetches and extracts content from a single URL.
29
- Optionally uses AI (Groq) to extract specific information.
29
+ Optionally uses AI to extract specific information.
30
30
  Cost: 1 credit
31
31
 
32
32
  Deep Research:
@@ -84,7 +84,7 @@ Examples:
84
84
  What this does:
85
85
  1. Fetches the URL content (respects robots.txt)
86
86
  2. Extracts readable text from HTML
87
- 3. If --extract is provided, uses AI (Groq) to extract specific information
87
+ 3. If --extract is provided, uses AI to extract specific information
88
88
  4. Returns the extracted content
89
89
 
90
90
  Parameters:
@@ -124,7 +124,7 @@ Examples:
124
124
 
125
125
  What this does:
126
126
  1. Submits a research query to the async job system
127
- 2. The system searches multiple sources, synthesizes with AI (Groq)
127
+ 2. The system searches multiple sources, synthesizes with AI
128
128
  3. Returns a comprehensive report with sections and citations
129
129
 
130
130
  Depth levels:
@@ -2,7 +2,7 @@ import { Command } from "commander";
2
2
  import { apiRequest, handleApiError } from "../client.js";
3
3
  import { agentOutput } from "../output.js";
4
4
  export const seoCmd = new Command("seo")
5
- .description("SEO tools — keyword research, backlink analysis, and competitive intelligence via DataForSEO")
5
+ .description("SEO tools — keyword research, backlink analysis, and competitive intelligence")
6
6
  .addHelpText("after", `
7
7
  Subcommands:
8
8
  naive seo keywords Keyword research (Google, Bing, Google Trends)
@@ -24,7 +24,7 @@ Credits:
24
24
  // KEYWORDS
25
25
  // ===========================================================================
26
26
  const keywordsCmd = new Command("keywords")
27
- .description("Keyword research via DataForSEO Keywords Data API (Google, Bing, Google Trends)");
27
+ .description("Keyword research Keywords Data API (Google, Bing, Google Trends)");
28
28
  // --- Google Keywords ---
29
29
  const googleKwCmd = new Command("google")
30
30
  .description("Google Ads keyword data — search volume, keyword ideas, ad traffic");
@@ -57,7 +57,7 @@ function addKeywordSubcommand(parent, name, desc, engine, routePrefix) {
57
57
  opts.task ? "Async task submitted — check with task-get" : "Live results returned",
58
58
  "Cost: 1 credit (live calls only)",
59
59
  ],
60
- related_commands: [`naive seo keywords ${engine}`, "naive seo labs"],
60
+ related_commands: ["naive seo backlinks", "naive seo labs"],
61
61
  });
62
62
  });
63
63
  }
@@ -80,6 +80,7 @@ addKeywordSubcommand(googleKwCmd, "ad-traffic-by-platforms", "Get ad traffic by
80
80
  result: resp.data,
81
81
  next_steps: [],
82
82
  hints: ["Free endpoint — no credits used"],
83
+ related_commands: ["naive seo backlinks", "naive seo labs"],
83
84
  });
84
85
  });
85
86
  });
@@ -95,6 +96,7 @@ googleKwCmd
95
96
  result: resp.data,
96
97
  next_steps: [],
97
98
  hints: ["Task results retrieved"],
99
+ related_commands: ["naive seo backlinks", "naive seo labs"],
98
100
  });
99
101
  });
100
102
  googleKwCmd
@@ -108,6 +110,7 @@ googleKwCmd
108
110
  result: resp.data,
109
111
  next_steps: [],
110
112
  hints: ["Use task-get to retrieve results for ready tasks"],
113
+ related_commands: ["naive seo backlinks", "naive seo labs"],
111
114
  });
112
115
  });
113
116
  // --- Bing Keywords ---
@@ -130,6 +133,7 @@ addKeywordSubcommand(bingKwCmd, "keyword-performance", "Get Bing keyword perform
130
133
  result: resp.data,
131
134
  next_steps: [],
132
135
  hints: ["Free endpoint — no credits used"],
136
+ related_commands: ["naive seo backlinks", "naive seo labs"],
133
137
  });
134
138
  });
135
139
  });
@@ -144,6 +148,7 @@ bingKwCmd
144
148
  result: resp.data,
145
149
  next_steps: [],
146
150
  hints: ["Task results retrieved"],
151
+ related_commands: ["naive seo backlinks", "naive seo labs"],
147
152
  });
148
153
  });
149
154
  bingKwCmd
@@ -157,6 +162,7 @@ bingKwCmd
157
162
  result: resp.data,
158
163
  next_steps: [],
159
164
  hints: ["Use task-get to retrieve results for ready tasks"],
165
+ related_commands: ["naive seo backlinks", "naive seo labs"],
160
166
  });
161
167
  });
162
168
  // --- Google Trends ---
@@ -175,6 +181,7 @@ addKeywordSubcommand(trendsKwCmd, "explore", "Explore Google Trends data", "goog
175
181
  result: resp.data,
176
182
  next_steps: [],
177
183
  hints: ["Free endpoint — no credits used"],
184
+ related_commands: ["naive seo backlinks", "naive seo labs"],
178
185
  });
179
186
  });
180
187
  });
@@ -189,6 +196,7 @@ trendsKwCmd
189
196
  result: resp.data,
190
197
  next_steps: [],
191
198
  hints: ["Task results retrieved"],
199
+ related_commands: ["naive seo backlinks", "naive seo labs"],
192
200
  });
193
201
  });
194
202
  trendsKwCmd
@@ -202,6 +210,7 @@ trendsKwCmd
202
210
  result: resp.data,
203
211
  next_steps: [],
204
212
  hints: ["Use task-get to retrieve results for ready tasks"],
213
+ related_commands: ["naive seo backlinks", "naive seo labs"],
205
214
  });
206
215
  });
207
216
  // Keywords utility
@@ -216,6 +225,7 @@ keywordsCmd
216
225
  result: resp.data,
217
226
  next_steps: [],
218
227
  hints: ["Free endpoint — no credits used"],
228
+ related_commands: ["naive seo backlinks", "naive seo labs"],
219
229
  });
220
230
  });
221
231
  keywordsCmd.addCommand(googleKwCmd);
@@ -250,7 +260,7 @@ function addBacklinkSubcommand(name, desc) {
250
260
  { command: "naive seo backlinks summary --target <domain>", description: "Get backlink summary for a domain" },
251
261
  ],
252
262
  hints: ["Cost: 2 credits"],
253
- related_commands: ["naive seo backlinks", "naive seo labs"],
263
+ related_commands: ["naive seo keywords", "naive seo labs"],
254
264
  });
255
265
  });
256
266
  }
@@ -287,6 +297,7 @@ backlinksCmd
287
297
  result: resp.data,
288
298
  next_steps: [],
289
299
  hints: ["Free endpoint — no credits used"],
300
+ related_commands: ["naive seo keywords", "naive seo labs"],
290
301
  });
291
302
  });
292
303
  backlinksCmd
@@ -300,6 +311,7 @@ backlinksCmd
300
311
  result: resp.data,
301
312
  next_steps: [],
302
313
  hints: ["Free endpoint — no credits used"],
314
+ related_commands: ["naive seo keywords", "naive seo labs"],
303
315
  });
304
316
  });
305
317
  backlinksCmd
@@ -315,13 +327,14 @@ backlinksCmd
315
327
  result: resp.data,
316
328
  next_steps: [],
317
329
  hints: ["Free endpoint — no credits used"],
330
+ related_commands: ["naive seo keywords", "naive seo labs"],
318
331
  });
319
332
  });
320
333
  // ===========================================================================
321
334
  // LABS
322
335
  // ===========================================================================
323
336
  const labsCmd = new Command("labs")
324
- .description("DataForSEO Labs — competitive intelligence, SERP analysis, keyword difficulty");
337
+ .description("SEO Labs — competitive intelligence, SERP analysis, keyword difficulty");
325
338
  // --- Google Labs ---
326
339
  const googleLabsCmd = new Command("google")
327
340
  .description("Google SERP analysis — ranked keywords, competitors, domain metrics");
@@ -350,7 +363,7 @@ function addLabsSubcommand(parent, name, desc, engine) {
350
363
  { command: `naive seo labs ${engine} ${name} --help`, description: "See all options" },
351
364
  ],
352
365
  hints: ["Cost: 2 credits"],
353
- related_commands: [`naive seo labs ${engine}`, "naive seo keywords"],
366
+ related_commands: ["naive seo keywords", "naive seo backlinks"],
354
367
  });
355
368
  });
356
369
  }
@@ -415,6 +428,7 @@ labsCmd
415
428
  result: resp.data,
416
429
  next_steps: [],
417
430
  hints: ["Free endpoint — no credits used"],
431
+ related_commands: ["naive seo keywords", "naive seo backlinks"],
418
432
  });
419
433
  });
420
434
  labsCmd
@@ -428,11 +442,12 @@ labsCmd
428
442
  result: resp.data,
429
443
  next_steps: [],
430
444
  hints: ["Free endpoint — no credits used"],
445
+ related_commands: ["naive seo keywords", "naive seo backlinks"],
431
446
  });
432
447
  });
433
448
  labsCmd
434
449
  .command("status")
435
- .description("Check DataForSEO Labs API status (free)")
450
+ .description("Check SEO Labs API status (free)")
436
451
  .action(async () => {
437
452
  const resp = await apiRequest("GET", "/v1/seo/labs/status");
438
453
  handleApiError("seo.labs.status", resp);
@@ -441,6 +456,7 @@ labsCmd
441
456
  result: resp.data,
442
457
  next_steps: [],
443
458
  hints: ["Free endpoint — no credits used"],
459
+ related_commands: ["naive seo keywords", "naive seo backlinks"],
444
460
  });
445
461
  });
446
462
  labsCmd.addCommand(googleLabsCmd);