@meterapp/car-image-sdk 1.1.0 → 1.3.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 +62 -14
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +21 -3
- package/dist/client.js.map +1 -1
- package/dist/mcp/index.d.ts +595 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +383 -23
- package/dist/mcp/index.js.map +1 -1
- package/dist/params.d.ts.map +1 -1
- package/dist/params.js +28 -1
- package/dist/params.js.map +1 -1
- package/dist/types.d.ts +137 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/mcp/index.d.ts
CHANGED
|
@@ -13,9 +13,27 @@ import * as z from "zod";
|
|
|
13
13
|
export declare const MCP_SERVER_INFO: {
|
|
14
14
|
readonly name: "car-image-api";
|
|
15
15
|
readonly title: "Car Image API";
|
|
16
|
-
readonly version: "1.
|
|
16
|
+
readonly version: "1.3.0";
|
|
17
17
|
readonly websiteUrl: "https://carimage.dev";
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Which tools a server exposes. `core` is what an agent needs to find, render
|
|
21
|
+
* and embed a car; the request board and the two "about you" tools live in
|
|
22
|
+
* `all`, for hosts that opt in (`?toolset=all` on the remote URL,
|
|
23
|
+
* `car-image mcp --toolset all` locally). Fewer, sharper tools cost less
|
|
24
|
+
* context and make the right one easier to pick.
|
|
25
|
+
*/
|
|
26
|
+
export declare const MCP_TOOLSETS: {
|
|
27
|
+
readonly core: readonly ["get_car_image", "create_car_image_urls", "search_vehicles", "resolve_vehicle", "list_image_options", "get_account", "rate_image", "describe_api"];
|
|
28
|
+
readonly all: readonly ["get_car_image", "create_car_image_urls", "search_vehicles", "resolve_vehicle", "list_image_options", "get_account", "rate_image", "describe_api", "list_requests", "request_vehicle", "request_feature", "get_request", "upvote_request", "comment_on_request", "share_building", "share_referral"];
|
|
29
|
+
};
|
|
30
|
+
export type McpToolset = keyof typeof MCP_TOOLSETS;
|
|
31
|
+
export declare const DEFAULT_MCP_TOOLSET: McpToolset;
|
|
32
|
+
export declare const MCP_TOOLSET_NAMES: McpToolset[];
|
|
33
|
+
export declare function isMcpToolset(value: unknown): value is McpToolset;
|
|
34
|
+
/** The server instructions for a toolset; `all` includes the request board paragraph. */
|
|
35
|
+
export declare function mcpInstructions(toolset?: McpToolset): string;
|
|
36
|
+
/** Instructions for the full toolset; kept for callers that predate toolsets. */
|
|
19
37
|
export declare const MCP_INSTRUCTIONS: string;
|
|
20
38
|
export declare const imageInputSchema: z.ZodObject<{
|
|
21
39
|
make: z.ZodString;
|
|
@@ -54,6 +72,14 @@ export declare const imageInputSchema: z.ZodObject<{
|
|
|
54
72
|
}>>;
|
|
55
73
|
width: z.ZodOptional<z.ZodNumber>;
|
|
56
74
|
height: z.ZodOptional<z.ZodNumber>;
|
|
75
|
+
fit: z.ZodOptional<z.ZodEnum<{
|
|
76
|
+
contain: "contain";
|
|
77
|
+
cover: "cover";
|
|
78
|
+
inside: "inside";
|
|
79
|
+
}>>;
|
|
80
|
+
background: z.ZodOptional<z.ZodString>;
|
|
81
|
+
trim: z.ZodOptional<z.ZodBoolean>;
|
|
82
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
57
83
|
format: z.ZodDefault<z.ZodEnum<{
|
|
58
84
|
png: "png";
|
|
59
85
|
webp: "webp";
|
|
@@ -99,6 +125,14 @@ export declare const MCP_TOOL_SCHEMAS: {
|
|
|
99
125
|
}>>;
|
|
100
126
|
width: z.ZodOptional<z.ZodNumber>;
|
|
101
127
|
height: z.ZodOptional<z.ZodNumber>;
|
|
128
|
+
fit: z.ZodOptional<z.ZodEnum<{
|
|
129
|
+
contain: "contain";
|
|
130
|
+
cover: "cover";
|
|
131
|
+
inside: "inside";
|
|
132
|
+
}>>;
|
|
133
|
+
background: z.ZodOptional<z.ZodString>;
|
|
134
|
+
trim: z.ZodOptional<z.ZodBoolean>;
|
|
135
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
102
136
|
format: z.ZodDefault<z.ZodEnum<{
|
|
103
137
|
png: "png";
|
|
104
138
|
webp: "webp";
|
|
@@ -143,6 +177,14 @@ export declare const MCP_TOOL_SCHEMAS: {
|
|
|
143
177
|
}>>;
|
|
144
178
|
width: z.ZodOptional<z.ZodNumber>;
|
|
145
179
|
height: z.ZodOptional<z.ZodNumber>;
|
|
180
|
+
fit: z.ZodOptional<z.ZodEnum<{
|
|
181
|
+
contain: "contain";
|
|
182
|
+
cover: "cover";
|
|
183
|
+
inside: "inside";
|
|
184
|
+
}>>;
|
|
185
|
+
background: z.ZodOptional<z.ZodString>;
|
|
186
|
+
trim: z.ZodOptional<z.ZodBoolean>;
|
|
187
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
146
188
|
format: z.ZodDefault<z.ZodEnum<{
|
|
147
189
|
png: "png";
|
|
148
190
|
webp: "webp";
|
|
@@ -151,6 +193,8 @@ export declare const MCP_TOOL_SCHEMAS: {
|
|
|
151
193
|
}, z.core.$strip>>;
|
|
152
194
|
ttl_seconds: z.ZodOptional<z.ZodNumber>;
|
|
153
195
|
max_uses: z.ZodOptional<z.ZodNumber>;
|
|
196
|
+
renew: z.ZodOptional<z.ZodBoolean>;
|
|
197
|
+
renew_days: z.ZodOptional<z.ZodNumber>;
|
|
154
198
|
}, z.core.$strip>;
|
|
155
199
|
readonly search_vehicles: z.ZodObject<{
|
|
156
200
|
query: z.ZodString;
|
|
@@ -264,6 +308,554 @@ export declare const MCP_TOOL_SCHEMAS: {
|
|
|
264
308
|
};
|
|
265
309
|
export type McpToolName = keyof typeof MCP_TOOL_SCHEMAS;
|
|
266
310
|
export type McpToolInput<N extends McpToolName> = z.infer<(typeof MCP_TOOL_SCHEMAS)[N]>;
|
|
311
|
+
export declare const MCP_TOOL_OUTPUT_SCHEMAS: {
|
|
312
|
+
readonly get_car_image: z.ZodObject<{
|
|
313
|
+
credits_charged: z.ZodNullable<z.ZodNumber>;
|
|
314
|
+
credits_remaining: z.ZodNullable<z.ZodNumber>;
|
|
315
|
+
source: z.ZodNullable<z.ZodEnum<{
|
|
316
|
+
cache: "cache";
|
|
317
|
+
generated: "generated";
|
|
318
|
+
}>>;
|
|
319
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
320
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
321
|
+
content_type: z.ZodString;
|
|
322
|
+
etag: z.ZodNullable<z.ZodString>;
|
|
323
|
+
request_id: z.ZodNullable<z.ZodString>;
|
|
324
|
+
vehicle: z.ZodObject<{
|
|
325
|
+
make: z.ZodString;
|
|
326
|
+
model: z.ZodString;
|
|
327
|
+
year: z.ZodNumber;
|
|
328
|
+
view: z.ZodEnum<{
|
|
329
|
+
front: "front";
|
|
330
|
+
"front-3-4": "front-3-4";
|
|
331
|
+
side: "side";
|
|
332
|
+
"side-right": "side-right";
|
|
333
|
+
rear: "rear";
|
|
334
|
+
"rear-3-4": "rear-3-4";
|
|
335
|
+
}>;
|
|
336
|
+
color: z.ZodEnum<{
|
|
337
|
+
white: "white";
|
|
338
|
+
black: "black";
|
|
339
|
+
gray: "gray";
|
|
340
|
+
silver: "silver";
|
|
341
|
+
blue: "blue";
|
|
342
|
+
red: "red";
|
|
343
|
+
green: "green";
|
|
344
|
+
brown: "brown";
|
|
345
|
+
beige: "beige";
|
|
346
|
+
tan: "tan";
|
|
347
|
+
orange: "orange";
|
|
348
|
+
yellow: "yellow";
|
|
349
|
+
gold: "gold";
|
|
350
|
+
burgundy: "burgundy";
|
|
351
|
+
purple: "purple";
|
|
352
|
+
}>;
|
|
353
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
354
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
355
|
+
fit: z.ZodOptional<z.ZodEnum<{
|
|
356
|
+
contain: "contain";
|
|
357
|
+
cover: "cover";
|
|
358
|
+
inside: "inside";
|
|
359
|
+
}>>;
|
|
360
|
+
background: z.ZodOptional<z.ZodString>;
|
|
361
|
+
trim: z.ZodOptional<z.ZodBoolean>;
|
|
362
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
363
|
+
format: z.ZodEnum<{
|
|
364
|
+
png: "png";
|
|
365
|
+
webp: "webp";
|
|
366
|
+
jpg: "jpg";
|
|
367
|
+
auto: "auto";
|
|
368
|
+
}>;
|
|
369
|
+
}, z.core.$loose>;
|
|
370
|
+
}, z.core.$loose>;
|
|
371
|
+
readonly create_car_image_urls: z.ZodObject<{
|
|
372
|
+
data: z.ZodArray<z.ZodObject<{
|
|
373
|
+
id: z.ZodString;
|
|
374
|
+
url: z.ZodString;
|
|
375
|
+
expires_at: z.ZodString;
|
|
376
|
+
max_uses: z.ZodNumber;
|
|
377
|
+
renews_until: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
378
|
+
vehicle: z.ZodObject<{
|
|
379
|
+
make: z.ZodString;
|
|
380
|
+
model: z.ZodString;
|
|
381
|
+
year: z.ZodNumber;
|
|
382
|
+
view: z.ZodEnum<{
|
|
383
|
+
front: "front";
|
|
384
|
+
"front-3-4": "front-3-4";
|
|
385
|
+
side: "side";
|
|
386
|
+
"side-right": "side-right";
|
|
387
|
+
rear: "rear";
|
|
388
|
+
"rear-3-4": "rear-3-4";
|
|
389
|
+
}>;
|
|
390
|
+
color: z.ZodEnum<{
|
|
391
|
+
white: "white";
|
|
392
|
+
black: "black";
|
|
393
|
+
gray: "gray";
|
|
394
|
+
silver: "silver";
|
|
395
|
+
blue: "blue";
|
|
396
|
+
red: "red";
|
|
397
|
+
green: "green";
|
|
398
|
+
brown: "brown";
|
|
399
|
+
beige: "beige";
|
|
400
|
+
tan: "tan";
|
|
401
|
+
orange: "orange";
|
|
402
|
+
yellow: "yellow";
|
|
403
|
+
gold: "gold";
|
|
404
|
+
burgundy: "burgundy";
|
|
405
|
+
purple: "purple";
|
|
406
|
+
}>;
|
|
407
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
408
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
409
|
+
fit: z.ZodOptional<z.ZodEnum<{
|
|
410
|
+
contain: "contain";
|
|
411
|
+
cover: "cover";
|
|
412
|
+
inside: "inside";
|
|
413
|
+
}>>;
|
|
414
|
+
background: z.ZodOptional<z.ZodString>;
|
|
415
|
+
trim: z.ZodOptional<z.ZodBoolean>;
|
|
416
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
417
|
+
format: z.ZodEnum<{
|
|
418
|
+
png: "png";
|
|
419
|
+
webp: "webp";
|
|
420
|
+
jpg: "jpg";
|
|
421
|
+
auto: "auto";
|
|
422
|
+
}>;
|
|
423
|
+
}, z.core.$loose>;
|
|
424
|
+
}, z.core.$loose>>;
|
|
425
|
+
billing: z.ZodObject<{
|
|
426
|
+
charged_on: z.ZodLiteral<"creation">;
|
|
427
|
+
credits_charged: z.ZodNumber;
|
|
428
|
+
credits_remaining: z.ZodNumber;
|
|
429
|
+
renewal: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
430
|
+
window_seconds: z.ZodNumber;
|
|
431
|
+
credits_per_window: z.ZodNumber;
|
|
432
|
+
until: z.ZodString;
|
|
433
|
+
}, z.core.$loose>>>;
|
|
434
|
+
}, z.core.$loose>;
|
|
435
|
+
request_id: z.ZodString;
|
|
436
|
+
}, z.core.$loose>;
|
|
437
|
+
readonly search_vehicles: z.ZodObject<{
|
|
438
|
+
data: z.ZodObject<{
|
|
439
|
+
query: z.ZodString;
|
|
440
|
+
results: z.ZodArray<z.ZodObject<{
|
|
441
|
+
kind: z.ZodEnum<{
|
|
442
|
+
make: "make";
|
|
443
|
+
model: "model";
|
|
444
|
+
}>;
|
|
445
|
+
make: z.ZodString;
|
|
446
|
+
make_slug: z.ZodString;
|
|
447
|
+
model: z.ZodNullable<z.ZodString>;
|
|
448
|
+
model_slug: z.ZodNullable<z.ZodString>;
|
|
449
|
+
vehicle_type: z.ZodNullable<z.ZodString>;
|
|
450
|
+
years: z.ZodArray<z.ZodNumber>;
|
|
451
|
+
match_kind: z.ZodNullable<z.ZodString>;
|
|
452
|
+
}, z.core.$loose>>;
|
|
453
|
+
}, z.core.$loose>;
|
|
454
|
+
}, z.core.$loose>;
|
|
455
|
+
readonly resolve_vehicle: z.ZodObject<{
|
|
456
|
+
data: z.ZodObject<{
|
|
457
|
+
params: z.ZodObject<{
|
|
458
|
+
make: z.ZodString;
|
|
459
|
+
model: z.ZodString;
|
|
460
|
+
year: z.ZodNumber;
|
|
461
|
+
view: z.ZodEnum<{
|
|
462
|
+
front: "front";
|
|
463
|
+
"front-3-4": "front-3-4";
|
|
464
|
+
side: "side";
|
|
465
|
+
"side-right": "side-right";
|
|
466
|
+
rear: "rear";
|
|
467
|
+
"rear-3-4": "rear-3-4";
|
|
468
|
+
}>;
|
|
469
|
+
color: z.ZodEnum<{
|
|
470
|
+
white: "white";
|
|
471
|
+
black: "black";
|
|
472
|
+
gray: "gray";
|
|
473
|
+
silver: "silver";
|
|
474
|
+
blue: "blue";
|
|
475
|
+
red: "red";
|
|
476
|
+
green: "green";
|
|
477
|
+
brown: "brown";
|
|
478
|
+
beige: "beige";
|
|
479
|
+
tan: "tan";
|
|
480
|
+
orange: "orange";
|
|
481
|
+
yellow: "yellow";
|
|
482
|
+
gold: "gold";
|
|
483
|
+
burgundy: "burgundy";
|
|
484
|
+
purple: "purple";
|
|
485
|
+
}>;
|
|
486
|
+
}, z.core.$loose>;
|
|
487
|
+
display: z.ZodOptional<z.ZodObject<{
|
|
488
|
+
make_name: z.ZodString;
|
|
489
|
+
model_name: z.ZodString;
|
|
490
|
+
}, z.core.$loose>>;
|
|
491
|
+
candidates: z.ZodArray<z.ZodObject<{
|
|
492
|
+
make_name: z.ZodOptional<z.ZodString>;
|
|
493
|
+
make_slug: z.ZodOptional<z.ZodString>;
|
|
494
|
+
model_name: z.ZodOptional<z.ZodString>;
|
|
495
|
+
model_slug: z.ZodOptional<z.ZodString>;
|
|
496
|
+
years: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
497
|
+
match_kind: z.ZodOptional<z.ZodString>;
|
|
498
|
+
}, z.core.$loose>>;
|
|
499
|
+
confidence: z.ZodEnum<{
|
|
500
|
+
medium: "medium";
|
|
501
|
+
high: "high";
|
|
502
|
+
low: "low";
|
|
503
|
+
}>;
|
|
504
|
+
image_path: z.ZodOptional<z.ZodString>;
|
|
505
|
+
extracted: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
506
|
+
}, z.core.$loose>;
|
|
507
|
+
cli: z.ZodString;
|
|
508
|
+
}, z.core.$loose>;
|
|
509
|
+
readonly list_image_options: z.ZodObject<{
|
|
510
|
+
data: z.ZodObject<{
|
|
511
|
+
views: z.ZodArray<z.ZodObject<{
|
|
512
|
+
id: z.ZodEnum<{
|
|
513
|
+
front: "front";
|
|
514
|
+
"front-3-4": "front-3-4";
|
|
515
|
+
side: "side";
|
|
516
|
+
"side-right": "side-right";
|
|
517
|
+
rear: "rear";
|
|
518
|
+
"rear-3-4": "rear-3-4";
|
|
519
|
+
}>;
|
|
520
|
+
label: z.ZodString;
|
|
521
|
+
yaw_degrees: z.ZodNumber;
|
|
522
|
+
description: z.ZodString;
|
|
523
|
+
aliases: z.ZodArray<z.ZodString>;
|
|
524
|
+
}, z.core.$loose>>;
|
|
525
|
+
colors: z.ZodArray<z.ZodObject<{
|
|
526
|
+
name: z.ZodEnum<{
|
|
527
|
+
white: "white";
|
|
528
|
+
black: "black";
|
|
529
|
+
gray: "gray";
|
|
530
|
+
silver: "silver";
|
|
531
|
+
blue: "blue";
|
|
532
|
+
red: "red";
|
|
533
|
+
green: "green";
|
|
534
|
+
brown: "brown";
|
|
535
|
+
beige: "beige";
|
|
536
|
+
tan: "tan";
|
|
537
|
+
orange: "orange";
|
|
538
|
+
yellow: "yellow";
|
|
539
|
+
gold: "gold";
|
|
540
|
+
burgundy: "burgundy";
|
|
541
|
+
purple: "purple";
|
|
542
|
+
}>;
|
|
543
|
+
hex: z.ZodString;
|
|
544
|
+
}, z.core.$loose>>;
|
|
545
|
+
sizes: z.ZodObject<{
|
|
546
|
+
presets: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
547
|
+
max: z.ZodNumber;
|
|
548
|
+
}, z.core.$loose>;
|
|
549
|
+
formats: z.ZodArray<z.ZodEnum<{
|
|
550
|
+
png: "png";
|
|
551
|
+
webp: "webp";
|
|
552
|
+
jpg: "jpg";
|
|
553
|
+
}>>;
|
|
554
|
+
pricing: z.ZodObject<{
|
|
555
|
+
credits_per_image: z.ZodNumber;
|
|
556
|
+
credits_per_dollar: z.ZodNumber;
|
|
557
|
+
free_credits: z.ZodOptional<z.ZodNumber>;
|
|
558
|
+
packs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
559
|
+
credits: z.ZodNumber;
|
|
560
|
+
cents: z.ZodNumber;
|
|
561
|
+
label: z.ZodOptional<z.ZodString>;
|
|
562
|
+
}, z.core.$loose>>>;
|
|
563
|
+
}, z.core.$loose>;
|
|
564
|
+
catalog: z.ZodObject<{
|
|
565
|
+
makes: z.ZodNumber;
|
|
566
|
+
models: z.ZodNumber;
|
|
567
|
+
years: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
568
|
+
sources: z.ZodArray<z.ZodString>;
|
|
569
|
+
}, z.core.$loose>;
|
|
570
|
+
}, z.core.$loose>;
|
|
571
|
+
}, z.core.$loose>;
|
|
572
|
+
readonly get_account: z.ZodObject<{
|
|
573
|
+
data: z.ZodObject<{
|
|
574
|
+
credits: z.ZodNumber;
|
|
575
|
+
credits_usd: z.ZodNumber;
|
|
576
|
+
auto_reload: z.ZodBoolean;
|
|
577
|
+
has_payment_method: z.ZodBoolean;
|
|
578
|
+
pricing: z.ZodObject<{
|
|
579
|
+
credits_per_image: z.ZodNumber;
|
|
580
|
+
credits_per_dollar: z.ZodNumber;
|
|
581
|
+
free_credits: z.ZodOptional<z.ZodNumber>;
|
|
582
|
+
packs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
583
|
+
credits: z.ZodNumber;
|
|
584
|
+
cents: z.ZodNumber;
|
|
585
|
+
label: z.ZodOptional<z.ZodString>;
|
|
586
|
+
}, z.core.$loose>>>;
|
|
587
|
+
}, z.core.$loose>;
|
|
588
|
+
key: z.ZodOptional<z.ZodObject<{
|
|
589
|
+
id: z.ZodOptional<z.ZodString>;
|
|
590
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
591
|
+
}, z.core.$loose>>;
|
|
592
|
+
}, z.core.$loose>;
|
|
593
|
+
links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
594
|
+
request_id: z.ZodOptional<z.ZodString>;
|
|
595
|
+
}, z.core.$loose>;
|
|
596
|
+
readonly rate_image: z.ZodObject<{
|
|
597
|
+
data: z.ZodObject<{
|
|
598
|
+
asset_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
599
|
+
flagged: z.ZodBoolean;
|
|
600
|
+
rating: z.ZodOptional<z.ZodNumber>;
|
|
601
|
+
verdict: z.ZodOptional<z.ZodEnum<{
|
|
602
|
+
good: "good";
|
|
603
|
+
bad: "bad";
|
|
604
|
+
}>>;
|
|
605
|
+
}, z.core.$loose>;
|
|
606
|
+
request_id: z.ZodString;
|
|
607
|
+
}, z.core.$loose>;
|
|
608
|
+
readonly list_requests: z.ZodObject<{
|
|
609
|
+
data: z.ZodArray<z.ZodObject<{
|
|
610
|
+
comments: z.ZodNumber;
|
|
611
|
+
id: z.ZodString;
|
|
612
|
+
kind: z.ZodEnum<{
|
|
613
|
+
vehicle: "vehicle";
|
|
614
|
+
feature: "feature";
|
|
615
|
+
}>;
|
|
616
|
+
title: z.ZodString;
|
|
617
|
+
body: z.ZodNullable<z.ZodString>;
|
|
618
|
+
vehicle: z.ZodNullable<z.ZodObject<{
|
|
619
|
+
make: z.ZodString;
|
|
620
|
+
model: z.ZodString;
|
|
621
|
+
year: z.ZodNullable<z.ZodNumber>;
|
|
622
|
+
}, z.core.$loose>>;
|
|
623
|
+
status: z.ZodEnum<{
|
|
624
|
+
open: "open";
|
|
625
|
+
planned: "planned";
|
|
626
|
+
in_progress: "in_progress";
|
|
627
|
+
done: "done";
|
|
628
|
+
declined: "declined";
|
|
629
|
+
}>;
|
|
630
|
+
votes: z.ZodNumber;
|
|
631
|
+
author: z.ZodString;
|
|
632
|
+
url: z.ZodString;
|
|
633
|
+
created_at: z.ZodString;
|
|
634
|
+
updated_at: z.ZodString;
|
|
635
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
636
|
+
voted: z.ZodBoolean;
|
|
637
|
+
}, z.core.$loose>>;
|
|
638
|
+
}, z.core.$loose>>;
|
|
639
|
+
next_cursor: z.ZodNullable<z.ZodString>;
|
|
640
|
+
request_id: z.ZodString;
|
|
641
|
+
}, z.core.$loose>;
|
|
642
|
+
readonly request_vehicle: z.ZodObject<{
|
|
643
|
+
data: z.ZodObject<{
|
|
644
|
+
comments: z.ZodNumber;
|
|
645
|
+
id: z.ZodString;
|
|
646
|
+
kind: z.ZodEnum<{
|
|
647
|
+
vehicle: "vehicle";
|
|
648
|
+
feature: "feature";
|
|
649
|
+
}>;
|
|
650
|
+
title: z.ZodString;
|
|
651
|
+
body: z.ZodNullable<z.ZodString>;
|
|
652
|
+
vehicle: z.ZodNullable<z.ZodObject<{
|
|
653
|
+
make: z.ZodString;
|
|
654
|
+
model: z.ZodString;
|
|
655
|
+
year: z.ZodNullable<z.ZodNumber>;
|
|
656
|
+
}, z.core.$loose>>;
|
|
657
|
+
status: z.ZodEnum<{
|
|
658
|
+
open: "open";
|
|
659
|
+
planned: "planned";
|
|
660
|
+
in_progress: "in_progress";
|
|
661
|
+
done: "done";
|
|
662
|
+
declined: "declined";
|
|
663
|
+
}>;
|
|
664
|
+
votes: z.ZodNumber;
|
|
665
|
+
author: z.ZodString;
|
|
666
|
+
url: z.ZodString;
|
|
667
|
+
created_at: z.ZodString;
|
|
668
|
+
updated_at: z.ZodString;
|
|
669
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
670
|
+
voted: z.ZodBoolean;
|
|
671
|
+
}, z.core.$loose>>;
|
|
672
|
+
}, z.core.$loose>;
|
|
673
|
+
deduplicated: z.ZodBoolean;
|
|
674
|
+
request_id: z.ZodString;
|
|
675
|
+
}, z.core.$loose>;
|
|
676
|
+
readonly request_feature: z.ZodObject<{
|
|
677
|
+
data: z.ZodObject<{
|
|
678
|
+
comments: z.ZodNumber;
|
|
679
|
+
id: z.ZodString;
|
|
680
|
+
kind: z.ZodEnum<{
|
|
681
|
+
vehicle: "vehicle";
|
|
682
|
+
feature: "feature";
|
|
683
|
+
}>;
|
|
684
|
+
title: z.ZodString;
|
|
685
|
+
body: z.ZodNullable<z.ZodString>;
|
|
686
|
+
vehicle: z.ZodNullable<z.ZodObject<{
|
|
687
|
+
make: z.ZodString;
|
|
688
|
+
model: z.ZodString;
|
|
689
|
+
year: z.ZodNullable<z.ZodNumber>;
|
|
690
|
+
}, z.core.$loose>>;
|
|
691
|
+
status: z.ZodEnum<{
|
|
692
|
+
open: "open";
|
|
693
|
+
planned: "planned";
|
|
694
|
+
in_progress: "in_progress";
|
|
695
|
+
done: "done";
|
|
696
|
+
declined: "declined";
|
|
697
|
+
}>;
|
|
698
|
+
votes: z.ZodNumber;
|
|
699
|
+
author: z.ZodString;
|
|
700
|
+
url: z.ZodString;
|
|
701
|
+
created_at: z.ZodString;
|
|
702
|
+
updated_at: z.ZodString;
|
|
703
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
704
|
+
voted: z.ZodBoolean;
|
|
705
|
+
}, z.core.$loose>>;
|
|
706
|
+
}, z.core.$loose>;
|
|
707
|
+
deduplicated: z.ZodBoolean;
|
|
708
|
+
request_id: z.ZodString;
|
|
709
|
+
}, z.core.$loose>;
|
|
710
|
+
readonly get_request: z.ZodObject<{
|
|
711
|
+
data: z.ZodObject<{
|
|
712
|
+
comment_count: z.ZodNumber;
|
|
713
|
+
comments: z.ZodArray<z.ZodObject<{
|
|
714
|
+
id: z.ZodString;
|
|
715
|
+
request_id: z.ZodString;
|
|
716
|
+
body: z.ZodString;
|
|
717
|
+
author: z.ZodString;
|
|
718
|
+
created_at: z.ZodString;
|
|
719
|
+
}, z.core.$loose>>;
|
|
720
|
+
id: z.ZodString;
|
|
721
|
+
kind: z.ZodEnum<{
|
|
722
|
+
vehicle: "vehicle";
|
|
723
|
+
feature: "feature";
|
|
724
|
+
}>;
|
|
725
|
+
title: z.ZodString;
|
|
726
|
+
body: z.ZodNullable<z.ZodString>;
|
|
727
|
+
vehicle: z.ZodNullable<z.ZodObject<{
|
|
728
|
+
make: z.ZodString;
|
|
729
|
+
model: z.ZodString;
|
|
730
|
+
year: z.ZodNullable<z.ZodNumber>;
|
|
731
|
+
}, z.core.$loose>>;
|
|
732
|
+
status: z.ZodEnum<{
|
|
733
|
+
open: "open";
|
|
734
|
+
planned: "planned";
|
|
735
|
+
in_progress: "in_progress";
|
|
736
|
+
done: "done";
|
|
737
|
+
declined: "declined";
|
|
738
|
+
}>;
|
|
739
|
+
votes: z.ZodNumber;
|
|
740
|
+
author: z.ZodString;
|
|
741
|
+
url: z.ZodString;
|
|
742
|
+
created_at: z.ZodString;
|
|
743
|
+
updated_at: z.ZodString;
|
|
744
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
745
|
+
voted: z.ZodBoolean;
|
|
746
|
+
}, z.core.$loose>>;
|
|
747
|
+
}, z.core.$loose>;
|
|
748
|
+
request_id: z.ZodString;
|
|
749
|
+
}, z.core.$loose>;
|
|
750
|
+
readonly upvote_request: z.ZodObject<{
|
|
751
|
+
data: z.ZodObject<{
|
|
752
|
+
comments: z.ZodNumber;
|
|
753
|
+
id: z.ZodString;
|
|
754
|
+
kind: z.ZodEnum<{
|
|
755
|
+
vehicle: "vehicle";
|
|
756
|
+
feature: "feature";
|
|
757
|
+
}>;
|
|
758
|
+
title: z.ZodString;
|
|
759
|
+
body: z.ZodNullable<z.ZodString>;
|
|
760
|
+
vehicle: z.ZodNullable<z.ZodObject<{
|
|
761
|
+
make: z.ZodString;
|
|
762
|
+
model: z.ZodString;
|
|
763
|
+
year: z.ZodNullable<z.ZodNumber>;
|
|
764
|
+
}, z.core.$loose>>;
|
|
765
|
+
status: z.ZodEnum<{
|
|
766
|
+
open: "open";
|
|
767
|
+
planned: "planned";
|
|
768
|
+
in_progress: "in_progress";
|
|
769
|
+
done: "done";
|
|
770
|
+
declined: "declined";
|
|
771
|
+
}>;
|
|
772
|
+
votes: z.ZodNumber;
|
|
773
|
+
author: z.ZodString;
|
|
774
|
+
url: z.ZodString;
|
|
775
|
+
created_at: z.ZodString;
|
|
776
|
+
updated_at: z.ZodString;
|
|
777
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
778
|
+
voted: z.ZodBoolean;
|
|
779
|
+
}, z.core.$loose>>;
|
|
780
|
+
}, z.core.$loose>;
|
|
781
|
+
request_id: z.ZodString;
|
|
782
|
+
}, z.core.$loose>;
|
|
783
|
+
readonly comment_on_request: z.ZodObject<{
|
|
784
|
+
data: z.ZodObject<{
|
|
785
|
+
id: z.ZodString;
|
|
786
|
+
request_id: z.ZodString;
|
|
787
|
+
body: z.ZodString;
|
|
788
|
+
author: z.ZodString;
|
|
789
|
+
created_at: z.ZodString;
|
|
790
|
+
}, z.core.$loose>;
|
|
791
|
+
request_id: z.ZodString;
|
|
792
|
+
}, z.core.$loose>;
|
|
793
|
+
readonly share_building: z.ZodObject<{
|
|
794
|
+
data: z.ZodObject<{
|
|
795
|
+
building: z.ZodString;
|
|
796
|
+
updated_at: z.ZodString;
|
|
797
|
+
}, z.core.$loose>;
|
|
798
|
+
request_id: z.ZodString;
|
|
799
|
+
}, z.core.$loose>;
|
|
800
|
+
readonly share_referral: z.ZodObject<{
|
|
801
|
+
data: z.ZodObject<{
|
|
802
|
+
source: z.ZodEnum<{
|
|
803
|
+
search: "search";
|
|
804
|
+
ai_assistant: "ai_assistant";
|
|
805
|
+
github: "github";
|
|
806
|
+
npm: "npm";
|
|
807
|
+
twitter_x: "twitter_x";
|
|
808
|
+
linkedin: "linkedin";
|
|
809
|
+
reddit: "reddit";
|
|
810
|
+
hacker_news: "hacker_news";
|
|
811
|
+
youtube: "youtube";
|
|
812
|
+
friend_or_colleague: "friend_or_colleague";
|
|
813
|
+
blog_or_article: "blog_or_article";
|
|
814
|
+
other: "other";
|
|
815
|
+
}>;
|
|
816
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
817
|
+
updated_at: z.ZodString;
|
|
818
|
+
}, z.core.$loose>;
|
|
819
|
+
request_id: z.ZodString;
|
|
820
|
+
}, z.core.$loose>;
|
|
821
|
+
};
|
|
822
|
+
/** The tools that promise structured content, i.e. everything but `describe_api`. */
|
|
823
|
+
export type McpToolWithOutput = keyof typeof MCP_TOOL_OUTPUT_SCHEMAS;
|
|
824
|
+
export type McpToolOutput<N extends McpToolWithOutput> = z.infer<(typeof MCP_TOOL_OUTPUT_SCHEMAS)[N]>;
|
|
825
|
+
/** A catalog hit as either server holds it: the library's camelCase or the REST spelling. */
|
|
826
|
+
export interface VehicleMatchSource {
|
|
827
|
+
kind: "make" | "model";
|
|
828
|
+
makeName?: string;
|
|
829
|
+
makeSlug?: string;
|
|
830
|
+
modelName?: string;
|
|
831
|
+
modelSlug?: string;
|
|
832
|
+
vehicleType?: string;
|
|
833
|
+
matchKind?: string;
|
|
834
|
+
make_name?: string;
|
|
835
|
+
make_slug?: string;
|
|
836
|
+
model_name?: string;
|
|
837
|
+
model_slug?: string;
|
|
838
|
+
vehicle_type?: string;
|
|
839
|
+
match_kind?: string;
|
|
840
|
+
years?: number[];
|
|
841
|
+
}
|
|
842
|
+
/**
|
|
843
|
+
* Normalizes a catalog hit into the one shape `search_vehicles` promises.
|
|
844
|
+
*
|
|
845
|
+
* The remote server reads the catalog library (camelCase) and the stdio one
|
|
846
|
+
* reads `GET /api/v1/vehicles?q=` (snake_case, and it omits `model_name`
|
|
847
|
+
* entirely on a make hit rather than sending null). Agents pass these straight
|
|
848
|
+
* to get_car_image, so both are mapped onto `make`/`model` with explicit nulls.
|
|
849
|
+
*/
|
|
850
|
+
export declare function toVehicleMatch(source: VehicleMatchSource): McpToolOutput<"search_vehicles">["data"]["results"][number];
|
|
851
|
+
/**
|
|
852
|
+
* Normalizes the options payload into the one shape `list_image_options`
|
|
853
|
+
* promises. `GET /api/v1/images/options` describes formats and catalog sources
|
|
854
|
+
* as objects and the year span as `{from, to}`; agents want bare ids and a
|
|
855
|
+
* `[from, to]` pair, so both that shape and an already-flat one are accepted.
|
|
856
|
+
* Anything else in the payload (`limits`, `sizes.source`) rides along untouched.
|
|
857
|
+
*/
|
|
858
|
+
export declare function toImageOptions(data: unknown): McpToolOutput<"list_image_options">["data"];
|
|
267
859
|
export interface McpToolAnnotations {
|
|
268
860
|
title?: string;
|
|
269
861
|
readOnlyHint?: boolean;
|
|
@@ -276,6 +868,8 @@ export interface McpToolDefinition<N extends McpToolName = McpToolName> {
|
|
|
276
868
|
title: string;
|
|
277
869
|
description: string;
|
|
278
870
|
inputSchema: (typeof MCP_TOOL_SCHEMAS)[N];
|
|
871
|
+
/** What `structuredContent` will hold; absent only on `describe_api`, which answers in prose. */
|
|
872
|
+
outputSchema?: N extends McpToolWithOutput ? (typeof MCP_TOOL_OUTPUT_SCHEMAS)[N] : undefined;
|
|
279
873
|
annotations: McpToolAnnotations;
|
|
280
874
|
}
|
|
281
875
|
export declare const MCP_TOOLS: {
|
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|