@@ -1873,6 +1873,34 @@ describe("buildLiveGatewayConfig", () => {
18731873 }
18741874 } ) ;
18751875
1876+ it ( "keeps explicit Bedrock fallback models on the Bedrock runtime" , ( ) => {
1877+ const cfg = buildLiveGatewayConfig ( {
1878+ cfg : {
1879+ models : {
1880+ providers : {
1881+ "amazon-bedrock" : {
1882+ api : "openai-responses" ,
1883+ auth : "api-key" ,
1884+ baseUrl : "https://bedrock-runtime.ap-south-1.amazonaws.com" ,
1885+ models : [ ] ,
1886+ } ,
1887+ } ,
1888+ } ,
1889+ } ,
1890+ candidates : [
1891+ createExplicitLiveFallbackModel ( "amazon-bedrock" , "global.anthropic.claude-sonnet-4-6" ) ,
1892+ ] ,
1893+ liveAgentDir : GATEWAY_LIVE_CONFIG_TEST_AGENT_DIR ,
1894+ liveAgentWorkspaceDir : GATEWAY_LIVE_CONFIG_TEST_WORKSPACE ,
1895+ } ) ;
1896+
1897+ expect ( cfg . models ?. providers ?. [ "amazon-bedrock" ] ) . toMatchObject ( {
1898+ api : "bedrock-converse-stream" ,
1899+ auth : "aws-sdk" ,
1900+ baseUrl : "https://bedrock-runtime.ap-south-1.amazonaws.com" ,
1901+ } ) ;
1902+ } ) ;
1903+
18761904 it ( "uses configured Bedrock discovery regions for explicit fallback models" , ( ) => {
18771905 const previousAwsRegion = process . env . AWS_REGION ;
18781906 setTestEnvValue ( "AWS_REGION" , "eu-west-1" ) ;
@@ -3068,6 +3096,7 @@ function toLiveModelConfig(model: Model): NonNullable<ModelProviderConfig["model
30683096}
30693097
30703098function mergeLiveProviderConfig ( params : {
3099+ provider : string ;
30713100 base : ModelProviderConfig | undefined ;
30723101 discovered : ModelProviderConfig ;
30733102} ) : ModelProviderConfig {
@@ -3084,10 +3113,14 @@ function mergeLiveProviderConfig(params: {
30843113 mergedModels . set ( model . id , model ) ;
30853114 }
30863115 }
3116+ const useDiscoveredRuntime = normalizeProviderId ( params . provider ) === "amazon-bedrock" ;
30873117 return {
30883118 ...params . discovered ,
30893119 ...params . base ,
3090- api : params . base ?. api ?? params . discovered . api ,
3120+ api : useDiscoveredRuntime ? params . discovered . api : ( params . base ?. api ?? params . discovered . api ) ,
3121+ auth : useDiscoveredRuntime
3122+ ? params . discovered . auth
3123+ : ( params . base ?. auth ?? params . discovered . auth ) ,
30913124 baseUrl : params . base ?. baseUrl ?? params . discovered . baseUrl ,
30923125 timeoutSeconds : Math . max (
30933126 params . base ?. timeoutSeconds ?? 0 ,
@@ -3288,7 +3321,7 @@ function buildLiveGatewayConfig(params: {
32883321 const discoveredProviders = Object . fromEntries (
32893322 Object . entries ( candidateProviders ) . map ( ( [ provider , discovered ] ) => [
32903323 provider ,
3291- mergeLiveProviderConfig ( { base : baseProviders [ provider ] , discovered } ) ,
3324+ mergeLiveProviderConfig ( { provider , base : baseProviders [ provider ] , discovered } ) ,
32923325 ] ) ,
32933326 ) ;
32943327 const nextProviders = {
0 commit comments