#4125·9router

Feature request: Jev (TypeSafe System-One) as a combo routing strategy alongside Fallback / Round Robin

Author: kweinerCreated Sep 17, 2026Updated Sep 17, 2026

Summary

Add Jev (TypeSafe AI's "System One" decision model) as a third combo routing strategy, alongside the existing fallback and round-robin (comboStrategy, see open-sse/services/combo.js).

Motivation

Today a combo's model order is either static (fallback) or rotated blindly (round-robin). handleComboChat already has an autoSwitch step that reorders rotatedModels by heuristically detected required capabilities before trying each model in sequence.

Jev is built for exactly this kind of decision: given a request/state and a fixed set of typed options, it returns a choice answer with a calibrated confidence in ~100–500ms for ~$0.042/M input tokens, free output — cheap and fast enough to run per-request ahead of the actual model call. That makes it a natural fit as a routing strategy rather than a chat-completions provider (its endpoint is POST /v1/systemone, not /v1/chat/completions, so it can't be added as a normal model/provider the way other 40+ providers are).

Proposed design

  • New comboStrategy value, e.g. "jev", selectable per-combo the same way fallback/round-robin are today.
  • On request, send a single choice question to POST https://api.typesafe.ai/v1/systemone (model jev-latest): state = relevant request signals (prompt, detected capabilities, recent error/latency stats per model), options = the combo's model list. Float the returned choice to the front of rotatedModels, same insertion point as the existing capability-based autoSwitch reorder — the rest of the list stays as fallback order.
  • Fail open: any Jev error, timeout, or missing TYPESAFE_API_KEY falls straight back to today's fallback behavior for that request — a routing decision must never block or fail a turn.
  • Config: opt-in per combo, TYPESAFE_API_KEY env var, and a latency budget (e.g. skip the call and fall back if it hasn't returned within N ms) so it can't add unbounded tail latency to every request.

Ask

I didn't find an existing issue for this (searched jev, typesafe, systemone, routing strategy). If a maintainer is aligned on the shape above (or wants a different insertion point/config surface), I'm happy to open a PR implementing it.