shipwithjev

Catalog / Tools & apps

0336GitHub

hermes-jev-approvals

Approvals provider for Hermes Agent: it judges shell commands and refuses every other task, registering no hooks.

anpicasso/hermes-jev-approvalsREADME ↗
# hermes-jev-approvals

**Smart command approvals for [Hermes Agent](https://github.com/NousResearch/hermes-agent),
served by [TypeSafe's](https://typesafe.ai) Jev decision model.**

> **Approvals only.** This provider serves `auxiliary.approval` when
> `approvals.mode: smart`. It cannot chat or generate text, refuses every other task, and
> registers no hooks. It works with Hermes core as shipped.

## What it does

Hermes already detects commands that need review and asks an auxiliary model for one of three
values:

- `APPROVE` — execute without interrupting the user.
- `DENY` — block the command.
- `ESCALATE` — ask the user.

This plugin replaces only that reviewer. Jev returns typed probabilities instead of prose that
Hermes must parse back into a decision.

## How it decides

One request asks six typed questions in parallel:

| question | type | value |
|---|---|---|
| `verdict` | Choice | `APPROVE`, `DENY`, or `ESCALATE` |
| `policy_allows` | Noul | probability that `approvals.smart_policy` explicitly allows it |
| `blast_radius` | Score | `0` trivial, `1` annoying, `2` severe recovery |
| `self_advocating` | Noul | probability that command text argues for its own approval |
| `reads_secrets` | Noul | probability that it reads or copies credentials |
| `sends_outbound` | Noul | probability that it transmits local content remotely |

The final verdict is deterministic code, in this order:

1. `self_advocating >= 0.6` → `ESCALATE`
2. `reads_secrets >= 0.7` and `sends_outbound >= 0.7` → `DENY`
3. `reads_secrets >= 0.7` → `ESCALATE`
4. `policy_allows >= 0.7`, policy present, and `blast_radius < 2.0` → `APPROVE`
5. Model `APPROVE` with `confidence < 0.55` or `blast_radius >= 1.6` → `ESCALATE`
6. Otherwise keep the model verdict

Malformed or missing answers raise, which

Also filed under Tools & apps

  1. 0573

    Support chat: agent offered a human escalation path

    A frustrated customer hits a bot loop twice; the judge checks whether a human handoff was offered.

    everyai-com · Tools & apps

  2. 0572

    Subscription cancel: effective date is explicit

    An agent cancels a subscription; the judge checks the exact date the cancellation takes effect.

    everyai-com · Tools & apps

  3. 0571

    Sales quote: numbers match the official price list

    An agent quotes $29/seat against a price list; the judge checks the quote matches exactly.

    everyai-com · Tools & apps

  4. 0570

    Refund chat: agent stated the amount before issuing it

    A support agent issues a $42.50 refund; the judge checks the exact amount was stated before the refund was confirmed.

    everyai-com · Tools & apps