Skip to content

jevqueue 0.3.0: one project, one install

Choose a tag to compare

@iamvazghen iamvazghen released this 29 Oct 17:01
· 5 commits to main since this release

One project, one install

The decision layer and the plugin are the same package now.

pip install jevqueue     # no dependencies

There is no separate library to install alongside the plugin, and no setup step. The judgment
model, the typed questions, the distrust layer, the guard order, the state projection, the
offline baseline and the five framework adapters are all in jevqueue/, and the plugin surface
-- hooks, commands, skills, the MCP server, the command line -- sits on top of it.

The package has no required dependencies

The offline decision layer is pure standard library. httpx is needed only for the hosted
model, and it is an extra:

pip install "jevqueue[hosted]"

A plugin that needs an install step before it works is a plugin people do not install.

The floor is now a floor, not a fallback

The catastrophic-operation list used to run only when the decision layer was unavailable,
which meant a real model could overrule it -- a decision layer that shrugged at rm -rf /
would have been allowed to.

It is consulted before the decision layer now, always. And it is also what stands in when
the decision layer cannot be reached, which is exactly when you want it.

Same list. Different place in the order.

Two different things, two different names

The library's Decision (an action, a confidence, a risk) and the plugin's verdict (allow or
refuse, with a reason) are different things with different jobs, and giving them the same name
invited confusion. The hook engine is jevqueue/gate.py and the floor is
jevqueue/policy.py.

The benchmark came across too

It is the best artefact in the project, so it did not stay behind. bench/ holds the labelled
corpus, the runner and a published result, with a test that fails if the code drifts away
from the published numbers.

routing accuracy      100.0%  (70/70)
enforced rate          71.4%  (50/70)
decision_ms p50/p95    0.395 / 0.496

What a plugin user does now

Nothing. Install it and the decision layer is already there. /jevqueue:setup no longer
installs anything: it checks the installation, walks through the two settings, and runs a
self-test that proves the queue refuses what it should.

claude plugin marketplace add iamvazghen/jevqueue
claude plugin install jevqueue@jevqueue

258 tests, offline: no network, no API key, no provider.