moqi-jev-loop
Manifest validThe /JevLoop control panel for moqi, on top of dsh-jev-loop.
moqi-jev-loop
The /JevLoop control panel for moqi,
on top of dsh-jev-loop.
It is a thin adapter: moqi brings the tuiHost seam, dsh-jev-loop brings the
jevLoop service, and this package turns that service into rows and actions.
It judges nothing itself and never applies where either service is absent.
Published to npm as
moqi-jev-loop. This repository
carries the dsh-plugin topic — the
whole of the dshfind listing mechanism: the marketplace
indexes public repositories by that topic and syncs daily, so there is no
listing step per release.
Install
dsh plugin --profile <profile> add dsh-jev-loop
dsh plugin --profile <profile> add moqi-jev-loop
Both bundles are needed — the core mounts the gates, this one mounts the panel.
With moqi running, /JevLoop then joins the command palette.
The panel
The adapter registers a tuiHost panel, so /JevLoop joins moqi's command
palette and nothing about it lives in moqi's core: moqi only knows how to draw
rows and raise a masked prompt. The panel lists the API key and the four gates
with their live state; enter toggles a gate, the change applies immediately,
and it persists to $DSH_HOME/jev-loop.json.
The API key row opens a masked prompt: the draft is never rendered and never
touches the composer, transcript, or shell history. The value is written to the
Harness credential store (ctx.credentials, ref TYPESAFE_API_KEY) and the
core picks it up on the next judgment — no restart. The row shows whether a key
is live and where it came from (config, credential:file,
env:TYPESAFE_APIKEY), never the value. A Clear API key row appears once one
is set.
Key resolution order: explicit apiKey config, then the credential store, then
TYPESAFE_API_KEY / TYPESAFE_APIKEY in the environment. The gates are
registered even with no key, so setting one activates them immediately.
Test it
The throwaway profile composes dsh-base, the fixed moqi TUI checkout, the
core, and this adapter:
npm install # typescript + @types/node + dsh-jev-loop
npm run link-harness # symlink the installed harness's @deepseek-ai packages
npm run build
npm run install-profile -- jev-dev
TYPESAFE_APIKEY=… dsh --profile jev-dev
install-profile links the moqi TUI from a sibling ../moqi checkout by
default (MOQI_ROOT overrides it) and the core from a sibling ../dsh-jev-loop
checkout when one is built (JEV_LOOP_CORE_ROOT overrides it), falling back to
the published dsh-jev-loop on npm when it is not.
Inside the app /JevLoop toggles the gates, and ~/.dsh/jev-loop.jsonl records
every judgment.
Layout
src/panel.ts rows and actions over the core's service
src/index.ts the tuiHost seam
tests/ panel.ts driven with a fake service
scripts/ harness linking and the throwaway profile installer
Docs
The module boundary and the generated whiteboard are documented in docs/ARCHITECTURE.md.
Comments
Loading…
Similar plugins
by JWE24-code
Jev (TypeSafe System One) judgments at the DeepSeek Harness agent-loop gates. No UI dependency.
★ 0
MIT
TypeScript
Oct 1, 2026
dsh plugin --profile web add dsh-jev-loopby jackie-cqz
DeepSeek Harness plugin for TypeSafe Jev: typed decisions, configurable guardrails, and Web UI result cards.
★ 8
MIT
TypeScript
Oct 2, 2026
dsh plugin --profile web add dsh-jev-pluginby noetion
DSH bundle that registers jev_ask for TypeSafe Jev noul, choice, and score answers.
★ 3
↓ 388/wk
MIT
TypeScript
Sep 29, 2026
dsh plugin --profile web add dsh-jevby ManoloRemiddi
Responsive steering during model output in DeepSeek Harness; preserves queued follow-ups and running tools.
★ 1
MIT
JavaScript
Sep 14, 2026
dsh plugin --profile web add dsh-steeringby a903067276-rgb
Reliable todo panel for DeepSeek Harness (dsh) web: survives restarts, completion verified against evidence paths
★ 1
↓ 180/wk
MIT
JavaScript
Sep 15, 2026
dsh plugin --profile web add dsh-todo-guardby kaijia323
TypeSafe Jev (System One decision model) as a native jev_decide tool plugin for DeepSeek Harness
★ 0
MIT
JavaScript
Sep 20, 2026
dsh plugin --profile web add dsh-plugin-jev