# Proxy routing config for the Claude Code Compatibility Matrix PR gate. # # The tests under `tests/e2e/claude_code/` only know **alias** names (e.g. # `claude-haiku-4-5-bedrock-invoke`). The proxy is the layer that maps # each alias to a real upstream model id, region, and credentials. # # Adding a new (feature, provider) cell is a three-step change in the # test repo (manifest + test file + alias here); changing which upstream # model a cell exercises is a one-step change here, with no test edits. # # Aliases: # - claude-{tier} → Anthropic API # - claude-{tier}-bedrock-invoke → Bedrock InvokeModel API # - claude-{tier}-bedrock-converse → Bedrock Converse API # - claude-{tier}-vertex → GCP Vertex AI # - claude-{tier}-azure → Microsoft Foundry (Anthropic deployments) # - gpt-5-6-{tier}-openai → OpenAI API # - gpt-5-6-{tier}-azure-openai → Azure OpenAI deployments # - gpt-5-6-{tier}-bedrock-mantle → Bedrock Mantle (Responses API) # # GPT-5.6 tiers are sol / terra / luna. There are no GPT aliases for # GCP: Vertex AI does not offer the closed-weight GPT-5.6 family, so # the matrix's `vertex_ai_gpt` column reports not_applicable without # ever reaching the proxy. model_list: # ---- Anthropic ---- - model_name: claude-haiku-4-5 litellm_params: model: anthropic/claude-haiku-4-5 api_key: os.environ/ANTHROPIC_API_KEY - model_name: claude-sonnet-4-5 litellm_params: model: anthropic/claude-sonnet-4-5 api_key: os.environ/ANTHROPIC_API_KEY extra_headers: anthropic-beta: "context-1m-2025-08-07" - model_name: claude-opus-4-7 litellm_params: model: anthropic/claude-opus-4-7 api_key: os.environ/ANTHROPIC_API_KEY extra_headers: anthropic-beta: "context-1m-2025-08-07" # ---- Bedrock (InvokeModel) ---- - model_name: claude-haiku-4-5-bedrock-invoke litellm_params: model: bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0 aws_region_name: us-east-1 - model_name: claude-sonnet-4-5-bedrock-invoke litellm_params: model: bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0 aws_region_name: us-east-1 extra_headers: anthropic-beta: "context-1m-2025-08-07" - model_name: claude-opus-4-7-bedrock-invoke litellm_params: model: bedrock/us.anthropic.claude-opus-4-7 aws_region_name: us-east-1 extra_headers: anthropic-beta: "context-1m-2025-08-07" # ---- Bedrock (Converse) ---- - model_name: claude-haiku-4-5-bedrock-converse litellm_params: model: bedrock/converse/us.anthropic.claude-haiku-4-5-20251001-v1:0 aws_region_name: us-east-1 - model_name: claude-sonnet-4-5-bedrock-converse litellm_params: model: bedrock/converse/us.anthropic.claude-sonnet-4-5-20250929-v1:0 aws_region_name: us-east-1 extra_headers: anthropic-beta: "context-1m-2025-08-07" - model_name: claude-opus-4-7-bedrock-converse litellm_params: model: bedrock/converse/us.anthropic.claude-opus-4-7 aws_region_name: us-east-1 extra_headers: anthropic-beta: "context-1m-2025-08-07" # ---- Vertex AI ---- # `use_in_pass_through: true` registers each deployment's # project/location/credentials with the /vertex_ai passthrough # router, which the `passthrough` row needs to resolve # .../models/{alias}:streamRawPredict URLs. That registration only # reads the canonical `vertex_project`/`vertex_location` param names # (not the `vertex_ai_*` aliases); the chat translation path accepts # both. - model_name: claude-haiku-4-5-vertex litellm_params: model: vertex_ai/claude-haiku-4-5 vertex_project: os.environ/VERTEXAI_PROJECT vertex_location: global use_in_pass_through: true - model_name: claude-sonnet-4-5-vertex litellm_params: model: vertex_ai/claude-sonnet-4-5 vertex_project: os.environ/VERTEXAI_PROJECT vertex_location: global use_in_pass_through: true extra_headers: anthropic-beta: "context-1m-2025-08-07" - model_name: claude-opus-4-7-vertex litellm_params: model: vertex_ai/claude-opus-4-7 vertex_project: os.environ/VERTEXAI_PROJECT vertex_location: global use_in_pass_through: true extra_headers: anthropic-beta: "context-1m-2025-08-07" # ---- Microsoft Foundry (Anthropic deployments on Azure) ---- - model_name: claude-haiku-4-5-azure litellm_params: model: azure_ai/claude-haiku-4-5 api_base: os.environ/AZURE_AI_API_BASE api_key: os.environ/AZURE_AI_API_KEY - model_name: claude-sonnet-4-5-azure litellm_params: model: azure_ai/claude-sonnet-4-5 api_base: os.environ/AZURE_AI_API_BASE api_key: os.environ/AZURE_AI_API_KEY extra_headers: anthropic-beta: "context-1m-2025-08-07" - model_name: claude-opus-4-7-azure litellm_params: model: azure_ai/claude-opus-4-7 api_base: os.environ/AZURE_AI_API_BASE api_key: os.environ/AZURE_AI_API_KEY extra_headers: anthropic-beta: "context-1m-2025-08-07" # ---- OpenAI (GPT-5.6) ---- - model_name: gpt-5-6-sol-openai litellm_params: model: openai/gpt-5.6-sol api_key: os.environ/OPENAI_API_KEY - model_name: gpt-5-6-terra-openai litellm_params: model: openai/gpt-5.6-terra api_key: os.environ/OPENAI_API_KEY - model_name: gpt-5-6-luna-openai litellm_params: model: openai/gpt-5.6-luna api_key: os.environ/OPENAI_API_KEY # ---- Azure OpenAI (GPT-5.6) ---- - model_name: gpt-5-6-sol-azure-openai litellm_params: model: azure/gpt-5.6-sol api_base: os.environ/AZURE_API_BASE api_key: os.environ/AZURE_API_KEY - model_name: gpt-5-6-terra-azure-openai litellm_params: model: azure/gpt-5.6-terra api_base: os.environ/AZURE_API_BASE api_key: os.environ/AZURE_API_KEY - model_name: gpt-5-6-luna-azure-openai litellm_params: model: azure/gpt-5.6-luna api_base: os.environ/AZURE_API_BASE api_key: os.environ/AZURE_API_KEY # ---- Bedrock Mantle (GPT-5.6, Responses API) ---- # Sol is only served from us-east-1 / us-east-2 as of 2026-07; # Terra and Luna additionally have us-west-2. One region keeps the # column comparable across tiers. - model_name: gpt-5-6-sol-bedrock-mantle litellm_params: model: bedrock_mantle/openai.gpt-5.6-sol aws_region_name: us-east-1 - model_name: gpt-5-6-terra-bedrock-mantle litellm_params: model: bedrock_mantle/openai.gpt-5.6-terra aws_region_name: us-east-1 - model_name: gpt-5-6-luna-bedrock-mantle litellm_params: model: bedrock_mantle/openai.gpt-5.6-luna aws_region_name: us-east-1 general_settings: # Claude Code sends provider-specific headers (e.g. anthropic-beta) we # want to forward verbatim to the upstream so the wire-shape under # test matches what real customers send. forward_client_headers_to_llm_api: true litellm_settings: drop_params: true modify_params: true