Repository navigation
Reverse Engine Anything Plus v0.8.0
Reverse Engine Anything Plus v0.8.0
Protocol release: the MCP surface grows up — resources, prompts, toolset
profiles, and typed outputs — while new security boundaries (workspace root,
tokenless HTTP, audit log) lock the server down. Long jobs get async + progress
pilots. 58/58 default tests green.
Highlights
- Resources + prompts: two static read-only resources
(rea-plus://server-info,rea-plus://capabilities-safety) and three
side-effect-free triage prompts (packer-triage,dotnet-malware-triage,
android-triage). Full surface is now 171 tools + 2 resources + 3 prompts. - Toolset profiles:
REA_TOOLSETSfilters registration to a slice
(minimal= 8,static= 98,android= 27,dotnet= 20,web= 26,
debug= 50; comma-separated union). Unknown names fail startup instead of
silently falling back toall. - Typed outputs: 120 tools declare
outputSchemaand 169 carry
annotations;structuredContentmirrors the text JSON on plain-object
results. Per-tool status lives indocs/TOOLS.md, generated from the real
compiled server (node scripts/generate-tool-reference.mjs --check). - Workspace root: with
REA_WORKSPACE_ROOTset,rea_*path arguments,
conduitopen_target/debug_openpaths, and user-visible derived writes
(.unpacked,.extracted, HAR output) must resolve inside a root —
junction, UNC, drive-relative, ADS, and reserved Windows names rejected. - Tokenless HTTP lockdown: without
DBG_BRIDGE_TOKEN, HTTP registers only
a 44-tool read-only allowlist (fail-closed, intersected withREA_TOOLSETS).
REA_AUDIT_LOGwrites append-only JSONL with no arguments, tokens, or paths;
defaults are 120 req/min/IP and 16 concurrent requests. - Async job pilot (opt-in): with
REA_ASYNC_JOBS=1, five job tools
(rea_job_start/status/result/cancel/list) run whitelisted tools (today:
rea_process_run) with a 2-concurrent queue; cancel kills the process tree. - Roots + progress pilots:
REA_ROOTS=1narrows the workspace from client
roots on legacy stdio;rea_process_runstreams paced progress and honors
notifications/cancelled.
Fixed
- Registry identity: package
mcpNameandserver.jsonname are now
io.github.Alyhnte/rea-plus; npmbinpaths and repository URL are in
canonical form; lockfile version is synced. - Jadx honesty: manifest/class/decompile results are validated before
success is reported; missing tool or broken input returns an error envelope,
never a fakeok:true. Real jadx flags verified against the installed binary. - Frida exception honesty: exceptions outside the agent's own breakpoint
slot returnfalseto the real flow instead of being swallowed as fake hits. - Stale docs: README badge and lane counts re-synced (547 its, 58 files);
ROADMAP/CHANGELOG carry the real 120/169 numbers.
Added
src/server/workspaceRoot.ts+tests/workspace-root.test.mjs,
tests/workspace-derived.test.mjs(conduit + derived-write coverage).src/server/toolMetadata.ts,src/server/conduitMetadata.ts(central
outputSchema/annotations registries) +tests/sdk-surface.test.mjs,
tests/conduit-surface.test.mjs.src/server/toolsets.ts+tests/toolsets.test.mjs.src/server/registerResourcesPrompts.ts+tests/resources-prompts.test.mjs.src/server/httpPolicy.ts+tests/http-policy.test.mjs.src/server/roots.ts+tests/roots.test.mjs.src/server/progress.ts+tests/progress-cancel.test.mjs.src/server/asyncJobs.ts+tests/async-jobs.test.mjs.scripts/generate-tool-reference.mjs+docs/TOOLS.md+
tests/tool-reference.test.mjs(drift gate: generated reference must match)..github/workflows/publish.yml(manual-only, dry-run by default; real
publish needs an explicitPUBLISHapproval).- Frida exception regression test (
tests/frida-agent-exception.test.mjs)
and jadx bridge honesty tests (tests/jadx-bridge.test.mjs). tests/publish-workflow.test.mjs,tests/version-sync.test.mjs
(single-authority version sync across package/lock/server/sources).
Verification
npx tsc --noEmitclean;npm run buildclean.node scripts/generate-tool-reference.mjs --checkpasses (171/2/3).- Focused protocol suites: 201/201 (sdk, async-jobs, conduit, http-policy,
workspace, roots, progress, toolsets, resources-prompts, tool-reference,
publish, version-sync, publish-workflow, frida-exception, jadx). - Default lane
npm test: 58/58 PASS, 0 FAIL (Windows + Ubuntu CI shape). node scripts/publish-kontrol.mjsOK;npm publish --dry-runOK
(314 files, no login — real publish not attempted).- Live-debugger/Frida injection suites stay out of the default lane (VM/CI only).
Upgrade notes
- Default surface is unchanged in count (171 tools) unless you opt in:
REA_TOOLSETSslices it,REA_ASYNC_JOBS=1adds 5 job tools (176 total). - Setting
REA_WORKSPACE_ROOTnewly constrains path arguments — unset means
no restriction, so existing setups are unaffected until they opt in. - Tokenless HTTP now serves only the 44-tool read-only allowlist; set
DBG_BRIDGE_TOKENfor the full surface over HTTP. Stdio is unchanged. - npm registry publish is still the open gate; until then
npx -y github:Alyhnte/ReaPlusremains the supported one-command path.