@usenaive-sdk/cli 0.6.0 → 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.
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/commands/billing.js +2 -2
- package/dist/commands/billing.js.map +1 -1
- package/dist/commands/phone.d.ts +2 -0
- package/dist/commands/phone.js +349 -0
- package/dist/commands/phone.js.map +1 -0
- package/dist/commands/register.js +4 -4
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/trading.d.ts +2 -0
- package/dist/commands/trading.js +333 -0
- package/dist/commands/trading.js.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -18,7 +18,7 @@ export function activeUserId() {
|
|
|
18
18
|
* AccountKit — matching the SDK and dashboard. The legacy routes don't run
|
|
19
19
|
* the subject middleware, so without this the header was silently ignored.
|
|
20
20
|
*/
|
|
21
|
-
const PER_USER_PRIMITIVES = new Set(["cards", "email", "domains", "verification", "formation", "social"]);
|
|
21
|
+
const PER_USER_PRIMITIVES = new Set(["cards", "trading", "email", "domains", "verification", "formation", "social"]);
|
|
22
22
|
function scopePathToUser(path, subject) {
|
|
23
23
|
if (!subject)
|
|
24
24
|
return path; // solo flow (no active user) keeps legacy behavior
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D,8EAA8E;AAC9E,0EAA0E;AAC1E,IAAI,aAAiC,CAAC;AACtC,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,aAAa,GAAG,MAAM,CAAC;AACzB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,IAAI,UAAU,EAAE,CAAC,cAAc,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/billing.js
CHANGED
|
@@ -23,7 +23,7 @@ Credit Packs (one-time purchase):
|
|
|
23
23
|
large 100 credits $44 (Best Value)
|
|
24
24
|
xl 250 credits $100
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
New accounts start with 1 free credit — buy more anytime with a credit pack or a plan.
|
|
27
27
|
|
|
28
28
|
Examples:
|
|
29
29
|
$ naive billing plans
|
|
@@ -55,7 +55,7 @@ billingCmd
|
|
|
55
55
|
next_steps: nextSteps,
|
|
56
56
|
hints: [
|
|
57
57
|
`Current plan: ${data.current_plan}`,
|
|
58
|
-
...(data.trial_eligible ? ["First-time subscribers get a 7-day free trial
|
|
58
|
+
...(data.trial_eligible ? ["First-time subscribers get a 7-day free trial on a paid plan"] : []),
|
|
59
59
|
],
|
|
60
60
|
related_commands: ["naive billing subscribe", "naive billing upgrade", "naive billing packs", "naive billing status"],
|
|
61
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.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,UAAU,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC7C,WAAW,CAAC,+DAA+D,CAAC;KAC5E,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BvB,CAAC,CAAC;AAEH,UAAU;KACP,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,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,MAAM,IAAI,GAAG,IAAI,CAAC,IAKjB,CAAC;IAEF,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC,CAAC;IAC9H,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAE3F,WAAW,CAAC;QACV,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE;YACL,iBAAiB,IAAI,CAAC,YAAY,EAAE;YACpC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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:
|
|
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
|
|
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
|
|
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,
|
|
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,333 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
|
|
3
|
+
import { agentOutput } from "../output.js";
|
|
4
|
+
export const tradingCmd = new Command("trading")
|
|
5
|
+
.description("Trading — connect Alpaca via OAuth and trade stocks, options & crypto")
|
|
6
|
+
.addHelpText("after", `
|
|
7
|
+
Subcommands:
|
|
8
|
+
naive trading connect Start the Alpaca OAuth flow (returns an authorize URL)
|
|
9
|
+
naive trading connections List connected Alpaca environments (paper/live)
|
|
10
|
+
naive trading disconnect <env> Forget a stored Alpaca connection
|
|
11
|
+
naive trading account Show the connected Alpaca account
|
|
12
|
+
naive trading assets List tradable assets (--asset-class crypto|us_equity|us_option)
|
|
13
|
+
naive trading positions List open positions
|
|
14
|
+
naive trading position <symbol> Show one open position
|
|
15
|
+
naive trading close <symbol> Close (liquidate) a position
|
|
16
|
+
naive trading orders List orders
|
|
17
|
+
naive trading order Place an order
|
|
18
|
+
naive trading get-order <id> Show one order
|
|
19
|
+
naive trading cancel <id> Cancel an open order
|
|
20
|
+
naive trading quote Latest quote(s) for symbols
|
|
21
|
+
|
|
22
|
+
How it works:
|
|
23
|
+
Naive wraps Alpaca's OAuth2 Connect API. 'connect' returns an authorize_url —
|
|
24
|
+
open it, approve access, and Naive stores the bearer token. Then trade with
|
|
25
|
+
the same commands across stocks, options, and crypto (symbol decides the
|
|
26
|
+
market: AAPL, BTC/USD, AAPL241213C00250000).
|
|
27
|
+
|
|
28
|
+
Governance:
|
|
29
|
+
Placing orders, cancelling orders, and closing positions are SENSITIVE (they
|
|
30
|
+
move real money/assets). Depending on the user's Account Kit they may require
|
|
31
|
+
human approval — the command then returns status "pending_approval" and runs
|
|
32
|
+
only after 'naive approvals approve <id>'.
|
|
33
|
+
|
|
34
|
+
Examples:
|
|
35
|
+
$ naive trading connect --env paper
|
|
36
|
+
$ naive trading account
|
|
37
|
+
$ naive trading order --symbol BTC/USD --notional 25 --side buy --type market --tif gtc
|
|
38
|
+
$ naive trading order --symbol AAPL --qty 2 --side buy --type limit --limit-price 150 --tif day
|
|
39
|
+
$ naive trading positions
|
|
40
|
+
$ naive trading close BTCUSD
|
|
41
|
+
`);
|
|
42
|
+
tradingCmd
|
|
43
|
+
.command("connect")
|
|
44
|
+
.description("Start the Alpaca OAuth flow — returns an authorize URL to open")
|
|
45
|
+
.option("--env <env>", "Alpaca environment: paper (default) or live")
|
|
46
|
+
.option("--scope <scope>", "Space-delimited OAuth scopes (default: 'account:write trading data')")
|
|
47
|
+
.action(async (opts) => {
|
|
48
|
+
const resp = await apiRequest("POST", "/v1/trading/connect", {
|
|
49
|
+
env: opts.env,
|
|
50
|
+
scope: opts.scope,
|
|
51
|
+
});
|
|
52
|
+
handleApiError("trading.connect", resp);
|
|
53
|
+
const data = resp.data;
|
|
54
|
+
agentOutput({
|
|
55
|
+
action: "trading.connect",
|
|
56
|
+
result: resp.data,
|
|
57
|
+
next_steps: [
|
|
58
|
+
{ command: "naive trading connections", description: "Check status after authorizing" },
|
|
59
|
+
{ command: "naive trading account", description: "Read the account once active" },
|
|
60
|
+
],
|
|
61
|
+
hints: [
|
|
62
|
+
...(data.disclosure ? [`Disclosure (show to the user before they authorize): ${data.disclosure}`] : []),
|
|
63
|
+
`Open this URL to authorize Alpaca (${data.env ?? "paper"}): ${data.authorize_url ?? ""}`,
|
|
64
|
+
"After approving, Naive stores the token automatically.",
|
|
65
|
+
],
|
|
66
|
+
related_commands: ["naive trading connections", "naive trading account"],
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
tradingCmd
|
|
70
|
+
.command("connections")
|
|
71
|
+
.description("List connected Alpaca environments")
|
|
72
|
+
.action(async () => {
|
|
73
|
+
const resp = await apiRequest("GET", "/v1/trading/connections");
|
|
74
|
+
handleApiError("trading.connections", resp);
|
|
75
|
+
const data = resp.data;
|
|
76
|
+
const active = data.connections?.filter((c) => c.status === "active").length ?? 0;
|
|
77
|
+
agentOutput({
|
|
78
|
+
action: "trading.connections",
|
|
79
|
+
result: resp.data,
|
|
80
|
+
next_steps: active > 0
|
|
81
|
+
? [{ command: "naive trading account", description: "Read the connected account" }]
|
|
82
|
+
: [{ command: "naive trading connect --env paper", description: "Connect an Alpaca account" }],
|
|
83
|
+
hints: [`${active} active connection(s)`],
|
|
84
|
+
related_commands: ["naive trading connect", "naive trading disconnect"],
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
tradingCmd
|
|
88
|
+
.command("disconnect <env>")
|
|
89
|
+
.description("Forget a stored Alpaca connection (paper|live)")
|
|
90
|
+
.action(async (env) => {
|
|
91
|
+
const resp = await apiRequest("DELETE", `/v1/trading/connections/${env}`);
|
|
92
|
+
handleApiError("trading.disconnect", resp);
|
|
93
|
+
agentOutput({
|
|
94
|
+
action: "trading.disconnect",
|
|
95
|
+
result: resp.data,
|
|
96
|
+
next_steps: [{ command: "naive trading connect --env paper", description: "Reconnect when ready" }],
|
|
97
|
+
hints: [`Disconnected ${env}.`],
|
|
98
|
+
related_commands: ["naive trading connect", "naive trading connections"],
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
function envQuery(opts) {
|
|
102
|
+
return opts.env ? `?env=${encodeURIComponent(opts.env)}` : "";
|
|
103
|
+
}
|
|
104
|
+
tradingCmd
|
|
105
|
+
.command("account")
|
|
106
|
+
.description("Show the connected Alpaca account")
|
|
107
|
+
.option("--env <env>", "Alpaca environment (paper|live) — required if both are connected")
|
|
108
|
+
.action(async (opts) => {
|
|
109
|
+
const resp = await apiRequest("GET", `/v1/trading/account${envQuery(opts)}`);
|
|
110
|
+
handleApiError("trading.account", resp);
|
|
111
|
+
agentOutput({
|
|
112
|
+
action: "trading.account",
|
|
113
|
+
result: resp.data,
|
|
114
|
+
next_steps: [
|
|
115
|
+
{ command: "naive trading positions", description: "List open positions" },
|
|
116
|
+
{ command: "naive trading order --symbol BTC/USD --notional 25 --side buy --type market", description: "Place an order" },
|
|
117
|
+
],
|
|
118
|
+
hints: [],
|
|
119
|
+
related_commands: ["naive trading positions", "naive trading orders"],
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
tradingCmd
|
|
123
|
+
.command("assets")
|
|
124
|
+
.description("List tradable assets")
|
|
125
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
126
|
+
.option("--asset-class <class>", "Filter: crypto | us_equity | us_option")
|
|
127
|
+
.option("--status <status>", "Filter by status (e.g. active)")
|
|
128
|
+
.action(async (opts) => {
|
|
129
|
+
const params = new URLSearchParams();
|
|
130
|
+
if (opts.env)
|
|
131
|
+
params.set("env", opts.env);
|
|
132
|
+
if (opts.assetClass)
|
|
133
|
+
params.set("asset_class", opts.assetClass);
|
|
134
|
+
if (opts.status)
|
|
135
|
+
params.set("status", opts.status);
|
|
136
|
+
const q = params.toString();
|
|
137
|
+
const resp = await apiRequest("GET", `/v1/trading/assets${q ? `?${q}` : ""}`);
|
|
138
|
+
handleApiError("trading.assets", resp);
|
|
139
|
+
agentOutput({
|
|
140
|
+
action: "trading.assets",
|
|
141
|
+
result: resp.data,
|
|
142
|
+
next_steps: [{ command: "naive trading order --symbol <symbol> --qty <n> --side buy", description: "Trade an asset" }],
|
|
143
|
+
hints: [],
|
|
144
|
+
related_commands: ["naive trading order", "naive trading positions"],
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
tradingCmd
|
|
148
|
+
.command("positions")
|
|
149
|
+
.description("List open positions")
|
|
150
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
151
|
+
.action(async (opts) => {
|
|
152
|
+
const resp = await apiRequest("GET", `/v1/trading/positions${envQuery(opts)}`);
|
|
153
|
+
handleApiError("trading.positions", resp);
|
|
154
|
+
agentOutput({
|
|
155
|
+
action: "trading.positions",
|
|
156
|
+
result: resp.data,
|
|
157
|
+
next_steps: [{ command: "naive trading close <symbol>", description: "Liquidate a position" }],
|
|
158
|
+
hints: [],
|
|
159
|
+
related_commands: ["naive trading close", "naive trading account"],
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
tradingCmd
|
|
163
|
+
.command("position <symbol>")
|
|
164
|
+
.description("Show one open position (crypto position symbols are concatenated, e.g. BTCUSD)")
|
|
165
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
166
|
+
.action(async (symbol, opts) => {
|
|
167
|
+
const resp = await apiRequest("GET", `/v1/trading/positions/${encodeURIComponent(symbol)}${envQuery(opts)}`);
|
|
168
|
+
handleApiError("trading.position", resp);
|
|
169
|
+
agentOutput({
|
|
170
|
+
action: "trading.position",
|
|
171
|
+
result: resp.data,
|
|
172
|
+
next_steps: [{ command: `naive trading close ${symbol}`, description: "Liquidate this position" }],
|
|
173
|
+
hints: [],
|
|
174
|
+
related_commands: ["naive trading positions", "naive trading close"],
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
tradingCmd
|
|
178
|
+
.command("close <symbol>")
|
|
179
|
+
.description("Close (liquidate) a position — SENSITIVE, may require approval")
|
|
180
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
181
|
+
.option("--qty <qty>", "Quantity to close (default: entire position)")
|
|
182
|
+
.option("--percentage <pct>", "Percentage of the position to close")
|
|
183
|
+
.action(async (symbol, opts) => {
|
|
184
|
+
const params = new URLSearchParams();
|
|
185
|
+
if (opts.env)
|
|
186
|
+
params.set("env", opts.env);
|
|
187
|
+
if (opts.qty)
|
|
188
|
+
params.set("qty", opts.qty);
|
|
189
|
+
if (opts.percentage)
|
|
190
|
+
params.set("percentage", opts.percentage);
|
|
191
|
+
const q = params.toString();
|
|
192
|
+
const resp = await apiRequest("DELETE", `/v1/trading/positions/${encodeURIComponent(symbol)}${q ? `?${q}` : ""}`);
|
|
193
|
+
handleApiError("trading.close", resp);
|
|
194
|
+
if (handlePendingApproval("trading.close", resp))
|
|
195
|
+
return;
|
|
196
|
+
agentOutput({
|
|
197
|
+
action: "trading.close",
|
|
198
|
+
result: resp.data,
|
|
199
|
+
next_steps: [{ command: "naive trading positions", description: "Confirm the position is closed" }],
|
|
200
|
+
hints: [`Close order submitted for ${symbol}.`],
|
|
201
|
+
related_commands: ["naive trading positions"],
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
tradingCmd
|
|
205
|
+
.command("orders")
|
|
206
|
+
.description("List orders")
|
|
207
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
208
|
+
.option("--status <status>", "open | closed | all")
|
|
209
|
+
.option("--limit <limit>", "Max results")
|
|
210
|
+
.action(async (opts) => {
|
|
211
|
+
const params = new URLSearchParams();
|
|
212
|
+
if (opts.env)
|
|
213
|
+
params.set("env", opts.env);
|
|
214
|
+
if (opts.status)
|
|
215
|
+
params.set("status", opts.status);
|
|
216
|
+
if (opts.limit)
|
|
217
|
+
params.set("limit", opts.limit);
|
|
218
|
+
const q = params.toString();
|
|
219
|
+
const resp = await apiRequest("GET", `/v1/trading/orders${q ? `?${q}` : ""}`);
|
|
220
|
+
handleApiError("trading.orders", resp);
|
|
221
|
+
agentOutput({
|
|
222
|
+
action: "trading.orders",
|
|
223
|
+
result: resp.data,
|
|
224
|
+
next_steps: [{ command: "naive trading order --symbol <symbol> --qty <n> --side buy", description: "Place a new order" }],
|
|
225
|
+
hints: [],
|
|
226
|
+
related_commands: ["naive trading order", "naive trading cancel"],
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
tradingCmd
|
|
230
|
+
.command("order")
|
|
231
|
+
.description("Place an order (stocks, options, crypto) — SENSITIVE, may require approval")
|
|
232
|
+
.requiredOption("--symbol <symbol>", "Asset symbol, e.g. AAPL or BTC/USD")
|
|
233
|
+
.requiredOption("--side <side>", "buy | sell")
|
|
234
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
235
|
+
.option("--qty <qty>", "Quantity (shares/coins). Use this OR --notional")
|
|
236
|
+
.option("--notional <amount>", "Notional dollar amount. Use this OR --qty")
|
|
237
|
+
.option("--type <type>", "market | limit | stop | stop_limit | trailing_stop (default market)")
|
|
238
|
+
.option("--tif <tif>", "time_in_force: day | gtc | opg | cls | ioc | fok (crypto: gtc|ioc)")
|
|
239
|
+
.option("--limit-price <price>", "Limit price (for limit/stop_limit)")
|
|
240
|
+
.option("--stop-price <price>", "Stop price (for stop/stop_limit)")
|
|
241
|
+
.option("--trail-price <price>", "Trail price (trailing_stop)")
|
|
242
|
+
.option("--trail-percent <pct>", "Trail percent (trailing_stop)")
|
|
243
|
+
.option("--order-class <class>", "simple | bracket | oco | oto")
|
|
244
|
+
.option("--extended-hours", "Allow execution during extended hours (equities)")
|
|
245
|
+
.option("--client-order-id <id>", "Idempotent client order id")
|
|
246
|
+
.action(async (opts) => {
|
|
247
|
+
const resp = await apiRequest("POST", "/v1/trading/orders", {
|
|
248
|
+
env: opts.env,
|
|
249
|
+
symbol: opts.symbol,
|
|
250
|
+
side: opts.side,
|
|
251
|
+
qty: opts.qty,
|
|
252
|
+
notional: opts.notional,
|
|
253
|
+
type: opts.type,
|
|
254
|
+
time_in_force: opts.tif,
|
|
255
|
+
limit_price: opts.limitPrice,
|
|
256
|
+
stop_price: opts.stopPrice,
|
|
257
|
+
trail_price: opts.trailPrice,
|
|
258
|
+
trail_percent: opts.trailPercent,
|
|
259
|
+
order_class: opts.orderClass,
|
|
260
|
+
extended_hours: opts.extendedHours,
|
|
261
|
+
client_order_id: opts.clientOrderId,
|
|
262
|
+
});
|
|
263
|
+
handleApiError("trading.order", resp);
|
|
264
|
+
if (handlePendingApproval("trading.order", resp))
|
|
265
|
+
return;
|
|
266
|
+
const data = resp.data;
|
|
267
|
+
agentOutput({
|
|
268
|
+
action: "trading.order",
|
|
269
|
+
result: resp.data,
|
|
270
|
+
next_steps: [
|
|
271
|
+
...(data.id ? [{ command: `naive trading get-order ${data.id}`, description: "Check order status" }] : []),
|
|
272
|
+
{ command: "naive trading positions", description: "See resulting positions" },
|
|
273
|
+
],
|
|
274
|
+
hints: [`Order ${data.status ?? "submitted"}.`],
|
|
275
|
+
related_commands: ["naive trading get-order", "naive trading orders", "naive trading positions"],
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
tradingCmd
|
|
279
|
+
.command("get-order <order_id>")
|
|
280
|
+
.description("Show one order")
|
|
281
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
282
|
+
.action(async (orderId, opts) => {
|
|
283
|
+
const resp = await apiRequest("GET", `/v1/trading/orders/${encodeURIComponent(orderId)}${envQuery(opts)}`);
|
|
284
|
+
handleApiError("trading.get-order", resp);
|
|
285
|
+
agentOutput({
|
|
286
|
+
action: "trading.get-order",
|
|
287
|
+
result: resp.data,
|
|
288
|
+
next_steps: [{ command: `naive trading cancel ${orderId}`, description: "Cancel if still open" }],
|
|
289
|
+
hints: [],
|
|
290
|
+
related_commands: ["naive trading cancel", "naive trading orders"],
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
tradingCmd
|
|
294
|
+
.command("cancel <order_id>")
|
|
295
|
+
.description("Cancel an open order — SENSITIVE, may require approval")
|
|
296
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
297
|
+
.action(async (orderId, opts) => {
|
|
298
|
+
const resp = await apiRequest("DELETE", `/v1/trading/orders/${encodeURIComponent(orderId)}${envQuery(opts)}`);
|
|
299
|
+
handleApiError("trading.cancel", resp);
|
|
300
|
+
if (handlePendingApproval("trading.cancel", resp))
|
|
301
|
+
return;
|
|
302
|
+
agentOutput({
|
|
303
|
+
action: "trading.cancel",
|
|
304
|
+
result: resp.data,
|
|
305
|
+
next_steps: [{ command: "naive trading orders --status open", description: "Confirm remaining open orders" }],
|
|
306
|
+
hints: [`Cancel requested for ${orderId}.`],
|
|
307
|
+
related_commands: ["naive trading orders"],
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
tradingCmd
|
|
311
|
+
.command("quote")
|
|
312
|
+
.description("Latest quote(s) for one or more symbols")
|
|
313
|
+
.requiredOption("--symbols <symbols>", "Comma-separated symbols, e.g. BTC/USD,ETH/USD or AAPL")
|
|
314
|
+
.option("--class <class>", "crypto (default) | us_equity")
|
|
315
|
+
.option("--env <env>", "Alpaca environment (paper|live)")
|
|
316
|
+
.action(async (opts) => {
|
|
317
|
+
const params = new URLSearchParams();
|
|
318
|
+
params.set("symbols", opts.symbols);
|
|
319
|
+
if (opts.class)
|
|
320
|
+
params.set("class", opts.class);
|
|
321
|
+
if (opts.env)
|
|
322
|
+
params.set("env", opts.env);
|
|
323
|
+
const resp = await apiRequest("GET", `/v1/trading/market-data?${params.toString()}`);
|
|
324
|
+
handleApiError("trading.quote", resp);
|
|
325
|
+
agentOutput({
|
|
326
|
+
action: "trading.quote",
|
|
327
|
+
result: resp.data,
|
|
328
|
+
next_steps: [{ command: "naive trading order --symbol <symbol> --qty <n> --side buy", description: "Act on the quote" }],
|
|
329
|
+
hints: [],
|
|
330
|
+
related_commands: ["naive trading order"],
|
|
331
|
+
});
|
|
332
|
+
});
|
|
333
|
+
//# sourceMappingURL=trading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trading.js","sourceRoot":"","sources":["../../src/commands/trading.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,7 @@ import { seoCmd } from "./commands/seo.js";
|
|
|
30
30
|
import { aeoCmd } from "./commands/aeo.js";
|
|
31
31
|
import { ecommerceCmd } from "./commands/ecommerce.js";
|
|
32
32
|
import { cardsCmd } from "./commands/cards.js";
|
|
33
|
+
import { tradingCmd } from "./commands/trading.js";
|
|
33
34
|
import { ceoCmd } from "./commands/ceo.js";
|
|
34
35
|
import { tasksCmd } from "./commands/tasks.js";
|
|
35
36
|
import { objectivesCmd } from "./commands/objectives.js";
|
|
@@ -107,6 +108,7 @@ Primitives:
|
|
|
107
108
|
video AI video generation (fal.ai)
|
|
108
109
|
social Social media — connect accounts, post, analytics
|
|
109
110
|
cards Virtual cards — Stripe Issuing + Reloadly prepaid
|
|
111
|
+
trading Trading — connect Alpaca (OAuth) & trade stocks, options & crypto
|
|
110
112
|
verification Identity verification (KYC) via Footprint
|
|
111
113
|
formation Company formation (LLC incorporation) via Doola
|
|
112
114
|
jobs Monitor async generation/research jobs
|
|
@@ -151,6 +153,7 @@ program.addCommand(videoCmd);
|
|
|
151
153
|
program.addCommand(socialCmd);
|
|
152
154
|
program.addCommand(mediaCmd);
|
|
153
155
|
program.addCommand(cardsCmd);
|
|
156
|
+
program.addCommand(tradingCmd);
|
|
154
157
|
program.addCommand(verificationCmd);
|
|
155
158
|
program.addCommand(formationCmd);
|
|
156
159
|
program.addCommand(jobsCmd);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC;;;8DAG+C,CAAC;KAC5D,OAAO,CAAC,WAAW,EAAE,CAAC;KACtB,WAAW,CAAC,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|