Bumped by every mutation. Recorded on each pin; never read to decide anything.
Provider ids currently registered, in registration order.
Resolve one route for one call, once.
Every check that can be made before anything is committed is made here: the
provider exists, it serves this model, and its adapter transmits the bytes
this encoder produces. A route that fails any of them fails BEFORE a signed
request/header row exists, so a refusal costs nothing durable.
Add a route.
Refuses to shadow an existing provider id. A silent overwrite is how two
compositions that both configure anthropic end up with whichever loaded
last, with nothing recorded about the other — AdapterRegistry.replace
is how a deliberate swap is spelled.
Drop a route. Returns whether one was there. In-flight pinned calls survive.
Swap a route, or add it when absent.
This is the HMR path. It bumps the generation, and it cannot reach a call that has already pinned — which is the whole point of the pin.
The routes a composition offers, and the only place a route is resolved.