[Feature]: Support OpenRouter’s native Decisions API
Prerequisites
- I have searched existing issues and discussions to avoid duplicates
Problem to solve
Bifrost now has a Decisions API and direct TypeSafe support through #7355, but the OpenRouter provider does not implement native decision requests.
Users accessing Jev through OpenRouter therefore need to call OpenRouter outside Bifrost or configure a separate direct TypeSafe integration. Calling OpenRouter directly bypasses Bifrost’s virtual-key controls, logging, and cost tracking for those requests.
OpenRouter exposes Jev through POST /api/alpha/decisions, not Chat Completions. The decision-emulation feature in #7361 does not replace this native transport.
Proposed solution
Extend the existing OpenRouter provider to support native decision requests through Bifrost’s /v1/decisions endpoint, including TypeSafe’s Jev/System One models. Keep the integration model-independent so future models using the same OpenRouter API contract can use it without model-specific transport changes.
The integration should:
- Use existing OpenRouter provider credentials and configuration.
- Translate Bifrost’s decision request into OpenRouter’s native Decisions API format.
- Preserve typed answers, choice probabilities, confidence, and the resolved model identifier.
- Integrate usage and cost information with Bifrost’s logging and governance.
- Preserve provider errors and use the existing timeout, retry, and explicit fallback policies.
Alternatives considered
- Call OpenRouter directly: works, but requires an application-side exception to the gateway.
- Use Bifrost’s direct TypeSafe provider: a valid alternative, but requires separate provider credentials and billing rather than the existing OpenRouter integration.
- Use decision emulation with a chat model: useful for other models, but does not execute Jev or preserve its native decision probabilities.
Area(s)
Core (Go), Framework, Docs
Additional context
We have successfully exercised typesafe/jev-1.13 through OpenRouter’s native Decisions endpoint for a classification workload. The missing piece is carrying that request through Bifrost.
Related work:
- #7355 adds the Decisions API and direct TypeSafe provider.
- #7361 adds decision emulation for general-purpose models.
- #7278 proposes Jev-powered routing and includes discussion of the separate OpenRouter transport. This request is limited to inference-provider support.
- OpenRouter Decisions API reference
Is native OpenRouter Decisions support already planned as a follow-up to #7355?
Source: maximhq/bifrost