mirror of
https://github.com/morluto/rea.git
synced 2026-11-07 05:56:19 -10:00
* fix(hopper): report unavailable procedure body coverage * refactor!: simplify runtime tools and remove replay engines Keep direct inspection, capture, and comparison tools. Bind handlers to named contracts and let agents compose experiments with commands and local fixture servers. BREAKING CHANGE: Remove controlled replay, Node characterization, finite replay-machine, managed runtime planning, and redundant string-tracing tools. Retire process replay, shims, reactive scenarios, custom checkpoints, and active browser replay and origin-scope inputs.
87 lines
3.4 KiB
Plaintext
87 lines
3.4 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"]
|
|
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
|