@ai-sdk/gateway 4.0.64 → 4.0.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # @ai-sdk/gateway
2
2
 
3
+ ## 4.0.68
4
+
5
+ ### Patch Changes
6
+
7
+ - 805bbfc: chore(provider/gateway): update gateway model settings files
8
+ - 90192f1: Mark transient network errors that occur while reading successful response bodies as retryable.
9
+ - Updated dependencies [90192f1]
10
+ - @ai-sdk/provider-utils@5.0.33
11
+
12
+ ## 4.0.67
13
+
14
+ ### Patch Changes
15
+
16
+ - 0e7994c: chore(provider/gateway): update gateway model settings files
17
+ - Updated dependencies [3e125ba]
18
+ - @ai-sdk/provider-utils@5.0.32
19
+
20
+ ## 4.0.66
21
+
22
+ ### Patch Changes
23
+
24
+ - 81bebaf: Add GLM-5.3-Flash model support to the Z.AI provider and AI Gateway.
25
+
26
+ ## 4.0.65
27
+
28
+ ### Patch Changes
29
+
30
+ - 80227cf: chore(provider/gateway): update gateway model settings files
31
+ - a9782e1: fix: align batch result parsing, request counts, and lifecycle behavior across providers
32
+ - 5533946: Remove the internal-only `relevance_score` and `citation_number` fields from
33
+ published Tako Search response types and schemas. Code that reads either field
34
+ must be updated; Gateway responses still pass the values through at runtime,
35
+ but they are no longer typed. Also document data surcharge controls.
36
+ - Updated dependencies [a9782e1]
37
+ - Updated dependencies [35841f5]
38
+ - Updated dependencies [d2f3353]
39
+ - @ai-sdk/provider-utils@5.0.31
40
+
3
41
  ## 4.0.64
4
42
 
5
43
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -4,9 +4,9 @@ import { FetchFunction, WebSocketConstructor, InferSchema } from '@ai-sdk/provid
4
4
 
5
5
  type GatewayEmbeddingModelId = 'alibaba/qwen3-embedding-0.6b' | 'alibaba/qwen3-embedding-4b' | 'alibaba/qwen3-embedding-8b' | 'amazon/titan-embed-text-v2' | 'cohere/embed-v4.0' | 'google/gemini-embedding-001' | 'google/gemini-embedding-2' | 'google/text-embedding-005' | 'google/text-multilingual-embedding-002' | 'mistral/codestral-embed' | 'mistral/mistral-embed' | 'openai/text-embedding-3-large' | 'openai/text-embedding-3-small' | 'openai/text-embedding-ada-002' | 'perplexity/pplx-embed-v1-0.6b' | 'perplexity/pplx-embed-v1-4b' | 'voyage/voyage-3-large' | 'voyage/voyage-3.5' | 'voyage/voyage-3.5-lite' | 'voyage/voyage-4' | 'voyage/voyage-4-large' | 'voyage/voyage-4-lite' | 'voyage/voyage-code-2' | 'voyage/voyage-code-3' | 'voyage/voyage-finance-2' | 'voyage/voyage-law-2' | (string & {});
6
6
 
7
- type GatewayImageModelId = 'bfl/flux-2-flex' | 'bfl/flux-2-klein-4b' | 'bfl/flux-2-klein-9b' | 'bfl/flux-2-max' | 'bfl/flux-2-pro' | 'bfl/flux-kontext-max' | 'bfl/flux-kontext-pro' | 'bfl/flux-pro-1.0-fill' | 'bfl/flux-pro-1.1' | 'bfl/flux-pro-1.1-ultra' | 'bytedance/seedream-4.0' | 'bytedance/seedream-4.5' | 'bytedance/seedream-5.0-lite' | 'bytedance/seedream-5.0-pro' | 'openai/gpt-image-1' | 'openai/gpt-image-1-mini' | 'openai/gpt-image-1.5' | 'openai/gpt-image-2' | 'prodia/flux-fast-schnell' | 'quiverai/arrow-1.1' | 'recraft/recraft-v2' | 'recraft/recraft-v3' | 'recraft/recraft-v4' | 'recraft/recraft-v4-pro' | 'recraft/recraft-v4.1' | 'recraft/recraft-v4.1-pro' | 'recraft/recraft-v4.1-utility' | 'recraft/recraft-v4.1-utility-pro' | 'spacexai/grok-imagine-image' | 'spacexai/grok-imagine-image-2.0' | (string & {});
7
+ type GatewayImageModelId = 'bfl/flux-2-flex' | 'bfl/flux-2-klein-4b' | 'bfl/flux-2-klein-9b' | 'bfl/flux-2-max' | 'bfl/flux-2-pro' | 'bfl/flux-kontext-max' | 'bfl/flux-kontext-pro' | 'bfl/flux-pro-1.0-fill' | 'bfl/flux-pro-1.1' | 'bfl/flux-pro-1.1-ultra' | 'bytedance/seedream-4.0' | 'bytedance/seedream-4.5' | 'bytedance/seedream-5.0-lite' | 'bytedance/seedream-5.0-pro' | 'meta/muse-image-1.0' | 'openai/gpt-image-1' | 'openai/gpt-image-1-mini' | 'openai/gpt-image-1.5' | 'openai/gpt-image-2' | 'prodia/flux-fast-schnell' | 'quiverai/arrow-1.1' | 'recraft/recraft-v2' | 'recraft/recraft-v3' | 'recraft/recraft-v4' | 'recraft/recraft-v4-pro' | 'recraft/recraft-v4.1' | 'recraft/recraft-v4.1-pro' | 'recraft/recraft-v4.1-utility' | 'recraft/recraft-v4.1-utility-pro' | 'spacexai/grok-imagine-image' | 'spacexai/grok-imagine-image-2.0' | (string & {});
8
8
 
9
- type GatewayModelId = '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-max' | 'amazon/nova-2-lite' | 'amazon/nova-lite' | 'amazon/nova-micro' | 'amazon/nova-pro' | 'anthropic/claude-3-haiku' | 'anthropic/claude-fable-5' | '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-sonnet-4' | 'anthropic/claude-sonnet-4.5' | 'anthropic/claude-sonnet-4.6' | 'anthropic/claude-sonnet-5' | 'arcee-ai/trinity-large-thinking' | 'arcee-ai/trinity-mini' | 'bytedance/seed-1.6' | 'bytedance/seed-1.8' | 'cohere/command-a' | 'deepseek/deepseek-r1' | 'deepseek/deepseek-v3' | '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' | '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.6-flash' | 'google/gemini-3.7-flash' | 'google/gemini-omni-flash-preview' | 'google/gemma-4-26b-a4b-it' | 'google/gemma-4-31b-it' | 'inception/mercury-2' | 'inception/mercury-coder-small' | 'inclusionai/ling-3.0-flash' | 'interfaze/interfaze-beta' | 'kwaipilot/kat-coder-air-v2.5' | 'kwaipilot/kat-coder-pro-v1' | 'kwaipilot/kat-coder-pro-v2' | 'kwaipilot/kat-coder-pro-v2.5' | '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' | '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/devstral-2' | 'mistral/devstral-small-2' | 'mistral/magistral-medium' | 'mistral/magistral-small' | 'mistral/ministral-14b' | 'mistral/ministral-3b' | 'mistral/ministral-8b' | 'mistral/mistral-large-3' | 'mistral/mistral-medium' | 'mistral/mistral-medium-3.5' | 'mistral/mistral-nemo' | 'mistral/mistral-small' | 'mistral/pixtral-12b' | '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-3.5-lightning-free' | '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-search-preview' | '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-oss-120b' | 'openai/gpt-oss-20b' | 'openai/gpt-oss-safeguard-20b' | 'openai/o1' | 'openai/o3' | 'openai/o3-deep-research' | 'openai/o3-fast' | 'openai/o3-mini' | 'openai/o3-pro' | 'openai/o4-mini' | 'openai/o4-mini-fast' | 'perplexity/sonar' | 'perplexity/sonar-pro' | 'perplexity/sonar-reasoning-pro' | 'poolside/laguna-s-2.1' | 'poolside/laguna-s-2.1-free' | 'sakana/fugu-ultra' | '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-build-0.1' | 'stepfun/step-3.5-flash' | 'stepfun/step-3.7-flash' | 'tencent/hy-mt2-lite' | 'tencent/hy-mt2-plus' | 'tencent/hy-mt2-pro' | 'tencent/hy3' | 'thinkingmachines/inkling' | 'thinkingmachines/inkling-small' | 'xiaomi/mimo-v2.5' | 'xiaomi/mimo-v2.5-pro' | '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-5v-turbo' | (string & {});
9
+ type GatewayModelId = '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' | 'amazon/nova-2-lite' | 'amazon/nova-lite' | 'amazon/nova-micro' | 'amazon/nova-pro' | 'anthropic/claude-3-haiku' | 'anthropic/claude-fable-5' | '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-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' | 'cohere/command-a' | 'deepseek/deepseek-r1' | 'deepseek/deepseek-v3' | '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' | '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.6-flash' | 'google/gemini-3.7-flash' | 'google/gemini-omni-flash-preview' | 'google/gemma-4-26b-a4b-it' | 'google/gemma-4-31b-it' | 'inception/mercury-2' | 'inception/mercury-coder-small' | 'inclusionai/ling-3.0-flash' | 'inclusionai/ling-3.0-flash-fin' | 'inclusionai/ling-3.0-flash-fin-free' | 'interfaze/interfaze-beta' | 'kwaipilot/kat-coder-air-v2.5' | 'kwaipilot/kat-coder-pro-v1' | 'kwaipilot/kat-coder-pro-v2' | 'kwaipilot/kat-coder-pro-v2.5' | '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' | '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-free' | 'minimax/minimax-m2.7-highspeed' | 'minimax/minimax-m3' | 'minimax/minimax-m3-free' | 'mistral/codestral' | 'mistral/devstral-2' | 'mistral/devstral-small-2' | 'mistral/ministral-14b' | 'mistral/ministral-3b' | 'mistral/ministral-8b' | 'mistral/mistral-large-3' | 'mistral/mistral-medium' | 'mistral/mistral-medium-3.5' | 'mistral/mistral-nemo' | 'mistral/mistral-small' | 'mistral/pixtral-12b' | '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-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-oss-120b' | 'openai/gpt-oss-20b' | 'openai/gpt-oss-safeguard-120b' | 'openai/gpt-oss-safeguard-20b' | 'openai/o1' | 'openai/o3' | 'openai/o3-fast' | 'openai/o3-mini' | 'openai/o3-pro' | 'openai/o4-mini' | 'openai/o4-mini-fast' | 'perplexity/sonar' | 'perplexity/sonar-pro' | 'perplexity/sonar-reasoning-pro' | 'poolside/laguna-s-2.1' | 'poolside/laguna-s-2.1-free' | 'sakana/fugu-ultra' | '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-build-0.1' | 'stepfun/step-3.5-flash' | 'stepfun/step-3.7-flash' | 'tencent/hy-mt2-lite' | 'tencent/hy-mt2-plus' | 'tencent/hy-mt2-pro' | 'tencent/hy3' | 'thinkingmachines/inkling' | 'thinkingmachines/inkling-small' | 'xiaomi/mimo-v2.5' | 'xiaomi/mimo-v2.5-pro' | '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-flash' | 'zai/glm-5v-turbo' | (string & {});
10
10
 
11
11
  /**
12
12
  * Shared WebSocket subprotocol contract for AI Gateway realtime and streaming
@@ -81,9 +81,9 @@ type GatewayRerankingModelId = 'cohere/rerank-v3.5' | 'cohere/rerank-v4-fast' |
81
81
 
82
82
  type GatewaySpeechModelId = 'fish-audio/s1' | 'fish-audio/s1-free' | 'fish-audio/s2-pro' | 'fish-audio/s2-pro-free' | 'fish-audio/s2.1-pro' | 'fish-audio/s2.1-pro-free' | 'openai/tts-1' | 'openai/tts-1-hd' | 'spacexai/grok-tts' | (string & {});
83
83
 
84
- type GatewayTranscriptionModelId = 'fish-audio/transcribe-1' | 'fish-audio/transcribe-1-free' | 'openai/gpt-4o-mini-transcribe' | 'openai/gpt-4o-transcribe' | 'openai/gpt-realtime-whisper' | 'openai/whisper-1' | 'spacexai/grok-stt' | (string & {});
84
+ type GatewayTranscriptionModelId = 'fish-audio/transcribe-1' | 'fish-audio/transcribe-1-free' | 'google/gemini-3.5-transcribe' | 'google/gemini-3.5-transcribe-live' | 'openai/gpt-4o-mini-transcribe' | 'openai/gpt-4o-transcribe' | 'openai/gpt-realtime-whisper' | 'openai/whisper-1' | 'spacexai/grok-stt' | (string & {});
85
85
 
86
- type GatewayVideoModelId = 'alibaba/wan-v2.5-t2v-preview' | 'alibaba/wan-v2.6-i2v' | 'alibaba/wan-v2.6-i2v-flash' | 'alibaba/wan-v2.6-r2v' | 'alibaba/wan-v2.6-r2v-flash' | 'alibaba/wan-v2.6-t2v' | 'alibaba/wan-v2.7-r2v' | 'alibaba/wan-v2.7-t2v' | 'bfl/flux-3-video' | 'bytedance/seedance-2.0' | 'bytedance/seedance-2.0-fast' | 'bytedance/seedance-2.0-mini' | 'bytedance/seedance-2.5' | 'bytedance/seedance-v1.0-pro' | 'bytedance/seedance-v1.0-pro-fast' | 'bytedance/seedance-v1.5-pro' | 'google/veo-3.0-fast-generate-001' | 'google/veo-3.0-generate-001' | 'google/veo-3.1-fast-generate-001' | 'google/veo-3.1-generate-001' | 'google/veo-3.1-lite-generate-001' | 'klingai/kling-v2.5-turbo-i2v' | 'klingai/kling-v2.5-turbo-t2v' | 'klingai/kling-v2.6-i2v' | 'klingai/kling-v2.6-motion-control' | 'klingai/kling-v2.6-t2v' | 'klingai/kling-v3.0-i2v' | 'klingai/kling-v3.0-motion-control' | 'klingai/kling-v3.0-t2v' | 'minimax/minimax-h3' | 'spacexai/grok-imagine-video' | 'spacexai/grok-imagine-video-1.5' | 'spacexai/grok-imagine-video-1.5-preview' | (string & {});
86
+ type GatewayVideoModelId = 'alibaba/wan-v2.5-t2v-preview' | 'alibaba/wan-v2.6-i2v' | 'alibaba/wan-v2.6-i2v-flash' | 'alibaba/wan-v2.6-r2v' | 'alibaba/wan-v2.6-r2v-flash' | 'alibaba/wan-v2.6-t2v' | 'alibaba/wan-v2.7-r2v' | 'alibaba/wan-v2.7-t2v' | 'alibaba/wan-v3.0-video' | 'bfl/flux-3-video' | 'bytedance/seedance-2.0' | 'bytedance/seedance-2.0-fast' | 'bytedance/seedance-2.0-mini' | 'bytedance/seedance-2.5' | 'bytedance/seedance-v1.0-pro' | 'bytedance/seedance-v1.0-pro-fast' | 'bytedance/seedance-v1.5-pro' | 'google/veo-3.0-fast-generate-001' | 'google/veo-3.0-generate-001' | 'google/veo-3.1-fast-generate-001' | 'google/veo-3.1-generate-001' | 'google/veo-3.1-lite-generate-001' | 'klingai/kling-v2.5-turbo-i2v' | 'klingai/kling-v2.5-turbo-t2v' | 'klingai/kling-v2.6-i2v' | 'klingai/kling-v2.6-motion-control' | 'klingai/kling-v2.6-t2v' | 'klingai/kling-v3.0-i2v' | 'klingai/kling-v3.0-motion-control' | 'klingai/kling-v3.0-t2v' | 'minimax/minimax-h3' | 'spacexai/grok-imagine-video' | 'spacexai/grok-imagine-video-1.5' | 'spacexai/grok-imagine-video-1.5-preview' | (string & {});
87
87
 
88
88
  declare const KNOWN_MODEL_TYPES: readonly ["embedding", "image", "language", "realtime", "reranking", "speech", "transcription", "video"];
89
89
  type KnownModelType = (typeof KNOWN_MODEL_TYPES)[number];
@@ -247,15 +247,28 @@ interface GatewayGenerationInfo {
247
247
  type TakoSearchEffort = 'deep' | 'fast' | 'instant';
248
248
  type TakoContentFormat = 'card_json' | 'csv' | 'json_compact' | 'json_records';
249
249
  interface TakoDataSourceConfig {
250
- /** Maximum number of data cards to return (1-20). */
250
+ /**
251
+ * Maximum number of data results to return (1-20). When includeContents is
252
+ * true, each additional result adds its own data surcharge.
253
+ */
251
254
  count?: number;
252
- /** Inline underlying card data in the response. This can add a data charge. */
255
+ /**
256
+ * Inline rows for each data result. This adds a data surcharge based on row
257
+ * count and dataset source. To estimate cost, search with includeContents
258
+ * disabled and inspect cards.content.export_pricing. This applies to every
259
+ * returned card; limit sources.data.count and sources.data.maxRows to control
260
+ * cost.
261
+ */
253
262
  includeContents?: boolean;
254
263
  /** Requested delivery mode for card data. Search cards are always inlined. */
255
264
  mode?: 'inline' | 'url';
256
265
  /** Serialization for inlined card data. */
257
266
  contentFormat?: TakoContentFormat;
258
- /** Maximum rows for inlined card data. The service clamps large values. */
267
+ /**
268
+ * Maximum rows to inline per result. Omit to use the allowance in
269
+ * cards.content.export_pricing. A data surcharge applies per 1,000 exported
270
+ * rows; lower values reduce cost.
271
+ */
259
272
  maxRows?: number;
260
273
  /** Data Graph node IDs to prioritize. */
261
274
  nodeIds?: string[];
@@ -417,7 +430,6 @@ interface TakoCard {
417
430
  relevance?: 'High' | 'Low' | 'Medium' | null;
418
431
  content?: TakoResultContent | null;
419
432
  exportable?: boolean;
420
- relevance_score?: number | null;
421
433
  nodes?: Array<{
422
434
  id: string;
423
435
  type: 'entity' | 'metric';
@@ -441,7 +453,6 @@ interface TakoWebResult {
441
453
  source_name?: string | null;
442
454
  publish_date?: string | null;
443
455
  content?: TakoResultContent | null;
444
- citation_number?: number | null;
445
456
  }
446
457
  interface TakoSearchResponse {
447
458
  request_id: string;
@@ -1330,13 +1341,14 @@ declare class GatewayResponseError extends GatewayError {
1330
1341
  readonly type = "response_error";
1331
1342
  readonly response?: unknown;
1332
1343
  readonly validationError?: TypeValidationError;
1333
- constructor({ message, statusCode, response, validationError, cause, generationId, }?: {
1344
+ constructor({ message, statusCode, response, validationError, cause, generationId, isRetryable, }?: {
1334
1345
  message?: string;
1335
1346
  statusCode?: number;
1336
1347
  response?: unknown;
1337
1348
  validationError?: TypeValidationError;
1338
1349
  cause?: unknown;
1339
1350
  generationId?: string;
1351
+ isRetryable?: boolean;
1340
1352
  });
1341
1353
  static isInstance(error: unknown): error is GatewayResponseError;
1342
1354
  }
package/dist/index.js CHANGED
@@ -400,9 +400,10 @@ var GatewayResponseError = class extends (_b10 = GatewayError, _a10 = symbol10,
400
400
  response,
401
401
  validationError,
402
402
  cause,
403
- generationId
403
+ generationId,
404
+ isRetryable
404
405
  } = {}) {
405
- super({ message, statusCode, cause, generationId });
406
+ super({ message, statusCode, cause, generationId, isRetryable });
406
407
  this[_a10] = true;
407
408
  // used in isInstance
408
409
  this.name = name9;
@@ -426,7 +427,8 @@ async function createGatewayErrorFromResponse({
426
427
  statusCode,
427
428
  defaultMessage = "Gateway request failed",
428
429
  cause,
429
- authMethod
430
+ authMethod,
431
+ isRetryable
430
432
  }) {
431
433
  var _a12;
432
434
  const parseResult = await safeValidateTypes({
@@ -441,7 +443,8 @@ async function createGatewayErrorFromResponse({
441
443
  response,
442
444
  validationError: parseResult.error,
443
445
  cause,
444
- generationId: rawGenerationId
446
+ generationId: rawGenerationId,
447
+ isRetryable
445
448
  });
446
449
  }
447
450
  const validatedResponse = parseResult.value;
@@ -638,7 +641,8 @@ async function asGatewayError(error, authMethod) {
638
641
  statusCode: (_a12 = error.statusCode) != null ? _a12 : 500,
639
642
  defaultMessage: "Gateway request failed",
640
643
  cause: error,
641
- authMethod
644
+ authMethod,
645
+ isRetryable: error.isRetryable && (error.statusCode == null || error.statusCode < 400) ? true : void 0
642
646
  });
643
647
  }
644
648
  return await createGatewayErrorFromResponse({
@@ -1007,16 +1011,14 @@ var gatewayGenerationInfoResponseSchema = lazySchema7(
1007
1011
  );
1008
1012
 
1009
1013
  // src/gateway-language-model-batch.ts
1010
- import {
1011
- APICallError as APICallError2
1012
- } from "@ai-sdk/provider";
1013
1014
  import {
1014
1015
  combineHeaders as combineHeaders2,
1015
1016
  convertAsyncIteratorToReadableStream,
1016
1017
  createJsonErrorResponseHandler as createJsonErrorResponseHandler5,
1018
+ createJsonLinesResponseHandler,
1017
1019
  createJsonResponseHandler as createJsonResponseHandler5,
1018
1020
  getErrorMessage as getErrorMessage5,
1019
- parseJSON,
1021
+ normalizeBatchRequestCounts,
1020
1022
  postJsonToApi as postJsonToApi2,
1021
1023
  resolve as resolve5,
1022
1024
  WORKFLOW_SERIALIZE as WORKFLOW_SERIALIZE2,
@@ -1346,7 +1348,7 @@ var GatewayBatchLanguageModel = class _GatewayBatchLanguageModel extends Gateway
1346
1348
  }) {
1347
1349
  const resolvedHeaders = this.config.headers ? await resolve5(this.config.headers) : void 0;
1348
1350
  try {
1349
- const { value: stream } = await postJsonToApi2({
1351
+ const { value: lines } = await postJsonToApi2({
1350
1352
  url: this.getBatchUrl("results"),
1351
1353
  headers: combineHeaders2(
1352
1354
  resolvedHeaders,
@@ -1355,24 +1357,9 @@ var GatewayBatchLanguageModel = class _GatewayBatchLanguageModel extends Gateway
1355
1357
  await resolve5(this.config.o11yHeaders)
1356
1358
  ),
1357
1359
  body: { batchId },
1358
- successfulResponseHandler: async ({
1359
- response,
1360
- url,
1361
- requestBodyValues
1362
- }) => {
1363
- if (response.body == null) {
1364
- throw new APICallError2({
1365
- message: "Batch results response body is empty",
1366
- url,
1367
- requestBodyValues,
1368
- statusCode: response.status
1369
- });
1370
- }
1371
- return {
1372
- value: response.body,
1373
- responseHeaders: Object.fromEntries([...response.headers])
1374
- };
1375
- },
1360
+ successfulResponseHandler: createJsonLinesResponseHandler(
1361
+ gatewayBatchItemResultLineSchema
1362
+ ),
1376
1363
  failedResponseHandler: createJsonErrorResponseHandler5({
1377
1364
  errorSchema: z.any(),
1378
1365
  errorToMessage: (data) => {
@@ -1384,7 +1371,7 @@ var GatewayBatchLanguageModel = class _GatewayBatchLanguageModel extends Gateway
1384
1371
  fetch: this.config.fetch
1385
1372
  });
1386
1373
  return convertAsyncIteratorToReadableStream(
1387
- parseGatewayBatchResultLines(stream)
1374
+ convertGatewayBatchResultLines(lines)
1388
1375
  );
1389
1376
  } catch (error) {
1390
1377
  if (isAbortOrTimeoutError(error)) {
@@ -1437,7 +1424,13 @@ function isAbortOrTimeoutError(error) {
1437
1424
  return error.name === "AbortError" || error.name === "TimeoutError";
1438
1425
  }
1439
1426
  function convertGatewayBatchStatus(body) {
1440
- const requestCounts = convertGatewayBatchRequestCounts(body.requestCounts);
1427
+ var _a12, _b12, _c, _d;
1428
+ const requestCounts = normalizeBatchRequestCounts({
1429
+ total: (_a12 = body.requestCounts) == null ? void 0 : _a12.total,
1430
+ pending: (_b12 = body.requestCounts) == null ? void 0 : _b12.pending,
1431
+ completed: (_c = body.requestCounts) == null ? void 0 : _c.completed,
1432
+ failed: (_d = body.requestCounts) == null ? void 0 : _d.failed
1433
+ });
1441
1434
  return {
1442
1435
  status: body.status,
1443
1436
  ...body.rawStatus != null && { rawStatus: body.rawStatus },
@@ -1459,67 +1452,18 @@ function convertGatewayBatchStatus(body) {
1459
1452
  }
1460
1453
  };
1461
1454
  }
1462
- function convertGatewayBatchRequestCounts(counts) {
1463
- if (counts == null || typeof counts.total !== "number" || typeof counts.pending !== "number" || typeof counts.completed !== "number" || typeof counts.failed !== "number") {
1464
- return void 0;
1465
- }
1466
- return {
1467
- total: counts.total,
1468
- pending: counts.pending,
1469
- completed: counts.completed,
1470
- failed: counts.failed
1471
- };
1472
- }
1473
- async function* parseGatewayBatchResultLines(stream) {
1474
- const reader = stream.getReader();
1475
- const decoder = new TextDecoder();
1476
- let buffer = "";
1477
- let finished = false;
1478
- try {
1479
- while (true) {
1480
- const { done, value } = await reader.read();
1481
- if (done) {
1482
- finished = true;
1483
- buffer += decoder.decode();
1484
- break;
1485
- }
1486
- buffer += decoder.decode(value, { stream: true });
1487
- let lineEnd = buffer.indexOf("\n");
1488
- while (lineEnd !== -1) {
1489
- const line = buffer.slice(0, lineEnd).replace(/\r$/, "");
1490
- buffer = buffer.slice(lineEnd + 1);
1491
- if (line.trim().length > 0) {
1492
- yield await parseGatewayBatchResultLine(line);
1493
- }
1494
- lineEnd = buffer.indexOf("\n");
1495
- }
1496
- }
1497
- const finalLine = buffer.replace(/\r$/, "");
1498
- if (finalLine.trim().length > 0) {
1499
- yield await parseGatewayBatchResultLine(finalLine);
1500
- }
1501
- } finally {
1502
- if (!finished) {
1503
- await reader.cancel().catch(() => {
1504
- });
1505
- }
1506
- reader.releaseLock();
1507
- }
1508
- }
1509
- async function parseGatewayBatchResultLine(line) {
1455
+ async function* convertGatewayBatchResultLines(lines) {
1510
1456
  var _a12;
1511
- const parsed = await parseJSON({
1512
- text: line,
1513
- schema: gatewayBatchItemResultLineSchema
1514
- });
1515
- const item = parsed;
1516
- if (item.status === "succeeded") {
1517
- const response = (_a12 = item.result) == null ? void 0 : _a12.response;
1518
- if (response !== void 0 && typeof response.timestamp === "string") {
1519
- response.timestamp = new Date(response.timestamp);
1457
+ for await (const line of lines) {
1458
+ const item = line;
1459
+ if (item.status === "succeeded") {
1460
+ const response = (_a12 = item.result) == null ? void 0 : _a12.response;
1461
+ if (response !== void 0 && typeof response.timestamp === "string") {
1462
+ response.timestamp = new Date(response.timestamp);
1463
+ }
1520
1464
  }
1465
+ yield item;
1521
1466
  }
1522
- return item;
1523
1467
  }
1524
1468
  var gatewayBatchItemResultLineSchema = z.object({
1525
1469
  id: z.string(),
@@ -1853,7 +1797,7 @@ var gatewayImageResponseSchema = z.object({
1853
1797
 
1854
1798
  // src/gateway-video-model.ts
1855
1799
  import {
1856
- APICallError as APICallError3,
1800
+ APICallError as APICallError2,
1857
1801
  getErrorMessage as getErrorMessage8
1858
1802
  } from "@ai-sdk/provider";
1859
1803
  import {
@@ -1897,7 +1841,7 @@ var GatewayVideoModel = class {
1897
1841
  requestBodyValues
1898
1842
  }) => {
1899
1843
  if (response.body == null) {
1900
- throw new APICallError3({
1844
+ throw new APICallError2({
1901
1845
  message: "SSE response body is empty",
1902
1846
  url,
1903
1847
  requestBodyValues,
@@ -1912,7 +1856,7 @@ var GatewayVideoModel = class {
1912
1856
  const { done, value: parseResult } = await reader.read();
1913
1857
  reader.releaseLock();
1914
1858
  if (done || !parseResult) {
1915
- throw new APICallError3({
1859
+ throw new APICallError2({
1916
1860
  message: "SSE stream ended without a data event",
1917
1861
  url,
1918
1862
  requestBodyValues,
@@ -1920,7 +1864,7 @@ var GatewayVideoModel = class {
1920
1864
  });
1921
1865
  }
1922
1866
  if (!parseResult.success) {
1923
- throw new APICallError3({
1867
+ throw new APICallError2({
1924
1868
  message: "Failed to parse video SSE event",
1925
1869
  cause: parseResult.error,
1926
1870
  url,
@@ -1930,7 +1874,7 @@ var GatewayVideoModel = class {
1930
1874
  }
1931
1875
  const event = parseResult.value;
1932
1876
  if (event.type === "error") {
1933
- throw new APICallError3({
1877
+ throw new APICallError2({
1934
1878
  message: event.message,
1935
1879
  statusCode: event.statusCode,
1936
1880
  url,
@@ -3220,13 +3164,19 @@ import {
3220
3164
  zodSchema as zodSchema13
3221
3165
  } from "@ai-sdk/provider-utils";
3222
3166
  var takoDataSourceInputSchema = z.object({
3223
- count: z.number().optional().describe("Maximum number of data cards to return (1-20)."),
3224
- include_contents: z.boolean().optional().describe("Inline underlying card data. This can add a data charge."),
3167
+ count: z.number().optional().describe(
3168
+ "Maximum number of data results to return (1-20). When include_contents is true, each additional result adds its own data surcharge."
3169
+ ),
3170
+ include_contents: z.boolean().optional().describe(
3171
+ "Inline rows for each data result. This adds a data surcharge based on row count and dataset source. To estimate cost, search with include_contents disabled and inspect cards.content.export_pricing. This applies to every returned card; limit sources.data.count and sources.data.max_rows to control cost."
3172
+ ),
3225
3173
  mode: z.enum(["inline", "url"]).optional().describe(
3226
3174
  "Requested data delivery mode. Search card data is always inline."
3227
3175
  ),
3228
3176
  content_format: z.enum(["card_json", "csv", "json_compact", "json_records"]).optional().describe("Serialization for inlined card data."),
3229
- max_rows: z.number().optional().describe("Maximum rows for inlined card data."),
3177
+ max_rows: z.number().optional().describe(
3178
+ "Maximum rows to inline per result. Omit to use the allowance in cards.content.export_pricing. A data surcharge applies per 1,000 exported rows; lower values reduce cost."
3179
+ ),
3230
3180
  node_ids: z.array(z.string()).optional().describe("Data Graph node IDs to prioritize. Maximum 20."),
3231
3181
  strict: z.boolean().optional().describe(
3232
3182
  "Only return cards matching node_ids. Requires a non-empty node_ids."
@@ -3358,7 +3308,6 @@ var takoCardSchema = z.object({
3358
3308
  relevance: z.enum(["High", "Low", "Medium"]).nullish(),
3359
3309
  content: takoResultContentSchema.nullish(),
3360
3310
  exportable: z.boolean().optional(),
3361
- relevance_score: z.number().nullish(),
3362
3311
  nodes: z.array(
3363
3312
  z.object({
3364
3313
  id: z.string(),
@@ -3380,8 +3329,7 @@ var takoWebResultSchema = z.object({
3380
3329
  snippet: z.string().nullish(),
3381
3330
  source_name: z.string().nullish(),
3382
3331
  publish_date: z.string().nullish(),
3383
- content: takoResultContentSchema.nullish(),
3384
- citation_number: z.number().nullish()
3332
+ content: takoResultContentSchema.nullish()
3385
3333
  }).passthrough();
3386
3334
  var takoSearchOutputSchema = lazySchema13(
3387
3335
  () => zodSchema13(
@@ -3467,7 +3415,7 @@ async function getVercelRequestId() {
3467
3415
  }
3468
3416
 
3469
3417
  // src/version.ts
3470
- var VERSION = true ? "4.0.64" : "0.0.0-test";
3418
+ var VERSION = true ? "4.0.68" : "0.0.0-test";
3471
3419
 
3472
3420
  // src/gateway-provider.ts
3473
3421
  var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";