@usenaive-sdk/cli 0.15.1 → 1.0.1
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/README.md +43 -402
- package/dist/index.js +51796 -502
- package/package.json +22 -18
- package/dist/client.d.ts +0 -108
- package/dist/client.js +0 -458
- package/dist/client.js.map +0 -1
- package/dist/commands/account-kits.d.ts +0 -2
- package/dist/commands/account-kits.js +0 -71
- package/dist/commands/account-kits.js.map +0 -1
- package/dist/commands/aeo.d.ts +0 -2
- package/dist/commands/aeo.js +0 -451
- package/dist/commands/aeo.js.map +0 -1
- package/dist/commands/agent-profiles.d.ts +0 -11
- package/dist/commands/agent-profiles.js +0 -120
- package/dist/commands/agent-profiles.js.map +0 -1
- package/dist/commands/agents.d.ts +0 -2
- package/dist/commands/agents.js +0 -916
- package/dist/commands/agents.js.map +0 -1
- package/dist/commands/app-data.d.ts +0 -2
- package/dist/commands/app-data.js +0 -445
- package/dist/commands/app-data.js.map +0 -1
- package/dist/commands/approvals.d.ts +0 -2
- package/dist/commands/approvals.js +0 -242
- package/dist/commands/approvals.js.map +0 -1
- package/dist/commands/apps.d.ts +0 -9
- package/dist/commands/apps.js +0 -844
- package/dist/commands/apps.js.map +0 -1
- package/dist/commands/audio.d.ts +0 -9
- package/dist/commands/audio.js +0 -391
- package/dist/commands/audio.js.map +0 -1
- package/dist/commands/auth.d.ts +0 -31
- package/dist/commands/auth.js +0 -428
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/billing.d.ts +0 -2
- package/dist/commands/billing.js +0 -250
- package/dist/commands/billing.js.map +0 -1
- package/dist/commands/brain.d.ts +0 -2
- package/dist/commands/brain.js +0 -1300
- package/dist/commands/brain.js.map +0 -1
- package/dist/commands/browser.d.ts +0 -2
- package/dist/commands/browser.js +0 -378
- package/dist/commands/browser.js.map +0 -1
- package/dist/commands/business.d.ts +0 -2
- package/dist/commands/business.js +0 -566
- package/dist/commands/business.js.map +0 -1
- package/dist/commands/cards.d.ts +0 -2
- package/dist/commands/cards.js +0 -419
- package/dist/commands/cards.js.map +0 -1
- package/dist/commands/ceo.d.ts +0 -2
- package/dist/commands/ceo.js +0 -369
- package/dist/commands/ceo.js.map +0 -1
- package/dist/commands/clone.d.ts +0 -2
- package/dist/commands/clone.js +0 -203
- package/dist/commands/clone.js.map +0 -1
- package/dist/commands/companies.d.ts +0 -10
- package/dist/commands/companies.js +0 -283
- package/dist/commands/companies.js.map +0 -1
- package/dist/commands/company-data.d.ts +0 -2
- package/dist/commands/company-data.js +0 -168
- package/dist/commands/company-data.js.map +0 -1
- package/dist/commands/compute.d.ts +0 -2
- package/dist/commands/compute.js +0 -498
- package/dist/commands/compute.js.map +0 -1
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.js +0 -36
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/connections.d.ts +0 -8
- package/dist/commands/connections.js +0 -137
- package/dist/commands/connections.js.map +0 -1
- package/dist/commands/cron-jobs.d.ts +0 -2
- package/dist/commands/cron-jobs.js +0 -245
- package/dist/commands/cron-jobs.js.map +0 -1
- package/dist/commands/domains.d.ts +0 -2
- package/dist/commands/domains.js +0 -474
- package/dist/commands/domains.js.map +0 -1
- package/dist/commands/ecommerce.d.ts +0 -2
- package/dist/commands/ecommerce.js +0 -277
- package/dist/commands/ecommerce.js.map +0 -1
- package/dist/commands/email.d.ts +0 -2
- package/dist/commands/email.js +0 -336
- package/dist/commands/email.js.map +0 -1
- package/dist/commands/employees.d.ts +0 -2
- package/dist/commands/employees.js +0 -190
- package/dist/commands/employees.js.map +0 -1
- package/dist/commands/env.d.ts +0 -7
- package/dist/commands/env.js +0 -112
- package/dist/commands/env.js.map +0 -1
- package/dist/commands/formation.d.ts +0 -2
- package/dist/commands/formation.js +0 -273
- package/dist/commands/formation.js.map +0 -1
- package/dist/commands/identity.d.ts +0 -2
- package/dist/commands/identity.js +0 -110
- package/dist/commands/identity.js.map +0 -1
- package/dist/commands/images.d.ts +0 -2
- package/dist/commands/images.js +0 -371
- package/dist/commands/images.js.map +0 -1
- package/dist/commands/init.d.ts +0 -5
- package/dist/commands/init.js +0 -43
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/jobs.d.ts +0 -2
- package/dist/commands/jobs.js +0 -144
- package/dist/commands/jobs.js.map +0 -1
- package/dist/commands/keys.d.ts +0 -2
- package/dist/commands/keys.js +0 -156
- package/dist/commands/keys.js.map +0 -1
- package/dist/commands/legacy-auth.d.ts +0 -27
- package/dist/commands/legacy-auth.js +0 -64
- package/dist/commands/legacy-auth.js.map +0 -1
- package/dist/commands/llm.d.ts +0 -2
- package/dist/commands/llm.js +0 -125
- package/dist/commands/llm.js.map +0 -1
- package/dist/commands/login.d.ts +0 -2
- package/dist/commands/login.js +0 -65
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -7
- package/dist/commands/logout.js +0 -55
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -2
- package/dist/commands/logs.js +0 -42
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/loops.d.ts +0 -2
- package/dist/commands/loops.js +0 -260
- package/dist/commands/loops.js.map +0 -1
- package/dist/commands/media.d.ts +0 -2
- package/dist/commands/media.js +0 -183
- package/dist/commands/media.js.map +0 -1
- package/dist/commands/memory.d.ts +0 -2
- package/dist/commands/memory.js +0 -151
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/mobile.d.ts +0 -4
- package/dist/commands/mobile.js +0 -382
- package/dist/commands/mobile.js.map +0 -1
- package/dist/commands/module.d.ts +0 -8
- package/dist/commands/module.js +0 -48
- package/dist/commands/module.js.map +0 -1
- package/dist/commands/objectives.d.ts +0 -2
- package/dist/commands/objectives.js +0 -243
- package/dist/commands/objectives.js.map +0 -1
- package/dist/commands/payments.d.ts +0 -2
- package/dist/commands/payments.js +0 -131
- package/dist/commands/payments.js.map +0 -1
- package/dist/commands/people.d.ts +0 -2
- package/dist/commands/people.js +0 -197
- package/dist/commands/people.js.map +0 -1
- package/dist/commands/phone.d.ts +0 -2
- package/dist/commands/phone.js +0 -289
- package/dist/commands/phone.js.map +0 -1
- package/dist/commands/projects.d.ts +0 -13
- package/dist/commands/projects.js +0 -220
- package/dist/commands/projects.js.map +0 -1
- package/dist/commands/queue.d.ts +0 -2
- package/dist/commands/queue.js +0 -121
- package/dist/commands/queue.js.map +0 -1
- package/dist/commands/register.d.ts +0 -2
- package/dist/commands/register.js +0 -88
- package/dist/commands/register.js.map +0 -1
- package/dist/commands/report.d.ts +0 -17
- package/dist/commands/report.js +0 -109
- package/dist/commands/report.js.map +0 -1
- package/dist/commands/sandbox.d.ts +0 -2
- package/dist/commands/sandbox.js +0 -558
- package/dist/commands/sandbox.js.map +0 -1
- package/dist/commands/search.d.ts +0 -2
- package/dist/commands/search.js +0 -223
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/seo.d.ts +0 -2
- package/dist/commands/seo.js +0 -528
- package/dist/commands/seo.js.map +0 -1
- package/dist/commands/sessions.d.ts +0 -6
- package/dist/commands/sessions.js +0 -109
- package/dist/commands/sessions.js.map +0 -1
- package/dist/commands/social-data.d.ts +0 -2
- package/dist/commands/social-data.js +0 -245
- package/dist/commands/social-data.js.map +0 -1
- package/dist/commands/social.d.ts +0 -2
- package/dist/commands/social.js +0 -407
- package/dist/commands/social.js.map +0 -1
- package/dist/commands/status.d.ts +0 -2
- package/dist/commands/status.js +0 -79
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/support.d.ts +0 -2
- package/dist/commands/support.js +0 -134
- package/dist/commands/support.js.map +0 -1
- package/dist/commands/tasks.d.ts +0 -2
- package/dist/commands/tasks.js +0 -409
- package/dist/commands/tasks.js.map +0 -1
- package/dist/commands/teams.d.ts +0 -69
- package/dist/commands/teams.js +0 -503
- package/dist/commands/teams.js.map +0 -1
- package/dist/commands/trading.d.ts +0 -2
- package/dist/commands/trading.js +0 -333
- package/dist/commands/trading.js.map +0 -1
- package/dist/commands/up.d.ts +0 -551
- package/dist/commands/up.js +0 -1149
- package/dist/commands/up.js.map +0 -1
- package/dist/commands/usage.d.ts +0 -2
- package/dist/commands/usage.js +0 -73
- package/dist/commands/usage.js.map +0 -1
- package/dist/commands/use.d.ts +0 -12
- package/dist/commands/use.js +0 -96
- package/dist/commands/use.js.map +0 -1
- package/dist/commands/users.d.ts +0 -10
- package/dist/commands/users.js +0 -82
- package/dist/commands/users.js.map +0 -1
- package/dist/commands/vault.d.ts +0 -2
- package/dist/commands/vault.js +0 -101
- package/dist/commands/vault.js.map +0 -1
- package/dist/commands/verification.d.ts +0 -2
- package/dist/commands/verification.js +0 -152
- package/dist/commands/verification.js.map +0 -1
- package/dist/commands/verify-email.d.ts +0 -19
- package/dist/commands/verify-email.js +0 -130
- package/dist/commands/verify-email.js.map +0 -1
- package/dist/commands/video.d.ts +0 -2
- package/dist/commands/video.js +0 -417
- package/dist/commands/video.js.map +0 -1
- package/dist/commands/voice.d.ts +0 -2
- package/dist/commands/voice.js +0 -516
- package/dist/commands/voice.js.map +0 -1
- package/dist/commands/wallet.d.ts +0 -2
- package/dist/commands/wallet.js +0 -244
- package/dist/commands/wallet.js.map +0 -1
- package/dist/commands/webhooks.d.ts +0 -13
- package/dist/commands/webhooks.js +0 -119
- package/dist/commands/webhooks.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -2
- package/dist/commands/whoami.js +0 -53
- package/dist/commands/whoami.js.map +0 -1
- package/dist/config.d.ts +0 -42
- package/dist/config.js +0 -83
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js.map +0 -1
- package/dist/lib/brain-select.d.ts +0 -193
- package/dist/lib/brain-select.js +0 -403
- package/dist/lib/brain-select.js.map +0 -1
- package/dist/lib/cli-validation.d.ts +0 -12
- package/dist/lib/cli-validation.js +0 -46
- package/dist/lib/cli-validation.js.map +0 -1
- package/dist/lib/config-errors.d.ts +0 -4
- package/dist/lib/config-errors.js +0 -13
- package/dist/lib/config-errors.js.map +0 -1
- package/dist/lib/deprecation.d.ts +0 -158
- package/dist/lib/deprecation.js +0 -140
- package/dist/lib/deprecation.js.map +0 -1
- package/dist/lib/duration.d.ts +0 -8
- package/dist/lib/duration.js +0 -11
- package/dist/lib/duration.js.map +0 -1
- package/dist/lib/http-response.d.ts +0 -11
- package/dist/lib/http-response.js +0 -96
- package/dist/lib/http-response.js.map +0 -1
- package/dist/lib/llm-paywall.d.ts +0 -82
- package/dist/lib/llm-paywall.js +0 -231
- package/dist/lib/llm-paywall.js.map +0 -1
- package/dist/lib/pricing.d.ts +0 -132
- package/dist/lib/pricing.js +0 -148
- package/dist/lib/pricing.js.map +0 -1
- package/dist/lib/starter-config.d.ts +0 -13
- package/dist/lib/starter-config.js +0 -71
- package/dist/lib/starter-config.js.map +0 -1
- package/dist/lib/stream-frames.d.ts +0 -114
- package/dist/lib/stream-frames.js +0 -169
- package/dist/lib/stream-frames.js.map +0 -1
- package/dist/lib/teams-catalog.d.ts +0 -141
- package/dist/lib/teams-catalog.js +0 -841
- package/dist/lib/teams-catalog.js.map +0 -1
- package/dist/lib/unknown-command.d.ts +0 -71
- package/dist/lib/unknown-command.js +0 -132
- package/dist/lib/unknown-command.js.map +0 -1
- package/dist/lib/version-check.d.ts +0 -26
- package/dist/lib/version-check.js +0 -21
- package/dist/lib/version-check.js.map +0 -1
- package/dist/output.d.ts +0 -246
- package/dist/output.js +0 -539
- package/dist/output.js.map +0 -1
- package/dist/prompt.d.ts +0 -17
- package/dist/prompt.js +0 -70
- package/dist/prompt.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.js +0 -14
- package/dist/version.js.map +0 -1
package/dist/commands/phone.js
DELETED
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
|
|
3
|
-
import { agentOutput } from "../output.js";
|
|
4
|
-
export const phoneCmd = new Command("phone")
|
|
5
|
-
.description("Provision phone numbers and send/receive SMS")
|
|
6
|
-
.addHelpText("after", `
|
|
7
|
-
Subcommands:
|
|
8
|
-
naive phone provision Buy a US number + register the carrier campaign
|
|
9
|
-
naive phone resend-otp Resend the sole-prop brand-verification SMS OTP
|
|
10
|
-
naive phone list List phone numbers for your company
|
|
11
|
-
naive phone status Show the carrier-registration pipeline
|
|
12
|
-
naive phone send Send an outbound SMS from a provisioned number
|
|
13
|
-
naive phone messages <id> List received SMS for a phone (newest first)
|
|
14
|
-
naive phone read <id> Read a received SMS in full
|
|
15
|
-
naive phone assign <id> Connect an agent to a phone number
|
|
16
|
-
naive phone unassign <id> <agent_id> Remove an agent connection
|
|
17
|
-
naive phone release <id> Release a number back to the provider (stops billing)
|
|
18
|
-
|
|
19
|
-
Prerequisites:
|
|
20
|
-
Standard provisioning requires a completed LLC formation (numbers are
|
|
21
|
-
carrier-registered against your business). The full chain is:
|
|
22
|
-
1. naive verification start (KYC for company members)
|
|
23
|
-
2. naive formation submit (LLC formation)
|
|
24
|
-
3. naive phone provision (this command, with --ein)
|
|
25
|
-
|
|
26
|
-
Sole proprietors (no LLC/EIN) can provision with --sole-prop after passing
|
|
27
|
-
KYC. The brand is registered against the verified individual; Surge texts an
|
|
28
|
-
SMS OTP to their verified mobile to confirm brand identity ('naive phone
|
|
29
|
-
resend-otp' re-sends it). Sole-prop brands have lower carrier throughput
|
|
30
|
-
than EIN-registered brands.
|
|
31
|
-
|
|
32
|
-
How SMS gating works:
|
|
33
|
-
Inbound SMS works immediately on provisioning. Outbound SMS is blocked by the
|
|
34
|
-
carrier (10DLC) campaign until it is approved (~1-2 business days) — this
|
|
35
|
-
happens automatically (no customer action). 'naive phone send' returns
|
|
36
|
-
compliance_pending until then; 'naive phone status' shows campaign progress.
|
|
37
|
-
|
|
38
|
-
Governance:
|
|
39
|
-
Provisioning a number is SENSITIVE. Depending on the user's
|
|
40
|
-
Account Kit it may require human approval — the command then returns
|
|
41
|
-
status "pending_approval" and the action runs after 'naive approvals approve <id>'.
|
|
42
|
-
|
|
43
|
-
Examples:
|
|
44
|
-
$ naive phone provision --ein 12-3456789 --area-code 415 --label "support line"
|
|
45
|
-
$ naive phone provision --sole-prop --area-code 415
|
|
46
|
-
$ naive phone resend-otp
|
|
47
|
-
$ naive phone status
|
|
48
|
-
$ naive phone send --from <phone_id> --to +14155551234 --body "Hello"
|
|
49
|
-
$ naive phone messages <phone_id> --limit 50
|
|
50
|
-
`);
|
|
51
|
-
phoneCmd
|
|
52
|
-
.command("provision")
|
|
53
|
-
.description("Buy a US number and register the carrier (10DLC) campaign")
|
|
54
|
-
.option("--ein <ein>", "Company EIN / tax id (9 digits, e.g. 12-3456789) — required for standard (formation-backed) registration")
|
|
55
|
-
.option("--sole-prop", "Register as a sole proprietor (passed KYC, no LLC/EIN; brand verified via SMS OTP)")
|
|
56
|
-
.option("--area-code <code>", "Preferred US area code (3 digits, e.g. 415)")
|
|
57
|
-
.option("--type <type>", "Number type: local (default) or toll_free")
|
|
58
|
-
.option("--label <label>", "Friendly label for the number")
|
|
59
|
-
.option("--agent-id <agentId>", "Connect an agent to the number on creation")
|
|
60
|
-
.action(async (opts) => {
|
|
61
|
-
const body = {};
|
|
62
|
-
if (opts.soleProp)
|
|
63
|
-
body.tier = "sole_proprietor";
|
|
64
|
-
if (opts.ein)
|
|
65
|
-
body.ein = opts.ein;
|
|
66
|
-
if (opts.areaCode)
|
|
67
|
-
body.area_code = opts.areaCode;
|
|
68
|
-
if (opts.type)
|
|
69
|
-
body.type = opts.type;
|
|
70
|
-
if (opts.label)
|
|
71
|
-
body.label = opts.label;
|
|
72
|
-
if (opts.agentId)
|
|
73
|
-
body.agent_id = opts.agentId;
|
|
74
|
-
const resp = await apiRequest("POST", "/v1/phone/provision", body);
|
|
75
|
-
handleApiError("phone.provision", resp);
|
|
76
|
-
if (handlePendingApproval("phone.provision", resp))
|
|
77
|
-
return;
|
|
78
|
-
const data = resp.data;
|
|
79
|
-
agentOutput({
|
|
80
|
-
action: "phone.provision",
|
|
81
|
-
result: resp.data,
|
|
82
|
-
next_steps: [
|
|
83
|
-
{ command: "naive phone status", description: "Check carrier campaign progress" },
|
|
84
|
-
{ command: "naive phone list", description: "List all phone numbers" },
|
|
85
|
-
...(data.brand_verification === "pending_otp"
|
|
86
|
-
? [{ command: "naive phone resend-otp", description: "Resend the brand-verification SMS OTP if it didn't arrive" }]
|
|
87
|
-
: []),
|
|
88
|
-
],
|
|
89
|
-
hints: [
|
|
90
|
-
data.phone ? `Number ${data.phone.e164} is live for inbound SMS now.` : "Number provisioned.",
|
|
91
|
-
`Outbound SMS unlocks when the campaign is approved (${data.campaign?.eta ?? "~1-2 business days"}) — automatic, no action needed.`,
|
|
92
|
-
...(data.brand_verification === "pending_otp"
|
|
93
|
-
? ["Sole-prop brand verification: an SMS OTP was sent to the verified mobile — confirm it to complete carrier registration."]
|
|
94
|
-
: []),
|
|
95
|
-
],
|
|
96
|
-
related_commands: ["naive phone status", "naive phone list", "naive phone send"],
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
phoneCmd
|
|
100
|
-
.command("resend-otp")
|
|
101
|
-
.description("Resend the sole-proprietor brand-verification SMS OTP")
|
|
102
|
-
.action(async () => {
|
|
103
|
-
const resp = await apiRequest("POST", "/v1/phone/brand-verification/resend");
|
|
104
|
-
handleApiError("phone.resend_otp", resp);
|
|
105
|
-
agentOutput({
|
|
106
|
-
action: "phone.resend_otp",
|
|
107
|
-
result: resp.data,
|
|
108
|
-
next_steps: [{ command: "naive phone status", description: "Check carrier campaign progress" }],
|
|
109
|
-
hints: ["A new verification code was texted to the verified mobile number."],
|
|
110
|
-
related_commands: ["naive phone provision", "naive phone status"],
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
phoneCmd
|
|
114
|
-
.command("list", { isDefault: true })
|
|
115
|
-
.description("List phone numbers for your company")
|
|
116
|
-
.option("--agent-id <agentId>", "Filter to numbers connected to a specific agent")
|
|
117
|
-
.action(async (opts) => {
|
|
118
|
-
const query = opts.agentId ? `?agent=${opts.agentId}` : "";
|
|
119
|
-
const resp = await apiRequest("GET", `/v1/phone${query}`);
|
|
120
|
-
handleApiError("phone.list", resp);
|
|
121
|
-
const data = resp.data;
|
|
122
|
-
const count = data.phones?.length ?? 0;
|
|
123
|
-
agentOutput({
|
|
124
|
-
action: "phone.list",
|
|
125
|
-
result: resp.data,
|
|
126
|
-
next_steps: count > 0
|
|
127
|
-
? [{ command: "naive phone status", description: "Check carrier campaign + capabilities" }]
|
|
128
|
-
: [{ command: "naive phone provision", description: "Provision a new phone number" }],
|
|
129
|
-
hints: [`${count} phone number${count !== 1 ? "s" : ""} on file`],
|
|
130
|
-
related_commands: ["naive phone provision", "naive phone status", "naive phone send"],
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
phoneCmd
|
|
134
|
-
.command("status")
|
|
135
|
-
.description("Show the carrier-registration pipeline (account -> campaign -> numbers)")
|
|
136
|
-
.action(async () => {
|
|
137
|
-
const resp = await apiRequest("GET", "/v1/phone/status");
|
|
138
|
-
handleApiError("phone.status", resp);
|
|
139
|
-
const data = resp.data;
|
|
140
|
-
const approved = data.campaign?.approved ?? false;
|
|
141
|
-
const phones = data.phones ?? [];
|
|
142
|
-
agentOutput({
|
|
143
|
-
action: "phone.status",
|
|
144
|
-
result: resp.data,
|
|
145
|
-
next_steps: approved && phones.length > 0
|
|
146
|
-
? [{ command: `naive phone send --from ${phones[0].id} --to <e164> --body "Hi"`, description: "Send an SMS" }]
|
|
147
|
-
: [{ command: "naive phone status", description: "Refresh — outbound unlocks automatically when approved" }],
|
|
148
|
-
hints: [
|
|
149
|
-
`Campaign status: ${data.campaign?.status ?? "not_started"}${approved ? " (outbound SMS unlocked)" : " (outbound SMS pending)"}`,
|
|
150
|
-
`${phones.length} number(s) provisioned`,
|
|
151
|
-
],
|
|
152
|
-
related_commands: ["naive phone provision", "naive phone send", "naive phone list"],
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
phoneCmd
|
|
156
|
-
.command("send")
|
|
157
|
-
.description("Send an outbound SMS from one of your provisioned numbers")
|
|
158
|
-
.requiredOption("--from <phoneId>", "Sending phone number id (UUID — see `naive phone list`)")
|
|
159
|
-
.requiredOption("--to <e164>", "Recipient phone number in E.164 format, e.g. +14155551234")
|
|
160
|
-
.requiredOption("--body <text>", "SMS body text")
|
|
161
|
-
.action(async (opts) => {
|
|
162
|
-
const resp = await apiRequest("POST", `/v1/phone/${opts.from}/sms`, {
|
|
163
|
-
to: opts.to,
|
|
164
|
-
body: opts.body,
|
|
165
|
-
});
|
|
166
|
-
handleApiError("phone.send", resp);
|
|
167
|
-
const data = resp.data;
|
|
168
|
-
agentOutput({
|
|
169
|
-
action: "phone.send",
|
|
170
|
-
result: resp.data,
|
|
171
|
-
next_steps: [{ command: `naive phone status`, description: "Check phone + campaign status" }],
|
|
172
|
-
hints: [`Sent SMS to ${data.to ?? opts.to} (status=${data.status ?? "queued"}).`],
|
|
173
|
-
related_commands: ["naive phone status", "naive phone messages"],
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
phoneCmd
|
|
177
|
-
.command("messages <phoneId>")
|
|
178
|
-
.description("List received SMS messages for a phone (newest first)")
|
|
179
|
-
.option("--limit <n>", "Maximum number of messages to return (default: 20, max: 100)", "20")
|
|
180
|
-
.option("--cursor <cursor>", "Pagination cursor from a previous call")
|
|
181
|
-
.action(async (phoneId, opts) => {
|
|
182
|
-
const params = new URLSearchParams({ limit: opts.limit });
|
|
183
|
-
if (opts.cursor)
|
|
184
|
-
params.set("cursor", opts.cursor);
|
|
185
|
-
const resp = await apiRequest("GET", `/v1/phone/${phoneId}/messages?${params}`);
|
|
186
|
-
handleApiError("phone.messages", resp);
|
|
187
|
-
const data = resp.data;
|
|
188
|
-
const count = data.messages?.length ?? 0;
|
|
189
|
-
agentOutput({
|
|
190
|
-
action: "phone.messages",
|
|
191
|
-
result: resp.data,
|
|
192
|
-
next_steps: [
|
|
193
|
-
...(count > 0
|
|
194
|
-
? [{ command: `naive phone read ${data.messages[0].id}`, description: "Read the most recent message in full" }]
|
|
195
|
-
: []),
|
|
196
|
-
...(data.next_cursor
|
|
197
|
-
? [{ command: `naive phone messages ${phoneId} --cursor ${data.next_cursor}`, description: "Load older messages" }]
|
|
198
|
-
: []),
|
|
199
|
-
],
|
|
200
|
-
hints: [
|
|
201
|
-
`${count} message${count !== 1 ? "s" : ""} found${data.next_cursor ? " (more available — use --cursor)" : ""}`,
|
|
202
|
-
],
|
|
203
|
-
related_commands: ["naive phone read", "naive phone send", "naive phone list"],
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
phoneCmd
|
|
207
|
-
.command("read <messageId>")
|
|
208
|
-
.description("Read the full content of a received SMS by its id")
|
|
209
|
-
.action(async (messageId) => {
|
|
210
|
-
const resp = await apiRequest("GET", `/v1/phone/messages/${messageId}`);
|
|
211
|
-
handleApiError("phone.read", resp);
|
|
212
|
-
const data = resp.data;
|
|
213
|
-
agentOutput({
|
|
214
|
-
action: "phone.read",
|
|
215
|
-
result: resp.data,
|
|
216
|
-
next_steps: [
|
|
217
|
-
...(data.phone_id
|
|
218
|
-
? [{ command: `naive phone messages ${data.phone_id}`, description: "Back to the inbox list" }]
|
|
219
|
-
: []),
|
|
220
|
-
...(data.phone_id && data.from
|
|
221
|
-
? [{ command: `naive phone send --from ${data.phone_id} --to ${data.from} --body <text>`, description: "Reply to this message" }]
|
|
222
|
-
: []),
|
|
223
|
-
],
|
|
224
|
-
hints: [],
|
|
225
|
-
related_commands: ["naive phone messages", "naive phone send"],
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
phoneCmd
|
|
229
|
-
.command("assign <phoneId>")
|
|
230
|
-
.description("Connect an agent to a phone number")
|
|
231
|
-
.requiredOption("--agent-id <agentId>", "Agent UUID to connect")
|
|
232
|
-
.option("--permissions <list>", "Comma-separated permissions (default: send_sms,receive_sms)")
|
|
233
|
-
.action(async (phoneId, opts) => {
|
|
234
|
-
const body = { agent_id: opts.agentId };
|
|
235
|
-
if (opts.permissions)
|
|
236
|
-
body.permissions = opts.permissions.split(",").map((p) => p.trim());
|
|
237
|
-
const resp = await apiRequest("POST", `/v1/phone/${phoneId}/assign`, body);
|
|
238
|
-
handleApiError("phone.assign", resp);
|
|
239
|
-
agentOutput({
|
|
240
|
-
action: "phone.assign",
|
|
241
|
-
result: resp.data,
|
|
242
|
-
next_steps: [{ command: `naive phone assignments ${phoneId}`, description: "View all connected agents" }],
|
|
243
|
-
hints: ["Agent connected to phone number."],
|
|
244
|
-
related_commands: ["naive phone assignments", "naive phone unassign"],
|
|
245
|
-
});
|
|
246
|
-
});
|
|
247
|
-
phoneCmd
|
|
248
|
-
.command("assignments <phoneId>")
|
|
249
|
-
.description("List agents connected to a phone number")
|
|
250
|
-
.action(async (phoneId) => {
|
|
251
|
-
const resp = await apiRequest("GET", `/v1/phone/${phoneId}/assignments`);
|
|
252
|
-
handleApiError("phone.assignments", resp);
|
|
253
|
-
agentOutput({
|
|
254
|
-
action: "phone.assignments",
|
|
255
|
-
result: resp.data,
|
|
256
|
-
next_steps: [{ command: `naive phone assign ${phoneId} --agent-id <uuid>`, description: "Connect another agent" }],
|
|
257
|
-
hints: [],
|
|
258
|
-
related_commands: ["naive phone assign", "naive phone unassign"],
|
|
259
|
-
});
|
|
260
|
-
});
|
|
261
|
-
phoneCmd
|
|
262
|
-
.command("unassign <phoneId> <agentId>")
|
|
263
|
-
.description("Remove an agent's connection to a phone number")
|
|
264
|
-
.action(async (phoneId, agentId) => {
|
|
265
|
-
const resp = await apiRequest("DELETE", `/v1/phone/${phoneId}/assign/${agentId}`);
|
|
266
|
-
handleApiError("phone.unassign", resp);
|
|
267
|
-
agentOutput({
|
|
268
|
-
action: "phone.unassign",
|
|
269
|
-
result: resp.data,
|
|
270
|
-
next_steps: [{ command: `naive phone assignments ${phoneId}`, description: "View remaining connections" }],
|
|
271
|
-
hints: ["Agent disconnected from phone number."],
|
|
272
|
-
related_commands: ["naive phone assignments", "naive phone assign"],
|
|
273
|
-
});
|
|
274
|
-
});
|
|
275
|
-
phoneCmd
|
|
276
|
-
.command("release <phoneId>")
|
|
277
|
-
.description("Release a number back to the provider and stop billing it (permanent)")
|
|
278
|
-
.action(async (phoneId) => {
|
|
279
|
-
const resp = await apiRequest("DELETE", `/v1/phone/${phoneId}`);
|
|
280
|
-
handleApiError("phone.release", resp);
|
|
281
|
-
agentOutput({
|
|
282
|
-
action: "phone.release",
|
|
283
|
-
result: resp.data,
|
|
284
|
-
next_steps: [{ command: "naive phone list", description: "View remaining numbers" }],
|
|
285
|
-
hints: ["Number released. Monthly rental billing has stopped."],
|
|
286
|
-
related_commands: ["naive phone list", "naive phone provision"],
|
|
287
|
-
});
|
|
288
|
-
});
|
|
289
|
-
//# sourceMappingURL=phone.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../src/commands/phone.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
/**
|
|
3
|
-
* `naive projects` — the layer between the organization and its account kits.
|
|
4
|
-
*
|
|
5
|
-
* An organization always has at least one project (`Default`), created with the
|
|
6
|
-
* organization and backfilled with everything that predates the layer. So a
|
|
7
|
-
* caller who never runs this command is already inside a project, which is why
|
|
8
|
-
* `naive projects use --clear` is a RETURN to the default rather than an
|
|
9
|
-
* un-scoping.
|
|
10
|
-
*/
|
|
11
|
-
export declare const projectsCmd: Command;
|
|
12
|
-
/** The active project, for `naive whoami` / `naive status`. */
|
|
13
|
-
export declare const whoamiProjectHint: () => string | undefined;
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
-
import { loadConfig, saveConfig } from "../config.js";
|
|
4
|
-
import { agentOutput } from "../output.js";
|
|
5
|
-
/**
|
|
6
|
-
* `naive projects` — the layer between the organization and its account kits.
|
|
7
|
-
*
|
|
8
|
-
* An organization always has at least one project (`Default`), created with the
|
|
9
|
-
* organization and backfilled with everything that predates the layer. So a
|
|
10
|
-
* caller who never runs this command is already inside a project, which is why
|
|
11
|
-
* `naive projects use --clear` is a RETURN to the default rather than an
|
|
12
|
-
* un-scoping.
|
|
13
|
-
*/
|
|
14
|
-
export const projectsCmd = new Command("projects")
|
|
15
|
-
.description("Manage projects — the layer between your organization and its account kits")
|
|
16
|
-
.addHelpText("after", `
|
|
17
|
-
Examples:
|
|
18
|
-
$ naive projects list
|
|
19
|
-
$ naive projects create --name "Acme Support"
|
|
20
|
-
$ naive projects use <project_id>
|
|
21
|
-
$ naive projects use --clear
|
|
22
|
-
|
|
23
|
-
The hierarchy:
|
|
24
|
-
organization -> project -> account kit -> child project -> primitives
|
|
25
|
-
|
|
26
|
-
Every command you run acts inside the ACTIVE project. With none selected that is
|
|
27
|
-
your organization's default project — where everything created before projects
|
|
28
|
-
existed already lives.
|
|
29
|
-
`);
|
|
30
|
-
projectsCmd
|
|
31
|
-
.command("list")
|
|
32
|
-
.description("List the projects in your organization")
|
|
33
|
-
.action(async () => {
|
|
34
|
-
const resp = await apiRequest("GET", "/v1/projects");
|
|
35
|
-
handleApiError("projects.list", resp);
|
|
36
|
-
const data = resp.data;
|
|
37
|
-
agentOutput({
|
|
38
|
-
action: "projects.list",
|
|
39
|
-
result: resp.data,
|
|
40
|
-
next_steps: [
|
|
41
|
-
{ command: "naive projects use <project_id>", description: "Act inside that project" },
|
|
42
|
-
{ command: "naive projects create --name <name>", description: "Add another project" },
|
|
43
|
-
],
|
|
44
|
-
hints: [`${data.projects?.length ?? 0} project(s). The active one is used by every other command.`],
|
|
45
|
-
related_commands: ["naive use", "naive account-kits list", "naive users list"],
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
projectsCmd
|
|
49
|
-
.command("create")
|
|
50
|
-
.description("Create a project in your organization")
|
|
51
|
-
.requiredOption("--name <name>", "Human-friendly project name")
|
|
52
|
-
.option("--slug <slug>", "URL-safe id, unique per organization (defaults to a slug of --name)")
|
|
53
|
-
.action(async (opts) => {
|
|
54
|
-
const resp = await apiRequest("POST", "/v1/projects", { name: opts.name, slug: opts.slug });
|
|
55
|
-
handleApiError("projects.create", resp);
|
|
56
|
-
const project = resp.data;
|
|
57
|
-
agentOutput({
|
|
58
|
-
action: "projects.create",
|
|
59
|
-
result: resp.data,
|
|
60
|
-
next_steps: [
|
|
61
|
-
{ command: `naive projects use ${project.id ?? "<project_id>"}`, description: "Act inside it" },
|
|
62
|
-
{ command: "naive users create --external-id <id>", description: "Add a child project to it" },
|
|
63
|
-
],
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
projectsCmd
|
|
67
|
-
.command("get")
|
|
68
|
-
.description("Show one project")
|
|
69
|
-
.argument("<project_id>", "Project id, or `default` for the organization's default project")
|
|
70
|
-
.action(async (projectId) => {
|
|
71
|
-
const resp = await apiRequest("GET", `/v1/projects/${encodeURIComponent(projectId)}`);
|
|
72
|
-
handleApiError("projects.get", resp);
|
|
73
|
-
agentOutput({
|
|
74
|
-
action: "projects.get",
|
|
75
|
-
result: resp.data,
|
|
76
|
-
next_steps: [
|
|
77
|
-
{ command: `naive projects use ${projectId}`, description: "Act inside this project" },
|
|
78
|
-
{ command: "naive users list", description: "List its child projects" },
|
|
79
|
-
],
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
projectsCmd
|
|
83
|
-
.command("use")
|
|
84
|
-
.description("Set the active project — every subsequent command acts inside it")
|
|
85
|
-
.argument("[project_id]", "Project id to activate (omit with --clear to return to the default)")
|
|
86
|
-
.option("--clear", "Clear the active project (return to the organization's default project)")
|
|
87
|
-
.action(async (projectId, opts) => {
|
|
88
|
-
if (opts.clear || !projectId) {
|
|
89
|
-
saveConfig({ active_project_id: undefined, active_project_name: undefined });
|
|
90
|
-
agentOutput({
|
|
91
|
-
action: "projects.use.clear",
|
|
92
|
-
result: { active_project_id: null },
|
|
93
|
-
next_steps: [
|
|
94
|
-
{ command: "naive projects list", description: "See the projects in this organization" },
|
|
95
|
-
],
|
|
96
|
-
hints: ["Active project cleared — commands now act inside your organization's default project."],
|
|
97
|
-
});
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
// Resolve before persisting: writing an id that does not exist would make
|
|
101
|
-
// every later command fail with a 404 that names a project the operator
|
|
102
|
-
// cannot see they selected.
|
|
103
|
-
const resp = await apiRequest("GET", `/v1/projects/${encodeURIComponent(projectId)}`);
|
|
104
|
-
handleApiError("projects.use", resp);
|
|
105
|
-
const project = resp.data;
|
|
106
|
-
saveConfig({ active_project_id: project.id, active_project_name: project.name });
|
|
107
|
-
agentOutput({
|
|
108
|
-
action: "projects.use",
|
|
109
|
-
result: { active_project_id: project.id, active_project_name: project.name },
|
|
110
|
-
next_steps: [
|
|
111
|
-
{ command: "naive users list", description: `List the child projects in ${project.name}` },
|
|
112
|
-
{ command: "naive projects use --clear", description: "Return to the default project" },
|
|
113
|
-
],
|
|
114
|
-
hints: [`Active project set to ${project.name}. Override per-command with --project <id>.`],
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
/**
|
|
118
|
-
* `PATCH /v1/projects/:id` is the ONLY way to archive a project, and archiving
|
|
119
|
-
* is what the delete refusal tells you to do instead when a project still holds
|
|
120
|
-
* kits or child projects. Without this command that instruction had no CLI to
|
|
121
|
-
* follow: the REST route, the SDK and the dashboard could all reach it and
|
|
122
|
-
* `naive` could not.
|
|
123
|
-
*
|
|
124
|
-
* `--archive` / `--activate` rather than `--status <s>` so the two reachable
|
|
125
|
-
* values are the two spellings, and an unknown one is a parse error rather than
|
|
126
|
-
* a 400 from the server.
|
|
127
|
-
*/
|
|
128
|
-
projectsCmd
|
|
129
|
-
.command("update")
|
|
130
|
-
.description("Rename, archive or reactivate a project")
|
|
131
|
-
.argument("<project_id>", "Project id")
|
|
132
|
-
.option("--name <name>", "New display name (the slug is immutable)")
|
|
133
|
-
.option("--archive", "Refuse new work inside this project; its rows are kept")
|
|
134
|
-
.option("--activate", "Undo --archive")
|
|
135
|
-
.addHelpText("after", `
|
|
136
|
-
Examples:
|
|
137
|
-
$ naive projects update <project_id> --name "Acme Staging"
|
|
138
|
-
$ naive projects update <project_id> --archive
|
|
139
|
-
$ naive projects update <project_id> --activate
|
|
140
|
-
|
|
141
|
-
Notes:
|
|
142
|
-
- The slug is immutable — it is the handle other systems address the project by.
|
|
143
|
-
- The default project cannot be archived: every un-projected request resolves
|
|
144
|
-
to it.
|
|
145
|
-
- A request that selects an archived project is refused 403 project_archived.
|
|
146
|
-
`)
|
|
147
|
-
.action(async (projectId, opts) => {
|
|
148
|
-
// Refused HERE rather than at the server, because the server would only see
|
|
149
|
-
// whichever value won the assignment below — a contradictory pair would
|
|
150
|
-
// silently mean one of the two.
|
|
151
|
-
if (opts.archive && opts.activate) {
|
|
152
|
-
handleApiError("projects.update", {
|
|
153
|
-
status: 400,
|
|
154
|
-
data: {
|
|
155
|
-
error: {
|
|
156
|
-
code: "invalid_input",
|
|
157
|
-
message: "--archive and --activate are opposites; pass one",
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
const body = {};
|
|
164
|
-
if (opts.name)
|
|
165
|
-
body.name = opts.name;
|
|
166
|
-
if (opts.archive)
|
|
167
|
-
body.status = "archived";
|
|
168
|
-
if (opts.activate)
|
|
169
|
-
body.status = "active";
|
|
170
|
-
if (Object.keys(body).length === 0) {
|
|
171
|
-
handleApiError("projects.update", {
|
|
172
|
-
status: 400,
|
|
173
|
-
data: {
|
|
174
|
-
error: {
|
|
175
|
-
code: "invalid_input",
|
|
176
|
-
message: "Nothing to update — pass --name, --archive or --activate",
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
});
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
const resp = await apiRequest("PATCH", `/v1/projects/${encodeURIComponent(projectId)}`, body);
|
|
183
|
-
handleApiError("projects.update", resp);
|
|
184
|
-
const project = resp.data;
|
|
185
|
-
// The persisted selection carries the NAME for `naive whoami`, so a rename
|
|
186
|
-
// of the active project has to reach it or whoami keeps printing the old one.
|
|
187
|
-
if (loadConfig().active_project_id === project.id) {
|
|
188
|
-
saveConfig({ active_project_id: project.id, active_project_name: project.name });
|
|
189
|
-
}
|
|
190
|
-
agentOutput({
|
|
191
|
-
action: "projects.update",
|
|
192
|
-
result: resp.data,
|
|
193
|
-
next_steps: [{ command: "naive projects list", description: "See every project and its status" }],
|
|
194
|
-
hints: [
|
|
195
|
-
project.status === "archived"
|
|
196
|
-
? `"${project.name}" is archived — requests that select it are refused 403 project_archived.`
|
|
197
|
-
: `"${project.name}" is active.`,
|
|
198
|
-
],
|
|
199
|
-
related_commands: ["naive projects use", "naive projects delete"],
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
projectsCmd
|
|
203
|
-
.command("delete")
|
|
204
|
-
.description("Delete an empty project (the default project cannot be deleted)")
|
|
205
|
-
.argument("<project_id>", "Project id")
|
|
206
|
-
.action(async (projectId) => {
|
|
207
|
-
const resp = await apiRequest("DELETE", `/v1/projects/${encodeURIComponent(projectId)}`);
|
|
208
|
-
handleApiError("projects.delete", resp);
|
|
209
|
-
if (loadConfig().active_project_id === projectId) {
|
|
210
|
-
saveConfig({ active_project_id: undefined, active_project_name: undefined });
|
|
211
|
-
}
|
|
212
|
-
agentOutput({
|
|
213
|
-
action: "projects.delete",
|
|
214
|
-
result: resp.data,
|
|
215
|
-
next_steps: [{ command: "naive projects list", description: "See what is left" }],
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
/** The active project, for `naive whoami` / `naive status`. */
|
|
219
|
-
export const whoamiProjectHint = () => loadConfig().active_project_id;
|
|
220
|
-
//# sourceMappingURL=projects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/queue.d.ts
DELETED