@tanstack/ai-vercel-gateway 0.2.20 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
- import { OpenAIBaseResponsesTextAdapter } from '@tanstack/openai-base';
1
+ import { OpenAIBaseResponsesTextAdapter, OpenAIBaseTextAdapterOptions } from '@tanstack/openai-base';
2
2
  import { Modality, TextOptions } from '@tanstack/ai';
3
3
  import { ResponseCreateParams } from 'openai/resources/responses/responses';
4
4
  import { VERCEL_GATEWAY_CHAT_MODELS, VercelGatewayChatModelToolCapabilitiesByName, ResolveInputModalities, ResolveProviderOptions } from '../model-meta.js';
5
5
  import { VercelGatewayMessageMetadataByModality } from '../message-types.js';
6
6
  import { ExternalResponsesProviderOptions } from '../text/responses-provider-options.js';
7
7
  import { VercelGatewayClientConfig } from '../utils/client.js';
8
- export interface VercelGatewayResponsesTextConfig extends VercelGatewayClientConfig {
8
+ export interface VercelGatewayResponsesTextConfig extends VercelGatewayClientConfig, OpenAIBaseTextAdapterOptions {
9
9
  }
10
10
  export type VercelGatewayResponsesTextProviderOptions = ExternalResponsesProviderOptions;
11
11
  type ResolveToolCapabilities<TModel extends string> = TModel extends keyof VercelGatewayChatModelToolCapabilitiesByName ? NonNullable<VercelGatewayChatModelToolCapabilitiesByName[TModel]> : readonly [];
@@ -13,7 +13,7 @@ var VercelGatewayResponsesTextAdapter = class extends OpenAIBaseResponsesTextAda
13
13
  kind = "text";
14
14
  name = "vercel-gateway";
15
15
  constructor(config, model) {
16
- super(model, "vercel-gateway", new OpenAI(withVercelGatewayDefaults(config)));
16
+ super(model, "vercel-gateway", new OpenAI(withVercelGatewayDefaults(config)), config);
17
17
  }
18
18
  mapOptionsToRequest(options) {
19
19
  const { gateway: _gateway, ...rest } = super.mapOptionsToRequest({
@@ -1 +1 @@
1
- {"version":3,"file":"responses-text.js","names":[],"sources":["../../../src/adapters/responses-text.ts"],"sourcesContent":["import OpenAI from 'openai'\nimport { OpenAIBaseResponsesTextAdapter } from '@tanstack/openai-base'\nimport {\n getVercelGatewayApiKeyFromEnv,\n withVercelGatewayDefaults,\n} from '../utils/client'\nimport { mapGatewayModelOptions } from '../utils/map-gateway-options'\nimport type { Modality, TextOptions } from '@tanstack/ai'\nimport type { ResponseCreateParams } from 'openai/resources/responses/responses'\nimport type {\n VERCEL_GATEWAY_CHAT_MODELS,\n VercelGatewayChatModelToolCapabilitiesByName,\n ResolveInputModalities,\n ResolveProviderOptions,\n} from '../model-meta'\nimport type { VercelGatewayMessageMetadataByModality } from '../message-types'\nimport type { ExternalResponsesProviderOptions } from '../text/responses-provider-options'\nimport type { VercelGatewayClientConfig } from '../utils/client'\n\nexport interface VercelGatewayResponsesTextConfig extends VercelGatewayClientConfig {}\n\nexport type VercelGatewayResponsesTextProviderOptions =\n ExternalResponsesProviderOptions\n\ntype ResolveToolCapabilities<TModel extends string> =\n TModel extends keyof VercelGatewayChatModelToolCapabilitiesByName\n ? NonNullable<VercelGatewayChatModelToolCapabilitiesByName[TModel]>\n : readonly []\n\n/**\n * Vercel AI Gateway Responses text adapter.\n *\n * Talks to the public OpenAI-compatible Responses API at\n * `https://ai-gateway.vercel.sh/v1`.\n */\nexport class VercelGatewayResponsesTextAdapter<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n TProviderOptions extends Record<string, any> = ResolveProviderOptions<TModel>,\n TInputModalities extends ReadonlyArray<Modality> =\n ResolveInputModalities<TModel>,\n TToolCapabilities extends ReadonlyArray<string> =\n ResolveToolCapabilities<TModel>,\n> extends OpenAIBaseResponsesTextAdapter<\n TModel,\n TProviderOptions,\n TInputModalities,\n VercelGatewayMessageMetadataByModality,\n TToolCapabilities\n> {\n override readonly kind = 'text' as const\n override readonly name = 'vercel-gateway' as const\n\n constructor(config: VercelGatewayResponsesTextConfig, model: TModel) {\n super(\n model,\n 'vercel-gateway',\n new OpenAI(withVercelGatewayDefaults(config)),\n )\n }\n\n protected override mapOptionsToRequest(\n options: TextOptions<TProviderOptions>,\n ): Omit<ResponseCreateParams, 'stream'> {\n const request = super.mapOptionsToRequest({\n ...options,\n modelOptions: mapGatewayModelOptions(\n options.modelOptions as Record<string, unknown> | undefined,\n ) as TProviderOptions,\n })\n const { gateway: _gateway, ...rest } = request as typeof request & {\n gateway?: unknown\n }\n void _gateway\n return rest\n }\n}\n\nexport function createVercelGatewayResponsesText<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n>(\n model: TModel,\n apiKey: string,\n config?: Omit<VercelGatewayResponsesTextConfig, 'apiKey'>,\n): VercelGatewayResponsesTextAdapter<TModel> {\n return new VercelGatewayResponsesTextAdapter({ apiKey, ...config }, model)\n}\n\nexport function vercelGatewayResponsesText<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n>(\n model: TModel,\n config?: Omit<VercelGatewayResponsesTextConfig, 'apiKey'>,\n): VercelGatewayResponsesTextAdapter<TModel> {\n return createVercelGatewayResponsesText(\n model,\n getVercelGatewayApiKeyFromEnv(),\n config,\n )\n}\n"],"mappings":";;;;;;;;;;;AAmCA,IAAa,oCAAb,cAOU,+BAMR;CACA,OAAyB;CACzB,OAAyB;CAEzB,YAAY,QAA0C,OAAe;EACnE,MACE,OACA,kBACA,IAAI,OAAO,0BAA0B,MAAM,CAAC,CAC9C;CACF;CAEA,oBACE,SACsC;EAOtC,MAAM,EAAE,SAAS,UAAU,GAAG,SANd,MAAM,oBAAoB;GACxC,GAAG;GACH,cAAc,uBACZ,QAAQ,YACV;EACF,CACuC;EAIvC,OAAO;CACT;AACF;AAEA,SAAgB,iCAGd,OACA,QACA,QAC2C;CAC3C,OAAO,IAAI,kCAAkC;EAAE;EAAQ,GAAG;CAAO,GAAG,KAAK;AAC3E;AAEA,SAAgB,2BAGd,OACA,QAC2C;CAC3C,OAAO,iCACL,OACA,8BAA8B,GAC9B,MACF;AACF"}
1
+ {"version":3,"file":"responses-text.js","names":[],"sources":["../../../src/adapters/responses-text.ts"],"sourcesContent":["import OpenAI from 'openai'\nimport { OpenAIBaseResponsesTextAdapter } from '@tanstack/openai-base'\nimport {\n getVercelGatewayApiKeyFromEnv,\n withVercelGatewayDefaults,\n} from '../utils/client'\nimport { mapGatewayModelOptions } from '../utils/map-gateway-options'\nimport type { Modality, TextOptions } from '@tanstack/ai'\nimport type { ResponseCreateParams } from 'openai/resources/responses/responses'\nimport type {\n VERCEL_GATEWAY_CHAT_MODELS,\n VercelGatewayChatModelToolCapabilitiesByName,\n ResolveInputModalities,\n ResolveProviderOptions,\n} from '../model-meta'\nimport type { VercelGatewayMessageMetadataByModality } from '../message-types'\nimport type { ExternalResponsesProviderOptions } from '../text/responses-provider-options'\nimport type { VercelGatewayClientConfig } from '../utils/client'\nimport type { OpenAIBaseTextAdapterOptions } from '@tanstack/openai-base'\n\nexport interface VercelGatewayResponsesTextConfig\n extends VercelGatewayClientConfig, OpenAIBaseTextAdapterOptions {}\n\nexport type VercelGatewayResponsesTextProviderOptions =\n ExternalResponsesProviderOptions\n\ntype ResolveToolCapabilities<TModel extends string> =\n TModel extends keyof VercelGatewayChatModelToolCapabilitiesByName\n ? NonNullable<VercelGatewayChatModelToolCapabilitiesByName[TModel]>\n : readonly []\n\n/**\n * Vercel AI Gateway Responses text adapter.\n *\n * Talks to the public OpenAI-compatible Responses API at\n * `https://ai-gateway.vercel.sh/v1`.\n */\nexport class VercelGatewayResponsesTextAdapter<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n TProviderOptions extends Record<string, any> = ResolveProviderOptions<TModel>,\n TInputModalities extends ReadonlyArray<Modality> =\n ResolveInputModalities<TModel>,\n TToolCapabilities extends ReadonlyArray<string> =\n ResolveToolCapabilities<TModel>,\n> extends OpenAIBaseResponsesTextAdapter<\n TModel,\n TProviderOptions,\n TInputModalities,\n VercelGatewayMessageMetadataByModality,\n TToolCapabilities\n> {\n override readonly kind = 'text' as const\n override readonly name = 'vercel-gateway' as const\n\n constructor(config: VercelGatewayResponsesTextConfig, model: TModel) {\n super(\n model,\n 'vercel-gateway',\n new OpenAI(withVercelGatewayDefaults(config)),\n config,\n )\n }\n\n protected override mapOptionsToRequest(\n options: TextOptions<TProviderOptions>,\n ): Omit<ResponseCreateParams, 'stream'> {\n const request = super.mapOptionsToRequest({\n ...options,\n modelOptions: mapGatewayModelOptions(\n options.modelOptions as Record<string, unknown> | undefined,\n ) as TProviderOptions,\n })\n const { gateway: _gateway, ...rest } = request as typeof request & {\n gateway?: unknown\n }\n void _gateway\n return rest\n }\n}\n\nexport function createVercelGatewayResponsesText<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n>(\n model: TModel,\n apiKey: string,\n config?: Omit<VercelGatewayResponsesTextConfig, 'apiKey'>,\n): VercelGatewayResponsesTextAdapter<TModel> {\n return new VercelGatewayResponsesTextAdapter({ apiKey, ...config }, model)\n}\n\nexport function vercelGatewayResponsesText<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n>(\n model: TModel,\n config?: Omit<VercelGatewayResponsesTextConfig, 'apiKey'>,\n): VercelGatewayResponsesTextAdapter<TModel> {\n return createVercelGatewayResponsesText(\n model,\n getVercelGatewayApiKeyFromEnv(),\n config,\n )\n}\n"],"mappings":";;;;;;;;;;;AAqCA,IAAa,oCAAb,cAOU,+BAMR;CACA,OAAyB;CACzB,OAAyB;CAEzB,YAAY,QAA0C,OAAe;EACnE,MACE,OACA,kBACA,IAAI,OAAO,0BAA0B,MAAM,CAAC,GAC5C,MACF;CACF;CAEA,oBACE,SACsC;EAOtC,MAAM,EAAE,SAAS,UAAU,GAAG,SANd,MAAM,oBAAoB;GACxC,GAAG;GACH,cAAc,uBACZ,QAAQ,YACV;EACF,CACuC;EAIvC,OAAO;CACT;AACF;AAEA,SAAgB,iCAGd,OACA,QACA,QAC2C;CAC3C,OAAO,IAAI,kCAAkC;EAAE;EAAQ,GAAG;CAAO,GAAG,KAAK;AAC3E;AAEA,SAAgB,2BAGd,OACA,QAC2C;CAC3C,OAAO,iCACL,OACA,8BAA8B,GAC9B,MACF;AACF"}
@@ -1,11 +1,11 @@
1
1
  import { default as OpenAI } from 'openai';
2
- import { OpenAIBaseChatCompletionsTextAdapter } from '@tanstack/openai-base';
2
+ import { OpenAIBaseChatCompletionsTextAdapter, OpenAIBaseTextAdapterOptions } from '@tanstack/openai-base';
3
3
  import { Modality, TextOptions } from '@tanstack/ai';
4
4
  import { VERCEL_GATEWAY_CHAT_MODELS, VercelGatewayChatModelToolCapabilitiesByName, ResolveInputModalities, ResolveProviderOptions } from '../model-meta.js';
5
5
  import { VercelGatewayMessageMetadataByModality } from '../message-types.js';
6
6
  import { VercelGatewayClientConfig } from '../utils/client.js';
7
7
  type ResolveToolCapabilities<TModel extends string> = TModel extends keyof VercelGatewayChatModelToolCapabilitiesByName ? NonNullable<VercelGatewayChatModelToolCapabilitiesByName[TModel]> : readonly [];
8
- export interface VercelGatewayTextConfig extends VercelGatewayClientConfig {
8
+ export interface VercelGatewayTextConfig extends VercelGatewayClientConfig, OpenAIBaseTextAdapterOptions {
9
9
  }
10
10
  export type { ExternalTextProviderOptions as VercelGatewayTextProviderOptions } from '../text/text-provider-options.js';
11
11
  /**
@@ -13,7 +13,7 @@ var VercelGatewayTextAdapter = class extends OpenAIBaseChatCompletionsTextAdapte
13
13
  kind = "text";
14
14
  name = "vercel-gateway";
15
15
  constructor(config, model) {
16
- super(model, "vercel-gateway", new OpenAI(withVercelGatewayDefaults(config)));
16
+ super(model, "vercel-gateway", new OpenAI(withVercelGatewayDefaults(config)), config);
17
17
  }
18
18
  mapOptionsToRequest(options) {
19
19
  const { gateway: _gateway, ...rest } = super.mapOptionsToRequest({
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","names":[],"sources":["../../../src/adapters/text.ts"],"sourcesContent":["import OpenAI from 'openai'\nimport { OpenAIBaseChatCompletionsTextAdapter } from '@tanstack/openai-base'\nimport { withVercelGatewayDefaults } from '../utils/client'\nimport { mapGatewayModelOptions } from '../utils/map-gateway-options'\nimport type { Modality, TextOptions } from '@tanstack/ai'\nimport type {\n VERCEL_GATEWAY_CHAT_MODELS,\n VercelGatewayChatModelToolCapabilitiesByName,\n ResolveInputModalities,\n ResolveProviderOptions,\n} from '../model-meta'\nimport type { VercelGatewayMessageMetadataByModality } from '../message-types'\nimport type { VercelGatewayClientConfig } from '../utils/client'\n\ntype ResolveToolCapabilities<TModel extends string> =\n TModel extends keyof VercelGatewayChatModelToolCapabilitiesByName\n ? NonNullable<VercelGatewayChatModelToolCapabilitiesByName[TModel]>\n : readonly []\n\nexport interface VercelGatewayTextConfig extends VercelGatewayClientConfig {}\n\nexport type { ExternalTextProviderOptions as VercelGatewayTextProviderOptions } from '../text/text-provider-options'\n\n/**\n * Vercel AI Gateway text adapter.\n *\n * Talks to the public OpenAI-compatible Chat Completions API at\n * `https://ai-gateway.vercel.sh/v1`.\n */\nexport class VercelGatewayTextAdapter<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n TProviderOptions extends Record<string, any> = ResolveProviderOptions<TModel>,\n TInputModalities extends ReadonlyArray<Modality> =\n ResolveInputModalities<TModel>,\n TToolCapabilities extends ReadonlyArray<string> =\n ResolveToolCapabilities<TModel>,\n> extends OpenAIBaseChatCompletionsTextAdapter<\n TModel,\n TProviderOptions,\n TInputModalities,\n VercelGatewayMessageMetadataByModality,\n TToolCapabilities\n> {\n override readonly kind = 'text' as const\n override readonly name = 'vercel-gateway' as const\n\n constructor(config: VercelGatewayTextConfig, model: TModel) {\n super(\n model,\n 'vercel-gateway',\n new OpenAI(withVercelGatewayDefaults(config)),\n )\n }\n\n protected override mapOptionsToRequest(options: TextOptions) {\n const request = super.mapOptionsToRequest({\n ...options,\n modelOptions: mapGatewayModelOptions(\n options.modelOptions as Record<string, unknown> | undefined,\n ) as TextOptions['modelOptions'],\n })\n const { gateway: _gateway, ...rest } = request as typeof request & {\n gateway?: unknown\n }\n void _gateway\n return rest\n }\n}\n"],"mappings":";;;;;;;;;;;AA6BA,IAAa,2BAAb,cAOU,qCAMR;CACA,OAAyB;CACzB,OAAyB;CAEzB,YAAY,QAAiC,OAAe;EAC1D,MACE,OACA,kBACA,IAAI,OAAO,0BAA0B,MAAM,CAAC,CAC9C;CACF;CAEA,oBAAuC,SAAsB;EAO3D,MAAM,EAAE,SAAS,UAAU,GAAG,SANd,MAAM,oBAAoB;GACxC,GAAG;GACH,cAAc,uBACZ,QAAQ,YACV;EACF,CACuC;EAIvC,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"text.js","names":[],"sources":["../../../src/adapters/text.ts"],"sourcesContent":["import OpenAI from 'openai'\nimport { OpenAIBaseChatCompletionsTextAdapter } from '@tanstack/openai-base'\nimport { withVercelGatewayDefaults } from '../utils/client'\nimport { mapGatewayModelOptions } from '../utils/map-gateway-options'\nimport type { Modality, TextOptions } from '@tanstack/ai'\nimport type {\n VERCEL_GATEWAY_CHAT_MODELS,\n VercelGatewayChatModelToolCapabilitiesByName,\n ResolveInputModalities,\n ResolveProviderOptions,\n} from '../model-meta'\nimport type { VercelGatewayMessageMetadataByModality } from '../message-types'\nimport type { VercelGatewayClientConfig } from '../utils/client'\nimport type { OpenAIBaseTextAdapterOptions } from '@tanstack/openai-base'\n\ntype ResolveToolCapabilities<TModel extends string> =\n TModel extends keyof VercelGatewayChatModelToolCapabilitiesByName\n ? NonNullable<VercelGatewayChatModelToolCapabilitiesByName[TModel]>\n : readonly []\n\nexport interface VercelGatewayTextConfig\n extends VercelGatewayClientConfig, OpenAIBaseTextAdapterOptions {}\n\nexport type { ExternalTextProviderOptions as VercelGatewayTextProviderOptions } from '../text/text-provider-options'\n\n/**\n * Vercel AI Gateway text adapter.\n *\n * Talks to the public OpenAI-compatible Chat Completions API at\n * `https://ai-gateway.vercel.sh/v1`.\n */\nexport class VercelGatewayTextAdapter<\n TModel extends (typeof VERCEL_GATEWAY_CHAT_MODELS)[number],\n TProviderOptions extends Record<string, any> = ResolveProviderOptions<TModel>,\n TInputModalities extends ReadonlyArray<Modality> =\n ResolveInputModalities<TModel>,\n TToolCapabilities extends ReadonlyArray<string> =\n ResolveToolCapabilities<TModel>,\n> extends OpenAIBaseChatCompletionsTextAdapter<\n TModel,\n TProviderOptions,\n TInputModalities,\n VercelGatewayMessageMetadataByModality,\n TToolCapabilities\n> {\n override readonly kind = 'text' as const\n override readonly name = 'vercel-gateway' as const\n\n constructor(config: VercelGatewayTextConfig, model: TModel) {\n super(\n model,\n 'vercel-gateway',\n new OpenAI(withVercelGatewayDefaults(config)),\n config,\n )\n }\n\n protected override mapOptionsToRequest(options: TextOptions) {\n const request = super.mapOptionsToRequest({\n ...options,\n modelOptions: mapGatewayModelOptions(\n options.modelOptions as Record<string, unknown> | undefined,\n ) as TextOptions['modelOptions'],\n })\n const { gateway: _gateway, ...rest } = request as typeof request & {\n gateway?: unknown\n }\n void _gateway\n return rest\n }\n}\n"],"mappings":";;;;;;;;;;;AA+BA,IAAa,2BAAb,cAOU,qCAMR;CACA,OAAyB;CACzB,OAAyB;CAEzB,YAAY,QAAiC,OAAe;EAC1D,MACE,OACA,kBACA,IAAI,OAAO,0BAA0B,MAAM,CAAC,GAC5C,MACF;CACF;CAEA,oBAAuC,SAAsB;EAO3D,MAAM,EAAE,SAAS,UAAU,GAAG,SANd,MAAM,oBAAoB;GACxC,GAAG;GACH,cAAc,uBACZ,QAAQ,YACV;EACF,CACuC;EAIvC,OAAO;CACT;AACF"}
@@ -1,9 +1,9 @@
1
1
  import { VercelGatewayEmbeddingProviderOptions } from './embedding/embedding-provider-options.js';
2
2
  import { VercelGatewayImageProviderOptions, VercelGatewayImageSize } from './image/image-provider-options.js';
3
3
  import { VercelGatewayBaseOptions, VercelGatewayCommonOptions, VercelGatewayTextProviderOptions } from './text/text-provider-options.js';
4
- export declare const VERCEL_GATEWAY_CHAT_MODELS: readonly ["alibaba/qwen-3-14b", "alibaba/qwen-3-235b", "alibaba/qwen-3-30b", "alibaba/qwen-3-32b", "alibaba/qwen-3.6-max-preview", "alibaba/qwen3-235b-a22b-thinking", "alibaba/qwen3-coder", "alibaba/qwen3-coder-30b-a3b", "alibaba/qwen3-coder-next", "alibaba/qwen3-coder-plus", "alibaba/qwen3-max", "alibaba/qwen3-max-preview", "alibaba/qwen3-max-thinking", "alibaba/qwen3-next-80b-a3b-instruct", "alibaba/qwen3-next-80b-a3b-thinking", "alibaba/qwen3-vl-235b-a22b-instruct", "alibaba/qwen3-vl-instruct", "alibaba/qwen3-vl-thinking", "alibaba/qwen3.5-flash", "alibaba/qwen3.5-plus", "alibaba/qwen3.6-27b", "alibaba/qwen3.6-plus", "alibaba/qwen3.7-flash", "alibaba/qwen3.7-max", "alibaba/qwen3.7-plus", "alibaba/qwen3.8-2.4t-a95b", "alibaba/qwen3.8-27b", "alibaba/qwen3.8-flash", "alibaba/qwen3.8-max", "alibaba/qwen3.8-max-0902", "alibaba/qwen3.8-max-prime", "alibaba/qwen3.8-omni-flash", "amazon/nova-2-lite", "amazon/nova-lite", "amazon/nova-micro", "amazon/nova-pro", "anthropic/claude-3-haiku", "anthropic/claude-fable-5", "anthropic/claude-fable-5.1", "anthropic/claude-haiku-4.5", "anthropic/claude-opus-4", "anthropic/claude-opus-4.5", "anthropic/claude-opus-4.6", "anthropic/claude-opus-4.7", "anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8-fast", "anthropic/claude-opus-5", "anthropic/claude-opus-5-fast", "anthropic/claude-opus-5.5", "anthropic/claude-opus-5.5-fast", "anthropic/claude-sonnet-4", "anthropic/claude-sonnet-4.5", "anthropic/claude-sonnet-4.6", "anthropic/claude-sonnet-5", "arcee-ai/trinity-large-thinking", "bytedance/seed-1.6", "bytedance/seed-1.8", "bytedance/seed-2.1-turbo", "cohere/command-a", "deepseek/deepseek-r1", "deepseek/deepseek-v3.1", "deepseek/deepseek-v3.1-terminus", "deepseek/deepseek-v3.2", "deepseek/deepseek-v3.2-thinking", "deepseek/deepseek-v4-flash", "deepseek/deepseek-v4-flash-0731", "deepseek/deepseek-v4-flash-vision-exp", "deepseek/deepseek-v4-pro", "deepseek/deepseek-v4-pro-0813", "deepseek/deepseek-v4.1-flash", "fish-audio/s1", "fish-audio/s2-pro", "fish-audio/s2.1-pro", "fish-audio/transcribe-1", "google/gemini-2.5-flash", "google/gemini-2.5-flash-image", "google/gemini-2.5-flash-lite", "google/gemini-2.5-pro", "google/gemini-3-flash", "google/gemini-3-pro-image", "google/gemini-3.1-flash-image", "google/gemini-3.1-flash-image-preview", "google/gemini-3.1-flash-lite", "google/gemini-3.1-flash-lite-image", "google/gemini-3.1-pro-preview", "google/gemini-3.5-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.5-transcribe", "google/gemini-3.5-transcribe-live", "google/gemini-3.6-flash", "google/gemini-3.7-flash", "google/gemini-3.8-flash", "google/gemini-3.8-flash-lite-tts", "google/gemini-3.8-flash-tts", "google/gemini-3.8-live", "google/gemini-3.8-live-extended-thinking", "google/gemini-omni-flash-preview", "google/gemma-4-26b-a4b-it", "google/gemma-4-31b-it", "inception/mercury-2", "inception/mercury-2.5", "inception/mercury-coder-small", "inclusionai/ling-3.0-flash", "inclusionai/ling-3.0-flash-fin", "inclusionai/ling-3.0-flash-fin-free", "inclusionai/ling-3.0-flash-sante", "inclusionai/ling-3.0-flash-sante-free", "inclusionai/ling-3.0-flash-vl", "inference-net/schematron-v2-small", "inference-net/schematron-v2-turbo", "interfaze/interfaze-beta", "meta/llama-3.1-70b", "meta/llama-3.1-8b", "meta/llama-3.3-70b", "meta/llama-4-maverick", "meta/llama-4-scout", "meta/muse-glimmer-30b", "meta/muse-spark-1.1", "meta/muse-spark-1.2", "meta/muse-spark-1.2-contributor", "meta/muse-spark-1.3", "meta/muse-spark-1.3-contributor", "minimax/minimax-m2", "minimax/minimax-m2.1", "minimax/minimax-m2.1-lightning", "minimax/minimax-m2.5", "minimax/minimax-m2.5-highspeed", "minimax/minimax-m2.7", "minimax/minimax-m2.7-highspeed", "minimax/minimax-m3", "mistral/codestral", "mistral/ministral-14b", "mistral/ministral-3b", "mistral/ministral-8b", "mistral/mistral-large-3", "mistral/mistral-medium-3.5", "mistral/mistral-nemo", "mistral/mistral-small", "mixedbread/toast-1", "moonshotai/kimi-k2", "moonshotai/kimi-k2-thinking", "moonshotai/kimi-k2.5", "moonshotai/kimi-k2.6", "moonshotai/kimi-k2.7-code", "moonshotai/kimi-k2.7-code-highspeed", "moonshotai/kimi-k3", "moonshotai/kimi-k3-fast", "morph/morph-v3-fast", "morph/morph-v3-large", "nvidia/nemotron-3-nano-30b-a3b", "nvidia/nemotron-3-super-120b-a12b", "nvidia/nemotron-3-ultra-550b-a55b", "nvidia/nemotron-3.5-lightning", "nvidia/nemotron-nano-12b-v2-vl", "nvidia/nemotron-nano-9b-v2", "openai/gpt-3.5-turbo", "openai/gpt-4-turbo", "openai/gpt-4.1", "openai/gpt-4.1-fast", "openai/gpt-4.1-mini", "openai/gpt-4.1-mini-fast", "openai/gpt-4.1-nano", "openai/gpt-4.1-nano-fast", "openai/gpt-4o", "openai/gpt-4o-fast", "openai/gpt-4o-mini", "openai/gpt-4o-mini-fast", "openai/gpt-4o-mini-transcribe", "openai/gpt-4o-transcribe", "openai/gpt-5", "openai/gpt-5-codex", "openai/gpt-5-fast", "openai/gpt-5-mini", "openai/gpt-5-mini-fast", "openai/gpt-5-nano", "openai/gpt-5-pro", "openai/gpt-5.1-codex", "openai/gpt-5.1-codex-max", "openai/gpt-5.1-codex-mini", "openai/gpt-5.1-thinking", "openai/gpt-5.1-thinking-fast", "openai/gpt-5.2", "openai/gpt-5.2-codex", "openai/gpt-5.2-fast", "openai/gpt-5.2-pro", "openai/gpt-5.3-codex", "openai/gpt-5.3-codex-fast", "openai/gpt-5.4", "openai/gpt-5.4-fast", "openai/gpt-5.4-mini", "openai/gpt-5.4-mini-fast", "openai/gpt-5.4-nano", "openai/gpt-5.4-pro", "openai/gpt-5.5", "openai/gpt-5.5-fast", "openai/gpt-5.5-pro", "openai/gpt-5.6-luna", "openai/gpt-5.6-luna-fast", "openai/gpt-5.6-sol", "openai/gpt-5.6-sol-fast", "openai/gpt-5.6-terra", "openai/gpt-5.6-terra-fast", "openai/gpt-6-astra", "openai/gpt-6-astra-fast", "openai/gpt-6-luna", "openai/gpt-6-luna-fast", "openai/gpt-6-sol", "openai/gpt-6-sol-fast", "openai/gpt-live-1", "openai/gpt-oss-120b", "openai/gpt-oss-20b", "openai/gpt-oss-safeguard-120b", "openai/gpt-oss-safeguard-20b", "openai/gpt-realtime-1.5", "openai/gpt-realtime-2", "openai/gpt-realtime-2.1", "openai/gpt-realtime-mini", "openai/gpt-realtime-whisper", "openai/o1", "openai/o3", "openai/o3-fast", "openai/o3-mini", "openai/o3-pro", "openai/o4-mini", "openai/o4-mini-fast", "openai/tts-1", "openai/tts-1-hd", "openai/whisper-1", "perplexity/sonar", "perplexity/sonar-pro", "perplexity/sonar-reasoning-pro", "poolside/laguna-s-2.1", "poolside/laguna-s-2.1-free", "quiverai/arrow-2", "quiverai/arrow-2-telos", "sakana/fugu-max", "sakana/fugu-ultra", "sakana/fugu-ultra-v2", "sakana/namazu", "spacexai/grok-4.1-fast-non-reasoning", "spacexai/grok-4.1-fast-reasoning", "spacexai/grok-4.20-multi-agent", "spacexai/grok-4.20-multi-agent-beta", "spacexai/grok-4.20-non-reasoning", "spacexai/grok-4.20-non-reasoning-beta", "spacexai/grok-4.20-reasoning", "spacexai/grok-4.20-reasoning-beta", "spacexai/grok-4.3", "spacexai/grok-4.5", "spacexai/grok-4.6", "spacexai/grok-4.7", "spacexai/grok-build-0.1", "spacexai/grok-stt", "spacexai/grok-tts", "spacexai/grok-voice-think-fast-1.0", "spacexai/grok-voice-think-fast-2.0", "stepfun/step-3.5-flash", "stepfun/step-3.7-flash", "stepfun/step-5-preview", "tencent/hy-mt2-lite", "tencent/hy-mt2-plus", "tencent/hy-mt2-pro", "tencent/hy3", "tencent/hy4-preview", "thinkingmachines/inkling", "thinkingmachines/inkling-small", "typesafe-ai/jev", "xiaomi/mimo-v2.5", "xiaomi/mimo-v2.5-pro", "xiaomi/mimo-v2.6-flash", "xiaomi/mimo-v2.6-pro", "xiaomi/mimo-v2.6-pro-ultraspeed", "zai/glm-4.5", "zai/glm-4.5-air", "zai/glm-4.5v", "zai/glm-4.6", "zai/glm-4.7", "zai/glm-4.7-flash", "zai/glm-4.7-flashx", "zai/glm-5", "zai/glm-5-turbo", "zai/glm-5.1", "zai/glm-5.2", "zai/glm-5.2-fast", "zai/glm-5.3", "zai/glm-5.3-fast", "zai/glm-5.3-flash", "zai/glm-5.3-flashx", "zai/glm-5v-turbo"];
4
+ export declare const VERCEL_GATEWAY_CHAT_MODELS: readonly ["alibaba/qwen-3-14b", "alibaba/qwen-3-235b", "alibaba/qwen-3-30b", "alibaba/qwen-3-32b", "alibaba/qwen-3.6-max-preview", "alibaba/qwen3-235b-a22b-thinking", "alibaba/qwen3-coder", "alibaba/qwen3-coder-30b-a3b", "alibaba/qwen3-coder-next", "alibaba/qwen3-coder-plus", "alibaba/qwen3-max", "alibaba/qwen3-max-preview", "alibaba/qwen3-max-thinking", "alibaba/qwen3-next-80b-a3b-instruct", "alibaba/qwen3-next-80b-a3b-thinking", "alibaba/qwen3-vl-235b-a22b-instruct", "alibaba/qwen3-vl-instruct", "alibaba/qwen3-vl-thinking", "alibaba/qwen3.5-flash", "alibaba/qwen3.5-plus", "alibaba/qwen3.6-27b", "alibaba/qwen3.6-plus", "alibaba/qwen3.7-flash", "alibaba/qwen3.7-max", "alibaba/qwen3.7-plus", "alibaba/qwen3.8-2.4t-a95b", "alibaba/qwen3.8-27b", "alibaba/qwen3.8-flash", "alibaba/qwen3.8-max", "alibaba/qwen3.8-max-0902", "alibaba/qwen3.8-max-prime", "alibaba/qwen3.8-omni-flash", "amazon/nova-2-lite", "amazon/nova-lite", "amazon/nova-micro", "amazon/nova-pro", "anthropic/claude-3-haiku", "anthropic/claude-fable-5", "anthropic/claude-fable-5.1", "anthropic/claude-haiku-4.5", "anthropic/claude-opus-4", "anthropic/claude-opus-4.5", "anthropic/claude-opus-4.6", "anthropic/claude-opus-4.7", "anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8-fast", "anthropic/claude-opus-5", "anthropic/claude-opus-5-fast", "anthropic/claude-opus-5.5", "anthropic/claude-opus-5.5-fast", "anthropic/claude-sonnet-4", "anthropic/claude-sonnet-4.5", "anthropic/claude-sonnet-4.6", "anthropic/claude-sonnet-5", "arcee-ai/trinity-large-thinking", "bytedance/seed-1.6", "bytedance/seed-1.8", "bytedance/seed-2.1-turbo", "cohere/command-a", "deepseek/deepseek-r1", "deepseek/deepseek-v3.1", "deepseek/deepseek-v3.1-terminus", "deepseek/deepseek-v3.2", "deepseek/deepseek-v3.2-thinking", "deepseek/deepseek-v4-flash", "deepseek/deepseek-v4-flash-0731", "deepseek/deepseek-v4-flash-vision-exp", "deepseek/deepseek-v4-pro", "deepseek/deepseek-v4-pro-0813", "deepseek/deepseek-v4.1-flash", "fireworks/ember-1", "fish-audio/s1", "fish-audio/s2-pro", "fish-audio/s2.1-pro", "fish-audio/transcribe-1", "google/gemini-2.5-flash", "google/gemini-2.5-flash-image", "google/gemini-2.5-flash-lite", "google/gemini-2.5-pro", "google/gemini-3-flash", "google/gemini-3-pro-image", "google/gemini-3.1-flash-image", "google/gemini-3.1-flash-image-preview", "google/gemini-3.1-flash-lite", "google/gemini-3.1-flash-lite-image", "google/gemini-3.1-pro-preview", "google/gemini-3.5-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.5-transcribe", "google/gemini-3.5-transcribe-live", "google/gemini-3.6-flash", "google/gemini-3.7-flash", "google/gemini-3.8-flash", "google/gemini-3.8-flash-lite-tts", "google/gemini-3.8-flash-tts", "google/gemini-3.8-live", "google/gemini-3.8-live-extended-thinking", "google/gemini-omni-flash-preview", "google/gemma-4-26b-a4b-it", "google/gemma-4-31b-it", "inception/mercury-2", "inception/mercury-2.5", "inception/mercury-coder-small", "inclusionai/ling-3.0-flash", "inclusionai/ling-3.0-flash-fin", "inclusionai/ling-3.0-flash-fin-free", "inclusionai/ling-3.0-flash-sante", "inclusionai/ling-3.0-flash-sante-free", "inclusionai/ling-3.0-flash-vl", "inference-net/schematron-v2-small", "inference-net/schematron-v2-turbo", "interfaze/interfaze-beta", "meta/llama-3.1-70b", "meta/llama-3.1-8b", "meta/llama-3.3-70b", "meta/llama-4-maverick", "meta/llama-4-scout", "meta/muse-glimmer-30b", "meta/muse-spark-1.1", "meta/muse-spark-1.2", "meta/muse-spark-1.2-contributor", "meta/muse-spark-1.3", "meta/muse-spark-1.3-contributor", "minimax/minimax-m2", "minimax/minimax-m2.1", "minimax/minimax-m2.1-lightning", "minimax/minimax-m2.5", "minimax/minimax-m2.5-highspeed", "minimax/minimax-m2.7", "minimax/minimax-m2.7-highspeed", "minimax/minimax-m3", "mistral/codestral", "mistral/ministral-14b", "mistral/ministral-3b", "mistral/ministral-8b", "mistral/mistral-large-3", "mistral/mistral-medium-3.5", "mistral/mistral-nemo", "mistral/mistral-small", "mixedbread/toast-1", "moonshotai/kimi-k2", "moonshotai/kimi-k2-thinking", "moonshotai/kimi-k2.5", "moonshotai/kimi-k2.6", "moonshotai/kimi-k2.7-code", "moonshotai/kimi-k2.7-code-highspeed", "moonshotai/kimi-k3", "moonshotai/kimi-k3-fast", "morph/morph-v3-fast", "morph/morph-v3-large", "nvidia/nemotron-3-nano-30b-a3b", "nvidia/nemotron-3-super-120b-a12b", "nvidia/nemotron-3-ultra-550b-a55b", "nvidia/nemotron-3.5-lightning", "nvidia/nemotron-nano-12b-v2-vl", "nvidia/nemotron-nano-9b-v2", "openai/gpt-3.5-turbo", "openai/gpt-4-turbo", "openai/gpt-4.1", "openai/gpt-4.1-fast", "openai/gpt-4.1-mini", "openai/gpt-4.1-mini-fast", "openai/gpt-4.1-nano", "openai/gpt-4.1-nano-fast", "openai/gpt-4o", "openai/gpt-4o-fast", "openai/gpt-4o-mini", "openai/gpt-4o-mini-fast", "openai/gpt-4o-mini-transcribe", "openai/gpt-4o-transcribe", "openai/gpt-5", "openai/gpt-5-codex", "openai/gpt-5-fast", "openai/gpt-5-mini", "openai/gpt-5-mini-fast", "openai/gpt-5-nano", "openai/gpt-5-pro", "openai/gpt-5.1-codex", "openai/gpt-5.1-codex-max", "openai/gpt-5.1-codex-mini", "openai/gpt-5.1-thinking", "openai/gpt-5.1-thinking-fast", "openai/gpt-5.2", "openai/gpt-5.2-codex", "openai/gpt-5.2-fast", "openai/gpt-5.2-pro", "openai/gpt-5.3-codex", "openai/gpt-5.3-codex-fast", "openai/gpt-5.4", "openai/gpt-5.4-fast", "openai/gpt-5.4-mini", "openai/gpt-5.4-mini-fast", "openai/gpt-5.4-nano", "openai/gpt-5.4-pro", "openai/gpt-5.5", "openai/gpt-5.5-fast", "openai/gpt-5.5-pro", "openai/gpt-5.6-luna", "openai/gpt-5.6-luna-fast", "openai/gpt-5.6-sol", "openai/gpt-5.6-sol-fast", "openai/gpt-5.6-terra", "openai/gpt-5.6-terra-fast", "openai/gpt-6-astra", "openai/gpt-6-astra-fast", "openai/gpt-6-luna", "openai/gpt-6-luna-fast", "openai/gpt-6-sol", "openai/gpt-6-sol-fast", "openai/gpt-live-1", "openai/gpt-oss-120b", "openai/gpt-oss-20b", "openai/gpt-oss-safeguard-120b", "openai/gpt-oss-safeguard-20b", "openai/gpt-realtime-1.5", "openai/gpt-realtime-2", "openai/gpt-realtime-2.1", "openai/gpt-realtime-mini", "openai/gpt-realtime-whisper", "openai/o1", "openai/o3", "openai/o3-fast", "openai/o3-mini", "openai/o3-pro", "openai/o4-mini", "openai/o4-mini-fast", "openai/tts-1", "openai/tts-1-hd", "openai/whisper-1", "perplexity/sonar", "perplexity/sonar-pro", "perplexity/sonar-reasoning-pro", "poolside/laguna-s-2.1", "poolside/laguna-s-2.1-free", "quiverai/arrow-2", "quiverai/arrow-2-telos", "sakana/fugu-max", "sakana/fugu-ultra", "sakana/fugu-ultra-v2", "sakana/namazu", "spacexai/grok-4.1-fast-non-reasoning", "spacexai/grok-4.1-fast-reasoning", "spacexai/grok-4.20-multi-agent", "spacexai/grok-4.20-multi-agent-beta", "spacexai/grok-4.20-non-reasoning", "spacexai/grok-4.20-non-reasoning-beta", "spacexai/grok-4.20-reasoning", "spacexai/grok-4.20-reasoning-beta", "spacexai/grok-4.3", "spacexai/grok-4.5", "spacexai/grok-4.6", "spacexai/grok-4.7", "spacexai/grok-build-0.1", "spacexai/grok-stt", "spacexai/grok-tts", "spacexai/grok-voice-think-fast-1.0", "spacexai/grok-voice-think-fast-2.0", "stepfun/step-3.5-flash", "stepfun/step-3.7-flash", "stepfun/step-5-preview", "tencent/hy-mt2-lite", "tencent/hy-mt2-plus", "tencent/hy-mt2-pro", "tencent/hy3", "tencent/hy4-preview", "thinkingmachines/inkling", "thinkingmachines/inkling-small", "typesafe-ai/jev", "xiaomi/mimo-v2.5", "xiaomi/mimo-v2.5-pro", "xiaomi/mimo-v2.6-flash", "xiaomi/mimo-v2.6-pro", "xiaomi/mimo-v2.6-pro-ultraspeed", "zai/glm-4.5", "zai/glm-4.5-air", "zai/glm-4.5v", "zai/glm-4.6", "zai/glm-4.7", "zai/glm-4.7-flash", "zai/glm-4.7-flashx", "zai/glm-5", "zai/glm-5-turbo", "zai/glm-5.1", "zai/glm-5.2", "zai/glm-5.2-fast", "zai/glm-5.3", "zai/glm-5.3-fast", "zai/glm-5.3-flash", "zai/glm-5.3-flashx", "zai/glm-5v-turbo"];
5
5
  export type VercelGatewayChatModel = (typeof VERCEL_GATEWAY_CHAT_MODELS)[number];
6
- export declare const VERCEL_GATEWAY_PROVIDERS: readonly ["alibaba", "amazon", "anthropic", "arcee-ai", "bfl", "bytedance", "cohere", "deepseek", "fish-audio", "google", "inception", "inclusionai", "inference-net", "interfaze", "klingai", "meta", "minimax", "mistral", "mixedbread", "moonshotai", "morph", "nvidia", "openai", "perplexity", "poolside", "prodia", "quiverai", "recraft", "sakana", "spacexai", "stepfun", "tencent", "thinkingmachines", "typesafe-ai", "voyage", "xiaomi", "zai"];
6
+ export declare const VERCEL_GATEWAY_PROVIDERS: readonly ["alibaba", "amazon", "anthropic", "arcee-ai", "bfl", "bytedance", "cohere", "deepseek", "fireworks", "fish-audio", "google", "inception", "inclusionai", "inference-net", "interfaze", "klingai", "meta", "minimax", "mistral", "mixedbread", "moonshotai", "morph", "nvidia", "openai", "perplexity", "poolside", "prodia", "quiverai", "recraft", "sakana", "spacexai", "stepfun", "tencent", "thinkingmachines", "typesafe-ai", "voyage", "xiaomi", "zai"];
7
7
  export type VercelGatewayProvider = (typeof VERCEL_GATEWAY_PROVIDERS)[number];
8
8
  export declare const VERCEL_GATEWAY_MODEL_TAGS: readonly ["audio-input", "explicit-caching", "fast", "file-input", "free", "image-generation", "implicit-caching", "reasoning", "structured-output", "tool-use", "video-generation", "video-input", "vision", "web-search", "websocket-realtime", "websocket-transcription"];
9
9
  export type VercelGatewayModelTag = (typeof VERCEL_GATEWAY_MODEL_TAGS)[number];
@@ -82,6 +82,7 @@ export type VercelGatewayChatModelProviderOptionsByName = {
82
82
  'deepseek/deepseek-v4-pro': VercelGatewayCommonOptions & Pick<VercelGatewayBaseOptions, 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop' | 'reasoning' | 'include_reasoning' | 'response_format' | 'structured_outputs'>;
83
83
  'deepseek/deepseek-v4-pro-0813': VercelGatewayCommonOptions & Pick<VercelGatewayBaseOptions, 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop' | 'reasoning' | 'include_reasoning' | 'response_format' | 'structured_outputs'>;
84
84
  'deepseek/deepseek-v4.1-flash': VercelGatewayCommonOptions & Pick<VercelGatewayBaseOptions, 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop' | 'reasoning' | 'include_reasoning' | 'response_format' | 'structured_outputs'>;
85
+ 'fireworks/ember-1': VercelGatewayCommonOptions & Pick<VercelGatewayBaseOptions, 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop' | 'reasoning' | 'include_reasoning'>;
85
86
  'fish-audio/s1': VercelGatewayCommonOptions;
86
87
  'fish-audio/s2-pro': VercelGatewayCommonOptions;
87
88
  'fish-audio/s2.1-pro': VercelGatewayCommonOptions;
@@ -373,6 +374,7 @@ export type VercelGatewayModelInputModalitiesByName = {
373
374
  'deepseek/deepseek-v4-pro': readonly ['text'];
374
375
  'deepseek/deepseek-v4-pro-0813': readonly ['text'];
375
376
  'deepseek/deepseek-v4.1-flash': readonly ['text', 'image'];
377
+ 'fireworks/ember-1': readonly ['text', 'image'];
376
378
  'fish-audio/s1': readonly ['text'];
377
379
  'fish-audio/s2-pro': readonly ['text'];
378
380
  'fish-audio/s2.1-pro': readonly ['text'];
@@ -70,6 +70,7 @@ var VERCEL_GATEWAY_CHAT_MODELS = [
70
70
  "deepseek/deepseek-v4-pro",
71
71
  "deepseek/deepseek-v4-pro-0813",
72
72
  "deepseek/deepseek-v4.1-flash",
73
+ "fireworks/ember-1",
73
74
  "fish-audio/s1",
74
75
  "fish-audio/s2-pro",
75
76
  "fish-audio/s2.1-pro",
@@ -299,6 +300,7 @@ var VERCEL_GATEWAY_PROVIDERS = [
299
300
  "bytedance",
300
301
  "cohere",
301
302
  "deepseek",
303
+ "fireworks",
302
304
  "fish-audio",
303
305
  "google",
304
306
  "inception",
@@ -1 +1 @@
1
- {"version":3,"file":"model-meta.js","names":[],"sources":["../../src/model-meta.ts"],"sourcesContent":["/**\n * This file is generated by scripts/convert-vercel-gateway-models.ts. Do not edit by hand.\n */\n\nimport type { VercelGatewayEmbeddingProviderOptions } from './embedding/embedding-provider-options'\nimport type {\n VercelGatewayImageProviderOptions,\n VercelGatewayImageSize,\n} from './image/image-provider-options'\nimport type {\n VercelGatewayBaseOptions,\n VercelGatewayCommonOptions,\n VercelGatewayTextProviderOptions,\n} from './text/text-provider-options'\n\nexport const VERCEL_GATEWAY_CHAT_MODELS = [\n 'alibaba/qwen-3-14b',\n 'alibaba/qwen-3-235b',\n 'alibaba/qwen-3-30b',\n 'alibaba/qwen-3-32b',\n 'alibaba/qwen-3.6-max-preview',\n 'alibaba/qwen3-235b-a22b-thinking',\n 'alibaba/qwen3-coder',\n 'alibaba/qwen3-coder-30b-a3b',\n 'alibaba/qwen3-coder-next',\n 'alibaba/qwen3-coder-plus',\n 'alibaba/qwen3-max',\n 'alibaba/qwen3-max-preview',\n 'alibaba/qwen3-max-thinking',\n 'alibaba/qwen3-next-80b-a3b-instruct',\n 'alibaba/qwen3-next-80b-a3b-thinking',\n 'alibaba/qwen3-vl-235b-a22b-instruct',\n 'alibaba/qwen3-vl-instruct',\n 'alibaba/qwen3-vl-thinking',\n 'alibaba/qwen3.5-flash',\n 'alibaba/qwen3.5-plus',\n 'alibaba/qwen3.6-27b',\n 'alibaba/qwen3.6-plus',\n 'alibaba/qwen3.7-flash',\n 'alibaba/qwen3.7-max',\n 'alibaba/qwen3.7-plus',\n 'alibaba/qwen3.8-2.4t-a95b',\n 'alibaba/qwen3.8-27b',\n 'alibaba/qwen3.8-flash',\n 'alibaba/qwen3.8-max',\n 'alibaba/qwen3.8-max-0902',\n 'alibaba/qwen3.8-max-prime',\n 'alibaba/qwen3.8-omni-flash',\n 'amazon/nova-2-lite',\n 'amazon/nova-lite',\n 'amazon/nova-micro',\n 'amazon/nova-pro',\n 'anthropic/claude-3-haiku',\n 'anthropic/claude-fable-5',\n 'anthropic/claude-fable-5.1',\n 'anthropic/claude-haiku-4.5',\n 'anthropic/claude-opus-4',\n 'anthropic/claude-opus-4.5',\n 'anthropic/claude-opus-4.6',\n 'anthropic/claude-opus-4.7',\n 'anthropic/claude-opus-4.8',\n 'anthropic/claude-opus-4.8-fast',\n 'anthropic/claude-opus-5',\n 'anthropic/claude-opus-5-fast',\n 'anthropic/claude-opus-5.5',\n 'anthropic/claude-opus-5.5-fast',\n 'anthropic/claude-sonnet-4',\n 'anthropic/claude-sonnet-4.5',\n 'anthropic/claude-sonnet-4.6',\n 'anthropic/claude-sonnet-5',\n 'arcee-ai/trinity-large-thinking',\n 'bytedance/seed-1.6',\n 'bytedance/seed-1.8',\n 'bytedance/seed-2.1-turbo',\n 'cohere/command-a',\n 'deepseek/deepseek-r1',\n 'deepseek/deepseek-v3.1',\n 'deepseek/deepseek-v3.1-terminus',\n 'deepseek/deepseek-v3.2',\n 'deepseek/deepseek-v3.2-thinking',\n 'deepseek/deepseek-v4-flash',\n 'deepseek/deepseek-v4-flash-0731',\n 'deepseek/deepseek-v4-flash-vision-exp',\n 'deepseek/deepseek-v4-pro',\n 'deepseek/deepseek-v4-pro-0813',\n 'deepseek/deepseek-v4.1-flash',\n 'fish-audio/s1',\n 'fish-audio/s2-pro',\n 'fish-audio/s2.1-pro',\n 'fish-audio/transcribe-1',\n 'google/gemini-2.5-flash',\n 'google/gemini-2.5-flash-image',\n 'google/gemini-2.5-flash-lite',\n 'google/gemini-2.5-pro',\n 'google/gemini-3-flash',\n 'google/gemini-3-pro-image',\n 'google/gemini-3.1-flash-image',\n 'google/gemini-3.1-flash-image-preview',\n 'google/gemini-3.1-flash-lite',\n 'google/gemini-3.1-flash-lite-image',\n 'google/gemini-3.1-pro-preview',\n 'google/gemini-3.5-flash',\n 'google/gemini-3.5-flash-lite',\n 'google/gemini-3.5-transcribe',\n 'google/gemini-3.5-transcribe-live',\n 'google/gemini-3.6-flash',\n 'google/gemini-3.7-flash',\n 'google/gemini-3.8-flash',\n 'google/gemini-3.8-flash-lite-tts',\n 'google/gemini-3.8-flash-tts',\n 'google/gemini-3.8-live',\n 'google/gemini-3.8-live-extended-thinking',\n 'google/gemini-omni-flash-preview',\n 'google/gemma-4-26b-a4b-it',\n 'google/gemma-4-31b-it',\n 'inception/mercury-2',\n 'inception/mercury-2.5',\n 'inception/mercury-coder-small',\n 'inclusionai/ling-3.0-flash',\n 'inclusionai/ling-3.0-flash-fin',\n 'inclusionai/ling-3.0-flash-fin-free',\n 'inclusionai/ling-3.0-flash-sante',\n 'inclusionai/ling-3.0-flash-sante-free',\n 'inclusionai/ling-3.0-flash-vl',\n 'inference-net/schematron-v2-small',\n 'inference-net/schematron-v2-turbo',\n 'interfaze/interfaze-beta',\n 'meta/llama-3.1-70b',\n 'meta/llama-3.1-8b',\n 'meta/llama-3.3-70b',\n 'meta/llama-4-maverick',\n 'meta/llama-4-scout',\n 'meta/muse-glimmer-30b',\n 'meta/muse-spark-1.1',\n 'meta/muse-spark-1.2',\n 'meta/muse-spark-1.2-contributor',\n 'meta/muse-spark-1.3',\n 'meta/muse-spark-1.3-contributor',\n 'minimax/minimax-m2',\n 'minimax/minimax-m2.1',\n 'minimax/minimax-m2.1-lightning',\n 'minimax/minimax-m2.5',\n 'minimax/minimax-m2.5-highspeed',\n 'minimax/minimax-m2.7',\n 'minimax/minimax-m2.7-highspeed',\n 'minimax/minimax-m3',\n 'mistral/codestral',\n 'mistral/ministral-14b',\n 'mistral/ministral-3b',\n 'mistral/ministral-8b',\n 'mistral/mistral-large-3',\n 'mistral/mistral-medium-3.5',\n 'mistral/mistral-nemo',\n 'mistral/mistral-small',\n 'mixedbread/toast-1',\n 'moonshotai/kimi-k2',\n 'moonshotai/kimi-k2-thinking',\n 'moonshotai/kimi-k2.5',\n 'moonshotai/kimi-k2.6',\n 'moonshotai/kimi-k2.7-code',\n 'moonshotai/kimi-k2.7-code-highspeed',\n 'moonshotai/kimi-k3',\n 'moonshotai/kimi-k3-fast',\n 'morph/morph-v3-fast',\n 'morph/morph-v3-large',\n 'nvidia/nemotron-3-nano-30b-a3b',\n 'nvidia/nemotron-3-super-120b-a12b',\n 'nvidia/nemotron-3-ultra-550b-a55b',\n 'nvidia/nemotron-3.5-lightning',\n 'nvidia/nemotron-nano-12b-v2-vl',\n 'nvidia/nemotron-nano-9b-v2',\n 'openai/gpt-3.5-turbo',\n 'openai/gpt-4-turbo',\n 'openai/gpt-4.1',\n 'openai/gpt-4.1-fast',\n 'openai/gpt-4.1-mini',\n 'openai/gpt-4.1-mini-fast',\n 'openai/gpt-4.1-nano',\n 'openai/gpt-4.1-nano-fast',\n 'openai/gpt-4o',\n 'openai/gpt-4o-fast',\n 'openai/gpt-4o-mini',\n 'openai/gpt-4o-mini-fast',\n 'openai/gpt-4o-mini-transcribe',\n 'openai/gpt-4o-transcribe',\n 'openai/gpt-5',\n 'openai/gpt-5-codex',\n 'openai/gpt-5-fast',\n 'openai/gpt-5-mini',\n 'openai/gpt-5-mini-fast',\n 'openai/gpt-5-nano',\n 'openai/gpt-5-pro',\n 'openai/gpt-5.1-codex',\n 'openai/gpt-5.1-codex-max',\n 'openai/gpt-5.1-codex-mini',\n 'openai/gpt-5.1-thinking',\n 'openai/gpt-5.1-thinking-fast',\n 'openai/gpt-5.2',\n 'openai/gpt-5.2-codex',\n 'openai/gpt-5.2-fast',\n 'openai/gpt-5.2-pro',\n 'openai/gpt-5.3-codex',\n 'openai/gpt-5.3-codex-fast',\n 'openai/gpt-5.4',\n 'openai/gpt-5.4-fast',\n 'openai/gpt-5.4-mini',\n 'openai/gpt-5.4-mini-fast',\n 'openai/gpt-5.4-nano',\n 'openai/gpt-5.4-pro',\n 'openai/gpt-5.5',\n 'openai/gpt-5.5-fast',\n 'openai/gpt-5.5-pro',\n 'openai/gpt-5.6-luna',\n 'openai/gpt-5.6-luna-fast',\n 'openai/gpt-5.6-sol',\n 'openai/gpt-5.6-sol-fast',\n 'openai/gpt-5.6-terra',\n 'openai/gpt-5.6-terra-fast',\n 'openai/gpt-6-astra',\n 'openai/gpt-6-astra-fast',\n 'openai/gpt-6-luna',\n 'openai/gpt-6-luna-fast',\n 'openai/gpt-6-sol',\n 'openai/gpt-6-sol-fast',\n 'openai/gpt-live-1',\n 'openai/gpt-oss-120b',\n 'openai/gpt-oss-20b',\n 'openai/gpt-oss-safeguard-120b',\n 'openai/gpt-oss-safeguard-20b',\n 'openai/gpt-realtime-1.5',\n 'openai/gpt-realtime-2',\n 'openai/gpt-realtime-2.1',\n 'openai/gpt-realtime-mini',\n 'openai/gpt-realtime-whisper',\n 'openai/o1',\n 'openai/o3',\n 'openai/o3-fast',\n 'openai/o3-mini',\n 'openai/o3-pro',\n 'openai/o4-mini',\n 'openai/o4-mini-fast',\n 'openai/tts-1',\n 'openai/tts-1-hd',\n 'openai/whisper-1',\n 'perplexity/sonar',\n 'perplexity/sonar-pro',\n 'perplexity/sonar-reasoning-pro',\n 'poolside/laguna-s-2.1',\n 'poolside/laguna-s-2.1-free',\n 'quiverai/arrow-2',\n 'quiverai/arrow-2-telos',\n 'sakana/fugu-max',\n 'sakana/fugu-ultra',\n 'sakana/fugu-ultra-v2',\n 'sakana/namazu',\n 'spacexai/grok-4.1-fast-non-reasoning',\n 'spacexai/grok-4.1-fast-reasoning',\n 'spacexai/grok-4.20-multi-agent',\n 'spacexai/grok-4.20-multi-agent-beta',\n 'spacexai/grok-4.20-non-reasoning',\n 'spacexai/grok-4.20-non-reasoning-beta',\n 'spacexai/grok-4.20-reasoning',\n 'spacexai/grok-4.20-reasoning-beta',\n 'spacexai/grok-4.3',\n 'spacexai/grok-4.5',\n 'spacexai/grok-4.6',\n 'spacexai/grok-4.7',\n 'spacexai/grok-build-0.1',\n 'spacexai/grok-stt',\n 'spacexai/grok-tts',\n 'spacexai/grok-voice-think-fast-1.0',\n 'spacexai/grok-voice-think-fast-2.0',\n 'stepfun/step-3.5-flash',\n 'stepfun/step-3.7-flash',\n 'stepfun/step-5-preview',\n 'tencent/hy-mt2-lite',\n 'tencent/hy-mt2-plus',\n 'tencent/hy-mt2-pro',\n 'tencent/hy3',\n 'tencent/hy4-preview',\n 'thinkingmachines/inkling',\n 'thinkingmachines/inkling-small',\n 'typesafe-ai/jev',\n 'xiaomi/mimo-v2.5',\n 'xiaomi/mimo-v2.5-pro',\n 'xiaomi/mimo-v2.6-flash',\n 'xiaomi/mimo-v2.6-pro',\n 'xiaomi/mimo-v2.6-pro-ultraspeed',\n 'zai/glm-4.5',\n 'zai/glm-4.5-air',\n 'zai/glm-4.5v',\n 'zai/glm-4.6',\n 'zai/glm-4.7',\n 'zai/glm-4.7-flash',\n 'zai/glm-4.7-flashx',\n 'zai/glm-5',\n 'zai/glm-5-turbo',\n 'zai/glm-5.1',\n 'zai/glm-5.2',\n 'zai/glm-5.2-fast',\n 'zai/glm-5.3',\n 'zai/glm-5.3-fast',\n 'zai/glm-5.3-flash',\n 'zai/glm-5.3-flashx',\n 'zai/glm-5v-turbo',\n] as const\n\nexport type VercelGatewayChatModel = (typeof VERCEL_GATEWAY_CHAT_MODELS)[number]\n\nexport const VERCEL_GATEWAY_PROVIDERS = [\n 'alibaba',\n 'amazon',\n 'anthropic',\n 'arcee-ai',\n 'bfl',\n 'bytedance',\n 'cohere',\n 'deepseek',\n 'fish-audio',\n 'google',\n 'inception',\n 'inclusionai',\n 'inference-net',\n 'interfaze',\n 'klingai',\n 'meta',\n 'minimax',\n 'mistral',\n 'mixedbread',\n 'moonshotai',\n 'morph',\n 'nvidia',\n 'openai',\n 'perplexity',\n 'poolside',\n 'prodia',\n 'quiverai',\n 'recraft',\n 'sakana',\n 'spacexai',\n 'stepfun',\n 'tencent',\n 'thinkingmachines',\n 'typesafe-ai',\n 'voyage',\n 'xiaomi',\n 'zai',\n] as const\n\nexport type VercelGatewayProvider = (typeof VERCEL_GATEWAY_PROVIDERS)[number]\n\nexport const VERCEL_GATEWAY_MODEL_TAGS = [\n 'audio-input',\n 'explicit-caching',\n 'fast',\n 'file-input',\n 'free',\n 'image-generation',\n 'implicit-caching',\n 'reasoning',\n 'structured-output',\n 'tool-use',\n 'video-generation',\n 'video-input',\n 'vision',\n 'web-search',\n 'websocket-realtime',\n 'websocket-transcription',\n] as const\n\nexport type VercelGatewayModelTag = (typeof VERCEL_GATEWAY_MODEL_TAGS)[number]\n\nexport const VERCEL_GATEWAY_EMBEDDING_MODELS = [\n 'alibaba/qwen3-embedding-0.6b',\n 'alibaba/qwen3-embedding-4b',\n 'alibaba/qwen3-embedding-8b',\n 'amazon/titan-embed-text-v2',\n 'cohere/embed-v4.0',\n 'google/gemini-embedding-001',\n 'google/gemini-embedding-2',\n 'google/text-embedding-005',\n 'google/text-multilingual-embedding-002',\n 'mistral/codestral-embed',\n 'mistral/mistral-embed',\n 'openai/text-embedding-3-large',\n 'openai/text-embedding-3-small',\n 'openai/text-embedding-ada-002',\n 'perplexity/pplx-embed-v1-0.6b',\n 'perplexity/pplx-embed-v1-4b',\n 'voyage/voyage-3-large',\n 'voyage/voyage-3.5',\n 'voyage/voyage-3.5-lite',\n 'voyage/voyage-4',\n 'voyage/voyage-4-large',\n 'voyage/voyage-4-lite',\n 'voyage/voyage-code-2',\n 'voyage/voyage-code-3',\n 'voyage/voyage-finance-2',\n 'voyage/voyage-law-2',\n] as const\n\nexport type VercelGatewayEmbeddingModel =\n (typeof VERCEL_GATEWAY_EMBEDDING_MODELS)[number]\n\nexport const VERCEL_GATEWAY_IMAGE_MODELS = [\n 'bfl/flux-2-flex',\n 'bfl/flux-2-klein-4b',\n 'bfl/flux-2-klein-9b',\n 'bfl/flux-2-max',\n 'bfl/flux-2-pro',\n 'bfl/flux-kontext-max',\n 'bfl/flux-kontext-pro',\n 'bfl/flux-pro-1.0-fill',\n 'bfl/flux-pro-1.1',\n 'bfl/flux-pro-1.1-ultra',\n 'bytedance/seedream-4.0',\n 'bytedance/seedream-4.5',\n 'bytedance/seedream-5.0-lite',\n 'bytedance/seedream-5.0-pro',\n 'meta/muse-image-1.0',\n 'openai/gpt-image-1',\n 'openai/gpt-image-1-mini',\n 'openai/gpt-image-1.5',\n 'openai/gpt-image-2',\n 'openai/gpt-image-2.5-flare',\n 'openai/gpt-image-2.5-sunburst',\n 'prodia/flux-fast-schnell',\n 'quiverai/arrow-1.1',\n 'recraft/recraft-v2',\n 'recraft/recraft-v3',\n 'recraft/recraft-v4',\n 'recraft/recraft-v4-pro',\n 'recraft/recraft-v4.1',\n 'recraft/recraft-v4.1-flash',\n 'recraft/recraft-v4.1-pro',\n 'recraft/recraft-v4.1-utility',\n 'recraft/recraft-v4.1-utility-pro',\n 'spacexai/grok-imagine-image',\n 'spacexai/grok-imagine-image-2.0',\n] as const\n\nexport type VercelGatewayImageModel =\n (typeof VERCEL_GATEWAY_IMAGE_MODELS)[number]\n\nexport type VercelGatewayChatModelProviderOptionsByName = {\n 'alibaba/qwen-3-14b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3-235b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3-30b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3-32b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3.6-max-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3-235b-a22b-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder-30b-a3b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder-next': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'alibaba/qwen3-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-max-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-max-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-next-80b-a3b-instruct': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-next-80b-a3b-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-vl-235b-a22b-instruct': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'alibaba/qwen3-vl-instruct': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-vl-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.5-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.6-27b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.6-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.7-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.7-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.8-2.4t-a95b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-27b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-max-0902': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-max-prime': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-omni-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-2-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-micro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-3-haiku': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-fable-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-fable-5.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-haiku-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'anthropic/claude-opus-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.8': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.8-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-5.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'anthropic/claude-opus-5.5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'anthropic/claude-sonnet-4': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-sonnet-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-sonnet-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-sonnet-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'arcee-ai/trinity-large-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'bytedance/seed-1.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'bytedance/seed-1.8': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'bytedance/seed-2.1-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'cohere/command-a': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-r1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'deepseek/deepseek-v3.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v3.1-terminus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v3.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'deepseek/deepseek-v3.2-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'deepseek/deepseek-v4-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-flash-0731': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-flash-vision-exp': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-pro-0813': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4.1-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'fish-audio/s1': VercelGatewayCommonOptions\n 'fish-audio/s2-pro': VercelGatewayCommonOptions\n 'fish-audio/s2.1-pro': VercelGatewayCommonOptions\n 'fish-audio/transcribe-1': VercelGatewayCommonOptions\n 'google/gemini-2.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-2.5-flash-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-2.5-flash-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-2.5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3-pro-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-image-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-lite-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-3.1-pro-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.5-flash-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.5-transcribe': VercelGatewayCommonOptions\n 'google/gemini-3.5-transcribe-live': VercelGatewayCommonOptions\n 'google/gemini-3.6-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.8-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.8-flash-lite-tts': VercelGatewayCommonOptions\n 'google/gemini-3.8-flash-tts': VercelGatewayCommonOptions\n 'google/gemini-3.8-live': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-3.8-live-extended-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-omni-flash-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemma-4-26b-a4b-it': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemma-4-31b-it': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inception/mercury-2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inception/mercury-2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inception/mercury-coder-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inclusionai/ling-3.0-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-fin': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inclusionai/ling-3.0-flash-fin-free': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-sante': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-sante-free': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-vl': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inference-net/schematron-v2-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inference-net/schematron-v2-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'interfaze/interfaze-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-3.1-70b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-3.1-8b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-3.3-70b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'meta/llama-4-maverick': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-4-scout': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-glimmer-30b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.2-contributor': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.3-contributor': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.1-lightning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.5-highspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.7-highspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/codestral': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/ministral-14b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/ministral-3b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'mistral/ministral-8b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-large-3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-medium-3.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-nemo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mixedbread/toast-1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'moonshotai/kimi-k2-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.7-code': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.7-code-highspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'morph/morph-v3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'morph/morph-v3-large': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-3-nano-30b-a3b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'nvidia/nemotron-3-super-120b-a12b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-3-ultra-550b-a55b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-3.5-lightning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-nano-12b-v2-vl': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-nano-9b-v2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-3.5-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-4-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-4.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-nano': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-nano-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-mini-transcribe': VercelGatewayCommonOptions\n 'openai/gpt-4o-transcribe': VercelGatewayCommonOptions\n 'openai/gpt-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-nano': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-5.1-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-codex-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-codex-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-thinking-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.3-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.3-codex-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-nano': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-luna': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-luna-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-sol': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-sol-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-terra': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-terra-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-astra': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-astra-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-luna': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-luna-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-sol': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-sol-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-live-1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-oss-120b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-oss-20b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-oss-safeguard-120b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-oss-safeguard-20b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-realtime-1.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-realtime-2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-realtime-2.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-realtime-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-realtime-whisper': VercelGatewayCommonOptions\n 'openai/o1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o4-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o4-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/tts-1': VercelGatewayCommonOptions\n 'openai/tts-1-hd': VercelGatewayCommonOptions\n 'openai/whisper-1': VercelGatewayCommonOptions\n 'perplexity/sonar': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'perplexity/sonar-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'perplexity/sonar-reasoning-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'poolside/laguna-s-2.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'poolside/laguna-s-2.1-free': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'quiverai/arrow-2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'quiverai/arrow-2-telos': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'sakana/fugu-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'sakana/fugu-ultra': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'sakana/fugu-ultra-v2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'sakana/namazu': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.1-fast-non-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.1-fast-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-multi-agent': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-multi-agent-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-non-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-non-reasoning-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-reasoning-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-build-0.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-stt': VercelGatewayCommonOptions\n 'spacexai/grok-tts': VercelGatewayCommonOptions\n 'spacexai/grok-voice-think-fast-1.0': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'spacexai/grok-voice-think-fast-2.0': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'stepfun/step-3.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'stepfun/step-3.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'stepfun/step-5-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy-mt2-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'tencent/hy-mt2-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy-mt2-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy4-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'thinkingmachines/inkling': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'thinkingmachines/inkling-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'typesafe-ai/jev': VercelGatewayCommonOptions\n 'xiaomi/mimo-v2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.6-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.6-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.6-pro-ultraspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.5-air': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.5v': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.7-flashx': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'zai/glm-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'zai/glm-5.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.2-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3-flashx': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5v-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n}\n\nexport type VercelGatewayModelInputModalitiesByName = {\n 'alibaba/qwen-3-14b': readonly ['text']\n 'alibaba/qwen-3-235b': readonly ['text']\n 'alibaba/qwen-3-30b': readonly ['text']\n 'alibaba/qwen-3-32b': readonly ['text']\n 'alibaba/qwen-3.6-max-preview': readonly ['text']\n 'alibaba/qwen3-235b-a22b-thinking': readonly ['text', 'image', 'document']\n 'alibaba/qwen3-coder': readonly ['text']\n 'alibaba/qwen3-coder-30b-a3b': readonly ['text']\n 'alibaba/qwen3-coder-next': readonly ['text']\n 'alibaba/qwen3-coder-plus': readonly ['text']\n 'alibaba/qwen3-max': readonly ['text']\n 'alibaba/qwen3-max-preview': readonly ['text']\n 'alibaba/qwen3-max-thinking': readonly ['text']\n 'alibaba/qwen3-next-80b-a3b-instruct': readonly ['text']\n 'alibaba/qwen3-next-80b-a3b-thinking': readonly ['text']\n 'alibaba/qwen3-vl-235b-a22b-instruct': readonly ['text', 'image']\n 'alibaba/qwen3-vl-instruct': readonly ['text', 'image']\n 'alibaba/qwen3-vl-thinking': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.5-flash': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.5-plus': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.6-27b': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.6-plus': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.7-flash': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.7-max': readonly ['text']\n 'alibaba/qwen3.7-plus': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.8-2.4t-a95b': readonly ['text', 'image']\n 'alibaba/qwen3.8-27b': readonly ['text', 'image', 'document', 'video']\n 'alibaba/qwen3.8-flash': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.8-max': readonly ['text', 'image']\n 'alibaba/qwen3.8-max-0902': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.8-max-prime': readonly ['text', 'image']\n 'alibaba/qwen3.8-omni-flash': readonly ['text', 'image']\n 'amazon/nova-2-lite': readonly ['text', 'image', 'document']\n 'amazon/nova-lite': readonly ['text', 'image', 'document']\n 'amazon/nova-micro': readonly ['text']\n 'amazon/nova-pro': readonly ['text', 'image', 'document']\n 'anthropic/claude-3-haiku': readonly ['text', 'image']\n 'anthropic/claude-fable-5': readonly ['text', 'image', 'document']\n 'anthropic/claude-fable-5.1': readonly ['text', 'image', 'document']\n 'anthropic/claude-haiku-4.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.6': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.7': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.8': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.8-fast': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5-fast': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5.5-fast': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-4': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-4.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-4.6': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-5': readonly ['text', 'image', 'document']\n 'arcee-ai/trinity-large-thinking': readonly ['text']\n 'bytedance/seed-1.6': readonly ['text', 'image']\n 'bytedance/seed-1.8': readonly ['text', 'image']\n 'bytedance/seed-2.1-turbo': readonly ['text', 'image', 'video']\n 'cohere/command-a': readonly ['text']\n 'deepseek/deepseek-r1': readonly ['text']\n 'deepseek/deepseek-v3.1': readonly ['text']\n 'deepseek/deepseek-v3.1-terminus': readonly ['text']\n 'deepseek/deepseek-v3.2': readonly ['text']\n 'deepseek/deepseek-v3.2-thinking': readonly ['text']\n 'deepseek/deepseek-v4-flash': readonly ['text']\n 'deepseek/deepseek-v4-flash-0731': readonly ['text']\n 'deepseek/deepseek-v4-flash-vision-exp': readonly ['text', 'image']\n 'deepseek/deepseek-v4-pro': readonly ['text']\n 'deepseek/deepseek-v4-pro-0813': readonly ['text']\n 'deepseek/deepseek-v4.1-flash': readonly ['text', 'image']\n 'fish-audio/s1': readonly ['text']\n 'fish-audio/s2-pro': readonly ['text']\n 'fish-audio/s2.1-pro': readonly ['text']\n 'fish-audio/transcribe-1': readonly ['text', 'audio']\n 'google/gemini-2.5-flash': readonly ['text', 'image', 'document']\n 'google/gemini-2.5-flash-image': readonly ['text', 'image']\n 'google/gemini-2.5-flash-lite': readonly ['text', 'image', 'document']\n 'google/gemini-2.5-pro': readonly ['text', 'image', 'document']\n 'google/gemini-3-flash': readonly ['text', 'image', 'document']\n 'google/gemini-3-pro-image': readonly ['text', 'image']\n 'google/gemini-3.1-flash-image': readonly ['text', 'image']\n 'google/gemini-3.1-flash-image-preview': readonly ['text', 'image']\n 'google/gemini-3.1-flash-lite': readonly ['text', 'image', 'document']\n 'google/gemini-3.1-flash-lite-image': readonly ['text', 'image']\n 'google/gemini-3.1-pro-preview': readonly ['text', 'image', 'document']\n 'google/gemini-3.5-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.5-flash-lite': readonly [\n 'text',\n 'image',\n 'document',\n 'video',\n ]\n 'google/gemini-3.5-transcribe': readonly ['text', 'audio']\n 'google/gemini-3.5-transcribe-live': readonly ['text', 'audio']\n 'google/gemini-3.6-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.7-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.8-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.8-flash-lite-tts': readonly ['text']\n 'google/gemini-3.8-flash-tts': readonly ['text']\n 'google/gemini-3.8-live': readonly ['text', 'audio']\n 'google/gemini-3.8-live-extended-thinking': readonly ['text', 'audio']\n 'google/gemini-omni-flash-preview': readonly [\n 'text',\n 'image',\n 'document',\n 'video',\n ]\n 'google/gemma-4-26b-a4b-it': readonly ['text', 'image', 'document']\n 'google/gemma-4-31b-it': readonly ['text', 'image', 'document']\n 'inception/mercury-2': readonly ['text']\n 'inception/mercury-2.5': readonly ['text']\n 'inception/mercury-coder-small': readonly ['text']\n 'inclusionai/ling-3.0-flash': readonly ['text']\n 'inclusionai/ling-3.0-flash-fin': readonly ['text']\n 'inclusionai/ling-3.0-flash-fin-free': readonly ['text']\n 'inclusionai/ling-3.0-flash-sante': readonly ['text']\n 'inclusionai/ling-3.0-flash-sante-free': readonly ['text']\n 'inclusionai/ling-3.0-flash-vl': readonly ['text', 'image', 'video']\n 'inference-net/schematron-v2-small': readonly ['text']\n 'inference-net/schematron-v2-turbo': readonly ['text']\n 'interfaze/interfaze-beta': readonly ['text', 'image', 'document']\n 'meta/llama-3.1-70b': readonly ['text']\n 'meta/llama-3.1-8b': readonly ['text']\n 'meta/llama-3.3-70b': readonly ['text']\n 'meta/llama-4-maverick': readonly ['text', 'image']\n 'meta/llama-4-scout': readonly ['text', 'image']\n 'meta/muse-glimmer-30b': readonly ['text', 'image']\n 'meta/muse-spark-1.1': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.2': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.2-contributor': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.3': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.3-contributor': readonly ['text', 'image', 'document']\n 'minimax/minimax-m2': readonly ['text']\n 'minimax/minimax-m2.1': readonly ['text']\n 'minimax/minimax-m2.1-lightning': readonly ['text']\n 'minimax/minimax-m2.5': readonly ['text']\n 'minimax/minimax-m2.5-highspeed': readonly ['text']\n 'minimax/minimax-m2.7': readonly ['text']\n 'minimax/minimax-m2.7-highspeed': readonly ['text']\n 'minimax/minimax-m3': readonly ['text', 'image', 'document']\n 'mistral/codestral': readonly ['text']\n 'mistral/ministral-14b': readonly ['text', 'image', 'document']\n 'mistral/ministral-3b': readonly ['text', 'image']\n 'mistral/ministral-8b': readonly ['text', 'image']\n 'mistral/mistral-large-3': readonly ['text', 'image']\n 'mistral/mistral-medium-3.5': readonly ['text', 'image']\n 'mistral/mistral-nemo': readonly ['text']\n 'mistral/mistral-small': readonly ['text', 'image']\n 'mixedbread/toast-1': readonly ['text']\n 'moonshotai/kimi-k2': readonly ['text']\n 'moonshotai/kimi-k2-thinking': readonly ['text']\n 'moonshotai/kimi-k2.5': readonly ['text', 'image']\n 'moonshotai/kimi-k2.6': readonly ['text', 'image', 'video']\n 'moonshotai/kimi-k2.7-code': readonly ['text', 'image', 'document', 'video']\n 'moonshotai/kimi-k2.7-code-highspeed': readonly [\n 'text',\n 'image',\n 'document',\n 'video',\n ]\n 'moonshotai/kimi-k3': readonly ['text', 'image', 'document', 'video']\n 'moonshotai/kimi-k3-fast': readonly ['text', 'image', 'document']\n 'morph/morph-v3-fast': readonly ['text']\n 'morph/morph-v3-large': readonly ['text']\n 'nvidia/nemotron-3-nano-30b-a3b': readonly ['text']\n 'nvidia/nemotron-3-super-120b-a12b': readonly ['text']\n 'nvidia/nemotron-3-ultra-550b-a55b': readonly ['text']\n 'nvidia/nemotron-3.5-lightning': readonly ['text']\n 'nvidia/nemotron-nano-12b-v2-vl': readonly ['text', 'image']\n 'nvidia/nemotron-nano-9b-v2': readonly ['text']\n 'openai/gpt-3.5-turbo': readonly ['text']\n 'openai/gpt-4-turbo': readonly ['text', 'image']\n 'openai/gpt-4.1': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-nano': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-nano-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4o': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-mini-transcribe': readonly ['text', 'audio']\n 'openai/gpt-4o-transcribe': readonly ['text', 'audio']\n 'openai/gpt-5': readonly ['text', 'image', 'document']\n 'openai/gpt-5-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-5-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5-nano': readonly ['text', 'image', 'document']\n 'openai/gpt-5-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-codex-max': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-codex-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-thinking': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-thinking-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.3-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5.3-codex-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-nano': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.5': readonly ['text', 'image', 'document']\n 'openai/gpt-5.5-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.5-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-luna': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-luna-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-sol': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-sol-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-terra': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-terra-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-6-astra': readonly ['text', 'image', 'document']\n 'openai/gpt-6-astra-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-6-luna': readonly ['text', 'image', 'document']\n 'openai/gpt-6-luna-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-6-sol': readonly ['text', 'image', 'document']\n 'openai/gpt-6-sol-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-live-1': readonly ['text', 'audio']\n 'openai/gpt-oss-120b': readonly ['text']\n 'openai/gpt-oss-20b': readonly ['text']\n 'openai/gpt-oss-safeguard-120b': readonly ['text']\n 'openai/gpt-oss-safeguard-20b': readonly ['text']\n 'openai/gpt-realtime-1.5': readonly ['text', 'audio']\n 'openai/gpt-realtime-2': readonly ['text', 'audio']\n 'openai/gpt-realtime-2.1': readonly ['text', 'audio']\n 'openai/gpt-realtime-mini': readonly ['text', 'audio']\n 'openai/gpt-realtime-whisper': readonly ['text', 'audio']\n 'openai/o1': readonly ['text', 'image', 'document']\n 'openai/o3': readonly ['text', 'image', 'document']\n 'openai/o3-fast': readonly ['text', 'image', 'document']\n 'openai/o3-mini': readonly ['text']\n 'openai/o3-pro': readonly ['text', 'image', 'document']\n 'openai/o4-mini': readonly ['text', 'image', 'document']\n 'openai/o4-mini-fast': readonly ['text', 'image', 'document']\n 'openai/tts-1': readonly ['text']\n 'openai/tts-1-hd': readonly ['text']\n 'openai/whisper-1': readonly ['text', 'audio']\n 'perplexity/sonar': readonly ['text', 'image']\n 'perplexity/sonar-pro': readonly ['text', 'image']\n 'perplexity/sonar-reasoning-pro': readonly ['text', 'image']\n 'poolside/laguna-s-2.1': readonly ['text']\n 'poolside/laguna-s-2.1-free': readonly ['text']\n 'quiverai/arrow-2': readonly ['text', 'image']\n 'quiverai/arrow-2-telos': readonly ['text', 'image']\n 'sakana/fugu-max': readonly ['text', 'image']\n 'sakana/fugu-ultra': readonly ['text', 'image']\n 'sakana/fugu-ultra-v2': readonly ['text', 'image']\n 'sakana/namazu': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.1-fast-non-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.1-fast-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-multi-agent': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-multi-agent-beta': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-non-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-non-reasoning-beta': readonly [\n 'text',\n 'image',\n 'document',\n ]\n 'spacexai/grok-4.20-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-reasoning-beta': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.3': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.5': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.6': readonly ['text', 'image']\n 'spacexai/grok-4.7': readonly ['text', 'image']\n 'spacexai/grok-build-0.1': readonly ['text', 'image']\n 'spacexai/grok-stt': readonly ['text', 'audio']\n 'spacexai/grok-tts': readonly ['text']\n 'spacexai/grok-voice-think-fast-1.0': readonly ['text', 'audio']\n 'spacexai/grok-voice-think-fast-2.0': readonly ['text', 'audio']\n 'stepfun/step-3.5-flash': readonly ['text', 'image']\n 'stepfun/step-3.7-flash': readonly ['text', 'image']\n 'stepfun/step-5-preview': readonly ['text', 'image']\n 'tencent/hy-mt2-lite': readonly ['text']\n 'tencent/hy-mt2-plus': readonly ['text']\n 'tencent/hy-mt2-pro': readonly ['text']\n 'tencent/hy3': readonly ['text']\n 'tencent/hy4-preview': readonly ['text']\n 'thinkingmachines/inkling': readonly ['text', 'image', 'document']\n 'thinkingmachines/inkling-small': readonly ['text', 'image', 'document']\n 'typesafe-ai/jev': readonly ['text']\n 'xiaomi/mimo-v2.5': readonly ['text', 'image']\n 'xiaomi/mimo-v2.5-pro': readonly ['text']\n 'xiaomi/mimo-v2.6-flash': readonly ['text', 'image', 'audio', 'video']\n 'xiaomi/mimo-v2.6-pro': readonly ['text', 'image', 'audio', 'video']\n 'xiaomi/mimo-v2.6-pro-ultraspeed': readonly [\n 'text',\n 'image',\n 'audio',\n 'video',\n ]\n 'zai/glm-4.5': readonly ['text']\n 'zai/glm-4.5-air': readonly ['text']\n 'zai/glm-4.5v': readonly ['text', 'image']\n 'zai/glm-4.6': readonly ['text']\n 'zai/glm-4.7': readonly ['text']\n 'zai/glm-4.7-flash': readonly ['text']\n 'zai/glm-4.7-flashx': readonly ['text']\n 'zai/glm-5': readonly ['text']\n 'zai/glm-5-turbo': readonly ['text']\n 'zai/glm-5.1': readonly ['text']\n 'zai/glm-5.2': readonly ['text']\n 'zai/glm-5.2-fast': readonly ['text']\n 'zai/glm-5.3': readonly ['text']\n 'zai/glm-5.3-fast': readonly ['text']\n 'zai/glm-5.3-flash': readonly ['text', 'image']\n 'zai/glm-5.3-flashx': readonly ['text', 'image']\n 'zai/glm-5v-turbo': readonly ['text', 'image', 'document']\n}\n\nexport type VercelGatewayChatModelToolCapabilitiesByName = {\n [K in VercelGatewayChatModel]: readonly []\n}\n\nexport type VercelGatewayEmbeddingModelProviderOptionsByName = {\n [K in VercelGatewayEmbeddingModel]: VercelGatewayEmbeddingProviderOptions\n}\n\nexport type VercelGatewayEmbeddingModelInputModalitiesByName = {\n [K in VercelGatewayEmbeddingModel]: readonly ['text']\n}\n\nexport type VercelGatewayImageModelProviderOptionsByName = {\n [K in VercelGatewayImageModel]: VercelGatewayImageProviderOptions\n}\n\nexport type VercelGatewayImageModelSizeByName = {\n [K in VercelGatewayImageModel]: VercelGatewayImageSize\n}\n\nexport type VercelGatewayImageModelInputModalitiesByName = {\n [K in VercelGatewayImageModel]: readonly []\n}\n\nexport type ResolveProviderOptions<TModel extends string> =\n TModel extends keyof VercelGatewayChatModelProviderOptionsByName\n ? VercelGatewayChatModelProviderOptionsByName[TModel]\n : TModel extends VercelGatewayEmbeddingModel\n ? VercelGatewayEmbeddingProviderOptions\n : TModel extends VercelGatewayImageModel\n ? VercelGatewayImageProviderOptions\n : VercelGatewayTextProviderOptions\n\nexport type ResolveInputModalities<TModel extends string> =\n TModel extends keyof VercelGatewayModelInputModalitiesByName\n ? VercelGatewayModelInputModalitiesByName[TModel]\n : readonly ['text']\n"],"mappings":";AAeA,IAAa,6BAA6B;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAa,2BAA2B;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAa,4BAA4B;CACvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAa,kCAAkC;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAKA,IAAa,8BAA8B;CACzC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"model-meta.js","names":[],"sources":["../../src/model-meta.ts"],"sourcesContent":["/**\n * This file is generated by scripts/convert-vercel-gateway-models.ts. Do not edit by hand.\n */\n\nimport type { VercelGatewayEmbeddingProviderOptions } from './embedding/embedding-provider-options'\nimport type {\n VercelGatewayImageProviderOptions,\n VercelGatewayImageSize,\n} from './image/image-provider-options'\nimport type {\n VercelGatewayBaseOptions,\n VercelGatewayCommonOptions,\n VercelGatewayTextProviderOptions,\n} from './text/text-provider-options'\n\nexport const VERCEL_GATEWAY_CHAT_MODELS = [\n 'alibaba/qwen-3-14b',\n 'alibaba/qwen-3-235b',\n 'alibaba/qwen-3-30b',\n 'alibaba/qwen-3-32b',\n 'alibaba/qwen-3.6-max-preview',\n 'alibaba/qwen3-235b-a22b-thinking',\n 'alibaba/qwen3-coder',\n 'alibaba/qwen3-coder-30b-a3b',\n 'alibaba/qwen3-coder-next',\n 'alibaba/qwen3-coder-plus',\n 'alibaba/qwen3-max',\n 'alibaba/qwen3-max-preview',\n 'alibaba/qwen3-max-thinking',\n 'alibaba/qwen3-next-80b-a3b-instruct',\n 'alibaba/qwen3-next-80b-a3b-thinking',\n 'alibaba/qwen3-vl-235b-a22b-instruct',\n 'alibaba/qwen3-vl-instruct',\n 'alibaba/qwen3-vl-thinking',\n 'alibaba/qwen3.5-flash',\n 'alibaba/qwen3.5-plus',\n 'alibaba/qwen3.6-27b',\n 'alibaba/qwen3.6-plus',\n 'alibaba/qwen3.7-flash',\n 'alibaba/qwen3.7-max',\n 'alibaba/qwen3.7-plus',\n 'alibaba/qwen3.8-2.4t-a95b',\n 'alibaba/qwen3.8-27b',\n 'alibaba/qwen3.8-flash',\n 'alibaba/qwen3.8-max',\n 'alibaba/qwen3.8-max-0902',\n 'alibaba/qwen3.8-max-prime',\n 'alibaba/qwen3.8-omni-flash',\n 'amazon/nova-2-lite',\n 'amazon/nova-lite',\n 'amazon/nova-micro',\n 'amazon/nova-pro',\n 'anthropic/claude-3-haiku',\n 'anthropic/claude-fable-5',\n 'anthropic/claude-fable-5.1',\n 'anthropic/claude-haiku-4.5',\n 'anthropic/claude-opus-4',\n 'anthropic/claude-opus-4.5',\n 'anthropic/claude-opus-4.6',\n 'anthropic/claude-opus-4.7',\n 'anthropic/claude-opus-4.8',\n 'anthropic/claude-opus-4.8-fast',\n 'anthropic/claude-opus-5',\n 'anthropic/claude-opus-5-fast',\n 'anthropic/claude-opus-5.5',\n 'anthropic/claude-opus-5.5-fast',\n 'anthropic/claude-sonnet-4',\n 'anthropic/claude-sonnet-4.5',\n 'anthropic/claude-sonnet-4.6',\n 'anthropic/claude-sonnet-5',\n 'arcee-ai/trinity-large-thinking',\n 'bytedance/seed-1.6',\n 'bytedance/seed-1.8',\n 'bytedance/seed-2.1-turbo',\n 'cohere/command-a',\n 'deepseek/deepseek-r1',\n 'deepseek/deepseek-v3.1',\n 'deepseek/deepseek-v3.1-terminus',\n 'deepseek/deepseek-v3.2',\n 'deepseek/deepseek-v3.2-thinking',\n 'deepseek/deepseek-v4-flash',\n 'deepseek/deepseek-v4-flash-0731',\n 'deepseek/deepseek-v4-flash-vision-exp',\n 'deepseek/deepseek-v4-pro',\n 'deepseek/deepseek-v4-pro-0813',\n 'deepseek/deepseek-v4.1-flash',\n 'fireworks/ember-1',\n 'fish-audio/s1',\n 'fish-audio/s2-pro',\n 'fish-audio/s2.1-pro',\n 'fish-audio/transcribe-1',\n 'google/gemini-2.5-flash',\n 'google/gemini-2.5-flash-image',\n 'google/gemini-2.5-flash-lite',\n 'google/gemini-2.5-pro',\n 'google/gemini-3-flash',\n 'google/gemini-3-pro-image',\n 'google/gemini-3.1-flash-image',\n 'google/gemini-3.1-flash-image-preview',\n 'google/gemini-3.1-flash-lite',\n 'google/gemini-3.1-flash-lite-image',\n 'google/gemini-3.1-pro-preview',\n 'google/gemini-3.5-flash',\n 'google/gemini-3.5-flash-lite',\n 'google/gemini-3.5-transcribe',\n 'google/gemini-3.5-transcribe-live',\n 'google/gemini-3.6-flash',\n 'google/gemini-3.7-flash',\n 'google/gemini-3.8-flash',\n 'google/gemini-3.8-flash-lite-tts',\n 'google/gemini-3.8-flash-tts',\n 'google/gemini-3.8-live',\n 'google/gemini-3.8-live-extended-thinking',\n 'google/gemini-omni-flash-preview',\n 'google/gemma-4-26b-a4b-it',\n 'google/gemma-4-31b-it',\n 'inception/mercury-2',\n 'inception/mercury-2.5',\n 'inception/mercury-coder-small',\n 'inclusionai/ling-3.0-flash',\n 'inclusionai/ling-3.0-flash-fin',\n 'inclusionai/ling-3.0-flash-fin-free',\n 'inclusionai/ling-3.0-flash-sante',\n 'inclusionai/ling-3.0-flash-sante-free',\n 'inclusionai/ling-3.0-flash-vl',\n 'inference-net/schematron-v2-small',\n 'inference-net/schematron-v2-turbo',\n 'interfaze/interfaze-beta',\n 'meta/llama-3.1-70b',\n 'meta/llama-3.1-8b',\n 'meta/llama-3.3-70b',\n 'meta/llama-4-maverick',\n 'meta/llama-4-scout',\n 'meta/muse-glimmer-30b',\n 'meta/muse-spark-1.1',\n 'meta/muse-spark-1.2',\n 'meta/muse-spark-1.2-contributor',\n 'meta/muse-spark-1.3',\n 'meta/muse-spark-1.3-contributor',\n 'minimax/minimax-m2',\n 'minimax/minimax-m2.1',\n 'minimax/minimax-m2.1-lightning',\n 'minimax/minimax-m2.5',\n 'minimax/minimax-m2.5-highspeed',\n 'minimax/minimax-m2.7',\n 'minimax/minimax-m2.7-highspeed',\n 'minimax/minimax-m3',\n 'mistral/codestral',\n 'mistral/ministral-14b',\n 'mistral/ministral-3b',\n 'mistral/ministral-8b',\n 'mistral/mistral-large-3',\n 'mistral/mistral-medium-3.5',\n 'mistral/mistral-nemo',\n 'mistral/mistral-small',\n 'mixedbread/toast-1',\n 'moonshotai/kimi-k2',\n 'moonshotai/kimi-k2-thinking',\n 'moonshotai/kimi-k2.5',\n 'moonshotai/kimi-k2.6',\n 'moonshotai/kimi-k2.7-code',\n 'moonshotai/kimi-k2.7-code-highspeed',\n 'moonshotai/kimi-k3',\n 'moonshotai/kimi-k3-fast',\n 'morph/morph-v3-fast',\n 'morph/morph-v3-large',\n 'nvidia/nemotron-3-nano-30b-a3b',\n 'nvidia/nemotron-3-super-120b-a12b',\n 'nvidia/nemotron-3-ultra-550b-a55b',\n 'nvidia/nemotron-3.5-lightning',\n 'nvidia/nemotron-nano-12b-v2-vl',\n 'nvidia/nemotron-nano-9b-v2',\n 'openai/gpt-3.5-turbo',\n 'openai/gpt-4-turbo',\n 'openai/gpt-4.1',\n 'openai/gpt-4.1-fast',\n 'openai/gpt-4.1-mini',\n 'openai/gpt-4.1-mini-fast',\n 'openai/gpt-4.1-nano',\n 'openai/gpt-4.1-nano-fast',\n 'openai/gpt-4o',\n 'openai/gpt-4o-fast',\n 'openai/gpt-4o-mini',\n 'openai/gpt-4o-mini-fast',\n 'openai/gpt-4o-mini-transcribe',\n 'openai/gpt-4o-transcribe',\n 'openai/gpt-5',\n 'openai/gpt-5-codex',\n 'openai/gpt-5-fast',\n 'openai/gpt-5-mini',\n 'openai/gpt-5-mini-fast',\n 'openai/gpt-5-nano',\n 'openai/gpt-5-pro',\n 'openai/gpt-5.1-codex',\n 'openai/gpt-5.1-codex-max',\n 'openai/gpt-5.1-codex-mini',\n 'openai/gpt-5.1-thinking',\n 'openai/gpt-5.1-thinking-fast',\n 'openai/gpt-5.2',\n 'openai/gpt-5.2-codex',\n 'openai/gpt-5.2-fast',\n 'openai/gpt-5.2-pro',\n 'openai/gpt-5.3-codex',\n 'openai/gpt-5.3-codex-fast',\n 'openai/gpt-5.4',\n 'openai/gpt-5.4-fast',\n 'openai/gpt-5.4-mini',\n 'openai/gpt-5.4-mini-fast',\n 'openai/gpt-5.4-nano',\n 'openai/gpt-5.4-pro',\n 'openai/gpt-5.5',\n 'openai/gpt-5.5-fast',\n 'openai/gpt-5.5-pro',\n 'openai/gpt-5.6-luna',\n 'openai/gpt-5.6-luna-fast',\n 'openai/gpt-5.6-sol',\n 'openai/gpt-5.6-sol-fast',\n 'openai/gpt-5.6-terra',\n 'openai/gpt-5.6-terra-fast',\n 'openai/gpt-6-astra',\n 'openai/gpt-6-astra-fast',\n 'openai/gpt-6-luna',\n 'openai/gpt-6-luna-fast',\n 'openai/gpt-6-sol',\n 'openai/gpt-6-sol-fast',\n 'openai/gpt-live-1',\n 'openai/gpt-oss-120b',\n 'openai/gpt-oss-20b',\n 'openai/gpt-oss-safeguard-120b',\n 'openai/gpt-oss-safeguard-20b',\n 'openai/gpt-realtime-1.5',\n 'openai/gpt-realtime-2',\n 'openai/gpt-realtime-2.1',\n 'openai/gpt-realtime-mini',\n 'openai/gpt-realtime-whisper',\n 'openai/o1',\n 'openai/o3',\n 'openai/o3-fast',\n 'openai/o3-mini',\n 'openai/o3-pro',\n 'openai/o4-mini',\n 'openai/o4-mini-fast',\n 'openai/tts-1',\n 'openai/tts-1-hd',\n 'openai/whisper-1',\n 'perplexity/sonar',\n 'perplexity/sonar-pro',\n 'perplexity/sonar-reasoning-pro',\n 'poolside/laguna-s-2.1',\n 'poolside/laguna-s-2.1-free',\n 'quiverai/arrow-2',\n 'quiverai/arrow-2-telos',\n 'sakana/fugu-max',\n 'sakana/fugu-ultra',\n 'sakana/fugu-ultra-v2',\n 'sakana/namazu',\n 'spacexai/grok-4.1-fast-non-reasoning',\n 'spacexai/grok-4.1-fast-reasoning',\n 'spacexai/grok-4.20-multi-agent',\n 'spacexai/grok-4.20-multi-agent-beta',\n 'spacexai/grok-4.20-non-reasoning',\n 'spacexai/grok-4.20-non-reasoning-beta',\n 'spacexai/grok-4.20-reasoning',\n 'spacexai/grok-4.20-reasoning-beta',\n 'spacexai/grok-4.3',\n 'spacexai/grok-4.5',\n 'spacexai/grok-4.6',\n 'spacexai/grok-4.7',\n 'spacexai/grok-build-0.1',\n 'spacexai/grok-stt',\n 'spacexai/grok-tts',\n 'spacexai/grok-voice-think-fast-1.0',\n 'spacexai/grok-voice-think-fast-2.0',\n 'stepfun/step-3.5-flash',\n 'stepfun/step-3.7-flash',\n 'stepfun/step-5-preview',\n 'tencent/hy-mt2-lite',\n 'tencent/hy-mt2-plus',\n 'tencent/hy-mt2-pro',\n 'tencent/hy3',\n 'tencent/hy4-preview',\n 'thinkingmachines/inkling',\n 'thinkingmachines/inkling-small',\n 'typesafe-ai/jev',\n 'xiaomi/mimo-v2.5',\n 'xiaomi/mimo-v2.5-pro',\n 'xiaomi/mimo-v2.6-flash',\n 'xiaomi/mimo-v2.6-pro',\n 'xiaomi/mimo-v2.6-pro-ultraspeed',\n 'zai/glm-4.5',\n 'zai/glm-4.5-air',\n 'zai/glm-4.5v',\n 'zai/glm-4.6',\n 'zai/glm-4.7',\n 'zai/glm-4.7-flash',\n 'zai/glm-4.7-flashx',\n 'zai/glm-5',\n 'zai/glm-5-turbo',\n 'zai/glm-5.1',\n 'zai/glm-5.2',\n 'zai/glm-5.2-fast',\n 'zai/glm-5.3',\n 'zai/glm-5.3-fast',\n 'zai/glm-5.3-flash',\n 'zai/glm-5.3-flashx',\n 'zai/glm-5v-turbo',\n] as const\n\nexport type VercelGatewayChatModel = (typeof VERCEL_GATEWAY_CHAT_MODELS)[number]\n\nexport const VERCEL_GATEWAY_PROVIDERS = [\n 'alibaba',\n 'amazon',\n 'anthropic',\n 'arcee-ai',\n 'bfl',\n 'bytedance',\n 'cohere',\n 'deepseek',\n 'fireworks',\n 'fish-audio',\n 'google',\n 'inception',\n 'inclusionai',\n 'inference-net',\n 'interfaze',\n 'klingai',\n 'meta',\n 'minimax',\n 'mistral',\n 'mixedbread',\n 'moonshotai',\n 'morph',\n 'nvidia',\n 'openai',\n 'perplexity',\n 'poolside',\n 'prodia',\n 'quiverai',\n 'recraft',\n 'sakana',\n 'spacexai',\n 'stepfun',\n 'tencent',\n 'thinkingmachines',\n 'typesafe-ai',\n 'voyage',\n 'xiaomi',\n 'zai',\n] as const\n\nexport type VercelGatewayProvider = (typeof VERCEL_GATEWAY_PROVIDERS)[number]\n\nexport const VERCEL_GATEWAY_MODEL_TAGS = [\n 'audio-input',\n 'explicit-caching',\n 'fast',\n 'file-input',\n 'free',\n 'image-generation',\n 'implicit-caching',\n 'reasoning',\n 'structured-output',\n 'tool-use',\n 'video-generation',\n 'video-input',\n 'vision',\n 'web-search',\n 'websocket-realtime',\n 'websocket-transcription',\n] as const\n\nexport type VercelGatewayModelTag = (typeof VERCEL_GATEWAY_MODEL_TAGS)[number]\n\nexport const VERCEL_GATEWAY_EMBEDDING_MODELS = [\n 'alibaba/qwen3-embedding-0.6b',\n 'alibaba/qwen3-embedding-4b',\n 'alibaba/qwen3-embedding-8b',\n 'amazon/titan-embed-text-v2',\n 'cohere/embed-v4.0',\n 'google/gemini-embedding-001',\n 'google/gemini-embedding-2',\n 'google/text-embedding-005',\n 'google/text-multilingual-embedding-002',\n 'mistral/codestral-embed',\n 'mistral/mistral-embed',\n 'openai/text-embedding-3-large',\n 'openai/text-embedding-3-small',\n 'openai/text-embedding-ada-002',\n 'perplexity/pplx-embed-v1-0.6b',\n 'perplexity/pplx-embed-v1-4b',\n 'voyage/voyage-3-large',\n 'voyage/voyage-3.5',\n 'voyage/voyage-3.5-lite',\n 'voyage/voyage-4',\n 'voyage/voyage-4-large',\n 'voyage/voyage-4-lite',\n 'voyage/voyage-code-2',\n 'voyage/voyage-code-3',\n 'voyage/voyage-finance-2',\n 'voyage/voyage-law-2',\n] as const\n\nexport type VercelGatewayEmbeddingModel =\n (typeof VERCEL_GATEWAY_EMBEDDING_MODELS)[number]\n\nexport const VERCEL_GATEWAY_IMAGE_MODELS = [\n 'bfl/flux-2-flex',\n 'bfl/flux-2-klein-4b',\n 'bfl/flux-2-klein-9b',\n 'bfl/flux-2-max',\n 'bfl/flux-2-pro',\n 'bfl/flux-kontext-max',\n 'bfl/flux-kontext-pro',\n 'bfl/flux-pro-1.0-fill',\n 'bfl/flux-pro-1.1',\n 'bfl/flux-pro-1.1-ultra',\n 'bytedance/seedream-4.0',\n 'bytedance/seedream-4.5',\n 'bytedance/seedream-5.0-lite',\n 'bytedance/seedream-5.0-pro',\n 'meta/muse-image-1.0',\n 'openai/gpt-image-1',\n 'openai/gpt-image-1-mini',\n 'openai/gpt-image-1.5',\n 'openai/gpt-image-2',\n 'openai/gpt-image-2.5-flare',\n 'openai/gpt-image-2.5-sunburst',\n 'prodia/flux-fast-schnell',\n 'quiverai/arrow-1.1',\n 'recraft/recraft-v2',\n 'recraft/recraft-v3',\n 'recraft/recraft-v4',\n 'recraft/recraft-v4-pro',\n 'recraft/recraft-v4.1',\n 'recraft/recraft-v4.1-flash',\n 'recraft/recraft-v4.1-pro',\n 'recraft/recraft-v4.1-utility',\n 'recraft/recraft-v4.1-utility-pro',\n 'spacexai/grok-imagine-image',\n 'spacexai/grok-imagine-image-2.0',\n] as const\n\nexport type VercelGatewayImageModel =\n (typeof VERCEL_GATEWAY_IMAGE_MODELS)[number]\n\nexport type VercelGatewayChatModelProviderOptionsByName = {\n 'alibaba/qwen-3-14b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3-235b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3-30b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3-32b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen-3.6-max-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3-235b-a22b-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder-30b-a3b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder-next': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-coder-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'alibaba/qwen3-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-max-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-max-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-next-80b-a3b-instruct': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-next-80b-a3b-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-vl-235b-a22b-instruct': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'alibaba/qwen3-vl-instruct': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3-vl-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.5-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.6-27b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.6-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.7-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.7-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'alibaba/qwen3.8-2.4t-a95b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-27b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-max-0902': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-max-prime': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'alibaba/qwen3.8-omni-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-2-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-micro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'amazon/nova-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-3-haiku': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-fable-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-fable-5.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-haiku-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'anthropic/claude-opus-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.8': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-4.8-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-opus-5.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'anthropic/claude-opus-5.5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'anthropic/claude-sonnet-4': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-sonnet-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-sonnet-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'anthropic/claude-sonnet-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'arcee-ai/trinity-large-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'bytedance/seed-1.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'bytedance/seed-1.8': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'bytedance/seed-2.1-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'cohere/command-a': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-r1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'deepseek/deepseek-v3.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v3.1-terminus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v3.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'deepseek/deepseek-v3.2-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'deepseek/deepseek-v4-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-flash-0731': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-flash-vision-exp': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4-pro-0813': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'deepseek/deepseek-v4.1-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'fireworks/ember-1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'fish-audio/s1': VercelGatewayCommonOptions\n 'fish-audio/s2-pro': VercelGatewayCommonOptions\n 'fish-audio/s2.1-pro': VercelGatewayCommonOptions\n 'fish-audio/transcribe-1': VercelGatewayCommonOptions\n 'google/gemini-2.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-2.5-flash-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-2.5-flash-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-2.5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3-pro-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-image-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.1-flash-lite-image': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-3.1-pro-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.5-flash-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.5-transcribe': VercelGatewayCommonOptions\n 'google/gemini-3.5-transcribe-live': VercelGatewayCommonOptions\n 'google/gemini-3.6-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.8-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemini-3.8-flash-lite-tts': VercelGatewayCommonOptions\n 'google/gemini-3.8-flash-tts': VercelGatewayCommonOptions\n 'google/gemini-3.8-live': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-3.8-live-extended-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'google/gemini-omni-flash-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemma-4-26b-a4b-it': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'google/gemma-4-31b-it': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inception/mercury-2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inception/mercury-2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inception/mercury-coder-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inclusionai/ling-3.0-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-fin': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inclusionai/ling-3.0-flash-fin-free': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-sante': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-sante-free': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inclusionai/ling-3.0-flash-vl': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'inference-net/schematron-v2-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'inference-net/schematron-v2-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'interfaze/interfaze-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-3.1-70b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-3.1-8b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-3.3-70b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'meta/llama-4-maverick': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/llama-4-scout': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-glimmer-30b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.2-contributor': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'meta/muse-spark-1.3-contributor': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.1-lightning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.5-highspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m2.7-highspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'minimax/minimax-m3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/codestral': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/ministral-14b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/ministral-3b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'mistral/ministral-8b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-large-3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-medium-3.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-nemo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mistral/mistral-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'mixedbread/toast-1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'moonshotai/kimi-k2-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.7-code': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k2.7-code-highspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'moonshotai/kimi-k3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'morph/morph-v3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'morph/morph-v3-large': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-3-nano-30b-a3b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'nvidia/nemotron-3-super-120b-a12b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-3-ultra-550b-a55b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-3.5-lightning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-nano-12b-v2-vl': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'nvidia/nemotron-nano-9b-v2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-3.5-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-4-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-4.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-nano': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4.1-nano-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-4o-mini-transcribe': VercelGatewayCommonOptions\n 'openai/gpt-4o-transcribe': VercelGatewayCommonOptions\n 'openai/gpt-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-nano': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-5.1-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-codex-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-codex-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-thinking': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.1-thinking-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.2-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.3-codex': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.3-codex-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-nano': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.4-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.5-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-luna': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-luna-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-sol': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-sol-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-terra': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-5.6-terra-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-astra': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-astra-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-luna': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-luna-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-sol': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-6-sol-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-live-1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-oss-120b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-oss-20b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-oss-safeguard-120b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-oss-safeguard-20b': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/gpt-realtime-1.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-realtime-2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-realtime-2.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'openai/gpt-realtime-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'openai/gpt-realtime-whisper': VercelGatewayCommonOptions\n 'openai/o1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o3-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o4-mini': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/o4-mini-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'openai/tts-1': VercelGatewayCommonOptions\n 'openai/tts-1-hd': VercelGatewayCommonOptions\n 'openai/whisper-1': VercelGatewayCommonOptions\n 'perplexity/sonar': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'perplexity/sonar-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'perplexity/sonar-reasoning-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'poolside/laguna-s-2.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'poolside/laguna-s-2.1-free': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'quiverai/arrow-2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'quiverai/arrow-2-telos': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'sakana/fugu-max': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'sakana/fugu-ultra': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'sakana/fugu-ultra-v2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'sakana/namazu': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.1-fast-non-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.1-fast-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-multi-agent': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-multi-agent-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-non-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-non-reasoning-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-reasoning': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.20-reasoning-beta': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-4.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-build-0.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'spacexai/grok-stt': VercelGatewayCommonOptions\n 'spacexai/grok-tts': VercelGatewayCommonOptions\n 'spacexai/grok-voice-think-fast-1.0': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'spacexai/grok-voice-think-fast-2.0': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'stepfun/step-3.5-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'stepfun/step-3.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'stepfun/step-5-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy-mt2-lite': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n 'max_tokens' | 'max_output_tokens' | 'temperature' | 'stop'\n >\n 'tencent/hy-mt2-plus': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy-mt2-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'tencent/hy4-preview': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'thinkingmachines/inkling': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'thinkingmachines/inkling-small': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'typesafe-ai/jev': VercelGatewayCommonOptions\n 'xiaomi/mimo-v2.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.5-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.6-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.6-pro': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'xiaomi/mimo-v2.6-pro-ultraspeed': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.5-air': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.5v': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.6': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.7': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.7-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-4.7-flashx': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'zai/glm-5': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n >\n 'zai/glm-5.1': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.2': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.2-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3-fast': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3-flash': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5.3-flashx': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n 'zai/glm-5v-turbo': VercelGatewayCommonOptions &\n Pick<\n VercelGatewayBaseOptions,\n | 'max_tokens'\n | 'max_output_tokens'\n | 'temperature'\n | 'stop'\n | 'reasoning'\n | 'include_reasoning'\n | 'response_format'\n | 'structured_outputs'\n >\n}\n\nexport type VercelGatewayModelInputModalitiesByName = {\n 'alibaba/qwen-3-14b': readonly ['text']\n 'alibaba/qwen-3-235b': readonly ['text']\n 'alibaba/qwen-3-30b': readonly ['text']\n 'alibaba/qwen-3-32b': readonly ['text']\n 'alibaba/qwen-3.6-max-preview': readonly ['text']\n 'alibaba/qwen3-235b-a22b-thinking': readonly ['text', 'image', 'document']\n 'alibaba/qwen3-coder': readonly ['text']\n 'alibaba/qwen3-coder-30b-a3b': readonly ['text']\n 'alibaba/qwen3-coder-next': readonly ['text']\n 'alibaba/qwen3-coder-plus': readonly ['text']\n 'alibaba/qwen3-max': readonly ['text']\n 'alibaba/qwen3-max-preview': readonly ['text']\n 'alibaba/qwen3-max-thinking': readonly ['text']\n 'alibaba/qwen3-next-80b-a3b-instruct': readonly ['text']\n 'alibaba/qwen3-next-80b-a3b-thinking': readonly ['text']\n 'alibaba/qwen3-vl-235b-a22b-instruct': readonly ['text', 'image']\n 'alibaba/qwen3-vl-instruct': readonly ['text', 'image']\n 'alibaba/qwen3-vl-thinking': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.5-flash': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.5-plus': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.6-27b': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.6-plus': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.7-flash': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.7-max': readonly ['text']\n 'alibaba/qwen3.7-plus': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.8-2.4t-a95b': readonly ['text', 'image']\n 'alibaba/qwen3.8-27b': readonly ['text', 'image', 'document', 'video']\n 'alibaba/qwen3.8-flash': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.8-max': readonly ['text', 'image']\n 'alibaba/qwen3.8-max-0902': readonly ['text', 'image', 'document']\n 'alibaba/qwen3.8-max-prime': readonly ['text', 'image']\n 'alibaba/qwen3.8-omni-flash': readonly ['text', 'image']\n 'amazon/nova-2-lite': readonly ['text', 'image', 'document']\n 'amazon/nova-lite': readonly ['text', 'image', 'document']\n 'amazon/nova-micro': readonly ['text']\n 'amazon/nova-pro': readonly ['text', 'image', 'document']\n 'anthropic/claude-3-haiku': readonly ['text', 'image']\n 'anthropic/claude-fable-5': readonly ['text', 'image', 'document']\n 'anthropic/claude-fable-5.1': readonly ['text', 'image', 'document']\n 'anthropic/claude-haiku-4.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.6': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.7': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.8': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-4.8-fast': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5-fast': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-opus-5.5-fast': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-4': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-4.5': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-4.6': readonly ['text', 'image', 'document']\n 'anthropic/claude-sonnet-5': readonly ['text', 'image', 'document']\n 'arcee-ai/trinity-large-thinking': readonly ['text']\n 'bytedance/seed-1.6': readonly ['text', 'image']\n 'bytedance/seed-1.8': readonly ['text', 'image']\n 'bytedance/seed-2.1-turbo': readonly ['text', 'image', 'video']\n 'cohere/command-a': readonly ['text']\n 'deepseek/deepseek-r1': readonly ['text']\n 'deepseek/deepseek-v3.1': readonly ['text']\n 'deepseek/deepseek-v3.1-terminus': readonly ['text']\n 'deepseek/deepseek-v3.2': readonly ['text']\n 'deepseek/deepseek-v3.2-thinking': readonly ['text']\n 'deepseek/deepseek-v4-flash': readonly ['text']\n 'deepseek/deepseek-v4-flash-0731': readonly ['text']\n 'deepseek/deepseek-v4-flash-vision-exp': readonly ['text', 'image']\n 'deepseek/deepseek-v4-pro': readonly ['text']\n 'deepseek/deepseek-v4-pro-0813': readonly ['text']\n 'deepseek/deepseek-v4.1-flash': readonly ['text', 'image']\n 'fireworks/ember-1': readonly ['text', 'image']\n 'fish-audio/s1': readonly ['text']\n 'fish-audio/s2-pro': readonly ['text']\n 'fish-audio/s2.1-pro': readonly ['text']\n 'fish-audio/transcribe-1': readonly ['text', 'audio']\n 'google/gemini-2.5-flash': readonly ['text', 'image', 'document']\n 'google/gemini-2.5-flash-image': readonly ['text', 'image']\n 'google/gemini-2.5-flash-lite': readonly ['text', 'image', 'document']\n 'google/gemini-2.5-pro': readonly ['text', 'image', 'document']\n 'google/gemini-3-flash': readonly ['text', 'image', 'document']\n 'google/gemini-3-pro-image': readonly ['text', 'image']\n 'google/gemini-3.1-flash-image': readonly ['text', 'image']\n 'google/gemini-3.1-flash-image-preview': readonly ['text', 'image']\n 'google/gemini-3.1-flash-lite': readonly ['text', 'image', 'document']\n 'google/gemini-3.1-flash-lite-image': readonly ['text', 'image']\n 'google/gemini-3.1-pro-preview': readonly ['text', 'image', 'document']\n 'google/gemini-3.5-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.5-flash-lite': readonly [\n 'text',\n 'image',\n 'document',\n 'video',\n ]\n 'google/gemini-3.5-transcribe': readonly ['text', 'audio']\n 'google/gemini-3.5-transcribe-live': readonly ['text', 'audio']\n 'google/gemini-3.6-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.7-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.8-flash': readonly ['text', 'image', 'document', 'video']\n 'google/gemini-3.8-flash-lite-tts': readonly ['text']\n 'google/gemini-3.8-flash-tts': readonly ['text']\n 'google/gemini-3.8-live': readonly ['text', 'audio']\n 'google/gemini-3.8-live-extended-thinking': readonly ['text', 'audio']\n 'google/gemini-omni-flash-preview': readonly [\n 'text',\n 'image',\n 'document',\n 'video',\n ]\n 'google/gemma-4-26b-a4b-it': readonly ['text', 'image', 'document']\n 'google/gemma-4-31b-it': readonly ['text', 'image', 'document']\n 'inception/mercury-2': readonly ['text']\n 'inception/mercury-2.5': readonly ['text']\n 'inception/mercury-coder-small': readonly ['text']\n 'inclusionai/ling-3.0-flash': readonly ['text']\n 'inclusionai/ling-3.0-flash-fin': readonly ['text']\n 'inclusionai/ling-3.0-flash-fin-free': readonly ['text']\n 'inclusionai/ling-3.0-flash-sante': readonly ['text']\n 'inclusionai/ling-3.0-flash-sante-free': readonly ['text']\n 'inclusionai/ling-3.0-flash-vl': readonly ['text', 'image', 'video']\n 'inference-net/schematron-v2-small': readonly ['text']\n 'inference-net/schematron-v2-turbo': readonly ['text']\n 'interfaze/interfaze-beta': readonly ['text', 'image', 'document']\n 'meta/llama-3.1-70b': readonly ['text']\n 'meta/llama-3.1-8b': readonly ['text']\n 'meta/llama-3.3-70b': readonly ['text']\n 'meta/llama-4-maverick': readonly ['text', 'image']\n 'meta/llama-4-scout': readonly ['text', 'image']\n 'meta/muse-glimmer-30b': readonly ['text', 'image']\n 'meta/muse-spark-1.1': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.2': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.2-contributor': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.3': readonly ['text', 'image', 'document']\n 'meta/muse-spark-1.3-contributor': readonly ['text', 'image', 'document']\n 'minimax/minimax-m2': readonly ['text']\n 'minimax/minimax-m2.1': readonly ['text']\n 'minimax/minimax-m2.1-lightning': readonly ['text']\n 'minimax/minimax-m2.5': readonly ['text']\n 'minimax/minimax-m2.5-highspeed': readonly ['text']\n 'minimax/minimax-m2.7': readonly ['text']\n 'minimax/minimax-m2.7-highspeed': readonly ['text']\n 'minimax/minimax-m3': readonly ['text', 'image', 'document']\n 'mistral/codestral': readonly ['text']\n 'mistral/ministral-14b': readonly ['text', 'image', 'document']\n 'mistral/ministral-3b': readonly ['text', 'image']\n 'mistral/ministral-8b': readonly ['text', 'image']\n 'mistral/mistral-large-3': readonly ['text', 'image']\n 'mistral/mistral-medium-3.5': readonly ['text', 'image']\n 'mistral/mistral-nemo': readonly ['text']\n 'mistral/mistral-small': readonly ['text', 'image']\n 'mixedbread/toast-1': readonly ['text']\n 'moonshotai/kimi-k2': readonly ['text']\n 'moonshotai/kimi-k2-thinking': readonly ['text']\n 'moonshotai/kimi-k2.5': readonly ['text', 'image']\n 'moonshotai/kimi-k2.6': readonly ['text', 'image', 'video']\n 'moonshotai/kimi-k2.7-code': readonly ['text', 'image', 'document', 'video']\n 'moonshotai/kimi-k2.7-code-highspeed': readonly [\n 'text',\n 'image',\n 'document',\n 'video',\n ]\n 'moonshotai/kimi-k3': readonly ['text', 'image', 'document', 'video']\n 'moonshotai/kimi-k3-fast': readonly ['text', 'image', 'document']\n 'morph/morph-v3-fast': readonly ['text']\n 'morph/morph-v3-large': readonly ['text']\n 'nvidia/nemotron-3-nano-30b-a3b': readonly ['text']\n 'nvidia/nemotron-3-super-120b-a12b': readonly ['text']\n 'nvidia/nemotron-3-ultra-550b-a55b': readonly ['text']\n 'nvidia/nemotron-3.5-lightning': readonly ['text']\n 'nvidia/nemotron-nano-12b-v2-vl': readonly ['text', 'image']\n 'nvidia/nemotron-nano-9b-v2': readonly ['text']\n 'openai/gpt-3.5-turbo': readonly ['text']\n 'openai/gpt-4-turbo': readonly ['text', 'image']\n 'openai/gpt-4.1': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-nano': readonly ['text', 'image', 'document']\n 'openai/gpt-4.1-nano-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4o': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-4o-mini-transcribe': readonly ['text', 'audio']\n 'openai/gpt-4o-transcribe': readonly ['text', 'audio']\n 'openai/gpt-5': readonly ['text', 'image', 'document']\n 'openai/gpt-5-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-5-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5-nano': readonly ['text', 'image', 'document']\n 'openai/gpt-5-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-codex-max': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-codex-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-thinking': readonly ['text', 'image', 'document']\n 'openai/gpt-5.1-thinking-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.2-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.3-codex': readonly ['text', 'image', 'document']\n 'openai/gpt-5.3-codex-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-mini': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-mini-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-nano': readonly ['text', 'image', 'document']\n 'openai/gpt-5.4-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.5': readonly ['text', 'image', 'document']\n 'openai/gpt-5.5-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.5-pro': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-luna': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-luna-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-sol': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-sol-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-terra': readonly ['text', 'image', 'document']\n 'openai/gpt-5.6-terra-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-6-astra': readonly ['text', 'image', 'document']\n 'openai/gpt-6-astra-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-6-luna': readonly ['text', 'image', 'document']\n 'openai/gpt-6-luna-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-6-sol': readonly ['text', 'image', 'document']\n 'openai/gpt-6-sol-fast': readonly ['text', 'image', 'document']\n 'openai/gpt-live-1': readonly ['text', 'audio']\n 'openai/gpt-oss-120b': readonly ['text']\n 'openai/gpt-oss-20b': readonly ['text']\n 'openai/gpt-oss-safeguard-120b': readonly ['text']\n 'openai/gpt-oss-safeguard-20b': readonly ['text']\n 'openai/gpt-realtime-1.5': readonly ['text', 'audio']\n 'openai/gpt-realtime-2': readonly ['text', 'audio']\n 'openai/gpt-realtime-2.1': readonly ['text', 'audio']\n 'openai/gpt-realtime-mini': readonly ['text', 'audio']\n 'openai/gpt-realtime-whisper': readonly ['text', 'audio']\n 'openai/o1': readonly ['text', 'image', 'document']\n 'openai/o3': readonly ['text', 'image', 'document']\n 'openai/o3-fast': readonly ['text', 'image', 'document']\n 'openai/o3-mini': readonly ['text']\n 'openai/o3-pro': readonly ['text', 'image', 'document']\n 'openai/o4-mini': readonly ['text', 'image', 'document']\n 'openai/o4-mini-fast': readonly ['text', 'image', 'document']\n 'openai/tts-1': readonly ['text']\n 'openai/tts-1-hd': readonly ['text']\n 'openai/whisper-1': readonly ['text', 'audio']\n 'perplexity/sonar': readonly ['text', 'image']\n 'perplexity/sonar-pro': readonly ['text', 'image']\n 'perplexity/sonar-reasoning-pro': readonly ['text', 'image']\n 'poolside/laguna-s-2.1': readonly ['text']\n 'poolside/laguna-s-2.1-free': readonly ['text']\n 'quiverai/arrow-2': readonly ['text', 'image']\n 'quiverai/arrow-2-telos': readonly ['text', 'image']\n 'sakana/fugu-max': readonly ['text', 'image']\n 'sakana/fugu-ultra': readonly ['text', 'image']\n 'sakana/fugu-ultra-v2': readonly ['text', 'image']\n 'sakana/namazu': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.1-fast-non-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.1-fast-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-multi-agent': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-multi-agent-beta': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-non-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-non-reasoning-beta': readonly [\n 'text',\n 'image',\n 'document',\n ]\n 'spacexai/grok-4.20-reasoning': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.20-reasoning-beta': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.3': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.5': readonly ['text', 'image', 'document']\n 'spacexai/grok-4.6': readonly ['text', 'image']\n 'spacexai/grok-4.7': readonly ['text', 'image']\n 'spacexai/grok-build-0.1': readonly ['text', 'image']\n 'spacexai/grok-stt': readonly ['text', 'audio']\n 'spacexai/grok-tts': readonly ['text']\n 'spacexai/grok-voice-think-fast-1.0': readonly ['text', 'audio']\n 'spacexai/grok-voice-think-fast-2.0': readonly ['text', 'audio']\n 'stepfun/step-3.5-flash': readonly ['text', 'image']\n 'stepfun/step-3.7-flash': readonly ['text', 'image']\n 'stepfun/step-5-preview': readonly ['text', 'image']\n 'tencent/hy-mt2-lite': readonly ['text']\n 'tencent/hy-mt2-plus': readonly ['text']\n 'tencent/hy-mt2-pro': readonly ['text']\n 'tencent/hy3': readonly ['text']\n 'tencent/hy4-preview': readonly ['text']\n 'thinkingmachines/inkling': readonly ['text', 'image', 'document']\n 'thinkingmachines/inkling-small': readonly ['text', 'image', 'document']\n 'typesafe-ai/jev': readonly ['text']\n 'xiaomi/mimo-v2.5': readonly ['text', 'image']\n 'xiaomi/mimo-v2.5-pro': readonly ['text']\n 'xiaomi/mimo-v2.6-flash': readonly ['text', 'image', 'audio', 'video']\n 'xiaomi/mimo-v2.6-pro': readonly ['text', 'image', 'audio', 'video']\n 'xiaomi/mimo-v2.6-pro-ultraspeed': readonly [\n 'text',\n 'image',\n 'audio',\n 'video',\n ]\n 'zai/glm-4.5': readonly ['text']\n 'zai/glm-4.5-air': readonly ['text']\n 'zai/glm-4.5v': readonly ['text', 'image']\n 'zai/glm-4.6': readonly ['text']\n 'zai/glm-4.7': readonly ['text']\n 'zai/glm-4.7-flash': readonly ['text']\n 'zai/glm-4.7-flashx': readonly ['text']\n 'zai/glm-5': readonly ['text']\n 'zai/glm-5-turbo': readonly ['text']\n 'zai/glm-5.1': readonly ['text']\n 'zai/glm-5.2': readonly ['text']\n 'zai/glm-5.2-fast': readonly ['text']\n 'zai/glm-5.3': readonly ['text']\n 'zai/glm-5.3-fast': readonly ['text']\n 'zai/glm-5.3-flash': readonly ['text', 'image']\n 'zai/glm-5.3-flashx': readonly ['text', 'image']\n 'zai/glm-5v-turbo': readonly ['text', 'image', 'document']\n}\n\nexport type VercelGatewayChatModelToolCapabilitiesByName = {\n [K in VercelGatewayChatModel]: readonly []\n}\n\nexport type VercelGatewayEmbeddingModelProviderOptionsByName = {\n [K in VercelGatewayEmbeddingModel]: VercelGatewayEmbeddingProviderOptions\n}\n\nexport type VercelGatewayEmbeddingModelInputModalitiesByName = {\n [K in VercelGatewayEmbeddingModel]: readonly ['text']\n}\n\nexport type VercelGatewayImageModelProviderOptionsByName = {\n [K in VercelGatewayImageModel]: VercelGatewayImageProviderOptions\n}\n\nexport type VercelGatewayImageModelSizeByName = {\n [K in VercelGatewayImageModel]: VercelGatewayImageSize\n}\n\nexport type VercelGatewayImageModelInputModalitiesByName = {\n [K in VercelGatewayImageModel]: readonly []\n}\n\nexport type ResolveProviderOptions<TModel extends string> =\n TModel extends keyof VercelGatewayChatModelProviderOptionsByName\n ? VercelGatewayChatModelProviderOptionsByName[TModel]\n : TModel extends VercelGatewayEmbeddingModel\n ? VercelGatewayEmbeddingProviderOptions\n : TModel extends VercelGatewayImageModel\n ? VercelGatewayImageProviderOptions\n : VercelGatewayTextProviderOptions\n\nexport type ResolveInputModalities<TModel extends string> =\n TModel extends keyof VercelGatewayModelInputModalitiesByName\n ? VercelGatewayModelInputModalitiesByName[TModel]\n : readonly ['text']\n"],"mappings":";AAeA,IAAa,6BAA6B;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAa,2BAA2B;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAa,4BAA4B;CACvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAa,kCAAkC;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAKA,IAAa,8BAA8B;CACzC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/ai-vercel-gateway",
3
- "version": "0.2.20",
3
+ "version": "0.3.1",
4
4
  "description": "Vercel AI Gateway adapter for TanStack AI chat, embeddings, and image generation.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -56,12 +56,12 @@
56
56
  "vite": "^8.2.1"
57
57
  },
58
58
  "peerDependencies": {
59
- "@tanstack/ai": "^0.61.0"
59
+ "@tanstack/ai": "^0.63.0"
60
60
  },
61
61
  "dependencies": {
62
62
  "openai": "^6.41.0",
63
63
  "@tanstack/ai-utils": "^0.4.1",
64
- "@tanstack/openai-base": "^0.11.1"
64
+ "@tanstack/openai-base": "^0.12.1"
65
65
  },
66
66
  "scripts": {
67
67
  "build": "vite build",
@@ -69,6 +69,7 @@
69
69
  "lint:fix": "oxlint src --type-aware --fix",
70
70
  "test:build": "publint --strict",
71
71
  "test:oxlint": "oxlint src --type-aware",
72
+ "test:coverage": "vitest run --coverage --coverage.include='src/**' --coverage.reporter=text-summary --coverage.reporter=json-summary",
72
73
  "test:lib": "vitest run",
73
74
  "test:lib:dev": "pnpm test:lib --watch",
74
75
  "test:types": "tsc"
@@ -16,8 +16,10 @@ import type {
16
16
  import type { VercelGatewayMessageMetadataByModality } from '../message-types'
17
17
  import type { ExternalResponsesProviderOptions } from '../text/responses-provider-options'
18
18
  import type { VercelGatewayClientConfig } from '../utils/client'
19
+ import type { OpenAIBaseTextAdapterOptions } from '@tanstack/openai-base'
19
20
 
20
- export interface VercelGatewayResponsesTextConfig extends VercelGatewayClientConfig {}
21
+ export interface VercelGatewayResponsesTextConfig
22
+ extends VercelGatewayClientConfig, OpenAIBaseTextAdapterOptions {}
21
23
 
22
24
  export type VercelGatewayResponsesTextProviderOptions =
23
25
  ExternalResponsesProviderOptions
@@ -55,6 +57,7 @@ export class VercelGatewayResponsesTextAdapter<
55
57
  model,
56
58
  'vercel-gateway',
57
59
  new OpenAI(withVercelGatewayDefaults(config)),
60
+ config,
58
61
  )
59
62
  }
60
63
 
@@ -11,13 +11,15 @@ import type {
11
11
  } from '../model-meta'
12
12
  import type { VercelGatewayMessageMetadataByModality } from '../message-types'
13
13
  import type { VercelGatewayClientConfig } from '../utils/client'
14
+ import type { OpenAIBaseTextAdapterOptions } from '@tanstack/openai-base'
14
15
 
15
16
  type ResolveToolCapabilities<TModel extends string> =
16
17
  TModel extends keyof VercelGatewayChatModelToolCapabilitiesByName
17
18
  ? NonNullable<VercelGatewayChatModelToolCapabilitiesByName[TModel]>
18
19
  : readonly []
19
20
 
20
- export interface VercelGatewayTextConfig extends VercelGatewayClientConfig {}
21
+ export interface VercelGatewayTextConfig
22
+ extends VercelGatewayClientConfig, OpenAIBaseTextAdapterOptions {}
21
23
 
22
24
  export type { ExternalTextProviderOptions as VercelGatewayTextProviderOptions } from '../text/text-provider-options'
23
25
 
@@ -49,6 +51,7 @@ export class VercelGatewayTextAdapter<
49
51
  model,
50
52
  'vercel-gateway',
51
53
  new OpenAI(withVercelGatewayDefaults(config)),
54
+ config,
52
55
  )
53
56
  }
54
57
 
package/src/model-meta.ts CHANGED
@@ -84,6 +84,7 @@ export const VERCEL_GATEWAY_CHAT_MODELS = [
84
84
  'deepseek/deepseek-v4-pro',
85
85
  'deepseek/deepseek-v4-pro-0813',
86
86
  'deepseek/deepseek-v4.1-flash',
87
+ 'fireworks/ember-1',
87
88
  'fish-audio/s1',
88
89
  'fish-audio/s2-pro',
89
90
  'fish-audio/s2.1-pro',
@@ -316,6 +317,7 @@ export const VERCEL_GATEWAY_PROVIDERS = [
316
317
  'bytedance',
317
318
  'cohere',
318
319
  'deepseek',
320
+ 'fireworks',
319
321
  'fish-audio',
320
322
  'google',
321
323
  'inception',
@@ -1209,6 +1211,16 @@ export type VercelGatewayChatModelProviderOptionsByName = {
1209
1211
  | 'response_format'
1210
1212
  | 'structured_outputs'
1211
1213
  >
1214
+ 'fireworks/ember-1': VercelGatewayCommonOptions &
1215
+ Pick<
1216
+ VercelGatewayBaseOptions,
1217
+ | 'max_tokens'
1218
+ | 'max_output_tokens'
1219
+ | 'temperature'
1220
+ | 'stop'
1221
+ | 'reasoning'
1222
+ | 'include_reasoning'
1223
+ >
1212
1224
  'fish-audio/s1': VercelGatewayCommonOptions
1213
1225
  'fish-audio/s2-pro': VercelGatewayCommonOptions
1214
1226
  'fish-audio/s2.1-pro': VercelGatewayCommonOptions
@@ -3543,6 +3555,7 @@ export type VercelGatewayModelInputModalitiesByName = {
3543
3555
  'deepseek/deepseek-v4-pro': readonly ['text']
3544
3556
  'deepseek/deepseek-v4-pro-0813': readonly ['text']
3545
3557
  'deepseek/deepseek-v4.1-flash': readonly ['text', 'image']
3558
+ 'fireworks/ember-1': readonly ['text', 'image']
3546
3559
  'fish-audio/s1': readonly ['text']
3547
3560
  'fish-audio/s2-pro': readonly ['text']
3548
3561
  'fish-audio/s2.1-pro': readonly ['text']