@@ -41,6 +41,18 @@ import { ProviderTransform } from "./transform"
4141export namespace Provider {
4242 const log = Log . create ( { service : "provider" } )
4343
44+ function isGpt5OrLater ( modelID : string ) : boolean {
45+ const match = / ^ g p t - ( \d + ) / . exec ( modelID )
46+ if ( ! match ) {
47+ return false
48+ }
49+ return Number ( match [ 1 ] ) >= 5
50+ }
51+
52+ function shouldUseCopilotResponsesApi ( modelID : string ) : boolean {
53+ return isGpt5OrLater ( modelID ) && ! modelID . startsWith ( "gpt-5-mini" )
54+ }
55+
4456 const BUNDLED_PROVIDERS : Record < string , ( options : any ) => SDK > = {
4557 "@ai-sdk/amazon-bedrock" : createAmazonBedrock ,
4658 "@ai-sdk/anthropic" : createAnthropic ,
@@ -120,10 +132,7 @@ export namespace Provider {
120132 return {
121133 autoload : false ,
122134 async getModel ( sdk : any , modelID : string , _options ?: Record < string , any > ) {
123- if ( modelID . includes ( "codex" ) ) {
124- return sdk . responses ( modelID )
125- }
126- return sdk . chat ( modelID )
135+ return shouldUseCopilotResponsesApi ( modelID ) ? sdk . responses ( modelID ) : sdk . chat ( modelID )
127136 } ,
128137 options : { } ,
129138 }
@@ -132,10 +141,7 @@ export namespace Provider {
132141 return {
133142 autoload : false ,
134143 async getModel ( sdk : any , modelID : string , _options ?: Record < string , any > ) {
135- if ( modelID . includes ( "codex" ) ) {
136- return sdk . responses ( modelID )
137- }
138- return sdk . chat ( modelID )
144+ return shouldUseCopilotResponsesApi ( modelID ) ? sdk . responses ( modelID ) : sdk . chat ( modelID )
139145 } ,
140146 options : { } ,
141147 }
0 commit comments