llm-strings 1.2.0 → 1.3.0
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/README.md +1 -3
- package/dist/ai-sdk.cjs +355 -9
- package/dist/ai-sdk.cjs.map +1 -1
- package/dist/ai-sdk.d.cts +5 -4
- package/dist/ai-sdk.d.ts +5 -4
- package/dist/ai-sdk.js +87 -8
- package/dist/ai-sdk.js.map +1 -1
- package/dist/{chunk-RPXK2A7O.js → chunk-7HE4RH6X.js} +4 -4
- package/dist/{chunk-2ARD4TFU.js → chunk-NZR5DUX5.js} +2 -2
- package/dist/{chunk-W4NIQY7M.js → chunk-OCJX4QFJ.js} +318 -4
- package/dist/chunk-OCJX4QFJ.js.map +1 -0
- package/dist/{chunk-BCOUH7LH.js → chunk-TQJ2ABCT.js} +2 -2
- package/dist/index.cjs +317 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/normalize.cjs +157 -3
- package/dist/normalize.cjs.map +1 -1
- package/dist/normalize.d.cts +1 -1
- package/dist/normalize.d.ts +1 -1
- package/dist/normalize.js +2 -2
- package/dist/parse.cjs +27 -0
- package/dist/parse.cjs.map +1 -1
- package/dist/parse.d.cts +1 -1
- package/dist/parse.d.ts +1 -1
- package/dist/parse.js +2 -2
- package/dist/{provider-core-BiAl8MCV.d.cts → provider-core-B934MuhJ.d.cts} +2 -2
- package/dist/{provider-core-BiAl8MCV.d.ts → provider-core-B934MuhJ.d.ts} +2 -2
- package/dist/providers.cjs +610 -4
- package/dist/providers.cjs.map +1 -1
- package/dist/providers.d.cts +2 -2
- package/dist/providers.d.ts +2 -2
- package/dist/providers.js +294 -2
- package/dist/providers.js.map +1 -1
- package/dist/validate.cjs +317 -3
- package/dist/validate.cjs.map +1 -1
- package/dist/validate.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-W4NIQY7M.js.map +0 -1
- /package/dist/{chunk-RPXK2A7O.js.map → chunk-7HE4RH6X.js.map} +0 -0
- /package/dist/{chunk-2ARD4TFU.js.map → chunk-NZR5DUX5.js.map} +0 -0
- /package/dist/{chunk-BCOUH7LH.js.map → chunk-TQJ2ABCT.js.map} +0 -0
package/dist/providers.js
CHANGED
|
@@ -16,11 +16,17 @@ import {
|
|
|
16
16
|
isReasoningModel,
|
|
17
17
|
providerFromHostAlias,
|
|
18
18
|
resolveHostAlias
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OCJX4QFJ.js";
|
|
20
20
|
|
|
21
21
|
// src/provider-meta.ts
|
|
22
22
|
var PROVIDER_META = [
|
|
23
23
|
{ id: "openai", name: "OpenAI", host: "api.openai.com", color: "#10a37f" },
|
|
24
|
+
{
|
|
25
|
+
id: "azure",
|
|
26
|
+
name: "Azure OpenAI",
|
|
27
|
+
host: "models.inference.ai.azure.com",
|
|
28
|
+
color: "#0078d4"
|
|
29
|
+
},
|
|
24
30
|
{
|
|
25
31
|
id: "anthropic",
|
|
26
32
|
name: "Anthropic",
|
|
@@ -33,6 +39,12 @@ var PROVIDER_META = [
|
|
|
33
39
|
host: "generativelanguage.googleapis.com",
|
|
34
40
|
color: "#4285f4"
|
|
35
41
|
},
|
|
42
|
+
{
|
|
43
|
+
id: "google-vertex",
|
|
44
|
+
name: "Google Vertex AI",
|
|
45
|
+
host: "aiplatform.googleapis.com",
|
|
46
|
+
color: "#34a853"
|
|
47
|
+
},
|
|
36
48
|
{ id: "mistral", name: "Mistral", host: "api.mistral.ai", color: "#ff7000" },
|
|
37
49
|
{ id: "cohere", name: "Cohere", host: "api.cohere.com", color: "#39594d" },
|
|
38
50
|
{
|
|
@@ -52,6 +64,112 @@ var PROVIDER_META = [
|
|
|
52
64
|
name: "Vercel",
|
|
53
65
|
host: "gateway.ai.vercel.app",
|
|
54
66
|
color: "#ededed"
|
|
67
|
+
},
|
|
68
|
+
{ id: "xai", name: "xAI", host: "api.x.ai", color: "#111111" },
|
|
69
|
+
{ id: "groq", name: "Groq", host: "api.groq.com", color: "#f55036" },
|
|
70
|
+
{ id: "fal", name: "Fal", host: "fal.run", color: "#111111" },
|
|
71
|
+
{
|
|
72
|
+
id: "deepinfra",
|
|
73
|
+
name: "DeepInfra",
|
|
74
|
+
host: "api.deepinfra.com",
|
|
75
|
+
color: "#2563eb"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: "black-forest-labs",
|
|
79
|
+
name: "Black Forest Labs",
|
|
80
|
+
host: "api.bfl.ai",
|
|
81
|
+
color: "#111111"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "together",
|
|
85
|
+
name: "Together.ai",
|
|
86
|
+
host: "api.together.xyz",
|
|
87
|
+
color: "#ff4f00"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: "fireworks",
|
|
91
|
+
name: "Fireworks",
|
|
92
|
+
host: "api.fireworks.ai",
|
|
93
|
+
color: "#7c3aed"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: "deepseek",
|
|
97
|
+
name: "DeepSeek",
|
|
98
|
+
host: "api.deepseek.com",
|
|
99
|
+
color: "#4d6bfe"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: "moonshotai",
|
|
103
|
+
name: "Moonshot AI",
|
|
104
|
+
host: "api.moonshot.ai",
|
|
105
|
+
color: "#6b46ff"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: "perplexity",
|
|
109
|
+
name: "Perplexity",
|
|
110
|
+
host: "api.perplexity.ai",
|
|
111
|
+
color: "#20b8cd"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: "alibaba",
|
|
115
|
+
name: "Alibaba",
|
|
116
|
+
host: "dashscope-intl.aliyuncs.com",
|
|
117
|
+
color: "#ff6a00"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: "cerebras",
|
|
121
|
+
name: "Cerebras",
|
|
122
|
+
host: "api.cerebras.ai",
|
|
123
|
+
color: "#d71920"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: "replicate",
|
|
127
|
+
name: "Replicate",
|
|
128
|
+
host: "api.replicate.com",
|
|
129
|
+
color: "#111111"
|
|
130
|
+
},
|
|
131
|
+
{ id: "prodia", name: "Prodia", host: "api.prodia.com", color: "#6d28d9" },
|
|
132
|
+
{ id: "luma", name: "Luma", host: "api.lumalabs.ai", color: "#111111" },
|
|
133
|
+
{
|
|
134
|
+
id: "bytedance",
|
|
135
|
+
name: "ByteDance",
|
|
136
|
+
host: "ark.cn-beijing.volces.com",
|
|
137
|
+
color: "#2563eb"
|
|
138
|
+
},
|
|
139
|
+
{ id: "kling", name: "Kling AI", host: "api.klingai.com", color: "#111111" },
|
|
140
|
+
{
|
|
141
|
+
id: "elevenlabs",
|
|
142
|
+
name: "ElevenLabs",
|
|
143
|
+
host: "api.elevenlabs.io",
|
|
144
|
+
color: "#111111"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
id: "assemblyai",
|
|
148
|
+
name: "AssemblyAI",
|
|
149
|
+
host: "api.assemblyai.com",
|
|
150
|
+
color: "#4f46e5"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: "deepgram",
|
|
154
|
+
name: "Deepgram",
|
|
155
|
+
host: "api.deepgram.com",
|
|
156
|
+
color: "#13ef93"
|
|
157
|
+
},
|
|
158
|
+
{ id: "gladia", name: "Gladia", host: "api.gladia.io", color: "#7c3aed" },
|
|
159
|
+
{ id: "lmnt", name: "LMNT", host: "api.lmnt.com", color: "#14b8a6" },
|
|
160
|
+
{ id: "hume", name: "Hume", host: "api.hume.ai", color: "#8b5cf6" },
|
|
161
|
+
{ id: "revai", name: "Rev.ai", host: "api.rev.ai", color: "#ef4444" },
|
|
162
|
+
{
|
|
163
|
+
id: "baseten",
|
|
164
|
+
name: "Baseten",
|
|
165
|
+
host: "api.baseten.co",
|
|
166
|
+
color: "#111111"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
id: "huggingface",
|
|
170
|
+
name: "Hugging Face",
|
|
171
|
+
host: "api-inference.huggingface.co",
|
|
172
|
+
color: "#ffcc4d"
|
|
55
173
|
}
|
|
56
174
|
];
|
|
57
175
|
var MODELS = {
|
|
@@ -66,6 +184,7 @@ var MODELS = {
|
|
|
66
184
|
"o4-mini",
|
|
67
185
|
"o1-pro"
|
|
68
186
|
],
|
|
187
|
+
azure: ["gpt-5.2", "gpt-4.1", "o3", "o4-mini"],
|
|
69
188
|
anthropic: [
|
|
70
189
|
"claude-opus-4-6",
|
|
71
190
|
"claude-sonnet-4-6",
|
|
@@ -78,6 +197,12 @@ var MODELS = {
|
|
|
78
197
|
"gemini-2.5-pro",
|
|
79
198
|
"gemini-2.5-flash"
|
|
80
199
|
],
|
|
200
|
+
"google-vertex": [
|
|
201
|
+
"gemini-3-pro-preview",
|
|
202
|
+
"gemini-3-flash-preview",
|
|
203
|
+
"gemini-2.5-pro",
|
|
204
|
+
"gemini-2.5-flash"
|
|
205
|
+
],
|
|
81
206
|
mistral: [
|
|
82
207
|
"mistral-large-latest",
|
|
83
208
|
"mistral-medium-latest",
|
|
@@ -113,8 +238,147 @@ var MODELS = {
|
|
|
113
238
|
"google/gemini-3-flash-preview",
|
|
114
239
|
"mistral/mistral-large-latest",
|
|
115
240
|
"qwen/qwen2.5-pro"
|
|
241
|
+
],
|
|
242
|
+
xai: ["grok-4", "grok-3", "grok-3-mini"],
|
|
243
|
+
groq: ["openai/gpt-oss-120b", "llama-3.3-70b-versatile"],
|
|
244
|
+
fal: ["fal-ai/flux-pro", "fal-ai/imagen4/preview"],
|
|
245
|
+
deepinfra: [
|
|
246
|
+
"meta-llama/Meta-Llama-3.1-70B-Instruct",
|
|
247
|
+
"deepseek-ai/DeepSeek-V3"
|
|
248
|
+
],
|
|
249
|
+
"black-forest-labs": ["flux-pro-1.1", "flux-kontext-pro"],
|
|
250
|
+
together: [
|
|
251
|
+
"meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
252
|
+
"deepseek-ai/DeepSeek-V3"
|
|
253
|
+
],
|
|
254
|
+
fireworks: [
|
|
255
|
+
"accounts/fireworks/models/llama-v3p1-70b-instruct",
|
|
256
|
+
"accounts/fireworks/models/deepseek-v3"
|
|
257
|
+
],
|
|
258
|
+
deepseek: ["deepseek-chat", "deepseek-reasoner"],
|
|
259
|
+
moonshotai: ["kimi-k2-0905-preview", "moonshot-v1-128k"],
|
|
260
|
+
perplexity: ["sonar", "sonar-pro", "sonar-reasoning"],
|
|
261
|
+
alibaba: ["qwen-plus", "qwen-max", "qwen3-coder-plus"],
|
|
262
|
+
cerebras: ["llama3.1-8b", "llama-3.3-70b"],
|
|
263
|
+
replicate: [
|
|
264
|
+
"black-forest-labs/flux-schnell",
|
|
265
|
+
"meta/meta-llama-3-70b-instruct"
|
|
266
|
+
],
|
|
267
|
+
prodia: ["sdxl", "flux-schnell"],
|
|
268
|
+
luma: ["ray-2", "photon-1"],
|
|
269
|
+
bytedance: ["seedream-4-0", "seedance-1-0-pro"],
|
|
270
|
+
kling: ["kling-v2.1", "kling-v1.6"],
|
|
271
|
+
elevenlabs: ["eleven_multilingual_v2", "eleven_turbo_v2_5"],
|
|
272
|
+
assemblyai: ["universal"],
|
|
273
|
+
deepgram: ["nova-3", "nova-2"],
|
|
274
|
+
gladia: ["solaria-1"],
|
|
275
|
+
lmnt: ["aurora"],
|
|
276
|
+
hume: ["octave"],
|
|
277
|
+
revai: ["machine"],
|
|
278
|
+
baseten: ["meta-llama/Llama-3.1-8B-Instruct", "deepseek-ai/DeepSeek-R1"],
|
|
279
|
+
huggingface: [
|
|
280
|
+
"meta-llama/Llama-3.1-8B-Instruct",
|
|
281
|
+
"mistralai/Mistral-7B-Instruct-v0.3"
|
|
116
282
|
]
|
|
117
283
|
};
|
|
284
|
+
var OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS = {
|
|
285
|
+
temperature: {
|
|
286
|
+
type: "number",
|
|
287
|
+
min: 0,
|
|
288
|
+
max: 2,
|
|
289
|
+
default: 0.7,
|
|
290
|
+
description: "Controls randomness"
|
|
291
|
+
},
|
|
292
|
+
max_tokens: {
|
|
293
|
+
type: "number",
|
|
294
|
+
min: 1,
|
|
295
|
+
default: 4096,
|
|
296
|
+
description: "Maximum output tokens"
|
|
297
|
+
},
|
|
298
|
+
top_p: {
|
|
299
|
+
type: "number",
|
|
300
|
+
min: 0,
|
|
301
|
+
max: 1,
|
|
302
|
+
default: 1,
|
|
303
|
+
description: "Nucleus sampling"
|
|
304
|
+
},
|
|
305
|
+
top_k: {
|
|
306
|
+
type: "number",
|
|
307
|
+
min: 0,
|
|
308
|
+
default: 40,
|
|
309
|
+
description: "Top-K sampling"
|
|
310
|
+
},
|
|
311
|
+
frequency_penalty: {
|
|
312
|
+
type: "number",
|
|
313
|
+
min: -2,
|
|
314
|
+
max: 2,
|
|
315
|
+
default: 0,
|
|
316
|
+
description: "Penalize frequent tokens"
|
|
317
|
+
},
|
|
318
|
+
presence_penalty: {
|
|
319
|
+
type: "number",
|
|
320
|
+
min: -2,
|
|
321
|
+
max: 2,
|
|
322
|
+
default: 0,
|
|
323
|
+
description: "Penalize repeated topics"
|
|
324
|
+
},
|
|
325
|
+
stop: { type: "string", default: "", description: "Stop sequences" },
|
|
326
|
+
n: { type: "number", min: 1, default: 1, description: "Completions count" },
|
|
327
|
+
seed: { type: "number", default: "", description: "Random seed" },
|
|
328
|
+
stream: { type: "boolean", default: false, description: "Stream response" },
|
|
329
|
+
effort: {
|
|
330
|
+
type: "enum",
|
|
331
|
+
values: ["none", "minimal", "low", "medium", "high", "xhigh"],
|
|
332
|
+
default: "medium",
|
|
333
|
+
description: "Reasoning effort"
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
var GOOGLE_COMPATIBLE_CANONICAL_PARAM_SPECS = {
|
|
337
|
+
temperature: {
|
|
338
|
+
type: "number",
|
|
339
|
+
min: 0,
|
|
340
|
+
max: 2,
|
|
341
|
+
default: 0.7,
|
|
342
|
+
description: "Controls randomness"
|
|
343
|
+
},
|
|
344
|
+
max_tokens: {
|
|
345
|
+
type: "number",
|
|
346
|
+
min: 1,
|
|
347
|
+
default: 4096,
|
|
348
|
+
description: "Maximum output tokens"
|
|
349
|
+
},
|
|
350
|
+
top_p: {
|
|
351
|
+
type: "number",
|
|
352
|
+
min: 0,
|
|
353
|
+
max: 1,
|
|
354
|
+
default: 1,
|
|
355
|
+
description: "Nucleus sampling"
|
|
356
|
+
},
|
|
357
|
+
top_k: {
|
|
358
|
+
type: "number",
|
|
359
|
+
min: 0,
|
|
360
|
+
default: 40,
|
|
361
|
+
description: "Top-K sampling"
|
|
362
|
+
},
|
|
363
|
+
frequency_penalty: {
|
|
364
|
+
type: "number",
|
|
365
|
+
min: -2,
|
|
366
|
+
max: 2,
|
|
367
|
+
default: 0,
|
|
368
|
+
description: "Penalize frequent tokens"
|
|
369
|
+
},
|
|
370
|
+
presence_penalty: {
|
|
371
|
+
type: "number",
|
|
372
|
+
min: -2,
|
|
373
|
+
max: 2,
|
|
374
|
+
default: 0,
|
|
375
|
+
description: "Penalize repeated topics"
|
|
376
|
+
},
|
|
377
|
+
stop: { type: "string", default: "", description: "Stop sequences" },
|
|
378
|
+
n: { type: "number", min: 1, default: 1, description: "Candidate count" },
|
|
379
|
+
stream: { type: "boolean", default: false, description: "Stream response" },
|
|
380
|
+
seed: { type: "number", default: "", description: "Random seed" }
|
|
381
|
+
};
|
|
118
382
|
var CANONICAL_PARAM_SPECS = {
|
|
119
383
|
openai: {
|
|
120
384
|
temperature: {
|
|
@@ -162,6 +426,7 @@ var CANONICAL_PARAM_SPECS = {
|
|
|
162
426
|
description: "Reasoning effort"
|
|
163
427
|
}
|
|
164
428
|
},
|
|
429
|
+
azure: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
165
430
|
anthropic: {
|
|
166
431
|
temperature: {
|
|
167
432
|
type: "number",
|
|
@@ -256,6 +521,7 @@ var CANONICAL_PARAM_SPECS = {
|
|
|
256
521
|
stream: { type: "boolean", default: false, description: "Stream response" },
|
|
257
522
|
seed: { type: "number", default: "", description: "Random seed" }
|
|
258
523
|
},
|
|
524
|
+
"google-vertex": GOOGLE_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
259
525
|
mistral: {
|
|
260
526
|
temperature: {
|
|
261
527
|
type: "number",
|
|
@@ -498,7 +764,33 @@ var CANONICAL_PARAM_SPECS = {
|
|
|
498
764
|
default: "medium",
|
|
499
765
|
description: "Reasoning effort"
|
|
500
766
|
}
|
|
501
|
-
}
|
|
767
|
+
},
|
|
768
|
+
xai: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
769
|
+
groq: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
770
|
+
fal: {},
|
|
771
|
+
deepinfra: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
772
|
+
"black-forest-labs": {},
|
|
773
|
+
together: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
774
|
+
fireworks: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
775
|
+
deepseek: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
776
|
+
moonshotai: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
777
|
+
perplexity: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
778
|
+
alibaba: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
779
|
+
cerebras: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
780
|
+
replicate: {},
|
|
781
|
+
prodia: {},
|
|
782
|
+
luma: {},
|
|
783
|
+
bytedance: {},
|
|
784
|
+
kling: {},
|
|
785
|
+
elevenlabs: {},
|
|
786
|
+
assemblyai: {},
|
|
787
|
+
deepgram: {},
|
|
788
|
+
gladia: {},
|
|
789
|
+
lmnt: {},
|
|
790
|
+
hume: {},
|
|
791
|
+
revai: {},
|
|
792
|
+
baseten: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,
|
|
793
|
+
huggingface: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS
|
|
502
794
|
};
|
|
503
795
|
export {
|
|
504
796
|
ALIASES,
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/provider-meta.ts"],"sourcesContent":["import type { Provider } from \"./provider-core.js\";\n\n/* ------------------------------------------------------------------ */\n/* UI-consumable metadata for 3rd-party integrations */\n/* ------------------------------------------------------------------ */\n\nexport interface ProviderMeta {\n /** Provider identifier — matches the Provider union type. */\n id: Provider;\n /** Human-readable display name. */\n name: string;\n /** Default / canonical API hostname. */\n host: string;\n /** Brand color as a CSS hex value. */\n color: string;\n}\n\nexport const PROVIDER_META: ProviderMeta[] = [\n { id: \"openai\", name: \"OpenAI\", host: \"api.openai.com\", color: \"#10a37f\" },\n {\n id: \"anthropic\",\n name: \"Anthropic\",\n host: \"api.anthropic.com\",\n color: \"#e8956a\",\n },\n {\n id: \"google\",\n name: \"Google\",\n host: \"generativelanguage.googleapis.com\",\n color: \"#4285f4\",\n },\n { id: \"mistral\", name: \"Mistral\", host: \"api.mistral.ai\", color: \"#ff7000\" },\n { id: \"cohere\", name: \"Cohere\", host: \"api.cohere.com\", color: \"#39594d\" },\n {\n id: \"bedrock\",\n name: \"Bedrock\",\n host: \"bedrock-runtime.us-east-1.amazonaws.com\",\n color: \"#ff9900\",\n },\n {\n id: \"openrouter\",\n name: \"OpenRouter\",\n host: \"openrouter.ai\",\n color: \"#818cf8\",\n },\n {\n id: \"vercel\",\n name: \"Vercel\",\n host: \"gateway.ai.vercel.app\",\n color: \"#ededed\",\n },\n];\n\n/**\n * Suggested / common model IDs per provider, ordered by recency.\n * Not exhaustive — providers add models frequently.\n */\nexport const MODELS: Record<Provider, string[]> = {\n openai: [\n \"gpt-5.2\",\n \"gpt-5.2-pro\",\n \"gpt-4.1\",\n \"gpt-4.1-mini\",\n \"gpt-4.1-nano\",\n \"o3\",\n \"o3-mini\",\n \"o4-mini\",\n \"o1-pro\",\n ],\n anthropic: [\n \"claude-opus-4-6\",\n \"claude-sonnet-4-6\",\n \"claude-sonnet-4-5\",\n \"claude-haiku-4-5\",\n ],\n google: [\n \"gemini-3-pro-preview\",\n \"gemini-3-flash-preview\",\n \"gemini-2.5-pro\",\n \"gemini-2.5-flash\",\n ],\n mistral: [\n \"mistral-large-latest\",\n \"mistral-medium-latest\",\n \"mistral-small-latest\",\n \"codestral-latest\",\n \"magistral-medium-latest\",\n ],\n cohere: [\n \"command-a-03-2025\",\n \"command-r-plus-08-2024\",\n \"command-r-08-2024\",\n \"command-r7b-12-2024\",\n ],\n bedrock: [\n \"anthropic.claude-opus-4-6-v1\",\n \"anthropic.claude-sonnet-4-6-v1\",\n \"anthropic.claude-haiku-4-5-v1\",\n \"amazon.nova-pro-v1\",\n \"amazon.nova-lite-v1\",\n \"meta.llama3-70b-instruct-v1:0\",\n ],\n openrouter: [\n \"openai/gpt-5.2\",\n \"anthropic/claude-opus-4-6\",\n \"google/gemini-2.5-pro\",\n \"mistral/mistral-large-latest\",\n ],\n vercel: [\n \"openai/gpt-5.2\",\n \"anthropic/claude-opus-4-6\",\n \"google/gemini-2.5-pro\",\n \"google/gemini-3-pro-preview\",\n \"google/gemini-3-flash-preview\",\n \"mistral/mistral-large-latest\",\n \"qwen/qwen2.5-pro\",\n ],\n};\n\n/**\n * Canonical parameter spec — keyed by canonical (snake_case) param names\n * with defaults and descriptions for UI consumption.\n */\nexport interface CanonicalParamSpec {\n type: \"number\" | \"string\" | \"boolean\" | \"enum\";\n min?: number;\n max?: number;\n values?: string[];\n default?: string | number | boolean;\n description?: string;\n}\n\nexport const CANONICAL_PARAM_SPECS: Record<\n Provider,\n Record<string, CanonicalParamSpec>\n> = {\n openai: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n description: \"Reasoning effort\",\n },\n },\n anthropic: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"low\", \"medium\", \"high\", \"max\"],\n default: \"medium\",\n description: \"Thinking effort\",\n },\n cache: {\n type: \"enum\",\n values: [\"ephemeral\"],\n default: \"ephemeral\",\n description: \"Cache control\",\n },\n cache_ttl: {\n type: \"enum\",\n values: [\"5m\", \"1h\"],\n default: \"5m\",\n description: \"Cache TTL\",\n },\n },\n google: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Candidate count\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n },\n mistral: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n safe_prompt: {\n type: \"boolean\",\n default: false,\n description: \"Enable safe prompt\",\n },\n min_tokens: {\n type: \"number\",\n min: 0,\n default: 0,\n description: \"Minimum tokens\",\n },\n },\n cohere: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling (p)\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n max: 500,\n default: 40,\n description: \"Top-K sampling (k)\",\n },\n frequency_penalty: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n },\n bedrock: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n cache: {\n type: \"enum\",\n values: [\"ephemeral\"],\n default: \"ephemeral\",\n description: \"Cache control\",\n },\n cache_ttl: {\n type: \"enum\",\n values: [\"5m\", \"1h\"],\n default: \"5m\",\n description: \"Cache TTL\",\n },\n },\n openrouter: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n description: \"Reasoning effort\",\n },\n },\n vercel: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n description: \"Reasoning effort\",\n },\n },\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/provider-meta.ts"],"sourcesContent":["import type { Provider } from \"./provider-core.js\";\n\n/* ------------------------------------------------------------------ */\n/* UI-consumable metadata for 3rd-party integrations */\n/* ------------------------------------------------------------------ */\n\nexport interface ProviderMeta {\n /** Provider identifier — matches the Provider union type. */\n id: Provider;\n /** Human-readable display name. */\n name: string;\n /** Default / canonical API hostname. */\n host: string;\n /** Brand color as a CSS hex value. */\n color: string;\n}\n\nexport const PROVIDER_META: ProviderMeta[] = [\n { id: \"openai\", name: \"OpenAI\", host: \"api.openai.com\", color: \"#10a37f\" },\n {\n id: \"azure\",\n name: \"Azure OpenAI\",\n host: \"models.inference.ai.azure.com\",\n color: \"#0078d4\",\n },\n {\n id: \"anthropic\",\n name: \"Anthropic\",\n host: \"api.anthropic.com\",\n color: \"#e8956a\",\n },\n {\n id: \"google\",\n name: \"Google\",\n host: \"generativelanguage.googleapis.com\",\n color: \"#4285f4\",\n },\n {\n id: \"google-vertex\",\n name: \"Google Vertex AI\",\n host: \"aiplatform.googleapis.com\",\n color: \"#34a853\",\n },\n { id: \"mistral\", name: \"Mistral\", host: \"api.mistral.ai\", color: \"#ff7000\" },\n { id: \"cohere\", name: \"Cohere\", host: \"api.cohere.com\", color: \"#39594d\" },\n {\n id: \"bedrock\",\n name: \"Bedrock\",\n host: \"bedrock-runtime.us-east-1.amazonaws.com\",\n color: \"#ff9900\",\n },\n {\n id: \"openrouter\",\n name: \"OpenRouter\",\n host: \"openrouter.ai\",\n color: \"#818cf8\",\n },\n {\n id: \"vercel\",\n name: \"Vercel\",\n host: \"gateway.ai.vercel.app\",\n color: \"#ededed\",\n },\n { id: \"xai\", name: \"xAI\", host: \"api.x.ai\", color: \"#111111\" },\n { id: \"groq\", name: \"Groq\", host: \"api.groq.com\", color: \"#f55036\" },\n { id: \"fal\", name: \"Fal\", host: \"fal.run\", color: \"#111111\" },\n {\n id: \"deepinfra\",\n name: \"DeepInfra\",\n host: \"api.deepinfra.com\",\n color: \"#2563eb\",\n },\n {\n id: \"black-forest-labs\",\n name: \"Black Forest Labs\",\n host: \"api.bfl.ai\",\n color: \"#111111\",\n },\n {\n id: \"together\",\n name: \"Together.ai\",\n host: \"api.together.xyz\",\n color: \"#ff4f00\",\n },\n {\n id: \"fireworks\",\n name: \"Fireworks\",\n host: \"api.fireworks.ai\",\n color: \"#7c3aed\",\n },\n {\n id: \"deepseek\",\n name: \"DeepSeek\",\n host: \"api.deepseek.com\",\n color: \"#4d6bfe\",\n },\n {\n id: \"moonshotai\",\n name: \"Moonshot AI\",\n host: \"api.moonshot.ai\",\n color: \"#6b46ff\",\n },\n {\n id: \"perplexity\",\n name: \"Perplexity\",\n host: \"api.perplexity.ai\",\n color: \"#20b8cd\",\n },\n {\n id: \"alibaba\",\n name: \"Alibaba\",\n host: \"dashscope-intl.aliyuncs.com\",\n color: \"#ff6a00\",\n },\n {\n id: \"cerebras\",\n name: \"Cerebras\",\n host: \"api.cerebras.ai\",\n color: \"#d71920\",\n },\n {\n id: \"replicate\",\n name: \"Replicate\",\n host: \"api.replicate.com\",\n color: \"#111111\",\n },\n { id: \"prodia\", name: \"Prodia\", host: \"api.prodia.com\", color: \"#6d28d9\" },\n { id: \"luma\", name: \"Luma\", host: \"api.lumalabs.ai\", color: \"#111111\" },\n {\n id: \"bytedance\",\n name: \"ByteDance\",\n host: \"ark.cn-beijing.volces.com\",\n color: \"#2563eb\",\n },\n { id: \"kling\", name: \"Kling AI\", host: \"api.klingai.com\", color: \"#111111\" },\n {\n id: \"elevenlabs\",\n name: \"ElevenLabs\",\n host: \"api.elevenlabs.io\",\n color: \"#111111\",\n },\n {\n id: \"assemblyai\",\n name: \"AssemblyAI\",\n host: \"api.assemblyai.com\",\n color: \"#4f46e5\",\n },\n {\n id: \"deepgram\",\n name: \"Deepgram\",\n host: \"api.deepgram.com\",\n color: \"#13ef93\",\n },\n { id: \"gladia\", name: \"Gladia\", host: \"api.gladia.io\", color: \"#7c3aed\" },\n { id: \"lmnt\", name: \"LMNT\", host: \"api.lmnt.com\", color: \"#14b8a6\" },\n { id: \"hume\", name: \"Hume\", host: \"api.hume.ai\", color: \"#8b5cf6\" },\n { id: \"revai\", name: \"Rev.ai\", host: \"api.rev.ai\", color: \"#ef4444\" },\n {\n id: \"baseten\",\n name: \"Baseten\",\n host: \"api.baseten.co\",\n color: \"#111111\",\n },\n {\n id: \"huggingface\",\n name: \"Hugging Face\",\n host: \"api-inference.huggingface.co\",\n color: \"#ffcc4d\",\n },\n];\n\n/**\n * Suggested / common model IDs per provider, ordered by recency.\n * Not exhaustive — providers add models frequently.\n */\nexport const MODELS: Record<Provider, string[]> = {\n openai: [\n \"gpt-5.2\",\n \"gpt-5.2-pro\",\n \"gpt-4.1\",\n \"gpt-4.1-mini\",\n \"gpt-4.1-nano\",\n \"o3\",\n \"o3-mini\",\n \"o4-mini\",\n \"o1-pro\",\n ],\n azure: [\"gpt-5.2\", \"gpt-4.1\", \"o3\", \"o4-mini\"],\n anthropic: [\n \"claude-opus-4-6\",\n \"claude-sonnet-4-6\",\n \"claude-sonnet-4-5\",\n \"claude-haiku-4-5\",\n ],\n google: [\n \"gemini-3-pro-preview\",\n \"gemini-3-flash-preview\",\n \"gemini-2.5-pro\",\n \"gemini-2.5-flash\",\n ],\n \"google-vertex\": [\n \"gemini-3-pro-preview\",\n \"gemini-3-flash-preview\",\n \"gemini-2.5-pro\",\n \"gemini-2.5-flash\",\n ],\n mistral: [\n \"mistral-large-latest\",\n \"mistral-medium-latest\",\n \"mistral-small-latest\",\n \"codestral-latest\",\n \"magistral-medium-latest\",\n ],\n cohere: [\n \"command-a-03-2025\",\n \"command-r-plus-08-2024\",\n \"command-r-08-2024\",\n \"command-r7b-12-2024\",\n ],\n bedrock: [\n \"anthropic.claude-opus-4-6-v1\",\n \"anthropic.claude-sonnet-4-6-v1\",\n \"anthropic.claude-haiku-4-5-v1\",\n \"amazon.nova-pro-v1\",\n \"amazon.nova-lite-v1\",\n \"meta.llama3-70b-instruct-v1:0\",\n ],\n openrouter: [\n \"openai/gpt-5.2\",\n \"anthropic/claude-opus-4-6\",\n \"google/gemini-2.5-pro\",\n \"mistral/mistral-large-latest\",\n ],\n vercel: [\n \"openai/gpt-5.2\",\n \"anthropic/claude-opus-4-6\",\n \"google/gemini-2.5-pro\",\n \"google/gemini-3-pro-preview\",\n \"google/gemini-3-flash-preview\",\n \"mistral/mistral-large-latest\",\n \"qwen/qwen2.5-pro\",\n ],\n xai: [\"grok-4\", \"grok-3\", \"grok-3-mini\"],\n groq: [\"openai/gpt-oss-120b\", \"llama-3.3-70b-versatile\"],\n fal: [\"fal-ai/flux-pro\", \"fal-ai/imagen4/preview\"],\n deepinfra: [\n \"meta-llama/Meta-Llama-3.1-70B-Instruct\",\n \"deepseek-ai/DeepSeek-V3\",\n ],\n \"black-forest-labs\": [\"flux-pro-1.1\", \"flux-kontext-pro\"],\n together: [\n \"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\n \"deepseek-ai/DeepSeek-V3\",\n ],\n fireworks: [\n \"accounts/fireworks/models/llama-v3p1-70b-instruct\",\n \"accounts/fireworks/models/deepseek-v3\",\n ],\n deepseek: [\"deepseek-chat\", \"deepseek-reasoner\"],\n moonshotai: [\"kimi-k2-0905-preview\", \"moonshot-v1-128k\"],\n perplexity: [\"sonar\", \"sonar-pro\", \"sonar-reasoning\"],\n alibaba: [\"qwen-plus\", \"qwen-max\", \"qwen3-coder-plus\"],\n cerebras: [\"llama3.1-8b\", \"llama-3.3-70b\"],\n replicate: [\n \"black-forest-labs/flux-schnell\",\n \"meta/meta-llama-3-70b-instruct\",\n ],\n prodia: [\"sdxl\", \"flux-schnell\"],\n luma: [\"ray-2\", \"photon-1\"],\n bytedance: [\"seedream-4-0\", \"seedance-1-0-pro\"],\n kling: [\"kling-v2.1\", \"kling-v1.6\"],\n elevenlabs: [\"eleven_multilingual_v2\", \"eleven_turbo_v2_5\"],\n assemblyai: [\"universal\"],\n deepgram: [\"nova-3\", \"nova-2\"],\n gladia: [\"solaria-1\"],\n lmnt: [\"aurora\"],\n hume: [\"octave\"],\n revai: [\"machine\"],\n baseten: [\"meta-llama/Llama-3.1-8B-Instruct\", \"deepseek-ai/DeepSeek-R1\"],\n huggingface: [\n \"meta-llama/Llama-3.1-8B-Instruct\",\n \"mistralai/Mistral-7B-Instruct-v0.3\",\n ],\n};\n\n/**\n * Canonical parameter spec — keyed by canonical (snake_case) param names\n * with defaults and descriptions for UI consumption.\n */\nexport interface CanonicalParamSpec {\n type: \"number\" | \"string\" | \"boolean\" | \"enum\";\n min?: number;\n max?: number;\n values?: string[];\n default?: string | number | boolean;\n description?: string;\n}\n\nconst OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS: Record<\n string,\n CanonicalParamSpec\n> = {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n description: \"Reasoning effort\",\n },\n};\n\nconst GOOGLE_COMPATIBLE_CANONICAL_PARAM_SPECS: Record<\n string,\n CanonicalParamSpec\n> = {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Candidate count\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n};\n\nexport const CANONICAL_PARAM_SPECS: Record<\n Provider,\n Record<string, CanonicalParamSpec>\n> = {\n openai: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n description: \"Reasoning effort\",\n },\n },\n azure: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n anthropic: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"low\", \"medium\", \"high\", \"max\"],\n default: \"medium\",\n description: \"Thinking effort\",\n },\n cache: {\n type: \"enum\",\n values: [\"ephemeral\"],\n default: \"ephemeral\",\n description: \"Cache control\",\n },\n cache_ttl: {\n type: \"enum\",\n values: [\"5m\", \"1h\"],\n default: \"5m\",\n description: \"Cache TTL\",\n },\n },\n google: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Candidate count\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n },\n \"google-vertex\": GOOGLE_COMPATIBLE_CANONICAL_PARAM_SPECS,\n mistral: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n safe_prompt: {\n type: \"boolean\",\n default: false,\n description: \"Enable safe prompt\",\n },\n min_tokens: {\n type: \"number\",\n min: 0,\n default: 0,\n description: \"Minimum tokens\",\n },\n },\n cohere: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling (p)\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n max: 500,\n default: 40,\n description: \"Top-K sampling (k)\",\n },\n frequency_penalty: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n },\n bedrock: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n cache: {\n type: \"enum\",\n values: [\"ephemeral\"],\n default: \"ephemeral\",\n description: \"Cache control\",\n },\n cache_ttl: {\n type: \"enum\",\n values: [\"5m\", \"1h\"],\n default: \"5m\",\n description: \"Cache TTL\",\n },\n },\n openrouter: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n description: \"Reasoning effort\",\n },\n },\n vercel: {\n temperature: {\n type: \"number\",\n min: 0,\n max: 2,\n default: 0.7,\n description: \"Controls randomness\",\n },\n max_tokens: {\n type: \"number\",\n min: 1,\n default: 4096,\n description: \"Maximum output tokens\",\n },\n top_p: {\n type: \"number\",\n min: 0,\n max: 1,\n default: 1,\n description: \"Nucleus sampling\",\n },\n top_k: {\n type: \"number\",\n min: 0,\n default: 40,\n description: \"Top-K sampling\",\n },\n frequency_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize frequent tokens\",\n },\n presence_penalty: {\n type: \"number\",\n min: -2,\n max: 2,\n default: 0,\n description: \"Penalize repeated topics\",\n },\n stop: { type: \"string\", default: \"\", description: \"Stop sequences\" },\n n: { type: \"number\", min: 1, default: 1, description: \"Completions count\" },\n seed: { type: \"number\", default: \"\", description: \"Random seed\" },\n stream: { type: \"boolean\", default: false, description: \"Stream response\" },\n effort: {\n type: \"enum\",\n values: [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n description: \"Reasoning effort\",\n },\n },\n xai: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n groq: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n fal: {},\n deepinfra: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n \"black-forest-labs\": {},\n together: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n fireworks: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n deepseek: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n moonshotai: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n perplexity: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n alibaba: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n cerebras: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n replicate: {},\n prodia: {},\n luma: {},\n bytedance: {},\n kling: {},\n elevenlabs: {},\n assemblyai: {},\n deepgram: {},\n gladia: {},\n lmnt: {},\n hume: {},\n revai: {},\n baseten: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n huggingface: OPENAI_COMPATIBLE_CANONICAL_PARAM_SPECS,\n};\n"],"mappings":"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","names":[]}
|