Repository navigation
Conversation
Route clear open/launch commands through TypeSafe Jev via the Gateway evaluation HTTP API before the LLM loop, so "open Safari" skips the slow tool-calling model. High-confidence computer intents bias the system prompt; unparseable open intents constrain tools to the Open skill. Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
🤖 AI review◇ injected env (0) from .env // tip: ⌘ custom filepath { path: '/custom/path/.env' } SummaryAdds a "Jev fast path" that calls TypeSafe Jev's evaluation API to classify voice utterances (open_app / open_url / open_path / computer / other) before the LLM loop, short-circuiting the slow path for clear "open Safari"-style commands, and wires up config, settings UI, and a smoke-test script. Findings[blocker] if (target) {
const handled = await executeOpenTarget({ ... });
if (handled) { return { kind: "handled", ... }; }
// null falls through to hint ← abort + no response, then LLM fires
}After an abort the outer [blocker] [warning] answers: json.answers as EvaluateResult<Q>["answers"],Only const route = answer.choice as DesktopRoute;
if (!DESKTOP_ROUTES.includes(route)) return null; // this guard is fineThe guard saves you here, but [warning] [warning] [warning] include: skillFilter
? (skill) => skillFilter!.includes(skill.id)
: undefined,The [nit] [nit] Questions
|
Treat missing choice probabilities as confident, dim the Settings toggle when no Gateway key is set, and cover multi-word / conjunction extractors. Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Summary
typesafe-ai/jev) via the AI Gateway/v4/ai/evaluation-modelHTTP API (no AI SDK 7 upgrade — keeps the realtime canary intact).open_app/open_url/open_pathcommands with a parseable target skip the language model and run the Open skill directly (still permission-gated). This is the common slow path today when "open Safari" goes through a full vision/tool model.computerintents add a system-prompt bias so the LLM doesn't waste a step onopenApp.skills.jevFastPath, default on). Disabled in the UI when no Gateway key is present; no-ops withoutAI_GATEWAY_API_KEY.Limits (intentional)
Jev cannot drive computer-use clicks/typing (no vision / no free-form tool args). Real multi-step UI control still uses the configured LLM; this PR only accelerates open/launch and steers routing. Mid-utterance speculative open (à la Andy Gao's demo) is a follow-up — this path still waits for endpointing.
Review follow-ups
onDelta/onTool*handlers are the guarded emitters fromindex.ts;buildToolSet({ include })was already used by realtime.probabilities→ treat chosen option as confident (?? 1).Test plan
pnpm typecheckpnpm smoke:jev(local extractors)pnpm smoke:jev --livewith a Gateway key (route latency + labels)