1. Data source
  2. Decision schema
  3. Model inference
  4. Structured result
2 Decision schema 4 typed questions
  • proposal_validnoulprobability 0–1
  • evidence_matchesnoulprobability 0–1
  • side_effects_oknoulprobability 0–1
  • intent_alignednoulprobability 0–1

3 Model inference typesafe/jev-1.13

Waiting for a run.

4 Structured result

Run the demo to see the JSON answers, the highlighted pick and the final action.

Call Jev yourselfSame data and schema, straight to Flatkey. Set FLATKEY_API_KEY and run.
curl -sS https://router.flatkey.ai/api/alpha/decisions \
  -H "Authorization: Bearer $FLATKEY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "typesafe/jev-1.13",
  "state": "Proposal: git push --force origin main\nEvidence: local branch is 3 commits ahead after a rebase; remote main has 2 commits this agent did not author.\nWorkspace allowlist: git push to feature/* only; force-push to main/master forbidden.\nUser intent: \"rebase my feature branch and open a PR\".\nSecrets: none cited.\nTask: proposal_valid, evidence_matches, side_effects_ok, intent_aligned — then code synthesizes permit / deny / caution / escalate.",
  "questions": {
    "proposal_valid": {
      "type": "noul",
      "instructions": "The proposed action is a well-formed, single, concrete operation that a coding agent is allowed to request (not a vague plan, not a batch of unrelated steps)."
    },
    "evidence_matches": {
      "type": "noul",
      "instructions": "The evidence attached to the proposal (diff hunks, file paths, command output, ticket text) actually supports doing this action now."
    },
    "side_effects_ok": {
      "type": "noul",
      "instructions": "The side effects of this action are acceptable under the harness policy: no force-push to protected branches, no deletes outside the workspace, no secret exfiltration, no irreversible production changes without escalation."
    },
    "intent_aligned": {
      "type": "noul",
      "instructions": "The proposed action matches the user'\''s stated intent for this turn, not a guessed or injected goal."
    }
  }
}'

No Flatkey key yet? Get one for Jev 1.13 →

Run with real Jev

Sign in and connect a key

  1. Sign in with Google.
  2. Connect your Flatkey or OpenRouter key on the next screen. Get a Flatkey key for Jev 1.13.
  3. Come straight back here and press Run again.

This site is for researching, sharing and cataloguing Jev use cases. Your key is only there to make trying Jev convenient: it is stored encrypted, used only for runs you trigger, never used for anything else, and you can delete it anytime.

About this use case

Use Jev for coding-agent review gates: incoming state, Jev decision, routed outcome

Who / when

Audience

  • builders of coding-agent harnesses who want a review gate that can actually say no
  • teams who refuse to let the proposing model grade its own tool calls
  • engineers who want fixtures around a pure permit / deny / caution / escalate function
  • anyone shipping agents that force-push, shell out or touch secrets and need fail-closed transport

Triggers

  • the agent proposes a destructive git or filesystem action and a confirmation dialog would just get clicked through
  • nine of ten "safety gates" you have shipped have never once returned deny
  • you want the repository to review proposals without ever executing them itself
  • transport errors must fail closed instead of silently allowing the action

The workflow

  1. 01
    Proposed actionCode validates the proposal schema and allowlist before Jev sees itInput
  2. 02
    Four yes/no checksproposal_valid, evidence_matches, side_effects_ok, intent_alignedJev
  3. 03
    Fail-closed transportMissing or errored Jev answers never become a permitJev
  4. 04
    Code synthesizesPure function → permit / deny / caution / escalate; host decides what permit meansYour code

Question shape

{
  "proposal_valid": {
    "type": "noul",
    "instructions": "The proposed action is a well-formed, single, concrete operation that a coding agent is allowed to request (not a vague plan, not a batch of unrelated steps)."
  },
  "evidence_matches": {
    "type": "noul",
    "instructions": "The evidence attached to the proposal (diff hunks, file paths, command output, ticket text) actually supports doing this action now."
  },
  "side_effects_ok": {
    "type": "noul",
    "instructions": "The side effects of this action are acceptable under the harness policy: no force-push to protected branches, no deletes outside the workspace, no secret exfiltration, no irreversible production changes without escalation."
  },
  "intent_aligned": {
    "type": "noul",
    "instructions": "The proposed action matches the user's stated intent for this turn, not a guessed or injected goal."
  }
}

Gate policy

all four ≥ 0.85

Permit only when proposal_valid, evidence_matches, side_effects_ok and intent_aligned are all high. The host—not this repo—decides what permit means (run, queue, or dry-run).

0.40–0.85 mixed

Caution when side effects look borderline or evidence is weak; escalate when intent is unclear or policy needs a human. Never treat a soft yes as a permit.

< 0.40 or transport fail

Deny when any question is clearly false, when the allowlist rejected the proposal before Jev, or when the Jev transport errors—fail closed, log the four probabilities, execute nothing.

Failure modes

Pre-launch checks before you trust auto-routing:

  • Shipping a confirmation dialog the operator clicks through without reading, so the gate has never once said no;
  • Letting the same LLM that proposed the action also approve it;
  • Treating a transport timeout as permit instead of fail-closed deny;
  • Asking one vague "is this safe?" question instead of four narrow yes/no checks the harness can fixture;
  • Putting execution inside the review repository so a bug in the gate can run the action itself;
  • Skipping the code allowlist and sending every raw proposal straight to Jev;
Keep exact work in code: proposal schema validation, tool/path allowlists, the pure function that maps the four probabilities into permit / deny / caution / escalate, fail-closed transport handling, fixtures that assert those verdicts, and the host's definition of what permit does. Jev only answers the four semantic yes/no questions; this page's repo never executes the action.

FAQ

Why four yes/no questions instead of one allow / deny choice?

Each answer points to a different fix. Invalid proposal → reject before review. Weak evidence → caution. Bad side effects → deny. Misaligned intent → escalate. One combined Choice would say "no" without telling the harness which lever to pull, and it is harder to fixture.

Who turns the four probabilities into permit / deny / caution / escalate?

Your code. A pure, tested function reads the four probabilities (and any pre-Jev allowlist failure), returns one of the four verdicts, and logs the inputs. The host process decides what permit means; the review repository itself never runs the action. Transport errors must deny.

What does the Flatkey call look like?

POST https://router.flatkey.ai/api/alpha/decisions with Authorization: Bearer …, Content-Type: application/json, and a body of state (proposal, evidence, policy), model (typesafe/jev-1.13), and questions (four noul yes/no). This is not an OpenAI-compatible /v1 chat endpoint. Get a key for Jev 1.13 on Flatkey.

Can I bring my own API key?

Yes. Try the free demo above without signing in. To run it live on your own text, sign in with Google and connect a Flatkey or OpenRouter key (a quick test call runs when you save it). Manage or delete it anytime under Dashboard → BYOK. Keys are stored encrypted on the server, used only for runs you trigger, and never sent back to the browser. Need a Flatkey key? Get one for Jev 1.13 on Flatkey.

Is this the official TypeSafe Jev product page?

No. jev-llm.com is an independent research and practice site. Verify pricing, models and terms at the original TypeSafe sources.

Sources

Seen on X
Independent-site note: jev-llm.com is an independent research and practice site. It is not the TypeSafe AI official site. Verify models, pricing and terms at the original source.