Problem
On the OpenRouter backend, listModels() fetches /api/v1/models, OpenRouter's chat-model catalogue. On 2026-09-23 that list had 454 entries and none of them was a Jev model, so every id it returns is rejected by /api/alpha/decisions.
What OpenRouter offers
Jev is only visible through the per-model endpoints route. Both of these answer 200 without a key:
GET https://openrouter.ai/api/v1/models/typesafe/jev-1.13/endpoints
GET https://openrouter.ai/api/v1/models/~typesafe/jev-latest/endpoints
The response looks like { "data": { "id": "typesafe/jev-1.13", "name": "TypeSafe: Jev 1.13", "endpoints": [ ... ] } }. An unknown id answers 404.
Wanted
listModels() on OpenRouter returns the Jev ids the Decisions API accepts. The BackendConfig fields (modelsPath, modelsField, modelsIdField, modelsVerifyKey) stay public and keep their names. The SDK itself is not changed.
Problem
On the OpenRouter backend,
listModels()fetches/api/v1/models, OpenRouter's chat-model catalogue. On 2026-09-23 that list had 454 entries and none of them was a Jev model, so every id it returns is rejected by/api/alpha/decisions.What OpenRouter offers
Jev is only visible through the per-model endpoints route. Both of these answer 200 without a key:
GET https://openrouter.ai/api/v1/models/typesafe/jev-1.13/endpointsGET https://openrouter.ai/api/v1/models/~typesafe/jev-latest/endpointsThe response looks like
{ "data": { "id": "typesafe/jev-1.13", "name": "TypeSafe: Jev 1.13", "endpoints": [ ... ] } }. An unknown id answers 404.Wanted
listModels()on OpenRouter returns the Jev ids the Decisions API accepts. TheBackendConfigfields (modelsPath,modelsField,modelsIdField,modelsVerifyKey) stay public and keep their names. The SDK itself is not changed.