jev-tools
Unofficial TypeScript monorepo of Jev tools: a tool-call guard, a GitHub issue triage Action, a bulk JSONL/CSV sorter and a shared client.
Overview
jev-tools is an unofficial set of TypeScript packages built on TypeSafe's Jev. All of them ask narrow questions, branch on the typed answer in code and send anything Jev is unsure about to a human or a larger model. @cmaintz/jev-guard vets an agent's tool calls before they run with allow, block or hold, failing safe on low confidence, missing answers and provider errors, with LangChain JS and Vercel AI SDK adapters.
@cmaintz/jev-triage is a GitHub Action that labels, prioritises, routes and deduplicates issues, sending low-confidence answers to a human label or an LLM. @cmaintz/jev-sort is a CLI and library that streams JSONL or CSV rows through Jev and appends typed columns plus a _confidence field. @cmaintz/jev-core is the shared client with question and answer types, TypeSafe and Cloudflare providers, retries, timeouts and response validation. Each tool needs a Jev key from TypeSafe or a supported provider.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Should this agent tool call be allowed, blocked or held? | allow · block · hold |
| Choice | Which label, priority and route fit this GitHub issue, and is it a duplicate?(inferred) | — |
| Other | User-defined typed columns for each JSONL/CSV row | — |
How it works
- Tool builds state (tool call, issue, or data row)
- Ask narrow typed questions through jev-core
- Branch on answer and confidence in code
- Low confidence goes to a human, hold, or larger model
Strengths
- Fail-safe defaults on low confidence and errors
- Covers agents, GitHub issues and bulk data
- Shared client supports TypeSafe and Cloudflare providers
Caveats
- Unofficial, not affiliated with TypeSafe
- Requires a Jev key for every tool
Getting started
npm install @cmaintz/jev-guard (or npm install -g @cmaintz/jev-sort); reference the triage Action as CMaintz/jev-tools/packages/triage@<tag>.At a glance
- Type
- Library
- Status
- beta
- Language
- TypeScript
- Runtime
- Node / GitHub Action
- Has code
- yes
Use cases and integrations
How curated lists describe it
TypeScript tools built on TypeSafe AI.
wh000wh000/awesome-jev-live
Frequently asked questions
What does jev-guard decide?
Whether an agent's tool call should be allowed, blocked or held, failing safe when unsure.
What does the triage Action do?
Labels, prioritises, routes and dedupes GitHub issues, deferring low-confidence cases.
Which providers are supported?
TypeSafe and Cloudflare, via the shared jev-core client.
Related projects
Free Claude Code skill where Jev sorts and Claude writes: classify, pre-route items so Claude reads only unsure ones, and gate tool calls.
ProjectbetaPythonMoves a coding agent's bulk semantic judgments (triage, tagging, routing) to Jev; an A/B reports 78% fewer tokens at similar accuracy.
ProjectbetaPythonGoogle Sheets custom functions JEV_IF, JEV_PROB, JEV_CHOICE and JEV_SCORE that classify, tag and score cells with Jev.
ProjectbetaJavaScriptMultiplayer GitHub triage dashboard where Jev answers kind, severity, urgency, duplicate and next step per issue.
AppbetaResearch MVP pairing an LLM-authored, revisable ontology with Jev classification, where low confidence triggers ontology revisions.
ServiceresearchPythonelvex blog on wiring Jev into an agent harness as a tool for search, approvals and context, citing 2,000 expense reports in 20 seconds.
Articlediscussion