mirror of
https://github.com/morluto/rea.git
synced 2026-10-26 17:35:11 +00:00
Remove REA permission grants, scope ceilings, approval confirmations, and inert settings. Preserve selected local evidence, accept caller-chosen commands and paths, and report actual runtime failures. Harden provider results, schema serialization, snapshot evidence binding, archive paths, source maps, native screenshots, managed EH parsing, and cancellation cleanup. Regenerate tool metadata and document direct invocation. BREAKING CHANGE: Removed permission configuration and policy commands, approval fields, filesystem scope inputs, and fixed confirmation options. Process capture inherits the host environment and accepts command names; callers must refresh tool schemas and migrate removed fields.
88 lines
3.5 KiB
Plaintext
88 lines
3.5 KiB
Plaintext
graph TD
|
|
subgraph "Entry Points"
|
|
CLI["src/cli.ts<br/>One-shot CLI adapter<br/>setup, diagnostics, analysis, decompilation"]
|
|
MAIN["src/main.ts<br/>MCP stdio server adapter<br/>config, session, process lifetime"]
|
|
DISPATCH["scripts/rea.mjs<br/>Executable dispatcher<br/>routes mcp / one-shot"]
|
|
end
|
|
|
|
subgraph "Adapters"
|
|
SERVER["src/server/<br/>MCP request translation<br/>createServer, tool registration, toolResult"]
|
|
HOPPER_BRIDGE["bridge/hopper_bridge.py<br/>Runs inside Hopper<br/>adapts operations to Hopper Python API"]
|
|
GHIDRA_BRIDGE["bridge/ghidra/ReaGhidraBridge.java<br/>Packaged HeadlessScript<br/>inventory, decompiler, references, CFG"]
|
|
INSTALL["Host installation adapters<br/>macOS: verified vendor DMG to ~/Applications<br/>Linux: verified vendor package + apt/dnf/pacman"]
|
|
end
|
|
|
|
subgraph "Application Layer"
|
|
APP["src/application/<br/>Shared CLI/MCP workflows<br/>enhanced analysis and investigations"]
|
|
SESSION["SessionProviderRouter + BinarySession<br/>one immutable deep binding per target<br/>disjoint auxiliary routing"]
|
|
REGISTRY["AnalysisProviderRegistry<br/>sorted deep candidates<br/>deterministic selection, no fallback"]
|
|
JS_RECON["JavaScript artifact reconstruction<br/>directory/ASAR reads<br/>AST-only bundle projection"]
|
|
end
|
|
|
|
subgraph "Provider Layers"
|
|
HOPPER["src/hopper/<br/>Hopper launch & Unix-socket protocol<br/>BridgeLauncher, HopperClient, protocol"]
|
|
GHIDRA["src/ghidra/<br/>Ghidra discovery, profile & function analysis<br/>snapshot, Unix/Windows transport, bounded lifecycle"]
|
|
AUX["src/artifacts/ + src/native/<br/>disjoint artifact and native capabilities"]
|
|
BROWSER["src/browser/<br/>Loopback CDP transport<br/>exact-origin passive observation"]
|
|
REPLAY["src/replay/<br/>Disposable JavaScript worker<br/>Bubblewrap, seccomp, cgroup limits"]
|
|
end
|
|
|
|
subgraph "Provider Process Foundation"
|
|
PROCESS["src/process/<br/>owned process groups, private roots<br/>deadlines, bounded file reads and diagnostics, cleanup"]
|
|
end
|
|
|
|
subgraph "Contracts Layer"
|
|
CONTRACTS["src/contracts/<br/>Caller-visible schemas for analysis, managed, browser, Electron, application, and session tools"]
|
|
end
|
|
|
|
subgraph "Domain Layer"
|
|
DOMAIN["src/domain/<br/>Pure side-effect-free modules<br/>evidence, comparisons, application graphs"]
|
|
end
|
|
|
|
subgraph "Configuration"
|
|
CONFIG["src/config.ts<br/>Zod-validated env parsing<br/>provider settings and origins"]
|
|
end
|
|
|
|
subgraph "Tests"
|
|
TESTS["tests/<br/>Vitest suite<br/>fixtures/ holds fake launcher, bridge, and CDP seams"]
|
|
end
|
|
|
|
DISPATCH --> CLI
|
|
DISPATCH --> MAIN
|
|
MAIN --> CONFIG
|
|
MAIN --> SERVER
|
|
MAIN --> APP
|
|
CLI --> APP
|
|
APP --> SESSION
|
|
SESSION --> REGISTRY
|
|
REGISTRY --> HOPPER
|
|
REGISTRY --> GHIDRA
|
|
SESSION --> AUX
|
|
APP --> JS_RECON
|
|
APP --> INSTALL
|
|
SERVER --> CONTRACTS
|
|
SERVER --> APP
|
|
APP --> BROWSER
|
|
APP --> REPLAY
|
|
HOPPER --> HOPPER_BRIDGE
|
|
GHIDRA --> GHIDRA_BRIDGE
|
|
HOPPER --> PROCESS
|
|
GHIDRA --> PROCESS
|
|
APP --> PROCESS
|
|
APP --> DOMAIN
|
|
JS_RECON --> AUX
|
|
JS_RECON --> DOMAIN
|
|
CONTRACTS --> DOMAIN
|
|
HOPPER --> DOMAIN
|
|
GHIDRA --> DOMAIN
|
|
AUX --> DOMAIN
|
|
BROWSER --> DOMAIN
|
|
REPLAY --> DOMAIN
|
|
PROCESS --> DOMAIN
|
|
TESTS -.-> MAIN
|
|
TESTS -.-> HOPPER
|
|
TESTS -.-> GHIDRA
|
|
TESTS -.-> PROCESS
|
|
TESTS -.-> BROWSER
|
|
TESTS -.-> REPLAY
|