ai_api / src /sse /handlers /resolveRoutingModel.ts
Yogesh
initial deploy
cd8bd0a
Raw
History Blame Contribute Delete
867 Bytes
// Resolve the model used for routing. The `X-Route-Model` header, when present,
// overrides `body.model` — letting a caller/proxy force a specific combo/alias/model
// regardless of what the client CLI sent. This is useful when a CLI hardcodes
// `body.model` to a fixed provider/model (bypassing combo routing): an upstream
// proxy can send `X-Route-Model` to restore routing control without mutating the
// request body. The resolved value still flows through `enforceApiKeyPolicy`, so
// it cannot bypass per-key model/combo allowlists. See PR #4863.
type HeaderCarrier = { headers: { get(name: string): string | null } };
export function resolveRoutingModel(
request: HeaderCarrier,
body: { model?: string | null }
): string | null | undefined {
const headerModel = request.headers.get("x-route-model")?.trim();
return headerModel || body.model;
}