@bodhiapp/ts-client 0.1.33 → 0.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/openapi-typescript/openapi-schema-oai.d.ts +0 -437
- package/dist/openapi-typescript/openapi-schema-oai.ts +0 -437
- package/dist/openapi-typescript/openapi-schema.d.ts +1153 -204
- package/dist/openapi-typescript/openapi-schema.ts +1153 -204
- package/dist/types/types.gen.d.ts +742 -201
- package/dist/types/types.gen.ts +788 -187
- package/dist/types-oai/types.gen.d.ts +0 -187
- package/dist/types-oai/types.gen.ts +0 -211
- package/package.json +1 -1
package/dist/types/types.gen.ts
CHANGED
|
@@ -1,75 +1,44 @@
|
|
|
1
1
|
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
2
|
|
|
3
3
|
export type AccessRequestActionResponse = {
|
|
4
|
-
/**
|
|
5
|
-
* Updated status after action
|
|
6
|
-
*/
|
|
7
4
|
status: AppAccessRequestStatus;
|
|
8
5
|
/**
|
|
9
|
-
*
|
|
10
|
-
*/
|
|
11
|
-
flow_type: FlowType;
|
|
12
|
-
/**
|
|
13
|
-
* Redirect URL (present for redirect flow)
|
|
6
|
+
* Dynamic scope minted on approval; the review page appends it to `auth_url` before redirecting to Keycloak.
|
|
14
7
|
*/
|
|
15
|
-
|
|
8
|
+
access_request_scope?: string | null;
|
|
16
9
|
};
|
|
17
10
|
|
|
18
11
|
export type AccessRequestReviewResponse = {
|
|
19
|
-
/**
|
|
20
|
-
* Access request ID
|
|
21
|
-
*/
|
|
22
12
|
id: string;
|
|
23
|
-
/**
|
|
24
|
-
* App client ID
|
|
25
|
-
*/
|
|
26
13
|
app_client_id: string;
|
|
27
14
|
/**
|
|
28
|
-
*
|
|
15
|
+
* From KC, if available
|
|
29
16
|
*/
|
|
30
17
|
app_name?: string | null;
|
|
31
18
|
/**
|
|
32
|
-
*
|
|
19
|
+
* From KC, if available
|
|
33
20
|
*/
|
|
34
21
|
app_description?: string | null;
|
|
35
|
-
/**
|
|
36
|
-
* Flow type: "redirect" or "popup"
|
|
37
|
-
*/
|
|
38
|
-
flow_type: FlowType;
|
|
39
|
-
/**
|
|
40
|
-
* Current status
|
|
41
|
-
*/
|
|
42
22
|
status: AppAccessRequestStatus;
|
|
43
|
-
/**
|
|
44
|
-
* Role requested by the app
|
|
45
|
-
*/
|
|
46
23
|
requested_role: string;
|
|
47
|
-
/**
|
|
48
|
-
* Resources requested
|
|
49
|
-
*/
|
|
50
24
|
requested: RequestedResources;
|
|
25
|
+
mcps_info?: Array<McpServerReviewInfo>;
|
|
51
26
|
/**
|
|
52
|
-
*
|
|
27
|
+
* Canonical Keycloak authorize endpoint the review page validates the app-supplied `auth_url` against.
|
|
53
28
|
*/
|
|
54
|
-
|
|
29
|
+
auth_endpoint: string;
|
|
55
30
|
};
|
|
56
31
|
|
|
57
32
|
export type AccessRequestStatusResponse = {
|
|
58
|
-
/**
|
|
59
|
-
* Access request ID
|
|
60
|
-
*/
|
|
61
33
|
id: string;
|
|
62
34
|
/**
|
|
63
|
-
*
|
|
35
|
+
* One of: "draft", "approved", "denied", "failed"
|
|
64
36
|
*/
|
|
65
37
|
status: AppAccessRequestStatus;
|
|
66
|
-
/**
|
|
67
|
-
* Role requested by the app
|
|
68
|
-
*/
|
|
69
38
|
requested_role: UserScope;
|
|
70
39
|
approved_role?: null | UserScope;
|
|
71
40
|
/**
|
|
72
|
-
*
|
|
41
|
+
* Present when user-approved with tools
|
|
73
42
|
*/
|
|
74
43
|
access_request_scope?: string | null;
|
|
75
44
|
};
|
|
@@ -84,13 +53,53 @@ export type Alias = (UserAlias & {
|
|
|
84
53
|
source: 'model';
|
|
85
54
|
}) | (ApiAlias & {
|
|
86
55
|
source: 'api';
|
|
56
|
+
}) | (ModelRouterAlias & {
|
|
57
|
+
source: 'model_router';
|
|
87
58
|
});
|
|
88
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Facet filter query parameters for the All-Models list (`GET /bodhi/v1/models`).
|
|
62
|
+
*
|
|
63
|
+
* All facets are server-side and applied before pagination so `total` and the page
|
|
64
|
+
* reflect the filtered set. Multi-value facets accept a comma-separated list; an empty
|
|
65
|
+
* or absent value means "no filter for this facet" (all rows pass).
|
|
66
|
+
*/
|
|
67
|
+
export type AliasFilterParams = {
|
|
68
|
+
/**
|
|
69
|
+
* Alias type facet (comma-separated): `local_file`, `model_alias`, `api_model`, `fallback`.
|
|
70
|
+
*/
|
|
71
|
+
type?: string | null;
|
|
72
|
+
/**
|
|
73
|
+
* API-format facet (comma-separated), API rows only: `openai`, `responses`, `anthropic`,
|
|
74
|
+
* `gemini`, `liberty`. `anthropic` matches both anthropic and anthropic_oauth aliases.
|
|
75
|
+
*/
|
|
76
|
+
api_format?: string | null;
|
|
77
|
+
/**
|
|
78
|
+
* Minimum local-file size in bytes (inclusive). Applies to local rows with a known size;
|
|
79
|
+
* rows without a size (API/router) are not filtered out by size.
|
|
80
|
+
*/
|
|
81
|
+
size_min?: number | null;
|
|
82
|
+
/**
|
|
83
|
+
* Maximum local-file size in bytes (inclusive). See `size_min`.
|
|
84
|
+
*/
|
|
85
|
+
size_max?: number | null;
|
|
86
|
+
/**
|
|
87
|
+
* Capability facet (comma-separated), local rows only: `vision`, `tool_use`, `reasoning`.
|
|
88
|
+
* A row passes only if it has metadata with every requested capability set true.
|
|
89
|
+
*/
|
|
90
|
+
capability?: string | null;
|
|
91
|
+
/**
|
|
92
|
+
* Free-text search (case-insensitive substring) over a row's identifying fields — alias/name,
|
|
93
|
+
* repo, filename for local rows; id, name, base_url for API rows; alias for routers.
|
|
94
|
+
*/
|
|
95
|
+
search?: string | null;
|
|
96
|
+
};
|
|
97
|
+
|
|
89
98
|
/**
|
|
90
99
|
* Response envelope for model aliases - hides internal implementation details
|
|
91
100
|
* Uses untagged serialization - each variant has its own "source" field
|
|
92
101
|
*/
|
|
93
|
-
export type AliasResponse = UserAliasResponse | ModelAliasResponse | ApiAliasResponse;
|
|
102
|
+
export type AliasResponse = ModelRouterResponse | UserAliasResponse | ModelAliasResponse | ApiAliasResponse;
|
|
94
103
|
|
|
95
104
|
/**
|
|
96
105
|
* Mirrors Anthropic's `ModelInfo` schema — full model metadata returned by
|
|
@@ -111,14 +120,11 @@ export type AnthropicModel = {
|
|
|
111
120
|
capabilities?: null | AnthropicModelCapabilities;
|
|
112
121
|
max_input_tokens?: number | null;
|
|
113
122
|
max_tokens?: number | null;
|
|
114
|
-
/**
|
|
115
|
-
* Always `"model"` — included for Anthropic API compatibility.
|
|
116
|
-
*/
|
|
117
123
|
type: string;
|
|
118
124
|
};
|
|
119
125
|
|
|
120
126
|
/**
|
|
121
|
-
*
|
|
127
|
+
* Anthropic ModelCapabilities schema.
|
|
122
128
|
*/
|
|
123
129
|
export type AnthropicModelCapabilities = {
|
|
124
130
|
batch: CapabilitySupport;
|
|
@@ -134,6 +140,7 @@ export type AnthropicModelCapabilities = {
|
|
|
134
140
|
|
|
135
141
|
export type ApiAlias = {
|
|
136
142
|
id: string;
|
|
143
|
+
name: string;
|
|
137
144
|
api_format: ApiFormat;
|
|
138
145
|
base_url: string;
|
|
139
146
|
models: ApiModelVec;
|
|
@@ -151,6 +158,7 @@ export type ApiAlias = {
|
|
|
151
158
|
export type ApiAliasResponse = {
|
|
152
159
|
source: string;
|
|
153
160
|
id: string;
|
|
161
|
+
name: string;
|
|
154
162
|
api_format: ApiFormat;
|
|
155
163
|
base_url: string;
|
|
156
164
|
has_api_key: boolean;
|
|
@@ -233,7 +241,29 @@ export type ApiModelRequest = (DefaultApiModelRequest & {
|
|
|
233
241
|
*/
|
|
234
242
|
export type ApiModelVec = Array<ApiModel>;
|
|
235
243
|
|
|
236
|
-
export type AppAccessRequestStatus = 'draft' | 'approved' | 'denied' | 'failed' | 'expired';
|
|
244
|
+
export type AppAccessRequestStatus = 'draft' | 'approved' | 'denied' | 'failed' | 'expired' | 'revoked';
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* One issued app token (approved access request) with its effective grant summary.
|
|
248
|
+
*/
|
|
249
|
+
export type AppAccessSummary = {
|
|
250
|
+
id: string;
|
|
251
|
+
app_client_id: string;
|
|
252
|
+
app_name?: string | null;
|
|
253
|
+
app_description?: string | null;
|
|
254
|
+
status: AppAccessRequestStatus;
|
|
255
|
+
approved_role?: null | UserScope;
|
|
256
|
+
/**
|
|
257
|
+
* Effective model access granted to this app.
|
|
258
|
+
*/
|
|
259
|
+
models: ResourceAccess;
|
|
260
|
+
/**
|
|
261
|
+
* Effective MCP access granted to this app.
|
|
262
|
+
*/
|
|
263
|
+
mcps: ResourceAccess;
|
|
264
|
+
created_at: string;
|
|
265
|
+
updated_at: string;
|
|
266
|
+
};
|
|
237
267
|
|
|
238
268
|
/**
|
|
239
269
|
* Application information and status
|
|
@@ -263,6 +293,11 @@ export type AppInfo = {
|
|
|
263
293
|
* Public URL of the server
|
|
264
294
|
*/
|
|
265
295
|
url: string;
|
|
296
|
+
/**
|
|
297
|
+
* Base URL of the external reference API the frontend calls directly (configurable via
|
|
298
|
+
* `BODHI_REFERENCE_API_URL`, env-overridable for tests)
|
|
299
|
+
*/
|
|
300
|
+
reference_api_url: string;
|
|
266
301
|
};
|
|
267
302
|
|
|
268
303
|
export type AppRole = ResourceRole | TokenScope | UserScope;
|
|
@@ -271,9 +306,6 @@ export type AppStatus = 'setup' | 'ready' | 'resource_admin';
|
|
|
271
306
|
|
|
272
307
|
export type ApprovalStatus = 'approved' | 'denied';
|
|
273
308
|
|
|
274
|
-
/**
|
|
275
|
-
* Request for approving an app access request
|
|
276
|
-
*/
|
|
277
309
|
export type ApproveAccessRequest = {
|
|
278
310
|
/**
|
|
279
311
|
* Role to grant for the approved request (scope_user_user or scope_user_power_user)
|
|
@@ -296,33 +328,43 @@ export type ApproveUserAccessRequest = {
|
|
|
296
328
|
};
|
|
297
329
|
|
|
298
330
|
/**
|
|
299
|
-
* Versioned envelope for approved resources.
|
|
300
331
|
* The `version` tag is mandatory and must match the corresponding `RequestedResources` version.
|
|
301
332
|
*/
|
|
302
333
|
export type ApprovedResources = ApprovedResourcesV1 & {
|
|
303
334
|
version: '1';
|
|
304
335
|
};
|
|
305
336
|
|
|
337
|
+
/**
|
|
338
|
+
* What the owner granted at consent. Field names mirror `RequestedResourcesV1`
|
|
339
|
+
* (`models_list` / `models_access` / `mcps_list` / `mcps_access`) — there the
|
|
340
|
+
* values are UI-driver booleans, here they are the actual grants. `mcps` holds
|
|
341
|
+
* the by-url instance approvals; `mcps_access` is the owner-granted set beyond them.
|
|
342
|
+
*/
|
|
306
343
|
export type ApprovedResourcesV1 = {
|
|
344
|
+
models_list?: boolean;
|
|
345
|
+
models_access?: ModelGrant;
|
|
346
|
+
mcps_list?: boolean;
|
|
307
347
|
mcps?: Array<McpApproval>;
|
|
348
|
+
/**
|
|
349
|
+
* Owner-granted MCP instances beyond the by-url requests. Defaults to none
|
|
350
|
+
* (empty `Specific`) — unlike a token's all-access default.
|
|
351
|
+
*/
|
|
352
|
+
mcps_access?: McpGrant;
|
|
308
353
|
};
|
|
309
354
|
|
|
310
355
|
export type AuthCallbackRequest = {
|
|
311
356
|
/**
|
|
312
|
-
*
|
|
357
|
+
* Required for the success flow
|
|
313
358
|
*/
|
|
314
359
|
code?: string | null;
|
|
315
360
|
/**
|
|
316
|
-
*
|
|
361
|
+
* CSRF protection — must match the initiated request
|
|
317
362
|
*/
|
|
318
363
|
state?: string | null;
|
|
319
364
|
/**
|
|
320
365
|
* OAuth error code if authentication failed (e.g., "access_denied")
|
|
321
366
|
*/
|
|
322
367
|
error?: string | null;
|
|
323
|
-
/**
|
|
324
|
-
* Human-readable OAuth error description if authentication failed
|
|
325
|
-
*/
|
|
326
368
|
error_description?: string | null;
|
|
327
369
|
[key: string]: string | (string | null) | (string | null) | (string | null) | (string | null) | undefined;
|
|
328
370
|
};
|
|
@@ -371,9 +413,6 @@ export type BodhiErrorResponse = {
|
|
|
371
413
|
error: BodhiError;
|
|
372
414
|
};
|
|
373
415
|
|
|
374
|
-
/**
|
|
375
|
-
* Whether a single capability is supported by the model.
|
|
376
|
-
*/
|
|
377
416
|
export type CapabilitySupport = {
|
|
378
417
|
supported: boolean;
|
|
379
418
|
};
|
|
@@ -393,9 +432,6 @@ export type ContextLimits = {
|
|
|
393
432
|
max_output_tokens?: number | null;
|
|
394
433
|
};
|
|
395
434
|
|
|
396
|
-
/**
|
|
397
|
-
* Context management capability details.
|
|
398
|
-
*/
|
|
399
435
|
export type ContextManagementCapability = {
|
|
400
436
|
clear_thinking_20251015?: null | CapabilitySupport;
|
|
401
437
|
clear_tool_uses_20250919?: null | CapabilitySupport;
|
|
@@ -406,22 +442,11 @@ export type CopyAliasRequest = {
|
|
|
406
442
|
alias: string;
|
|
407
443
|
};
|
|
408
444
|
|
|
409
|
-
/**
|
|
410
|
-
* Request for creating an app access request
|
|
411
|
-
*/
|
|
412
445
|
export type CreateAccessRequest = {
|
|
413
446
|
/**
|
|
414
447
|
* App client ID from Keycloak
|
|
415
448
|
*/
|
|
416
449
|
app_client_id: string;
|
|
417
|
-
/**
|
|
418
|
-
* Flow type: "redirect" or "popup"
|
|
419
|
-
*/
|
|
420
|
-
flow_type: FlowType;
|
|
421
|
-
/**
|
|
422
|
-
* Redirect URL for result notification (required for redirect flow)
|
|
423
|
-
*/
|
|
424
|
-
redirect_url?: string | null;
|
|
425
450
|
/**
|
|
426
451
|
* Role requested for the external app (scope_user_user or scope_user_power_user)
|
|
427
452
|
*/
|
|
@@ -433,17 +458,11 @@ export type CreateAccessRequest = {
|
|
|
433
458
|
};
|
|
434
459
|
|
|
435
460
|
export type CreateAccessRequestResponse = {
|
|
436
|
-
/**
|
|
437
|
-
* Access request ID
|
|
438
|
-
*/
|
|
439
461
|
id: string;
|
|
440
462
|
/**
|
|
441
|
-
*
|
|
463
|
+
* Always "draft"
|
|
442
464
|
*/
|
|
443
465
|
status: AppAccessRequestStatus;
|
|
444
|
-
/**
|
|
445
|
-
* Review URL for user to approve/deny
|
|
446
|
-
*/
|
|
447
466
|
review_url: string;
|
|
448
467
|
};
|
|
449
468
|
|
|
@@ -498,6 +517,11 @@ export type CreateTokenRequest = {
|
|
|
498
517
|
* Token scope defining access level
|
|
499
518
|
*/
|
|
500
519
|
scope: TokenScope;
|
|
520
|
+
/**
|
|
521
|
+
* Per-resource grants for this token. Defaults to deny (least-privilege) when
|
|
522
|
+
* omitted — specify grants to widen access.
|
|
523
|
+
*/
|
|
524
|
+
grants?: TokenGrants;
|
|
501
525
|
};
|
|
502
526
|
|
|
503
527
|
/**
|
|
@@ -515,6 +539,10 @@ export type DashboardUser = {
|
|
|
515
539
|
* Shared across `openai`, `openai_responses`, `anthropic`, `anthropic_oauth`, `gemini`.
|
|
516
540
|
*/
|
|
517
541
|
export type DefaultApiModelRequest = {
|
|
542
|
+
/**
|
|
543
|
+
* User-provided descriptive name for this API model
|
|
544
|
+
*/
|
|
545
|
+
name: string;
|
|
518
546
|
/**
|
|
519
547
|
* API base URL
|
|
520
548
|
*/
|
|
@@ -609,6 +637,7 @@ export type DownloadRequest = {
|
|
|
609
637
|
total_bytes?: number | null;
|
|
610
638
|
downloaded_bytes: number;
|
|
611
639
|
started_at?: string | null;
|
|
640
|
+
archived_at?: string | null;
|
|
612
641
|
created_at: string;
|
|
613
642
|
updated_at: string;
|
|
614
643
|
};
|
|
@@ -638,6 +667,19 @@ export type EffortCapability = {
|
|
|
638
667
|
max: CapabilitySupport;
|
|
639
668
|
};
|
|
640
669
|
|
|
670
|
+
/**
|
|
671
|
+
* Per-strategy resilience config for the fallback strategy. Phase 1 persists defaults
|
|
672
|
+
* and does not yet act on them (failover/health land in later phases).
|
|
673
|
+
*/
|
|
674
|
+
export type FallbackConfig = {
|
|
675
|
+
cooldown_secs?: number;
|
|
676
|
+
/**
|
|
677
|
+
* 0 = try the whole chain.
|
|
678
|
+
*/
|
|
679
|
+
max_attempts?: number;
|
|
680
|
+
honor_retry_after?: boolean;
|
|
681
|
+
};
|
|
682
|
+
|
|
641
683
|
/**
|
|
642
684
|
* Request to fetch available models from provider. Discriminated on `api_format`.
|
|
643
685
|
*/
|
|
@@ -663,8 +705,6 @@ export type FetchModelsResponse = {
|
|
|
663
705
|
models: Array<string>;
|
|
664
706
|
};
|
|
665
707
|
|
|
666
|
-
export type FlowType = 'redirect' | 'popup';
|
|
667
|
-
|
|
668
708
|
/**
|
|
669
709
|
* Gemini `Model` schema (see `openapi-gemini.json`).
|
|
670
710
|
*/
|
|
@@ -685,6 +725,13 @@ export type GeminiModel = {
|
|
|
685
725
|
|
|
686
726
|
export type JsonVec = Array<string>;
|
|
687
727
|
|
|
728
|
+
/**
|
|
729
|
+
* Response for GET /access-requests/apps — the caller's issued app tokens.
|
|
730
|
+
*/
|
|
731
|
+
export type ListAppAccessResponse = {
|
|
732
|
+
data: Array<AppAccessSummary>;
|
|
733
|
+
};
|
|
734
|
+
|
|
688
735
|
export type ListMcpServersResponse = {
|
|
689
736
|
mcp_servers: Array<McpServerResponse>;
|
|
690
737
|
};
|
|
@@ -713,6 +760,10 @@ export type LlmLibertyApiEndpoints = {
|
|
|
713
760
|
* (or `Keep` to leave existing credentials untouched on update).
|
|
714
761
|
*/
|
|
715
762
|
export type LlmLibertyApiModelRequest = {
|
|
763
|
+
/**
|
|
764
|
+
* User-provided descriptive name for this API model
|
|
765
|
+
*/
|
|
766
|
+
name: string;
|
|
716
767
|
/**
|
|
717
768
|
* Envelope update action — Keep (update only) or Set (create/replace credentials).
|
|
718
769
|
*/
|
|
@@ -731,6 +782,9 @@ export type LlmLibertyApiModelRequest = {
|
|
|
731
782
|
forward_all_with_prefix?: boolean;
|
|
732
783
|
};
|
|
733
784
|
|
|
785
|
+
/**
|
|
786
|
+
* Envelope sub-types mirror the llm-liberty JSON contract v1.0.0.
|
|
787
|
+
*/
|
|
734
788
|
export type LlmLibertyAuthSpec = {
|
|
735
789
|
in: string;
|
|
736
790
|
key: string;
|
|
@@ -832,9 +886,6 @@ export type LlmLibertyTestPromptRequest = {
|
|
|
832
886
|
prompt: string;
|
|
833
887
|
};
|
|
834
888
|
|
|
835
|
-
/**
|
|
836
|
-
* Local model file response
|
|
837
|
-
*/
|
|
838
889
|
export type LocalModelResponse = {
|
|
839
890
|
repo: string;
|
|
840
891
|
filename: string;
|
|
@@ -848,46 +899,22 @@ export type LocalModelResponse = {
|
|
|
848
899
|
* User-owned MCP server instance.
|
|
849
900
|
*/
|
|
850
901
|
export type Mcp = {
|
|
851
|
-
/**
|
|
852
|
-
* Unique instance identifier (UUID)
|
|
853
|
-
*/
|
|
854
902
|
id: string;
|
|
855
903
|
/**
|
|
856
904
|
* Server info resolved via JOIN
|
|
857
905
|
*/
|
|
858
906
|
mcp_server: McpServerInfo;
|
|
859
|
-
/**
|
|
860
|
-
* User-defined slug for this instance
|
|
861
|
-
*/
|
|
862
907
|
slug: string;
|
|
863
|
-
/**
|
|
864
|
-
* Human-readable name
|
|
865
|
-
*/
|
|
866
908
|
name: string;
|
|
867
|
-
/**
|
|
868
|
-
* Optional description for this instance
|
|
869
|
-
*/
|
|
870
909
|
description?: string | null;
|
|
871
|
-
/**
|
|
872
|
-
* Whether this instance is enabled
|
|
873
|
-
*/
|
|
874
910
|
enabled: boolean;
|
|
875
|
-
/**
|
|
876
|
-
* MCP proxy path for this instance
|
|
877
|
-
*/
|
|
878
911
|
path: string;
|
|
879
912
|
auth_type: McpAuthType;
|
|
880
913
|
/**
|
|
881
914
|
* Reference to the auth config (mcp_auth_configs.id)
|
|
882
915
|
*/
|
|
883
916
|
auth_config_id?: string | null;
|
|
884
|
-
/**
|
|
885
|
-
* When this instance was created
|
|
886
|
-
*/
|
|
887
917
|
created_at: string;
|
|
888
|
-
/**
|
|
889
|
-
* When this instance was last updated
|
|
890
|
-
*/
|
|
891
918
|
updated_at: string;
|
|
892
919
|
};
|
|
893
920
|
|
|
@@ -950,6 +977,9 @@ export type McpAuthConfigsListResponse = {
|
|
|
950
977
|
auth_configs: Array<McpAuthConfigResponse>;
|
|
951
978
|
};
|
|
952
979
|
|
|
980
|
+
/**
|
|
981
|
+
* Masked auth param response.
|
|
982
|
+
*/
|
|
953
983
|
export type McpAuthParam = {
|
|
954
984
|
id: string;
|
|
955
985
|
param_type: McpAuthParamType;
|
|
@@ -967,6 +997,22 @@ export type McpAuthParamType = 'header' | 'query';
|
|
|
967
997
|
|
|
968
998
|
export type McpAuthType = 'public' | 'header' | 'oauth';
|
|
969
999
|
|
|
1000
|
+
/**
|
|
1001
|
+
* MCP connect grant. `All` is a wildcard (incl. future MCPs); `Specific` lists
|
|
1002
|
+
* the user's own instance ids (empty ⇒ no MCP access).
|
|
1003
|
+
*
|
|
1004
|
+
* Defaults to **least-privilege** (empty `Specific` ⇒ deny), symmetric with
|
|
1005
|
+
* `ModelGrant`: an unspecified or legacy grant grants nothing, so a stored
|
|
1006
|
+
* payload that omits `mcps` cannot silently grant every MCP. All-access must be
|
|
1007
|
+
* requested explicitly via `McpGrant::All`.
|
|
1008
|
+
*/
|
|
1009
|
+
export type McpGrant = {
|
|
1010
|
+
type: 'all';
|
|
1011
|
+
} | {
|
|
1012
|
+
ids: Array<string>;
|
|
1013
|
+
type: 'specific';
|
|
1014
|
+
};
|
|
1015
|
+
|
|
970
1016
|
export type McpInstance = {
|
|
971
1017
|
id: string;
|
|
972
1018
|
/**
|
|
@@ -979,84 +1025,44 @@ export type McpInstance = {
|
|
|
979
1025
|
* Input for creating or updating an MCP instance.
|
|
980
1026
|
*/
|
|
981
1027
|
export type McpRequest = {
|
|
982
|
-
/**
|
|
983
|
-
* Human-readable name (required)
|
|
984
|
-
*/
|
|
985
1028
|
name: string;
|
|
986
1029
|
/**
|
|
987
|
-
*
|
|
1030
|
+
* 1-24 chars, alphanumeric + hyphens.
|
|
988
1031
|
*/
|
|
989
1032
|
slug: string;
|
|
990
1033
|
/**
|
|
991
|
-
*
|
|
1034
|
+
* Required for create, ignored for update.
|
|
992
1035
|
*/
|
|
993
1036
|
mcp_server_id?: string | null;
|
|
994
|
-
/**
|
|
995
|
-
* Optional description
|
|
996
|
-
*/
|
|
997
1037
|
description?: string | null;
|
|
998
|
-
/**
|
|
999
|
-
* Whether this instance is enabled
|
|
1000
|
-
*/
|
|
1001
1038
|
enabled: boolean;
|
|
1002
|
-
/**
|
|
1003
|
-
* Authentication type
|
|
1004
|
-
*/
|
|
1005
1039
|
auth_type?: McpAuthType;
|
|
1006
|
-
/**
|
|
1007
|
-
* Reference to auth config
|
|
1008
|
-
*/
|
|
1009
1040
|
auth_config_id?: string | null;
|
|
1010
1041
|
/**
|
|
1011
|
-
* Instance-level
|
|
1042
|
+
* Instance-level values for the auth config's key definitions.
|
|
1012
1043
|
*/
|
|
1013
1044
|
credentials?: Array<McpAuthParamInput> | null;
|
|
1014
1045
|
/**
|
|
1015
|
-
* OAuth token ID to link to this MCP instance (set after OAuth flow)
|
|
1046
|
+
* OAuth token ID to link to this MCP instance (set after OAuth flow).
|
|
1016
1047
|
*/
|
|
1017
1048
|
oauth_token_id?: string | null;
|
|
1018
1049
|
};
|
|
1019
1050
|
|
|
1020
1051
|
/**
|
|
1021
|
-
* Admin-managed MCP server registry entry.
|
|
1022
|
-
* Admins/managers register MCP server URLs that users can then create instances of.
|
|
1052
|
+
* Admin-managed MCP server registry entry that users create instances of.
|
|
1023
1053
|
*/
|
|
1024
1054
|
export type McpServer = {
|
|
1025
|
-
/**
|
|
1026
|
-
* Unique identifier (UUID)
|
|
1027
|
-
*/
|
|
1028
1055
|
id: string;
|
|
1029
1056
|
/**
|
|
1030
1057
|
* MCP server endpoint URL (trimmed, case-insensitive unique)
|
|
1031
1058
|
*/
|
|
1032
1059
|
url: string;
|
|
1033
|
-
/**
|
|
1034
|
-
* Human-readable display name
|
|
1035
|
-
*/
|
|
1036
1060
|
name: string;
|
|
1037
|
-
/**
|
|
1038
|
-
* Optional description
|
|
1039
|
-
*/
|
|
1040
1061
|
description?: string | null;
|
|
1041
|
-
/**
|
|
1042
|
-
* Whether this MCP server is enabled
|
|
1043
|
-
*/
|
|
1044
1062
|
enabled: boolean;
|
|
1045
|
-
/**
|
|
1046
|
-
* User who created this entry
|
|
1047
|
-
*/
|
|
1048
1063
|
created_by: string;
|
|
1049
|
-
/**
|
|
1050
|
-
* User who last updated this entry
|
|
1051
|
-
*/
|
|
1052
1064
|
updated_by: string;
|
|
1053
|
-
/**
|
|
1054
|
-
* When this entry was created
|
|
1055
|
-
*/
|
|
1056
1065
|
created_at: string;
|
|
1057
|
-
/**
|
|
1058
|
-
* When this entry was last updated
|
|
1059
|
-
*/
|
|
1060
1066
|
updated_at: string;
|
|
1061
1067
|
};
|
|
1062
1068
|
|
|
@@ -1075,20 +1081,11 @@ export type McpServerInfo = {
|
|
|
1075
1081
|
*/
|
|
1076
1082
|
export type McpServerRequest = {
|
|
1077
1083
|
/**
|
|
1078
|
-
* MCP server endpoint URL (trimmed, case-insensitive unique)
|
|
1084
|
+
* MCP server endpoint URL (trimmed, case-insensitive unique).
|
|
1079
1085
|
*/
|
|
1080
1086
|
url: string;
|
|
1081
|
-
/**
|
|
1082
|
-
* Human-readable display name
|
|
1083
|
-
*/
|
|
1084
1087
|
name: string;
|
|
1085
|
-
/**
|
|
1086
|
-
* Optional description
|
|
1087
|
-
*/
|
|
1088
1088
|
description?: string | null;
|
|
1089
|
-
/**
|
|
1090
|
-
* Whether this MCP server is enabled
|
|
1091
|
-
*/
|
|
1092
1089
|
enabled: boolean;
|
|
1093
1090
|
auth_config?: null | CreateMcpAuthConfigRequest;
|
|
1094
1091
|
};
|
|
@@ -1103,9 +1100,6 @@ export type McpServerResponse = McpServer & {
|
|
|
1103
1100
|
};
|
|
1104
1101
|
|
|
1105
1102
|
export type McpServerReviewInfo = {
|
|
1106
|
-
/**
|
|
1107
|
-
* Requested MCP server URL
|
|
1108
|
-
*/
|
|
1109
1103
|
url: string;
|
|
1110
1104
|
/**
|
|
1111
1105
|
* User's MCP instances connected to this server URL
|
|
@@ -1151,6 +1145,10 @@ export type ModelAliasResponse = {
|
|
|
1151
1145
|
repo: string;
|
|
1152
1146
|
filename: string;
|
|
1153
1147
|
snapshot: string;
|
|
1148
|
+
/**
|
|
1149
|
+
* Local GGUF file size in bytes (present when the file is resolvable on disk)
|
|
1150
|
+
*/
|
|
1151
|
+
size?: number | null;
|
|
1154
1152
|
metadata?: null | ModelMetadata;
|
|
1155
1153
|
};
|
|
1156
1154
|
|
|
@@ -1168,6 +1166,21 @@ export type ModelCapabilities = {
|
|
|
1168
1166
|
tools: ToolCapabilities;
|
|
1169
1167
|
};
|
|
1170
1168
|
|
|
1169
|
+
/**
|
|
1170
|
+
* Model inference grant. `All` is a wildcard that includes models added in the
|
|
1171
|
+
* future; `Specific` lists alias ids (empty ⇒ no model access).
|
|
1172
|
+
*
|
|
1173
|
+
* Defaults to **least-privilege** (empty `Specific` ⇒ deny): an unspecified or
|
|
1174
|
+
* legacy grant grants nothing. All-access must be requested explicitly via
|
|
1175
|
+
* `ModelGrant::All`. Symmetric with `ApprovedResourcesV1`'s empty-MCP default.
|
|
1176
|
+
*/
|
|
1177
|
+
export type ModelGrant = {
|
|
1178
|
+
type: 'all';
|
|
1179
|
+
} | {
|
|
1180
|
+
ids: Array<string>;
|
|
1181
|
+
type: 'specific';
|
|
1182
|
+
};
|
|
1183
|
+
|
|
1171
1184
|
/**
|
|
1172
1185
|
* Model metadata for API responses
|
|
1173
1186
|
*/
|
|
@@ -1178,6 +1191,48 @@ export type ModelMetadata = {
|
|
|
1178
1191
|
chat_template?: string | null;
|
|
1179
1192
|
};
|
|
1180
1193
|
|
|
1194
|
+
/**
|
|
1195
|
+
* A composite alias that fronts an ordered list of targets and routes a chat
|
|
1196
|
+
* request through them via a pluggable strategy. v1 ships only the fallback strategy.
|
|
1197
|
+
*/
|
|
1198
|
+
export type ModelRouterAlias = {
|
|
1199
|
+
id: string;
|
|
1200
|
+
/**
|
|
1201
|
+
* User-facing model name, unique across all alias kinds.
|
|
1202
|
+
*/
|
|
1203
|
+
alias: string;
|
|
1204
|
+
/**
|
|
1205
|
+
* Ordered list of targets; order is the fallback priority.
|
|
1206
|
+
*/
|
|
1207
|
+
targets: Array<RouterTarget>;
|
|
1208
|
+
strategy: RoutingStrategyConfig;
|
|
1209
|
+
created_at: string;
|
|
1210
|
+
updated_at: string;
|
|
1211
|
+
};
|
|
1212
|
+
|
|
1213
|
+
/**
|
|
1214
|
+
* Input request for creating or updating a model-router. Used as `ValidatedJson` in handlers
|
|
1215
|
+
* for both create and update (PUT). A zero-target or all-disabled router is allowed to save.
|
|
1216
|
+
*/
|
|
1217
|
+
export type ModelRouterRequest = {
|
|
1218
|
+
alias: string;
|
|
1219
|
+
targets?: Array<RouterTargetRequest>;
|
|
1220
|
+
strategy?: RoutingStrategyConfig;
|
|
1221
|
+
};
|
|
1222
|
+
|
|
1223
|
+
/**
|
|
1224
|
+
* API response for model-router aliases.
|
|
1225
|
+
*/
|
|
1226
|
+
export type ModelRouterResponse = {
|
|
1227
|
+
source: string;
|
|
1228
|
+
id: string;
|
|
1229
|
+
alias: string;
|
|
1230
|
+
targets: Array<RouterTarget>;
|
|
1231
|
+
strategy: RoutingStrategyConfig;
|
|
1232
|
+
created_at: string;
|
|
1233
|
+
updated_at: string;
|
|
1234
|
+
};
|
|
1235
|
+
|
|
1181
1236
|
/**
|
|
1182
1237
|
* Request for creating a new download request
|
|
1183
1238
|
*/
|
|
@@ -1201,6 +1256,7 @@ export type OaiRequestParams = {
|
|
|
1201
1256
|
temperature?: number | null;
|
|
1202
1257
|
top_p?: number | null;
|
|
1203
1258
|
user?: string | null;
|
|
1259
|
+
system_prompt?: string | null;
|
|
1204
1260
|
};
|
|
1205
1261
|
|
|
1206
1262
|
export type OAuthDiscoverAsRequest = {
|
|
@@ -1273,9 +1329,6 @@ export type PaginatedDownloadResponse = {
|
|
|
1273
1329
|
page_size: number;
|
|
1274
1330
|
};
|
|
1275
1331
|
|
|
1276
|
-
/**
|
|
1277
|
-
* Paginated list of local model files
|
|
1278
|
-
*/
|
|
1279
1332
|
export type PaginatedLocalModelResponse = {
|
|
1280
1333
|
data: Array<LocalModelResponse>;
|
|
1281
1334
|
total: number;
|
|
@@ -1354,9 +1407,6 @@ export type PingResponse = {
|
|
|
1354
1407
|
message: string;
|
|
1355
1408
|
};
|
|
1356
1409
|
|
|
1357
|
-
/**
|
|
1358
|
-
* Response for queue status operations
|
|
1359
|
-
*/
|
|
1360
1410
|
export type QueueStatusResponse = {
|
|
1361
1411
|
/**
|
|
1362
1412
|
* Queue status ("idle" or "processing")
|
|
@@ -1421,19 +1471,112 @@ export type RequestedMcpServer = {
|
|
|
1421
1471
|
};
|
|
1422
1472
|
|
|
1423
1473
|
/**
|
|
1424
|
-
* Versioned envelope for requested resources.
|
|
1425
1474
|
* The `version` tag is mandatory — clients must specify which version they are using.
|
|
1426
1475
|
*/
|
|
1427
1476
|
export type RequestedResources = RequestedResourcesV1 & {
|
|
1428
1477
|
version: '1';
|
|
1429
1478
|
};
|
|
1430
1479
|
|
|
1480
|
+
/**
|
|
1481
|
+
* What the external app asks for. The four booleans are **UI drivers**: they tell
|
|
1482
|
+
* the consent screen which controls to render (the owner decides the actual grant).
|
|
1483
|
+
* Fields are domain-first (`models_*` / `mcps_*`), matching `ApprovedResourcesV1`.
|
|
1484
|
+
* `mcp_servers` is the existing by-url MCP request and is unchanged.
|
|
1485
|
+
*
|
|
1486
|
+
* `models_access` defaults to **true**: unless the app explicitly opts out
|
|
1487
|
+
* (`models_access: false`), the consent screen shows the model-access selector so
|
|
1488
|
+
* the owner can always scope models. (The other UI-driver flags default to false.)
|
|
1489
|
+
*/
|
|
1431
1490
|
export type RequestedResourcesV1 = {
|
|
1491
|
+
/**
|
|
1492
|
+
* Render the "list all models" toggle.
|
|
1493
|
+
*/
|
|
1494
|
+
models_list?: boolean;
|
|
1495
|
+
/**
|
|
1496
|
+
* Render the model All/Specific access selector. Defaults to `true` (shown).
|
|
1497
|
+
*/
|
|
1498
|
+
models_access?: boolean;
|
|
1499
|
+
/**
|
|
1500
|
+
* Render the "list all MCPs" toggle.
|
|
1501
|
+
*/
|
|
1502
|
+
mcps_list?: boolean;
|
|
1503
|
+
/**
|
|
1504
|
+
* Render the owner-extra MCP All/Specific access selector.
|
|
1505
|
+
*/
|
|
1506
|
+
mcps_access?: boolean;
|
|
1432
1507
|
mcp_servers?: Array<RequestedMcpServer>;
|
|
1433
1508
|
};
|
|
1434
1509
|
|
|
1510
|
+
/**
|
|
1511
|
+
* Effective access to a class of resources (models or MCPs) for an API token,
|
|
1512
|
+
* reflected from its grants. Discriminated on `type`: `all` ⇒ every current and
|
|
1513
|
+
* future resource; `specific` ⇒ the listed `ids` (empty ⇒ no access).
|
|
1514
|
+
* `list` is the `list_*` toggle (whether the token may enumerate the full catalog).
|
|
1515
|
+
*/
|
|
1516
|
+
export type ResourceAccess = {
|
|
1517
|
+
list: boolean;
|
|
1518
|
+
type: 'all';
|
|
1519
|
+
} | {
|
|
1520
|
+
list: boolean;
|
|
1521
|
+
ids: Array<string>;
|
|
1522
|
+
type: 'specific';
|
|
1523
|
+
};
|
|
1524
|
+
|
|
1525
|
+
/**
|
|
1526
|
+
* Effective resource access for a token-bearing principal (API token or external
|
|
1527
|
+
* app), reflected from its grants. Reported uniformly via the `access` envelope
|
|
1528
|
+
* field for both principals.
|
|
1529
|
+
*/
|
|
1530
|
+
export type ResourceAccessInfo = {
|
|
1531
|
+
/**
|
|
1532
|
+
* Effective model access for this principal.
|
|
1533
|
+
*/
|
|
1534
|
+
models: ResourceAccess;
|
|
1535
|
+
/**
|
|
1536
|
+
* Effective MCP access for this principal.
|
|
1537
|
+
*/
|
|
1538
|
+
mcps: ResourceAccess;
|
|
1539
|
+
};
|
|
1540
|
+
|
|
1435
1541
|
export type ResourceRole = 'resource_anonymous' | 'resource_guest' | 'resource_user' | 'resource_power_user' | 'resource_manager' | 'resource_admin';
|
|
1436
1542
|
|
|
1543
|
+
/**
|
|
1544
|
+
* One target in a model-router: a reference to an existing alias plus a pinned model.
|
|
1545
|
+
*/
|
|
1546
|
+
export type RouterTarget = {
|
|
1547
|
+
/**
|
|
1548
|
+
* Name of an existing user/model/api alias (NOT a model-router).
|
|
1549
|
+
*/
|
|
1550
|
+
alias: string;
|
|
1551
|
+
/**
|
|
1552
|
+
* Concrete model placed into `request["model"]` when forwarding to this target.
|
|
1553
|
+
*/
|
|
1554
|
+
model: string;
|
|
1555
|
+
/**
|
|
1556
|
+
* Whether this target is part of the active sequence. Disabled targets are never
|
|
1557
|
+
* attempted but keep their config and position. Defaults to enabled.
|
|
1558
|
+
*/
|
|
1559
|
+
enabled?: boolean;
|
|
1560
|
+
/**
|
|
1561
|
+
* SEAM (reserved): ignored by Fallback; used by a future weighted strategy.
|
|
1562
|
+
*/
|
|
1563
|
+
weight?: number | null;
|
|
1564
|
+
};
|
|
1565
|
+
|
|
1566
|
+
export type RouterTargetRequest = {
|
|
1567
|
+
alias: string;
|
|
1568
|
+
model: string;
|
|
1569
|
+
enabled?: boolean;
|
|
1570
|
+
weight?: number | null;
|
|
1571
|
+
};
|
|
1572
|
+
|
|
1573
|
+
/**
|
|
1574
|
+
* `{"strategy":"fallback", ...}` — try targets in order, first success wins.
|
|
1575
|
+
*/
|
|
1576
|
+
export type RoutingStrategyConfig = FallbackConfig & {
|
|
1577
|
+
strategy: 'fallback';
|
|
1578
|
+
};
|
|
1579
|
+
|
|
1437
1580
|
export type SettingInfo = {
|
|
1438
1581
|
key: string;
|
|
1439
1582
|
current_value: unknown;
|
|
@@ -1537,17 +1680,11 @@ export type TestPromptResponse = {
|
|
|
1537
1680
|
error?: string | null;
|
|
1538
1681
|
};
|
|
1539
1682
|
|
|
1540
|
-
/**
|
|
1541
|
-
* Thinking capability and supported type configurations.
|
|
1542
|
-
*/
|
|
1543
1683
|
export type ThinkingCapability = {
|
|
1544
1684
|
supported: boolean;
|
|
1545
1685
|
types: ThinkingTypes;
|
|
1546
1686
|
};
|
|
1547
1687
|
|
|
1548
|
-
/**
|
|
1549
|
-
* Supported thinking type configurations.
|
|
1550
|
-
*/
|
|
1551
1688
|
export type ThinkingTypes = {
|
|
1552
1689
|
adaptive: CapabilitySupport;
|
|
1553
1690
|
enabled: CapabilitySupport;
|
|
@@ -1567,12 +1704,41 @@ export type TokenDetail = {
|
|
|
1567
1704
|
token_prefix: string;
|
|
1568
1705
|
scopes: string;
|
|
1569
1706
|
status: TokenStatus;
|
|
1570
|
-
|
|
1707
|
+
/**
|
|
1708
|
+
* Per-resource grants this token carries.
|
|
1709
|
+
*/
|
|
1710
|
+
grants: TokenGrants;
|
|
1711
|
+
last_used_at?: string | null;
|
|
1712
|
+
created_at: string;
|
|
1571
1713
|
updated_at: string;
|
|
1572
1714
|
};
|
|
1573
1715
|
|
|
1574
1716
|
/**
|
|
1575
|
-
*
|
|
1717
|
+
* Versioned envelope; the `version` tag is mandatory (mirrors `ApprovedResources`).
|
|
1718
|
+
*/
|
|
1719
|
+
export type TokenGrants = TokenGrantsV1 & {
|
|
1720
|
+
version: '1';
|
|
1721
|
+
};
|
|
1722
|
+
|
|
1723
|
+
/**
|
|
1724
|
+
* Per-resource grants carried by an API token. Listing (`models_list` /
|
|
1725
|
+
* `mcps_list`) is separate from inference/connect: with listing off the
|
|
1726
|
+
* discovery endpoints return an empty set, but inference on an individually
|
|
1727
|
+
* granted resource still succeeds.
|
|
1728
|
+
*
|
|
1729
|
+
* Intentionally standalone — NOT shared with the App-access-request envelope
|
|
1730
|
+
* (`ApprovedResources`); the two may diverge.
|
|
1731
|
+
*/
|
|
1732
|
+
export type TokenGrantsV1 = {
|
|
1733
|
+
models_list?: boolean;
|
|
1734
|
+
models?: ModelGrant;
|
|
1735
|
+
mcps_list?: boolean;
|
|
1736
|
+
mcps?: McpGrant;
|
|
1737
|
+
};
|
|
1738
|
+
|
|
1739
|
+
/**
|
|
1740
|
+
* API Token information response. Effective model/MCP access is reported uniformly
|
|
1741
|
+
* via the envelope's `access` field (same shape as external apps), not inline here.
|
|
1576
1742
|
*/
|
|
1577
1743
|
export type TokenInfo = {
|
|
1578
1744
|
role: TokenScope;
|
|
@@ -1587,12 +1753,9 @@ export type ToolCapabilities = {
|
|
|
1587
1753
|
structured_output?: boolean | null;
|
|
1588
1754
|
};
|
|
1589
1755
|
|
|
1590
|
-
/**
|
|
1591
|
-
* Request to update a setting value
|
|
1592
|
-
*/
|
|
1593
1756
|
export type UpdateSettingRequest = {
|
|
1594
1757
|
/**
|
|
1595
|
-
*
|
|
1758
|
+
* type depends on setting metadata
|
|
1596
1759
|
*/
|
|
1597
1760
|
value: unknown;
|
|
1598
1761
|
};
|
|
@@ -1699,6 +1862,10 @@ export type UserAliasResponse = {
|
|
|
1699
1862
|
context_params: Array<string>;
|
|
1700
1863
|
created_at: string;
|
|
1701
1864
|
updated_at: string;
|
|
1865
|
+
/**
|
|
1866
|
+
* Local GGUF file size in bytes (present when the file is resolvable on disk)
|
|
1867
|
+
*/
|
|
1868
|
+
size?: number | null;
|
|
1702
1869
|
metadata?: null | ModelMetadata;
|
|
1703
1870
|
};
|
|
1704
1871
|
|
|
@@ -1708,6 +1875,11 @@ export type UserInfo = {
|
|
|
1708
1875
|
first_name?: string | null;
|
|
1709
1876
|
last_name?: string | null;
|
|
1710
1877
|
role?: null | AppRole;
|
|
1878
|
+
/**
|
|
1879
|
+
* OIDC id_token for the active session, when present. Used by the frontend to
|
|
1880
|
+
* authenticate direct calls to the external reference API. Omitted for token/exchange auth.
|
|
1881
|
+
*/
|
|
1882
|
+
id_token?: string | null;
|
|
1711
1883
|
};
|
|
1712
1884
|
|
|
1713
1885
|
/**
|
|
@@ -1715,6 +1887,7 @@ export type UserInfo = {
|
|
|
1715
1887
|
*/
|
|
1716
1888
|
export type UserInfoEnvelope = UserResponse & {
|
|
1717
1889
|
dashboard?: null | DashboardUser;
|
|
1890
|
+
access?: null | ResourceAccessInfo;
|
|
1718
1891
|
};
|
|
1719
1892
|
|
|
1720
1893
|
export type UserListResponse = {
|
|
@@ -1795,6 +1968,43 @@ export type ListAllAccessRequestsResponses = {
|
|
|
1795
1968
|
|
|
1796
1969
|
export type ListAllAccessRequestsResponse = ListAllAccessRequestsResponses[keyof ListAllAccessRequestsResponses];
|
|
1797
1970
|
|
|
1971
|
+
export type ListAppAccessData = {
|
|
1972
|
+
body?: never;
|
|
1973
|
+
path?: never;
|
|
1974
|
+
query?: never;
|
|
1975
|
+
url: '/bodhi/v1/access-requests/apps';
|
|
1976
|
+
};
|
|
1977
|
+
|
|
1978
|
+
export type ListAppAccessErrors = {
|
|
1979
|
+
/**
|
|
1980
|
+
* Invalid request parameters
|
|
1981
|
+
*/
|
|
1982
|
+
400: BodhiErrorResponse;
|
|
1983
|
+
/**
|
|
1984
|
+
* Not authenticated
|
|
1985
|
+
*/
|
|
1986
|
+
401: BodhiErrorResponse;
|
|
1987
|
+
/**
|
|
1988
|
+
* Insufficient permissions
|
|
1989
|
+
*/
|
|
1990
|
+
403: BodhiErrorResponse;
|
|
1991
|
+
/**
|
|
1992
|
+
* Internal server error
|
|
1993
|
+
*/
|
|
1994
|
+
500: BodhiErrorResponse;
|
|
1995
|
+
};
|
|
1996
|
+
|
|
1997
|
+
export type ListAppAccessError = ListAppAccessErrors[keyof ListAppAccessErrors];
|
|
1998
|
+
|
|
1999
|
+
export type ListAppAccessResponses = {
|
|
2000
|
+
/**
|
|
2001
|
+
* Issued app tokens
|
|
2002
|
+
*/
|
|
2003
|
+
200: ListAppAccessResponse;
|
|
2004
|
+
};
|
|
2005
|
+
|
|
2006
|
+
export type ListAppAccessResponse2 = ListAppAccessResponses[keyof ListAppAccessResponses];
|
|
2007
|
+
|
|
1798
2008
|
export type ListPendingAccessRequestsData = {
|
|
1799
2009
|
body?: never;
|
|
1800
2010
|
path?: never;
|
|
@@ -2093,6 +2303,56 @@ export type GetAccessRequestReviewResponses = {
|
|
|
2093
2303
|
|
|
2094
2304
|
export type GetAccessRequestReviewResponse = GetAccessRequestReviewResponses[keyof GetAccessRequestReviewResponses];
|
|
2095
2305
|
|
|
2306
|
+
export type RevokeAppAccessData = {
|
|
2307
|
+
body?: never;
|
|
2308
|
+
path: {
|
|
2309
|
+
/**
|
|
2310
|
+
* Access request ID
|
|
2311
|
+
*/
|
|
2312
|
+
id: string;
|
|
2313
|
+
};
|
|
2314
|
+
query?: never;
|
|
2315
|
+
url: '/bodhi/v1/access-requests/{id}/revoke';
|
|
2316
|
+
};
|
|
2317
|
+
|
|
2318
|
+
export type RevokeAppAccessErrors = {
|
|
2319
|
+
/**
|
|
2320
|
+
* Invalid request parameters
|
|
2321
|
+
*/
|
|
2322
|
+
400: BodhiErrorResponse;
|
|
2323
|
+
/**
|
|
2324
|
+
* Not authenticated
|
|
2325
|
+
*/
|
|
2326
|
+
401: BodhiErrorResponse;
|
|
2327
|
+
/**
|
|
2328
|
+
* Insufficient permissions
|
|
2329
|
+
*/
|
|
2330
|
+
403: BodhiErrorResponse;
|
|
2331
|
+
/**
|
|
2332
|
+
* Not found
|
|
2333
|
+
*/
|
|
2334
|
+
404: BodhiErrorResponse;
|
|
2335
|
+
/**
|
|
2336
|
+
* Not in a revocable state
|
|
2337
|
+
*/
|
|
2338
|
+
409: BodhiErrorResponse;
|
|
2339
|
+
/**
|
|
2340
|
+
* Internal server error
|
|
2341
|
+
*/
|
|
2342
|
+
500: BodhiErrorResponse;
|
|
2343
|
+
};
|
|
2344
|
+
|
|
2345
|
+
export type RevokeAppAccessError = RevokeAppAccessErrors[keyof RevokeAppAccessErrors];
|
|
2346
|
+
|
|
2347
|
+
export type RevokeAppAccessResponses = {
|
|
2348
|
+
/**
|
|
2349
|
+
* Grant revoked
|
|
2350
|
+
*/
|
|
2351
|
+
200: AppAccessSummary;
|
|
2352
|
+
};
|
|
2353
|
+
|
|
2354
|
+
export type RevokeAppAccessResponse = RevokeAppAccessResponses[keyof RevokeAppAccessResponses];
|
|
2355
|
+
|
|
2096
2356
|
export type GetAccessRequestStatusData = {
|
|
2097
2357
|
body?: never;
|
|
2098
2358
|
path: {
|
|
@@ -3420,6 +3680,34 @@ export type ListAllModelsData = {
|
|
|
3420
3680
|
* Sort order: 'asc' for ascending, 'desc' for descending
|
|
3421
3681
|
*/
|
|
3422
3682
|
sort_order?: string;
|
|
3683
|
+
/**
|
|
3684
|
+
* Alias type facet (comma-separated): `local_file`, `model_alias`, `api_model`, `fallback`.
|
|
3685
|
+
*/
|
|
3686
|
+
type?: string;
|
|
3687
|
+
/**
|
|
3688
|
+
* API-format facet (comma-separated), API rows only: `openai`, `responses`, `anthropic`,
|
|
3689
|
+
* `gemini`, `liberty`. `anthropic` matches both anthropic and anthropic_oauth aliases.
|
|
3690
|
+
*/
|
|
3691
|
+
api_format?: string;
|
|
3692
|
+
/**
|
|
3693
|
+
* Minimum local-file size in bytes (inclusive). Applies to local rows with a known size;
|
|
3694
|
+
* rows without a size (API/router) are not filtered out by size.
|
|
3695
|
+
*/
|
|
3696
|
+
size_min?: number;
|
|
3697
|
+
/**
|
|
3698
|
+
* Maximum local-file size in bytes (inclusive). See `size_min`.
|
|
3699
|
+
*/
|
|
3700
|
+
size_max?: number;
|
|
3701
|
+
/**
|
|
3702
|
+
* Capability facet (comma-separated), local rows only: `vision`, `tool_use`, `reasoning`.
|
|
3703
|
+
* A row passes only if it has metadata with every requested capability set true.
|
|
3704
|
+
*/
|
|
3705
|
+
capability?: string;
|
|
3706
|
+
/**
|
|
3707
|
+
* Free-text search (case-insensitive substring) over a row's identifying fields — alias/name,
|
|
3708
|
+
* repo, filename for local rows; id, name, base_url for API rows; alias for routers.
|
|
3709
|
+
*/
|
|
3710
|
+
search?: string;
|
|
3423
3711
|
};
|
|
3424
3712
|
url: '/bodhi/v1/models';
|
|
3425
3713
|
};
|
|
@@ -4157,6 +4445,98 @@ export type GetDownloadStatusResponses = {
|
|
|
4157
4445
|
|
|
4158
4446
|
export type GetDownloadStatusResponse = GetDownloadStatusResponses[keyof GetDownloadStatusResponses];
|
|
4159
4447
|
|
|
4448
|
+
export type ArchiveDownloadData = {
|
|
4449
|
+
body?: never;
|
|
4450
|
+
path: {
|
|
4451
|
+
/**
|
|
4452
|
+
* Unique identifier of the download request
|
|
4453
|
+
*/
|
|
4454
|
+
id: string;
|
|
4455
|
+
};
|
|
4456
|
+
query?: never;
|
|
4457
|
+
url: '/bodhi/v1/models/files/pull/{id}/archive';
|
|
4458
|
+
};
|
|
4459
|
+
|
|
4460
|
+
export type ArchiveDownloadErrors = {
|
|
4461
|
+
/**
|
|
4462
|
+
* Invalid request parameters
|
|
4463
|
+
*/
|
|
4464
|
+
400: BodhiErrorResponse;
|
|
4465
|
+
/**
|
|
4466
|
+
* Not authenticated
|
|
4467
|
+
*/
|
|
4468
|
+
401: BodhiErrorResponse;
|
|
4469
|
+
/**
|
|
4470
|
+
* Insufficient permissions
|
|
4471
|
+
*/
|
|
4472
|
+
403: BodhiErrorResponse;
|
|
4473
|
+
/**
|
|
4474
|
+
* Download request not found
|
|
4475
|
+
*/
|
|
4476
|
+
404: BodhiErrorResponse;
|
|
4477
|
+
/**
|
|
4478
|
+
* Internal server error
|
|
4479
|
+
*/
|
|
4480
|
+
500: BodhiErrorResponse;
|
|
4481
|
+
};
|
|
4482
|
+
|
|
4483
|
+
export type ArchiveDownloadError = ArchiveDownloadErrors[keyof ArchiveDownloadErrors];
|
|
4484
|
+
|
|
4485
|
+
export type ArchiveDownloadResponses = {
|
|
4486
|
+
/**
|
|
4487
|
+
* Download request archived
|
|
4488
|
+
*/
|
|
4489
|
+
200: DownloadRequest;
|
|
4490
|
+
};
|
|
4491
|
+
|
|
4492
|
+
export type ArchiveDownloadResponse = ArchiveDownloadResponses[keyof ArchiveDownloadResponses];
|
|
4493
|
+
|
|
4494
|
+
export type RetryDownloadData = {
|
|
4495
|
+
body?: never;
|
|
4496
|
+
path: {
|
|
4497
|
+
/**
|
|
4498
|
+
* Unique identifier of the download request
|
|
4499
|
+
*/
|
|
4500
|
+
id: string;
|
|
4501
|
+
};
|
|
4502
|
+
query?: never;
|
|
4503
|
+
url: '/bodhi/v1/models/files/pull/{id}/retry';
|
|
4504
|
+
};
|
|
4505
|
+
|
|
4506
|
+
export type RetryDownloadErrors = {
|
|
4507
|
+
/**
|
|
4508
|
+
* Invalid request parameters
|
|
4509
|
+
*/
|
|
4510
|
+
400: BodhiErrorResponse;
|
|
4511
|
+
/**
|
|
4512
|
+
* Not authenticated
|
|
4513
|
+
*/
|
|
4514
|
+
401: BodhiErrorResponse;
|
|
4515
|
+
/**
|
|
4516
|
+
* Insufficient permissions
|
|
4517
|
+
*/
|
|
4518
|
+
403: BodhiErrorResponse;
|
|
4519
|
+
/**
|
|
4520
|
+
* Download request not found
|
|
4521
|
+
*/
|
|
4522
|
+
404: BodhiErrorResponse;
|
|
4523
|
+
/**
|
|
4524
|
+
* Internal server error
|
|
4525
|
+
*/
|
|
4526
|
+
500: BodhiErrorResponse;
|
|
4527
|
+
};
|
|
4528
|
+
|
|
4529
|
+
export type RetryDownloadError = RetryDownloadErrors[keyof RetryDownloadErrors];
|
|
4530
|
+
|
|
4531
|
+
export type RetryDownloadResponses = {
|
|
4532
|
+
/**
|
|
4533
|
+
* Download request reset and re-started
|
|
4534
|
+
*/
|
|
4535
|
+
200: DownloadRequest;
|
|
4536
|
+
};
|
|
4537
|
+
|
|
4538
|
+
export type RetryDownloadResponse = RetryDownloadResponses[keyof RetryDownloadResponses];
|
|
4539
|
+
|
|
4160
4540
|
export type RefreshModelMetadataData = {
|
|
4161
4541
|
/**
|
|
4162
4542
|
* Refresh request - either bulk (source='all') or single model (source='model' with identifiers)
|
|
@@ -4205,6 +4585,181 @@ export type RefreshModelMetadataResponses = {
|
|
|
4205
4585
|
|
|
4206
4586
|
export type RefreshModelMetadataResponse = RefreshModelMetadataResponses[keyof RefreshModelMetadataResponses];
|
|
4207
4587
|
|
|
4588
|
+
export type CreateModelRouterData = {
|
|
4589
|
+
body: ModelRouterRequest;
|
|
4590
|
+
path?: never;
|
|
4591
|
+
query?: never;
|
|
4592
|
+
url: '/bodhi/v1/models/router';
|
|
4593
|
+
};
|
|
4594
|
+
|
|
4595
|
+
export type CreateModelRouterErrors = {
|
|
4596
|
+
/**
|
|
4597
|
+
* Invalid request parameters
|
|
4598
|
+
*/
|
|
4599
|
+
400: BodhiErrorResponse;
|
|
4600
|
+
/**
|
|
4601
|
+
* Not authenticated
|
|
4602
|
+
*/
|
|
4603
|
+
401: BodhiErrorResponse;
|
|
4604
|
+
/**
|
|
4605
|
+
* Insufficient permissions
|
|
4606
|
+
*/
|
|
4607
|
+
403: BodhiErrorResponse;
|
|
4608
|
+
/**
|
|
4609
|
+
* Internal server error
|
|
4610
|
+
*/
|
|
4611
|
+
500: BodhiErrorResponse;
|
|
4612
|
+
};
|
|
4613
|
+
|
|
4614
|
+
export type CreateModelRouterError = CreateModelRouterErrors[keyof CreateModelRouterErrors];
|
|
4615
|
+
|
|
4616
|
+
export type CreateModelRouterResponses = {
|
|
4617
|
+
/**
|
|
4618
|
+
* Model-router created
|
|
4619
|
+
*/
|
|
4620
|
+
201: ModelRouterResponse;
|
|
4621
|
+
};
|
|
4622
|
+
|
|
4623
|
+
export type CreateModelRouterResponse = CreateModelRouterResponses[keyof CreateModelRouterResponses];
|
|
4624
|
+
|
|
4625
|
+
export type DeleteModelRouterData = {
|
|
4626
|
+
body?: never;
|
|
4627
|
+
path: {
|
|
4628
|
+
/**
|
|
4629
|
+
* Model-router ID
|
|
4630
|
+
*/
|
|
4631
|
+
id: string;
|
|
4632
|
+
};
|
|
4633
|
+
query?: never;
|
|
4634
|
+
url: '/bodhi/v1/models/router/{id}';
|
|
4635
|
+
};
|
|
4636
|
+
|
|
4637
|
+
export type DeleteModelRouterErrors = {
|
|
4638
|
+
/**
|
|
4639
|
+
* Invalid request parameters
|
|
4640
|
+
*/
|
|
4641
|
+
400: BodhiErrorResponse;
|
|
4642
|
+
/**
|
|
4643
|
+
* Not authenticated
|
|
4644
|
+
*/
|
|
4645
|
+
401: BodhiErrorResponse;
|
|
4646
|
+
/**
|
|
4647
|
+
* Insufficient permissions
|
|
4648
|
+
*/
|
|
4649
|
+
403: BodhiErrorResponse;
|
|
4650
|
+
/**
|
|
4651
|
+
* Model-router not found
|
|
4652
|
+
*/
|
|
4653
|
+
404: BodhiErrorResponse;
|
|
4654
|
+
/**
|
|
4655
|
+
* Internal server error
|
|
4656
|
+
*/
|
|
4657
|
+
500: BodhiErrorResponse;
|
|
4658
|
+
};
|
|
4659
|
+
|
|
4660
|
+
export type DeleteModelRouterError = DeleteModelRouterErrors[keyof DeleteModelRouterErrors];
|
|
4661
|
+
|
|
4662
|
+
export type DeleteModelRouterResponses = {
|
|
4663
|
+
/**
|
|
4664
|
+
* Model-router deleted
|
|
4665
|
+
*/
|
|
4666
|
+
204: void;
|
|
4667
|
+
};
|
|
4668
|
+
|
|
4669
|
+
export type DeleteModelRouterResponse = DeleteModelRouterResponses[keyof DeleteModelRouterResponses];
|
|
4670
|
+
|
|
4671
|
+
export type GetModelRouterData = {
|
|
4672
|
+
body?: never;
|
|
4673
|
+
path: {
|
|
4674
|
+
/**
|
|
4675
|
+
* Unique identifier for the model-router alias
|
|
4676
|
+
*/
|
|
4677
|
+
id: string;
|
|
4678
|
+
};
|
|
4679
|
+
query?: never;
|
|
4680
|
+
url: '/bodhi/v1/models/router/{id}';
|
|
4681
|
+
};
|
|
4682
|
+
|
|
4683
|
+
export type GetModelRouterErrors = {
|
|
4684
|
+
/**
|
|
4685
|
+
* Invalid request parameters
|
|
4686
|
+
*/
|
|
4687
|
+
400: BodhiErrorResponse;
|
|
4688
|
+
/**
|
|
4689
|
+
* Not authenticated
|
|
4690
|
+
*/
|
|
4691
|
+
401: BodhiErrorResponse;
|
|
4692
|
+
/**
|
|
4693
|
+
* Insufficient permissions
|
|
4694
|
+
*/
|
|
4695
|
+
403: BodhiErrorResponse;
|
|
4696
|
+
/**
|
|
4697
|
+
* Model-router with specified ID not found
|
|
4698
|
+
*/
|
|
4699
|
+
404: BodhiErrorResponse;
|
|
4700
|
+
/**
|
|
4701
|
+
* Internal server error
|
|
4702
|
+
*/
|
|
4703
|
+
500: BodhiErrorResponse;
|
|
4704
|
+
};
|
|
4705
|
+
|
|
4706
|
+
export type GetModelRouterError = GetModelRouterErrors[keyof GetModelRouterErrors];
|
|
4707
|
+
|
|
4708
|
+
export type GetModelRouterResponses = {
|
|
4709
|
+
/**
|
|
4710
|
+
* Model-router configuration retrieved
|
|
4711
|
+
*/
|
|
4712
|
+
200: ModelRouterResponse;
|
|
4713
|
+
};
|
|
4714
|
+
|
|
4715
|
+
export type GetModelRouterResponse = GetModelRouterResponses[keyof GetModelRouterResponses];
|
|
4716
|
+
|
|
4717
|
+
export type UpdateModelRouterData = {
|
|
4718
|
+
body: ModelRouterRequest;
|
|
4719
|
+
path: {
|
|
4720
|
+
/**
|
|
4721
|
+
* Model-router ID
|
|
4722
|
+
*/
|
|
4723
|
+
id: string;
|
|
4724
|
+
};
|
|
4725
|
+
query?: never;
|
|
4726
|
+
url: '/bodhi/v1/models/router/{id}';
|
|
4727
|
+
};
|
|
4728
|
+
|
|
4729
|
+
export type UpdateModelRouterErrors = {
|
|
4730
|
+
/**
|
|
4731
|
+
* Invalid request parameters
|
|
4732
|
+
*/
|
|
4733
|
+
400: BodhiErrorResponse;
|
|
4734
|
+
/**
|
|
4735
|
+
* Not authenticated
|
|
4736
|
+
*/
|
|
4737
|
+
401: BodhiErrorResponse;
|
|
4738
|
+
/**
|
|
4739
|
+
* Insufficient permissions
|
|
4740
|
+
*/
|
|
4741
|
+
403: BodhiErrorResponse;
|
|
4742
|
+
/**
|
|
4743
|
+
* Model-router not found
|
|
4744
|
+
*/
|
|
4745
|
+
404: BodhiErrorResponse;
|
|
4746
|
+
/**
|
|
4747
|
+
* Internal server error
|
|
4748
|
+
*/
|
|
4749
|
+
500: BodhiErrorResponse;
|
|
4750
|
+
};
|
|
4751
|
+
|
|
4752
|
+
export type UpdateModelRouterError = UpdateModelRouterErrors[keyof UpdateModelRouterErrors];
|
|
4753
|
+
|
|
4754
|
+
export type UpdateModelRouterResponses = {
|
|
4755
|
+
/**
|
|
4756
|
+
* Model-router updated
|
|
4757
|
+
*/
|
|
4758
|
+
200: ModelRouterResponse;
|
|
4759
|
+
};
|
|
4760
|
+
|
|
4761
|
+
export type UpdateModelRouterResponse = UpdateModelRouterResponses[keyof UpdateModelRouterResponses];
|
|
4762
|
+
|
|
4208
4763
|
export type GetAliasData = {
|
|
4209
4764
|
body?: never;
|
|
4210
4765
|
path: {
|
|
@@ -4373,11 +4928,11 @@ export type DeleteSettingResponse = DeleteSettingResponses[keyof DeleteSettingRe
|
|
|
4373
4928
|
|
|
4374
4929
|
export type UpdateSettingData = {
|
|
4375
4930
|
/**
|
|
4376
|
-
*
|
|
4931
|
+
* New setting value
|
|
4377
4932
|
*/
|
|
4378
4933
|
body: {
|
|
4379
4934
|
/**
|
|
4380
|
-
*
|
|
4935
|
+
* type depends on setting metadata
|
|
4381
4936
|
*/
|
|
4382
4937
|
value: unknown;
|
|
4383
4938
|
};
|
|
@@ -4668,6 +5223,52 @@ export type CreateApiTokenResponses = {
|
|
|
4668
5223
|
|
|
4669
5224
|
export type CreateApiTokenResponse = CreateApiTokenResponses[keyof CreateApiTokenResponses];
|
|
4670
5225
|
|
|
5226
|
+
export type DeleteApiTokenData = {
|
|
5227
|
+
body?: never;
|
|
5228
|
+
path: {
|
|
5229
|
+
/**
|
|
5230
|
+
* Unique identifier of the API token to delete
|
|
5231
|
+
*/
|
|
5232
|
+
id: string;
|
|
5233
|
+
};
|
|
5234
|
+
query?: never;
|
|
5235
|
+
url: '/bodhi/v1/tokens/{id}';
|
|
5236
|
+
};
|
|
5237
|
+
|
|
5238
|
+
export type DeleteApiTokenErrors = {
|
|
5239
|
+
/**
|
|
5240
|
+
* Invalid request parameters
|
|
5241
|
+
*/
|
|
5242
|
+
400: BodhiErrorResponse;
|
|
5243
|
+
/**
|
|
5244
|
+
* Not authenticated
|
|
5245
|
+
*/
|
|
5246
|
+
401: BodhiErrorResponse;
|
|
5247
|
+
/**
|
|
5248
|
+
* Insufficient permissions
|
|
5249
|
+
*/
|
|
5250
|
+
403: BodhiErrorResponse;
|
|
5251
|
+
/**
|
|
5252
|
+
* Token not found
|
|
5253
|
+
*/
|
|
5254
|
+
404: BodhiErrorResponse;
|
|
5255
|
+
/**
|
|
5256
|
+
* Internal server error
|
|
5257
|
+
*/
|
|
5258
|
+
500: BodhiErrorResponse;
|
|
5259
|
+
};
|
|
5260
|
+
|
|
5261
|
+
export type DeleteApiTokenError = DeleteApiTokenErrors[keyof DeleteApiTokenErrors];
|
|
5262
|
+
|
|
5263
|
+
export type DeleteApiTokenResponses = {
|
|
5264
|
+
/**
|
|
5265
|
+
* Token deleted successfully
|
|
5266
|
+
*/
|
|
5267
|
+
204: void;
|
|
5268
|
+
};
|
|
5269
|
+
|
|
5270
|
+
export type DeleteApiTokenResponse = DeleteApiTokenResponses[keyof DeleteApiTokenResponses];
|
|
5271
|
+
|
|
4671
5272
|
export type UpdateApiTokenData = {
|
|
4672
5273
|
/**
|
|
4673
5274
|
* Token update request
|