@ai-sdk/gateway 1.0.0-beta.9 → 1.0.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.
- package/CHANGELOG.md +217 -0
- package/dist/index.d.mts +14 -3
- package/dist/index.d.ts +14 -3
- package/dist/index.js +124 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +124 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,222 @@
|
|
|
1
1
|
# @ai-sdk/gateway
|
|
2
2
|
|
|
3
|
+
## 1.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 028fb9c: refactor(provider/gateway): Cleanup old gateway-embedding-options file
|
|
8
|
+
- 6331826: feat(provider/gateway): Hide Cohere embedding models with no pricing info
|
|
9
|
+
- Updated dependencies [90d212f]
|
|
10
|
+
- @ai-sdk/provider-utils@3.0.1
|
|
11
|
+
|
|
12
|
+
## 1.0.0
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 9e16bfd: feat (provider/gateway): update model ids
|
|
17
|
+
- 0477a13: feat (provider/gateway): Add OpenAI embedding support
|
|
18
|
+
- 26b6dd0: feat (providers/gateway): include deployment and request id
|
|
19
|
+
- 30ab1de: feat (provider/gateway): add grok-4 model id
|
|
20
|
+
- e2aceaf: feat: add raw chunk support
|
|
21
|
+
- 97fedf9: feat (providers/gateway): include description and pricing info in model list
|
|
22
|
+
- c91586a: chore (providers/gateway): update language model ids
|
|
23
|
+
- 3cbcbb7: feat (providers/gateway): share common gateway error transform logic
|
|
24
|
+
- fedb55e: feat (provider/gateway): add z.ai and glm-4.5 models
|
|
25
|
+
- 6c2c708: feat (providers/gateway): initial gateway provider
|
|
26
|
+
- 721775e: feat(provider/gateway): Generate new Gateway embedding model settings file
|
|
27
|
+
- 70ebead: feat (provider/gateway): add qwen3 coder model id
|
|
28
|
+
- f3639fa: feat (providers/gateway): improve oidc api key client auth flow
|
|
29
|
+
- 8bd3624: feat (provider/gateway): update model ids to include vercel
|
|
30
|
+
- c145d62: feat (providers/gateway): add createGateway shorthand alias for createGatewayProvider
|
|
31
|
+
- f77bc38: chore (providers/gateway): update language model ids
|
|
32
|
+
- 989ac75: chore (providers/gateway): update chat model ids
|
|
33
|
+
- 7742ba3: feat (providers/gateway): add gateway error types with error detail
|
|
34
|
+
- c190907: fix (provider/gateway): use zod v4
|
|
35
|
+
- d1a034f: feature: using Zod 4 for internal stuff
|
|
36
|
+
- d454e4b: fix (providers/gateway): fix timestamp error when streaming objects
|
|
37
|
+
- cf1e00e: feat (provider/gateway): add devstral model id
|
|
38
|
+
- cc21603: feat (provider/gateway): Add AI Gateway provider options (ordering)
|
|
39
|
+
- 205077b: fix: improve Zod compatibility
|
|
40
|
+
- e001ea1: fix (provider/gateway): remove unnecessary 'x-' prefix on auth method header
|
|
41
|
+
- 27deb4d: feat (provider/gateway): Add providerMetadata to embeddings response
|
|
42
|
+
- Updated dependencies [a571d6e]
|
|
43
|
+
- Updated dependencies [742b7be]
|
|
44
|
+
- Updated dependencies [e7fcc86]
|
|
45
|
+
- Updated dependencies [7cddb72]
|
|
46
|
+
- Updated dependencies [ccce59b]
|
|
47
|
+
- Updated dependencies [e2b9e4b]
|
|
48
|
+
- Updated dependencies [95857aa]
|
|
49
|
+
- Updated dependencies [45c1ea2]
|
|
50
|
+
- Updated dependencies [6f6bb89]
|
|
51
|
+
- Updated dependencies [060370c]
|
|
52
|
+
- Updated dependencies [dc714f3]
|
|
53
|
+
- Updated dependencies [b5da06a]
|
|
54
|
+
- Updated dependencies [d1a1aa1]
|
|
55
|
+
- Updated dependencies [63f9e9b]
|
|
56
|
+
- Updated dependencies [5d142ab]
|
|
57
|
+
- Updated dependencies [d5f588f]
|
|
58
|
+
- Updated dependencies [e025824]
|
|
59
|
+
- Updated dependencies [0571b98]
|
|
60
|
+
- Updated dependencies [b6b43c7]
|
|
61
|
+
- Updated dependencies [4fef487]
|
|
62
|
+
- Updated dependencies [48d257a]
|
|
63
|
+
- Updated dependencies [0c0c0b3]
|
|
64
|
+
- Updated dependencies [0d2c085]
|
|
65
|
+
- Updated dependencies [40acf9b]
|
|
66
|
+
- Updated dependencies [9222aeb]
|
|
67
|
+
- Updated dependencies [e2aceaf]
|
|
68
|
+
- Updated dependencies [411e483]
|
|
69
|
+
- Updated dependencies [8ba77a7]
|
|
70
|
+
- Updated dependencies [7b3ae3f]
|
|
71
|
+
- Updated dependencies [a166433]
|
|
72
|
+
- Updated dependencies [26735b5]
|
|
73
|
+
- Updated dependencies [443d8ec]
|
|
74
|
+
- Updated dependencies [a8c8bd5]
|
|
75
|
+
- Updated dependencies [abf9a79]
|
|
76
|
+
- Updated dependencies [14c9410]
|
|
77
|
+
- Updated dependencies [e86be6f]
|
|
78
|
+
- Updated dependencies [9bf7291]
|
|
79
|
+
- Updated dependencies [2e13791]
|
|
80
|
+
- Updated dependencies [9f95b35]
|
|
81
|
+
- Updated dependencies [66962ed]
|
|
82
|
+
- Updated dependencies [0d06df6]
|
|
83
|
+
- Updated dependencies [472524a]
|
|
84
|
+
- Updated dependencies [dd3ff01]
|
|
85
|
+
- Updated dependencies [d9c98f4]
|
|
86
|
+
- Updated dependencies [05d2819]
|
|
87
|
+
- Updated dependencies [9301f86]
|
|
88
|
+
- Updated dependencies [0a87932]
|
|
89
|
+
- Updated dependencies [c4a2fec]
|
|
90
|
+
- Updated dependencies [957b739]
|
|
91
|
+
- Updated dependencies [79457bd]
|
|
92
|
+
- Updated dependencies [a3f768e]
|
|
93
|
+
- Updated dependencies [7435eb5]
|
|
94
|
+
- Updated dependencies [8aa9e20]
|
|
95
|
+
- Updated dependencies [4617fab]
|
|
96
|
+
- Updated dependencies [ac34802]
|
|
97
|
+
- Updated dependencies [0054544]
|
|
98
|
+
- Updated dependencies [cb68df0]
|
|
99
|
+
- Updated dependencies [ad80501]
|
|
100
|
+
- Updated dependencies [68ecf2f]
|
|
101
|
+
- Updated dependencies [9e9c809]
|
|
102
|
+
- Updated dependencies [32831c6]
|
|
103
|
+
- Updated dependencies [6dc848c]
|
|
104
|
+
- Updated dependencies [6b98118]
|
|
105
|
+
- Updated dependencies [d0f9495]
|
|
106
|
+
- Updated dependencies [63d791d]
|
|
107
|
+
- Updated dependencies [87b828f]
|
|
108
|
+
- Updated dependencies [3f2f00c]
|
|
109
|
+
- Updated dependencies [bfdca8d]
|
|
110
|
+
- Updated dependencies [0ff02bb]
|
|
111
|
+
- Updated dependencies [7979f7f]
|
|
112
|
+
- Updated dependencies [39a4fab]
|
|
113
|
+
- Updated dependencies [44f4aba]
|
|
114
|
+
- Updated dependencies [9bd5ab5]
|
|
115
|
+
- Updated dependencies [57edfcb]
|
|
116
|
+
- Updated dependencies [faf8446]
|
|
117
|
+
- Updated dependencies [7ea4132]
|
|
118
|
+
- Updated dependencies [d1a034f]
|
|
119
|
+
- Updated dependencies [5c56081]
|
|
120
|
+
- Updated dependencies [fd65bc6]
|
|
121
|
+
- Updated dependencies [023ba40]
|
|
122
|
+
- Updated dependencies [ea7a7c9]
|
|
123
|
+
- Updated dependencies [26535e0]
|
|
124
|
+
- Updated dependencies [e030615]
|
|
125
|
+
- Updated dependencies [5e57fae]
|
|
126
|
+
- Updated dependencies [393138b]
|
|
127
|
+
- Updated dependencies [c57e248]
|
|
128
|
+
- Updated dependencies [88a8ee5]
|
|
129
|
+
- Updated dependencies [41fa418]
|
|
130
|
+
- Updated dependencies [205077b]
|
|
131
|
+
- Updated dependencies [71f938d]
|
|
132
|
+
- Updated dependencies [3795467]
|
|
133
|
+
- Updated dependencies [28a5ed5]
|
|
134
|
+
- Updated dependencies [7182d14]
|
|
135
|
+
- Updated dependencies [c1e6647]
|
|
136
|
+
- Updated dependencies [1766ede]
|
|
137
|
+
- Updated dependencies [811dff3]
|
|
138
|
+
- Updated dependencies [f10304b]
|
|
139
|
+
- Updated dependencies [dd5fd43]
|
|
140
|
+
- Updated dependencies [33f4a6a]
|
|
141
|
+
- Updated dependencies [383cbfa]
|
|
142
|
+
- Updated dependencies [27deb4d]
|
|
143
|
+
- Updated dependencies [c4df419]
|
|
144
|
+
- @ai-sdk/provider-utils@3.0.0
|
|
145
|
+
- @ai-sdk/provider@2.0.0
|
|
146
|
+
|
|
147
|
+
## 1.0.0-beta.19
|
|
148
|
+
|
|
149
|
+
### Patch Changes
|
|
150
|
+
|
|
151
|
+
- 721775e: feat(provider/gateway): Generate new Gateway embedding model settings file
|
|
152
|
+
- Updated dependencies [88a8ee5]
|
|
153
|
+
- @ai-sdk/provider-utils@3.0.0-beta.10
|
|
154
|
+
|
|
155
|
+
## 1.0.0-beta.18
|
|
156
|
+
|
|
157
|
+
### Patch Changes
|
|
158
|
+
|
|
159
|
+
- 27deb4d: feat (provider/gateway): Add providerMetadata to embeddings response
|
|
160
|
+
- Updated dependencies [27deb4d]
|
|
161
|
+
- @ai-sdk/provider@2.0.0-beta.2
|
|
162
|
+
- @ai-sdk/provider-utils@3.0.0-beta.9
|
|
163
|
+
|
|
164
|
+
## 1.0.0-beta.17
|
|
165
|
+
|
|
166
|
+
### Patch Changes
|
|
167
|
+
|
|
168
|
+
- Updated dependencies [dd5fd43]
|
|
169
|
+
- @ai-sdk/provider-utils@3.0.0-beta.8
|
|
170
|
+
|
|
171
|
+
## 1.0.0-beta.16
|
|
172
|
+
|
|
173
|
+
### Patch Changes
|
|
174
|
+
|
|
175
|
+
- fedb55e: feat (provider/gateway): add z.ai and glm-4.5 models
|
|
176
|
+
|
|
177
|
+
## 1.0.0-beta.15
|
|
178
|
+
|
|
179
|
+
### Patch Changes
|
|
180
|
+
|
|
181
|
+
- Updated dependencies [e7fcc86]
|
|
182
|
+
- @ai-sdk/provider-utils@3.0.0-beta.7
|
|
183
|
+
|
|
184
|
+
## 1.0.0-beta.14
|
|
185
|
+
|
|
186
|
+
### Patch Changes
|
|
187
|
+
|
|
188
|
+
- Updated dependencies [ac34802]
|
|
189
|
+
- @ai-sdk/provider-utils@3.0.0-beta.6
|
|
190
|
+
|
|
191
|
+
## 1.0.0-beta.13
|
|
192
|
+
|
|
193
|
+
### Patch Changes
|
|
194
|
+
|
|
195
|
+
- 0477a13: feat (provider/gateway): Add OpenAI embedding support
|
|
196
|
+
- cf1e00e: feat (provider/gateway): add devstral model id
|
|
197
|
+
- cc21603: feat (provider/gateway): Add AI Gateway provider options (ordering)
|
|
198
|
+
|
|
199
|
+
## 1.0.0-beta.12
|
|
200
|
+
|
|
201
|
+
### Patch Changes
|
|
202
|
+
|
|
203
|
+
- 70ebead: feat (provider/gateway): add qwen3 coder model id
|
|
204
|
+
|
|
205
|
+
## 1.0.0-beta.11
|
|
206
|
+
|
|
207
|
+
### Patch Changes
|
|
208
|
+
|
|
209
|
+
- 8bd3624: feat (provider/gateway): update model ids to include vercel
|
|
210
|
+
- e001ea1: fix (provider/gateway): remove unnecessary 'x-' prefix on auth method header
|
|
211
|
+
|
|
212
|
+
## 1.0.0-beta.10
|
|
213
|
+
|
|
214
|
+
### Patch Changes
|
|
215
|
+
|
|
216
|
+
- Updated dependencies [57edfcb]
|
|
217
|
+
- Updated dependencies [383cbfa]
|
|
218
|
+
- @ai-sdk/provider-utils@3.0.0-beta.5
|
|
219
|
+
|
|
3
220
|
## 1.0.0-beta.9
|
|
4
221
|
|
|
5
222
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { LanguageModelV2, ProviderV2 } from '@ai-sdk/provider';
|
|
1
|
+
import { LanguageModelV2, ProviderV2, EmbeddingModelV2 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
import { z, ZodError } from 'zod/v4';
|
|
4
4
|
|
|
5
|
-
type GatewayModelId = 'alibaba/qwen-3-14b' | 'alibaba/qwen-3-235b' | 'alibaba/qwen-3-30b' | 'alibaba/qwen-3-32b' | 'amazon/nova-lite' | 'amazon/nova-micro' | 'amazon/nova-pro' | 'anthropic/claude-3-haiku' | 'anthropic/claude-3-opus' | 'anthropic/claude-3.5-haiku' | 'anthropic/claude-3.5-sonnet' | 'anthropic/claude-3.7-sonnet' | 'anthropic/claude-4-opus' | 'anthropic/claude-4-sonnet' | 'cohere/command-a' | 'cohere/command-r' | 'cohere/command-r-plus' | 'deepseek/deepseek-r1' | 'deepseek/deepseek-r1-distill-llama-70b' | 'deepseek/deepseek-v3' | 'google/gemini-2.0-flash' | 'google/gemini-2.0-flash-lite' | 'google/gemini-2.5-flash' | 'google/gemini-2.5-pro' | 'google/gemma-2-9b' | 'inception/mercury-coder-small' | 'meta/llama-3-70b' | 'meta/llama-3-8b' | 'meta/llama-3.1-70b' | 'meta/llama-3.1-8b' | 'meta/llama-3.2-11b' | 'meta/llama-3.2-1b' | 'meta/llama-3.2-3b' | 'meta/llama-3.2-90b' | 'meta/llama-3.3-70b' | 'meta/llama-4-maverick' | 'meta/llama-4-scout' | 'mistral/codestral' | 'mistral/magistral-medium' | 'mistral/magistral-small' | 'mistral/ministral-3b' | 'mistral/ministral-8b' | 'mistral/mistral-large' | 'mistral/mistral-saba-24b' | 'mistral/mistral-small' | 'mistral/mixtral-8x22b-instruct' | 'mistral/pixtral-12b' | 'mistral/pixtral-large' | 'moonshotai/kimi-k2' | 'morph/morph-v3-fast' | 'morph/morph-v3-large' | 'openai/gpt-3.5-turbo' | 'openai/gpt-3.5-turbo-instruct' | 'openai/gpt-4-turbo' | 'openai/gpt-4.1' | 'openai/gpt-4.1-mini' | 'openai/gpt-4.1-nano' | 'openai/gpt-4o' | 'openai/gpt-4o-mini' | 'openai/o1' | 'openai/o3' | 'openai/o3-mini' | 'openai/o4-mini' | 'perplexity/sonar' | 'perplexity/sonar-pro' | 'perplexity/sonar-reasoning' | 'perplexity/sonar-reasoning-pro' | 'xai/grok-2' | 'xai/grok-2-vision' | 'xai/grok-3' | 'xai/grok-3-fast' | 'xai/grok-3-mini' | 'xai/grok-3-mini-fast' | 'xai/grok-4' | (string & {});
|
|
5
|
+
type GatewayModelId = 'alibaba/qwen-3-14b' | 'alibaba/qwen-3-235b' | 'alibaba/qwen-3-30b' | 'alibaba/qwen-3-32b' | 'alibaba/qwen3-coder' | 'amazon/nova-lite' | 'amazon/nova-micro' | 'amazon/nova-pro' | 'anthropic/claude-3-haiku' | 'anthropic/claude-3-opus' | 'anthropic/claude-3.5-haiku' | 'anthropic/claude-3.5-sonnet' | 'anthropic/claude-3.7-sonnet' | 'anthropic/claude-4-opus' | 'anthropic/claude-4-sonnet' | 'cohere/command-a' | 'cohere/command-r' | 'cohere/command-r-plus' | 'deepseek/deepseek-r1' | 'deepseek/deepseek-r1-distill-llama-70b' | 'deepseek/deepseek-v3' | 'google/gemini-2.0-flash' | 'google/gemini-2.0-flash-lite' | 'google/gemini-2.5-flash' | 'google/gemini-2.5-pro' | 'google/gemma-2-9b' | 'inception/mercury-coder-small' | 'meta/llama-3-70b' | 'meta/llama-3-8b' | 'meta/llama-3.1-70b' | 'meta/llama-3.1-8b' | 'meta/llama-3.2-11b' | 'meta/llama-3.2-1b' | 'meta/llama-3.2-3b' | 'meta/llama-3.2-90b' | 'meta/llama-3.3-70b' | 'meta/llama-4-maverick' | 'meta/llama-4-scout' | 'mistral/codestral' | 'mistral/devstral-small' | 'mistral/magistral-medium' | 'mistral/magistral-small' | 'mistral/ministral-3b' | 'mistral/ministral-8b' | 'mistral/mistral-large' | 'mistral/mistral-saba-24b' | 'mistral/mistral-small' | 'mistral/mixtral-8x22b-instruct' | 'mistral/pixtral-12b' | 'mistral/pixtral-large' | 'moonshotai/kimi-k2' | 'morph/morph-v3-fast' | 'morph/morph-v3-large' | 'openai/gpt-3.5-turbo' | 'openai/gpt-3.5-turbo-instruct' | 'openai/gpt-4-turbo' | 'openai/gpt-4.1' | 'openai/gpt-4.1-mini' | 'openai/gpt-4.1-nano' | 'openai/gpt-4o' | 'openai/gpt-4o-mini' | 'openai/o1' | 'openai/o3' | 'openai/o3-mini' | 'openai/o4-mini' | 'perplexity/sonar' | 'perplexity/sonar-pro' | 'perplexity/sonar-reasoning' | 'perplexity/sonar-reasoning-pro' | 'vercel/v0-1.0-md' | 'vercel/v0-1.5-md' | 'xai/grok-2' | 'xai/grok-2-vision' | 'xai/grok-3' | 'xai/grok-3-fast' | 'xai/grok-3-mini' | 'xai/grok-3-mini-fast' | 'xai/grok-4' | 'zai/glm-4.5' | 'zai/glm-4.5-air' | (string & {});
|
|
6
6
|
|
|
7
7
|
interface GatewayLanguageModelEntry {
|
|
8
8
|
/**
|
|
@@ -42,6 +42,8 @@ interface GatewayFetchMetadataResponse {
|
|
|
42
42
|
models: GatewayLanguageModelEntry[];
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
type GatewayEmbeddingModelId = 'amazon/titan-embed-text-v2' | 'cohere/embed-v4.0' | 'google/gemini-embedding-001' | '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' | (string & {});
|
|
46
|
+
|
|
45
47
|
interface GatewayProvider extends ProviderV2 {
|
|
46
48
|
(modelId: GatewayModelId): LanguageModelV2;
|
|
47
49
|
/**
|
|
@@ -52,6 +54,10 @@ interface GatewayProvider extends ProviderV2 {
|
|
|
52
54
|
Returns available providers and models for use with the remote provider.
|
|
53
55
|
*/
|
|
54
56
|
getAvailableModels(): Promise<GatewayFetchMetadataResponse>;
|
|
57
|
+
/**
|
|
58
|
+
Creates a model for generating text embeddings.
|
|
59
|
+
*/
|
|
60
|
+
textEmbeddingModel(modelId: GatewayEmbeddingModelId): EmbeddingModelV2<string>;
|
|
55
61
|
}
|
|
56
62
|
interface GatewayProviderSettings {
|
|
57
63
|
/**
|
|
@@ -82,6 +88,11 @@ Create a remote provider instance.
|
|
|
82
88
|
declare function createGatewayProvider(options?: GatewayProviderSettings): GatewayProvider;
|
|
83
89
|
declare const gateway: GatewayProvider;
|
|
84
90
|
|
|
91
|
+
declare const gatewayProviderOptions: z.ZodObject<{
|
|
92
|
+
order: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
type GatewayProviderOptions = z.infer<typeof gatewayProviderOptions>;
|
|
95
|
+
|
|
85
96
|
declare const symbol$6: unique symbol;
|
|
86
97
|
declare abstract class GatewayError extends Error {
|
|
87
98
|
private readonly [symbol$6];
|
|
@@ -225,4 +236,4 @@ declare class GatewayResponseError extends GatewayError {
|
|
|
225
236
|
static isInstance(error: unknown): error is GatewayResponseError;
|
|
226
237
|
}
|
|
227
238
|
|
|
228
|
-
export { GatewayAuthenticationError, GatewayError, type GatewayErrorResponse, GatewayInternalServerError, GatewayInvalidRequestError, type GatewayLanguageModelEntry, type GatewayLanguageModelSpecification, type GatewayModelId, GatewayModelNotFoundError, type GatewayProvider, type GatewayProviderSettings, GatewayRateLimitError, GatewayResponseError, createGatewayProvider as createGateway, createGatewayProvider, gateway };
|
|
239
|
+
export { GatewayAuthenticationError, GatewayError, type GatewayErrorResponse, GatewayInternalServerError, GatewayInvalidRequestError, type GatewayLanguageModelEntry, type GatewayLanguageModelSpecification, type GatewayModelId, GatewayModelNotFoundError, type GatewayProvider, type GatewayProviderOptions, type GatewayProviderSettings, GatewayRateLimitError, GatewayResponseError, createGatewayProvider as createGateway, createGatewayProvider, gateway };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { LanguageModelV2, ProviderV2 } from '@ai-sdk/provider';
|
|
1
|
+
import { LanguageModelV2, ProviderV2, EmbeddingModelV2 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
import { z, ZodError } from 'zod/v4';
|
|
4
4
|
|
|
5
|
-
type GatewayModelId = 'alibaba/qwen-3-14b' | 'alibaba/qwen-3-235b' | 'alibaba/qwen-3-30b' | 'alibaba/qwen-3-32b' | 'amazon/nova-lite' | 'amazon/nova-micro' | 'amazon/nova-pro' | 'anthropic/claude-3-haiku' | 'anthropic/claude-3-opus' | 'anthropic/claude-3.5-haiku' | 'anthropic/claude-3.5-sonnet' | 'anthropic/claude-3.7-sonnet' | 'anthropic/claude-4-opus' | 'anthropic/claude-4-sonnet' | 'cohere/command-a' | 'cohere/command-r' | 'cohere/command-r-plus' | 'deepseek/deepseek-r1' | 'deepseek/deepseek-r1-distill-llama-70b' | 'deepseek/deepseek-v3' | 'google/gemini-2.0-flash' | 'google/gemini-2.0-flash-lite' | 'google/gemini-2.5-flash' | 'google/gemini-2.5-pro' | 'google/gemma-2-9b' | 'inception/mercury-coder-small' | 'meta/llama-3-70b' | 'meta/llama-3-8b' | 'meta/llama-3.1-70b' | 'meta/llama-3.1-8b' | 'meta/llama-3.2-11b' | 'meta/llama-3.2-1b' | 'meta/llama-3.2-3b' | 'meta/llama-3.2-90b' | 'meta/llama-3.3-70b' | 'meta/llama-4-maverick' | 'meta/llama-4-scout' | 'mistral/codestral' | 'mistral/magistral-medium' | 'mistral/magistral-small' | 'mistral/ministral-3b' | 'mistral/ministral-8b' | 'mistral/mistral-large' | 'mistral/mistral-saba-24b' | 'mistral/mistral-small' | 'mistral/mixtral-8x22b-instruct' | 'mistral/pixtral-12b' | 'mistral/pixtral-large' | 'moonshotai/kimi-k2' | 'morph/morph-v3-fast' | 'morph/morph-v3-large' | 'openai/gpt-3.5-turbo' | 'openai/gpt-3.5-turbo-instruct' | 'openai/gpt-4-turbo' | 'openai/gpt-4.1' | 'openai/gpt-4.1-mini' | 'openai/gpt-4.1-nano' | 'openai/gpt-4o' | 'openai/gpt-4o-mini' | 'openai/o1' | 'openai/o3' | 'openai/o3-mini' | 'openai/o4-mini' | 'perplexity/sonar' | 'perplexity/sonar-pro' | 'perplexity/sonar-reasoning' | 'perplexity/sonar-reasoning-pro' | 'xai/grok-2' | 'xai/grok-2-vision' | 'xai/grok-3' | 'xai/grok-3-fast' | 'xai/grok-3-mini' | 'xai/grok-3-mini-fast' | 'xai/grok-4' | (string & {});
|
|
5
|
+
type GatewayModelId = 'alibaba/qwen-3-14b' | 'alibaba/qwen-3-235b' | 'alibaba/qwen-3-30b' | 'alibaba/qwen-3-32b' | 'alibaba/qwen3-coder' | 'amazon/nova-lite' | 'amazon/nova-micro' | 'amazon/nova-pro' | 'anthropic/claude-3-haiku' | 'anthropic/claude-3-opus' | 'anthropic/claude-3.5-haiku' | 'anthropic/claude-3.5-sonnet' | 'anthropic/claude-3.7-sonnet' | 'anthropic/claude-4-opus' | 'anthropic/claude-4-sonnet' | 'cohere/command-a' | 'cohere/command-r' | 'cohere/command-r-plus' | 'deepseek/deepseek-r1' | 'deepseek/deepseek-r1-distill-llama-70b' | 'deepseek/deepseek-v3' | 'google/gemini-2.0-flash' | 'google/gemini-2.0-flash-lite' | 'google/gemini-2.5-flash' | 'google/gemini-2.5-pro' | 'google/gemma-2-9b' | 'inception/mercury-coder-small' | 'meta/llama-3-70b' | 'meta/llama-3-8b' | 'meta/llama-3.1-70b' | 'meta/llama-3.1-8b' | 'meta/llama-3.2-11b' | 'meta/llama-3.2-1b' | 'meta/llama-3.2-3b' | 'meta/llama-3.2-90b' | 'meta/llama-3.3-70b' | 'meta/llama-4-maverick' | 'meta/llama-4-scout' | 'mistral/codestral' | 'mistral/devstral-small' | 'mistral/magistral-medium' | 'mistral/magistral-small' | 'mistral/ministral-3b' | 'mistral/ministral-8b' | 'mistral/mistral-large' | 'mistral/mistral-saba-24b' | 'mistral/mistral-small' | 'mistral/mixtral-8x22b-instruct' | 'mistral/pixtral-12b' | 'mistral/pixtral-large' | 'moonshotai/kimi-k2' | 'morph/morph-v3-fast' | 'morph/morph-v3-large' | 'openai/gpt-3.5-turbo' | 'openai/gpt-3.5-turbo-instruct' | 'openai/gpt-4-turbo' | 'openai/gpt-4.1' | 'openai/gpt-4.1-mini' | 'openai/gpt-4.1-nano' | 'openai/gpt-4o' | 'openai/gpt-4o-mini' | 'openai/o1' | 'openai/o3' | 'openai/o3-mini' | 'openai/o4-mini' | 'perplexity/sonar' | 'perplexity/sonar-pro' | 'perplexity/sonar-reasoning' | 'perplexity/sonar-reasoning-pro' | 'vercel/v0-1.0-md' | 'vercel/v0-1.5-md' | 'xai/grok-2' | 'xai/grok-2-vision' | 'xai/grok-3' | 'xai/grok-3-fast' | 'xai/grok-3-mini' | 'xai/grok-3-mini-fast' | 'xai/grok-4' | 'zai/glm-4.5' | 'zai/glm-4.5-air' | (string & {});
|
|
6
6
|
|
|
7
7
|
interface GatewayLanguageModelEntry {
|
|
8
8
|
/**
|
|
@@ -42,6 +42,8 @@ interface GatewayFetchMetadataResponse {
|
|
|
42
42
|
models: GatewayLanguageModelEntry[];
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
type GatewayEmbeddingModelId = 'amazon/titan-embed-text-v2' | 'cohere/embed-v4.0' | 'google/gemini-embedding-001' | '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' | (string & {});
|
|
46
|
+
|
|
45
47
|
interface GatewayProvider extends ProviderV2 {
|
|
46
48
|
(modelId: GatewayModelId): LanguageModelV2;
|
|
47
49
|
/**
|
|
@@ -52,6 +54,10 @@ interface GatewayProvider extends ProviderV2 {
|
|
|
52
54
|
Returns available providers and models for use with the remote provider.
|
|
53
55
|
*/
|
|
54
56
|
getAvailableModels(): Promise<GatewayFetchMetadataResponse>;
|
|
57
|
+
/**
|
|
58
|
+
Creates a model for generating text embeddings.
|
|
59
|
+
*/
|
|
60
|
+
textEmbeddingModel(modelId: GatewayEmbeddingModelId): EmbeddingModelV2<string>;
|
|
55
61
|
}
|
|
56
62
|
interface GatewayProviderSettings {
|
|
57
63
|
/**
|
|
@@ -82,6 +88,11 @@ Create a remote provider instance.
|
|
|
82
88
|
declare function createGatewayProvider(options?: GatewayProviderSettings): GatewayProvider;
|
|
83
89
|
declare const gateway: GatewayProvider;
|
|
84
90
|
|
|
91
|
+
declare const gatewayProviderOptions: z.ZodObject<{
|
|
92
|
+
order: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
type GatewayProviderOptions = z.infer<typeof gatewayProviderOptions>;
|
|
95
|
+
|
|
85
96
|
declare const symbol$6: unique symbol;
|
|
86
97
|
declare abstract class GatewayError extends Error {
|
|
87
98
|
private readonly [symbol$6];
|
|
@@ -225,4 +236,4 @@ declare class GatewayResponseError extends GatewayError {
|
|
|
225
236
|
static isInstance(error: unknown): error is GatewayResponseError;
|
|
226
237
|
}
|
|
227
238
|
|
|
228
|
-
export { GatewayAuthenticationError, GatewayError, type GatewayErrorResponse, GatewayInternalServerError, GatewayInvalidRequestError, type GatewayLanguageModelEntry, type GatewayLanguageModelSpecification, type GatewayModelId, GatewayModelNotFoundError, type GatewayProvider, type GatewayProviderSettings, GatewayRateLimitError, GatewayResponseError, createGatewayProvider as createGateway, createGatewayProvider, gateway };
|
|
239
|
+
export { GatewayAuthenticationError, GatewayError, type GatewayErrorResponse, GatewayInternalServerError, GatewayInvalidRequestError, type GatewayLanguageModelEntry, type GatewayLanguageModelSpecification, type GatewayModelId, GatewayModelNotFoundError, type GatewayProvider, type GatewayProviderOptions, type GatewayProviderSettings, GatewayRateLimitError, GatewayResponseError, createGatewayProvider as createGateway, createGatewayProvider, gateway };
|
package/dist/index.js
CHANGED
|
@@ -35,7 +35,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
35
35
|
|
|
36
36
|
// src/gateway-provider.ts
|
|
37
37
|
var import_provider2 = require("@ai-sdk/provider");
|
|
38
|
-
var
|
|
38
|
+
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
39
39
|
|
|
40
40
|
// src/errors/as-gateway-error.ts
|
|
41
41
|
var import_provider = require("@ai-sdk/provider");
|
|
@@ -361,7 +361,7 @@ function extractApiCallResponse(error) {
|
|
|
361
361
|
|
|
362
362
|
// src/errors/parse-auth-method.ts
|
|
363
363
|
var import_v43 = require("zod/v4");
|
|
364
|
-
var GATEWAY_AUTH_METHOD_HEADER = "
|
|
364
|
+
var GATEWAY_AUTH_METHOD_HEADER = "ai-gateway-auth-method";
|
|
365
365
|
function parseAuthMethod(headers) {
|
|
366
366
|
const result = gatewayAuthMethodSchema.safeParse(
|
|
367
367
|
headers[GATEWAY_AUTH_METHOD_HEADER]
|
|
@@ -433,8 +433,16 @@ var GatewayLanguageModel = class {
|
|
|
433
433
|
get provider() {
|
|
434
434
|
return this.config.provider;
|
|
435
435
|
}
|
|
436
|
+
async getArgs(options) {
|
|
437
|
+
const { abortSignal: _abortSignal, ...optionsWithoutSignal } = options;
|
|
438
|
+
return {
|
|
439
|
+
args: this.maybeEncodeFileParts(optionsWithoutSignal),
|
|
440
|
+
warnings: []
|
|
441
|
+
};
|
|
442
|
+
}
|
|
436
443
|
async doGenerate(options) {
|
|
437
|
-
const {
|
|
444
|
+
const { args, warnings } = await this.getArgs(options);
|
|
445
|
+
const { abortSignal } = options;
|
|
438
446
|
const resolvedHeaders = await (0, import_provider_utils2.resolve)(this.config.headers());
|
|
439
447
|
try {
|
|
440
448
|
const {
|
|
@@ -449,7 +457,7 @@ var GatewayLanguageModel = class {
|
|
|
449
457
|
this.getModelConfigHeaders(this.modelId, false),
|
|
450
458
|
await (0, import_provider_utils2.resolve)(this.config.o11yHeaders)
|
|
451
459
|
),
|
|
452
|
-
body:
|
|
460
|
+
body: args,
|
|
453
461
|
successfulResponseHandler: (0, import_provider_utils2.createJsonResponseHandler)(import_v45.z.any()),
|
|
454
462
|
failedResponseHandler: (0, import_provider_utils2.createJsonErrorResponseHandler)({
|
|
455
463
|
errorSchema: import_v45.z.any(),
|
|
@@ -460,16 +468,17 @@ var GatewayLanguageModel = class {
|
|
|
460
468
|
});
|
|
461
469
|
return {
|
|
462
470
|
...responseBody,
|
|
463
|
-
request: { body },
|
|
471
|
+
request: { body: args },
|
|
464
472
|
response: { headers: responseHeaders, body: rawResponse },
|
|
465
|
-
warnings
|
|
473
|
+
warnings
|
|
466
474
|
};
|
|
467
475
|
} catch (error) {
|
|
468
476
|
throw asGatewayError(error, parseAuthMethod(resolvedHeaders));
|
|
469
477
|
}
|
|
470
478
|
}
|
|
471
479
|
async doStream(options) {
|
|
472
|
-
const {
|
|
480
|
+
const { args, warnings } = await this.getArgs(options);
|
|
481
|
+
const { abortSignal } = options;
|
|
473
482
|
const resolvedHeaders = await (0, import_provider_utils2.resolve)(this.config.headers());
|
|
474
483
|
try {
|
|
475
484
|
const { value: response, responseHeaders } = await (0, import_provider_utils2.postJsonToApi)({
|
|
@@ -480,7 +489,7 @@ var GatewayLanguageModel = class {
|
|
|
480
489
|
this.getModelConfigHeaders(this.modelId, true),
|
|
481
490
|
await (0, import_provider_utils2.resolve)(this.config.o11yHeaders)
|
|
482
491
|
),
|
|
483
|
-
body:
|
|
492
|
+
body: args,
|
|
484
493
|
successfulResponseHandler: (0, import_provider_utils2.createEventSourceResponseHandler)(import_v45.z.any()),
|
|
485
494
|
failedResponseHandler: (0, import_provider_utils2.createJsonErrorResponseHandler)({
|
|
486
495
|
errorSchema: import_v45.z.any(),
|
|
@@ -492,6 +501,11 @@ var GatewayLanguageModel = class {
|
|
|
492
501
|
return {
|
|
493
502
|
stream: response.pipeThrough(
|
|
494
503
|
new TransformStream({
|
|
504
|
+
start(controller) {
|
|
505
|
+
if (warnings.length > 0) {
|
|
506
|
+
controller.enqueue({ type: "stream-start", warnings });
|
|
507
|
+
}
|
|
508
|
+
},
|
|
495
509
|
transform(chunk, controller) {
|
|
496
510
|
if (chunk.success) {
|
|
497
511
|
const streamPart = chunk.value;
|
|
@@ -510,7 +524,7 @@ var GatewayLanguageModel = class {
|
|
|
510
524
|
}
|
|
511
525
|
})
|
|
512
526
|
),
|
|
513
|
-
request: { body },
|
|
527
|
+
request: { body: args },
|
|
514
528
|
response: { headers: responseHeaders }
|
|
515
529
|
};
|
|
516
530
|
} catch (error) {
|
|
@@ -555,6 +569,81 @@ var GatewayLanguageModel = class {
|
|
|
555
569
|
}
|
|
556
570
|
};
|
|
557
571
|
|
|
572
|
+
// src/gateway-embedding-model.ts
|
|
573
|
+
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
574
|
+
var import_v46 = require("zod/v4");
|
|
575
|
+
var GatewayEmbeddingModel = class {
|
|
576
|
+
constructor(modelId, config) {
|
|
577
|
+
this.modelId = modelId;
|
|
578
|
+
this.config = config;
|
|
579
|
+
this.specificationVersion = "v2";
|
|
580
|
+
this.maxEmbeddingsPerCall = 2048;
|
|
581
|
+
this.supportsParallelCalls = true;
|
|
582
|
+
}
|
|
583
|
+
get provider() {
|
|
584
|
+
return this.config.provider;
|
|
585
|
+
}
|
|
586
|
+
async doEmbed({
|
|
587
|
+
values,
|
|
588
|
+
headers,
|
|
589
|
+
abortSignal,
|
|
590
|
+
providerOptions
|
|
591
|
+
}) {
|
|
592
|
+
var _a8;
|
|
593
|
+
const resolvedHeaders = await (0, import_provider_utils3.resolve)(this.config.headers());
|
|
594
|
+
try {
|
|
595
|
+
const {
|
|
596
|
+
responseHeaders,
|
|
597
|
+
value: responseBody,
|
|
598
|
+
rawValue
|
|
599
|
+
} = await (0, import_provider_utils3.postJsonToApi)({
|
|
600
|
+
url: this.getUrl(),
|
|
601
|
+
headers: (0, import_provider_utils3.combineHeaders)(
|
|
602
|
+
resolvedHeaders,
|
|
603
|
+
headers != null ? headers : {},
|
|
604
|
+
this.getModelConfigHeaders(),
|
|
605
|
+
await (0, import_provider_utils3.resolve)(this.config.o11yHeaders)
|
|
606
|
+
),
|
|
607
|
+
body: {
|
|
608
|
+
input: values.length === 1 ? values[0] : values,
|
|
609
|
+
...providerOptions != null ? providerOptions : {}
|
|
610
|
+
},
|
|
611
|
+
successfulResponseHandler: (0, import_provider_utils3.createJsonResponseHandler)(
|
|
612
|
+
gatewayEmbeddingResponseSchema
|
|
613
|
+
),
|
|
614
|
+
failedResponseHandler: (0, import_provider_utils3.createJsonErrorResponseHandler)({
|
|
615
|
+
errorSchema: import_v46.z.any(),
|
|
616
|
+
errorToMessage: (data) => data
|
|
617
|
+
}),
|
|
618
|
+
...abortSignal && { abortSignal },
|
|
619
|
+
fetch: this.config.fetch
|
|
620
|
+
});
|
|
621
|
+
return {
|
|
622
|
+
embeddings: responseBody.embeddings,
|
|
623
|
+
usage: (_a8 = responseBody.usage) != null ? _a8 : void 0,
|
|
624
|
+
providerMetadata: responseBody.providerMetadata,
|
|
625
|
+
response: { headers: responseHeaders, body: rawValue }
|
|
626
|
+
};
|
|
627
|
+
} catch (error) {
|
|
628
|
+
throw asGatewayError(error, parseAuthMethod(resolvedHeaders));
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
getUrl() {
|
|
632
|
+
return `${this.config.baseURL}/embedding-model`;
|
|
633
|
+
}
|
|
634
|
+
getModelConfigHeaders() {
|
|
635
|
+
return {
|
|
636
|
+
"ai-embedding-model-specification-version": "2",
|
|
637
|
+
"ai-model-id": this.modelId
|
|
638
|
+
};
|
|
639
|
+
}
|
|
640
|
+
};
|
|
641
|
+
var gatewayEmbeddingResponseSchema = import_v46.z.object({
|
|
642
|
+
embeddings: import_v46.z.array(import_v46.z.array(import_v46.z.number())),
|
|
643
|
+
usage: import_v46.z.object({ tokens: import_v46.z.number() }).nullish(),
|
|
644
|
+
providerMetadata: import_v46.z.record(import_v46.z.string(), import_v46.z.record(import_v46.z.string(), import_v46.z.unknown())).optional()
|
|
645
|
+
});
|
|
646
|
+
|
|
558
647
|
// src/vercel-environment.ts
|
|
559
648
|
async function getVercelOidcToken() {
|
|
560
649
|
var _a8, _b8;
|
|
@@ -586,7 +675,7 @@ function createGatewayProvider(options = {}) {
|
|
|
586
675
|
let metadataCache = null;
|
|
587
676
|
const cacheRefreshMillis = (_a8 = options.metadataCacheRefreshMillis) != null ? _a8 : 1e3 * 60 * 5;
|
|
588
677
|
let lastFetchTime = 0;
|
|
589
|
-
const baseURL = (_b8 = (0,
|
|
678
|
+
const baseURL = (_b8 = (0, import_provider_utils4.withoutTrailingSlash)(options.baseURL)) != null ? _b8 : "https://ai-gateway.vercel.sh/v1/ai";
|
|
590
679
|
const getHeaders = async () => {
|
|
591
680
|
const auth = await getGatewayAuthToken(options);
|
|
592
681
|
if (auth) {
|
|
@@ -603,33 +692,36 @@ function createGatewayProvider(options = {}) {
|
|
|
603
692
|
statusCode: 401
|
|
604
693
|
});
|
|
605
694
|
};
|
|
606
|
-
const
|
|
607
|
-
const deploymentId = (0,
|
|
695
|
+
const createO11yHeaders = () => {
|
|
696
|
+
const deploymentId = (0, import_provider_utils4.loadOptionalSetting)({
|
|
608
697
|
settingValue: void 0,
|
|
609
698
|
environmentVariableName: "VERCEL_DEPLOYMENT_ID"
|
|
610
699
|
});
|
|
611
|
-
const environment = (0,
|
|
700
|
+
const environment = (0, import_provider_utils4.loadOptionalSetting)({
|
|
612
701
|
settingValue: void 0,
|
|
613
702
|
environmentVariableName: "VERCEL_ENV"
|
|
614
703
|
});
|
|
615
|
-
const region = (0,
|
|
704
|
+
const region = (0, import_provider_utils4.loadOptionalSetting)({
|
|
616
705
|
settingValue: void 0,
|
|
617
706
|
environmentVariableName: "VERCEL_REGION"
|
|
618
707
|
});
|
|
708
|
+
return async () => {
|
|
709
|
+
const requestId = await getVercelRequestId();
|
|
710
|
+
return {
|
|
711
|
+
...deploymentId && { "ai-o11y-deployment-id": deploymentId },
|
|
712
|
+
...environment && { "ai-o11y-environment": environment },
|
|
713
|
+
...region && { "ai-o11y-region": region },
|
|
714
|
+
...requestId && { "ai-o11y-request-id": requestId }
|
|
715
|
+
};
|
|
716
|
+
};
|
|
717
|
+
};
|
|
718
|
+
const createLanguageModel = (modelId) => {
|
|
619
719
|
return new GatewayLanguageModel(modelId, {
|
|
620
720
|
provider: "gateway",
|
|
621
721
|
baseURL,
|
|
622
722
|
headers: getHeaders,
|
|
623
723
|
fetch: options.fetch,
|
|
624
|
-
o11yHeaders:
|
|
625
|
-
const requestId = await getVercelRequestId();
|
|
626
|
-
return {
|
|
627
|
-
...deploymentId && { "ai-o11y-deployment-id": deploymentId },
|
|
628
|
-
...environment && { "ai-o11y-environment": environment },
|
|
629
|
-
...region && { "ai-o11y-region": region },
|
|
630
|
-
...requestId && { "ai-o11y-request-id": requestId }
|
|
631
|
-
};
|
|
632
|
-
}
|
|
724
|
+
o11yHeaders: createO11yHeaders()
|
|
633
725
|
});
|
|
634
726
|
};
|
|
635
727
|
const getAvailableModels = async () => {
|
|
@@ -664,13 +756,19 @@ function createGatewayProvider(options = {}) {
|
|
|
664
756
|
};
|
|
665
757
|
provider.languageModel = createLanguageModel;
|
|
666
758
|
provider.textEmbeddingModel = (modelId) => {
|
|
667
|
-
|
|
759
|
+
return new GatewayEmbeddingModel(modelId, {
|
|
760
|
+
provider: "gateway",
|
|
761
|
+
baseURL,
|
|
762
|
+
headers: getHeaders,
|
|
763
|
+
fetch: options.fetch,
|
|
764
|
+
o11yHeaders: createO11yHeaders()
|
|
765
|
+
});
|
|
668
766
|
};
|
|
669
767
|
return provider;
|
|
670
768
|
}
|
|
671
769
|
var gateway = createGatewayProvider();
|
|
672
770
|
async function getGatewayAuthToken(options) {
|
|
673
|
-
const apiKey = (0,
|
|
771
|
+
const apiKey = (0, import_provider_utils4.loadOptionalSetting)({
|
|
674
772
|
settingValue: options.apiKey,
|
|
675
773
|
environmentVariableName: "AI_GATEWAY_API_KEY"
|
|
676
774
|
});
|
|
@@ -686,7 +784,7 @@ async function getGatewayAuthToken(options) {
|
|
|
686
784
|
token: oidcToken,
|
|
687
785
|
authMethod: "oidc"
|
|
688
786
|
};
|
|
689
|
-
} catch (
|
|
787
|
+
} catch (e) {
|
|
690
788
|
return null;
|
|
691
789
|
}
|
|
692
790
|
}
|