@@ -30,13 +30,16 @@ const OPENAI_GPT_54_MODEL_ID = "gpt-5.4";
3030const OPENAI_GPT_54_PRO_MODEL_ID = "gpt-5.4-pro" ;
3131const OPENAI_GPT_54_MINI_MODEL_ID = "gpt-5.4-mini" ;
3232const OPENAI_GPT_54_NANO_MODEL_ID = "gpt-5.4-nano" ;
33+ const OPENAI_GPT_55_CONTEXT_WINDOW = 1_000_000 ;
34+ const OPENAI_GPT_55_CONTEXT_TOKENS = 272_000 ;
3335const OPENAI_GPT_55_PRO_CONTEXT_TOKENS = 1_000_000 ;
3436const OPENAI_GPT_54_CONTEXT_TOKENS = 1_050_000 ;
3537const OPENAI_GPT_54_PRO_CONTEXT_TOKENS = 1_050_000 ;
3638const OPENAI_GPT_54_MINI_CONTEXT_TOKENS = 400_000 ;
3739const OPENAI_GPT_54_NANO_CONTEXT_TOKENS = 400_000 ;
3840const OPENAI_GPT_54_MAX_TOKENS = 128_000 ;
3941const OPENAI_CHAT_LATEST_COST = { input : 5 , output : 30 , cacheRead : 0.5 , cacheWrite : 0 } as const ;
42+ const OPENAI_GPT_55_COST = { input : 5 , output : 30 , cacheRead : 0.5 , cacheWrite : 0 } as const ;
4043const OPENAI_GPT_55_PRO_COST = { input : 30 , output : 180 , cacheRead : 0 , cacheWrite : 0 } as const ;
4144const OPENAI_GPT_54_COST = { input : 2.5 , output : 15 , cacheRead : 0.25 , cacheWrite : 0 } as const ;
4245const OPENAI_GPT_54_PRO_COST = { input : 30 , output : 180 , cacheRead : 0 , cacheWrite : 0 } as const ;
@@ -56,6 +59,9 @@ const OPENAI_GPT_55_PRO_TEMPLATE_MODEL_IDS = [
5659 OPENAI_GPT_54_PRO_MODEL_ID ,
5760 OPENAI_GPT_54_MODEL_ID ,
5861] as const ;
62+ const OPENAI_GPT_55_MEDIA_INPUT = {
63+ image : { maxSidePx : 6000 , preferredSidePx : 2048 , tokenMode : "detail" } ,
64+ } as const satisfies ProviderRuntimeModel [ "mediaInput" ] ;
5965const OPENAI_GPT_54_TEMPLATE_MODEL_IDS = [ OPENAI_GPT_55_MODEL_ID ] as const ;
6066const OPENAI_GPT_54_PRO_TEMPLATE_MODEL_IDS = [ OPENAI_GPT_55_PRO_MODEL_ID ] as const ;
6167const OPENAI_GPT_54_MINI_TEMPLATE_MODEL_IDS = [ "gpt-5-mini" ] as const ;
@@ -123,6 +129,20 @@ function resolveOpenAIGptForwardCompatModel(ctx: ProviderResolveDynamicModelCont
123129 contextWindow : 400_000 ,
124130 maxTokens : OPENAI_GPT_54_MAX_TOKENS ,
125131 } ;
132+ } else if ( lower === OPENAI_GPT_55_MODEL_ID ) {
133+ templateIds = [ OPENAI_GPT_55_MODEL_ID , OPENAI_GPT_54_MODEL_ID ] ;
134+ patch = {
135+ api : "openai-responses" ,
136+ provider : PROVIDER_ID ,
137+ baseUrl : "https://api.openai.com/v1" ,
138+ reasoning : true ,
139+ input : [ "text" , "image" ] ,
140+ mediaInput : OPENAI_GPT_55_MEDIA_INPUT ,
141+ cost : OPENAI_GPT_55_COST ,
142+ contextWindow : OPENAI_GPT_55_CONTEXT_WINDOW ,
143+ contextTokens : OPENAI_GPT_55_CONTEXT_TOKENS ,
144+ maxTokens : OPENAI_GPT_54_MAX_TOKENS ,
145+ } ;
126146 } else if ( lower === OPENAI_GPT_55_PRO_MODEL_ID ) {
127147 templateIds = OPENAI_GPT_55_PRO_TEMPLATE_MODEL_IDS ;
128148 patch = {
0 commit comments