@klex/agent-admin-api 0.3.0 → 0.4.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.
Files changed (3) hide show
  1. package/README.md +21 -0
  2. package/dist/index.d.ts +1102 -1033
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -15,6 +15,15 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
15
15
  } & {
16
16
  "/v1/cloud/status": {
17
17
  $get: {
18
+ output: {
19
+ error: string;
20
+ code: string;
21
+ remediation?: string | undefined;
22
+ };
23
+ outputFormat: "json";
24
+ status: 500;
25
+ input: {};
26
+ } | {
18
27
  output: {
19
28
  cloudEnabled: boolean;
20
29
  enrolled: boolean;
@@ -26,25 +35,18 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
26
35
  outputFormat: "json";
27
36
  status: 200;
28
37
  input: {};
29
- } | {
30
- output: {
31
- error: string;
32
- code: string;
33
- };
34
- outputFormat: "json";
35
- status: 500;
36
- input: {};
37
38
  };
38
39
  };
39
40
  } & {
40
41
  "/v1/cloud/enroll": {
41
42
  $post: {
42
43
  output: {
43
- clientId: string;
44
- enrolledAt: string;
44
+ error: string;
45
+ code: string;
46
+ remediation?: string | undefined;
45
47
  };
46
48
  outputFormat: "json";
47
- status: 200;
49
+ status: 400;
48
50
  input: {
49
51
  json: {
50
52
  enrollmentCode: string;
@@ -54,9 +56,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
54
56
  output: {
55
57
  error: string;
56
58
  code: string;
59
+ remediation?: string | undefined;
57
60
  };
58
61
  outputFormat: "json";
59
- status: 400;
62
+ status: 500;
60
63
  input: {
61
64
  json: {
62
65
  enrollmentCode: string;
@@ -64,11 +67,11 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
64
67
  };
65
68
  } | {
66
69
  output: {
67
- error: string;
68
- code: string;
70
+ clientId: string;
71
+ enrolledAt: string;
69
72
  };
70
73
  outputFormat: "json";
71
- status: 500;
74
+ status: 200;
72
75
  input: {
73
76
  json: {
74
77
  enrollmentCode: string;
@@ -91,10 +94,12 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
91
94
  "/v1/settings/agent": {
92
95
  $patch: {
93
96
  output: {
94
- officialName: string;
97
+ error: string;
98
+ code: string;
99
+ remediation?: string | undefined;
95
100
  };
96
101
  outputFormat: "json";
97
- status: 200;
102
+ status: 400;
98
103
  input: {
99
104
  json: {
100
105
  officialName: string;
@@ -104,9 +109,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
104
109
  output: {
105
110
  error: string;
106
111
  code: string;
112
+ remediation?: string | undefined;
107
113
  };
108
114
  outputFormat: "json";
109
- status: 400;
115
+ status: 500;
110
116
  input: {
111
117
  json: {
112
118
  officialName: string;
@@ -114,11 +120,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
114
120
  };
115
121
  } | {
116
122
  output: {
117
- error: string;
118
- code: string;
123
+ officialName: string;
119
124
  };
120
125
  outputFormat: "json";
121
- status: 500;
126
+ status: 200;
122
127
  input: {
123
128
  json: {
124
129
  officialName: string;
@@ -130,112 +135,148 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
130
135
  "/v1/settings/model-selection": {
131
136
  $get: {
132
137
  output: {
133
- chat: ({
134
- model: `${string}:${string}`;
138
+ error: string;
139
+ code: string;
140
+ remediation?: string | undefined;
141
+ };
142
+ outputFormat: "json";
143
+ status: 500;
144
+ input: {};
145
+ } | {
146
+ output: {
147
+ chat: {
148
+ providerId: string;
149
+ modelId: string;
135
150
  providerOptions?: {
136
- [x: string]: import("hono/utils/types").JSONValue;
151
+ [x: string]: {
152
+ [x: string]: import("hono/utils/types").JSONValue;
153
+ };
137
154
  } | undefined;
138
- } | `${string}:${string}`)[];
139
- compaction: ({
140
- model: `${string}:${string}`;
155
+ }[];
156
+ compaction: {
157
+ providerId: string;
158
+ modelId: string;
141
159
  providerOptions?: {
142
- [x: string]: import("hono/utils/types").JSONValue;
160
+ [x: string]: {
161
+ [x: string]: import("hono/utils/types").JSONValue;
162
+ };
143
163
  } | undefined;
144
- } | `${string}:${string}`)[];
145
- memory: ({
146
- model: `${string}:${string}`;
164
+ }[];
165
+ memory: {
166
+ providerId: string;
167
+ modelId: string;
147
168
  providerOptions?: {
148
- [x: string]: import("hono/utils/types").JSONValue;
169
+ [x: string]: {
170
+ [x: string]: import("hono/utils/types").JSONValue;
171
+ };
149
172
  } | undefined;
150
- } | `${string}:${string}`)[];
151
- imageVision: ({
152
- model: `${string}:${string}`;
173
+ }[];
174
+ imageVision: {
175
+ providerId: string;
176
+ modelId: string;
153
177
  providerOptions?: {
154
- [x: string]: import("hono/utils/types").JSONValue;
178
+ [x: string]: {
179
+ [x: string]: import("hono/utils/types").JSONValue;
180
+ };
155
181
  } | undefined;
156
- } | `${string}:${string}`)[];
157
- audioListening: ({
158
- model: `${string}:${string}`;
182
+ }[];
183
+ audioListening: {
184
+ providerId: string;
185
+ modelId: string;
159
186
  providerOptions?: {
160
- [x: string]: import("hono/utils/types").JSONValue;
187
+ [x: string]: {
188
+ [x: string]: import("hono/utils/types").JSONValue;
189
+ };
161
190
  } | undefined;
162
- } | `${string}:${string}`)[];
191
+ }[];
163
192
  voice: {
164
- sts: `${string}:${string}`[];
165
- tts: `${string}:${string}`[];
166
- stt: `${string}:${string}`[];
193
+ sts: {
194
+ providerId: string;
195
+ modelId: string;
196
+ providerOptions?: {
197
+ [x: string]: {
198
+ [x: string]: import("hono/utils/types").JSONValue;
199
+ };
200
+ } | undefined;
201
+ }[];
202
+ tts: {
203
+ providerId: string;
204
+ modelId: string;
205
+ providerOptions?: {
206
+ [x: string]: {
207
+ [x: string]: import("hono/utils/types").JSONValue;
208
+ };
209
+ } | undefined;
210
+ }[];
211
+ stt: {
212
+ providerId: string;
213
+ modelId: string;
214
+ providerOptions?: {
215
+ [x: string]: {
216
+ [x: string]: import("hono/utils/types").JSONValue;
217
+ };
218
+ } | undefined;
219
+ }[];
167
220
  };
168
221
  };
169
222
  outputFormat: "json";
170
223
  status: 200;
171
224
  input: {};
172
- } | {
173
- output: {
174
- error: string;
175
- code: string;
176
- };
177
- outputFormat: "json";
178
- status: 500;
179
- input: {};
180
225
  };
181
226
  };
182
227
  } & {
183
228
  "/v1/settings/model-selection": {
184
229
  $patch: {
185
230
  output: {
186
- chat: ({
187
- model: `${string}:${string}`;
188
- providerOptions?: {
189
- [x: string]: import("hono/utils/types").JSONValue;
190
- } | undefined;
191
- } | `${string}:${string}`)[];
192
- compaction: ({
193
- model: `${string}:${string}`;
194
- providerOptions?: {
195
- [x: string]: import("hono/utils/types").JSONValue;
196
- } | undefined;
197
- } | `${string}:${string}`)[];
198
- memory: ({
199
- model: `${string}:${string}`;
200
- providerOptions?: {
201
- [x: string]: import("hono/utils/types").JSONValue;
202
- } | undefined;
203
- } | `${string}:${string}`)[];
204
- imageVision: ({
205
- model: `${string}:${string}`;
206
- providerOptions?: {
207
- [x: string]: import("hono/utils/types").JSONValue;
208
- } | undefined;
209
- } | `${string}:${string}`)[];
210
- audioListening: ({
211
- model: `${string}:${string}`;
212
- providerOptions?: {
213
- [x: string]: import("hono/utils/types").JSONValue;
214
- } | undefined;
215
- } | `${string}:${string}`)[];
216
- voice: {
217
- sts: `${string}:${string}`[];
218
- tts: `${string}:${string}`[];
219
- stt: `${string}:${string}`[];
220
- };
221
- warnings: {
222
- modelId: string;
223
- message: string;
224
- }[];
231
+ error: string;
232
+ code: string;
233
+ remediation?: string | undefined;
225
234
  };
226
235
  outputFormat: "json";
227
- status: 200;
236
+ status: 400;
228
237
  input: {
229
238
  json: {
230
- chat?: unknown[] | undefined;
231
- compaction?: unknown[] | undefined;
232
- memory?: unknown[] | undefined;
233
- imageVision?: unknown[] | undefined;
234
- audioListening?: unknown[] | undefined;
239
+ chat?: {
240
+ providerId: string;
241
+ modelId: string;
242
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
243
+ }[] | undefined;
244
+ compaction?: {
245
+ providerId: string;
246
+ modelId: string;
247
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
248
+ }[] | undefined;
249
+ memory?: {
250
+ providerId: string;
251
+ modelId: string;
252
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
253
+ }[] | undefined;
254
+ imageVision?: {
255
+ providerId: string;
256
+ modelId: string;
257
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
258
+ }[] | undefined;
259
+ audioListening?: {
260
+ providerId: string;
261
+ modelId: string;
262
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
263
+ }[] | undefined;
235
264
  voice?: {
236
- sts: unknown[];
237
- tts: unknown[];
238
- stt: unknown[];
265
+ sts: {
266
+ providerId: string;
267
+ modelId: string;
268
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
269
+ }[];
270
+ tts: {
271
+ providerId: string;
272
+ modelId: string;
273
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
274
+ }[];
275
+ stt: {
276
+ providerId: string;
277
+ modelId: string;
278
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
279
+ }[];
239
280
  } | undefined;
240
281
  };
241
282
  };
@@ -243,41 +284,182 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
243
284
  output: {
244
285
  error: string;
245
286
  code: string;
287
+ remediation?: string | undefined;
246
288
  };
247
289
  outputFormat: "json";
248
- status: 400;
290
+ status: 500;
249
291
  input: {
250
292
  json: {
251
- chat?: unknown[] | undefined;
252
- compaction?: unknown[] | undefined;
253
- memory?: unknown[] | undefined;
254
- imageVision?: unknown[] | undefined;
255
- audioListening?: unknown[] | undefined;
293
+ chat?: {
294
+ providerId: string;
295
+ modelId: string;
296
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
297
+ }[] | undefined;
298
+ compaction?: {
299
+ providerId: string;
300
+ modelId: string;
301
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
302
+ }[] | undefined;
303
+ memory?: {
304
+ providerId: string;
305
+ modelId: string;
306
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
307
+ }[] | undefined;
308
+ imageVision?: {
309
+ providerId: string;
310
+ modelId: string;
311
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
312
+ }[] | undefined;
313
+ audioListening?: {
314
+ providerId: string;
315
+ modelId: string;
316
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
317
+ }[] | undefined;
256
318
  voice?: {
257
- sts: unknown[];
258
- tts: unknown[];
259
- stt: unknown[];
319
+ sts: {
320
+ providerId: string;
321
+ modelId: string;
322
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
323
+ }[];
324
+ tts: {
325
+ providerId: string;
326
+ modelId: string;
327
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
328
+ }[];
329
+ stt: {
330
+ providerId: string;
331
+ modelId: string;
332
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
333
+ }[];
260
334
  } | undefined;
261
335
  };
262
336
  };
263
337
  } | {
264
338
  output: {
265
- error: string;
266
- code: string;
339
+ chat: {
340
+ providerId: string;
341
+ modelId: string;
342
+ providerOptions?: {
343
+ [x: string]: {
344
+ [x: string]: import("hono/utils/types").JSONValue;
345
+ };
346
+ } | undefined;
347
+ }[];
348
+ compaction: {
349
+ providerId: string;
350
+ modelId: string;
351
+ providerOptions?: {
352
+ [x: string]: {
353
+ [x: string]: import("hono/utils/types").JSONValue;
354
+ };
355
+ } | undefined;
356
+ }[];
357
+ memory: {
358
+ providerId: string;
359
+ modelId: string;
360
+ providerOptions?: {
361
+ [x: string]: {
362
+ [x: string]: import("hono/utils/types").JSONValue;
363
+ };
364
+ } | undefined;
365
+ }[];
366
+ imageVision: {
367
+ providerId: string;
368
+ modelId: string;
369
+ providerOptions?: {
370
+ [x: string]: {
371
+ [x: string]: import("hono/utils/types").JSONValue;
372
+ };
373
+ } | undefined;
374
+ }[];
375
+ audioListening: {
376
+ providerId: string;
377
+ modelId: string;
378
+ providerOptions?: {
379
+ [x: string]: {
380
+ [x: string]: import("hono/utils/types").JSONValue;
381
+ };
382
+ } | undefined;
383
+ }[];
384
+ voice: {
385
+ sts: {
386
+ providerId: string;
387
+ modelId: string;
388
+ providerOptions?: {
389
+ [x: string]: {
390
+ [x: string]: import("hono/utils/types").JSONValue;
391
+ };
392
+ } | undefined;
393
+ }[];
394
+ tts: {
395
+ providerId: string;
396
+ modelId: string;
397
+ providerOptions?: {
398
+ [x: string]: {
399
+ [x: string]: import("hono/utils/types").JSONValue;
400
+ };
401
+ } | undefined;
402
+ }[];
403
+ stt: {
404
+ providerId: string;
405
+ modelId: string;
406
+ providerOptions?: {
407
+ [x: string]: {
408
+ [x: string]: import("hono/utils/types").JSONValue;
409
+ };
410
+ } | undefined;
411
+ }[];
412
+ };
413
+ warnings: {
414
+ modelId: string;
415
+ message: string;
416
+ }[];
267
417
  };
268
418
  outputFormat: "json";
269
- status: 500;
419
+ status: 200;
270
420
  input: {
271
421
  json: {
272
- chat?: unknown[] | undefined;
273
- compaction?: unknown[] | undefined;
274
- memory?: unknown[] | undefined;
275
- imageVision?: unknown[] | undefined;
276
- audioListening?: unknown[] | undefined;
422
+ chat?: {
423
+ providerId: string;
424
+ modelId: string;
425
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
426
+ }[] | undefined;
427
+ compaction?: {
428
+ providerId: string;
429
+ modelId: string;
430
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
431
+ }[] | undefined;
432
+ memory?: {
433
+ providerId: string;
434
+ modelId: string;
435
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
436
+ }[] | undefined;
437
+ imageVision?: {
438
+ providerId: string;
439
+ modelId: string;
440
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
441
+ }[] | undefined;
442
+ audioListening?: {
443
+ providerId: string;
444
+ modelId: string;
445
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
446
+ }[] | undefined;
277
447
  voice?: {
278
- sts: unknown[];
279
- tts: unknown[];
280
- stt: unknown[];
448
+ sts: {
449
+ providerId: string;
450
+ modelId: string;
451
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
452
+ }[];
453
+ tts: {
454
+ providerId: string;
455
+ modelId: string;
456
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
457
+ }[];
458
+ stt: {
459
+ providerId: string;
460
+ modelId: string;
461
+ providerOptions?: Record<string, Record<string, unknown>> | undefined;
462
+ }[];
281
463
  } | undefined;
282
464
  };
283
465
  };
@@ -287,18 +469,19 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
287
469
  "/v1/settings/telemetry": {
288
470
  $get: {
289
471
  output: {
290
- level: "full" | "minimum" | "off" | "reduced";
472
+ error: string;
473
+ code: string;
474
+ remediation?: string | undefined;
291
475
  };
292
476
  outputFormat: "json";
293
- status: 200;
477
+ status: 500;
294
478
  input: {};
295
479
  } | {
296
480
  output: {
297
- error: string;
298
- code: string;
481
+ level: "full" | "minimum" | "off" | "reduced";
299
482
  };
300
483
  outputFormat: "json";
301
- status: 500;
484
+ status: 200;
302
485
  input: {};
303
486
  };
304
487
  };
@@ -306,10 +489,12 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
306
489
  "/v1/settings/telemetry": {
307
490
  $patch: {
308
491
  output: {
309
- level: "full" | "minimum" | "off" | "reduced";
492
+ error: string;
493
+ code: string;
494
+ remediation?: string | undefined;
310
495
  };
311
496
  outputFormat: "json";
312
- status: 200;
497
+ status: 400;
313
498
  input: {
314
499
  json: {
315
500
  level?: "full" | "minimum" | "off" | "reduced" | undefined;
@@ -319,9 +504,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
319
504
  output: {
320
505
  error: string;
321
506
  code: string;
507
+ remediation?: string | undefined;
322
508
  };
323
509
  outputFormat: "json";
324
- status: 400;
510
+ status: 500;
325
511
  input: {
326
512
  json: {
327
513
  level?: "full" | "minimum" | "off" | "reduced" | undefined;
@@ -329,11 +515,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
329
515
  };
330
516
  } | {
331
517
  output: {
332
- error: string;
333
- code: string;
518
+ level: "full" | "minimum" | "off" | "reduced";
334
519
  };
335
520
  outputFormat: "json";
336
- status: 500;
521
+ status: 200;
337
522
  input: {
338
523
  json: {
339
524
  level?: "full" | "minimum" | "off" | "reduced" | undefined;
@@ -344,6 +529,15 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
344
529
  } & {
345
530
  "/v1/introspect": {
346
531
  $get: {
532
+ output: {
533
+ error: string;
534
+ code: string;
535
+ remediation?: string | undefined;
536
+ };
537
+ outputFormat: "json";
538
+ status: 500;
539
+ input: {};
540
+ } | {
347
541
  output: {
348
542
  path: string[];
349
543
  state: {
@@ -358,19 +552,20 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
358
552
  outputFormat: "json";
359
553
  status: 200;
360
554
  input: {};
361
- } | {
555
+ };
556
+ };
557
+ } & {
558
+ "/v1/mcp-servers": {
559
+ $get: {
362
560
  output: {
363
561
  error: string;
364
562
  code: string;
563
+ remediation?: string | undefined;
365
564
  };
366
565
  outputFormat: "json";
367
566
  status: 500;
368
567
  input: {};
369
- };
370
- };
371
- } & {
372
- "/v1/mcp-servers": {
373
- $get: {
568
+ } | {
374
569
  output: {
375
570
  servers: {
376
571
  name: string;
@@ -396,52 +591,15 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
396
591
  outputFormat: "json";
397
592
  status: 200;
398
593
  input: {};
399
- } | {
400
- output: {
401
- error: string;
402
- code: string;
403
- };
404
- outputFormat: "json";
405
- status: 500;
406
- input: {};
407
594
  };
408
595
  };
409
596
  } & {
410
597
  "/v1/mcp-servers/:name": {
411
598
  $get: {
412
- output: {
413
- server: {
414
- name: string;
415
- status: "authorization_required" | "authorizing" | "connected" | "connecting" | "disconnected" | "error";
416
- toolCount: number;
417
- supportsPushNotifications: boolean;
418
- supportsRealtimeMedia: boolean;
419
- transport: "http" | "stdio";
420
- usesInteractiveOAuth: boolean;
421
- authorization: {
422
- id: string;
423
- createdAt: string;
424
- expiresAt: string;
425
- } | null;
426
- lastError: {
427
- name: string;
428
- message: string;
429
- at: string;
430
- } | null;
431
- nextRetryAt: string | null;
432
- };
433
- };
434
- outputFormat: "json";
435
- status: 200;
436
- input: {
437
- param: {
438
- name: string;
439
- };
440
- };
441
- } | {
442
599
  output: {
443
600
  error: string;
444
601
  code: string;
602
+ remediation?: string | undefined;
445
603
  };
446
604
  outputFormat: "json";
447
605
  status: 404;
@@ -454,6 +612,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
454
612
  output: {
455
613
  error: string;
456
614
  code: string;
615
+ remediation?: string | undefined;
457
616
  };
458
617
  outputFormat: "json";
459
618
  status: 500;
@@ -462,13 +621,9 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
462
621
  name: string;
463
622
  };
464
623
  };
465
- };
466
- };
467
- } & {
468
- "/v1/mcp-servers": {
469
- $post: {
624
+ } | {
470
625
  output: {
471
- servers: {
626
+ server: {
472
627
  name: string;
473
628
  status: "authorization_required" | "authorizing" | "connected" | "connecting" | "disconnected" | "error";
474
629
  toolCount: number;
@@ -487,34 +642,24 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
487
642
  at: string;
488
643
  } | null;
489
644
  nextRetryAt: string | null;
490
- }[];
645
+ };
491
646
  };
492
647
  outputFormat: "json";
493
- status: 201;
648
+ status: 200;
494
649
  input: {
495
- json: {
496
- name: string;
497
- type?: "stdio" | undefined;
498
- command: string;
499
- args?: string[] | undefined;
500
- env?: Record<string, string> | undefined;
501
- versionNegotiation?: "auto" | "legacy" | {
502
- pin: string;
503
- } | undefined;
504
- } | {
650
+ param: {
505
651
  name: string;
506
- type?: "http" | "streamable-http" | undefined;
507
- url: string;
508
- headers?: Record<string, string> | undefined;
509
- versionNegotiation?: "auto" | "legacy" | {
510
- pin: string;
511
- } | undefined;
512
652
  };
513
653
  };
514
- } | {
654
+ };
655
+ };
656
+ } & {
657
+ "/v1/mcp-servers": {
658
+ $post: {
515
659
  output: {
516
660
  error: string;
517
661
  code: string;
662
+ remediation?: string | undefined;
518
663
  };
519
664
  outputFormat: "json";
520
665
  status: 400;
@@ -542,6 +687,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
542
687
  output: {
543
688
  error: string;
544
689
  code: string;
690
+ remediation?: string | undefined;
545
691
  };
546
692
  outputFormat: "json";
547
693
  status: 409;
@@ -569,6 +715,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
569
715
  output: {
570
716
  error: string;
571
717
  code: string;
718
+ remediation?: string | undefined;
572
719
  };
573
720
  outputFormat: "json";
574
721
  status: 500;
@@ -592,11 +739,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
592
739
  } | undefined;
593
740
  };
594
741
  };
595
- };
596
- };
597
- } & {
598
- "/v1/mcp-servers/:name": {
599
- $patch: {
742
+ } | {
600
743
  output: {
601
744
  servers: {
602
745
  name: string;
@@ -620,13 +763,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
620
763
  }[];
621
764
  };
622
765
  outputFormat: "json";
623
- status: 200;
766
+ status: 201;
624
767
  input: {
625
- param: {
626
- name: string;
627
- };
628
- } & {
629
768
  json: {
769
+ name: string;
630
770
  type?: "stdio" | undefined;
631
771
  command: string;
632
772
  args?: string[] | undefined;
@@ -635,6 +775,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
635
775
  pin: string;
636
776
  } | undefined;
637
777
  } | {
778
+ name: string;
638
779
  type?: "http" | "streamable-http" | undefined;
639
780
  url: string;
640
781
  headers?: Record<string, string> | undefined;
@@ -643,10 +784,15 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
643
784
  } | undefined;
644
785
  };
645
786
  };
646
- } | {
787
+ };
788
+ };
789
+ } & {
790
+ "/v1/mcp-servers/:name": {
791
+ $patch: {
647
792
  output: {
648
793
  error: string;
649
794
  code: string;
795
+ remediation?: string | undefined;
650
796
  };
651
797
  outputFormat: "json";
652
798
  status: 400;
@@ -676,6 +822,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
676
822
  output: {
677
823
  error: string;
678
824
  code: string;
825
+ remediation?: string | undefined;
679
826
  };
680
827
  outputFormat: "json";
681
828
  status: 404;
@@ -705,6 +852,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
705
852
  output: {
706
853
  error: string;
707
854
  code: string;
855
+ remediation?: string | undefined;
708
856
  };
709
857
  outputFormat: "json";
710
858
  status: 500;
@@ -730,11 +878,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
730
878
  } | undefined;
731
879
  };
732
880
  };
733
- };
734
- };
735
- } & {
736
- "/v1/mcp-servers/:name": {
737
- $delete: {
881
+ } | {
738
882
  output: {
739
883
  servers: {
740
884
  name: string;
@@ -763,11 +907,33 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
763
907
  param: {
764
908
  name: string;
765
909
  };
910
+ } & {
911
+ json: {
912
+ type?: "stdio" | undefined;
913
+ command: string;
914
+ args?: string[] | undefined;
915
+ env?: Record<string, string> | undefined;
916
+ versionNegotiation?: "auto" | "legacy" | {
917
+ pin: string;
918
+ } | undefined;
919
+ } | {
920
+ type?: "http" | "streamable-http" | undefined;
921
+ url: string;
922
+ headers?: Record<string, string> | undefined;
923
+ versionNegotiation?: "auto" | "legacy" | {
924
+ pin: string;
925
+ } | undefined;
926
+ };
766
927
  };
767
- } | {
928
+ };
929
+ };
930
+ } & {
931
+ "/v1/mcp-servers/:name": {
932
+ $delete: {
768
933
  output: {
769
934
  error: string;
770
935
  code: string;
936
+ remediation?: string | undefined;
771
937
  };
772
938
  outputFormat: "json";
773
939
  status: 404;
@@ -780,6 +946,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
780
946
  output: {
781
947
  error: string;
782
948
  code: string;
949
+ remediation?: string | undefined;
783
950
  };
784
951
  outputFormat: "json";
785
952
  status: 500;
@@ -788,11 +955,54 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
788
955
  name: string;
789
956
  };
790
957
  };
958
+ } | {
959
+ output: {
960
+ servers: {
961
+ name: string;
962
+ status: "authorization_required" | "authorizing" | "connected" | "connecting" | "disconnected" | "error";
963
+ toolCount: number;
964
+ supportsPushNotifications: boolean;
965
+ supportsRealtimeMedia: boolean;
966
+ transport: "http" | "stdio";
967
+ usesInteractiveOAuth: boolean;
968
+ authorization: {
969
+ id: string;
970
+ createdAt: string;
971
+ expiresAt: string;
972
+ } | null;
973
+ lastError: {
974
+ name: string;
975
+ message: string;
976
+ at: string;
977
+ } | null;
978
+ nextRetryAt: string | null;
979
+ }[];
980
+ };
981
+ outputFormat: "json";
982
+ status: 200;
983
+ input: {
984
+ param: {
985
+ name: string;
986
+ };
987
+ };
791
988
  };
792
989
  };
793
990
  } & {
794
991
  "/v1/mcp-servers/:name/tool-calls": {
795
992
  $get: {
993
+ output: {
994
+ error: string;
995
+ code: string;
996
+ remediation?: string | undefined;
997
+ };
998
+ outputFormat: "json";
999
+ status: 500;
1000
+ input: {
1001
+ param: {
1002
+ name: string;
1003
+ };
1004
+ };
1005
+ } | {
796
1006
  output: {
797
1007
  toolCalls: {
798
1008
  id: string;
@@ -815,33 +1025,18 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
815
1025
  name: string;
816
1026
  };
817
1027
  };
818
- } | {
819
- output: {
820
- error: string;
821
- code: string;
822
- };
823
- outputFormat: "json";
824
- status: 500;
825
- input: {
826
- param: {
827
- name: string;
828
- };
829
- };
830
1028
  };
831
1029
  };
832
1030
  } & {
833
1031
  "/v1/mcp-servers/:name/authorization": {
834
1032
  $put: {
835
1033
  output: {
836
- id: string;
837
- serverName: string;
838
- serverUrl: string;
839
- authorizationUrl: string;
840
- state: string;
841
- expiresAt: string;
1034
+ error: string;
1035
+ code: string;
1036
+ remediation?: string | undefined;
842
1037
  };
843
1038
  outputFormat: "json";
844
- status: 200;
1039
+ status: 404;
845
1040
  input: {
846
1041
  param: {
847
1042
  name: string;
@@ -851,9 +1046,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
851
1046
  output: {
852
1047
  error: string;
853
1048
  code: string;
1049
+ remediation?: string | undefined;
854
1050
  };
855
1051
  outputFormat: "json";
856
- status: 404;
1052
+ status: 409;
857
1053
  input: {
858
1054
  param: {
859
1055
  name: string;
@@ -863,9 +1059,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
863
1059
  output: {
864
1060
  error: string;
865
1061
  code: string;
1062
+ remediation?: string | undefined;
866
1063
  };
867
1064
  outputFormat: "json";
868
- status: 409;
1065
+ status: 503;
869
1066
  input: {
870
1067
  param: {
871
1068
  name: string;
@@ -875,9 +1072,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
875
1072
  output: {
876
1073
  error: string;
877
1074
  code: string;
1075
+ remediation?: string | undefined;
878
1076
  };
879
1077
  outputFormat: "json";
880
- status: 503;
1078
+ status: 504;
881
1079
  input: {
882
1080
  param: {
883
1081
  name: string;
@@ -885,11 +1083,15 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
885
1083
  };
886
1084
  } | {
887
1085
  output: {
888
- error: string;
889
- code: string;
1086
+ id: string;
1087
+ serverName: string;
1088
+ serverUrl: string;
1089
+ authorizationUrl: string;
1090
+ state: string;
1091
+ expiresAt: string;
890
1092
  };
891
1093
  outputFormat: "json";
892
- status: 504;
1094
+ status: 200;
893
1095
  input: {
894
1096
  param: {
895
1097
  name: string;
@@ -900,18 +1102,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
900
1102
  } & {
901
1103
  "/v1/mcp-servers/:name/authorization": {
902
1104
  $delete: {
903
- output: {};
904
- outputFormat: string;
905
- status: 204;
906
- input: {
907
- param: {
908
- name: string;
909
- };
910
- };
911
- } | {
912
1105
  output: {
913
1106
  error: string;
914
1107
  code: string;
1108
+ remediation?: string | undefined;
915
1109
  };
916
1110
  outputFormat: "json";
917
1111
  status: 404;
@@ -920,16 +1114,27 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
920
1114
  name: string;
921
1115
  };
922
1116
  };
1117
+ } | {
1118
+ output: {};
1119
+ outputFormat: string;
1120
+ status: 204;
1121
+ input: {
1122
+ param: {
1123
+ name: string;
1124
+ };
1125
+ };
923
1126
  };
924
1127
  };
925
1128
  } & {
926
1129
  "/v1/mcp-oauth/callback": {
927
1130
  $post: {
928
1131
  output: {
929
- accepted: true;
1132
+ error: string;
1133
+ code: string;
1134
+ remediation?: string | undefined;
930
1135
  };
931
1136
  outputFormat: "json";
932
- status: 202;
1137
+ status: 400;
933
1138
  input: {
934
1139
  json: {
935
1140
  state: string;
@@ -942,9 +1147,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
942
1147
  output: {
943
1148
  error: string;
944
1149
  code: string;
1150
+ remediation?: string | undefined;
945
1151
  };
946
1152
  outputFormat: "json";
947
- status: 400;
1153
+ status: 404;
948
1154
  input: {
949
1155
  json: {
950
1156
  state: string;
@@ -955,11 +1161,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
955
1161
  };
956
1162
  } | {
957
1163
  output: {
958
- error: string;
959
- code: string;
1164
+ accepted: true;
960
1165
  };
961
1166
  outputFormat: "json";
962
- status: 404;
1167
+ status: 202;
963
1168
  input: {
964
1169
  json: {
965
1170
  state: string;
@@ -1014,6 +1219,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1014
1219
  output: {
1015
1220
  error: string;
1016
1221
  code: string;
1222
+ remediation?: string | undefined;
1017
1223
  };
1018
1224
  outputFormat: "json";
1019
1225
  status: 400;
@@ -1053,6 +1259,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1053
1259
  output: {
1054
1260
  error: string;
1055
1261
  code: string;
1262
+ remediation?: string | undefined;
1056
1263
  };
1057
1264
  outputFormat: "json";
1058
1265
  status: 409;
@@ -1092,6 +1299,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1092
1299
  output: {
1093
1300
  error: string;
1094
1301
  code: string;
1302
+ remediation?: string | undefined;
1095
1303
  };
1096
1304
  outputFormat: "json";
1097
1305
  status: 500;
@@ -1131,6 +1339,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1131
1339
  output: {
1132
1340
  error: string;
1133
1341
  code: string;
1342
+ remediation?: string | undefined;
1134
1343
  };
1135
1344
  outputFormat: "json";
1136
1345
  status: 503;
@@ -1171,6 +1380,15 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1171
1380
  } & {
1172
1381
  "/v1/god-messages/session": {
1173
1382
  $get: {
1383
+ output: {
1384
+ error: string;
1385
+ code: string;
1386
+ remediation?: string | undefined;
1387
+ };
1388
+ outputFormat: "json";
1389
+ status: 404;
1390
+ input: {};
1391
+ } | {
1174
1392
  output: {
1175
1393
  id: string;
1176
1394
  status: "active" | "terminated";
@@ -1220,32 +1438,18 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1220
1438
  outputFormat: "json";
1221
1439
  status: 200;
1222
1440
  input: {};
1223
- } | {
1224
- output: {
1225
- error: string;
1226
- code: string;
1227
- };
1228
- outputFormat: "json";
1229
- status: 404;
1230
- input: {};
1231
1441
  };
1232
1442
  };
1233
1443
  } & {
1234
1444
  "/v1/god-messages/messages": {
1235
1445
  $get: {
1236
1446
  output: {
1237
- messages: {
1238
- id: string;
1239
- role: string;
1240
- parts: {
1241
- [x: string]: import("hono/utils/types").JSONValue;
1242
- }[];
1243
- }[];
1244
- nextCursor: string | null;
1245
- hasMore: boolean;
1447
+ error: string;
1448
+ code: string;
1449
+ remediation?: string | undefined;
1246
1450
  };
1247
1451
  outputFormat: "json";
1248
- status: 200;
1452
+ status: 400;
1249
1453
  input: {
1250
1454
  query: {
1251
1455
  limit?: unknown;
@@ -1256,9 +1460,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1256
1460
  output: {
1257
1461
  error: string;
1258
1462
  code: string;
1463
+ remediation?: string | undefined;
1259
1464
  };
1260
1465
  outputFormat: "json";
1261
- status: 400;
1466
+ status: 500;
1262
1467
  input: {
1263
1468
  query: {
1264
1469
  limit?: unknown;
@@ -1267,11 +1472,18 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1267
1472
  };
1268
1473
  } | {
1269
1474
  output: {
1270
- error: string;
1271
- code: string;
1475
+ messages: {
1476
+ id: string;
1477
+ role: string;
1478
+ parts: {
1479
+ [x: string]: import("hono/utils/types").JSONValue;
1480
+ }[];
1481
+ }[];
1482
+ nextCursor: string | null;
1483
+ hasMore: boolean;
1272
1484
  };
1273
1485
  outputFormat: "json";
1274
- status: 500;
1486
+ status: 200;
1275
1487
  input: {
1276
1488
  query: {
1277
1489
  limit?: unknown;
@@ -1283,16 +1495,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1283
1495
  } & {
1284
1496
  "/v1/god-messages/reset": {
1285
1497
  $post: {
1286
- output: {
1287
- sessionId: string;
1288
- };
1289
- outputFormat: "json";
1290
- status: 200;
1291
- input: {};
1292
- } | {
1293
1498
  output: {
1294
1499
  error: string;
1295
1500
  code: string;
1501
+ remediation?: string | undefined;
1296
1502
  };
1297
1503
  outputFormat: "json";
1298
1504
  status: 404;
@@ -1301,6 +1507,7 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1301
1507
  output: {
1302
1508
  error: string;
1303
1509
  code: string;
1510
+ remediation?: string | undefined;
1304
1511
  };
1305
1512
  outputFormat: "json";
1306
1513
  status: 409;
@@ -1309,42 +1516,30 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1309
1516
  output: {
1310
1517
  error: string;
1311
1518
  code: string;
1519
+ remediation?: string | undefined;
1312
1520
  };
1313
1521
  outputFormat: "json";
1314
1522
  status: 500;
1315
1523
  input: {};
1524
+ } | {
1525
+ output: {
1526
+ sessionId: string;
1527
+ };
1528
+ outputFormat: "json";
1529
+ status: 200;
1530
+ input: {};
1316
1531
  };
1317
1532
  };
1318
1533
  } & {
1319
1534
  "/v1/usage": {
1320
1535
  $get: {
1321
1536
  output: {
1322
- dataPoints: {
1323
- bucket: string | null;
1324
- splitKey: string | null;
1325
- callCount: number;
1326
- inputTokens: number;
1327
- outputTokens: number;
1328
- inputCacheWriteTokens: number;
1329
- inputCacheReadTokens: number;
1330
- ttftMs: number | null;
1331
- totalDurationMs: number | null;
1332
- errorCount: number;
1333
- id: string | null;
1334
- sessionId: string | null;
1335
- providerId: string | null;
1336
- endpointId: string | null;
1337
- modelId: string | null;
1338
- source: "chat" | "extension" | null;
1339
- extensionId: string | null;
1340
- finishReason: string | null;
1341
- errorType: string | null;
1342
- startedAt: string | null;
1343
- finishedAt: string | null;
1344
- }[];
1537
+ error: string;
1538
+ code: string;
1539
+ remediation?: string | undefined;
1345
1540
  };
1346
1541
  outputFormat: "json";
1347
- status: 200;
1542
+ status: 400;
1348
1543
  input: {
1349
1544
  query: {
1350
1545
  splitBy?: "endpoint" | "model" | "none" | "provider" | undefined;
@@ -1358,9 +1553,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1358
1553
  output: {
1359
1554
  error: string;
1360
1555
  code: string;
1556
+ remediation?: string | undefined;
1361
1557
  };
1362
1558
  outputFormat: "json";
1363
- status: 400;
1559
+ status: 500;
1364
1560
  input: {
1365
1561
  query: {
1366
1562
  splitBy?: "endpoint" | "model" | "none" | "provider" | undefined;
@@ -1372,11 +1568,33 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1372
1568
  };
1373
1569
  } | {
1374
1570
  output: {
1375
- error: string;
1376
- code: string;
1571
+ dataPoints: {
1572
+ bucket: string | null;
1573
+ splitKey: string | null;
1574
+ callCount: number;
1575
+ inputTokens: number;
1576
+ outputTokens: number;
1577
+ inputCacheWriteTokens: number;
1578
+ inputCacheReadTokens: number;
1579
+ ttftMs: number | null;
1580
+ totalDurationMs: number | null;
1581
+ errorCount: number;
1582
+ id: string | null;
1583
+ sessionId: string | null;
1584
+ providerType: string | null;
1585
+ providerId: string | null;
1586
+ endpointId: string | null;
1587
+ modelId: string | null;
1588
+ source: "chat" | "extension" | null;
1589
+ extensionId: string | null;
1590
+ finishReason: string | null;
1591
+ errorType: string | null;
1592
+ startedAt: string | null;
1593
+ finishedAt: string | null;
1594
+ }[];
1377
1595
  };
1378
1596
  outputFormat: "json";
1379
- status: 500;
1597
+ status: 200;
1380
1598
  input: {
1381
1599
  query: {
1382
1600
  splitBy?: "endpoint" | "model" | "none" | "provider" | undefined;
@@ -1389,875 +1607,588 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
1389
1607
  };
1390
1608
  };
1391
1609
  } & {
1392
- "/v1/providers": {
1610
+ "/v1/provider-types": {
1393
1611
  $get: {
1394
1612
  output: {
1395
- providers: ({
1396
- name: string;
1397
- preset: "anthropic" | "google" | "openai";
1398
- auth: {
1399
- apiKey?: string | undefined;
1400
- headers?: {
1401
- [x: string]: string;
1402
- } | undefined;
1613
+ providerTypes: {
1614
+ displayName: string;
1615
+ description: string;
1616
+ logoSvg?: string | undefined;
1617
+ documentationUrl?: string | undefined;
1618
+ capabilities: {
1619
+ modelDiscovery: boolean;
1620
+ connectivityTest: boolean;
1621
+ customModels: boolean;
1403
1622
  };
1404
- } | {
1405
- name: string;
1406
- endpoints: {
1407
- [x: string]: {
1408
- url: string;
1409
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1410
- auth: {
1411
- apiKey?: string | undefined;
1412
- headers?: {
1413
- [x: string]: string;
1414
- } | undefined;
1415
- };
1416
- };
1623
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1624
+ settingsSchema: {
1625
+ [x: string]: import("hono/utils/types").JSONValue;
1417
1626
  };
1418
- })[];
1627
+ }[];
1419
1628
  };
1420
1629
  outputFormat: "json";
1421
1630
  status: 200;
1422
1631
  input: {};
1423
- } | {
1424
- output: {
1425
- error: string;
1426
- code: string;
1427
- };
1428
- outputFormat: "json";
1429
- status: 500;
1430
- input: {};
1431
1632
  };
1432
1633
  };
1433
1634
  } & {
1434
- "/v1/providers": {
1635
+ "/v1/provider-types/:type/can-add": {
1435
1636
  $post: {
1436
- output: {
1437
- providers: ({
1438
- name: string;
1439
- preset: "anthropic" | "google" | "openai";
1440
- auth: {
1441
- apiKey?: string | undefined;
1442
- headers?: {
1443
- [x: string]: string;
1444
- } | undefined;
1445
- };
1446
- } | {
1447
- name: string;
1448
- endpoints: {
1449
- [x: string]: {
1450
- url: string;
1451
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1452
- auth: {
1453
- apiKey?: string | undefined;
1454
- headers?: {
1455
- [x: string]: string;
1456
- } | undefined;
1457
- };
1458
- };
1459
- };
1460
- })[];
1461
- };
1462
- outputFormat: "json";
1463
- status: 201;
1464
- input: {
1465
- json: {
1466
- name: string;
1467
- preset: "anthropic" | "google" | "openai";
1468
- auth: {
1469
- apiKey?: string | undefined;
1470
- headers?: Record<string, string> | undefined;
1471
- };
1472
- } | {
1473
- name: string;
1474
- endpoints: Record<string, {
1475
- url: string;
1476
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1477
- auth: {
1478
- apiKey?: string | undefined;
1479
- headers?: Record<string, string> | undefined;
1480
- };
1481
- }>;
1482
- };
1483
- };
1484
- } | {
1485
1637
  output: {
1486
1638
  error: string;
1487
1639
  code: string;
1640
+ remediation?: string | undefined;
1488
1641
  };
1489
1642
  outputFormat: "json";
1490
1643
  status: 400;
1491
- input: {
1492
- json: {
1493
- name: string;
1494
- preset: "anthropic" | "google" | "openai";
1495
- auth: {
1496
- apiKey?: string | undefined;
1497
- headers?: Record<string, string> | undefined;
1498
- };
1499
- } | {
1500
- name: string;
1501
- endpoints: Record<string, {
1502
- url: string;
1503
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1504
- auth: {
1505
- apiKey?: string | undefined;
1506
- headers?: Record<string, string> | undefined;
1507
- };
1508
- }>;
1509
- };
1510
- };
1511
- } | {
1512
- output: {
1513
- error: string;
1514
- code: string;
1515
- };
1516
- outputFormat: "json";
1517
- status: 409;
1518
- input: {
1519
- json: {
1520
- name: string;
1521
- preset: "anthropic" | "google" | "openai";
1522
- auth: {
1523
- apiKey?: string | undefined;
1524
- headers?: Record<string, string> | undefined;
1525
- };
1526
- } | {
1527
- name: string;
1528
- endpoints: Record<string, {
1529
- url: string;
1530
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1531
- auth: {
1532
- apiKey?: string | undefined;
1533
- headers?: Record<string, string> | undefined;
1534
- };
1535
- }>;
1536
- };
1537
- };
1538
- } | {
1539
- output: {
1540
- error: string;
1541
- code: string;
1542
- };
1543
- outputFormat: "json";
1544
- status: 500;
1545
- input: {
1546
- json: {
1547
- name: string;
1548
- preset: "anthropic" | "google" | "openai";
1549
- auth: {
1550
- apiKey?: string | undefined;
1551
- headers?: Record<string, string> | undefined;
1552
- };
1553
- } | {
1554
- name: string;
1555
- endpoints: Record<string, {
1556
- url: string;
1557
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1558
- auth: {
1559
- apiKey?: string | undefined;
1560
- headers?: Record<string, string> | undefined;
1561
- };
1562
- }>;
1563
- };
1564
- };
1565
- };
1566
- };
1567
- } & {
1568
- "/v1/providers/:name": {
1569
- $patch: {
1570
- output: {
1571
- providers: ({
1572
- name: string;
1573
- preset: "anthropic" | "google" | "openai";
1574
- auth: {
1575
- apiKey?: string | undefined;
1576
- headers?: {
1577
- [x: string]: string;
1578
- } | undefined;
1579
- };
1580
- } | {
1581
- name: string;
1582
- endpoints: {
1583
- [x: string]: {
1584
- url: string;
1585
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1586
- auth: {
1587
- apiKey?: string | undefined;
1588
- headers?: {
1589
- [x: string]: string;
1590
- } | undefined;
1591
- };
1592
- };
1593
- };
1594
- })[];
1595
- };
1596
- outputFormat: "json";
1597
- status: 200;
1598
1644
  input: {
1599
1645
  param: {
1600
- name: string;
1646
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1601
1647
  };
1602
1648
  } & {
1603
1649
  json: {
1604
- preset?: "anthropic" | "google" | "openai" | undefined;
1605
- auth?: {
1606
- apiKey?: string | undefined;
1607
- headers?: Record<string, string> | undefined;
1608
- } | undefined;
1609
- endpoints?: Record<string, {
1610
- url: string;
1611
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1612
- auth: {
1613
- apiKey?: string | undefined;
1614
- headers?: Record<string, string> | undefined;
1615
- };
1616
- }> | undefined;
1650
+ settings: Record<string, unknown>;
1617
1651
  };
1618
1652
  };
1619
1653
  } | {
1620
1654
  output: {
1621
1655
  error: string;
1622
1656
  code: string;
1657
+ remediation?: string | undefined;
1623
1658
  };
1624
1659
  outputFormat: "json";
1625
- status: 400;
1660
+ status: 500;
1626
1661
  input: {
1627
1662
  param: {
1628
- name: string;
1663
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1629
1664
  };
1630
1665
  } & {
1631
1666
  json: {
1632
- preset?: "anthropic" | "google" | "openai" | undefined;
1633
- auth?: {
1634
- apiKey?: string | undefined;
1635
- headers?: Record<string, string> | undefined;
1636
- } | undefined;
1637
- endpoints?: Record<string, {
1638
- url: string;
1639
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1640
- auth: {
1641
- apiKey?: string | undefined;
1642
- headers?: Record<string, string> | undefined;
1643
- };
1644
- }> | undefined;
1667
+ settings: Record<string, unknown>;
1645
1668
  };
1646
1669
  };
1647
1670
  } | {
1648
1671
  output: {
1649
- error: string;
1650
- code: string;
1651
- };
1652
- outputFormat: "json";
1653
- status: 404;
1654
- input: {
1655
- param: {
1656
- name: string;
1657
- };
1658
- } & {
1659
- json: {
1660
- preset?: "anthropic" | "google" | "openai" | undefined;
1661
- auth?: {
1662
- apiKey?: string | undefined;
1663
- headers?: Record<string, string> | undefined;
1664
- } | undefined;
1665
- endpoints?: Record<string, {
1666
- url: string;
1667
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1668
- auth: {
1669
- apiKey?: string | undefined;
1670
- headers?: Record<string, string> | undefined;
1672
+ ok: boolean;
1673
+ code?: string | undefined;
1674
+ message?: string | undefined;
1675
+ provider?: {
1676
+ id: string;
1677
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1678
+ metadata: {
1679
+ displayName: string;
1680
+ description: string;
1681
+ logoSvg?: string | undefined;
1682
+ documentationUrl?: string | undefined;
1683
+ capabilities: {
1684
+ modelDiscovery: boolean;
1685
+ connectivityTest: boolean;
1686
+ customModels: boolean;
1671
1687
  };
1672
- }> | undefined;
1673
- };
1674
- };
1675
- } | {
1676
- output: {
1677
- error: string;
1678
- code: string;
1688
+ };
1689
+ settings: {
1690
+ [x: string]: import("hono/utils/types").JSONValue;
1691
+ };
1692
+ operations: {
1693
+ update: {
1694
+ available: boolean;
1695
+ code?: string | undefined;
1696
+ message?: string | undefined;
1697
+ remediation?: string | undefined;
1698
+ };
1699
+ remove: {
1700
+ available: boolean;
1701
+ code?: string | undefined;
1702
+ message?: string | undefined;
1703
+ remediation?: string | undefined;
1704
+ };
1705
+ };
1706
+ } | undefined;
1679
1707
  };
1680
1708
  outputFormat: "json";
1681
- status: 500;
1709
+ status: 200;
1682
1710
  input: {
1683
1711
  param: {
1684
- name: string;
1712
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1685
1713
  };
1686
1714
  } & {
1687
1715
  json: {
1688
- preset?: "anthropic" | "google" | "openai" | undefined;
1689
- auth?: {
1690
- apiKey?: string | undefined;
1691
- headers?: Record<string, string> | undefined;
1692
- } | undefined;
1693
- endpoints?: Record<string, {
1694
- url: string;
1695
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1696
- auth: {
1697
- apiKey?: string | undefined;
1698
- headers?: Record<string, string> | undefined;
1699
- };
1700
- }> | undefined;
1716
+ settings: Record<string, unknown>;
1701
1717
  };
1702
1718
  };
1703
1719
  };
1704
1720
  };
1705
1721
  } & {
1706
- "/v1/providers/:name": {
1707
- $delete: {
1722
+ "/v1/providers": {
1723
+ $get: {
1708
1724
  output: {
1709
- providers: ({
1710
- name: string;
1711
- preset: "anthropic" | "google" | "openai";
1712
- auth: {
1713
- apiKey?: string | undefined;
1714
- headers?: {
1715
- [x: string]: string;
1716
- } | undefined;
1725
+ providers: {
1726
+ id: string;
1727
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1728
+ metadata: {
1729
+ displayName: string;
1730
+ description: string;
1731
+ logoSvg?: string | undefined;
1732
+ documentationUrl?: string | undefined;
1733
+ capabilities: {
1734
+ modelDiscovery: boolean;
1735
+ connectivityTest: boolean;
1736
+ customModels: boolean;
1737
+ };
1717
1738
  };
1718
- } | {
1719
- name: string;
1720
- endpoints: {
1721
- [x: string]: {
1722
- url: string;
1723
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1724
- auth: {
1725
- apiKey?: string | undefined;
1726
- headers?: {
1727
- [x: string]: string;
1728
- } | undefined;
1729
- };
1739
+ settings: {
1740
+ [x: string]: import("hono/utils/types").JSONValue;
1741
+ };
1742
+ operations: {
1743
+ update: {
1744
+ available: boolean;
1745
+ code?: string | undefined;
1746
+ message?: string | undefined;
1747
+ remediation?: string | undefined;
1748
+ };
1749
+ remove: {
1750
+ available: boolean;
1751
+ code?: string | undefined;
1752
+ message?: string | undefined;
1753
+ remediation?: string | undefined;
1730
1754
  };
1731
1755
  };
1732
- })[];
1756
+ }[];
1733
1757
  };
1734
1758
  outputFormat: "json";
1735
1759
  status: 200;
1736
- input: {
1737
- param: {
1738
- name: string;
1739
- };
1740
- };
1741
- } | {
1742
- output: {
1743
- error: string;
1744
- code: string;
1745
- };
1746
- outputFormat: "json";
1747
- status: 400;
1748
- input: {
1749
- param: {
1750
- name: string;
1751
- };
1752
- };
1753
- } | {
1754
- output: {
1755
- error: string;
1756
- code: string;
1757
- };
1758
- outputFormat: "json";
1759
- status: 404;
1760
- input: {
1761
- param: {
1762
- name: string;
1763
- };
1764
- };
1765
- } | {
1766
- output: {
1767
- error: string;
1768
- code: string;
1769
- };
1770
- outputFormat: "json";
1771
- status: 409;
1772
- input: {
1773
- param: {
1774
- name: string;
1775
- };
1776
- };
1777
- } | {
1778
- output: {
1779
- error: string;
1780
- code: string;
1781
- };
1782
- outputFormat: "json";
1783
- status: 500;
1784
- input: {
1785
- param: {
1786
- name: string;
1787
- };
1788
- };
1760
+ input: {};
1789
1761
  };
1790
1762
  };
1791
1763
  } & {
1792
- "/v1/providers/:name/endpoints": {
1793
- $get: {
1794
- output: {
1795
- endpoints: {
1796
- name: string;
1797
- url: string;
1798
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1799
- auth: {
1800
- apiKey?: string | undefined;
1801
- headers?: {
1802
- [x: string]: string;
1803
- } | undefined;
1804
- };
1805
- }[];
1806
- };
1807
- outputFormat: "json";
1808
- status: 200;
1809
- input: {
1810
- param: {
1811
- name: string;
1812
- };
1813
- };
1814
- } | {
1764
+ "/v1/providers": {
1765
+ $post: {
1815
1766
  output: {
1816
1767
  error: string;
1817
1768
  code: string;
1769
+ remediation?: string | undefined;
1818
1770
  };
1819
1771
  outputFormat: "json";
1820
1772
  status: 400;
1821
1773
  input: {
1822
- param: {
1823
- name: string;
1774
+ json: {
1775
+ id: string;
1776
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1777
+ settings: Record<string, unknown>;
1824
1778
  };
1825
1779
  };
1826
1780
  } | {
1827
1781
  output: {
1828
1782
  error: string;
1829
1783
  code: string;
1784
+ remediation?: string | undefined;
1830
1785
  };
1831
1786
  outputFormat: "json";
1832
- status: 404;
1787
+ status: 409;
1833
1788
  input: {
1834
- param: {
1835
- name: string;
1789
+ json: {
1790
+ id: string;
1791
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1792
+ settings: Record<string, unknown>;
1836
1793
  };
1837
1794
  };
1838
1795
  } | {
1839
1796
  output: {
1840
1797
  error: string;
1841
1798
  code: string;
1799
+ remediation?: string | undefined;
1842
1800
  };
1843
1801
  outputFormat: "json";
1844
1802
  status: 500;
1845
1803
  input: {
1846
- param: {
1847
- name: string;
1804
+ json: {
1805
+ id: string;
1806
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1807
+ settings: Record<string, unknown>;
1848
1808
  };
1849
1809
  };
1850
- };
1851
- };
1852
- } & {
1853
- "/v1/providers/:name/endpoints": {
1854
- $post: {
1810
+ } | {
1855
1811
  output: {
1856
- endpoints: {
1857
- name: string;
1858
- url: string;
1859
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1860
- auth: {
1861
- apiKey?: string | undefined;
1862
- headers?: {
1863
- [x: string]: string;
1864
- } | undefined;
1812
+ ok: boolean;
1813
+ code?: string | undefined;
1814
+ message?: string | undefined;
1815
+ provider?: {
1816
+ id: string;
1817
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1818
+ metadata: {
1819
+ displayName: string;
1820
+ description: string;
1821
+ logoSvg?: string | undefined;
1822
+ documentationUrl?: string | undefined;
1823
+ capabilities: {
1824
+ modelDiscovery: boolean;
1825
+ connectivityTest: boolean;
1826
+ customModels: boolean;
1827
+ };
1865
1828
  };
1866
- }[];
1829
+ settings: {
1830
+ [x: string]: import("hono/utils/types").JSONValue;
1831
+ };
1832
+ operations: {
1833
+ update: {
1834
+ available: boolean;
1835
+ code?: string | undefined;
1836
+ message?: string | undefined;
1837
+ remediation?: string | undefined;
1838
+ };
1839
+ remove: {
1840
+ available: boolean;
1841
+ code?: string | undefined;
1842
+ message?: string | undefined;
1843
+ remediation?: string | undefined;
1844
+ };
1845
+ };
1846
+ } | undefined;
1867
1847
  };
1868
1848
  outputFormat: "json";
1869
1849
  status: 201;
1870
1850
  input: {
1871
- param: {
1872
- name: string;
1873
- };
1874
- } & {
1875
1851
  json: {
1876
- name: string;
1877
- url: string;
1878
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1879
- auth: {
1880
- apiKey?: string | undefined;
1881
- headers?: Record<string, string> | undefined;
1882
- };
1852
+ id: string;
1853
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1854
+ settings: Record<string, unknown>;
1883
1855
  };
1884
1856
  };
1885
- } | {
1857
+ };
1858
+ };
1859
+ } & {
1860
+ "/v1/providers/:id": {
1861
+ $patch: {
1886
1862
  output: {
1887
1863
  error: string;
1888
1864
  code: string;
1865
+ remediation?: string | undefined;
1889
1866
  };
1890
1867
  outputFormat: "json";
1891
1868
  status: 400;
1892
1869
  input: {
1893
1870
  param: {
1894
- name: string;
1871
+ id: string;
1895
1872
  };
1896
1873
  } & {
1897
1874
  json: {
1898
- name: string;
1899
- url: string;
1900
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1901
- auth: {
1902
- apiKey?: string | undefined;
1903
- headers?: Record<string, string> | undefined;
1904
- };
1875
+ settings?: Record<string, unknown> | undefined;
1905
1876
  };
1906
1877
  };
1907
1878
  } | {
1908
1879
  output: {
1909
1880
  error: string;
1910
1881
  code: string;
1882
+ remediation?: string | undefined;
1911
1883
  };
1912
1884
  outputFormat: "json";
1913
1885
  status: 404;
1914
1886
  input: {
1915
1887
  param: {
1916
- name: string;
1888
+ id: string;
1917
1889
  };
1918
1890
  } & {
1919
1891
  json: {
1920
- name: string;
1921
- url: string;
1922
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1923
- auth: {
1924
- apiKey?: string | undefined;
1925
- headers?: Record<string, string> | undefined;
1926
- };
1892
+ settings?: Record<string, unknown> | undefined;
1927
1893
  };
1928
1894
  };
1929
1895
  } | {
1930
1896
  output: {
1931
1897
  error: string;
1932
1898
  code: string;
1899
+ remediation?: string | undefined;
1933
1900
  };
1934
1901
  outputFormat: "json";
1935
- status: 409;
1902
+ status: 500;
1936
1903
  input: {
1937
1904
  param: {
1938
- name: string;
1905
+ id: string;
1939
1906
  };
1940
1907
  } & {
1941
1908
  json: {
1942
- name: string;
1943
- url: string;
1944
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1945
- auth: {
1946
- apiKey?: string | undefined;
1947
- headers?: Record<string, string> | undefined;
1948
- };
1909
+ settings?: Record<string, unknown> | undefined;
1949
1910
  };
1950
1911
  };
1951
1912
  } | {
1952
1913
  output: {
1953
- error: string;
1954
- code: string;
1955
- };
1956
- outputFormat: "json";
1957
- status: 500;
1958
- input: {
1959
- param: {
1960
- name: string;
1961
- };
1962
- } & {
1963
- json: {
1964
- name: string;
1965
- url: string;
1966
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1967
- auth: {
1968
- apiKey?: string | undefined;
1969
- headers?: Record<string, string> | undefined;
1914
+ ok: boolean;
1915
+ code?: string | undefined;
1916
+ message?: string | undefined;
1917
+ provider?: {
1918
+ id: string;
1919
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
1920
+ metadata: {
1921
+ displayName: string;
1922
+ description: string;
1923
+ logoSvg?: string | undefined;
1924
+ documentationUrl?: string | undefined;
1925
+ capabilities: {
1926
+ modelDiscovery: boolean;
1927
+ connectivityTest: boolean;
1928
+ customModels: boolean;
1929
+ };
1970
1930
  };
1971
- };
1972
- };
1973
- };
1974
- };
1975
- } & {
1976
- "/v1/providers/:name/endpoints/:endpointName": {
1977
- $patch: {
1978
- output: {
1979
- endpoints: {
1980
- name: string;
1981
- url: string;
1982
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
1983
- auth: {
1984
- apiKey?: string | undefined;
1985
- headers?: {
1986
- [x: string]: string;
1987
- } | undefined;
1931
+ settings: {
1932
+ [x: string]: import("hono/utils/types").JSONValue;
1988
1933
  };
1989
- }[];
1934
+ operations: {
1935
+ update: {
1936
+ available: boolean;
1937
+ code?: string | undefined;
1938
+ message?: string | undefined;
1939
+ remediation?: string | undefined;
1940
+ };
1941
+ remove: {
1942
+ available: boolean;
1943
+ code?: string | undefined;
1944
+ message?: string | undefined;
1945
+ remediation?: string | undefined;
1946
+ };
1947
+ };
1948
+ } | undefined;
1990
1949
  };
1991
1950
  outputFormat: "json";
1992
1951
  status: 200;
1993
1952
  input: {
1994
1953
  param: {
1995
- name: string;
1996
- endpointName: string;
1954
+ id: string;
1997
1955
  };
1998
1956
  } & {
1999
1957
  json: {
2000
- url?: string | undefined;
2001
- format?: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions" | undefined;
2002
- auth?: {
2003
- apiKey?: string | undefined;
2004
- headers?: Record<string, string> | undefined;
2005
- } | undefined;
1958
+ settings?: Record<string, unknown> | undefined;
2006
1959
  };
2007
1960
  };
2008
- } | {
1961
+ };
1962
+ };
1963
+ } & {
1964
+ "/v1/providers/:id": {
1965
+ $delete: {
2009
1966
  output: {
2010
1967
  error: string;
2011
1968
  code: string;
1969
+ remediation?: string | undefined;
2012
1970
  };
2013
1971
  outputFormat: "json";
2014
1972
  status: 400;
2015
1973
  input: {
2016
1974
  param: {
2017
- name: string;
2018
- endpointName: string;
2019
- };
2020
- } & {
2021
- json: {
2022
- url?: string | undefined;
2023
- format?: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions" | undefined;
2024
- auth?: {
2025
- apiKey?: string | undefined;
2026
- headers?: Record<string, string> | undefined;
2027
- } | undefined;
1975
+ id: string;
2028
1976
  };
2029
1977
  };
2030
1978
  } | {
2031
1979
  output: {
2032
1980
  error: string;
2033
1981
  code: string;
1982
+ remediation?: string | undefined;
2034
1983
  };
2035
1984
  outputFormat: "json";
2036
1985
  status: 404;
2037
1986
  input: {
2038
1987
  param: {
2039
- name: string;
2040
- endpointName: string;
2041
- };
2042
- } & {
2043
- json: {
2044
- url?: string | undefined;
2045
- format?: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions" | undefined;
2046
- auth?: {
2047
- apiKey?: string | undefined;
2048
- headers?: Record<string, string> | undefined;
2049
- } | undefined;
1988
+ id: string;
2050
1989
  };
2051
1990
  };
2052
1991
  } | {
2053
1992
  output: {
2054
1993
  error: string;
2055
1994
  code: string;
1995
+ remediation?: string | undefined;
2056
1996
  };
2057
1997
  outputFormat: "json";
2058
- status: 500;
1998
+ status: 409;
2059
1999
  input: {
2060
2000
  param: {
2061
- name: string;
2062
- endpointName: string;
2063
- };
2064
- } & {
2065
- json: {
2066
- url?: string | undefined;
2067
- format?: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions" | undefined;
2068
- auth?: {
2069
- apiKey?: string | undefined;
2070
- headers?: Record<string, string> | undefined;
2071
- } | undefined;
2001
+ id: string;
2072
2002
  };
2073
2003
  };
2074
- };
2075
- };
2076
- } & {
2077
- "/v1/providers/:name/endpoints/:endpointName": {
2078
- $delete: {
2004
+ } | {
2079
2005
  output: {
2080
- endpoints: {
2081
- name: string;
2082
- url: string;
2083
- format: "anthropic" | "chat-completions" | "google" | "messages" | "open-responses" | "openai" | "realtime" | "speech" | "transcriptions";
2084
- auth: {
2085
- apiKey?: string | undefined;
2086
- headers?: {
2087
- [x: string]: string;
2088
- } | undefined;
2089
- };
2090
- }[];
2006
+ error: string;
2007
+ code: string;
2008
+ remediation?: string | undefined;
2091
2009
  };
2092
2010
  outputFormat: "json";
2093
- status: 200;
2011
+ status: 500;
2094
2012
  input: {
2095
2013
  param: {
2096
- name: string;
2097
- endpointName: string;
2014
+ id: string;
2098
2015
  };
2099
2016
  };
2100
2017
  } | {
2101
2018
  output: {
2102
- error: string;
2103
- code: string;
2019
+ ok: boolean;
2020
+ code?: string | undefined;
2021
+ message?: string | undefined;
2022
+ provider?: {
2023
+ id: string;
2024
+ type: "alibaba-qwen" | "amazon-bedrock" | "anthropic" | "anthropic-messages" | "azure-openai" | "chat-completions" | "chatgpt-codex-subscription" | "deepseek" | "glm-coding-plan" | "google-gemini" | "google-generative" | "google-vertex" | "minimax" | "minimax-coding-plan" | "mistral" | "moonshot" | "ollama" | "openai" | "opencode-go" | "opencode-zen" | "openrouter" | "responses" | "xai" | "xiaomi-mimo" | "zai";
2025
+ metadata: {
2026
+ displayName: string;
2027
+ description: string;
2028
+ logoSvg?: string | undefined;
2029
+ documentationUrl?: string | undefined;
2030
+ capabilities: {
2031
+ modelDiscovery: boolean;
2032
+ connectivityTest: boolean;
2033
+ customModels: boolean;
2034
+ };
2035
+ };
2036
+ settings: {
2037
+ [x: string]: import("hono/utils/types").JSONValue;
2038
+ };
2039
+ operations: {
2040
+ update: {
2041
+ available: boolean;
2042
+ code?: string | undefined;
2043
+ message?: string | undefined;
2044
+ remediation?: string | undefined;
2045
+ };
2046
+ remove: {
2047
+ available: boolean;
2048
+ code?: string | undefined;
2049
+ message?: string | undefined;
2050
+ remediation?: string | undefined;
2051
+ };
2052
+ };
2053
+ } | undefined;
2104
2054
  };
2105
2055
  outputFormat: "json";
2106
- status: 400;
2056
+ status: 200;
2107
2057
  input: {
2108
2058
  param: {
2109
- name: string;
2110
- endpointName: string;
2059
+ id: string;
2111
2060
  };
2112
2061
  };
2113
- } | {
2062
+ };
2063
+ };
2064
+ } & {
2065
+ "/v1/providers/:id/test": {
2066
+ $post: {
2114
2067
  output: {
2115
2068
  error: string;
2116
2069
  code: string;
2070
+ remediation?: string | undefined;
2117
2071
  };
2118
2072
  outputFormat: "json";
2119
- status: 404;
2073
+ status: 400;
2120
2074
  input: {
2121
2075
  param: {
2122
- name: string;
2123
- endpointName: string;
2076
+ id: string;
2124
2077
  };
2125
2078
  };
2126
2079
  } | {
2127
2080
  output: {
2128
2081
  error: string;
2129
2082
  code: string;
2083
+ remediation?: string | undefined;
2130
2084
  };
2131
2085
  outputFormat: "json";
2132
- status: 409;
2086
+ status: 404;
2133
2087
  input: {
2134
2088
  param: {
2135
- name: string;
2136
- endpointName: string;
2089
+ id: string;
2137
2090
  };
2138
2091
  };
2139
2092
  } | {
2140
2093
  output: {
2141
2094
  error: string;
2142
2095
  code: string;
2096
+ remediation?: string | undefined;
2143
2097
  };
2144
2098
  outputFormat: "json";
2145
2099
  status: 500;
2146
2100
  input: {
2147
2101
  param: {
2148
- name: string;
2149
- endpointName: string;
2102
+ id: string;
2150
2103
  };
2151
2104
  };
2152
- };
2153
- };
2154
- } & {
2155
- "/v1/providers/:name/known-models": {
2156
- $get: {
2105
+ } | {
2157
2106
  output: {
2158
- models: {
2159
- modelId: string;
2160
- endpointName?: string | undefined;
2161
- displayName?: string | undefined;
2162
- contextSize?: number | undefined;
2163
- capabilities?: {
2164
- input?: {
2165
- image?: {
2166
- mediaTypes: string[];
2167
- maxBytes: number;
2168
- } | undefined;
2169
- audio?: {
2170
- mediaTypes: string[];
2171
- maxBytes: number;
2172
- } | undefined;
2173
- } | undefined;
2174
- voice?: {
2175
- sts?: boolean | undefined;
2176
- tts?: boolean | undefined;
2177
- stt?: boolean | undefined;
2178
- } | undefined;
2179
- } | undefined;
2180
- }[];
2107
+ latencyMs: number;
2108
+ target?: string | undefined;
2181
2109
  };
2182
2110
  outputFormat: "json";
2183
2111
  status: 200;
2184
2112
  input: {
2185
2113
  param: {
2186
- name: string;
2187
- };
2188
- } & {
2189
- query: {
2190
- endpointName?: string | undefined;
2114
+ id: string;
2191
2115
  };
2192
2116
  };
2193
- } | {
2117
+ };
2118
+ };
2119
+ } & {
2120
+ "/v1/providers/:id/models": {
2121
+ $get: {
2194
2122
  output: {
2195
2123
  error: string;
2196
2124
  code: string;
2125
+ remediation?: string | undefined;
2197
2126
  };
2198
2127
  outputFormat: "json";
2199
2128
  status: 400;
2200
2129
  input: {
2201
2130
  param: {
2202
- name: string;
2131
+ id: string;
2203
2132
  };
2204
2133
  } & {
2205
2134
  query: {
2206
- endpointName?: string | undefined;
2135
+ refresh?: "false" | "true" | undefined;
2207
2136
  };
2208
2137
  };
2209
2138
  } | {
2210
2139
  output: {
2211
2140
  error: string;
2212
2141
  code: string;
2142
+ remediation?: string | undefined;
2213
2143
  };
2214
2144
  outputFormat: "json";
2215
2145
  status: 404;
2216
2146
  input: {
2217
2147
  param: {
2218
- name: string;
2148
+ id: string;
2219
2149
  };
2220
2150
  } & {
2221
2151
  query: {
2222
- endpointName?: string | undefined;
2152
+ refresh?: "false" | "true" | undefined;
2223
2153
  };
2224
2154
  };
2225
2155
  } | {
2226
2156
  output: {
2227
2157
  error: string;
2228
2158
  code: string;
2159
+ remediation?: string | undefined;
2229
2160
  };
2230
2161
  outputFormat: "json";
2231
2162
  status: 500;
2232
2163
  input: {
2233
2164
  param: {
2234
- name: string;
2165
+ id: string;
2235
2166
  };
2236
2167
  } & {
2237
2168
  query: {
2238
- endpointName?: string | undefined;
2169
+ refresh?: "false" | "true" | undefined;
2239
2170
  };
2240
2171
  };
2241
- };
2242
- };
2243
- } & {
2244
- "/v1/providers/:name/known-models": {
2245
- $post: {
2172
+ } | {
2246
2173
  output: {
2247
2174
  models: {
2248
2175
  modelId: string;
2249
- endpointName?: string | undefined;
2176
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2250
2177
  displayName?: string | undefined;
2251
2178
  contextSize?: number | undefined;
2252
2179
  capabilities?: {
2253
2180
  input?: {
2254
2181
  image?: {
2255
- mediaTypes: string[];
2256
- maxBytes: number;
2182
+ mediaTypes?: string[] | undefined;
2183
+ maxBytes?: number | undefined;
2184
+ maxWidth?: number | undefined;
2185
+ maxHeight?: number | undefined;
2186
+ maxTotalPixels?: number | undefined;
2257
2187
  } | undefined;
2258
2188
  audio?: {
2259
- mediaTypes: string[];
2260
- maxBytes: number;
2189
+ mediaTypes?: string[] | undefined;
2190
+ maxBytes?: number | undefined;
2191
+ maxLengthSeconds?: number | undefined;
2261
2192
  } | undefined;
2262
2193
  } | undefined;
2263
2194
  voice?: {
@@ -2265,66 +2196,63 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2265
2196
  tts?: boolean | undefined;
2266
2197
  stt?: boolean | undefined;
2267
2198
  } | undefined;
2199
+ tools?: boolean | undefined;
2200
+ reasoning?: boolean | undefined;
2268
2201
  } | undefined;
2202
+ source: "discovered" | "manual" | "merged";
2203
+ provenance?: {
2204
+ source: "discovered" | "provider-exact" | "provider-family" | "shared-catalog" | "user";
2205
+ documentationUrl?: string | undefined;
2206
+ reviewedAt?: string | undefined;
2207
+ }[] | undefined;
2269
2208
  }[];
2270
2209
  };
2271
2210
  outputFormat: "json";
2272
- status: 201;
2211
+ status: 200;
2273
2212
  input: {
2274
2213
  param: {
2275
- name: string;
2214
+ id: string;
2276
2215
  };
2277
2216
  } & {
2278
- json: {
2279
- modelId: string;
2280
- endpointName?: string | undefined;
2281
- displayName?: string | undefined;
2282
- contextSize?: number | undefined;
2283
- capabilities?: {
2284
- input?: {
2285
- image?: {
2286
- mediaTypes: string[];
2287
- maxBytes: number;
2288
- } | undefined;
2289
- audio?: {
2290
- mediaTypes: string[];
2291
- maxBytes: number;
2292
- } | undefined;
2293
- } | undefined;
2294
- voice?: {
2295
- sts?: boolean | undefined;
2296
- tts?: boolean | undefined;
2297
- stt?: boolean | undefined;
2298
- } | undefined;
2299
- } | undefined;
2217
+ query: {
2218
+ refresh?: "false" | "true" | undefined;
2300
2219
  };
2301
2220
  };
2302
- } | {
2221
+ };
2222
+ };
2223
+ } & {
2224
+ "/v1/providers/:id/models": {
2225
+ $post: {
2303
2226
  output: {
2304
2227
  error: string;
2305
2228
  code: string;
2229
+ remediation?: string | undefined;
2306
2230
  };
2307
2231
  outputFormat: "json";
2308
2232
  status: 400;
2309
2233
  input: {
2310
2234
  param: {
2311
- name: string;
2235
+ id: string;
2312
2236
  };
2313
2237
  } & {
2314
2238
  json: {
2315
2239
  modelId: string;
2316
- endpointName?: string | undefined;
2240
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2317
2241
  displayName?: string | undefined;
2318
2242
  contextSize?: number | undefined;
2319
2243
  capabilities?: {
2320
2244
  input?: {
2321
2245
  image?: {
2322
- mediaTypes: string[];
2323
- maxBytes: number;
2246
+ mediaTypes?: string[] | undefined;
2247
+ maxBytes?: number | undefined;
2248
+ maxWidth?: number | undefined;
2249
+ maxHeight?: number | undefined;
2250
+ maxTotalPixels?: number | undefined;
2324
2251
  } | undefined;
2325
2252
  audio?: {
2326
- mediaTypes: string[];
2327
- maxBytes: number;
2253
+ mediaTypes?: string[] | undefined;
2254
+ maxBytes?: number | undefined;
2255
+ maxLengthSeconds?: number | undefined;
2328
2256
  } | undefined;
2329
2257
  } | undefined;
2330
2258
  voice?: {
@@ -2332,6 +2260,8 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2332
2260
  tts?: boolean | undefined;
2333
2261
  stt?: boolean | undefined;
2334
2262
  } | undefined;
2263
+ tools?: boolean | undefined;
2264
+ reasoning?: boolean | undefined;
2335
2265
  } | undefined;
2336
2266
  };
2337
2267
  };
@@ -2339,28 +2269,33 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2339
2269
  output: {
2340
2270
  error: string;
2341
2271
  code: string;
2272
+ remediation?: string | undefined;
2342
2273
  };
2343
2274
  outputFormat: "json";
2344
2275
  status: 404;
2345
2276
  input: {
2346
2277
  param: {
2347
- name: string;
2278
+ id: string;
2348
2279
  };
2349
2280
  } & {
2350
2281
  json: {
2351
2282
  modelId: string;
2352
- endpointName?: string | undefined;
2283
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2353
2284
  displayName?: string | undefined;
2354
2285
  contextSize?: number | undefined;
2355
2286
  capabilities?: {
2356
2287
  input?: {
2357
2288
  image?: {
2358
- mediaTypes: string[];
2359
- maxBytes: number;
2289
+ mediaTypes?: string[] | undefined;
2290
+ maxBytes?: number | undefined;
2291
+ maxWidth?: number | undefined;
2292
+ maxHeight?: number | undefined;
2293
+ maxTotalPixels?: number | undefined;
2360
2294
  } | undefined;
2361
2295
  audio?: {
2362
- mediaTypes: string[];
2363
- maxBytes: number;
2296
+ mediaTypes?: string[] | undefined;
2297
+ maxBytes?: number | undefined;
2298
+ maxLengthSeconds?: number | undefined;
2364
2299
  } | undefined;
2365
2300
  } | undefined;
2366
2301
  voice?: {
@@ -2368,6 +2303,8 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2368
2303
  tts?: boolean | undefined;
2369
2304
  stt?: boolean | undefined;
2370
2305
  } | undefined;
2306
+ tools?: boolean | undefined;
2307
+ reasoning?: boolean | undefined;
2371
2308
  } | undefined;
2372
2309
  };
2373
2310
  };
@@ -2375,28 +2312,33 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2375
2312
  output: {
2376
2313
  error: string;
2377
2314
  code: string;
2315
+ remediation?: string | undefined;
2378
2316
  };
2379
2317
  outputFormat: "json";
2380
2318
  status: 409;
2381
2319
  input: {
2382
2320
  param: {
2383
- name: string;
2321
+ id: string;
2384
2322
  };
2385
2323
  } & {
2386
2324
  json: {
2387
2325
  modelId: string;
2388
- endpointName?: string | undefined;
2326
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2389
2327
  displayName?: string | undefined;
2390
2328
  contextSize?: number | undefined;
2391
2329
  capabilities?: {
2392
2330
  input?: {
2393
2331
  image?: {
2394
- mediaTypes: string[];
2395
- maxBytes: number;
2332
+ mediaTypes?: string[] | undefined;
2333
+ maxBytes?: number | undefined;
2334
+ maxWidth?: number | undefined;
2335
+ maxHeight?: number | undefined;
2336
+ maxTotalPixels?: number | undefined;
2396
2337
  } | undefined;
2397
2338
  audio?: {
2398
- mediaTypes: string[];
2399
- maxBytes: number;
2339
+ mediaTypes?: string[] | undefined;
2340
+ maxBytes?: number | undefined;
2341
+ maxLengthSeconds?: number | undefined;
2400
2342
  } | undefined;
2401
2343
  } | undefined;
2402
2344
  voice?: {
@@ -2404,6 +2346,8 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2404
2346
  tts?: boolean | undefined;
2405
2347
  stt?: boolean | undefined;
2406
2348
  } | undefined;
2349
+ tools?: boolean | undefined;
2350
+ reasoning?: boolean | undefined;
2407
2351
  } | undefined;
2408
2352
  };
2409
2353
  };
@@ -2411,28 +2355,33 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2411
2355
  output: {
2412
2356
  error: string;
2413
2357
  code: string;
2358
+ remediation?: string | undefined;
2414
2359
  };
2415
2360
  outputFormat: "json";
2416
2361
  status: 500;
2417
2362
  input: {
2418
2363
  param: {
2419
- name: string;
2364
+ id: string;
2420
2365
  };
2421
2366
  } & {
2422
2367
  json: {
2423
2368
  modelId: string;
2424
- endpointName?: string | undefined;
2369
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2425
2370
  displayName?: string | undefined;
2426
2371
  contextSize?: number | undefined;
2427
2372
  capabilities?: {
2428
2373
  input?: {
2429
2374
  image?: {
2430
- mediaTypes: string[];
2431
- maxBytes: number;
2375
+ mediaTypes?: string[] | undefined;
2376
+ maxBytes?: number | undefined;
2377
+ maxWidth?: number | undefined;
2378
+ maxHeight?: number | undefined;
2379
+ maxTotalPixels?: number | undefined;
2432
2380
  } | undefined;
2433
2381
  audio?: {
2434
- mediaTypes: string[];
2435
- maxBytes: number;
2382
+ mediaTypes?: string[] | undefined;
2383
+ maxBytes?: number | undefined;
2384
+ maxLengthSeconds?: number | undefined;
2436
2385
  } | undefined;
2437
2386
  } | undefined;
2438
2387
  voice?: {
@@ -2440,29 +2389,31 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2440
2389
  tts?: boolean | undefined;
2441
2390
  stt?: boolean | undefined;
2442
2391
  } | undefined;
2392
+ tools?: boolean | undefined;
2393
+ reasoning?: boolean | undefined;
2443
2394
  } | undefined;
2444
2395
  };
2445
2396
  };
2446
- };
2447
- };
2448
- } & {
2449
- "/v1/providers/:name/known-models/:modelId": {
2450
- $patch: {
2397
+ } | {
2451
2398
  output: {
2452
2399
  models: {
2453
2400
  modelId: string;
2454
- endpointName?: string | undefined;
2401
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2455
2402
  displayName?: string | undefined;
2456
2403
  contextSize?: number | undefined;
2457
2404
  capabilities?: {
2458
2405
  input?: {
2459
2406
  image?: {
2460
- mediaTypes: string[];
2461
- maxBytes: number;
2407
+ mediaTypes?: string[] | undefined;
2408
+ maxBytes?: number | undefined;
2409
+ maxWidth?: number | undefined;
2410
+ maxHeight?: number | undefined;
2411
+ maxTotalPixels?: number | undefined;
2462
2412
  } | undefined;
2463
2413
  audio?: {
2464
- mediaTypes: string[];
2465
- maxBytes: number;
2414
+ mediaTypes?: string[] | undefined;
2415
+ maxBytes?: number | undefined;
2416
+ maxLengthSeconds?: number | undefined;
2466
2417
  } | undefined;
2467
2418
  } | undefined;
2468
2419
  voice?: {
@@ -2470,33 +2421,42 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2470
2421
  tts?: boolean | undefined;
2471
2422
  stt?: boolean | undefined;
2472
2423
  } | undefined;
2424
+ tools?: boolean | undefined;
2425
+ reasoning?: boolean | undefined;
2473
2426
  } | undefined;
2427
+ source: "discovered" | "manual" | "merged";
2428
+ provenance?: {
2429
+ source: "discovered" | "provider-exact" | "provider-family" | "shared-catalog" | "user";
2430
+ documentationUrl?: string | undefined;
2431
+ reviewedAt?: string | undefined;
2432
+ }[] | undefined;
2474
2433
  }[];
2475
2434
  };
2476
2435
  outputFormat: "json";
2477
2436
  status: 200;
2478
2437
  input: {
2479
2438
  param: {
2480
- name: string;
2481
- modelId: string;
2482
- };
2483
- } & {
2484
- query: {
2485
- endpointName?: string | undefined;
2439
+ id: string;
2486
2440
  };
2487
2441
  } & {
2488
2442
  json: {
2443
+ modelId: string;
2444
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2489
2445
  displayName?: string | undefined;
2490
2446
  contextSize?: number | undefined;
2491
2447
  capabilities?: {
2492
2448
  input?: {
2493
2449
  image?: {
2494
- mediaTypes: string[];
2495
- maxBytes: number;
2450
+ mediaTypes?: string[] | undefined;
2451
+ maxBytes?: number | undefined;
2452
+ maxWidth?: number | undefined;
2453
+ maxHeight?: number | undefined;
2454
+ maxTotalPixels?: number | undefined;
2496
2455
  } | undefined;
2497
2456
  audio?: {
2498
- mediaTypes: string[];
2499
- maxBytes: number;
2457
+ mediaTypes?: string[] | undefined;
2458
+ maxBytes?: number | undefined;
2459
+ maxLengthSeconds?: number | undefined;
2500
2460
  } | undefined;
2501
2461
  } | undefined;
2502
2462
  voice?: {
@@ -2504,38 +2464,46 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2504
2464
  tts?: boolean | undefined;
2505
2465
  stt?: boolean | undefined;
2506
2466
  } | undefined;
2467
+ tools?: boolean | undefined;
2468
+ reasoning?: boolean | undefined;
2507
2469
  } | undefined;
2508
2470
  };
2509
2471
  };
2510
- } | {
2472
+ };
2473
+ };
2474
+ } & {
2475
+ "/v1/providers/:id/models/:modelId": {
2476
+ $patch: {
2511
2477
  output: {
2512
2478
  error: string;
2513
2479
  code: string;
2480
+ remediation?: string | undefined;
2514
2481
  };
2515
2482
  outputFormat: "json";
2516
2483
  status: 400;
2517
2484
  input: {
2518
2485
  param: {
2519
- name: string;
2486
+ id: string;
2520
2487
  modelId: string;
2521
2488
  };
2522
- } & {
2523
- query: {
2524
- endpointName?: string | undefined;
2525
- };
2526
2489
  } & {
2527
2490
  json: {
2491
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2528
2492
  displayName?: string | undefined;
2529
2493
  contextSize?: number | undefined;
2530
2494
  capabilities?: {
2531
2495
  input?: {
2532
2496
  image?: {
2533
- mediaTypes: string[];
2534
- maxBytes: number;
2497
+ mediaTypes?: string[] | undefined;
2498
+ maxBytes?: number | undefined;
2499
+ maxWidth?: number | undefined;
2500
+ maxHeight?: number | undefined;
2501
+ maxTotalPixels?: number | undefined;
2535
2502
  } | undefined;
2536
2503
  audio?: {
2537
- mediaTypes: string[];
2538
- maxBytes: number;
2504
+ mediaTypes?: string[] | undefined;
2505
+ maxBytes?: number | undefined;
2506
+ maxLengthSeconds?: number | undefined;
2539
2507
  } | undefined;
2540
2508
  } | undefined;
2541
2509
  voice?: {
@@ -2543,6 +2511,8 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2543
2511
  tts?: boolean | undefined;
2544
2512
  stt?: boolean | undefined;
2545
2513
  } | undefined;
2514
+ tools?: boolean | undefined;
2515
+ reasoning?: boolean | undefined;
2546
2516
  } | undefined;
2547
2517
  };
2548
2518
  };
@@ -2550,31 +2520,33 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2550
2520
  output: {
2551
2521
  error: string;
2552
2522
  code: string;
2523
+ remediation?: string | undefined;
2553
2524
  };
2554
2525
  outputFormat: "json";
2555
2526
  status: 404;
2556
2527
  input: {
2557
2528
  param: {
2558
- name: string;
2529
+ id: string;
2559
2530
  modelId: string;
2560
2531
  };
2561
- } & {
2562
- query: {
2563
- endpointName?: string | undefined;
2564
- };
2565
2532
  } & {
2566
2533
  json: {
2534
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2567
2535
  displayName?: string | undefined;
2568
2536
  contextSize?: number | undefined;
2569
2537
  capabilities?: {
2570
2538
  input?: {
2571
2539
  image?: {
2572
- mediaTypes: string[];
2573
- maxBytes: number;
2540
+ mediaTypes?: string[] | undefined;
2541
+ maxBytes?: number | undefined;
2542
+ maxWidth?: number | undefined;
2543
+ maxHeight?: number | undefined;
2544
+ maxTotalPixels?: number | undefined;
2574
2545
  } | undefined;
2575
2546
  audio?: {
2576
- mediaTypes: string[];
2577
- maxBytes: number;
2547
+ mediaTypes?: string[] | undefined;
2548
+ maxBytes?: number | undefined;
2549
+ maxLengthSeconds?: number | undefined;
2578
2550
  } | undefined;
2579
2551
  } | undefined;
2580
2552
  voice?: {
@@ -2582,6 +2554,8 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2582
2554
  tts?: boolean | undefined;
2583
2555
  stt?: boolean | undefined;
2584
2556
  } | undefined;
2557
+ tools?: boolean | undefined;
2558
+ reasoning?: boolean | undefined;
2585
2559
  } | undefined;
2586
2560
  };
2587
2561
  };
@@ -2589,31 +2563,33 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2589
2563
  output: {
2590
2564
  error: string;
2591
2565
  code: string;
2566
+ remediation?: string | undefined;
2592
2567
  };
2593
2568
  outputFormat: "json";
2594
2569
  status: 500;
2595
2570
  input: {
2596
2571
  param: {
2597
- name: string;
2572
+ id: string;
2598
2573
  modelId: string;
2599
2574
  };
2600
- } & {
2601
- query: {
2602
- endpointName?: string | undefined;
2603
- };
2604
2575
  } & {
2605
2576
  json: {
2577
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2606
2578
  displayName?: string | undefined;
2607
2579
  contextSize?: number | undefined;
2608
2580
  capabilities?: {
2609
2581
  input?: {
2610
2582
  image?: {
2611
- mediaTypes: string[];
2612
- maxBytes: number;
2583
+ mediaTypes?: string[] | undefined;
2584
+ maxBytes?: number | undefined;
2585
+ maxWidth?: number | undefined;
2586
+ maxHeight?: number | undefined;
2587
+ maxTotalPixels?: number | undefined;
2613
2588
  } | undefined;
2614
2589
  audio?: {
2615
- mediaTypes: string[];
2616
- maxBytes: number;
2590
+ mediaTypes?: string[] | undefined;
2591
+ maxBytes?: number | undefined;
2592
+ maxLengthSeconds?: number | undefined;
2617
2593
  } | undefined;
2618
2594
  } | undefined;
2619
2595
  voice?: {
@@ -2621,29 +2597,31 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2621
2597
  tts?: boolean | undefined;
2622
2598
  stt?: boolean | undefined;
2623
2599
  } | undefined;
2600
+ tools?: boolean | undefined;
2601
+ reasoning?: boolean | undefined;
2624
2602
  } | undefined;
2625
2603
  };
2626
2604
  };
2627
- };
2628
- };
2629
- } & {
2630
- "/v1/providers/:name/known-models/:modelId": {
2631
- $delete: {
2605
+ } | {
2632
2606
  output: {
2633
2607
  models: {
2634
2608
  modelId: string;
2635
- endpointName?: string | undefined;
2609
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2636
2610
  displayName?: string | undefined;
2637
2611
  contextSize?: number | undefined;
2638
2612
  capabilities?: {
2639
2613
  input?: {
2640
2614
  image?: {
2641
- mediaTypes: string[];
2642
- maxBytes: number;
2615
+ mediaTypes?: string[] | undefined;
2616
+ maxBytes?: number | undefined;
2617
+ maxWidth?: number | undefined;
2618
+ maxHeight?: number | undefined;
2619
+ maxTotalPixels?: number | undefined;
2643
2620
  } | undefined;
2644
2621
  audio?: {
2645
- mediaTypes: string[];
2646
- maxBytes: number;
2622
+ mediaTypes?: string[] | undefined;
2623
+ maxBytes?: number | undefined;
2624
+ maxLengthSeconds?: number | undefined;
2647
2625
  } | undefined;
2648
2626
  } | undefined;
2649
2627
  voice?: {
@@ -2651,70 +2629,158 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2651
2629
  tts?: boolean | undefined;
2652
2630
  stt?: boolean | undefined;
2653
2631
  } | undefined;
2632
+ tools?: boolean | undefined;
2633
+ reasoning?: boolean | undefined;
2654
2634
  } | undefined;
2635
+ source: "discovered" | "manual" | "merged";
2636
+ provenance?: {
2637
+ source: "discovered" | "provider-exact" | "provider-family" | "shared-catalog" | "user";
2638
+ documentationUrl?: string | undefined;
2639
+ reviewedAt?: string | undefined;
2640
+ }[] | undefined;
2655
2641
  }[];
2656
2642
  };
2657
2643
  outputFormat: "json";
2658
2644
  status: 200;
2659
2645
  input: {
2660
2646
  param: {
2661
- name: string;
2647
+ id: string;
2662
2648
  modelId: string;
2663
2649
  };
2664
2650
  } & {
2665
- query: {
2666
- endpointName?: string | undefined;
2651
+ json: {
2652
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2653
+ displayName?: string | undefined;
2654
+ contextSize?: number | undefined;
2655
+ capabilities?: {
2656
+ input?: {
2657
+ image?: {
2658
+ mediaTypes?: string[] | undefined;
2659
+ maxBytes?: number | undefined;
2660
+ maxWidth?: number | undefined;
2661
+ maxHeight?: number | undefined;
2662
+ maxTotalPixels?: number | undefined;
2663
+ } | undefined;
2664
+ audio?: {
2665
+ mediaTypes?: string[] | undefined;
2666
+ maxBytes?: number | undefined;
2667
+ maxLengthSeconds?: number | undefined;
2668
+ } | undefined;
2669
+ } | undefined;
2670
+ voice?: {
2671
+ sts?: boolean | undefined;
2672
+ tts?: boolean | undefined;
2673
+ stt?: boolean | undefined;
2674
+ } | undefined;
2675
+ tools?: boolean | undefined;
2676
+ reasoning?: boolean | undefined;
2677
+ } | undefined;
2667
2678
  };
2668
2679
  };
2669
- } | {
2680
+ };
2681
+ };
2682
+ } & {
2683
+ "/v1/providers/:id/models/:modelId": {
2684
+ $delete: {
2670
2685
  output: {
2671
2686
  error: string;
2672
2687
  code: string;
2688
+ remediation?: string | undefined;
2673
2689
  };
2674
2690
  outputFormat: "json";
2675
2691
  status: 400;
2676
2692
  input: {
2677
2693
  param: {
2678
- name: string;
2694
+ id: string;
2679
2695
  modelId: string;
2680
2696
  };
2681
- } & {
2682
- query: {
2683
- endpointName?: string | undefined;
2684
- };
2685
2697
  };
2686
2698
  } | {
2687
2699
  output: {
2688
2700
  error: string;
2689
2701
  code: string;
2702
+ remediation?: string | undefined;
2690
2703
  };
2691
2704
  outputFormat: "json";
2692
2705
  status: 404;
2693
2706
  input: {
2694
2707
  param: {
2695
- name: string;
2708
+ id: string;
2696
2709
  modelId: string;
2697
2710
  };
2698
- } & {
2699
- query: {
2700
- endpointName?: string | undefined;
2711
+ };
2712
+ } | {
2713
+ output: {
2714
+ error: string;
2715
+ code: string;
2716
+ remediation?: string | undefined;
2717
+ };
2718
+ outputFormat: "json";
2719
+ status: 409;
2720
+ input: {
2721
+ param: {
2722
+ id: string;
2723
+ modelId: string;
2701
2724
  };
2702
2725
  };
2703
2726
  } | {
2704
2727
  output: {
2705
2728
  error: string;
2706
2729
  code: string;
2730
+ remediation?: string | undefined;
2707
2731
  };
2708
2732
  outputFormat: "json";
2709
2733
  status: 500;
2710
2734
  input: {
2711
2735
  param: {
2712
- name: string;
2736
+ id: string;
2713
2737
  modelId: string;
2714
2738
  };
2715
- } & {
2716
- query: {
2717
- endpointName?: string | undefined;
2739
+ };
2740
+ } | {
2741
+ output: {
2742
+ models: {
2743
+ modelId: string;
2744
+ kind?: "embedding" | "image-generation" | "language" | "moderation" | "reranking" | "speech-to-speech" | "speech-to-text" | "text-to-speech" | "unknown" | undefined;
2745
+ displayName?: string | undefined;
2746
+ contextSize?: number | undefined;
2747
+ capabilities?: {
2748
+ input?: {
2749
+ image?: {
2750
+ mediaTypes?: string[] | undefined;
2751
+ maxBytes?: number | undefined;
2752
+ maxWidth?: number | undefined;
2753
+ maxHeight?: number | undefined;
2754
+ maxTotalPixels?: number | undefined;
2755
+ } | undefined;
2756
+ audio?: {
2757
+ mediaTypes?: string[] | undefined;
2758
+ maxBytes?: number | undefined;
2759
+ maxLengthSeconds?: number | undefined;
2760
+ } | undefined;
2761
+ } | undefined;
2762
+ voice?: {
2763
+ sts?: boolean | undefined;
2764
+ tts?: boolean | undefined;
2765
+ stt?: boolean | undefined;
2766
+ } | undefined;
2767
+ tools?: boolean | undefined;
2768
+ reasoning?: boolean | undefined;
2769
+ } | undefined;
2770
+ source: "discovered" | "manual" | "merged";
2771
+ provenance?: {
2772
+ source: "discovered" | "provider-exact" | "provider-family" | "shared-catalog" | "user";
2773
+ documentationUrl?: string | undefined;
2774
+ reviewedAt?: string | undefined;
2775
+ }[] | undefined;
2776
+ }[];
2777
+ };
2778
+ outputFormat: "json";
2779
+ status: 200;
2780
+ input: {
2781
+ param: {
2782
+ id: string;
2783
+ modelId: string;
2718
2784
  };
2719
2785
  };
2720
2786
  };
@@ -2723,18 +2789,12 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2723
2789
  "/v1/introspect/:path": {
2724
2790
  $get: {
2725
2791
  output: {
2726
- path: string[];
2727
- state: {
2728
- [x: string]: import("hono/utils/types").JSONValue;
2729
- } | null;
2730
- children: {
2731
- id: string;
2732
- hasState: boolean;
2733
- hasChildren: boolean;
2734
- }[];
2792
+ error: string;
2793
+ code: string;
2794
+ remediation?: string | undefined;
2735
2795
  };
2736
2796
  outputFormat: "json";
2737
- status: 200;
2797
+ status: 400;
2738
2798
  input: {
2739
2799
  param: {
2740
2800
  path: string;
@@ -2744,9 +2804,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2744
2804
  output: {
2745
2805
  error: string;
2746
2806
  code: string;
2807
+ remediation?: string | undefined;
2747
2808
  };
2748
2809
  outputFormat: "json";
2749
- status: 400;
2810
+ status: 404;
2750
2811
  input: {
2751
2812
  param: {
2752
2813
  path: string;
@@ -2756,9 +2817,10 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2756
2817
  output: {
2757
2818
  error: string;
2758
2819
  code: string;
2820
+ remediation?: string | undefined;
2759
2821
  };
2760
2822
  outputFormat: "json";
2761
- status: 404;
2823
+ status: 500;
2762
2824
  input: {
2763
2825
  param: {
2764
2826
  path: string;
@@ -2766,11 +2828,18 @@ export type AdminApi = import("hono/hono-base").HonoBase<any, {
2766
2828
  };
2767
2829
  } | {
2768
2830
  output: {
2769
- error: string;
2770
- code: string;
2831
+ path: string[];
2832
+ state: {
2833
+ [x: string]: import("hono/utils/types").JSONValue;
2834
+ } | null;
2835
+ children: {
2836
+ id: string;
2837
+ hasState: boolean;
2838
+ hasChildren: boolean;
2839
+ }[];
2771
2840
  };
2772
2841
  outputFormat: "json";
2773
- status: 500;
2842
+ status: 200;
2774
2843
  input: {
2775
2844
  param: {
2776
2845
  path: string;