Skip to content

Decide — gopaljigaur

pydecide is one Python client for typed System One decisions — Choice, Score and Noul — over hosted Jev, OpenRouter's Decisions endpoint, local laya on PyTorch or MLX, a sentence-transformers CrossEncoder, or a JSON-prompted LLM fallback.

Stars
1
Language
Python
License
MIT
Published by
Community
Author
gopaljigaur
Last verified
Oct 2026

This is one of several Jev listings for the same project. The canonical entry is Decide — vsekhar.

About this project

decide is one Python client for typed decisions (Choice, Score and Noul) over any "System One" decision model: TypeSafe's hosted Jev, OpenRouter's Decisions endpoint, the open-weight laya family (PyTorch and MLX), any sentence-transformers CrossEncoder, and a JSON-prompted LLM fallback. The core of the library is the fallback chain: a Client takes an ordered list of these backends and a confidence policy, and if a backend errors or answers with low confidence, the next backend in the chain is tried, so a cheap…

Quoted from the project's README. Read the full README.

Highlights

  • A Client takes an ordered backend list plus a confidence policy, so a cheap local model backs off to a hosted one only when it is unsure.
  • Client.from_env() needs no variables once a local backend is importable; it tries laya_mlx or laya first, then typesafe, openrouter and llm as keys appear.
  • Gate thresholds can be global, per question or per type. Score answers are never gated, whatever a threshold says about "score".
  • meta.route records how the chain went: "laya_mlx:ok", "<name>:error", or "<name>:low_confidence:<question>=<value><threshold>".

Watch out

Local backends are not free: the all extra pulls PyTorch and MLX, about 2 GB, and the mlx extra needs Python 3.11+ — on 3.10 it installs nothing and the laya_mlx backend is simply unavailable. The crossencoder backend cannot be selected from the environment at all; you construct it by hand and pass it into the Client. laya now ships its own laya-serve, so the bundled HTTP server only earns its place when you want several backends, local and hosted, behind one TypeSafe-compatible endpoint. The README calls the JSON-prompted LLM fallback the least trustworthy of the six backends, and the quickstart outputs are from a single local run with no environment variables set. Copy reviewed against the repository README on 2026-10-04, not from running it.

Questions about this entry

Short answers drawn from the linked project or page.

More Jev resources like this

4GitHub stars
Framework-agnostic guard layer that puts Jev in front of an agent's tool calls: a Choice risk tier, a Noul destructiveness check and a Score blast radius decide allow, deny or ask.
Jev Practices & Patterns#community#awesomejev#catalog-import
1GitHub stars
Runnable benchmark putting Jev, jev-preview and Claude Sonnet 5 through one real agent task — classifying a tool call as readonly, destructive, privileged or exfiltration — on the same 60 labelled cases, with raw per-call results committed.
Jev Practices & Patterns#community#awesomejev#catalog-import
16GitHub stars
Vendor-neutral harness that tests whether Jev reranking improves a small RAG stack, using frozen hybrid BM25 plus BGE-M3 candidates and isolating retrieval, rerank, and generation stages.
Jev Practices & Patterns#community#jevbest#catalog-import
17GitHub stars
Local offline System One server speaking the hosted /v1/systemone wire format, so existing SDK code runs unchanged against small on-machine models.
Jev Practices & Patterns#community#awesomejev#catalog-import
8GitHub stars
Line-oriented semantic search that adds a Jev meaning pass over your own shortlisted files next to exact search. Real search is the default with a key, while dry-run previews the payload offline with no network or credentials.
Jev Practices & Patterns#community#awesomejev#catalog-import
7GitHub stars
Four read-only MCP tools that rank files, cut a file down to the relevant part and pick from long lists, measured on a frozen SWE-bench Lite split.
Jev Practices & Patterns#community#awesomejev#catalog-import

From the Jev guides

Original write-ups on what this entry is for.

Most Jev accuracy problems are state problems. What belongs in a state, what is a pre-made judgment to leave out, and why naming the slice you ask about matters more than the wording.
Jev Practices & Patterns#state#design#primitives
Read article
A Noul returns one number and no separate confidence. How to read the value, pin its boundary with criteria, split compound questions, and set a per-action threshold that matches the cost of being wrong.
Jev Practices & Patterns#noul#primitives#confidence
Read article
A Score is a weighted position, not a ruler. Why the number can land between levels, why levels are judged separately, and how to combine several atomic scores in code instead of one crowded rubric.
Jev Practices & Patterns#score#primitives#scoring
Read article
Back to all resources

From the Jev community

Posts from builders shipping with Jev right now.

Follow @typesafeai