@usenaive-sdk/cli 0.12.5 → 0.13.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/README.md +55 -6
- package/dist/client.d.ts +48 -0
- package/dist/client.js +199 -27
- package/dist/client.js.map +1 -1
- package/dist/commands/aeo.js +56 -21
- package/dist/commands/aeo.js.map +1 -1
- package/dist/commands/app-data.js +29 -11
- package/dist/commands/app-data.js.map +1 -1
- package/dist/commands/apps.d.ts +7 -0
- package/dist/commands/apps.js +255 -18
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/audio.d.ts +9 -0
- package/dist/commands/audio.js +391 -0
- package/dist/commands/audio.js.map +1 -0
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +20 -17
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/billing.js +9 -9
- package/dist/commands/billing.js.map +1 -1
- package/dist/commands/brain.js +798 -52
- package/dist/commands/brain.js.map +1 -1
- package/dist/commands/browser.js +8 -8
- package/dist/commands/browser.js.map +1 -1
- package/dist/commands/business.js +117 -16
- package/dist/commands/business.js.map +1 -1
- package/dist/commands/clone.js +6 -2
- package/dist/commands/clone.js.map +1 -1
- package/dist/commands/companies.d.ts +8 -0
- package/dist/commands/companies.js +137 -47
- package/dist/commands/companies.js.map +1 -1
- package/dist/commands/company-data.d.ts +2 -0
- package/dist/commands/company-data.js +168 -0
- package/dist/commands/company-data.js.map +1 -0
- package/dist/commands/compute.js +10 -3
- package/dist/commands/compute.js.map +1 -1
- package/dist/commands/connections.d.ts +6 -0
- package/dist/commands/connections.js +29 -1
- package/dist/commands/connections.js.map +1 -1
- package/dist/commands/domains.js +1 -1
- package/dist/commands/ecommerce.js +19 -9
- package/dist/commands/ecommerce.js.map +1 -1
- package/dist/commands/email.js +56 -9
- package/dist/commands/email.js.map +1 -1
- package/dist/commands/formation.js +3 -3
- package/dist/commands/identity.js +4 -3
- package/dist/commands/identity.js.map +1 -1
- package/dist/commands/images.js +85 -11
- package/dist/commands/images.js.map +1 -1
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.js +39 -36
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/jobs.js +1 -0
- package/dist/commands/jobs.js.map +1 -1
- package/dist/commands/legacy-auth.d.ts +27 -0
- package/dist/commands/legacy-auth.js +64 -0
- package/dist/commands/legacy-auth.js.map +1 -0
- package/dist/commands/llm.js +13 -0
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/login.js +2 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/media.js +3 -3
- package/dist/commands/media.js.map +1 -1
- package/dist/commands/mobile.d.ts +2 -0
- package/dist/commands/mobile.js +42 -1
- package/dist/commands/mobile.js.map +1 -1
- package/dist/commands/payments.js +1 -1
- package/dist/commands/people.d.ts +2 -0
- package/dist/commands/people.js +193 -0
- package/dist/commands/people.js.map +1 -0
- package/dist/commands/phone.js +3 -78
- package/dist/commands/phone.js.map +1 -1
- package/dist/commands/projects.d.ts +13 -0
- package/dist/commands/projects.js +220 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/register.js +13 -5
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/sandbox.d.ts +2 -0
- package/dist/commands/sandbox.js +245 -0
- package/dist/commands/sandbox.js.map +1 -0
- package/dist/commands/search.js +26 -12
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/seo.js +16 -8
- package/dist/commands/seo.js.map +1 -1
- package/dist/commands/sessions.d.ts +6 -0
- package/dist/commands/sessions.js +109 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/social-data.d.ts +2 -0
- package/dist/commands/social-data.js +244 -0
- package/dist/commands/social-data.js.map +1 -0
- package/dist/commands/social.js +8 -6
- package/dist/commands/social.js.map +1 -1
- package/dist/commands/teams.d.ts +69 -0
- package/dist/commands/teams.js +503 -0
- package/dist/commands/teams.js.map +1 -0
- package/dist/commands/up.d.ts +150 -0
- package/dist/commands/up.js +415 -15
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/usage.js +15 -4
- package/dist/commands/usage.js.map +1 -1
- package/dist/commands/use.d.ts +9 -0
- package/dist/commands/use.js +76 -11
- package/dist/commands/use.js.map +1 -1
- package/dist/commands/users.d.ts +8 -0
- package/dist/commands/users.js +28 -9
- package/dist/commands/users.js.map +1 -1
- package/dist/commands/vault.js +28 -1
- package/dist/commands/vault.js.map +1 -1
- package/dist/commands/video.js +117 -18
- package/dist/commands/video.js.map +1 -1
- package/dist/commands/wallet.js +3 -3
- package/dist/commands/wallet.js.map +1 -1
- package/dist/commands/whoami.js +17 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config.d.ts +9 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +228 -24
- package/dist/index.js.map +1 -1
- package/dist/lib/brain-select.d.ts +193 -0
- package/dist/lib/brain-select.js +403 -0
- package/dist/lib/brain-select.js.map +1 -0
- package/dist/lib/cli-validation.d.ts +12 -0
- package/dist/lib/cli-validation.js +46 -0
- package/dist/lib/cli-validation.js.map +1 -0
- package/dist/lib/deprecation.d.ts +158 -0
- package/dist/lib/deprecation.js +140 -0
- package/dist/lib/deprecation.js.map +1 -0
- package/dist/lib/duration.d.ts +8 -0
- package/dist/lib/duration.js +11 -0
- package/dist/lib/duration.js.map +1 -0
- package/dist/lib/http-response.d.ts +11 -0
- package/dist/lib/http-response.js +96 -0
- package/dist/lib/http-response.js.map +1 -0
- package/dist/lib/pricing.d.ts +132 -0
- package/dist/lib/pricing.js +148 -0
- package/dist/lib/pricing.js.map +1 -0
- package/dist/lib/stream-frames.d.ts +114 -0
- package/dist/lib/stream-frames.js +169 -0
- package/dist/lib/stream-frames.js.map +1 -0
- package/dist/lib/teams-catalog.d.ts +141 -0
- package/dist/lib/teams-catalog.js +765 -0
- package/dist/lib/teams-catalog.js.map +1 -0
- package/dist/lib/unknown-command.d.ts +41 -1
- package/dist/lib/unknown-command.js +74 -0
- package/dist/lib/unknown-command.js.map +1 -1
- package/dist/output.d.ts +99 -5
- package/dist/output.js +160 -11
- package/dist/output.js.map +1 -1
- package/package.json +3 -3
- package/dist/commands/link.d.ts +0 -3
- package/dist/commands/link.js +0 -91
- package/dist/commands/link.js.map +0 -1
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
+
import { agentOutput, creditCostHint } from "../output.js";
|
|
4
|
+
import { parseIntegerOption } from "../lib/cli-validation.js";
|
|
5
|
+
export const peopleCmd = new Command("people")
|
|
6
|
+
.description("People — B2B people search & contact enrichment")
|
|
7
|
+
.addHelpText("after", `
|
|
8
|
+
Subcommands:
|
|
9
|
+
naive people search Find people by title/company/industry/geo/seniority
|
|
10
|
+
naive people enrich Enrich one person from an email, domain, or LinkedIn URL
|
|
11
|
+
naive people batch Async batch enrich (up to 1,000 identities)
|
|
12
|
+
naive people task <id> Check a batch task
|
|
13
|
+
naive people terms The acceptable-use terms this primitive binds you to
|
|
14
|
+
naive people erase Honour a data-subject deletion request
|
|
15
|
+
|
|
16
|
+
OPT-IN: People is off until an account kit enables it, because it returns
|
|
17
|
+
personal data and sends lookups to a subprocessor. A 403 naming
|
|
18
|
+
subprocessor_consent_required means the kit, not the credential.
|
|
19
|
+
|
|
20
|
+
Cost: 3x what the provider run really cost, for both search and enrich — so
|
|
21
|
+
neither command is a cheaper route to the same data, and a bigger --limit costs
|
|
22
|
+
more only because a bigger run costs more. --include-contact adds the email
|
|
23
|
+
verifier's run to the bill on enrich. A no-match is billed too, because the run
|
|
24
|
+
still happened — the 404 reports what it cost. Every charge reports the
|
|
25
|
+
provider_usd it came from (see \`naive usage\`).
|
|
26
|
+
|
|
27
|
+
B2B use only. Work emails and firmographics; no consumer data. Never for
|
|
28
|
+
employment, credit, insurance or housing decisions — see \`naive people terms\`.
|
|
29
|
+
`);
|
|
30
|
+
peopleCmd
|
|
31
|
+
.command("search")
|
|
32
|
+
.description("Find people by filter (billed on 3x the provider run's cost)")
|
|
33
|
+
.option("--title <title>", "Job title, e.g. 'VP Engineering'")
|
|
34
|
+
.option("--company <company>", "Employer name, e.g. 'Stripe'")
|
|
35
|
+
.option("--industry <industry>", "Industry, e.g. 'fintech'")
|
|
36
|
+
.option("--geo <geo>", "Location, e.g. 'San Francisco, CA'")
|
|
37
|
+
.option("--seniority <level>", "Seniority, e.g. 'VP'")
|
|
38
|
+
.option("--limit <n>", "Max records, 1-50 (above 50 use `naive people batch`)")
|
|
39
|
+
.option("--include-contact", "Include work email and phone")
|
|
40
|
+
.action(async (opts) => {
|
|
41
|
+
const filters = {};
|
|
42
|
+
for (const key of ["title", "company", "industry", "geo", "seniority"]) {
|
|
43
|
+
if (opts[key])
|
|
44
|
+
filters[key] = opts[key];
|
|
45
|
+
}
|
|
46
|
+
const body = { filters, include_contact: opts.includeContact === true };
|
|
47
|
+
if (opts.limit)
|
|
48
|
+
body.limit = parseIntegerOption(opts.limit, "--limit", 1, 50);
|
|
49
|
+
const resp = await apiRequest("POST", "/v1/people/search", body);
|
|
50
|
+
handleApiError("people.search", resp);
|
|
51
|
+
const records = resp.data?.data?.length ?? 0;
|
|
52
|
+
agentOutput({
|
|
53
|
+
action: "people.search",
|
|
54
|
+
result: resp.data,
|
|
55
|
+
next_steps: [
|
|
56
|
+
{ command: "naive people enrich --email <email> --include-contact", description: "Enrich one of these people further" },
|
|
57
|
+
{ command: "naive people batch --identities '[{\"email\":\"...\"}]'", description: "Enrich a larger list asynchronously" },
|
|
58
|
+
],
|
|
59
|
+
hints: [
|
|
60
|
+
`${records} record${records === 1 ? "" : "s"} returned.`,
|
|
61
|
+
creditCostHint(resp.data) ?? "",
|
|
62
|
+
"Billed on 3x what the provider run cost, whether or not it matched — the run is on our invoice either way.",
|
|
63
|
+
opts.includeContact ? "" : "Add --include-contact for work email and phone.",
|
|
64
|
+
].filter(Boolean),
|
|
65
|
+
related_commands: ["naive people enrich", "naive company-data search"],
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
peopleCmd
|
|
69
|
+
.command("enrich")
|
|
70
|
+
.description("Enrich one person from an email, company domain, or LinkedIn URL")
|
|
71
|
+
.option("--email <email>", "Work email address")
|
|
72
|
+
.option("--domain <domain>", "Company domain")
|
|
73
|
+
.option("--linkedin <url>", "LinkedIn profile URL")
|
|
74
|
+
.option("--name <name>", "Full name — requires --company or --location")
|
|
75
|
+
.option("--company <company>", "Employer, to disambiguate a name")
|
|
76
|
+
.option("--location <location>", "City or region, to disambiguate a name")
|
|
77
|
+
.option("--include-contact", "Include work email and phone (higher meter)")
|
|
78
|
+
.action(async (opts) => {
|
|
79
|
+
const identity = {};
|
|
80
|
+
for (const key of ["email", "domain", "linkedin", "name", "company", "location"]) {
|
|
81
|
+
if (opts[key])
|
|
82
|
+
identity[key] = opts[key];
|
|
83
|
+
}
|
|
84
|
+
const resp = await apiRequest("POST", "/v1/people/enrich", {
|
|
85
|
+
identity,
|
|
86
|
+
include_contact: opts.includeContact === true,
|
|
87
|
+
});
|
|
88
|
+
handleApiError("people.enrich", resp);
|
|
89
|
+
agentOutput({
|
|
90
|
+
action: "people.enrich",
|
|
91
|
+
result: resp.data,
|
|
92
|
+
next_steps: [
|
|
93
|
+
{ command: "naive company-data enrich --domain <domain>", description: "Enrich the person's employer" },
|
|
94
|
+
],
|
|
95
|
+
hints: [
|
|
96
|
+
creditCostHint(resp.data) ?? "",
|
|
97
|
+
opts.includeContact ? "" : "Add --include-contact for work email and phone.",
|
|
98
|
+
].filter(Boolean),
|
|
99
|
+
related_commands: ["naive people search", "naive company-data enrich"],
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
peopleCmd
|
|
103
|
+
.command("batch")
|
|
104
|
+
.description("Async batch enrich — up to 1,000 identities")
|
|
105
|
+
.requiredOption("--identities <json>", "JSON array: [{\"email\":\"...\"}, ...]")
|
|
106
|
+
.option("--include-contact", "Include work email and phone (higher meter)")
|
|
107
|
+
.action(async (opts) => {
|
|
108
|
+
let identities;
|
|
109
|
+
try {
|
|
110
|
+
identities = JSON.parse(opts.identities);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
throw new Error("--identities must be valid JSON, e.g. '[{\"email\":\"jane@stripe.com\"}]'");
|
|
114
|
+
}
|
|
115
|
+
const resp = await apiRequest("POST", "/v1/people/tasks", {
|
|
116
|
+
identities,
|
|
117
|
+
include_contact: opts.includeContact === true,
|
|
118
|
+
});
|
|
119
|
+
handleApiError("people.batch", resp);
|
|
120
|
+
const id = resp.data?.id;
|
|
121
|
+
agentOutput({
|
|
122
|
+
action: "people.batch",
|
|
123
|
+
result: resp.data,
|
|
124
|
+
next_steps: [
|
|
125
|
+
{ command: `naive people task ${id ?? "<id>"}`, description: "Check the batch status and collect results" },
|
|
126
|
+
],
|
|
127
|
+
hints: ["Only matched records are billed. Poll the task for results."],
|
|
128
|
+
related_commands: ["naive people task"],
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
peopleCmd
|
|
132
|
+
.command("task <id>")
|
|
133
|
+
.description("Check an async batch task")
|
|
134
|
+
.action(async (id) => {
|
|
135
|
+
const resp = await apiRequest("GET", `/v1/people/tasks/${id}`);
|
|
136
|
+
handleApiError("people.task", resp);
|
|
137
|
+
agentOutput({
|
|
138
|
+
action: "people.task",
|
|
139
|
+
result: resp.data,
|
|
140
|
+
next_steps: [
|
|
141
|
+
{ command: `naive people task ${id}`, description: "Poll again if still processing" },
|
|
142
|
+
],
|
|
143
|
+
hints: [creditCostHint(resp.data) ?? ""].filter(Boolean),
|
|
144
|
+
related_commands: ["naive people batch"],
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
peopleCmd
|
|
148
|
+
.command("terms")
|
|
149
|
+
.description("The acceptable-use terms this primitive binds you to (free)")
|
|
150
|
+
.action(async () => {
|
|
151
|
+
const resp = await apiRequest("GET", "/v1/people/terms");
|
|
152
|
+
handleApiError("people.terms", resp);
|
|
153
|
+
agentOutput({
|
|
154
|
+
action: "people.terms",
|
|
155
|
+
result: resp.data,
|
|
156
|
+
next_steps: [
|
|
157
|
+
{ command: "naive people erase --email <email>", description: "Honour a deletion request from a data subject" },
|
|
158
|
+
],
|
|
159
|
+
hints: ["Unmetered. These are the product surface of ToS Section 18."],
|
|
160
|
+
related_commands: ["naive people erase"],
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
// The deletion surface is a first-class command, not a documented curl.
|
|
164
|
+
//
|
|
165
|
+
// A data-subject request arrives on a legal clock, and the person handling it is
|
|
166
|
+
// a human on a terminal rather than an agent — so it has to be as reachable as
|
|
167
|
+
// `search`. Unmetered on the server for the same reason.
|
|
168
|
+
peopleCmd
|
|
169
|
+
.command("erase")
|
|
170
|
+
.description("Erase everything held about one data subject (free)")
|
|
171
|
+
.option("--email <email>", "The subject's work email")
|
|
172
|
+
.option("--linkedin <url>", "The subject's LinkedIn URL")
|
|
173
|
+
.action(async (opts) => {
|
|
174
|
+
if (!opts.email && !opts.linkedin) {
|
|
175
|
+
throw new Error("Pass --email or --linkedin to identify the data subject.");
|
|
176
|
+
}
|
|
177
|
+
const resp = await apiRequest("POST", "/v1/people/erasure", {
|
|
178
|
+
email: opts.email,
|
|
179
|
+
linkedin: opts.linkedin,
|
|
180
|
+
});
|
|
181
|
+
handleApiError("people.erase", resp);
|
|
182
|
+
agentOutput({
|
|
183
|
+
action: "people.erase",
|
|
184
|
+
result: resp.data,
|
|
185
|
+
next_steps: [],
|
|
186
|
+
hints: [
|
|
187
|
+
"Unmetered — honouring a deletion request is never billed.",
|
|
188
|
+
"Cached records are deleted here; ask the upstream provider to correct its own copy.",
|
|
189
|
+
],
|
|
190
|
+
related_commands: ["naive people terms"],
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
//# sourceMappingURL=people.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/commands/people.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/phone.js
CHANGED
|
@@ -2,17 +2,13 @@ import { Command } from "commander";
|
|
|
2
2
|
import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
|
|
3
3
|
import { agentOutput } from "../output.js";
|
|
4
4
|
export const phoneCmd = new Command("phone")
|
|
5
|
-
.description("Provision phone numbers
|
|
5
|
+
.description("Provision phone numbers and send/receive SMS")
|
|
6
6
|
.addHelpText("after", `
|
|
7
7
|
Subcommands:
|
|
8
8
|
naive phone provision Buy a US number + register the carrier campaign
|
|
9
9
|
naive phone list List phone numbers for your company
|
|
10
10
|
naive phone status Show the carrier-registration pipeline
|
|
11
11
|
naive phone send Send an outbound SMS from a provisioned number
|
|
12
|
-
naive phone voice-enable <id> Enable Surge SIP + LiveKit voice for a number (--recording opts into recorded calls)
|
|
13
|
-
naive phone call Place an outbound voice call
|
|
14
|
-
naive phone calls <id> List voice calls for a phone
|
|
15
|
-
naive phone hangup <id> End a live voice call
|
|
16
12
|
naive phone messages <id> List received SMS for a phone (newest first)
|
|
17
13
|
naive phone read <id> Read a received SMS in full
|
|
18
14
|
naive phone assign <id> Connect an agent to a phone number
|
|
@@ -33,16 +29,14 @@ How SMS gating works:
|
|
|
33
29
|
compliance_pending until then; 'naive phone status' shows campaign progress.
|
|
34
30
|
|
|
35
31
|
Governance:
|
|
36
|
-
Provisioning a number
|
|
37
|
-
Account Kit
|
|
32
|
+
Provisioning a number is SENSITIVE. Depending on the user's
|
|
33
|
+
Account Kit it may require human approval — the command then returns
|
|
38
34
|
status "pending_approval" and the action runs after 'naive approvals approve <id>'.
|
|
39
35
|
|
|
40
36
|
Examples:
|
|
41
37
|
$ naive phone provision --area-code 415 --label "support line"
|
|
42
38
|
$ naive phone status
|
|
43
39
|
$ naive phone send --from <phone_id> --to +14155551234 --body "Hello"
|
|
44
|
-
$ naive phone voice-enable <phone_id> --recording
|
|
45
|
-
$ naive phone call --from <phone_id> --to +14155551234
|
|
46
40
|
$ naive phone messages <phone_id> --limit 50
|
|
47
41
|
`);
|
|
48
42
|
phoneCmd
|
|
@@ -246,75 +240,6 @@ phoneCmd
|
|
|
246
240
|
related_commands: ["naive phone assignments", "naive phone assign"],
|
|
247
241
|
});
|
|
248
242
|
});
|
|
249
|
-
phoneCmd
|
|
250
|
-
.command("voice-enable <phoneId>")
|
|
251
|
-
.description("Enable Surge SIP + LiveKit voice calling for a phone number")
|
|
252
|
-
.option("--agent-id <agentId>", "Grant voice permissions to an agent")
|
|
253
|
-
.option("--recording", "Enable call recording with spoken consent for this number", false)
|
|
254
|
-
.action(async (phoneId, opts) => {
|
|
255
|
-
const body = {};
|
|
256
|
-
if (opts.agentId)
|
|
257
|
-
body.agent_id = opts.agentId;
|
|
258
|
-
if (opts.recording)
|
|
259
|
-
body.recording = true;
|
|
260
|
-
const resp = await apiRequest("POST", `/v1/phone/${phoneId}/voice/enable`, body);
|
|
261
|
-
handleApiError("phone.voice_enable", resp);
|
|
262
|
-
if (handlePendingApproval("phone.voice_enable", resp))
|
|
263
|
-
return;
|
|
264
|
-
agentOutput({
|
|
265
|
-
action: "phone.voice_enable",
|
|
266
|
-
result: resp.data,
|
|
267
|
-
next_steps: [{ command: `naive phone call --from ${phoneId} --to <e164>`, description: "Place an outbound call" }],
|
|
268
|
-
hints: ["Voice calling is enabled for this number."],
|
|
269
|
-
related_commands: ["naive phone call", "naive phone calls"],
|
|
270
|
-
});
|
|
271
|
-
});
|
|
272
|
-
phoneCmd
|
|
273
|
-
.command("call")
|
|
274
|
-
.description("Place an outbound voice call from a provisioned phone number")
|
|
275
|
-
.requiredOption("--from <phoneId>", "Calling phone number id")
|
|
276
|
-
.requiredOption("--to <e164>", "Destination phone number in E.164 format")
|
|
277
|
-
.action(async (opts) => {
|
|
278
|
-
const resp = await apiRequest("POST", `/v1/phone/${opts.from}/calls`, { to: opts.to });
|
|
279
|
-
handleApiError("phone.call", resp);
|
|
280
|
-
if (handlePendingApproval("phone.call", resp))
|
|
281
|
-
return;
|
|
282
|
-
agentOutput({
|
|
283
|
-
action: "phone.call",
|
|
284
|
-
result: resp.data,
|
|
285
|
-
next_steps: [{ command: `naive phone calls ${opts.from}`, description: "List recent calls" }],
|
|
286
|
-
hints: [`Outbound call to ${opts.to} started.`],
|
|
287
|
-
related_commands: ["naive phone calls", "naive phone hangup"],
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
phoneCmd
|
|
291
|
-
.command("calls <phoneId>")
|
|
292
|
-
.description("List recent voice calls for a phone number")
|
|
293
|
-
.action(async (phoneId) => {
|
|
294
|
-
const resp = await apiRequest("GET", `/v1/phone/${phoneId}/calls`);
|
|
295
|
-
handleApiError("phone.calls", resp);
|
|
296
|
-
agentOutput({
|
|
297
|
-
action: "phone.calls",
|
|
298
|
-
result: resp.data,
|
|
299
|
-
next_steps: [{ command: `naive phone call --from ${phoneId} --to <e164>`, description: "Place another call" }],
|
|
300
|
-
hints: [],
|
|
301
|
-
related_commands: ["naive phone call", "naive phone hangup"],
|
|
302
|
-
});
|
|
303
|
-
});
|
|
304
|
-
phoneCmd
|
|
305
|
-
.command("hangup <callId>")
|
|
306
|
-
.description("End a live voice call")
|
|
307
|
-
.action(async (callId) => {
|
|
308
|
-
const resp = await apiRequest("DELETE", `/v1/phone/calls/${callId}`);
|
|
309
|
-
handleApiError("phone.hangup", resp);
|
|
310
|
-
agentOutput({
|
|
311
|
-
action: "phone.hangup",
|
|
312
|
-
result: resp.data,
|
|
313
|
-
next_steps: [],
|
|
314
|
-
hints: ["Call ended."],
|
|
315
|
-
related_commands: ["naive phone calls"],
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
243
|
phoneCmd
|
|
319
244
|
.command("release <phoneId>")
|
|
320
245
|
.description("Release a number back to the provider and stop billing it (permanent)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../src/commands/phone.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../src/commands/phone.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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;
|
|
@@ -0,0 +1,220 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|