SIGN IN SIGN UP

feat(bedrock): serve requests through the bedrock-mantle endpoint (#979)

* feat(bedrock): serve requests through the bedrock-mantle endpoint

`provider_options: [endpoint: :mantle]` sends a request to bedrock-mantle
instead of bedrock-runtime, which stays the default. Mantle takes the OpenAI
Chat Completions API for every model family and the Anthropic Messages API
for Claude, so the provider picks the wire from the model id, signs for the
bedrock-mantle service or sends the API key the way each route expects, and
reads the SSE stream Mantle answers with. `project: "proj_…"` attributes
the request to a bedrock-mantle project.

A provider can now export `stream_protocol_parser/2` to pick the stream
parser per request, and the streaming fixture recorder redacts the AWS
session token.

* fix(bedrock): route GPT-5, Gemma 4 and Grok under /openai/v1 on bedrock-mantle

bedrock-mantle serves each Chat Completions model under exactly one of
two base paths; the other answers 400 "isn't supported on this route".
Pick /openai/v1 for openai.gpt-5*, google.gemma-4* and xai.* by default,
and add the mantle_base_path provider option to override it.

* test(bedrock): record a bedrock-mantle /openai/v1 fixture
A
Adrien committed
81d052d2ac718fd1aa37e6b48d5bbbcfce7c540b
Parent: 27a61c2
Committed by GitHub <noreply@github.com> on 8/28/2026, 7:15:21 PM