|
8 | 8 | bedrockModels, |
9 | 9 | deepSeekModels, |
10 | 10 | fireworksModels, |
| 11 | + friendliModels, |
11 | 12 | geminiModels, |
12 | 13 | mistralModels, |
13 | 14 | moonshotModels, |
@@ -119,6 +120,7 @@ export const providerNames = [ |
119 | 120 | "baseten", |
120 | 121 | "deepseek", |
121 | 122 | "fireworks", |
| 123 | + "friendli", |
122 | 124 | "gemini", |
123 | 125 | "gemini-cli", |
124 | 126 | "mistral", |
@@ -393,6 +395,10 @@ const fireworksSchema = apiModelIdProviderModelSchema.extend({ |
393 | 395 | fireworksApiKey: z.string().optional(), |
394 | 396 | }) |
395 | 397 |
|
| 398 | +const friendliSchema = apiModelIdProviderModelSchema.extend({ |
| 399 | + friendliApiKey: z.string().optional(), |
| 400 | +}) |
| 401 | + |
396 | 402 | const qwenCodeSchema = apiModelIdProviderModelSchema.extend({ |
397 | 403 | qwenCodeOauthPath: z.string().optional(), |
398 | 404 | }) |
@@ -449,6 +455,7 @@ export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProv |
449 | 455 | sambaNovaSchema.merge(z.object({ apiProvider: z.literal("sambanova") })), |
450 | 456 | zaiSchema.merge(z.object({ apiProvider: z.literal("zai") })), |
451 | 457 | fireworksSchema.merge(z.object({ apiProvider: z.literal("fireworks") })), |
| 458 | + friendliSchema.merge(z.object({ apiProvider: z.literal("friendli") })), |
452 | 459 | qwenCodeSchema.merge(z.object({ apiProvider: z.literal("qwen-code") })), |
453 | 460 | vercelAiGatewaySchema.merge(z.object({ apiProvider: z.literal("vercel-ai-gateway") })), |
454 | 461 | opencodeGoSchema.merge(z.object({ apiProvider: z.literal("opencode-go") })), |
@@ -485,6 +492,7 @@ export const providerSettingsSchema = z.object({ |
485 | 492 | ...sambaNovaSchema.shape, |
486 | 493 | ...zaiSchema.shape, |
487 | 494 | ...fireworksSchema.shape, |
| 495 | + ...friendliSchema.shape, |
488 | 496 | ...qwenCodeSchema.shape, |
489 | 497 | ...vercelAiGatewaySchema.shape, |
490 | 498 | ...opencodeGoSchema.shape, |
@@ -565,6 +573,7 @@ export const modelIdKeysByProvider: Record<TypicalProvider, ModelIdKey> = { |
565 | 573 | sambanova: "apiModelId", |
566 | 574 | zai: "apiModelId", |
567 | 575 | fireworks: "apiModelId", |
| 576 | + friendli: "apiModelId", |
568 | 577 | "vercel-ai-gateway": "vercelAiGatewayModelId", |
569 | 578 | "opencode-go": "opencodeGoModelId", |
570 | 579 | "zoo-gateway": "zooGatewayModelId", |
@@ -638,6 +647,11 @@ export const MODELS_BY_PROVIDER: Record< |
638 | 647 | label: "Fireworks", |
639 | 648 | models: Object.keys(fireworksModels), |
640 | 649 | }, |
| 650 | + friendli: { |
| 651 | + id: "friendli", |
| 652 | + label: "Friendli", |
| 653 | + models: Object.keys(friendliModels), |
| 654 | + }, |
641 | 655 | gemini: { |
642 | 656 | id: "gemini", |
643 | 657 | label: "Google Gemini", |
|
0 commit comments