Elyra
Elyra The coding agent eTerm The terminal that knows where each command ends Starf An activity monitor for Apple silicon that never invents a number e The native code editor Elyra Grove Native local development environment Askr The real server for Laravel & PHP Elyra Framework Rust + Svelte 5 framework for desktop apps Elyra Conductor Local project conductor Elyra SQL Server MySQL-compatible SQL server in Rust Elyra Félagi Agents as teammates on one board Elyra SQL Client Native desktop SQL workbench Elyra SQL Anywhere Replication-ready SQL engine Elyra Sjá SEO & GEO workspace for macOS Elyra DataGrid Server-driven data grid for Laravel
Development
Development
Release notes
Changelog
Elyra
Jev decision tools

Jev decision tools

Calibrated yes/no, choice and score judgements from TypeSafe Jev through OpenRouter — probabilities instead of prose, about a second and $0.00002 a call.

TypeSafe Jev decisions for Elyra -- calibrated yes/no, choice, and score judgements through OpenRouter.

Jev is a decision model, not a chat model. It never generates text. You give it a piece of content (state) and one or more typed questions, and it returns probabilities. A call takes about one second and costs roughly $0.00002.

Install

elyra install npm:@elyracode/jev-tools

Requirements

An OpenRouter API key. Either log in with /login and pick OpenRouter, or set OPENROUTER_API_KEY. The extension reuses whatever key Elyra already has for the openrouter provider.

Tools

Tool Description
decide Ask Jev one or more questions about a state. Question types: noul (yes/no), choice (pick one), score (ordinal scale). Returns probabilities, confidence, and usage.

Commands

  • /jev -- show model, endpoint, key status, and bash gate state
  • /jev gate on|off -- toggle the bash gate for the current session

Bash gate (opt-in)

When enabled, every bash tool call is first sent to Jev with the question "would running this command destroy data or make a change that is hard to reverse?". If the probability is at or above the threshold, Elyra asks you to confirm before running it. In non-interactive mode (print, RPC) the command is blocked instead.

Enable with elyra --jev-gate, JEV_BASH_GATE=1, or /jev gate on. Off by default because it adds about one second of latency to each bash call.

If the key is missing or the API fails, the gate logs a warning and lets the command through rather than blocking all shell access. It is a second opinion, not a security boundary.

Usage

> Is this diff a breaking change? Ask Jev before you answer.
> Classify these 20 log lines by severity using decide, then only show me the ones rated high or critical.
> Before running that migration, use decide to check if the command is destructive.

Question types

noul -- yes/no with a calibrated probability:

{ "name": "refund", "type": "noul", "instructions": "Is the user asking for a refund?",
  "criteria": { "true": "explicitly wants money back", "false": "anything else" } }

choice -- pick one option, get the full distribution:

{ "name": "route", "type": "choice", "instructions": "Who should handle this?",
  "criteria": { "code": "write or change code", "research": "needs web lookup", "other": "none of the above" } }

score -- ordinal scale, 2-10 labels from low to high:

{ "name": "severity", "type": "score", "instructions": "How severe is this log line?",
  "criteria": ["debug", "info", "warning", "error", "critical"] }

Writing good questions

Jev reads criteria literally and does not infer intent beyond what is stated.

  • Describe observable conditions, not goals. Spell out both sides for noul via criteria.
  • Make choice options exhaustive, or add an other option.
  • Keep state to what the questions need. The context window is about 32K tokens.
  • Ask several questions in one call when they concern the same state; the cost is the same.

Configuration

Variable Default Purpose
OPENROUTER_API_KEY -- API key, if not stored via /login
JEV_MODEL ~typesafe/jev-latest Model slug sent to the endpoint
JEV_BASE_URL https://openrouter.ai/api/alpha/decisions Override if OpenRouter moves the endpoint out of alpha
JEV_BASH_GATE off Set to 1 to enable the bash gate at startup
JEV_BASH_GATE_THRESHOLD 0.7 Probability (0-1) at or above which the gate intervenes

Notes

  • The decisions endpoint is an OpenRouter alpha API. The request contract here is derived from public community clients, not from an official specification, and may change.
  • Retries with backoff on 429/5xx, up to three attempts. Requests time out after 60 seconds.
  • Unofficial community integration. Not affiliated with TypeSafe or OpenRouter.