@bodhiapp/ts-client 0.1.26 → 0.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/anthropic.d.ts +1 -0
  2. package/dist/anthropic.js +20 -0
  3. package/dist/anthropic.mjs +2 -0
  4. package/dist/gemini.d.ts +1 -0
  5. package/dist/gemini.js +20 -0
  6. package/dist/gemini.mjs +2 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/openai.d.ts +1 -0
  9. package/dist/openai.js +20 -0
  10. package/dist/openai.mjs +2 -0
  11. package/dist/openapi-typescript/openapi-schema-anthropic.d.ts +3391 -0
  12. package/dist/openapi-typescript/openapi-schema-anthropic.ts +3392 -0
  13. package/dist/openapi-typescript/openapi-schema-gemini.d.ts +3708 -0
  14. package/dist/openapi-typescript/openapi-schema-gemini.ts +3709 -0
  15. package/dist/openapi-typescript/openapi-schema-oai.d.ts +4371 -0
  16. package/dist/openapi-typescript/openapi-schema-oai.ts +4372 -0
  17. package/dist/openapi-typescript/openapi-schema.d.ts +1453 -3111
  18. package/dist/openapi-typescript/openapi-schema.ts +1453 -3111
  19. package/dist/types/types.gen.d.ts +477 -1731
  20. package/dist/types/types.gen.ts +516 -1903
  21. package/dist/types-anthropic/index.d.ts +1 -0
  22. package/dist/types-anthropic/index.ts +2 -0
  23. package/dist/types-anthropic/types.gen.d.ts +2241 -0
  24. package/dist/types-anthropic/types.gen.ts +2416 -0
  25. package/dist/types-gemini/index.d.ts +1 -0
  26. package/dist/types-gemini/index.ts +2 -0
  27. package/dist/types-gemini/types.gen.d.ts +4622 -0
  28. package/dist/types-gemini/types.gen.ts +4849 -0
  29. package/dist/types-oai/index.d.ts +1 -0
  30. package/dist/types-oai/index.ts +2 -0
  31. package/dist/types-oai/types.gen.d.ts +4428 -0
  32. package/dist/types-oai/types.gen.ts +4810 -0
  33. package/package.json +39 -7
@@ -92,15 +92,55 @@ export type Alias = (UserAlias & {
92
92
  */
93
93
  export type AliasResponse = UserAliasResponse | ModelAliasResponse | ApiAliasResponse;
94
94
 
95
+ /**
96
+ * Mirrors Anthropic's `ModelInfo` schema — full model metadata returned by
97
+ * `GET /anthropic/v1/models` and stored alongside model IDs in `ApiAlias.models`.
98
+ *
99
+ * **IMPORTANT**: Do NOT add `#[serde(skip_serializing_if = "Option::is_none")]` on the
100
+ * `Option` fields below. The Anthropic API spec marks `capabilities`, `max_input_tokens`,
101
+ * and `max_tokens` as **required** (nullable via `anyOf [T, null]`). They must serialize
102
+ * as `null` when absent, not be omitted from the JSON output.
103
+ */
104
+ export type AnthropicModel = {
105
+ id: string;
106
+ display_name: string;
107
+ /**
108
+ * RFC 3339 datetime string representing the model's release date.
109
+ */
110
+ created_at: string;
111
+ capabilities?: null | AnthropicModelCapabilities;
112
+ max_input_tokens?: number | null;
113
+ max_tokens?: number | null;
114
+ /**
115
+ * Always `"model"` — included for Anthropic API compatibility.
116
+ */
117
+ type: string;
118
+ };
119
+
120
+ /**
121
+ * Model capability information (Anthropic ModelCapabilities schema).
122
+ */
123
+ export type AnthropicModelCapabilities = {
124
+ batch: CapabilitySupport;
125
+ citations: CapabilitySupport;
126
+ code_execution: CapabilitySupport;
127
+ context_management: ContextManagementCapability;
128
+ effort: EffortCapability;
129
+ image_input: CapabilitySupport;
130
+ pdf_input: CapabilitySupport;
131
+ structured_outputs: CapabilitySupport;
132
+ thinking: ThinkingCapability;
133
+ };
134
+
95
135
  export type ApiAlias = {
96
136
  id: string;
97
137
  api_format: ApiFormat;
98
138
  base_url: string;
99
- models: JsonVec;
139
+ models: ApiModelVec;
100
140
  prefix?: string | null;
101
141
  forward_all_with_prefix: boolean;
102
- models_cache: JsonVec;
103
- cache_fetched_at: string;
142
+ extra_headers?: unknown;
143
+ extra_body?: unknown;
104
144
  created_at: string;
105
145
  updated_at: string;
106
146
  };
@@ -115,11 +155,13 @@ export type ApiAliasResponse = {
115
155
  base_url: string;
116
156
  has_api_key: boolean;
117
157
  /**
118
- * Models available through this alias (merged from cache for forward_all)
158
+ * Models available through this alias with full provider metadata
119
159
  */
120
- models: Array<string>;
160
+ models: Array<ApiModel>;
121
161
  prefix?: string | null;
122
162
  forward_all_with_prefix: boolean;
163
+ extra_headers?: unknown;
164
+ extra_body?: unknown;
123
165
  created_at: string;
124
166
  updated_at: string;
125
167
  };
@@ -127,7 +169,7 @@ export type ApiAliasResponse = {
127
169
  /**
128
170
  * API format/protocol specification
129
171
  */
130
- export type ApiFormat = 'openai' | 'placeholder';
172
+ export type ApiFormat = 'openai' | 'openai_responses' | 'anthropic' | 'anthropic_oauth' | 'gemini';
131
173
 
132
174
  /**
133
175
  * Response containing available API formats
@@ -154,6 +196,18 @@ export type ApiKeyUpdate = {
154
196
  action: 'set';
155
197
  };
156
198
 
199
+ /**
200
+ * Discriminated union of provider-specific model metadata.
201
+ * Stored as JSON in `api_model_aliases.models`.
202
+ */
203
+ export type ApiModel = (Model & {
204
+ provider: 'openai';
205
+ }) | (AnthropicModel & {
206
+ provider: 'anthropic';
207
+ }) | (GeminiModel & {
208
+ provider: 'gemini';
209
+ });
210
+
157
211
  /**
158
212
  * Input request for creating or updating an API model configuration.
159
213
  */
@@ -182,8 +236,22 @@ export type ApiModelRequest = {
182
236
  * Whether to forward all requests with this prefix (true) or only selected models (false)
183
237
  */
184
238
  forward_all_with_prefix?: boolean;
239
+ /**
240
+ * Optional extra HTTP headers to send upstream. Cannot include `Authorization`
241
+ * or `x-api-key` — those are owned by provider clients.
242
+ */
243
+ extra_headers?: unknown;
244
+ /**
245
+ * Optional extra fields to merge into the request body sent upstream
246
+ */
247
+ extra_body?: unknown;
185
248
  };
186
249
 
250
+ /**
251
+ * DB-storable `Vec<ApiModel>` — stored as JSON binary in SeaORM columns.
252
+ */
253
+ export type ApiModelVec = Array<ApiModel>;
254
+
187
255
  export type AppAccessRequestStatus = 'draft' | 'approved' | 'denied' | 'failed' | 'expired';
188
256
 
189
257
  /**
@@ -288,873 +356,115 @@ export type AuthInitiateRequest = {
288
356
  client_id: string;
289
357
  };
290
358
 
291
- /**
292
- * Change user role request
293
- */
294
- export type ChangeRoleRequest = {
295
- /**
296
- * Role to assign to the user
297
- */
298
- role: ResourceRole;
299
- };
300
-
301
- export type ChatChoice = {
302
- /**
303
- * The index of the choice in the list of choices.
304
- */
305
- index: number;
306
- message: ChatCompletionResponseMessage;
307
- finish_reason?: null | FinishReason;
308
- logprobs?: null | ChatChoiceLogprobs;
309
- };
310
-
311
- export type ChatChoiceLogprobs = {
312
- /**
313
- * A list of message content tokens with log probability information.
314
- */
315
- content?: Array<ChatCompletionTokenLogprob> | null;
316
- refusal?: Array<ChatCompletionTokenLogprob> | null;
317
- };
318
-
319
- export type ChatChoiceStream = {
320
- /**
321
- * The index of the choice in the list of choices.
322
- */
323
- index: number;
324
- delta: ChatCompletionStreamResponseDelta;
325
- finish_reason?: null | FinishReason;
326
- logprobs?: null | ChatChoiceLogprobs;
327
- };
328
-
329
- export type ChatCompletionAllowedTools = {
330
- /**
331
- * Constrains the tools available to the model to a pre-defined set.
332
- *
333
- * `auto` allows the model to pick from among the allowed tools and generate a
334
- * message.
335
- *
336
- * `required` requires the model to call one or more of the allowed tools.
337
- */
338
- mode: ToolChoiceAllowedMode;
339
- /**
340
- * A list of tool definitions that the model should be allowed to call.
341
- *
342
- * For the Chat Completions API, the list of tool definitions might look like:
343
- * ```json
344
- * [
345
- * { "type": "function", "function": { "name": "get_weather" } },
346
- * { "type": "function", "function": { "name": "get_time" } }
347
- * ]
348
- * ```
349
- */
350
- tools: Array<unknown>;
351
- };
352
-
353
- export type ChatCompletionAllowedToolsChoice = {
354
- allowed_tools: Array<ChatCompletionAllowedTools>;
355
- };
356
-
357
- export type ChatCompletionAudio = {
358
- /**
359
- * The voice the model uses to respond. Supported built-in voices are `alloy`, `ash`,
360
- * `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, `shimmer`, `marin`, and `cedar`.
361
- */
362
- voice: ChatCompletionAudioVoice;
363
- /**
364
- * Specifies the output audio format. Must be one of `wav`, `aac`, `mp3`, `flac`, `opus`, or `pcm16`.
365
- */
366
- format: ChatCompletionAudioFormat;
367
- };
368
-
369
- export type ChatCompletionAudioFormat = 'wav' | 'aac' | 'mp3' | 'flac' | 'opus' | 'pcm16';
370
-
371
- export type ChatCompletionAudioVoice = 'alloy' | 'ash' | 'ballad' | 'coral' | 'echo' | 'fable' | 'nova' | 'onyx' | 'sage' | 'shimmer' | {
372
- other: string;
373
- };
374
-
375
- export type ChatCompletionFunctionCall = 'none' | 'auto' | {
376
- /**
377
- * Forces the model to call the specified function.
378
- */
379
- Function: {
380
- name: string;
381
- };
382
- };
383
-
384
- export type ChatCompletionFunctions = {
385
- /**
386
- * 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.
387
- */
388
- name: string;
389
- /**
390
- * A description of what the function does, used by the model to choose when and how to call the function.
391
- */
392
- description?: string | null;
393
- /**
394
- * The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
395
- *
396
- * Omitting `parameters` defines a function with an empty parameter list.
397
- */
398
- parameters: unknown;
399
- };
400
-
401
- export type ChatCompletionMessageCustomToolCall = {
402
- /**
403
- * The ID of the tool call.
404
- */
405
- id: string;
406
- /**
407
- * The custom tool that the model called.
408
- */
409
- custom_tool: CustomTool;
410
- };
411
-
412
- export type ChatCompletionMessageToolCall = {
413
- /**
414
- * The ID of the tool call.
415
- */
416
- id: string;
417
- /**
418
- * The function that the model called.
419
- */
420
- function: FunctionCall;
421
- };
422
-
423
- export type ChatCompletionMessageToolCallChunk = {
424
- index: number;
425
- /**
426
- * The ID of the tool call.
427
- */
428
- id?: string | null;
429
- type?: null | FunctionType;
430
- function?: null | FunctionCallStream;
431
- };
432
-
433
- export type ChatCompletionMessageToolCalls = (ChatCompletionMessageToolCall & {
434
- type: 'function';
435
- }) | (ChatCompletionMessageCustomToolCall & {
436
- type: 'custom';
437
- });
438
-
439
- /**
440
- * Specifies a tool the model should use. Use to force the model to call a specific function.
441
- */
442
- export type ChatCompletionNamedToolChoice = {
443
- function: FunctionName;
444
- };
445
-
446
- export type ChatCompletionNamedToolChoiceCustom = {
447
- custom: CustomName;
448
- };
449
-
450
- export type ChatCompletionRequestAssistantMessage = {
451
- content?: null | ChatCompletionRequestAssistantMessageContent;
452
- /**
453
- * The refusal message by the assistant.
454
- */
455
- refusal?: string | null;
456
- /**
457
- * An optional name for the participant. Provides the model information to differentiate between participants of the same role.
458
- */
459
- name?: string | null;
460
- audio?: null | ChatCompletionRequestAssistantMessageAudio;
461
- tool_calls?: Array<ChatCompletionMessageToolCalls> | null;
462
- function_call?: null | FunctionCall;
463
- };
464
-
465
- export type ChatCompletionRequestAssistantMessageAudio = {
466
- /**
467
- * Unique identifier for a previous audio response from the model.
468
- */
469
- id: string;
470
- };
471
-
472
- export type ChatCompletionRequestAssistantMessageContent = string | Array<ChatCompletionRequestAssistantMessageContentPart>;
473
-
474
- export type ChatCompletionRequestAssistantMessageContentPart = (ChatCompletionRequestMessageContentPartText & {
475
- type: 'text';
476
- }) | (ChatCompletionRequestMessageContentPartRefusal & {
477
- type: 'refusal';
478
- });
479
-
480
- export type ChatCompletionRequestDeveloperMessage = {
481
- /**
482
- * The contents of the developer message.
483
- */
484
- content: ChatCompletionRequestDeveloperMessageContent;
485
- /**
486
- * An optional name for the participant. Provides the model information to differentiate between participants of the same role.
487
- */
488
- name?: string | null;
489
- };
490
-
491
- export type ChatCompletionRequestDeveloperMessageContent = string | Array<ChatCompletionRequestDeveloperMessageContentPart>;
492
-
493
- export type ChatCompletionRequestDeveloperMessageContentPart = ChatCompletionRequestMessageContentPartText & {
494
- type: 'text';
495
- };
496
-
497
- export type ChatCompletionRequestFunctionMessage = {
498
- /**
499
- * The return value from the function call, to return to the model.
500
- */
501
- content?: string | null;
502
- /**
503
- * The name of the function to call.
504
- */
505
- name: string;
506
- };
507
-
508
- export type ChatCompletionRequestMessage = (ChatCompletionRequestDeveloperMessage & {
509
- role: 'developer';
510
- }) | (ChatCompletionRequestSystemMessage & {
511
- role: 'system';
512
- }) | (ChatCompletionRequestUserMessage & {
513
- role: 'user';
514
- }) | (ChatCompletionRequestAssistantMessage & {
515
- role: 'assistant';
516
- }) | (ChatCompletionRequestToolMessage & {
517
- role: 'tool';
518
- }) | (ChatCompletionRequestFunctionMessage & {
519
- role: 'function';
520
- });
521
-
522
- /**
523
- * Learn about [audio inputs](https://platform.openai.com/docs/guides/audio).
524
- */
525
- export type ChatCompletionRequestMessageContentPartAudio = {
526
- input_audio: InputAudio;
527
- };
528
-
529
- export type ChatCompletionRequestMessageContentPartFile = {
530
- file: FileObject;
531
- };
532
-
533
- export type ChatCompletionRequestMessageContentPartImage = {
534
- image_url: ImageUrl;
535
- };
536
-
537
- export type ChatCompletionRequestMessageContentPartRefusal = {
538
- /**
539
- * The refusal message generated by the model.
540
- */
541
- refusal: string;
542
- };
543
-
544
- export type ChatCompletionRequestMessageContentPartText = {
545
- text: string;
546
- };
547
-
548
- export type ChatCompletionRequestSystemMessage = {
549
- /**
550
- * The contents of the system message.
551
- */
552
- content: ChatCompletionRequestSystemMessageContent;
553
- /**
554
- * An optional name for the participant. Provides the model information to differentiate between participants of the same role.
555
- */
556
- name?: string | null;
557
- };
558
-
559
- export type ChatCompletionRequestSystemMessageContent = string | Array<ChatCompletionRequestSystemMessageContentPart>;
560
-
561
- export type ChatCompletionRequestSystemMessageContentPart = ChatCompletionRequestMessageContentPartText & {
562
- type: 'text';
563
- };
564
-
565
- /**
566
- * Tool message
567
- */
568
- export type ChatCompletionRequestToolMessage = {
569
- /**
570
- * The contents of the tool message.
571
- */
572
- content: ChatCompletionRequestToolMessageContent;
573
- tool_call_id: string;
574
- };
575
-
576
- export type ChatCompletionRequestToolMessageContent = string | Array<ChatCompletionRequestToolMessageContentPart>;
577
-
578
- export type ChatCompletionRequestToolMessageContentPart = ChatCompletionRequestMessageContentPartText & {
579
- type: 'text';
580
- };
581
-
582
- export type ChatCompletionRequestUserMessage = {
583
- /**
584
- * The contents of the user message.
585
- */
586
- content: ChatCompletionRequestUserMessageContent;
587
- /**
588
- * An optional name for the participant. Provides the model information to differentiate between participants of the same role.
589
- */
590
- name?: string | null;
591
- };
592
-
593
- export type ChatCompletionRequestUserMessageContent = string | Array<ChatCompletionRequestUserMessageContentPart>;
594
-
595
- export type ChatCompletionRequestUserMessageContentPart = (ChatCompletionRequestMessageContentPartText & {
596
- type: 'text';
597
- }) | (ChatCompletionRequestMessageContentPartImage & {
598
- type: 'image_url';
599
- }) | (ChatCompletionRequestMessageContentPartAudio & {
600
- type: 'input_audio';
601
- }) | (ChatCompletionRequestMessageContentPartFile & {
602
- type: 'file';
603
- });
604
-
605
- /**
606
- * A chat completion message generated by the model.
607
- */
608
- export type ChatCompletionResponseMessage = {
609
- /**
610
- * The contents of the message.
611
- */
612
- content?: string | null;
613
- /**
614
- * The refusal message generated by the model.
615
- */
616
- refusal?: string | null;
617
- /**
618
- * The tool calls generated by the model, such as function calls.
619
- */
620
- tool_calls?: Array<ChatCompletionMessageToolCalls> | null;
621
- annotations?: Array<ChatCompletionResponseMessageAnnotation> | null;
622
- /**
623
- * The role of the author of this message.
624
- */
625
- role: Role;
626
- function_call?: null | FunctionCall;
627
- audio?: null | ChatCompletionResponseMessageAudio;
628
- /**
629
- * The contents of the reasoning message.
630
- */
631
- reasoning_content?: string | null;
632
- };
633
-
634
- export type ChatCompletionResponseMessageAnnotation = {
635
- url_citation: UrlCitation;
636
- type: 'url_citation';
637
- };
638
-
639
- export type ChatCompletionResponseMessageAudio = {
640
- /**
641
- * Unique identifier for this audio response.
642
- */
643
- id: string;
359
+ export type BodhiApiError = {
644
360
  /**
645
- * The Unix timestamp (in seconds) for when this audio response will no longer be accessible on the server for use in multi-turn conversations.
646
- */
647
- expires_at: number;
648
- /**
649
- * Base64 encoded audio bytes generated by the model, in the format specified in the request.
650
- */
651
- data: string;
652
- /**
653
- * Transcript of the audio generated by the model.
654
- */
655
- transcript: string;
656
- };
657
-
658
- /**
659
- * Options for streaming response. Only set this when you set `stream: true`.
660
- */
661
- export type ChatCompletionStreamOptions = {
662
- /**
663
- * If set, an additional chunk will be streamed before the `data: [DONE]`
664
- * message. The `usage` field on this chunk shows the token usage statistics
665
- * for the entire request, and the `choices` field will always be an empty
666
- * array.
667
- *
668
- * All other chunks will also include a `usage` field, but with a null
669
- * value. **NOTE:** If the stream is interrupted, you may not receive the
670
- * final usage chunk which contains the total token usage for the request.
671
- */
672
- include_usage?: boolean | null;
673
- /**
674
- * When true, stream obfuscation will be enabled. Stream obfuscation adds
675
- * random characters to an `obfuscation` field on streaming delta events to
676
- * normalize payload sizes as a mitigation to certain side-channel attacks.
677
- * These obfuscation fields are included by default, but add a small amount
678
- * of overhead to the data stream. You can set `include_obfuscation` to
679
- * false to optimize for bandwidth if you trust the network links between
680
- * your application and the OpenAI API.
681
- */
682
- include_obfuscation?: boolean | null;
683
- };
684
-
685
- /**
686
- * A chat completion delta generated by streamed model responses.
687
- */
688
- export type ChatCompletionStreamResponseDelta = {
689
- /**
690
- * The contents of the chunk message.
691
- */
692
- content?: string | null;
693
- function_call?: null | FunctionCallStream;
694
- tool_calls?: Array<ChatCompletionMessageToolCallChunk> | null;
695
- role?: null | Role;
696
- /**
697
- * The refusal message generated by the model.
698
- */
699
- refusal?: string | null;
700
- /**
701
- * The contents of the chunk reasoning message.
702
- */
703
- reasoning_content?: string | null;
704
- };
705
-
706
- export type ChatCompletionTokenLogprob = {
707
- /**
708
- * The token.
709
- */
710
- token: string;
711
- /**
712
- * The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely.
713
- */
714
- logprob: number;
715
- /**
716
- * A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token.
717
- */
718
- bytes?: Array<number> | null;
719
- /**
720
- * List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned.
721
- */
722
- top_logprobs: Array<TopLogprobs>;
723
- };
724
-
725
- export type ChatCompletionTool = {
726
- function: FunctionObject;
727
- };
728
-
729
- /**
730
- * Controls which (if any) tool is called by the model.
731
- * `none` means the model will not call any tool and instead generates a message.
732
- * `auto` means the model can pick between generating a message or calling one or more tools.
733
- * `required` means the model must call one or more tools.
734
- * Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool.
735
- *
736
- * `none` is the default when no tools are present. `auto` is the default if tools are present.
737
- */
738
- export type ChatCompletionToolChoiceOption = (ChatCompletionAllowedToolsChoice & {
739
- type: 'allowed_tools';
740
- }) | (ChatCompletionNamedToolChoice & {
741
- type: 'function';
742
- }) | (ChatCompletionNamedToolChoiceCustom & {
743
- type: 'custom';
744
- }) | (ToolChoiceOptions & {
745
- type: 'mode';
746
- });
747
-
748
- export type ChatCompletionTools = (ChatCompletionTool & {
749
- type: 'function';
750
- }) | (CustomToolChatCompletions & {
751
- type: 'custom';
752
- });
753
-
754
- export type ChatRequest = {
755
- model: string;
756
- messages: Array<Message>;
757
- stream?: boolean | null;
758
- format?: string | null;
759
- keep_alive?: null | Duration;
760
- options?: null | Options;
761
- };
762
-
763
- /**
764
- * Breakdown of tokens used in a completion.
765
- */
766
- export type CompletionTokensDetails = {
767
- accepted_prediction_tokens?: number | null;
768
- /**
769
- * Audio input tokens generated by the model.
770
- */
771
- audio_tokens?: number | null;
772
- /**
773
- * Tokens generated by the model for reasoning.
774
- */
775
- reasoning_tokens?: number | null;
776
- /**
777
- * When using Predicted Outputs, the number of tokens in the
778
- * prediction that did not appear in the completion. However, like
779
- * reasoning tokens, these tokens are still counted in the total
780
- * completion tokens for purposes of billing, output, and context
781
- * window limits.
782
- */
783
- rejected_prediction_tokens?: number | null;
784
- };
785
-
786
- /**
787
- * Usage statistics for the completion request.
788
- */
789
- export type CompletionUsage = {
790
- /**
791
- * Number of tokens in the prompt.
792
- */
793
- prompt_tokens: number;
794
- /**
795
- * Number of tokens in the generated completion.
796
- */
797
- completion_tokens: number;
798
- /**
799
- * Total number of tokens used in the request (prompt + completion).
361
+ * Error details following OpenAI API error format
800
362
  */
801
- total_tokens: number;
802
- prompt_tokens_details?: null | PromptTokensDetails;
803
- completion_tokens_details?: null | CompletionTokensDetails;
804
- };
805
-
806
- export type ContextLimits = {
807
- max_input_tokens?: number | null;
808
- max_output_tokens?: number | null;
809
- };
810
-
811
- export type CopyAliasRequest = {
812
- alias: string;
363
+ error: BodhiErrorBody;
813
364
  };
814
365
 
815
- /**
816
- * Request for creating an app access request
817
- */
818
- export type CreateAccessRequest = {
819
- /**
820
- * App client ID from Keycloak
821
- */
822
- app_client_id: string;
823
- /**
824
- * Flow type: "redirect" or "popup"
825
- */
826
- flow_type: FlowType;
366
+ export type BodhiErrorBody = {
827
367
  /**
828
- * Redirect URL for result notification (required for redirect flow)
829
- */
830
- redirect_url?: string | null;
831
- /**
832
- * Role requested for the external app (scope_user_user or scope_user_power_user)
833
- */
834
- requested_role: UserScope;
835
- /**
836
- * Resources requested (tools, etc.)
368
+ * Human-readable error message describing what went wrong
837
369
  */
838
- requested: RequestedResources;
839
- };
840
-
841
- export type CreateAccessRequestResponse = {
370
+ message: string;
842
371
  /**
843
- * Access request ID
372
+ * Error type categorizing the kind of error that occurred
844
373
  */
845
- id: string;
374
+ type: string;
846
375
  /**
847
- * Status (always "draft")
376
+ * Specific error code for programmatic error handling
848
377
  */
849
- status: AppAccessRequestStatus;
378
+ code?: string | null;
850
379
  /**
851
- * Review URL for user to approve/deny
380
+ * Additional error parameters as key-value pairs (for validation errors)
852
381
  */
853
- review_url: string;
382
+ param?: {
383
+ [key: string]: string;
384
+ } | null;
854
385
  };
855
386
 
856
387
  /**
857
- * Wrapper for creating auth configs with server_id in body instead of path
388
+ * Whether a single capability is supported by the model.
858
389
  */
859
- export type CreateAuthConfig = CreateMcpAuthConfigRequest & {
860
- mcp_server_id: string;
861
- };
862
-
863
- export type CreateChatCompletionRequest = {
864
- /**
865
- * A list of messages comprising the conversation so far. Depending on the
866
- * [model](https://platform.openai.com/docs/models) you use, different message types (modalities)
867
- * are supported, like [text](https://platform.openai.com/docs/guides/text-generation),
868
- * [images](https://platform.openai.com/docs/guides/vision), and
869
- * [audio](https://platform.openai.com/docs/guides/audio).
870
- */
871
- messages: Array<ChatCompletionRequestMessage>;
872
- /**
873
- * Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
874
- * offers a wide range of models with different capabilities, performance
875
- * characteristics, and price points. Refer to the
876
- * [model guide](https://platform.openai.com/docs/models)
877
- * to browse and compare available models.
878
- */
879
- model: string;
880
- /**
881
- * Output types that you would like the model to generate. Most models are capable of generating
882
- * text, which is the default:
883
- *
884
- * `["text"]`
885
- * The `gpt-4o-audio-preview` model can also be used to
886
- * [generate audio](https://platform.openai.com/docs/guides/audio). To request that this model
887
- * generate both text and audio responses, you can use:
888
- *
889
- * `["text", "audio"]`
890
- */
891
- modalities?: Array<ResponseModalities> | null;
892
- verbosity?: null | Verbosity;
893
- reasoning_effort?: null | ReasoningEffort;
894
- /**
895
- * An upper bound for the number of tokens that can be generated for a completion, including
896
- * visible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).
897
- */
898
- max_completion_tokens?: number | null;
899
- /**
900
- * Number between -2.0 and 2.0. Positive values penalize new tokens based on
901
- * their existing frequency in the text so far, decreasing the model's
902
- * likelihood to repeat the same line verbatim.
903
- */
904
- frequency_penalty?: number | null;
905
- /**
906
- * Number between -2.0 and 2.0. Positive values penalize new tokens based on
907
- * whether they appear in the text so far, increasing the model's likelihood
908
- * to talk about new topics.
909
- */
910
- presence_penalty?: number | null;
911
- web_search_options?: null | WebSearchOptions;
912
- /**
913
- * An integer between 0 and 20 specifying the number of most likely tokens to
914
- * return at each token position, each with an associated log probability.
915
- * `logprobs` must be set to `true` if this parameter is used.
916
- */
917
- top_logprobs?: number | null;
918
- response_format?: null | ResponseFormat;
919
- audio?: null | ChatCompletionAudio;
920
- /**
921
- * Whether or not to store the output of this chat completion request for
922
- * use in our [model distillation](https://platform.openai.com/docs/guides/distillation) or
923
- * [evals](https://platform.openai.com/docs/guides/evals) products.
924
- *
925
- * Supports text and image inputs. Note: image inputs over 8MB will be dropped.
926
- */
927
- store?: boolean | null;
928
- /**
929
- * If set to true, the model response data will be streamed to the client
930
- * 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).
931
- * See the [Streaming section below](https://platform.openai.com/docs/api-reference/chat/streaming)
932
- * for more information, along with the [streaming responses](https://platform.openai.com/docs/guides/streaming-responses)
933
- * guide for more information on how to handle the streaming events.
934
- */
935
- stream?: boolean | null;
936
- stop?: null | StopConfiguration;
937
- /**
938
- * Modify the likelihood of specified tokens appearing in the completion.
939
- *
940
- * Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100.
941
- * Mathematically, the bias is added to the logits generated by the model prior to sampling.
942
- * The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection;
943
- * values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
944
- */
945
- logit_bias?: {
946
- [key: string]: number;
947
- } | null;
948
- /**
949
- * Whether to return log probabilities of the output tokens or not. If true,
950
- * returns the log probabilities of each output token returned in the `content` of `message`.
951
- */
952
- logprobs?: boolean | null;
953
- /**
954
- * The maximum number of [tokens](https://platform.openai.com/tokenizer) that can be generated in
955
- * the chat completion. This value can be used to control [costs](https://openai.com/api/pricing/) for text generated via API.
956
- * This value is now deprecated in favor of `max_completion_tokens`, and is
957
- * not compatible with [o-series models](https://platform.openai.com/docs/guides/reasoning).
958
- * @deprecated
959
- */
960
- max_tokens?: number | null;
961
- /**
962
- * How many chat completion choices to generate for each input message. Note that you will be
963
- * charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to
964
- * minimize costs.
965
- */
966
- n?: number | null;
967
- prediction?: null | PredictionContent;
968
- /**
969
- * This feature is in Beta.
970
- *
971
- * If specified, our system will make a best effort to sample deterministically, such that
972
- * repeated requests with the same `seed` and parameters should return the same result.
973
- *
974
- * Determinism is not guaranteed, and you should refer to the `system_fingerprint` response
975
- * parameter to monitor changes in the backend.
976
- * @deprecated
977
- */
978
- seed?: number | null;
979
- stream_options?: null | ChatCompletionStreamOptions;
980
- service_tier?: null | ServiceTier;
981
- /**
982
- * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,
983
- * while lower values like 0.2 will make it more focused and deterministic.
984
- *
985
- * We generally recommend altering this or `top_p` but not both.
986
- */
987
- temperature?: number | null;
988
- /**
989
- * An alternative to sampling with temperature, called nucleus sampling,
990
- * where the model considers the results of the tokens with top_p probability mass.
991
- * So 0.1 means only the tokens comprising the top 10% probability mass are considered.
992
- *
993
- * We generally recommend altering this or `temperature` but not both.
994
- */
995
- top_p?: number | null;
996
- /**
997
- * A list of tools the model may call. You can provide either
998
- * [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or
999
- * [function tools](https://platform.openai.com/docs/guides/function-calling).
1000
- */
1001
- tools?: Array<ChatCompletionTools> | null;
1002
- tool_choice?: null | ChatCompletionToolChoiceOption;
1003
- /**
1004
- * Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling)
1005
- * during tool use.
1006
- */
1007
- parallel_tool_calls?: boolean | null;
1008
- /**
1009
- * This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key`
1010
- * instead to maintain caching optimizations.
1011
- * A stable identifier for your end-users.
1012
- * Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and
1013
- * prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
1014
- * @deprecated
1015
- */
1016
- user?: string | null;
1017
- /**
1018
- * A stable identifier used to help detect users of your application that may be violating OpenAI's
1019
- * usage policies.
1020
- *
1021
- * The IDs should be a string that uniquely identifies each user. We recommend hashing their username
1022
- * or email address, in order to avoid sending us any identifying information. [Learn
1023
- * more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
1024
- */
1025
- safety_identifier?: string | null;
1026
- /**
1027
- * Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces
1028
- * the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
1029
- */
1030
- prompt_cache_key?: string | null;
1031
- function_call?: null | ChatCompletionFunctionCall;
1032
- /**
1033
- * Deprecated in favor of `tools`.
1034
- *
1035
- * A list of functions the model may generate JSON inputs for.
1036
- * @deprecated
1037
- */
1038
- functions?: Array<ChatCompletionFunctions> | null;
1039
- metadata?: null | Metadata;
1040
- /**
1041
- * llama.cpp compatible extra params in request
1042
- */
1043
- chat_template_kwargs?: {} | null;
390
+ export type CapabilitySupport = {
391
+ supported: boolean;
1044
392
  };
1045
393
 
1046
394
  /**
1047
- * Represents a chat completion response returned by model, based on the provided input.
395
+ * Change user role request
1048
396
  */
1049
- export type CreateChatCompletionResponse = {
1050
- /**
1051
- * A unique identifier for the chat completion.
1052
- */
1053
- id: string;
1054
- /**
1055
- * A list of chat completion choices. Can be more than one if `n` is greater than 1.
1056
- */
1057
- choices: Array<ChatChoice>;
1058
- /**
1059
- * The Unix timestamp (in seconds) of when the chat completion was created.
1060
- */
1061
- created: number;
1062
- /**
1063
- * The model used for the chat completion.
1064
- */
1065
- model: string;
1066
- service_tier?: null | ServiceTier;
1067
- /**
1068
- * This fingerprint represents the backend configuration that the model runs with.
1069
- *
1070
- * Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism.
1071
- * @deprecated
1072
- */
1073
- system_fingerprint?: string | null;
397
+ export type ChangeRoleRequest = {
1074
398
  /**
1075
- * The object type, which is always `chat.completion`.
399
+ * Role to assign to the user
1076
400
  */
1077
- object: string;
1078
- usage?: null | CompletionUsage;
401
+ role: ResourceRole;
402
+ };
403
+
404
+ export type ContextLimits = {
405
+ max_input_tokens?: number | null;
406
+ max_output_tokens?: number | null;
1079
407
  };
1080
408
 
1081
409
  /**
1082
- * 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).
410
+ * Context management capability details.
1083
411
  */
1084
- export type CreateChatCompletionStreamResponse = {
1085
- /**
1086
- * A unique identifier for the chat completion. Each chunk has the same ID.
1087
- */
1088
- id: string;
412
+ export type ContextManagementCapability = {
413
+ clear_thinking_20251015?: null | CapabilitySupport;
414
+ clear_tool_uses_20250919?: null | CapabilitySupport;
415
+ compact_20260112?: null | CapabilitySupport;
416
+ };
417
+
418
+ export type CopyAliasRequest = {
419
+ alias: string;
420
+ };
421
+
422
+ /**
423
+ * Request for creating an app access request
424
+ */
425
+ export type CreateAccessRequest = {
1089
426
  /**
1090
- * A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the last chunk if you set `stream_options: {"include_usage": true}`.
427
+ * App client ID from Keycloak
1091
428
  */
1092
- choices: Array<ChatChoiceStream>;
429
+ app_client_id: string;
1093
430
  /**
1094
- * The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp.
431
+ * Flow type: "redirect" or "popup"
1095
432
  */
1096
- created: number;
433
+ flow_type: FlowType;
1097
434
  /**
1098
- * The model to generate the completion.
435
+ * Redirect URL for result notification (required for redirect flow)
1099
436
  */
1100
- model: string;
1101
- service_tier?: null | ServiceTier;
437
+ redirect_url?: string | null;
1102
438
  /**
1103
- * This fingerprint represents the backend configuration that the model runs with.
1104
- * Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism.
1105
- * @deprecated
439
+ * Role requested for the external app (scope_user_user or scope_user_power_user)
1106
440
  */
1107
- system_fingerprint?: string | null;
441
+ requested_role: UserScope;
1108
442
  /**
1109
- * The object type, which is always `chat.completion.chunk`.
443
+ * Resources requested (tools, etc.)
1110
444
  */
1111
- object: string;
1112
- usage?: null | CompletionUsage;
445
+ requested: RequestedResources;
1113
446
  };
1114
447
 
1115
- export type CreateEmbeddingRequest = {
1116
- /**
1117
- * ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list)
1118
- * API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models)
1119
- * for descriptions of them.
1120
- */
1121
- model: string;
448
+ export type CreateAccessRequestResponse = {
1122
449
  /**
1123
- * Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single
1124
- * request, pass an array of strings or array of token arrays. The input must not exceed the max
1125
- * input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and
1126
- * any array must be 2048 dimensions or less. [Example Python
1127
- * code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.
1128
- * In addition to the per-input token limit, all embedding models enforce a maximum of 300,000
1129
- * tokens summed across all inputs in a single request.
450
+ * Access request ID
1130
451
  */
1131
- input: EmbeddingInput;
1132
- encoding_format?: null | EncodingFormat;
452
+ id: string;
1133
453
  /**
1134
- * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.
1135
- * [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids).
454
+ * Status (always "draft")
1136
455
  */
1137
- user?: string | null;
456
+ status: AppAccessRequestStatus;
1138
457
  /**
1139
- * The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models.
458
+ * Review URL for user to approve/deny
1140
459
  */
1141
- dimensions?: number | null;
460
+ review_url: string;
1142
461
  };
1143
462
 
1144
- export type CreateEmbeddingResponse = {
1145
- object: string;
1146
- /**
1147
- * The name of the model used to generate the embedding.
1148
- */
1149
- model: string;
1150
- /**
1151
- * The list of embeddings generated by the model.
1152
- */
1153
- data: Array<Embedding>;
1154
- /**
1155
- * The usage information for the request.
1156
- */
1157
- usage: EmbeddingUsage;
463
+ /**
464
+ * Wrapper for creating auth configs with server_id in body instead of path
465
+ */
466
+ export type CreateAuthConfig = CreateMcpAuthConfigRequest & {
467
+ mcp_server_id: string;
1158
468
  };
1159
469
 
1160
470
  /**
@@ -1203,61 +513,6 @@ export type CreateTokenRequest = {
1203
513
  scope: TokenScope;
1204
514
  };
1205
515
 
1206
- export type CustomGrammarFormatParam = {
1207
- /**
1208
- * The grammar definition.
1209
- */
1210
- definition: string;
1211
- /**
1212
- * The syntax of the grammar definition. One of `lark` or `regex`.
1213
- */
1214
- syntax: GrammarSyntax;
1215
- };
1216
-
1217
- export type CustomName = {
1218
- /**
1219
- * The name of the custom tool to call.
1220
- */
1221
- name: string;
1222
- };
1223
-
1224
- export type CustomTool = {
1225
- /**
1226
- * The name of the custom tool to call.
1227
- */
1228
- name: string;
1229
- /**
1230
- * The input for the custom tool call generated by the model.
1231
- */
1232
- input: string;
1233
- };
1234
-
1235
- export type CustomToolChatCompletions = {
1236
- custom: CustomToolProperties;
1237
- };
1238
-
1239
- export type CustomToolProperties = {
1240
- /**
1241
- * The name of the custom tool, used to identify it in tool calls.
1242
- */
1243
- name: string;
1244
- /**
1245
- * Optional description of the custom tool, used to provide more context.
1246
- */
1247
- description?: string | null;
1248
- /**
1249
- * The input format for the custom tool. Default is unconstrained text.
1250
- */
1251
- format: CustomToolPropertiesFormat;
1252
- };
1253
-
1254
- export type CustomToolPropertiesFormat = {
1255
- type: 'text';
1256
- } | {
1257
- grammar: CustomGrammarFormatParam;
1258
- type: 'grammar';
1259
- };
1260
-
1261
516
  /**
1262
517
  * Dashboard user information from a validated dashboard session token
1263
518
  */
@@ -1285,8 +540,6 @@ export type DownloadRequest = {
1285
540
 
1286
541
  export type DownloadStatus = 'pending' | 'completed' | 'error';
1287
542
 
1288
- export type Duration = string;
1289
-
1290
543
  export type DynamicRegisterRequest = {
1291
544
  registration_endpoint: string;
1292
545
  redirect_uri: string;
@@ -1302,58 +555,12 @@ export type DynamicRegisterResponse = {
1302
555
  };
1303
556
 
1304
557
  /**
1305
- * Represents an embedding vector returned by embedding endpoint.
558
+ * Effort (reasoning_effort) capability details.
1306
559
  */
1307
- export type Embedding = {
1308
- /**
1309
- * The index of the embedding in the list of embeddings.
1310
- */
1311
- index: number;
1312
- /**
1313
- * The object type, which is always "embedding".
1314
- */
1315
- object: string;
1316
- /**
1317
- * The embedding vector, which is a list of floats. The length of vector
1318
- * depends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings).
1319
- */
1320
- embedding: Array<number>;
1321
- };
1322
-
1323
- export type EmbeddingInput = string | Array<string> | Array<number> | Array<Array<number>>;
1324
-
1325
- export type EmbeddingUsage = {
1326
- /**
1327
- * The number of tokens used by the prompt.
1328
- */
1329
- prompt_tokens: number;
1330
- /**
1331
- * The total number of tokens used by the request.
1332
- */
1333
- total_tokens: number;
1334
- };
1335
-
1336
- export type EncodingFormat = 'float' | 'base64';
1337
-
1338
- export type ErrorBody = {
1339
- /**
1340
- * Human-readable error message describing what went wrong
1341
- */
1342
- message: string;
1343
- /**
1344
- * Error type categorizing the kind of error that occurred
1345
- */
1346
- type: string;
1347
- /**
1348
- * Specific error code for programmatic error handling
1349
- */
1350
- code?: string | null;
1351
- /**
1352
- * Additional error parameters as key-value pairs (for validation errors)
1353
- */
1354
- param?: {
1355
- [key: string]: string;
1356
- } | null;
560
+ export type EffortCapability = {
561
+ high: CapabilitySupport;
562
+ low: CapabilitySupport;
563
+ max: CapabilitySupport;
1357
564
  };
1358
565
 
1359
566
  /**
@@ -1368,119 +575,48 @@ export type FetchModelsRequest = {
1368
575
  * API base URL (required - always needed to know where to fetch models from)
1369
576
  */
1370
577
  base_url: string;
1371
- };
1372
-
1373
- /**
1374
- * Response containing available models from provider
1375
- */
1376
- export type FetchModelsResponse = {
1377
- models: Array<string>;
1378
- };
1379
-
1380
- export type FileObject = {
1381
578
  /**
1382
- * The base64 encoded file data, used when passing the file to the model
1383
- * as a string.
579
+ * API format to use for fetching models (defaults to OpenAI Chat Completions)
1384
580
  */
1385
- file_data?: string | null;
581
+ api_format?: ApiFormat;
1386
582
  /**
1387
- * The ID of an uploaded file to use as input.
583
+ * Optional extra HTTP headers. `Authorization` / `x-api-key` are forbidden.
1388
584
  */
1389
- file_id?: string | null;
585
+ extra_headers?: unknown;
1390
586
  /**
1391
- * The name of the file, used when passing the file to the model as a
1392
- * string.
587
+ * Optional extra fields to merge into the request body
1393
588
  */
1394
- filename?: string | null;
589
+ extra_body?: unknown;
1395
590
  };
1396
591
 
1397
- export type FinishReason = 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'function_call';
1398
-
1399
- export type FlowType = 'redirect' | 'popup';
1400
-
1401
592
  /**
1402
- * The name and arguments of a function that should be called, as generated by the model.
593
+ * Returns model IDs only (not full metadata) to minimize information exposure
594
+ * the endpoint accepts an API key parameter. Full metadata is stored on create/update.
1403
595
  */
1404
- export type FunctionCall = {
1405
- /**
1406
- * The name of the function to call.
1407
- */
1408
- name: string;
1409
- /**
1410
- * The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function.
1411
- */
1412
- arguments: string;
1413
- };
1414
-
1415
- export type FunctionCallStream = {
1416
- /**
1417
- * The name of the function to call.
1418
- */
1419
- name?: string | null;
1420
- /**
1421
- * The arguments to call the function with, as generated by the model in JSON format.
1422
- * Note that the model does not always generate valid JSON, and may hallucinate
1423
- * parameters not defined by your function schema. Validate the arguments in your
1424
- * code before calling your function.
1425
- */
1426
- arguments?: string | null;
596
+ export type FetchModelsResponse = {
597
+ models: Array<string>;
1427
598
  };
1428
599
 
1429
- export type FunctionName = {
1430
- /**
1431
- * The name of the function to call.
1432
- */
1433
- name: string;
1434
- };
600
+ export type FlowType = 'redirect' | 'popup';
1435
601
 
1436
- export type FunctionObject = {
1437
- /**
1438
- * 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.
1439
- */
602
+ /**
603
+ * Gemini `Model` schema (see `openapi-gemini.json`).
604
+ */
605
+ export type GeminiModel = {
1440
606
  name: string;
1441
- /**
1442
- * A description of what the function does, used by the model to choose when and how to call the function.
1443
- */
607
+ version?: string;
608
+ displayName?: string | null;
1444
609
  description?: string | null;
1445
- /**
1446
- * The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
1447
- *
1448
- * Omitting `parameters` defines a function with an empty parameter list.
1449
- */
1450
- parameters?: unknown;
1451
- /**
1452
- * Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling).
1453
- */
1454
- strict?: boolean | null;
1455
- };
1456
-
1457
- export type FunctionType = 'function';
1458
-
1459
- export type GrammarSyntax = 'lark' | 'regex';
1460
-
1461
- export type ImageDetail = 'auto' | 'low' | 'high';
1462
-
1463
- export type ImageUrl = {
1464
- /**
1465
- * Either a URL of the image or the base64 encoded image data.
1466
- */
1467
- url: string;
1468
- detail?: null | ImageDetail;
1469
- };
1470
-
1471
- export type InputAudio = {
1472
- /**
1473
- * Base64 encoded audio data.
1474
- */
1475
- data: string;
1476
- /**
1477
- * The format of the encoded audio data. Currently supports "wav" and "mp3".
1478
- */
1479
- format: InputAudioFormat;
610
+ inputTokenLimit?: number | null;
611
+ outputTokenLimit?: number | null;
612
+ supportedGenerationMethods?: Array<string>;
613
+ temperature?: number | null;
614
+ maxTemperature?: number | null;
615
+ topP?: number | null;
616
+ topK?: number | null;
617
+ thinking?: boolean | null;
1480
618
  };
1481
619
 
1482
- export type InputAudioFormat = 'wav' | 'mp3';
1483
-
1484
620
  export type JsonVec = Array<string>;
1485
621
 
1486
622
  export type ListMcpServersResponse = {
@@ -1491,11 +627,6 @@ export type ListMcpsResponse = {
1491
627
  mcps: Array<Mcp>;
1492
628
  };
1493
629
 
1494
- export type ListModelResponse = {
1495
- object: string;
1496
- data: Array<Model>;
1497
- };
1498
-
1499
630
  /**
1500
631
  * List users query parameters. Intentionally omits sort fields (unlike PaginationSortParams)
1501
632
  * because user listing is fetched from the auth service which handles its own ordering.
@@ -1786,22 +917,6 @@ export type McpServerReviewInfo = {
1786
917
  instances: Array<Mcp>;
1787
918
  };
1788
919
 
1789
- export type Message = {
1790
- role: string;
1791
- content: string;
1792
- images?: Array<string> | null;
1793
- };
1794
-
1795
- /**
1796
- * Set of 16 key-value pairs that can be attached to an object.
1797
- * This can be useful for storing additional information about the
1798
- * object in a structured format, and querying for objects via API
1799
- * or the dashboard. Keys are strings with a maximum length of 64
1800
- * characters. Values are strings with a maximum length of 512
1801
- * characters.
1802
- */
1803
- export type Metadata = unknown;
1804
-
1805
920
  /**
1806
921
  * Describes an OpenAI model offering that can be used with the API.
1807
922
  */
@@ -1857,15 +972,6 @@ export type ModelCapabilities = {
1857
972
  tools: ToolCapabilities;
1858
973
  };
1859
974
 
1860
- export type ModelDetails = {
1861
- parent_model?: string | null;
1862
- format: string;
1863
- family: string;
1864
- families?: Array<string> | null;
1865
- parameter_size: string;
1866
- quantization_level: string;
1867
- };
1868
-
1869
975
  /**
1870
976
  * Model metadata for API responses
1871
977
  */
@@ -1876,10 +982,6 @@ export type ModelMetadata = {
1876
982
  chat_template?: string | null;
1877
983
  };
1878
984
 
1879
- export type ModelsResponse = {
1880
- models: Array<OllamaModel>;
1881
- };
1882
-
1883
985
  /**
1884
986
  * Request for creating a new download request
1885
987
  */
@@ -1955,57 +1057,6 @@ export type OAuthTokenResponse = {
1955
1057
  updated_at: string;
1956
1058
  };
1957
1059
 
1958
- export type OllamaError = {
1959
- error: string;
1960
- };
1961
-
1962
- export type OllamaModel = {
1963
- model: string;
1964
- modified_at: number;
1965
- size: number;
1966
- digest: string;
1967
- details: ModelDetails;
1968
- };
1969
-
1970
- export type OpenAiApiError = {
1971
- /**
1972
- * Error details following OpenAI API error format
1973
- */
1974
- error: ErrorBody;
1975
- };
1976
-
1977
- export type Options = {
1978
- num_keep?: number | null;
1979
- seed?: number | null;
1980
- num_predict?: number | null;
1981
- top_k?: number | null;
1982
- top_p?: number | null;
1983
- tfs_z?: number | null;
1984
- typical_p?: number | null;
1985
- repeat_last_n?: number | null;
1986
- temperature?: number | null;
1987
- repeat_penalty?: number | null;
1988
- presence_penalty?: number | null;
1989
- frequency_penalty?: number | null;
1990
- mirostat?: number | null;
1991
- mirostat_tau?: number | null;
1992
- mirostat_eta?: number | null;
1993
- penalize_newline?: boolean | null;
1994
- stop?: Array<string> | null;
1995
- numa?: boolean | null;
1996
- num_ctx?: number | null;
1997
- num_batch?: number | null;
1998
- num_gpu?: number | null;
1999
- main_gpu?: number | null;
2000
- low_vram?: boolean | null;
2001
- f16_kv?: boolean | null;
2002
- logits_all?: boolean | null;
2003
- vocab_only?: boolean | null;
2004
- use_mmap?: boolean | null;
2005
- use_mlock?: boolean | null;
2006
- num_thread?: number | null;
2007
- };
2008
-
2009
1060
  /**
2010
1061
  * Paginated list of all model aliases (user, model, and API)
2011
1062
  */
@@ -2107,38 +1158,6 @@ export type PingResponse = {
2107
1158
  message: string;
2108
1159
  };
2109
1160
 
2110
- /**
2111
- * The type of the predicted content you want to provide. This type is
2112
- * currently always `content`.
2113
- */
2114
- export type PredictionContent = {
2115
- /**
2116
- * The type of the predicted content you want to provide. This type is
2117
- * currently always `content`.
2118
- */
2119
- content: PredictionContentContent;
2120
- type: 'content';
2121
- };
2122
-
2123
- /**
2124
- * The content that should be matched when generating a model response. If generated tokens would match this content, the entire model response can be returned much more quickly.
2125
- */
2126
- export type PredictionContentContent = string | Array<ChatCompletionRequestMessageContentPartText>;
2127
-
2128
- /**
2129
- * Breakdown of tokens used in a completion.
2130
- */
2131
- export type PromptTokensDetails = {
2132
- /**
2133
- * Audio input tokens present in the prompt.
2134
- */
2135
- audio_tokens?: number | null;
2136
- /**
2137
- * Cached tokens present in the prompt.
2138
- */
2139
- cached_tokens?: number | null;
2140
- };
2141
-
2142
1161
  /**
2143
1162
  * Response for queue status operations
2144
1163
  */
@@ -2149,8 +1168,6 @@ export type QueueStatusResponse = {
2149
1168
  status: string;
2150
1169
  };
2151
1170
 
2152
- export type ReasoningEffort = 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
2153
-
2154
1171
  export type RedirectResponse = {
2155
1172
  /**
2156
1173
  * The URL to redirect to (OAuth authorization URL or application home page)
@@ -2221,53 +1238,6 @@ export type RequestedResourcesV1 = {
2221
1238
 
2222
1239
  export type ResourceRole = 'resource_anonymous' | 'resource_guest' | 'resource_user' | 'resource_power_user' | 'resource_manager' | 'resource_admin';
2223
1240
 
2224
- export type ResponseFormat = {
2225
- type: 'text';
2226
- } | {
2227
- type: 'json_object';
2228
- } | {
2229
- json_schema: ResponseFormatJsonSchema;
2230
- type: 'json_schema';
2231
- };
2232
-
2233
- export type ResponseFormatJsonSchema = {
2234
- /**
2235
- * A description of what the response format is for, used by the model to determine how to respond in the format.
2236
- */
2237
- description?: string | null;
2238
- /**
2239
- * 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.
2240
- */
2241
- name: string;
2242
- /**
2243
- * The schema for the response format, described as a JSON Schema object.
2244
- * Learn how to build JSON schemas [here](https://json-schema.org/).
2245
- */
2246
- schema?: unknown;
2247
- /**
2248
- * Whether to enable strict schema adherence when generating the output.
2249
- * If set to true, the model will always follow the exact schema defined
2250
- * in the `schema` field. Only a subset of JSON Schema is supported when
2251
- * `strict` is `true`. To learn more, read the [Structured Outputs
2252
- * guide](https://platform.openai.com/docs/guides/structured-outputs).
2253
- */
2254
- strict?: boolean | null;
2255
- };
2256
-
2257
- /**
2258
- * Output types that you would like the model to generate for this request.
2259
- *
2260
- * Most models are capable of generating text, which is the default: `["text"]`
2261
- *
2262
- * The `gpt-4o-audio-preview` model can also be used to [generate
2263
- * audio](https://platform.openai.com/docs/guides/audio). To request that this model generate both text and audio responses, you can use: `["text", "audio"]`
2264
- */
2265
- export type ResponseModalities = 'text' | 'audio';
2266
-
2267
- export type Role = 'system' | 'user' | 'assistant' | 'tool' | 'function';
2268
-
2269
- export type ServiceTier = 'auto' | 'default' | 'flex' | 'scale' | 'priority';
2270
-
2271
1241
  export type SettingInfo = {
2272
1242
  key: string;
2273
1243
  current_value: unknown;
@@ -2315,22 +1285,6 @@ export type SetupResponse = {
2315
1285
  status: AppStatus;
2316
1286
  };
2317
1287
 
2318
- export type ShowRequest = {
2319
- name: string;
2320
- };
2321
-
2322
- export type ShowResponse = {
2323
- details: ModelDetails;
2324
- license: string;
2325
- model_info: {};
2326
- modelfile: string;
2327
- modified_at: number;
2328
- parameters: string;
2329
- template: string;
2330
- };
2331
-
2332
- export type StopConfiguration = string | Array<string>;
2333
-
2334
1288
  export type TenantListItem = {
2335
1289
  client_id: string;
2336
1290
  name: string;
@@ -2381,6 +1335,18 @@ export type TestPromptRequest = {
2381
1335
  * Test prompt (max 30 characters for cost control)
2382
1336
  */
2383
1337
  prompt: string;
1338
+ /**
1339
+ * API format to use for the test request (defaults to OpenAI Chat Completions)
1340
+ */
1341
+ api_format?: ApiFormat;
1342
+ /**
1343
+ * Optional extra HTTP headers. `Authorization` / `x-api-key` are forbidden.
1344
+ */
1345
+ extra_headers?: unknown;
1346
+ /**
1347
+ * Optional extra fields to merge into the request body
1348
+ */
1349
+ extra_body?: unknown;
2384
1350
  };
2385
1351
 
2386
1352
  /**
@@ -2392,6 +1358,22 @@ export type TestPromptResponse = {
2392
1358
  error?: string | null;
2393
1359
  };
2394
1360
 
1361
+ /**
1362
+ * Thinking capability and supported type configurations.
1363
+ */
1364
+ export type ThinkingCapability = {
1365
+ supported: boolean;
1366
+ types: ThinkingTypes;
1367
+ };
1368
+
1369
+ /**
1370
+ * Supported thinking type configurations.
1371
+ */
1372
+ export type ThinkingTypes = {
1373
+ adaptive: CapabilitySupport;
1374
+ enabled: CapabilitySupport;
1375
+ };
1376
+
2395
1377
  export type TokenCreated = {
2396
1378
  /**
2397
1379
  * API token with bodhiapp_ prefix for programmatic access
@@ -2426,25 +1408,6 @@ export type ToolCapabilities = {
2426
1408
  structured_output?: boolean | null;
2427
1409
  };
2428
1410
 
2429
- export type ToolChoiceAllowedMode = 'auto' | 'required';
2430
-
2431
- export type ToolChoiceOptions = 'none' | 'auto' | 'required';
2432
-
2433
- export type TopLogprobs = {
2434
- /**
2435
- * The token.
2436
- */
2437
- token: string;
2438
- /**
2439
- * The log probability of this token.
2440
- */
2441
- logprob: number;
2442
- /**
2443
- * A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token.
2444
- */
2445
- bytes?: Array<number> | null;
2446
- };
2447
-
2448
1411
  /**
2449
1412
  * Request to update a setting value
2450
1413
  */
@@ -2466,25 +1429,6 @@ export type UpdateTokenRequest = {
2466
1429
  status: TokenStatus;
2467
1430
  };
2468
1431
 
2469
- export type UrlCitation = {
2470
- /**
2471
- * The index of the last character of the URL citation in the message.
2472
- */
2473
- end_index: number;
2474
- /**
2475
- * The index of the first character of the URL citation in the message.
2476
- */
2477
- start_index: number;
2478
- /**
2479
- * The title of the web resource.
2480
- */
2481
- title: string;
2482
- /**
2483
- * The URL of the web resource.
2484
- */
2485
- url: string;
2486
- };
2487
-
2488
1432
  /**
2489
1433
  * User access request output type for API responses
2490
1434
  */
@@ -2618,176 +1562,6 @@ export type UserResponse = {
2618
1562
 
2619
1563
  export type UserScope = 'scope_user_user' | 'scope_user_power_user';
2620
1564
 
2621
- /**
2622
- * 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`.
2623
- */
2624
- export type Verbosity = 'low' | 'medium' | 'high';
2625
-
2626
- /**
2627
- * The amount of context window space to use for the search.
2628
- */
2629
- export type WebSearchContextSize = 'low' | 'medium' | 'high';
2630
-
2631
- /**
2632
- * Approximate location parameters for the search.
2633
- */
2634
- export type WebSearchLocation = {
2635
- /**
2636
- * The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user, e.g. `US`.
2637
- */
2638
- country?: string | null;
2639
- /**
2640
- * Free text input for the region of the user, e.g. `California`.
2641
- */
2642
- region?: string | null;
2643
- /**
2644
- * Free text input for the city of the user, e.g. `San Francisco`.
2645
- */
2646
- city?: string | null;
2647
- /**
2648
- * The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g. `America/Los_Angeles`.
2649
- */
2650
- timezone?: string | null;
2651
- };
2652
-
2653
- /**
2654
- * Options for the web search tool.
2655
- */
2656
- export type WebSearchOptions = {
2657
- search_context_size?: null | WebSearchContextSize;
2658
- user_location?: null | WebSearchUserLocation;
2659
- };
2660
-
2661
- export type WebSearchUserLocation = {
2662
- type: WebSearchUserLocationType;
2663
- approximate: WebSearchLocation;
2664
- };
2665
-
2666
- export type WebSearchUserLocationType = 'approximate';
2667
-
2668
- export type ChatOllamaModelData = {
2669
- /**
2670
- * Chat request in Ollama format
2671
- */
2672
- body: ChatRequest;
2673
- path?: never;
2674
- query?: never;
2675
- url: '/api/chat';
2676
- };
2677
-
2678
- export type ChatOllamaModelErrors = {
2679
- /**
2680
- * Invalid request parameters
2681
- */
2682
- 400: OpenAiApiError;
2683
- /**
2684
- * Not authenticated
2685
- */
2686
- 401: OpenAiApiError;
2687
- /**
2688
- * Insufficient permissions
2689
- */
2690
- 403: OpenAiApiError;
2691
- /**
2692
- * Model not found
2693
- */
2694
- 404: OllamaError;
2695
- /**
2696
- * Internal server error
2697
- */
2698
- 500: OpenAiApiError;
2699
- };
2700
-
2701
- export type ChatOllamaModelError = ChatOllamaModelErrors[keyof ChatOllamaModelErrors];
2702
-
2703
- export type ChatOllamaModelResponses = {
2704
- /**
2705
- * Chat response
2706
- */
2707
- 200: unknown;
2708
- };
2709
-
2710
- export type ShowOllamaModelData = {
2711
- /**
2712
- * Model name to get details for
2713
- */
2714
- body: ShowRequest;
2715
- path?: never;
2716
- query?: never;
2717
- url: '/api/show';
2718
- };
2719
-
2720
- export type ShowOllamaModelErrors = {
2721
- /**
2722
- * Invalid request parameters
2723
- */
2724
- 400: OpenAiApiError;
2725
- /**
2726
- * Not authenticated
2727
- */
2728
- 401: OpenAiApiError;
2729
- /**
2730
- * Insufficient permissions
2731
- */
2732
- 403: OpenAiApiError;
2733
- /**
2734
- * Model not found
2735
- */
2736
- 404: OllamaError;
2737
- /**
2738
- * Internal server error
2739
- */
2740
- 500: OpenAiApiError;
2741
- };
2742
-
2743
- export type ShowOllamaModelError = ShowOllamaModelErrors[keyof ShowOllamaModelErrors];
2744
-
2745
- export type ShowOllamaModelResponses = {
2746
- /**
2747
- * Model details
2748
- */
2749
- 200: ShowResponse;
2750
- };
2751
-
2752
- export type ShowOllamaModelResponse = ShowOllamaModelResponses[keyof ShowOllamaModelResponses];
2753
-
2754
- export type ListOllamaModelsData = {
2755
- body?: never;
2756
- path?: never;
2757
- query?: never;
2758
- url: '/api/tags';
2759
- };
2760
-
2761
- export type ListOllamaModelsErrors = {
2762
- /**
2763
- * Invalid request parameters
2764
- */
2765
- 400: OpenAiApiError;
2766
- /**
2767
- * Not authenticated
2768
- */
2769
- 401: OpenAiApiError;
2770
- /**
2771
- * Insufficient permissions
2772
- */
2773
- 403: OpenAiApiError;
2774
- /**
2775
- * Internal server error
2776
- */
2777
- 500: OpenAiApiError;
2778
- };
2779
-
2780
- export type ListOllamaModelsError = ListOllamaModelsErrors[keyof ListOllamaModelsErrors];
2781
-
2782
- export type ListOllamaModelsResponses = {
2783
- /**
2784
- * List of available models
2785
- */
2786
- 200: ModelsResponse;
2787
- };
2788
-
2789
- export type ListOllamaModelsResponse = ListOllamaModelsResponses[keyof ListOllamaModelsResponses];
2790
-
2791
1565
  export type ListAllAccessRequestsData = {
2792
1566
  body?: never;
2793
1567
  path?: never;
@@ -2816,19 +1590,19 @@ export type ListAllAccessRequestsErrors = {
2816
1590
  /**
2817
1591
  * Invalid request parameters
2818
1592
  */
2819
- 400: OpenAiApiError;
1593
+ 400: BodhiApiError;
2820
1594
  /**
2821
1595
  * Not authenticated
2822
1596
  */
2823
- 401: OpenAiApiError;
1597
+ 401: BodhiApiError;
2824
1598
  /**
2825
1599
  * Insufficient permissions
2826
1600
  */
2827
- 403: OpenAiApiError;
1601
+ 403: BodhiApiError;
2828
1602
  /**
2829
1603
  * Internal server error
2830
1604
  */
2831
- 500: OpenAiApiError;
1605
+ 500: BodhiApiError;
2832
1606
  };
2833
1607
 
2834
1608
  export type ListAllAccessRequestsError = ListAllAccessRequestsErrors[keyof ListAllAccessRequestsErrors];
@@ -2870,19 +1644,19 @@ export type ListPendingAccessRequestsErrors = {
2870
1644
  /**
2871
1645
  * Invalid request parameters
2872
1646
  */
2873
- 400: OpenAiApiError;
1647
+ 400: BodhiApiError;
2874
1648
  /**
2875
1649
  * Not authenticated
2876
1650
  */
2877
- 401: OpenAiApiError;
1651
+ 401: BodhiApiError;
2878
1652
  /**
2879
1653
  * Insufficient permissions
2880
1654
  */
2881
- 403: OpenAiApiError;
1655
+ 403: BodhiApiError;
2882
1656
  /**
2883
1657
  * Internal server error
2884
1658
  */
2885
- 500: OpenAiApiError;
1659
+ 500: BodhiApiError;
2886
1660
  };
2887
1661
 
2888
1662
  export type ListPendingAccessRequestsError = ListPendingAccessRequestsErrors[keyof ListPendingAccessRequestsErrors];
@@ -2915,23 +1689,23 @@ export type ApproveAccessRequestErrors = {
2915
1689
  /**
2916
1690
  * Invalid request parameters
2917
1691
  */
2918
- 400: OpenAiApiError;
1692
+ 400: BodhiApiError;
2919
1693
  /**
2920
1694
  * Not authenticated
2921
1695
  */
2922
- 401: OpenAiApiError;
1696
+ 401: BodhiApiError;
2923
1697
  /**
2924
1698
  * Insufficient permissions
2925
1699
  */
2926
- 403: OpenAiApiError;
1700
+ 403: BodhiApiError;
2927
1701
  /**
2928
1702
  * Request not found
2929
1703
  */
2930
- 404: OpenAiApiError;
1704
+ 404: BodhiApiError;
2931
1705
  /**
2932
1706
  * Internal server error
2933
1707
  */
2934
- 500: OpenAiApiError;
1708
+ 500: BodhiApiError;
2935
1709
  };
2936
1710
 
2937
1711
  export type ApproveAccessRequestError = ApproveAccessRequestErrors[keyof ApproveAccessRequestErrors];
@@ -2962,27 +1736,27 @@ export type ApproveAppsAccessRequestErrors = {
2962
1736
  /**
2963
1737
  * Invalid request parameters
2964
1738
  */
2965
- 400: OpenAiApiError;
1739
+ 400: BodhiApiError;
2966
1740
  /**
2967
1741
  * Not authenticated
2968
1742
  */
2969
- 401: OpenAiApiError;
1743
+ 401: BodhiApiError;
2970
1744
  /**
2971
1745
  * Insufficient permissions
2972
1746
  */
2973
- 403: OpenAiApiError;
1747
+ 403: BodhiApiError;
2974
1748
  /**
2975
1749
  * Not found
2976
1750
  */
2977
- 404: OpenAiApiError;
1751
+ 404: BodhiApiError;
2978
1752
  /**
2979
1753
  * Already processed
2980
1754
  */
2981
- 409: OpenAiApiError;
1755
+ 409: BodhiApiError;
2982
1756
  /**
2983
1757
  * Internal server error
2984
1758
  */
2985
- 500: OpenAiApiError;
1759
+ 500: BodhiApiError;
2986
1760
  };
2987
1761
 
2988
1762
  export type ApproveAppsAccessRequestError = ApproveAppsAccessRequestErrors[keyof ApproveAppsAccessRequestErrors];
@@ -3012,27 +1786,27 @@ export type DenyAccessRequestErrors = {
3012
1786
  /**
3013
1787
  * Invalid request parameters
3014
1788
  */
3015
- 400: OpenAiApiError;
1789
+ 400: BodhiApiError;
3016
1790
  /**
3017
1791
  * Not authenticated
3018
1792
  */
3019
- 401: OpenAiApiError;
1793
+ 401: BodhiApiError;
3020
1794
  /**
3021
1795
  * Insufficient permissions
3022
1796
  */
3023
- 403: OpenAiApiError;
1797
+ 403: BodhiApiError;
3024
1798
  /**
3025
1799
  * Not found
3026
1800
  */
3027
- 404: OpenAiApiError;
1801
+ 404: BodhiApiError;
3028
1802
  /**
3029
1803
  * Already processed
3030
1804
  */
3031
- 409: OpenAiApiError;
1805
+ 409: BodhiApiError;
3032
1806
  /**
3033
1807
  * Internal server error
3034
1808
  */
3035
- 500: OpenAiApiError;
1809
+ 500: BodhiApiError;
3036
1810
  };
3037
1811
 
3038
1812
  export type DenyAccessRequestError = DenyAccessRequestErrors[keyof DenyAccessRequestErrors];
@@ -3062,23 +1836,23 @@ export type RejectAccessRequestErrors = {
3062
1836
  /**
3063
1837
  * Invalid request parameters
3064
1838
  */
3065
- 400: OpenAiApiError;
1839
+ 400: BodhiApiError;
3066
1840
  /**
3067
1841
  * Not authenticated
3068
1842
  */
3069
- 401: OpenAiApiError;
1843
+ 401: BodhiApiError;
3070
1844
  /**
3071
1845
  * Insufficient permissions
3072
1846
  */
3073
- 403: OpenAiApiError;
1847
+ 403: BodhiApiError;
3074
1848
  /**
3075
1849
  * Request not found
3076
1850
  */
3077
- 404: OpenAiApiError;
1851
+ 404: BodhiApiError;
3078
1852
  /**
3079
1853
  * Internal server error
3080
1854
  */
3081
- 500: OpenAiApiError;
1855
+ 500: BodhiApiError;
3082
1856
  };
3083
1857
 
3084
1858
  export type RejectAccessRequestError = RejectAccessRequestErrors[keyof RejectAccessRequestErrors];
@@ -3106,27 +1880,27 @@ export type GetAccessRequestReviewErrors = {
3106
1880
  /**
3107
1881
  * Invalid request parameters
3108
1882
  */
3109
- 400: OpenAiApiError;
1883
+ 400: BodhiApiError;
3110
1884
  /**
3111
1885
  * Not authenticated
3112
1886
  */
3113
- 401: OpenAiApiError;
1887
+ 401: BodhiApiError;
3114
1888
  /**
3115
1889
  * Insufficient permissions
3116
1890
  */
3117
- 403: OpenAiApiError;
1891
+ 403: BodhiApiError;
3118
1892
  /**
3119
1893
  * Not found
3120
1894
  */
3121
- 404: OpenAiApiError;
1895
+ 404: BodhiApiError;
3122
1896
  /**
3123
1897
  * Request expired
3124
1898
  */
3125
- 410: OpenAiApiError;
1899
+ 410: BodhiApiError;
3126
1900
  /**
3127
1901
  * Internal server error
3128
1902
  */
3129
- 500: OpenAiApiError;
1903
+ 500: BodhiApiError;
3130
1904
  };
3131
1905
 
3132
1906
  export type GetAccessRequestReviewError = GetAccessRequestReviewErrors[keyof GetAccessRequestReviewErrors];
@@ -3161,23 +1935,23 @@ export type GetAccessRequestStatusErrors = {
3161
1935
  /**
3162
1936
  * Invalid request parameters
3163
1937
  */
3164
- 400: OpenAiApiError;
1938
+ 400: BodhiApiError;
3165
1939
  /**
3166
1940
  * Not authenticated
3167
1941
  */
3168
- 401: OpenAiApiError;
1942
+ 401: BodhiApiError;
3169
1943
  /**
3170
1944
  * Insufficient permissions
3171
1945
  */
3172
- 403: OpenAiApiError;
1946
+ 403: BodhiApiError;
3173
1947
  /**
3174
1948
  * Not found or app_client_id mismatch
3175
1949
  */
3176
- 404: OpenAiApiError;
1950
+ 404: BodhiApiError;
3177
1951
  /**
3178
1952
  * Internal server error
3179
1953
  */
3180
- 500: OpenAiApiError;
1954
+ 500: BodhiApiError;
3181
1955
  };
3182
1956
 
3183
1957
  export type GetAccessRequestStatusError = GetAccessRequestStatusErrors[keyof GetAccessRequestStatusErrors];
@@ -3202,19 +1976,19 @@ export type AppsListMcpsErrors = {
3202
1976
  /**
3203
1977
  * Invalid request parameters
3204
1978
  */
3205
- 400: OpenAiApiError;
1979
+ 400: BodhiApiError;
3206
1980
  /**
3207
1981
  * Not authenticated
3208
1982
  */
3209
- 401: OpenAiApiError;
1983
+ 401: BodhiApiError;
3210
1984
  /**
3211
1985
  * Insufficient permissions
3212
1986
  */
3213
- 403: OpenAiApiError;
1987
+ 403: BodhiApiError;
3214
1988
  /**
3215
1989
  * Internal server error
3216
1990
  */
3217
- 500: OpenAiApiError;
1991
+ 500: BodhiApiError;
3218
1992
  };
3219
1993
 
3220
1994
  export type AppsListMcpsError = AppsListMcpsErrors[keyof AppsListMcpsErrors];
@@ -3244,15 +2018,15 @@ export type AppsGetMcpErrors = {
3244
2018
  /**
3245
2019
  * Invalid request parameters
3246
2020
  */
3247
- 400: OpenAiApiError;
2021
+ 400: BodhiApiError;
3248
2022
  /**
3249
2023
  * Not authenticated
3250
2024
  */
3251
- 401: OpenAiApiError;
2025
+ 401: BodhiApiError;
3252
2026
  /**
3253
2027
  * Insufficient permissions
3254
2028
  */
3255
- 403: OpenAiApiError;
2029
+ 403: BodhiApiError;
3256
2030
  /**
3257
2031
  * MCP not found
3258
2032
  */
@@ -3260,7 +2034,7 @@ export type AppsGetMcpErrors = {
3260
2034
  /**
3261
2035
  * Internal server error
3262
2036
  */
3263
- 500: OpenAiApiError;
2037
+ 500: BodhiApiError;
3264
2038
  };
3265
2039
 
3266
2040
  export type AppsGetMcpError = AppsGetMcpErrors[keyof AppsGetMcpErrors];
@@ -3290,19 +2064,19 @@ export type McpProxyErrors = {
3290
2064
  /**
3291
2065
  * Invalid request parameters
3292
2066
  */
3293
- 400: OpenAiApiError;
2067
+ 400: BodhiApiError;
3294
2068
  /**
3295
2069
  * Not authenticated
3296
2070
  */
3297
- 401: OpenAiApiError;
2071
+ 401: BodhiApiError;
3298
2072
  /**
3299
2073
  * Insufficient permissions
3300
2074
  */
3301
- 403: OpenAiApiError;
2075
+ 403: BodhiApiError;
3302
2076
  /**
3303
2077
  * Internal server error
3304
2078
  */
3305
- 500: OpenAiApiError;
2079
+ 500: BodhiApiError;
3306
2080
  };
3307
2081
 
3308
2082
  export type McpProxyError = McpProxyErrors[keyof McpProxyErrors];
@@ -3328,23 +2102,23 @@ export type CreateAccessRequestErrors = {
3328
2102
  /**
3329
2103
  * Invalid request parameters
3330
2104
  */
3331
- 400: OpenAiApiError;
2105
+ 400: BodhiApiError;
3332
2106
  /**
3333
2107
  * Not authenticated
3334
2108
  */
3335
- 401: OpenAiApiError;
2109
+ 401: BodhiApiError;
3336
2110
  /**
3337
2111
  * Insufficient permissions
3338
2112
  */
3339
- 403: OpenAiApiError;
2113
+ 403: BodhiApiError;
3340
2114
  /**
3341
2115
  * App client not found
3342
2116
  */
3343
- 404: OpenAiApiError;
2117
+ 404: BodhiApiError;
3344
2118
  /**
3345
2119
  * Internal server error
3346
2120
  */
3347
- 500: OpenAiApiError;
2121
+ 500: BodhiApiError;
3348
2122
  };
3349
2123
 
3350
2124
  export type CreateAccessRequestError = CreateAccessRequestErrors[keyof CreateAccessRequestErrors];
@@ -3372,23 +2146,23 @@ export type CompleteOAuthFlowErrors = {
3372
2146
  /**
3373
2147
  * Invalid request parameters
3374
2148
  */
3375
- 400: OpenAiApiError;
2149
+ 400: BodhiApiError;
3376
2150
  /**
3377
2151
  * Not authenticated
3378
2152
  */
3379
- 401: OpenAiApiError;
2153
+ 401: BodhiApiError;
3380
2154
  /**
3381
2155
  * Insufficient permissions
3382
2156
  */
3383
- 403: OpenAiApiError;
2157
+ 403: BodhiApiError;
3384
2158
  /**
3385
2159
  * OAuth error, invalid request parameters, or state mismatch
3386
2160
  */
3387
- 422: OpenAiApiError;
2161
+ 422: BodhiApiError;
3388
2162
  /**
3389
2163
  * Internal server error
3390
2164
  */
3391
- 500: OpenAiApiError;
2165
+ 500: BodhiApiError;
3392
2166
  };
3393
2167
 
3394
2168
  export type CompleteOAuthFlowError = CompleteOAuthFlowErrors[keyof CompleteOAuthFlowErrors];
@@ -3416,19 +2190,19 @@ export type CompleteDashboardOAuthFlowErrors = {
3416
2190
  /**
3417
2191
  * Invalid request parameters
3418
2192
  */
3419
- 400: OpenAiApiError;
2193
+ 400: BodhiApiError;
3420
2194
  /**
3421
2195
  * Not authenticated
3422
2196
  */
3423
- 401: OpenAiApiError;
2197
+ 401: BodhiApiError;
3424
2198
  /**
3425
2199
  * Insufficient permissions
3426
2200
  */
3427
- 403: OpenAiApiError;
2201
+ 403: BodhiApiError;
3428
2202
  /**
3429
2203
  * Internal server error
3430
2204
  */
3431
- 500: OpenAiApiError;
2205
+ 500: BodhiApiError;
3432
2206
  };
3433
2207
 
3434
2208
  export type CompleteDashboardOAuthFlowError = CompleteDashboardOAuthFlowErrors[keyof CompleteDashboardOAuthFlowErrors];
@@ -3453,19 +2227,19 @@ export type InitiateDashboardOAuthFlowErrors = {
3453
2227
  /**
3454
2228
  * Invalid request parameters
3455
2229
  */
3456
- 400: OpenAiApiError;
2230
+ 400: BodhiApiError;
3457
2231
  /**
3458
2232
  * Not authenticated
3459
2233
  */
3460
- 401: OpenAiApiError;
2234
+ 401: BodhiApiError;
3461
2235
  /**
3462
2236
  * Insufficient permissions
3463
2237
  */
3464
- 403: OpenAiApiError;
2238
+ 403: BodhiApiError;
3465
2239
  /**
3466
2240
  * Internal server error
3467
2241
  */
3468
- 500: OpenAiApiError;
2242
+ 500: BodhiApiError;
3469
2243
  };
3470
2244
 
3471
2245
  export type InitiateDashboardOAuthFlowError = InitiateDashboardOAuthFlowErrors[keyof InitiateDashboardOAuthFlowErrors];
@@ -3497,19 +2271,19 @@ export type InitiateOAuthFlowErrors = {
3497
2271
  /**
3498
2272
  * Invalid request parameters
3499
2273
  */
3500
- 400: OpenAiApiError;
2274
+ 400: BodhiApiError;
3501
2275
  /**
3502
2276
  * Not authenticated
3503
2277
  */
3504
- 401: OpenAiApiError;
2278
+ 401: BodhiApiError;
3505
2279
  /**
3506
2280
  * Insufficient permissions
3507
2281
  */
3508
- 403: OpenAiApiError;
2282
+ 403: BodhiApiError;
3509
2283
  /**
3510
2284
  * Internal server error
3511
2285
  */
3512
- 500: OpenAiApiError;
2286
+ 500: BodhiApiError;
3513
2287
  };
3514
2288
 
3515
2289
  export type InitiateOAuthFlowError = InitiateOAuthFlowErrors[keyof InitiateOAuthFlowErrors];
@@ -3538,11 +2312,11 @@ export type GetAppInfoErrors = {
3538
2312
  /**
3539
2313
  * Invalid request parameters
3540
2314
  */
3541
- 400: OpenAiApiError;
2315
+ 400: BodhiApiError;
3542
2316
  /**
3543
2317
  * Internal server error
3544
2318
  */
3545
- 500: OpenAiApiError;
2319
+ 500: BodhiApiError;
3546
2320
  };
3547
2321
 
3548
2322
  export type GetAppInfoError = GetAppInfoErrors[keyof GetAppInfoErrors];
@@ -3567,19 +2341,19 @@ export type LogoutUserErrors = {
3567
2341
  /**
3568
2342
  * Invalid request parameters
3569
2343
  */
3570
- 400: OpenAiApiError;
2344
+ 400: BodhiApiError;
3571
2345
  /**
3572
2346
  * Not authenticated
3573
2347
  */
3574
- 401: OpenAiApiError;
2348
+ 401: BodhiApiError;
3575
2349
  /**
3576
2350
  * Insufficient permissions
3577
2351
  */
3578
- 403: OpenAiApiError;
2352
+ 403: BodhiApiError;
3579
2353
  /**
3580
2354
  * Internal server error
3581
2355
  */
3582
- 500: OpenAiApiError;
2356
+ 500: BodhiApiError;
3583
2357
  };
3584
2358
 
3585
2359
  export type LogoutUserError = LogoutUserErrors[keyof LogoutUserErrors];
@@ -3604,19 +2378,19 @@ export type ListMcpsErrors = {
3604
2378
  /**
3605
2379
  * Invalid request parameters
3606
2380
  */
3607
- 400: OpenAiApiError;
2381
+ 400: BodhiApiError;
3608
2382
  /**
3609
2383
  * Not authenticated
3610
2384
  */
3611
- 401: OpenAiApiError;
2385
+ 401: BodhiApiError;
3612
2386
  /**
3613
2387
  * Insufficient permissions
3614
2388
  */
3615
- 403: OpenAiApiError;
2389
+ 403: BodhiApiError;
3616
2390
  /**
3617
2391
  * Internal server error
3618
2392
  */
3619
- 500: OpenAiApiError;
2393
+ 500: BodhiApiError;
3620
2394
  };
3621
2395
 
3622
2396
  export type ListMcpsError = ListMcpsErrors[keyof ListMcpsErrors];
@@ -3641,19 +2415,19 @@ export type CreateMcpErrors = {
3641
2415
  /**
3642
2416
  * Invalid request parameters
3643
2417
  */
3644
- 400: OpenAiApiError;
2418
+ 400: BodhiApiError;
3645
2419
  /**
3646
2420
  * Not authenticated
3647
2421
  */
3648
- 401: OpenAiApiError;
2422
+ 401: BodhiApiError;
3649
2423
  /**
3650
2424
  * Insufficient permissions
3651
2425
  */
3652
- 403: OpenAiApiError;
2426
+ 403: BodhiApiError;
3653
2427
  /**
3654
2428
  * Internal server error
3655
2429
  */
3656
- 500: OpenAiApiError;
2430
+ 500: BodhiApiError;
3657
2431
  };
3658
2432
 
3659
2433
  export type CreateMcpError = CreateMcpErrors[keyof CreateMcpErrors];
@@ -3680,19 +2454,19 @@ export type ListMcpAuthConfigsErrors = {
3680
2454
  /**
3681
2455
  * Invalid request parameters
3682
2456
  */
3683
- 400: OpenAiApiError;
2457
+ 400: BodhiApiError;
3684
2458
  /**
3685
2459
  * Not authenticated
3686
2460
  */
3687
- 401: OpenAiApiError;
2461
+ 401: BodhiApiError;
3688
2462
  /**
3689
2463
  * Insufficient permissions
3690
2464
  */
3691
- 403: OpenAiApiError;
2465
+ 403: BodhiApiError;
3692
2466
  /**
3693
2467
  * Internal server error
3694
2468
  */
3695
- 500: OpenAiApiError;
2469
+ 500: BodhiApiError;
3696
2470
  };
3697
2471
 
3698
2472
  export type ListMcpAuthConfigsError = ListMcpAuthConfigsErrors[keyof ListMcpAuthConfigsErrors];
@@ -3717,19 +2491,19 @@ export type CreateMcpAuthConfigErrors = {
3717
2491
  /**
3718
2492
  * Invalid request parameters
3719
2493
  */
3720
- 400: OpenAiApiError;
2494
+ 400: BodhiApiError;
3721
2495
  /**
3722
2496
  * Not authenticated
3723
2497
  */
3724
- 401: OpenAiApiError;
2498
+ 401: BodhiApiError;
3725
2499
  /**
3726
2500
  * Insufficient permissions
3727
2501
  */
3728
- 403: OpenAiApiError;
2502
+ 403: BodhiApiError;
3729
2503
  /**
3730
2504
  * Internal server error
3731
2505
  */
3732
- 500: OpenAiApiError;
2506
+ 500: BodhiApiError;
3733
2507
  };
3734
2508
 
3735
2509
  export type CreateMcpAuthConfigError = CreateMcpAuthConfigErrors[keyof CreateMcpAuthConfigErrors];
@@ -3759,15 +2533,15 @@ export type DeleteMcpAuthConfigErrors = {
3759
2533
  /**
3760
2534
  * Invalid request parameters
3761
2535
  */
3762
- 400: OpenAiApiError;
2536
+ 400: BodhiApiError;
3763
2537
  /**
3764
2538
  * Not authenticated
3765
2539
  */
3766
- 401: OpenAiApiError;
2540
+ 401: BodhiApiError;
3767
2541
  /**
3768
2542
  * Insufficient permissions
3769
2543
  */
3770
- 403: OpenAiApiError;
2544
+ 403: BodhiApiError;
3771
2545
  /**
3772
2546
  * Not found
3773
2547
  */
@@ -3775,7 +2549,7 @@ export type DeleteMcpAuthConfigErrors = {
3775
2549
  /**
3776
2550
  * Internal server error
3777
2551
  */
3778
- 500: OpenAiApiError;
2552
+ 500: BodhiApiError;
3779
2553
  };
3780
2554
 
3781
2555
  export type DeleteMcpAuthConfigError = DeleteMcpAuthConfigErrors[keyof DeleteMcpAuthConfigErrors];
@@ -3805,15 +2579,15 @@ export type GetMcpAuthConfigErrors = {
3805
2579
  /**
3806
2580
  * Invalid request parameters
3807
2581
  */
3808
- 400: OpenAiApiError;
2582
+ 400: BodhiApiError;
3809
2583
  /**
3810
2584
  * Not authenticated
3811
2585
  */
3812
- 401: OpenAiApiError;
2586
+ 401: BodhiApiError;
3813
2587
  /**
3814
2588
  * Insufficient permissions
3815
2589
  */
3816
- 403: OpenAiApiError;
2590
+ 403: BodhiApiError;
3817
2591
  /**
3818
2592
  * Not found
3819
2593
  */
@@ -3821,7 +2595,7 @@ export type GetMcpAuthConfigErrors = {
3821
2595
  /**
3822
2596
  * Internal server error
3823
2597
  */
3824
- 500: OpenAiApiError;
2598
+ 500: BodhiApiError;
3825
2599
  };
3826
2600
 
3827
2601
  export type GetMcpAuthConfigError = GetMcpAuthConfigErrors[keyof GetMcpAuthConfigErrors];
@@ -3851,15 +2625,15 @@ export type McpOAuthLoginErrors = {
3851
2625
  /**
3852
2626
  * Invalid request parameters
3853
2627
  */
3854
- 400: OpenAiApiError;
2628
+ 400: BodhiApiError;
3855
2629
  /**
3856
2630
  * Not authenticated
3857
2631
  */
3858
- 401: OpenAiApiError;
2632
+ 401: BodhiApiError;
3859
2633
  /**
3860
2634
  * Insufficient permissions
3861
2635
  */
3862
- 403: OpenAiApiError;
2636
+ 403: BodhiApiError;
3863
2637
  /**
3864
2638
  * Auth config not found
3865
2639
  */
@@ -3867,7 +2641,7 @@ export type McpOAuthLoginErrors = {
3867
2641
  /**
3868
2642
  * Internal server error
3869
2643
  */
3870
- 500: OpenAiApiError;
2644
+ 500: BodhiApiError;
3871
2645
  };
3872
2646
 
3873
2647
  export type McpOAuthLoginError = McpOAuthLoginErrors[keyof McpOAuthLoginErrors];
@@ -3897,15 +2671,15 @@ export type McpOAuthTokenExchangeErrors = {
3897
2671
  /**
3898
2672
  * Invalid request parameters
3899
2673
  */
3900
- 400: OpenAiApiError;
2674
+ 400: BodhiApiError;
3901
2675
  /**
3902
2676
  * Not authenticated
3903
2677
  */
3904
- 401: OpenAiApiError;
2678
+ 401: BodhiApiError;
3905
2679
  /**
3906
2680
  * Insufficient permissions
3907
2681
  */
3908
- 403: OpenAiApiError;
2682
+ 403: BodhiApiError;
3909
2683
  /**
3910
2684
  * Auth config not found
3911
2685
  */
@@ -3913,7 +2687,7 @@ export type McpOAuthTokenExchangeErrors = {
3913
2687
  /**
3914
2688
  * Internal server error
3915
2689
  */
3916
- 500: OpenAiApiError;
2690
+ 500: BodhiApiError;
3917
2691
  };
3918
2692
 
3919
2693
  export type McpOAuthTokenExchangeError = McpOAuthTokenExchangeErrors[keyof McpOAuthTokenExchangeErrors];
@@ -3943,15 +2717,15 @@ export type DeleteMcpOAuthTokenErrors = {
3943
2717
  /**
3944
2718
  * Invalid request parameters
3945
2719
  */
3946
- 400: OpenAiApiError;
2720
+ 400: BodhiApiError;
3947
2721
  /**
3948
2722
  * Not authenticated
3949
2723
  */
3950
- 401: OpenAiApiError;
2724
+ 401: BodhiApiError;
3951
2725
  /**
3952
2726
  * Insufficient permissions
3953
2727
  */
3954
- 403: OpenAiApiError;
2728
+ 403: BodhiApiError;
3955
2729
  /**
3956
2730
  * Not found
3957
2731
  */
@@ -3959,7 +2733,7 @@ export type DeleteMcpOAuthTokenErrors = {
3959
2733
  /**
3960
2734
  * Internal server error
3961
2735
  */
3962
- 500: OpenAiApiError;
2736
+ 500: BodhiApiError;
3963
2737
  };
3964
2738
 
3965
2739
  export type DeleteMcpOAuthTokenError = DeleteMcpOAuthTokenErrors[keyof DeleteMcpOAuthTokenErrors];
@@ -3989,15 +2763,15 @@ export type GetMcpOAuthTokenErrors = {
3989
2763
  /**
3990
2764
  * Invalid request parameters
3991
2765
  */
3992
- 400: OpenAiApiError;
2766
+ 400: BodhiApiError;
3993
2767
  /**
3994
2768
  * Not authenticated
3995
2769
  */
3996
- 401: OpenAiApiError;
2770
+ 401: BodhiApiError;
3997
2771
  /**
3998
2772
  * Insufficient permissions
3999
2773
  */
4000
- 403: OpenAiApiError;
2774
+ 403: BodhiApiError;
4001
2775
  /**
4002
2776
  * Not found
4003
2777
  */
@@ -4005,7 +2779,7 @@ export type GetMcpOAuthTokenErrors = {
4005
2779
  /**
4006
2780
  * Internal server error
4007
2781
  */
4008
- 500: OpenAiApiError;
2782
+ 500: BodhiApiError;
4009
2783
  };
4010
2784
 
4011
2785
  export type GetMcpOAuthTokenError = GetMcpOAuthTokenErrors[keyof GetMcpOAuthTokenErrors];
@@ -4030,19 +2804,19 @@ export type McpOAuthDiscoverAsErrors = {
4030
2804
  /**
4031
2805
  * Invalid request parameters
4032
2806
  */
4033
- 400: OpenAiApiError;
2807
+ 400: BodhiApiError;
4034
2808
  /**
4035
2809
  * Not authenticated
4036
2810
  */
4037
- 401: OpenAiApiError;
2811
+ 401: BodhiApiError;
4038
2812
  /**
4039
2813
  * Insufficient permissions
4040
2814
  */
4041
- 403: OpenAiApiError;
2815
+ 403: BodhiApiError;
4042
2816
  /**
4043
2817
  * Internal server error
4044
2818
  */
4045
- 500: OpenAiApiError;
2819
+ 500: BodhiApiError;
4046
2820
  };
4047
2821
 
4048
2822
  export type McpOAuthDiscoverAsError = McpOAuthDiscoverAsErrors[keyof McpOAuthDiscoverAsErrors];
@@ -4067,19 +2841,19 @@ export type McpOAuthDiscoverMcpErrors = {
4067
2841
  /**
4068
2842
  * Invalid request parameters
4069
2843
  */
4070
- 400: OpenAiApiError;
2844
+ 400: BodhiApiError;
4071
2845
  /**
4072
2846
  * Not authenticated
4073
2847
  */
4074
- 401: OpenAiApiError;
2848
+ 401: BodhiApiError;
4075
2849
  /**
4076
2850
  * Insufficient permissions
4077
2851
  */
4078
- 403: OpenAiApiError;
2852
+ 403: BodhiApiError;
4079
2853
  /**
4080
2854
  * Internal server error
4081
2855
  */
4082
- 500: OpenAiApiError;
2856
+ 500: BodhiApiError;
4083
2857
  };
4084
2858
 
4085
2859
  export type McpOAuthDiscoverMcpError = McpOAuthDiscoverMcpErrors[keyof McpOAuthDiscoverMcpErrors];
@@ -4104,19 +2878,19 @@ export type McpOAuthDynamicRegisterStandaloneErrors = {
4104
2878
  /**
4105
2879
  * Invalid request parameters
4106
2880
  */
4107
- 400: OpenAiApiError;
2881
+ 400: BodhiApiError;
4108
2882
  /**
4109
2883
  * Not authenticated
4110
2884
  */
4111
- 401: OpenAiApiError;
2885
+ 401: BodhiApiError;
4112
2886
  /**
4113
2887
  * Insufficient permissions
4114
2888
  */
4115
- 403: OpenAiApiError;
2889
+ 403: BodhiApiError;
4116
2890
  /**
4117
2891
  * Internal server error
4118
2892
  */
4119
- 500: OpenAiApiError;
2893
+ 500: BodhiApiError;
4120
2894
  };
4121
2895
 
4122
2896
  export type McpOAuthDynamicRegisterStandaloneError = McpOAuthDynamicRegisterStandaloneErrors[keyof McpOAuthDynamicRegisterStandaloneErrors];
@@ -4146,19 +2920,19 @@ export type ListMcpServersErrors = {
4146
2920
  /**
4147
2921
  * Invalid request parameters
4148
2922
  */
4149
- 400: OpenAiApiError;
2923
+ 400: BodhiApiError;
4150
2924
  /**
4151
2925
  * Not authenticated
4152
2926
  */
4153
- 401: OpenAiApiError;
2927
+ 401: BodhiApiError;
4154
2928
  /**
4155
2929
  * Insufficient permissions
4156
2930
  */
4157
- 403: OpenAiApiError;
2931
+ 403: BodhiApiError;
4158
2932
  /**
4159
2933
  * Internal server error
4160
2934
  */
4161
- 500: OpenAiApiError;
2935
+ 500: BodhiApiError;
4162
2936
  };
4163
2937
 
4164
2938
  export type ListMcpServersError = ListMcpServersErrors[keyof ListMcpServersErrors];
@@ -4183,15 +2957,15 @@ export type CreateMcpServerErrors = {
4183
2957
  /**
4184
2958
  * Invalid request parameters
4185
2959
  */
4186
- 400: OpenAiApiError;
2960
+ 400: BodhiApiError;
4187
2961
  /**
4188
2962
  * Not authenticated
4189
2963
  */
4190
- 401: OpenAiApiError;
2964
+ 401: BodhiApiError;
4191
2965
  /**
4192
2966
  * Insufficient permissions
4193
2967
  */
4194
- 403: OpenAiApiError;
2968
+ 403: BodhiApiError;
4195
2969
  /**
4196
2970
  * URL already exists
4197
2971
  */
@@ -4199,7 +2973,7 @@ export type CreateMcpServerErrors = {
4199
2973
  /**
4200
2974
  * Internal server error
4201
2975
  */
4202
- 500: OpenAiApiError;
2976
+ 500: BodhiApiError;
4203
2977
  };
4204
2978
 
4205
2979
  export type CreateMcpServerError = CreateMcpServerErrors[keyof CreateMcpServerErrors];
@@ -4229,15 +3003,15 @@ export type GetMcpServerErrors = {
4229
3003
  /**
4230
3004
  * Invalid request parameters
4231
3005
  */
4232
- 400: OpenAiApiError;
3006
+ 400: BodhiApiError;
4233
3007
  /**
4234
3008
  * Not authenticated
4235
3009
  */
4236
- 401: OpenAiApiError;
3010
+ 401: BodhiApiError;
4237
3011
  /**
4238
3012
  * Insufficient permissions
4239
3013
  */
4240
- 403: OpenAiApiError;
3014
+ 403: BodhiApiError;
4241
3015
  /**
4242
3016
  * Not found
4243
3017
  */
@@ -4245,7 +3019,7 @@ export type GetMcpServerErrors = {
4245
3019
  /**
4246
3020
  * Internal server error
4247
3021
  */
4248
- 500: OpenAiApiError;
3022
+ 500: BodhiApiError;
4249
3023
  };
4250
3024
 
4251
3025
  export type GetMcpServerError = GetMcpServerErrors[keyof GetMcpServerErrors];
@@ -4275,15 +3049,15 @@ export type UpdateMcpServerErrors = {
4275
3049
  /**
4276
3050
  * Invalid request parameters
4277
3051
  */
4278
- 400: OpenAiApiError;
3052
+ 400: BodhiApiError;
4279
3053
  /**
4280
3054
  * Not authenticated
4281
3055
  */
4282
- 401: OpenAiApiError;
3056
+ 401: BodhiApiError;
4283
3057
  /**
4284
3058
  * Insufficient permissions
4285
3059
  */
4286
- 403: OpenAiApiError;
3060
+ 403: BodhiApiError;
4287
3061
  /**
4288
3062
  * Not found
4289
3063
  */
@@ -4295,7 +3069,7 @@ export type UpdateMcpServerErrors = {
4295
3069
  /**
4296
3070
  * Internal server error
4297
3071
  */
4298
- 500: OpenAiApiError;
3072
+ 500: BodhiApiError;
4299
3073
  };
4300
3074
 
4301
3075
  export type UpdateMcpServerError = UpdateMcpServerErrors[keyof UpdateMcpServerErrors];
@@ -4325,15 +3099,15 @@ export type DeleteMcpErrors = {
4325
3099
  /**
4326
3100
  * Invalid request parameters
4327
3101
  */
4328
- 400: OpenAiApiError;
3102
+ 400: BodhiApiError;
4329
3103
  /**
4330
3104
  * Not authenticated
4331
3105
  */
4332
- 401: OpenAiApiError;
3106
+ 401: BodhiApiError;
4333
3107
  /**
4334
3108
  * Insufficient permissions
4335
3109
  */
4336
- 403: OpenAiApiError;
3110
+ 403: BodhiApiError;
4337
3111
  /**
4338
3112
  * MCP not found
4339
3113
  */
@@ -4341,7 +3115,7 @@ export type DeleteMcpErrors = {
4341
3115
  /**
4342
3116
  * Internal server error
4343
3117
  */
4344
- 500: OpenAiApiError;
3118
+ 500: BodhiApiError;
4345
3119
  };
4346
3120
 
4347
3121
  export type DeleteMcpError = DeleteMcpErrors[keyof DeleteMcpErrors];
@@ -4371,15 +3145,15 @@ export type GetMcpErrors = {
4371
3145
  /**
4372
3146
  * Invalid request parameters
4373
3147
  */
4374
- 400: OpenAiApiError;
3148
+ 400: BodhiApiError;
4375
3149
  /**
4376
3150
  * Not authenticated
4377
3151
  */
4378
- 401: OpenAiApiError;
3152
+ 401: BodhiApiError;
4379
3153
  /**
4380
3154
  * Insufficient permissions
4381
3155
  */
4382
- 403: OpenAiApiError;
3156
+ 403: BodhiApiError;
4383
3157
  /**
4384
3158
  * MCP not found
4385
3159
  */
@@ -4387,7 +3161,7 @@ export type GetMcpErrors = {
4387
3161
  /**
4388
3162
  * Internal server error
4389
3163
  */
4390
- 500: OpenAiApiError;
3164
+ 500: BodhiApiError;
4391
3165
  };
4392
3166
 
4393
3167
  export type GetMcpError = GetMcpErrors[keyof GetMcpErrors];
@@ -4417,15 +3191,15 @@ export type UpdateMcpErrors = {
4417
3191
  /**
4418
3192
  * Invalid request parameters
4419
3193
  */
4420
- 400: OpenAiApiError;
3194
+ 400: BodhiApiError;
4421
3195
  /**
4422
3196
  * Not authenticated
4423
3197
  */
4424
- 401: OpenAiApiError;
3198
+ 401: BodhiApiError;
4425
3199
  /**
4426
3200
  * Insufficient permissions
4427
3201
  */
4428
- 403: OpenAiApiError;
3202
+ 403: BodhiApiError;
4429
3203
  /**
4430
3204
  * MCP not found
4431
3205
  */
@@ -4433,7 +3207,7 @@ export type UpdateMcpErrors = {
4433
3207
  /**
4434
3208
  * Internal server error
4435
3209
  */
4436
- 500: OpenAiApiError;
3210
+ 500: BodhiApiError;
4437
3211
  };
4438
3212
 
4439
3213
  export type UpdateMcpError = UpdateMcpErrors[keyof UpdateMcpErrors];
@@ -4475,19 +3249,19 @@ export type ListAllModelsErrors = {
4475
3249
  /**
4476
3250
  * Invalid request parameters
4477
3251
  */
4478
- 400: OpenAiApiError;
3252
+ 400: BodhiApiError;
4479
3253
  /**
4480
3254
  * Not authenticated
4481
3255
  */
4482
- 401: OpenAiApiError;
3256
+ 401: BodhiApiError;
4483
3257
  /**
4484
3258
  * Insufficient permissions
4485
3259
  */
4486
- 403: OpenAiApiError;
3260
+ 403: BodhiApiError;
4487
3261
  /**
4488
3262
  * Internal server error
4489
3263
  */
4490
- 500: OpenAiApiError;
3264
+ 500: BodhiApiError;
4491
3265
  };
4492
3266
 
4493
3267
  export type ListAllModelsError = ListAllModelsErrors[keyof ListAllModelsErrors];
@@ -4512,19 +3286,19 @@ export type ModelsAliasCreateErrors = {
4512
3286
  /**
4513
3287
  * Invalid request parameters
4514
3288
  */
4515
- 400: OpenAiApiError;
3289
+ 400: BodhiApiError;
4516
3290
  /**
4517
3291
  * Not authenticated
4518
3292
  */
4519
- 401: OpenAiApiError;
3293
+ 401: BodhiApiError;
4520
3294
  /**
4521
3295
  * Insufficient permissions
4522
3296
  */
4523
- 403: OpenAiApiError;
3297
+ 403: BodhiApiError;
4524
3298
  /**
4525
3299
  * Internal server error
4526
3300
  */
4527
- 500: OpenAiApiError;
3301
+ 500: BodhiApiError;
4528
3302
  };
4529
3303
 
4530
3304
  export type ModelsAliasCreateError = ModelsAliasCreateErrors[keyof ModelsAliasCreateErrors];
@@ -4554,15 +3328,15 @@ export type ModelsAliasDestroyErrors = {
4554
3328
  /**
4555
3329
  * Invalid request parameters
4556
3330
  */
4557
- 400: OpenAiApiError;
3331
+ 400: BodhiApiError;
4558
3332
  /**
4559
3333
  * Not authenticated
4560
3334
  */
4561
- 401: OpenAiApiError;
3335
+ 401: BodhiApiError;
4562
3336
  /**
4563
3337
  * Insufficient permissions
4564
3338
  */
4565
- 403: OpenAiApiError;
3339
+ 403: BodhiApiError;
4566
3340
  /**
4567
3341
  * Alias not found
4568
3342
  */
@@ -4570,7 +3344,7 @@ export type ModelsAliasDestroyErrors = {
4570
3344
  /**
4571
3345
  * Internal server error
4572
3346
  */
4573
- 500: OpenAiApiError;
3347
+ 500: BodhiApiError;
4574
3348
  };
4575
3349
 
4576
3350
  export type ModelsAliasDestroyError = ModelsAliasDestroyErrors[keyof ModelsAliasDestroyErrors];
@@ -4598,19 +3372,19 @@ export type ModelsAliasUpdateErrors = {
4598
3372
  /**
4599
3373
  * Invalid request parameters
4600
3374
  */
4601
- 400: OpenAiApiError;
3375
+ 400: BodhiApiError;
4602
3376
  /**
4603
3377
  * Not authenticated
4604
3378
  */
4605
- 401: OpenAiApiError;
3379
+ 401: BodhiApiError;
4606
3380
  /**
4607
3381
  * Insufficient permissions
4608
3382
  */
4609
- 403: OpenAiApiError;
3383
+ 403: BodhiApiError;
4610
3384
  /**
4611
3385
  * Internal server error
4612
3386
  */
4613
- 500: OpenAiApiError;
3387
+ 500: BodhiApiError;
4614
3388
  };
4615
3389
 
4616
3390
  export type ModelsAliasUpdateError = ModelsAliasUpdateErrors[keyof ModelsAliasUpdateErrors];
@@ -4640,15 +3414,15 @@ export type ModelsAliasCopyErrors = {
4640
3414
  /**
4641
3415
  * Invalid request parameters
4642
3416
  */
4643
- 400: OpenAiApiError;
3417
+ 400: BodhiApiError;
4644
3418
  /**
4645
3419
  * Not authenticated
4646
3420
  */
4647
- 401: OpenAiApiError;
3421
+ 401: BodhiApiError;
4648
3422
  /**
4649
3423
  * Insufficient permissions
4650
3424
  */
4651
- 403: OpenAiApiError;
3425
+ 403: BodhiApiError;
4652
3426
  /**
4653
3427
  * Source alias not found
4654
3428
  */
@@ -4656,7 +3430,7 @@ export type ModelsAliasCopyErrors = {
4656
3430
  /**
4657
3431
  * Internal server error
4658
3432
  */
4659
- 500: OpenAiApiError;
3433
+ 500: BodhiApiError;
4660
3434
  };
4661
3435
 
4662
3436
  export type ModelsAliasCopyError = ModelsAliasCopyErrors[keyof ModelsAliasCopyErrors];
@@ -4681,23 +3455,23 @@ export type CreateApiModelErrors = {
4681
3455
  /**
4682
3456
  * Invalid request parameters
4683
3457
  */
4684
- 400: OpenAiApiError;
3458
+ 400: BodhiApiError;
4685
3459
  /**
4686
3460
  * Not authenticated
4687
3461
  */
4688
- 401: OpenAiApiError;
3462
+ 401: BodhiApiError;
4689
3463
  /**
4690
3464
  * Insufficient permissions
4691
3465
  */
4692
- 403: OpenAiApiError;
3466
+ 403: BodhiApiError;
4693
3467
  /**
4694
3468
  * Alias already exists
4695
3469
  */
4696
- 409: OpenAiApiError;
3470
+ 409: BodhiApiError;
4697
3471
  /**
4698
3472
  * Internal server error
4699
3473
  */
4700
- 500: OpenAiApiError;
3474
+ 500: BodhiApiError;
4701
3475
  };
4702
3476
 
4703
3477
  export type CreateApiModelError = CreateApiModelErrors[keyof CreateApiModelErrors];
@@ -4722,19 +3496,19 @@ export type FetchApiModelsErrors = {
4722
3496
  /**
4723
3497
  * Invalid request parameters
4724
3498
  */
4725
- 400: OpenAiApiError;
3499
+ 400: BodhiApiError;
4726
3500
  /**
4727
3501
  * Not authenticated
4728
3502
  */
4729
- 401: OpenAiApiError;
3503
+ 401: BodhiApiError;
4730
3504
  /**
4731
3505
  * Insufficient permissions
4732
3506
  */
4733
- 403: OpenAiApiError;
3507
+ 403: BodhiApiError;
4734
3508
  /**
4735
3509
  * Internal server error
4736
3510
  */
4737
- 500: OpenAiApiError;
3511
+ 500: BodhiApiError;
4738
3512
  };
4739
3513
 
4740
3514
  export type FetchApiModelsError = FetchApiModelsErrors[keyof FetchApiModelsErrors];
@@ -4759,19 +3533,19 @@ export type GetApiFormatsErrors = {
4759
3533
  /**
4760
3534
  * Invalid request parameters
4761
3535
  */
4762
- 400: OpenAiApiError;
3536
+ 400: BodhiApiError;
4763
3537
  /**
4764
3538
  * Not authenticated
4765
3539
  */
4766
- 401: OpenAiApiError;
3540
+ 401: BodhiApiError;
4767
3541
  /**
4768
3542
  * Insufficient permissions
4769
3543
  */
4770
- 403: OpenAiApiError;
3544
+ 403: BodhiApiError;
4771
3545
  /**
4772
3546
  * Internal server error
4773
3547
  */
4774
- 500: OpenAiApiError;
3548
+ 500: BodhiApiError;
4775
3549
  };
4776
3550
 
4777
3551
  export type GetApiFormatsError = GetApiFormatsErrors[keyof GetApiFormatsErrors];
@@ -4796,19 +3570,19 @@ export type TestApiModelErrors = {
4796
3570
  /**
4797
3571
  * Invalid request parameters
4798
3572
  */
4799
- 400: OpenAiApiError;
3573
+ 400: BodhiApiError;
4800
3574
  /**
4801
3575
  * Not authenticated
4802
3576
  */
4803
- 401: OpenAiApiError;
3577
+ 401: BodhiApiError;
4804
3578
  /**
4805
3579
  * Insufficient permissions
4806
3580
  */
4807
- 403: OpenAiApiError;
3581
+ 403: BodhiApiError;
4808
3582
  /**
4809
3583
  * Internal server error
4810
3584
  */
4811
- 500: OpenAiApiError;
3585
+ 500: BodhiApiError;
4812
3586
  };
4813
3587
 
4814
3588
  export type TestApiModelError = TestApiModelErrors[keyof TestApiModelErrors];
@@ -4838,23 +3612,23 @@ export type DeleteApiModelErrors = {
4838
3612
  /**
4839
3613
  * Invalid request parameters
4840
3614
  */
4841
- 400: OpenAiApiError;
3615
+ 400: BodhiApiError;
4842
3616
  /**
4843
3617
  * Not authenticated
4844
3618
  */
4845
- 401: OpenAiApiError;
3619
+ 401: BodhiApiError;
4846
3620
  /**
4847
3621
  * Insufficient permissions
4848
3622
  */
4849
- 403: OpenAiApiError;
3623
+ 403: BodhiApiError;
4850
3624
  /**
4851
3625
  * API model not found
4852
3626
  */
4853
- 404: OpenAiApiError;
3627
+ 404: BodhiApiError;
4854
3628
  /**
4855
3629
  * Internal server error
4856
3630
  */
4857
- 500: OpenAiApiError;
3631
+ 500: BodhiApiError;
4858
3632
  };
4859
3633
 
4860
3634
  export type DeleteApiModelError = DeleteApiModelErrors[keyof DeleteApiModelErrors];
@@ -4884,23 +3658,23 @@ export type GetApiModelErrors = {
4884
3658
  /**
4885
3659
  * Invalid request parameters
4886
3660
  */
4887
- 400: OpenAiApiError;
3661
+ 400: BodhiApiError;
4888
3662
  /**
4889
3663
  * Not authenticated
4890
3664
  */
4891
- 401: OpenAiApiError;
3665
+ 401: BodhiApiError;
4892
3666
  /**
4893
3667
  * Insufficient permissions
4894
3668
  */
4895
- 403: OpenAiApiError;
3669
+ 403: BodhiApiError;
4896
3670
  /**
4897
3671
  * API model with specified ID not found
4898
3672
  */
4899
- 404: OpenAiApiError;
3673
+ 404: BodhiApiError;
4900
3674
  /**
4901
3675
  * Internal server error
4902
3676
  */
4903
- 500: OpenAiApiError;
3677
+ 500: BodhiApiError;
4904
3678
  };
4905
3679
 
4906
3680
  export type GetApiModelError = GetApiModelErrors[keyof GetApiModelErrors];
@@ -4930,23 +3704,23 @@ export type UpdateApiModelErrors = {
4930
3704
  /**
4931
3705
  * Invalid request parameters
4932
3706
  */
4933
- 400: OpenAiApiError;
3707
+ 400: BodhiApiError;
4934
3708
  /**
4935
3709
  * Not authenticated
4936
3710
  */
4937
- 401: OpenAiApiError;
3711
+ 401: BodhiApiError;
4938
3712
  /**
4939
3713
  * Insufficient permissions
4940
3714
  */
4941
- 403: OpenAiApiError;
3715
+ 403: BodhiApiError;
4942
3716
  /**
4943
3717
  * API model not found
4944
3718
  */
4945
- 404: OpenAiApiError;
3719
+ 404: BodhiApiError;
4946
3720
  /**
4947
3721
  * Internal server error
4948
3722
  */
4949
- 500: OpenAiApiError;
3723
+ 500: BodhiApiError;
4950
3724
  };
4951
3725
 
4952
3726
  export type UpdateApiModelError = UpdateApiModelErrors[keyof UpdateApiModelErrors];
@@ -4976,15 +3750,15 @@ export type SyncModelsErrors = {
4976
3750
  /**
4977
3751
  * Invalid request parameters
4978
3752
  */
4979
- 400: OpenAiApiError;
3753
+ 400: BodhiApiError;
4980
3754
  /**
4981
3755
  * Not authenticated
4982
3756
  */
4983
- 401: OpenAiApiError;
3757
+ 401: BodhiApiError;
4984
3758
  /**
4985
3759
  * Insufficient permissions
4986
3760
  */
4987
- 403: OpenAiApiError;
3761
+ 403: BodhiApiError;
4988
3762
  /**
4989
3763
  * API model not found
4990
3764
  */
@@ -4992,7 +3766,7 @@ export type SyncModelsErrors = {
4992
3766
  /**
4993
3767
  * Internal server error
4994
3768
  */
4995
- 500: OpenAiApiError;
3769
+ 500: BodhiApiError;
4996
3770
  };
4997
3771
 
4998
3772
  export type SyncModelsError = SyncModelsErrors[keyof SyncModelsErrors];
@@ -5034,19 +3808,19 @@ export type ListModelFilesErrors = {
5034
3808
  /**
5035
3809
  * Invalid request parameters
5036
3810
  */
5037
- 400: OpenAiApiError;
3811
+ 400: BodhiApiError;
5038
3812
  /**
5039
3813
  * Not authenticated
5040
3814
  */
5041
- 401: OpenAiApiError;
3815
+ 401: BodhiApiError;
5042
3816
  /**
5043
3817
  * Insufficient permissions
5044
3818
  */
5045
- 403: OpenAiApiError;
3819
+ 403: BodhiApiError;
5046
3820
  /**
5047
3821
  * Internal server error
5048
3822
  */
5049
- 500: OpenAiApiError;
3823
+ 500: BodhiApiError;
5050
3824
  };
5051
3825
 
5052
3826
  export type ListModelFilesError = ListModelFilesErrors[keyof ListModelFilesErrors];
@@ -5088,19 +3862,19 @@ export type ListDownloadsErrors = {
5088
3862
  /**
5089
3863
  * Invalid request parameters
5090
3864
  */
5091
- 400: OpenAiApiError;
3865
+ 400: BodhiApiError;
5092
3866
  /**
5093
3867
  * Not authenticated
5094
3868
  */
5095
- 401: OpenAiApiError;
3869
+ 401: BodhiApiError;
5096
3870
  /**
5097
3871
  * Insufficient permissions
5098
3872
  */
5099
- 403: OpenAiApiError;
3873
+ 403: BodhiApiError;
5100
3874
  /**
5101
3875
  * Internal server error
5102
3876
  */
5103
- 500: OpenAiApiError;
3877
+ 500: BodhiApiError;
5104
3878
  };
5105
3879
 
5106
3880
  export type ListDownloadsError = ListDownloadsErrors[keyof ListDownloadsErrors];
@@ -5128,19 +3902,19 @@ export type PullModelFileErrors = {
5128
3902
  /**
5129
3903
  * Invalid request parameters
5130
3904
  */
5131
- 400: OpenAiApiError;
3905
+ 400: BodhiApiError;
5132
3906
  /**
5133
3907
  * Not authenticated
5134
3908
  */
5135
- 401: OpenAiApiError;
3909
+ 401: BodhiApiError;
5136
3910
  /**
5137
3911
  * Insufficient permissions
5138
3912
  */
5139
- 403: OpenAiApiError;
3913
+ 403: BodhiApiError;
5140
3914
  /**
5141
3915
  * Internal server error
5142
3916
  */
5143
- 500: OpenAiApiError;
3917
+ 500: BodhiApiError;
5144
3918
  };
5145
3919
 
5146
3920
  export type PullModelFileError = PullModelFileErrors[keyof PullModelFileErrors];
@@ -5174,23 +3948,23 @@ export type GetDownloadStatusErrors = {
5174
3948
  /**
5175
3949
  * Invalid request parameters
5176
3950
  */
5177
- 400: OpenAiApiError;
3951
+ 400: BodhiApiError;
5178
3952
  /**
5179
3953
  * Not authenticated
5180
3954
  */
5181
- 401: OpenAiApiError;
3955
+ 401: BodhiApiError;
5182
3956
  /**
5183
3957
  * Insufficient permissions
5184
3958
  */
5185
- 403: OpenAiApiError;
3959
+ 403: BodhiApiError;
5186
3960
  /**
5187
3961
  * Download request not found
5188
3962
  */
5189
- 404: OpenAiApiError;
3963
+ 404: BodhiApiError;
5190
3964
  /**
5191
3965
  * Internal server error
5192
3966
  */
5193
- 500: OpenAiApiError;
3967
+ 500: BodhiApiError;
5194
3968
  };
5195
3969
 
5196
3970
  export type GetDownloadStatusError = GetDownloadStatusErrors[keyof GetDownloadStatusErrors];
@@ -5218,15 +3992,15 @@ export type RefreshModelMetadataErrors = {
5218
3992
  /**
5219
3993
  * Invalid request parameters
5220
3994
  */
5221
- 400: OpenAiApiError;
3995
+ 400: BodhiApiError;
5222
3996
  /**
5223
3997
  * Not authenticated
5224
3998
  */
5225
- 401: OpenAiApiError;
3999
+ 401: BodhiApiError;
5226
4000
  /**
5227
4001
  * Insufficient permissions
5228
4002
  */
5229
- 403: OpenAiApiError;
4003
+ 403: BodhiApiError;
5230
4004
  /**
5231
4005
  * Model alias not found for specified repo/filename/snapshot
5232
4006
  */
@@ -5234,7 +4008,7 @@ export type RefreshModelMetadataErrors = {
5234
4008
  /**
5235
4009
  * Internal server error
5236
4010
  */
5237
- 500: OpenAiApiError;
4011
+ 500: BodhiApiError;
5238
4012
  };
5239
4013
 
5240
4014
  export type RefreshModelMetadataError = RefreshModelMetadataErrors[keyof RefreshModelMetadataErrors];
@@ -5268,23 +4042,23 @@ export type GetAliasErrors = {
5268
4042
  /**
5269
4043
  * Invalid request parameters
5270
4044
  */
5271
- 400: OpenAiApiError;
4045
+ 400: BodhiApiError;
5272
4046
  /**
5273
4047
  * Not authenticated
5274
4048
  */
5275
- 401: OpenAiApiError;
4049
+ 401: BodhiApiError;
5276
4050
  /**
5277
4051
  * Insufficient permissions
5278
4052
  */
5279
- 403: OpenAiApiError;
4053
+ 403: BodhiApiError;
5280
4054
  /**
5281
4055
  * Alias not found
5282
4056
  */
5283
- 404: OpenAiApiError;
4057
+ 404: BodhiApiError;
5284
4058
  /**
5285
4059
  * Internal server error
5286
4060
  */
5287
- 500: OpenAiApiError;
4061
+ 500: BodhiApiError;
5288
4062
  };
5289
4063
 
5290
4064
  export type GetAliasError = GetAliasErrors[keyof GetAliasErrors];
@@ -5309,19 +4083,19 @@ export type GetQueueStatusErrors = {
5309
4083
  /**
5310
4084
  * Invalid request parameters
5311
4085
  */
5312
- 400: OpenAiApiError;
4086
+ 400: BodhiApiError;
5313
4087
  /**
5314
4088
  * Not authenticated
5315
4089
  */
5316
- 401: OpenAiApiError;
4090
+ 401: BodhiApiError;
5317
4091
  /**
5318
4092
  * Insufficient permissions
5319
4093
  */
5320
- 403: OpenAiApiError;
4094
+ 403: BodhiApiError;
5321
4095
  /**
5322
4096
  * Internal server error
5323
4097
  */
5324
- 500: OpenAiApiError;
4098
+ 500: BodhiApiError;
5325
4099
  };
5326
4100
 
5327
4101
  export type GetQueueStatusError = GetQueueStatusErrors[keyof GetQueueStatusErrors];
@@ -5346,19 +4120,19 @@ export type ListSettingsErrors = {
5346
4120
  /**
5347
4121
  * Invalid request parameters
5348
4122
  */
5349
- 400: OpenAiApiError;
4123
+ 400: BodhiApiError;
5350
4124
  /**
5351
4125
  * Not authenticated
5352
4126
  */
5353
- 401: OpenAiApiError;
4127
+ 401: BodhiApiError;
5354
4128
  /**
5355
4129
  * Insufficient permissions
5356
4130
  */
5357
- 403: OpenAiApiError;
4131
+ 403: BodhiApiError;
5358
4132
  /**
5359
4133
  * Internal server error
5360
4134
  */
5361
- 500: OpenAiApiError;
4135
+ 500: BodhiApiError;
5362
4136
  };
5363
4137
 
5364
4138
  export type ListSettingsError = ListSettingsErrors[keyof ListSettingsErrors];
@@ -5388,23 +4162,23 @@ export type DeleteSettingErrors = {
5388
4162
  /**
5389
4163
  * Invalid request parameters
5390
4164
  */
5391
- 400: OpenAiApiError;
4165
+ 400: BodhiApiError;
5392
4166
  /**
5393
4167
  * Not authenticated
5394
4168
  */
5395
- 401: OpenAiApiError;
4169
+ 401: BodhiApiError;
5396
4170
  /**
5397
4171
  * Insufficient permissions
5398
4172
  */
5399
- 403: OpenAiApiError;
4173
+ 403: BodhiApiError;
5400
4174
  /**
5401
4175
  * Setting not found
5402
4176
  */
5403
- 404: OpenAiApiError;
4177
+ 404: BodhiApiError;
5404
4178
  /**
5405
4179
  * Internal server error
5406
4180
  */
5407
- 500: OpenAiApiError;
4181
+ 500: BodhiApiError;
5408
4182
  };
5409
4183
 
5410
4184
  export type DeleteSettingError = DeleteSettingErrors[keyof DeleteSettingErrors];
@@ -5442,23 +4216,23 @@ export type UpdateSettingErrors = {
5442
4216
  /**
5443
4217
  * Invalid request parameters
5444
4218
  */
5445
- 400: OpenAiApiError;
4219
+ 400: BodhiApiError;
5446
4220
  /**
5447
4221
  * Not authenticated
5448
4222
  */
5449
- 401: OpenAiApiError;
4223
+ 401: BodhiApiError;
5450
4224
  /**
5451
4225
  * Insufficient permissions
5452
4226
  */
5453
- 403: OpenAiApiError;
4227
+ 403: BodhiApiError;
5454
4228
  /**
5455
4229
  * Setting not found
5456
4230
  */
5457
- 404: OpenAiApiError;
4231
+ 404: BodhiApiError;
5458
4232
  /**
5459
4233
  * Internal server error
5460
4234
  */
5461
- 500: OpenAiApiError;
4235
+ 500: BodhiApiError;
5462
4236
  };
5463
4237
 
5464
4238
  export type UpdateSettingError = UpdateSettingErrors[keyof UpdateSettingErrors];
@@ -5486,11 +4260,11 @@ export type SetupAppErrors = {
5486
4260
  /**
5487
4261
  * Invalid request parameters
5488
4262
  */
5489
- 400: OpenAiApiError;
4263
+ 400: BodhiApiError;
5490
4264
  /**
5491
4265
  * Internal server error
5492
4266
  */
5493
- 500: OpenAiApiError;
4267
+ 500: BodhiApiError;
5494
4268
  };
5495
4269
 
5496
4270
  export type SetupAppError = SetupAppErrors[keyof SetupAppErrors];
@@ -5515,19 +4289,19 @@ export type TenantsListErrors = {
5515
4289
  /**
5516
4290
  * Invalid request parameters
5517
4291
  */
5518
- 400: OpenAiApiError;
4292
+ 400: BodhiApiError;
5519
4293
  /**
5520
4294
  * Not authenticated
5521
4295
  */
5522
- 401: OpenAiApiError;
4296
+ 401: BodhiApiError;
5523
4297
  /**
5524
4298
  * Insufficient permissions
5525
4299
  */
5526
- 403: OpenAiApiError;
4300
+ 403: BodhiApiError;
5527
4301
  /**
5528
4302
  * Internal server error
5529
4303
  */
5530
- 500: OpenAiApiError;
4304
+ 500: BodhiApiError;
5531
4305
  };
5532
4306
 
5533
4307
  export type TenantsListError = TenantsListErrors[keyof TenantsListErrors];
@@ -5555,19 +4329,19 @@ export type TenantsCreateErrors = {
5555
4329
  /**
5556
4330
  * Invalid request parameters
5557
4331
  */
5558
- 400: OpenAiApiError;
4332
+ 400: BodhiApiError;
5559
4333
  /**
5560
4334
  * Not authenticated
5561
4335
  */
5562
- 401: OpenAiApiError;
4336
+ 401: BodhiApiError;
5563
4337
  /**
5564
4338
  * Insufficient permissions
5565
4339
  */
5566
- 403: OpenAiApiError;
4340
+ 403: BodhiApiError;
5567
4341
  /**
5568
4342
  * Internal server error
5569
4343
  */
5570
- 500: OpenAiApiError;
4344
+ 500: BodhiApiError;
5571
4345
  };
5572
4346
 
5573
4347
  export type TenantsCreateError = TenantsCreateErrors[keyof TenantsCreateErrors];
@@ -5597,19 +4371,19 @@ export type TenantsActivateErrors = {
5597
4371
  /**
5598
4372
  * Invalid request parameters
5599
4373
  */
5600
- 400: OpenAiApiError;
4374
+ 400: BodhiApiError;
5601
4375
  /**
5602
4376
  * Not authenticated
5603
4377
  */
5604
- 401: OpenAiApiError;
4378
+ 401: BodhiApiError;
5605
4379
  /**
5606
4380
  * Insufficient permissions
5607
4381
  */
5608
- 403: OpenAiApiError;
4382
+ 403: BodhiApiError;
5609
4383
  /**
5610
4384
  * Internal server error
5611
4385
  */
5612
- 500: OpenAiApiError;
4386
+ 500: BodhiApiError;
5613
4387
  };
5614
4388
 
5615
4389
  export type TenantsActivateError = TenantsActivateErrors[keyof TenantsActivateErrors];
@@ -5649,19 +4423,19 @@ export type ListApiTokensErrors = {
5649
4423
  /**
5650
4424
  * Invalid request parameters
5651
4425
  */
5652
- 400: OpenAiApiError;
4426
+ 400: BodhiApiError;
5653
4427
  /**
5654
4428
  * Not authenticated
5655
4429
  */
5656
- 401: OpenAiApiError;
4430
+ 401: BodhiApiError;
5657
4431
  /**
5658
4432
  * Insufficient permissions
5659
4433
  */
5660
- 403: OpenAiApiError;
4434
+ 403: BodhiApiError;
5661
4435
  /**
5662
4436
  * Internal server error
5663
4437
  */
5664
- 500: OpenAiApiError;
4438
+ 500: BodhiApiError;
5665
4439
  };
5666
4440
 
5667
4441
  export type ListApiTokensError = ListApiTokensErrors[keyof ListApiTokensErrors];
@@ -5689,19 +4463,19 @@ export type CreateApiTokenErrors = {
5689
4463
  /**
5690
4464
  * Invalid request parameters
5691
4465
  */
5692
- 400: OpenAiApiError;
4466
+ 400: BodhiApiError;
5693
4467
  /**
5694
4468
  * Not authenticated
5695
4469
  */
5696
- 401: OpenAiApiError;
4470
+ 401: BodhiApiError;
5697
4471
  /**
5698
4472
  * Insufficient permissions
5699
4473
  */
5700
- 403: OpenAiApiError;
4474
+ 403: BodhiApiError;
5701
4475
  /**
5702
4476
  * Internal server error
5703
4477
  */
5704
- 500: OpenAiApiError;
4478
+ 500: BodhiApiError;
5705
4479
  };
5706
4480
 
5707
4481
  export type CreateApiTokenError = CreateApiTokenErrors[keyof CreateApiTokenErrors];
@@ -5734,23 +4508,23 @@ export type UpdateApiTokenErrors = {
5734
4508
  /**
5735
4509
  * Invalid request parameters
5736
4510
  */
5737
- 400: OpenAiApiError;
4511
+ 400: BodhiApiError;
5738
4512
  /**
5739
4513
  * Not authenticated
5740
4514
  */
5741
- 401: OpenAiApiError;
4515
+ 401: BodhiApiError;
5742
4516
  /**
5743
4517
  * Insufficient permissions
5744
4518
  */
5745
- 403: OpenAiApiError;
4519
+ 403: BodhiApiError;
5746
4520
  /**
5747
4521
  * Token not found
5748
4522
  */
5749
- 404: OpenAiApiError;
4523
+ 404: BodhiApiError;
5750
4524
  /**
5751
4525
  * Internal server error
5752
4526
  */
5753
- 500: OpenAiApiError;
4527
+ 500: BodhiApiError;
5754
4528
  };
5755
4529
 
5756
4530
  export type UpdateApiTokenError = UpdateApiTokenErrors[keyof UpdateApiTokenErrors];
@@ -5775,19 +4549,19 @@ export type GetCurrentUserErrors = {
5775
4549
  /**
5776
4550
  * Invalid request parameters
5777
4551
  */
5778
- 400: OpenAiApiError;
4552
+ 400: BodhiApiError;
5779
4553
  /**
5780
4554
  * Not authenticated
5781
4555
  */
5782
- 401: OpenAiApiError;
4556
+ 401: BodhiApiError;
5783
4557
  /**
5784
4558
  * Insufficient permissions
5785
4559
  */
5786
- 403: OpenAiApiError;
4560
+ 403: BodhiApiError;
5787
4561
  /**
5788
4562
  * Internal server error
5789
4563
  */
5790
- 500: OpenAiApiError;
4564
+ 500: BodhiApiError;
5791
4565
  };
5792
4566
 
5793
4567
  export type GetCurrentUserError = GetCurrentUserErrors[keyof GetCurrentUserErrors];
@@ -5812,27 +4586,27 @@ export type RequestUserAccessErrors = {
5812
4586
  /**
5813
4587
  * Invalid request parameters
5814
4588
  */
5815
- 400: OpenAiApiError;
4589
+ 400: BodhiApiError;
5816
4590
  /**
5817
4591
  * Not authenticated
5818
4592
  */
5819
- 401: OpenAiApiError;
4593
+ 401: BodhiApiError;
5820
4594
  /**
5821
4595
  * Insufficient permissions
5822
4596
  */
5823
- 403: OpenAiApiError;
4597
+ 403: BodhiApiError;
5824
4598
  /**
5825
4599
  * Pending request already exists
5826
4600
  */
5827
- 409: OpenAiApiError;
4601
+ 409: BodhiApiError;
5828
4602
  /**
5829
4603
  * User already has role
5830
4604
  */
5831
- 422: OpenAiApiError;
4605
+ 422: BodhiApiError;
5832
4606
  /**
5833
4607
  * Internal server error
5834
4608
  */
5835
- 500: OpenAiApiError;
4609
+ 500: BodhiApiError;
5836
4610
  };
5837
4611
 
5838
4612
  export type RequestUserAccessError = RequestUserAccessErrors[keyof RequestUserAccessErrors];
@@ -5855,23 +4629,23 @@ export type GetUserAccessStatusErrors = {
5855
4629
  /**
5856
4630
  * Invalid request parameters
5857
4631
  */
5858
- 400: OpenAiApiError;
4632
+ 400: BodhiApiError;
5859
4633
  /**
5860
4634
  * Not authenticated
5861
4635
  */
5862
- 401: OpenAiApiError;
4636
+ 401: BodhiApiError;
5863
4637
  /**
5864
4638
  * Insufficient permissions
5865
4639
  */
5866
- 403: OpenAiApiError;
4640
+ 403: BodhiApiError;
5867
4641
  /**
5868
4642
  * Request not found
5869
4643
  */
5870
- 404: OpenAiApiError;
4644
+ 404: BodhiApiError;
5871
4645
  /**
5872
4646
  * Internal server error
5873
4647
  */
5874
- 500: OpenAiApiError;
4648
+ 500: BodhiApiError;
5875
4649
  };
5876
4650
 
5877
4651
  export type GetUserAccessStatusError = GetUserAccessStatusErrors[keyof GetUserAccessStatusErrors];
@@ -5905,19 +4679,19 @@ export type ListUsersErrors = {
5905
4679
  /**
5906
4680
  * Invalid request parameters
5907
4681
  */
5908
- 400: OpenAiApiError;
4682
+ 400: BodhiApiError;
5909
4683
  /**
5910
4684
  * Not authenticated
5911
4685
  */
5912
- 401: OpenAiApiError;
4686
+ 401: BodhiApiError;
5913
4687
  /**
5914
4688
  * Insufficient permissions
5915
4689
  */
5916
- 403: OpenAiApiError;
4690
+ 403: BodhiApiError;
5917
4691
  /**
5918
4692
  * Internal server error
5919
4693
  */
5920
- 500: OpenAiApiError;
4694
+ 500: BodhiApiError;
5921
4695
  };
5922
4696
 
5923
4697
  export type ListUsersError = ListUsersErrors[keyof ListUsersErrors];
@@ -5947,23 +4721,23 @@ export type RemoveUserErrors = {
5947
4721
  /**
5948
4722
  * Invalid request parameters
5949
4723
  */
5950
- 400: OpenAiApiError;
4724
+ 400: BodhiApiError;
5951
4725
  /**
5952
4726
  * Not authenticated
5953
4727
  */
5954
- 401: OpenAiApiError;
4728
+ 401: BodhiApiError;
5955
4729
  /**
5956
4730
  * Insufficient permissions
5957
4731
  */
5958
- 403: OpenAiApiError;
4732
+ 403: BodhiApiError;
5959
4733
  /**
5960
4734
  * User not found
5961
4735
  */
5962
- 404: OpenAiApiError;
4736
+ 404: BodhiApiError;
5963
4737
  /**
5964
4738
  * Internal server error
5965
4739
  */
5966
- 500: OpenAiApiError;
4740
+ 500: BodhiApiError;
5967
4741
  };
5968
4742
 
5969
4743
  export type RemoveUserError = RemoveUserErrors[keyof RemoveUserErrors];
@@ -5991,23 +4765,23 @@ export type ChangeUserRoleErrors = {
5991
4765
  /**
5992
4766
  * Invalid request parameters
5993
4767
  */
5994
- 400: OpenAiApiError;
4768
+ 400: BodhiApiError;
5995
4769
  /**
5996
4770
  * Not authenticated
5997
4771
  */
5998
- 401: OpenAiApiError;
4772
+ 401: BodhiApiError;
5999
4773
  /**
6000
4774
  * Insufficient permissions
6001
4775
  */
6002
- 403: OpenAiApiError;
4776
+ 403: BodhiApiError;
6003
4777
  /**
6004
4778
  * User not found
6005
4779
  */
6006
- 404: OpenAiApiError;
4780
+ 404: BodhiApiError;
6007
4781
  /**
6008
4782
  * Internal server error
6009
4783
  */
6010
- 500: OpenAiApiError;
4784
+ 500: BodhiApiError;
6011
4785
  };
6012
4786
 
6013
4787
  export type ChangeUserRoleError = ChangeUserRoleErrors[keyof ChangeUserRoleErrors];
@@ -6030,11 +4804,11 @@ export type HealthCheckErrors = {
6030
4804
  /**
6031
4805
  * Invalid request parameters
6032
4806
  */
6033
- 400: OpenAiApiError;
4807
+ 400: BodhiApiError;
6034
4808
  /**
6035
4809
  * Internal server error
6036
4810
  */
6037
- 500: OpenAiApiError;
4811
+ 500: BodhiApiError;
6038
4812
  };
6039
4813
 
6040
4814
  export type HealthCheckError = HealthCheckErrors[keyof HealthCheckErrors];
@@ -6059,11 +4833,11 @@ export type PingServerErrors = {
6059
4833
  /**
6060
4834
  * Invalid request parameters
6061
4835
  */
6062
- 400: OpenAiApiError;
4836
+ 400: BodhiApiError;
6063
4837
  /**
6064
4838
  * Internal server error
6065
4839
  */
6066
- 500: OpenAiApiError;
4840
+ 500: BodhiApiError;
6067
4841
  };
6068
4842
 
6069
4843
  export type PingServerError = PingServerErrors[keyof PingServerErrors];
@@ -6077,167 +4851,6 @@ export type PingServerResponses = {
6077
4851
 
6078
4852
  export type PingServerResponse = PingServerResponses[keyof PingServerResponses];
6079
4853
 
6080
- export type CreateChatCompletionData = {
6081
- body: CreateChatCompletionRequest;
6082
- path?: never;
6083
- query?: never;
6084
- url: '/v1/chat/completions';
6085
- };
6086
-
6087
- export type CreateChatCompletionErrors = {
6088
- /**
6089
- * Invalid request parameters
6090
- */
6091
- 400: OpenAiApiError;
6092
- /**
6093
- * Not authenticated
6094
- */
6095
- 401: OpenAiApiError;
6096
- /**
6097
- * Insufficient permissions
6098
- */
6099
- 403: OpenAiApiError;
6100
- /**
6101
- * Internal server error
6102
- */
6103
- 500: OpenAiApiError;
6104
- };
6105
-
6106
- export type CreateChatCompletionError = CreateChatCompletionErrors[keyof CreateChatCompletionErrors];
6107
-
6108
- export type CreateChatCompletionResponses = {
6109
- /**
6110
- * Chat completion response
6111
- */
6112
- 200: CreateChatCompletionResponse;
6113
- /**
6114
- * Chat completion stream, the status is 200, using 201 to avoid OpenAPI format limitation.
6115
- */
6116
- 201: CreateChatCompletionStreamResponse;
6117
- };
6118
-
6119
- export type CreateChatCompletionResponse2 = CreateChatCompletionResponses[keyof CreateChatCompletionResponses];
6120
-
6121
- export type CreateEmbeddingData = {
6122
- body: CreateEmbeddingRequest;
6123
- path?: never;
6124
- query?: never;
6125
- url: '/v1/embeddings';
6126
- };
6127
-
6128
- export type CreateEmbeddingErrors = {
6129
- /**
6130
- * Invalid request parameters
6131
- */
6132
- 400: OpenAiApiError;
6133
- /**
6134
- * Not authenticated
6135
- */
6136
- 401: OpenAiApiError;
6137
- /**
6138
- * Insufficient permissions
6139
- */
6140
- 403: OpenAiApiError;
6141
- /**
6142
- * Internal server error
6143
- */
6144
- 500: OpenAiApiError;
6145
- };
6146
-
6147
- export type CreateEmbeddingError = CreateEmbeddingErrors[keyof CreateEmbeddingErrors];
6148
-
6149
- export type CreateEmbeddingResponses = {
6150
- /**
6151
- * Embedding response
6152
- */
6153
- 200: CreateEmbeddingResponse;
6154
- };
6155
-
6156
- export type CreateEmbeddingResponse2 = CreateEmbeddingResponses[keyof CreateEmbeddingResponses];
6157
-
6158
- export type ListModelsData = {
6159
- body?: never;
6160
- path?: never;
6161
- query?: never;
6162
- url: '/v1/models';
6163
- };
6164
-
6165
- export type ListModelsErrors = {
6166
- /**
6167
- * Invalid request parameters
6168
- */
6169
- 400: OpenAiApiError;
6170
- /**
6171
- * Not authenticated
6172
- */
6173
- 401: OpenAiApiError;
6174
- /**
6175
- * Insufficient permissions
6176
- */
6177
- 403: OpenAiApiError;
6178
- /**
6179
- * Internal server error
6180
- */
6181
- 500: OpenAiApiError;
6182
- };
6183
-
6184
- export type ListModelsError = ListModelsErrors[keyof ListModelsErrors];
6185
-
6186
- export type ListModelsResponses = {
6187
- /**
6188
- * List of available models
6189
- */
6190
- 200: ListModelResponse;
6191
- };
6192
-
6193
- export type ListModelsResponse = ListModelsResponses[keyof ListModelsResponses];
6194
-
6195
- export type GetModelData = {
6196
- body?: never;
6197
- path: {
6198
- /**
6199
- * Model identifier - can be user alias (e.g., 'llama2:chat'), model alias, or API provider alias
6200
- */
6201
- id: string;
6202
- };
6203
- query?: never;
6204
- url: '/v1/models/{id}';
6205
- };
6206
-
6207
- export type GetModelErrors = {
6208
- /**
6209
- * Invalid request parameters
6210
- */
6211
- 400: OpenAiApiError;
6212
- /**
6213
- * Not authenticated
6214
- */
6215
- 401: OpenAiApiError;
6216
- /**
6217
- * Insufficient permissions
6218
- */
6219
- 403: OpenAiApiError;
6220
- /**
6221
- * Model not found
6222
- */
6223
- 404: OpenAiApiError;
6224
- /**
6225
- * Internal server error
6226
- */
6227
- 500: OpenAiApiError;
6228
- };
6229
-
6230
- export type GetModelError = GetModelErrors[keyof GetModelErrors];
6231
-
6232
- export type GetModelResponses = {
6233
- /**
6234
- * Model details
6235
- */
6236
- 200: Model;
6237
- };
6238
-
6239
- export type GetModelResponse = GetModelResponses[keyof GetModelResponses];
6240
-
6241
4854
  export type ClientOptions = {
6242
4855
  baseUrl: 'http://localhost:1135' | (string & {});
6243
4856
  };