A worked pass
Each stage writes to artifacts/ and reads what the stage before it wrote. Run them in order the first time, then jump to whichever one you need.
1. Discover the surface
Section titled “1. Discover the surface”Find the script and endpoints a document names, with no browser:
wre discover https://acme.example/ --target acmewre discover https://acme.example/ --target acme --fingerprint chrome_141:windows2. Capture a run
Section titled “2. Capture a run”wre capture --target acme --scriptswre pin acme-2026-08-15wre show captures/acme-2026-08-15--scripts stores the script bodies alongside the requests. pin copies the bundle into captures/, where an artifacts/ wipe cannot reach it.
3. Open the script
Section titled “3. Open the script”wre deobf artifacts/captures/.../collect.js --target acme --rename --statswre surface collect.clean.jsdeobf runs a 26-pass pipeline to fixpoint, including control flow unflattening and evidence-based renaming. surface reports which browser surface each function reaches.
4. Call its primitives
Section titled “4. Call its primitives”wre mount collect.js --target acmewre mount collect.js --target acme --role seal --args '[{"a":1}]'mount loads the script into a V8 realm, matches the roles declared in the manifest, and hands you its own functions as callable handles. The first form lists what matched. The second calls one.
5. Lift the virtual machine
Section titled “5. Lift the virtual machine”wre vm discover collect.jswre vm probe collect.js --table HANDLERS --frame frame.jswre vm lift program.json --out lifted.jsprobe runs each handler against Proxy sentinels and records what it read, what it wrote, and whether it touched the program counter. Only the frame model, meaning how the VM calls its handlers, is per-target.
6. Work the payload
Section titled “6. Work the payload”wre wire roundtrip body.bin --codec base64wre wire diff before.json after.jsonwre wire schema captures/*/payload.jsonroundtrip opens a body, seals it again and compares bytes. A codec that cannot reproduce the original is reported as such.
7. Verify
Section titled “7. Verify”wre verify --target acme --capture captures/acme-2026-08-15Runs every check the manifest declares that needs no browser.
After the vendor rebuilds
Section titled “After the vendor rebuilds”wre locate collect.js --target acme --lock targets/acme.lockwre drift targets/acme.lock collect-new.jswre builds collect-old.js collect-new.js
wre integrity collect.js --target acmewre integrity collect.patched.js --target acme --resignwre equivalent collect.js collect.clean.jsFinding things again after a rebuild covers what the lock file holds and how the drift report reads.
Grading and attribution
Section titled “Grading and attribution”wre grade built.json --real capture-1.json capture-2.jsonwre align --before a1.json a2.json --after b1.json b2.json
wre sandbox capture --openwre sandbox check --allwre markers --kind concealmentwre poolsRun the baseline twice before sweeping anything. Addresses that differ between two identical runs are noise, and every sweep result is reported with them removed.