Files
safishamsiandClaude Opus 4.8 d171ad8c55 feat(ingest): ingest REA's JavaScript Application Graph
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>
2026-10-11 21:41:55 +01:00
..