diff --git a/src/server/routes/proxy/upstreamEndpoint.test.ts b/src/server/routes/proxy/upstreamEndpoint.test.ts index 4cfe7f4..2d2d113 100644 --- a/src/server/routes/proxy/upstreamEndpoint.test.ts +++ b/src/server/routes/proxy/upstreamEndpoint.test.ts @@ -185,7 +185,17 @@ describe('resolveUpstreamEndpointCandidates', () => { 'claude-opus-4-6', 'openai', ); - expect(openaiOrder).toEqual(['messages', 'chat']); + expect(openaiOrder).toEqual(['messages', 'chat', 'responses']); + + const claudeOrder = await resolveUpstreamEndpointCandidates( + { + ...baseContext, + site: { ...baseContext.site, platform: 'anyrouter' }, + }, + 'claude-opus-4-6', + 'claude', + ); + expect(claudeOrder).toEqual(['messages', 'chat', 'responses']); const responsesOrder = await resolveUpstreamEndpointCandidates( { diff --git a/src/server/routes/proxy/upstreamEndpoint.ts b/src/server/routes/proxy/upstreamEndpoint.ts index b6a8328..058f02f 100644 --- a/src/server/routes/proxy/upstreamEndpoint.ts +++ b/src/server/routes/proxy/upstreamEndpoint.ts @@ -931,9 +931,10 @@ export async function resolveUpstreamEndpointCandidates( ); if (sitePlatform === 'anyrouter') { // anyrouter deployments are effectively anthropic-protocol first. - return downstreamFormat === 'responses' - ? ['responses', 'messages', 'chat'] - : ['messages', 'chat']; + if (downstreamFormat === 'responses') { + return ['responses', 'messages', 'chat']; + } + return ['messages', 'chat', 'responses']; } const preferred = preferredEndpointOrder(