@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/dist/client.js CHANGED
@@ -14,21 +14,218 @@ export class JovieRequestError extends Error {
14
14
  responseBody;
15
15
  retryAfterSeconds;
16
16
  apiCode;
17
+ retryable;
17
18
  code = 'REQUEST_FAILED';
18
19
  constructor(message, url, status, responseBody, retryAfterSeconds,
19
20
  /** Stable server error code (e.g. RATE_LIMITED) when the API sent one. */
20
- apiCode) {
21
+ apiCode, retryable) {
21
22
  super(message);
22
23
  this.url = url;
23
24
  this.status = status;
24
25
  this.responseBody = responseBody;
25
26
  this.retryAfterSeconds = retryAfterSeconds;
26
27
  this.apiCode = apiCode;
28
+ this.retryable = retryable;
27
29
  this.name = 'JovieRequestError';
28
30
  }
29
31
  }
32
+ export function safeDiagnostic(value) {
33
+ return value.replace(/(?:Bearer\s+[^\s"']+|jwf\.[A-Za-z0-9._-]+|sk-[A-Za-z0-9_-]{16,})/gi, '[redacted]');
34
+ }
30
35
  function errorMessage(error) {
31
- return error instanceof Error ? error.message : String(error);
36
+ return safeDiagnostic(error instanceof Error ? error.message : String(error));
37
+ }
38
+ /** Echo untrusted text on one bounded terminal line (no escape sequences). */
39
+ export function displayValue(value, max = 120) {
40
+ const flat = safeDiagnostic(value).replace(/[\u0000-\u001f\u007f-\u009f]/g, ' ');
41
+ return flat.length > max ? `${flat.slice(0, max)}…` : flat;
42
+ }
43
+ const TLS_ERROR = /^(?:CERT_|ERR_TLS_|ERR_SSL_|DEPTH_ZERO_SELF_SIGNED_CERT$|SELF_SIGNED_CERT_IN_CHAIN$|UNABLE_TO_(?:VERIFY_LEAF_SIGNATURE|GET_ISSUER_CERT(?:_LOCALLY)?)$|HOSTNAME_MISMATCH$)/;
44
+ /** Walk an undici `fetch failed` cause chain for the first system error code. */
45
+ function transportCode(error) {
46
+ for (let current = error, depth = 0; current && depth < 5; depth++) {
47
+ const { code, name, message } = current;
48
+ if (typeof message === 'string' && /^Proxy response \(\d+\)/.test(message))
49
+ return 'PROXY';
50
+ if (name === 'TimeoutError')
51
+ return 'TIMEOUT';
52
+ if (name === 'AbortError' && code !== 'UND_ERR_ABORTED')
53
+ return 'ABORTED';
54
+ if (typeof code === 'string' && code !== 'ABORT_ERR')
55
+ return code;
56
+ if (typeof message === 'string' && /unexpected redirect/i.test(message))
57
+ return 'REDIRECT';
58
+ if (typeof message === 'string' && /^bad port$/i.test(message))
59
+ return 'BAD_PORT';
60
+ current = current.cause;
61
+ }
62
+ return undefined;
63
+ }
64
+ /** One actionable line per failure class; unknown failures keep the cause. */
65
+ function describeTransportFailure(method, url, error, timeoutMs) {
66
+ const host = new URL(url).host;
67
+ const code = transportCode(error);
68
+ if (code === 'ENOTFOUND' || code === 'EAI_AGAIN' || code === 'EAI_NONAME')
69
+ return {
70
+ message: `Could not resolve ${host}. Check your internet connection or --base-url.`,
71
+ retry: code === 'EAI_AGAIN',
72
+ };
73
+ if (code === 'ECONNREFUSED')
74
+ return {
75
+ message: `Could not connect to ${host} (connection refused). Check --base-url or try again later.`,
76
+ retry: true,
77
+ };
78
+ if (code === 'TIMEOUT' ||
79
+ code === 'ETIMEDOUT' ||
80
+ code === 'UND_ERR_CONNECT_TIMEOUT' ||
81
+ code === 'UND_ERR_HEADERS_TIMEOUT' ||
82
+ code === 'UND_ERR_BODY_TIMEOUT')
83
+ return {
84
+ message: `${host} did not respond within ${Math.round(timeoutMs / 1000)}s. Check your connection and try again.`,
85
+ retry: code !== 'TIMEOUT',
86
+ };
87
+ if (code === 'ABORTED')
88
+ return { message: `${method} ${url} was canceled.`, retry: false };
89
+ if (code && TLS_ERROR.test(code))
90
+ return {
91
+ message: `TLS certificate check failed for ${host} (${code}). Behind a TLS-inspecting proxy, set NODE_EXTRA_CA_CERTS to its CA bundle.`,
92
+ retry: false,
93
+ };
94
+ if (code === 'PROXY')
95
+ return {
96
+ message: `The proxy refused to connect to ${host}. Check HTTP_PROXY, HTTPS_PROXY, and NO_PROXY.`,
97
+ retry: false,
98
+ };
99
+ if (code === 'BAD_PORT')
100
+ return {
101
+ message: `Port ${new URL(url).port} is blocked for HTTP clients. Use a different port in --base-url.`,
102
+ retry: false,
103
+ };
104
+ if (code === 'REDIRECT')
105
+ return {
106
+ message: `${host} redirected the request. Pass the final origin with --base-url.`,
107
+ retry: false,
108
+ };
109
+ if (code === 'ECONNRESET' ||
110
+ code === 'EPIPE' ||
111
+ code === 'ENETUNREACH' ||
112
+ code === 'EHOSTUNREACH' ||
113
+ code === 'ENETDOWN' ||
114
+ code === 'UND_ERR_SOCKET')
115
+ return {
116
+ message: `Network error reaching ${host} (${code}). Check your connection and try again.`,
117
+ retry: true,
118
+ };
119
+ return {
120
+ message: `${method} ${url} failed: ${errorMessage(error)}`,
121
+ retry: true,
122
+ };
123
+ }
124
+ function serverErrorMessage(body) {
125
+ try {
126
+ const parsed = JSON.parse(body);
127
+ const error = parsed?.error;
128
+ const message = typeof error === 'string'
129
+ ? error
130
+ : error && typeof error === 'object'
131
+ ? error.message
132
+ : parsed?.message;
133
+ return typeof message === 'string' && message.trim()
134
+ ? displayValue(message.trim(), 200)
135
+ : undefined;
136
+ }
137
+ catch {
138
+ return undefined;
139
+ }
140
+ }
141
+ /** Status-first guidance; a structured server message wins when present. */
142
+ function describeHttpFailure(method, url, status, body, retryAfterSeconds) {
143
+ const host = new URL(url).host;
144
+ const server = serverErrorMessage(body);
145
+ const where = `${method} ${url} returned HTTP ${status}`;
146
+ if (status === 429)
147
+ return `Rate limited by ${host}. ${retryAfterSeconds === undefined
148
+ ? 'Wait a minute and try again.'
149
+ : `Retry in ${retryAfterSeconds}s.`} (${where})`;
150
+ if (server)
151
+ return `${server} (${where})`;
152
+ if (status === 404)
153
+ return `Not found. Check that ${new URL(url).origin} is a Jovie deployment. (${where})`;
154
+ if (status === 401 || status === 403)
155
+ return `${host} refused the request. (${where})`;
156
+ if (status >= 500)
157
+ return `${host} is temporarily unavailable. Try again shortly. (${where})`;
158
+ return where;
159
+ }
160
+ const RETRY_STATUSES = new Set([429, 502, 503, 504]);
161
+ /** Reads make at most this many attempts inside one shared deadline. */
162
+ export const MAX_READ_ATTEMPTS = 3;
163
+ /** Longer server-requested waits are surfaced instead of slept through. */
164
+ const MAX_RETRY_AFTER_SECONDS = 5;
165
+ function backoffMs(attempt, retryAfterSeconds) {
166
+ if (retryAfterSeconds !== undefined)
167
+ return retryAfterSeconds * 1000;
168
+ return 250 * 4 ** attempt + Math.floor(Math.random() * 100);
169
+ }
170
+ function sleep(ms, signal) {
171
+ return new Promise(resolve => {
172
+ if (signal.aborted)
173
+ return resolve();
174
+ const timer = setTimeout(done, ms);
175
+ function done() {
176
+ clearTimeout(timer);
177
+ signal.removeEventListener('abort', done);
178
+ resolve();
179
+ }
180
+ signal.addEventListener('abort', done, { once: true });
181
+ });
182
+ }
183
+ /** Response consumption shares the request deadline and has a hard byte cap. */
184
+ export async function readResponseBody(response, signal) {
185
+ if (!response.body) {
186
+ if (signal.aborted)
187
+ throw new Error('Response deadline exceeded or canceled.');
188
+ return '';
189
+ }
190
+ const reader = response.body.getReader();
191
+ if (signal.aborted) {
192
+ void reader.cancel().catch(() => { });
193
+ reader.releaseLock();
194
+ throw new Error('Response deadline exceeded or canceled.');
195
+ }
196
+ const chunks = [];
197
+ let size = 0;
198
+ let rejectAbort = () => { };
199
+ const aborted = new Promise((_resolve, reject) => {
200
+ rejectAbort = reject;
201
+ });
202
+ const onAbort = () => {
203
+ rejectAbort(new Error('Response deadline exceeded or canceled.'));
204
+ void reader.cancel().catch(() => { });
205
+ };
206
+ signal.addEventListener('abort', onAbort, { once: true });
207
+ if (signal.aborted)
208
+ onAbort();
209
+ try {
210
+ for (;;) {
211
+ const part = await Promise.race([reader.read(), aborted]);
212
+ if (signal.aborted)
213
+ throw new Error('Response deadline exceeded or canceled.');
214
+ if (part.done)
215
+ break;
216
+ size += part.value.length;
217
+ if (size > 1_048_576) {
218
+ void reader.cancel().catch(() => { });
219
+ throw new Error('Response body exceeds 1 MiB.');
220
+ }
221
+ chunks.push(part.value);
222
+ }
223
+ return new TextDecoder('utf-8').decode(Buffer.concat(chunks));
224
+ }
225
+ finally {
226
+ signal.removeEventListener('abort', onAbort);
227
+ reader.releaseLock();
228
+ }
32
229
  }
33
230
  /** Normalize a deployment root without accepting credentials or query state. */
34
231
  export function normalizeBaseUrl(baseUrl = DEFAULT_BASE_URL) {
@@ -37,7 +234,7 @@ export function normalizeBaseUrl(baseUrl = DEFAULT_BASE_URL) {
37
234
  url = new URL(baseUrl);
38
235
  }
39
236
  catch {
40
- throw new JovieInputError(`Invalid base URL: ${baseUrl}`);
237
+ throw new JovieInputError('Invalid base URL. Expected an origin like https://jov.ie.');
41
238
  }
42
239
  if (!['http:', 'https:'].includes(url.protocol) ||
43
240
  url.username ||
@@ -61,7 +258,7 @@ function requestSignal(options) {
61
258
  function getFetch(options) {
62
259
  return options.fetchImpl ?? ((input, init) => globalThis.fetch(input, init));
63
260
  }
64
- function parseRetryAfterSeconds(value, nowMs = Date.now()) {
261
+ export function parseRetryAfterSeconds(value, nowMs = Date.now()) {
65
262
  if (!value)
66
263
  return undefined;
67
264
  if (/^\d+$/.test(value.trim())) {
@@ -75,8 +272,8 @@ function parseRetryAfterSeconds(value, nowMs = Date.now()) {
75
272
  }
76
273
  function parseApiCode(body) {
77
274
  try {
78
- const code = JSON.parse(body).error
79
- ?.code;
275
+ const parsed = JSON.parse(body);
276
+ const code = parsed?.error?.code ?? parsed?.code;
80
277
  return typeof code === 'string' ? code : undefined;
81
278
  }
82
279
  catch {
@@ -87,29 +284,77 @@ async function request(pathname, accept, options, jsonBody) {
87
284
  const baseUrl = normalizeBaseUrl(options.baseUrl);
88
285
  const url = resourceUrl(baseUrl, pathname);
89
286
  const method = jsonBody === undefined ? 'GET' : 'POST';
90
- let response;
91
- try {
92
- response = await getFetch(options)(url, {
93
- method,
94
- headers: {
95
- Accept: accept,
96
- 'User-Agent': options.userAgent ?? DEFAULT_USER_AGENT,
97
- ...(jsonBody === undefined
98
- ? {}
99
- : { 'Content-Type': 'application/json' }),
100
- },
101
- ...(jsonBody === undefined ? {} : { body: JSON.stringify(jsonBody) }),
102
- signal: requestSignal(options),
103
- });
287
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
288
+ // One deadline covers every attempt, backoff, and the body, so a command
289
+ // never waits longer than timeoutMs however the server misbehaves.
290
+ const signal = requestSignal(options);
291
+ // Only reads retry. A timed-out write may have committed; retrying without a
292
+ // server idempotency key can create duplicate profiles or reports.
293
+ const maxAttempts = method === 'GET' ? MAX_READ_ATTEMPTS : 1;
294
+ for (let attempt = 0;; attempt++) {
295
+ const last = attempt + 1 >= maxAttempts;
296
+ let response;
297
+ try {
298
+ response = await getFetch(options)(url, {
299
+ method,
300
+ headers: {
301
+ Accept: accept,
302
+ 'User-Agent': options.userAgent ?? DEFAULT_USER_AGENT,
303
+ ...(jsonBody === undefined
304
+ ? {}
305
+ : { 'Content-Type': 'application/json' }),
306
+ },
307
+ ...(jsonBody === undefined ? {} : { body: JSON.stringify(jsonBody) }),
308
+ signal,
309
+ redirect: 'error',
310
+ });
311
+ }
312
+ catch (error) {
313
+ const failure = describeTransportFailure(method, url, signal.aborted && !options.signal?.aborted
314
+ ? Object.assign(new Error('timeout'), { name: 'TimeoutError' })
315
+ : error, timeoutMs);
316
+ if (last || !failure.retry || signal.aborted) {
317
+ throw Object.assign(new JovieRequestError(failure.message, url, undefined, undefined, undefined, undefined, failure.retry), { cause: error });
318
+ }
319
+ await sleep(backoffMs(attempt), signal);
320
+ continue;
321
+ }
322
+ let body;
323
+ try {
324
+ body = await readResponseBody(response, signal);
325
+ }
326
+ catch (error) {
327
+ const host = new URL(url).host;
328
+ if (signal.aborted && !options.signal?.aborted) {
329
+ throw new JovieRequestError(`${host} did not finish responding within ${Math.round(timeoutMs / 1000)}s. Try again.`, url, response.status, undefined, undefined, undefined, true);
330
+ }
331
+ // undici reports a mid-body disconnect as a bare `terminated`.
332
+ const dropped = transportCode(error) === 'UND_ERR_SOCKET';
333
+ if (dropped && !last && !signal.aborted) {
334
+ await sleep(backoffMs(attempt), signal);
335
+ continue;
336
+ }
337
+ throw new JovieRequestError(dropped
338
+ ? `${host} dropped the connection mid-response. Try again.`
339
+ : errorMessage(error), url, response.status, undefined, undefined, undefined, dropped || undefined);
340
+ }
341
+ if (response.ok)
342
+ return { body, url };
343
+ const retryAfterSeconds = parseRetryAfterSeconds(response.headers.get('retry-after'));
344
+ const apiCode = parseApiCode(body);
345
+ const retryable = RETRY_STATUSES.has(response.status) &&
346
+ // A structured 502 is an application answer (e.g. LOOKUP_FAILED).
347
+ !(response.status === 502 && apiCode);
348
+ if (!last &&
349
+ retryable &&
350
+ (retryAfterSeconds === undefined ||
351
+ retryAfterSeconds <= MAX_RETRY_AFTER_SECONDS)) {
352
+ await sleep(backoffMs(attempt, retryAfterSeconds), signal);
353
+ if (!signal.aborted)
354
+ continue;
355
+ }
356
+ throw new JovieRequestError(describeHttpFailure(method, url, response.status, body, retryAfterSeconds), url, response.status, safeDiagnostic(body.slice(0, 1_000)), retryAfterSeconds, apiCode, RETRY_STATUSES.has(response.status) ? true : undefined);
104
357
  }
105
- catch (error) {
106
- throw new JovieRequestError(`${method} ${url} failed: ${errorMessage(error)}`, url);
107
- }
108
- const body = await response.text();
109
- if (!response.ok) {
110
- throw new JovieRequestError(`${method} ${url} returned HTTP ${response.status}`, url, response.status, body.slice(0, 1_000), parseRetryAfterSeconds(response.headers.get('retry-after')), parseApiCode(body));
111
- }
112
- return { body, url };
113
358
  }
114
359
  async function requestJson(pathname, options, jsonBody) {
115
360
  const { body, url } = await request(pathname, 'application/json', options, jsonBody);
@@ -133,10 +378,22 @@ export function validateUsername(username) {
133
378
  }
134
379
  return normalized;
135
380
  }
381
+ /** A 404 on an artist route means the username, not the network, is wrong. */
382
+ async function explainMissingArtist(username, pending) {
383
+ try {
384
+ return await pending;
385
+ }
386
+ catch (error) {
387
+ if (error instanceof JovieRequestError && error.status === 404) {
388
+ throw new JovieRequestError(`No public Jovie artist named "${username}". Check the username.`, error.url, error.status, error.responseBody, error.retryAfterSeconds, error.apiCode ?? 'ARTIST_NOT_FOUND', false);
389
+ }
390
+ throw error;
391
+ }
392
+ }
136
393
  /** Fetch the public, unauthenticated artist API response. */
137
394
  export function fetchArtist(username, options = {}) {
138
395
  const normalized = validateUsername(username);
139
- return requestJson(`/api/v1/${encodeURIComponent(normalized)}`, options);
396
+ return explainMissingArtist(normalized, requestJson(`/api/v1/${encodeURIComponent(normalized)}`, options));
140
397
  }
141
398
  /** Fetch the canonical public OpenAPI 3.1 contract. */
142
399
  export function fetchOpenApi(options = {}) {
@@ -149,7 +406,7 @@ export function fetchSiteLlms(full, options = {}) {
149
406
  /** Fetch the machine-readable guide for one public artist. */
150
407
  export function fetchArtistLlms(username, options = {}) {
151
408
  const normalized = validateUsername(username);
152
- return requestText(`/${encodeURIComponent(normalized)}/llms.txt`, options);
409
+ return explainMissingArtist(normalized, requestText(`/${encodeURIComponent(normalized)}/llms.txt`, options));
153
410
  }
154
411
  /**
155
412
  * Create (or find) a Jovie profile for a Spotify artist. Returns the public
@@ -162,7 +419,7 @@ export function createProfile(spotifyArtistUrl, options = {}) {
162
419
  url = new URL(spotifyArtistUrl.trim());
163
420
  }
164
421
  catch {
165
- throw new JovieInputError(`Invalid URL: ${spotifyArtistUrl}`);
422
+ throw new JovieInputError(`Invalid URL: ${displayValue(spotifyArtistUrl)}`);
166
423
  }
167
424
  if (url.protocol !== 'https:' ||
168
425
  !/(^|\.)spotify\.com$/.test(url.hostname) ||
@@ -171,4 +428,60 @@ export function createProfile(spotifyArtistUrl, options = {}) {
171
428
  }
172
429
  return requestJson('/api/agents/profiles', options, { url: url.toString() });
173
430
  }
431
+ const CREATOR_HANDLE = /^[A-Za-z0-9](?:[A-Za-z0-9._-]{0,99})$/;
432
+ /** `platform:handle` expands to the canonical profile URL for that platform. */
433
+ const HANDLE_SOURCES = {
434
+ instagram: handle => `https://www.instagram.com/${handle}`,
435
+ linktree: handle => `https://linktr.ee/${handle}`,
436
+ tiktok: handle => `https://www.tiktok.com/@${handle}`,
437
+ youtube: handle => /^UC[\w-]{22}$/.test(handle)
438
+ ? `https://www.youtube.com/channel/${handle}`
439
+ : `https://www.youtube.com/@${handle}`,
440
+ };
441
+ function expandCreatorInput(input) {
442
+ const match = /^([a-z]+):([^:]+)$/.exec(input);
443
+ if (!match)
444
+ return input;
445
+ const build = HANDLE_SOURCES[match[1]];
446
+ if (!build)
447
+ return input;
448
+ const handle = match[2].replace(/^@+/, '');
449
+ if (!CREATOR_HANDLE.test(handle)) {
450
+ throw new JovieInputError(`Invalid handle in ${displayValue(input)}. Expected <platform>:<handle> using letters, numbers, dots, underscores, or hyphens.`);
451
+ }
452
+ return build(handle);
453
+ }
454
+ /** Extract public creator fields without creating or modifying a profile. */
455
+ export function lookupCreator(creatorUrl, options = {}) {
456
+ const candidate = expandCreatorInput(creatorUrl.trim());
457
+ let url;
458
+ try {
459
+ url = new URL(candidate);
460
+ }
461
+ catch {
462
+ throw new JovieInputError(`Invalid URL: ${displayValue(creatorUrl)}`);
463
+ }
464
+ if (candidate.length > 2048 ||
465
+ url.protocol !== 'https:' ||
466
+ url.username ||
467
+ url.password) {
468
+ throw new JovieInputError('Expected an HTTPS YouTube, Instagram, TikTok, or Linktree profile URL.');
469
+ }
470
+ return requestJson(`/api/agents/creator-lookup?url=${encodeURIComponent(url.toString())}`, options);
471
+ }
472
+ /** File a bug or feedback report. Returns `{ reportId }`. */
473
+ export function reportIssue(report, context = {}, options = {}) {
474
+ const title = report.title.trim();
475
+ const details = report.details.trim();
476
+ if (!title || !details) {
477
+ throw new JovieInputError('A report needs both a title and details.');
478
+ }
479
+ const safeContext = Object.fromEntries(Object.entries(context).filter(([, value]) => value));
480
+ return requestJson('/api/agents/feedback', options, {
481
+ kind: report.kind,
482
+ title,
483
+ details,
484
+ context: safeContext,
485
+ });
486
+ }
174
487
  //# sourceMappingURL=client.js.map
@@ -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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"}
@@ -2,6 +2,17 @@ import { type ResourceOptions } from './client.js';
2
2
  export interface CommandInput {
3
3
  readonly arg?: string;
4
4
  readonly full?: boolean;
5
+ readonly flags?: Readonly<Record<string, string | undefined>>;
6
+ /** Set by the caller (CLI or MCP); attached to reports as safe context. */
7
+ readonly meta?: {
8
+ readonly channel: 'cli' | 'mcp';
9
+ readonly version: string;
10
+ };
11
+ }
12
+ export interface FlagSpec {
13
+ readonly name: string;
14
+ readonly description: string;
15
+ readonly required?: boolean;
5
16
  }
6
17
  /** One definition drives CLI dispatch, `--help`, and MCP tools. */
7
18
  export interface CommandSpec {
@@ -13,7 +24,9 @@ export interface CommandSpec {
13
24
  readonly description: string;
14
25
  };
15
26
  readonly acceptsFull?: boolean;
27
+ readonly flags?: readonly FlagSpec[];
16
28
  readonly readOnly: boolean;
29
+ readonly internal?: boolean;
17
30
  readonly run: (input: CommandInput, options: ResourceOptions) => Promise<unknown>;
18
31
  }
19
32
  export declare const COMMANDS: readonly CommandSpec[];
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,CACZ,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAMD,eAAO,MAAM,QAAQ,EAAE,SAAS,WAAW,EA+C1C,CAAC;AAEF,wBAAgB,WAAW,CACzB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,WAAW,GAAG,SAAS,CAKzB"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC9D,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,CACZ,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAuCD,eAAO,MAAM,QAAQ,EAAE,SAAS,WAAW,EAkH1C,CAAC;AAEF,wBAAgB,WAAW,CACzB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,WAAW,GAAG,SAAS,CAKzB"}
package/dist/commands.js CHANGED
@@ -1,8 +1,67 @@
1
- import { createProfile, fetchArtist, fetchArtistLlms, fetchOpenApi, fetchSiteLlms, } from './client.js';
1
+ import { createProfile, fetchArtist, fetchArtistLlms, fetchOpenApi, fetchSiteLlms, lookupCreator, reportIssue, } from './client.js';
2
+ import { invokeFleetAction } from './fleet-client.js';
3
+ import { FLEET_COMMANDS } from './fleet-contract.generated.js';
2
4
  function required(input) {
3
5
  return input.arg ?? '';
4
6
  }
7
+ const REPORT_FLAGS = [
8
+ { name: 'title', description: 'One-line summary', required: true },
9
+ {
10
+ name: 'details',
11
+ description: 'What you tried, what happened, what you expected',
12
+ required: true,
13
+ },
14
+ { name: 'command', description: 'Jovie command or tool that failed' },
15
+ { name: 'code', description: 'apiCode/error code you received' },
16
+ { name: 'scenario', description: 'Task or scenario you were attempting' },
17
+ ];
18
+ function report(kind) {
19
+ return (input, options) => reportIssue({
20
+ kind,
21
+ title: input.flags?.title ?? '',
22
+ details: input.flags?.details ?? '',
23
+ }, {
24
+ command: input.flags?.command,
25
+ apiCode: input.flags?.code,
26
+ scenario: input.flags?.scenario,
27
+ channel: input.meta?.channel,
28
+ cliVersion: input.meta?.version,
29
+ platform: `${process.platform}-${process.arch}`,
30
+ runtime: `node ${process.versions.node}`,
31
+ }, options);
32
+ }
5
33
  export const COMMANDS = [
34
+ ...FLEET_COMMANDS.map(command => ({
35
+ internal: true,
36
+ path: command.path,
37
+ tool: command.tool,
38
+ summary: command.summary,
39
+ readOnly: command.readOnly,
40
+ flags: [
41
+ {
42
+ name: 'profile',
43
+ description: 'Provisioned worker profile UUID',
44
+ required: true,
45
+ },
46
+ {
47
+ name: 'idempotency-key',
48
+ description: 'Stable retry key for this invocation',
49
+ required: true,
50
+ },
51
+ {
52
+ name: 'input',
53
+ description: 'Canonical domain input as JSON',
54
+ required: true,
55
+ },
56
+ ],
57
+ run: (input, options) => invokeFleetAction(command.id, {
58
+ profile: input.flags?.profile ?? '',
59
+ key: input.flags?.['idempotency-key'] ?? '',
60
+ value: input.flags?.input ?? '',
61
+ channel: input.meta?.channel ?? 'cli',
62
+ version: input.meta?.version ?? '0.0.0',
63
+ }, options),
64
+ })),
6
65
  {
7
66
  path: ['profile', 'create'],
8
67
  tool: 'create_profile',
@@ -14,6 +73,17 @@ export const COMMANDS = [
14
73
  readOnly: false,
15
74
  run: (input, options) => createProfile(required(input), options),
16
75
  },
76
+ {
77
+ path: ['creator', 'lookup'],
78
+ tool: 'lookup_creator',
79
+ summary: 'Resolve a creator to their existing Jovie profile or extract public fields. Accepts a profile URL or platform:handle (youtube, instagram, tiktok, linktree). Never creates a profile.',
80
+ arg: {
81
+ name: 'url-or-handle',
82
+ description: 'Creator profile URL or platform:handle, e.g. youtube:@creator',
83
+ },
84
+ readOnly: true,
85
+ run: (input, options) => lookupCreator(required(input), options),
86
+ },
17
87
  {
18
88
  path: ['artist', 'get'],
19
89
  tool: 'get_artist',
@@ -45,6 +115,22 @@ export const COMMANDS = [
45
115
  readOnly: true,
46
116
  run: (input, options) => fetchSiteLlms(input.full === true, options),
47
117
  },
118
+ {
119
+ path: ['report', 'bug'],
120
+ tool: 'report_issue',
121
+ summary: 'Report a Jovie bug you hit (something failed or returned wrong data). Returns a reportId.',
122
+ flags: REPORT_FLAGS,
123
+ readOnly: false,
124
+ run: report('bug'),
125
+ },
126
+ {
127
+ path: ['report', 'feedback'],
128
+ tool: 'report_feedback',
129
+ summary: 'Send feedback on Jovie (confusing, missing, or slow). Returns a reportId.',
130
+ flags: REPORT_FLAGS,
131
+ readOnly: false,
132
+ run: report('feedback'),
133
+ },
48
134
  ];
49
135
  export function findCommand(positionals) {
50
136
  return COMMANDS.find(command => command.path[0] === positionals[0] && command.path[1] === positionals[1]);
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,GAEd,MAAM,aAAa,CAAC;AAqBrB,SAAS,QAAQ,CAAC,KAAmB;IACnC,OAAO,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C;QACE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC3B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EACL,+IAA+I;QACjJ,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;YACX,WAAW,EACT,+DAA+D;SAClE;QACD,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KACjE;IACD;QACE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;QACvB,IAAI,EAAE,YAAY;QAClB,OAAO,EACL,qEAAqE;QACvE,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gCAAgC,EAAE;QACxE,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KAC/D;IACD;QACE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,sDAAsD;QAC/D,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE;QACxD,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KACnE;IACD;QACE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;QACxB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,0CAA0C;QACnD,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;KAChD;IACD;QACE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,UAAU;QAChB,OAAO,EACL,sEAAsE;QACxE,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,CAAC;KACrE;CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,WAA8B;IAE9B,OAAO,QAAQ,CAAC,IAAI,CAClB,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}