REA (morluto/rea, "Reverse Engineer Anything") reverse-engineers shipped apps —
native binaries, JS/Electron bundles, .NET, WASM — and emits a canonical,
evidence-bearing JavaScript Application Graph (JAG). This adds a graphify ingester
for it, so reverse-engineered structure becomes a queryable graphify graph:
graphify extract --rea app.jag.json
- graphify/rea_ingest.py: `ingest_rea_jag(doc, source_file="")` maps JAG nodes
(package/ASAR/electron main·preload·renderer/module/chunk/IPC/contextBridge/
native add-on/...) to graphify nodes (kind -> file_type) and the JAG relation
vocabulary (contains/loads/imports/calls/invokes/exposes/handles/...) to
graphify relations, preserving the original relation in the edge context
("rea:<relation>"). REA's epistemic state drives confidence: observed ->
EXTRACTED, inferred -> INFERRED (score capped). Endpoint-safe (mints
`rea_external` stubs so no edge dangles); graph-wide coverage/limitations are
attached to the root nodes' metadata.
- CLI: `graphify extract --rea <jag.json>` merges the ingested graph alongside
AST/semantic/postgres/cargo sources, mirroring the existing ingesters.
Grounded in REA's documented JAG contract plus a synthetic fixture
(tests/fixtures/rea_jag_sample.json). REA is MIT; this consumes its JSON
contract, not its code.
DRAFT: validate against a real `rea ... --json` export before merge.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>