@jovie/cli 26.9.15 → 26.10.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 +205 -17
- package/dist/cli.d.ts +30 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +261 -18
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +30 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +344 -31
- package/dist/client.js.map +1 -1
- package/dist/commands.d.ts +13 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +87 -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 +81 -16
- 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 +332 -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 +32 -3
- package/dist/skill.js.map +1 -1
- package/package.json +7 -6
package/dist/cli.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync, realpathSync } from 'node:fs';
|
|
3
|
+
import * as http from 'node:http';
|
|
3
4
|
import { homedir } from 'node:os';
|
|
4
5
|
import { dirname, resolve } from 'node:path';
|
|
5
6
|
import { fileURLToPath } from 'node:url';
|
|
6
7
|
import { parseArgs } from 'node:util';
|
|
7
|
-
import { DEFAULT_BASE_URL, JovieInputError, JovieRequestError, normalizeBaseUrl, } from './client.js';
|
|
8
|
+
import { DEFAULT_BASE_URL, displayValue, JovieInputError, JovieRequestError, normalizeBaseUrl, safeDiagnostic, } from './client.js';
|
|
8
9
|
import { COMMANDS, findCommand } from './commands.js';
|
|
9
10
|
import { installSkill } from './init.js';
|
|
10
11
|
import { serveMcp } from './mcp.js';
|
|
12
|
+
import { MESH_FLAG_NAMES, MESH_USAGE, runMesh, } from './mesh.js';
|
|
11
13
|
import { SKILL_MD } from './skill.js';
|
|
12
14
|
export const CLI_VERSION_FALLBACK = '0.0.0-private';
|
|
13
15
|
export function packageVersionFromText(manifestText) {
|
|
@@ -36,6 +38,17 @@ export function resolveCliVersion(manifestPath = resolve(dirname(fileURLToPath(i
|
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
const CLI_VERSION = resolveCliVersion();
|
|
41
|
+
const USAGE_HINT = 'Run `jovie --help` for usage.';
|
|
42
|
+
/** `JOVIE_TIMEOUT_MS` bounds every request (1s-120s); CI shortens it. */
|
|
43
|
+
export function timeoutFromEnv(value = process.env.JOVIE_TIMEOUT_MS) {
|
|
44
|
+
if (value === undefined || value === '')
|
|
45
|
+
return undefined;
|
|
46
|
+
const ms = Number(value);
|
|
47
|
+
if (!Number.isInteger(ms) || ms < 1_000 || ms > 120_000) {
|
|
48
|
+
throw new UsageError('JOVIE_TIMEOUT_MS must be a whole number of milliseconds from 1000 to 120000.');
|
|
49
|
+
}
|
|
50
|
+
return ms;
|
|
51
|
+
}
|
|
39
52
|
class UsageError extends Error {
|
|
40
53
|
code = 'USAGE_ERROR';
|
|
41
54
|
}
|
|
@@ -45,13 +58,19 @@ function usage() {
|
|
|
45
58
|
const name = [
|
|
46
59
|
...command.path,
|
|
47
60
|
...(command.arg ? [`<${command.arg.name}>`] : []),
|
|
61
|
+
...(command.flags ?? [])
|
|
62
|
+
.filter(flag => flag.required)
|
|
63
|
+
.map(flag => `--${flag.name} <text>`),
|
|
48
64
|
].join(' ');
|
|
49
65
|
return ` ${name.padEnd(width)} ${command.summary}`;
|
|
50
66
|
});
|
|
51
67
|
return `Usage: jovie <command> [options]
|
|
52
68
|
|
|
53
|
-
Jovie for agents: create artist profiles from
|
|
54
|
-
|
|
69
|
+
Jovie for agents: extract public creator data, create artist profiles from
|
|
70
|
+
Spotify, and read public artist data.
|
|
71
|
+
No login or API key is needed for public commands.
|
|
72
|
+
Internal fleet commands require a scoped JOVIE_WORKER_TOKEN supplied by the
|
|
73
|
+
operator. Every command supports --json.
|
|
55
74
|
|
|
56
75
|
Commands:
|
|
57
76
|
${lines.join('\n')}
|
|
@@ -59,15 +78,23 @@ ${lines.join('\n')}
|
|
|
59
78
|
${'init'.padEnd(width)} Install the Jovie skill into Claude, Codex, OpenClaw, Hermes
|
|
60
79
|
${'skill'.padEnd(width)} Print the Jovie SKILL.md
|
|
61
80
|
|
|
81
|
+
${MESH_USAGE}
|
|
82
|
+
|
|
62
83
|
Options:
|
|
63
84
|
--base-url <url> Compatible Jovie deployment origin (default: ${DEFAULT_BASE_URL})
|
|
64
85
|
--json Emit compact JSON; text resources use {"content":"..."}
|
|
65
86
|
--full Fetch /llms-full.txt (only with docs llms)
|
|
66
87
|
--dir <path> Skills directory for init (default: every installed agent)
|
|
88
|
+
--debug Print error details (stack and cause) to stderr
|
|
67
89
|
-h, --help Show this help
|
|
68
90
|
-v, --version Show the installed CLI version
|
|
69
91
|
|
|
92
|
+
Environment:
|
|
93
|
+
JOVIE_TIMEOUT_MS Request deadline in ms, retries included (default 30000)
|
|
94
|
+
|
|
70
95
|
Examples:
|
|
96
|
+
jovie creator lookup https://www.youtube.com/@creator --json
|
|
97
|
+
jovie creator lookup youtube:@creator --json
|
|
71
98
|
jovie profile create https://open.spotify.com/artist/<id> --json
|
|
72
99
|
jovie artist get <username> --json
|
|
73
100
|
npx -y @jovie/cli mcp
|
|
@@ -79,12 +106,24 @@ function writeLine(output, value) {
|
|
|
79
106
|
function writeText(output, value) {
|
|
80
107
|
output.write(value.endsWith('\n') ? value : `${value}\n`);
|
|
81
108
|
}
|
|
109
|
+
/** Stack and cause chain, only behind --debug; secrets are still redacted. */
|
|
110
|
+
export function debugDetail(error) {
|
|
111
|
+
const lines = [];
|
|
112
|
+
for (let current = error, depth = 0; current && depth < 5; depth++) {
|
|
113
|
+
lines.push(depth === 0 ? '' : 'Caused by:', current instanceof Error
|
|
114
|
+
? (current.stack ?? `${current.name}: ${current.message}`)
|
|
115
|
+
: String(current));
|
|
116
|
+
current = current.cause;
|
|
117
|
+
}
|
|
118
|
+
return safeDiagnostic(lines.filter(Boolean).join('\n'));
|
|
119
|
+
}
|
|
82
120
|
function errorPayload(error) {
|
|
83
121
|
if (error instanceof JovieRequestError) {
|
|
84
122
|
return {
|
|
85
123
|
code: error.code,
|
|
86
124
|
message: error.message,
|
|
87
125
|
...(error.apiCode ? { apiCode: error.apiCode } : {}),
|
|
126
|
+
...(error.retryable === undefined ? {} : { retryable: error.retryable }),
|
|
88
127
|
...(error.status === undefined ? {} : { status: error.status }),
|
|
89
128
|
...(error.responseBody ? { responseBody: error.responseBody } : {}),
|
|
90
129
|
...(error.retryAfterSeconds === undefined
|
|
@@ -103,16 +142,45 @@ function errorPayload(error) {
|
|
|
103
142
|
message: error instanceof Error ? error.message : String(error),
|
|
104
143
|
};
|
|
105
144
|
}
|
|
145
|
+
/** Command flags declared in the table (e.g. --title), parsed as strings. */
|
|
146
|
+
const COMMAND_FLAG_NAMES = [
|
|
147
|
+
...new Set(COMMANDS.flatMap(command => command.flags ?? []).map(f => f.name)),
|
|
148
|
+
];
|
|
149
|
+
function commandFamily(argv) {
|
|
150
|
+
const stringOptions = new Set([
|
|
151
|
+
'base-url',
|
|
152
|
+
'dir',
|
|
153
|
+
...COMMAND_FLAG_NAMES,
|
|
154
|
+
...MESH_FLAG_NAMES,
|
|
155
|
+
]);
|
|
156
|
+
for (let index = 0; index < argv.length; index++) {
|
|
157
|
+
const token = argv[index];
|
|
158
|
+
if (token === '--')
|
|
159
|
+
return argv[index + 1];
|
|
160
|
+
if (!token.startsWith('-') || token === '-')
|
|
161
|
+
return token;
|
|
162
|
+
if (token.startsWith('--') &&
|
|
163
|
+
!token.includes('=') &&
|
|
164
|
+
stringOptions.has(token.slice(2)))
|
|
165
|
+
index++;
|
|
166
|
+
}
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
106
169
|
function parseCliArgs(argv) {
|
|
107
170
|
const parsed = parseArgs({
|
|
108
171
|
args: [...argv],
|
|
109
172
|
options: {
|
|
110
173
|
'base-url': { type: 'string' },
|
|
174
|
+
debug: { type: 'boolean' },
|
|
111
175
|
dir: { type: 'string' },
|
|
112
176
|
full: { type: 'boolean' },
|
|
113
177
|
help: { type: 'boolean', short: 'h' },
|
|
114
178
|
json: { type: 'boolean' },
|
|
115
179
|
version: { type: 'boolean', short: 'v' },
|
|
180
|
+
...Object.fromEntries([...COMMAND_FLAG_NAMES, ...MESH_FLAG_NAMES].map(name => [
|
|
181
|
+
name,
|
|
182
|
+
{ type: 'string' },
|
|
183
|
+
])),
|
|
116
184
|
},
|
|
117
185
|
allowPositionals: true,
|
|
118
186
|
strict: true,
|
|
@@ -121,6 +189,12 @@ function parseCliArgs(argv) {
|
|
|
121
189
|
return {
|
|
122
190
|
values: {
|
|
123
191
|
baseUrl: values['base-url'],
|
|
192
|
+
debug: values.debug,
|
|
193
|
+
flags: Object.fromEntries(COMMAND_FLAG_NAMES.filter(name => values[name] !== undefined).map(name => [name, String(values[name])])),
|
|
194
|
+
meshFlags: Object.fromEntries(MESH_FLAG_NAMES.filter(name => values[name] !== undefined).map(name => [
|
|
195
|
+
name,
|
|
196
|
+
String(values[name]),
|
|
197
|
+
])),
|
|
124
198
|
dir: values.dir,
|
|
125
199
|
full: values.full,
|
|
126
200
|
help: values.help,
|
|
@@ -133,22 +207,62 @@ function parseCliArgs(argv) {
|
|
|
133
207
|
async function execute(positionals, values, dependencies) {
|
|
134
208
|
const baseUrl = normalizeBaseUrl(values.baseUrl);
|
|
135
209
|
const [first] = positionals;
|
|
210
|
+
if (positionals.length === 1 && ['skill', 'init'].includes(first ?? '')) {
|
|
211
|
+
if (values.full ||
|
|
212
|
+
Object.keys(values.flags).length ||
|
|
213
|
+
(first === 'skill' && values.dir))
|
|
214
|
+
throw new UsageError('Unsupported option for this command.');
|
|
215
|
+
}
|
|
216
|
+
if (first === 'mesh') {
|
|
217
|
+
if (values.full || values.dir || Object.keys(values.flags).length)
|
|
218
|
+
throw new UsageError('Unsupported option for mesh.');
|
|
219
|
+
return runMesh(positionals, values.meshFlags, {
|
|
220
|
+
userAgent: `jovie-cli/${CLI_VERSION}`,
|
|
221
|
+
...dependencies.mesh,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
if (Object.keys(values.meshFlags).length)
|
|
225
|
+
throw new UsageError('Mesh options are only supported by mesh commands.');
|
|
136
226
|
if (positionals.length === 1 && first === 'skill')
|
|
137
227
|
return SKILL_MD;
|
|
138
228
|
if (positionals.length === 1 && first === 'init') {
|
|
139
229
|
return installSkill(dependencies.homeDir ?? homedir(), values.dir);
|
|
140
230
|
}
|
|
141
231
|
const command = findCommand(positionals);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
232
|
+
if (!command) {
|
|
233
|
+
const family = COMMANDS.filter(entry => !entry.internal && entry.path[0] === first);
|
|
234
|
+
if (family.length && positionals.length === 1) {
|
|
235
|
+
throw new UsageError(`Missing subcommand for ${first}. Try: ${family
|
|
236
|
+
.map(entry => `jovie ${entry.path.join(' ')}`)
|
|
237
|
+
.join(', ')}`);
|
|
238
|
+
}
|
|
239
|
+
throw new UsageError(`Unknown command: ${displayValue(positionals.join(' '), 80)}`);
|
|
240
|
+
}
|
|
241
|
+
const expectedLength = command.arg ? 3 : 2;
|
|
242
|
+
if (command.arg && positionals.length < expectedLength) {
|
|
243
|
+
throw new UsageError(`Missing required argument <${command.arg.name}> for ${command.path.join(' ')}`);
|
|
244
|
+
}
|
|
245
|
+
if (positionals.length !== expectedLength) {
|
|
246
|
+
throw new UsageError(`Too many arguments for ${command.path.join(' ')}. Quote values that contain spaces.`);
|
|
145
247
|
}
|
|
146
248
|
if (values.full && !command.acceptsFull) {
|
|
147
249
|
throw new UsageError('--full is only supported by docs llms');
|
|
148
250
|
}
|
|
149
|
-
|
|
251
|
+
const declared = new Set((command.flags ?? []).map(flag => flag.name));
|
|
252
|
+
const stray = Object.keys(values.flags).find(name => !declared.has(name));
|
|
253
|
+
if (stray) {
|
|
254
|
+
throw new UsageError(`--${stray} is not supported by ${command.path.join(' ')}`);
|
|
255
|
+
}
|
|
256
|
+
return command.run({
|
|
257
|
+
arg: positionals[2],
|
|
258
|
+
full: values.full === true,
|
|
259
|
+
flags: values.flags,
|
|
260
|
+
meta: { channel: 'cli', version: CLI_VERSION },
|
|
261
|
+
}, {
|
|
150
262
|
baseUrl,
|
|
263
|
+
workerToken: dependencies.workerToken ?? process.env.JOVIE_WORKER_TOKEN,
|
|
151
264
|
fetchImpl: dependencies.fetchImpl,
|
|
265
|
+
timeoutMs: dependencies.timeoutMs ?? timeoutFromEnv(),
|
|
152
266
|
userAgent: `jovie-cli/${CLI_VERSION}`,
|
|
153
267
|
});
|
|
154
268
|
}
|
|
@@ -156,6 +270,7 @@ export async function runCli(argv, dependencies = {}) {
|
|
|
156
270
|
const stdout = dependencies.stdout ?? process.stdout;
|
|
157
271
|
const stderr = dependencies.stderr ?? process.stderr;
|
|
158
272
|
const requestedJson = argv.includes('--json');
|
|
273
|
+
let internalInvocation = COMMANDS.some(command => command.internal && command.path[0] === commandFamily(argv));
|
|
159
274
|
let parsed;
|
|
160
275
|
try {
|
|
161
276
|
parsed = parseCliArgs(argv);
|
|
@@ -168,24 +283,35 @@ export async function runCli(argv, dependencies = {}) {
|
|
|
168
283
|
}
|
|
169
284
|
else {
|
|
170
285
|
writeLine(stderr, `${payload.message}`);
|
|
171
|
-
writeLine(stderr,
|
|
286
|
+
writeLine(stderr, USAGE_HINT);
|
|
172
287
|
}
|
|
173
|
-
return 2;
|
|
288
|
+
return internalInvocation ? 3 : 2;
|
|
174
289
|
}
|
|
175
290
|
const { values, positionals } = parsed;
|
|
291
|
+
internalInvocation = COMMANDS.some(command => command.internal && command.path[0] === positionals[0]);
|
|
176
292
|
if (values.version) {
|
|
177
|
-
writeLine(stdout, CLI_VERSION);
|
|
293
|
+
writeLine(stdout, values.json ? JSON.stringify({ version: CLI_VERSION }) : CLI_VERSION);
|
|
178
294
|
return 0;
|
|
179
295
|
}
|
|
180
296
|
if (values.help || positionals.length === 0) {
|
|
181
|
-
|
|
297
|
+
if (values.json)
|
|
298
|
+
writeLine(stdout, JSON.stringify({ content: usage() }));
|
|
299
|
+
else
|
|
300
|
+
writeText(stdout, usage());
|
|
182
301
|
return 0;
|
|
183
302
|
}
|
|
184
303
|
if (positionals.length === 1 && positionals[0] === 'mcp') {
|
|
185
304
|
try {
|
|
305
|
+
if (values.full ||
|
|
306
|
+
values.json ||
|
|
307
|
+
values.dir ||
|
|
308
|
+
Object.keys(values.flags).length)
|
|
309
|
+
throw new UsageError('Unsupported option for mcp.');
|
|
186
310
|
await serveMcp((dependencies.stdin ?? process.stdin), stdout, {
|
|
187
311
|
version: CLI_VERSION,
|
|
312
|
+
workerToken: dependencies.workerToken ?? process.env.JOVIE_WORKER_TOKEN,
|
|
188
313
|
baseUrl: normalizeBaseUrl(values.baseUrl),
|
|
314
|
+
timeoutMs: dependencies.timeoutMs ?? timeoutFromEnv(),
|
|
189
315
|
fetchImpl: dependencies.fetchImpl,
|
|
190
316
|
});
|
|
191
317
|
return 0;
|
|
@@ -208,6 +334,16 @@ export async function runCli(argv, dependencies = {}) {
|
|
|
208
334
|
else {
|
|
209
335
|
writeLine(stdout, JSON.stringify(result, null, values.json ? 0 : 2));
|
|
210
336
|
}
|
|
337
|
+
if (result && typeof result === 'object' && 'status' in result) {
|
|
338
|
+
const status = result.status;
|
|
339
|
+
return status === 'completed' || status === 'handoff'
|
|
340
|
+
? 0
|
|
341
|
+
: status === 'unavailable'
|
|
342
|
+
? 2
|
|
343
|
+
: status === 'in_progress'
|
|
344
|
+
? 3
|
|
345
|
+
: 1;
|
|
346
|
+
}
|
|
211
347
|
return 0;
|
|
212
348
|
}
|
|
213
349
|
catch (error) {
|
|
@@ -217,18 +353,125 @@ export async function runCli(argv, dependencies = {}) {
|
|
|
217
353
|
}
|
|
218
354
|
else {
|
|
219
355
|
writeLine(stderr, payload.message);
|
|
356
|
+
if (error instanceof UsageError)
|
|
357
|
+
writeLine(stderr, USAGE_HINT);
|
|
220
358
|
}
|
|
359
|
+
if (values.debug)
|
|
360
|
+
writeLine(stderr, debugDetail(error));
|
|
361
|
+
if (internalInvocation)
|
|
362
|
+
return 3;
|
|
221
363
|
return error instanceof UsageError || error instanceof JovieInputError
|
|
222
364
|
? 2
|
|
223
365
|
: 1;
|
|
224
366
|
}
|
|
225
367
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
368
|
+
/** Oldest Node major the CLI runs on; enforced before any command executes. */
|
|
369
|
+
export const MIN_NODE_MAJOR = 22;
|
|
370
|
+
export function unsupportedNodeMessage(version = process.versions.node) {
|
|
371
|
+
const major = Number.parseInt(version.split('.')[0] ?? '', 10);
|
|
372
|
+
return major >= MIN_NODE_MAJOR
|
|
373
|
+
? undefined
|
|
374
|
+
: `Jovie CLI needs Node.js ${MIN_NODE_MAJOR} or newer (found v${version}). Install the current LTS from https://nodejs.org and retry.`;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* True when this module is the process entrypoint. npm's Windows shims and
|
|
378
|
+
* symlinked global bins pass a different spelling of the same file, so compare
|
|
379
|
+
* real paths, case-insensitively on Windows, and never throw from an import.
|
|
380
|
+
*/
|
|
381
|
+
export function isEntrypoint(moduleUrl, argv1, platform = process.platform, realpath = realpathSync) {
|
|
382
|
+
if (!argv1)
|
|
383
|
+
return false;
|
|
384
|
+
try {
|
|
385
|
+
const self = realpath(fileURLToPath(moduleUrl));
|
|
386
|
+
const entry = realpath(resolve(argv1));
|
|
387
|
+
return platform === 'win32'
|
|
388
|
+
? self.toLowerCase() === entry.toLowerCase()
|
|
389
|
+
: self === entry;
|
|
390
|
+
}
|
|
391
|
+
catch {
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/** A closed pipe (`jovie ... | head`) ends output, not the process with a trace. */
|
|
396
|
+
export function closedPipeListener(exit) {
|
|
397
|
+
return error => {
|
|
398
|
+
// Windows reports a closed pipe as EOF rather than EPIPE.
|
|
399
|
+
if (error.code === 'EPIPE' ||
|
|
400
|
+
error.code === 'EOF' ||
|
|
401
|
+
error.code === 'ERR_STREAM_DESTROYED') {
|
|
402
|
+
exit(Number(process.exitCode ?? 0));
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
throw error;
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
/** Last-resort report for a bug that escaped runCli: one line, exit 1. */
|
|
409
|
+
export function reportFatal(argv, error, stdout = process.stdout, stderr = process.stderr) {
|
|
410
|
+
const message = `Unexpected error: ${displayValue(error instanceof Error ? error.message : String(error), 200)}. Rerun with --debug and report it with \`jovie report bug\`.`;
|
|
411
|
+
try {
|
|
412
|
+
if (argv.includes('--json')) {
|
|
413
|
+
writeLine(stdout, JSON.stringify({ error: { code: 'CLI_ERROR', message } }));
|
|
414
|
+
}
|
|
415
|
+
else
|
|
416
|
+
writeLine(stderr, message);
|
|
417
|
+
if (argv.includes('--debug'))
|
|
418
|
+
writeLine(stderr, debugDetail(error));
|
|
419
|
+
}
|
|
420
|
+
catch {
|
|
421
|
+
// Output is gone; the exit code still reports the failure.
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Only the standalone process owns its global transport configuration. Node
|
|
426
|
+
* applies NO_PROXY and keeps the configured TLS trust intact. Node 22 lacks
|
|
427
|
+
* the API, so the CLI warns and connects directly instead of failing to load.
|
|
428
|
+
*/
|
|
429
|
+
export function applyProxyFromEnv(httpModule, env, stderr, nodeVersion = process.versions.node) {
|
|
430
|
+
if (httpModule.setGlobalProxyFromEnv) {
|
|
431
|
+
httpModule.setGlobalProxyFromEnv();
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
if (['HTTPS_PROXY', 'https_proxy', 'HTTP_PROXY', 'http_proxy'].some(name => env[name]))
|
|
435
|
+
writeLine(stderr, `HTTP(S)_PROXY is set, but Node.js v${nodeVersion} cannot apply it; connecting directly. Use Node.js 24+ for proxy support.`);
|
|
436
|
+
}
|
|
437
|
+
if (isEntrypoint(import.meta.url, process.argv[1])) {
|
|
438
|
+
const argv = process.argv.slice(2);
|
|
439
|
+
const onClosedPipe = closedPipeListener(code => process.exit(code));
|
|
440
|
+
process.stdout.on('error', onClosedPipe);
|
|
441
|
+
process.stderr.on('error', onClosedPipe);
|
|
442
|
+
const fatal = (error) => {
|
|
443
|
+
reportFatal(argv, error);
|
|
444
|
+
process.exitCode = 1;
|
|
445
|
+
// Let the one-line report flush, but never keep a broken process alive.
|
|
446
|
+
setTimeout(() => process.exit(1), 50).unref();
|
|
447
|
+
};
|
|
448
|
+
process.on('uncaughtException', fatal);
|
|
449
|
+
process.on('unhandledRejection', fatal);
|
|
450
|
+
const unsupported = unsupportedNodeMessage();
|
|
451
|
+
if (unsupported) {
|
|
452
|
+
writeLine(process.stderr, unsupported);
|
|
453
|
+
process.exitCode = 1;
|
|
454
|
+
}
|
|
455
|
+
else {
|
|
456
|
+
try {
|
|
457
|
+
applyProxyFromEnv(http, process.env, process.stderr);
|
|
458
|
+
runCli(argv).then(code => {
|
|
459
|
+
process.exitCode = code;
|
|
460
|
+
}, fatal);
|
|
461
|
+
}
|
|
462
|
+
catch {
|
|
463
|
+
// Proxy parser errors can include the URL, including its credentials.
|
|
464
|
+
const error = new JovieInputError('Invalid proxy configuration. Check HTTP_PROXY and HTTPS_PROXY.');
|
|
465
|
+
if (argv.includes('--json')) {
|
|
466
|
+
writeLine(process.stdout, JSON.stringify({ error: errorPayload(error) }));
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
writeLine(process.stderr, error.message);
|
|
470
|
+
}
|
|
471
|
+
process.exitCode = COMMANDS.some(command => command.internal && command.path[0] === commandFamily(argv))
|
|
472
|
+
? 3
|
|
473
|
+
: 2;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
233
476
|
}
|
|
234
477
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare const DEFAULT_TIMEOUT_MS = 30000;
|
|
|
3
3
|
export declare const DEFAULT_USER_AGENT = "jovie-cli";
|
|
4
4
|
export type FetchImplementation = (input: string | URL, init?: RequestInit) => Promise<Response>;
|
|
5
5
|
export type ResourceOptions = {
|
|
6
|
+
readonly workerToken?: string;
|
|
6
7
|
readonly baseUrl?: string;
|
|
7
8
|
readonly fetchImpl?: FetchImplementation;
|
|
8
9
|
readonly signal?: AbortSignal;
|
|
@@ -20,13 +21,22 @@ export declare class JovieRequestError extends Error {
|
|
|
20
21
|
readonly retryAfterSeconds?: number | undefined;
|
|
21
22
|
/** Stable server error code (e.g. RATE_LIMITED) when the API sent one. */
|
|
22
23
|
readonly apiCode?: string | undefined;
|
|
24
|
+
readonly retryable?: boolean | undefined;
|
|
23
25
|
readonly code: "REQUEST_FAILED";
|
|
24
26
|
constructor(message: string, url: string, status?: number | undefined, responseBody?: string | undefined, retryAfterSeconds?: number | undefined,
|
|
25
27
|
/** Stable server error code (e.g. RATE_LIMITED) when the API sent one. */
|
|
26
|
-
apiCode?: string | undefined);
|
|
28
|
+
apiCode?: string | undefined, retryable?: boolean | undefined);
|
|
27
29
|
}
|
|
30
|
+
export declare function safeDiagnostic(value: string): string;
|
|
31
|
+
/** Echo untrusted text on one bounded terminal line (no escape sequences). */
|
|
32
|
+
export declare function displayValue(value: string, max?: number): string;
|
|
33
|
+
/** Reads make at most this many attempts inside one shared deadline. */
|
|
34
|
+
export declare const MAX_READ_ATTEMPTS = 3;
|
|
35
|
+
/** Response consumption shares the request deadline and has a hard byte cap. */
|
|
36
|
+
export declare function readResponseBody(response: Response, signal: AbortSignal): Promise<string>;
|
|
28
37
|
/** Normalize a deployment root without accepting credentials or query state. */
|
|
29
38
|
export declare function normalizeBaseUrl(baseUrl?: string): string;
|
|
39
|
+
export declare function parseRetryAfterSeconds(value: string | null, nowMs?: number): number | undefined;
|
|
30
40
|
export declare function validateUsername(username: string): string;
|
|
31
41
|
/** Fetch the public, unauthenticated artist API response. */
|
|
32
42
|
export declare function fetchArtist(username: string, options?: ResourceOptions): Promise<unknown>;
|
|
@@ -42,4 +52,23 @@ export declare function fetchArtistLlms(username: string, options?: ResourceOpti
|
|
|
42
52
|
* ownership. Anonymous and rate limited per IP.
|
|
43
53
|
*/
|
|
44
54
|
export declare function createProfile(spotifyArtistUrl: string, options?: ResourceOptions): Promise<unknown>;
|
|
55
|
+
/** Extract public creator fields without creating or modifying a profile. */
|
|
56
|
+
export declare function lookupCreator(creatorUrl: string, options?: ResourceOptions): Promise<unknown>;
|
|
57
|
+
export type ReportKind = 'bug' | 'feedback';
|
|
58
|
+
/** Safe execution context only; never env, credentials, or file contents. */
|
|
59
|
+
export interface ReportContext {
|
|
60
|
+
readonly cliVersion?: string;
|
|
61
|
+
readonly command?: string;
|
|
62
|
+
readonly apiCode?: string;
|
|
63
|
+
readonly scenario?: string;
|
|
64
|
+
readonly platform?: string;
|
|
65
|
+
readonly runtime?: string;
|
|
66
|
+
readonly channel?: 'cli' | 'mcp';
|
|
67
|
+
}
|
|
68
|
+
/** File a bug or feedback report. Returns `{ reportId }`. */
|
|
69
|
+
export declare function reportIssue(report: {
|
|
70
|
+
readonly kind: ReportKind;
|
|
71
|
+
readonly title: string;
|
|
72
|
+
readonly details: string;
|
|
73
|
+
}, context?: ReportContext, options?: ResourceOptions): Promise<unknown>;
|
|
45
74
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG,CAChC,KAAK,EAAE,MAAM,GAAG,GAAG,EACnB,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAU;gBAE7B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAKxC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|