Architecture
flowchart LR
A[Caller goal and context] --> B[Program collector]
B --> C[Private evidence archive]
B --> D[Context admission and exact rules]
D --> E[Jev typed decisions]
E --> F[Program reducer and freshness guard]
F --> G[Compact agent packet]
G --> H[Existing authorized executor]
Collection and inference stay inside the program. The main agent sees the selected packet, not a raw-output roundtrip followed by a second classification.
analysis.py validates/plans/reduces. pool.py runs independent requests with up to
30 workers. provider.py owns fixed-origin HTTPX transport, credential loading and
bounded retries. command.py captures trusted argv under a byte/time budget.
tools.py owns specialized collectors and guards. batch.py preserves existing
native question contracts and packs only compatible schemas with isolated state.
There is no result cache. Each live question is evaluated again. Receipts are inspectable evidence, not replayed authority. Unknown failed usage is marked incomplete; returned token usage is counted once, never replicated per record.
Source text can contain prompt injection or incorrect claims. Typed outputs and program checks reduce the execution surface but do not make model judgments true. Commands are caller-authorized, not generated by Jev. Read SECURITY.md for the precise trust boundaries.
Hosted execution
flowchart LR
S[Surface: browser page or desktop window] -->|observe| T[Indexed controls + visible text]
T --> Q[space.py: one request, operation + target heads]
Q --> K[kernel.py: gates, budgets, cycle and stall checks]
K -->|fresh target| S
K -->|pause| H[Caller: confirm / value / sign-in]
| Module | Responsibility |
|---|---|
act/cdp.py |
Standard-library DevTools WebSocket client and private headless browser launcher |
act/page.js |
In-page observation, freshness guards, target resolution, extraction |
act/browser.py |
CDPPage and CamofoxPage transports with one observe/fresh/act contract |
act/desktop*.py |
Desktop surface, Windows UI Automation and macOS AX backends, safety gates |
act/ocr.py |
OCR fallback (Windows.Media.Ocr, Vision) with pixel-hash freshness |
act/space.py |
Action space, question construction, irreversible gate |
act/kernel.py |
The observe → decide → execute → verify loop |
survey.py |
Streaming inputs, screening, packed evaluation and code-side aggregation |
The execution loop reuses provider.py for every Jev request, so credentials, retries and
usage accounting behave exactly as in the filtering commands. See
hosted execution for behavior and limits.