rea-agents 6.2.0 → 6.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -23
- package/bridge/ghidra/ReaGhidraApplySeeds.java +151 -0
- package/bridge/ghidra/ReaGhidraBridge.java +597 -209
- package/bridge/ghidra/ReaGhidraNoReturnFix.java +123 -0
- package/bridge/hopper_bridge.py +2 -0
- package/dist/adb/AdbConfiguration.js +88 -0
- package/dist/adb/AdbDeviceOutput.js +186 -0
- package/dist/adb/AdbProvider.js +1190 -0
- package/dist/adb/AdbShellOutput.js +309 -0
- package/dist/android/AndroidTargetSnapshot.js +104 -22
- package/dist/android/JadxConfiguration.js +44 -24
- package/dist/android/JadxProvider.js +59 -21
- package/dist/android/JadxSession.js +51 -9
- package/dist/apktool/ApktoolConfiguration.js +84 -0
- package/dist/apktool/ApktoolDecodeOutput.js +59 -0
- package/dist/apktool/ApktoolProvider.js +506 -0
- package/dist/application/AnalysisProvider.js +8 -2
- package/dist/application/AppBundleExecutable.js +27 -22
- package/dist/application/BinaryTargetResolver.js +85 -19
- package/dist/application/BrowserScenarioEvidence.js +2 -2
- package/dist/application/CapabilityInventory.js +11 -1
- package/dist/application/ClientConfigurationDocument.js +98 -0
- package/dist/application/ClientConfigurationFiles.js +91 -0
- package/dist/application/ClientRegistrationEnvironment.js +35 -0
- package/dist/application/ClientRegistrationStatus.js +75 -27
- package/dist/application/DirectAnalysis.js +14 -8
- package/dist/application/DirectAnalysisCleanup.js +1 -2
- package/dist/application/DirectAnalysisStatus.js +3 -6
- package/dist/application/Doctor.js +27 -34
- package/dist/application/DoctorDiagnostics.js +1 -1
- package/dist/application/EvidenceBundleCommands.js +6 -12
- package/dist/application/EvidenceBundleFiles.js +1 -1
- package/dist/application/GeminiClientSettings.js +139 -0
- package/dist/application/HermesClientHome.js +115 -0
- package/dist/application/HopperDownload.js +39 -0
- package/dist/application/InvestigationProviders.js +10 -4
- package/dist/application/JsonFiles.js +16 -15
- package/dist/application/JsonInputFile.js +252 -0
- package/dist/application/LinuxHopper.js +6 -13
- package/dist/application/MacHopper.js +172 -149
- package/dist/application/MipsElfAbiFlags.js +140 -0
- package/dist/application/ProviderOperationExecution.js +31 -0
- package/dist/application/ReconstructionObligationCandidates.js +16 -3
- package/dist/application/ReconstructionObligationLedgerProjection.js +3 -1
- package/dist/application/ReferenceSourceImport.js +76 -29
- package/dist/application/ReferenceSourceImportEntries.js +18 -9
- package/dist/application/ReferenceSourceImportPolicy.js +99 -23
- package/dist/application/ReferenceSourceImportTypes.js +30 -22
- package/dist/application/ReferenceSourceVcsAdapter.js +145 -30
- package/dist/application/RegularFileRead.js +103 -0
- package/dist/application/Setup.js +69 -10
- package/dist/application/SetupClientConfiguration.js +134 -23
- package/dist/application/SetupHost.js +102 -22
- package/dist/application/SetupPlan.js +18 -17
- package/dist/application/SetupSkill.js +81 -13
- package/dist/application/SupportedClients.js +305 -37
- package/dist/application/Uninstall.js +172 -8
- package/dist/application/UpdateMaintenance.js +23 -23
- package/dist/application/Utf8JsonInput.js +71 -0
- package/dist/application/WebScriptExportService.js +130 -57
- package/dist/application/WebSourceLocationService.js +3 -0
- package/dist/application/adb/AdbDeviceAnalysisPort.js +1 -0
- package/dist/application/adb/AdbDeviceAnalysisService.js +13 -0
- package/dist/application/analysisView/AnalysisViewService.js +40 -2
- package/dist/application/android/AndroidAnalysisService.js +1 -1
- package/dist/application/apktool/ApktoolResourceAnalysisPort.js +1 -0
- package/dist/application/apktool/ApktoolResourceAnalysisService.js +13 -0
- package/dist/application/binary/AnalysisClientCleanup.js +0 -24
- package/dist/application/binary/AnalysisSnapshotCache.js +5 -4
- package/dist/application/binary/BinarySession.js +18 -1
- package/dist/application/binary/BinarySessionOpen.js +9 -1
- package/dist/application/binaryDiagnostics/BinaryLayoutService.js +2 -1
- package/dist/application/binaryDiagnostics/PeResourcesPort.js +1 -0
- package/dist/application/binaryDiagnostics/PeResourcesService.js +111 -0
- package/dist/application/binaryDiagnostics/RecordedCrashService.js +2 -1
- package/dist/application/evm/EvmInterfaceService.js +3 -0
- package/dist/application/firmware/FirmwareAnalysisService.js +3 -0
- package/dist/application/investigation/InspectEvidenceBundle.js +18 -0
- package/dist/application/javascript/ElectronActiveEvidence.js +2 -2
- package/dist/application/javascript/ElectronBoundaryAnalysis.js +2 -2
- package/dist/application/javascript/ElectronBoundaryGraphContext.js +3 -2
- package/dist/application/javascript/ElectronBoundaryGraphIpc.js +2 -2
- package/dist/application/javascript/ElectronBoundaryGraphNative.js +20 -3
- package/dist/application/javascript/ElectronBoundaryGraphWindows.js +3 -3
- package/dist/application/javascript/JavaScriptApplicationEvidence.js +1 -0
- package/dist/application/javascript/JavaScriptApplicationEvidenceGraph.js +107 -46
- package/dist/application/javascript/JavaScriptApplicationService.js +23 -11
- package/dist/application/javascript/JavaScriptApplicationWorkflowEvidence.js +5 -6
- package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +59 -45
- package/dist/application/javascript/JavaScriptArtifactAnalysis.js +171 -36
- package/dist/application/javascript/JavaScriptArtifactGraphAccumulator.js +14 -16
- package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +74 -36
- package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +4 -3
- package/dist/application/javascript/JavaScriptArtifactGraphContext.js +11 -5
- package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +53 -42
- package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +92 -10
- package/dist/application/javascript/JavaScriptArtifactPathResolution.js +293 -238
- package/dist/application/javascript/JavaScriptArtifactReconstruction.js +120 -28
- package/dist/application/javascript/JavaScriptArtifactReconstructionInput.js +4 -0
- package/dist/application/javascript/JavaScriptJsonModules.js +2 -2
- package/dist/application/javascript/JavaScriptModuleRelationships.js +10 -20
- package/dist/application/javascript/JavaScriptRecoveryService.js +3 -0
- package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +11 -27
- package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +11 -5
- package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +206 -66
- package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +1 -1
- package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +18 -23
- package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +5 -2
- package/dist/application/javascript/JavaScriptSemanticGraphEvidence.js +1 -1
- package/dist/application/javascript/JavaScriptSemanticGraphFingerprintProjection.js +2 -2
- package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +7 -5
- package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +6 -4
- package/dist/application/javascript/JavaScriptSemanticGraphProjection.js +4 -4
- package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +1 -1
- package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +29 -15
- package/dist/application/javascript/JavaScriptSemanticTraceService.js +15 -10
- package/dist/application/jeb/JebAnalysisPort.js +1 -0
- package/dist/application/jeb/JebAnalysisService.js +13 -0
- package/dist/application/managed/ManagedApplicationGraphService.js +1 -1
- package/dist/application/native/NativeCallRoutes.js +2 -4
- package/dist/application/native/NativeUiActionTrace.js +16 -8
- package/dist/application/native/NativeValueTrace.js +23 -6
- package/dist/application/process/ProcessCli.js +25 -20
- package/dist/artifacts/ArtifactPaths.js +129 -8
- package/dist/artifacts/ArtifactProvider.js +34 -31
- package/dist/artifacts/ArtifactProviderMetadata.js +1 -4
- package/dist/artifacts/ArtifactReader.js +23 -0
- package/dist/artifacts/ArtifactResourceScope.js +100 -0
- package/dist/artifacts/AsarArtifactReader.js +218 -80
- package/dist/artifacts/AsarHeader.js +24 -0
- package/dist/artifacts/DirectoryArtifactReader.js +168 -65
- package/dist/artifacts/MachOSliceArtifactReader.js +116 -39
- package/dist/artifacts/NativeDmgArtifactReader.js +179 -87
- package/dist/artifacts/NativeDmgOwnership.js +109 -0
- package/dist/artifacts/SafeOutputTree.js +245 -70
- package/dist/artifacts/SafeOutputTreeCleanup.js +45 -0
- package/dist/artifacts/SafeOutputTreeCreationFailure.js +20 -0
- package/dist/artifacts/SafeOutputTreeIdentity.js +42 -0
- package/dist/artifacts/SafeOutputTreeReadback.js +33 -0
- package/dist/artifacts/ZipArtifactReader.js +77 -27
- package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +58 -18
- package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +62 -24
- package/dist/artifacts/apple/KeyedArchiveReader.js +76 -49
- package/dist/artifacts/apple/MachoLoadCommandReader.js +36 -6
- package/dist/artifacts/extraction/ArtifactExtraction.js +134 -92
- package/dist/artifacts/inventory/ArtifactGraphConstruction.js +116 -50
- package/dist/artifacts/inventory/ArtifactInventory.js +5 -4
- package/dist/artifacts/inventory/classify.js +87 -25
- package/dist/artifacts/inventory/hashStableRootArtifact.js +70 -0
- package/dist/artifacts/inventory/reader.js +13 -5
- package/dist/artifacts/inventory/scanCanonical.js +73 -30
- package/dist/artifacts/inventory/scanReader.js +43 -20
- package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +72 -28
- package/dist/artifacts/javascript/JavaScriptSourceAnalysis.js +3 -0
- package/dist/browser/BrowserScenarioPartialObservation.js +8 -2
- package/dist/browser/BrowserScenarioSecrets.js +52 -37
- package/dist/browser/CdpBrowserProvider.js +9 -3
- package/dist/browser/CdpCaptureDocuments.js +40 -6
- package/dist/browser/CdpCaptureDomSvg.js +210 -0
- package/dist/browser/CdpCaptureEventBodyShapes.js +4 -8
- package/dist/browser/CdpCaptureEventHandlers.js +26 -9
- package/dist/browser/CdpCaptureEvents.js +4 -9
- package/dist/browser/CdpCaptureStorageFingerprints.js +3 -3
- package/dist/browser/CdpConnection.js +22 -5
- package/dist/browser/CdpElectronInspection.js +2 -2
- package/dist/browser/CdpElectronProvider.js +4 -3
- package/dist/browser/CdpElectronScripts.js +2 -2
- package/dist/browser/CdpPageCapture.js +1 -1
- package/dist/browser/CdpTargetSession.js +30 -34
- package/dist/browser/CdpWebMcpDiscovery.js +48 -23
- package/dist/browser/ElectronFileScope.js +99 -9
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +63 -7
- package/dist/browser/PlaywrightElectronActiveProvider.js +11 -6
- package/dist/browser/PlaywrightScenarioArtifacts.js +5 -5
- package/dist/browser/PlaywrightScenarioBrowser.js +208 -43
- package/dist/browser/PlaywrightScenarioSession.js +130 -65
- package/dist/browser/PlaywrightScenarioStorage.js +507 -0
- package/dist/browser/PngVisualDiff.js +198 -29
- package/dist/browser/WebSourceMapFetcher.js +35 -9
- package/dist/browser/assets/LocalWebScriptArtifacts.js +3 -1
- package/dist/browser/assets/PublishWebScripts.js +75 -20
- package/dist/browser/assets/ScenarioScriptCapture.js +8 -12
- package/dist/browser/assets/WebArtifactReads.js +23 -1
- package/dist/browser/assets/WebSourceLocationArtifacts.js +1 -0
- package/dist/browser/execution/CdpExecutionCapture.js +3 -3
- package/dist/browser/execution/CdpPreciseCoverage.js +5 -8
- package/dist/browser/history/HarCapture.js +14 -0
- package/dist/browser/history/HarCaptureProcess.js +2 -10
- package/dist/browser/history/MitmproxyCaptureAdapter.js +3 -1
- package/dist/browser/modules/WebModuleArtifacts.js +1 -0
- package/dist/cli/adbCommands.js +337 -0
- package/dist/cli/analysisViewCommands.js +39 -1
- package/dist/cli/apktoolCommands.js +53 -0
- package/dist/cli/artifactCommands.js +8 -11
- package/dist/cli/binaryDiagnosticsCommands.js +19 -1
- package/dist/cli/browserAdvancedCommands.js +65 -36
- package/dist/cli/coreAnalysisCommands.js +2 -2
- package/dist/cli/coreBinaryCommands.js +12 -13
- package/dist/cli/coreNativeCommands.js +1 -14
- package/dist/cli/electronCommands.js +14 -10
- package/dist/cli/evmCommands.js +13 -4
- package/dist/cli/firmwareCommands.js +7 -2
- package/dist/cli/javascriptApplicationAnalysis.js +19 -13
- package/dist/cli/javascriptRecoveryCommands.js +22 -15
- package/dist/cli/jebCommands.js +99 -0
- package/dist/cli/jsonOutput.js +12 -4
- package/dist/cli/referenceSourceImportStatus.js +7 -0
- package/dist/cli/setupCommands.js +15 -3
- package/dist/cli/streamedJsonOutput.js +83 -4
- package/dist/cli/utilityCommands.js +68 -22
- package/dist/cli/webScriptCommands.js +20 -1
- package/dist/cli/webSourceLocationCommands.js +21 -9
- package/dist/cli.js +11 -2
- package/dist/cliBrowserScenarioCommands.js +2 -1
- package/dist/cliCommandNames.js +32 -0
- package/dist/cliJsonInput.js +47 -34
- package/dist/cliObservationOptions.js +7 -0
- package/dist/composition/adb.js +3 -0
- package/dist/composition/apktool.js +3 -0
- package/dist/composition/auxiliaryAnalysisProviders.js +5 -4
- package/dist/composition/binaryDiagnostics.js +4 -0
- package/dist/composition/browserScenario.js +2 -2
- package/dist/composition/directAnalysis.js +14 -7
- package/dist/composition/javascriptAnalysisWorkerProcess.js +48 -0
- package/dist/composition/jeb.js +6 -0
- package/dist/config/environment.js +10 -0
- package/dist/config/ghidraLanguageOverride.js +9 -0
- package/dist/config/mcpInputSchemaProfile.js +27 -0
- package/dist/config/parseConfig.js +28 -1
- package/dist/contracts/adb/adbToolContracts.js +353 -0
- package/dist/contracts/advertisedInputExamples.js +48 -0
- package/dist/contracts/analysisDetail.js +10 -0
- package/dist/contracts/analysisViewToolContracts.js +17 -2
- package/dist/contracts/apktool/apktoolToolContracts.js +33 -0
- package/dist/contracts/artifactComparisonExample.js +5 -5
- package/dist/contracts/artifactToolContracts.js +8 -5
- package/dist/contracts/browserToolContracts.js +1 -1
- package/dist/contracts/compactInputSchema.js +256 -0
- package/dist/contracts/errorSchemas.js +3 -1
- package/dist/contracts/functionComparisonExample.js +8 -0
- package/dist/contracts/functionWorkflowToolContracts.js +1 -1
- package/dist/contracts/inputSchemaPresentation.js +104 -13
- package/dist/contracts/javascript/electronToolContracts.js +16 -3
- package/dist/contracts/javascript/javascriptApplicationWorkflowExamples.js +3 -2
- package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +6 -3
- package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +1 -1
- package/dist/contracts/javascript/javascriptRuntimeReconciliationExample.js +8 -7
- package/dist/contracts/jeb/jebToolContracts.js +64 -0
- package/dist/contracts/managed/managedToolContracts.js +3 -2
- package/dist/contracts/mobileApplicationGraphExamples.js +5 -5
- package/dist/contracts/native/binaryDiagnosticsToolContracts.js +25 -3
- package/dist/contracts/native/nativeToolContracts.js +1 -1
- package/dist/contracts/officialToolContracts.js +5 -5
- package/dist/contracts/sessionLifecycleInputs.js +4 -3
- package/dist/contracts/sessionStatusContract.js +3 -2
- package/dist/contracts/sessionToolContracts.js +5 -4
- package/dist/contracts/sessionToolSchemas.js +9 -4
- package/dist/contracts/toolContractExamples.js +6 -0
- package/dist/contracts/toolContractTypes.js +3 -0
- package/dist/contracts/toolContracts.js +6 -0
- package/dist/contracts/toolEffects.js +167 -0
- package/dist/contracts/toolOutputSchemaGroups.js +7 -5
- package/dist/contracts/toolOutputSchemaPrimitives.js +2 -5
- package/dist/contracts/toolSchemaMetadata.js +82 -7
- package/dist/domain/adb/adbDeviceAnalysis.js +583 -0
- package/dist/domain/analysisErrorBase.js +5 -0
- package/dist/domain/analysisErrorCleanup.js +29 -0
- package/dist/domain/analysisErrorPresentation.js +18 -4
- package/dist/domain/analysisErrorProjection.js +4 -1
- package/dist/domain/analysisSnapshot.js +5 -2
- package/dist/domain/analysisView/analysisView.js +53 -5
- package/dist/domain/analysisView/binaryLayoutView.js +2 -0
- package/dist/domain/analysisView/javascriptApplicationView.js +2 -0
- package/dist/domain/analysisView/nativeFunctionView.js +155 -0
- package/dist/domain/android/androidApplication.js +25 -20
- package/dist/domain/android/androidPartialObservation.js +36 -0
- package/dist/domain/apktool/apktoolResourceAnalysis.js +77 -0
- package/dist/domain/apple/appleApplication.js +40 -23
- package/dist/domain/apple/appleBundleAnatomy.js +95 -28
- package/dist/domain/apple/dyldPaths.js +9 -1
- package/dist/domain/apple/dylibResolution.js +3 -3
- package/dist/domain/apple/interfaceBuilderGraph.js +22 -19
- package/dist/domain/apple/interfaceBuilderKeyedArchive.js +10 -1
- package/dist/domain/artifactComparison.js +39 -11
- package/dist/domain/artifactGraph.js +6 -4
- package/dist/domain/artifactIdentity.js +37 -9
- package/dist/domain/artifactInspection.js +10 -50
- package/dist/domain/artifactIntegrityPolicy.js +10 -0
- package/dist/domain/artifactInventoryEvidence.js +16 -17
- package/dist/domain/artifactPathSyntax.js +1 -1
- package/dist/domain/binaryTarget.js +16 -0
- package/dist/domain/binaryTargetTypes.js +8 -1
- package/dist/domain/browserCompleteness.js +3 -2
- package/dist/domain/browserObservationSchemas.js +8 -4
- package/dist/domain/browserScenarioCaptureValues.js +2 -2
- package/dist/domain/browserScenarioNormalization.js +3 -3
- package/dist/domain/browserScenarioValues.js +3 -2
- package/dist/domain/callPath.js +8 -10
- package/dist/domain/canonicalDigest.js +7 -1
- package/dist/domain/canonicalJsonDigestSteps.js +34 -12
- package/dist/domain/canonicalOrdering.js +1 -13
- package/dist/domain/changedBehavior.js +2 -3
- package/dist/domain/compactStringIdentity.js +9 -0
- package/dist/domain/comparisonSemantics.js +0 -5
- package/dist/domain/digests.js +0 -3
- package/dist/domain/evidence.js +12 -6
- package/dist/domain/evidenceBundle.js +51 -33
- package/dist/domain/evidenceRecordSummary.js +144 -0
- package/dist/domain/firmware/firmwareAnalysis.js +4 -3
- package/dist/domain/functionComparison.js +2 -1
- package/dist/domain/functionComparisonNormalization.js +4 -3
- package/dist/domain/functionComparisonResults.js +2 -2
- package/dist/domain/functionDossierEvidence.js +2 -1
- package/dist/domain/hopperValues.js +11 -15
- package/dist/domain/inputIssueProjection.js +16 -1
- package/dist/domain/javascript/electronActiveObservation.js +4 -3
- package/dist/domain/javascript/electronStaticAnalysisBrowser.js +14 -15
- package/dist/domain/javascript/electronStaticAnalysisIpc.js +20 -21
- package/dist/domain/javascript/electronStaticAnalysisNative.js +73 -41
- package/dist/domain/javascript/electronStaticAnalysisValues.js +24 -4
- package/dist/domain/javascript/javascriptAnalysisResourceControls.js +45 -0
- package/dist/domain/javascript/javascriptApplicationAnalysis.js +6 -1
- package/dist/domain/javascript/javascriptApplicationChangeGraph.js +18 -14
- package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +4 -0
- package/dist/domain/javascript/javascriptApplicationGraph.js +91 -28
- package/dist/domain/javascript/javascriptApplicationProjectionResources.js +35 -0
- package/dist/domain/javascript/javascriptApplicationVersionComparison.js +4 -4
- package/dist/domain/javascript/javascriptApplicationVersionComparisonSchemas.js +37 -22
- package/dist/domain/javascript/javascriptApplicationVersionItems.js +72 -45
- package/dist/domain/javascript/javascriptApplicationVersionKeys.js +16 -8
- package/dist/domain/javascript/javascriptAstFingerprint.js +60 -33
- package/dist/domain/javascript/javascriptAstValues.js +54 -0
- package/dist/domain/javascript/javascriptElectronMemberWrites.js +50 -0
- package/dist/domain/javascript/javascriptExportShapeComparison.js +3 -2
- package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +31 -23
- package/dist/domain/javascript/javascriptExportShapeSelection.js +2 -2
- package/dist/domain/javascript/javascriptExportShapeVariants.js +3 -2
- package/dist/domain/javascript/javascriptFeatureSeed.js +5 -3
- package/dist/domain/javascript/javascriptFeatureTrace.js +7 -6
- package/dist/domain/javascript/javascriptFeatureTraceSchemas.js +17 -9
- package/dist/domain/javascript/javascriptFeatureTraversal.js +4 -4
- package/dist/domain/javascript/javascriptModuleSemanticIr.js +15 -0
- package/dist/domain/javascript/javascriptNativeHandoff.js +12 -7
- package/dist/domain/javascript/javascriptRpcEndpoints.js +253 -0
- package/dist/domain/javascript/javascriptRuntimeLoadState.js +1 -3
- package/dist/domain/javascript/javascriptRuntimeObservation.js +8 -5
- package/dist/domain/javascript/javascriptRuntimeReconciliation.js +12 -6
- package/dist/domain/javascript/javascriptRuntimeReconciliationActive.js +9 -8
- package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +212 -0
- package/dist/domain/javascript/javascriptRuntimeReconciliationGraph.js +12 -6
- package/dist/domain/javascript/javascriptRuntimeReconciliationInputValidation.js +28 -0
- package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +5 -5
- package/dist/domain/javascript/javascriptRuntimeReconciliationParsing.js +12 -223
- package/dist/domain/javascript/javascriptRuntimeReconciliationResult.js +2 -2
- package/dist/domain/javascript/javascriptRuntimeReconciliationRuntime.js +15 -4
- package/dist/domain/javascript/javascriptRuntimeReconciliationSchemas.js +2 -2
- package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +15 -17
- package/dist/domain/javascript/javascriptSemanticAnalysis.js +379 -30
- package/dist/domain/javascript/javascriptSemanticCallResolution.js +9 -7
- package/dist/domain/javascript/javascriptSemanticCallableResults.js +42 -0
- package/dist/domain/javascript/javascriptSemanticCalls.js +8 -1
- package/dist/domain/javascript/javascriptSemanticChildProcesses.js +2 -2
- package/dist/domain/javascript/javascriptSemanticCoverage.js +20 -0
- package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +7 -9
- package/dist/domain/javascript/javascriptSemanticDataEffects.js +4 -11
- package/dist/domain/javascript/javascriptSemanticDerivedAnalysis.js +15 -4
- package/dist/domain/javascript/javascriptSemanticFileProjection.js +1 -0
- package/dist/domain/javascript/javascriptSemanticFingerprints.js +43 -42
- package/dist/domain/javascript/javascriptSemanticGraph.js +205 -52
- package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +21 -11
- package/dist/domain/javascript/javascriptSemanticIr.js +0 -4
- package/dist/domain/javascript/javascriptSemanticIterationSources.js +139 -0
- package/dist/domain/javascript/javascriptSemanticMemberMutations.js +774 -136
- package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +190 -0
- package/dist/domain/javascript/javascriptSemanticMutationValues.js +98 -41
- package/dist/domain/javascript/javascriptSemanticObjectReferences.js +381 -0
- package/dist/domain/javascript/javascriptSemanticObjects.js +9 -7
- package/dist/domain/javascript/javascriptSemanticPrimitives.js +7 -2
- package/dist/domain/javascript/javascriptSemanticProjection.js +72 -28
- package/dist/domain/javascript/javascriptSemanticPromises.js +15 -21
- package/dist/domain/javascript/javascriptSemanticPropertyPaths.js +100 -0
- package/dist/domain/javascript/javascriptSemanticProvenance.js +3 -3
- package/dist/domain/javascript/javascriptSemanticQuery.js +33 -29
- package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +4 -5
- package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +8 -9
- package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +16 -10
- package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +219 -0
- package/dist/domain/javascript/javascriptSemanticReturns.js +34 -48
- package/dist/domain/javascript/javascriptSemanticState.js +22 -2
- package/dist/domain/javascript/javascriptSemanticTraversal.js +25 -2
- package/dist/domain/javascript/javascriptSemanticValues.js +169 -30
- package/dist/domain/javascript/javascriptSourceAnalysis.js +1 -0
- package/dist/domain/javascript/javascriptSourceMapPaths.js +11 -1
- package/dist/domain/javascript/javascriptSourceParser.js +34 -9
- package/dist/domain/javascript/javascriptStaticAnalysis.js +29 -17
- package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +13 -12
- package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +49 -5
- package/dist/domain/javascript/javascriptStaticAnalysisFindings.js +8 -4
- package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +26 -15
- package/dist/domain/javascript/javascriptStaticAnalysisState.js +1 -0
- package/dist/domain/javascript/sourceToBundleComparison.js +7 -5
- package/dist/domain/javascript/sourceToBundleSignals.js +7 -7
- package/dist/domain/jeb/jebAnalysis.js +114 -0
- package/dist/domain/jsonSerialization.js +109 -55
- package/dist/domain/jsonShape.js +69 -31
- package/dist/domain/jsonValue.js +3 -0
- package/dist/domain/localPath.js +10 -4
- package/dist/domain/managed/managedApplicationGraph.js +47 -6
- package/dist/domain/managed/managedApplicationGraphCoverage.js +8 -2
- package/dist/domain/managed/managedApplicationGraphNodes.js +94 -59
- package/dist/domain/managed/managedArtifact.js +1 -0
- package/dist/domain/managed/managedInspectionEvidence.js +13 -0
- package/dist/domain/managed/managedMemberComparisonMatch.js +6 -7
- package/dist/domain/native/nativeAotPe.js +1408 -0
- package/dist/domain/native/nativeCallObservation.js +2 -4
- package/dist/domain/native/nativeInstruction.js +21 -0
- package/dist/domain/native/nativeMetadataRecovery.js +79 -6
- package/dist/domain/native/nativeValueFlow.js +5 -11
- package/dist/domain/native/objcSwiftMetadata.js +15 -17
- package/dist/domain/native/peResources.js +94 -0
- package/dist/domain/nativeConvention.js +33 -0
- package/dist/domain/process/processCapture.js +102 -11
- package/dist/domain/process/processCaptureCoverage.js +8 -5
- package/dist/domain/process/processCaptureExample.js +67 -0
- package/dist/domain/process/processCaptureValidation.js +83 -3
- package/dist/domain/process/processComparison.js +0 -23
- package/dist/domain/process/processScenario.js +62 -10
- package/dist/domain/process/processTraceEvaluation.js +4 -4
- package/dist/domain/process/processTraceSpecification.js +1 -3
- package/dist/domain/propertyListKeys.js +3 -1
- package/dist/domain/providerCleanupError.js +6 -2
- package/dist/domain/reconstructionCoverage.js +2 -1
- package/dist/domain/reconstructionUnknowns.js +4 -3
- package/dist/domain/reconstructionVerification.js +3 -2
- package/dist/domain/referenceSourceGraph.js +32 -23
- package/dist/domain/referenceSourceImportParsing.js +40 -48
- package/dist/domain/referenceSourcePathIdentity.js +22 -0
- package/dist/domain/referenceSourceRequireBindings.js +137 -0
- package/dist/domain/residualUnknown.js +3 -2
- package/dist/domain/staticRuntimeCorrelation.js +2 -1
- package/dist/domain/swiftSymbolClassification.js +6 -1
- package/dist/domain/symbolAnalysis.js +17 -2
- package/dist/domain/unicodeCodePointOrder.js +6 -0
- package/dist/domain/webBundleAnalyzerInspection.js +23 -3
- package/dist/domain/webCaptureDiff.js +170 -30
- package/dist/domain/webCaptureDiffSchemas.js +2 -8
- package/dist/domain/webInventory.js +3 -2
- package/dist/domain/webMcpDiscovery.js +4 -3
- package/dist/domain/webScriptExport.js +1 -1
- package/dist/domain/webScriptExportError.js +10 -4
- package/dist/domain/webScriptExportPlan.js +7 -13
- package/dist/domain/zipPackageFormat.js +4 -1
- package/dist/domain/zodCollectionSteps.js +24 -0
- package/dist/dotnet/ManagedArtifactInspector.js +55 -43
- package/dist/dotnet/ManagedDecodeBudget.js +80 -0
- package/dist/dotnet/ManagedMemberInspector.js +13 -6
- package/dist/dotnet/ManagedMemberInspectorCore.js +2 -2
- package/dist/dotnet/ManagedMemberInstructionDecoder.js +5 -4
- package/dist/dotnet/ManagedMemberRows.js +9 -4
- package/dist/dotnet/ManagedMetadataHeaps.js +15 -5
- package/dist/dotnet/ManagedMetadataInventoryRows.js +20 -11
- package/dist/dotnet/ManagedMetadataLayout.js +10 -4
- package/dist/dotnet/ManagedMethodBodyReader.js +8 -3
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +3 -2
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +49 -34
- package/dist/dotnet/ManagedPeReader.js +41 -25
- package/dist/dotnet/ManagedReaderFailure.js +2 -1
- package/dist/dotnet/ManagedStaticProvider.js +65 -31
- package/dist/dotnet/ManagedStaticProviderMetadata.js +1 -4
- package/dist/evaluation/AgentEvaluationReport.js +9 -5
- package/dist/evaluation/CodexAgentEval.js +43 -13
- package/dist/evm/EvmoleFailures.js +0 -2
- package/dist/evm/EvmoleInterfaceProvider.js +67 -2
- package/dist/filesystem/OwnedDirectoryHandle.js +29 -0
- package/dist/filesystem/OwnedFileHandle.js +36 -0
- package/dist/filesystem/RegularFile.js +73 -0
- package/dist/filesystem/StableFileHash.js +46 -0
- package/dist/filesystem/readFileHandleChunks.js +26 -0
- package/dist/firmware/FirmwareCommand.js +25 -3
- package/dist/firmware/FirmwareFiles.js +23 -8
- package/dist/firmware/FirmwareProvider.js +156 -32
- package/dist/firmware/FirmwarePublication.js +24 -3
- package/dist/firmware/FirmwareRelease.js +1 -0
- package/dist/generatedPackageMetadata.js +2 -2
- package/dist/ghidra/GhidraAnalysisProfile.js +55 -4
- package/dist/ghidra/GhidraAnalysisSeeds.js +211 -0
- package/dist/ghidra/GhidraClient.js +90 -8
- package/dist/ghidra/GhidraDiagnostics.js +11 -8
- package/dist/ghidra/GhidraFunctionValues.js +26 -2
- package/dist/ghidra/GhidraInstallation.js +111 -10
- package/dist/ghidra/GhidraInventoryValues.js +23 -1
- package/dist/ghidra/GhidraLanguageCatalog.js +99 -0
- package/dist/ghidra/GhidraLauncher.js +123 -58
- package/dist/ghidra/GhidraLoadImageAttest.js +49 -2
- package/dist/ghidra/GhidraMipsProfile.js +79 -0
- package/dist/ghidra/GhidraProvider.js +57 -9
- package/dist/ghidra/GhidraProviderCapabilities.js +18 -8
- package/dist/ghidra/GhidraProviderClient.js +282 -21
- package/dist/ghidra/GhidraSessionValues.js +9 -2
- package/dist/hopper/HopperAnalysisProfile.js +2 -0
- package/dist/hopper/HopperCleanup.js +1 -1
- package/dist/hopper/HopperClient.js +15 -6
- package/dist/hopper/HopperMachOImage.js +2 -0
- package/dist/hopper/HopperProvider.js +13 -2
- package/dist/ida/IdaOperationRunner.js +10 -2
- package/dist/ida/IdaProvider.js +7 -0
- package/dist/ida/IdaSessionClient.js +7 -3
- package/dist/ida/IdaWorkspace.js +4 -2
- package/dist/inspector/JavaScriptRuntimeScope.js +9 -5
- package/dist/inspector/V8InspectorCaptureProjection.js +46 -13
- package/dist/inspector/V8InspectorProvider.js +60 -8
- package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +326 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +520 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +63 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +521 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +116 -0
- package/dist/javascript/recovery/RecoveryFiles.js +18 -7
- package/dist/javascript/recovery/WakaruCommand.js +22 -9
- package/dist/javascript/recovery/WakaruExecution.js +11 -7
- package/dist/javascript/recovery/WakaruProvider.js +139 -16
- package/dist/javascript/recovery/WakaruPublication.js +14 -4
- package/dist/javascript/recovery/WakaruRelease.js +10 -3
- package/dist/javascript/recovery/WakaruReport.js +12 -7
- package/dist/javascript/recovery/WakaruVersion.js +24 -0
- package/dist/javascript/sourceMaps/SourceMapCommand.js +16 -3
- package/dist/javascript/sourceMaps/SourceMapDecoder.js +63 -7
- package/dist/javascript/sourceMaps/SourceMapFormat.js +15 -4
- package/dist/jeb/JebMcpConnection.js +179 -0
- package/dist/jeb/JebMcpEndpoint.js +40 -0
- package/dist/jeb/JebProvider.js +299 -0
- package/dist/main/shutdown.js +76 -32
- package/dist/main/transport.js +1 -1
- package/dist/mcpDoctor.js +15 -6
- package/dist/native/AppleDispatchCoverage.js +25 -12
- package/dist/native/AppleDispatchMetadata.js +14 -7
- package/dist/native/AppleMachoFixups.js +71 -15
- package/dist/native/AppleMachoSelection.js +23 -3
- package/dist/native/AppleObjcDispatchFacets.js +3 -3
- package/dist/native/AppleObjcProperties.js +17 -7
- package/dist/native/LldbCallTracer.js +241 -75
- package/dist/native/NativeMacOSProvider.js +100 -20
- package/dist/native/NativeMacOSProviderMetadata.js +1 -2
- package/dist/native/NativeMachoInspection.js +11 -7
- package/dist/native/NativeUiHelperRuntime.js +6 -1
- package/dist/native/NativeUiObservation.js +4 -3
- package/dist/native/pe/PeResourceLayout.js +120 -0
- package/dist/native/pe/PeResourceParser.js +286 -0
- package/dist/native/pe/PeResourcesProvider.js +63 -0
- package/dist/process/BoundedFileBytes.js +30 -7
- package/dist/process/DarwinProcessRunTokenReader.js +8 -3
- package/dist/process/OwnedCommand.js +4 -3
- package/dist/process/ProcessOwnership.js +104 -112
- package/dist/process/ProcessOwnershipObservation.js +104 -51
- package/dist/process/ProcessOwnershipProcessTree.js +4 -4
- package/dist/process/ProcessRunTokenObservations.js +48 -0
- package/dist/process/ProviderDiagnosticRedaction.js +17 -0
- package/dist/process/ProviderProcess.js +4 -3
- package/dist/process/capture/FilesystemSnapshot.js +116 -22
- package/dist/process/capture/ProcessCaptureLifecycle.js +363 -86
- package/dist/process/capture/ProcessCaptureProgress.js +62 -0
- package/dist/process/capture/ProcessFilesystemEffects.js +19 -4
- package/dist/process/capture/ProcessHarness.js +202 -47
- package/dist/process/capture/ProcessNormalization.js +3 -1
- package/dist/process/capture/ProcessScenarioRuntimeValidation.js +5 -2
- package/dist/process/capture/TerminalRenderer.js +24 -7
- package/dist/reference/ReferenceSourceReader.js +22 -5
- package/dist/reference/ReferenceSourceReaderEntries.js +114 -51
- package/dist/reference/ReferenceSourceReaderErrors.js +12 -0
- package/dist/reference/ReferenceSourceReaderFile.js +50 -10
- package/dist/reference/ReferenceSourceReaderValidate.js +4 -4
- package/dist/server/EvidenceMcpServer.js +36 -1
- package/dist/server/admittedToolOperation.js +9 -0
- package/dist/server/analysisAdmission.js +8 -0
- package/dist/server/contractToolHandler.js +21 -0
- package/dist/server/createServer.js +118 -47
- package/dist/server/registerAdbTools.js +36 -0
- package/dist/server/registerAnalysisViewTool.js +4 -9
- package/dist/server/registerAndroidTools.js +3 -12
- package/dist/server/registerApktoolTools.js +14 -0
- package/dist/server/registerApplicationTools/compareExportShapes.js +6 -7
- package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
- package/dist/server/registerApplicationTools/compareVersions.js +3 -2
- package/dist/server/registerApplicationTools/coverage.js +3 -2
- package/dist/server/registerApplicationTools/helpers.js +3 -2
- package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
- package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +3 -2
- package/dist/server/registerApplicationTools/traceFeature.js +3 -2
- package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
- package/dist/server/registerArtifactComparisonTool.js +5 -2
- package/dist/server/registerArtifactTools.js +2 -2
- package/dist/server/registerBinaryDiagnosticsTools.js +16 -4
- package/dist/server/registerBrowserScenarioTool.js +10 -7
- package/dist/server/registerBrowserTools.js +12 -9
- package/dist/server/registerBundleComparisonTool.js +16 -2
- package/dist/server/registerCloseLifecycleTool.js +36 -5
- package/dist/server/registerElectronTools.js +28 -10
- package/dist/server/registerEnhancedTools.js +78 -73
- package/dist/server/registerEvidenceTools.js +54 -46
- package/dist/server/registerEvmTools.js +4 -9
- package/dist/server/registerFirmwareTools.js +3 -11
- package/dist/server/registerFunctionComparisonTool.js +5 -2
- package/dist/server/registerJavaScriptRecoveryTool.js +4 -9
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +9 -6
- package/dist/server/registerJebTools.js +16 -0
- package/dist/server/registerManagedTools.js +7 -4
- package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +4 -6
- package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -2
- package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +3 -2
- package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +3 -2
- package/dist/server/registerOfficialTools.js +31 -25
- package/dist/server/registerPeResourcesTool.js +9 -0
- package/dist/server/registerProcessComparisonTool.js +5 -2
- package/dist/server/registerRecordedCrashTools.js +4 -9
- package/dist/server/registerSessionRecordTools.js +2 -1
- package/dist/server/registerSessionTools.js +58 -21
- package/dist/server/registerWebModuleTool.js +4 -9
- package/dist/server/registerWebNetworkCaptureTool.js +4 -9
- package/dist/server/registerWebRuntimeTools.js +6 -5
- package/dist/server/registerWebScriptTool.js +6 -3
- package/dist/server/registerWebSourceLocationTool.js +4 -9
- package/dist/server/toolResult.js +21 -2
- package/dist/windows/WindowsPrivateRuntime.js +12 -5
- package/install.sh +7 -4
- package/licenses/nativeaot-parser-MIT.txt +28 -0
- package/native/windows/build/manifest.json +2 -2
- package/native/windows/build/rea-windows-x64.node +0 -0
- package/package.json +38 -7
- package/scripts/rea.mjs +16 -1
- package/skills/reverse-engineer-anything/SKILL.md +52 -51
- package/skills/reverse-engineer-anything/references/connection-and-recovery.md +127 -0
- package/skills/reverse-engineer-anything/references/evidence-workflows.md +8 -0
- package/skills/reverse-engineer-anything/references/javascript-applications.md +92 -13
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +31 -1
- package/dist/artifacts/inventory/policy.js +0 -2
- package/dist/domain/managed/managedApplicationGraphNodeCoverage.js +0 -6
- package/dist/server/registerNativeTools.js +0 -6
|
@@ -2,11 +2,12 @@ import { toolContract } from "../contracts/toolContracts.js";
|
|
|
2
2
|
import { mcpProgressReporter } from "./mcpProgress.js";
|
|
3
3
|
import { logToolExecution } from "./toolLogging.js";
|
|
4
4
|
import { toolRegistrationOptions } from "./toolRegistrationOptions.js";
|
|
5
|
+
import { runAdmittedToolOperation } from "./admittedToolOperation.js";
|
|
5
6
|
/** Bind distinct runtime operations to named contracts and the session's Evidence owner. */
|
|
6
|
-
export const registerWebRuntimeTools = (server, service, logger, recordEvidence) => {
|
|
7
|
+
export const registerWebRuntimeTools = (server, service, logger, recordEvidence, withAdmittedAnalysis) => {
|
|
7
8
|
const execution = toolContract("observe_web_execution");
|
|
8
9
|
const listeners = toolContract("inspect_web_event_listeners");
|
|
9
|
-
server.registerTool(execution.name, toolRegistrationOptions(execution), async (input, context) => {
|
|
10
|
+
server.registerTool(execution.name, toolRegistrationOptions(execution), async (input, context) => runAdmittedToolOperation(server, withAdmittedAnalysis, execution.name, context.mcpReq.signal, async () => {
|
|
10
11
|
const result = await logToolExecution(logger, execution.name, () => service.observe(input, {
|
|
11
12
|
signal: context.mcpReq.signal,
|
|
12
13
|
progress: mcpProgressReporter(context),
|
|
@@ -15,12 +16,12 @@ export const registerWebRuntimeTools = (server, service, logger, recordEvidence)
|
|
|
15
16
|
return server.delivery.toCallToolResult(result, execution);
|
|
16
17
|
const recorded = recordEvidence?.(result.value);
|
|
17
18
|
return server.delivery.toEvidenceToolResult(result.value, execution, recorded);
|
|
18
|
-
});
|
|
19
|
-
server.registerTool(listeners.name, toolRegistrationOptions(listeners), async (input, context) => {
|
|
19
|
+
}));
|
|
20
|
+
server.registerTool(listeners.name, toolRegistrationOptions(listeners), async (input, context) => runAdmittedToolOperation(server, withAdmittedAnalysis, listeners.name, context.mcpReq.signal, async () => {
|
|
20
21
|
const result = await logToolExecution(logger, listeners.name, () => service.inspect(input, { signal: context.mcpReq.signal }));
|
|
21
22
|
if (!result.ok)
|
|
22
23
|
return server.delivery.toCallToolResult(result, listeners);
|
|
23
24
|
const recorded = recordEvidence?.(result.value);
|
|
24
25
|
return server.delivery.toEvidenceToolResult(result.value, listeners, recorded);
|
|
25
|
-
});
|
|
26
|
+
}));
|
|
26
27
|
};
|
|
@@ -2,14 +2,17 @@ import { exportWebScriptsValidated } from "../application/WebScriptExportService
|
|
|
2
2
|
import { toolContract } from "../contracts/toolContracts.js";
|
|
3
3
|
import { logToolExecution } from "./toolLogging.js";
|
|
4
4
|
import { toolRegistrationOptions } from "./toolRegistrationOptions.js";
|
|
5
|
+
import { runAdmittedToolOperation } from "./admittedToolOperation.js";
|
|
5
6
|
/** Register local script export without requiring a live browser provider. */
|
|
6
7
|
export const registerWebScriptTool = (server, options) => {
|
|
7
8
|
const contract = toolContract("export_web_scripts");
|
|
8
|
-
server.registerTool(contract.name, toolRegistrationOptions(contract), async (input, context) => {
|
|
9
|
-
const result = await logToolExecution(options.logger, contract.name, () => exportWebScriptsValidated(input,
|
|
9
|
+
server.registerTool(contract.name, toolRegistrationOptions(contract), async (input, context) => runAdmittedToolOperation(server, options.withAdmittedAnalysis, contract.name, context.mcpReq.signal, async () => {
|
|
10
|
+
const result = await logToolExecution(options.logger, contract.name, () => exportWebScriptsValidated(input, options.artifactResources, {
|
|
11
|
+
signal: context.mcpReq.signal,
|
|
12
|
+
}));
|
|
10
13
|
if (!result.ok)
|
|
11
14
|
return server.delivery.toCallToolResult(result, contract);
|
|
12
15
|
const recorded = options.recordEvidence?.(result.value);
|
|
13
16
|
return server.delivery.toEvidenceToolResult(result.value, contract, recorded);
|
|
14
|
-
});
|
|
17
|
+
}));
|
|
15
18
|
};
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { toolContract } from "../contracts/toolContracts.js";
|
|
2
|
-
import {
|
|
2
|
+
import { createEvidenceToolHandler } from "./contractToolHandler.js";
|
|
3
3
|
import { toolRegistrationOptions } from "./toolRegistrationOptions.js";
|
|
4
4
|
/** Bind source point tracing to its exact named contract and session Evidence owner. */
|
|
5
|
-
export const registerWebSourceLocationTool = (server, service, logger, recordEvidence) => {
|
|
5
|
+
export const registerWebSourceLocationTool = (server, service, logger, recordEvidence, withAdmittedAnalysis) => {
|
|
6
6
|
const contract = toolContract("trace_web_source_location");
|
|
7
|
-
server
|
|
8
|
-
|
|
9
|
-
if (!result.ok)
|
|
10
|
-
return server.delivery.toCallToolResult(result, contract);
|
|
11
|
-
const recorded = recordEvidence?.(result.value);
|
|
12
|
-
return server.delivery.toEvidenceToolResult(result.value, contract, recorded);
|
|
13
|
-
});
|
|
7
|
+
const handler = createEvidenceToolHandler(server, (input, options) => service.trace(input, options), logger, recordEvidence, withAdmittedAnalysis);
|
|
8
|
+
server.registerTool(contract.name, toolRegistrationOptions(contract), handler(contract));
|
|
14
9
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { STDIO_DEFAULT_MAX_BUFFER_SIZE } from "@modelcontextprotocol/server";
|
|
2
|
-
import { projectAnalysisError } from "../domain/analysisErrorProjection.js";
|
|
2
|
+
import { projectAnalysisError, } from "../domain/analysisErrorProjection.js";
|
|
3
3
|
import {} from "../domain/analysisErrorBase.js";
|
|
4
4
|
import { AnalysisResourceConstraintError } from "../domain/analysisErrorCore.js";
|
|
5
5
|
import { encodeToolResult, MCP_RESULT_STRING_LIMIT, } from "./toolResultEncoding.js";
|
|
@@ -36,7 +36,26 @@ export class ToolResultDelivery {
|
|
|
36
36
|
}
|
|
37
37
|
/** Project an error without allocating oversized repeated MCP text. */
|
|
38
38
|
toErrorToolResult(error) {
|
|
39
|
-
|
|
39
|
+
return this.projectedErrorResult(projectAnalysisError(error));
|
|
40
|
+
}
|
|
41
|
+
/** Deliver the original failure with the producer-acknowledged partial Evidence reference. */
|
|
42
|
+
toRecordedPartialErrorToolResult(error, evidenceId, recorded) {
|
|
43
|
+
if (!recorded.ok)
|
|
44
|
+
return this.toErrorToolResult(error);
|
|
45
|
+
const projected = projectAnalysisError(error);
|
|
46
|
+
return this.projectedErrorResult({
|
|
47
|
+
...projected,
|
|
48
|
+
details: {
|
|
49
|
+
...projected.details,
|
|
50
|
+
partial_observation: {
|
|
51
|
+
kind: "retained-evidence",
|
|
52
|
+
evidence_id: evidenceId,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
projectedErrorResult(projected) {
|
|
58
|
+
const structuredContent = { error: projected };
|
|
40
59
|
// Errors reach the wire as text only; the structured copy is a private
|
|
41
60
|
// carrier the transport removes after its own budget check.
|
|
42
61
|
const encoded = encodeToolResult(structuredContent, this.resultBudgetBytes, "text");
|
|
@@ -34,7 +34,7 @@ export class WindowsPrivateRuntime {
|
|
|
34
34
|
const authority = requireWindowsNativeAuthority();
|
|
35
35
|
const observation = runtimeSchema.parse(authority.call("runtime_create", [parent, prefix]));
|
|
36
36
|
const runtime = new WindowsPrivateRuntime(observation, authority);
|
|
37
|
-
runtimes.set(observation
|
|
37
|
+
runtimes.set(windowsRuntimeIdentityKey(observation), runtime);
|
|
38
38
|
return runtime;
|
|
39
39
|
}
|
|
40
40
|
/** Open a private child directory through retained, verified parent handles. */
|
|
@@ -119,13 +119,20 @@ export class WindowsPrivateRuntime {
|
|
|
119
119
|
await this.#pending?.catch(() => undefined);
|
|
120
120
|
this.authority.call("runtime_close", [this.observation.handle]);
|
|
121
121
|
this.#closed = true;
|
|
122
|
-
runtimes.delete(this.observation
|
|
122
|
+
runtimes.delete(windowsRuntimeIdentityKey(this.observation));
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
-
/**
|
|
125
|
+
/** File id returned by the OS. Path spelling is not part of the lease key. */
|
|
126
|
+
const windowsRuntimeIdentityKey = (identity) => `${identity.volumeSerial}:${identity.fileId}`;
|
|
127
|
+
/**
|
|
128
|
+
* Select an already-owned runtime. Only the observed `path` or `finalPath`
|
|
129
|
+
* matches, character for character. A case variant fails closed.
|
|
130
|
+
*/
|
|
126
131
|
export const windowsPrivateRuntime = (rootPath) => {
|
|
127
|
-
const
|
|
128
|
-
|
|
132
|
+
const matches = [...runtimes.values()].filter((runtime) => runtime.observation.finalPath === rootPath ||
|
|
133
|
+
runtime.observation.path === rootPath);
|
|
134
|
+
const runtime = matches[0];
|
|
135
|
+
if (matches.length !== 1 || runtime === undefined)
|
|
129
136
|
throw new Error(`No native private runtime owns ${rootPath}`);
|
|
130
137
|
return runtime;
|
|
131
138
|
};
|
package/install.sh
CHANGED
|
@@ -85,19 +85,22 @@ if [[ "$version" =~ \+ ]]; then
|
|
|
85
85
|
fail "npm cannot install an exact version with build metadata. Pass a version without build metadata, then retry."
|
|
86
86
|
fi
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
install_args=(install --global)
|
|
89
89
|
if [[ "$platform" == "Linux" ]]; then
|
|
90
|
-
|
|
90
|
+
install_args+=(--prefix "$HOME/.local")
|
|
91
91
|
install_bin="$HOME/.local/bin/rea"
|
|
92
92
|
else
|
|
93
93
|
npm_prefix="$(npm prefix --global)" || fail "the npm global prefix could not be read. Repair the npm configuration, then retry."
|
|
94
94
|
install_bin="$npm_prefix/bin/rea"
|
|
95
95
|
fi
|
|
96
|
+
install_args+=("$PACKAGE@$version")
|
|
96
97
|
|
|
97
98
|
printf 'REA install plan\n'
|
|
98
99
|
printf ' Version: %s\n' "$version"
|
|
99
100
|
printf ' Runtime: Node.js %s\n' "$node_version"
|
|
100
|
-
printf ' Command:
|
|
101
|
+
printf ' Command:'
|
|
102
|
+
printf ' %q' npm "${install_args[@]}"
|
|
103
|
+
printf '\n'
|
|
101
104
|
printf ' Binary: %s\n' "$install_bin"
|
|
102
105
|
printf ' Setup: %s\n' "$([[ "$start_setup" == true ]] && printf 'start when a terminal is available' || printf 'skipped')"
|
|
103
106
|
|
|
@@ -107,7 +110,7 @@ if [[ "$dry_run" == true ]]; then
|
|
|
107
110
|
fi
|
|
108
111
|
|
|
109
112
|
printf 'Installing %s@%s...\n' "$PACKAGE" "$version"
|
|
110
|
-
npm
|
|
113
|
+
npm "${install_args[@]}" || fail "npm could not install REA. Check registry access and npm permissions, then retry."
|
|
111
114
|
[[ -x "$install_bin" ]] || fail "npm completed without installing the rea command. Check the npm global bin directory and PATH, then retry."
|
|
112
115
|
installed_version="$("$install_bin" --version 2>/dev/null | tr -d '[:space:]')" || fail "the installed REA version could not be read. Reinstall the requested version, then retry."
|
|
113
116
|
[[ "$installed_version" == "$version" ]] || fail "installed version $installed_version does not match $version. Reinstall the requested version, then retry."
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
=====================
|
|
3
|
+
|
|
4
|
+
Copyright © 2023-2025 Washi
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the “Software”), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
|
23
|
+
|
|
24
|
+
The read-only NativeAOT parser adapts format and hydration semantics from
|
|
25
|
+
Washi1337/ghidra-nativeaot commit
|
|
26
|
+
effeb734fc570c32650f88b159608979dc7b423e (MIT). MethodTable field layout was
|
|
27
|
+
cross-checked against .NET runtime src/coreclr/nativeaot/Runtime/inc/MethodTable.h
|
|
28
|
+
at dotnet/runtime commit a3b2d40328be0be3f8dd43f0e5cc925b8827b044 (MIT).
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageVersion": "6.
|
|
2
|
+
"packageVersion": "6.4.0",
|
|
3
3
|
"platform": "win32",
|
|
4
4
|
"architecture": "x64",
|
|
5
5
|
"abiVersion": 1,
|
|
6
6
|
"nodeApiVersion": 8,
|
|
7
7
|
"artifact": "rea-windows-x64.node",
|
|
8
|
-
"artifactSha256": "
|
|
8
|
+
"artifactSha256": "c4fd9f377e567bcf15ba3fec3e0b0ed965d82b765a2adcdac49e46f14524b6d5"
|
|
9
9
|
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rea-agents",
|
|
3
3
|
"mcpName": "io.github.morluto/rea",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.4.0",
|
|
5
5
|
"description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
32
|
"type": "module",
|
|
33
|
+
"imports": {
|
|
34
|
+
"#javascript-analysis-worker": "./dist/composition/javascriptAnalysisWorkerProcess.js"
|
|
35
|
+
},
|
|
33
36
|
"bin": {
|
|
34
37
|
"rea": "scripts/rea.mjs",
|
|
35
38
|
"rea-agents": "scripts/rea.mjs"
|
|
@@ -50,6 +53,8 @@
|
|
|
50
53
|
"bridge/ghidra/ReaGhidraBridge.java",
|
|
51
54
|
"bridge/ghidra/ReaGhidraExtensions.java",
|
|
52
55
|
"bridge/ghidra/ReaGhidraPrepareCom.java",
|
|
56
|
+
"bridge/ghidra/ReaGhidraApplySeeds.java",
|
|
57
|
+
"bridge/ghidra/ReaGhidraNoReturnFix.java",
|
|
53
58
|
"bridge/android/ReaJadxBridge.java",
|
|
54
59
|
"bridge/mitmproxy/capture.py",
|
|
55
60
|
"scripts/rea.mjs",
|
|
@@ -76,9 +81,11 @@
|
|
|
76
81
|
"bridge/pwndbg/launch_impl.py",
|
|
77
82
|
"bridge/pwndbg/core_context.py",
|
|
78
83
|
"third_party/pwndbg/README.md",
|
|
79
|
-
"third_party/pwndbg/LICENSE.md"
|
|
84
|
+
"third_party/pwndbg/LICENSE.md",
|
|
85
|
+
"licenses/nativeaot-parser-MIT.txt"
|
|
80
86
|
],
|
|
81
87
|
"scripts": {
|
|
88
|
+
"release:notes": "node scripts/release-notes.mjs",
|
|
82
89
|
"deps:check": "node scripts/check-dependency-install.mjs",
|
|
83
90
|
"metadata:generate": "node scripts/run-exclusive.mjs artifacts node scripts/generate-package-metadata.mjs",
|
|
84
91
|
"metadata:check": "node scripts/generate-package-metadata.mjs --check",
|
|
@@ -88,7 +95,7 @@
|
|
|
88
95
|
"prebuild": "npm run deps:check",
|
|
89
96
|
"build": "node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills --force",
|
|
90
97
|
"precheck": "npm run deps:check",
|
|
91
|
-
"check": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check",
|
|
98
|
+
"check": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check && npm run verify:architecture-guards",
|
|
92
99
|
"precheck:fast": "npm run deps:check",
|
|
93
100
|
"check:fast": "turbo run typecheck lint --output-logs=errors-only",
|
|
94
101
|
"precheck:changed": "npm run deps:check",
|
|
@@ -98,8 +105,10 @@
|
|
|
98
105
|
"precheck:pr": "npm run deps:check",
|
|
99
106
|
"check:pr": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check && npm run jscpd && npm run scan:todos",
|
|
100
107
|
"precheck:ci": "npm run deps:check",
|
|
101
|
-
"check:ci": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check jscpd scan:todos",
|
|
108
|
+
"check:ci": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check jscpd scan:todos && npm run verify:architecture-guards",
|
|
102
109
|
"build:cached": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills",
|
|
110
|
+
"build:termux": "node scripts/run-exclusive.mjs artifacts npm run build:termux:run",
|
|
111
|
+
"build:termux:run": "npm run compile:termux && npm run artifacts:skills",
|
|
103
112
|
"format": "oxfmt .",
|
|
104
113
|
"format:check": "oxfmt --check .",
|
|
105
114
|
"lint": "oxlint && npm run verify:module-boundaries",
|
|
@@ -144,7 +153,13 @@
|
|
|
144
153
|
"verify:native-ui": "npm run build:cached && node scripts/verify-native-ui.mjs",
|
|
145
154
|
"verify:keyed-archive": "npm run build:cached && node scripts/verify/apple/keyed-archive.mjs",
|
|
146
155
|
"verify:macos-bundle": "npm run build:cached && node scripts/verify/apple/macos-bundle.mjs",
|
|
156
|
+
"verify:legacy-simulator": "npm run build:cached && node scripts/verify/apple/legacy-simulator.mjs",
|
|
157
|
+
"verify:architecture-guards": "node scripts/verify/architecture-guards.mjs",
|
|
158
|
+
"verify:apktool": "npm run build:cached && node scripts/verify-apktool.mjs",
|
|
159
|
+
"verify:adb": "npm run build:cached && node scripts/verify-adb.mjs",
|
|
147
160
|
"verify:ghidra": "npm run build:cached && node scripts/verify-real-ghidra.mjs",
|
|
161
|
+
"verify:ghidra:seeds": "npm run build:cached && node scripts/verify/ghidra/seeds.mjs",
|
|
162
|
+
"verify:ghidra:mips": "npm run build:cached && node scripts/verify-real-ghidra-mips.mjs",
|
|
148
163
|
"verify:ghidra:swift": "npm run build:cached && node scripts/verify-real-ghidra-swift.mjs",
|
|
149
164
|
"verify:ida": "npm run build:cached && node scripts/verify-real-ida.mjs",
|
|
150
165
|
"verify:ghidra:switch": "npm run build:cached && node scripts/verify-real-ghidra-switch.mjs",
|
|
@@ -167,6 +182,7 @@
|
|
|
167
182
|
"verify:firmware": "npm run build:cached && node scripts/verify/firmware/analysis.mjs",
|
|
168
183
|
"fixtures:firmware": "node scripts/fixtures/firmware/generate.mjs",
|
|
169
184
|
"verify:android": "npm run build:cached && node scripts/verify/android/analysis.mjs",
|
|
185
|
+
"verify:jeb": "npm run build:cached && node scripts/verify-jeb.mjs",
|
|
170
186
|
"fixtures:android": "node scripts/fixtures/android/fetch.mjs",
|
|
171
187
|
"verify:agent": "npm run build:cached && node scripts/verify-agent-experience.mjs",
|
|
172
188
|
"verify:hopper:linux": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper-linux.mjs",
|
|
@@ -177,6 +193,17 @@
|
|
|
177
193
|
"verify:readiness": "npm run build:cached && npm run verify:fixtures && node scripts/verify-reconstruction-readiness.mjs",
|
|
178
194
|
"verify:package": "npm run build:cached && node scripts/verify-package.mjs",
|
|
179
195
|
"verify:package:windows": "npm run build:cached && node scripts/verify-windows-package.mjs",
|
|
196
|
+
"verify:qwen-client": "npm run build:cached && node scripts/verify-qwen-client.mjs",
|
|
197
|
+
"verify:gemini-client": "npm run build:cached && node scripts/verify-gemini-client.mjs",
|
|
198
|
+
"verify:opencode-client": "npm run build:cached && node scripts/verify-opencode-client.mjs",
|
|
199
|
+
"verify:grok-client": "npm run build:cached && node scripts/verify-grok-client.mjs",
|
|
200
|
+
"verify:commandcode-client": "npm run build:cached && node scripts/verify-commandcode-client.mjs",
|
|
201
|
+
"verify:omp-client": "npm run build:cached && node scripts/verify-omp-client.mjs",
|
|
202
|
+
"verify:copilot-client": "npm run build:cached && node scripts/verify-copilot-client.mjs",
|
|
203
|
+
"verify:claude-client": "npm run build:cached && node scripts/verify-claude-client.mjs",
|
|
204
|
+
"verify:pi-client": "npm run build:cached && node scripts/verify-native-agent-client.mjs pi",
|
|
205
|
+
"verify:hermes-client": "npm run build:cached && node scripts/verify-native-agent-client.mjs hermes",
|
|
206
|
+
"verify:deepseek-client": "npm run build:cached && node scripts/verify-deepseek-client.mjs",
|
|
180
207
|
"probe:windows-capabilities": "npm run build:cached && node scripts/windows-capabilities.mjs",
|
|
181
208
|
"verify:published": "node scripts/verify-published-package.mjs",
|
|
182
209
|
"config:print": "node scripts/print-mcp-config.mjs",
|
|
@@ -218,6 +245,7 @@
|
|
|
218
245
|
"verify:recorded:crash": "npm run build:cached && node scripts/verify-recorded-crash.mjs",
|
|
219
246
|
"mcp-catalog:check:built": "node scripts/generate-mcp-tool-catalog.mjs --check",
|
|
220
247
|
"compile": "node scripts/clean-build-output.mjs && tsc -p tsconfig.build.json",
|
|
248
|
+
"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",
|
|
221
249
|
"artifacts:mcp-catalog": "node scripts/generate-mcp-tool-catalog.mjs",
|
|
222
250
|
"artifacts:skills": "node scripts/generate-skill-metadata.mjs",
|
|
223
251
|
"artifacts:product-catalog": "node scripts/generate-product-catalog.mjs",
|
|
@@ -243,6 +271,7 @@
|
|
|
243
271
|
"@lydell/node-pty": "1.1.0",
|
|
244
272
|
"@modelcontextprotocol/client": "2.3.1",
|
|
245
273
|
"@modelcontextprotocol/server": "2.3.1",
|
|
274
|
+
"@xmldom/xmldom": "0.9.12",
|
|
246
275
|
"@xterm/addon-serialize": "0.14.0",
|
|
247
276
|
"@xterm/headless": "6.0.0",
|
|
248
277
|
"@zip.js/zip.js": "2.15.0",
|
|
@@ -263,10 +292,12 @@
|
|
|
263
292
|
"plist": "5.0.0",
|
|
264
293
|
"semver": "7.8.5",
|
|
265
294
|
"smol-toml": "1.9.0",
|
|
295
|
+
"stream-json": "3.7.0",
|
|
266
296
|
"write-file-atomic": "7.0.0",
|
|
267
297
|
"ws": "8.21.0",
|
|
268
298
|
"zod": "4.4.3",
|
|
269
|
-
"evmole": "0.9.3"
|
|
299
|
+
"evmole": "0.9.3",
|
|
300
|
+
"yaml": "2.9.0"
|
|
270
301
|
},
|
|
271
302
|
"overrides": {
|
|
272
303
|
"vitepress": {
|
|
@@ -289,8 +320,8 @@
|
|
|
289
320
|
"oxlint": "1.87.0",
|
|
290
321
|
"turbo": "2.11.7",
|
|
291
322
|
"typescript": "7.0.2",
|
|
323
|
+
"typescript-termux": "npm:typescript@5.9.3",
|
|
292
324
|
"vitepress": "1.6.4",
|
|
293
|
-
"vitest": "5.0.3"
|
|
294
|
-
"yaml": "2.9.0"
|
|
325
|
+
"vitest": "5.0.3"
|
|
295
326
|
}
|
|
296
327
|
}
|
package/scripts/rea.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { access } from "node:fs/promises";
|
|
4
|
-
import { dirname, resolve } from "node:path";
|
|
4
|
+
import { dirname, join, resolve } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
|
|
7
7
|
// Route production MCP before importing Incur. Incur owns registration helpers
|
|
@@ -15,6 +15,21 @@ const isMcpMode =
|
|
|
15
15
|
args.length === 1 && (args[0] === "--mcp" || args[0] === "mcp");
|
|
16
16
|
const isMcpDoctorMode = args[0] === "mcp" && args[1] === "doctor";
|
|
17
17
|
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
18
|
+
|
|
19
|
+
// Playwright's registry assumes one of its three desktop host platforms when
|
|
20
|
+
// it chooses the browser cache directory. Termux reports `android`, although
|
|
21
|
+
// its Node runtime and filesystem are POSIX-compatible. Keep the cache path
|
|
22
|
+
// explicit so REA can start on Termux. Browser launch still requires a
|
|
23
|
+
// caller-supplied Android-compatible Chromium executable.
|
|
24
|
+
if (
|
|
25
|
+
process.platform === "android" &&
|
|
26
|
+
process.env.PLAYWRIGHT_BROWSERS_PATH === undefined
|
|
27
|
+
) {
|
|
28
|
+
const cacheRoot =
|
|
29
|
+
process.env.XDG_CACHE_HOME ?? join(process.env.HOME ?? ".", ".cache");
|
|
30
|
+
process.env.PLAYWRIGHT_BROWSERS_PATH = join(cacheRoot, "ms-playwright");
|
|
31
|
+
}
|
|
32
|
+
|
|
18
33
|
const runtimeFiles = isMcpMode
|
|
19
34
|
? ["dist/main.js"]
|
|
20
35
|
: isMcpDoctorMode
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: reverse-engineer-anything
|
|
3
3
|
description: Reverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.
|
|
4
4
|
metadata:
|
|
5
|
-
version: "
|
|
6
|
-
tool_count:
|
|
5
|
+
version: "37"
|
|
6
|
+
tool_count: 170
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# REA
|
|
@@ -26,50 +26,18 @@ a skill installed from repository main may describe capabilities absent from
|
|
|
26
26
|
an older npm release. Keep complete inline Evidence when that server does not
|
|
27
27
|
advertise retained references.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
active session needs a restart/reconnection; doctor cannot prove that the
|
|
42
|
-
current agent has connected. A missing provider affects only tasks requiring
|
|
43
|
-
that provider: static JavaScript inspection needs neither Hopper nor Ghidra,
|
|
44
|
-
and Android inspection has separate bring-your-own JADX/Java prerequisites.
|
|
45
|
-
3. For a configuration repair, prepare the read-only plan:
|
|
46
|
-
`npx -y rea-agents@latest setup --client codex --dry-run --json`.
|
|
47
|
-
Use the current client's ID, show its exact proposed paths, backups, and
|
|
48
|
-
changes, and obtain approval before setup writes configuration or installs
|
|
49
|
-
Hopper. Setup normally installs the matching bundled skill too; include that
|
|
50
|
-
replacement in the reviewed plan. After approval, apply the same scope with
|
|
51
|
-
`npx -y rea-agents@latest setup --client codex --yes`. Add `--install-hopper`
|
|
52
|
-
only if that separate installation was needed and explicitly approved.
|
|
53
|
-
4. Restart/reconnect the affected agent. Verify that REA tools actually appear
|
|
54
|
-
in the session, then resume the original investigation. If they remain
|
|
55
|
-
absent, inspect the client's MCP launch error rather than repeating setup.
|
|
56
|
-
|
|
57
|
-
REA setup never installs or upgrades Node.js, npm, Homebrew, Java, Ghidra, IDA,
|
|
58
|
-
JADX, Binwalk, or Unblob. Use existing prerequisites; do not install unrelated
|
|
59
|
-
software to repair
|
|
60
|
-
MCP registration. For an unsupported client, use manual stdio registration
|
|
61
|
-
with a version-pinned `rea-agents` package or continue through the CLI.
|
|
62
|
-
|
|
63
|
-
A concrete CLI fallback for an operator-supplied JavaScript tree or ASAR is:
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
No MCP registration or native engine is required. Read the returned Evidence,
|
|
70
|
-
graph, limitations, and unknowns with the same care as an MCP result; the CLI
|
|
71
|
-
returns the Evidence record directly. This fallback does not establish that
|
|
72
|
-
MCP is configured. Native CLI tasks still require their selected engine.
|
|
29
|
+
If tools are absent, a call is blocked by the client, or a required provider is
|
|
30
|
+
unavailable, read [connection and recovery](references/connection-and-recovery.md).
|
|
31
|
+
Diagnose the observed blocker, continue useful supported work, and resume the
|
|
32
|
+
original task after repair. Client approval, shell PATH, registration and engine
|
|
33
|
+
availability have different remedies; avoid repeating setup for all of them.
|
|
34
|
+
|
|
35
|
+
Prefer an existing `rea` CLI. When none is installed and REA package acquisition
|
|
36
|
+
is within the authorized scope, use `npx -y rea-agents@6.4.0` in its place.
|
|
37
|
+
Configuration repair starts with a read-only setup plan; show paths, backups and
|
|
38
|
+
skill replacement before applying authorized changes. Preserve existing approval
|
|
39
|
+
and target-execution boundaries. REA setup never installs or upgrades unrelated
|
|
40
|
+
software, including Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk or Unblob.
|
|
73
41
|
|
|
74
42
|
## Route the target first
|
|
75
43
|
|
|
@@ -115,6 +83,9 @@ explicit path or endpoint and do not need it.
|
|
|
115
83
|
Historical PIDs do not select live processes. Request `include_debugger_context`
|
|
116
84
|
only when core-only mapping candidates help; see the
|
|
117
85
|
[recorded crash guide](https://github.com/morluto/rea/blob/main/docs/recorded-crashes.md).
|
|
86
|
+
- PE resource type/name/language trees and static icon group references:
|
|
87
|
+
`inspect_pe_resources` with an explicit path. This portable operation requires
|
|
88
|
+
no active target or engine; opaque payloads retain file ranges and SHA-256.
|
|
118
89
|
- Native executable, library, or analysis database: `open_binary`, then
|
|
119
90
|
use focused analysis tools directly; call `binary_overview` when metadata or
|
|
120
91
|
inventory context is useful and available from the selected provider.
|
|
@@ -131,9 +102,11 @@ after opening; IDA does not supply `binary_overview`. Consult session availabili
|
|
|
131
102
|
when composing broader workflows. Modern direct callers and unsupported dossier
|
|
132
103
|
facets remain unknown; live IDA results are not replayed from snapshots.
|
|
133
104
|
|
|
134
|
-
If the
|
|
135
|
-
|
|
136
|
-
|
|
105
|
+
If the user says only "my app" without a name, path, or target already selected
|
|
106
|
+
for this task, ask which app before searching for artifacts. Paths in unrelated
|
|
107
|
+
saved reports and nearby test fixtures do not select the user's target. Resolve
|
|
108
|
+
an actual human-readable app name to one clear installed artifact when possible;
|
|
109
|
+
ask when matches are ambiguous. Never choose an example app on the user's behalf.
|
|
137
110
|
|
|
138
111
|
In a target-free session, use `open_binary` to bind any archive/package or
|
|
139
112
|
native target whose analysis tool operates on the active target. Do not call an
|
|
@@ -144,7 +117,15 @@ list stays complete; availability depends on the operation, target, and host.
|
|
|
144
117
|
## Work summary-first
|
|
145
118
|
|
|
146
119
|
Start with the default result and use its inline Evidence and graph context.
|
|
147
|
-
|
|
120
|
+
For a JavaScript application or ELF layout whose size is unknown or large,
|
|
121
|
+
call `analyze_javascript_application` or `inspect_binary_layout` with
|
|
122
|
+
`"detail": "summary"`, then inspect the retained `parent_evidence_id` with
|
|
123
|
+
`inspect_analysis_view`.
|
|
124
|
+
Page module identities and select the returned `node_id` before requesting an
|
|
125
|
+
item; a single file path can represent several graph roles. Do not repeat an
|
|
126
|
+
identical analysis or rejected call without a changed input or resolved blocker.
|
|
127
|
+
Recheck session state when a lifecycle change makes that status useful.
|
|
128
|
+
Make a focused follow-up only when the
|
|
148
129
|
returned result leaves a specific question unanswered.
|
|
149
130
|
|
|
150
131
|
If MCP reports `resource_constraint` with `details.resource: "transport"`, call
|
|
@@ -155,6 +136,24 @@ session to a selected path. The analysis remains complete in the ledger; avoid
|
|
|
155
136
|
repeating it merely to request the same oversized response. Complete CLI JSON
|
|
156
137
|
output also streams without a single MCP frame.
|
|
157
138
|
|
|
139
|
+
When the retained parent ID is unknown, use `get_evidence_bundle` with
|
|
140
|
+
`detail: "summary"` and exact filters for operation, target SHA-256,
|
|
141
|
+
analysis-profile digest or canonical procedure address. Select its returned
|
|
142
|
+
Evidence ID for the next view instead of requesting the complete bundle.
|
|
143
|
+
`retention: "complete-record"` means the whole record is stored; native
|
|
144
|
+
value-flow truncation and unknown metadata remain separate. For an exported
|
|
145
|
+
portable bundle, use `rea inspect-evidence-bundle` with JSON containing `path`,
|
|
146
|
+
`detail: "summary"` and the same `filters`. Reading that file still requires
|
|
147
|
+
validating its full contents within the local memory budget.
|
|
148
|
+
|
|
149
|
+
A client can also truncate a successful tool result without a REA transport
|
|
150
|
+
error. Treat that preview as incomplete; use the retained parent ID for smaller
|
|
151
|
+
views or export when the full record is needed. Do not parse the preview as
|
|
152
|
+
canonical JSON or repeat the producer. For JavaScript, read the
|
|
153
|
+
[module-view and trace recipes](references/javascript-applications.md) before
|
|
154
|
+
drilling into a large graph; a broad bidirectional trace can expand unrelated
|
|
155
|
+
containment relationships even after summary analysis.
|
|
156
|
+
|
|
158
157
|
Every conclusion must distinguish observations, inferences, and unknowns. Cite
|
|
159
158
|
Evidence IDs, preserve limitations and incomplete coverage, and never imply
|
|
160
159
|
that static analysis observed execution. Runtime requests execute the declared
|
|
@@ -162,7 +161,9 @@ target and lifecycle; do not broaden the target or action beyond those fields.
|
|
|
162
161
|
|
|
163
162
|
Within the user's requested investigation, call available analysis tools
|
|
164
163
|
directly. REA does not require permission grants or per-call approval flags.
|
|
165
|
-
|
|
164
|
+
The agent client can independently require approval. Follow the declared request
|
|
165
|
+
scope and the host's actual access requirements; use the recovery guide for an
|
|
166
|
+
observed client-policy rejection.
|
|
166
167
|
|
|
167
168
|
## Plan broader investigations
|
|
168
169
|
|