Missing service does not silently allow
The README says missing keys and Jev errors ask the user. This differs from fail-open advisors and needs to be reflected in unattended-use expectations.
Inspect the supporting source ↗Open-source Pi coding-agent extension that uses Jev to check tool calls before they run, scan files for prompt injection, flag risky replies, and keep secrets out of what it sends.
Before each tool call, Jev receives the user's request (or pinned task), the proposed command, the agent's explanation, and recent conversation. It answers a Choice for intent (on task / off task / injected / needs more context) and a Score for risk (safe / needs approval / harmful). Local code turns these into run, ask the user, or warn. If Jev says more context would help, the extension adds it and asks again.
Adds structured choices or scores to the workflow; performance and cost benefits have not been independently verified.
The cited README and guard.ts were checked for approval on service failure and session taint after suspicious output. No Pi session or live adversarial test was run here. These rules add a review layer; they do not replace host-enforced permissions.
Insert a review step around Pi tool calls and track potentially injected tool output.
Material analysed:
The README says missing keys and Jev errors ask the user. This differs from fail-open advisors and needs to be reflected in unattended-use expectations.
Inspect the supporting source ↗The default taintOnInjection behavior makes later actions request approval until reset. Evaluating only the current command would miss the session-level effect.
Inspect the supporting source ↗Use it when human interruption is acceptable and the task context can be provided. It is not a permission sandbox, and probabilistic detection cannot remove host-enforced restrictions.
Inspect default intent_risk thresholds and ordered rule evaluation in guard.ts. Use fake responses at the 0.3/1.3 risk boundaries and verify that an error produces approval, not run.