@bodhiapp/ts-client 0.1.16 → 0.1.18

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.
@@ -1,5 +1,86 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
 
3
+ export type AccessRequestActionResponse = {
4
+ /**
5
+ * Updated status after action
6
+ */
7
+ status: AppAccessRequestStatus;
8
+ /**
9
+ * Flow type of the access request
10
+ */
11
+ flow_type: FlowType;
12
+ /**
13
+ * Redirect URL (present for redirect flow)
14
+ */
15
+ redirect_url?: string | null;
16
+ };
17
+
18
+ export type AccessRequestReviewResponse = {
19
+ /**
20
+ * Access request ID
21
+ */
22
+ id: string;
23
+ /**
24
+ * App client ID
25
+ */
26
+ app_client_id: string;
27
+ /**
28
+ * App name from KC (if available)
29
+ */
30
+ app_name?: string | null;
31
+ /**
32
+ * App description from KC (if available)
33
+ */
34
+ app_description?: string | null;
35
+ /**
36
+ * Flow type: "redirect" or "popup"
37
+ */
38
+ flow_type: FlowType;
39
+ /**
40
+ * Current status
41
+ */
42
+ status: AppAccessRequestStatus;
43
+ /**
44
+ * Role requested by the app
45
+ */
46
+ requested_role: string;
47
+ /**
48
+ * Resources requested
49
+ */
50
+ requested: RequestedResources;
51
+ /**
52
+ * Tool type information with user instances
53
+ */
54
+ tools_info: Array<ToolTypeReviewInfo>;
55
+ /**
56
+ * MCP server information with user instances
57
+ */
58
+ mcps_info?: Array<McpServerReviewInfo>;
59
+ };
60
+
61
+ export type AccessRequestStatusResponse = {
62
+ /**
63
+ * Access request ID
64
+ */
65
+ id: string;
66
+ /**
67
+ * Current status: "draft", "approved", "denied", "failed"
68
+ */
69
+ status: AppAccessRequestStatus;
70
+ /**
71
+ * Role requested by the app
72
+ */
73
+ requested_role: string;
74
+ /**
75
+ * Role approved (present when approved)
76
+ */
77
+ approved_role?: string | null;
78
+ /**
79
+ * Access request scope (present when user-approved with tools)
80
+ */
81
+ access_request_scope?: string | null;
82
+ };
83
+
3
84
  /**
4
85
  * Flat enum representing all types of model aliases
5
86
  * Each variant is identified by the source field
@@ -22,10 +103,10 @@ export type ApiAlias = {
22
103
  id: string;
23
104
  api_format: ApiFormat;
24
105
  base_url: string;
25
- models: Array<string>;
106
+ models: JsonVec;
26
107
  prefix?: string | null;
27
108
  forward_all_with_prefix: boolean;
28
- models_cache: Array<string>;
109
+ models_cache: JsonVec;
29
110
  cache_fetched_at: string;
30
111
  created_at: string;
31
112
  updated_at: string;
@@ -67,39 +148,26 @@ export type ApiFormatsResponse = {
67
148
  export type ApiKey = string | null;
68
149
 
69
150
  /**
70
- * Represents an API key update action for API model updates
151
+ * Represents an API key update operation for API model aliases and toolsets.
71
152
  */
72
- export type ApiKeyUpdateAction = {
153
+ export type ApiKeyUpdate = {
73
154
  action: 'keep';
74
155
  } | {
75
156
  /**
76
- * Set a new API key (or add one if none exists) - can be None for public APIs
157
+ * Set a new API key (or add one if none exists) - ApiKey validates length
77
158
  */
78
159
  value: ApiKey;
79
160
  action: 'set';
80
161
  };
81
162
 
82
163
  /**
83
- * API key update enum (mirrors services::db::ApiKeyUpdate)
84
- */
85
- export type ApiKeyUpdateDto = {
86
- action: 'Keep';
87
- } | {
88
- /**
89
- * Set a new API key (or clear if None)
90
- */
91
- value: string | null;
92
- action: 'Set';
93
- };
94
-
95
- /**
96
- * Response containing API model configuration
164
+ * Output type for API model configuration.
97
165
  */
98
- export type ApiModelResponse = {
166
+ export type ApiModelOutput = {
99
167
  id: string;
100
168
  api_format: ApiFormat;
101
169
  base_url: string;
102
- api_key_masked?: string | null;
170
+ has_api_key: boolean;
103
171
  models: Array<string>;
104
172
  prefix?: string | null;
105
173
  forward_all_with_prefix: boolean;
@@ -107,65 +175,38 @@ export type ApiModelResponse = {
107
175
  updated_at: string;
108
176
  };
109
177
 
110
- export type ApiToken = {
111
- id: string;
112
- user_id: string;
113
- name: string;
114
- token_prefix: string;
115
- token_hash: string;
116
- scopes: string;
117
- status: TokenStatus;
118
- created_at: string;
119
- updated_at: string;
120
- };
121
-
122
- export type ApiTokenResponse = {
123
- /**
124
- * API token with bodhiapp_ prefix for programmatic access
125
- */
126
- token: string;
127
- };
128
-
129
- export type AppAccessRequest = {
130
- app_client_id: string;
178
+ /**
179
+ * Input request for creating or updating an API model configuration.
180
+ */
181
+ export type ApiModelRequest = {
131
182
  /**
132
- * Optional version for cache lookup - if matches cached config, skips auth server call
183
+ * API format/protocol (e.g., "openai")
133
184
  */
134
- version?: string | null;
185
+ api_format: ApiFormat;
135
186
  /**
136
- * Optional toolset scope IDs to register with resource-client for token exchange
187
+ * API base URL
137
188
  */
138
- toolset_scope_ids?: Array<string> | null;
139
- };
140
-
141
- export type AppAccessResponse = {
142
- scope: string;
189
+ base_url: string;
143
190
  /**
144
- * List of toolsets the app-client is configured to access
191
+ * API key update action (Keep/Set with Some or None)
145
192
  */
146
- toolsets?: Array<AppClientToolset>;
193
+ api_key?: ApiKeyUpdate;
147
194
  /**
148
- * Version of app-client's toolset configuration on auth server
195
+ * List of available models
149
196
  */
150
- app_client_config_version?: string | null;
151
- };
152
-
153
- /**
154
- * Toolset configuration from app-client registration
155
- */
156
- export type AppClientToolset = {
157
- id: string;
158
- scope: string;
197
+ models: Array<string>;
159
198
  /**
160
- * client scope UUID for cache validation
199
+ * Optional prefix for model namespacing (e.g., "azure/" for "azure/gpt-4")
161
200
  */
162
- scope_id?: string;
201
+ prefix?: string | null;
163
202
  /**
164
- * True if scope has been added to resource-client as optional scope
203
+ * Whether to forward all requests with this prefix (true) or only selected models (false)
165
204
  */
166
- added_to_resource_client?: boolean | null;
205
+ forward_all_with_prefix?: boolean;
167
206
  };
168
207
 
208
+ export type AppAccessRequestStatus = 'draft' | 'approved' | 'denied' | 'failed' | 'expired';
209
+
169
210
  /**
170
211
  * Application information and status
171
212
  */
@@ -182,46 +223,69 @@ export type AppInfo = {
182
223
  * Current application setup and operational status
183
224
  */
184
225
  status: AppStatus;
226
+ /**
227
+ * Deployment mode: "standalone" or "multi_tenant"
228
+ */
229
+ deployment: DeploymentMode;
230
+ /**
231
+ * Active tenant's OAuth client_id (present when authenticated with an active tenant)
232
+ */
233
+ client_id?: string | null;
185
234
  };
186
235
 
187
236
  export type AppRole = ResourceRole | TokenScope | UserScope;
188
237
 
189
- export type AppStatus = 'setup' | 'ready' | 'resource-admin';
238
+ export type AppStatus = 'setup' | 'ready' | 'resource_admin' | 'tenant_selection';
190
239
 
191
240
  /**
192
- * App-level configuration for a toolset (admin-controlled)
241
+ * Application-level toolset configuration
193
242
  */
194
243
  export type AppToolsetConfig = {
195
244
  /**
196
- * OAuth scope string (e.g., "scope_toolset-builtin-exa-web-search")
245
+ * Toolset type identifier (e.g., "builtin-exa-search")
246
+ */
247
+ toolset_type: string;
248
+ /**
249
+ * Human-readable name (e.g., "Exa Web Search")
197
250
  */
198
- scope: string;
251
+ name: string;
199
252
  /**
200
- * Keycloak client scope UUID (environment-specific)
253
+ * Description of the toolset
201
254
  */
202
- scope_uuid: string;
255
+ description: string;
203
256
  /**
204
- * Whether the toolset is enabled for this app instance
257
+ * Whether this toolset type is enabled at app level
205
258
  */
206
259
  enabled: boolean;
207
260
  /**
208
- * User ID of the admin who last updated this configuration
261
+ * User who last updated this config
209
262
  */
210
263
  updated_by: string;
211
264
  /**
212
- * When this configuration was created
265
+ * When this config was created
213
266
  */
214
267
  created_at: string;
215
268
  /**
216
- * When this configuration was last updated
269
+ * When this config was last updated
217
270
  */
218
271
  updated_at: string;
219
272
  };
220
273
 
274
+ export type ApprovalStatus = 'approved' | 'denied';
275
+
221
276
  /**
222
- * The app-level toolset configuration
277
+ * Request for approving an app access request
223
278
  */
224
- export type AppToolsetConfigResponse = AppToolsetConfig;
279
+ export type ApproveAccessRequest = {
280
+ /**
281
+ * Role to grant for the approved request (scope_user_user or scope_user_power_user)
282
+ */
283
+ approved_role: UserScope;
284
+ /**
285
+ * Approved resources with selections
286
+ */
287
+ approved: ApprovedResources;
288
+ };
225
289
 
226
290
  /**
227
291
  * Request body for approving access with role assignment
@@ -233,6 +297,11 @@ export type ApproveUserAccessRequest = {
233
297
  role: ResourceRole;
234
298
  };
235
299
 
300
+ export type ApprovedResources = {
301
+ toolsets?: Array<ToolsetApproval>;
302
+ mcps?: Array<McpApproval>;
303
+ };
304
+
236
305
  export type AuthCallbackRequest = {
237
306
  /**
238
307
  * OAuth authorization code from successful authentication (required for success flow)
@@ -253,6 +322,16 @@ export type AuthCallbackRequest = {
253
322
  [key: string]: string | (string | null) | (string | null) | (string | null) | (string | null) | undefined;
254
323
  };
255
324
 
325
+ /**
326
+ * Request body for initiating OAuth authentication
327
+ */
328
+ export type AuthInitiateRequest = {
329
+ /**
330
+ * The OAuth client_id of the tenant to authenticate with
331
+ */
332
+ client_id: string;
333
+ };
334
+
256
335
  /**
257
336
  * Change user role request
258
337
  */
@@ -260,7 +339,7 @@ export type ChangeRoleRequest = {
260
339
  /**
261
340
  * Role to assign to the user
262
341
  */
263
- role: string;
342
+ role: ResourceRole;
264
343
  };
265
344
 
266
345
  export type ChatChoice = {
@@ -773,57 +852,53 @@ export type ContextLimits = {
773
852
  max_output_tokens?: number | null;
774
853
  };
775
854
 
776
- export type CreateAliasRequest = {
855
+ export type CopyAliasRequest = {
777
856
  alias: string;
778
- repo: string;
779
- filename: string;
780
- snapshot?: string | null;
781
- request_params?: null | OaiRequestParams;
782
- context_params?: Array<string> | null;
783
857
  };
784
858
 
785
859
  /**
786
- * Request to create a new API model configuration
860
+ * Request for creating an app access request
787
861
  */
788
- export type CreateApiModelRequest = {
862
+ export type CreateAccessRequest = {
789
863
  /**
790
- * API format/protocol (e.g., "openai")
864
+ * App client ID from Keycloak
791
865
  */
792
- api_format: ApiFormat;
866
+ app_client_id: string;
793
867
  /**
794
- * API base URL
868
+ * Flow type: "redirect" or "popup"
795
869
  */
796
- base_url: string;
870
+ flow_type: FlowType;
797
871
  /**
798
- * API key for authentication (null for public APIs)
872
+ * Redirect URL for result notification (required for redirect flow)
799
873
  */
800
- api_key?: ApiKey;
874
+ redirect_url?: string | null;
801
875
  /**
802
- * List of available models
876
+ * Role requested for the external app (scope_user_user or scope_user_power_user)
803
877
  */
804
- models: Array<string>;
878
+ requested_role: UserScope;
879
+ requested?: null | RequestedResources;
880
+ };
881
+
882
+ export type CreateAccessRequestResponse = {
805
883
  /**
806
- * Optional prefix for model namespacing (e.g., "azure/" for "azure/gpt-4", "openai:" for "openai:gpt-4")
884
+ * Access request ID
807
885
  */
808
- prefix?: string | null;
886
+ id: string;
809
887
  /**
810
- * Whether to forward all requests with this prefix (true) or only selected models (false)
888
+ * Status (always "draft")
811
889
  */
812
- forward_all_with_prefix?: boolean;
890
+ status: AppAccessRequestStatus;
891
+ /**
892
+ * Review URL for user to approve/deny
893
+ */
894
+ review_url: string;
813
895
  };
814
896
 
815
897
  /**
816
- * Request to create a new API token
898
+ * Wrapper for creating auth configs with server_id in body instead of path
817
899
  */
818
- export type CreateApiTokenRequest = {
819
- /**
820
- * Descriptive name for the API token (minimum 3 characters)
821
- */
822
- name?: string | null;
823
- /**
824
- * Token scope defining access level
825
- */
826
- scope: TokenScope;
900
+ export type CreateAuthConfig = CreateMcpAuthConfigRequest & {
901
+ mcp_server_id: string;
827
902
  };
828
903
 
829
904
  export type CreateChatCompletionRequest = {
@@ -1124,29 +1199,50 @@ export type CreateEmbeddingResponse = {
1124
1199
  };
1125
1200
 
1126
1201
  /**
1127
- * Request to create a toolset
1202
+ * Discriminated union for creating any type of MCP auth config.
1203
+ * The JSON `"type"` field determines the variant: `"header"` or `"oauth"`.
1128
1204
  */
1129
- export type CreateToolsetRequest = {
1130
- /**
1131
- * Toolset scope UUID identifier (e.g., "4ff0e163-36fb-47d6-a5ef-26e396f067d6")
1132
- */
1133
- scope_uuid: string;
1134
- /**
1135
- * User-defined name for this toolset (2-24 chars, alphanumeric + spaces/dash/underscore)
1136
- */
1205
+ export type CreateMcpAuthConfigRequest = {
1206
+ name: string;
1207
+ header_key: string;
1208
+ header_value: string;
1209
+ type: 'header';
1210
+ } | {
1137
1211
  name: string;
1212
+ client_id: string;
1213
+ authorization_endpoint: string;
1214
+ token_endpoint: string;
1215
+ client_secret?: string | null;
1216
+ scopes?: string | null;
1138
1217
  /**
1139
- * Optional description for this toolset
1218
+ * `"pre_registered"` (default) or `"dynamic_registration"`
1140
1219
  */
1220
+ registration_type?: RegistrationType;
1221
+ registration_access_token?: string | null;
1222
+ registration_endpoint?: string | null;
1223
+ token_endpoint_auth_method?: string | null;
1224
+ client_id_issued_at?: number | null;
1225
+ type: 'oauth';
1226
+ };
1227
+
1228
+ export type CreateTenantRequest = {
1229
+ name: string;
1141
1230
  description?: string | null;
1231
+ };
1232
+
1233
+ export type CreateTenantResponse = {
1234
+ client_id: string;
1235
+ };
1236
+
1237
+ export type CreateTokenRequest = {
1142
1238
  /**
1143
- * Whether this toolset is enabled
1239
+ * Descriptive name for the API token
1144
1240
  */
1145
- enabled?: boolean;
1241
+ name?: string | null;
1146
1242
  /**
1147
- * API key for the toolset
1243
+ * Token scope defining access level
1148
1244
  */
1149
- api_key: string;
1245
+ scope: TokenScope;
1150
1246
  };
1151
1247
 
1152
1248
  export type CustomGrammarFormatParam = {
@@ -1204,23 +1300,39 @@ export type CustomToolPropertiesFormat = {
1204
1300
  type: 'grammar';
1205
1301
  };
1206
1302
 
1303
+ export type DeploymentMode = 'standalone' | 'multi_tenant';
1304
+
1207
1305
  export type DownloadRequest = {
1208
1306
  id: string;
1209
1307
  repo: string;
1210
1308
  filename: string;
1211
1309
  status: DownloadStatus;
1212
1310
  error?: string | null;
1311
+ total_bytes?: number | null;
1312
+ downloaded_bytes: number;
1313
+ started_at?: string | null;
1213
1314
  created_at: string;
1214
1315
  updated_at: string;
1215
- total_bytes?: number | null;
1216
- downloaded_bytes?: number;
1217
- started_at: string;
1218
1316
  };
1219
1317
 
1220
1318
  export type DownloadStatus = 'pending' | 'completed' | 'error';
1221
1319
 
1222
1320
  export type Duration = string;
1223
1321
 
1322
+ export type DynamicRegisterRequest = {
1323
+ registration_endpoint: string;
1324
+ redirect_uri: string;
1325
+ scopes?: string | null;
1326
+ };
1327
+
1328
+ export type DynamicRegisterResponse = {
1329
+ client_id: string;
1330
+ client_secret?: string | null;
1331
+ client_id_issued_at?: number | null;
1332
+ token_endpoint_auth_method?: string | null;
1333
+ registration_access_token?: string | null;
1334
+ };
1335
+
1224
1336
  /**
1225
1337
  * Represents an embedding vector returned by embedding endpoint.
1226
1338
  */
@@ -1269,9 +1381,11 @@ export type ErrorBody = {
1269
1381
  */
1270
1382
  code?: string | null;
1271
1383
  /**
1272
- * Parameter name that caused the error (for validation errors)
1384
+ * Additional error parameters as key-value pairs (for validation errors)
1273
1385
  */
1274
- param?: string | null;
1386
+ param?: {
1387
+ [key: string]: string;
1388
+ } | null;
1275
1389
  };
1276
1390
 
1277
1391
  /**
@@ -1284,6 +1398,12 @@ export type ExecuteToolsetRequest = {
1284
1398
  params: unknown;
1285
1399
  };
1286
1400
 
1401
+ export type FetchMcpToolsRequest = {
1402
+ mcp_server_id: string;
1403
+ auth?: null | McpAuth;
1404
+ auth_uuid?: string | null;
1405
+ };
1406
+
1287
1407
  /**
1288
1408
  * Request to fetch available models from provider
1289
1409
  */
@@ -1324,6 +1444,8 @@ export type FileObject = {
1324
1444
 
1325
1445
  export type FinishReason = 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'function_call';
1326
1446
 
1447
+ export type FlowType = 'redirect' | 'popup';
1448
+
1327
1449
  /**
1328
1450
  * The name and arguments of a function that should be called, as generated by the model.
1329
1451
  */
@@ -1425,6 +1547,16 @@ export type InputAudio = {
1425
1547
 
1426
1548
  export type InputAudioFormat = 'wav' | 'mp3';
1427
1549
 
1550
+ export type JsonVec = Array<string>;
1551
+
1552
+ export type ListMcpServersResponse = {
1553
+ mcp_servers: Array<McpServerResponse>;
1554
+ };
1555
+
1556
+ export type ListMcpsResponse = {
1557
+ mcps: Array<Mcp>;
1558
+ };
1559
+
1428
1560
  export type ListModelResponse = {
1429
1561
  object: string;
1430
1562
  data: Array<Model>;
@@ -1434,7 +1566,7 @@ export type ListModelResponse = {
1434
1566
  * List of toolset types
1435
1567
  */
1436
1568
  export type ListToolsetTypesResponse = {
1437
- types: Array<ToolsetTypeResponse>;
1569
+ types: Array<ToolsetDefinition>;
1438
1570
  };
1439
1571
 
1440
1572
  /**
@@ -1446,13 +1578,17 @@ export type ListToolsetsResponse = {
1446
1578
  };
1447
1579
 
1448
1580
  /**
1449
- * List users query parameters
1581
+ * List users query parameters. Intentionally omits sort fields (unlike PaginationSortParams)
1582
+ * because user listing is fetched from the auth service which handles its own ordering.
1450
1583
  */
1451
1584
  export type ListUsersParams = {
1452
1585
  page?: number | null;
1453
1586
  page_size?: number | null;
1454
1587
  };
1455
1588
 
1589
+ /**
1590
+ * Local model file response
1591
+ */
1456
1592
  export type LocalModelResponse = {
1457
1593
  repo: string;
1458
1594
  filename: string;
@@ -1462,68 +1598,347 @@ export type LocalModelResponse = {
1462
1598
  metadata?: null | ModelMetadata;
1463
1599
  };
1464
1600
 
1465
- export type Message = {
1466
- role: string;
1467
- content: string;
1468
- images?: Array<string> | null;
1469
- };
1470
-
1471
- /**
1472
- * Set of 16 key-value pairs that can be attached to an object.
1473
- * This can be useful for storing additional information about the
1474
- * object in a structured format, and querying for objects via API
1475
- * or the dashboard. Keys are strings with a maximum length of 64
1476
- * characters. Values are strings with a maximum length of 512
1477
- * characters.
1478
- */
1479
- export type Metadata = unknown;
1480
-
1481
1601
  /**
1482
- * Describes an OpenAI model offering that can be used with the API.
1602
+ * User-owned MCP server instance with tool caching and filtering.
1483
1603
  */
1484
- export type Model = {
1604
+ export type Mcp = {
1485
1605
  /**
1486
- * The model identifier, which can be referenced in the API endpoints.
1606
+ * Unique instance identifier (UUID)
1487
1607
  */
1488
1608
  id: string;
1489
1609
  /**
1490
- * The object type, which is always "model".
1610
+ * Server info resolved via JOIN
1491
1611
  */
1492
- object: string;
1612
+ mcp_server: McpServerInfo;
1493
1613
  /**
1494
- * The Unix timestamp (in seconds) when the model was created.
1614
+ * User-defined slug for this instance
1495
1615
  */
1496
- created: number;
1616
+ slug: string;
1497
1617
  /**
1498
- * The organization that owns the model.
1618
+ * Human-readable name
1499
1619
  */
1500
- owned_by: string;
1620
+ name: string;
1621
+ /**
1622
+ * Optional description for this instance
1623
+ */
1624
+ description?: string | null;
1625
+ /**
1626
+ * Whether this instance is enabled
1627
+ */
1628
+ enabled: boolean;
1629
+ /**
1630
+ * Cached tool schemas from the MCP server (JSON array)
1631
+ */
1632
+ tools_cache?: Array<McpTool> | null;
1633
+ /**
1634
+ * Whitelisted tool names (empty = block all)
1635
+ */
1636
+ tools_filter?: Array<string> | null;
1637
+ auth_type: McpAuthType;
1638
+ /**
1639
+ * Reference to the auth config (mcp_auth_headers.id or mcp_oauth_configs.id)
1640
+ */
1641
+ auth_uuid?: string | null;
1642
+ /**
1643
+ * When this instance was created
1644
+ */
1645
+ created_at: string;
1646
+ /**
1647
+ * When this instance was last updated
1648
+ */
1649
+ updated_at: string;
1501
1650
  };
1502
1651
 
1503
- export type ModelAlias = {
1504
- alias: string;
1505
- repo: string;
1506
- filename: string;
1507
- snapshot: string;
1652
+ export type McpApproval = {
1653
+ url: string;
1654
+ status: ApprovalStatus;
1655
+ instance?: null | McpInstance;
1508
1656
  };
1509
1657
 
1510
- /**
1511
- * Response for auto-discovered model aliases
1512
- */
1513
- export type ModelAliasResponse = {
1514
- source: string;
1515
- alias: string;
1516
- repo: string;
1517
- filename: string;
1518
- snapshot: string;
1519
- metadata?: null | ModelMetadata;
1658
+ export type McpAuth = {
1659
+ type: 'public';
1660
+ } | {
1661
+ header_key: string;
1662
+ header_value: string;
1663
+ type: 'header';
1520
1664
  };
1521
1665
 
1522
- export type ModelArchitecture = {
1523
- family?: string | null;
1524
- parameter_count?: number | null;
1525
- quantization?: string | null;
1526
- format: string;
1666
+ /**
1667
+ * Discriminated union response for any type of MCP auth config.
1668
+ * The JSON `"type"` field determines the variant: `"header"` or `"oauth"`.
1669
+ */
1670
+ export type McpAuthConfigResponse = {
1671
+ id: string;
1672
+ name: string;
1673
+ mcp_server_id: string;
1674
+ header_key: string;
1675
+ has_header_value: boolean;
1676
+ created_at: string;
1677
+ updated_at: string;
1678
+ type: 'header';
1679
+ } | {
1680
+ id: string;
1681
+ name: string;
1682
+ mcp_server_id: string;
1683
+ registration_type: RegistrationType;
1684
+ client_id: string;
1685
+ authorization_endpoint: string;
1686
+ token_endpoint: string;
1687
+ registration_endpoint?: string | null;
1688
+ scopes?: string | null;
1689
+ client_id_issued_at?: number | null;
1690
+ token_endpoint_auth_method?: string | null;
1691
+ has_client_secret: boolean;
1692
+ has_registration_access_token: boolean;
1693
+ created_at: string;
1694
+ updated_at: string;
1695
+ type: 'oauth';
1696
+ };
1697
+
1698
+ /**
1699
+ * List wrapper for unified auth config responses.
1700
+ */
1701
+ export type McpAuthConfigsListResponse = {
1702
+ auth_configs: Array<McpAuthConfigResponse>;
1703
+ };
1704
+
1705
+ export type McpAuthType = 'public' | 'header' | 'oauth';
1706
+
1707
+ export type McpExecuteRequest = {
1708
+ params: unknown;
1709
+ };
1710
+
1711
+ export type McpExecuteResponse = {
1712
+ result?: unknown;
1713
+ error?: string | null;
1714
+ };
1715
+
1716
+ export type McpInstance = {
1717
+ id: string;
1718
+ };
1719
+
1720
+ /**
1721
+ * Input for creating or updating an MCP instance.
1722
+ */
1723
+ export type McpRequest = {
1724
+ /**
1725
+ * Human-readable name (required)
1726
+ */
1727
+ name: string;
1728
+ /**
1729
+ * User-defined slug for this instance (1-24 chars, alphanumeric + hyphens)
1730
+ */
1731
+ slug: string;
1732
+ /**
1733
+ * MCP server ID (required for create, ignored for update)
1734
+ */
1735
+ mcp_server_id?: string | null;
1736
+ /**
1737
+ * Optional description
1738
+ */
1739
+ description?: string | null;
1740
+ /**
1741
+ * Whether this instance is enabled
1742
+ */
1743
+ enabled: boolean;
1744
+ /**
1745
+ * Cached tool schemas from the MCP server (JSON array)
1746
+ */
1747
+ tools_cache?: Array<McpTool> | null;
1748
+ /**
1749
+ * Whitelisted tool names
1750
+ */
1751
+ tools_filter?: Array<string> | null;
1752
+ /**
1753
+ * Authentication type
1754
+ */
1755
+ auth_type?: McpAuthType;
1756
+ /**
1757
+ * Reference to auth config
1758
+ */
1759
+ auth_uuid?: string | null;
1760
+ };
1761
+
1762
+ /**
1763
+ * Admin-managed MCP server registry entry.
1764
+ * Admins/managers register MCP server URLs that users can then create instances of.
1765
+ */
1766
+ export type McpServer = {
1767
+ /**
1768
+ * Unique identifier (UUID)
1769
+ */
1770
+ id: string;
1771
+ /**
1772
+ * MCP server endpoint URL (trimmed, case-insensitive unique)
1773
+ */
1774
+ url: string;
1775
+ /**
1776
+ * Human-readable display name
1777
+ */
1778
+ name: string;
1779
+ /**
1780
+ * Optional description
1781
+ */
1782
+ description?: string | null;
1783
+ /**
1784
+ * Whether this MCP server is enabled
1785
+ */
1786
+ enabled: boolean;
1787
+ /**
1788
+ * User who created this entry
1789
+ */
1790
+ created_by: string;
1791
+ /**
1792
+ * User who last updated this entry
1793
+ */
1794
+ updated_by: string;
1795
+ /**
1796
+ * When this entry was created
1797
+ */
1798
+ created_at: string;
1799
+ /**
1800
+ * When this entry was last updated
1801
+ */
1802
+ updated_at: string;
1803
+ };
1804
+
1805
+ /**
1806
+ * Minimal MCP server info embedded in MCP instance responses.
1807
+ */
1808
+ export type McpServerInfo = {
1809
+ id: string;
1810
+ url: string;
1811
+ name: string;
1812
+ enabled: boolean;
1813
+ };
1814
+
1815
+ /**
1816
+ * Input for creating or updating an MCP server.
1817
+ */
1818
+ export type McpServerRequest = {
1819
+ /**
1820
+ * MCP server endpoint URL (trimmed, case-insensitive unique)
1821
+ */
1822
+ url: string;
1823
+ /**
1824
+ * Human-readable display name
1825
+ */
1826
+ name: string;
1827
+ /**
1828
+ * Optional description
1829
+ */
1830
+ description?: string | null;
1831
+ /**
1832
+ * Whether this MCP server is enabled
1833
+ */
1834
+ enabled: boolean;
1835
+ auth_config?: null | CreateMcpAuthConfigRequest;
1836
+ };
1837
+
1838
+ /**
1839
+ * MCP server response with computed mcp counts and optional auth config.
1840
+ */
1841
+ export type McpServerResponse = McpServer & {
1842
+ enabled_mcp_count: number;
1843
+ disabled_mcp_count: number;
1844
+ auth_config?: null | McpAuthConfigResponse;
1845
+ };
1846
+
1847
+ export type McpServerReviewInfo = {
1848
+ /**
1849
+ * Requested MCP server URL
1850
+ */
1851
+ url: string;
1852
+ /**
1853
+ * User's MCP instances connected to this server URL
1854
+ */
1855
+ instances: Array<Mcp>;
1856
+ };
1857
+
1858
+ /**
1859
+ * Tool schema cached from an MCP server's tools/list response.
1860
+ */
1861
+ export type McpTool = {
1862
+ /**
1863
+ * Tool name as declared by the MCP server
1864
+ */
1865
+ name: string;
1866
+ /**
1867
+ * Human-readable description of the tool
1868
+ */
1869
+ description?: string | null;
1870
+ /**
1871
+ * JSON Schema for tool input parameters
1872
+ */
1873
+ input_schema?: unknown;
1874
+ };
1875
+
1876
+ export type McpToolsResponse = {
1877
+ tools: Array<McpTool>;
1878
+ };
1879
+
1880
+ export type Message = {
1881
+ role: string;
1882
+ content: string;
1883
+ images?: Array<string> | null;
1884
+ };
1885
+
1886
+ /**
1887
+ * Set of 16 key-value pairs that can be attached to an object.
1888
+ * This can be useful for storing additional information about the
1889
+ * object in a structured format, and querying for objects via API
1890
+ * or the dashboard. Keys are strings with a maximum length of 64
1891
+ * characters. Values are strings with a maximum length of 512
1892
+ * characters.
1893
+ */
1894
+ export type Metadata = unknown;
1895
+
1896
+ /**
1897
+ * Describes an OpenAI model offering that can be used with the API.
1898
+ */
1899
+ export type Model = {
1900
+ /**
1901
+ * The model identifier, which can be referenced in the API endpoints.
1902
+ */
1903
+ id: string;
1904
+ /**
1905
+ * The object type, which is always "model".
1906
+ */
1907
+ object: string;
1908
+ /**
1909
+ * The Unix timestamp (in seconds) when the model was created.
1910
+ */
1911
+ created: number;
1912
+ /**
1913
+ * The organization that owns the model.
1914
+ */
1915
+ owned_by: string;
1916
+ };
1917
+
1918
+ export type ModelAlias = {
1919
+ alias: string;
1920
+ repo: string;
1921
+ filename: string;
1922
+ snapshot: string;
1923
+ };
1924
+
1925
+ /**
1926
+ * Response for auto-discovered model aliases
1927
+ */
1928
+ export type ModelAliasResponse = {
1929
+ source: string;
1930
+ alias: string;
1931
+ repo: string;
1932
+ filename: string;
1933
+ snapshot: string;
1934
+ metadata?: null | ModelMetadata;
1935
+ };
1936
+
1937
+ export type ModelArchitecture = {
1938
+ family?: string | null;
1939
+ parameter_count?: number | null;
1940
+ quantization?: string | null;
1941
+ format: string;
1527
1942
  };
1528
1943
 
1529
1944
  export type ModelCapabilities = {
@@ -1557,7 +1972,7 @@ export type ModelsResponse = {
1557
1972
  };
1558
1973
 
1559
1974
  /**
1560
- * Request to pull a model file from HuggingFace
1975
+ * Request for creating a new download request
1561
1976
  */
1562
1977
  export type NewDownloadRequest = {
1563
1978
  /**
@@ -1581,6 +1996,55 @@ export type OaiRequestParams = {
1581
1996
  user?: string | null;
1582
1997
  };
1583
1998
 
1999
+ export type OAuthDiscoverAsRequest = {
2000
+ url: string;
2001
+ };
2002
+
2003
+ export type OAuthDiscoverAsResponse = {
2004
+ authorization_endpoint: string;
2005
+ token_endpoint: string;
2006
+ scopes_supported?: Array<string> | null;
2007
+ };
2008
+
2009
+ export type OAuthDiscoverMcpRequest = {
2010
+ mcp_server_url: string;
2011
+ };
2012
+
2013
+ export type OAuthDiscoverMcpResponse = {
2014
+ authorization_endpoint?: string | null;
2015
+ token_endpoint?: string | null;
2016
+ registration_endpoint?: string | null;
2017
+ scopes_supported?: Array<string> | null;
2018
+ resource?: string | null;
2019
+ authorization_server_url?: string | null;
2020
+ };
2021
+
2022
+ export type OAuthLoginRequest = {
2023
+ redirect_uri: string;
2024
+ };
2025
+
2026
+ export type OAuthLoginResponse = {
2027
+ authorization_url: string;
2028
+ };
2029
+
2030
+ export type OAuthTokenExchangeRequest = {
2031
+ code: string;
2032
+ redirect_uri: string;
2033
+ state: string;
2034
+ };
2035
+
2036
+ export type OAuthTokenResponse = {
2037
+ id: string;
2038
+ mcp_oauth_config_id: string;
2039
+ scopes_granted?: string | null;
2040
+ expires_at?: number | null;
2041
+ has_access_token: boolean;
2042
+ has_refresh_token: boolean;
2043
+ user_id: string;
2044
+ created_at: string;
2045
+ updated_at: string;
2046
+ };
2047
+
1584
2048
  export type OllamaError = {
1585
2049
  error: string;
1586
2050
  };
@@ -1632,6 +2096,9 @@ export type Options = {
1632
2096
  num_thread?: number | null;
1633
2097
  };
1634
2098
 
2099
+ /**
2100
+ * Paginated list of all model aliases (user, model, and API)
2101
+ */
1635
2102
  export type PaginatedAliasResponse = {
1636
2103
  data: Array<AliasResponse>;
1637
2104
  total: number;
@@ -1642,29 +2109,35 @@ export type PaginatedAliasResponse = {
1642
2109
  /**
1643
2110
  * Paginated response for API model listings
1644
2111
  */
1645
- export type PaginatedApiModelResponse = {
1646
- data: Array<ApiModelResponse>;
2112
+ export type PaginatedApiModelOutput = {
2113
+ data: Array<ApiModelOutput>;
1647
2114
  total: number;
1648
2115
  page: number;
1649
2116
  page_size: number;
1650
2117
  };
1651
2118
 
1652
- export type PaginatedApiTokenResponse = {
1653
- data: Array<ApiToken>;
2119
+ /**
2120
+ * Paginated list of download requests
2121
+ */
2122
+ export type PaginatedDownloadResponse = {
2123
+ data: Array<DownloadRequest>;
1654
2124
  total: number;
1655
2125
  page: number;
1656
2126
  page_size: number;
1657
2127
  };
1658
2128
 
1659
- export type PaginatedDownloadResponse = {
1660
- data: Array<DownloadRequest>;
2129
+ /**
2130
+ * Paginated list of local model files
2131
+ */
2132
+ export type PaginatedLocalModelResponse = {
2133
+ data: Array<LocalModelResponse>;
1661
2134
  total: number;
1662
2135
  page: number;
1663
2136
  page_size: number;
1664
2137
  };
1665
2138
 
1666
- export type PaginatedLocalModelResponse = {
1667
- data: Array<LocalModelResponse>;
2139
+ export type PaginatedTokenResponse = {
2140
+ data: Array<TokenDetail>;
1668
2141
  total: number;
1669
2142
  page: number;
1670
2143
  page_size: number;
@@ -1692,6 +2165,9 @@ export type PaginatedUserAccessResponse = {
1692
2165
  page_size: number;
1693
2166
  };
1694
2167
 
2168
+ /**
2169
+ * Paginated list of user-defined model aliases
2170
+ */
1695
2171
  export type PaginatedUserAliasResponse = {
1696
2172
  data: Array<UserAliasResponse>;
1697
2173
  total: number;
@@ -1822,6 +2298,20 @@ export type RefreshResponse = {
1822
2298
  */
1823
2299
  export type RefreshSource = 'all' | 'model';
1824
2300
 
2301
+ /**
2302
+ * OAuth 2.1 registration type: pre-registered client or dynamic client registration (DCR).
2303
+ */
2304
+ export type RegistrationType = 'pre_registered' | 'dynamic_registration';
2305
+
2306
+ export type RequestedMcpServer = {
2307
+ url: string;
2308
+ };
2309
+
2310
+ export type RequestedResources = {
2311
+ toolset_types?: Array<ToolsetTypeRequest>;
2312
+ mcp_servers?: Array<RequestedMcpServer>;
2313
+ };
2314
+
1825
2315
  export type ResourceRole = 'resource_user' | 'resource_power_user' | 'resource_manager' | 'resource_admin';
1826
2316
 
1827
2317
  export type ResponseFormat = {
@@ -1892,7 +2382,7 @@ export type SettingMetadata = {
1892
2382
  type: 'option';
1893
2383
  };
1894
2384
 
1895
- export type SettingSource = 'system' | 'command_line' | 'environment' | 'settings_file' | 'default';
2385
+ export type SettingSource = 'system' | 'command_line' | 'environment' | 'database' | 'settings_file' | 'default';
1896
2386
 
1897
2387
  /**
1898
2388
  * Request to setup the application in authenticated mode
@@ -1934,6 +2424,18 @@ export type ShowResponse = {
1934
2424
 
1935
2425
  export type StopConfiguration = string | Array<string>;
1936
2426
 
2427
+ export type TenantListItem = {
2428
+ client_id: string;
2429
+ name: string;
2430
+ description?: string | null;
2431
+ is_active: boolean;
2432
+ logged_in: boolean;
2433
+ };
2434
+
2435
+ export type TenantListResponse = {
2436
+ tenants: Array<TenantListItem>;
2437
+ };
2438
+
1937
2439
  /**
1938
2440
  * Credentials for test/fetch operations
1939
2441
  */
@@ -1982,15 +2484,33 @@ export type TestPromptResponse = {
1982
2484
  error?: string | null;
1983
2485
  };
1984
2486
 
1985
- /**
1986
- * API Token information response
1987
- */
1988
- export type TokenInfo = {
1989
- role: TokenScope;
1990
- };
1991
-
1992
- export type TokenScope = 'scope_token_user' | 'scope_token_power_user' | 'scope_token_manager' | 'scope_token_admin';
1993
-
2487
+ export type TokenCreated = {
2488
+ /**
2489
+ * API token with bodhiapp_ prefix for programmatic access
2490
+ */
2491
+ token: string;
2492
+ };
2493
+
2494
+ export type TokenDetail = {
2495
+ id: string;
2496
+ user_id: string;
2497
+ name: string;
2498
+ token_prefix: string;
2499
+ scopes: string;
2500
+ status: TokenStatus;
2501
+ created_at: string;
2502
+ updated_at: string;
2503
+ };
2504
+
2505
+ /**
2506
+ * API Token information response
2507
+ */
2508
+ export type TokenInfo = {
2509
+ role: TokenScope;
2510
+ };
2511
+
2512
+ export type TokenScope = 'scope_token_user' | 'scope_token_power_user';
2513
+
1994
2514
  export type TokenStatus = 'active' | 'inactive';
1995
2515
 
1996
2516
  export type ToolCapabilities = {
@@ -2017,6 +2537,25 @@ export type ToolDefinition = {
2017
2537
  function: FunctionDefinition;
2018
2538
  };
2019
2539
 
2540
+ export type ToolTypeReviewInfo = {
2541
+ /**
2542
+ * Tool type identifier
2543
+ */
2544
+ toolset_type: string;
2545
+ /**
2546
+ * Tool type display name
2547
+ */
2548
+ name: string;
2549
+ /**
2550
+ * Tool type description
2551
+ */
2552
+ description: string;
2553
+ /**
2554
+ * User's configured instances of this tool type
2555
+ */
2556
+ instances: Array<Toolset>;
2557
+ };
2558
+
2020
2559
  /**
2021
2560
  * User-owned toolset instance with UUID identification
2022
2561
  */
@@ -2026,17 +2565,13 @@ export type Toolset = {
2026
2565
  */
2027
2566
  id: string;
2028
2567
  /**
2029
- * User-defined name for this instance
2568
+ * User-defined slug for this instance
2030
2569
  */
2031
- name: string;
2032
- /**
2033
- * Keycloak client scope UUID (environment-specific, stored in DB)
2034
- */
2035
- scope_uuid: string;
2570
+ slug: string;
2036
2571
  /**
2037
- * OAuth scope string (e.g., "scope_toolset-builtin-exa-web-search", derived from registry)
2572
+ * Toolset type identifier (e.g., "builtin-exa-search")
2038
2573
  */
2039
- scope: string;
2574
+ toolset_type: string;
2040
2575
  /**
2041
2576
  * Optional description for this instance
2042
2577
  */
@@ -2059,6 +2594,35 @@ export type Toolset = {
2059
2594
  updated_at: string;
2060
2595
  };
2061
2596
 
2597
+ export type ToolsetApproval = {
2598
+ toolset_type: string;
2599
+ status: ApprovalStatus;
2600
+ instance?: null | ToolsetInstance;
2601
+ };
2602
+
2603
+ /**
2604
+ * A toolset is a connector that provides one or more tools.
2605
+ * Example: Exa Web Search toolset provides search, find_similar, get_contents, answer tools.
2606
+ */
2607
+ export type ToolsetDefinition = {
2608
+ /**
2609
+ * Toolset type identifier (e.g., "builtin-exa-search")
2610
+ */
2611
+ toolset_type: string;
2612
+ /**
2613
+ * Human-readable name (e.g., "Exa Web Search")
2614
+ */
2615
+ name: string;
2616
+ /**
2617
+ * Description of the toolset
2618
+ */
2619
+ description: string;
2620
+ /**
2621
+ * Tools provided by this toolset (in OpenAI format)
2622
+ */
2623
+ tools: Array<ToolDefinition>;
2624
+ };
2625
+
2062
2626
  /**
2063
2627
  * Response from toolset tool execution (to send back to LLM)
2064
2628
  */
@@ -2073,6 +2637,36 @@ export type ToolsetExecutionResponse = {
2073
2637
  error?: string | null;
2074
2638
  };
2075
2639
 
2640
+ export type ToolsetInstance = {
2641
+ id: string;
2642
+ };
2643
+
2644
+ /**
2645
+ * Input for creating or updating a toolset instance.
2646
+ */
2647
+ export type ToolsetRequest = {
2648
+ /**
2649
+ * Toolset type identifier (required for create, ignored for update)
2650
+ */
2651
+ toolset_type?: string | null;
2652
+ /**
2653
+ * User-defined slug for this instance (1-24 chars, alphanumeric + hyphens)
2654
+ */
2655
+ slug: string;
2656
+ /**
2657
+ * Optional description for this instance
2658
+ */
2659
+ description?: string | null;
2660
+ /**
2661
+ * Whether this instance is enabled
2662
+ */
2663
+ enabled?: boolean;
2664
+ /**
2665
+ * API key update action (Keep or Set)
2666
+ */
2667
+ api_key?: ApiKeyUpdate;
2668
+ };
2669
+
2076
2670
  /**
2077
2671
  * Toolset response
2078
2672
  */
@@ -2082,17 +2676,13 @@ export type ToolsetResponse = {
2082
2676
  */
2083
2677
  id: string;
2084
2678
  /**
2085
- * User-defined name for this toolset
2679
+ * User-defined slug for this toolset
2086
2680
  */
2087
- name: string;
2088
- /**
2089
- * Toolset scope UUID identifier
2090
- */
2091
- scope_uuid: string;
2681
+ slug: string;
2092
2682
  /**
2093
- * Toolset scope identifier (e.g., "scope_toolset-builtin-exa-web-search")
2683
+ * Toolset type identifier (e.g., "builtin-exa-search")
2094
2684
  */
2095
- scope: string;
2685
+ toolset_type: string;
2096
2686
  /**
2097
2687
  * Optional description for this toolset
2098
2688
  */
@@ -2119,64 +2709,8 @@ export type ToolsetResponse = {
2119
2709
  updated_at: string;
2120
2710
  };
2121
2711
 
2122
- /**
2123
- * Toolset type response (for admin listing)
2124
- */
2125
- export type ToolsetTypeResponse = {
2126
- /**
2127
- * Toolset scope UUID identifier
2128
- */
2129
- scope_uuid: string;
2130
- /**
2131
- * Toolset scope identifier (e.g., "scope_toolset-builtin-exa-web-search")
2132
- */
2133
- scope: string;
2134
- /**
2135
- * Human-readable name (e.g., "Exa Web Search")
2136
- */
2137
- name: string;
2138
- /**
2139
- * Description of the toolset
2140
- */
2141
- description: string;
2142
- /**
2143
- * Whether the toolset is enabled at app level (admin-controlled)
2144
- */
2145
- app_enabled: boolean;
2146
- /**
2147
- * Tools provided by this toolset
2148
- */
2149
- tools: Array<ToolDefinition>;
2150
- };
2151
-
2152
- /**
2153
- * Toolset with app-level configuration status (API response model)
2154
- */
2155
- export type ToolsetWithTools = {
2156
- /**
2157
- * Keycloak client scope UUID (environment-specific)
2158
- */
2159
- scope_uuid: string;
2160
- /**
2161
- * OAuth scope string (e.g., "scope_toolset-builtin-exa-web-search")
2162
- */
2163
- scope: string;
2164
- /**
2165
- * Human-readable name (e.g., "Exa Web Search")
2166
- */
2167
- name: string;
2168
- /**
2169
- * Description of the toolset
2170
- */
2171
- description: string;
2172
- /**
2173
- * Whether the toolset is enabled at app level (admin-controlled)
2174
- */
2175
- app_enabled: boolean;
2176
- /**
2177
- * Tools provided by this toolset
2178
- */
2179
- tools: Array<ToolDefinition>;
2712
+ export type ToolsetTypeRequest = {
2713
+ toolset_type: string;
2180
2714
  };
2181
2715
 
2182
2716
  export type TopLogprobs = {
@@ -2194,58 +2728,6 @@ export type TopLogprobs = {
2194
2728
  bytes?: Array<number> | null;
2195
2729
  };
2196
2730
 
2197
- export type UpdateAliasRequest = {
2198
- repo: string;
2199
- filename: string;
2200
- snapshot?: string | null;
2201
- request_params?: null | OaiRequestParams;
2202
- context_params?: Array<string> | null;
2203
- };
2204
-
2205
- /**
2206
- * Request to update an existing API model configuration
2207
- */
2208
- export type UpdateApiModelRequest = {
2209
- /**
2210
- * API format/protocol (required)
2211
- */
2212
- api_format: ApiFormat;
2213
- /**
2214
- * API base URL (required)
2215
- */
2216
- base_url: string;
2217
- /**
2218
- * API key update action (Keep/Set with Some or None)
2219
- */
2220
- api_key?: ApiKeyUpdateAction;
2221
- /**
2222
- * List of available models (required)
2223
- */
2224
- models: Array<string>;
2225
- /**
2226
- * Optional prefix for model namespacing
2227
- */
2228
- prefix?: string | null;
2229
- /**
2230
- * Whether to forward all requests with this prefix (true) or only selected models (false)
2231
- */
2232
- forward_all_with_prefix?: boolean;
2233
- };
2234
-
2235
- /**
2236
- * Request to update an existing API token
2237
- */
2238
- export type UpdateApiTokenRequest = {
2239
- /**
2240
- * New descriptive name for the token (minimum 3 characters)
2241
- */
2242
- name: string;
2243
- /**
2244
- * New status for the token (active/inactive)
2245
- */
2246
- status: TokenStatus;
2247
- };
2248
-
2249
2731
  /**
2250
2732
  * Request to update a setting value
2251
2733
  */
@@ -2256,26 +2738,15 @@ export type UpdateSettingRequest = {
2256
2738
  value: unknown;
2257
2739
  };
2258
2740
 
2259
- /**
2260
- * Request to update a toolset (full PUT - all fields required except api_key)
2261
- */
2262
- export type UpdateToolsetRequest = {
2741
+ export type UpdateTokenRequest = {
2263
2742
  /**
2264
- * User-defined name for this toolset
2743
+ * New descriptive name for the token
2265
2744
  */
2266
2745
  name: string;
2267
2746
  /**
2268
- * Optional description for this toolset
2269
- */
2270
- description?: string | null;
2271
- /**
2272
- * Whether this toolset is enabled
2273
- */
2274
- enabled: boolean;
2275
- /**
2276
- * API key update action (Keep or Set)
2747
+ * New status for the token (active/inactive)
2277
2748
  */
2278
- api_key?: ApiKeyUpdateDto;
2749
+ status: TokenStatus;
2279
2750
  };
2280
2751
 
2281
2752
  export type UrlCitation = {
@@ -2297,31 +2768,16 @@ export type UrlCitation = {
2297
2768
  url: string;
2298
2769
  };
2299
2770
 
2771
+ /**
2772
+ * User access request output type for API responses
2773
+ */
2300
2774
  export type UserAccessRequest = {
2301
- /**
2302
- * Unique identifier for the request
2303
- */
2304
- id: number;
2305
- /**
2306
- * Username of the requesting user
2307
- */
2775
+ id: string;
2308
2776
  username: string;
2309
- /**
2310
- * User ID (UUID) of the requesting user
2311
- */
2312
2777
  user_id: string;
2313
2778
  reviewer?: string | null;
2314
- /**
2315
- * Current status of the request
2316
- */
2317
2779
  status: UserAccessRequestStatus;
2318
- /**
2319
- * Creation timestamp
2320
- */
2321
2780
  created_at: string;
2322
- /**
2323
- * Last update timestamp
2324
- */
2325
2781
  updated_at: string;
2326
2782
  };
2327
2783
 
@@ -2350,15 +2806,49 @@ export type UserAccessStatusResponse = {
2350
2806
  };
2351
2807
 
2352
2808
  export type UserAlias = {
2809
+ id: string;
2353
2810
  alias: string;
2354
2811
  repo: string;
2355
2812
  filename: string;
2356
2813
  snapshot: string;
2357
2814
  request_params?: OaiRequestParams;
2358
- context_params?: Array<string>;
2815
+ context_params?: JsonVec;
2816
+ created_at: string;
2817
+ updated_at: string;
2818
+ };
2819
+
2820
+ /**
2821
+ * Input request for creating or updating a user model alias.
2822
+ */
2823
+ export type UserAliasRequest = {
2824
+ /**
2825
+ * Alias name — unique per (tenant_id, user_id) scope
2826
+ */
2827
+ alias: string;
2828
+ /**
2829
+ * Repository in format "user/repo"
2830
+ */
2831
+ repo: string;
2832
+ /**
2833
+ * Filename of the GGUF model
2834
+ */
2835
+ filename: string;
2836
+ /**
2837
+ * Snapshot/commit identifier (optional — defaults to latest available)
2838
+ */
2839
+ snapshot?: string | null;
2840
+ request_params?: null | OaiRequestParams;
2841
+ /**
2842
+ * Context parameters for the model
2843
+ */
2844
+ context_params?: Array<string> | null;
2359
2845
  };
2360
2846
 
2847
+ /**
2848
+ * User-defined model alias response
2849
+ */
2361
2850
  export type UserAliasResponse = {
2851
+ id: string;
2362
2852
  alias: string;
2363
2853
  repo: string;
2364
2854
  filename: string;
@@ -2367,6 +2857,8 @@ export type UserAliasResponse = {
2367
2857
  model_params: {};
2368
2858
  request_params: OaiRequestParams;
2369
2859
  context_params: Array<string>;
2860
+ created_at: string;
2861
+ updated_at: string;
2370
2862
  metadata?: null | ModelMetadata;
2371
2863
  };
2372
2864
 
@@ -2378,6 +2870,16 @@ export type UserInfo = {
2378
2870
  role?: null | AppRole;
2379
2871
  };
2380
2872
 
2873
+ /**
2874
+ * Envelope wrapping UserResponse with additional session info
2875
+ */
2876
+ export type UserInfoEnvelope = UserResponse & {
2877
+ /**
2878
+ * Whether the user has an active dashboard session (only present when true)
2879
+ */
2880
+ has_dashboard_session?: boolean;
2881
+ };
2882
+
2381
2883
  export type UserListResponse = {
2382
2884
  client_id: string;
2383
2885
  users: Array<UserInfo>;
@@ -2400,7 +2902,7 @@ export type UserResponse = {
2400
2902
  auth_status: 'api_token';
2401
2903
  });
2402
2904
 
2403
- export type UserScope = 'scope_user_user' | 'scope_user_power_user' | 'scope_user_manager' | 'scope_user_admin';
2905
+ export type UserScope = 'scope_user_user' | 'scope_user_power_user';
2404
2906
 
2405
2907
  /**
2406
2908
  * Constrains the verbosity of the model's response. Lower values will result in more concise responses, while higher values will result in more verbose responses. Currently supported values are `low`, `medium`, and `high`.
@@ -2689,7 +3191,7 @@ export type ApproveAccessRequestData = {
2689
3191
  /**
2690
3192
  * Access request ID
2691
3193
  */
2692
- id: number;
3194
+ id: string;
2693
3195
  };
2694
3196
  query?: never;
2695
3197
  url: '/bodhi/v1/access-requests/{id}/approve';
@@ -2727,19 +3229,22 @@ export type ApproveAccessRequestResponses = {
2727
3229
  200: unknown;
2728
3230
  };
2729
3231
 
2730
- export type RejectAccessRequestData = {
2731
- body?: never;
3232
+ export type ApproveAppsAccessRequestData = {
3233
+ /**
3234
+ * Approval details with tool selections
3235
+ */
3236
+ body: ApproveAccessRequest;
2732
3237
  path: {
2733
3238
  /**
2734
3239
  * Access request ID
2735
3240
  */
2736
- id: number;
3241
+ id: string;
2737
3242
  };
2738
3243
  query?: never;
2739
- url: '/bodhi/v1/access-requests/{id}/reject';
3244
+ url: '/bodhi/v1/access-requests/{id}/approve';
2740
3245
  };
2741
3246
 
2742
- export type RejectAccessRequestErrors = {
3247
+ export type ApproveAppsAccessRequestErrors = {
2743
3248
  /**
2744
3249
  * Invalid request parameters
2745
3250
  */
@@ -2753,32 +3258,182 @@ export type RejectAccessRequestErrors = {
2753
3258
  */
2754
3259
  403: OpenAiApiError;
2755
3260
  /**
2756
- * Request not found
3261
+ * Not found
2757
3262
  */
2758
3263
  404: OpenAiApiError;
3264
+ /**
3265
+ * Already processed
3266
+ */
3267
+ 409: OpenAiApiError;
2759
3268
  /**
2760
3269
  * Internal server error
2761
3270
  */
2762
3271
  500: OpenAiApiError;
2763
3272
  };
2764
3273
 
2765
- export type RejectAccessRequestError = RejectAccessRequestErrors[keyof RejectAccessRequestErrors];
3274
+ export type ApproveAppsAccessRequestError = ApproveAppsAccessRequestErrors[keyof ApproveAppsAccessRequestErrors];
2766
3275
 
2767
- export type RejectAccessRequestResponses = {
3276
+ export type ApproveAppsAccessRequestResponses = {
2768
3277
  /**
2769
- * Request rejected successfully
3278
+ * Request approved
2770
3279
  */
2771
- 200: unknown;
3280
+ 200: AccessRequestActionResponse;
2772
3281
  };
2773
3282
 
2774
- export type ListApiModelsData = {
3283
+ export type ApproveAppsAccessRequestResponse = ApproveAppsAccessRequestResponses[keyof ApproveAppsAccessRequestResponses];
3284
+
3285
+ export type DenyAccessRequestData = {
2775
3286
  body?: never;
2776
- path?: never;
2777
- query?: {
3287
+ path: {
2778
3288
  /**
2779
- * Page number (1-based indexing)
3289
+ * Access request ID
2780
3290
  */
2781
- page?: number;
3291
+ id: string;
3292
+ };
3293
+ query?: never;
3294
+ url: '/bodhi/v1/access-requests/{id}/deny';
3295
+ };
3296
+
3297
+ export type DenyAccessRequestErrors = {
3298
+ /**
3299
+ * Invalid request parameters
3300
+ */
3301
+ 400: OpenAiApiError;
3302
+ /**
3303
+ * Not authenticated
3304
+ */
3305
+ 401: OpenAiApiError;
3306
+ /**
3307
+ * Insufficient permissions
3308
+ */
3309
+ 403: OpenAiApiError;
3310
+ /**
3311
+ * Not found
3312
+ */
3313
+ 404: OpenAiApiError;
3314
+ /**
3315
+ * Already processed
3316
+ */
3317
+ 409: OpenAiApiError;
3318
+ /**
3319
+ * Internal server error
3320
+ */
3321
+ 500: OpenAiApiError;
3322
+ };
3323
+
3324
+ export type DenyAccessRequestError = DenyAccessRequestErrors[keyof DenyAccessRequestErrors];
3325
+
3326
+ export type DenyAccessRequestResponses = {
3327
+ /**
3328
+ * Request denied
3329
+ */
3330
+ 200: AccessRequestActionResponse;
3331
+ };
3332
+
3333
+ export type DenyAccessRequestResponse = DenyAccessRequestResponses[keyof DenyAccessRequestResponses];
3334
+
3335
+ export type RejectAccessRequestData = {
3336
+ body?: never;
3337
+ path: {
3338
+ /**
3339
+ * Access request ID
3340
+ */
3341
+ id: string;
3342
+ };
3343
+ query?: never;
3344
+ url: '/bodhi/v1/access-requests/{id}/reject';
3345
+ };
3346
+
3347
+ export type RejectAccessRequestErrors = {
3348
+ /**
3349
+ * Invalid request parameters
3350
+ */
3351
+ 400: OpenAiApiError;
3352
+ /**
3353
+ * Not authenticated
3354
+ */
3355
+ 401: OpenAiApiError;
3356
+ /**
3357
+ * Insufficient permissions
3358
+ */
3359
+ 403: OpenAiApiError;
3360
+ /**
3361
+ * Request not found
3362
+ */
3363
+ 404: OpenAiApiError;
3364
+ /**
3365
+ * Internal server error
3366
+ */
3367
+ 500: OpenAiApiError;
3368
+ };
3369
+
3370
+ export type RejectAccessRequestError = RejectAccessRequestErrors[keyof RejectAccessRequestErrors];
3371
+
3372
+ export type RejectAccessRequestResponses = {
3373
+ /**
3374
+ * Request rejected successfully
3375
+ */
3376
+ 200: unknown;
3377
+ };
3378
+
3379
+ export type GetAccessRequestReviewData = {
3380
+ body?: never;
3381
+ path: {
3382
+ /**
3383
+ * Access request ID
3384
+ */
3385
+ id: string;
3386
+ };
3387
+ query?: never;
3388
+ url: '/bodhi/v1/access-requests/{id}/review';
3389
+ };
3390
+
3391
+ export type GetAccessRequestReviewErrors = {
3392
+ /**
3393
+ * Invalid request parameters
3394
+ */
3395
+ 400: OpenAiApiError;
3396
+ /**
3397
+ * Not authenticated
3398
+ */
3399
+ 401: OpenAiApiError;
3400
+ /**
3401
+ * Insufficient permissions
3402
+ */
3403
+ 403: OpenAiApiError;
3404
+ /**
3405
+ * Not found
3406
+ */
3407
+ 404: OpenAiApiError;
3408
+ /**
3409
+ * Request expired
3410
+ */
3411
+ 410: OpenAiApiError;
3412
+ /**
3413
+ * Internal server error
3414
+ */
3415
+ 500: OpenAiApiError;
3416
+ };
3417
+
3418
+ export type GetAccessRequestReviewError = GetAccessRequestReviewErrors[keyof GetAccessRequestReviewErrors];
3419
+
3420
+ export type GetAccessRequestReviewResponses = {
3421
+ /**
3422
+ * Review data retrieved
3423
+ */
3424
+ 200: AccessRequestReviewResponse;
3425
+ };
3426
+
3427
+ export type GetAccessRequestReviewResponse = GetAccessRequestReviewResponses[keyof GetAccessRequestReviewResponses];
3428
+
3429
+ export type ListApiModelsData = {
3430
+ body?: never;
3431
+ path?: never;
3432
+ query?: {
3433
+ /**
3434
+ * Page number (1-based indexing)
3435
+ */
3436
+ page?: number;
2782
3437
  /**
2783
3438
  * Number of items to return per page (maximum 100)
2784
3439
  */
@@ -2820,13 +3475,13 @@ export type ListApiModelsResponses = {
2820
3475
  /**
2821
3476
  * API model configurations retrieved successfully
2822
3477
  */
2823
- 200: PaginatedApiModelResponse;
3478
+ 200: PaginatedApiModelOutput;
2824
3479
  };
2825
3480
 
2826
3481
  export type ListApiModelsResponse = ListApiModelsResponses[keyof ListApiModelsResponses];
2827
3482
 
2828
3483
  export type CreateApiModelData = {
2829
- body: CreateApiModelRequest;
3484
+ body: ApiModelRequest;
2830
3485
  path?: never;
2831
3486
  query?: never;
2832
3487
  url: '/bodhi/v1/api-models';
@@ -2861,7 +3516,7 @@ export type CreateApiModelResponses = {
2861
3516
  /**
2862
3517
  * API model created
2863
3518
  */
2864
- 201: ApiModelResponse;
3519
+ 201: ApiModelOutput;
2865
3520
  };
2866
3521
 
2867
3522
  export type CreateApiModelResponse = CreateApiModelResponses[keyof CreateApiModelResponses];
@@ -3064,13 +3719,13 @@ export type GetApiModelResponses = {
3064
3719
  /**
3065
3720
  * API model configuration retrieved successfully
3066
3721
  */
3067
- 200: ApiModelResponse;
3722
+ 200: ApiModelOutput;
3068
3723
  };
3069
3724
 
3070
3725
  export type GetApiModelResponse = GetApiModelResponses[keyof GetApiModelResponses];
3071
3726
 
3072
3727
  export type UpdateApiModelData = {
3073
- body: UpdateApiModelRequest;
3728
+ body: ApiModelRequest;
3074
3729
  path: {
3075
3730
  /**
3076
3731
  * API model ID
@@ -3110,7 +3765,7 @@ export type UpdateApiModelResponses = {
3110
3765
  /**
3111
3766
  * API model updated
3112
3767
  */
3113
- 200: ApiModelResponse;
3768
+ 200: ApiModelOutput;
3114
3769
  };
3115
3770
 
3116
3771
  export type UpdateApiModelResponse = UpdateApiModelResponses[keyof UpdateApiModelResponses];
@@ -3156,22 +3811,73 @@ export type SyncModelsResponses = {
3156
3811
  /**
3157
3812
  * Models synced to cache successfully
3158
3813
  */
3159
- 200: ApiModelResponse;
3814
+ 200: ApiModelOutput;
3160
3815
  };
3161
3816
 
3162
3817
  export type SyncModelsResponse = SyncModelsResponses[keyof SyncModelsResponses];
3163
3818
 
3164
- export type RequestAccessData = {
3819
+ export type GetAccessRequestStatusData = {
3820
+ body?: never;
3821
+ path: {
3822
+ /**
3823
+ * Access request ID
3824
+ */
3825
+ id: string;
3826
+ };
3827
+ query: {
3828
+ /**
3829
+ * App client ID for verification
3830
+ */
3831
+ app_client_id: string;
3832
+ };
3833
+ url: '/bodhi/v1/apps/access-requests/{id}';
3834
+ };
3835
+
3836
+ export type GetAccessRequestStatusErrors = {
3837
+ /**
3838
+ * Invalid request parameters
3839
+ */
3840
+ 400: OpenAiApiError;
3841
+ /**
3842
+ * Not authenticated
3843
+ */
3844
+ 401: OpenAiApiError;
3845
+ /**
3846
+ * Insufficient permissions
3847
+ */
3848
+ 403: OpenAiApiError;
3849
+ /**
3850
+ * Not found or app_client_id mismatch
3851
+ */
3852
+ 404: OpenAiApiError;
3853
+ /**
3854
+ * Internal server error
3855
+ */
3856
+ 500: OpenAiApiError;
3857
+ };
3858
+
3859
+ export type GetAccessRequestStatusError = GetAccessRequestStatusErrors[keyof GetAccessRequestStatusErrors];
3860
+
3861
+ export type GetAccessRequestStatusResponses = {
3165
3862
  /**
3166
- * Application client requesting access
3863
+ * Status retrieved
3167
3864
  */
3168
- body: AppAccessRequest;
3865
+ 200: AccessRequestStatusResponse;
3866
+ };
3867
+
3868
+ export type GetAccessRequestStatusResponse = GetAccessRequestStatusResponses[keyof GetAccessRequestStatusResponses];
3869
+
3870
+ export type CreateAccessRequestData = {
3871
+ /**
3872
+ * Access request details
3873
+ */
3874
+ body: CreateAccessRequest;
3169
3875
  path?: never;
3170
3876
  query?: never;
3171
3877
  url: '/bodhi/v1/apps/request-access';
3172
3878
  };
3173
3879
 
3174
- export type RequestAccessErrors = {
3880
+ export type CreateAccessRequestErrors = {
3175
3881
  /**
3176
3882
  * Invalid request parameters
3177
3883
  */
@@ -3184,22 +3890,26 @@ export type RequestAccessErrors = {
3184
3890
  * Insufficient permissions
3185
3891
  */
3186
3892
  403: OpenAiApiError;
3893
+ /**
3894
+ * App client not found
3895
+ */
3896
+ 404: OpenAiApiError;
3187
3897
  /**
3188
3898
  * Internal server error
3189
3899
  */
3190
3900
  500: OpenAiApiError;
3191
3901
  };
3192
3902
 
3193
- export type RequestAccessError = RequestAccessErrors[keyof RequestAccessErrors];
3903
+ export type CreateAccessRequestError = CreateAccessRequestErrors[keyof CreateAccessRequestErrors];
3194
3904
 
3195
- export type RequestAccessResponses = {
3905
+ export type CreateAccessRequestResponses = {
3196
3906
  /**
3197
- * Access granted successfully
3907
+ * Access request created
3198
3908
  */
3199
- 200: AppAccessResponse;
3909
+ 201: CreateAccessRequestResponse;
3200
3910
  };
3201
3911
 
3202
- export type RequestAccessResponse = RequestAccessResponses[keyof RequestAccessResponses];
3912
+ export type CreateAccessRequestResponse2 = CreateAccessRequestResponses[keyof CreateAccessRequestResponses];
3203
3913
 
3204
3914
  export type CompleteOAuthFlowData = {
3205
3915
  /**
@@ -3245,10 +3955,94 @@ export type CompleteOAuthFlowResponses = {
3245
3955
 
3246
3956
  export type CompleteOAuthFlowResponse = CompleteOAuthFlowResponses[keyof CompleteOAuthFlowResponses];
3247
3957
 
3248
- export type InitiateOAuthFlowData = {
3958
+ export type CompleteDashboardOAuthFlowData = {
3959
+ /**
3960
+ * OAuth callback parameters from authorization server
3961
+ */
3962
+ body: AuthCallbackRequest;
3963
+ path?: never;
3964
+ query?: never;
3965
+ url: '/bodhi/v1/auth/dashboard/callback';
3966
+ };
3967
+
3968
+ export type CompleteDashboardOAuthFlowErrors = {
3969
+ /**
3970
+ * Invalid request parameters
3971
+ */
3972
+ 400: OpenAiApiError;
3973
+ /**
3974
+ * Not authenticated
3975
+ */
3976
+ 401: OpenAiApiError;
3977
+ /**
3978
+ * Insufficient permissions
3979
+ */
3980
+ 403: OpenAiApiError;
3981
+ /**
3982
+ * Internal server error
3983
+ */
3984
+ 500: OpenAiApiError;
3985
+ };
3986
+
3987
+ export type CompleteDashboardOAuthFlowError = CompleteDashboardOAuthFlowErrors[keyof CompleteDashboardOAuthFlowErrors];
3988
+
3989
+ export type CompleteDashboardOAuthFlowResponses = {
3990
+ /**
3991
+ * Dashboard OAuth flow completed successfully
3992
+ */
3993
+ 200: RedirectResponse;
3994
+ };
3995
+
3996
+ export type CompleteDashboardOAuthFlowResponse = CompleteDashboardOAuthFlowResponses[keyof CompleteDashboardOAuthFlowResponses];
3997
+
3998
+ export type InitiateDashboardOAuthFlowData = {
3249
3999
  body: unknown;
3250
4000
  path?: never;
3251
4001
  query?: never;
4002
+ url: '/bodhi/v1/auth/dashboard/initiate';
4003
+ };
4004
+
4005
+ export type InitiateDashboardOAuthFlowErrors = {
4006
+ /**
4007
+ * Invalid request parameters
4008
+ */
4009
+ 400: OpenAiApiError;
4010
+ /**
4011
+ * Not authenticated
4012
+ */
4013
+ 401: OpenAiApiError;
4014
+ /**
4015
+ * Insufficient permissions
4016
+ */
4017
+ 403: OpenAiApiError;
4018
+ /**
4019
+ * Internal server error
4020
+ */
4021
+ 500: OpenAiApiError;
4022
+ };
4023
+
4024
+ export type InitiateDashboardOAuthFlowError = InitiateDashboardOAuthFlowErrors[keyof InitiateDashboardOAuthFlowErrors];
4025
+
4026
+ export type InitiateDashboardOAuthFlowResponses = {
4027
+ /**
4028
+ * User already has a valid dashboard token
4029
+ */
4030
+ 200: RedirectResponse;
4031
+ /**
4032
+ * OAuth authorization URL provided for dashboard login
4033
+ */
4034
+ 201: RedirectResponse;
4035
+ };
4036
+
4037
+ export type InitiateDashboardOAuthFlowResponse = InitiateDashboardOAuthFlowResponses[keyof InitiateDashboardOAuthFlowResponses];
4038
+
4039
+ export type InitiateOAuthFlowData = {
4040
+ /**
4041
+ * OAuth initiate parameters
4042
+ */
4043
+ body: AuthInitiateRequest;
4044
+ path?: never;
4045
+ query?: never;
3252
4046
  url: '/bodhi/v1/auth/initiate';
3253
4047
  };
3254
4048
 
@@ -3284,45 +4078,1032 @@ export type InitiateOAuthFlowResponses = {
3284
4078
  201: RedirectResponse;
3285
4079
  };
3286
4080
 
3287
- export type InitiateOAuthFlowResponse = InitiateOAuthFlowResponses[keyof InitiateOAuthFlowResponses];
4081
+ export type InitiateOAuthFlowResponse = InitiateOAuthFlowResponses[keyof InitiateOAuthFlowResponses];
4082
+
4083
+ export type GetAppInfoData = {
4084
+ body?: never;
4085
+ path?: never;
4086
+ query?: never;
4087
+ url: '/bodhi/v1/info';
4088
+ };
4089
+
4090
+ export type GetAppInfoErrors = {
4091
+ /**
4092
+ * Invalid request parameters
4093
+ */
4094
+ 400: OpenAiApiError;
4095
+ /**
4096
+ * Internal server error
4097
+ */
4098
+ 500: OpenAiApiError;
4099
+ };
4100
+
4101
+ export type GetAppInfoError = GetAppInfoErrors[keyof GetAppInfoErrors];
4102
+
4103
+ export type GetAppInfoResponses = {
4104
+ /**
4105
+ * Application information retrieved successfully
4106
+ */
4107
+ 200: AppInfo;
4108
+ };
4109
+
4110
+ export type GetAppInfoResponse = GetAppInfoResponses[keyof GetAppInfoResponses];
4111
+
4112
+ export type LogoutUserData = {
4113
+ body?: never;
4114
+ path?: never;
4115
+ query?: never;
4116
+ url: '/bodhi/v1/logout';
4117
+ };
4118
+
4119
+ export type LogoutUserErrors = {
4120
+ /**
4121
+ * Invalid request parameters
4122
+ */
4123
+ 400: OpenAiApiError;
4124
+ /**
4125
+ * Not authenticated
4126
+ */
4127
+ 401: OpenAiApiError;
4128
+ /**
4129
+ * Insufficient permissions
4130
+ */
4131
+ 403: OpenAiApiError;
4132
+ /**
4133
+ * Internal server error
4134
+ */
4135
+ 500: OpenAiApiError;
4136
+ };
4137
+
4138
+ export type LogoutUserError = LogoutUserErrors[keyof LogoutUserErrors];
4139
+
4140
+ export type LogoutUserResponses = {
4141
+ /**
4142
+ * User logged out successfully
4143
+ */
4144
+ 200: RedirectResponse;
4145
+ };
4146
+
4147
+ export type LogoutUserResponse = LogoutUserResponses[keyof LogoutUserResponses];
4148
+
4149
+ export type ListMcpsData = {
4150
+ body?: never;
4151
+ path?: never;
4152
+ query?: never;
4153
+ url: '/bodhi/v1/mcps';
4154
+ };
4155
+
4156
+ export type ListMcpsErrors = {
4157
+ /**
4158
+ * Invalid request parameters
4159
+ */
4160
+ 400: OpenAiApiError;
4161
+ /**
4162
+ * Not authenticated
4163
+ */
4164
+ 401: OpenAiApiError;
4165
+ /**
4166
+ * Insufficient permissions
4167
+ */
4168
+ 403: OpenAiApiError;
4169
+ /**
4170
+ * Internal server error
4171
+ */
4172
+ 500: OpenAiApiError;
4173
+ };
4174
+
4175
+ export type ListMcpsError = ListMcpsErrors[keyof ListMcpsErrors];
4176
+
4177
+ export type ListMcpsResponses = {
4178
+ /**
4179
+ * List of user's MCP instances
4180
+ */
4181
+ 200: ListMcpsResponse;
4182
+ };
4183
+
4184
+ export type ListMcpsResponse2 = ListMcpsResponses[keyof ListMcpsResponses];
4185
+
4186
+ export type CreateMcpData = {
4187
+ body: McpRequest;
4188
+ path?: never;
4189
+ query?: never;
4190
+ url: '/bodhi/v1/mcps';
4191
+ };
4192
+
4193
+ export type CreateMcpErrors = {
4194
+ /**
4195
+ * Invalid request parameters
4196
+ */
4197
+ 400: OpenAiApiError;
4198
+ /**
4199
+ * Not authenticated
4200
+ */
4201
+ 401: OpenAiApiError;
4202
+ /**
4203
+ * Insufficient permissions
4204
+ */
4205
+ 403: OpenAiApiError;
4206
+ /**
4207
+ * Internal server error
4208
+ */
4209
+ 500: OpenAiApiError;
4210
+ };
4211
+
4212
+ export type CreateMcpError = CreateMcpErrors[keyof CreateMcpErrors];
4213
+
4214
+ export type CreateMcpResponses = {
4215
+ /**
4216
+ * MCP created
4217
+ */
4218
+ 201: Mcp;
4219
+ };
4220
+
4221
+ export type CreateMcpResponse = CreateMcpResponses[keyof CreateMcpResponses];
4222
+
4223
+ export type ListMcpAuthConfigsData = {
4224
+ body?: never;
4225
+ path?: never;
4226
+ query: {
4227
+ mcp_server_id: string;
4228
+ };
4229
+ url: '/bodhi/v1/mcps/auth-configs';
4230
+ };
4231
+
4232
+ export type ListMcpAuthConfigsErrors = {
4233
+ /**
4234
+ * Invalid request parameters
4235
+ */
4236
+ 400: OpenAiApiError;
4237
+ /**
4238
+ * Not authenticated
4239
+ */
4240
+ 401: OpenAiApiError;
4241
+ /**
4242
+ * Insufficient permissions
4243
+ */
4244
+ 403: OpenAiApiError;
4245
+ /**
4246
+ * Internal server error
4247
+ */
4248
+ 500: OpenAiApiError;
4249
+ };
4250
+
4251
+ export type ListMcpAuthConfigsError = ListMcpAuthConfigsErrors[keyof ListMcpAuthConfigsErrors];
4252
+
4253
+ export type ListMcpAuthConfigsResponses = {
4254
+ /**
4255
+ * List of auth configs
4256
+ */
4257
+ 200: McpAuthConfigsListResponse;
4258
+ };
4259
+
4260
+ export type ListMcpAuthConfigsResponse = ListMcpAuthConfigsResponses[keyof ListMcpAuthConfigsResponses];
4261
+
4262
+ export type CreateMcpAuthConfigData = {
4263
+ body: CreateAuthConfig;
4264
+ path?: never;
4265
+ query?: never;
4266
+ url: '/bodhi/v1/mcps/auth-configs';
4267
+ };
4268
+
4269
+ export type CreateMcpAuthConfigErrors = {
4270
+ /**
4271
+ * Invalid request parameters
4272
+ */
4273
+ 400: OpenAiApiError;
4274
+ /**
4275
+ * Not authenticated
4276
+ */
4277
+ 401: OpenAiApiError;
4278
+ /**
4279
+ * Insufficient permissions
4280
+ */
4281
+ 403: OpenAiApiError;
4282
+ /**
4283
+ * Internal server error
4284
+ */
4285
+ 500: OpenAiApiError;
4286
+ };
4287
+
4288
+ export type CreateMcpAuthConfigError = CreateMcpAuthConfigErrors[keyof CreateMcpAuthConfigErrors];
4289
+
4290
+ export type CreateMcpAuthConfigResponses = {
4291
+ /**
4292
+ * Auth config created
4293
+ */
4294
+ 201: McpAuthConfigResponse;
4295
+ };
4296
+
4297
+ export type CreateMcpAuthConfigResponse = CreateMcpAuthConfigResponses[keyof CreateMcpAuthConfigResponses];
4298
+
4299
+ export type DeleteMcpAuthConfigData = {
4300
+ body?: never;
4301
+ path: {
4302
+ /**
4303
+ * Auth config UUID
4304
+ */
4305
+ id: string;
4306
+ };
4307
+ query?: never;
4308
+ url: '/bodhi/v1/mcps/auth-configs/{id}';
4309
+ };
4310
+
4311
+ export type DeleteMcpAuthConfigErrors = {
4312
+ /**
4313
+ * Invalid request parameters
4314
+ */
4315
+ 400: OpenAiApiError;
4316
+ /**
4317
+ * Not authenticated
4318
+ */
4319
+ 401: OpenAiApiError;
4320
+ /**
4321
+ * Insufficient permissions
4322
+ */
4323
+ 403: OpenAiApiError;
4324
+ /**
4325
+ * Not found
4326
+ */
4327
+ 404: unknown;
4328
+ /**
4329
+ * Internal server error
4330
+ */
4331
+ 500: OpenAiApiError;
4332
+ };
4333
+
4334
+ export type DeleteMcpAuthConfigError = DeleteMcpAuthConfigErrors[keyof DeleteMcpAuthConfigErrors];
4335
+
4336
+ export type DeleteMcpAuthConfigResponses = {
4337
+ /**
4338
+ * Auth config deleted
4339
+ */
4340
+ 204: void;
4341
+ };
4342
+
4343
+ export type DeleteMcpAuthConfigResponse = DeleteMcpAuthConfigResponses[keyof DeleteMcpAuthConfigResponses];
4344
+
4345
+ export type GetMcpAuthConfigData = {
4346
+ body?: never;
4347
+ path: {
4348
+ /**
4349
+ * Auth config UUID
4350
+ */
4351
+ id: string;
4352
+ };
4353
+ query?: never;
4354
+ url: '/bodhi/v1/mcps/auth-configs/{id}';
4355
+ };
4356
+
4357
+ export type GetMcpAuthConfigErrors = {
4358
+ /**
4359
+ * Invalid request parameters
4360
+ */
4361
+ 400: OpenAiApiError;
4362
+ /**
4363
+ * Not authenticated
4364
+ */
4365
+ 401: OpenAiApiError;
4366
+ /**
4367
+ * Insufficient permissions
4368
+ */
4369
+ 403: OpenAiApiError;
4370
+ /**
4371
+ * Not found
4372
+ */
4373
+ 404: unknown;
4374
+ /**
4375
+ * Internal server error
4376
+ */
4377
+ 500: OpenAiApiError;
4378
+ };
4379
+
4380
+ export type GetMcpAuthConfigError = GetMcpAuthConfigErrors[keyof GetMcpAuthConfigErrors];
4381
+
4382
+ export type GetMcpAuthConfigResponses = {
4383
+ /**
4384
+ * Auth config
4385
+ */
4386
+ 200: McpAuthConfigResponse;
4387
+ };
4388
+
4389
+ export type GetMcpAuthConfigResponse = GetMcpAuthConfigResponses[keyof GetMcpAuthConfigResponses];
4390
+
4391
+ export type McpOAuthLoginData = {
4392
+ body: OAuthLoginRequest;
4393
+ path: {
4394
+ /**
4395
+ * Auth config UUID
4396
+ */
4397
+ id: string;
4398
+ };
4399
+ query?: never;
4400
+ url: '/bodhi/v1/mcps/auth-configs/{id}/login';
4401
+ };
4402
+
4403
+ export type McpOAuthLoginErrors = {
4404
+ /**
4405
+ * Invalid request parameters
4406
+ */
4407
+ 400: OpenAiApiError;
4408
+ /**
4409
+ * Not authenticated
4410
+ */
4411
+ 401: OpenAiApiError;
4412
+ /**
4413
+ * Insufficient permissions
4414
+ */
4415
+ 403: OpenAiApiError;
4416
+ /**
4417
+ * Auth config not found
4418
+ */
4419
+ 404: unknown;
4420
+ /**
4421
+ * Internal server error
4422
+ */
4423
+ 500: OpenAiApiError;
4424
+ };
4425
+
4426
+ export type McpOAuthLoginError = McpOAuthLoginErrors[keyof McpOAuthLoginErrors];
4427
+
4428
+ export type McpOAuthLoginResponses = {
4429
+ /**
4430
+ * Authorization URL
4431
+ */
4432
+ 200: OAuthLoginResponse;
4433
+ };
4434
+
4435
+ export type McpOAuthLoginResponse = McpOAuthLoginResponses[keyof McpOAuthLoginResponses];
4436
+
4437
+ export type McpOAuthTokenExchangeData = {
4438
+ body: OAuthTokenExchangeRequest;
4439
+ path: {
4440
+ /**
4441
+ * Auth config UUID
4442
+ */
4443
+ id: string;
4444
+ };
4445
+ query?: never;
4446
+ url: '/bodhi/v1/mcps/auth-configs/{id}/token';
4447
+ };
4448
+
4449
+ export type McpOAuthTokenExchangeErrors = {
4450
+ /**
4451
+ * Invalid request parameters
4452
+ */
4453
+ 400: OpenAiApiError;
4454
+ /**
4455
+ * Not authenticated
4456
+ */
4457
+ 401: OpenAiApiError;
4458
+ /**
4459
+ * Insufficient permissions
4460
+ */
4461
+ 403: OpenAiApiError;
4462
+ /**
4463
+ * Auth config not found
4464
+ */
4465
+ 404: unknown;
4466
+ /**
4467
+ * Internal server error
4468
+ */
4469
+ 500: OpenAiApiError;
4470
+ };
4471
+
4472
+ export type McpOAuthTokenExchangeError = McpOAuthTokenExchangeErrors[keyof McpOAuthTokenExchangeErrors];
4473
+
4474
+ export type McpOAuthTokenExchangeResponses = {
4475
+ /**
4476
+ * Token stored
4477
+ */
4478
+ 200: OAuthTokenResponse;
4479
+ };
4480
+
4481
+ export type McpOAuthTokenExchangeResponse = McpOAuthTokenExchangeResponses[keyof McpOAuthTokenExchangeResponses];
4482
+
4483
+ export type FetchMcpToolsData = {
4484
+ body: FetchMcpToolsRequest;
4485
+ path?: never;
4486
+ query?: never;
4487
+ url: '/bodhi/v1/mcps/fetch-tools';
4488
+ };
4489
+
4490
+ export type FetchMcpToolsErrors = {
4491
+ /**
4492
+ * Invalid request parameters
4493
+ */
4494
+ 400: OpenAiApiError;
4495
+ /**
4496
+ * Not authenticated
4497
+ */
4498
+ 401: OpenAiApiError;
4499
+ /**
4500
+ * Insufficient permissions
4501
+ */
4502
+ 403: OpenAiApiError;
4503
+ /**
4504
+ * MCP server not found
4505
+ */
4506
+ 404: unknown;
4507
+ /**
4508
+ * Internal server error
4509
+ */
4510
+ 500: OpenAiApiError;
4511
+ };
4512
+
4513
+ export type FetchMcpToolsError = FetchMcpToolsErrors[keyof FetchMcpToolsErrors];
4514
+
4515
+ export type FetchMcpToolsResponses = {
4516
+ /**
4517
+ * List of tools from MCP server
4518
+ */
4519
+ 200: McpToolsResponse;
4520
+ };
4521
+
4522
+ export type FetchMcpToolsResponse = FetchMcpToolsResponses[keyof FetchMcpToolsResponses];
4523
+
4524
+ export type DeleteMcpOAuthTokenData = {
4525
+ body?: never;
4526
+ path: {
4527
+ /**
4528
+ * OAuth token UUID
4529
+ */
4530
+ token_id: string;
4531
+ };
4532
+ query?: never;
4533
+ url: '/bodhi/v1/mcps/oauth-tokens/{token_id}';
4534
+ };
4535
+
4536
+ export type DeleteMcpOAuthTokenErrors = {
4537
+ /**
4538
+ * Invalid request parameters
4539
+ */
4540
+ 400: OpenAiApiError;
4541
+ /**
4542
+ * Not authenticated
4543
+ */
4544
+ 401: OpenAiApiError;
4545
+ /**
4546
+ * Insufficient permissions
4547
+ */
4548
+ 403: OpenAiApiError;
4549
+ /**
4550
+ * Not found
4551
+ */
4552
+ 404: unknown;
4553
+ /**
4554
+ * Internal server error
4555
+ */
4556
+ 500: OpenAiApiError;
4557
+ };
4558
+
4559
+ export type DeleteMcpOAuthTokenError = DeleteMcpOAuthTokenErrors[keyof DeleteMcpOAuthTokenErrors];
4560
+
4561
+ export type DeleteMcpOAuthTokenResponses = {
4562
+ /**
4563
+ * OAuth token deleted
4564
+ */
4565
+ 204: void;
4566
+ };
4567
+
4568
+ export type DeleteMcpOAuthTokenResponse = DeleteMcpOAuthTokenResponses[keyof DeleteMcpOAuthTokenResponses];
4569
+
4570
+ export type GetMcpOAuthTokenData = {
4571
+ body?: never;
4572
+ path: {
4573
+ /**
4574
+ * OAuth token UUID
4575
+ */
4576
+ token_id: string;
4577
+ };
4578
+ query?: never;
4579
+ url: '/bodhi/v1/mcps/oauth-tokens/{token_id}';
4580
+ };
4581
+
4582
+ export type GetMcpOAuthTokenErrors = {
4583
+ /**
4584
+ * Invalid request parameters
4585
+ */
4586
+ 400: OpenAiApiError;
4587
+ /**
4588
+ * Not authenticated
4589
+ */
4590
+ 401: OpenAiApiError;
4591
+ /**
4592
+ * Insufficient permissions
4593
+ */
4594
+ 403: OpenAiApiError;
4595
+ /**
4596
+ * Not found
4597
+ */
4598
+ 404: unknown;
4599
+ /**
4600
+ * Internal server error
4601
+ */
4602
+ 500: OpenAiApiError;
4603
+ };
4604
+
4605
+ export type GetMcpOAuthTokenError = GetMcpOAuthTokenErrors[keyof GetMcpOAuthTokenErrors];
4606
+
4607
+ export type GetMcpOAuthTokenResponses = {
4608
+ /**
4609
+ * OAuth token
4610
+ */
4611
+ 200: OAuthTokenResponse;
4612
+ };
4613
+
4614
+ export type GetMcpOAuthTokenResponse = GetMcpOAuthTokenResponses[keyof GetMcpOAuthTokenResponses];
4615
+
4616
+ export type McpOAuthDiscoverAsData = {
4617
+ body: OAuthDiscoverAsRequest;
4618
+ path?: never;
4619
+ query?: never;
4620
+ url: '/bodhi/v1/mcps/oauth/discover-as';
4621
+ };
4622
+
4623
+ export type McpOAuthDiscoverAsErrors = {
4624
+ /**
4625
+ * Invalid request parameters
4626
+ */
4627
+ 400: OpenAiApiError;
4628
+ /**
4629
+ * Not authenticated
4630
+ */
4631
+ 401: OpenAiApiError;
4632
+ /**
4633
+ * Insufficient permissions
4634
+ */
4635
+ 403: OpenAiApiError;
4636
+ /**
4637
+ * Internal server error
4638
+ */
4639
+ 500: OpenAiApiError;
4640
+ };
4641
+
4642
+ export type McpOAuthDiscoverAsError = McpOAuthDiscoverAsErrors[keyof McpOAuthDiscoverAsErrors];
4643
+
4644
+ export type McpOAuthDiscoverAsResponses = {
4645
+ /**
4646
+ * OAuth discovery metadata
4647
+ */
4648
+ 200: OAuthDiscoverAsResponse;
4649
+ };
4650
+
4651
+ export type McpOAuthDiscoverAsResponse = McpOAuthDiscoverAsResponses[keyof McpOAuthDiscoverAsResponses];
4652
+
4653
+ export type McpOAuthDiscoverMcpData = {
4654
+ body: OAuthDiscoverMcpRequest;
4655
+ path?: never;
4656
+ query?: never;
4657
+ url: '/bodhi/v1/mcps/oauth/discover-mcp';
4658
+ };
4659
+
4660
+ export type McpOAuthDiscoverMcpErrors = {
4661
+ /**
4662
+ * Invalid request parameters
4663
+ */
4664
+ 400: OpenAiApiError;
4665
+ /**
4666
+ * Not authenticated
4667
+ */
4668
+ 401: OpenAiApiError;
4669
+ /**
4670
+ * Insufficient permissions
4671
+ */
4672
+ 403: OpenAiApiError;
4673
+ /**
4674
+ * Internal server error
4675
+ */
4676
+ 500: OpenAiApiError;
4677
+ };
4678
+
4679
+ export type McpOAuthDiscoverMcpError = McpOAuthDiscoverMcpErrors[keyof McpOAuthDiscoverMcpErrors];
4680
+
4681
+ export type McpOAuthDiscoverMcpResponses = {
4682
+ /**
4683
+ * MCP OAuth discovery metadata
4684
+ */
4685
+ 200: OAuthDiscoverMcpResponse;
4686
+ };
4687
+
4688
+ export type McpOAuthDiscoverMcpResponse = McpOAuthDiscoverMcpResponses[keyof McpOAuthDiscoverMcpResponses];
4689
+
4690
+ export type McpOAuthDynamicRegisterStandaloneData = {
4691
+ body: DynamicRegisterRequest;
4692
+ path?: never;
4693
+ query?: never;
4694
+ url: '/bodhi/v1/mcps/oauth/dynamic-register';
4695
+ };
4696
+
4697
+ export type McpOAuthDynamicRegisterStandaloneErrors = {
4698
+ /**
4699
+ * Invalid request parameters
4700
+ */
4701
+ 400: OpenAiApiError;
4702
+ /**
4703
+ * Not authenticated
4704
+ */
4705
+ 401: OpenAiApiError;
4706
+ /**
4707
+ * Insufficient permissions
4708
+ */
4709
+ 403: OpenAiApiError;
4710
+ /**
4711
+ * Internal server error
4712
+ */
4713
+ 500: OpenAiApiError;
4714
+ };
4715
+
4716
+ export type McpOAuthDynamicRegisterStandaloneError = McpOAuthDynamicRegisterStandaloneErrors[keyof McpOAuthDynamicRegisterStandaloneErrors];
4717
+
4718
+ export type McpOAuthDynamicRegisterStandaloneResponses = {
4719
+ /**
4720
+ * Dynamic client registration result
4721
+ */
4722
+ 200: DynamicRegisterResponse;
4723
+ };
4724
+
4725
+ export type McpOAuthDynamicRegisterStandaloneResponse = McpOAuthDynamicRegisterStandaloneResponses[keyof McpOAuthDynamicRegisterStandaloneResponses];
4726
+
4727
+ export type ListMcpServersData = {
4728
+ body?: never;
4729
+ path?: never;
4730
+ query?: {
4731
+ /**
4732
+ * Filter by enabled status
4733
+ */
4734
+ enabled?: boolean;
4735
+ };
4736
+ url: '/bodhi/v1/mcps/servers';
4737
+ };
4738
+
4739
+ export type ListMcpServersErrors = {
4740
+ /**
4741
+ * Invalid request parameters
4742
+ */
4743
+ 400: OpenAiApiError;
4744
+ /**
4745
+ * Not authenticated
4746
+ */
4747
+ 401: OpenAiApiError;
4748
+ /**
4749
+ * Insufficient permissions
4750
+ */
4751
+ 403: OpenAiApiError;
4752
+ /**
4753
+ * Internal server error
4754
+ */
4755
+ 500: OpenAiApiError;
4756
+ };
4757
+
4758
+ export type ListMcpServersError = ListMcpServersErrors[keyof ListMcpServersErrors];
4759
+
4760
+ export type ListMcpServersResponses = {
4761
+ /**
4762
+ * List of MCP servers
4763
+ */
4764
+ 200: ListMcpServersResponse;
4765
+ };
4766
+
4767
+ export type ListMcpServersResponse2 = ListMcpServersResponses[keyof ListMcpServersResponses];
4768
+
4769
+ export type CreateMcpServerData = {
4770
+ body: McpServerRequest;
4771
+ path?: never;
4772
+ query?: never;
4773
+ url: '/bodhi/v1/mcps/servers';
4774
+ };
4775
+
4776
+ export type CreateMcpServerErrors = {
4777
+ /**
4778
+ * Invalid request parameters
4779
+ */
4780
+ 400: OpenAiApiError;
4781
+ /**
4782
+ * Not authenticated
4783
+ */
4784
+ 401: OpenAiApiError;
4785
+ /**
4786
+ * Insufficient permissions
4787
+ */
4788
+ 403: OpenAiApiError;
4789
+ /**
4790
+ * URL already exists
4791
+ */
4792
+ 409: unknown;
4793
+ /**
4794
+ * Internal server error
4795
+ */
4796
+ 500: OpenAiApiError;
4797
+ };
4798
+
4799
+ export type CreateMcpServerError = CreateMcpServerErrors[keyof CreateMcpServerErrors];
4800
+
4801
+ export type CreateMcpServerResponses = {
4802
+ /**
4803
+ * MCP server created
4804
+ */
4805
+ 201: McpServerResponse;
4806
+ };
4807
+
4808
+ export type CreateMcpServerResponse = CreateMcpServerResponses[keyof CreateMcpServerResponses];
4809
+
4810
+ export type GetMcpServerData = {
4811
+ body?: never;
4812
+ path: {
4813
+ /**
4814
+ * MCP server UUID
4815
+ */
4816
+ id: string;
4817
+ };
4818
+ query?: never;
4819
+ url: '/bodhi/v1/mcps/servers/{id}';
4820
+ };
4821
+
4822
+ export type GetMcpServerErrors = {
4823
+ /**
4824
+ * Invalid request parameters
4825
+ */
4826
+ 400: OpenAiApiError;
4827
+ /**
4828
+ * Not authenticated
4829
+ */
4830
+ 401: OpenAiApiError;
4831
+ /**
4832
+ * Insufficient permissions
4833
+ */
4834
+ 403: OpenAiApiError;
4835
+ /**
4836
+ * Not found
4837
+ */
4838
+ 404: unknown;
4839
+ /**
4840
+ * Internal server error
4841
+ */
4842
+ 500: OpenAiApiError;
4843
+ };
4844
+
4845
+ export type GetMcpServerError = GetMcpServerErrors[keyof GetMcpServerErrors];
4846
+
4847
+ export type GetMcpServerResponses = {
4848
+ /**
4849
+ * MCP server
4850
+ */
4851
+ 200: McpServerResponse;
4852
+ };
4853
+
4854
+ export type GetMcpServerResponse = GetMcpServerResponses[keyof GetMcpServerResponses];
4855
+
4856
+ export type UpdateMcpServerData = {
4857
+ body: McpServerRequest;
4858
+ path: {
4859
+ /**
4860
+ * MCP server UUID
4861
+ */
4862
+ id: string;
4863
+ };
4864
+ query?: never;
4865
+ url: '/bodhi/v1/mcps/servers/{id}';
4866
+ };
4867
+
4868
+ export type UpdateMcpServerErrors = {
4869
+ /**
4870
+ * Invalid request parameters
4871
+ */
4872
+ 400: OpenAiApiError;
4873
+ /**
4874
+ * Not authenticated
4875
+ */
4876
+ 401: OpenAiApiError;
4877
+ /**
4878
+ * Insufficient permissions
4879
+ */
4880
+ 403: OpenAiApiError;
4881
+ /**
4882
+ * Not found
4883
+ */
4884
+ 404: unknown;
4885
+ /**
4886
+ * URL already exists
4887
+ */
4888
+ 409: unknown;
4889
+ /**
4890
+ * Internal server error
4891
+ */
4892
+ 500: OpenAiApiError;
4893
+ };
4894
+
4895
+ export type UpdateMcpServerError = UpdateMcpServerErrors[keyof UpdateMcpServerErrors];
4896
+
4897
+ export type UpdateMcpServerResponses = {
4898
+ /**
4899
+ * MCP server updated
4900
+ */
4901
+ 200: McpServerResponse;
4902
+ };
4903
+
4904
+ export type UpdateMcpServerResponse = UpdateMcpServerResponses[keyof UpdateMcpServerResponses];
4905
+
4906
+ export type DeleteMcpData = {
4907
+ body?: never;
4908
+ path: {
4909
+ /**
4910
+ * MCP instance UUID
4911
+ */
4912
+ id: string;
4913
+ };
4914
+ query?: never;
4915
+ url: '/bodhi/v1/mcps/{id}';
4916
+ };
4917
+
4918
+ export type DeleteMcpErrors = {
4919
+ /**
4920
+ * Invalid request parameters
4921
+ */
4922
+ 400: OpenAiApiError;
4923
+ /**
4924
+ * Not authenticated
4925
+ */
4926
+ 401: OpenAiApiError;
4927
+ /**
4928
+ * Insufficient permissions
4929
+ */
4930
+ 403: OpenAiApiError;
4931
+ /**
4932
+ * MCP not found
4933
+ */
4934
+ 404: unknown;
4935
+ /**
4936
+ * Internal server error
4937
+ */
4938
+ 500: OpenAiApiError;
4939
+ };
4940
+
4941
+ export type DeleteMcpError = DeleteMcpErrors[keyof DeleteMcpErrors];
4942
+
4943
+ export type DeleteMcpResponses = {
4944
+ /**
4945
+ * MCP deleted
4946
+ */
4947
+ 204: void;
4948
+ };
4949
+
4950
+ export type DeleteMcpResponse = DeleteMcpResponses[keyof DeleteMcpResponses];
4951
+
4952
+ export type GetMcpData = {
4953
+ body?: never;
4954
+ path: {
4955
+ /**
4956
+ * MCP instance UUID
4957
+ */
4958
+ id: string;
4959
+ };
4960
+ query?: never;
4961
+ url: '/bodhi/v1/mcps/{id}';
4962
+ };
4963
+
4964
+ export type GetMcpErrors = {
4965
+ /**
4966
+ * Invalid request parameters
4967
+ */
4968
+ 400: OpenAiApiError;
4969
+ /**
4970
+ * Not authenticated
4971
+ */
4972
+ 401: OpenAiApiError;
4973
+ /**
4974
+ * Insufficient permissions
4975
+ */
4976
+ 403: OpenAiApiError;
4977
+ /**
4978
+ * MCP not found
4979
+ */
4980
+ 404: unknown;
4981
+ /**
4982
+ * Internal server error
4983
+ */
4984
+ 500: OpenAiApiError;
4985
+ };
4986
+
4987
+ export type GetMcpError = GetMcpErrors[keyof GetMcpErrors];
4988
+
4989
+ export type GetMcpResponses = {
4990
+ /**
4991
+ * MCP instance
4992
+ */
4993
+ 200: Mcp;
4994
+ };
4995
+
4996
+ export type GetMcpResponse = GetMcpResponses[keyof GetMcpResponses];
4997
+
4998
+ export type UpdateMcpData = {
4999
+ body: McpRequest;
5000
+ path: {
5001
+ /**
5002
+ * MCP instance UUID
5003
+ */
5004
+ id: string;
5005
+ };
5006
+ query?: never;
5007
+ url: '/bodhi/v1/mcps/{id}';
5008
+ };
5009
+
5010
+ export type UpdateMcpErrors = {
5011
+ /**
5012
+ * Invalid request parameters
5013
+ */
5014
+ 400: OpenAiApiError;
5015
+ /**
5016
+ * Not authenticated
5017
+ */
5018
+ 401: OpenAiApiError;
5019
+ /**
5020
+ * Insufficient permissions
5021
+ */
5022
+ 403: OpenAiApiError;
5023
+ /**
5024
+ * MCP not found
5025
+ */
5026
+ 404: unknown;
5027
+ /**
5028
+ * Internal server error
5029
+ */
5030
+ 500: OpenAiApiError;
5031
+ };
5032
+
5033
+ export type UpdateMcpError = UpdateMcpErrors[keyof UpdateMcpErrors];
5034
+
5035
+ export type UpdateMcpResponses = {
5036
+ /**
5037
+ * MCP updated
5038
+ */
5039
+ 200: Mcp;
5040
+ };
5041
+
5042
+ export type UpdateMcpResponse = UpdateMcpResponses[keyof UpdateMcpResponses];
3288
5043
 
3289
- export type GetAppInfoData = {
5044
+ export type RefreshMcpToolsData = {
3290
5045
  body?: never;
3291
- path?: never;
5046
+ path: {
5047
+ /**
5048
+ * MCP instance UUID
5049
+ */
5050
+ id: string;
5051
+ };
3292
5052
  query?: never;
3293
- url: '/bodhi/v1/info';
5053
+ url: '/bodhi/v1/mcps/{id}/tools/refresh';
3294
5054
  };
3295
5055
 
3296
- export type GetAppInfoErrors = {
5056
+ export type RefreshMcpToolsErrors = {
3297
5057
  /**
3298
5058
  * Invalid request parameters
3299
5059
  */
3300
5060
  400: OpenAiApiError;
5061
+ /**
5062
+ * Not authenticated
5063
+ */
5064
+ 401: OpenAiApiError;
5065
+ /**
5066
+ * Insufficient permissions
5067
+ */
5068
+ 403: OpenAiApiError;
5069
+ /**
5070
+ * MCP not found
5071
+ */
5072
+ 404: unknown;
3301
5073
  /**
3302
5074
  * Internal server error
3303
5075
  */
3304
5076
  500: OpenAiApiError;
3305
5077
  };
3306
5078
 
3307
- export type GetAppInfoError = GetAppInfoErrors[keyof GetAppInfoErrors];
5079
+ export type RefreshMcpToolsError = RefreshMcpToolsErrors[keyof RefreshMcpToolsErrors];
3308
5080
 
3309
- export type GetAppInfoResponses = {
5081
+ export type RefreshMcpToolsResponses = {
3310
5082
  /**
3311
- * Application information retrieved successfully
5083
+ * Refreshed list of tools
3312
5084
  */
3313
- 200: AppInfo;
5085
+ 200: McpToolsResponse;
3314
5086
  };
3315
5087
 
3316
- export type GetAppInfoResponse = GetAppInfoResponses[keyof GetAppInfoResponses];
5088
+ export type RefreshMcpToolsResponse = RefreshMcpToolsResponses[keyof RefreshMcpToolsResponses];
3317
5089
 
3318
- export type LogoutUserData = {
3319
- body?: never;
3320
- path?: never;
5090
+ export type ExecuteMcpToolData = {
5091
+ body: McpExecuteRequest;
5092
+ path: {
5093
+ /**
5094
+ * MCP instance UUID
5095
+ */
5096
+ id: string;
5097
+ /**
5098
+ * Tool name to execute
5099
+ */
5100
+ tool_name: string;
5101
+ };
3321
5102
  query?: never;
3322
- url: '/bodhi/v1/logout';
5103
+ url: '/bodhi/v1/mcps/{id}/tools/{tool_name}/execute';
3323
5104
  };
3324
5105
 
3325
- export type LogoutUserErrors = {
5106
+ export type ExecuteMcpToolErrors = {
3326
5107
  /**
3327
5108
  * Invalid request parameters
3328
5109
  */
@@ -3335,22 +5116,26 @@ export type LogoutUserErrors = {
3335
5116
  * Insufficient permissions
3336
5117
  */
3337
5118
  403: OpenAiApiError;
5119
+ /**
5120
+ * MCP or tool not found
5121
+ */
5122
+ 404: unknown;
3338
5123
  /**
3339
5124
  * Internal server error
3340
5125
  */
3341
5126
  500: OpenAiApiError;
3342
5127
  };
3343
5128
 
3344
- export type LogoutUserError = LogoutUserErrors[keyof LogoutUserErrors];
5129
+ export type ExecuteMcpToolError = ExecuteMcpToolErrors[keyof ExecuteMcpToolErrors];
3345
5130
 
3346
- export type LogoutUserResponses = {
5131
+ export type ExecuteMcpToolResponses = {
3347
5132
  /**
3348
- * User logged out successfully
5133
+ * Tool execution result
3349
5134
  */
3350
- 200: RedirectResponse;
5135
+ 200: McpExecuteResponse;
3351
5136
  };
3352
5137
 
3353
- export type LogoutUserResponse = LogoutUserResponses[keyof LogoutUserResponses];
5138
+ export type ExecuteMcpToolResponse = ExecuteMcpToolResponses[keyof ExecuteMcpToolResponses];
3354
5139
 
3355
5140
  export type ListModelFilesData = {
3356
5141
  body?: never;
@@ -3504,56 +5289,6 @@ export type PullModelFileResponses = {
3504
5289
 
3505
5290
  export type PullModelFileResponse = PullModelFileResponses[keyof PullModelFileResponses];
3506
5291
 
3507
- export type PullModelByAliasData = {
3508
- body?: never;
3509
- path: {
3510
- /**
3511
- * Predefined model alias. Available aliases include popular models like llama2:chat, mistral:instruct, phi3:mini, etc. Use the /models endpoint to see all available aliases.
3512
- */
3513
- alias: string;
3514
- };
3515
- query?: never;
3516
- url: '/bodhi/v1/modelfiles/pull/{alias}';
3517
- };
3518
-
3519
- export type PullModelByAliasErrors = {
3520
- /**
3521
- * Invalid request parameters
3522
- */
3523
- 400: OpenAiApiError;
3524
- /**
3525
- * Not authenticated
3526
- */
3527
- 401: OpenAiApiError;
3528
- /**
3529
- * Insufficient permissions
3530
- */
3531
- 403: OpenAiApiError;
3532
- /**
3533
- * Alias not found
3534
- */
3535
- 404: OpenAiApiError;
3536
- /**
3537
- * Internal server error
3538
- */
3539
- 500: OpenAiApiError;
3540
- };
3541
-
3542
- export type PullModelByAliasError = PullModelByAliasErrors[keyof PullModelByAliasErrors];
3543
-
3544
- export type PullModelByAliasResponses = {
3545
- /**
3546
- * Existing download request found
3547
- */
3548
- 200: DownloadRequest;
3549
- /**
3550
- * Download request created
3551
- */
3552
- 201: DownloadRequest;
3553
- };
3554
-
3555
- export type PullModelByAliasResponse = PullModelByAliasResponses[keyof PullModelByAliasResponses];
3556
-
3557
5292
  export type GetDownloadStatusData = {
3558
5293
  body?: never;
3559
5294
  path: {
@@ -3655,7 +5390,7 @@ export type ListAllModelsResponses = {
3655
5390
  export type ListAllModelsResponse = ListAllModelsResponses[keyof ListAllModelsResponses];
3656
5391
 
3657
5392
  export type CreateAliasData = {
3658
- body: CreateAliasRequest;
5393
+ body: UserAliasRequest;
3659
5394
  path?: never;
3660
5395
  query?: never;
3661
5396
  url: '/bodhi/v1/models';
@@ -3739,16 +5474,60 @@ export type RefreshModelMetadataResponses = {
3739
5474
 
3740
5475
  export type RefreshModelMetadataResponse = RefreshModelMetadataResponses[keyof RefreshModelMetadataResponses];
3741
5476
 
5477
+ export type DeleteAliasData = {
5478
+ body?: never;
5479
+ path: {
5480
+ /**
5481
+ * UUID of the alias to delete
5482
+ */
5483
+ id: string;
5484
+ };
5485
+ query?: never;
5486
+ url: '/bodhi/v1/models/{id}';
5487
+ };
5488
+
5489
+ export type DeleteAliasErrors = {
5490
+ /**
5491
+ * Invalid request parameters
5492
+ */
5493
+ 400: OpenAiApiError;
5494
+ /**
5495
+ * Not authenticated
5496
+ */
5497
+ 401: OpenAiApiError;
5498
+ /**
5499
+ * Insufficient permissions
5500
+ */
5501
+ 403: OpenAiApiError;
5502
+ /**
5503
+ * Alias not found
5504
+ */
5505
+ 404: unknown;
5506
+ /**
5507
+ * Internal server error
5508
+ */
5509
+ 500: OpenAiApiError;
5510
+ };
5511
+
5512
+ export type DeleteAliasError = DeleteAliasErrors[keyof DeleteAliasErrors];
5513
+
5514
+ export type DeleteAliasResponses = {
5515
+ /**
5516
+ * Alias deleted successfully
5517
+ */
5518
+ 200: unknown;
5519
+ };
5520
+
3742
5521
  export type GetAliasData = {
3743
5522
  body?: never;
3744
5523
  path: {
3745
5524
  /**
3746
- * Alias identifier for the model
5525
+ * UUID of the alias
3747
5526
  */
3748
- alias: string;
5527
+ id: string;
3749
5528
  };
3750
5529
  query?: never;
3751
- url: '/bodhi/v1/models/{alias}';
5530
+ url: '/bodhi/v1/models/{id}';
3752
5531
  };
3753
5532
 
3754
5533
  export type GetAliasErrors = {
@@ -3786,10 +5565,10 @@ export type GetAliasResponses = {
3786
5565
  export type GetAliasResponse = GetAliasResponses[keyof GetAliasResponses];
3787
5566
 
3788
5567
  export type UpdateAliasData = {
3789
- body: UpdateAliasRequest;
5568
+ body: UserAliasRequest;
3790
5569
  path: {
3791
5570
  /**
3792
- * Alias identifier
5571
+ * UUID of the alias to update
3793
5572
  */
3794
5573
  id: string;
3795
5574
  };
@@ -3827,6 +5606,52 @@ export type UpdateAliasResponses = {
3827
5606
 
3828
5607
  export type UpdateAliasResponse = UpdateAliasResponses[keyof UpdateAliasResponses];
3829
5608
 
5609
+ export type CopyAliasData = {
5610
+ body: CopyAliasRequest;
5611
+ path: {
5612
+ /**
5613
+ * UUID of the alias to copy
5614
+ */
5615
+ id: string;
5616
+ };
5617
+ query?: never;
5618
+ url: '/bodhi/v1/models/{id}/copy';
5619
+ };
5620
+
5621
+ export type CopyAliasErrors = {
5622
+ /**
5623
+ * Invalid request parameters
5624
+ */
5625
+ 400: OpenAiApiError;
5626
+ /**
5627
+ * Not authenticated
5628
+ */
5629
+ 401: OpenAiApiError;
5630
+ /**
5631
+ * Insufficient permissions
5632
+ */
5633
+ 403: OpenAiApiError;
5634
+ /**
5635
+ * Source alias not found
5636
+ */
5637
+ 404: unknown;
5638
+ /**
5639
+ * Internal server error
5640
+ */
5641
+ 500: OpenAiApiError;
5642
+ };
5643
+
5644
+ export type CopyAliasError = CopyAliasErrors[keyof CopyAliasErrors];
5645
+
5646
+ export type CopyAliasResponses = {
5647
+ /**
5648
+ * Alias copied successfully
5649
+ */
5650
+ 201: UserAliasResponse;
5651
+ };
5652
+
5653
+ export type CopyAliasResponse = CopyAliasResponses[keyof CopyAliasResponses];
5654
+
3830
5655
  export type GetQueueStatusData = {
3831
5656
  body?: never;
3832
5657
  path?: never;
@@ -4033,6 +5858,123 @@ export type SetupAppResponses = {
4033
5858
 
4034
5859
  export type SetupAppResponse = SetupAppResponses[keyof SetupAppResponses];
4035
5860
 
5861
+ export type TenantsListData = {
5862
+ body?: never;
5863
+ path?: never;
5864
+ query?: never;
5865
+ url: '/bodhi/v1/tenants';
5866
+ };
5867
+
5868
+ export type TenantsListErrors = {
5869
+ /**
5870
+ * Invalid request parameters
5871
+ */
5872
+ 400: OpenAiApiError;
5873
+ /**
5874
+ * Not authenticated
5875
+ */
5876
+ 401: OpenAiApiError;
5877
+ /**
5878
+ * Insufficient permissions
5879
+ */
5880
+ 403: OpenAiApiError;
5881
+ /**
5882
+ * Internal server error
5883
+ */
5884
+ 500: OpenAiApiError;
5885
+ };
5886
+
5887
+ export type TenantsListError = TenantsListErrors[keyof TenantsListErrors];
5888
+
5889
+ export type TenantsListResponses = {
5890
+ /**
5891
+ * List of tenants
5892
+ */
5893
+ 200: TenantListResponse;
5894
+ };
5895
+
5896
+ export type TenantsListResponse = TenantsListResponses[keyof TenantsListResponses];
5897
+
5898
+ export type TenantsCreateData = {
5899
+ /**
5900
+ * Tenant creation parameters
5901
+ */
5902
+ body: CreateTenantRequest;
5903
+ path?: never;
5904
+ query?: never;
5905
+ url: '/bodhi/v1/tenants';
5906
+ };
5907
+
5908
+ export type TenantsCreateErrors = {
5909
+ /**
5910
+ * Invalid request parameters
5911
+ */
5912
+ 400: OpenAiApiError;
5913
+ /**
5914
+ * Not authenticated
5915
+ */
5916
+ 401: OpenAiApiError;
5917
+ /**
5918
+ * Insufficient permissions
5919
+ */
5920
+ 403: OpenAiApiError;
5921
+ /**
5922
+ * Internal server error
5923
+ */
5924
+ 500: OpenAiApiError;
5925
+ };
5926
+
5927
+ export type TenantsCreateError = TenantsCreateErrors[keyof TenantsCreateErrors];
5928
+
5929
+ export type TenantsCreateResponses = {
5930
+ /**
5931
+ * Tenant created successfully
5932
+ */
5933
+ 201: CreateTenantResponse;
5934
+ };
5935
+
5936
+ export type TenantsCreateResponse = TenantsCreateResponses[keyof TenantsCreateResponses];
5937
+
5938
+ export type TenantsActivateData = {
5939
+ body?: never;
5940
+ path: {
5941
+ /**
5942
+ * The client_id of the tenant to activate
5943
+ */
5944
+ client_id: string;
5945
+ };
5946
+ query?: never;
5947
+ url: '/bodhi/v1/tenants/{client_id}/activate';
5948
+ };
5949
+
5950
+ export type TenantsActivateErrors = {
5951
+ /**
5952
+ * Invalid request parameters
5953
+ */
5954
+ 400: OpenAiApiError;
5955
+ /**
5956
+ * Not authenticated
5957
+ */
5958
+ 401: OpenAiApiError;
5959
+ /**
5960
+ * Insufficient permissions
5961
+ */
5962
+ 403: OpenAiApiError;
5963
+ /**
5964
+ * Internal server error
5965
+ */
5966
+ 500: OpenAiApiError;
5967
+ };
5968
+
5969
+ export type TenantsActivateError = TenantsActivateErrors[keyof TenantsActivateErrors];
5970
+
5971
+ export type TenantsActivateResponses = {
5972
+ /**
5973
+ * Tenant activated successfully
5974
+ */
5975
+ 200: unknown;
5976
+ };
5977
+
4036
5978
  export type ListApiTokensData = {
4037
5979
  body?: never;
4038
5980
  path?: never;
@@ -4082,7 +6024,7 @@ export type ListApiTokensResponses = {
4082
6024
  /**
4083
6025
  * List of API tokens
4084
6026
  */
4085
- 200: PaginatedApiTokenResponse;
6027
+ 200: PaginatedTokenResponse;
4086
6028
  };
4087
6029
 
4088
6030
  export type ListApiTokensResponse = ListApiTokensResponses[keyof ListApiTokensResponses];
@@ -4091,7 +6033,7 @@ export type CreateApiTokenData = {
4091
6033
  /**
4092
6034
  * API token creation parameters
4093
6035
  */
4094
- body: CreateApiTokenRequest;
6036
+ body: CreateTokenRequest;
4095
6037
  path?: never;
4096
6038
  query?: never;
4097
6039
  url: '/bodhi/v1/tokens';
@@ -4122,7 +6064,7 @@ export type CreateApiTokenResponses = {
4122
6064
  /**
4123
6065
  * API token created successfully
4124
6066
  */
4125
- 201: ApiTokenResponse;
6067
+ 201: TokenCreated;
4126
6068
  };
4127
6069
 
4128
6070
  export type CreateApiTokenResponse = CreateApiTokenResponses[keyof CreateApiTokenResponses];
@@ -4131,7 +6073,7 @@ export type UpdateApiTokenData = {
4131
6073
  /**
4132
6074
  * Token update request
4133
6075
  */
4134
- body: UpdateApiTokenRequest;
6076
+ body: UpdateTokenRequest;
4135
6077
  path: {
4136
6078
  /**
4137
6079
  * Unique identifier of the API token to update
@@ -4171,7 +6113,7 @@ export type UpdateApiTokenResponses = {
4171
6113
  /**
4172
6114
  * Token updated successfully
4173
6115
  */
4174
- 200: ApiToken;
6116
+ 200: TokenDetail;
4175
6117
  };
4176
6118
 
4177
6119
  export type UpdateApiTokenResponse = UpdateApiTokenResponses[keyof UpdateApiTokenResponses];
@@ -4217,12 +6159,12 @@ export type DisableToolsetTypeData = {
4217
6159
  body?: never;
4218
6160
  path: {
4219
6161
  /**
4220
- * Toolset type identifier
6162
+ * Toolset type identifier (e.g., 'builtin-exa-search')
4221
6163
  */
4222
- type_id: string;
6164
+ toolset_type: string;
4223
6165
  };
4224
6166
  query?: never;
4225
- url: '/bodhi/v1/toolset_types/{type_id}/app-config';
6167
+ url: '/bodhi/v1/toolset_types/{toolset_type}/app-config';
4226
6168
  };
4227
6169
 
4228
6170
  export type DisableToolsetTypeErrors = {
@@ -4254,7 +6196,7 @@ export type DisableToolsetTypeResponses = {
4254
6196
  /**
4255
6197
  * Toolset type disabled
4256
6198
  */
4257
- 200: AppToolsetConfigResponse;
6199
+ 200: AppToolsetConfig;
4258
6200
  };
4259
6201
 
4260
6202
  export type DisableToolsetTypeResponse = DisableToolsetTypeResponses[keyof DisableToolsetTypeResponses];
@@ -4263,12 +6205,12 @@ export type EnableToolsetTypeData = {
4263
6205
  body?: never;
4264
6206
  path: {
4265
6207
  /**
4266
- * Toolset type identifier
6208
+ * Toolset type identifier (e.g., 'builtin-exa-search')
4267
6209
  */
4268
- type_id: string;
6210
+ toolset_type: string;
4269
6211
  };
4270
6212
  query?: never;
4271
- url: '/bodhi/v1/toolset_types/{type_id}/app-config';
6213
+ url: '/bodhi/v1/toolset_types/{toolset_type}/app-config';
4272
6214
  };
4273
6215
 
4274
6216
  export type EnableToolsetTypeErrors = {
@@ -4300,7 +6242,7 @@ export type EnableToolsetTypeResponses = {
4300
6242
  /**
4301
6243
  * Toolset type enabled
4302
6244
  */
4303
- 200: AppToolsetConfigResponse;
6245
+ 200: AppToolsetConfig;
4304
6246
  };
4305
6247
 
4306
6248
  export type EnableToolsetTypeResponse = EnableToolsetTypeResponses[keyof EnableToolsetTypeResponses];
@@ -4343,7 +6285,7 @@ export type ListToolsetsResponses = {
4343
6285
  export type ListToolsetsResponse2 = ListToolsetsResponses[keyof ListToolsetsResponses];
4344
6286
 
4345
6287
  export type CreateToolsetData = {
4346
- body: CreateToolsetRequest;
6288
+ body: ToolsetRequest;
4347
6289
  path?: never;
4348
6290
  query?: never;
4349
6291
  url: '/bodhi/v1/toolsets';
@@ -4476,7 +6418,7 @@ export type GetToolsetResponses = {
4476
6418
  export type GetToolsetResponse = GetToolsetResponses[keyof GetToolsetResponses];
4477
6419
 
4478
6420
  export type UpdateToolsetData = {
4479
- body: UpdateToolsetRequest;
6421
+ body: ToolsetRequest;
4480
6422
  path: {
4481
6423
  /**
4482
6424
  * Toolset instance UUID
@@ -4525,7 +6467,7 @@ export type UpdateToolsetResponses = {
4525
6467
 
4526
6468
  export type UpdateToolsetResponse = UpdateToolsetResponses[keyof UpdateToolsetResponses];
4527
6469
 
4528
- export type ExecuteToolsetData = {
6470
+ export type ExecuteToolsetToolData = {
4529
6471
  body: ExecuteToolsetRequest;
4530
6472
  path: {
4531
6473
  /**
@@ -4533,15 +6475,15 @@ export type ExecuteToolsetData = {
4533
6475
  */
4534
6476
  id: string;
4535
6477
  /**
4536
- * Tool method name
6478
+ * Tool name to execute
4537
6479
  */
4538
- method: string;
6480
+ tool_name: string;
4539
6481
  };
4540
6482
  query?: never;
4541
- url: '/bodhi/v1/toolsets/{id}/execute/{method}';
6483
+ url: '/bodhi/v1/toolsets/{id}/tools/{tool_name}/execute';
4542
6484
  };
4543
6485
 
4544
- export type ExecuteToolsetErrors = {
6486
+ export type ExecuteToolsetToolErrors = {
4545
6487
  /**
4546
6488
  * Invalid request parameters
4547
6489
  */
@@ -4564,16 +6506,16 @@ export type ExecuteToolsetErrors = {
4564
6506
  500: OpenAiApiError;
4565
6507
  };
4566
6508
 
4567
- export type ExecuteToolsetError = ExecuteToolsetErrors[keyof ExecuteToolsetErrors];
6509
+ export type ExecuteToolsetToolError = ExecuteToolsetToolErrors[keyof ExecuteToolsetToolErrors];
4568
6510
 
4569
- export type ExecuteToolsetResponses = {
6511
+ export type ExecuteToolsetToolResponses = {
4570
6512
  /**
4571
6513
  * Tool execution result
4572
6514
  */
4573
6515
  200: ToolsetExecutionResponse;
4574
6516
  };
4575
6517
 
4576
- export type ExecuteToolsetResponse = ExecuteToolsetResponses[keyof ExecuteToolsetResponses];
6518
+ export type ExecuteToolsetToolResponse = ExecuteToolsetToolResponses[keyof ExecuteToolsetToolResponses];
4577
6519
 
4578
6520
  export type GetCurrentUserData = {
4579
6521
  body?: never;
@@ -4607,7 +6549,7 @@ export type GetCurrentUserResponses = {
4607
6549
  /**
4608
6550
  * User information (authenticated or not)
4609
6551
  */
4610
- 200: UserResponse;
6552
+ 200: UserInfoEnvelope;
4611
6553
  };
4612
6554
 
4613
6555
  export type GetCurrentUserResponse = GetCurrentUserResponses[keyof GetCurrentUserResponses];