mirror of
https://github.com/morluto/rea
synced 2026-10-26 14:25:49 -04:00
edccb430c4
* chore: restack environment fidelity onto main Keep probe comparison, paging, and tied-create behavior on main after #5600. Capture parsing keeps field-path errors and records whether a probe kept request and response bodies. Co-authored-by: morluto <morluto@users.noreply.github.com> * fix(environment): keep served collection order with the fidelity checks The tied-create collection order lives with the checks that match encoded parents. The write simulation reads field checks from that attribution, and taint uses the same segment match. Co-authored-by: morluto <morluto@users.noreply.github.com> * fix(environment): translate an object's keys only when it is keyed by learned ids Differ.object mapped every key through the probe's id map, so a field named like a learned id was compared with another field, and a real rename could pass as a mapped key. Keys now translate only for an object keyed by learned ids as learning reads one: a key both sides share needs every key evidently an id, and otherwise each entry is an entity or each key evidently an id. Any other object compares field by field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: morluto <morluto@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
273 lines
11 KiB
TypeScript
273 lines
11 KiB
TypeScript
/** Canonical names used by every one-shot CLI command registration. */
|
|
export const CLI_COMMANDS = Object.freeze({
|
|
inspectPacketFields: "inspect-packet-fields",
|
|
inspectPacketCapture: "inspect-packet-capture",
|
|
inspectSignalDecoders: "inspect-signal-decoders",
|
|
decodeSignalRecording: "decode-signal-recording",
|
|
matchNativeFunctions: "match-native-functions",
|
|
compareWasmInterfaces: "compare-wasm-interfaces",
|
|
inspectWasmArtifact: "inspect-wasm-artifact",
|
|
inspectApkSignature: "inspect-apk-signature",
|
|
inspectSqliteDatabase: "inspect-sqlite-database",
|
|
inspectEvmInterface: "inspect-evm-interface",
|
|
inspectWebNetworkCapture: "inspect-web-network-capture",
|
|
observeWebExecution: "observe-web-execution",
|
|
inspectWebEventListeners: "inspect-web-event-listeners",
|
|
traceWebSourceLocation: "trace-web-source-location",
|
|
traceWebModuleImports: "trace-web-module-imports",
|
|
analyze: "analyze",
|
|
inspect: "inspect",
|
|
decompile: "decompile",
|
|
setup: "setup",
|
|
doctor: "doctor",
|
|
uninstall: "uninstall",
|
|
update: "update",
|
|
xrefs: "xrefs",
|
|
trace: "trace",
|
|
traceNativeUiAction: "trace-native-ui-action",
|
|
inspectNativeDispatchMetadata: "inspect-native-dispatch-metadata",
|
|
capabilities: "capabilities",
|
|
providers: "providers",
|
|
function: "function",
|
|
annotateNativeFunction: "annotate-native-function",
|
|
inspectNativeApi: "inspect-native-api",
|
|
instructions: "instructions",
|
|
search: "search",
|
|
importReferenceSource: "import-reference-source",
|
|
inspectArtifact: "inspect-artifact",
|
|
extractArtifact: "extract-artifact",
|
|
decodeInterfaceBuilder: "decode-interface-builder",
|
|
inspectKeyedArchive: "inspect-keyed-archive",
|
|
traceDylibResolution: "trace-dylib-resolution",
|
|
inspectNativeDataType: "inspect-native-data-type",
|
|
inspectNativeLoadImage: "inspect-native-load-image",
|
|
readBytes: "read-bytes",
|
|
searchBytes: "search-bytes",
|
|
addressToFileOffset: "address-to-file-offset",
|
|
traceNativeValues: "trace-native-values",
|
|
inspectNativeInstruction: "inspect-native-instruction",
|
|
resolveNativeCallTargets: "resolve-native-call-targets",
|
|
inspectAssetCatalog: "inspect-asset-catalog",
|
|
inspectManagedArtifact: "inspect-managed-artifact",
|
|
inspectRecordedCrash: "inspect-recorded-crash",
|
|
inspectByteEntropy: "inspect-byte-entropy",
|
|
inspectBinaryLayout: "inspect-binary-layout",
|
|
listCutterSessions: "list-cutter-sessions",
|
|
cutterCommand: "cutter-command",
|
|
inspectWithObjdump: "inspect-with-objdump",
|
|
listObjdumpArchitectures: "list-objdump-architectures",
|
|
executeRizinCommand: "execute-rizin-command",
|
|
debugWithGdb: "debug-with-gdb",
|
|
debugWithRizin: "debug-with-rizin",
|
|
|
|
inspectDesktopApplication: "inspect-desktop-application",
|
|
inspectGoBinary: "inspect-go-binary",
|
|
inspectIl2cppMetadata: "inspect-il2cpp-metadata",
|
|
inspectModelArtifact: "inspect-model-artifact",
|
|
inspectGpuCodeObjects: "inspect-gpu-code-objects",
|
|
inspectRustBinary: "inspect-rust-binary",
|
|
inspectPythonPyc: "inspect-python-pyc",
|
|
inspectErlangBeam: "inspect-erlang-beam",
|
|
inspectPeResources: "inspect-pe-resources",
|
|
inspectPeCertificates: "inspect-pe-certificates",
|
|
inspectNativeExports: "inspect-native-exports",
|
|
inspectElfNotes: "inspect-elf-notes",
|
|
inspectAnalysisView: "inspect-analysis-view",
|
|
listFridaDevices: "list-frida-devices",
|
|
listFridaProcesses: "list-frida-processes",
|
|
instrumentWithFrida: "instrument-with-frida",
|
|
inspectEvidenceBundle: "inspect-evidence-bundle",
|
|
inspectFirmwareRegions: "inspect-firmware-regions",
|
|
extractFirmware: "extract-firmware",
|
|
inspectAndroidPackage: "inspect-android-package",
|
|
inspectPcapClient: "inspect-pcap-client",
|
|
inspectPcapCapture: "inspect-pcap-capture",
|
|
identifyFlutterBuild: "identify-flutter-build",
|
|
inspectDartAot: "inspect-dart-aot",
|
|
inspectApktoolClient: "inspect-apktool-client",
|
|
decodeAndroidResources: "decode-android-resources",
|
|
inspectAdbClient: "inspect-adb-client",
|
|
listAdbDevices: "list-adb-devices",
|
|
inspectAdbDevice: "inspect-adb-device",
|
|
listAdbPackages: "list-adb-packages",
|
|
pullAdbPackage: "pull-adb-package",
|
|
readAdbLogcat: "read-adb-logcat",
|
|
inspectAdbPackage: "inspect-adb-package",
|
|
pullAdbFile: "pull-adb-file",
|
|
pushAdbFile: "push-adb-file",
|
|
captureAdbScreen: "capture-adb-screen",
|
|
listAdbProcesses: "list-adb-processes",
|
|
listAdbDirectory: "list-adb-directory",
|
|
listAdbFeatures: "list-adb-features",
|
|
listAdbServices: "list-adb-services",
|
|
inspectAdbDisplay: "inspect-adb-display",
|
|
inspectAdbWindow: "inspect-adb-window",
|
|
readAdbSetting: "read-adb-setting",
|
|
collectAdbBugreport: "collect-adb-bugreport",
|
|
resolveAdbPackages: "resolve-adb-packages",
|
|
installAdbPackage: "install-adb-package",
|
|
uninstallAdbPackage: "uninstall-adb-package",
|
|
startAdbApp: "start-adb-app",
|
|
startAdbActivity: "start-adb-activity",
|
|
stopAdbApp: "stop-adb-app",
|
|
searchAndroidClasses: "search-android-classes",
|
|
inspectAndroidClass: "inspect-android-class",
|
|
inspectAndroidMethod: "inspect-android-method",
|
|
traceAndroidReferences: "trace-android-references",
|
|
inspectJebClient: "inspect-jeb-client",
|
|
openJebProject: "open-jeb-project",
|
|
listJebUnits: "list-jeb-units",
|
|
decompileJebItem: "decompile-jeb-item",
|
|
inspectManagedMembers: "inspect-managed-members",
|
|
inspectManagedNativeBoundaries: "inspect-managed-native-boundaries",
|
|
compareManagedMembers: "compare-managed-members",
|
|
verifyManagedNativeBoundaries: "verify-managed-native-boundaries",
|
|
importManagedReconstruction: "import-managed-reconstruction",
|
|
projectManagedApplicationGraph: "project-managed-application-graph",
|
|
observeNativeUi: "observe-native-ui",
|
|
observeNativeCalls: "observe-native-calls",
|
|
captureNativeUiScenario: "capture-native-ui-scenario",
|
|
inspectMacho: "inspect-macho",
|
|
inspectSignature: "inspect-signature",
|
|
listArchitectures: "list-architectures",
|
|
inspectPlist: "inspect-plist",
|
|
demangleSwift: "demangle-swift",
|
|
evidenceImport: "evidence-import",
|
|
evidenceExport: "evidence-export",
|
|
environmentServe: "environment-serve",
|
|
environmentExport: "environment-export",
|
|
environmentCompare: "environment-compare",
|
|
compare: "compare",
|
|
captureProcess: "capture-process",
|
|
compareProcessCaptures: "compare-process-captures",
|
|
listBrowserTargets: "list-browser-targets",
|
|
inspectWebPage: "inspect-web-page",
|
|
analyzeWebBundle: "analyze-web-bundle",
|
|
exportWebScripts: "export-web-scripts",
|
|
recoverJavaScriptSources: "recover-javascript-sources",
|
|
observeWebSession: "observe-web-session",
|
|
discoverWebMcpTools: "discover-webmcp-tools",
|
|
compareWebCaptures: "compare-web-captures",
|
|
captureWebScreenshot: "capture-web-screenshot",
|
|
compareWebScreenshots: "compare-web-screenshots",
|
|
captureBrowserScenario: "capture-browser-scenario",
|
|
listElectronTargets: "list-electron-targets",
|
|
inspectElectronPage: "inspect-electron-page",
|
|
inspectElectronFuses: "inspect-electron-fuses",
|
|
captureElectronScenario: "capture-electron-scenario",
|
|
listJavaScriptRuntimeTargets: "list-javascript-runtime-targets",
|
|
observeJavaScriptRuntime: "observe-javascript-runtime",
|
|
analyzeJavaScriptApplication: "analyze-javascript-application",
|
|
reconcileJavaScriptRuntime: "reconcile-javascript-runtime",
|
|
traceApplicationFeature: "trace-application-feature",
|
|
traceJavaScriptSemantics: "trace-javascript-semantics",
|
|
compareApplicationVersions: "compare-application-versions",
|
|
compareSourceToBundle: "compare-source-to-bundle",
|
|
compareJavaScriptExportShapes: "compare-javascript-export-shapes",
|
|
buildReconstructionObligationLedger: "build-reconstruction-obligation-ledger",
|
|
evaluateReconstructionCoverage: "evaluate-reconstruction-coverage",
|
|
projectAndroidApplicationGraph: "project-android-application-graph",
|
|
projectAppleApplicationGraph: "project-apple-application-graph",
|
|
projectHarmonyApplicationGraph: "project-harmony-application-graph",
|
|
});
|
|
|
|
/** Ordered primary CLI inventory; aliases are intentionally excluded. */
|
|
export const CLI_COMMAND_NAMES = Object.freeze(Object.values(CLI_COMMANDS));
|
|
|
|
/** Command aliases registered on top of the primary CLI command inventory. */
|
|
export const CLI_COMMAND_ALIASES = Object.freeze(["compare-bundles"]);
|
|
|
|
/** Canonical MCP operations reached by CLI commands with different names. */
|
|
export const CLI_COMMAND_TOOL_ALIASES = Object.freeze({
|
|
analyze: ["binary_overview"],
|
|
inspect: ["binary_overview"],
|
|
decompile: ["procedure_pseudo_code"],
|
|
function: ["analyze_function"],
|
|
instructions: ["read_function_instructions"],
|
|
trace: ["trace_feature"],
|
|
search: ["search_strings", "search_procedures"],
|
|
"capture-process": ["capture_process_scenario"],
|
|
"compare-bundles": ["compare_bundles"],
|
|
"list-cutter-sessions": ["list_cutter_sessions"],
|
|
"cutter-command": ["cutter_command"],
|
|
"inspect-with-objdump": ["inspect_with_objdump"],
|
|
"list-objdump-architectures": ["inspect_with_objdump"],
|
|
"execute-rizin-command": ["execute_rizin_command"],
|
|
"debug-with-gdb": ["gdb_console"],
|
|
"debug-with-rizin": ["rizin_debug_command"],
|
|
"list-frida-devices": ["list_frida_devices"],
|
|
"list-frida-processes": ["list_frida_processes"],
|
|
"instrument-with-frida": ["instrument_with_frida"],
|
|
});
|
|
|
|
/** MCP operations without a dedicated CLI command or direct command alias. */
|
|
export const MCP_TOOLS_WITHOUT_DEDICATED_CLI = Object.freeze([
|
|
// MCP session control selects a resource root; CLI resource commands take paths directly.
|
|
"open_bundle_resources",
|
|
"address_name",
|
|
"comment",
|
|
"current_address",
|
|
"current_procedure",
|
|
"current_document",
|
|
"goto_address",
|
|
"inline_comment",
|
|
"list_bookmarks",
|
|
"list_documents",
|
|
"list_names",
|
|
"list_procedures",
|
|
"list_segments",
|
|
"list_strings",
|
|
"next_address",
|
|
"prev_address",
|
|
"procedure_address",
|
|
"procedure_assembly",
|
|
"procedure_callees",
|
|
"procedure_callers",
|
|
"procedure_info",
|
|
"procedure_references",
|
|
"resolve_containing_procedure",
|
|
"set_address_name",
|
|
"set_addresses_names",
|
|
"set_bookmark",
|
|
"set_comment",
|
|
"set_inline_comment",
|
|
"unset_bookmark",
|
|
"get_objc_classes",
|
|
"get_objc_protocols",
|
|
"batch_decompile",
|
|
"get_call_graph",
|
|
"analyze_swift_types",
|
|
"find_xrefs_to_name",
|
|
"trace_call_path",
|
|
"open_binary",
|
|
"close_binary",
|
|
"binary_session",
|
|
"export_evidence_bundle",
|
|
"import_evidence_bundle",
|
|
"compare_artifacts",
|
|
"compare_functions",
|
|
"find_changed_behavior",
|
|
"build_call_path",
|
|
"correlate_static_and_runtime",
|
|
"verify_reconstruction",
|
|
"list_unknowns",
|
|
"record_unknown",
|
|
"update_unknown",
|
|
"verify_unknown_resolution",
|
|
"get_evidence_bundle",
|
|
"get_navigation_context",
|
|
"inspect_address_context",
|
|
"start_gdb_session",
|
|
"gdb_session_status",
|
|
"close_gdb_session",
|
|
"start_rizin_debug_session",
|
|
"rizin_debug_session_status",
|
|
"close_rizin_debug_session",
|
|
"start_frida_session",
|
|
"load_frida_script",
|
|
"resume_frida_session",
|
|
"unload_frida_script",
|
|
"frida_session_status",
|
|
"close_frida_session",
|
|
]);
|