@@ -37,6 +37,15 @@ export namespace Provider {
3737 return Number ( match [ 1 ] ) >= 5
3838 }
3939
40+ function shouldUseCopilotResponsesApi ( useResponsesApi : boolean , modelID : string ) : boolean {
41+ return (
42+ useResponsesApi &&
43+ isGpt5OrLater ( modelID ) &&
44+ ! modelID . startsWith ( "gpt-5-mini" ) &&
45+ ! modelID . startsWith ( "gpt-5-chat" )
46+ )
47+ }
48+
4049 const BUNDLED_PROVIDERS : Record < string , ( options : any ) => SDK > = {
4150 "@ai-sdk/amazon-bedrock" : createAmazonBedrock ,
4251 "@ai-sdk/anthropic" : createAnthropic ,
@@ -103,19 +112,12 @@ export namespace Provider {
103112 return {
104113 autoload : false ,
105114 async getModel ( sdk : any , modelID : string , _options ?: Record < string , any > ) {
106- // GitHub Copilot can optionally route supported models through the Responses API.
107- // This enables settings like reasoningEffort/reasoningSummary for GPT-5+ models .
115+ // TODO: once GitHub Copilot enables Responses API broadly, default this on for supported models
116+ // and remove the opt-in flag to reduce configuration surface area .
108117 const useResponsesApi = Boolean ( input . options ?. useResponsesApi )
109118
110- if ( modelID . includes ( "codex" ) ) {
111- return sdk . responses ( modelID )
112- }
113-
114- // gpt-5-mini is known to be unsupported via Responses API for some users.
115- if ( useResponsesApi && isGpt5OrLater ( modelID ) && modelID !== "gpt-5-mini" ) {
116- return sdk . responses ( modelID )
117- }
118- return sdk . chat ( modelID )
119+ const useResponses = modelID . includes ( "codex" ) || shouldUseCopilotResponsesApi ( useResponsesApi , modelID )
120+ return useResponses ? sdk . responses ( modelID ) : sdk . chat ( modelID )
119121 } ,
120122 options : { } ,
121123 }
@@ -124,16 +126,12 @@ export namespace Provider {
124126 return {
125127 autoload : false ,
126128 async getModel ( sdk : any , modelID : string , _options ?: Record < string , any > ) {
129+ // TODO: once GitHub Copilot enables Responses API broadly, default this on for supported models
130+ // and remove the opt-in flag to reduce configuration surface area.
127131 const useResponsesApi = Boolean ( input . options ?. useResponsesApi )
128132
129- if ( modelID . includes ( "codex" ) ) {
130- return sdk . responses ( modelID )
131- }
132-
133- if ( useResponsesApi && isGpt5OrLater ( modelID ) && modelID !== "gpt-5-mini" ) {
134- return sdk . responses ( modelID )
135- }
136- return sdk . chat ( modelID )
133+ const useResponses = modelID . includes ( "codex" ) || shouldUseCopilotResponsesApi ( useResponsesApi , modelID )
134+ return useResponses ? sdk . responses ( modelID ) : sdk . chat ( modelID )
137135 } ,
138136 options : { } ,
139137 }
0 commit comments