@@ -16,8 +16,35 @@ export default class OpenAIProvider extends BaseProvider {
1616 staticModels : ModelInfo [ ] = [
1717 /*
1818 * Essential fallback models - only the most stable/reliable ones
19- * GPT-5.1: 128k context, 16k output limit (best for coding and agentic tasks)
19+ * GPT-5.2 Pro: 400k context, 128k output, highest accuracy and quality
2020 */
21+ {
22+ name : 'gpt-5.2-pro' ,
23+ label : 'GPT-5.2 Pro' ,
24+ provider : 'OpenAI' ,
25+ maxTokenAllowed : 400000 ,
26+ maxCompletionTokens : 128000 ,
27+ } ,
28+
29+ // GPT-5.2 Thinking: 400k context, 128k output, for complex reasoning and coding
30+ {
31+ name : 'gpt-5.2-thinking' ,
32+ label : 'GPT-5.2 Thinking' ,
33+ provider : 'OpenAI' ,
34+ maxTokenAllowed : 400000 ,
35+ maxCompletionTokens : 128000 ,
36+ } ,
37+
38+ // GPT-5.2 Instant: 400k context, 128k output, optimized for speed
39+ {
40+ name : 'gpt-5.2-instant' ,
41+ label : 'GPT-5.2 Instant' ,
42+ provider : 'OpenAI' ,
43+ maxTokenAllowed : 400000 ,
44+ maxCompletionTokens : 128000 ,
45+ } ,
46+
47+ // GPT-5.1: 128k context, 16k output limit (best for coding and agentic tasks)
2148 {
2249 name : 'gpt-5.1' ,
2350 label : 'GPT-5.1' ,
@@ -112,6 +139,12 @@ export default class OpenAIProvider extends BaseProvider {
112139 // OpenAI provides context_length in their API response
113140 if ( m . context_length ) {
114141 contextWindow = m . context_length ;
142+ } else if ( m . id ?. includes ( 'gpt-5.2' ) ) {
143+ contextWindow = 400000 ; // GPT-5.2 has 400k context
144+ } else if ( m . id ?. includes ( 'gpt-5.1' ) ) {
145+ contextWindow = 128000 ; // GPT-5.1 has 128k context
146+ } else if ( m . id ?. includes ( 'gpt-5' ) ) {
147+ contextWindow = 128000 ; // Other GPT-5 models have 128k context
115148 } else if ( m . id ?. includes ( 'gpt-4o' ) ) {
116149 contextWindow = 128000 ; // GPT-4o has 128k context
117150 } else if ( m . id ?. includes ( 'gpt-4-turbo' ) || m . id ?. includes ( 'gpt-4-1106' ) ) {
@@ -135,6 +168,8 @@ export default class OpenAIProvider extends BaseProvider {
135168 maxCompletionTokens = 32000 ; // Other o1 models: 32K limit
136169 } else if ( m . id ?. includes ( 'o3' ) || m . id ?. includes ( 'o4' ) ) {
137170 maxCompletionTokens = 100000 ; // o3/o4 models: 100K output limit
171+ } else if ( m . id ?. includes ( 'gpt-5.2' ) ) {
172+ maxCompletionTokens = 128000 ; // GPT-5.2: 128K output limit
138173 } else if ( m . id ?. includes ( 'gpt-5.1' ) ) {
139174 maxCompletionTokens = 16384 ; // GPT-5.1: 16K output limit
140175 } else if ( m . id ?. includes ( 'gpt-5-mini' ) ) {
@@ -155,7 +190,7 @@ export default class OpenAIProvider extends BaseProvider {
155190 name : m . id ,
156191 label : `${ m . id } (${ Math . floor ( contextWindow / 1000 ) } k context)` ,
157192 provider : this . name ,
158- maxTokenAllowed : Math . min ( contextWindow , 128000 ) , // Cap at 128k for safety
193+ maxTokenAllowed : Math . min ( contextWindow , 400000 ) , // Cap at 400k for safety
159194 maxCompletionTokens,
160195 } ;
161196 } ) ;
0 commit comments