* fix(hopper): reconcile observed caller relationships * fix(hopper): retain completed caller scans on failure Attach the native reply and collected forward facts when reconciliation fails or is cancelled, and check scan stop codes separately from their wording. Live observations keep REA evidence ids rather than provider supplied ones, and the real Hopper verifier uses advertised MCP schemas. * fix(hopper): answer caller-scan methods in the package fixture The packaged Hopper stand-in echoed unknown bridge methods, so analyze_function rejected rea_caller_scan_target as an invalid scan target and the native package baseline returned unreadable_output. * fix(hopper): share caller identities in failed scan observations Failure partials repeated each caller identity under every destination. The page budget counted compact replies, then schema parsing copied the expanded form. Identities are stored once and destinations cite addresses. * refactor(config): own the Hopper caller-scan budget default The environment schema hard-coded the 2000 ms scan default. The domain limit owner now names that millisecond budget and the schema reuses it. * test(mcp): assert bundle path issues by field compare_bundles reports each relative path as an invalid_format issue instead of one joined diagnostic sentence. * test(flutter): assert ABI selector refusals as structured issues inspect_dart_aot reports the ABI label as an issue on path abi. The message is the selector contract, without an abi: prefix. * fix(session): retain caller observations that cannot be replayed A missing document selector blocks snapshot replay. Backward call-graph and trace reads still keep the native result and forward observations, and the workflow Evidence links those records. * fix(session): keep decompile bodies out of the in-memory ledger Caller and callee walks still stay in Evidence without a document. procedure_pseudo_code does not, so decompile_all leaves each body in the file-backed export instead of retaining the whole export in memory. * fix(hopper): own caller-scan recovery and the page byte allowance Scan facts stay in the domain. Environment recovery, including the time budget bounds and the fixed allowances with no runtime override, is appended from configuration. Setup forwards the budget, and the bridge uses one byte allowance for instructions, native callers, and pages. * fix(hopper): retain compact caller references within the scan budget Recovered call sites stay in the address form the scan already counted. Expanded identity copies are measured before allocation and refused when they exceed the retention budget. Instruction lists are not part of the retained reply. * fix(session): omit instruction payloads from retained caller evidence Documentless caller and callee reads stay in the ledger for the session. Their evidence keeps call sites and drops instruction lists the scan already consumed. * fix(hopper): keep the owning caller address on each compact call site A page reference marked source_procedure "caller" belongs to that page item's caller. Saved sites record that address, and an owner missing from the callee inventory is stored once instead of copied onto every site. * fix(session): leave Hopper reply shaping to the Hopper adapter Documentless caller evidence stores the adapter's raw result unchanged. The session no longer reads native_result.instructions. * test(hopper): throw typed scan failures before reading results Successful caller-scan results now throw the typed error instead of returning after an ok check. Expected failures assert structured tags, stop codes, and reported limits. --------- Co-authored-by: Cursor Agent <[email protected]>
436 lines
27 KiB
JSON
436 lines
27 KiB
JSON
{
|
|
"name": "rea-agents",
|
|
"mcpName": "io.github.morluto/rea",
|
|
"version": "6.8.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",
|
|
"rea",
|
|
"decompiler",
|
|
"mcp",
|
|
"hopper",
|
|
"electron",
|
|
"javascript-analysis",
|
|
"ghidra",
|
|
"ida"
|
|
],
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"type": "module",
|
|
"imports": {
|
|
"#javascript-analysis-worker": "./dist/composition/javascriptAnalysisWorkerProcess.js",
|
|
"#web-bundle-analysis-worker": "./dist/composition/webBundleAnalysisWorkerProcess.js"
|
|
},
|
|
"bin": {
|
|
"rea": "scripts/rea.mjs",
|
|
"rea-agents": "scripts/rea.mjs"
|
|
},
|
|
"engines": {
|
|
"node": "^22.23.4 || ^24.22.1 || >=26.12.1"
|
|
},
|
|
"packageManager": "[email protected]",
|
|
"files": [
|
|
"dist",
|
|
"install.sh",
|
|
"bridge/hopper_bridge.py",
|
|
"bridge/cutter/rea_bridge.py",
|
|
"bridge/native/NativeUIChildren.swift",
|
|
"bridge/native/NativeUIValues.swift",
|
|
"bridge/native/ReaNativeUI.swift",
|
|
"bridge/native/rea_lldb_tracer.py",
|
|
"bridge/process/ProcessRunTokenReader.swift",
|
|
"bridge/process/ProcessRunTokenReaderMain.swift",
|
|
"bridge/ghidra/ReaGhidraBridge.java",
|
|
"bridge/ghidra/ReaGhidraBundleActivator.java",
|
|
"bridge/ghidra/ReaGhidraExtensions.java",
|
|
"bridge/ghidra/ReaGhidraPrepareCom.java",
|
|
"bridge/ghidra/ReaGhidraApplySeeds.java",
|
|
"bridge/ghidra/ReaGhidraAnalysisOptions.java",
|
|
"bridge/ghidra/ReaGhidraNoReturnFix.java",
|
|
"bridge/ghidra/ReaGhidraMipsSoftFloat.java",
|
|
"bridge/ghidra/ReaGhidraPrepareRaw.java",
|
|
"bridge/ghidra/ReaGhidraPrepareDol.java",
|
|
"bridge/android/ReaJadxBridge.java",
|
|
"bridge/mitmproxy/capture.py",
|
|
"scripts/rea.mjs",
|
|
"scripts/lib/cli-process-environment.mjs",
|
|
"scripts/rea-android-workspace-guardian.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",
|
|
"DISCLAIMER.md",
|
|
"THIRD_PARTY_NOTICES.md",
|
|
"LICENSE",
|
|
"native/windows/build/manifest.json",
|
|
"native/windows/build/rea-windows-x64.node",
|
|
"scripts/verify-windows-native-artifact.mjs",
|
|
"bridge/pwntools/layout.py",
|
|
"bridge/pwntools/layout_impl.py",
|
|
"third_party/pwntools/README.md",
|
|
"third_party/wabt/README.md",
|
|
"third_party/evmole/README.md",
|
|
"third_party/evmole/LICENSE",
|
|
"bridge/pwntools/decoder_runtime.py",
|
|
"bridge/pwntools/recorded_crash.py",
|
|
"bridge/pwntools/recorded_crash_impl.py",
|
|
"bridge/pwndbg/launch.py",
|
|
"bridge/pwndbg/launch_impl.py",
|
|
"bridge/pwndbg/core_context.py",
|
|
"third_party/pwndbg/README.md",
|
|
"third_party/pwndbg/LICENSE.md",
|
|
"licenses",
|
|
"assets/rea-plugin.png",
|
|
".claude-plugin/plugin.json",
|
|
".codex-plugin/plugin.json",
|
|
".codex-plugin/mcp.json",
|
|
"scripts/plugin-mcp-launcher.mjs",
|
|
"npm-shrinkwrap.json"
|
|
],
|
|
"scripts": {
|
|
"release:notes": "node scripts/release-notes.mjs",
|
|
"deps:check": "node scripts/check-dependency-install.mjs",
|
|
"metadata:generate": "node scripts/run-exclusive.mjs artifacts 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": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run artifacts:mcp-catalog",
|
|
"mcp-catalog:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run mcp-catalog:check:built",
|
|
"prebuild": "npm run deps:check",
|
|
"build": "node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run artifacts:skills --force",
|
|
"precheck": "npm run deps:check",
|
|
"check": "node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run typecheck lint format:check knip metadata:check && npm run verify:architecture-guards && npm run knip:production && npm run lint:typed",
|
|
"precheck:fast": "npm run deps:check",
|
|
"check:fast": "node scripts/run-turbo.mjs 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": "node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run typecheck lint format:check knip metadata:check test:run",
|
|
"precheck:pr": "npm run deps:check",
|
|
"check:pr": "node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run typecheck lint format:check knip metadata:check test:run && npm run test:python && npm run docs:check && npm run jscpd && npm run scan:todos && npm run knip:production && npm run lint:typed",
|
|
"precheck:ci": "npm run deps:check",
|
|
"precheck:ci:fast": "npm run deps:check",
|
|
"precheck:ci:deep": "npm run deps:check",
|
|
"check:ci": "npm run check:ci:fast && npm run check:ci:deep",
|
|
"check:ci:fast": "node scripts/run-exclusive.mjs artifacts npm run check:ci:fast:tasks",
|
|
"check:ci:fast:tasks": "node scripts/run-turbo.mjs run typecheck lint format:check",
|
|
"check:ci:deep": "node scripts/run-exclusive.mjs artifacts npm run check:ci:deep:tasks && npm run verify:architecture-guards && npm run verify:test-discovery && npm run test:python && npm run knip:production && npm run lint:typed",
|
|
"check:ci:deep:tasks": "node scripts/run-turbo.mjs run knip metadata:check jscpd scan:todos",
|
|
"ci:static-context": "node scripts/ci/static-task-context.mjs",
|
|
"build:cached": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run artifacts:skills",
|
|
"build:termux": "node scripts/run-exclusive.mjs artifacts npm run build:termux:run",
|
|
"build:termux:run": "npm run compile:termux && npm run artifacts:skills",
|
|
"format": "oxfmt .",
|
|
"format:check": "oxfmt --check .",
|
|
"lint": "node scripts/ci/static-check-report.mjs lint && npm run verify:module-boundaries",
|
|
"lint:details": "oxlint && npm run verify:module-boundaries",
|
|
"lint:fix": "oxlint --fix && npm run verify:module-boundaries",
|
|
"knip": "knip --cache",
|
|
"jscpd": "node scripts/ci/static-check-report.mjs duplicates",
|
|
"jscpd:details": "jscpd src/ tests/ --no-tips",
|
|
"scan:todos": "node scripts/scan-todos.mjs",
|
|
"start": "node scripts/rea.mjs mcp",
|
|
"test": "npm run test:with-build",
|
|
"test:with-build": "npm run test:prepare && vitest run",
|
|
"test:run": "vitest run",
|
|
"test:python": "python3 -m unittest bridge/native/test_rea_lldb_tracer.py bridge/pwndbg/test_core_context.py bridge/mitmproxy/test_capture.py -v && python3 -m unittest discover -s tests/support/analysis-efficiency -p 'test_*.py' -v",
|
|
"test:local": "node scripts/run-development-tests.mjs local",
|
|
"test:fast": "node scripts/ci/test-group.mjs source",
|
|
"test:built": "node scripts/ci/test-group.mjs built",
|
|
"pretest:boundary": "npm run test:prepare",
|
|
"test:boundary": "vitest run --project boundary --project cli-boundary --project process-boundary --project mcp-boundary --project process-global",
|
|
"pretest:mcp": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run artifacts:skills artifacts:mcp-catalog",
|
|
"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 test:prepare",
|
|
"test:integration": "vitest run --project boundary --project cli-boundary --project process-boundary --project mcp-boundary --project process-global --project acceptance",
|
|
"pretest:coverage": "npm run test:prepare",
|
|
"test:coverage": "vitest run --coverage.enabled --coverage.provider=v8",
|
|
"test:coverage:reverse-tools": "vitest run --config vitest.reverse-tools.config.ts --coverage.enabled",
|
|
"pretest:coverage:reverse-tools": "npm run test:prepare",
|
|
"test:mutation:reverse-tools": "node scripts/prepare-reverse-tools-mutation.mjs && stryker run stryker.config.mjs && stryker run stryker.semantics.config.mjs",
|
|
"pretest:mutation:reverse-tools": "npm run test:prepare",
|
|
"test:ci": "npm run test:coverage -- --reporter=default --reporter=junit --outputFile.junit=test-results.xml",
|
|
"pretest:ci:shard": "npm run test:prepare",
|
|
"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 test:prepare",
|
|
"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 test:prepare",
|
|
"test:watch:all": "vitest --changed",
|
|
"typecheck": "node scripts/run-typescript.mjs --noEmit",
|
|
"verify:test-temp-hygiene": "npm run test:prepare && node scripts/verify-test-temp-hygiene.mjs",
|
|
"verify:hopper": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper.mjs",
|
|
"verify:hopper:callers": "npm run build:cached && node scripts/verify-real-hopper-callers.mjs",
|
|
"verify:hopper:deadlines": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper-deadlines.mjs",
|
|
"verify:hopper:fat": "npm run build:cached && node scripts/verify-real-hopper-fat.mjs",
|
|
"verify:hopper:fat64": "npm run build:cached && node scripts/verify-real-hopper-fat.mjs --fat64",
|
|
"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/apple/keyed-archive.mjs",
|
|
"verify:macos-bundle": "npm run build:cached && node scripts/verify/apple/macos-bundle.mjs",
|
|
"verify:legacy-simulator": "npm run build:cached && node scripts/verify/apple/legacy-simulator.mjs",
|
|
"verify:node-sea": "npm run build:cached && node scripts/verify-node-sea.mjs",
|
|
"verify:architecture-guards": "node scripts/verify/architecture-guards.mjs",
|
|
"verify:apktool": "npm run build:cached && node scripts/verify-apktool.mjs",
|
|
"verify:pcap": "npm run build:cached && node scripts/verify-pcap.mjs",
|
|
"verify:pe:load-config": "npm run build:cached && node scripts/verify-pe-load-config.mjs",
|
|
"verify:flutter": "npm run build:cached && node scripts/verify-flutter.mjs",
|
|
"verify:adb": "npm run build:cached && node scripts/verify-adb.mjs",
|
|
"verify:ghidra": "npm run build:cached && node scripts/verify-real-ghidra.mjs",
|
|
"verify:ghidra:seeds": "npm run build:cached && node scripts/verify/ghidra/seeds.mjs",
|
|
"verify:ghidra:mips": "npm run build:cached && node scripts/verify-real-ghidra-mips.mjs",
|
|
"verify:ghidra:ppc": "npm run build:cached && node scripts/verify-real-ghidra-ppc.mjs",
|
|
"verify:ghidra:dol": "npm run build:cached && node scripts/verify-real-ghidra-dol.mjs",
|
|
"verify:ghidra:riscv": "npm run build:cached && node scripts/verify-real-ghidra-riscv.mjs",
|
|
"verify:ghidra:6502": "npm run build:cached && node scripts/verify-real-ghidra-6502.mjs",
|
|
"verify:ghidra:m68k": "npm run build:cached && node scripts/verify-real-ghidra-m68k.mjs",
|
|
"verify:ghidra:mips-shared": "npm run build:cached && node scripts/verify-real-ghidra-mips-shared.mjs",
|
|
"verify:ghidra:mips-relocatable": "npm run build:cached && node scripts/verify-real-ghidra-mips-relocatable.mjs",
|
|
"verify:ghidra:swift": "npm run build:cached && node scripts/verify-real-ghidra-swift.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:kuna": "npm run build:cached && node scripts/verify-real-kuna.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:raw": "npm run build:cached && node scripts/verify-real-ghidra-raw.mjs",
|
|
"verify:ghidra:address-context": "npm run build:cached && node scripts/verify-real-ghidra-address-context.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/apple/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:frida": "npm run build:cached && node scripts/verify-frida.mjs",
|
|
"verify:frida:bindings": "node scripts/run-typescript.mjs --noEmit -p tsconfig.frida-verification.json",
|
|
"verify:browser:dom": "node scripts/verify-browser-dom-destinations.mjs",
|
|
"verify:browser:network": "npm run build:cached && node scripts/verify-browser-network.mjs",
|
|
"verify:browser:request": "npm run build:cached && node scripts/verify-browser-request.mjs",
|
|
"verify:electron": "npm run build:cached && node scripts/verify-real-electron.mjs",
|
|
"verify:inspector": "npm run build:cached && node scripts/verify/inspector/runtime-observation.mjs",
|
|
"verify:javascript-runtime": "npm run build:cached && node scripts/verify/javascript/runtime-observation.mjs",
|
|
"verify:javascript:digests": "npm run build:cached && node scripts/verify/javascript/digests.mjs",
|
|
"verify:javascript:output": "npm run build:cached && node scripts/verify/javascript/output.mjs",
|
|
"verify:javascript:module-references": "npm run build:cached && node scripts/verify/javascript/module-references.mjs",
|
|
"verify:javascript:native-handoffs": "npm run build:cached && node scripts/verify/javascript/native-handoffs.mjs",
|
|
"verify:javascript:retained-facts": "npm run build:cached && node scripts/verify/javascript/retained-facts.mjs",
|
|
"verify:application-workflows": "npm run build:cached && node scripts/verify/javascript/application-workflows.mjs",
|
|
"verify:managed": "npm run build:cached && node scripts/verify/managed/conformance.mjs",
|
|
"verify:firmware": "npm run build:cached && node scripts/verify/firmware/analysis.mjs",
|
|
"verify:devicetree": "npm run build:cached && node scripts/verify/firmware/devicetree.mjs",
|
|
"verify:esp-images": "npm run build:cached && node scripts/verify/firmware/esp-image.mjs",
|
|
"fixtures:firmware": "node scripts/fixtures/firmware/generate.mjs",
|
|
"verify:android": "npm run build:cached && node scripts/verify/android/analysis.mjs",
|
|
"verify:jeb": "npm run build:cached && node scripts/verify-jeb.mjs",
|
|
"fixtures:android": "node scripts/fixtures/android/fetch.mjs",
|
|
"verify:harmony": "npm run build:cached && node scripts/verify/harmony/analysis.mjs",
|
|
"fixtures:harmony": "node scripts/fixtures/harmony/fetch.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 verify:fixtures && 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",
|
|
"verify:qwen-client": "npm run build:cached && node scripts/verify-qwen-client.mjs",
|
|
"verify:gemini-client": "npm run build:cached && node scripts/verify-gemini-client.mjs",
|
|
"verify:opencode-client": "npm run build:cached && node scripts/verify-opencode-client.mjs",
|
|
"verify:grok-client": "npm run build:cached && node scripts/verify-grok-client.mjs",
|
|
"verify:commandcode-client": "npm run build:cached && node scripts/verify-commandcode-client.mjs",
|
|
"verify:omp-client": "npm run build:cached && node scripts/verify-omp-client.mjs",
|
|
"verify:copilot-client": "npm run build:cached && node scripts/verify-copilot-client.mjs",
|
|
"verify:claude-client": "npm run build:cached && node scripts/verify-claude-client.mjs",
|
|
"verify:pi-client": "npm run build:cached && node scripts/verify-native-agent-client.mjs pi",
|
|
"verify:hermes-client": "npm run build:cached && node scripts/verify-native-agent-client.mjs hermes",
|
|
"verify:deepseek-client": "npm run build:cached && node scripts/verify-deepseek-client.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": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run artifacts:managed-evidence",
|
|
"evidence:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run evidence:check:built",
|
|
"predocs:dev": "npm run docs:generate",
|
|
"docs:dev": "vitepress dev docs",
|
|
"predocs:build": "npm run docs:generate",
|
|
"docs:build": "vitepress build docs",
|
|
"docs:preview": "vitepress preview docs",
|
|
"docs:generate": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts npm run docs:prepare",
|
|
"docs:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run docs:check:built && npm run test:local -- tests/conformance/readmeConsistency.test.ts",
|
|
"docs:check:built": "node scripts/generate-package-metadata.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 && npm run licenses:check",
|
|
"docs:error-schema": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run artifacts:error-schema",
|
|
"prepack": "node scripts/prepack.mjs",
|
|
"prepare": "node scripts/prepare.mjs",
|
|
"verify:asset-catalog": "npm run build:cached && node scripts/verify/apple/asset-catalog.mjs",
|
|
"verify:native-calls": "npm run build:cached && node scripts/verify-native-calls.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",
|
|
"test:sqlite": "npm run test:prepare && npm run test:sqlite:run",
|
|
"test:sqlite:run": "vitest run src/application/sqlite/ tests/boundary/sqlite/ tests/acceptance/sqliteDatabaseCli.test.ts tests/boundary/mcp/serverLifecycleMcp.test.ts",
|
|
"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:cutter": "npm run build:cached && node scripts/verify-real-cutter.mjs",
|
|
"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",
|
|
"verify:ghidra:bridge-sources": "node scripts/verify-ghidra-bridge-sources.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:browser:modules": "npm run build:cached && node scripts/verify-browser-modules.mjs",
|
|
"verify:test-discovery": "node scripts/verify-test-discovery.mjs",
|
|
"verify:javascript:recovery": "node scripts/verify/javascript/recovery.mjs",
|
|
"verify:module-boundaries": "node scripts/verify-module-boundaries.mjs",
|
|
"verify:browser:source-maps": "npm run build:cached && node scripts/verify-browser-source-maps.mjs",
|
|
"verify:browser:runtime": "npm run build:cached && node scripts/verify-browser-runtime.mjs",
|
|
"verify:web:network-captures": "npm run build:cached && node scripts/verify-web-network-captures.mjs",
|
|
"verify:agentenv:environment": "npm run build:cached && node scripts/verify-agentenv-environment.mjs",
|
|
"verify:web:http3": "npm run build:cached && node scripts/verify-http3-network-captures.mjs",
|
|
"verify:binary:layout": "npm run build:cached && node scripts/verify-binary-layout.mjs",
|
|
"verify:bun:standalone": "npm run build:cached && node scripts/verify-bun-standalone.mjs",
|
|
"verify:go:binary": "npm run build:cached && node scripts/verify-go-binary.mjs",
|
|
"verify:il2cpp:metadata": "npm run build:cached && node scripts/verify-il2cpp-metadata.mjs",
|
|
"verify:wasm:package": "npm run build:cached && node scripts/verify-packaged-wasm-artifact.mjs",
|
|
"verify:wasm-interface-comparison": "npm run build:cached && node scripts/verify-wasm-interface-comparison.mjs",
|
|
"verify:wasm:artifact": "npm run build:cached && node scripts/verify-wasm-artifact.mjs",
|
|
"verify:apk-signature": "npm run build:cached && node scripts/verify-apk-signature.mjs",
|
|
"verify:evm:interface": "npm run build:cached && node scripts/verify-evm-interface.mjs",
|
|
"verify:solidity:metadata": "npm run build:cached && node scripts/verify-solidity-metadata.mjs",
|
|
"verify:recorded:crash": "npm run build:cached && node scripts/verify-recorded-crash.mjs",
|
|
"mcp-catalog:check:built": "node scripts/generate-mcp-tool-catalog.mjs --check",
|
|
"compile": "node scripts/clean-build-output.mjs && node scripts/run-typescript.mjs -p tsconfig.build.json && node scripts/record-catalog-digests.mjs && node scripts/record-mcp-catalog.mjs && node scripts/bundle-runtime.mjs",
|
|
"compile:termux": "node scripts/clean-build-output.mjs && node --max-old-space-size=3072 node_modules/typescript-termux/lib/tsc.js -p tsconfig.build.json && node scripts/record-catalog-digests.mjs && node scripts/record-mcp-catalog.mjs && node scripts/bundle-runtime.mjs",
|
|
"artifacts:mcp-catalog": "node scripts/generate-mcp-tool-catalog.mjs",
|
|
"artifacts:skills": "node scripts/generate-skill-metadata.mjs",
|
|
"artifacts:product-catalog": "node scripts/generate-product-catalog.mjs",
|
|
"artifacts:managed-evidence": "node scripts/generate-completion-ledger.mjs",
|
|
"artifacts:error-schema": "node scripts/generate-error-schema.mjs",
|
|
"test:prepare": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts node scripts/run-turbo.mjs run artifacts:mcp-catalog artifacts:product-catalog artifacts:managed-evidence",
|
|
"evidence:check:built": "node scripts/generate-completion-ledger.mjs --check",
|
|
"docs:prepare": "node scripts/generate-package-metadata.mjs && node scripts/run-turbo.mjs run artifacts:product-catalog artifacts:managed-evidence artifacts:error-schema",
|
|
"verify:web:qlog": "npm run build:cached && node scripts/verify-qlog-captures.mjs",
|
|
"licenses:generate": "node scripts/generate-third-party-inventory.mjs",
|
|
"licenses:check": "node scripts/generate-third-party-inventory.mjs --check",
|
|
"lint:typed": "node scripts/ci/static-check-report.mjs typed-lint",
|
|
"knip:production": "node scripts/ci/production-reachability-report.mjs"
|
|
},
|
|
"lint-staged": {
|
|
"*.{cjs,cts,js,jsx,mjs,mts,ts,tsx}": [
|
|
"oxlint --fix",
|
|
"oxfmt"
|
|
],
|
|
"*.{json,md,yml,yaml}": "oxfmt --no-error-on-unmatched-pattern"
|
|
},
|
|
"dependencies": {
|
|
"@babel/parser": "8.0.4",
|
|
"@babel/types": "8.0.4",
|
|
"@bufbuild/protobuf": "2.16.0",
|
|
"@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",
|
|
"@msgpack/msgpack": "3.1.3",
|
|
"@xmldom/xmldom": "0.9.12",
|
|
"@xterm/addon-serialize": "0.14.0",
|
|
"@xterm/headless": "6.0.0",
|
|
"@zip.js/zip.js": "2.15.0",
|
|
"ajv": "8.20.0",
|
|
"ajv-formats": "3.0.1",
|
|
"canonicalize": "3.0.0",
|
|
"cborg": "6.1.3",
|
|
"cross-spawn": "7.0.6",
|
|
"diff": "9.0.0",
|
|
"evmole": "0.9.3",
|
|
"har-schema": "2.0.0",
|
|
"ignore": "7.0.6",
|
|
"incur": "0.6.1",
|
|
"isomorphic-git": "1.38.7",
|
|
"jsonc-parser": "3.3.1",
|
|
"lossless-json": "4.3.1",
|
|
"openpgp": "6.3.2",
|
|
"parse5": "8.0.1",
|
|
"pino": "10.4.0",
|
|
"playwright-core": "1.64.1",
|
|
"plist": "5.0.0",
|
|
"saxes": "6.0.0",
|
|
"semver": "7.8.5",
|
|
"smol-toml": "1.9.0",
|
|
"stream-chain": "4.2.6",
|
|
"stream-json": "3.7.0",
|
|
"tokenx": "1.3.0",
|
|
"write-file-atomic": "7.0.0",
|
|
"ws": "8.21.0",
|
|
"yaml": "2.9.0",
|
|
"zod": "4.6.6"
|
|
},
|
|
"overrides": {
|
|
"typed-rest-client": {
|
|
"qs": "6.16.1"
|
|
},
|
|
"vitepress": {
|
|
"vite": "6.4.4"
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@fast-check/vitest": "0.5.0",
|
|
"@stryker-mutator/core": "10.0.0",
|
|
"@stryker-mutator/typescript-checker": "10.0.0",
|
|
"@stryker-mutator/vitest-runner": "10.0.0",
|
|
"@toon-format/toon": "2.3.1",
|
|
"@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",
|
|
"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",
|
|
"oxlint-tsgolint": "7.0.2005",
|
|
"release-please": "17.3.0",
|
|
"rolldown": "1.2.12",
|
|
"tsrs": "0.18.0-ts7.1.0-dev.20260929",
|
|
"tsx": "4.23.15",
|
|
"turbo": "2.11.7",
|
|
"typescript": "7.0.2",
|
|
"typescript-termux": "npm:[email protected]",
|
|
"typescript6": "npm:[email protected]",
|
|
"vitepress": "1.6.4",
|
|
"vitest": "5.0.3"
|
|
},
|
|
"optionalDependencies": {
|
|
"frida": "17.23.2"
|
|
},
|
|
"allowScripts": {
|
|
"[email protected]": true
|
|
}
|
|
}
|