mirror of
https://github.com/morluto/rea.git
synced 2026-10-26 17:35:11 +00:00
* feat(javascript): recover readable modules with Wakaru Integrate pinned upstream source behind a typed optional recovery port, preserve source identity and producer provenance, and publish verified artifacts for existing JavaScript analysis through CLI and MCP. Add focused real-tool CI with genuine bundler fixtures and bounded resource, cancellation, cleanup, schema and packaged-artifact checks. Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis) Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing) * fix(javascript): align recovery catalog and browser verification Share canonical Wakaru provider identity, describe CLI mode options, and format the new workflow test. Disconnect the real page transport after its observation readiness progress instead of a fixed delay. Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis) Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing) * refactor(javascript): consume the investigation evidence writer Verify that the SDK recovery handler records complete Evidence through the newly shared investigation owner. Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis) * chore(test): account for isolated recovery fixture compilers * fix(javascript): validate recovery paths before acquiring the engine Return field-specific invalid_format diagnostics for relative paths and verify compiled CLI/MCP parity even when the optional engine is unavailable. Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis) Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
239 lines
13 KiB
JSON
239 lines
13 KiB
JSON
{
|
|
"name": "rea-agents",
|
|
"mcpName": "io.github.morluto/rea",
|
|
"version": "4.1.0",
|
|
"description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/morluto/rea.git"
|
|
},
|
|
"homepage": "https://github.com/morluto/rea#readme",
|
|
"bugs": {
|
|
"url": "https://github.com/morluto/rea/issues"
|
|
},
|
|
"keywords": [
|
|
"reverse-engineering",
|
|
"binary-analysis",
|
|
"agents",
|
|
"agent-skills",
|
|
"cli",
|
|
"mcp-server",
|
|
"model-context-protocol",
|
|
"static-analysis",
|
|
"disassembler",
|
|
"decompiler",
|
|
"mcp",
|
|
"hopper"
|
|
],
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"type": "module",
|
|
"bin": {
|
|
"rea": "scripts/rea.mjs",
|
|
"rea-agents": "scripts/rea.mjs"
|
|
},
|
|
"engines": {
|
|
"node": "^22.19.0 || ^24.11.0 || >=26.0.0"
|
|
},
|
|
"packageManager": "npm@11.16.0",
|
|
"files": [
|
|
"dist",
|
|
"install.sh",
|
|
"bridge/hopper_bridge.py",
|
|
"bridge/native/ReaNativeUI.swift",
|
|
"bridge/ghidra/ReaGhidraBridge.java",
|
|
"bridge/ghidra/ReaGhidraExtensions.java",
|
|
"bridge/ghidra/ReaGhidraPrepareCom.java",
|
|
"scripts/rea.mjs",
|
|
"scripts/electron-active-hook.cjs",
|
|
"scripts/electron-active-hook-boundaries.cjs",
|
|
"scripts/hopper-demo-x11.py",
|
|
"scripts/prepack.mjs",
|
|
"scripts/prepare.mjs",
|
|
"skills",
|
|
"README.md",
|
|
"LICENSE",
|
|
"native/windows/build/manifest.json",
|
|
"native/windows/build/rea-windows-x64.node",
|
|
"scripts/verify-windows-native-artifact.mjs"
|
|
],
|
|
"scripts": {
|
|
"deps:check": "node scripts/check-dependency-install.mjs",
|
|
"metadata:generate": "node scripts/generate-package-metadata.mjs",
|
|
"metadata:check": "node scripts/generate-package-metadata.mjs --check",
|
|
"mcp-registry:check": "node scripts/verify-mcp-registry-metadata.mjs",
|
|
"mcp-catalog:generate": "npm run build:cached && node scripts/generate-mcp-tool-catalog.mjs",
|
|
"mcp-catalog:check": "node scripts/generate-mcp-tool-catalog.mjs --check",
|
|
"prebuild": "npm run deps:check && npm run metadata:check",
|
|
"build": "node scripts/run-exclusive.mjs build npm run build:unlocked",
|
|
"build:unlocked": "node scripts/clean-build-output.mjs && tsc -p tsconfig.build.json",
|
|
"precheck": "npm run deps:check",
|
|
"check": "turbo run typecheck lint format:check knip metadata:check",
|
|
"precheck:fast": "npm run deps:check",
|
|
"check:fast": "turbo run typecheck lint --output-logs=errors-only",
|
|
"precheck:changed": "npm run deps:check",
|
|
"check:changed": "npm run check:fast && npm run test:changed",
|
|
"precheck:test": "npm run deps:check",
|
|
"check:test": "turbo run typecheck lint format:check knip metadata:check test:run",
|
|
"precheck:pr": "npm run deps:check",
|
|
"check:pr": "turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check && npm run jscpd && npm run scan:todos",
|
|
"precheck:ci": "npm run deps:check",
|
|
"check:ci": "turbo run typecheck lint format:check knip metadata:check jscpd scan:todos",
|
|
"build:cached": "turbo run build",
|
|
"format": "oxfmt .",
|
|
"format:check": "oxfmt --check .",
|
|
"lint": "oxlint",
|
|
"lint:fix": "oxlint --fix",
|
|
"knip": "knip",
|
|
"jscpd": "jscpd src/ tests/",
|
|
"scan:todos": "node scripts/scan-todos.mjs",
|
|
"start": "node scripts/rea.mjs mcp",
|
|
"test": "npm run test:with-build",
|
|
"test:with-build": "npm run build:cached && vitest run",
|
|
"test:run": "vitest run",
|
|
"test:local": "node scripts/run-development-tests.mjs local",
|
|
"test:fast": "vitest run --project domain --project services --project adapters --project composition --project conformance --project evaluation",
|
|
"pretest:boundary": "npm run build:cached",
|
|
"test:boundary": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global",
|
|
"pretest:mcp": "npm run build:cached",
|
|
"test:mcp": "vitest run --project mcp-boundary",
|
|
"pretest:acceptance": "npm run build:cached",
|
|
"test:acceptance": "vitest run --project acceptance",
|
|
"test:changed": "node scripts/run-development-tests.mjs changed",
|
|
"pretest:integration": "npm run build:cached",
|
|
"test:integration": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global --project acceptance",
|
|
"pretest:coverage": "npm run build:cached",
|
|
"test:coverage": "vitest run --coverage.enabled --coverage.provider=v8",
|
|
"test:ci": "npm run test:coverage -- --reporter=default --reporter=junit --outputFile.junit=test-results.xml",
|
|
"pretest:ci:shard": "npm run build:cached",
|
|
"test:ci:shard": "npm run test:ci:shard:run",
|
|
"test:ci:shard:run": "vitest run --coverage.enabled --coverage.provider=v8 --coverage.thresholds.lines=0 --coverage.thresholds.functions=0 --coverage.thresholds.branches=0 --coverage.thresholds.statements=0 --reporter=default --reporter=blob",
|
|
"test:ci:merge": "vitest --merge-reports --coverage.enabled --coverage.provider=v8",
|
|
"pretest:verbose": "npm run build:cached",
|
|
"test:verbose": "vitest run --reporter=verbose",
|
|
"test:watch": "vitest --project domain --project services --project adapters --project composition --project conformance --project evaluation --changed",
|
|
"pretest:watch:all": "npm run build:cached",
|
|
"test:watch:all": "vitest --changed",
|
|
"typecheck": "tsc --noEmit",
|
|
"verify:test-temp-hygiene": "npm run build:cached && node scripts/verify-test-temp-hygiene.mjs",
|
|
"verify:hopper": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper.mjs",
|
|
"verify:apple-dispatch": "npm run build:cached && node scripts/verify-apple-dispatch.mjs",
|
|
"verify:native-ui": "npm run build:cached && node scripts/verify-native-ui.mjs",
|
|
"verify:keyed-archive": "npm run build:cached && node scripts/verify-keyed-archive.mjs",
|
|
"verify:ghidra": "npm run build:cached && node scripts/verify-real-ghidra.mjs",
|
|
"verify:ida": "npm run build:cached && node scripts/verify-real-ida.mjs",
|
|
"verify:ghidra:switch": "npm run build:cached && node scripts/verify-real-ghidra-switch.mjs",
|
|
"verify:ghidra:dos": "npm run build:cached && node scripts/verify-real-ghidra-dos.mjs",
|
|
"verify:ghidra:com": "npm run build:cached && node scripts/verify-real-ghidra-com.mjs",
|
|
"verify:ghidra:aarch64-jump-table": "npm run build:cached && node scripts/verify-real-ghidra.mjs --aarch64-jump-table",
|
|
"verify:interface-builder": "npm run build:cached && node scripts/verify-interface-builder.mjs",
|
|
"verify:ghidra:cross-format": "npm run build:cached && node scripts/verify-real-ghidra.mjs --cross-format",
|
|
"verify:ghidra:windows": "npm run build:cached && npm run build:ghidra-windows-fixture && node scripts/verify-real-ghidra-windows.mjs",
|
|
"verify:browser": "npm run build:cached && node scripts/verify-real-browser.mjs",
|
|
"verify:browser:dom": "node scripts/verify-browser-dom-destinations.mjs",
|
|
"verify:browser:network": "npm run build:cached && node scripts/verify-browser-network.mjs",
|
|
"verify:electron": "npm run build:cached && node scripts/verify-real-electron.mjs",
|
|
"verify:inspector": "npm run build:cached && node scripts/verify-real-javascript-runtime-observation.mjs",
|
|
"verify:javascript-runtime": "npm run build:cached && node scripts/verify-local-javascript-runtime.mjs",
|
|
"verify:javascript:digests": "npm run build:cached && node scripts/verify-large-javascript-digests.mjs",
|
|
"verify:application-workflows": "npm run build:cached && node scripts/verify-local-application-workflows.mjs",
|
|
"verify:managed": "npm run build:cached && node scripts/verify-managed-conformance.mjs",
|
|
"verify:firmware": "npm run build:cached && node scripts/verify-real-firmware.mjs",
|
|
"fixtures:firmware": "node scripts/generate-firmware-fixtures.mjs",
|
|
"verify:android": "npm run build:cached && node scripts/verify-real-android.mjs",
|
|
"fixtures:android": "node scripts/fetch-android-fixtures.mjs",
|
|
"verify:agent": "npm run build:cached && node scripts/verify-agent-experience.mjs",
|
|
"verify:hopper:linux": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper-linux.mjs",
|
|
"verify:setup:linux": "npm run build:cached && node scripts/verify-linux-setup-e2e.mjs",
|
|
"build:fixtures": "node scripts/build-conformance-fixtures.mjs",
|
|
"build:ghidra-windows-fixture": "node scripts/create-ghidra-windows-fixture.mjs",
|
|
"verify:fixtures": "npm run build:fixtures && node scripts/verify-conformance-fixtures.mjs",
|
|
"verify:readiness": "npm run build:cached && npm run verify:fixtures && node scripts/verify-reconstruction-readiness.mjs",
|
|
"verify:package": "npm run build:cached && node scripts/verify-package.mjs",
|
|
"verify:package:windows": "npm run build:cached && node scripts/verify-windows-package.mjs",
|
|
"probe:windows-capabilities": "npm run build:cached && node scripts/windows-capabilities.mjs",
|
|
"verify:published": "node scripts/verify-published-package.mjs",
|
|
"config:print": "node scripts/print-mcp-config.mjs",
|
|
"evidence:generate": "npm run build:cached && node scripts/generate-completion-ledger.mjs",
|
|
"evidence:check": "npm run build:cached && node scripts/generate-completion-ledger.mjs --check",
|
|
"docs:generate": "node scripts/run-exclusive.mjs docs npm run docs:generate:unlocked",
|
|
"docs:generate:unlocked": "npm run metadata:generate && npm run build:cached && node scripts/generate-mcp-tool-catalog.mjs && node scripts/generate-skill-metadata.mjs && node scripts/generate-product-catalog.mjs && node scripts/generate-completion-ledger.mjs && node scripts/generate-error-schema.mjs",
|
|
"docs:check": "node scripts/run-exclusive.mjs docs turbo run docs:check:built",
|
|
"docs:check:built": "node scripts/generate-package-metadata.mjs --check && node scripts/generate-mcp-tool-catalog.mjs --check && node scripts/generate-skill-metadata.mjs --check && node scripts/generate-product-catalog.mjs --check && node scripts/generate-completion-ledger.mjs --check && node scripts/check-doc-facts.mjs && node scripts/generate-error-schema.mjs --check",
|
|
"docs:error-schema": "npm run build:cached && node scripts/generate-error-schema.mjs",
|
|
"prepack": "node scripts/prepack.mjs",
|
|
"prepare": "node scripts/prepare.mjs",
|
|
"verify:asset-catalog": "npm run build:cached && node scripts/verify-asset-catalog.mjs",
|
|
"verify:native-ui:permissions": "npm run build:cached && node scripts/verify-native-ui.mjs --allow-permission-denial",
|
|
"test:focused": "node scripts/run-development-tests.mjs focused",
|
|
"build:windows-native": "node scripts/build-windows-native.mjs",
|
|
"verify:windows-native:artifact": "node scripts/verify-windows-native-artifact.mjs",
|
|
"prepublishOnly": "npm run verify:windows-native:artifact",
|
|
"verify:windows-native": "node scripts/verify-windows-native.mjs",
|
|
"verify:ghidra:windows:package": "node scripts/verify-packaged-ghidra-windows.mjs",
|
|
"build:ghidra:nativeaot": "node scripts/build-ghidra-nativeaot.mjs",
|
|
"build:fixtures:nativeaot": "node scripts/generate-nativeaot-fixtures.mjs",
|
|
"verify:ghidra:nativeaot": "npm run build:cached && node scripts/verify-real-ghidra-nativeaot.mjs",
|
|
"verify:browser:scripts": "npm run build:cached && node scripts/verify-browser-scripts.mjs",
|
|
"verify:test-discovery": "node scripts/verify-test-discovery.mjs",
|
|
"verify:javascript:recovery": "node scripts/verify-javascript-recovery.mjs"
|
|
},
|
|
"lint-staged": {
|
|
"*.{cjs,cts,js,jsx,mjs,mts,ts,tsx}": [
|
|
"oxfmt",
|
|
"oxlint --fix"
|
|
],
|
|
"*.{json,md,yml,yaml}": "oxfmt"
|
|
},
|
|
"dependencies": {
|
|
"@babel/parser": "8.0.4",
|
|
"@babel/types": "8.0.4",
|
|
"@clack/prompts": "1.7.0",
|
|
"@electron/asar": "4.2.0",
|
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
"@lydell/node-pty": "1.1.0",
|
|
"@modelcontextprotocol/client": "2.3.1",
|
|
"@modelcontextprotocol/server": "2.3.1",
|
|
"@xterm/addon-serialize": "0.14.0",
|
|
"@xterm/headless": "6.0.0",
|
|
"@zip.js/zip.js": "2.8.26",
|
|
"canonicalize": "3.0.0",
|
|
"cross-spawn": "7.0.6",
|
|
"diff": "9.0.0",
|
|
"ignore": "7.0.6",
|
|
"incur": "0.6.1",
|
|
"isomorphic-git": "1.38.7",
|
|
"jsonc-parser": "3.3.1",
|
|
"pino": "10.4.0",
|
|
"playwright-core": "1.58.2",
|
|
"plist": "5.0.0",
|
|
"semver": "7.8.5",
|
|
"smol-toml": "1.7.0",
|
|
"write-file-atomic": "7.0.0",
|
|
"ws": "8.21.0",
|
|
"zod": "4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@fast-check/vitest": "0.5.0",
|
|
"@types/cross-spawn": "6.0.6",
|
|
"@types/node": "26.6.4",
|
|
"@types/semver": "7.7.1",
|
|
"@types/write-file-atomic": "4.0.3",
|
|
"@types/ws": "8.18.1",
|
|
"@vitest/coverage-v8": "5.0.3",
|
|
"ajv": "8.20.0",
|
|
"husky": "9.1.7",
|
|
"jscpd": "5.0.12",
|
|
"knip": "6.39.0",
|
|
"lint-staged": "16.4.0",
|
|
"oxfmt": "0.72.0",
|
|
"oxlint": "1.87.0",
|
|
"turbo": "2.11.7",
|
|
"typescript": "7.0.2",
|
|
"vitest": "5.0.3",
|
|
"yaml": "2.9.0"
|
|
}
|
|
}
|