graph TD subgraph "Entry Points" CLI["src/cli.ts + src/cli/
One-shot CLI adapter
setup, diagnostics, analysis, decompilation"] MAIN["src/main.ts + src/main/
MCP stdio server adapter
config, session, process lifetime"] DISPATCH["scripts/rea.mjs
Executable dispatcher
routes mcp / one-shot"] end subgraph "Production Composition" COMPOSITION["src/composition/
fresh typed provider and session factories
one-shot binding and independent optional loading"] end subgraph "Adapters" SERVER["src/server/
MCP request translation
createServer, tool registration, toolResult"] HOPPER_BRIDGE["bridge/hopper_bridge.py
Runs inside Hopper
adapts operations to Hopper Python API"] GHIDRA_BRIDGE["bridge/ghidra/ReaGhidraBridge.java
Packaged HeadlessScript
inventory, decompiler, references, CFG"] INSTALL["src/cli/ + src/application/Setup*
Host installation adapters
macOS: verified vendor DMG to ~/Applications
Linux: verified vendor package + apt/dnf/pacman"] end subgraph "Application Layer" APP["src/application/
Shared CLI/MCP workflows
enhanced analysis and investigations"] SESSION["SessionProviderRouter + BinarySession
one immutable deep binding per target
disjoint auxiliary routing"] REGISTRY["AnalysisProviderRegistry
sorted deep candidates
deterministic selection, no fallback"] RECORDS["src/application/investigation/
composed InvestigationRecords + narrow ports
EvidenceLedger and Unknown ownership"] SNAPSHOT["BinarySessionRecords + AnalysisSnapshotCache
binary target/profile snapshots
compatibility facade and post-commit notifications"] JS_RECON["src/application/javascript/ + src/artifacts/javascript/
JavaScript artifact reconstruction
directory/ASAR reads
AST-only bundle projection"] end subgraph "Provider Layers" PWNTOOLS["src/native/pwntools/ + src/native/pwndbg/
BYO offline ELF/core adapters
owned snapshots/Python and optional core-only GDB
unchanged upstream parsers, ABI structures and mapping API"] EVM["src/evm/
unchanged EVMole/WASM in bounded owned worker
explicit carrier parsing and inferred interface adapter"] HOPPER["src/hopper/
Hopper launch & Unix-socket protocol
BridgeLauncher, HopperClient, protocol"] GHIDRA["src/ghidra/
Ghidra discovery, profile & function analysis
snapshot, Unix/Windows transport, bounded lifecycle"] IDA["src/ida/
Upstream MCP contract adaptation
live GUI binding or owned headless database"] IDA_MCP["External ida-pro-mcp
GUI proxy or database supervisor
upstream installation and engine lifecycle"] AUX["src/artifacts/ + src/native/
artifact inventory and extraction
format readers and native capabilities"] BROWSER["src/browser/
CDP / Playwright capture
captured scripts and native module resolution
execution/: coverage, listener and source attribution"] JS_CODEC["src/javascript/sourceMaps/
pinned upstream map codec
owned heap-limited Node process, complete point evidence"] INSPECTOR["src/inspector/
passive V8 Inspector discovery and capture
script and target locations"] DOTNET["src/dotnet/
Managed static metadata provider
PE/CLI metadata inventory, members, IL"] FIRMWARE["src/firmware/
Binwalk / Unblob adapters
owned processes, report normalization, private extraction"] ANDROID["src/android/
Static APK adapter
owned SDK stdio, pinned headless JADX, normalization"] REFERENCE["src/reference/
Filesystem reference-source reader
bounded traversal, validation, errors"] end subgraph "Provider Process Foundation" PROCESS["src/process/
owned process groups, private roots
deadlines, bounded file reads and diagnostics, cleanup"] WINDOWS["src/windows/
Windows host boundary adapters
package loader, opaque handles, owned jobs and private runtimes"] WINDOWS_NATIVE["native/windows/src/
Node-API implementation
NTFS admission, protected DACLs and atomic Job Object assignment"] end subgraph "Contracts Layer" CONTRACTS["src/contracts/
Caller-visible schemas for analysis, managed, browser, Electron, application, and session tools"] ERRORS["src/contracts/errorSchemas.ts
Shared analysis error schemas
CLI diagnostics, generated error catalog"] end subgraph "Domain Layer" DOMAIN["src/domain/
Pure side-effect-free modules
evidence, comparisons, application graphs"] end subgraph "Configuration" CONFIG["src/config/
Zod-validated env parsing
provider settings and origins"] end subgraph "Tests" TESTS["tests/
Vitest suite
fixtures/ holds fake launcher, bridge, and CDP seams"] end subgraph "Evaluation" EVALUATION["src/evaluation/
Agent release evaluation
session transcript scoring"] end DISPATCH --> CLI DISPATCH --> MAIN MAIN --> CONFIG MAIN --> SERVER MAIN --> APP CLI --> APP MAIN --> COMPOSITION CLI --> COMPOSITION SERVER --> COMPOSITION COMPOSITION --> SESSION APP --> FIRMWARE FIRMWARE --> PROCESS FIRMWARE --> CONTRACTS APP --> ANDROID ANDROID --> PROCESS ANDROID --> CONTRACTS ANDROID --> DOMAIN CLI --> ERRORS APP --> SESSION SESSION --> REGISTRY SESSION --> SNAPSHOT SNAPSHOT --> RECORDS APP -->|record callbacks| RECORDS SERVER -->|narrow record ports| RECORDS RECORDS --> DOMAIN COMPOSITION --> PWNTOOLS PWNTOOLS --> PROCESS PWNTOOLS --> DOMAIN COMPOSITION --> HOPPER COMPOSITION --> GHIDRA COMPOSITION --> IDA COMPOSITION --> AUX IDA --> IDA_MCP IDA --> CONTRACTS IDA --> DOMAIN SESSION --> AUX APP --> JS_RECON APP --> INSTALL SERVER --> CONTRACTS SERVER --> APP APP --> BROWSER APP -->|source-map codec port| JS_CODEC JS_CODEC --> PROCESS JS_CODEC --> DOMAIN APP -->|runtime observation port| INSPECTOR INSPECTOR -->|shared CDP and file-location helpers| BROWSER INSPECTOR --> DOMAIN APP --> DOTNET DOTNET --> DOMAIN HOPPER --> HOPPER_BRIDGE GHIDRA --> GHIDRA_BRIDGE HOPPER --> PROCESS GHIDRA --> PROCESS GHIDRA --> WINDOWS PROCESS --> WINDOWS WINDOWS --> WINDOWS_NATIVE APP --> PROCESS APP --> DOMAIN JS_RECON --> AUX JS_RECON --> DOMAIN APP --> REFERENCE REFERENCE --> DOMAIN CONTRACTS --> DOMAIN HOPPER --> DOMAIN GHIDRA --> DOMAIN AUX --> DOMAIN BROWSER --> DOMAIN PROCESS --> DOMAIN TESTS -.-> MAIN TESTS -.-> HOPPER TESTS -.-> GHIDRA TESTS -.-> IDA TESTS -.-> PROCESS TESTS -.-> BROWSER TESTS -.-> EVALUATION TESTS -.-> ERRORS COMPOSITION --> EVM APP -->|EVM interface port| EVM EVM --> PROCESS EVM --> DOMAIN