@@ -34,7 +34,15 @@ export const DEFAULT_CONSECUTIVE_MISTAKE_LIMIT = 3
3434 * Dynamic provider requires external API calls in order to get the model list.
3535 */
3636
37- export const dynamicProviders = [ "openrouter" , "vercel-ai-gateway" , "litellm" , "requesty" , "roo" , "unbound" ] as const
37+ export const dynamicProviders = [
38+ "openrouter" ,
39+ "vercel-ai-gateway" ,
40+ "litellm" ,
41+ "requesty" ,
42+ "roo" ,
43+ "unbound" ,
44+ "poe" ,
45+ ] as const
3846
3947export type DynamicProvider = ( typeof dynamicProviders ) [ number ]
4048
@@ -306,6 +314,11 @@ const deepSeekSchema = apiModelIdProviderModelSchema.extend({
306314 deepSeekApiKey : z . string ( ) . optional ( ) ,
307315} )
308316
317+ const poeSchema = apiModelIdProviderModelSchema . extend ( {
318+ poeApiKey : z . string ( ) . optional ( ) ,
319+ poeBaseUrl : z . string ( ) . optional ( ) ,
320+ } )
321+
309322const moonshotSchema = apiModelIdProviderModelSchema . extend ( {
310323 moonshotBaseUrl : z
311324 . union ( [ z . literal ( "https://api.moonshot.ai/v1" ) , z . literal ( "https://api.moonshot.cn/v1" ) ] )
@@ -400,6 +413,7 @@ export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProv
400413 openAiNativeSchema . merge ( z . object ( { apiProvider : z . literal ( "openai-native" ) } ) ) ,
401414 mistralSchema . merge ( z . object ( { apiProvider : z . literal ( "mistral" ) } ) ) ,
402415 deepSeekSchema . merge ( z . object ( { apiProvider : z . literal ( "deepseek" ) } ) ) ,
416+ poeSchema . merge ( z . object ( { apiProvider : z . literal ( "poe" ) } ) ) ,
403417 moonshotSchema . merge ( z . object ( { apiProvider : z . literal ( "moonshot" ) } ) ) ,
404418 minimaxSchema . merge ( z . object ( { apiProvider : z . literal ( "minimax" ) } ) ) ,
405419 requestySchema . merge ( z . object ( { apiProvider : z . literal ( "requesty" ) } ) ) ,
@@ -433,6 +447,7 @@ export const providerSettingsSchema = z.object({
433447 ...openAiNativeSchema . shape ,
434448 ...mistralSchema . shape ,
435449 ...deepSeekSchema . shape ,
450+ ...poeSchema . shape ,
436451 ...moonshotSchema . shape ,
437452 ...minimaxSchema . shape ,
438453 ...requestySchema . shape ,
@@ -510,6 +525,7 @@ export const modelIdKeysByProvider: Record<TypicalProvider, ModelIdKey> = {
510525 moonshot : "apiModelId" ,
511526 minimax : "apiModelId" ,
512527 deepseek : "apiModelId" ,
528+ poe : "apiModelId" ,
513529 "qwen-code" : "apiModelId" ,
514530 requesty : "requestyModelId" ,
515531 unbound : "unboundModelId" ,
@@ -632,6 +648,7 @@ export const MODELS_BY_PROVIDER: Record<
632648 baseten : { id : "baseten" , label : "Baseten" , models : Object . keys ( basetenModels ) } ,
633649
634650 // Dynamic providers; models pulled from remote APIs.
651+ poe : { id : "poe" , label : "Poe" , models : [ ] } ,
635652 litellm : { id : "litellm" , label : "LiteLLM" , models : [ ] } ,
636653 openrouter : { id : "openrouter" , label : "OpenRouter" , models : [ ] } ,
637654 requesty : { id : "requesty" , label : "Requesty" , models : [ ] } ,
0 commit comments