@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/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 Spotify and read public artist
54
- data. No login or API key. Every command supports --json.
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
- const expectedLength = command?.arg ? 3 : 2;
143
- if (!command || positionals.length !== expectedLength) {
144
- throw new UsageError(`Unknown command: ${positionals.join(' ')}`);
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
- return command.run({ arg: positionals[2], full: values.full === true }, {
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, 'Run `jovie --help` for usage.');
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
- writeText(stdout, usage());
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
- const isMain = process.argv[1] !== undefined &&
227
- realpathSync(fileURLToPath(import.meta.url)) ===
228
- realpathSync(resolve(process.argv[1]));
229
- if (isMain) {
230
- runCli(process.argv.slice(2)).then(code => {
231
- process.exitCode = code;
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
@@ -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;IAT3B,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAU;gBAGxC,OAAO,EAAE,MAAM,EACN,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,iBAAiB,CAAC,EAAE,MAAM,YAAA;IACnC,0EAA0E;IACjE,OAAO,CAAC,EAAE,MAAM,YAAA;CAK5B;AAMD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,OAAO,SAAmB,GAAG,MAAM,CAsBnE;AA0HD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYzD;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5E;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAiBlB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}