@usenaive-sdk/cli 0.5.2 → 0.7.0

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,349 @@
1
+ import { Command } from "commander";
2
+ import { apiRequest, handleApiError } from "../client.js";
3
+ import { agentOutput } from "../output.js";
4
+ export const phoneCmd = new Command("phone")
5
+ .description("Provision and manage phone numbers (voice + SMS) via Twilio")
6
+ .addHelpText("after", `
7
+ Prerequisites:
8
+ Provisioning a phone number requires a completed LLC formation, which itself
9
+ requires KYC verification. The full chain is:
10
+ 1. naive verification start (KYC for company members)
11
+ 2. naive formation submit (LLC formation via Doola)
12
+ 3. naive phone provision (this command)
13
+ Run \`naive verification list\` or \`naive formation list\` to check current state.
14
+
15
+ Subcommands:
16
+ naive phone provision Buy a US local phone number (voice live immediately; SMS after TCR approval)
17
+ naive phone list List phone numbers for your company
18
+ naive phone status [id] Show provisioning + Trust Hub status for one or all phones
19
+ naive phone send Send an outbound SMS from a provisioned number
20
+ naive phone messages List received SMS for a phone (newest first)
21
+ naive phone read Read full content of one received SMS by id
22
+
23
+ Workflow:
24
+ 1. naive phone provision → buys number into a Twilio subaccount,
25
+ submits Trust Hub registration in parallel.
26
+ Voice + inbound SMS work immediately.
27
+ 2. naive phone status → check Trust Hub progress (typical: 14-21d).
28
+ 3. SMS auto-activates → No customer action needed; we get notified
29
+ when the campaign is approved and flip the
30
+ capability on automatically.
31
+
32
+ Note: Outbound SMS to US numbers is blocked by TCR until your campaign is
33
+ approved (~3 weeks). Attempting to send before activation returns
34
+ compliance_pending with no message sent and no charges incurred.
35
+
36
+ Inbound SMS works the moment the number is provisioned — no TCR gate. Use
37
+ 'naive phone messages <phoneId>' to see incoming texts.
38
+ `);
39
+ phoneCmd
40
+ .command("provision")
41
+ .description("Buy a US local number and kick off Trust Hub registration")
42
+ .option("--area-code <code>", "Preferred US area code (3 digits, e.g. 415)")
43
+ .option("--label <label>", "Friendly label for the number")
44
+ .addHelpText("after", `
45
+ Prerequisites:
46
+ Provisioning a phone number requires a completed LLC formation, which itself
47
+ requires KYC verification. The full chain is:
48
+ 1. naive verification start (KYC for company members)
49
+ 2. naive formation submit (LLC formation via Doola)
50
+ 3. naive phone provision (this command)
51
+ Run \`naive verification list\` or \`naive formation list\` to check current state.
52
+ `)
53
+ .action(async (opts) => {
54
+ const body = {};
55
+ if (opts.areaCode)
56
+ body.area_code = opts.areaCode;
57
+ if (opts.label)
58
+ body.label = opts.label;
59
+ const resp = await apiRequest("POST", "/v1/phone/provision", body);
60
+ handleApiError("phone.provision", resp);
61
+ const data = resp.data;
62
+ agentOutput({
63
+ action: "phone.provision",
64
+ result: resp.data,
65
+ next_steps: [
66
+ { command: `naive phone status ${data.phone.id}`, description: "Check Trust Hub progress" },
67
+ { command: "naive phone list", description: "List all phone numbers" },
68
+ ],
69
+ hints: [
70
+ `Number ${data.phone.e164} is LIVE for voice + inbound SMS.`,
71
+ `Outbound SMS will auto-activate when TCR campaign is approved (${data.trusthub.eta}).`,
72
+ "No customer action required during the pending window.",
73
+ ],
74
+ related_commands: ["naive phone list", "naive phone status"],
75
+ });
76
+ });
77
+ phoneCmd
78
+ .command("list", { isDefault: true })
79
+ .description("List phone numbers for your company")
80
+ .action(async () => {
81
+ const resp = await apiRequest("GET", "/v1/phone");
82
+ handleApiError("phone.list", resp);
83
+ const data = resp.data;
84
+ const count = data.phones?.length ?? 0;
85
+ agentOutput({
86
+ action: "phone.list",
87
+ result: resp.data,
88
+ next_steps: count > 0
89
+ ? [{ command: `naive phone status ${data.phones[0].id}`, description: "Inspect first phone number" }]
90
+ : [{ command: "naive phone provision", description: "Provision a new phone number" }],
91
+ hints: [`${count} phone number${count !== 1 ? "s" : ""} on file`],
92
+ related_commands: ["naive phone provision", "naive phone status"],
93
+ });
94
+ });
95
+ function formatPipelineStatus(state) {
96
+ // Stage 1 — Customer Profile (the SCP from Sprint 1).
97
+ const profileStage = {
98
+ name: "Customer Profile",
99
+ status: state.status,
100
+ icon: state.status === "profile_approved" ? "OK" : state.status === "profile_rejected" ? "FAIL" : "PENDING",
101
+ detail: state.approved_at
102
+ ? `approved ${new Date(state.approved_at).toDateString()}`
103
+ : `last updated ${new Date(state.updated_at).toDateString()}`,
104
+ };
105
+ // Stage 2 — Brand Registration.
106
+ const brand = state.brand;
107
+ const brandStage = {
108
+ name: "Brand Registration",
109
+ status: brand?.status ?? "not_started",
110
+ icon: !brand
111
+ ? "WAIT"
112
+ : brand.status === "brand_approved"
113
+ ? "OK"
114
+ : brand.status === "brand_rejected"
115
+ ? "FAIL"
116
+ : "PENDING",
117
+ detail: !brand
118
+ ? "waiting on Customer Profile approval"
119
+ : brand.approved_at
120
+ ? `approved ${new Date(brand.approved_at).toDateString()}, trust_score: ${brand.brand_score ?? "n/a"}`
121
+ : `pending${brand.mock ? " (mock)" : ""}`,
122
+ };
123
+ // Stage 3 — Campaign.
124
+ const campaign = state.campaign;
125
+ const campaignStage = {
126
+ name: "Campaign",
127
+ status: campaign?.status ?? "not_started",
128
+ icon: !campaign
129
+ ? "WAIT"
130
+ : campaign.status === "campaign_approved"
131
+ ? "OK"
132
+ : campaign.status === "campaign_rejected"
133
+ ? "FAIL"
134
+ : "PENDING",
135
+ detail: !campaign
136
+ ? "waiting on Brand approval"
137
+ : campaign.approved_at
138
+ ? `approved ${new Date(campaign.approved_at).toDateString()}`
139
+ : campaign.status === "campaign_rejected" && campaign.errors?.[0]
140
+ ? `rejected: ${String(campaign.errors[0].message ?? campaign.errors[0].error_code ?? "see errors")}`
141
+ : `pending${campaign.mock ? " (mock)" : ""} (~7-14 more days)`,
142
+ };
143
+ const phones = (state.phones ?? []).map((p) => {
144
+ const outbound = Boolean(p.capabilities?.sms_outbound ?? p.capabilities?.sms);
145
+ return {
146
+ id: p.id,
147
+ e164: p.e164,
148
+ voice: p.capabilities?.voice ? "active" : "pending",
149
+ inbound_sms: p.capabilities?.sms_inbound ? "active" : "pending",
150
+ outbound_sms: campaign?.status === "campaign_rejected"
151
+ ? "rejected"
152
+ : outbound
153
+ ? "active"
154
+ : "pending",
155
+ carrier_propagation_complete: p.carrier_propagation_complete,
156
+ };
157
+ });
158
+ return { stages: [profileStage, brandStage, campaignStage], phones };
159
+ }
160
+ phoneCmd
161
+ .command("status [id]")
162
+ .description("Show provisioning + Trust Hub pipeline status (omit id for the 3-stage company view)")
163
+ .action(async (id) => {
164
+ if (id) {
165
+ const phoneResp = await apiRequest("GET", `/v1/phone/${id}`);
166
+ handleApiError("phone.status", phoneResp);
167
+ const phone = phoneResp.data;
168
+ const trusthubResp = await apiRequest("GET", "/v1/phone/trusthub/current");
169
+ // status may legitimately 404 before Trust Hub starts — surface but don't fail.
170
+ const trusthub = trusthubResp.status === 200 ? trusthubResp.data : null;
171
+ const pipeline = trusthub ? formatPipelineStatus(trusthub) : null;
172
+ agentOutput({
173
+ action: "phone.status",
174
+ result: { phone, trusthub, pipeline },
175
+ next_steps: (phone.capabilities?.sms_outbound ?? phone.capabilities?.sms)
176
+ ? [{ command: `naive phone send --from ${phone.id} --to <e164> --body "..."`, description: "Send an SMS" }]
177
+ : [{ command: `naive phone status ${phone.id}`, description: "Refresh status" }],
178
+ hints: [
179
+ `Phone ${phone.e164}: voice=${phone.capabilities?.voice ?? false}, inbound_sms=${phone.capabilities?.sms_inbound ?? false}, outbound_sms=${phone.capabilities?.sms_outbound ?? phone.capabilities?.sms ?? false}`,
180
+ trusthub ? `Trust Hub: ${trusthub.status}` : "Trust Hub flow not yet started",
181
+ ],
182
+ related_commands: ["naive phone provision", "naive phone list"],
183
+ });
184
+ return;
185
+ }
186
+ const resp = await apiRequest("GET", "/v1/phone/trusthub/current");
187
+ handleApiError("phone.status", resp);
188
+ const trusthub = resp.data;
189
+ const { stages, phones } = formatPipelineStatus(trusthub);
190
+ // Build human-readable hint lines (the 3-stage pipeline view).
191
+ const hints = [];
192
+ hints.push("Pipeline Status:");
193
+ for (const stage of stages) {
194
+ hints.push(` [${stage.icon}] ${stage.name}: ${stage.status}${stage.detail ? ` — ${stage.detail}` : ""}`);
195
+ }
196
+ if (phones.length > 0) {
197
+ hints.push("");
198
+ hints.push("Phones:");
199
+ for (const p of phones) {
200
+ hints.push(` ${p.e164} (id: ${p.id})`);
201
+ hints.push(` Voice in/out: ${p.voice === "active" ? "active now" : "pending"}`);
202
+ hints.push(` Inbound SMS: ${p.inbound_sms === "active" ? "active now" : "pending"}`);
203
+ hints.push(` Outbound SMS: ${p.outbound_sms === "active"
204
+ ? `active${p.carrier_propagation_complete ? " (carrier propagation complete)" : ""} — try naive phone send --from ${p.id} --to <e164> --body "..."`
205
+ : p.outbound_sms === "rejected"
206
+ ? "rejected — file support@usenaive.ai"
207
+ : "unlocks when campaign approves"}`);
208
+ }
209
+ }
210
+ else {
211
+ hints.push("");
212
+ hints.push("No phone numbers provisioned yet. Run `naive phone provision`.");
213
+ }
214
+ const allUnlocked = phones.length > 0 && phones.every((p) => p.outbound_sms === "active");
215
+ const anyRejected = phones.some((p) => p.outbound_sms === "rejected") ||
216
+ stages.some((s) => s.icon === "FAIL");
217
+ const nextSteps = phones.length === 0
218
+ ? [{ command: "naive phone provision", description: "Provision your first phone number" }]
219
+ : anyRejected
220
+ ? [{ command: "naive phone status", description: "Refresh after support resolves the issue" }]
221
+ : allUnlocked
222
+ ? [{
223
+ command: `naive phone send --from ${phones[0].id} --to <e164> --body "Hi"`,
224
+ description: "Send an SMS",
225
+ }]
226
+ : [{ command: "naive phone status", description: "Refresh — no action required from you" }];
227
+ agentOutput({
228
+ action: "phone.status",
229
+ result: { stages, phones, trusthub },
230
+ next_steps: nextSteps,
231
+ hints,
232
+ related_commands: ["naive phone provision", "naive phone list"],
233
+ });
234
+ });
235
+ phoneCmd
236
+ .command("send")
237
+ .description("Send an outbound SMS from one of your provisioned numbers")
238
+ .requiredOption("--from <phoneId>", "Phone number id (UUID — see `naive phone list`)")
239
+ .requiredOption("--to <e164>", "Recipient phone number in E.164 format, e.g. +14155551234")
240
+ .requiredOption("--body <text>", "SMS body text")
241
+ .action(async (opts) => {
242
+ const resp = await apiRequest("POST", `/v1/phone/${opts.from}/sms`, {
243
+ to: opts.to,
244
+ body: opts.body,
245
+ });
246
+ handleApiError("phone.send", resp);
247
+ const result = resp.data;
248
+ agentOutput({
249
+ action: "phone.send",
250
+ result,
251
+ next_steps: [
252
+ { command: `naive phone status ${opts.from}`, description: "Check phone status" },
253
+ ],
254
+ hints: [
255
+ `Sent SMS to ${result.to} (twilio_sid=${result.twilio_sid}, status=${result.status}).`,
256
+ ],
257
+ related_commands: ["naive phone status", "naive phone list"],
258
+ });
259
+ });
260
+ phoneCmd
261
+ .command("messages <phoneId>")
262
+ .description("List received SMS messages for a phone (newest first)")
263
+ .option("--limit <n>", "Maximum number of messages to return (default: 20, max: 100)", "20")
264
+ .option("--cursor <cursor>", "Pagination cursor returned from a previous call")
265
+ .addHelpText("after", `
266
+ Examples:
267
+ $ naive phone messages 550e8400-e29b-41d4-a716-446655440000
268
+ $ naive phone messages <phoneId> --limit 50
269
+ $ naive phone messages <phoneId> --cursor 2026-05-01T00:00:00.000Z
270
+
271
+ What this does:
272
+ Returns received SMS messages for the given phone, ordered by most recent.
273
+ Each message includes:
274
+ - id: message UUID (use with 'naive phone read')
275
+ - from: sender E.164
276
+ - to: your phone's E.164
277
+ - body_preview: first 80 chars of the body
278
+ - num_media: MMS attachment count (0 for plain SMS)
279
+ - received_at: ISO timestamp
280
+
281
+ Use --cursor with the previous response's next_cursor to page older.
282
+ Inbound SMS works immediately on provisioning — no TCR gate.
283
+ `)
284
+ .action(async (phoneId, opts) => {
285
+ const params = new URLSearchParams({ limit: opts.limit });
286
+ if (opts.cursor)
287
+ params.set("cursor", opts.cursor);
288
+ const resp = await apiRequest("GET", `/v1/phone/${phoneId}/messages?${params}`);
289
+ handleApiError("phone.messages", resp);
290
+ const data = resp.data;
291
+ const count = data.messages?.length ?? 0;
292
+ agentOutput({
293
+ action: "phone.messages",
294
+ result: resp.data,
295
+ next_steps: [
296
+ ...(count > 0
297
+ ? [{ command: `naive phone read ${data.messages[0].id}`, description: "Read the most recent message in full" }]
298
+ : []),
299
+ ...(data.next_cursor
300
+ ? [{ command: `naive phone messages ${phoneId} --cursor ${data.next_cursor}`, description: "Load older messages" }]
301
+ : []),
302
+ { command: `naive phone send --from ${phoneId} --to <e164> --body <text>`, description: "Reply to a message" },
303
+ ],
304
+ hints: [
305
+ `${count} message${count !== 1 ? "s" : ""} found${data.next_cursor ? " (more available — use --cursor to page)" : ""}`,
306
+ "Use 'naive phone read <id>' to see the full body and any media URLs",
307
+ ],
308
+ related_commands: ["naive phone read", "naive phone send", "naive phone list"],
309
+ });
310
+ });
311
+ phoneCmd
312
+ .command("read <messageId>")
313
+ .description("Read the full content of a received SMS by its id")
314
+ .addHelpText("after", `
315
+ Examples:
316
+ $ naive phone read 550e8400-e29b-41d4-a716-446655440000
317
+
318
+ What this does:
319
+ Returns the full message including:
320
+ - from, to, body
321
+ - num_media + media_urls (for MMS attachments)
322
+ - received_at
323
+ - phone_id (the receiving phone)
324
+ - metadata (raw webhook extras, if any)
325
+
326
+ Use this to:
327
+ - Read a full SMS after seeing it in 'naive phone messages'
328
+ - Extract media URLs for MMS processing
329
+ - Reply with 'naive phone send --from <phone_id> --to <from> --body <text>'
330
+ `)
331
+ .action(async (messageId) => {
332
+ const resp = await apiRequest("GET", `/v1/phone/messages/${messageId}`);
333
+ handleApiError("phone.read", resp);
334
+ const data = resp.data;
335
+ agentOutput({
336
+ action: "phone.read",
337
+ result: resp.data,
338
+ next_steps: [
339
+ { command: `naive phone messages ${data.phone_id}`, description: "Go back to the inbox list" },
340
+ { command: `naive phone send --from ${data.phone_id} --to ${data.from} --body <text>`, description: "Reply to this message" },
341
+ ],
342
+ hints: [
343
+ `Message from ${data.from} to ${data.to}, received ${data.received_at}`,
344
+ data.num_media > 0 ? `${data.num_media} media attachment${data.num_media !== 1 ? "s" : ""} — see media_urls` : "Plain SMS (no media)",
345
+ ],
346
+ related_commands: ["naive phone messages", "naive phone send"],
347
+ });
348
+ });
349
+ //# sourceMappingURL=phone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone.js","sourceRoot":"","sources":["../../src/commands/phone.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ Examples:
16
16
  What this does:
17
17
  1. Creates a user account (email + password)
18
18
  2. Creates a company workspace
19
- 3. Provisions an API agent with 20 free credits
19
+ 3. Provisions an API agent with 1 free credit
20
20
  4. Returns an API key saved to ~/.naive/config.json
21
21
 
22
22
  After registration:
@@ -47,7 +47,7 @@ After registration:
47
47
  company_id: data.company_id,
48
48
  company_name: data.company_name,
49
49
  credentials_saved: "~/.naive/config.json",
50
- initial_credits: 20,
50
+ initial_credits: 1,
51
51
  },
52
52
  next_steps: [
53
53
  { command: "naive status", description: "Verify account status and available credits" },
@@ -58,11 +58,11 @@ After registration:
58
58
  ],
59
59
  hints: [
60
60
  "Your API key is saved locally — all future commands authenticate automatically",
61
- "You start with 20 free credits. Use 'naive usage' to track spending.",
61
+ "You start with 1 free credit. Buy more with 'naive billing topup' once it runs out. Use 'naive usage' to track spending.",
62
62
  "If you already have a Naive account from the dashboard, use 'naive login' instead",
63
63
  ],
64
64
  related_commands: ["naive login", "naive link", "naive whoami", "naive status"],
65
- help_markdown: "### Account Created\n\nYour agent is ready. The API key has been saved to `~/.naive/config.json` and will be used automatically for all subsequent commands.\n\n**Credit System**: You start with 20 free credits. Operations cost:\n- Web search: 1 credit\n- Email send: 1 credit\n- Image generation: varies (depends on model)\n- Video generation: varies (depends on model/duration)\n- Deep research: 3–8 credits (depth-dependent)\n\nUse `naive usage` to monitor spending.",
65
+ help_markdown: "### Account Created\n\nYour agent is ready. The API key has been saved to `~/.naive/config.json` and will be used automatically for all subsequent commands.\n\n**Credit System**: You start with 1 free credit, then buy more with `naive billing topup`. Operations cost:\n- Web search: 1 credit\n- Email send: 1 credit\n- Image generation: varies (depends on model)\n- Video generation: varies (depends on model/duration)\n- Deep research: 3–8 credits (depth-dependent)\n\nUse `naive usage` to monitor spending.",
66
66
  });
67
67
  });
68
68
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC/C,WAAW,CAAC,oDAAoD,CAAC;KACjE,cAAc,CAAC,eAAe,EAAE,kCAAkC,CAAC;KACnE,cAAc,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;KACnF,cAAc,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;KAClF,MAAM,CAAC,kBAAkB,EAAE,iDAAiD,CAAC;KAC7E,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBvB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE;QACzD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,OAAO;KAC3B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAErB,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAuF,CAAC;IAC1G,UAAU,CAAC;QACT,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC,CAAC;IAEH,WAAW,CAAC;QACV,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iBAAiB,EAAE,sBAAsB;YACzC,eAAe,EAAE,EAAE;SACpB;QACD,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,6CAA6C,EAAE;YACvF,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kDAAkD,EAAE;YAC9F,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,4CAA4C,EAAE;YAC7F,EAAE,OAAO,EAAE,mDAAmD,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACxG,EAAE,OAAO,EAAE,iCAAiC,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAChF;QACD,KAAK,EAAE;YACL,gFAAgF;YAChF,sEAAsE;YACtE,mFAAmF;SACpF;QACD,gBAAgB,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,CAAC;QAC/E,aAAa,EAAE,sdAAsd;KACte,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC/C,WAAW,CAAC,oDAAoD,CAAC;KACjE,cAAc,CAAC,eAAe,EAAE,kCAAkC,CAAC;KACnE,cAAc,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;KACnF,cAAc,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;KAClF,MAAM,CAAC,kBAAkB,EAAE,iDAAiD,CAAC;KAC7E,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBvB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE;QACzD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,OAAO;KAC3B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAErB,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAuF,CAAC;IAC1G,UAAU,CAAC;QACT,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC,CAAC;IAEH,WAAW,CAAC;QACV,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iBAAiB,EAAE,sBAAsB;YACzC,eAAe,EAAE,CAAC;SACnB;QACD,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,6CAA6C,EAAE;YACvF,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kDAAkD,EAAE;YAC9F,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,4CAA4C,EAAE;YAC7F,EAAE,OAAO,EAAE,mDAAmD,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACxG,EAAE,OAAO,EAAE,iCAAiC,EAAE,WAAW,EAAE,kBAAkB,EAAE;SAChF;QACD,KAAK,EAAE;YACL,gFAAgF;YAChF,0HAA0H;YAC1H,mFAAmF;SACpF;QACD,gBAAgB,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,CAAC;QAC/E,aAAa,EAAE,8fAA8f;KAC9gB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const tradingCmd: Command;