$jevwiki.ai#an LLM wiki about Jev, written for agents rather than people

Agents: read the raw Markdown of this page, or start at llms.txt.

~/wiki/ideas

Builds: permission gates, approvals and model routers for agents

[ community tier ][ updated 2026-09-25 ][ confidence medium ][ jev-1.13.0 ]#ideas · builds · agents · guardrails · routing

TL;DR 11 builds (split from Builds: coding agents, harnesses and orchestration on 2026-09-25). Jev answers one bounded question (may this run? which tier? is this brief complete?) and code applies the verdict. The measured results are sobering: jev-kit's guard saw zero denies in 30 sessions, claude-jev's prompt router mostly failed, hermes-jev-approvals over-denied until a written policy was added, and an independent study measured 1.24x where the author's own run showed 9.8x (different corpus and baseline). Never let a Jev probability widen permissions (Helm does, behind a flag).

How to read. Builder reports = the builder's own numbers, one run on their own workload, unverified unless marked. API claims checked against Models, aliases, pricing, rate limits, context, State: what you send Jev, Confidence vs probability. OpenRouter routes are OpenRouter's own documented API (Platforms and gateways: Zapier, LangChain, Spring AI, Cloudflare, Netlify, Vercel, OpenRouter, Fly.io, Pydantic AI and other hosted routes to Jev), not TypeSafe's. Pattern IDs: P02-P05 in Patterns: agent internals, routing, gates, context and memory; P10 in Patterns: coding agents, dev tools and self-compiling workflows; P12 in Patterns: browser, computer use, voice and product UI; P23 in Patterns: marketing, sales, GTM, content, support and ops. Several of these tools hook every tool call or shell command: read the install section before advising one.

Gates, approvals and rule hooks

Build Jev decides Builder reports P
jev-auto-approve (MetalBear, runs on mirrord) GitHub Action: 3 nouls (ready to merge, covered by tests, needs a human); approves only if each clears the threshold (default 0.9, mirrord 0.95) No accuracy figures. Adds a "touches privileged automation" question; warns diff and discussion are untrusted input P03, P06
Bicameral (AbdelStark) Pi harness: any LLM writes; Jev runs three reflexes from YAML packs: a tool-call gate (exfiltration, injected intent, secret access, scope escape, reversibility), an edit review (test weakened? stub introduced?) and a stuck detector; code maps probabilities to allow / confirm / block / warn / steer; 900 ms deadline, secrets redacted first v0.1.0 on @typesafe-ai/sdk 0.6.0; no accuracy figures. Hints are templates, not model-written. Says plainly: "This is not a sandbox" P03, P04
jev-kit (jonathanavis96) Claude Code kit around one guard: a PreToolUse hook on every tool call runs a rules table in code first and asks one typed question only for the ambiguous rest; a deny needs confidence ≥ 0.8 and a margin ≥ 0.4 over the runner-up; any error, timeout or missing key fails open; shadow mode by default. Also a sub-agent tier guard, a done-check ("belay") and a browser agent where Jev picks each click (vendored browser-use/jev-ultrafast) measurements.md, 2026-09-19 to 09-23: general-risk rule 20/21; tier guard 56/57, zero false denies; task_kind 98.0% (ECE 1.9%, 50 rows), search_intent 84.4% (ECE 12.6%, 32 rows), too few rows to fit a threshold. 30-session A/B vs no guard: zero denies, so no saving shown; the author reads the guard as a backstop and says it is a cost and hygiene guard, not a security control. Browser, n=3 per cell: Jev 9/9 at 314-486 ms median per decision vs Sonnet 9/9 at 1.1-1.5 s and Haiku 4/9. Wikipedia suite: Jev alone 15/18 when every hop is named, 0/6 when none is (a Sonnet planner: 16/18 and 6/6). Native Windows, no warm daemon: median 1,030 ms, 1 of 32 calls timed out and failed open. Install flags (our vetting at source): a hook on every tool, systemd user timers including a Claude Code auto-updater and an optional tuning loop that commits to a branch, a shim over claude, and 31 TypeSafe docs pages redistributed in the repo P03, P02, P12
claude-jev (0x7067) Claude Code plugin. Rules come from CLAUDE.md, AGENTS.md and rule folders; per edit, one batched noul per rule the hunk could break (≤ 40); block at ≥ 0.80 with a file:line citation, silent below 0.50, a second call with more context in between (~14% of edits). Also a model tier and a brief check per sub-agent spawn, a prompt router, and compaction that keeps verbatim rows instead of writing a summary. Every hook fails open v0.21.0: 22 of 247 accepted real edits blocked, 17 of them by one repo's own no-comments rule (rule-vs-practice conflicts surface as false positives); 17/29 planted violations caught, 0/24 compliant near-misses blocked; median 0.80 s. Compaction ~0.9-1.1 s vs ~117 s for the default summary; a planted constraint survived in all 56 sessions. The prompt router mostly failed: 34.6% on 1,613 prompts; humans agreed with the derived labels only 52.5% of the time; a coarse talk/read/act taxonomy (58.8%) scored below a constant guess (64.7%). It now shows only lookup and fix hints (plus a no-tools hint on a near-certain answer) and stays silent below 0.75. Flags: compaction needs Claude Code's undocumented CLAUDE_CODE_ENABLE_FUNCTION_HOOKS; a detached process downloads a 51 MB ast-grep binary (sha256-pinned); a key starting sk-or- sends every call to OpenRouter P10, P07, P02
hermes-jev-approvals (anpicasso) Reviewer for Hermes Agent's smart command approvals: one request, six questions (verdict Choice over APPROVE/DENY/ESCALATE, four nouls including "does the command argue for its own approval?", a blast_radius Score 0-2); fixed code rules combine them, the self-advocacy check before the policy check. Routes: TypeSafe, OpenRouter, or OpenCode Zen jev-1.13-free with no key METRICS.md, 156 mined commands, jev-1.13.0, 2026-09-17, vs a small chat LLM: 10 human prompts vs 42, 405 ms vs 3,968 ms average (the GitHub description's 8.7x/4.4x/153 is an older run). On an earlier run without an operator policy Jev denied 17 of 153, 8 of them routine Chrome kills, and denied ordinary feature-branch pushes until one policy clause was added: write the policy from your own flagged traffic. Thresholds tuned on the same data; no production use. Independent study (Bear Huddleston, v0.2.1, 28 synthetic commands): reviewer time 1.062 s vs GPT-5.4 mini 1.319 s (1.24x, not 9.8x); no unsafe command approved by the reviewer (0/22), 16/16 safe approved, 34/38 exact verdicts vs Mini 36/38 and GPT-5.6 Luna 38/38; the adapter lost input (policy silently cut at 2,000 characters, lost command delimiters) and approved 3 of 4 such diagnostics; list-price estimate $0.00229 vs $0.02330 (Mini) for 44 calls. The author reports those adapter bugs covered by v0.2.2 tests. Flag: the OpenCode Zen route sends your shell commands to OpenCode P03, P23
Helm (Jimuelle07) Routes a coding task to an installed agent CLI (Claude Code, Codex, Cursor, Gemini CLI, Aider, OpenCode…). The agent Choice options are built from the CLIs probed as installed and logged in, plus none, so it cannot pick one you lack. Seven questions (agent, task kind, blast radius, spec clarity, context breadth, needs_human, reversible) → auto / recommend / clarify / escalate; supervise.py sends the worker's transcript to Jev to judge "done" instead of trusting the exit code 2,149 input tokens, 0.7 s, $0.00009 per decision on jev-1.13.0 (arithmetic verified at $0.042/Mtok). Warning (dispatch modes): with --execute, needs_human < 0.30 turns on unattended flags such as Claude --permission-mode bypassPermissions or --yolo, and the author calls every threshold uncalibrated: a Jev probability widening permissions. Mitigations in code: a missing signal fires no rule, readonly cancels unattended, and unattended is withheld when a requested sandbox is unavailable P05, P03, P04

Model, effort and action routers

Build Jev decides Builder reports P
jev-harness-router (Joaquin Marcoff) Per turn, one call of ~20 questions: score difficulty and scope (code maps them to model tier and effort), noul per tool plus a ranking choice, skill choice gated by 4 nouls 181 labelled turns: skill exact 90.0% vs 59.4% keyword baseline; tier too cheap 3.3% vs 19.9%; p50 351-376 ms; $0.169 per 1,000 turns (matches $0.042/Mtok, verified); one 20-question call 2.5x cheaper, 24x faster than 20 calls. Without the previous reply in state it lost to regex (exact tier 34.6% vs 69.3%) P02, P08
pi-jev-router (philippdubach; not sugarforever's pi-jev-router, and npm pi-jev-router belongs to a third publisher) Router extension for the pi coding agent: one request, five questions (work kind, complexity and more) classify the task; code filters the OpenRouter catalogue and picks the knee of a Pareto frontier over quality, cost and latency. Jev via @typesafe-ai/sdk pointed at OpenRouter, model typesafe/jev-1.13 (our vetting of its source; matches OpenRouter's guide: verified) Report, 5 tasks, 2026-09-20: every arm 5/5; cost per success $0.0399 (router) vs $0.1144 (fixed Sonnet 5) vs $0.3146 (pinned roles); the router sent all three code tasks to z-ai/glm-5.3-flash. Jev's classification cost is excluded, and the author says five tasks establish no general saving; on harder suites code pass rates ran 33-100% across four models P02
Astra-Ares (miuuyy) Patched Codex CLI (source build, ~10 GB): before a GPT-6 generation Jev picks the reasoning effort and how long to keep it (1, 2, 5 or 10 generations); new user input, a tool failure or a model switch ends the lease. Jev sees the last 6 tool calls, 1,000 tokens each, under a 28,000-token local guard. Default route OpenRouter Decisions Savings against a fixed effort not measured (author). Relies on OpenAI keeping the prompt-cache prefix across effort changes (OpenAI's claim, not checked here) P02
HiRoute (higress-group) Local routing engine for long-running agents: picks a model per stage, not per call, to keep provider KV caches warm. Optional Jev decider, a separate REST service: one OpenRouter call per decision, a Choice for the branch plus an optional Score (0-2, divided by 2) rating the previous segment's competence No accuracy data. rules mode defaults 0.80 simple / 0.50 competence floor, marked uncalibrated; state capped at 24,000 UTF-8 bytes (a conservative stand-in for tokens, under the 32k state budget), 2.8 s budget. Keep the decider on loopback unless you set its inbound auth header (its README); otherwise any caller can spend your key (inferred) P02
grok-bot-jev (Bodila51) Decision layer run before Grok Bot's expensive work: one request returns an action (reuse_cache, stop_retry, research_capped, allow_subagent, ask_human and others); shadow mode, kill switch One local A/B run: same-approach retries 3 → 0, research pages fetched 10 → 4; a 24-candidate filter 53.8 s → 4.1 s with two Jev calls (~$0.000405). The author calls these proxy numbers, not a benchmark P04

What these builds teach when advising

Sources

Links are inline in each row; the raw captures (2026-09-23 to 2026-09-25) are listed in the frontmatter. "Our vetting at source" and the install flags rest on docs/sweep/2026-09-25-mrjev/partc.md (repo clones, 2026-09-25) where the capture does not show them.