mirror of
https://github.com/morluto/rea.git
synced 2026-10-12 02:19:24 +00:00
* fix(domain): bound JSON depth and oversized payloads at parsing boundaries jsonValueSchema re-walked hostile input through z.json()'s recursive core, so a deeply nested payload from an MCP tool argument, inline evidence, provider result, or keyed archive threw RangeError: Maximum call stack size exceeded instead of a validation issue. The schema now runs an iterative depth guard first and keeps z.json() for full JSON semantics behind it, which also turns cyclic values into validation errors. The 1000-edge limit stays far below the range where the recursive core overflows its stack (measured between 2000 and 3000 on Node 24) while leaving room for legitimately deep target-derived trees such as compiled NIB view hierarchies, and the guard narrows with a typed record check instead of any or unchecked casts. The non-recursive JSON Schema advertisement stays intact on both the public and standard projection paths. Two payload sizes get explicit budgets tied to their producer constraints: web text artifacts reject beyond the 16 MiB source budget the web tooling already advertises, and native UI screenshot base64 beyond the 64 MiB helper output budget. Regenerated product catalog, skill catalog digest, and completion-ledger manifest follow the schema-boundary change. * fix(validation): preserve depth diagnostics across process inputs --------- Co-authored-by: N0zoM1z0 <[email protected]>
723 lines
19 KiB
JSON
723 lines
19 KiB
JSON
{
|
|
"package": {
|
|
"name": "rea-agents",
|
|
"version": "6.0.0",
|
|
"sdk": {
|
|
"server": "2.3.1",
|
|
"client": "2.3.1",
|
|
"core": "2.3.1"
|
|
},
|
|
"skill_version": "33"
|
|
},
|
|
"tools": {
|
|
"total": 139,
|
|
"families": [
|
|
{
|
|
"id": "direct",
|
|
"surface": "official-proxy",
|
|
"count": 41,
|
|
"tools": [
|
|
"address_name",
|
|
"address_to_file_offset",
|
|
"annotate_native_function",
|
|
"comment",
|
|
"current_address",
|
|
"current_document",
|
|
"current_procedure",
|
|
"goto_address",
|
|
"inline_comment",
|
|
"inspect_native_data_type",
|
|
"inspect_native_instruction",
|
|
"inspect_native_load_image",
|
|
"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_pseudo_code",
|
|
"procedure_references",
|
|
"read_bytes",
|
|
"read_function_instructions",
|
|
"resolve_containing_procedure",
|
|
"resolve_native_call_targets",
|
|
"search_procedures",
|
|
"search_strings",
|
|
"set_address_name",
|
|
"set_addresses_names",
|
|
"set_bookmark",
|
|
"set_comment",
|
|
"set_current_document",
|
|
"set_inline_comment",
|
|
"unset_bookmark",
|
|
"xrefs"
|
|
]
|
|
},
|
|
{
|
|
"id": "enhanced",
|
|
"surface": "enhanced",
|
|
"count": 14,
|
|
"tools": [
|
|
"analyze_function",
|
|
"analyze_swift_types",
|
|
"batch_decompile",
|
|
"binary_overview",
|
|
"find_xrefs_to_name",
|
|
"get_call_graph",
|
|
"get_objc_classes",
|
|
"get_objc_protocols",
|
|
"inspect_native_api",
|
|
"inspect_native_dispatch_metadata",
|
|
"trace_call_path",
|
|
"trace_feature",
|
|
"trace_native_ui_action",
|
|
"trace_native_values"
|
|
]
|
|
},
|
|
{
|
|
"id": "native",
|
|
"surface": "native-provider",
|
|
"count": 10,
|
|
"tools": [
|
|
"capture_native_ui_scenario",
|
|
"demangle_swift",
|
|
"inspect_binary_layout",
|
|
"inspect_macho",
|
|
"inspect_plist",
|
|
"inspect_recorded_crash",
|
|
"inspect_signature",
|
|
"list_architectures",
|
|
"observe_native_calls",
|
|
"observe_native_ui"
|
|
]
|
|
},
|
|
{
|
|
"id": "artifact",
|
|
"surface": "artifact-provider",
|
|
"count": 7,
|
|
"tools": [
|
|
"decode_interface_builder",
|
|
"extract_artifact",
|
|
"inspect_artifact",
|
|
"inspect_asset_catalog",
|
|
"inspect_evm_interface",
|
|
"inspect_keyed_archive",
|
|
"trace_dylib_resolution"
|
|
]
|
|
},
|
|
{
|
|
"id": "managed",
|
|
"surface": "managed",
|
|
"count": 7,
|
|
"tools": [
|
|
"compare_managed_members",
|
|
"import_managed_reconstruction",
|
|
"inspect_managed_artifact",
|
|
"inspect_managed_members",
|
|
"inspect_managed_native_boundaries",
|
|
"project_managed_application_graph",
|
|
"verify_managed_native_boundaries"
|
|
]
|
|
},
|
|
{
|
|
"id": "firmware",
|
|
"surface": "firmware-provider",
|
|
"count": 2,
|
|
"tools": ["extract_firmware", "inspect_firmware_regions"]
|
|
},
|
|
{
|
|
"id": "android",
|
|
"surface": "android-provider",
|
|
"count": 5,
|
|
"tools": [
|
|
"inspect_android_class",
|
|
"inspect_android_method",
|
|
"inspect_android_package",
|
|
"search_android_classes",
|
|
"trace_android_references"
|
|
]
|
|
},
|
|
{
|
|
"id": "browser",
|
|
"surface": "browser-provider",
|
|
"count": 12,
|
|
"tools": [
|
|
"analyze_web_bundle",
|
|
"capture_browser_scenario",
|
|
"capture_web_screenshot",
|
|
"compare_web_captures",
|
|
"compare_web_screenshots",
|
|
"discover_webmcp_tools",
|
|
"inspect_web_event_listeners",
|
|
"inspect_web_network_capture",
|
|
"inspect_web_page",
|
|
"list_browser_targets",
|
|
"observe_web_execution",
|
|
"observe_web_session"
|
|
]
|
|
},
|
|
{
|
|
"id": "electron",
|
|
"surface": "electron-provider",
|
|
"count": 5,
|
|
"tools": [
|
|
"analyze_javascript_application",
|
|
"capture_electron_scenario",
|
|
"inspect_electron_page",
|
|
"list_electron_targets",
|
|
"reconcile_javascript_runtime"
|
|
]
|
|
},
|
|
{
|
|
"id": "javascript-runtime",
|
|
"surface": "runtime-provider",
|
|
"count": 2,
|
|
"tools": [
|
|
"list_javascript_runtime_targets",
|
|
"observe_javascript_runtime"
|
|
]
|
|
},
|
|
{
|
|
"id": "application",
|
|
"surface": "application-workflow",
|
|
"count": 13,
|
|
"tools": [
|
|
"build_reconstruction_obligation_ledger",
|
|
"compare_application_versions",
|
|
"compare_javascript_export_shapes",
|
|
"compare_source_to_bundle",
|
|
"evaluate_reconstruction_coverage",
|
|
"export_web_scripts",
|
|
"project_android_application_graph",
|
|
"project_apple_application_graph",
|
|
"recover_javascript_sources",
|
|
"trace_application_feature",
|
|
"trace_javascript_semantics",
|
|
"trace_web_module_imports",
|
|
"trace_web_source_location"
|
|
]
|
|
},
|
|
{
|
|
"id": "session",
|
|
"surface": "session",
|
|
"count": 21,
|
|
"tools": [
|
|
"binary_session",
|
|
"build_call_path",
|
|
"capture_process_scenario",
|
|
"close_binary",
|
|
"compare_artifacts",
|
|
"compare_bundles",
|
|
"compare_functions",
|
|
"compare_process_captures",
|
|
"correlate_static_and_runtime",
|
|
"export_evidence_bundle",
|
|
"find_changed_behavior",
|
|
"get_evidence_bundle",
|
|
"get_navigation_context",
|
|
"import_evidence_bundle",
|
|
"inspect_address_context",
|
|
"list_unknowns",
|
|
"open_binary",
|
|
"record_unknown",
|
|
"update_unknown",
|
|
"verify_reconstruction",
|
|
"verify_unknown_resolution"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"providers": [
|
|
{
|
|
"id": "binwalk",
|
|
"name": "Binwalk",
|
|
"version": "3.1.0",
|
|
"capabilities": ["inspect_firmware_regions"]
|
|
},
|
|
{
|
|
"id": "evmole-interface",
|
|
"name": "REA EVM interface adapter",
|
|
"version": "[email protected]",
|
|
"capabilities": ["inspect_evm_interface"]
|
|
},
|
|
{
|
|
"id": "ghidra",
|
|
"name": "Ghidra",
|
|
"version": null,
|
|
"capabilities": [
|
|
"address_name",
|
|
"address_to_file_offset",
|
|
"analyze_function",
|
|
"annotate_native_function",
|
|
"inspect_native_data_type",
|
|
"inspect_native_instruction",
|
|
"inspect_native_load_image",
|
|
"list_documents",
|
|
"list_names",
|
|
"list_procedures",
|
|
"list_segments",
|
|
"list_strings",
|
|
"procedure_address",
|
|
"procedure_assembly",
|
|
"procedure_callees",
|
|
"procedure_callers",
|
|
"procedure_info",
|
|
"procedure_pseudo_code",
|
|
"procedure_references",
|
|
"read_bytes",
|
|
"read_function_instructions",
|
|
"resolve_containing_procedure",
|
|
"resolve_native_call_targets",
|
|
"search_procedures",
|
|
"search_strings",
|
|
"xrefs"
|
|
]
|
|
},
|
|
{
|
|
"id": "har-schema/lossless-json",
|
|
"name": "REA HAR capture adapter",
|
|
"version": "[email protected];[email protected];[email protected]",
|
|
"capabilities": ["inspect_web_network_capture"]
|
|
},
|
|
{
|
|
"id": "hopper",
|
|
"name": "Hopper Disassembler",
|
|
"version": null,
|
|
"capabilities": [
|
|
"address_name",
|
|
"address_to_file_offset",
|
|
"analyze_function",
|
|
"comment",
|
|
"current_address",
|
|
"current_document",
|
|
"current_procedure",
|
|
"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_pseudo_code",
|
|
"procedure_references",
|
|
"read_bytes",
|
|
"read_function_instructions",
|
|
"resolve_containing_procedure",
|
|
"search_procedures",
|
|
"search_strings",
|
|
"set_address_name",
|
|
"set_addresses_names",
|
|
"set_bookmark",
|
|
"set_comment",
|
|
"set_current_document",
|
|
"set_inline_comment",
|
|
"unset_bookmark",
|
|
"xrefs"
|
|
]
|
|
},
|
|
{
|
|
"id": "ida",
|
|
"name": "IDA Pro MCP adapter",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"analyze_function",
|
|
"list_procedures",
|
|
"list_strings",
|
|
"procedure_address",
|
|
"procedure_assembly",
|
|
"procedure_callees",
|
|
"procedure_callers",
|
|
"procedure_pseudo_code",
|
|
"read_function_instructions",
|
|
"search_procedures",
|
|
"search_strings",
|
|
"xrefs"
|
|
]
|
|
},
|
|
{
|
|
"id": "jadx",
|
|
"name": "JADX headless",
|
|
"version": "0.7.1",
|
|
"capabilities": [
|
|
"inspect_android_class",
|
|
"inspect_android_method",
|
|
"inspect_android_package",
|
|
"search_android_classes",
|
|
"trace_android_references"
|
|
]
|
|
},
|
|
{
|
|
"id": "mitmproxy-native-tnetstring",
|
|
"name": "REA offline native mitmproxy adapter",
|
|
"version": "12.2.3",
|
|
"capabilities": ["inspect_web_network_capture"]
|
|
},
|
|
{
|
|
"id": "native-macos",
|
|
"name": "macOS native inspection utilities",
|
|
"version": null,
|
|
"capabilities": [
|
|
"capture_native_ui_scenario",
|
|
"demangle_swift",
|
|
"inspect_macho",
|
|
"inspect_plist",
|
|
"inspect_signature",
|
|
"list_architectures",
|
|
"observe_native_calls",
|
|
"observe_native_ui"
|
|
]
|
|
},
|
|
{
|
|
"id": "pwntools-elf",
|
|
"name": "REA pwntools ELF adapter",
|
|
"version": "[email protected];[email protected];[email protected]",
|
|
"capabilities": ["inspect_binary_layout", "inspect_recorded_crash"]
|
|
},
|
|
{
|
|
"id": "rea-android-application",
|
|
"name": "REA Android application workflows",
|
|
"version": "1",
|
|
"capabilities": ["project_android_application_graph"]
|
|
},
|
|
{
|
|
"id": "rea-apple-application",
|
|
"name": "REA Apple application workflows",
|
|
"version": "1",
|
|
"capabilities": ["project_apple_application_graph"]
|
|
},
|
|
{
|
|
"id": "rea-artifact-graph",
|
|
"name": "REA safe artifact graph provider",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"decode_interface_builder",
|
|
"extract_artifact",
|
|
"inspect_artifact",
|
|
"inspect_asset_catalog",
|
|
"inspect_keyed_archive",
|
|
"trace_dylib_resolution"
|
|
]
|
|
},
|
|
{
|
|
"id": "rea-cdp-browser",
|
|
"name": "REA Chrome DevTools Protocol observation provider",
|
|
"version": "2",
|
|
"capabilities": [
|
|
"analyze_web_bundle",
|
|
"capture_web_screenshot",
|
|
"compare_web_captures",
|
|
"compare_web_screenshots",
|
|
"discover_webmcp_tools",
|
|
"inspect_web_event_listeners",
|
|
"inspect_web_page",
|
|
"list_browser_targets",
|
|
"observe_web_execution",
|
|
"observe_web_session"
|
|
]
|
|
},
|
|
{
|
|
"id": "rea-cdp-electron",
|
|
"name": "REA Electron file-page CDP observation provider",
|
|
"version": "1",
|
|
"capabilities": ["inspect_electron_page", "list_electron_targets"]
|
|
},
|
|
{
|
|
"id": "rea-dotnet-static",
|
|
"name": "REA managed static analysis provider",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"inspect_managed_artifact",
|
|
"inspect_managed_members",
|
|
"inspect_managed_native_boundaries"
|
|
]
|
|
},
|
|
{
|
|
"id": "rea-dotnet-workflows",
|
|
"name": "REA managed-code workflows",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"compare_managed_members",
|
|
"import_managed_reconstruction",
|
|
"project_managed_application_graph",
|
|
"verify_managed_native_boundaries"
|
|
]
|
|
},
|
|
{
|
|
"id": "rea-javascript-application",
|
|
"name": "REA JavaScript application analyzer",
|
|
"version": "1",
|
|
"capabilities": ["analyze_javascript_application"]
|
|
},
|
|
{
|
|
"id": "rea-javascript-application-workflows",
|
|
"name": "REA JavaScript application workflows",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"build_reconstruction_obligation_ledger",
|
|
"compare_application_versions",
|
|
"compare_javascript_export_shapes",
|
|
"compare_source_to_bundle",
|
|
"evaluate_reconstruction_coverage",
|
|
"trace_application_feature",
|
|
"trace_javascript_semantics"
|
|
]
|
|
},
|
|
{
|
|
"id": "rea-javascript-runtime-reconciliation",
|
|
"name": "REA JavaScript runtime reconciliation",
|
|
"version": "1",
|
|
"capabilities": ["reconcile_javascript_runtime"]
|
|
},
|
|
{
|
|
"id": "rea-playwright-browser-scenario",
|
|
"name": "REA Playwright browser scenario capture provider",
|
|
"version": "1",
|
|
"capabilities": ["capture_browser_scenario"]
|
|
},
|
|
{
|
|
"id": "rea-playwright-electron-active",
|
|
"name": "REA Playwright active Electron observation provider",
|
|
"version": "1",
|
|
"capabilities": ["capture_electron_scenario"]
|
|
},
|
|
{
|
|
"id": "rea-v8-inspector",
|
|
"name": "REA passive Node/Electron V8 Inspector provider",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"list_javascript_runtime_targets",
|
|
"observe_javascript_runtime"
|
|
]
|
|
},
|
|
{
|
|
"id": "rea-web-script-export",
|
|
"name": "REA captured script export",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"export_web_scripts",
|
|
"trace_web_module_imports",
|
|
"trace_web_source_location"
|
|
]
|
|
},
|
|
{
|
|
"id": "unblob",
|
|
"name": "Unblob",
|
|
"version": "26.6.4",
|
|
"capabilities": ["extract_firmware"]
|
|
},
|
|
{
|
|
"id": "wakaru",
|
|
"name": "Wakaru",
|
|
"version": "1.13.0",
|
|
"capabilities": ["recover_javascript_sources"]
|
|
}
|
|
],
|
|
"setup_clients": [
|
|
{
|
|
"id": "claude_code",
|
|
"display_name": "Claude Code",
|
|
"format": "json",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "claude_desktop",
|
|
"display_name": "Claude Desktop",
|
|
"format": "json",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "codex",
|
|
"display_name": "Codex",
|
|
"format": "toml",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "cursor",
|
|
"display_name": "Cursor",
|
|
"format": "json",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "gemini_cli",
|
|
"display_name": "Gemini CLI",
|
|
"format": "json",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "windsurf",
|
|
"display_name": "Windsurf",
|
|
"format": "json",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "devin",
|
|
"display_name": "Devin",
|
|
"format": "json",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "opencode",
|
|
"display_name": "OpenCode",
|
|
"format": "opencode",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "antigravity",
|
|
"display_name": "Antigravity",
|
|
"format": "json",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "copilot_cli",
|
|
"display_name": "GitHub Copilot CLI",
|
|
"format": "copilot_cli",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "commandcode",
|
|
"display_name": "Command Code",
|
|
"format": "commandcode",
|
|
"configuration": "managed"
|
|
},
|
|
{
|
|
"id": "vscode",
|
|
"display_name": "VS Code",
|
|
"format": "vscode",
|
|
"configuration": "managed"
|
|
}
|
|
],
|
|
"cli": {
|
|
"primary_count": 94,
|
|
"commands": [
|
|
"address-to-file-offset",
|
|
"analyze",
|
|
"analyze-javascript-application",
|
|
"analyze-web-bundle",
|
|
"annotate-native-function",
|
|
"build-reconstruction-obligation-ledger",
|
|
"capabilities",
|
|
"capture-browser-scenario",
|
|
"capture-electron-scenario",
|
|
"capture-native-ui-scenario",
|
|
"capture-process",
|
|
"capture-web-screenshot",
|
|
"compare",
|
|
"compare-application-versions",
|
|
"compare-javascript-export-shapes",
|
|
"compare-managed-members",
|
|
"compare-process-captures",
|
|
"compare-source-to-bundle",
|
|
"compare-web-captures",
|
|
"compare-web-screenshots",
|
|
"decode-interface-builder",
|
|
"decompile",
|
|
"demangle-swift",
|
|
"discover-webmcp-tools",
|
|
"doctor",
|
|
"evaluate-reconstruction-coverage",
|
|
"evidence-export",
|
|
"evidence-import",
|
|
"export-web-scripts",
|
|
"extract-artifact",
|
|
"extract-firmware",
|
|
"function",
|
|
"import-managed-reconstruction",
|
|
"import-reference-source",
|
|
"inspect",
|
|
"inspect-android-class",
|
|
"inspect-android-method",
|
|
"inspect-android-package",
|
|
"inspect-artifact",
|
|
"inspect-asset-catalog",
|
|
"inspect-binary-layout",
|
|
"inspect-electron-page",
|
|
"inspect-evm-interface",
|
|
"inspect-firmware-regions",
|
|
"inspect-keyed-archive",
|
|
"inspect-macho",
|
|
"inspect-managed-artifact",
|
|
"inspect-managed-members",
|
|
"inspect-managed-native-boundaries",
|
|
"inspect-native-api",
|
|
"inspect-native-data-type",
|
|
"inspect-native-dispatch-metadata",
|
|
"inspect-native-instruction",
|
|
"inspect-native-load-image",
|
|
"inspect-plist",
|
|
"inspect-recorded-crash",
|
|
"inspect-signature",
|
|
"inspect-web-event-listeners",
|
|
"inspect-web-network-capture",
|
|
"inspect-web-page",
|
|
"instructions",
|
|
"list-architectures",
|
|
"list-browser-targets",
|
|
"list-electron-targets",
|
|
"list-javascript-runtime-targets",
|
|
"observe-javascript-runtime",
|
|
"observe-native-calls",
|
|
"observe-native-ui",
|
|
"observe-web-execution",
|
|
"observe-web-session",
|
|
"project-android-application-graph",
|
|
"project-apple-application-graph",
|
|
"project-managed-application-graph",
|
|
"providers",
|
|
"read-bytes",
|
|
"reconcile-javascript-runtime",
|
|
"recover-javascript-sources",
|
|
"resolve-native-call-targets",
|
|
"search",
|
|
"search-android-classes",
|
|
"setup",
|
|
"trace",
|
|
"trace-android-references",
|
|
"trace-application-feature",
|
|
"trace-dylib-resolution",
|
|
"trace-javascript-semantics",
|
|
"trace-native-ui-action",
|
|
"trace-native-values",
|
|
"trace-web-module-imports",
|
|
"trace-web-source-location",
|
|
"uninstall",
|
|
"update",
|
|
"verify-managed-native-boundaries",
|
|
"xrefs"
|
|
],
|
|
"aliases": [
|
|
{
|
|
"name": "compare-bundles",
|
|
"target": "compare"
|
|
}
|
|
]
|
|
},
|
|
"runtime_catalog": {
|
|
"counts": {
|
|
"cli_commands": 94,
|
|
"mcp_tools": 139,
|
|
"mcp_prompts": 6
|
|
},
|
|
"digests": {
|
|
"tools_sha256": "bbf6d1716e6c40e6214ec639ee55904625e37cb07248a49dd166bc0ed954cad9",
|
|
"prompts_sha256": "ef2de8814390b340623c32001610aa2709d90bed51537b6e562ab3abf144ab4d",
|
|
"combined_sha256": "adbd48a1533f6d7d1cdfddbe7d7f350205e106e636384537bf078b6daf870f18",
|
|
"providers_sha256": "954b499c76514890062d2b6c936d73cb3a9c45412d522a081125a325e81cdec5"
|
|
}
|
|
}
|
|
}
|