@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
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Command-line interface for the Naive API v2. Register, manage identity, and use
|
|
|
14
14
|
- **Video** — Generate via fal.ai (dynamic pricing)
|
|
15
15
|
- **Social** — Connect accounts, create posts, schedule, analytics (via bundle.social)
|
|
16
16
|
- **Verification** — Identity verification (KYC) for company founders/members via Footprint
|
|
17
|
-
- **Formation** — Company formation (LLC incorporation) via Doola ($
|
|
17
|
+
- **Formation** — Company formation (LLC incorporation) via Doola ($349 fee via Stripe Checkout)
|
|
18
18
|
- **Cards** — Virtual cards — create, fund, assign agents, track transactions (Stripe Issuing + Reloadly)
|
|
19
19
|
- **Jobs** — List, inspect, and cancel async jobs
|
|
20
20
|
- **Status** — Credit balance and usage history
|
|
@@ -74,7 +74,7 @@ The CLI stores config at `~/.naive/config.json`:
|
|
|
74
74
|
Set via registration or environment:
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
|
-
# Auto-saved on register/login/
|
|
77
|
+
# Auto-saved on register/login/browser auth
|
|
78
78
|
naive register --name "My Agent" --email owner@example.com --password yourpassword
|
|
79
79
|
|
|
80
80
|
# Or set manually
|
|
@@ -82,13 +82,61 @@ export NAIVE_API_KEY=nv_sk_live_...
|
|
|
82
82
|
export NAIVE_BASE_URL=http://localhost:3100 # for local dev
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
+
### The durable runtime — `naive teams`
|
|
86
|
+
|
|
87
|
+
The addressing tuple is `(company, tenant, team)` and it is in the path, not
|
|
88
|
+
inferred, so `--tenant` is required on every subcommand except `list`. There is
|
|
89
|
+
no default: `--tenant @self` is the only shorthand.
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
naive teams list
|
|
93
|
+
naive teams show support --tenant tu_8f21
|
|
94
|
+
naive teams submit support "refund the duplicate charge" --tenant tu_8f21
|
|
95
|
+
naive teams board support --tenant tu_8f21
|
|
96
|
+
naive teams watch support --tenant tu_8f21 --run run_01J8 --follow # NDJSON
|
|
97
|
+
naive teams approvals support --tenant tu_8f21
|
|
98
|
+
naive teams decide support apr_01J --allow --because "verified with the customer"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
All 27 subcommands, their flags, their REST paths and their ActionIds are
|
|
102
|
+
declared once in `src/lib/teams-catalog.ts`; `src/commands/teams.ts` builds the
|
|
103
|
+
commander tree by walking it and declares no subcommand of its own.
|
|
104
|
+
|
|
105
|
+
`--because` is a required *flag* (never a positional) on every op that widens
|
|
106
|
+
authority or destroys state: `unblock decide settle model stop migrate rollback`.
|
|
107
|
+
|
|
108
|
+
Exit codes: `0` success · `1` error · `2` success with a diff
|
|
109
|
+
(`plan --detailed-exitcode`) · `3` success where the terminal state is not
|
|
110
|
+
success (`tasks|task --fail-on-unverified`, `watch --fail-on-terminal`).
|
|
111
|
+
`unverified` is a third terminal state, and a CI script that reads `0` as "the
|
|
112
|
+
work is done" would otherwise count an unattested task as a pass.
|
|
113
|
+
|
|
114
|
+
**Not yet served.** There is no `/v1/teams` mount on `packages/api` in this
|
|
115
|
+
repository. Every `naive teams` subcommand therefore reaches the API's catch-all
|
|
116
|
+
today, and the CLI says exactly that — it reports the missing *route*, not a
|
|
117
|
+
missing team.
|
|
118
|
+
|
|
119
|
+
### Deprecation
|
|
120
|
+
|
|
121
|
+
`ceo · tasks · objectives · employees · cron · loops · memory` drive the legacy
|
|
122
|
+
orchestration runtime, which is frozen. **They all keep working**, unchanged.
|
|
123
|
+
Each prints a one-line banner on stderr carrying a greppable `[dep.<group>]` id
|
|
124
|
+
and its replacement, and attaches a `deprecation` object to the JSON envelope on
|
|
125
|
+
stdout, so stdout stays `JSON.parse`-able. Nothing is disabled and no route is
|
|
126
|
+
removed.
|
|
127
|
+
|
|
128
|
+
Where a capability genuinely has no successor (`tasks complete`, `cron pause`,
|
|
129
|
+
the provisioning verbs) the notice says so and gives the reason, rather than
|
|
130
|
+
inventing a replacement — the record's `replacement` is a closed union, so a
|
|
131
|
+
missing one cannot render as an empty string.
|
|
132
|
+
|
|
85
133
|
### Commands
|
|
86
134
|
|
|
87
135
|
```bash
|
|
88
136
|
# Auth
|
|
89
137
|
naive register --name "Agent" --email user@example.com --password mypassword --company "Acme"
|
|
90
138
|
naive login --email user@example.com --password mypassword
|
|
91
|
-
naive
|
|
139
|
+
naive auth email existing@example.com
|
|
92
140
|
naive whoami
|
|
93
141
|
naive companies
|
|
94
142
|
naive keys list
|
|
@@ -165,6 +213,7 @@ naive email create --local-part hello # Create new inbox on active domain
|
|
|
165
213
|
naive email delete <inbox-id> # Delete an inbox
|
|
166
214
|
naive email send --from-inbox <uuid> --to user@example.com --subject "Hi" --body "Hello"
|
|
167
215
|
naive email inbox --inbox <uuid> --limit 20
|
|
216
|
+
naive email sent --limit 20
|
|
168
217
|
naive email read <email-id>
|
|
169
218
|
|
|
170
219
|
# Search
|
|
@@ -196,13 +245,13 @@ naive social sync # Sync from bundle.
|
|
|
196
245
|
naive social upload --url https://example.com/video.mp4 # Upload media
|
|
197
246
|
naive social posts # List posts
|
|
198
247
|
naive social posts --status draft # Filter by status
|
|
199
|
-
naive social post "Hello world!" --platforms twitter,linkedin --publish # Create + publish (
|
|
248
|
+
naive social post "Hello world!" --platforms twitter,linkedin --publish # Create + publish (2.5 credits; 3 for X)
|
|
200
249
|
naive social post "Draft" --platforms twitter # Create draft (free)
|
|
201
250
|
naive social post "Demo" --platforms youtube --media-url https://example.com/video.mp4 --youtube-type SHORT --publish
|
|
202
251
|
naive social get <post-id> # Get post details
|
|
203
252
|
naive social edit <post-id> --content "Updated" # Edit draft
|
|
204
253
|
naive social delete <post-id> # Delete post
|
|
205
|
-
naive social publish <post-id> # Publish draft (
|
|
254
|
+
naive social publish <post-id> # Publish draft (2.5 credits; 3 for X)
|
|
206
255
|
naive social analytics <post-id> # Post analytics
|
|
207
256
|
naive social comments <post-id> # Post comments
|
|
208
257
|
naive social account-analytics <account-id> # Account analytics
|
|
@@ -322,4 +371,4 @@ pnpm --filter @usenaive-sdk/cli typecheck
|
|
|
322
371
|
|
|
323
372
|
## Place in the topology
|
|
324
373
|
|
|
325
|
-
One node in the Naive monorepo (open plumbing). The [root README](../../README.md) has the full architecture diagram
|
|
374
|
+
One node in the Naive monorepo (open plumbing). The [root README](../../README.md) has the full architecture diagram.
|
package/dist/client.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/** True when `data` is our synthetic non-JSON marker (so handleApiError fires even
|
|
2
|
+
* on the rare non-JSON body carrying a 2xx status). */
|
|
3
|
+
export declare function isUpstreamError(data: unknown): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Read a fetch Response body as JSON without ever throwing. Real API bodies are
|
|
6
|
+
* always JSON (the fast path). A non-JSON body (HTML gateway page, proxy text,
|
|
7
|
+
* empty body) is turned into a synthetic `{ error: { code: "upstream_error", … } }`
|
|
8
|
+
* envelope — the same shape formatApiError already understands — carrying the HTTP
|
|
9
|
+
* status and a bounded snippet, so the caller emits a clean error instead of crashing.
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseJsonOrUpstreamError(resp: Response): Promise<unknown>;
|
|
1
12
|
export declare function setActiveUserOverride(userId?: string): void;
|
|
2
13
|
/**
|
|
3
14
|
* Resolve the active subject user id (override > env > config).
|
|
@@ -9,6 +20,26 @@ export declare function setActiveUserOverride(userId?: string): void;
|
|
|
9
20
|
* ~/.naive/config.json in a profile's home to hold `active_user_id`.
|
|
10
21
|
*/
|
|
11
22
|
export declare function activeUserId(): string | undefined;
|
|
23
|
+
export declare function setActiveProjectOverride(projectId?: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* The `--project` flag as parsed off the ROOT program, if it was given.
|
|
26
|
+
*
|
|
27
|
+
* `naive use <child> --project <id>` writes the flag after the subcommand, but
|
|
28
|
+
* commander binds it to the root program's identically-named option, leaving the
|
|
29
|
+
* subcommand's own `opts.project` undefined. `use` reads it back through here.
|
|
30
|
+
*/
|
|
31
|
+
export declare function activeProjectOverride(): string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve the active project id (override > env > config).
|
|
34
|
+
*
|
|
35
|
+
* Undefined is a MEANINGFUL answer, not a missing one: the server resolves the
|
|
36
|
+
* organization's default project, which is where `naive` acted before projects
|
|
37
|
+
* existed and where migration 059 backfilled every row. So the header is sent
|
|
38
|
+
* only when a project was actually chosen, and a CLI that never mentions one
|
|
39
|
+
* keeps producing byte-identical requests.
|
|
40
|
+
*/
|
|
41
|
+
export declare function activeProjectId(): string | undefined;
|
|
42
|
+
export declare function scopePathToUser(path: string, subject: string | undefined): string;
|
|
12
43
|
export declare function apiRequest(method: string, rawPath: string, body?: Record<string, unknown>, opts?: {
|
|
13
44
|
noAuth?: boolean;
|
|
14
45
|
userId?: string;
|
|
@@ -17,6 +48,23 @@ export declare function apiRequest(method: string, rawPath: string, body?: Recor
|
|
|
17
48
|
status: number;
|
|
18
49
|
data: unknown;
|
|
19
50
|
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Like {@link apiRequest} but for endpoints that return a BINARY body (e.g.
|
|
53
|
+
* synthesized speech). Sends the same JSON request and auth/subject handling,
|
|
54
|
+
* and on success returns the raw bytes plus the response headers, so callers
|
|
55
|
+
* can read ids like `x-audio-request-id` off the response.
|
|
56
|
+
*
|
|
57
|
+
* An error response is still JSON, so it is parsed into the usual `{ status,
|
|
58
|
+
* data }` shape — `handleApiError` works unchanged.
|
|
59
|
+
*/
|
|
60
|
+
export declare function apiRequestBinary(method: string, rawPath: string, body?: Record<string, unknown>, opts?: {
|
|
61
|
+
userId?: string;
|
|
62
|
+
headers?: Record<string, string>;
|
|
63
|
+
}): Promise<{
|
|
64
|
+
status: number;
|
|
65
|
+
data: unknown;
|
|
66
|
+
headers?: Record<string, string>;
|
|
67
|
+
}>;
|
|
20
68
|
/**
|
|
21
69
|
* Upload a raw gzipped payload (e.g. a project tarball for direct app deploys).
|
|
22
70
|
* Same auth + subject handling as apiRequest, but with a binary body.
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { loadConfig, getApiKey, getSessionToken } from "./config.js";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { formatApiError, agentOutput, agentError, setPendingUpdate } from "./output.js";
|
|
3
4
|
import { readVersion } from "./version.js";
|
|
4
5
|
import { evaluateCliVersion } from "./lib/version-check.js";
|
|
6
|
+
import { networkErrorResponse, parseHttpResponse } from "./lib/http-response.js";
|
|
5
7
|
const UPDATE_COMMAND = "npm i -g @usenaive-sdk/cli@latest";
|
|
6
8
|
/**
|
|
7
9
|
* Server-driven version handshake. The API stamps `x-naive-cli-latest` and
|
|
@@ -47,6 +49,50 @@ function checkCliVersion(resp) {
|
|
|
47
49
|
// Version check is advisory; on any unexpected failure, do nothing.
|
|
48
50
|
}
|
|
49
51
|
}
|
|
52
|
+
// ── Non-JSON body handling (standalone helper) ──────────────────────────────
|
|
53
|
+
//
|
|
54
|
+
// The main request paths (apiRequest / apiUploadGzip / sessionLogin /
|
|
55
|
+
// sessionRequest) go through requestResponse() + lib/http-response.ts, which is
|
|
56
|
+
// content-type-aware, redacts secrets, and does the idempotent GET/HEAD retry.
|
|
57
|
+
// Callers that run their OWN fetch for a media/binary path (commands/media.ts,
|
|
58
|
+
// commands/clone.ts) use parseJsonOrUpstreamError() below to read a JSON body
|
|
59
|
+
// without ever throwing on a non-JSON gateway page.
|
|
60
|
+
const BODY_SNIPPET_MAX = 200;
|
|
61
|
+
/** Collapse whitespace and hard-truncate a response body so we never dump a full
|
|
62
|
+
* HTML page into the error envelope. */
|
|
63
|
+
function bodySnippet(text) {
|
|
64
|
+
return text.replace(/\s+/g, " ").trim().slice(0, BODY_SNIPPET_MAX);
|
|
65
|
+
}
|
|
66
|
+
/** True when `data` is our synthetic non-JSON marker (so handleApiError fires even
|
|
67
|
+
* on the rare non-JSON body carrying a 2xx status). */
|
|
68
|
+
export function isUpstreamError(data) {
|
|
69
|
+
return (typeof data === "object" &&
|
|
70
|
+
data !== null &&
|
|
71
|
+
data.error?.code === "upstream_error");
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Read a fetch Response body as JSON without ever throwing. Real API bodies are
|
|
75
|
+
* always JSON (the fast path). A non-JSON body (HTML gateway page, proxy text,
|
|
76
|
+
* empty body) is turned into a synthetic `{ error: { code: "upstream_error", … } }`
|
|
77
|
+
* envelope — the same shape formatApiError already understands — carrying the HTTP
|
|
78
|
+
* status and a bounded snippet, so the caller emits a clean error instead of crashing.
|
|
79
|
+
*/
|
|
80
|
+
export async function parseJsonOrUpstreamError(resp) {
|
|
81
|
+
const raw = await resp.text();
|
|
82
|
+
try {
|
|
83
|
+
return JSON.parse(raw);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return {
|
|
87
|
+
error: {
|
|
88
|
+
code: "upstream_error",
|
|
89
|
+
message: `The API returned a non-JSON response (HTTP ${resp.status}). This is usually a transient gateway timeout — retry in a moment.`,
|
|
90
|
+
http_status: resp.status,
|
|
91
|
+
body_snippet: bodySnippet(raw),
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
50
96
|
// Per-invocation override for the active subject user (set by a global --user
|
|
51
97
|
// flag). Falls back to config.active_user_id, then the api key's default.
|
|
52
98
|
let _userOverride;
|
|
@@ -66,6 +112,34 @@ export function activeUserId() {
|
|
|
66
112
|
const fromEnv = process.env.NAIVE_ACTIVE_USER_ID?.trim();
|
|
67
113
|
return _userOverride ?? (fromEnv || undefined) ?? loadConfig().active_user_id;
|
|
68
114
|
}
|
|
115
|
+
// Per-invocation override for the active project (set by a global --project flag).
|
|
116
|
+
let _projectOverride;
|
|
117
|
+
export function setActiveProjectOverride(projectId) {
|
|
118
|
+
_projectOverride = projectId;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The `--project` flag as parsed off the ROOT program, if it was given.
|
|
122
|
+
*
|
|
123
|
+
* `naive use <child> --project <id>` writes the flag after the subcommand, but
|
|
124
|
+
* commander binds it to the root program's identically-named option, leaving the
|
|
125
|
+
* subcommand's own `opts.project` undefined. `use` reads it back through here.
|
|
126
|
+
*/
|
|
127
|
+
export function activeProjectOverride() {
|
|
128
|
+
return _projectOverride;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Resolve the active project id (override > env > config).
|
|
132
|
+
*
|
|
133
|
+
* Undefined is a MEANINGFUL answer, not a missing one: the server resolves the
|
|
134
|
+
* organization's default project, which is where `naive` acted before projects
|
|
135
|
+
* existed and where migration 059 backfilled every row. So the header is sent
|
|
136
|
+
* only when a project was actually chosen, and a CLI that never mentions one
|
|
137
|
+
* keeps producing byte-identical requests.
|
|
138
|
+
*/
|
|
139
|
+
export function activeProjectId() {
|
|
140
|
+
const fromEnv = process.env.NAIVE_ACTIVE_PROJECT_ID?.trim();
|
|
141
|
+
return _projectOverride ?? (fromEnv || undefined) ?? loadConfig().active_project_id;
|
|
142
|
+
}
|
|
69
143
|
/**
|
|
70
144
|
* Native primitives that have per-user path routes (/v1/users/:id/<prim>).
|
|
71
145
|
* When an active subject user is set, legacy company-level calls
|
|
@@ -75,12 +149,13 @@ export function activeUserId() {
|
|
|
75
149
|
* the subject middleware, so without this the header was silently ignored.
|
|
76
150
|
*/
|
|
77
151
|
// NOTE: unlike the others, `wallet` and `payments` have NO legacy company-level
|
|
78
|
-
// mount
|
|
79
|
-
//
|
|
152
|
+
// mount. The default subject sentinel below is therefore required even when the
|
|
153
|
+
// caller has not explicitly selected a tenant user.
|
|
80
154
|
const PER_USER_PRIMITIVES = new Set(["cards", "phone", "trading", "email", "domains", "verification", "formation", "social", "compute", "queue", "mobile", "wallet", "payments"]);
|
|
155
|
+
const USER_PATH_ONLY_PRIMITIVES = new Set(["wallet", "payments"]);
|
|
81
156
|
/**
|
|
82
|
-
* The wallet's OPERATOR verbs
|
|
83
|
-
*
|
|
157
|
+
* The wallet's OPERATOR verbs: fund / sweep / setPolicy, plus POST /wallet
|
|
158
|
+
* (create) and /transfer, which are operator verbs too since they
|
|
84
159
|
* provision the float and move it out respectively. All of them move or
|
|
85
160
|
* re-govern the float. Reads (GET /wallet, /wallet/balances) and the agent's own
|
|
86
161
|
* /payments surface are NOT admin.
|
|
@@ -89,9 +164,7 @@ const WALLET_ADMIN_PATH = /^\/v1\/(?:users\/[^/]+\/)?wallet(?:\/(?:fund|transfer
|
|
|
89
164
|
function isWalletAdminCall(method, rawPath) {
|
|
90
165
|
return method.toUpperCase() === "POST" && WALLET_ADMIN_PATH.test(rawPath);
|
|
91
166
|
}
|
|
92
|
-
function scopePathToUser(path, subject) {
|
|
93
|
-
if (!subject)
|
|
94
|
-
return path; // solo flow (no active user) keeps legacy behavior
|
|
167
|
+
export function scopePathToUser(path, subject) {
|
|
95
168
|
if (path.startsWith("/v1/users/"))
|
|
96
169
|
return path; // already user-scoped
|
|
97
170
|
const m = path.match(/^\/v1\/([^/?]+)(.*)$/);
|
|
@@ -99,7 +172,40 @@ function scopePathToUser(path, subject) {
|
|
|
99
172
|
return path;
|
|
100
173
|
if (!PER_USER_PRIMITIVES.has(m[1]))
|
|
101
174
|
return path;
|
|
102
|
-
|
|
175
|
+
const resolvedSubject = subject ?? (USER_PATH_ONLY_PRIMITIVES.has(m[1]) ? "default" : undefined);
|
|
176
|
+
if (!resolvedSubject)
|
|
177
|
+
return path;
|
|
178
|
+
return `/v1/users/${resolvedSubject}/${m[1]}${m[2]}`;
|
|
179
|
+
}
|
|
180
|
+
const TRANSIENT_READ_STATUSES = new Set([500, 502, 503, 504]);
|
|
181
|
+
async function requestResponse(url, init) {
|
|
182
|
+
const method = String(init.method ?? "GET").toUpperCase();
|
|
183
|
+
const mayRetry = method === "GET" || method === "HEAD";
|
|
184
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
185
|
+
let response;
|
|
186
|
+
try {
|
|
187
|
+
response = await fetch(url, init);
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
if (mayRetry && attempt === 0) {
|
|
191
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
return networkErrorResponse(error);
|
|
195
|
+
}
|
|
196
|
+
if (mayRetry && attempt === 0 && TRANSIENT_READ_STATUSES.has(response.status)) {
|
|
197
|
+
await response.body?.cancel().catch(() => { });
|
|
198
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
return { ...(await parseHttpResponse(response)), response };
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
return { ...networkErrorResponse(error), response };
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return networkErrorResponse(new Error("Request failed after retry"));
|
|
103
209
|
}
|
|
104
210
|
export async function apiRequest(method, rawPath, body, opts) {
|
|
105
211
|
// Invariant guard: the human-only admin surface must NEVER be reached with an agent
|
|
@@ -107,7 +213,7 @@ export async function apiRequest(method, rawPath, body, opts) {
|
|
|
107
213
|
if (rawPath.startsWith("/v1/voice-admin")) {
|
|
108
214
|
throw new Error("Internal error: /v1/voice-admin is human-only and must be called via sessionRequest, not apiRequest.");
|
|
109
215
|
}
|
|
110
|
-
// Same invariant for the wallet's operator verbs
|
|
216
|
+
// Same invariant for the wallet's operator verbs: an agent must
|
|
111
217
|
// never be able to fund, transfer, sweep or re-policy the float it spends
|
|
112
218
|
// from. The server enforces this too (enforceWalletAdmin); this is the
|
|
113
219
|
// client-side half, so a mistake surfaces at the call site, not as a 403.
|
|
@@ -117,6 +223,7 @@ export async function apiRequest(method, rawPath, body, opts) {
|
|
|
117
223
|
const config = loadConfig();
|
|
118
224
|
const headers = {
|
|
119
225
|
"Content-Type": "application/json",
|
|
226
|
+
"X-Request-Id": randomUUID(),
|
|
120
227
|
...(opts?.headers ?? {}),
|
|
121
228
|
};
|
|
122
229
|
let path = rawPath;
|
|
@@ -127,19 +234,78 @@ export async function apiRequest(method, rawPath, body, opts) {
|
|
|
127
234
|
const subject = opts?.userId ?? activeUserId();
|
|
128
235
|
if (subject)
|
|
129
236
|
headers["X-Naive-User-Id"] = subject;
|
|
237
|
+
// Select the project the same way: a header, so no route has to change.
|
|
238
|
+
const project = activeProjectId();
|
|
239
|
+
if (project)
|
|
240
|
+
headers["X-Naive-Project-Id"] = project;
|
|
130
241
|
// Native primitives only isolate via their per-user path routes, so rewrite
|
|
131
|
-
// legacy paths to the path-scoped form
|
|
242
|
+
// legacy paths to the path-scoped form. "default" asks the API to resolve
|
|
243
|
+
// the key/company default when the CLI has no explicit `naive use` value.
|
|
132
244
|
path = scopePathToUser(path, subject);
|
|
133
245
|
}
|
|
134
246
|
const url = `${config.base_url}${path}`;
|
|
135
|
-
const
|
|
247
|
+
const parsed = await requestResponse(url, {
|
|
136
248
|
method,
|
|
137
249
|
headers,
|
|
138
250
|
...(body && { body: JSON.stringify(body) }),
|
|
139
251
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
return { status:
|
|
252
|
+
if (parsed.response)
|
|
253
|
+
checkCliVersion(parsed.response);
|
|
254
|
+
return { status: parsed.status, data: parsed.data };
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Like {@link apiRequest} but for endpoints that return a BINARY body (e.g.
|
|
258
|
+
* synthesized speech). Sends the same JSON request and auth/subject handling,
|
|
259
|
+
* and on success returns the raw bytes plus the response headers, so callers
|
|
260
|
+
* can read ids like `x-audio-request-id` off the response.
|
|
261
|
+
*
|
|
262
|
+
* An error response is still JSON, so it is parsed into the usual `{ status,
|
|
263
|
+
* data }` shape — `handleApiError` works unchanged.
|
|
264
|
+
*/
|
|
265
|
+
export async function apiRequestBinary(method, rawPath, body, opts) {
|
|
266
|
+
const config = loadConfig();
|
|
267
|
+
const headers = {
|
|
268
|
+
"Content-Type": "application/json",
|
|
269
|
+
"X-Request-Id": randomUUID(),
|
|
270
|
+
...(opts?.headers ?? {}),
|
|
271
|
+
Authorization: `Bearer ${getApiKey()}`,
|
|
272
|
+
};
|
|
273
|
+
const subject = opts?.userId ?? activeUserId();
|
|
274
|
+
if (subject)
|
|
275
|
+
headers["X-Naive-User-Id"] = subject;
|
|
276
|
+
const binaryProject = activeProjectId();
|
|
277
|
+
if (binaryProject)
|
|
278
|
+
headers["X-Naive-Project-Id"] = binaryProject;
|
|
279
|
+
const path = scopePathToUser(rawPath, subject);
|
|
280
|
+
let response;
|
|
281
|
+
try {
|
|
282
|
+
response = await fetch(`${config.base_url}${path}`, {
|
|
283
|
+
method,
|
|
284
|
+
headers,
|
|
285
|
+
...(body && { body: JSON.stringify(body) }),
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
return networkErrorResponse(error);
|
|
290
|
+
}
|
|
291
|
+
checkCliVersion(response);
|
|
292
|
+
if (!response.ok) {
|
|
293
|
+
// Errors come back as the standard JSON envelope even on a binary route.
|
|
294
|
+
const text = await response.text().catch(() => "");
|
|
295
|
+
let data = {};
|
|
296
|
+
try {
|
|
297
|
+
data = text ? JSON.parse(text) : {};
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
data = { error: { code: "upstream_error", message: text.slice(0, 500) || response.statusText } };
|
|
301
|
+
}
|
|
302
|
+
return { status: response.status, data };
|
|
303
|
+
}
|
|
304
|
+
const flatHeaders = {};
|
|
305
|
+
response.headers.forEach((value, key) => {
|
|
306
|
+
flatHeaders[key.toLowerCase()] = value;
|
|
307
|
+
});
|
|
308
|
+
return { status: response.status, data: await response.arrayBuffer(), headers: flatHeaders };
|
|
143
309
|
}
|
|
144
310
|
/**
|
|
145
311
|
* Upload a raw gzipped payload (e.g. a project tarball for direct app deploys).
|
|
@@ -149,23 +315,29 @@ export async function apiUploadGzip(rawPath, payload, opts) {
|
|
|
149
315
|
const config = loadConfig();
|
|
150
316
|
const headers = {
|
|
151
317
|
"Content-Type": "application/gzip",
|
|
318
|
+
"X-Request-Id": randomUUID(),
|
|
152
319
|
Authorization: `Bearer ${getApiKey()}`,
|
|
153
320
|
};
|
|
154
321
|
const subject = opts?.userId ?? activeUserId();
|
|
155
322
|
if (subject)
|
|
156
323
|
headers["X-Naive-User-Id"] = subject;
|
|
324
|
+
const uploadProject = activeProjectId();
|
|
325
|
+
if (uploadProject)
|
|
326
|
+
headers["X-Naive-Project-Id"] = uploadProject;
|
|
157
327
|
const path = scopePathToUser(rawPath, subject);
|
|
158
|
-
const
|
|
328
|
+
const parsed = await requestResponse(`${config.base_url}${path}`, {
|
|
159
329
|
method: "POST",
|
|
160
330
|
headers,
|
|
161
331
|
body: new Uint8Array(payload),
|
|
162
332
|
});
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return { status:
|
|
333
|
+
if (parsed.response)
|
|
334
|
+
checkCliVersion(parsed.response);
|
|
335
|
+
return { status: parsed.status, data: parsed.data };
|
|
166
336
|
}
|
|
167
337
|
export function handleApiError(action, resp) {
|
|
168
|
-
|
|
338
|
+
// Fires on any 4xx/5xx, and also on a synthetic upstream_error carrying a 2xx
|
|
339
|
+
// status (a non-JSON body from a proxy) so a malformed success never slips through.
|
|
340
|
+
if (resp.status >= 400 || isUpstreamError(resp.data)) {
|
|
169
341
|
formatApiError(action, resp.data);
|
|
170
342
|
}
|
|
171
343
|
}
|
|
@@ -194,17 +366,17 @@ function assertSecureBaseUrl(baseUrl) {
|
|
|
194
366
|
export async function sessionLogin(email, password) {
|
|
195
367
|
const config = loadConfig();
|
|
196
368
|
assertSecureBaseUrl(config.base_url);
|
|
197
|
-
const
|
|
369
|
+
const parsed = await requestResponse(`${config.base_url}/v1/auth/session/login`, {
|
|
198
370
|
method: "POST",
|
|
199
|
-
headers: { "Content-Type": "application/json" },
|
|
371
|
+
headers: { "Content-Type": "application/json", "X-Request-Id": randomUUID() },
|
|
200
372
|
body: JSON.stringify({ email, password }),
|
|
201
373
|
});
|
|
202
|
-
const data =
|
|
203
|
-
if (
|
|
374
|
+
const data = parsed.data;
|
|
375
|
+
if (parsed.status >= 400 || isUpstreamError(data)) {
|
|
204
376
|
formatApiError("auth.session-login", data); // exits the process
|
|
205
377
|
}
|
|
206
378
|
// Parse by name, not by index — the server may set more than one cookie.
|
|
207
|
-
const cookie =
|
|
379
|
+
const cookie = parsed.response?.headers.getSetCookie().find((c) => c.startsWith("naive_session="));
|
|
208
380
|
if (!cookie) {
|
|
209
381
|
throw new Error("Login succeeded but no naive_session cookie was returned.");
|
|
210
382
|
}
|
|
@@ -220,6 +392,7 @@ export async function sessionRequest(method, path, opts) {
|
|
|
220
392
|
const headers = {
|
|
221
393
|
// getSessionToken() never falls back to the agent key.
|
|
222
394
|
Cookie: `naive_session=${getSessionToken()}`,
|
|
395
|
+
"X-Request-Id": randomUUID(),
|
|
223
396
|
...(opts?.headers ?? {}),
|
|
224
397
|
};
|
|
225
398
|
let payload;
|
|
@@ -234,14 +407,13 @@ export async function sessionRequest(method, path, opts) {
|
|
|
234
407
|
const controller = new AbortController();
|
|
235
408
|
const timeout = setTimeout(() => controller.abort(), opts?.timeoutMs ?? 120_000);
|
|
236
409
|
try {
|
|
237
|
-
const
|
|
410
|
+
const parsed = await requestResponse(url, {
|
|
238
411
|
method,
|
|
239
412
|
headers,
|
|
240
413
|
...(payload !== undefined && { body: payload }),
|
|
241
414
|
signal: controller.signal,
|
|
242
415
|
});
|
|
243
|
-
|
|
244
|
-
return { status: resp.status, data };
|
|
416
|
+
return { status: parsed.status, data: parsed.data };
|
|
245
417
|
}
|
|
246
418
|
finally {
|
|
247
419
|
clearTimeout(timeout);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|