Feature: add TypeSafe Jev as a combo routing strategy (alongside fallback / round-robin)
Summary
Add TypeSafe AI's Jev ("System One") model as a new per-combo routing strategy, alongside the existing fallback and round-robin strategies in open-sse/services/combo.js.
Background
Jev isn't a chat model — it's a decision-only model. You send it a state plus typed choice/score/noul questions and it returns a calibrated, structured answer in ~70-500ms via POST https://api.typesafe.ai/v1/systemone (not /v1/chat/completions). Docs: https://docs.typesafe.ai/api
That shape is a good fit for pre-generation routing: ask Jev a single choice question ("which of these N combo models best fits this request?") over the combo's model IDs, using the incoming request (prompt, detected capabilities, historical latency/cost per model, etc.) as state. This is a different, cheaper problem than the existing Fusion strategy (parallel panel + judge synthesis, #1835) — Fusion picks the best output after generating from multiple models; a Jev strategy would pick the best model before spending any generation tokens at all. Complementary, not overlapping.
Proposed strategy: "jev"
- New value for a combo's
strategyfield (today:"fallback"|"round-robin"), wired intogetRotatedModels()inopen-sse/services/combo.js. - On each request, issue one
choicequestion toPOST /v1/systemone(model: "jev-latest") with the combo's model list ascriteriaoptions and the request body (or a summarized/redacted form of it) asstate. - Reorder/select the model list based on the returned option + confidence, then fall through the normal fallback chain if the chosen model errors.
- Fail open: any Jev error/timeout/missing
TYPESAFE_API_KEYfalls back to the combo's existing static order (orround-robinif configured) — never blocks a request on Jev being reachable. - New env var:
TYPESAFE_API_KEY(mirrors the pattern used for other provider credentials).
Why this is worth having in 9router specifically
9router already does capability-based reordering (reorderByCapabilities) and a full LLM-judge strategy (Fusion). Jev fills the gap between those two: a cheap, low-latency, purpose-built classifier for "which model should handle this" — on TypeSafe's own numbers, tens to hundreds of times cheaper/faster than using a chat model as the judge for that decision. For a project whose whole pitch is squeezing more useful routing out of free/cheap tiers, an extra routing signal that costs a fraction of a cent and ~100ms seems directly on-thesis.
Offer
Happy to put up a PR for this if the design direction above (new strategy: "jev", hook point in getRotatedModels, fail-open behavior) looks right to the maintainers — just want to confirm alignment before investing the time, since I know the router/executor internals here aren't mine.
(Checked existing issues/PRs for "jev", "typesafe", "systemone" — didn't find a prior request for this.)
Source: decolua/9router