rea-agents 4.0.1 → 5.0.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 +257 -96
- package/bridge/android/ReaJadxBridge.java +247 -0
- package/bridge/ghidra/ReaGhidraBridge.java +358 -15
- package/bridge/ghidra/ReaGhidraExtensions.java +113 -0
- package/bridge/ghidra/ReaGhidraPrepareCom.java +32 -0
- package/bridge/native/NativeUIChildren.swift +27 -0
- package/bridge/native/ReaNativeUI.swift +30 -16
- package/dist/android/AndroidTargetSnapshot.js +36 -0
- package/dist/android/JadxAnalysis.js +193 -0
- package/dist/android/JadxConfiguration.js +57 -0
- package/dist/android/JadxMcpTransport.js +172 -0
- package/dist/android/JadxProtocol.js +109 -0
- package/dist/android/JadxProvider.js +259 -0
- package/dist/android/JadxRelease.js +27 -0
- package/dist/android/JadxSession.js +111 -0
- package/dist/application/AnalysisContextQueries.js +2 -1
- package/dist/application/AppBundleExecutable.js +141 -0
- package/dist/application/ArtifactExtraction.js +7 -4
- package/dist/application/ArtifactGraphConstruction.js +10 -17
- package/dist/application/ArtifactInventory/classify.js +1 -1
- package/dist/application/ArtifactInventory/scanCanonical.js +9 -8
- package/dist/application/ArtifactInventory/scanReader.js +1 -1
- package/dist/application/ArtifactInventory.js +1 -1
- package/dist/application/BinaryTargetResolver.js +32 -68
- package/dist/application/BrowserObservationService.js +2 -1
- package/dist/application/BrowserScenarioCaptureService.js +2 -1
- package/dist/application/BrowserScenarioEvidence.js +2 -2
- package/dist/application/CallPathTracing.js +2 -1
- package/dist/application/CapabilityInventory.js +78 -2
- package/dist/application/ClientConfigPath.js +3 -1
- package/dist/application/ClientConfigurationDocument.js +83 -13
- package/dist/application/ClientRegistrationStatus.js +15 -9
- package/dist/application/DirectAnalysis.js +35 -21
- package/dist/application/DirectAnalysisStatus.js +7 -8
- package/dist/application/Doctor.js +48 -8
- package/dist/application/DoctorDiagnostics.js +9 -7
- package/dist/application/DoctorScope.js +1 -1
- package/dist/application/EnhancedLiteralTracing.js +2 -1
- package/dist/application/EnhancedToolTypes.js +2 -1
- package/dist/application/EnhancedTools.js +7 -5
- package/dist/application/EvidenceBundleCommands.js +3 -2
- package/dist/application/EvidenceBundleFiles.js +1 -1
- package/dist/application/EvidenceInputResolver.js +30 -0
- package/dist/application/FilesystemSnapshot.js +20 -5
- package/dist/application/FunctionAnalysisEvidence.js +32 -0
- package/dist/application/InventoryProjectionEvidence.js +2 -1
- package/dist/application/InvestigationProviders.js +6 -0
- package/dist/application/JsonFiles.js +1 -1
- package/dist/application/LinuxHopper.js +20 -6
- package/dist/application/MacHopper.js +20 -7
- package/dist/application/OptionalObservationProviders.js +3 -0
- package/dist/application/ProcessCaptureCapability.js +1 -1
- package/dist/application/ProcessCaptureError.js +1 -1
- package/dist/application/ProcessCaptureJournal.js +3 -1
- package/dist/application/ProcessCaptureLifecycle.js +8 -5
- package/dist/application/ProcessCli.js +14 -6
- package/dist/application/ProcessEvidence.js +2 -6
- package/dist/application/ProcessHarness.js +23 -11
- package/dist/application/ProcessNormalization.js +12 -5
- package/dist/application/ProcessSampling.js +3 -1
- package/dist/application/ReconstructionCoverageService.js +4 -7
- package/dist/application/ReconstructionObligationCandidates.js +5 -2
- package/dist/application/ReconstructionObligationLedgerService.js +2 -1
- package/dist/application/ReferenceSourceImport.js +2 -0
- package/dist/application/ReferenceSourceImportEntries.js +22 -3
- package/dist/application/ReferenceSourceImportPolicy.js +4 -2
- package/dist/application/ReferenceSourceImportTypes.js +5 -0
- package/dist/application/ReferenceSourceVcsAdapter.js +35 -4
- package/dist/application/Setup.js +11 -130
- package/dist/application/SetupClientConfiguration.js +36 -22
- package/dist/application/SetupHost.js +126 -0
- package/dist/application/SetupPlan.js +1 -1
- package/dist/application/SetupRegistrationEnvironment.js +1 -2
- package/dist/application/SetupSkill.js +9 -3
- package/dist/application/SetupTypes.js +17 -0
- package/dist/application/StoreFileLock.js +7 -2
- package/dist/application/SupportedClients.js +8 -0
- package/dist/application/Uninstall.js +32 -21
- package/dist/application/UpdateMaintenance.js +3 -3
- package/dist/application/UpdateRuntime.js +5 -2
- package/dist/application/ValidateSelectedWebScript.js +27 -0
- package/dist/application/WebModuleTraceService.js +209 -0
- package/dist/application/WebRuntimeService.js +73 -0
- package/dist/application/WebScriptExportService.js +115 -0
- package/dist/application/WebSourceLocationService.js +160 -0
- package/dist/application/WindowsCapabilities.js +7 -7
- package/dist/application/android/AndroidAnalysisService.js +37 -0
- package/dist/application/{AndroidApplicationService.js → android/AndroidApplicationService.js} +3 -3
- package/dist/application/{AppleApplicationService.js → apple/AppleApplicationService.js} +5 -5
- package/dist/application/{AnalysisClientCleanup.js → binary/AnalysisClientCleanup.js} +2 -2
- package/dist/application/{AnalysisProviderEvaluation.js → binary/AnalysisProviderEvaluation.js} +8 -6
- package/dist/application/{AnalysisProviderRegistry.js → binary/AnalysisProviderRegistry.js} +5 -4
- package/dist/application/{AnalysisSnapshotCache.js → binary/AnalysisSnapshotCache.js} +8 -7
- package/dist/application/{AnalysisSnapshotFiles.js → binary/AnalysisSnapshotFiles.js} +4 -4
- package/dist/application/{BinarySession.js → binary/BinarySession.js} +26 -11
- package/dist/application/{BinarySessionComposition.js → binary/BinarySessionComposition.js} +2 -1
- package/dist/application/{BinarySessionExecution.js → binary/BinarySessionExecution.js} +9 -4
- package/dist/application/{BinarySessionOpen.js → binary/BinarySessionOpen.js} +7 -6
- package/dist/application/{BinarySessionRecords.js → binary/BinarySessionRecords.js} +34 -40
- package/dist/application/{CompositeProvider.js → binary/CompositeProvider.js} +2 -2
- package/dist/application/{LazyAnalysisProvider.js → binary/LazyAnalysisProvider.js} +6 -4
- package/dist/application/{SessionProviderRouter.js → binary/SessionProviderRouter.js} +7 -4
- package/dist/application/firmware/FirmwareAnalysisPort.js +1 -0
- package/dist/application/firmware/FirmwareAnalysisService.js +35 -0
- package/dist/application/{EvidenceLedger.js → investigation/EvidenceLedger.js} +44 -6
- package/dist/application/investigation/InvestigationRecordPort.js +1 -0
- package/dist/application/investigation/InvestigationRecords.js +69 -0
- package/dist/application/{UnknownEvidence.js → investigation/UnknownEvidence.js} +1 -1
- package/dist/application/{ElectronActiveEvidence.js → javascript/ElectronActiveEvidence.js} +4 -4
- package/dist/application/javascript/ElectronActiveObservationPort.js +1 -0
- package/dist/application/{ElectronActiveObservationService.js → javascript/ElectronActiveObservationService.js} +3 -2
- package/dist/application/{ElectronBoundaryAnalysis.js → javascript/ElectronBoundaryAnalysis.js} +1 -1
- package/dist/application/{ElectronBoundaryGraphContext.js → javascript/ElectronBoundaryGraphContext.js} +1 -1
- package/dist/application/{ElectronEvidence.js → javascript/ElectronEvidence.js} +2 -2
- package/dist/application/javascript/ElectronObservationPort.js +1 -0
- package/dist/application/{ElectronObservationService.js → javascript/ElectronObservationService.js} +3 -2
- package/dist/application/{JavaScriptApplicationEvidence.js → javascript/JavaScriptApplicationEvidence.js} +3 -3
- package/dist/application/{JavaScriptApplicationEvidenceGraph.js → javascript/JavaScriptApplicationEvidenceGraph.js} +5 -5
- package/dist/application/javascript/JavaScriptApplicationService.js +99 -0
- package/dist/application/{JavaScriptApplicationWorkflowEvidence.js → javascript/JavaScriptApplicationWorkflowEvidence.js} +3 -3
- package/dist/application/{JavaScriptApplicationWorkflowService.js → javascript/JavaScriptApplicationWorkflowService.js} +12 -11
- package/dist/application/{JavaScriptArtifactAnalysis.js → javascript/JavaScriptArtifactAnalysis.js} +12 -26
- package/dist/application/javascript/JavaScriptArtifactAnalysisTypes.js +1 -0
- package/dist/application/{JavaScriptArtifactGraphAccumulator.js → javascript/JavaScriptArtifactGraphAccumulator.js} +16 -2
- package/dist/application/{JavaScriptArtifactGraphBuilder.js → javascript/JavaScriptArtifactGraphBuilder.js} +2 -2
- package/dist/application/{JavaScriptArtifactGraphContext.js → javascript/JavaScriptArtifactGraphContext.js} +1 -1
- package/dist/application/{JavaScriptArtifactGraphDocuments.js → javascript/JavaScriptArtifactGraphDocuments.js} +1 -1
- package/dist/application/{JavaScriptArtifactGraphFindings.js → javascript/JavaScriptArtifactGraphFindings.js} +20 -7
- package/dist/application/{JavaScriptArtifactGraphStructure.js → javascript/JavaScriptArtifactGraphStructure.js} +1 -1
- package/dist/application/{JavaScriptArtifactPathResolution.js → javascript/JavaScriptArtifactPathResolution.js} +12 -14
- package/dist/application/{JavaScriptArtifactReconstruction.js → javascript/JavaScriptArtifactReconstruction.js} +4 -8
- package/dist/application/{JavaScriptJsonModules.js → javascript/JavaScriptJsonModules.js} +3 -2
- package/dist/application/{JavaScriptModuleRelationships.js → javascript/JavaScriptModuleRelationships.js} +5 -3
- package/dist/application/javascript/JavaScriptRecoveryPort.js +1 -0
- package/dist/application/javascript/JavaScriptRecoveryService.js +52 -0
- package/dist/application/{JavaScriptReturnShapeProjection.js → javascript/JavaScriptReturnShapeProjection.js} +3 -3
- package/dist/application/{JavaScriptRuntimeObservationEvidence.js → javascript/JavaScriptRuntimeObservationEvidence.js} +2 -2
- package/dist/application/javascript/JavaScriptRuntimeObservationPort.js +1 -0
- package/dist/application/{JavaScriptRuntimeObservationService.js → javascript/JavaScriptRuntimeObservationService.js} +3 -2
- package/dist/application/{JavaScriptRuntimeReconciliationEvidence.js → javascript/JavaScriptRuntimeReconciliationEvidence.js} +3 -3
- package/dist/application/{JavaScriptRuntimeReconciliationService.js → javascript/JavaScriptRuntimeReconciliationService.js} +6 -5
- package/dist/application/{JavaScriptSemanticGraphAsyncProjection.js → javascript/JavaScriptSemanticGraphAsyncProjection.js} +1 -1
- package/dist/application/{JavaScriptSemanticGraphBuilder.js → javascript/JavaScriptSemanticGraphBuilder.js} +5 -3
- package/dist/application/{JavaScriptSemanticGraphChildProcessProjection.js → javascript/JavaScriptSemanticGraphChildProcessProjection.js} +1 -1
- package/dist/application/{JavaScriptSemanticGraphConstruction.js → javascript/JavaScriptSemanticGraphConstruction.js} +3 -2
- package/dist/application/{JavaScriptSemanticGraphDataProjection.js → javascript/JavaScriptSemanticGraphDataProjection.js} +1 -1
- package/dist/application/{JavaScriptSemanticGraphFingerprintProjection.js → javascript/JavaScriptSemanticGraphFingerprintProjection.js} +1 -1
- package/dist/application/{JavaScriptSemanticGraphFlowProjection.js → javascript/JavaScriptSemanticGraphFlowProjection.js} +2 -2
- package/dist/application/{JavaScriptSemanticGraphObjectProjection.js → javascript/JavaScriptSemanticGraphObjectProjection.js} +1 -1
- package/dist/application/{JavaScriptSemanticGraphProjection.js → javascript/JavaScriptSemanticGraphProjection.js} +2 -2
- package/dist/application/{JavaScriptSemanticGraphResourceProjection.js → javascript/JavaScriptSemanticGraphResourceProjection.js} +1 -1
- package/dist/application/{JavaScriptSemanticTraceService.js → javascript/JavaScriptSemanticTraceService.js} +6 -5
- package/dist/application/{ManagedApplicationGraphService.js → managed/ManagedApplicationGraphService.js} +7 -6
- package/dist/application/{ManagedMemberComparisonService.js → managed/ManagedMemberComparisonService.js} +10 -8
- package/dist/application/{ManagedNativeVerificationService.js → managed/ManagedNativeVerificationService.js} +7 -6
- package/dist/application/{ManagedReconstructionService.js → managed/ManagedReconstructionService.js} +7 -6
- package/dist/application/{NativeApiInspection.js → native/NativeApiInspection.js} +1 -1
- package/dist/application/{NativeCallRoutes.js → native/NativeCallRoutes.js} +3 -3
- package/dist/application/{NativeDispatchMetadataInspection.js → native/NativeDispatchMetadataInspection.js} +4 -4
- package/dist/application/{NativeUiActionTrace.js → native/NativeUiActionTrace.js} +7 -6
- package/dist/application/{NativeValueTrace.js → native/NativeValueTrace.js} +6 -6
- package/dist/{application/ArtifactInventory/hash.js → artifacts/ArtifactHash.js} +4 -2
- package/dist/artifacts/ArtifactPaths.js +3 -3
- package/dist/artifacts/ArtifactProvider.js +10 -38
- package/dist/artifacts/ArtifactProviderMetadata.js +36 -0
- package/dist/artifacts/AsarArtifactReader.js +195 -23
- package/dist/artifacts/AsarEntryStream.js +76 -0
- package/dist/artifacts/DirectoryArtifactReader.js +43 -7
- package/dist/artifacts/NativeDmgArtifactReader.js +171 -12
- package/dist/artifacts/SafeOutputTree.js +26 -10
- package/dist/artifacts/ZipArtifactReader.js +1 -0
- package/dist/{application → artifacts/apple}/AppleAssetCatalogAnalysis.js +4 -4
- package/dist/{application → artifacts/apple}/InterfaceBuilderAnalysis.js +125 -51
- package/dist/artifacts/{KeyedArchiveReader.js → apple/KeyedArchiveReader.js} +21 -27
- package/dist/artifacts/{NibArchive.js → apple/NibArchive.js} +4 -2
- package/dist/artifacts/apple/NibViewHierarchy.js +150 -0
- package/dist/{application → artifacts/javascript}/JavaScriptArtifactFiles.js +30 -7
- package/dist/artifacts/javascript/JavaScriptArtifactReader.js +6 -0
- package/dist/artifacts/readStableArtifact.js +52 -0
- package/dist/browser/BrowserProcessStartup.js +3 -1
- package/dist/browser/BrowserScenarioSecrets.js +50 -8
- package/dist/browser/CdpAuthorizedMainFrame.js +5 -5
- package/dist/browser/CdpAuthorizedTarget.js +22 -0
- package/dist/browser/CdpBrowserProvider.js +8 -16
- package/dist/browser/CdpCaptureDocuments.js +36 -22
- package/dist/browser/CdpCaptureEventBodyShapes.js +3 -3
- package/dist/browser/CdpCaptureEventHandlers.js +32 -28
- package/dist/browser/CdpCaptureEventHelpers.js +6 -6
- package/dist/browser/CdpCaptureStorage.js +10 -8
- package/dist/browser/CdpCaptureStorageFingerprints.js +25 -23
- package/dist/browser/CdpCaptureValues.js +8 -4
- package/dist/browser/CdpCommandRejection.js +17 -0
- package/dist/browser/CdpConnection.js +59 -17
- package/dist/browser/CdpElectronInspection.js +13 -13
- package/dist/browser/CdpElectronProvider.js +7 -7
- package/dist/browser/CdpElectronScriptEvents.js +6 -6
- package/dist/browser/CdpElectronScripts.js +4 -4
- package/dist/browser/CdpElectronWorkers.js +4 -4
- package/dist/browser/CdpEndpoint.js +22 -10
- package/dist/browser/CdpObservationSession.js +20 -24
- package/dist/browser/CdpOptionalCommand.js +1 -1
- package/dist/browser/CdpPageCapture.js +6 -5
- package/dist/browser/CdpPageCaptureScripts.js +2 -2
- package/dist/browser/CdpPageCaptureWorkers.js +9 -9
- package/dist/browser/CdpSafeMetadata.js +101 -18
- package/dist/browser/CdpScreenshot.js +6 -6
- package/dist/browser/CdpTargetEvents.js +8 -0
- package/dist/browser/CdpTargetSession.js +10 -7
- package/dist/browser/CdpWebMcpDiscovery.js +23 -17
- package/dist/browser/ElectronFileScope.js +9 -3
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +10 -7
- package/dist/browser/PlaywrightElectronActiveActions.js +1 -1
- package/dist/browser/PlaywrightElectronActiveProvider.js +9 -8
- package/dist/browser/PlaywrightExecutionBoundary.js +1 -1
- package/dist/browser/PlaywrightScenarioArtifacts.js +10 -5
- package/dist/browser/PlaywrightScenarioBrowser.js +3 -1
- package/dist/browser/PlaywrightScenarioEvents.js +65 -53
- package/dist/browser/PlaywrightScenarioSession.js +13 -3
- package/dist/browser/WebSourceMapFetcher.js +55 -58
- package/dist/browser/assets/LocalWebScriptArtifacts.js +87 -0
- package/dist/browser/assets/PageScriptCapture.js +32 -0
- package/dist/browser/assets/PublishWebScripts.js +74 -0
- package/dist/browser/assets/ScenarioScriptCapture.js +76 -0
- package/dist/browser/assets/ScriptCaptureAdapters.js +57 -0
- package/dist/browser/assets/WebArtifactReads.js +56 -0
- package/dist/browser/assets/WebSourceLocationArtifacts.js +40 -0
- package/dist/browser/execution/CdpEventListeners.js +79 -0
- package/dist/browser/execution/CdpExecutionCapture.js +135 -0
- package/dist/browser/execution/CdpExecutionCollection.js +57 -0
- package/dist/browser/execution/CdpExecutionWindow.js +100 -0
- package/dist/browser/execution/CdpListenerSelector.js +22 -0
- package/dist/browser/execution/CdpPreciseCoverage.js +48 -0
- package/dist/browser/execution/CdpRuntimeInitiator.js +18 -0
- package/dist/browser/execution/CdpRuntimeProtocol.js +106 -0
- package/dist/browser/execution/CdpRuntimeRequests.js +81 -0
- package/dist/browser/execution/CdpRuntimeSession.js +163 -0
- package/dist/browser/execution/CdpRuntimeSources.js +223 -0
- package/dist/browser/execution/CdpWebRuntimeProvider.js +51 -0
- package/dist/browser/modules/NativeModuleResolver.js +210 -0
- package/dist/browser/modules/WebModuleArtifacts.js +40 -0
- package/dist/browser/network/PlaywrightNetworkContent.js +71 -0
- package/dist/browser/network/PlaywrightScenarioNetwork.js +180 -0
- package/dist/browser/providerIdentities.js +24 -0
- package/dist/catalogIdentity.js +23 -15
- package/dist/cli/androidCommands.js +91 -0
- package/dist/{cliApplicationCommands.js → cli/applicationCommands.js} +49 -16
- package/dist/cli/artifactCommands.js +1 -1
- package/dist/{cliBrowserAdvancedCommands.js → cli/browserAdvancedCommands.js} +39 -24
- package/dist/{cliBrowserCommands.js → cli/browserCommands.js} +9 -9
- package/dist/cli/commandCancellation.js +24 -0
- package/dist/cli/coreAnalysisCommands.js +5 -400
- package/dist/cli/coreBinaryCommands.js +211 -0
- package/dist/cli/coreNativeCommands.js +293 -0
- package/dist/{cliElectronCommands.js → cli/electronCommands.js} +20 -24
- package/dist/cli/firmwareCommands.js +75 -0
- package/dist/{cliSetup.js → cli/interactiveSetup.js} +1 -1
- package/dist/cli/javascriptApplicationAnalysis.js +2 -2
- package/dist/cli/javascriptRecoveryCommands.js +45 -0
- package/dist/cli/managedCommands.js +5 -5
- package/dist/cli/managedProjectGraphCommand.js +2 -2
- package/dist/cli/options.js +7 -1
- package/dist/{cliProcessCommands.js → cli/processCommands.js} +3 -3
- package/dist/cli/referenceSourceImportStatus.js +15 -0
- package/dist/cli/setupCommands.js +4 -2
- package/dist/cli/utilityCommands.js +50 -25
- package/dist/cli/webModuleCommands.js +56 -0
- package/dist/cli/webRuntimeCommands.js +60 -0
- package/dist/cli/webScriptCommands.js +31 -0
- package/dist/cli/webSourceLocationCommands.js +42 -0
- package/dist/cli.js +20 -15
- package/dist/cliBrowserContext.js +5 -3
- package/dist/cliBrowserScenarioCommands.js +6 -4
- package/dist/cliCommandNames.js +19 -2
- package/dist/cliEvidenceCommands.js +2 -1
- package/dist/cliJavaScriptRuntimeCommands.js +8 -5
- package/dist/cliJsonInput.js +35 -13
- package/dist/cliLogging.js +2 -1
- package/dist/cliOutput.js +52 -27
- package/dist/composition/android.js +3 -0
- package/dist/composition/auxiliaryAnalysisProviders.js +30 -0
- package/dist/composition/binary.js +25 -0
- package/dist/composition/browserObservation.js +3 -0
- package/dist/composition/browserScenario.js +3 -0
- package/dist/composition/directAnalysis.js +17 -0
- package/dist/composition/electronObservation.js +3 -0
- package/dist/composition/electronScenario.js +3 -0
- package/dist/composition/firmware.js +3 -0
- package/dist/composition/javascriptRecovery.js +3 -0
- package/dist/composition/javascriptRuntimeObservation.js +3 -0
- package/dist/composition/optionalObservationProviders.js +49 -0
- package/dist/composition/webModules.js +5 -0
- package/dist/composition/webRuntime.js +4 -0
- package/dist/composition/webSourceLocations.js +5 -0
- package/dist/config/environment.js +11 -1
- package/dist/config/parseConfig.js +29 -4
- package/dist/config/parsers.js +1 -1
- package/dist/contracts/android/androidToolContracts.js +77 -0
- package/dist/contracts/applicationToolContracts.js +75 -13
- package/dist/contracts/artifactComparisonExample.js +7 -14
- package/dist/contracts/artifactToolContracts.js +2 -2
- package/dist/contracts/browserScenarioToolContracts.js +1 -1
- package/dist/contracts/enhancedInputs.js +1 -1
- package/dist/contracts/enhancedToolContracts.js +31 -0
- package/dist/contracts/errorSchemas.js +4 -2
- package/dist/contracts/evidenceInputContracts.js +13 -0
- package/dist/contracts/firmware/firmwareToolContracts.js +38 -0
- package/dist/contracts/{applicationWorkflowInputContracts.js → javascript/applicationWorkflowInputContracts.js} +18 -18
- package/dist/contracts/{electronToolContracts.js → javascript/electronToolContracts.js} +6 -6
- package/dist/contracts/{javascriptApplicationWorkflowExamples.js → javascript/javascriptApplicationWorkflowExamples.js} +3 -3
- package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +23 -0
- package/dist/contracts/{javascriptRuntimeObservationToolContracts.js → javascript/javascriptRuntimeObservationToolContracts.js} +3 -3
- package/dist/contracts/{javascriptRuntimeReconciliationExample.js → javascript/javascriptRuntimeReconciliationExample.js} +5 -5
- package/dist/contracts/{managedToolContracts.js → managed/managedToolContracts.js} +3 -3
- package/dist/contracts/{managedWorkflowExamples.js → managed/managedWorkflowExamples.js} +1 -1
- package/dist/contracts/{managedWorkflowToolContracts.js → managed/managedWorkflowToolContracts.js} +6 -6
- package/dist/contracts/mobileApplicationGraphExamples.js +105 -0
- package/dist/contracts/{nativeToolContracts.js → native/nativeToolContracts.js} +14 -7
- package/dist/contracts/officialToolContracts.js +66 -0
- package/dist/contracts/promptContracts.js +1 -1
- package/dist/contracts/sessionLifecycleInputs.js +4 -0
- package/dist/contracts/sessionToolContracts.js +43 -0
- package/dist/contracts/sessionToolSchemas.js +1 -1
- package/dist/contracts/toolContractExamples.js +5 -0
- package/dist/contracts/toolContractTypes.js +2 -0
- package/dist/contracts/toolContracts.js +18 -135
- package/dist/contracts/toolEffects.js +75 -0
- package/dist/contracts/toolOutputSchemaGroups.js +20 -16
- package/dist/contracts/toolOutputSchemaPrimitives.js +1 -0
- package/dist/contracts/webRuntimeToolContracts.js +43 -0
- package/dist/contracts/webScriptToolContracts.js +68 -0
- package/dist/doctorRuntime.js +5 -1
- package/dist/domain/analysisErrorBase.js +33 -0
- package/dist/domain/analysisErrorCore.js +62 -0
- package/dist/domain/analysisErrorPresentation.js +22 -2
- package/dist/domain/analysisErrorProjection.js +25 -3
- package/dist/domain/analysisSnapshot.js +1 -0
- package/dist/domain/android/androidAnalysis.js +141 -0
- package/dist/domain/{androidApplication.js → android/androidApplication.js} +7 -6
- package/dist/domain/apple/appleApplication.js +277 -0
- package/dist/domain/{appleAssetCatalog.js → apple/appleAssetCatalog.js} +2 -2
- package/dist/domain/apple/appleBundleAnatomy.js +236 -0
- package/dist/domain/{interfaceBuilderGraph.js → apple/interfaceBuilderGraph.js} +47 -312
- package/dist/domain/apple/interfaceBuilderKeyedArchive.js +411 -0
- package/dist/domain/{keyedArchive.js → apple/keyedArchive.js} +10 -9
- package/dist/domain/apple/plistValue.js +35 -0
- package/dist/domain/artifactGraph.js +1 -0
- package/dist/domain/artifactInspection.js +19 -17
- package/dist/domain/artifactInventoryEvidence.js +32 -27
- package/dist/domain/artifactInventorySnapshot.js +1 -0
- package/dist/domain/artifactOperationError.js +20 -0
- package/dist/domain/artifactPathSyntax.js +26 -0
- package/dist/domain/browserNetworkEvidence.js +82 -0
- package/dist/domain/browserObservation.js +12 -4
- package/dist/domain/browserObservationError.js +25 -0
- package/dist/domain/browserObservationSchemas.js +2 -1
- package/dist/domain/browserScenario.js +1 -1
- package/dist/domain/browserScenarioCapture.js +23 -1
- package/dist/domain/browserScenarioCaptureValues.js +25 -0
- package/dist/domain/browserScenarioDiff.js +7 -4
- package/dist/domain/browserScenarioDiffEvidence.js +35 -1
- package/dist/domain/browserScenarioNormalization.js +6 -11
- package/dist/domain/browserScenarioValues.js +15 -2
- package/dist/domain/browserSession.js +2 -7
- package/dist/domain/bundleComparison.js +2 -1
- package/dist/domain/callPath.js +86 -38
- package/dist/domain/canonicalDigest.js +65 -0
- package/dist/domain/canonicalOrdering.js +11 -0
- package/dist/domain/changedBehavior.js +8 -7
- package/dist/domain/comparisonSemantics.js +2 -4
- package/dist/domain/comparisonStatus.js +39 -0
- package/dist/domain/configurationErrors.js +25 -0
- package/dist/domain/dosCom.js +8 -0
- package/dist/domain/evidence.js +3 -11
- package/dist/domain/evidenceBundle.js +98 -35
- package/dist/domain/evidenceErrors.js +30 -0
- package/dist/domain/firmware/firmwareAnalysis.js +121 -0
- package/dist/domain/functionComparison.js +4 -2
- package/dist/domain/functionComparisonDimensions.js +6 -4
- package/dist/domain/functionComparisonNormalization.js +13 -8
- package/dist/domain/functionComparisonResults.js +1 -4
- package/dist/domain/hopperErrors.js +78 -0
- package/dist/domain/hopperValues.js +4 -3
- package/dist/domain/inputIssueProjection.js +17 -2
- package/dist/domain/{electronActiveObservation.js → javascript/electronActiveObservation.js} +3 -1
- package/dist/domain/{electronObservation.js → javascript/electronObservation.js} +5 -11
- package/dist/domain/{electronStaticAnalysisBrowser.js → javascript/electronStaticAnalysisBrowser.js} +15 -24
- package/dist/domain/{electronStaticAnalysisIpc.js → javascript/electronStaticAnalysisIpc.js} +2 -2
- package/dist/domain/{electronStaticAnalysisNative.js → javascript/electronStaticAnalysisNative.js} +12 -12
- package/dist/domain/javascript/electronStaticAnalysisTypes.js +1 -0
- package/dist/domain/{electronStaticAnalysisValues.js → javascript/electronStaticAnalysisValues.js} +24 -4
- package/dist/domain/{javascriptApplicationAnalysis.js → javascript/javascriptApplicationAnalysis.js} +2 -2
- package/dist/domain/{javascriptApplicationChangeGraph.js → javascript/javascriptApplicationChangeGraph.js} +2 -2
- package/dist/domain/{javascriptApplicationEvidenceSchemas.js → javascript/javascriptApplicationEvidenceSchemas.js} +6 -4
- package/dist/domain/{javascriptApplicationGraph.js → javascript/javascriptApplicationGraph.js} +13 -22
- package/dist/domain/{javascriptApplicationGraphSchemas.js → javascript/javascriptApplicationGraphSchemas.js} +2 -2
- package/dist/domain/{javascriptApplicationVersionComparison.js → javascript/javascriptApplicationVersionComparison.js} +3 -11
- package/dist/domain/{javascriptApplicationVersionComparisonSchemas.js → javascript/javascriptApplicationVersionComparisonSchemas.js} +3 -3
- package/dist/domain/{javascriptApplicationVersionItems.js → javascript/javascriptApplicationVersionItems.js} +4 -4
- package/dist/domain/{javascriptApplicationVersionKeys.js → javascript/javascriptApplicationVersionKeys.js} +16 -9
- package/dist/domain/javascript/javascriptArtifactFiles.js +1 -0
- package/dist/domain/{javascriptAstFingerprint.js → javascript/javascriptAstFingerprint.js} +38 -22
- package/dist/domain/javascript/javascriptAstValues.js +23 -0
- package/dist/domain/{javascriptExportShapeComparison.js → javascript/javascriptExportShapeComparison.js} +1 -2
- package/dist/domain/{javascriptExportShapeComparisonSchemas.js → javascript/javascriptExportShapeComparisonSchemas.js} +2 -2
- package/dist/domain/{javascriptExportShapeSelection.js → javascript/javascriptExportShapeSelection.js} +1 -1
- package/dist/domain/{javascriptExportShapeVariants.js → javascript/javascriptExportShapeVariants.js} +7 -3
- package/dist/domain/{javascriptFeatureSeed.js → javascript/javascriptFeatureSeed.js} +32 -11
- package/dist/domain/{javascriptFeatureTrace.js → javascript/javascriptFeatureTrace.js} +9 -13
- package/dist/domain/{javascriptFeatureTraceSchemas.js → javascript/javascriptFeatureTraceSchemas.js} +32 -18
- package/dist/domain/{javascriptFeatureTraversal.js → javascript/javascriptFeatureTraversal.js} +7 -2
- package/dist/domain/{javascriptNativeHandoff.js → javascript/javascriptNativeHandoff.js} +2 -1
- package/dist/domain/javascript/javascriptRecovery.js +88 -0
- package/dist/domain/{javascriptRuntimeLoadState.js → javascript/javascriptRuntimeLoadState.js} +2 -2
- package/dist/domain/{javascriptRuntimeObservation.js → javascript/javascriptRuntimeObservation.js} +2 -2
- package/dist/domain/{javascriptRuntimeReconciliationActive.js → javascript/javascriptRuntimeReconciliationActive.js} +5 -12
- package/dist/domain/{javascriptRuntimeReconciliationGraph.js → javascript/javascriptRuntimeReconciliationGraph.js} +2 -2
- package/dist/domain/{javascriptRuntimeReconciliationMatching.js → javascript/javascriptRuntimeReconciliationMatching.js} +4 -3
- package/dist/domain/{javascriptRuntimeReconciliationParsing.js → javascript/javascriptRuntimeReconciliationParsing.js} +11 -17
- package/dist/domain/{javascriptRuntimeReconciliationResult.js → javascript/javascriptRuntimeReconciliationResult.js} +4 -4
- package/dist/domain/{javascriptRuntimeReconciliationSchemas.js → javascript/javascriptRuntimeReconciliationSchemas.js} +8 -5
- package/dist/domain/{javascriptRuntimeStaticCandidates.js → javascript/javascriptRuntimeStaticCandidates.js} +8 -4
- package/dist/domain/{javascriptSemanticAnalysis.js → javascript/javascriptSemanticAnalysis.js} +80 -17
- package/dist/domain/{javascriptSemanticAsyncEffects.js → javascript/javascriptSemanticAsyncEffects.js} +2 -1
- package/dist/domain/{javascriptSemanticCallResolution.js → javascript/javascriptSemanticCallResolution.js} +11 -5
- package/dist/domain/{javascriptSemanticCalls.js → javascript/javascriptSemanticCalls.js} +7 -4
- package/dist/domain/{javascriptSemanticChildProcesses.js → javascript/javascriptSemanticChildProcesses.js} +5 -2
- package/dist/domain/{javascriptSemanticDataEffectHelpers.js → javascript/javascriptSemanticDataEffectHelpers.js} +7 -6
- package/dist/domain/{javascriptSemanticDataEffects.js → javascript/javascriptSemanticDataEffects.js} +9 -6
- package/dist/domain/{javascriptSemanticFingerprints.js → javascript/javascriptSemanticFingerprints.js} +40 -16
- package/dist/domain/{javascriptSemanticGraph.js → javascript/javascriptSemanticGraph.js} +23 -28
- package/dist/domain/{javascriptSemanticGraphSchemas.js → javascript/javascriptSemanticGraphSchemas.js} +3 -3
- package/dist/domain/javascript/javascriptSemanticMemberMutations.js +116 -0
- package/dist/domain/javascript/javascriptSemanticMutationValues.js +53 -0
- package/dist/domain/{javascriptSemanticObjects.js → javascript/javascriptSemanticObjects.js} +5 -5
- package/dist/domain/{javascriptSemanticPrimitives.js → javascript/javascriptSemanticPrimitives.js} +9 -2
- package/dist/domain/{javascriptSemanticProjection.js → javascript/javascriptSemanticProjection.js} +32 -44
- package/dist/domain/{javascriptSemanticPromises.js → javascript/javascriptSemanticPromises.js} +77 -21
- package/dist/domain/{javascriptSemanticProvenance.js → javascript/javascriptSemanticProvenance.js} +4 -1
- package/dist/domain/{javascriptSemanticQuery.js → javascript/javascriptSemanticQuery.js} +7 -8
- package/dist/domain/{javascriptSemanticQueryAssessment.js → javascript/javascriptSemanticQueryAssessment.js} +1 -2
- package/dist/domain/{javascriptSemanticQueryIdentity.js → javascript/javascriptSemanticQueryIdentity.js} +1 -2
- package/dist/domain/{javascriptSemanticQuerySchemas.js → javascript/javascriptSemanticQuerySchemas.js} +3 -3
- package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +25 -0
- package/dist/domain/{javascriptSemanticResources.js → javascript/javascriptSemanticResources.js} +2 -1
- package/dist/domain/{javascriptSemanticReturns.js → javascript/javascriptSemanticReturns.js} +2 -1
- package/dist/domain/{javascriptSemanticTraceSchemas.js → javascript/javascriptSemanticTraceSchemas.js} +2 -2
- package/dist/domain/javascript/javascriptSemanticTraversal.js +55 -0
- package/dist/domain/javascript/javascriptSemanticValueTypes.js +1 -0
- package/dist/domain/{javascriptSemanticValues.js → javascript/javascriptSemanticValues.js} +118 -60
- package/dist/domain/{javascriptSourceParser.js → javascript/javascriptSourceParser.js} +4 -2
- package/dist/domain/{javascriptStaticAnalysis.js → javascript/javascriptStaticAnalysis.js} +8 -5
- package/dist/domain/{javascriptStaticAnalysisBundler.js → javascript/javascriptStaticAnalysisBundler.js} +15 -11
- package/dist/domain/{javascriptStaticAnalysisCalls.js → javascript/javascriptStaticAnalysisCalls.js} +16 -8
- package/dist/domain/{javascriptStaticAnalysisHelpers.js → javascript/javascriptStaticAnalysisHelpers.js} +261 -43
- package/dist/domain/{sourceToBundleComparison.js → javascript/sourceToBundleComparison.js} +6 -8
- package/dist/domain/{sourceToBundleComparisonSchemas.js → javascript/sourceToBundleComparisonSchemas.js} +4 -4
- package/dist/domain/{sourceToBundleSignals.js → javascript/sourceToBundleSignals.js} +7 -7
- package/dist/domain/jsonShape.js +6 -2
- package/dist/domain/{managedApplicationGraph.js → managed/managedApplicationGraph.js} +4 -4
- package/dist/domain/{managedApplicationGraphNodes.js → managed/managedApplicationGraphNodes.js} +1 -1
- package/dist/domain/{managedArtifact.js → managed/managedArtifact.js} +1 -1
- package/dist/domain/{managedMemberComparison.js → managed/managedMemberComparison.js} +5 -4
- package/dist/domain/{managedMemberComparisonCoverage.js → managed/managedMemberComparisonCoverage.js} +2 -1
- package/dist/domain/{managedMemberComparisonItems.js → managed/managedMemberComparisonItems.js} +99 -40
- package/dist/domain/{managedMemberComparisonMatch.js → managed/managedMemberComparisonMatch.js} +22 -11
- package/dist/domain/{managedNativeVerification.js → managed/managedNativeVerification.js} +1 -1
- package/dist/domain/{managedNativeVerificationMatch.js → managed/managedNativeVerificationMatch.js} +8 -6
- package/dist/domain/{managedNativeVerificationSchemas.js → managed/managedNativeVerificationSchemas.js} +6 -5
- package/dist/domain/{managedReconstruction.js → managed/managedReconstruction.js} +3 -3
- package/dist/domain/{nativeDataType.js → native/nativeDataType.js} +2 -0
- package/dist/domain/native/nativeFunctionAnnotations.js +43 -0
- package/dist/domain/{nativeInspection.js → native/nativeInspection.js} +1 -1
- package/dist/domain/{nativeInvestigationGraph.js → native/nativeInvestigationGraph.js} +13 -4
- package/dist/domain/native/nativeLoadImage.js +95 -0
- package/dist/domain/native/nativeMetadataRecovery.js +55 -0
- package/dist/domain/{nativeUiObservation.js → native/nativeUiObservation.js} +20 -6
- package/dist/domain/{objcSwiftMetadata.js → native/objcSwiftMetadata.js} +17 -0
- package/dist/domain/processCapture.js +4 -3
- package/dist/domain/processEvidenceProvider.js +11 -0
- package/dist/domain/processScenario.js +17 -17
- package/dist/domain/processTraceComparison.js +1 -1
- package/dist/domain/propertyListKeys.js +69 -0
- package/dist/domain/providerAdapterError.js +17 -0
- package/dist/domain/providerCleanupError.js +6 -3
- package/dist/domain/providerSelectionError.js +44 -0
- package/dist/domain/reconstructionCoverageEvaluation.js +46 -24
- package/dist/domain/reconstructionCoverageInput.js +7 -0
- package/dist/domain/reconstructionUnknowns.js +1 -1
- package/dist/domain/reconstructionVerification.js +22 -8
- package/dist/domain/referenceSourceClassification.js +5 -6
- package/dist/domain/referenceSourceGraph.js +9 -17
- package/dist/domain/referenceSourceImportParsing.js +38 -23
- package/dist/domain/runtimeIdentification.js +1 -1
- package/dist/domain/runtimeVersion.js +6 -7
- package/dist/domain/safeJson.js +13 -0
- package/dist/domain/sourceMapEnvelope.js +38 -0
- package/dist/domain/staticRuntimeCorrelation.js +9 -7
- package/dist/domain/unicodeCodePointOrder.js +11 -6
- package/dist/domain/unknownRegistryError.js +10 -0
- package/dist/domain/webBundleAnalyzerAst.js +23 -38
- package/dist/domain/webBundleAnalyzerInspection.js +29 -20
- package/dist/domain/webEventListeners.js +28 -0
- package/dist/domain/webExecution.js +74 -0
- package/dist/domain/webMcpDiscovery.js +1 -7
- package/dist/domain/webModuleImports.js +104 -0
- package/dist/domain/webModuleTrace.js +106 -0
- package/dist/domain/webRuntime.js +69 -0
- package/dist/domain/webScreenshot.js +1 -7
- package/dist/domain/webScriptArtifacts.js +39 -0
- package/dist/domain/webScriptExport.js +86 -0
- package/dist/domain/webScriptExportError.js +13 -0
- package/dist/domain/webScriptExportPlan.js +108 -0
- package/dist/domain/webSourceLocation.js +106 -0
- package/dist/domain/webSourcePosition.js +21 -0
- package/dist/dotnet/ManagedArtifactInspector.js +1 -1
- package/dist/dotnet/ManagedMemberInspector.js +1 -1
- package/dist/dotnet/ManagedMemberInspectorCore.js +34 -0
- package/dist/dotnet/ManagedMemberRows.js +6 -4
- package/dist/dotnet/ManagedMetadataHeaps.js +3 -2
- package/dist/dotnet/ManagedMetadataInventoryRows.js +4 -2
- package/dist/dotnet/ManagedMethodBodyReader.js +8 -1
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +22 -16
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +56 -50
- package/dist/dotnet/ManagedStaticProvider.js +6 -34
- package/dist/dotnet/ManagedStaticProviderMetadata.js +36 -0
- package/dist/evaluation/CodexAgentEval.js +2 -1
- package/dist/firmware/FirmwareCommand.js +163 -0
- package/dist/firmware/FirmwareFiles.js +190 -0
- package/dist/firmware/FirmwareProvider.js +264 -0
- package/dist/firmware/FirmwarePublication.js +84 -0
- package/dist/firmware/FirmwareRelease.js +32 -0
- package/dist/firmware/FirmwareReports.js +235 -0
- package/dist/firmware/FirmwareVersion.js +80 -0
- package/dist/generatedMcpToolCatalog.js +1 -1
- package/dist/generatedPackageMetadata.js +5 -5
- package/dist/ghidra/GhidraAnalysisProfile.js +37 -8
- package/dist/ghidra/GhidraClient.js +52 -6
- package/dist/ghidra/GhidraDiagnostics.js +3 -0
- package/dist/ghidra/GhidraDoctor.js +38 -14
- package/dist/ghidra/GhidraFunctionValues.js +14 -8
- package/dist/ghidra/GhidraInstallation.js +48 -38
- package/dist/ghidra/GhidraInstallationPolicy.js +140 -0
- package/dist/ghidra/GhidraInventoryValues.js +39 -2
- package/dist/ghidra/GhidraLauncher.js +102 -29
- package/dist/ghidra/GhidraLoadImageAttest.js +36 -0
- package/dist/ghidra/GhidraLoadImageValues.js +199 -0
- package/dist/ghidra/GhidraProvider.js +47 -149
- package/dist/ghidra/GhidraProviderCapabilities.js +58 -28
- package/dist/ghidra/GhidraProviderClient.js +209 -0
- package/dist/ghidra/GhidraRequestQueue.js +2 -2
- package/dist/ghidra/GhidraResponseBuffer.js +7 -1
- package/dist/ghidra/GhidraSessionError.js +31 -4
- package/dist/ghidra/GhidraSessionValues.js +10 -7
- package/dist/ghidra/GhidraTargetSnapshot.js +16 -2
- package/dist/ghidra/GhidraTransport.js +12 -0
- package/dist/ghidra/extensions/GhidraExtensionFailures.js +20 -0
- package/dist/ghidra/extensions/GhidraExtensions.js +170 -0
- package/dist/ghidra/extensions/nativeaot/NativeAotAdapter.js +21 -0
- package/dist/ghidra/extensions/nativeaot/NativeAotReport.js +100 -0
- package/dist/hopper/BridgeLauncher.js +4 -2
- package/dist/hopper/HopperAnalysisProfile.js +7 -2
- package/dist/hopper/HopperCleanup.js +55 -9
- package/dist/hopper/HopperClient.js +14 -4
- package/dist/hopper/HopperProcessDiagnostic.js +1 -1
- package/dist/hopper/HopperProvider.js +8 -50
- package/dist/hopper/HopperProviderCapabilities.js +73 -0
- package/dist/hopper/HopperRequestQueue.js +7 -3
- package/dist/hopper/HopperResponseStream.js +7 -1
- package/dist/hopper/HopperSessionValues.js +1 -1
- package/dist/hopper/HopperSocketConnection.js +1 -1
- package/dist/hopper/HopperTargetLease.js +23 -15
- package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +7 -8
- package/dist/hopper/LinuxPrivateDisplayProbe.js +10 -6
- package/dist/hopper/protocol.js +8 -8
- package/dist/ida/IdaConfiguration.js +56 -0
- package/dist/ida/IdaDoctor.js +53 -0
- package/dist/ida/IdaInput.js +62 -0
- package/dist/ida/IdaMcpConnection.js +111 -0
- package/dist/ida/IdaOperationRunner.js +299 -0
- package/dist/ida/IdaProtocolValues.js +178 -0
- package/dist/ida/IdaProvider.js +126 -0
- package/dist/ida/IdaProviderCapabilities.js +52 -0
- package/dist/ida/IdaSessionClient.js +318 -0
- package/dist/ida/IdaWorkspace.js +54 -0
- package/dist/{browser → inspector}/JavaScriptRuntimeScope.js +19 -6
- package/dist/{browser → inspector}/V8InspectorCaptureProjection.js +46 -8
- package/dist/{browser → inspector}/V8InspectorEndpoint.js +3 -2
- package/dist/{browser → inspector}/V8InspectorProvider.js +16 -14
- package/dist/inspector/providerIdentity.js +6 -0
- package/dist/javascript/recovery/RecoveryFiles.js +122 -0
- package/dist/javascript/recovery/WakaruCommand.js +116 -0
- package/dist/javascript/recovery/WakaruExecution.js +100 -0
- package/dist/javascript/recovery/WakaruProvider.js +96 -0
- package/dist/javascript/recovery/WakaruPublication.js +102 -0
- package/dist/javascript/recovery/WakaruRelease.js +29 -0
- package/dist/javascript/recovery/WakaruReport.js +134 -0
- package/dist/javascript/sourceMaps/SourceMapCodecProcess.js +37 -0
- package/dist/javascript/sourceMaps/SourceMapCodecProtocol.js +20 -0
- package/dist/javascript/sourceMaps/SourceMapCommand.js +176 -0
- package/dist/javascript/sourceMaps/SourceMapDecoder.js +61 -0
- package/dist/javascript/sourceMaps/SourceMapFormat.js +185 -0
- package/dist/javascript/sourceMaps/TraceSourceMap.js +138 -0
- package/dist/main/shutdown.js +29 -3
- package/dist/main/startup.js +1 -1
- package/dist/main/transport.js +32 -11
- package/dist/main.js +9 -20
- package/dist/native/AppleDispatchCoverage.js +58 -0
- package/dist/native/AppleDispatchMetadata.js +73 -490
- package/dist/native/AppleMachoFixups.js +292 -0
- package/dist/native/AppleMachoSelection.js +188 -0
- package/dist/native/AppleObjcCategories.js +59 -0
- package/dist/native/AppleObjcDispatchFacets.js +257 -0
- package/dist/native/AppleObjcProperties.js +68 -0
- package/dist/native/AppleObjcProtocols.js +2 -1
- package/dist/native/AppleSwiftDispatchFacets.js +150 -0
- package/dist/native/NativeMacOSProvider.js +204 -72
- package/dist/native/NativeMacOSProviderMetadata.js +42 -0
- package/dist/native/NativeMachoInspection.js +87 -26
- package/dist/native/NativeUiHelperRuntime.js +14 -4
- package/dist/native/NativeUiObservation.js +14 -6
- package/dist/native/NativeUiOutputBudget.js +8 -0
- package/dist/native/parsers/codesign.js +40 -5
- package/dist/native/parsers/demangle.js +6 -2
- package/dist/native/parsers/dyldInfo.js +16 -7
- package/dist/native/parsers/echoedPath.js +14 -0
- package/dist/native/parsers/lipo.js +14 -0
- package/dist/native/parsers/otool.js +5 -2
- package/dist/native/parsers/plist.js +174 -11
- package/dist/process/ExecFileOutput.js +2 -0
- package/dist/process/PrivateRuntimeRoot.js +13 -3
- package/dist/process/ProcessOwnership.js +5 -73
- package/dist/process/ProcessOwnershipObservation.js +62 -2
- package/dist/process/ProcessOwnershipProcessTree.js +13 -0
- package/dist/process/ProviderProcess.js +62 -24
- package/dist/process/ProviderRunLineage.js +1 -1
- package/dist/process/WindowsAuthority.js +20 -1
- package/dist/reference/ReferenceSourceReaderEntries.js +11 -2
- package/dist/reference/ReferenceSourceReaderFile.js +1 -0
- package/dist/server/createServer.js +67 -2
- package/dist/server/mcpClientMetadata.js +6 -3
- package/dist/server/mcpProgress.js +2 -1
- package/dist/server/promptCompletion.js +3 -3
- package/dist/server/registerAndroidTools.js +30 -0
- package/dist/server/registerApplicationTools/compareExportShapes.js +7 -3
- package/dist/server/registerApplicationTools/compareSourceToBundle.js +9 -4
- package/dist/server/registerApplicationTools/compareVersions.js +7 -3
- package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +43 -0
- package/dist/server/registerApplicationTools/traceFeature.js +8 -3
- package/dist/server/registerApplicationTools/traceSemantics.js +8 -3
- package/dist/server/registerApplicationTools.js +2 -0
- package/dist/server/registerBrowserScenarioTool.js +6 -2
- package/dist/server/registerBrowserTools.js +13 -2
- package/dist/server/registerCloseLifecycleTool.js +1 -1
- package/dist/server/registerElectronTools.js +21 -7
- package/dist/server/registerEnhancedTools.js +28 -1
- package/dist/server/registerFirmwareTools.js +22 -0
- package/dist/server/registerFunctionComparisonTool.js +1 -1
- package/dist/server/registerInvestigationTools/helpers.js +2 -1
- package/dist/server/registerJavaScriptRecoveryTool.js +17 -0
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +9 -4
- package/dist/server/registerManagedTools.js +4 -4
- package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +2 -2
- package/dist/server/registerManagedWorkflowTools/contract.js +1 -1
- package/dist/server/registerManagedWorkflowTools/evidence.js +1 -1
- package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +1 -1
- package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +1 -1
- package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +2 -2
- package/dist/server/registerNativeTools.js +1 -1
- package/dist/server/registerOfficialTools.js +4 -1
- package/dist/server/registerProcessComparisonTool.js +5 -2
- package/dist/server/registerPrompts.js +5 -1
- package/dist/server/registerSessionTools.js +4 -2
- package/dist/server/registerWebModuleTool.js +17 -0
- package/dist/server/registerWebRuntimeTools.js +31 -0
- package/dist/server/registerWebScriptTool.js +18 -0
- package/dist/server/registerWebSourceLocationTool.js +17 -0
- package/dist/server/runDerivedOperation.js +1 -1
- package/dist/server/sessionAvailabilityPolicy.js +24 -9
- package/dist/server/sessionEvidence.js +1 -1
- package/dist/server/toolResult.js +2 -1
- package/dist/windows/WindowsNativeLoader.js +108 -0
- package/dist/windows/WindowsOwnedProcess.js +170 -0
- package/dist/windows/WindowsPrivateRuntime.js +137 -0
- package/install.sh +16 -8
- package/native/windows/README.md +107 -0
- package/native/windows/build/manifest.json +9 -0
- package/native/windows/build/rea-windows-x64.node +0 -0
- package/package.json +70 -35
- package/scripts/hopper-demo-x11.py +67 -8
- package/scripts/rea.mjs +10 -2
- package/scripts/verify-windows-native-artifact.mjs +39 -0
- package/skills/reverse-engineer-anything/SKILL.md +92 -24
- package/skills/reverse-engineer-anything/references/android-applications.md +31 -0
- package/skills/reverse-engineer-anything/references/javascript-applications.md +19 -2
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +61 -4
- package/dist/application/JavaScriptApplicationService.js +0 -52
- package/dist/application/runtime.js +0 -51
- package/dist/browser/CdpCanonicalJsonDigest.js +0 -9
- package/dist/domain/appleApplication.js +0 -181
- package/dist/domain/errors.js +0 -324
- package/dist/domain/javascriptAstValues.js +0 -13
- package/dist/domain/javascriptSemanticTraversal.js +0 -30
- package/dist/native/NativeHostCapabilities.js +0 -23
- /package/dist/application/{BinarySessionPort.js → DirectAnalysisDependencies.js} +0 -0
- /package/dist/application/{ElectronActiveObservationPort.js → WebModulePorts.js} +0 -0
- /package/dist/application/{ElectronObservationPort.js → WebRuntimePort.js} +0 -0
- /package/dist/application/{JavaScriptArtifactAnalysisTypes.js → WebScriptArtifactPort.js} +0 -0
- /package/dist/application/{JavaScriptRuntimeObservationPort.js → WebSourceLocationPorts.js} +0 -0
- /package/dist/{domain/electronStaticAnalysisTypes.js → application/android/AndroidAnalysisPort.js} +0 -0
- /package/dist/application/{AbortablePromise.js → binary/AbortablePromise.js} +0 -0
- /package/dist/{domain/javascriptSemanticValueTypes.js → application/binary/BinarySessionPort.js} +0 -0
- /package/dist/application/{BinarySessionStatus.js → binary/BinarySessionStatus.js} +0 -0
- /package/dist/application/{ElectronBoundaryGraph.js → javascript/ElectronBoundaryGraph.js} +0 -0
- /package/dist/application/{ElectronBoundaryGraphIpc.js → javascript/ElectronBoundaryGraphIpc.js} +0 -0
- /package/dist/application/{ElectronBoundaryGraphNative.js → javascript/ElectronBoundaryGraphNative.js} +0 -0
- /package/dist/application/{ElectronBoundaryGraphWindows.js → javascript/ElectronBoundaryGraphWindows.js} +0 -0
- /package/dist/application/{JavaScriptArtifactGraphBundlers.js → javascript/JavaScriptArtifactGraphBundlers.js} +0 -0
- /package/dist/application/{JavaScriptArtifactGraphEvidence.js → javascript/JavaScriptArtifactGraphEvidence.js} +0 -0
- /package/dist/application/{JavaScriptArtifactReconstructionInput.js → javascript/JavaScriptArtifactReconstructionInput.js} +0 -0
- /package/dist/application/{JavaScriptSemanticGraphEvidence.js → javascript/JavaScriptSemanticGraphEvidence.js} +0 -0
- /package/dist/application/{JavaScriptSemanticGraphValueProjection.js → javascript/JavaScriptSemanticGraphValueProjection.js} +0 -0
- /package/dist/domain/{electronStaticAnalysis.js → javascript/electronStaticAnalysis.js} +0 -0
- /package/dist/domain/{javascriptExportShapeComparisonIdentity.js → javascript/javascriptExportShapeComparisonIdentity.js} +0 -0
- /package/dist/domain/{javascriptRuntimeReconciliation.js → javascript/javascriptRuntimeReconciliation.js} +0 -0
- /package/dist/domain/{javascriptRuntimeReconciliationRuntime.js → javascript/javascriptRuntimeReconciliationRuntime.js} +0 -0
- /package/dist/domain/{javascriptSemanticCoverage.js → javascript/javascriptSemanticCoverage.js} +0 -0
- /package/dist/domain/{javascriptSemanticDerivedAnalysis.js → javascript/javascriptSemanticDerivedAnalysis.js} +0 -0
- /package/dist/domain/{javascriptSemanticGraphSerialization.js → javascript/javascriptSemanticGraphSerialization.js} +0 -0
- /package/dist/domain/{javascriptSemanticIr.js → javascript/javascriptSemanticIr.js} +0 -0
- /package/dist/domain/{javascriptSemanticQueryRelations.js → javascript/javascriptSemanticQueryRelations.js} +0 -0
- /package/dist/domain/{javascriptSemanticState.js → javascript/javascriptSemanticState.js} +0 -0
- /package/dist/domain/{javascriptStaticAnalysisFindings.js → javascript/javascriptStaticAnalysisFindings.js} +0 -0
- /package/dist/domain/{javascriptStaticAnalysisState.js → javascript/javascriptStaticAnalysisState.js} +0 -0
- /package/dist/domain/{javascriptStaticAnalysisTypes.js → javascript/javascriptStaticAnalysisTypes.js} +0 -0
- /package/dist/domain/{managedApplicationGraphCoverage.js → managed/managedApplicationGraphCoverage.js} +0 -0
- /package/dist/domain/{managedApplicationGraphNodeCoverage.js → managed/managedApplicationGraphNodeCoverage.js} +0 -0
- /package/dist/domain/{nativeApiBoundary.js → native/nativeApiBoundary.js} +0 -0
- /package/dist/domain/{nativeInstruction.js → native/nativeInstruction.js} +0 -0
- /package/dist/domain/{nativeValueFlow.js → native/nativeValueFlow.js} +0 -0
- /package/dist/domain/{nativeValueTrace.js → native/nativeValueTrace.js} +0 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rea-agents",
|
|
3
3
|
"mcpName": "io.github.morluto/rea",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "5.0.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": {
|
|
@@ -35,15 +35,19 @@
|
|
|
35
35
|
"rea-agents": "scripts/rea.mjs"
|
|
36
36
|
},
|
|
37
37
|
"engines": {
|
|
38
|
-
"node": "^22.19.0 ||
|
|
38
|
+
"node": "^22.19.0 || ^24.11.0 || >=26.0.0"
|
|
39
39
|
},
|
|
40
40
|
"packageManager": "npm@11.16.0",
|
|
41
41
|
"files": [
|
|
42
42
|
"dist",
|
|
43
43
|
"install.sh",
|
|
44
44
|
"bridge/hopper_bridge.py",
|
|
45
|
+
"bridge/native/NativeUIChildren.swift",
|
|
45
46
|
"bridge/native/ReaNativeUI.swift",
|
|
46
47
|
"bridge/ghidra/ReaGhidraBridge.java",
|
|
48
|
+
"bridge/ghidra/ReaGhidraExtensions.java",
|
|
49
|
+
"bridge/ghidra/ReaGhidraPrepareCom.java",
|
|
50
|
+
"bridge/android/ReaJadxBridge.java",
|
|
47
51
|
"scripts/rea.mjs",
|
|
48
52
|
"scripts/electron-active-hook.cjs",
|
|
49
53
|
"scripts/electron-active-hook-boundaries.cjs",
|
|
@@ -52,7 +56,10 @@
|
|
|
52
56
|
"scripts/prepare.mjs",
|
|
53
57
|
"skills",
|
|
54
58
|
"README.md",
|
|
55
|
-
"LICENSE"
|
|
59
|
+
"LICENSE",
|
|
60
|
+
"native/windows/build/manifest.json",
|
|
61
|
+
"native/windows/build/rea-windows-x64.node",
|
|
62
|
+
"scripts/verify-windows-native-artifact.mjs"
|
|
56
63
|
],
|
|
57
64
|
"scripts": {
|
|
58
65
|
"deps:check": "node scripts/check-dependency-install.mjs",
|
|
@@ -73,16 +80,15 @@
|
|
|
73
80
|
"precheck:test": "npm run deps:check",
|
|
74
81
|
"check:test": "turbo run typecheck lint format:check knip metadata:check test:run",
|
|
75
82
|
"precheck:pr": "npm run deps:check",
|
|
76
|
-
"check:pr": "turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check",
|
|
83
|
+
"check:pr": "turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check && npm run jscpd && npm run scan:todos",
|
|
77
84
|
"precheck:ci": "npm run deps:check",
|
|
78
85
|
"check:ci": "turbo run typecheck lint format:check knip metadata:check jscpd scan:todos",
|
|
79
|
-
"build:cached": "turbo run build",
|
|
86
|
+
"build:cached": "node scripts/check-dependency-install.mjs && turbo run build",
|
|
80
87
|
"format": "oxfmt .",
|
|
81
88
|
"format:check": "oxfmt --check .",
|
|
82
|
-
"lint": "oxlint",
|
|
83
|
-
"lint:fix": "oxlint --fix",
|
|
89
|
+
"lint": "oxlint && npm run verify:module-boundaries",
|
|
90
|
+
"lint:fix": "oxlint --fix && npm run verify:module-boundaries",
|
|
84
91
|
"knip": "knip",
|
|
85
|
-
"lint:dead": "knip",
|
|
86
92
|
"jscpd": "jscpd src/ tests/",
|
|
87
93
|
"scan:todos": "node scripts/scan-todos.mjs",
|
|
88
94
|
"start": "node scripts/rea.mjs mcp",
|
|
@@ -115,22 +121,32 @@
|
|
|
115
121
|
"typecheck": "tsc --noEmit",
|
|
116
122
|
"verify:test-temp-hygiene": "npm run build:cached && node scripts/verify-test-temp-hygiene.mjs",
|
|
117
123
|
"verify:hopper": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper.mjs",
|
|
118
|
-
"verify:apple-dispatch": "npm run build:cached && node scripts/verify
|
|
124
|
+
"verify:apple-dispatch": "npm run build:cached && node scripts/verify/apple/dispatch.mjs",
|
|
119
125
|
"verify:native-ui": "npm run build:cached && node scripts/verify-native-ui.mjs",
|
|
120
|
-
"verify:keyed-archive": "npm run build:cached && node scripts/verify
|
|
126
|
+
"verify:keyed-archive": "npm run build:cached && node scripts/verify/apple/keyed-archive.mjs",
|
|
127
|
+
"verify:macos-bundle": "npm run build:cached && node scripts/verify/apple/macos-bundle.mjs",
|
|
121
128
|
"verify:ghidra": "npm run build:cached && node scripts/verify-real-ghidra.mjs",
|
|
129
|
+
"verify:ida": "npm run build:cached && node scripts/verify-real-ida.mjs",
|
|
122
130
|
"verify:ghidra:switch": "npm run build:cached && node scripts/verify-real-ghidra-switch.mjs",
|
|
123
131
|
"verify:ghidra:dos": "npm run build:cached && node scripts/verify-real-ghidra-dos.mjs",
|
|
132
|
+
"verify:ghidra:com": "npm run build:cached && node scripts/verify-real-ghidra-com.mjs",
|
|
124
133
|
"verify:ghidra:aarch64-jump-table": "npm run build:cached && node scripts/verify-real-ghidra.mjs --aarch64-jump-table",
|
|
125
|
-
"verify:interface-builder": "npm run build:cached && node scripts/verify
|
|
134
|
+
"verify:interface-builder": "npm run build:cached && node scripts/verify/apple/interface-builder.mjs",
|
|
126
135
|
"verify:ghidra:cross-format": "npm run build:cached && node scripts/verify-real-ghidra.mjs --cross-format",
|
|
127
136
|
"verify:ghidra:windows": "npm run build:cached && npm run build:ghidra-windows-fixture && node scripts/verify-real-ghidra-windows.mjs",
|
|
128
137
|
"verify:browser": "npm run build:cached && node scripts/verify-real-browser.mjs",
|
|
138
|
+
"verify:browser:dom": "node scripts/verify-browser-dom-destinations.mjs",
|
|
139
|
+
"verify:browser:network": "npm run build:cached && node scripts/verify-browser-network.mjs",
|
|
129
140
|
"verify:electron": "npm run build:cached && node scripts/verify-real-electron.mjs",
|
|
130
|
-
"verify:inspector": "npm run build:cached && node scripts/verify
|
|
131
|
-
"verify:javascript-runtime": "npm run build:cached && node scripts/verify
|
|
132
|
-
"verify:
|
|
133
|
-
"verify:
|
|
141
|
+
"verify:inspector": "npm run build:cached && node scripts/verify/inspector/runtime-observation.mjs",
|
|
142
|
+
"verify:javascript-runtime": "npm run build:cached && node scripts/verify/javascript/runtime-observation.mjs",
|
|
143
|
+
"verify:javascript:digests": "npm run build:cached && node scripts/verify/javascript/digests.mjs",
|
|
144
|
+
"verify:application-workflows": "npm run build:cached && node scripts/verify/javascript/application-workflows.mjs",
|
|
145
|
+
"verify:managed": "npm run build:cached && node scripts/verify/managed/conformance.mjs",
|
|
146
|
+
"verify:firmware": "npm run build:cached && node scripts/verify/firmware/analysis.mjs",
|
|
147
|
+
"fixtures:firmware": "node scripts/fixtures/firmware/generate.mjs",
|
|
148
|
+
"verify:android": "npm run build:cached && node scripts/verify/android/analysis.mjs",
|
|
149
|
+
"fixtures:android": "node scripts/fixtures/android/fetch.mjs",
|
|
134
150
|
"verify:agent": "npm run build:cached && node scripts/verify-agent-experience.mjs",
|
|
135
151
|
"verify:hopper:linux": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper-linux.mjs",
|
|
136
152
|
"verify:setup:linux": "npm run build:cached && node scripts/verify-linux-setup-e2e.mjs",
|
|
@@ -145,8 +161,9 @@
|
|
|
145
161
|
"config:print": "node scripts/print-mcp-config.mjs",
|
|
146
162
|
"evidence:generate": "npm run build:cached && node scripts/generate-completion-ledger.mjs",
|
|
147
163
|
"evidence:check": "npm run build:cached && node scripts/generate-completion-ledger.mjs --check",
|
|
148
|
-
"docs:
|
|
149
|
-
"docs:
|
|
164
|
+
"docs:dev": "vitepress dev docs",
|
|
165
|
+
"docs:build": "vitepress build docs",
|
|
166
|
+
"docs:preview": "vitepress preview docs",
|
|
150
167
|
"docs:generate": "node scripts/run-exclusive.mjs docs npm run docs:generate:unlocked",
|
|
151
168
|
"docs:generate:unlocked": "npm run metadata:generate && npm run build:cached && node scripts/generate-mcp-tool-catalog.mjs && node scripts/generate-skill-metadata.mjs && node scripts/generate-product-catalog.mjs && node scripts/generate-completion-ledger.mjs && node scripts/generate-error-schema.mjs",
|
|
152
169
|
"docs:check": "node scripts/run-exclusive.mjs docs turbo run docs:check:built",
|
|
@@ -154,9 +171,24 @@
|
|
|
154
171
|
"docs:error-schema": "npm run build:cached && node scripts/generate-error-schema.mjs",
|
|
155
172
|
"prepack": "node scripts/prepack.mjs",
|
|
156
173
|
"prepare": "node scripts/prepare.mjs",
|
|
157
|
-
"verify:asset-catalog": "npm run build:cached && node scripts/verify
|
|
174
|
+
"verify:asset-catalog": "npm run build:cached && node scripts/verify/apple/asset-catalog.mjs",
|
|
158
175
|
"verify:native-ui:permissions": "npm run build:cached && node scripts/verify-native-ui.mjs --allow-permission-denial",
|
|
159
|
-
"test:focused": "node scripts/run-development-tests.mjs focused"
|
|
176
|
+
"test:focused": "node scripts/run-development-tests.mjs focused",
|
|
177
|
+
"build:windows-native": "node scripts/build-windows-native.mjs",
|
|
178
|
+
"verify:windows-native:artifact": "node scripts/verify-windows-native-artifact.mjs",
|
|
179
|
+
"prepublishOnly": "npm run verify:windows-native:artifact",
|
|
180
|
+
"verify:windows-native": "node scripts/verify-windows-native.mjs",
|
|
181
|
+
"verify:ghidra:windows:package": "node scripts/verify-packaged-ghidra-windows.mjs",
|
|
182
|
+
"build:ghidra:nativeaot": "node scripts/build-ghidra-nativeaot.mjs",
|
|
183
|
+
"build:fixtures:nativeaot": "node scripts/generate-nativeaot-fixtures.mjs",
|
|
184
|
+
"verify:ghidra:nativeaot": "npm run build:cached && node scripts/verify-real-ghidra-nativeaot.mjs",
|
|
185
|
+
"verify:browser:scripts": "npm run build:cached && node scripts/verify-browser-scripts.mjs",
|
|
186
|
+
"verify:browser:modules": "npm run build:cached && node scripts/verify-browser-modules.mjs",
|
|
187
|
+
"verify:test-discovery": "node scripts/verify-test-discovery.mjs",
|
|
188
|
+
"verify:javascript:recovery": "node scripts/verify/javascript/recovery.mjs",
|
|
189
|
+
"verify:module-boundaries": "node scripts/verify-module-boundaries.mjs",
|
|
190
|
+
"verify:browser:source-maps": "npm run build:cached && node scripts/verify-browser-source-maps.mjs",
|
|
191
|
+
"verify:browser:runtime": "npm run build:cached && node scripts/verify-browser-runtime.mjs"
|
|
160
192
|
},
|
|
161
193
|
"lint-staged": {
|
|
162
194
|
"*.{cjs,cts,js,jsx,mjs,mts,ts,tsx}": [
|
|
@@ -172,48 +204,51 @@
|
|
|
172
204
|
"@electron/asar": "4.2.0",
|
|
173
205
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
174
206
|
"@lydell/node-pty": "1.1.0",
|
|
175
|
-
"@modelcontextprotocol/client": "2.
|
|
176
|
-
"@modelcontextprotocol/server": "2.
|
|
207
|
+
"@modelcontextprotocol/client": "2.3.1",
|
|
208
|
+
"@modelcontextprotocol/server": "2.3.1",
|
|
177
209
|
"@xterm/addon-serialize": "0.14.0",
|
|
178
210
|
"@xterm/headless": "6.0.0",
|
|
179
211
|
"@zip.js/zip.js": "2.8.26",
|
|
180
212
|
"canonicalize": "3.0.0",
|
|
181
213
|
"cross-spawn": "7.0.6",
|
|
182
214
|
"diff": "9.0.0",
|
|
183
|
-
"graphology": "0.26.0",
|
|
184
|
-
"graphology-shortest-path": "2.1.0",
|
|
185
215
|
"ignore": "7.0.6",
|
|
186
|
-
"incur": "0.
|
|
216
|
+
"incur": "0.6.1",
|
|
187
217
|
"isomorphic-git": "1.38.7",
|
|
188
218
|
"jsonc-parser": "3.3.1",
|
|
189
|
-
"pino": "
|
|
219
|
+
"pino": "10.4.0",
|
|
190
220
|
"playwright-core": "1.58.2",
|
|
191
221
|
"plist": "5.0.0",
|
|
192
222
|
"semver": "7.8.5",
|
|
193
|
-
"smol-toml": "
|
|
223
|
+
"smol-toml": "1.9.0",
|
|
194
224
|
"write-file-atomic": "7.0.0",
|
|
195
225
|
"ws": "8.21.0",
|
|
196
226
|
"zod": "4.4.3"
|
|
197
227
|
},
|
|
228
|
+
"overrides": {
|
|
229
|
+
"vitepress": {
|
|
230
|
+
"vite": "6.4.4"
|
|
231
|
+
}
|
|
232
|
+
},
|
|
198
233
|
"devDependencies": {
|
|
199
|
-
"@fast-check/vitest": "0.
|
|
234
|
+
"@fast-check/vitest": "0.5.0",
|
|
200
235
|
"@types/cross-spawn": "6.0.6",
|
|
201
|
-
"@types/node": "
|
|
236
|
+
"@types/node": "26.6.4",
|
|
202
237
|
"@types/semver": "7.7.1",
|
|
203
238
|
"@types/write-file-atomic": "4.0.3",
|
|
204
239
|
"@types/ws": "8.18.1",
|
|
205
|
-
"@vitest/coverage-v8": "
|
|
240
|
+
"@vitest/coverage-v8": "5.0.3",
|
|
206
241
|
"ajv": "8.20.0",
|
|
207
242
|
"husky": "9.1.7",
|
|
208
243
|
"jscpd": "5.0.12",
|
|
209
|
-
"knip": "6.
|
|
244
|
+
"knip": "6.39.0",
|
|
210
245
|
"lint-staged": "16.4.0",
|
|
211
246
|
"oxfmt": "0.72.0",
|
|
212
|
-
"oxlint": "1.
|
|
213
|
-
"turbo": "2.
|
|
214
|
-
"
|
|
215
|
-
"
|
|
216
|
-
"vitest": "
|
|
247
|
+
"oxlint": "1.87.0",
|
|
248
|
+
"turbo": "2.11.7",
|
|
249
|
+
"typescript": "7.0.2",
|
|
250
|
+
"vitepress": "1.6.4",
|
|
251
|
+
"vitest": "5.0.3",
|
|
217
252
|
"yaml": "2.9.0"
|
|
218
253
|
}
|
|
219
254
|
}
|
|
@@ -20,11 +20,14 @@ import time
|
|
|
20
20
|
# Keep this digest aligned with LinuxHopper.ts and rerun real-Hopper verification
|
|
21
21
|
# before accepting another vendor build.
|
|
22
22
|
SUPPORTED_HOPPER_SHA256 = {
|
|
23
|
-
"0294ced141cc373468ee22d8343e7dac41980cb05a937994ca81c9f09afe7ded"
|
|
23
|
+
"0294ced141cc373468ee22d8343e7dac41980cb05a937994ca81c9f09afe7ded",
|
|
24
|
+
"1339f9e58377442b0c6fcb0dfc3cec20d593cc557408521fad9a00dbc6b8da13",
|
|
24
25
|
}
|
|
25
26
|
EXPECTED_SCREEN = (1280, 1024)
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
DIALOG_TITLES = {"Registration", "Registration — Hopper Disassembler"}
|
|
28
|
+
HOPPER_WINDOW_TITLE = "Hopper Disassembler"
|
|
29
|
+
DEMO_CLICK_LEFT = 116
|
|
30
|
+
DEMO_CLICK_BOTTOM = 22
|
|
28
31
|
PRIVATE_DISPLAY_UNAVAILABLE = 70
|
|
29
32
|
X11_AUTHORIZATION_FAILED = 71
|
|
30
33
|
UNSUPPORTED_HOPPER_BUILD = 72
|
|
@@ -196,6 +199,47 @@ def windows(x11: ctypes.CDLL, display: int, root: int) -> list[tuple[int, int, i
|
|
|
196
199
|
return found
|
|
197
200
|
|
|
198
201
|
|
|
202
|
+
def window_title(x11: ctypes.CDLL, display: int, window: int) -> str | None:
|
|
203
|
+
title = ctypes.c_char_p()
|
|
204
|
+
if not x11.XFetchName(display, window, ctypes.byref(title)) or not title.value:
|
|
205
|
+
return None
|
|
206
|
+
try:
|
|
207
|
+
return title.value.decode("utf-8", "replace")
|
|
208
|
+
finally:
|
|
209
|
+
x11.XFree(ctypes.cast(title, ctypes.c_void_p))
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def window_transient_for(
|
|
213
|
+
x11: ctypes.CDLL, display: int, window: int
|
|
214
|
+
) -> int | None:
|
|
215
|
+
parent = ctypes.c_ulong()
|
|
216
|
+
if not x11.XGetTransientForHint(display, window, ctypes.byref(parent)):
|
|
217
|
+
return None
|
|
218
|
+
return int(parent.value)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def find_demo_dialog(
|
|
222
|
+
x11: ctypes.CDLL,
|
|
223
|
+
display: int,
|
|
224
|
+
observed: list[tuple[int, int, int, int, int]],
|
|
225
|
+
) -> tuple[int, int, int, int, int] | None:
|
|
226
|
+
for candidate in observed:
|
|
227
|
+
window = candidate[0]
|
|
228
|
+
if window_title(x11, display, window) not in DIALOG_TITLES:
|
|
229
|
+
continue
|
|
230
|
+
parent = window_transient_for(x11, display, window)
|
|
231
|
+
if parent is None:
|
|
232
|
+
continue
|
|
233
|
+
if window_title(x11, display, parent) == HOPPER_WINDOW_TITLE:
|
|
234
|
+
return candidate
|
|
235
|
+
return None
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
def demo_click(dialog: tuple[int, int, int, int, int]) -> tuple[int, int]:
|
|
239
|
+
_window, x, y, _width, height = dialog
|
|
240
|
+
return x + DEMO_CLICK_LEFT, y + height - DEMO_CLICK_BOTTOM
|
|
241
|
+
|
|
242
|
+
|
|
199
243
|
def configure_x11(x11: ctypes.CDLL, xtst: ctypes.CDLL) -> None:
|
|
200
244
|
window_pointer = ctypes.POINTER(ctypes.c_ulong)
|
|
201
245
|
x11.XOpenDisplay.argtypes = [ctypes.c_char_p]
|
|
@@ -212,6 +256,18 @@ def configure_x11(x11: ctypes.CDLL, xtst: ctypes.CDLL) -> None:
|
|
|
212
256
|
ctypes.POINTER(XWindowAttributes),
|
|
213
257
|
]
|
|
214
258
|
x11.XGetWindowAttributes.restype = ctypes.c_int
|
|
259
|
+
x11.XFetchName.argtypes = [
|
|
260
|
+
ctypes.c_void_p,
|
|
261
|
+
ctypes.c_ulong,
|
|
262
|
+
ctypes.POINTER(ctypes.c_char_p),
|
|
263
|
+
]
|
|
264
|
+
x11.XFetchName.restype = ctypes.c_int
|
|
265
|
+
x11.XGetTransientForHint.argtypes = [
|
|
266
|
+
ctypes.c_void_p,
|
|
267
|
+
ctypes.c_ulong,
|
|
268
|
+
ctypes.POINTER(ctypes.c_ulong),
|
|
269
|
+
]
|
|
270
|
+
x11.XGetTransientForHint.restype = ctypes.c_int
|
|
215
271
|
x11.XQueryTree.argtypes = [
|
|
216
272
|
ctypes.c_void_p,
|
|
217
273
|
ctypes.c_ulong,
|
|
@@ -644,6 +700,7 @@ def run_launch(args: argparse.Namespace) -> int:
|
|
|
644
700
|
|
|
645
701
|
deadline = time.monotonic() + 10
|
|
646
702
|
observed: list[tuple[int, int, int, int, int]] = []
|
|
703
|
+
dialog: tuple[int, int, int, int, int] | None = None
|
|
647
704
|
while time.monotonic() < deadline:
|
|
648
705
|
if socket.exists():
|
|
649
706
|
x11.XCloseDisplay(display)
|
|
@@ -659,7 +716,8 @@ def run_launch(args: argparse.Namespace) -> int:
|
|
|
659
716
|
"owned Hopper process exited",
|
|
660
717
|
)
|
|
661
718
|
observed = windows(x11, display, root)
|
|
662
|
-
|
|
719
|
+
dialog = find_demo_dialog(x11, display, observed)
|
|
720
|
+
if dialog is not None:
|
|
663
721
|
break
|
|
664
722
|
time.sleep(0.1)
|
|
665
723
|
else:
|
|
@@ -675,8 +733,10 @@ def run_launch(args: argparse.Namespace) -> int:
|
|
|
675
733
|
"expected Hopper demo dialog not found",
|
|
676
734
|
)
|
|
677
735
|
|
|
736
|
+
assert dialog is not None
|
|
737
|
+
click_x, click_y = demo_click(dialog)
|
|
678
738
|
input_results = (
|
|
679
|
-
xtst.XTestFakeMotionEvent(display, -1,
|
|
739
|
+
xtst.XTestFakeMotionEvent(display, -1, click_x, click_y, 0),
|
|
680
740
|
xtst.XTestFakeButtonEvent(display, 1, True, 0),
|
|
681
741
|
xtst.XTestFakeButtonEvent(display, 1, False, 0),
|
|
682
742
|
)
|
|
@@ -695,9 +755,8 @@ def run_launch(args: argparse.Namespace) -> int:
|
|
|
695
755
|
finally:
|
|
696
756
|
if display is not None:
|
|
697
757
|
x11.XCloseDisplay(display)
|
|
698
|
-
if child is not None
|
|
699
|
-
child
|
|
700
|
-
child.wait()
|
|
758
|
+
if child is not None:
|
|
759
|
+
stop_process(child)
|
|
701
760
|
stop_process(xvfb)
|
|
702
761
|
capture.close()
|
|
703
762
|
|
package/scripts/rea.mjs
CHANGED
|
@@ -23,7 +23,7 @@ const runtimeFiles = isMcpMode
|
|
|
23
23
|
|
|
24
24
|
if (!(await compiledRuntimeExists(runtimeFiles))) {
|
|
25
25
|
process.stderr.write(
|
|
26
|
-
`REA's compiled runtime is missing. Run \`npm ci\` in ${packageRoot} to install dependencies and build REA, then restart it. If this is an installed package, reinstall rea-agents.\n`,
|
|
26
|
+
`REA's compiled runtime is missing. Run \`npm ci && npm run build:cached\` in ${packageRoot} to install dependencies and build REA, then restart it. If this is an installed package, reinstall rea-agents.\n`,
|
|
27
27
|
);
|
|
28
28
|
process.exitCode = 1;
|
|
29
29
|
} else if (isMcpMode) {
|
|
@@ -41,6 +41,7 @@ if (!(await compiledRuntimeExists(runtimeFiles))) {
|
|
|
41
41
|
const { createCli } = await import("../dist/cli.js");
|
|
42
42
|
const {
|
|
43
43
|
renderCliOutputArgumentError,
|
|
44
|
+
renderEmptyFilteredCliOutput,
|
|
44
45
|
sanitizeCliOutput,
|
|
45
46
|
validateCliOutputArguments,
|
|
46
47
|
} = await import("../dist/cliOutput.js");
|
|
@@ -49,9 +50,16 @@ if (!(await compiledRuntimeExists(runtimeFiles))) {
|
|
|
49
50
|
process.stdout.write(renderCliOutputArgumentError(outputArguments));
|
|
50
51
|
process.exitCode = 1;
|
|
51
52
|
} else {
|
|
53
|
+
let wroteOutput = false;
|
|
52
54
|
await createCli().serve(args, {
|
|
53
|
-
stdout: (output) =>
|
|
55
|
+
stdout: (output) => {
|
|
56
|
+
const sanitized = sanitizeCliOutput(output);
|
|
57
|
+
if (sanitized.length > 0) wroteOutput = true;
|
|
58
|
+
process.stdout.write(sanitized);
|
|
59
|
+
},
|
|
54
60
|
});
|
|
61
|
+
if (!wroteOutput)
|
|
62
|
+
process.stdout.write(renderEmptyFilteredCliOutput(args) ?? "");
|
|
55
63
|
}
|
|
56
64
|
}
|
|
57
65
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
import { readFile } from "node:fs/promises";
|
|
5
|
+
|
|
6
|
+
const root = new URL("../", import.meta.url);
|
|
7
|
+
const packageJson = JSON.parse(
|
|
8
|
+
await readFile(new URL("package.json", root), "utf8"),
|
|
9
|
+
);
|
|
10
|
+
const manifest = JSON.parse(
|
|
11
|
+
await readFile(new URL("native/windows/build/manifest.json", root), "utf8"),
|
|
12
|
+
);
|
|
13
|
+
const bytes = await readFile(
|
|
14
|
+
new URL("native/windows/build/rea-windows-x64.node", root),
|
|
15
|
+
);
|
|
16
|
+
if (
|
|
17
|
+
manifest.packageVersion !== packageJson.version ||
|
|
18
|
+
manifest.platform !== "win32" ||
|
|
19
|
+
manifest.architecture !== "x64" ||
|
|
20
|
+
manifest.abiVersion !== 1 ||
|
|
21
|
+
manifest.nodeApiVersion !== 8 ||
|
|
22
|
+
manifest.artifact !== "rea-windows-x64.node" ||
|
|
23
|
+
createHash("sha256").update(bytes).digest("hex") !== manifest.artifactSha256
|
|
24
|
+
)
|
|
25
|
+
throw new Error(
|
|
26
|
+
"Windows native artifact metadata or SHA-256 does not match this package; run the Windows native build lane.",
|
|
27
|
+
);
|
|
28
|
+
const offset = bytes.length >= 64 ? bytes.readUInt32LE(0x3c) : bytes.length;
|
|
29
|
+
if (
|
|
30
|
+
bytes.toString("ascii", 0, 2) !== "MZ" ||
|
|
31
|
+
offset > bytes.length - 26 ||
|
|
32
|
+
bytes.toString("ascii", offset, offset + 4) !== "PE\0\0" ||
|
|
33
|
+
bytes.readUInt16LE(offset + 4) !== 0x8664 ||
|
|
34
|
+
bytes.readUInt16LE(offset + 24) !== 0x20b
|
|
35
|
+
)
|
|
36
|
+
throw new Error("Windows native artifact must be a Windows x64 PE32+ image.");
|
|
37
|
+
process.stdout.write(
|
|
38
|
+
`${JSON.stringify({ ok: true, ...manifest, artifactBytes: bytes.length })}\n`,
|
|
39
|
+
);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reverse-engineer-anything
|
|
3
|
-
description: Reverse engineer native, managed, Electron/JavaScript, packaged, and browser
|
|
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:
|
|
7
|
-
catalog_digest: "
|
|
5
|
+
version: "27"
|
|
6
|
+
tool_count: 133
|
|
7
|
+
catalog_digest: "83b4c3445ed0ec003c0aeefa3188f123d9ae319484f8b1e2b611d2fe278c9c72"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# REA
|
|
@@ -15,32 +15,110 @@ behavior not established by available source. For ordinary analysis of a
|
|
|
15
15
|
complete source repository, use normal repository tools and do not run REA
|
|
16
16
|
readiness or provider commands.
|
|
17
17
|
|
|
18
|
+
## Connect only when needed
|
|
19
|
+
|
|
20
|
+
Installing this skill supplies instructions; it does not register the REA MCP
|
|
21
|
+
server, install analysis engines, or add tools to an already-running agent.
|
|
22
|
+
|
|
23
|
+
If REA tools are available and their registration is not known to be stale,
|
|
24
|
+
proceed directly to the target. Do not run diagnostics or setup before every
|
|
25
|
+
investigation. Use the connected server's actual tool list and input schemas;
|
|
26
|
+
a skill installed from repository main may describe capabilities absent from
|
|
27
|
+
an older npm release. Keep complete inline Evidence when that server does not
|
|
28
|
+
advertise retained references.
|
|
29
|
+
|
|
30
|
+
When tools are absent or registration is stale:
|
|
31
|
+
|
|
32
|
+
1. Diagnose without changing files. For Codex, run
|
|
33
|
+
`npx -y rea-agents@latest doctor --client codex --json`. Substitute the current
|
|
34
|
+
supported client: `claude_code`, `claude_desktop`, `codex`, `cursor`,
|
|
35
|
+
`gemini_cli`, `windsurf`, `devin`, `opencode`, `antigravity`, `copilot_cli`,
|
|
36
|
+
`commandcode`, or `vscode`. If the client is unknown, use `doctor --json` and
|
|
37
|
+
inspect its registration results before choosing a setup scope.
|
|
38
|
+
2. Distinguish the reason. Missing, malformed, or stale registration needs a
|
|
39
|
+
scoped configuration repair. An aligned registration with no tools in the
|
|
40
|
+
active session needs a restart/reconnection; doctor cannot prove that the
|
|
41
|
+
current agent has connected. A missing provider affects only tasks requiring
|
|
42
|
+
that provider: static JavaScript inspection needs neither Hopper nor Ghidra,
|
|
43
|
+
and Android inspection has separate bring-your-own JADX/Java prerequisites.
|
|
44
|
+
3. For a configuration repair, prepare the read-only plan:
|
|
45
|
+
`npx -y rea-agents@latest setup --client codex --dry-run --json`.
|
|
46
|
+
Use the current client's ID, show its exact proposed paths, backups, and
|
|
47
|
+
changes, and obtain approval before setup writes configuration or installs
|
|
48
|
+
Hopper. Setup normally installs the matching bundled skill too; include that
|
|
49
|
+
replacement in the reviewed plan. After approval, apply the same scope with
|
|
50
|
+
`npx -y rea-agents@latest setup --client codex --yes`. Add `--install-hopper`
|
|
51
|
+
only if that separate installation was needed and explicitly approved.
|
|
52
|
+
4. Restart/reconnect the affected agent. Verify that REA tools actually appear
|
|
53
|
+
in the session, then resume the original investigation. If they remain
|
|
54
|
+
absent, inspect the client's MCP launch error rather than repeating setup.
|
|
55
|
+
|
|
56
|
+
REA setup never installs or upgrades Node.js, npm, Homebrew, Java, Ghidra, IDA,
|
|
57
|
+
JADX, Binwalk, or Unblob. Use existing prerequisites; do not install unrelated
|
|
58
|
+
software to repair
|
|
59
|
+
MCP registration. For an unsupported client, use manual stdio registration
|
|
60
|
+
with a version-pinned `rea-agents` package or continue through the CLI.
|
|
61
|
+
|
|
62
|
+
A concrete CLI fallback for an operator-supplied JavaScript tree or ASAR is:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
No MCP registration or native engine is required. Read the returned Evidence,
|
|
69
|
+
graph, limitations, and unknowns with the same care as an MCP result; the CLI
|
|
70
|
+
returns the Evidence record directly. This fallback does not establish that
|
|
71
|
+
MCP is configured. Native CLI tasks still require their selected engine.
|
|
72
|
+
|
|
18
73
|
## Route the target first
|
|
19
74
|
|
|
20
|
-
Choose the first tool from the target the user supplied.
|
|
21
|
-
|
|
75
|
+
Choose the first tool from the target the user supplied. Use `open_binary` for
|
|
76
|
+
active-target native or archive workflows; target-free tools take their own
|
|
77
|
+
explicit path or endpoint and do not need it.
|
|
22
78
|
|
|
23
79
|
- ASAR or extracted JavaScript/Electron tree:
|
|
24
80
|
`analyze_javascript_application`.
|
|
25
|
-
- Archive
|
|
81
|
+
- Archive/package member inventory (ZIP/APK/IPA/MSIX/AppX or DMG):
|
|
26
82
|
`open_binary` with the supplied local path; use `inspect_artifact` when its
|
|
27
83
|
graph and findings help answer the question.
|
|
84
|
+
- Android APK code, classes, methods, or incoming references:
|
|
85
|
+
`inspect_android_package`, then focused Android tools when advertised.
|
|
86
|
+
Archive member inventory still uses the archive route above.
|
|
28
87
|
- Managed PE/CLI assembly: `inspect_managed_artifact`.
|
|
88
|
+
- Firmware image: `inspect_firmware_regions` when advertised. Use
|
|
89
|
+
`extract_firmware` when extraction is requested, with a caller-selected new
|
|
90
|
+
absolute output directory. These tools use caller-supplied Binwalk/Unblob on
|
|
91
|
+
Linux; see the [firmware guide](https://github.com/morluto/rea/blob/main/docs/firmware-analysis.md).
|
|
92
|
+
- .NET NativeAOT PE/ELF: native Ghidra analysis. Native code can yield pseudocode;
|
|
93
|
+
consult the NativeAOT workflow in `references/native-and-artifacts.md` for
|
|
94
|
+
optional metadata recovery and its supported host/layout boundary.
|
|
29
95
|
- User-owned browser page already open: `list_browser_targets`.
|
|
30
96
|
- User-owned Electron runtime already open: `list_electron_targets`.
|
|
31
97
|
- Native executable, library, or analysis database: `open_binary`, then
|
|
32
98
|
use focused analysis tools directly; call `binary_overview` when metadata or
|
|
33
|
-
inventory context is useful.
|
|
99
|
+
inventory context is useful and available from the selected provider.
|
|
100
|
+
|
|
101
|
+
For an existing IDA MCP configuration, use `open_binary` with the original
|
|
102
|
+
input binary and `provider_id: "ida"`; do not pass an `.idb` or `.i64` database.
|
|
103
|
+
The legacy attached profile binds the already-open GUI input by SHA-256 and
|
|
104
|
+
leaves its database open. The modern headless profile creates and closes an
|
|
105
|
+
owned private database without saving. Installation and registration reuse
|
|
106
|
+
[mrexodia/ida-pro-mcp](https://github.com/mrexodia/ida-pro-mcp); see the
|
|
107
|
+
[IDA provider guide](https://github.com/morluto/rea/blob/main/docs/ida-provider.md).
|
|
108
|
+
Proceed directly to `analyze_function`, pseudocode, or function/string searches
|
|
109
|
+
after opening; IDA does not supply `binary_overview`. Consult session availability
|
|
110
|
+
when composing broader workflows. Modern direct callers and unsupported dossier
|
|
111
|
+
facets remain unknown; live IDA results are not replayed from snapshots.
|
|
34
112
|
|
|
35
113
|
If the app is missing, ask which app to inspect. Resolve a human-readable app
|
|
36
114
|
name to one clear installed artifact when possible; ask only when matches are
|
|
37
115
|
ambiguous. Never choose an example app on the user's behalf.
|
|
38
116
|
|
|
39
117
|
In a target-free session, use `open_binary` to bind any archive/package or
|
|
40
|
-
native target whose analysis tool operates on the active target. Do not call
|
|
41
|
-
tool
|
|
42
|
-
`
|
|
43
|
-
|
|
118
|
+
native target whose analysis tool operates on the active target. Do not call an
|
|
119
|
+
unadvertised tool; inspect `binary_session` with `{}` and its
|
|
120
|
+
`result.tool_availability` for availability reasons and remediation. The tool
|
|
121
|
+
list stays complete; availability depends on the operation, target, and host.
|
|
44
122
|
|
|
45
123
|
## Work summary-first
|
|
46
124
|
|
|
@@ -98,23 +176,13 @@ as complete while required questions remain open.
|
|
|
98
176
|
[references/native-and-artifacts.md](references/native-and-artifacts.md)
|
|
99
177
|
- ASARs, extracted JavaScript, feature tracing, and version comparison:
|
|
100
178
|
[references/javascript-applications.md](references/javascript-applications.md)
|
|
179
|
+
- Android APK declarations, classes, methods, and static references:
|
|
180
|
+
[references/android-applications.md](references/android-applications.md)
|
|
101
181
|
- Passive browser/Electron observation and static/runtime reconciliation:
|
|
102
182
|
[references/runtime-observation.md](references/runtime-observation.md)
|
|
103
183
|
- Evidence paging, comparisons, residual unknowns, and verification:
|
|
104
184
|
[references/evidence-workflows.md](references/evidence-workflows.md)
|
|
105
185
|
|
|
106
|
-
## Readiness and setup
|
|
107
|
-
|
|
108
|
-
The readiness rule is conditional: when REA tools are available and their
|
|
109
|
-
registration is not known to be stale, proceed directly; do not run `doctor`
|
|
110
|
-
before every task. Run `npx -y rea-agents@latest doctor` when the MCP server or
|
|
111
|
-
required provider is unavailable, registration is reported stale, or the user
|
|
112
|
-
asks for an environment diagnosis. Propose
|
|
113
|
-
`npx -y rea-agents@latest setup` only when doctor identifies an alignment or
|
|
114
|
-
provider problem. Show the exact plan and obtain approval before setup writes
|
|
115
|
-
configuration or installs Hopper. Restart the agent after MCP registration
|
|
116
|
-
changes; direct CLI commands remain available immediately.
|
|
117
|
-
|
|
118
186
|
## Finish the task
|
|
119
187
|
|
|
120
188
|
Explain findings in plain language and tie them to returned evidence. When the
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Android application artifacts
|
|
2
|
+
|
|
3
|
+
Use the connected server's advertised Android tools. Repository main and npm
|
|
4
|
+
4.1.0 include this family. A skill installation alone cannot add it to an
|
|
5
|
+
older server.
|
|
6
|
+
|
|
7
|
+
Start with `inspect_android_package` on the caller's APK path for package
|
|
8
|
+
identity, manifest declarations, coverage, and inline Evidence. Use
|
|
9
|
+
`search_android_classes` to find candidates, `inspect_android_class` for one
|
|
10
|
+
class's members, `inspect_android_method` for decompilation, and
|
|
11
|
+
`trace_android_references` for incoming static references. Each call takes its
|
|
12
|
+
own APK path and explicit selectors; do not open a native session first.
|
|
13
|
+
Choose an `overload_index` from the class inventory when methods are ambiguous
|
|
14
|
+
instead of guessing.
|
|
15
|
+
|
|
16
|
+
The provider requires a separately supplied headless JADX MCP JAR 0.7.1 and
|
|
17
|
+
Java 17 or newer. `REA_JADX_MCP_JAR` selects the absolute JAR path; `JAVA_HOME`
|
|
18
|
+
can select Java. REA setup does not install or configure that JAR, and doctor
|
|
19
|
+
provider scopes cover Hopper/Ghidra rather than JADX. Use existing tools and
|
|
20
|
+
report missing prerequisites for the Android task specifically.
|
|
21
|
+
|
|
22
|
+
Real verification covers Linux. macOS has the POSIX launch boundary but no
|
|
23
|
+
claimed real-provider verification; Windows is unsupported. Calls use one
|
|
24
|
+
worker, a bounded JVM heap, and provider deadlines. The APK is never launched,
|
|
25
|
+
and no emulator is required.
|
|
26
|
+
|
|
27
|
+
Manifest entries and decompiled text are static observations, not execution or
|
|
28
|
+
policy enforcement. Incoming references are recovered static relationships;
|
|
29
|
+
reflection, dynamic loading, and unresolved calls remain unknown. Preserve
|
|
30
|
+
artifact digests, locations, diagnostics, and incomplete coverage. For archive
|
|
31
|
+
members rather than code analysis, use `open_binary` and `inspect_artifact`.
|
|
@@ -15,7 +15,9 @@ registration, defaults, or policy enforcement from static analysis.
|
|
|
15
15
|
|
|
16
16
|
Use `trace_application_feature` on existing application Evidence for one
|
|
17
17
|
literal node ID, route, string, API, IPC channel, module, or native export.
|
|
18
|
-
Choose a direction and
|
|
18
|
+
Choose a direction and reuse the returned application Evidence ID when the
|
|
19
|
+
connected server advertises retained references, or supply complete Evidence
|
|
20
|
+
inline. Include
|
|
19
21
|
Hopper or Ghidra Evidence only when its artifact digest matches exactly.
|
|
20
22
|
|
|
21
23
|
For version comparison, analyze each version once, then call
|
|
@@ -27,10 +29,25 @@ opposite-side coverage; otherwise report unknown.
|
|
|
27
29
|
When the question asks how one exact exported callable's returned object shape
|
|
28
30
|
changed, analyze each version once and then call
|
|
29
31
|
`compare_javascript_export_shapes` with explicit module paths and export names.
|
|
30
|
-
|
|
32
|
+
Use the returned IDs on the same connection, or complete inline Evidence
|
|
33
|
+
records, from both analysis calls. Accept variant
|
|
31
34
|
pairing only through the tool's unique exact literal discriminant. Cite the
|
|
32
35
|
comparison Evidence and report JSON Pointer changes; dynamic values, ambiguous
|
|
33
36
|
variants, and incomplete parent-property coverage stay unknown. This is static
|
|
34
37
|
inference, not runtime behavior. When runtime semantics are needed, run
|
|
35
38
|
behavioral probes against the relevant application versions and capture them
|
|
36
39
|
through the available browser, Electron, or process workflows.
|
|
40
|
+
|
|
41
|
+
## Reusing application Evidence
|
|
42
|
+
|
|
43
|
+
When advertised by the connected server, application trace and compare tools
|
|
44
|
+
accept complete inline Evidence or
|
|
45
|
+
`{"kind":"retained-evidence","evidence_id":"ev_<64 lowercase hex characters>"}`
|
|
46
|
+
for their application input (`application`, or `left`/`right`). This notation is
|
|
47
|
+
a template: replace it with the actual returned ID. Versions before 4.1.0 accept only full
|
|
48
|
+
inline Evidence. Use the exact ID
|
|
49
|
+
returned by the producer on the same MCP connection. Resolution does not run
|
|
50
|
+
analysis or select a provider; findings remain inline. Native observation
|
|
51
|
+
arrays still take full Evidence. `close_binary` clears retained references;
|
|
52
|
+
export a bundle before closing, or supply portable inline Evidence in another
|
|
53
|
+
connection. A missing reference includes its ID and recovery guidance.
|