@bodhiapp/ts-client 0.1.11 → 0.1.13

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.
@@ -271,7 +271,7 @@ export interface paths {
271
271
  put?: never;
272
272
  /**
273
273
  * Request Resource Access
274
- * @description Requests access permissions for an application client to access this resource server's protected resources.
274
+ * @description Requests access permissions for an application client to access this resource server's protected resources. Supports caching via optional version parameter.
275
275
  */
276
276
  post: operations["requestAccess"];
277
277
  delete?: never;
@@ -465,6 +465,32 @@ export interface paths {
465
465
  patch?: never;
466
466
  trace?: never;
467
467
  };
468
+ "/bodhi/v1/models/refresh": {
469
+ parameters: {
470
+ query?: never;
471
+ header?: never;
472
+ path?: never;
473
+ cookie?: never;
474
+ };
475
+ get?: never;
476
+ put?: never;
477
+ /**
478
+ * Refresh Model Metadata
479
+ * @description Refresh metadata for models. Supports two modes via discriminated request body:
480
+ *
481
+ * - Bulk async: `{"source": "all"}` triggers background extraction for all local GGUF models (202 Accepted)
482
+ *
483
+ * - Single sync: `{"source": "model", "repo": "...", "filename": "...", "snapshot": "..."}` performs immediate extraction (200 OK)
484
+ *
485
+ * Requires PowerUser permissions.
486
+ */
487
+ post: operations["refreshModelMetadata"];
488
+ delete?: never;
489
+ options?: never;
490
+ head?: never;
491
+ patch?: never;
492
+ trace?: never;
493
+ };
468
494
  "/bodhi/v1/models/{alias}": {
469
495
  parameters: {
470
496
  query?: never;
@@ -502,6 +528,26 @@ export interface paths {
502
528
  patch?: never;
503
529
  trace?: never;
504
530
  };
531
+ "/bodhi/v1/queue": {
532
+ parameters: {
533
+ query?: never;
534
+ header?: never;
535
+ path?: never;
536
+ cookie?: never;
537
+ };
538
+ /**
539
+ * Get Queue Status
540
+ * @description Returns the current status of the metadata refresh queue. Requires PowerUser permissions.
541
+ */
542
+ get: operations["getQueueStatus"];
543
+ put?: never;
544
+ post?: never;
545
+ delete?: never;
546
+ options?: never;
547
+ head?: never;
548
+ patch?: never;
549
+ trace?: never;
550
+ };
505
551
  "/bodhi/v1/settings": {
506
552
  parameters: {
507
553
  query?: never;
@@ -622,6 +668,101 @@ export interface paths {
622
668
  patch?: never;
623
669
  trace?: never;
624
670
  };
671
+ "/bodhi/v1/toolset_types": {
672
+ parameters: {
673
+ query?: never;
674
+ header?: never;
675
+ path?: never;
676
+ cookie?: never;
677
+ };
678
+ /**
679
+ * List all available toolset types with their tools
680
+ * @description For OAuth tokens, filters types by scope_toolset-* scopes in the token.
681
+ */
682
+ get: operations["listToolsetTypes"];
683
+ put?: never;
684
+ post?: never;
685
+ delete?: never;
686
+ options?: never;
687
+ head?: never;
688
+ patch?: never;
689
+ trace?: never;
690
+ };
691
+ "/bodhi/v1/toolset_types/{type_id}/app-config": {
692
+ parameters: {
693
+ query?: never;
694
+ header?: never;
695
+ path?: never;
696
+ cookie?: never;
697
+ };
698
+ get?: never;
699
+ /** Enable a toolset type at app level (admin only - enforced by auth middleware) */
700
+ put: operations["enableToolsetType"];
701
+ post?: never;
702
+ /** Disable a toolset type at app level (admin only - enforced by auth middleware) */
703
+ delete: operations["disableToolsetType"];
704
+ options?: never;
705
+ head?: never;
706
+ patch?: never;
707
+ trace?: never;
708
+ };
709
+ "/bodhi/v1/toolsets": {
710
+ parameters: {
711
+ query?: never;
712
+ header?: never;
713
+ path?: never;
714
+ cookie?: never;
715
+ };
716
+ /**
717
+ * List all toolsets for the authenticated user
718
+ * @description For OAuth tokens, filters toolsets by scope_toolset-* scopes in the token.
719
+ */
720
+ get: operations["listToolsets"];
721
+ put?: never;
722
+ /** Create a new toolset */
723
+ post: operations["createToolset"];
724
+ delete?: never;
725
+ options?: never;
726
+ head?: never;
727
+ patch?: never;
728
+ trace?: never;
729
+ };
730
+ "/bodhi/v1/toolsets/{id}": {
731
+ parameters: {
732
+ query?: never;
733
+ header?: never;
734
+ path?: never;
735
+ cookie?: never;
736
+ };
737
+ /** Get a specific toolset by ID */
738
+ get: operations["getToolset"];
739
+ /** Update a toolset (full PUT semantics) */
740
+ put: operations["updateToolset"];
741
+ post?: never;
742
+ /** Delete a toolset */
743
+ delete: operations["deleteToolset"];
744
+ options?: never;
745
+ head?: never;
746
+ patch?: never;
747
+ trace?: never;
748
+ };
749
+ "/bodhi/v1/toolsets/{id}/execute/{method}": {
750
+ parameters: {
751
+ query?: never;
752
+ header?: never;
753
+ path?: never;
754
+ cookie?: never;
755
+ };
756
+ get?: never;
757
+ put?: never;
758
+ /** Execute a tool method on a toolset */
759
+ post: operations["executeToolset"];
760
+ delete?: never;
761
+ options?: never;
762
+ head?: never;
763
+ patch?: never;
764
+ trace?: never;
765
+ };
625
766
  "/bodhi/v1/user": {
626
767
  parameters: {
627
768
  query?: never;
@@ -939,6 +1080,16 @@ export interface components {
939
1080
  /** @enum {string} */
940
1081
  action: "set";
941
1082
  };
1083
+ /** @description API key update enum (mirrors services::db::ApiKeyUpdate) */
1084
+ ApiKeyUpdateDto: {
1085
+ /** @enum {string} */
1086
+ action: "Keep";
1087
+ } | {
1088
+ /** @description Set a new API key (or clear if None) */
1089
+ value: string | null;
1090
+ /** @enum {string} */
1091
+ action: "Set";
1092
+ };
942
1093
  /**
943
1094
  * @description Response containing API model configuration
944
1095
  * @example {
@@ -999,9 +1150,26 @@ export interface components {
999
1150
  };
1000
1151
  AppAccessRequest: {
1001
1152
  app_client_id: string;
1153
+ /** @description Optional version for cache lookup - if matches cached config, skips auth server call */
1154
+ version?: string | null;
1155
+ /** @description Optional toolset scope IDs to register with resource-client for token exchange */
1156
+ toolset_scope_ids?: string[] | null;
1002
1157
  };
1003
1158
  AppAccessResponse: {
1004
1159
  scope: string;
1160
+ /** @description List of toolsets the app-client is configured to access */
1161
+ toolsets?: components["schemas"]["AppClientToolset"][];
1162
+ /** @description Version of app-client's toolset configuration on auth server */
1163
+ app_client_config_version?: string | null;
1164
+ };
1165
+ /** @description Toolset configuration from app-client registration */
1166
+ AppClientToolset: {
1167
+ id: string;
1168
+ scope: string;
1169
+ /** @description client scope UUID for cache validation */
1170
+ scope_id?: string;
1171
+ /** @description True if scope has been added to resource-client as optional scope */
1172
+ added_to_resource_client?: boolean | null;
1005
1173
  };
1006
1174
  /**
1007
1175
  * @description Application information and status
@@ -1031,6 +1199,29 @@ export interface components {
1031
1199
  * @enum {string}
1032
1200
  */
1033
1201
  AppStatus: "setup" | "ready" | "resource-admin";
1202
+ /** @description App-level configuration for a toolset (admin-controlled) */
1203
+ AppToolsetConfig: {
1204
+ /** @description Toolset identifier (e.g., "builtin-exa-web-search") */
1205
+ toolset_id: string;
1206
+ /** @description Whether the toolset is enabled for this app instance */
1207
+ enabled: boolean;
1208
+ /** @description User ID of the admin who last updated this configuration */
1209
+ updated_by: string;
1210
+ /**
1211
+ * Format: date-time
1212
+ * @description When this configuration was created
1213
+ * @example 2024-11-10T04:52:06.786Z
1214
+ */
1215
+ created_at: string;
1216
+ /**
1217
+ * Format: date-time
1218
+ * @description When this configuration was last updated
1219
+ * @example 2024-11-10T04:52:06.786Z
1220
+ */
1221
+ updated_at: string;
1222
+ };
1223
+ /** @description Response with app-level toolset configuration */
1224
+ AppToolsetConfigResponse: components["schemas"]["AppToolsetConfig"];
1034
1225
  /**
1035
1226
  * @description Request body for approving access with role assignment
1036
1227
  * @example {
@@ -1102,23 +1293,46 @@ export interface components {
1102
1293
  finish_reason?: null | components["schemas"]["FinishReason"];
1103
1294
  logprobs?: null | components["schemas"]["ChatChoiceLogprobs"];
1104
1295
  };
1296
+ ChatCompletionAllowedTools: {
1297
+ /** @description Constrains the tools available to the model to a pre-defined set.
1298
+ *
1299
+ * `auto` allows the model to pick from among the allowed tools and generate a
1300
+ * message.
1301
+ *
1302
+ * `required` requires the model to call one or more of the allowed tools. */
1303
+ mode: components["schemas"]["ToolChoiceAllowedMode"];
1304
+ /** @description A list of tool definitions that the model should be allowed to call.
1305
+ *
1306
+ * For the Chat Completions API, the list of tool definitions might look like:
1307
+ * ```json
1308
+ * [
1309
+ * { "type": "function", "function": { "name": "get_weather" } },
1310
+ * { "type": "function", "function": { "name": "get_time" } }
1311
+ * ]
1312
+ * ``` */
1313
+ tools: unknown[];
1314
+ };
1315
+ ChatCompletionAllowedToolsChoice: {
1316
+ allowed_tools: components["schemas"]["ChatCompletionAllowedTools"][];
1317
+ };
1105
1318
  ChatCompletionAudio: {
1106
- /** @description The voice the model uses to respond. Supported voices are `ash`, `ballad`, `coral`, `sage`, and `verse` (also supported but not recommended are `alloy`, `echo`, and `shimmer`; these voices are less expressive). */
1319
+ /** @description The voice the model uses to respond. Supported built-in voices are `alloy`, `ash`,
1320
+ * `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, `shimmer`, `marin`, and `cedar`. */
1107
1321
  voice: components["schemas"]["ChatCompletionAudioVoice"];
1108
- /** @description Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`, `opus`, or `pcm16`. */
1322
+ /** @description Specifies the output audio format. Must be one of `wav`, `aac`, `mp3`, `flac`, `opus`, or `pcm16`. */
1109
1323
  format: components["schemas"]["ChatCompletionAudioFormat"];
1110
1324
  };
1111
1325
  /** @enum {string} */
1112
- ChatCompletionAudioFormat: "wav" | "mp3" | "flac" | "opus" | "pcm16";
1113
- /** @enum {string} */
1114
- ChatCompletionAudioVoice: "alloy" | "ash" | "ballad" | "coral" | "echo" | "sage" | "shimmer" | "verse";
1326
+ ChatCompletionAudioFormat: "wav" | "aac" | "mp3" | "flac" | "opus" | "pcm16";
1327
+ ChatCompletionAudioVoice: "alloy" | "ash" | "ballad" | "coral" | "echo" | "fable" | "nova" | "onyx" | "sage" | "shimmer" | {
1328
+ other: string;
1329
+ };
1115
1330
  ChatCompletionFunctionCall: "none" | "auto" | {
1116
1331
  /** @description Forces the model to call the specified function. */
1117
1332
  Function: {
1118
1333
  name: string;
1119
1334
  };
1120
1335
  };
1121
- /** @deprecated */
1122
1336
  ChatCompletionFunctions: {
1123
1337
  /** @description The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. */
1124
1338
  name: string;
@@ -1129,11 +1343,15 @@ export interface components {
1129
1343
  * Omitting `parameters` defines a function with an empty parameter list. */
1130
1344
  parameters: unknown;
1131
1345
  };
1346
+ ChatCompletionMessageCustomToolCall: {
1347
+ /** @description The ID of the tool call. */
1348
+ id: string;
1349
+ /** @description The custom tool that the model called. */
1350
+ custom_tool: components["schemas"]["CustomTool"];
1351
+ };
1132
1352
  ChatCompletionMessageToolCall: {
1133
1353
  /** @description The ID of the tool call. */
1134
1354
  id: string;
1135
- /** @description The type of the tool. Currently, only `function` is supported. */
1136
- type: components["schemas"]["ChatCompletionToolType"];
1137
1355
  /** @description The function that the model called. */
1138
1356
  function: components["schemas"]["FunctionCall"];
1139
1357
  };
@@ -1142,25 +1360,23 @@ export interface components {
1142
1360
  index: number;
1143
1361
  /** @description The ID of the tool call. */
1144
1362
  id?: string | null;
1145
- type?: null | components["schemas"]["ChatCompletionToolType"];
1363
+ type?: null | components["schemas"]["FunctionType"];
1146
1364
  function?: null | components["schemas"]["FunctionCallStream"];
1147
1365
  };
1148
- /**
1149
- * @description Output types that you would like the model to generate for this request.
1150
- *
1151
- * Most models are capable of generating text, which is the default: `["text"]`
1152
- *
1153
- * The `gpt-4o-audio-preview` model can also be used to [generate
1154
- * audio](https://platform.openai.com/docs/guides/audio). To request that this model generate both text and audio responses, you can use: `["text", "audio"]`
1155
- * @enum {string}
1156
- */
1157
- ChatCompletionModalities: "text" | "audio";
1366
+ ChatCompletionMessageToolCalls: (components["schemas"]["ChatCompletionMessageToolCall"] & {
1367
+ /** @enum {string} */
1368
+ type: "function";
1369
+ }) | (components["schemas"]["ChatCompletionMessageCustomToolCall"] & {
1370
+ /** @enum {string} */
1371
+ type: "custom";
1372
+ });
1158
1373
  /** @description Specifies a tool the model should use. Use to force the model to call a specific function. */
1159
1374
  ChatCompletionNamedToolChoice: {
1160
- /** @description The type of the tool. Currently, only `function` is supported. */
1161
- type: components["schemas"]["ChatCompletionToolType"];
1162
1375
  function: components["schemas"]["FunctionName"];
1163
1376
  };
1377
+ ChatCompletionNamedToolChoiceCustom: {
1378
+ custom: components["schemas"]["CustomName"];
1379
+ };
1164
1380
  ChatCompletionRequestAssistantMessage: {
1165
1381
  content?: null | components["schemas"]["ChatCompletionRequestAssistantMessageContent"];
1166
1382
  /** @description The refusal message by the assistant. */
@@ -1168,7 +1384,7 @@ export interface components {
1168
1384
  /** @description An optional name for the participant. Provides the model information to differentiate between participants of the same role. */
1169
1385
  name?: string | null;
1170
1386
  audio?: null | components["schemas"]["ChatCompletionRequestAssistantMessageAudio"];
1171
- tool_calls?: components["schemas"]["ChatCompletionMessageToolCall"][] | null;
1387
+ tool_calls?: components["schemas"]["ChatCompletionMessageToolCalls"][] | null;
1172
1388
  function_call?: null | components["schemas"]["FunctionCall"];
1173
1389
  };
1174
1390
  ChatCompletionRequestAssistantMessageAudio: {
@@ -1189,7 +1405,11 @@ export interface components {
1189
1405
  /** @description An optional name for the participant. Provides the model information to differentiate between participants of the same role. */
1190
1406
  name?: string | null;
1191
1407
  };
1192
- ChatCompletionRequestDeveloperMessageContent: string | components["schemas"]["ChatCompletionRequestMessageContentPartText"][];
1408
+ ChatCompletionRequestDeveloperMessageContent: string | components["schemas"]["ChatCompletionRequestDeveloperMessageContentPart"][];
1409
+ ChatCompletionRequestDeveloperMessageContentPart: components["schemas"]["ChatCompletionRequestMessageContentPartText"] & {
1410
+ /** @enum {string} */
1411
+ type: "text";
1412
+ };
1193
1413
  ChatCompletionRequestFunctionMessage: {
1194
1414
  /** @description The return value from the function call, to return to the model. */
1195
1415
  content?: string | null;
@@ -1219,6 +1439,9 @@ export interface components {
1219
1439
  ChatCompletionRequestMessageContentPartAudio: {
1220
1440
  input_audio: components["schemas"]["InputAudio"];
1221
1441
  };
1442
+ ChatCompletionRequestMessageContentPartFile: {
1443
+ file: components["schemas"]["FileObject"];
1444
+ };
1222
1445
  ChatCompletionRequestMessageContentPartImage: {
1223
1446
  image_url: components["schemas"]["ImageUrl"];
1224
1447
  };
@@ -1267,6 +1490,9 @@ export interface components {
1267
1490
  }) | (components["schemas"]["ChatCompletionRequestMessageContentPartAudio"] & {
1268
1491
  /** @enum {string} */
1269
1492
  type: "input_audio";
1493
+ }) | (components["schemas"]["ChatCompletionRequestMessageContentPartFile"] & {
1494
+ /** @enum {string} */
1495
+ type: "file";
1270
1496
  });
1271
1497
  /** @description A chat completion message generated by the model. */
1272
1498
  ChatCompletionResponseMessage: {
@@ -1275,17 +1501,25 @@ export interface components {
1275
1501
  /** @description The refusal message generated by the model. */
1276
1502
  refusal?: string | null;
1277
1503
  /** @description The tool calls generated by the model, such as function calls. */
1278
- tool_calls?: components["schemas"]["ChatCompletionMessageToolCall"][] | null;
1504
+ tool_calls?: components["schemas"]["ChatCompletionMessageToolCalls"][] | null;
1505
+ annotations?: components["schemas"]["ChatCompletionResponseMessageAnnotation"][] | null;
1279
1506
  /** @description The role of the author of this message. */
1280
1507
  role: components["schemas"]["Role"];
1281
1508
  function_call?: null | components["schemas"]["FunctionCall"];
1282
1509
  audio?: null | components["schemas"]["ChatCompletionResponseMessageAudio"];
1510
+ /** @description The contents of the reasoning message. */
1511
+ reasoning_content?: string | null;
1512
+ };
1513
+ ChatCompletionResponseMessageAnnotation: {
1514
+ url_citation: components["schemas"]["UrlCitation"];
1515
+ /** @enum {string} */
1516
+ type: "url_citation";
1283
1517
  };
1284
1518
  ChatCompletionResponseMessageAudio: {
1285
1519
  /** @description Unique identifier for this audio response. */
1286
1520
  id: string;
1287
1521
  /**
1288
- * Format: int32
1522
+ * Format: int64
1289
1523
  * @description The Unix timestamp (in seconds) for when this audio response will no longer be accessible on the server for use in multi-turn conversations.
1290
1524
  */
1291
1525
  expires_at: number;
@@ -1296,8 +1530,23 @@ export interface components {
1296
1530
  };
1297
1531
  /** @description Options for streaming response. Only set this when you set `stream: true`. */
1298
1532
  ChatCompletionStreamOptions: {
1299
- /** @description If set, an additional chunk will be streamed before the `data: [DONE]` message. The `usage` field on this chunk shows the token usage statistics for the entire request, and the `choices` field will always be an empty array. All other chunks will also include a `usage` field, but with a null value. */
1300
- include_usage: boolean;
1533
+ /** @description If set, an additional chunk will be streamed before the `data: [DONE]`
1534
+ * message. The `usage` field on this chunk shows the token usage statistics
1535
+ * for the entire request, and the `choices` field will always be an empty
1536
+ * array.
1537
+ *
1538
+ * All other chunks will also include a `usage` field, but with a null
1539
+ * value. **NOTE:** If the stream is interrupted, you may not receive the
1540
+ * final usage chunk which contains the total token usage for the request. */
1541
+ include_usage?: boolean | null;
1542
+ /** @description When true, stream obfuscation will be enabled. Stream obfuscation adds
1543
+ * random characters to an `obfuscation` field on streaming delta events to
1544
+ * normalize payload sizes as a mitigation to certain side-channel attacks.
1545
+ * These obfuscation fields are included by default, but add a small amount
1546
+ * of overhead to the data stream. You can set `include_obfuscation` to
1547
+ * false to optimize for bandwidth if you trust the network links between
1548
+ * your application and the OpenAI API. */
1549
+ include_obfuscation?: boolean | null;
1301
1550
  };
1302
1551
  /** @description A chat completion delta generated by streamed model responses. */
1303
1552
  ChatCompletionStreamResponseDelta: {
@@ -1308,6 +1557,8 @@ export interface components {
1308
1557
  role?: null | components["schemas"]["Role"];
1309
1558
  /** @description The refusal message generated by the model. */
1310
1559
  refusal?: string | null;
1560
+ /** @description The contents of the chunk reasoning message. */
1561
+ reasoning_content?: string | null;
1311
1562
  };
1312
1563
  ChatCompletionTokenLogprob: {
1313
1564
  /** @description The token. */
@@ -1323,7 +1574,6 @@ export interface components {
1323
1574
  top_logprobs: components["schemas"]["TopLogprobs"][];
1324
1575
  };
1325
1576
  ChatCompletionTool: {
1326
- type: components["schemas"]["ChatCompletionToolType"];
1327
1577
  function: components["schemas"]["FunctionObject"];
1328
1578
  };
1329
1579
  /** @description Controls which (if any) tool is called by the model.
@@ -1333,11 +1583,26 @@ export interface components {
1333
1583
  * Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool.
1334
1584
  *
1335
1585
  * `none` is the default when no tools are present. `auto` is the default if tools are present. */
1336
- ChatCompletionToolChoiceOption: "none" | "auto" | "required" | {
1337
- named: components["schemas"]["ChatCompletionNamedToolChoice"];
1338
- };
1339
- /** @enum {string} */
1340
- ChatCompletionToolType: "function";
1586
+ ChatCompletionToolChoiceOption: (components["schemas"]["ChatCompletionAllowedToolsChoice"] & {
1587
+ /** @enum {string} */
1588
+ type: "allowed_tools";
1589
+ }) | (components["schemas"]["ChatCompletionNamedToolChoice"] & {
1590
+ /** @enum {string} */
1591
+ type: "function";
1592
+ }) | (components["schemas"]["ChatCompletionNamedToolChoiceCustom"] & {
1593
+ /** @enum {string} */
1594
+ type: "custom";
1595
+ }) | (components["schemas"]["ToolChoiceOptions"] & {
1596
+ /** @enum {string} */
1597
+ type: "mode";
1598
+ });
1599
+ ChatCompletionTools: (components["schemas"]["ChatCompletionTool"] & {
1600
+ /** @enum {string} */
1601
+ type: "function";
1602
+ }) | (components["schemas"]["CustomToolChatCompletions"] & {
1603
+ /** @enum {string} */
1604
+ type: "custom";
1605
+ });
1341
1606
  ChatRequest: {
1342
1607
  model: string;
1343
1608
  messages: components["schemas"]["Message"][];
@@ -1390,6 +1655,12 @@ export interface components {
1390
1655
  prompt_tokens_details?: null | components["schemas"]["PromptTokensDetails"];
1391
1656
  completion_tokens_details?: null | components["schemas"]["CompletionTokensDetails"];
1392
1657
  };
1658
+ ContextLimits: {
1659
+ /** Format: int64 */
1660
+ max_input_tokens?: number | null;
1661
+ /** Format: int64 */
1662
+ max_output_tokens?: number | null;
1663
+ };
1393
1664
  CreateAliasRequest: {
1394
1665
  alias: string;
1395
1666
  repo: string;
@@ -1442,23 +1713,73 @@ export interface components {
1442
1713
  scope: components["schemas"]["TokenScope"];
1443
1714
  };
1444
1715
  CreateChatCompletionRequest: {
1445
- /** @description A list of messages comprising the conversation so far. Depending on the [model](https://platform.openai.com/docs/models) you use, different message types (modalities) are supported, like [text](https://platform.openai.com/docs/guides/text-generation), [images](https://platform.openai.com/docs/guides/vision), and [audio](https://platform.openai.com/docs/guides/audio). */
1716
+ /** @description A list of messages comprising the conversation so far. Depending on the
1717
+ * [model](https://platform.openai.com/docs/models) you use, different message types (modalities)
1718
+ * are supported, like [text](https://platform.openai.com/docs/guides/text-generation),
1719
+ * [images](https://platform.openai.com/docs/guides/vision), and
1720
+ * [audio](https://platform.openai.com/docs/guides/audio). */
1446
1721
  messages: components["schemas"]["ChatCompletionRequestMessage"][];
1447
- /** @description ID of the model to use.
1448
- * See the [model endpoint compatibility](https://platform.openai.com/docs/models#model-endpoint-compatibility) table for details on which models work with the Chat API. */
1722
+ /** @description Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
1723
+ * offers a wide range of models with different capabilities, performance
1724
+ * characteristics, and price points. Refer to the
1725
+ * [model guide](https://platform.openai.com/docs/models)
1726
+ * to browse and compare available models. */
1449
1727
  model: string;
1450
- /** @description Whether or not to store the output of this chat completion request
1728
+ /** @description Output types that you would like the model to generate. Most models are capable of generating
1729
+ * text, which is the default:
1451
1730
  *
1452
- * for use in our [model distillation](https://platform.openai.com/docs/guides/distillation) or [evals](https://platform.openai.com/docs/guides/evals) products. */
1453
- store?: boolean | null;
1731
+ * `["text"]`
1732
+ * The `gpt-4o-audio-preview` model can also be used to
1733
+ * [generate audio](https://platform.openai.com/docs/guides/audio). To request that this model
1734
+ * generate both text and audio responses, you can use:
1735
+ *
1736
+ * `["text", "audio"]` */
1737
+ modalities?: components["schemas"]["ResponseModalities"][] | null;
1738
+ verbosity?: null | components["schemas"]["Verbosity"];
1454
1739
  reasoning_effort?: null | components["schemas"]["ReasoningEffort"];
1455
- /** @description Developer-defined tags and values used for filtering completions in the [dashboard](https://platform.openai.com/chat-completions). */
1456
- metadata?: unknown;
1740
+ /**
1741
+ * Format: int32
1742
+ * @description An upper bound for the number of tokens that can be generated for a completion, including
1743
+ * visible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).
1744
+ */
1745
+ max_completion_tokens?: number | null;
1457
1746
  /**
1458
1747
  * Format: float
1459
- * @description Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
1748
+ * @description Number between -2.0 and 2.0. Positive values penalize new tokens based on
1749
+ * their existing frequency in the text so far, decreasing the model's
1750
+ * likelihood to repeat the same line verbatim.
1460
1751
  */
1461
1752
  frequency_penalty?: number | null;
1753
+ /**
1754
+ * Format: float
1755
+ * @description Number between -2.0 and 2.0. Positive values penalize new tokens based on
1756
+ * whether they appear in the text so far, increasing the model's likelihood
1757
+ * to talk about new topics.
1758
+ */
1759
+ presence_penalty?: number | null;
1760
+ web_search_options?: null | components["schemas"]["WebSearchOptions"];
1761
+ /**
1762
+ * Format: int32
1763
+ * @description An integer between 0 and 20 specifying the number of most likely tokens to
1764
+ * return at each token position, each with an associated log probability.
1765
+ * `logprobs` must be set to `true` if this parameter is used.
1766
+ */
1767
+ top_logprobs?: number | null;
1768
+ response_format?: null | components["schemas"]["ResponseFormat"];
1769
+ audio?: null | components["schemas"]["ChatCompletionAudio"];
1770
+ /** @description Whether or not to store the output of this chat completion request for
1771
+ * use in our [model distillation](https://platform.openai.com/docs/guides/distillation) or
1772
+ * [evals](https://platform.openai.com/docs/guides/evals) products.
1773
+ *
1774
+ * Supports text and image inputs. Note: image inputs over 8MB will be dropped. */
1775
+ store?: boolean | null;
1776
+ /** @description If set to true, the model response data will be streamed to the client
1777
+ * as it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).
1778
+ * See the [Streaming section below](https://platform.openai.com/docs/api-reference/chat/streaming)
1779
+ * for more information, along with the [streaming responses](https://platform.openai.com/docs/guides/streaming-responses)
1780
+ * guide for more information on how to handle the streaming events. */
1781
+ stream?: boolean | null;
1782
+ stop?: null | components["schemas"]["StopConfiguration"];
1462
1783
  /** @description Modify the likelihood of specified tokens appearing in the completion.
1463
1784
  *
1464
1785
  * Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100.
@@ -1466,59 +1787,42 @@ export interface components {
1466
1787
  * The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection;
1467
1788
  * values like -100 or 100 should result in a ban or exclusive selection of the relevant token. */
1468
1789
  logit_bias?: {
1469
- [key: string]: unknown;
1790
+ [key: string]: number;
1470
1791
  } | null;
1471
- /** @description Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the `content` of `message`. */
1792
+ /** @description Whether to return log probabilities of the output tokens or not. If true,
1793
+ * returns the log probabilities of each output token returned in the `content` of `message`. */
1472
1794
  logprobs?: boolean | null;
1473
- /**
1474
- * Format: int32
1475
- * @description An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. `logprobs` must be set to `true` if this parameter is used.
1476
- */
1477
- top_logprobs?: number | null;
1478
1795
  /**
1479
1796
  * Format: int32
1480
1797
  * @deprecated
1481
- * @description The maximum number of [tokens](https://platform.openai.com/tokenizer) that can be generated in the chat completion.
1482
- *
1483
- * This value can be used to control [costs](https://openai.com/api/pricing/) for text generated via API.
1798
+ * @description The maximum number of [tokens](https://platform.openai.com/tokenizer) that can be generated in
1799
+ * the chat completion. This value can be used to control [costs](https://openai.com/api/pricing/) for text generated via API.
1484
1800
  * This value is now deprecated in favor of `max_completion_tokens`, and is
1485
- * not compatible with [o1 series models](https://platform.openai.com/docs/guides/reasoning).
1801
+ * not compatible with [o-series models](https://platform.openai.com/docs/guides/reasoning).
1486
1802
  */
1487
1803
  max_tokens?: number | null;
1488
1804
  /**
1489
1805
  * Format: int32
1490
- * @description An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).
1491
- */
1492
- max_completion_tokens?: number | null;
1493
- /**
1494
- * Format: int32
1495
- * @description How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs.
1806
+ * @description How many chat completion choices to generate for each input message. Note that you will be
1807
+ * charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to
1808
+ * minimize costs.
1496
1809
  */
1497
1810
  n?: number | null;
1498
- modalities?: components["schemas"]["ChatCompletionModalities"][] | null;
1499
1811
  prediction?: null | components["schemas"]["PredictionContent"];
1500
- audio?: null | components["schemas"]["ChatCompletionAudio"];
1501
- /**
1502
- * Format: float
1503
- * @description Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
1504
- */
1505
- presence_penalty?: number | null;
1506
- response_format?: null | components["schemas"]["ResponseFormat"];
1507
1812
  /**
1508
1813
  * Format: int64
1509
- * @description This feature is in Beta.
1510
- * If specified, our system will make a best effort to sample deterministically, such that repeated requests
1511
- * with the same `seed` and parameters should return the same result.
1512
- * Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.
1814
+ * @deprecated
1815
+ * @description This feature is in Beta.
1816
+ *
1817
+ * If specified, our system will make a best effort to sample deterministically, such that
1818
+ * repeated requests with the same `seed` and parameters should return the same result.
1819
+ *
1820
+ * Determinism is not guaranteed, and you should refer to the `system_fingerprint` response
1821
+ * parameter to monitor changes in the backend.
1513
1822
  */
1514
1823
  seed?: number | null;
1515
- service_tier?: null | components["schemas"]["ServiceTier"];
1516
- stop?: null | components["schemas"]["Stop"];
1517
- /** @description If set, partial message deltas will be sent, like in ChatGPT.
1518
- * Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
1519
- * as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions). */
1520
- stream?: boolean | null;
1521
1824
  stream_options?: null | components["schemas"]["ChatCompletionStreamOptions"];
1825
+ service_tier?: null | components["schemas"]["ServiceTier"];
1522
1826
  /**
1523
1827
  * Format: float
1524
1828
  * @description What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,
@@ -1536,15 +1840,33 @@ export interface components {
1536
1840
  * We generally recommend altering this or `temperature` but not both.
1537
1841
  */
1538
1842
  top_p?: number | null;
1539
- /** @description A list of tools the model may call. Currently, only functions are supported as a tool.
1540
- * Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported. */
1541
- tools?: components["schemas"]["ChatCompletionTool"][] | null;
1843
+ /** @description A list of tools the model may call. You can provide either
1844
+ * [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or
1845
+ * [function tools](https://platform.openai.com/docs/guides/function-calling). */
1846
+ tools?: components["schemas"]["ChatCompletionTools"][] | null;
1542
1847
  tool_choice?: null | components["schemas"]["ChatCompletionToolChoiceOption"];
1543
- /** @description Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling/parallel-function-calling) during tool use. */
1848
+ /** @description Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling)
1849
+ * during tool use. */
1544
1850
  parallel_tool_calls?: boolean | null;
1545
- /** @description A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). */
1851
+ /**
1852
+ * @deprecated
1853
+ * @description This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key`
1854
+ * instead to maintain caching optimizations.
1855
+ * A stable identifier for your end-users.
1856
+ * Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and
1857
+ * prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
1858
+ */
1546
1859
  user?: string | null;
1547
- web_search_options?: null | components["schemas"]["WebSearchOptions"];
1860
+ /** @description A stable identifier used to help detect users of your application that may be violating OpenAI's
1861
+ * usage policies.
1862
+ *
1863
+ * The IDs should be a string that uniquely identifies each user. We recommend hashing their username
1864
+ * or email address, in order to avoid sending us any identifying information. [Learn
1865
+ * more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). */
1866
+ safety_identifier?: string | null;
1867
+ /** @description Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces
1868
+ * the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). */
1869
+ prompt_cache_key?: string | null;
1548
1870
  function_call?: null | components["schemas"]["ChatCompletionFunctionCall"];
1549
1871
  /**
1550
1872
  * @deprecated
@@ -1553,6 +1875,11 @@ export interface components {
1553
1875
  * A list of functions the model may generate JSON inputs for.
1554
1876
  */
1555
1877
  functions?: components["schemas"]["ChatCompletionFunctions"][] | null;
1878
+ metadata?: null | components["schemas"]["Metadata"];
1879
+ /** @description llama.cpp compatible extra params in request */
1880
+ chat_template_kwargs?: {
1881
+ [key: string]: unknown;
1882
+ } | null;
1556
1883
  };
1557
1884
  /** @description Represents a chat completion response returned by model, based on the provided input. */
1558
1885
  CreateChatCompletionResponse: {
@@ -1567,16 +1894,19 @@ export interface components {
1567
1894
  created: number;
1568
1895
  /** @description The model used for the chat completion. */
1569
1896
  model: string;
1570
- service_tier?: null | components["schemas"]["ServiceTierResponse"];
1571
- /** @description This fingerprint represents the backend configuration that the model runs with.
1897
+ service_tier?: null | components["schemas"]["ServiceTier"];
1898
+ /**
1899
+ * @deprecated
1900
+ * @description This fingerprint represents the backend configuration that the model runs with.
1572
1901
  *
1573
- * Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. */
1902
+ * Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism.
1903
+ */
1574
1904
  system_fingerprint?: string | null;
1575
1905
  /** @description The object type, which is always `chat.completion`. */
1576
1906
  object: string;
1577
1907
  usage?: null | components["schemas"]["CompletionUsage"];
1578
1908
  };
1579
- /** @description Represents a streamed chunk of a chat completion response returned by model, based on the provided input. */
1909
+ /** @description Represents a streamed chunk of a chat completion response returned by the model, based on the provided input. [Learn more](https://platform.openai.com/docs/guides/streaming-responses). */
1580
1910
  CreateChatCompletionStreamResponse: {
1581
1911
  /** @description A unique identifier for the chat completion. Each chunk has the same ID. */
1582
1912
  id: string;
@@ -1589,26 +1919,33 @@ export interface components {
1589
1919
  created: number;
1590
1920
  /** @description The model to generate the completion. */
1591
1921
  model: string;
1592
- service_tier?: null | components["schemas"]["ServiceTierResponse"];
1593
- /** @description This fingerprint represents the backend configuration that the model runs with.
1594
- * Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. */
1922
+ service_tier?: null | components["schemas"]["ServiceTier"];
1923
+ /**
1924
+ * @deprecated
1925
+ * @description This fingerprint represents the backend configuration that the model runs with.
1926
+ * Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism.
1927
+ */
1595
1928
  system_fingerprint?: string | null;
1596
1929
  /** @description The object type, which is always `chat.completion.chunk`. */
1597
1930
  object: string;
1598
1931
  usage?: null | components["schemas"]["CompletionUsage"];
1599
1932
  };
1600
1933
  CreateEmbeddingRequest: {
1601
- /** @description ID of the model to use. You can use the
1602
- * [List models](https://platform.openai.com/docs/api-reference/models/list)
1603
- * API to see all of your available models, or see our
1604
- * [Model overview](https://platform.openai.com/docs/models/overview)
1934
+ /** @description ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list)
1935
+ * API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models)
1605
1936
  * for descriptions of them. */
1606
1937
  model: string;
1607
- /** @description Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for `text-embedding-ada-002`), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. */
1938
+ /** @description Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single
1939
+ * request, pass an array of strings or array of token arrays. The input must not exceed the max
1940
+ * input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and
1941
+ * any array must be 2048 dimensions or less. [Example Python
1942
+ * code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
1943
+ * In addition to the per-input token limit, all embedding models enforce a maximum of 300,000
1944
+ * tokens summed across all inputs in a single request. */
1608
1945
  input: components["schemas"]["EmbeddingInput"];
1609
1946
  encoding_format?: null | components["schemas"]["EncodingFormat"];
1610
- /** @description A unique identifier representing your end-user, which will help OpenAI
1611
- * to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/usage-policies/end-user-ids). */
1947
+ /** @description A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.
1948
+ * [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). */
1612
1949
  user?: string | null;
1613
1950
  /**
1614
1951
  * Format: int32
@@ -1625,6 +1962,54 @@ export interface components {
1625
1962
  /** @description The usage information for the request. */
1626
1963
  usage: components["schemas"]["EmbeddingUsage"];
1627
1964
  };
1965
+ /** @description Request to create a toolset */
1966
+ CreateToolsetRequest: {
1967
+ /** @description Toolset type identifier (e.g., "builtin-exa-web-search") */
1968
+ toolset_type: string;
1969
+ /** @description User-defined name for this toolset (2-24 chars, alphanumeric + spaces/dash/underscore) */
1970
+ name: string;
1971
+ /** @description Optional description for this toolset */
1972
+ description?: string | null;
1973
+ /** @description Whether this toolset is enabled */
1974
+ enabled?: boolean;
1975
+ /** @description API key for the toolset */
1976
+ api_key: string;
1977
+ };
1978
+ CustomGrammarFormatParam: {
1979
+ /** @description The grammar definition. */
1980
+ definition: string;
1981
+ /** @description The syntax of the grammar definition. One of `lark` or `regex`. */
1982
+ syntax: components["schemas"]["GrammarSyntax"];
1983
+ };
1984
+ CustomName: {
1985
+ /** @description The name of the custom tool to call. */
1986
+ name: string;
1987
+ };
1988
+ CustomTool: {
1989
+ /** @description The name of the custom tool to call. */
1990
+ name: string;
1991
+ /** @description The input for the custom tool call generated by the model. */
1992
+ input: string;
1993
+ };
1994
+ CustomToolChatCompletions: {
1995
+ custom: components["schemas"]["CustomToolProperties"];
1996
+ };
1997
+ CustomToolProperties: {
1998
+ /** @description The name of the custom tool, used to identify it in tool calls. */
1999
+ name: string;
2000
+ /** @description Optional description of the custom tool, used to provide more context. */
2001
+ description?: string | null;
2002
+ /** @description The input format for the custom tool. Default is unconstrained text. */
2003
+ format: components["schemas"]["CustomToolPropertiesFormat"];
2004
+ };
2005
+ CustomToolPropertiesFormat: {
2006
+ /** @enum {string} */
2007
+ type: "text";
2008
+ } | {
2009
+ grammar: components["schemas"]["CustomGrammarFormatParam"];
2010
+ /** @enum {string} */
2011
+ type: "grammar";
2012
+ };
1628
2013
  DownloadRequest: {
1629
2014
  id: string;
1630
2015
  repo: string;
@@ -1710,6 +2095,13 @@ export interface components {
1710
2095
  */
1711
2096
  param?: string | null;
1712
2097
  };
2098
+ /** @description Request to execute a toolset */
2099
+ ExecuteToolsetRequest: {
2100
+ /** @description Tool call ID from LLM */
2101
+ tool_call_id: string;
2102
+ /** @description Function parameters as JSON */
2103
+ params: unknown;
2104
+ };
1713
2105
  /**
1714
2106
  * @description Request to fetch available models from provider
1715
2107
  * @example {
@@ -1739,6 +2131,16 @@ export interface components {
1739
2131
  FetchModelsResponse: {
1740
2132
  models: string[];
1741
2133
  };
2134
+ FileObject: {
2135
+ /** @description The base64 encoded file data, used when passing the file to the model
2136
+ * as a string. */
2137
+ file_data?: string | null;
2138
+ /** @description The ID of an uploaded file to use as input. */
2139
+ file_id?: string | null;
2140
+ /** @description The name of the file, used when passing the file to the model as a
2141
+ * string. */
2142
+ filename?: string | null;
2143
+ };
1742
2144
  /** @enum {string} */
1743
2145
  FinishReason: "stop" | "length" | "tool_calls" | "content_filter" | "function_call";
1744
2146
  /** @description The name and arguments of a function that should be called, as generated by the model. */
@@ -1757,6 +2159,15 @@ export interface components {
1757
2159
  * code before calling your function. */
1758
2160
  arguments?: string | null;
1759
2161
  };
2162
+ /** @description Function definition within a tool */
2163
+ FunctionDefinition: {
2164
+ /** @description Simple tool name (e.g., "search", "findSimilar"). Frontend composes fully qualified name. */
2165
+ name: string;
2166
+ /** @description Human-readable description for LLM */
2167
+ description: string;
2168
+ /** @description JSON Schema for function parameters */
2169
+ parameters: unknown;
2170
+ };
1760
2171
  FunctionName: {
1761
2172
  /** @description The name of the function to call. */
1762
2173
  name: string;
@@ -1774,6 +2185,10 @@ export interface components {
1774
2185
  strict?: boolean | null;
1775
2186
  };
1776
2187
  /** @enum {string} */
2188
+ FunctionType: "function";
2189
+ /** @enum {string} */
2190
+ GrammarSyntax: "lark" | "regex";
2191
+ /** @enum {string} */
1777
2192
  ImageDetail: "auto" | "low" | "high";
1778
2193
  ImageUrl: {
1779
2194
  /** @description Either a URL of the image or the base64 encoded image data. */
@@ -1792,6 +2207,14 @@ export interface components {
1792
2207
  object: string;
1793
2208
  data: components["schemas"]["Model"][];
1794
2209
  };
2210
+ /** @description List of toolset types */
2211
+ ListToolsetTypesResponse: {
2212
+ types: components["schemas"]["ToolsetTypeResponse"][];
2213
+ };
2214
+ /** @description List of toolsets */
2215
+ ListToolsetsResponse: {
2216
+ toolsets: components["schemas"]["ToolsetResponse"][];
2217
+ };
1795
2218
  /** @description List users query parameters */
1796
2219
  ListUsersParams: {
1797
2220
  /**
@@ -1814,12 +2237,20 @@ export interface components {
1814
2237
  model_params: {
1815
2238
  [key: string]: unknown;
1816
2239
  };
2240
+ metadata?: null | components["schemas"]["ModelMetadata"];
1817
2241
  };
1818
2242
  Message: {
1819
2243
  role: string;
1820
2244
  content: string;
1821
2245
  images?: string[] | null;
1822
2246
  };
2247
+ /** @description Set of 16 key-value pairs that can be attached to an object.
2248
+ * This can be useful for storing additional information about the
2249
+ * object in a structured format, and querying for objects via API
2250
+ * or the dashboard. Keys are strings with a maximum length of 64
2251
+ * characters. Values are strings with a maximum length of 512
2252
+ * characters. */
2253
+ Metadata: unknown;
1823
2254
  /** @description Describes an OpenAI model offering that can be used with the API. */
1824
2255
  Model: {
1825
2256
  /** @description The model identifier, which can be referenced in the API endpoints. */
@@ -1848,6 +2279,20 @@ export interface components {
1848
2279
  repo: string;
1849
2280
  filename: string;
1850
2281
  snapshot: string;
2282
+ metadata?: null | components["schemas"]["ModelMetadata"];
2283
+ };
2284
+ ModelArchitecture: {
2285
+ family?: string | null;
2286
+ /** Format: int64 */
2287
+ parameter_count?: number | null;
2288
+ quantization?: string | null;
2289
+ format: string;
2290
+ };
2291
+ ModelCapabilities: {
2292
+ vision?: boolean | null;
2293
+ audio?: boolean | null;
2294
+ thinking?: boolean | null;
2295
+ tools: components["schemas"]["ToolCapabilities"];
1851
2296
  };
1852
2297
  ModelDetails: {
1853
2298
  parent_model?: string | null;
@@ -1857,6 +2302,13 @@ export interface components {
1857
2302
  parameter_size: string;
1858
2303
  quantization_level: string;
1859
2304
  };
2305
+ /** @description Model metadata for API responses */
2306
+ ModelMetadata: {
2307
+ capabilities: components["schemas"]["ModelCapabilities"];
2308
+ context: components["schemas"]["ContextLimits"];
2309
+ architecture: components["schemas"]["ModelArchitecture"];
2310
+ chat_template?: string | null;
2311
+ };
1860
2312
  ModelsResponse: {
1861
2313
  models: components["schemas"]["OllamaModel"][];
1862
2314
  };
@@ -2094,8 +2546,13 @@ export interface components {
2094
2546
  */
2095
2547
  cached_tokens?: number | null;
2096
2548
  };
2549
+ /** @description Response for queue status operations */
2550
+ QueueStatusResponse: {
2551
+ /** @description Queue status ("idle" or "processing") */
2552
+ status: string;
2553
+ };
2097
2554
  /** @enum {string} */
2098
- ReasoningEffort: "minimal" | "low" | "medium" | "high";
2555
+ ReasoningEffort: "none" | "minimal" | "low" | "medium" | "high" | "xhigh";
2099
2556
  /** @example {
2100
2557
  * "location": "https://oauth.example.com/auth?client_id=test&redirect_uri=..."
2101
2558
  * } */
@@ -2106,6 +2563,41 @@ export interface components {
2106
2563
  */
2107
2564
  location: string;
2108
2565
  };
2566
+ /** @description Refresh request - discriminated union by source field */
2567
+ RefreshRequest: {
2568
+ /** @enum {string} */
2569
+ source: "all";
2570
+ } | {
2571
+ /**
2572
+ * @description Repository in format "user/repo"
2573
+ * @example bartowski/Qwen2.5-3B-Instruct-GGUF
2574
+ */
2575
+ repo: string;
2576
+ /**
2577
+ * @description Filename of the GGUF model
2578
+ * @example Qwen2.5-3B-Instruct-Q4_K_M.gguf
2579
+ */
2580
+ filename: string;
2581
+ /**
2582
+ * @description Snapshot/commit identifier
2583
+ * @example 8ba1c3c3ee94ba4b86ff92a749ae687dc41fce3f
2584
+ */
2585
+ snapshot: string;
2586
+ /** @enum {string} */
2587
+ source: "model";
2588
+ };
2589
+ /** @description Response for metadata refresh operations */
2590
+ RefreshResponse: {
2591
+ /** @description Number of models queued ("all" for bulk refresh, "1" for single) */
2592
+ num_queued: string;
2593
+ /** @description Model alias (only for single model refresh) */
2594
+ alias?: string | null;
2595
+ };
2596
+ /**
2597
+ * @description Source type discriminator for refresh requests
2598
+ * @enum {string}
2599
+ */
2600
+ RefreshSource: "all" | "model";
2109
2601
  /** @enum {string} */
2110
2602
  ResourceRole: "resource_user" | "resource_power_user" | "resource_manager" | "resource_admin";
2111
2603
  ResponseFormat: {
@@ -2124,17 +2616,30 @@ export interface components {
2124
2616
  description?: string | null;
2125
2617
  /** @description The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. */
2126
2618
  name: string;
2127
- /** @description The schema for the response format, described as a JSON Schema object. */
2619
+ /** @description The schema for the response format, described as a JSON Schema object.
2620
+ * Learn how to build JSON schemas [here](https://json-schema.org/). */
2128
2621
  schema?: unknown;
2129
- /** @description Whether to enable strict schema adherence when generating the output. If set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of JSON Schema is supported when `strict` is `true`. To learn more, read the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs). */
2622
+ /** @description Whether to enable strict schema adherence when generating the output.
2623
+ * If set to true, the model will always follow the exact schema defined
2624
+ * in the `schema` field. Only a subset of JSON Schema is supported when
2625
+ * `strict` is `true`. To learn more, read the [Structured Outputs
2626
+ * guide](https://platform.openai.com/docs/guides/structured-outputs). */
2130
2627
  strict?: boolean | null;
2131
2628
  };
2629
+ /**
2630
+ * @description Output types that you would like the model to generate for this request.
2631
+ *
2632
+ * Most models are capable of generating text, which is the default: `["text"]`
2633
+ *
2634
+ * The `gpt-4o-audio-preview` model can also be used to [generate
2635
+ * audio](https://platform.openai.com/docs/guides/audio). To request that this model generate both text and audio responses, you can use: `["text", "audio"]`
2636
+ * @enum {string}
2637
+ */
2638
+ ResponseModalities: "text" | "audio";
2132
2639
  /** @enum {string} */
2133
2640
  Role: "system" | "user" | "assistant" | "tool" | "function";
2134
2641
  /** @enum {string} */
2135
2642
  ServiceTier: "auto" | "default" | "flex" | "scale" | "priority";
2136
- /** @enum {string} */
2137
- ServiceTierResponse: "scale" | "default" | "flex" | "priority";
2138
2643
  SettingInfo: {
2139
2644
  key: string;
2140
2645
  current_value: unknown;
@@ -2206,7 +2711,7 @@ export interface components {
2206
2711
  parameters: string;
2207
2712
  template: string;
2208
2713
  };
2209
- Stop: string | string[];
2714
+ StopConfiguration: string | string[];
2210
2715
  /** @description Credentials for test/fetch operations */
2211
2716
  TestCreds: {
2212
2717
  /** @description Look up credentials from stored API model */
@@ -2262,6 +2767,113 @@ export interface components {
2262
2767
  TokenScope: "scope_token_user" | "scope_token_power_user" | "scope_token_manager" | "scope_token_admin";
2263
2768
  /** @enum {string} */
2264
2769
  TokenStatus: "active" | "inactive";
2770
+ ToolCapabilities: {
2771
+ function_calling?: boolean | null;
2772
+ structured_output?: boolean | null;
2773
+ };
2774
+ /** @enum {string} */
2775
+ ToolChoiceAllowedMode: "auto" | "required";
2776
+ /** @enum {string} */
2777
+ ToolChoiceOptions: "none" | "auto" | "required";
2778
+ /** @description Tool definition in OpenAI format for LLM function calling.
2779
+ * Tool name follows Claude MCP convention: toolset__{toolset_id}__{tool_name} */
2780
+ ToolDefinition: {
2781
+ /** @description Type of tool (always "function" for now) */
2782
+ type: string;
2783
+ /** @description Function definition details */
2784
+ function: components["schemas"]["FunctionDefinition"];
2785
+ };
2786
+ /** @description User-owned toolset instance with UUID identification */
2787
+ Toolset: {
2788
+ /** @description Unique instance identifier (UUID) */
2789
+ id: string;
2790
+ /** @description User-defined name for this instance */
2791
+ name: string;
2792
+ /** @description Toolset type identifier (e.g., "builtin-exa-web-search") */
2793
+ toolset_type: string;
2794
+ /** @description Optional description for this instance */
2795
+ description?: string | null;
2796
+ /** @description Whether this instance is enabled */
2797
+ enabled: boolean;
2798
+ /** @description Whether this instance has an API key configured */
2799
+ has_api_key: boolean;
2800
+ /**
2801
+ * Format: date-time
2802
+ * @description When this instance was created
2803
+ * @example 2024-11-10T04:52:06.786Z
2804
+ */
2805
+ created_at: string;
2806
+ /**
2807
+ * Format: date-time
2808
+ * @description When this instance was last updated
2809
+ * @example 2024-11-10T04:52:06.786Z
2810
+ */
2811
+ updated_at: string;
2812
+ };
2813
+ /** @description Response from toolset tool execution (to send back to LLM) */
2814
+ ToolsetExecutionResponse: {
2815
+ /** @description Tool call ID this response is for */
2816
+ tool_call_id: string;
2817
+ /** @description Successful result (JSON), if any */
2818
+ result?: unknown;
2819
+ /** @description Error message, if execution failed */
2820
+ error?: string | null;
2821
+ };
2822
+ /** @description Toolset response */
2823
+ ToolsetResponse: {
2824
+ /** @description Unique instance identifier (UUID) */
2825
+ id: string;
2826
+ /** @description User-defined name for this toolset */
2827
+ name: string;
2828
+ /** @description Toolset type identifier (e.g., "builtin-exa-web-search") */
2829
+ toolset_type: string;
2830
+ /** @description Optional description for this toolset */
2831
+ description?: string | null;
2832
+ /** @description Whether this toolset is enabled */
2833
+ enabled: boolean;
2834
+ /** @description Whether this toolset has an API key configured */
2835
+ has_api_key: boolean;
2836
+ /** @description Whether the toolset type is enabled at app level */
2837
+ app_enabled: boolean;
2838
+ /** @description Tools provided by this toolset type */
2839
+ tools: components["schemas"]["ToolDefinition"][];
2840
+ /**
2841
+ * Format: date-time
2842
+ * @description When this toolset was created
2843
+ */
2844
+ created_at: string;
2845
+ /**
2846
+ * Format: date-time
2847
+ * @description When this toolset was last updated
2848
+ */
2849
+ updated_at: string;
2850
+ };
2851
+ /** @description Toolset type response (for admin listing) */
2852
+ ToolsetTypeResponse: {
2853
+ /** @description Unique toolset type identifier (e.g., "builtin-exa-web-search") */
2854
+ toolset_id: string;
2855
+ /** @description Human-readable name (e.g., "Exa Web Search") */
2856
+ name: string;
2857
+ /** @description Description of the toolset */
2858
+ description: string;
2859
+ /** @description Whether the toolset is enabled at app level (admin-controlled) */
2860
+ app_enabled: boolean;
2861
+ /** @description Tools provided by this toolset */
2862
+ tools: components["schemas"]["ToolDefinition"][];
2863
+ };
2864
+ /** @description Toolset with app-level configuration status (API response model) */
2865
+ ToolsetWithTools: {
2866
+ /** @description Unique toolset identifier (e.g., "builtin-exa-web-search") */
2867
+ toolset_id: string;
2868
+ /** @description Human-readable name (e.g., "Exa Web Search") */
2869
+ name: string;
2870
+ /** @description Description of the toolset */
2871
+ description: string;
2872
+ /** @description Whether the toolset is enabled at app level (admin-controlled) */
2873
+ app_enabled: boolean;
2874
+ /** @description Tools provided by this toolset */
2875
+ tools: components["schemas"]["ToolDefinition"][];
2876
+ };
2265
2877
  TopLogprobs: {
2266
2878
  /** @description The token. */
2267
2879
  token: string;
@@ -2335,6 +2947,33 @@ export interface components {
2335
2947
  /** @description New value for the setting (type depends on setting metadata) */
2336
2948
  value: unknown;
2337
2949
  };
2950
+ /** @description Request to update a toolset (full PUT - all fields required except api_key) */
2951
+ UpdateToolsetRequest: {
2952
+ /** @description User-defined name for this toolset */
2953
+ name: string;
2954
+ /** @description Optional description for this toolset */
2955
+ description?: string | null;
2956
+ /** @description Whether this toolset is enabled */
2957
+ enabled: boolean;
2958
+ /** @description API key update action (Keep or Set) */
2959
+ api_key?: components["schemas"]["ApiKeyUpdateDto"];
2960
+ };
2961
+ UrlCitation: {
2962
+ /**
2963
+ * Format: int32
2964
+ * @description The index of the last character of the URL citation in the message.
2965
+ */
2966
+ end_index: number;
2967
+ /**
2968
+ * Format: int32
2969
+ * @description The index of the first character of the URL citation in the message.
2970
+ */
2971
+ start_index: number;
2972
+ /** @description The title of the web resource. */
2973
+ title: string;
2974
+ /** @description The URL of the web resource. */
2975
+ url: string;
2976
+ };
2338
2977
  UserAccessRequest: {
2339
2978
  /**
2340
2979
  * Format: int64
@@ -2404,6 +3043,7 @@ export interface components {
2404
3043
  };
2405
3044
  request_params: components["schemas"]["OAIRequestParams"];
2406
3045
  context_params: string[];
3046
+ metadata?: null | components["schemas"]["ModelMetadata"];
2407
3047
  };
2408
3048
  UserInfo: {
2409
3049
  /** @example 550e8400-e29b-41d4-a716-446655440000 */
@@ -2466,6 +3106,11 @@ export interface components {
2466
3106
  });
2467
3107
  /** @enum {string} */
2468
3108
  UserScope: "scope_user_user" | "scope_user_power_user" | "scope_user_manager" | "scope_user_admin";
3109
+ /**
3110
+ * @description 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`.
3111
+ * @enum {string}
3112
+ */
3113
+ Verbosity: "low" | "medium" | "high";
2469
3114
  /**
2470
3115
  * @description The amount of context window space to use for the search.
2471
3116
  * @enum {string}
@@ -3689,7 +4334,8 @@ export interface operations {
3689
4334
  requestBody: {
3690
4335
  content: {
3691
4336
  /** @example {
3692
- * "app_client_id": "my_app_client_123"
4337
+ * "app_client_id": "my_app_client_123",
4338
+ * "version": "v1.0.0"
3693
4339
  * } */
3694
4340
  "application/json": components["schemas"]["AppAccessRequest"];
3695
4341
  };
@@ -3702,7 +4348,14 @@ export interface operations {
3702
4348
  };
3703
4349
  content: {
3704
4350
  /** @example {
3705
- * "scope": "scope_resource_bodhi-server"
4351
+ * "app_client_config_version": "v1.0.0",
4352
+ * "scope": "scope_resource_bodhi-server",
4353
+ * "toolsets": [
4354
+ * {
4355
+ * "id": "builtin-exa-web-search",
4356
+ * "scope": "scope_toolset-builtin-exa-web-search"
4357
+ * }
4358
+ * ]
3706
4359
  * } */
3707
4360
  "application/json": components["schemas"]["AppAccessResponse"];
3708
4361
  };
@@ -4615,6 +5268,86 @@ export interface operations {
4615
5268
  };
4616
5269
  };
4617
5270
  };
5271
+ refreshModelMetadata: {
5272
+ parameters: {
5273
+ query?: never;
5274
+ header?: never;
5275
+ path?: never;
5276
+ cookie?: never;
5277
+ };
5278
+ /** @description Refresh request - either bulk (source='all') or single model (source='model' with identifiers) */
5279
+ requestBody: {
5280
+ content: {
5281
+ "application/json": components["schemas"]["RefreshRequest"];
5282
+ };
5283
+ };
5284
+ responses: {
5285
+ /** @description Metadata refreshed successfully (sync mode) */
5286
+ 200: {
5287
+ headers: {
5288
+ [name: string]: unknown;
5289
+ };
5290
+ content: {
5291
+ "application/json": components["schemas"]["ModelAliasResponse"];
5292
+ };
5293
+ };
5294
+ /** @description Metadata refresh queued in background (bulk mode) */
5295
+ 202: {
5296
+ headers: {
5297
+ [name: string]: unknown;
5298
+ };
5299
+ content: {
5300
+ /** @example {
5301
+ * "num_queued": "all"
5302
+ * } */
5303
+ "application/json": components["schemas"]["RefreshResponse"];
5304
+ };
5305
+ };
5306
+ /** @description Invalid request parameters */
5307
+ 400: {
5308
+ headers: {
5309
+ [name: string]: unknown;
5310
+ };
5311
+ content: {
5312
+ "application/json": components["schemas"]["OpenAIApiError"];
5313
+ };
5314
+ };
5315
+ /** @description Not authenticated */
5316
+ 401: {
5317
+ headers: {
5318
+ [name: string]: unknown;
5319
+ };
5320
+ content: {
5321
+ "application/json": components["schemas"]["OpenAIApiError"];
5322
+ };
5323
+ };
5324
+ /** @description Insufficient permissions */
5325
+ 403: {
5326
+ headers: {
5327
+ [name: string]: unknown;
5328
+ };
5329
+ content: {
5330
+ "application/json": components["schemas"]["OpenAIApiError"];
5331
+ };
5332
+ };
5333
+ /** @description Model alias not found for specified repo/filename/snapshot */
5334
+ 404: {
5335
+ headers: {
5336
+ [name: string]: unknown;
5337
+ };
5338
+ content?: never;
5339
+ };
5340
+ /** @description Internal server error */
5341
+ 500: {
5342
+ headers: {
5343
+ [name: string]: unknown;
5344
+ };
5345
+ content: {
5346
+ "application/json": components["schemas"]["OpenAIApiError"];
5347
+ };
5348
+ };
5349
+ };
5350
+ };
4618
5351
  getAlias: {
4619
5352
  parameters: {
4620
5353
  query?: never;
@@ -4777,6 +5510,65 @@ export interface operations {
4777
5510
  };
4778
5511
  };
4779
5512
  };
5513
+ getQueueStatus: {
5514
+ parameters: {
5515
+ query?: never;
5516
+ header?: never;
5517
+ path?: never;
5518
+ cookie?: never;
5519
+ };
5520
+ requestBody?: never;
5521
+ responses: {
5522
+ /** @description Queue status retrieved successfully */
5523
+ 200: {
5524
+ headers: {
5525
+ [name: string]: unknown;
5526
+ };
5527
+ content: {
5528
+ /** @example {
5529
+ * "status": "idle"
5530
+ * } */
5531
+ "application/json": components["schemas"]["QueueStatusResponse"];
5532
+ };
5533
+ };
5534
+ /** @description Invalid request parameters */
5535
+ 400: {
5536
+ headers: {
5537
+ [name: string]: unknown;
5538
+ };
5539
+ content: {
5540
+ "application/json": components["schemas"]["OpenAIApiError"];
5541
+ };
5542
+ };
5543
+ /** @description Not authenticated */
5544
+ 401: {
5545
+ headers: {
5546
+ [name: string]: unknown;
5547
+ };
5548
+ content: {
5549
+ "application/json": components["schemas"]["OpenAIApiError"];
5550
+ };
5551
+ };
5552
+ /** @description Insufficient permissions */
5553
+ 403: {
5554
+ headers: {
5555
+ [name: string]: unknown;
5556
+ };
5557
+ content: {
5558
+ "application/json": components["schemas"]["OpenAIApiError"];
5559
+ };
5560
+ };
5561
+ /** @description Internal server error */
5562
+ 500: {
5563
+ headers: {
5564
+ [name: string]: unknown;
5565
+ };
5566
+ content: {
5567
+ "application/json": components["schemas"]["OpenAIApiError"];
5568
+ };
5569
+ };
5570
+ };
5571
+ };
4780
5572
  listSettings: {
4781
5573
  parameters: {
4782
5574
  query?: never;
@@ -5367,6 +6159,596 @@ export interface operations {
5367
6159
  };
5368
6160
  };
5369
6161
  };
6162
+ listToolsetTypes: {
6163
+ parameters: {
6164
+ query?: never;
6165
+ header?: never;
6166
+ path?: never;
6167
+ cookie?: never;
6168
+ };
6169
+ requestBody?: never;
6170
+ responses: {
6171
+ /** @description List of all toolset types */
6172
+ 200: {
6173
+ headers: {
6174
+ [name: string]: unknown;
6175
+ };
6176
+ content: {
6177
+ "application/json": components["schemas"]["ListToolsetTypesResponse"];
6178
+ };
6179
+ };
6180
+ /** @description Invalid request parameters */
6181
+ 400: {
6182
+ headers: {
6183
+ [name: string]: unknown;
6184
+ };
6185
+ content: {
6186
+ "application/json": components["schemas"]["OpenAIApiError"];
6187
+ };
6188
+ };
6189
+ /** @description Not authenticated */
6190
+ 401: {
6191
+ headers: {
6192
+ [name: string]: unknown;
6193
+ };
6194
+ content: {
6195
+ "application/json": components["schemas"]["OpenAIApiError"];
6196
+ };
6197
+ };
6198
+ /** @description Insufficient permissions */
6199
+ 403: {
6200
+ headers: {
6201
+ [name: string]: unknown;
6202
+ };
6203
+ content: {
6204
+ "application/json": components["schemas"]["OpenAIApiError"];
6205
+ };
6206
+ };
6207
+ /** @description Internal server error */
6208
+ 500: {
6209
+ headers: {
6210
+ [name: string]: unknown;
6211
+ };
6212
+ content: {
6213
+ "application/json": components["schemas"]["OpenAIApiError"];
6214
+ };
6215
+ };
6216
+ };
6217
+ };
6218
+ enableToolsetType: {
6219
+ parameters: {
6220
+ query?: never;
6221
+ header?: never;
6222
+ path: {
6223
+ /** @description Toolset type identifier */
6224
+ type_id: string;
6225
+ };
6226
+ cookie?: never;
6227
+ };
6228
+ requestBody?: never;
6229
+ responses: {
6230
+ /** @description Toolset type enabled */
6231
+ 200: {
6232
+ headers: {
6233
+ [name: string]: unknown;
6234
+ };
6235
+ content: {
6236
+ "application/json": components["schemas"]["AppToolsetConfigResponse"];
6237
+ };
6238
+ };
6239
+ /** @description Invalid request parameters */
6240
+ 400: {
6241
+ headers: {
6242
+ [name: string]: unknown;
6243
+ };
6244
+ content: {
6245
+ "application/json": components["schemas"]["OpenAIApiError"];
6246
+ };
6247
+ };
6248
+ /** @description Not authenticated */
6249
+ 401: {
6250
+ headers: {
6251
+ [name: string]: unknown;
6252
+ };
6253
+ content: {
6254
+ "application/json": components["schemas"]["OpenAIApiError"];
6255
+ };
6256
+ };
6257
+ /** @description Insufficient permissions */
6258
+ 403: {
6259
+ headers: {
6260
+ [name: string]: unknown;
6261
+ };
6262
+ content: {
6263
+ "application/json": components["schemas"]["OpenAIApiError"];
6264
+ };
6265
+ };
6266
+ /** @description Toolset type not found */
6267
+ 404: {
6268
+ headers: {
6269
+ [name: string]: unknown;
6270
+ };
6271
+ content?: never;
6272
+ };
6273
+ /** @description Internal server error */
6274
+ 500: {
6275
+ headers: {
6276
+ [name: string]: unknown;
6277
+ };
6278
+ content: {
6279
+ "application/json": components["schemas"]["OpenAIApiError"];
6280
+ };
6281
+ };
6282
+ };
6283
+ };
6284
+ disableToolsetType: {
6285
+ parameters: {
6286
+ query?: never;
6287
+ header?: never;
6288
+ path: {
6289
+ /** @description Toolset type identifier */
6290
+ type_id: string;
6291
+ };
6292
+ cookie?: never;
6293
+ };
6294
+ requestBody?: never;
6295
+ responses: {
6296
+ /** @description Toolset type disabled */
6297
+ 200: {
6298
+ headers: {
6299
+ [name: string]: unknown;
6300
+ };
6301
+ content: {
6302
+ "application/json": components["schemas"]["AppToolsetConfigResponse"];
6303
+ };
6304
+ };
6305
+ /** @description Invalid request parameters */
6306
+ 400: {
6307
+ headers: {
6308
+ [name: string]: unknown;
6309
+ };
6310
+ content: {
6311
+ "application/json": components["schemas"]["OpenAIApiError"];
6312
+ };
6313
+ };
6314
+ /** @description Not authenticated */
6315
+ 401: {
6316
+ headers: {
6317
+ [name: string]: unknown;
6318
+ };
6319
+ content: {
6320
+ "application/json": components["schemas"]["OpenAIApiError"];
6321
+ };
6322
+ };
6323
+ /** @description Insufficient permissions */
6324
+ 403: {
6325
+ headers: {
6326
+ [name: string]: unknown;
6327
+ };
6328
+ content: {
6329
+ "application/json": components["schemas"]["OpenAIApiError"];
6330
+ };
6331
+ };
6332
+ /** @description Toolset type not found */
6333
+ 404: {
6334
+ headers: {
6335
+ [name: string]: unknown;
6336
+ };
6337
+ content?: never;
6338
+ };
6339
+ /** @description Internal server error */
6340
+ 500: {
6341
+ headers: {
6342
+ [name: string]: unknown;
6343
+ };
6344
+ content: {
6345
+ "application/json": components["schemas"]["OpenAIApiError"];
6346
+ };
6347
+ };
6348
+ };
6349
+ };
6350
+ listToolsets: {
6351
+ parameters: {
6352
+ query?: never;
6353
+ header?: never;
6354
+ path?: never;
6355
+ cookie?: never;
6356
+ };
6357
+ requestBody?: never;
6358
+ responses: {
6359
+ /** @description List of user's toolsets */
6360
+ 200: {
6361
+ headers: {
6362
+ [name: string]: unknown;
6363
+ };
6364
+ content: {
6365
+ "application/json": components["schemas"]["ListToolsetsResponse"];
6366
+ };
6367
+ };
6368
+ /** @description Invalid request parameters */
6369
+ 400: {
6370
+ headers: {
6371
+ [name: string]: unknown;
6372
+ };
6373
+ content: {
6374
+ "application/json": components["schemas"]["OpenAIApiError"];
6375
+ };
6376
+ };
6377
+ /** @description Not authenticated */
6378
+ 401: {
6379
+ headers: {
6380
+ [name: string]: unknown;
6381
+ };
6382
+ content: {
6383
+ "application/json": components["schemas"]["OpenAIApiError"];
6384
+ };
6385
+ };
6386
+ /** @description Insufficient permissions */
6387
+ 403: {
6388
+ headers: {
6389
+ [name: string]: unknown;
6390
+ };
6391
+ content: {
6392
+ "application/json": components["schemas"]["OpenAIApiError"];
6393
+ };
6394
+ };
6395
+ /** @description Internal server error */
6396
+ 500: {
6397
+ headers: {
6398
+ [name: string]: unknown;
6399
+ };
6400
+ content: {
6401
+ "application/json": components["schemas"]["OpenAIApiError"];
6402
+ };
6403
+ };
6404
+ };
6405
+ };
6406
+ createToolset: {
6407
+ parameters: {
6408
+ query?: never;
6409
+ header?: never;
6410
+ path?: never;
6411
+ cookie?: never;
6412
+ };
6413
+ requestBody: {
6414
+ content: {
6415
+ "application/json": components["schemas"]["CreateToolsetRequest"];
6416
+ };
6417
+ };
6418
+ responses: {
6419
+ /** @description Toolset created */
6420
+ 201: {
6421
+ headers: {
6422
+ [name: string]: unknown;
6423
+ };
6424
+ content: {
6425
+ "application/json": components["schemas"]["ToolsetResponse"];
6426
+ };
6427
+ };
6428
+ /** @description Invalid request parameters */
6429
+ 400: {
6430
+ headers: {
6431
+ [name: string]: unknown;
6432
+ };
6433
+ content: {
6434
+ "application/json": components["schemas"]["OpenAIApiError"];
6435
+ };
6436
+ };
6437
+ /** @description Not authenticated */
6438
+ 401: {
6439
+ headers: {
6440
+ [name: string]: unknown;
6441
+ };
6442
+ content: {
6443
+ "application/json": components["schemas"]["OpenAIApiError"];
6444
+ };
6445
+ };
6446
+ /** @description Insufficient permissions */
6447
+ 403: {
6448
+ headers: {
6449
+ [name: string]: unknown;
6450
+ };
6451
+ content: {
6452
+ "application/json": components["schemas"]["OpenAIApiError"];
6453
+ };
6454
+ };
6455
+ /** @description Name already exists */
6456
+ 409: {
6457
+ headers: {
6458
+ [name: string]: unknown;
6459
+ };
6460
+ content?: never;
6461
+ };
6462
+ /** @description Internal server error */
6463
+ 500: {
6464
+ headers: {
6465
+ [name: string]: unknown;
6466
+ };
6467
+ content: {
6468
+ "application/json": components["schemas"]["OpenAIApiError"];
6469
+ };
6470
+ };
6471
+ };
6472
+ };
6473
+ getToolset: {
6474
+ parameters: {
6475
+ query?: never;
6476
+ header?: never;
6477
+ path: {
6478
+ /** @description Toolset instance UUID */
6479
+ id: string;
6480
+ };
6481
+ cookie?: never;
6482
+ };
6483
+ requestBody?: never;
6484
+ responses: {
6485
+ /** @description Toolset */
6486
+ 200: {
6487
+ headers: {
6488
+ [name: string]: unknown;
6489
+ };
6490
+ content: {
6491
+ "application/json": components["schemas"]["ToolsetResponse"];
6492
+ };
6493
+ };
6494
+ /** @description Invalid request parameters */
6495
+ 400: {
6496
+ headers: {
6497
+ [name: string]: unknown;
6498
+ };
6499
+ content: {
6500
+ "application/json": components["schemas"]["OpenAIApiError"];
6501
+ };
6502
+ };
6503
+ /** @description Not authenticated */
6504
+ 401: {
6505
+ headers: {
6506
+ [name: string]: unknown;
6507
+ };
6508
+ content: {
6509
+ "application/json": components["schemas"]["OpenAIApiError"];
6510
+ };
6511
+ };
6512
+ /** @description Insufficient permissions */
6513
+ 403: {
6514
+ headers: {
6515
+ [name: string]: unknown;
6516
+ };
6517
+ content: {
6518
+ "application/json": components["schemas"]["OpenAIApiError"];
6519
+ };
6520
+ };
6521
+ /** @description Toolset not found or not owned */
6522
+ 404: {
6523
+ headers: {
6524
+ [name: string]: unknown;
6525
+ };
6526
+ content?: never;
6527
+ };
6528
+ /** @description Internal server error */
6529
+ 500: {
6530
+ headers: {
6531
+ [name: string]: unknown;
6532
+ };
6533
+ content: {
6534
+ "application/json": components["schemas"]["OpenAIApiError"];
6535
+ };
6536
+ };
6537
+ };
6538
+ };
6539
+ updateToolset: {
6540
+ parameters: {
6541
+ query?: never;
6542
+ header?: never;
6543
+ path: {
6544
+ /** @description Toolset instance UUID */
6545
+ id: string;
6546
+ };
6547
+ cookie?: never;
6548
+ };
6549
+ requestBody: {
6550
+ content: {
6551
+ "application/json": components["schemas"]["UpdateToolsetRequest"];
6552
+ };
6553
+ };
6554
+ responses: {
6555
+ /** @description Toolset updated */
6556
+ 200: {
6557
+ headers: {
6558
+ [name: string]: unknown;
6559
+ };
6560
+ content: {
6561
+ "application/json": components["schemas"]["ToolsetResponse"];
6562
+ };
6563
+ };
6564
+ /** @description Invalid request parameters */
6565
+ 400: {
6566
+ headers: {
6567
+ [name: string]: unknown;
6568
+ };
6569
+ content: {
6570
+ "application/json": components["schemas"]["OpenAIApiError"];
6571
+ };
6572
+ };
6573
+ /** @description Not authenticated */
6574
+ 401: {
6575
+ headers: {
6576
+ [name: string]: unknown;
6577
+ };
6578
+ content: {
6579
+ "application/json": components["schemas"]["OpenAIApiError"];
6580
+ };
6581
+ };
6582
+ /** @description Insufficient permissions */
6583
+ 403: {
6584
+ headers: {
6585
+ [name: string]: unknown;
6586
+ };
6587
+ content: {
6588
+ "application/json": components["schemas"]["OpenAIApiError"];
6589
+ };
6590
+ };
6591
+ /** @description Toolset not found or not owned */
6592
+ 404: {
6593
+ headers: {
6594
+ [name: string]: unknown;
6595
+ };
6596
+ content?: never;
6597
+ };
6598
+ /** @description Name already exists */
6599
+ 409: {
6600
+ headers: {
6601
+ [name: string]: unknown;
6602
+ };
6603
+ content?: never;
6604
+ };
6605
+ /** @description Internal server error */
6606
+ 500: {
6607
+ headers: {
6608
+ [name: string]: unknown;
6609
+ };
6610
+ content: {
6611
+ "application/json": components["schemas"]["OpenAIApiError"];
6612
+ };
6613
+ };
6614
+ };
6615
+ };
6616
+ deleteToolset: {
6617
+ parameters: {
6618
+ query?: never;
6619
+ header?: never;
6620
+ path: {
6621
+ /** @description Toolset instance UUID */
6622
+ id: string;
6623
+ };
6624
+ cookie?: never;
6625
+ };
6626
+ requestBody?: never;
6627
+ responses: {
6628
+ /** @description Toolset deleted */
6629
+ 204: {
6630
+ headers: {
6631
+ [name: string]: unknown;
6632
+ };
6633
+ content?: never;
6634
+ };
6635
+ /** @description Invalid request parameters */
6636
+ 400: {
6637
+ headers: {
6638
+ [name: string]: unknown;
6639
+ };
6640
+ content: {
6641
+ "application/json": components["schemas"]["OpenAIApiError"];
6642
+ };
6643
+ };
6644
+ /** @description Not authenticated */
6645
+ 401: {
6646
+ headers: {
6647
+ [name: string]: unknown;
6648
+ };
6649
+ content: {
6650
+ "application/json": components["schemas"]["OpenAIApiError"];
6651
+ };
6652
+ };
6653
+ /** @description Insufficient permissions */
6654
+ 403: {
6655
+ headers: {
6656
+ [name: string]: unknown;
6657
+ };
6658
+ content: {
6659
+ "application/json": components["schemas"]["OpenAIApiError"];
6660
+ };
6661
+ };
6662
+ /** @description Toolset not found or not owned */
6663
+ 404: {
6664
+ headers: {
6665
+ [name: string]: unknown;
6666
+ };
6667
+ content?: never;
6668
+ };
6669
+ /** @description Internal server error */
6670
+ 500: {
6671
+ headers: {
6672
+ [name: string]: unknown;
6673
+ };
6674
+ content: {
6675
+ "application/json": components["schemas"]["OpenAIApiError"];
6676
+ };
6677
+ };
6678
+ };
6679
+ };
6680
+ executeToolset: {
6681
+ parameters: {
6682
+ query?: never;
6683
+ header?: never;
6684
+ path: {
6685
+ /** @description Toolset instance UUID */
6686
+ id: string;
6687
+ /** @description Tool method name */
6688
+ method: string;
6689
+ };
6690
+ cookie?: never;
6691
+ };
6692
+ requestBody: {
6693
+ content: {
6694
+ "application/json": components["schemas"]["ExecuteToolsetRequest"];
6695
+ };
6696
+ };
6697
+ responses: {
6698
+ /** @description Tool execution result */
6699
+ 200: {
6700
+ headers: {
6701
+ [name: string]: unknown;
6702
+ };
6703
+ content: {
6704
+ "application/json": components["schemas"]["ToolsetExecutionResponse"];
6705
+ };
6706
+ };
6707
+ /** @description Invalid request parameters */
6708
+ 400: {
6709
+ headers: {
6710
+ [name: string]: unknown;
6711
+ };
6712
+ content: {
6713
+ "application/json": components["schemas"]["OpenAIApiError"];
6714
+ };
6715
+ };
6716
+ /** @description Not authenticated */
6717
+ 401: {
6718
+ headers: {
6719
+ [name: string]: unknown;
6720
+ };
6721
+ content: {
6722
+ "application/json": components["schemas"]["OpenAIApiError"];
6723
+ };
6724
+ };
6725
+ /** @description Insufficient permissions */
6726
+ 403: {
6727
+ headers: {
6728
+ [name: string]: unknown;
6729
+ };
6730
+ content: {
6731
+ "application/json": components["schemas"]["OpenAIApiError"];
6732
+ };
6733
+ };
6734
+ /** @description Toolset or method not found */
6735
+ 404: {
6736
+ headers: {
6737
+ [name: string]: unknown;
6738
+ };
6739
+ content?: never;
6740
+ };
6741
+ /** @description Internal server error */
6742
+ 500: {
6743
+ headers: {
6744
+ [name: string]: unknown;
6745
+ };
6746
+ content: {
6747
+ "application/json": components["schemas"]["OpenAIApiError"];
6748
+ };
6749
+ };
6750
+ };
6751
+ };
5370
6752
  getCurrentUser: {
5371
6753
  parameters: {
5372
6754
  query?: never;