@jovie/cli 26.9.16 → 26.10.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 +193 -22
- package/dist/cli.d.ts +30 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +235 -17
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +13 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +314 -25
- package/dist/client.js.map +1 -1
- package/dist/commands.d.ts +1 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +45 -1
- package/dist/commands.js.map +1 -1
- package/dist/fleet-client.d.ts +10 -0
- package/dist/fleet-client.d.ts.map +1 -0
- package/dist/fleet-client.js +92 -0
- package/dist/fleet-client.js.map +1 -0
- package/dist/fleet-contract.generated.d.ts +342 -0
- package/dist/fleet-contract.generated.d.ts.map +1 -0
- package/dist/fleet-contract.generated.js +376 -0
- package/dist/fleet-contract.generated.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +2 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +54 -12
- package/dist/init.js.map +1 -1
- package/dist/mcp.d.ts +4 -10
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +66 -15
- package/dist/mcp.js.map +1 -1
- package/dist/mesh.d.ts +50 -0
- package/dist/mesh.d.ts.map +1 -0
- package/dist/mesh.js +336 -0
- package/dist/mesh.js.map +1 -0
- package/dist/skill.d.ts +1 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +18 -2
- package/dist/skill.js.map +1 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
# `@jovie/cli`
|
|
2
2
|
|
|
3
3
|
Jovie for AI agents. One package is a CLI, an MCP server, and an agent skill.
|
|
4
|
-
An agent can
|
|
5
|
-
|
|
4
|
+
An agent can extract public creator data from a supported social URL or give a
|
|
5
|
+
music artist a Jovie profile from Spotify, then hand the artist a claim link.
|
|
6
|
+
No login or API key is required.
|
|
6
7
|
|
|
7
8
|
## Install
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Requires Node.js 24.21 or newer (tested on 24 and 26; Node 22.13+ also runs,
|
|
11
|
+
without proxy support). Install an exact public release globally from npm:
|
|
10
12
|
|
|
11
13
|
```sh
|
|
12
|
-
npm install --global @jovie/cli
|
|
14
|
+
npm install --global @jovie/cli@26.9.16
|
|
13
15
|
jovie --help
|
|
14
16
|
jovie --version
|
|
15
17
|
```
|
|
16
18
|
|
|
17
|
-
Or run without installing: `npx -y @jovie/cli --help`.
|
|
19
|
+
Or run without installing: `npx -y @jovie/cli@26.9.16 --help`.
|
|
18
20
|
|
|
19
21
|
Use `npm view @jovie/cli version` to confirm registry availability before an
|
|
20
22
|
automated install. A repository build is not proof that npm has the package.
|
|
@@ -23,6 +25,7 @@ automated install. A repository build is not proof that npm has the package.
|
|
|
23
25
|
|
|
24
26
|
| Command | Request |
|
|
25
27
|
| --- | --- |
|
|
28
|
+
| `creator lookup <url-or-handle>` | `GET /api/agents/creator-lookup`; accepts a profile URL or `platform:handle` (youtube, instagram, tiktok, linktree); resolves an existing Jovie profile first, then extracts YouTube channels; Instagram, TikTok, and Linktree sources return `SOURCE_UNSUPPORTED` |
|
|
26
29
|
| `profile create <url>` | `POST /api/agents/profiles` with a Spotify artist URL |
|
|
27
30
|
| `artist get <username>` | `GET /api/v1/{username}` |
|
|
28
31
|
| `artist llms <username>` | `GET /{username}/llms.txt` |
|
|
@@ -39,72 +42,235 @@ has `profileUrl` and, when unclaimed, a `claimUrl`. The claim URL is not an
|
|
|
39
42
|
ownership token: the artist still verifies that they own the Spotify artist.
|
|
40
43
|
Creation is anonymous and rate limited per IP.
|
|
41
44
|
|
|
45
|
+
`creator lookup` is read-only and never creates or changes a Jovie profile.
|
|
46
|
+
When a public Jovie profile already holds that channel (matched by channel
|
|
47
|
+
identity, not a username guess), the response is
|
|
48
|
+
`{"exists":true,"username":...,"profileUrl":...}` and no source page is
|
|
49
|
+
fetched. Otherwise it is `{"exists":false,...}` with the display name, bio,
|
|
50
|
+
avatar URL, and public links extracted by the existing ingestion strategy.
|
|
51
|
+
|
|
42
52
|
`--json` emits JSON for API responses and wraps text resources as
|
|
43
53
|
`{"content":"..."}`. Failures print `{"error":{...}}`, and API failures carry
|
|
44
|
-
the server's stable `apiCode` (for example `RATE_LIMITED`
|
|
54
|
+
the server's stable `apiCode` (for example `RATE_LIMITED` or
|
|
55
|
+
`ARTIST_NOT_FOUND`). Successful commands
|
|
45
56
|
exit `0`, request/response failures exit `1`, and invalid usage exits `2`.
|
|
46
57
|
|
|
58
|
+
`--help --json` returns `{ "content": "..." }`; `--version --json` returns `{ "version": "..." }`.
|
|
59
|
+
|
|
60
|
+
Reads make up to three attempts with backoff for transient failures (connection
|
|
61
|
+
resets, 502 without an error code, 503, 504, and 429 with `Retry-After` of 5 seconds
|
|
62
|
+
or less). A longer `Retry-After` is reported, not slept through. Writes never retry
|
|
63
|
+
automatically: a timeout may have occurred after the server committed. Report tools
|
|
64
|
+
therefore do not advertise idempotency. Every attempt, backoff, and body read share
|
|
65
|
+
one 30-second deadline, so no command waits longer; set `JOVIE_TIMEOUT_MS`
|
|
66
|
+
(1000-120000) to change it. Bodies are capped at 1 MiB.
|
|
67
|
+
|
|
68
|
+
Errors are one line on stderr that says what to do next (for example
|
|
69
|
+
`Could not resolve jov.ie. Check your internet connection or --base-url.`). Add
|
|
70
|
+
`--debug` to also print the stack and cause chain; secrets are redacted either way.
|
|
71
|
+
Closing the output pipe early (`jovie docs llms | head`) exits quietly.
|
|
72
|
+
|
|
47
73
|
Every command accepts `--base-url <url>` for a compatible deployment origin.
|
|
48
74
|
The value must be an `http` or `https` origin without a path, credentials, or
|
|
49
75
|
query parameters.
|
|
50
76
|
|
|
77
|
+
## Proxies
|
|
78
|
+
|
|
79
|
+
The standalone CLI and MCP server honor `HTTP_PROXY`, `HTTPS_PROXY`, and
|
|
80
|
+
`NO_PROXY` (and their lowercase equivalents) through Node's built-in proxy
|
|
81
|
+
support on Node.js 24 and newer (Node 22 warns and connects directly). No extra
|
|
82
|
+
Node flags are needed. Existing TLS certificate settings
|
|
83
|
+
remain in effect. A proxy must allow the deployment host (normally `jov.ie`);
|
|
84
|
+
installing the CLI does not grant network access.
|
|
85
|
+
|
|
86
|
+
Importing the JavaScript client does not change the host application's global
|
|
87
|
+
transport settings. Configure Node's proxy support in that application or pass
|
|
88
|
+
`fetchImpl` through the client options.
|
|
89
|
+
|
|
51
90
|
## MCP
|
|
52
91
|
|
|
53
92
|
```json
|
|
54
93
|
{ "mcpServers": { "jovie": { "command": "npx", "args": ["-y", "@jovie/cli", "mcp"] } } }
|
|
55
94
|
```
|
|
56
95
|
|
|
57
|
-
Tools: `create_profile`, `get_artist`, `get_artist_guide`, `get_openapi`,
|
|
96
|
+
Tools: `lookup_creator`, `create_profile`, `get_artist`, `get_artist_guide`, `get_openapi`,
|
|
58
97
|
`get_docs`, `report_issue`, `report_feedback`. `server.json` describes the package for the MCP registry.
|
|
59
98
|
|
|
60
99
|
## JavaScript client
|
|
61
100
|
|
|
62
101
|
```js
|
|
63
|
-
import { createProfile, fetchArtist } from '@jovie/cli';
|
|
102
|
+
import { createProfile, fetchArtist, lookupCreator } from '@jovie/cli';
|
|
64
103
|
|
|
104
|
+
const creator = await lookupCreator('https://www.youtube.com/@creator');
|
|
105
|
+
// or by handle: await lookupCreator('youtube:@creator');
|
|
65
106
|
const profile = await createProfile('https://open.spotify.com/artist/<id>');
|
|
66
107
|
const artist = await fetchArtist('artist-username');
|
|
67
108
|
```
|
|
68
109
|
|
|
69
110
|
## Boundary
|
|
70
111
|
|
|
71
|
-
|
|
72
|
-
`jovie-cli/<version>` User-Agent. `profile create` and `report` are
|
|
112
|
+
Public commands send no credentials, cache nothing, and send no telemetry beyond a
|
|
113
|
+
`jovie-cli/<version>` User-Agent. `profile create` and `report` are their only writes. Reports carry only the CLI
|
|
73
114
|
version, platform, runtime, and the fields you pass. `init`
|
|
74
115
|
writes only `jovie/SKILL.md` into existing agent skill directories, or into
|
|
75
116
|
`--dir`. Commands use Node 24 built-ins (`parseArgs`, `fetch`, `readline`) and
|
|
76
|
-
have no runtime dependencies.
|
|
117
|
+
have no runtime dependencies. Internal fleet commands have the separate scoped
|
|
118
|
+
credential boundary below. The MCP server covers tools only; adopt the
|
|
77
119
|
official SDK when resources, prompts, or HTTP transport are needed.
|
|
78
120
|
|
|
79
121
|
The repo already supplies Node 24's `node:util.parseArgs`, built-in `fetch`,
|
|
80
|
-
`AbortSignal.timeout`, TypeScript, Vitest, and Biome.
|
|
81
|
-
|
|
82
|
-
authenticated owner actions, outside this package's anonymous read-only scope.
|
|
122
|
+
`AbortSignal.timeout`, TypeScript, Vitest, and Biome. Internal fleet commands use
|
|
123
|
+
the same canonical Actions contract as their REST and MCP transports.
|
|
83
124
|
|
|
84
125
|
We considered Commander/CAC (MIT, no runtime dependency), yargs (MIT but
|
|
85
126
|
larger), oclif (extensible but disproportionate), and Python Click/Typer or
|
|
86
127
|
Homebrew (a second runtime/distribution lane). None fits this fixed-command,
|
|
87
128
|
TypeScript-only surface as well as the native substrate.
|
|
88
129
|
|
|
89
|
-
Decision:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
130
|
+
Decision: retain one dependency-free Node 24 CLI for public product commands and
|
|
131
|
+
scoped internal fleet commands. Ovie remains the operator view of the same system.
|
|
132
|
+
|
|
133
|
+
## Internal fleet channel
|
|
134
|
+
|
|
135
|
+
These commands require a deployed fleet transport, operator enablement, and an
|
|
136
|
+
individually provisioned worker identity. Installing this package does not
|
|
137
|
+
register an agent or grant company access. Public product sessions cannot
|
|
138
|
+
authorize fleet operations.
|
|
139
|
+
|
|
140
|
+
| Command | Purpose |
|
|
141
|
+
| --- | --- |
|
|
142
|
+
| `fleet register` | Advertise capabilities and availability within provisioned authority |
|
|
143
|
+
| `fleet status` | Read this worker's current lease, requests and terminal receipts |
|
|
144
|
+
| `fleet directory` | Discover attested peers permitted by the worker's visibility scope |
|
|
145
|
+
| `work request` | Propose bounded help, dogfood or research work; grants no execution authority |
|
|
146
|
+
| `work next` | Receive a compatible admitted offer |
|
|
147
|
+
| `work claim` | Claim that offer before it expires |
|
|
148
|
+
| `work report` | Persist the terminal outcome and evidence |
|
|
149
|
+
| `defect report` | Deduplicate an evidenced defect through the canonical Linear adapter |
|
|
150
|
+
|
|
151
|
+
Every command requires `--profile <provisioned-profile-uuid>`,
|
|
152
|
+
`--idempotency-key <stable-invocation-key>`, and `--input '<canonical-json>'`.
|
|
153
|
+
Use a new key for each new invocation; reuse the exact key and payload only to
|
|
154
|
+
recover the same invocation. A repeated registration key replays the original
|
|
155
|
+
registration; it is not a presence refresh.
|
|
156
|
+
|
|
157
|
+
`fleet status` returns a bounded recent view plus durable terminal history.
|
|
158
|
+
Pass `{"historyAfter":0,"historyLimit":50}` in `--input` for the first page;
|
|
159
|
+
use `history.nextCursor` for subsequent pages, with a new invocation key for
|
|
160
|
+
each page. Save the last entry's `sequence` to resume when more outcomes arrive.
|
|
161
|
+
Pages respect both the requested item limit (1–100) and a response byte budget.
|
|
162
|
+
`history.pending` means older hot records still need bounded archival; another
|
|
163
|
+
status call continues that work. Every outcome remains durable during migration.
|
|
164
|
+
Large current request lists also expose `requestsNextCursor`; pass it back as
|
|
165
|
+
`requestsAfter`. Terminal request outcomes and receipts remain available in
|
|
166
|
+
history after leaving the recent view. History is scoped to this worker and
|
|
167
|
+
profile, including after credential rotation.
|
|
168
|
+
|
|
169
|
+
The founder status endpoint can inspect history with
|
|
170
|
+
`history: {workerId, after?, limit?}` after the existing session/owned-profile
|
|
171
|
+
checks. Its `historyWorkers` inventory lists workers with recorded history.
|
|
172
|
+
Archival preserves invocation payload conflicts, mission/request ID reservations,
|
|
173
|
+
lease issuance bindings and provider-recovery evidence. It does not prune live
|
|
174
|
+
leases or pending external operations. Genuine live capacity limits still fail
|
|
175
|
+
closed.
|
|
176
|
+
|
|
177
|
+
The operator supplies `JOVIE_WORKER_TOKEN` through the runtime's secret manager.
|
|
178
|
+
Never pass it as a CLI argument, put it in a report, or share it between workers.
|
|
179
|
+
The CLI sends it only to the selected fleet endpoint over HTTPS (HTTP is allowed
|
|
180
|
+
only on loopback), refuses redirects, and does not persist it. Ordinary public
|
|
181
|
+
commands do not send it. Fleet MCP tools are exposed only when the credential is
|
|
182
|
+
present; the server independently authenticates and authorizes every request.
|
|
183
|
+
|
|
184
|
+
Provisioning, rotation, revocation, direct mission admission and Summer delegation
|
|
185
|
+
use the existing founder control endpoint with an exact one-use approval. Worker
|
|
186
|
+
tokens cannot call that endpoint. Rotation preserves the worker ID, invalidates
|
|
187
|
+
the prior token and outstanding leases, and requires the new runtime to register
|
|
188
|
+
again. Only the configured founder can grant or revoke Summer delegation.
|
|
189
|
+
|
|
190
|
+
The initial mission contract allows `artist.get`, `artist.llms`, `api.openapi`
|
|
191
|
+
and `docs.llms`, with one concurrent lease and zero spend. Customer agents retain
|
|
192
|
+
customer visibility and authority. A display name is never identity proof.
|
|
193
|
+
|
|
194
|
+
Once the complete web and Summer runtime chain is deployed and explicitly enabled,
|
|
195
|
+
a founder delegation can admit requests for named operator workers, canonical
|
|
196
|
+
issues and read-only commands. It expires, caps admissions and permits zero spend.
|
|
197
|
+
Each eligible request persists an event atomically with its proposal. A fixed,
|
|
198
|
+
OIDC-authenticated Summer inlet receives only event IDs; the Jovie callback
|
|
199
|
+
rechecks current delegation, worker authority and canonical Linear work before
|
|
200
|
+
admission. Decisions retain the exact delegation receipt. The existing Summer
|
|
201
|
+
heartbeat repairs missed delivery in bounded batches; duplicate delivery replays
|
|
202
|
+
the durable decision, including after archival.
|
|
203
|
+
|
|
204
|
+
This source does not start the named worker processes or provide a verified wake
|
|
205
|
+
adapter for their external runtimes. Each worker still needs its own authenticated
|
|
206
|
+
runtime to register, claim and report work. No live enablement, fleet registration,
|
|
207
|
+
continuous operation or external artist outreach is established by installing the
|
|
208
|
+
CLI or merging this source. Live commissioning remains tracked in
|
|
209
|
+
[JOV-7331](https://linear.app/jovie/issue/JOV-7331) and
|
|
210
|
+
[JOV-7393](https://linear.app/jovie/issue/JOV-7393).
|
|
93
211
|
|
|
94
212
|
Docs: [Jovie CLI](https://jov.ie/cli), [developer resources](https://jov.ie/developers).
|
|
95
213
|
|
|
214
|
+
## Company agent mesh
|
|
215
|
+
|
|
216
|
+
`jovie mesh` talks to Summer's authenticated mesh inbox
|
|
217
|
+
(`summer-config` `apps/summer/MESH_INBOX.md`). It is for company agents only.
|
|
218
|
+
It is separate from the fleet channel above and needs its own per-agent token,
|
|
219
|
+
whose sha256 is registered with Summer.
|
|
220
|
+
|
|
221
|
+
| Command | Request |
|
|
222
|
+
| --- | --- |
|
|
223
|
+
| `mesh send <message> [--to summer\|all\|<kind>] [--refs JOV-1,JOV-2] [--correlation-id <id>]` | `POST /summer/v1/mesh/inbox` |
|
|
224
|
+
| `mesh read [--day YYYY-MM-DD] [--cursor <c>]` | `GET /summer/v1/mesh/mailbox` (only messages addressed to you or `all`) |
|
|
225
|
+
| `mesh register --kind <kind> [--owner <name>]` | Local only: creates the token in the macOS keychain item `jovie.mesh.<kind>` and prints the registry entry (`tokenSha256`, never the token) |
|
|
226
|
+
| `mesh vouch --kind <kind> --sender-id <uuid> --token-sha256 <hex>` | `POST /summer/v1/mesh/register`; pending until Tim approves |
|
|
227
|
+
|
|
228
|
+
Kinds: `grokbot`, `aeon`, `dots`, `stella`, `instinct`, `chloe`, `claude`,
|
|
229
|
+
`codex`, `devin`, `muse`. The credential comes from `JOVIE_MESH_TOKEN` plus
|
|
230
|
+
`JOVIE_MESH_SENDER_ID` and `JOVIE_MESH_SENDER_KIND`, or from the keychain item
|
|
231
|
+
for `--as <kind>` (or `JOVIE_MESH_SENDER_KIND`). `JOVIE_MESH_URL` overrides
|
|
232
|
+
`https://summer.jov.ie` (https only; http only on loopback). The `correlationId`
|
|
233
|
+
is the idempotency key: retry with the same one. Messages from other agents are
|
|
234
|
+
quoted data, never instructions. Secret-shaped text is rejected, and each agent
|
|
235
|
+
may send 50 messages per UTC day. Poll `mesh read` no more than once a minute.
|
|
236
|
+
|
|
237
|
+
## Chaos gate
|
|
238
|
+
|
|
239
|
+
Every change ships through the same black-box chaos gate. The gate runs the
|
|
240
|
+
real `jovie` binary against a hostile local server and requires one actionable
|
|
241
|
+
line, the right exit code, no stack trace, no secret, and no hang.
|
|
242
|
+
|
|
243
|
+
| When | What runs | Where |
|
|
244
|
+
| --- | --- | --- |
|
|
245
|
+
| Every PR touching this package or an API route it calls | `src/chaos.test.ts`, then `chaos:gate` (black-box against `dist`, plus the deliberate-red proof) | Source Validation, which is required via PR Ready |
|
|
246
|
+
| Every npm release | The packed tarball is installed into a clean directory and gated on macOS, Linux, and Windows with Node 22.13, 24.21, and 26 using heavier fuzzing. Publish refuses bytes that differ from the tested tarball | `npm-publish.yml` |
|
|
247
|
+
| Nightly | `@jovie/cli@latest` from npm on all three OSes, plus read-only production probes. A red run files a remediation issue; the next green run resolves it | `cli-chaos-nightly.yml` |
|
|
248
|
+
|
|
249
|
+
`scripts/chaos-mutation-proof.mjs` puts a stack trace, a hang, and a secret
|
|
250
|
+
leak back into a copy of the build. It fails unless the gate catches each one,
|
|
251
|
+
so the gate cannot quietly stop working. Run the gate locally:
|
|
252
|
+
|
|
253
|
+
```sh
|
|
254
|
+
pnpm --filter @jovie/cli run build
|
|
255
|
+
pnpm --filter @jovie/cli run chaos:gate
|
|
256
|
+
```
|
|
257
|
+
|
|
96
258
|
## Release boundary
|
|
97
259
|
|
|
98
260
|
The package directory is licensed under Apache-2.0 (see `LICENSE`); the
|
|
99
261
|
repository root and unrelated packages remain proprietary. Its manifest is
|
|
100
262
|
configured with `private: false` and public npm `publishConfig` for the
|
|
101
263
|
`https://registry.npmjs.org` registry, including provenance. It intentionally
|
|
102
|
-
has no source-manifest `version`; the manual main-only release workflow
|
|
103
|
-
the
|
|
264
|
+
has no source-manifest `version`; the manual main-only release workflow writes
|
|
265
|
+
the selected CLI release into a temporary publication directory. Its optional
|
|
266
|
+
`release_version` input accepts stable `YY.M.PATCH` (for example, `26.10.0`);
|
|
267
|
+
leaving it blank uses the root `VERSION`. A CLI release can therefore proceed
|
|
268
|
+
without changing the desktop stamp or the monorepo version fan-out. Invalid
|
|
269
|
+
versions and conflicting source-manifest versions fail before registry access.
|
|
270
|
+
A local build or
|
|
104
271
|
merged source change does not claim that npm publication succeeded.
|
|
105
272
|
|
|
106
|
-
The release-path smoke sequence
|
|
107
|
-
version stamp, is:
|
|
273
|
+
The release-path smoke sequence for an approved manual publication is:
|
|
108
274
|
|
|
109
275
|
```sh
|
|
110
276
|
pnpm --filter @jovie/cli run typecheck
|
|
@@ -113,6 +279,11 @@ pnpm --filter @jovie/cli run build
|
|
|
113
279
|
pnpm --filter @jovie/cli run pack:dry
|
|
114
280
|
```
|
|
115
281
|
|
|
282
|
+
To smoke-test an independent version without publishing, set `RELEASE_VERSION`
|
|
283
|
+
for the pack command (for example,
|
|
284
|
+
`RELEASE_VERSION=26.10.0 pnpm --filter @jovie/cli run pack:dry`). The workflow
|
|
285
|
+
passes its selected version to the same smoke path.
|
|
286
|
+
|
|
116
287
|
`pack:dry` builds a temporary versioned package, checks its metadata,
|
|
117
288
|
declarations, and contents, installs that tarball into a clean temporary
|
|
118
289
|
directory, imports the installed library, and runs the installed binary against
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { type FetchImplementation } from './client.js';
|
|
3
|
+
import { type MeshDependencies } from './mesh.js';
|
|
3
4
|
export declare const CLI_VERSION_FALLBACK = "0.0.0-private";
|
|
4
5
|
export declare function packageVersionFromText(manifestText: string): string;
|
|
5
6
|
export declare function resolveCliVersion(manifestPath?: string): string;
|
|
@@ -12,6 +13,35 @@ export interface CliDependencies {
|
|
|
12
13
|
readonly stderr?: CliOutput;
|
|
13
14
|
readonly stdin?: NodeJS.ReadableStream;
|
|
14
15
|
readonly homeDir?: string;
|
|
16
|
+
readonly workerToken?: string;
|
|
17
|
+
readonly mesh?: MeshDependencies;
|
|
18
|
+
/** Whole-request deadline; tests shorten it to exercise hangs quickly. */
|
|
19
|
+
readonly timeoutMs?: number;
|
|
15
20
|
}
|
|
21
|
+
/** `JOVIE_TIMEOUT_MS` bounds every request (1s-120s); CI shortens it. */
|
|
22
|
+
export declare function timeoutFromEnv(value?: string | undefined): number | undefined;
|
|
23
|
+
/** Stack and cause chain, only behind --debug; secrets are still redacted. */
|
|
24
|
+
export declare function debugDetail(error: unknown): string;
|
|
16
25
|
export declare function runCli(argv: readonly string[], dependencies?: CliDependencies): Promise<number>;
|
|
26
|
+
/** Oldest Node major the CLI runs on; enforced before any command executes. */
|
|
27
|
+
export declare const MIN_NODE_MAJOR = 22;
|
|
28
|
+
export declare function unsupportedNodeMessage(version?: string): string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* True when this module is the process entrypoint. npm's Windows shims and
|
|
31
|
+
* symlinked global bins pass a different spelling of the same file, so compare
|
|
32
|
+
* real paths, case-insensitively on Windows, and never throw from an import.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isEntrypoint(moduleUrl: string, argv1: string | undefined, platform?: NodeJS.Platform, realpath?: (path: string) => string): boolean;
|
|
35
|
+
/** A closed pipe (`jovie ... | head`) ends output, not the process with a trace. */
|
|
36
|
+
export declare function closedPipeListener(exit: (code: number) => void): (error: NodeJS.ErrnoException) => void;
|
|
37
|
+
/** Last-resort report for a bug that escaped runCli: one line, exit 1. */
|
|
38
|
+
export declare function reportFatal(argv: readonly string[], error: unknown, stdout?: CliOutput, stderr?: CliOutput): void;
|
|
39
|
+
/**
|
|
40
|
+
* Only the standalone process owns its global transport configuration. Node
|
|
41
|
+
* applies NO_PROXY and keeps the configured TLS trust intact. Node 22 lacks
|
|
42
|
+
* the API, so the CLI warns and connects directly instead of failing to load.
|
|
43
|
+
*/
|
|
44
|
+
export declare function applyProxyFromEnv(httpModule: {
|
|
45
|
+
setGlobalProxyFromEnv?: () => void;
|
|
46
|
+
}, env: NodeJS.ProcessEnv, stderr: CliOutput, nodeVersion?: string): void;
|
|
17
47
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AASA,OAAO,EAGL,KAAK,mBAAmB,EAKzB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,WAAW,CAAC;AAGnB,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAiBnE;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,SAGX,GACA,MAAM,CAMR;AAID,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgBD,yEAAyE;AACzE,wBAAgB,cAAc,CAC5B,KAAK,qBAA+B,GACnC,MAAM,GAAG,SAAS,CASpB;AA+DD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAYlD;AA0MD,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,YAAY,GAAE,eAAoB,GACjC,OAAO,CAAC,MAAM,CAAC,CAsGjB;AAED,+EAA+E;AAC/E,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,wBAAgB,sBAAsB,CACpC,OAAO,SAAwB,GAC9B,MAAM,GAAG,SAAS,CAKpB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,QAAQ,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAqB,GAChD,OAAO,CAWT;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3B,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,KAAK,IAAI,CAaxC;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE,OAAO,EACd,MAAM,GAAE,SAA0B,EAClC,MAAM,GAAE,SAA0B,GACjC,IAAI,CAgBN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE;IAAE,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,EAClD,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,MAAM,EAAE,SAAS,EACjB,WAAW,SAAwB,GAClC,IAAI,CAcN"}
|