# alex314618-create/jevrev architecture

> Architecture diagram of the GitHub repository alex314618-create/jevrev, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alex314618-create/jevrev
- Repository: https://github.com/alex314618-create/jevrev

## Overview

JevRev is a decision layer alongside a host LLM agent, exposed through a CLI/JSON protocol and a human-facing TUI. The main workflow explores candidate approaches (Sift), evaluates probe evidence and chooses a direction, then audits successive rounds of work (Loop); Long independently monitors extended sessions for risks. The README documents these product stages, while sampled source confirms selected CLI, evidence, audit, persistence, and TUI interactions. Some subsystem wiring is therefore shown only where supported by those excerpts or documentation.

Main entry points: [`src/cli.ts`](https://github.com/alex314618-create/jevrev/blob/main/src/cli.ts) (CLI and JSON), [`src/long/store.ts`](https://github.com/alex314618-create/jevrev/blob/main/src/long/store.ts) (Event journal), [`src/workflow/campaign.ts`](https://github.com/alex314618-create/jevrev/blob/main/src/workflow/campaign.ts) (Probe campaign), [`src/loop/commands.ts`](https://github.com/alex314618-create/jevrev/blob/main/src/loop/commands.ts) (Loop commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Host interface"]
  node_cli["CLI and JSON<br/>[cli.ts]"]
end

subgraph group_sift["JevSift"]
  node_activation["Shadow activation<br/>[activation.ts]"]
  node_questions["Judge questions<br/>[questions.ts]"]
  node_judge["Jev judge<br/>[judge.ts]"]
  node_policy["Sift policy<br/>[policy.ts]"]
  node_campaign["Probe campaign<br/>[campaign.ts]"]
  node_evidence["Probe evidence<br/>[evidence.ts]"]
  node_decision["Candidate decision<br/>[decide.ts]"]
end

subgraph group_loop["JevLoop"]
  node_evidence_recorder["Command recorder<br/>[recorder.ts]"]
  node_evidence_store[("Evidence bundles<br/>[store.ts]")]
  node_loop_commands["Loop commands<br/>[commands.ts]"]
  node_auditor["Round auditor<br/>[auditor.ts]"]
  node_planner["Next action<br/>[planner.ts]"]
  node_loop_store[("Loop state<br/>[store.ts]")]
end

subgraph group_long["JevLong"]
  node_long_commands["Long commands<br/>[commands.ts]"]
  node_normalizer["Event normalization<br/>[normalize.ts]"]
  node_long_store[("Event journal<br/>[store.ts]")]
  node_signals["Risk signals<br/>[signals.ts]"]
  node_long_policy["Alert policy<br/>[policy.ts]"]
  node_long_watch["Session watch<br/>[watch.ts]"]
  node_bridge["Loop bridge<br/>[bridge.ts]"]
end

subgraph group_view["Session view"]
  node_tui["Terminal cockpit<br/>[app.ts]"]
  node_tui_sessions["Session discovery<br/>[sessions.ts]"]
  node_tui_store[("View preferences<br/>[store.ts]")]
end

node_agent(("Host agent"))
node_jev(("Jev service"))

node_agent -->|"submits requests"| node_cli
node_cli -->|"evaluates request"| node_activation
node_cli -->|"builds campaign"| node_campaign
node_campaign -->|"filters candidates"| node_policy
node_campaign -->|"prepares evaluations"| node_evidence
node_evidence -->|"supplies evidence"| node_decision
node_decision -->|"requests judgment"| node_judge
node_judge -.->|"scores questions"| node_jev
node_questions -->|"provides questions"| node_judge
node_agent -->|"records probe results"| node_evidence_recorder
node_evidence_recorder -->|"writes observations"| node_evidence_store
node_cli -->|"dispatches commands"| node_loop_commands
node_loop_commands -->|"audits round"| node_auditor
node_auditor -->|"reads evidence"| node_evidence_store
node_loop_commands -->|"loads and updates"| node_loop_store
node_auditor -->|"assesses outcome"| node_planner
node_planner -->|"persists next action"| node_loop_store
node_cli -->|"dispatches commands"| node_long_commands
node_long_commands -->|"normalizes events"| node_normalizer
node_long_commands -->|"appends and reads"| node_long_store
node_long_watch -->|"reads session events"| node_long_store
node_long_watch -->|"checks for risks"| node_signals
node_signals -->|"provides signals"| node_long_policy
node_long_policy -->|"stores alert state"| node_long_store
node_bridge -->|"imports Loop events"| node_long_store
node_cli -->|"opens cockpit"| node_tui
node_tui -->|"reads and writes settings"| node_tui_store
node_tui -->|"refreshes sessions"| node_tui_sessions
node_tui_sessions -->|"reads Loop state"| node_loop_store
node_tui_sessions -->|"reads Long state"| node_long_store

click node_cli "https://github.com/alex314618-create/jevrev/blob/main/src/cli.ts"
click node_activation "https://github.com/alex314618-create/jevrev/blob/main/src/activation.ts"
click node_questions "https://github.com/alex314618-create/jevrev/blob/main/src/questions.ts"
click node_judge "https://github.com/alex314618-create/jevrev/blob/main/src/judge.ts"
click node_policy "https://github.com/alex314618-create/jevrev/blob/main/src/policy.ts"
click node_campaign "https://github.com/alex314618-create/jevrev/blob/main/src/workflow/campaign.ts"
click node_evidence "https://github.com/alex314618-create/jevrev/blob/main/src/workflow/evidence.ts"
click node_decision "https://github.com/alex314618-create/jevrev/blob/main/src/workflow/decide.ts"
click node_evidence_recorder "https://github.com/alex314618-create/jevrev/blob/main/src/evidence/recorder.ts"
click node_evidence_store "https://github.com/alex314618-create/jevrev/blob/main/src/evidence/store.ts"
click node_loop_commands "https://github.com/alex314618-create/jevrev/blob/main/src/loop/commands.ts"
click node_auditor "https://github.com/alex314618-create/jevrev/blob/main/src/loop/auditor.ts"
click node_planner "https://github.com/alex314618-create/jevrev/blob/main/src/loop/planner.ts"
click node_loop_store "https://github.com/alex314618-create/jevrev/blob/main/src/loop/store.ts"
click node_long_commands "https://github.com/alex314618-create/jevrev/blob/main/src/long/commands.ts"
click node_normalizer "https://github.com/alex314618-create/jevrev/blob/main/src/long/normalize.ts"
click node_long_store "https://github.com/alex314618-create/jevrev/blob/main/src/long/store.ts"
click node_signals "https://github.com/alex314618-create/jevrev/blob/main/src/long/signals.ts"
click node_long_policy "https://github.com/alex314618-create/jevrev/blob/main/src/long/policy.ts"
click node_long_watch "https://github.com/alex314618-create/jevrev/blob/main/src/long/watch.ts"
click node_bridge "https://github.com/alex314618-create/jevrev/blob/main/src/long/bridge.ts"
click node_tui "https://github.com/alex314618-create/jevrev/blob/main/src/tui/app.ts"
click node_tui_sessions "https://github.com/alex314618-create/jevrev/blob/main/src/tui/sessions.ts"
click node_tui_store "https://github.com/alex314618-create/jevrev/blob/main/src/tui/store.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli toneBlue
class node_activation,node_questions,node_judge,node_policy,node_campaign,node_evidence,node_decision toneAmber
class node_evidence_recorder,node_evidence_store,node_loop_commands,node_auditor,node_planner,node_loop_store toneMint
class node_long_commands,node_normalizer,node_long_store,node_signals,node_long_policy,node_long_watch,node_bridge toneRose
class node_tui,node_tui_sessions,node_tui_store,node_agent,node_jev toneIndigo
```

## Components

### Host interface

- [CLI and JSON](https://github.com/alex314618-create/jevrev/blob/main/src/cli.ts): `src/cli.ts`

### JevSift

- [Shadow activation](https://github.com/alex314618-create/jevrev/blob/main/src/activation.ts): `src/activation.ts`
- [Judge questions](https://github.com/alex314618-create/jevrev/blob/main/src/questions.ts): `src/questions.ts`
- [Jev judge](https://github.com/alex314618-create/jevrev/blob/main/src/judge.ts): `src/judge.ts`
- [Sift policy](https://github.com/alex314618-create/jevrev/blob/main/src/policy.ts): `src/policy.ts`
- [Probe campaign](https://github.com/alex314618-create/jevrev/blob/main/src/workflow/campaign.ts): `src/workflow/campaign.ts`
- [Probe evidence](https://github.com/alex314618-create/jevrev/blob/main/src/workflow/evidence.ts): `src/workflow/evidence.ts`
- [Candidate decision](https://github.com/alex314618-create/jevrev/blob/main/src/workflow/decide.ts): `src/workflow/decide.ts`

### JevLoop

- [Command recorder](https://github.com/alex314618-create/jevrev/blob/main/src/evidence/recorder.ts): `src/evidence/recorder.ts`
- [Evidence bundles](https://github.com/alex314618-create/jevrev/blob/main/src/evidence/store.ts): `src/evidence/store.ts`
- [Loop commands](https://github.com/alex314618-create/jevrev/blob/main/src/loop/commands.ts): `src/loop/commands.ts`
- [Round auditor](https://github.com/alex314618-create/jevrev/blob/main/src/loop/auditor.ts): `src/loop/auditor.ts`
- [Next action](https://github.com/alex314618-create/jevrev/blob/main/src/loop/planner.ts): `src/loop/planner.ts`
- [Loop state](https://github.com/alex314618-create/jevrev/blob/main/src/loop/store.ts): `src/loop/store.ts`

### JevLong

- [Long commands](https://github.com/alex314618-create/jevrev/blob/main/src/long/commands.ts): `src/long/commands.ts`
- [Event normalization](https://github.com/alex314618-create/jevrev/blob/main/src/long/normalize.ts): `src/long/normalize.ts`
- [Event journal](https://github.com/alex314618-create/jevrev/blob/main/src/long/store.ts): `src/long/store.ts`
- [Risk signals](https://github.com/alex314618-create/jevrev/blob/main/src/long/signals.ts): `src/long/signals.ts`
- [Alert policy](https://github.com/alex314618-create/jevrev/blob/main/src/long/policy.ts): `src/long/policy.ts`
- [Session watch](https://github.com/alex314618-create/jevrev/blob/main/src/long/watch.ts): `src/long/watch.ts`
- [Loop bridge](https://github.com/alex314618-create/jevrev/blob/main/src/long/bridge.ts): `src/long/bridge.ts`

### Session view

- [Terminal cockpit](https://github.com/alex314618-create/jevrev/blob/main/src/tui/app.ts): `src/tui/app.ts`
- [Session discovery](https://github.com/alex314618-create/jevrev/blob/main/src/tui/sessions.ts): `src/tui/sessions.ts`
- [View preferences](https://github.com/alex314618-create/jevrev/blob/main/src/tui/store.ts): `src/tui/store.ts`

### Other components

- **Host agent**
- **Jev service**

## Connections

- Host agent → CLI and JSON: submits requests
- CLI and JSON → Shadow activation: evaluates request
- CLI and JSON → Probe campaign: builds campaign
- Probe campaign → Sift policy: filters candidates
- Probe campaign → Probe evidence: prepares evaluations
- Probe evidence → Candidate decision: supplies evidence
- Candidate decision → Jev judge: requests judgment
- Jev judge → Jev service: scores questions
- Judge questions → Jev judge: provides questions
- Host agent → Command recorder: records probe results
- Command recorder → Evidence bundles: writes observations
- CLI and JSON → Loop commands: dispatches commands
- Loop commands → Round auditor: audits round
- Round auditor → Evidence bundles: reads evidence
- Loop commands → Loop state: loads and updates
- Round auditor → Next action: assesses outcome
- Next action → Loop state: persists next action
- CLI and JSON → Long commands: dispatches commands
- Long commands → Event normalization: normalizes events
- Long commands → Event journal: appends and reads
- Session watch → Event journal: reads session events
- Session watch → Risk signals: checks for risks
- Risk signals → Alert policy: provides signals
- Alert policy → Event journal: stores alert state
- Loop bridge → Event journal: imports Loop events
- CLI and JSON → Terminal cockpit: opens cockpit
- Terminal cockpit → View preferences: reads and writes settings
- Terminal cockpit → Session discovery: refreshes sessions
- Session discovery → Loop state: reads Loop state
- Session discovery → Event journal: reads Long state
