rea-agents 6.5.0 → 6.7.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 +12 -3
- package/THIRD_PARTY_NOTICES.md +1 -0
- package/bridge/android/ReaJadxBridge.java +167 -23
- package/bridge/cutter/rea_bridge.py +19 -10
- package/bridge/ghidra/ReaGhidraBridge.java +98 -66
- package/bridge/hopper_bridge.py +9 -1
- package/bridge/native/rea_lldb_tracer.py +48 -4
- package/bridge/pwndbg/core_context.py +15 -2
- package/dist/adb/AdbCommand.js +148 -0
- package/dist/adb/AdbConfiguration.js +26 -4
- package/dist/adb/AdbInputSnapshot.js +126 -0
- package/dist/adb/AdbProvider.js +765 -248
- package/dist/adb/AdbShellOutput.js +92 -21
- package/dist/android/AndroidTargetSnapshot.js +7 -7
- package/dist/android/JadxAnalysis.js +27 -32
- package/dist/android/JadxConfiguration.js +173 -125
- package/dist/android/JadxDoctor.js +11 -3
- package/dist/android/JadxFailure.js +154 -0
- package/dist/android/JadxInterruption.js +13 -0
- package/dist/android/JadxJavaProbe.js +246 -0
- package/dist/android/JadxMcpTransport.js +48 -15
- package/dist/android/JadxProtocol.js +29 -2
- package/dist/android/JadxProvider.js +171 -96
- package/dist/android/JadxRelease.js +5 -1
- package/dist/android/JadxSession.js +35 -14
- package/dist/apktool/ApktoolCommandCleanup.js +134 -0
- package/dist/apktool/ApktoolCommandOutput.js +22 -0
- package/dist/apktool/ApktoolConfiguration.js +162 -44
- package/dist/apktool/ApktoolDecodeOutput.js +29 -23
- package/dist/apktool/ApktoolDecodedInventory.js +52 -0
- package/dist/apktool/ApktoolProvider.js +254 -335
- package/dist/apktool/ApktoolStringTables.js +178 -0
- package/dist/apktool/ApktoolWorkspace.js +162 -0
- package/dist/application/AnalysisDocument.js +19 -4
- package/dist/application/AnalysisProvider.js +15 -1
- package/dist/application/AppBundleExecutable.js +11 -4
- package/dist/application/BinaryTargetResolver.js +9 -2
- package/dist/application/BrowserObservationService.js +54 -20
- package/dist/application/BrowserScenarioCaptureService.js +26 -6
- package/dist/application/CapabilityInventory.js +14 -8
- package/dist/application/ClaudeDesktopConfigLocation.js +5 -5
- package/dist/application/ClientConfigurationCleanup.js +73 -0
- package/dist/application/ClientConfigurationDocument.js +170 -128
- package/dist/application/ClientConfigurationPublication.js +167 -0
- package/dist/application/ClientRegistrationEnvironment.js +31 -1
- package/dist/application/ClientRegistrationIdentity.js +54 -39
- package/dist/application/ClientRegistrationStatus.js +123 -48
- package/dist/application/DirectAnalysis.js +15 -2
- package/dist/application/DirectAnalysisCleanup.js +5 -1
- package/dist/application/DirectAnalysisStatus.js +1 -1
- package/dist/application/Doctor.js +83 -9
- package/dist/application/DoctorDiagnostics.js +25 -4
- package/dist/application/DoctorProviderIds.js +7 -1
- package/dist/application/DshCordisPatch.js +1 -1
- package/dist/application/EnhancedTools.js +9 -21
- package/dist/application/HermesClientHome.js +20 -0
- package/dist/application/HermesConfigurationYaml.js +43 -3
- package/dist/application/HopperDownload.js +11 -3
- package/dist/application/HopperReleaseFeed.js +71 -0
- package/dist/application/InvestigationProviders.js +4 -3
- package/dist/application/JsonFiles.js +1 -1
- package/dist/application/LinuxHopper.js +96 -71
- package/dist/application/LinuxHopperPublisher.js +656 -0
- package/dist/application/MacHopper.js +182 -66
- package/dist/application/MipsElfMetadata.js +1 -1
- package/dist/application/MsixPackageStorage.js +13 -6
- package/dist/application/ProviderOperationExecution.js +13 -20
- package/dist/application/ReconstructionObligationCandidates.js +17 -2
- package/dist/application/ReconstructionObligationLedgerEvaluation.js +4 -0
- package/dist/application/ReconstructionObligationLedgerService.js +5 -3
- package/dist/application/ReconstructionObligationOriginalCases.js +8 -0
- package/dist/application/ReferenceSourceImportEntries.js +160 -18
- package/dist/application/ReferenceSourceImportPolicy.js +5 -3
- package/dist/application/ReferenceSourceVcsAdapter.js +3 -1
- package/dist/application/RegularFileRead.js +107 -88
- package/dist/application/Setup.js +23 -11
- package/dist/application/SetupClientConfiguration.js +155 -89
- package/dist/application/SetupClients.js +22 -13
- package/dist/application/SetupHost.js +90 -34
- package/dist/application/SetupInstallFailure.js +18 -3
- package/dist/application/SetupPlan.js +15 -5
- package/dist/application/SetupRecoveryBackup.js +40 -13
- package/dist/application/SetupRegistrationEnvironment.js +12 -0
- package/dist/application/SetupSkill.js +10 -30
- package/dist/application/SourceLimitations.js +35 -0
- package/dist/application/SupportedClients.js +4 -4
- package/dist/application/Uninstall.js +91 -36
- package/dist/application/UpdateCommandProgress.js +66 -0
- package/dist/application/UpdateMaintenance.js +7 -2
- package/dist/application/UpdateRuntime.js +60 -30
- package/dist/application/WebModuleTraceService.js +35 -22
- package/dist/application/WebNetworkCaptureService.js +8 -5
- package/dist/application/WebRuntimeService.js +41 -8
- package/dist/application/WebScriptExportService.js +6 -4
- package/dist/application/WebSourceLocationService.js +3 -4
- package/dist/application/WorkflowEvidence.js +11 -4
- package/dist/application/analysisView/AnalysisViewService.js +9 -52
- package/dist/application/android/AndroidAnalysisService.js +5 -4
- package/dist/application/android/AndroidSearchEvidenceSummary.js +6 -8
- package/dist/application/artifacts/ArtifactComparisonEvidence.js +32 -0
- package/dist/application/binary/AnalysisProviderEvaluation.js +14 -11
- package/dist/application/binary/AnalysisProviderRegistry.js +340 -50
- package/dist/application/binary/BinarySession.js +73 -34
- package/dist/application/binary/BinarySessionRecords.js +3 -0
- package/dist/application/binary/BinarySessionStatus.js +3 -4
- package/dist/application/binary/CompositeProvider.js +75 -30
- package/dist/application/binary/LazyAnalysisProvider.js +6 -68
- package/dist/application/binary/SessionProviderRouter.js +11 -2
- package/dist/application/binaryDiagnostics/BinaryLayoutService.js +3 -4
- package/dist/application/binaryDiagnostics/PeResourcesService.js +22 -5
- package/dist/application/binaryDiagnostics/RecordedCrashService.js +3 -4
- package/dist/application/captures/PacketCaptureService.js +3 -2
- package/dist/application/closeOwnedWebResources.js +32 -2
- package/dist/application/electron/ElectronFuseService.js +8 -43
- package/dist/application/evm/EvmInterfaceEvidence.js +11 -0
- package/dist/application/evm/EvmInterfaceService.js +4 -15
- package/dist/application/firmware/FirmwareAnalysisService.js +4 -3
- package/dist/application/go/GoBinaryService.js +4 -5
- package/dist/application/investigation/EvidenceLedger.js +3 -4
- package/dist/application/javascript/ElectronBoundaryGraphWindows.js +14 -2
- package/dist/application/javascript/ElectronEvidence.js +1 -2
- package/dist/application/javascript/ElectronObservationService.js +41 -7
- package/dist/application/javascript/JavaScriptApplicationEvidence.js +6 -0
- package/dist/application/javascript/JavaScriptArtifactAnalysis.js +35 -17
- package/dist/application/javascript/JavaScriptArtifactAnalysisTypes.js +30 -1
- package/dist/application/javascript/JavaScriptArtifactGraphContext.js +3 -2
- package/dist/application/javascript/JavaScriptArtifactGraphEvidence.js +3 -3
- package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +41 -11
- package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +18 -8
- package/dist/application/javascript/JavaScriptArtifactPathResolution.js +84 -24
- package/dist/application/javascript/JavaScriptArtifactReconstruction.js +15 -3
- package/dist/application/javascript/JavaScriptModuleRelationships.js +1 -1
- package/dist/application/javascript/JavaScriptRuntimeObservationEvidence.js +1 -2
- package/dist/application/javascript/JavaScriptRuntimeObservationService.js +33 -10
- package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +4 -5
- package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +103 -24
- package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +13 -4
- package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +23 -3
- package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +18 -5
- package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +4 -6
- package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +2 -3
- package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +2 -3
- package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +5 -8
- package/dist/application/native/NativeCallRoutes.js +40 -23
- package/dist/application/native/NativeUiActionTrace.js +8 -0
- package/dist/application/native/NativeValueTrace.js +8 -0
- package/dist/application/reverse/ReverseEngineeringService.js +2 -2
- package/dist/application/rust/RustBinaryService.js +6 -4
- package/dist/application/signals/SignalRecordingService.js +3 -2
- package/dist/application/wasm/WasmArtifactService.js +4 -5
- package/dist/artifacts/AnalysisCleanupLease.js +119 -0
- package/dist/artifacts/ArtifactFileOperation.js +150 -0
- package/dist/artifacts/ArtifactHash.js +2 -1
- package/dist/artifacts/ArtifactProvider.js +16 -5
- package/dist/artifacts/ArtifactReader.js +50 -4
- package/dist/artifacts/ArtifactResourceScope.js +80 -6
- package/dist/artifacts/AsarArtifactReader.js +12 -11
- package/dist/artifacts/AsarEntryStream.js +49 -17
- package/dist/artifacts/DirectoryArtifactReader.js +28 -7
- package/dist/artifacts/MachOSliceArtifactReader.js +70 -13
- package/dist/artifacts/NativeDmgArtifactReader.js +112 -13
- package/dist/artifacts/SafeOutputTree.js +5 -3
- package/dist/artifacts/SafeOutputTreeCreationFailure.js +1 -0
- package/dist/artifacts/SafeOutputTreeReadback.js +10 -16
- package/dist/artifacts/ZipArtifactReader.js +34 -14
- package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +3 -1
- package/dist/artifacts/apple/DylibFileAccess.js +106 -0
- package/dist/artifacts/apple/DylibResolutionReader.js +64 -155
- package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +52 -9
- package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +25 -24
- package/dist/artifacts/apple/KeyedArchiveReader.js +20 -11
- package/dist/artifacts/apple/MachoLoadCommandReader.js +17 -2
- package/dist/artifacts/apple/PlistNumberLiterals.js +104 -116
- package/dist/artifacts/extraction/ArtifactExtraction.js +15 -12
- package/dist/artifacts/inventory/ArtifactGraphConstruction.js +9 -11
- package/dist/artifacts/inventory/ArtifactInventory.js +2 -2
- package/dist/artifacts/inventory/classify.js +4 -2
- package/dist/artifacts/inventory/hashStableRootArtifact.js +14 -7
- package/dist/artifacts/inventory/scanCanonical.js +3 -4
- package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +3 -1
- package/dist/artifacts/readArtifactFileChunks.js +9 -0
- package/dist/artifacts/readStableArtifact.js +12 -34
- package/dist/browser/BrowserScenarioPartialObservation.js +14 -48
- package/dist/browser/CdpBrowserProvider.js +81 -30
- package/dist/browser/CdpCaptureDocuments.js +99 -131
- package/dist/browser/CdpCaptureDomSvg.js +31 -60
- package/dist/browser/CdpCaptureValues.js +12 -0
- package/dist/browser/CdpConnection.js +133 -27
- package/dist/browser/CdpElectronInspection.js +60 -60
- package/dist/browser/CdpElectronProvider.js +56 -4
- package/dist/browser/CdpElectronScriptEvents.js +4 -1
- package/dist/browser/CdpElectronScripts.js +2 -5
- package/dist/browser/CdpElectronWorkers.js +13 -2
- package/dist/browser/CdpPageCapture.js +2 -1
- package/dist/browser/CdpPageCaptureScripts.js +14 -10
- package/dist/browser/CdpPageCaptureWorkers.js +45 -14
- package/dist/browser/CdpSafeMetadata.js +23 -19
- package/dist/browser/CdpSnapshotNodes.js +103 -0
- package/dist/browser/CdpSnapshotStrings.js +0 -6
- package/dist/browser/CdpTargetSession.js +52 -10
- package/dist/browser/CdpTargetSessionOwner.js +198 -0
- package/dist/browser/ElectronCaptureCleanup.js +82 -0
- package/dist/browser/ElectronProcessCleanup.js +91 -0
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +71 -16
- package/dist/browser/PlaywrightElectronActiveActions.js +53 -5
- package/dist/browser/PlaywrightElectronActiveFuses.js +86 -0
- package/dist/browser/PlaywrightElectronActiveProjection.js +5 -0
- package/dist/browser/PlaywrightElectronActiveProvider.js +140 -151
- package/dist/browser/PlaywrightExecutionBoundary.js +4 -2
- package/dist/browser/PlaywrightScenarioBrowser.js +236 -90
- package/dist/browser/PlaywrightScenarioEvents.js +135 -48
- package/dist/browser/PlaywrightScenarioServiceWorkers.js +121 -34
- package/dist/browser/PlaywrightScenarioSession.js +95 -22
- package/dist/browser/PlaywrightScenarioStorage.js +15 -7
- package/dist/browser/StructuredFieldToken.js +53 -0
- package/dist/browser/WebArtifactCleanup.js +53 -0
- package/dist/browser/WebSourceMapFetcher.js +19 -10
- package/dist/browser/assets/WebArtifactReads.js +6 -2
- package/dist/browser/assets/WebSourceLocationArtifacts.js +12 -3
- package/dist/browser/execution/CdpRuntimeSession.js +36 -7
- package/dist/browser/execution/CdpWebRuntimeProvider.js +22 -4
- package/dist/browser/history/CaptureFailures.js +7 -2
- package/dist/browser/history/HarCapture.js +42 -11
- package/dist/browser/history/SazMetadata.js +10 -47
- package/dist/browser/modules/NativeModuleResolver.js +108 -58
- package/dist/browser/modules/WebModuleArtifacts.js +12 -3
- package/dist/browser/network/PlaywrightNetworkContent.js +40 -17
- package/dist/browser/network/PlaywrightScenarioNetwork.js +182 -73
- package/dist/captures/TsharkCaptureProvider.js +13 -6
- package/dist/catalogIdentity.js +19 -14
- package/dist/cli/adbCommands.js +18 -19
- package/dist/cli/androidCommands.js +2 -14
- package/dist/cli/apktoolCommands.js +4 -14
- package/dist/cli/binaryDiagnosticsCommands.js +5 -5
- package/dist/cli/browserAdvancedCommands.js +11 -4
- package/dist/cli/browserCommands.js +21 -12
- package/dist/cli/captureCommands.js +4 -4
- package/dist/cli/cliResultOutput.js +175 -89
- package/dist/cli/coreBinaryCommands.js +4 -3
- package/dist/cli/cutterCommands.js +51 -13
- package/dist/cli/electronCommands.js +34 -13
- package/dist/cli/evmCommands.js +6 -15
- package/dist/cli/finishAnalysisCommand.js +10 -2
- package/dist/cli/firmwareCommands.js +6 -14
- package/dist/cli/flutterCommands.js +2 -18
- package/dist/cli/fridaCommands.js +8 -0
- package/dist/cli/goCommands.js +2 -2
- package/dist/cli/javascriptRecoveryCommands.js +14 -26
- package/dist/cli/jebCommands.js +2 -14
- package/dist/cli/options.js +6 -0
- package/dist/cli/pcapCommands.js +2 -20
- package/dist/cli/rustCommands.js +6 -7
- package/dist/cli/setupCommands.js +4 -3
- package/dist/cli/signalCommands.js +4 -4
- package/dist/cli/sqliteCommands.js +17 -44
- package/dist/cli/wasmCommands.js +7 -18
- package/dist/cli/webModuleCommands.js +19 -34
- package/dist/cli/webNetworkCaptureCommands.js +3 -2
- package/dist/cli/webRuntimeCommands.js +15 -6
- package/dist/cli/webSourceLocationCommands.js +14 -33
- package/dist/cli-runtime/AnalysisCleanupLease-CWfTGYKd.js +103 -0
- package/dist/cli-runtime/{AnalysisProvider-D0Us2OTk.js → AnalysisProvider-BGrYaMVo.js} +14 -3
- package/dist/cli-runtime/{AnalysisSnapshotCache-BXS0wRd2.js → AnalysisSnapshotCache-BjRlXeUS.js} +14 -13
- package/dist/cli-runtime/ArtifactFileOperation-Dg4BcoEM.js +122 -0
- package/dist/cli-runtime/{ArtifactReader-BXkffc1D.js → ArtifactReader-DMwm42bk.js} +29 -6
- package/dist/cli-runtime/ArtifactResourceScope-CokZGcII.js +175 -0
- package/dist/cli-runtime/{AsarHeader-CnzOzYEH.js → AsarHeader-BxwU17DJ.js} +1 -1
- package/dist/cli-runtime/{BinarySessionStatus-DnMxMk-r.js → BinarySessionStatus-DRhjr7Vb.js} +4 -3
- package/dist/cli-runtime/{BinaryTargetResolver-CVIJ_s1A.js → BinaryTargetResolver-tuCTjBlQ.js} +38 -108
- package/dist/cli-runtime/{BoundedFileBytes-BU30odTm.js → BoundedFileBytes-DRtiQNAQ.js} +7 -3
- package/dist/cli-runtime/{CdpTargetSession-DGX5pV9w.js → CdpTargetSession-CQ08KHbh.js} +318 -43
- package/dist/cli-runtime/ClientConfigPath-Dn-V_GUf.js +255 -0
- package/dist/cli-runtime/{ClientConfigurationDocument-ffQ9X0Se.js → ClientConfigurationDocument-C9T8MNGc.js} +206 -142
- package/dist/cli-runtime/{ClientRegistrationStatus-DszCyPEU.js → ClientRegistrationStatus-PnD29RTX.js} +112 -36
- package/dist/cli-runtime/{CurrentEntrypointPath-D5FRNdkq.js → CurrentEntrypointPath-m7QCIVN0.js} +1 -1
- package/dist/cli-runtime/{DirectAnalysis-BgvAtpN3.js → DirectAnalysis-C5NyUryV.js} +76 -23
- package/dist/cli-runtime/DirectoryArtifactReader-CokAJ8vo.js +448 -0
- package/dist/cli-runtime/{Doctor-DIpf_I7N.js → Doctor-DrkWsav4.js} +105 -25
- package/dist/cli-runtime/{ElectronFileScope-dpHm2nrS.js → ElectronFileScope-AP7VoVr7.js} +204 -149
- package/dist/cli-runtime/ElectronFuseFailures-DsjXR7Xp.js +609 -0
- package/dist/cli-runtime/{ExecFileOutput-BEQs-lDD.js → ExecFileOutput-D6KLYTve.js} +11 -9
- package/dist/cli-runtime/{InterfaceBuilderDecodeBudget-D4omRUe4.js → InterfaceBuilderDecodeBudget-CW1IO3dG.js} +40 -21
- package/dist/cli-runtime/{InventoryProjectionEvidence-DIsI4DJ6.js → InventoryProjectionEvidence-DTH5QAqL.js} +3 -3
- package/dist/cli-runtime/{InvestigationProviders-DoQRIHii.js → InvestigationProviders-CFh4a64d.js} +3 -2
- package/dist/cli-runtime/{JavaScriptApplicationEvidenceGraph-D5aI_FSJ.js → JavaScriptApplicationEvidenceGraph-gOmPB2L6.js} +6 -6
- package/dist/cli-runtime/{JavaScriptApplicationWorkflowEvidence-Bz4-V0Ct.js → JavaScriptApplicationWorkflowEvidence-WZgtK_Ok.js} +2 -2
- package/dist/cli-runtime/JebMcpEndpoint-BEalGZh9.js +710 -0
- package/dist/cli-runtime/{JsonFiles-DQa1PRKy.js → JsonFiles-uvd6ZyQi.js} +10 -118
- package/dist/cli-runtime/KunaInstallation-P0j3x851.js +1781 -0
- package/dist/cli-runtime/MacHopperPaths-bGzqjF1Z.js +34 -0
- package/dist/cli-runtime/{MachoLoadCommandReader-C7e074Ze.js → MachoLoadCommandReader-CZm6N5vF.js} +12 -192
- package/dist/cli-runtime/{ManagedSnapshot-rqyBHcdL.js → ManagedSnapshot-CPE9C3OD.js} +406 -110
- package/dist/cli-runtime/OwnedCommandCleanup-BN_V6Erc.js +187 -0
- package/dist/cli-runtime/OwnedRegularFile-D1f5nUCx.js +256 -0
- package/dist/cli-runtime/OwnedStagedOutput-D31dOozz.js +126 -0
- package/dist/cli-runtime/{PrivateRuntimeRoot-DAy0PiBM.js → PrivateRuntimeRoot-Cd23u6jd.js} +39 -6
- package/dist/cli-runtime/ProcessOwnership-CtrNr6ee.js +545 -0
- package/dist/cli-runtime/{ProcessOwnership-DXC5-UWt.js → ProcessOwnershipObservation-C006iCtZ.js} +149 -607
- package/dist/cli-runtime/{ProviderDeadline-8m2pFRDc.js → ProviderDeadline-rSuH4Pm8.js} +27 -1
- package/dist/cli-runtime/ProviderOperationExecution-CmU-XrQr.js +38 -0
- package/dist/cli-runtime/{snapshotEnvironment-D_tWyOub.js → ProviderProcess-D87A7ctp.js} +117 -160
- package/dist/cli-runtime/RegularFileRead-mbgGYtxe.js +125 -0
- package/dist/cli-runtime/{SafeOutputTree-D6U15GXd.js → SafeOutputTree-i904hd_2.js} +21 -20
- package/dist/cli-runtime/{SetupHost-FkYWswsq.js → SetupHost-CMPmPraB.js} +365 -195
- package/dist/cli-runtime/SharedStartupAttempt-BxKyf3Uv.js +1424 -0
- package/dist/cli-runtime/StableFileHash-Ame_h3lY.js +61 -0
- package/dist/cli-runtime/{SupportedClients-DaX6Lt2d.js → SupportedClients-DMafjitv.js} +89 -72
- package/dist/cli-runtime/{Update-CbTC_eg1.js → Update-DAsASWlE.js} +1 -1
- package/dist/cli-runtime/{AbortablePromise-BVBemxbD.js → WindowsBatchCommand-Cx9kaVNf.js} +2 -28
- package/dist/cli-runtime/WindowsNativeLoader-BqyZO0ZD.js +142 -0
- package/dist/cli-runtime/{ZipArtifactReader-B8ZgNe4D.js → ZipArtifactReader-Jed69LEL.js} +20 -16
- package/dist/cli-runtime/{analysisErrorCleanup-Do6YeeoD.js → analysisErrorCleanup-COdAmDsb.js} +4 -3
- package/dist/cli-runtime/{appleArchiveFormat-tVoI2ykA.js → appleArchiveFormat-Bb3G5CCI.js} +13 -7
- package/dist/cli-runtime/{application__DirectAnalysisStatus-DpOejOf0.js → application__DirectAnalysisStatus-F74bu9oy.js} +10 -10
- package/dist/cli-runtime/{application__EnhancedTools-oFE2bOjs.js → application__EnhancedTools-Bg51b0Yp.js} +84 -51
- package/dist/cli-runtime/{application__FunctionAnalysisEvidence-B6osuhvW.js → application__FunctionAnalysisEvidence-DBWIaYCh.js} +3 -3
- package/dist/cli-runtime/{application__ReconstructionCoverageService-DN3wTFQj.js → application__ReconstructionCoverageService-AEPNpZqJ.js} +3 -3
- package/dist/cli-runtime/{application__ReconstructionObligationLedgerService-CKcTppX9.js → application__ReconstructionObligationLedgerService-Cl9cPEZf.js} +22 -9
- package/dist/cli-runtime/{application__Setup-XpMaRNjy.js → application__Setup-DwQzEewK.js} +30 -18
- package/dist/cli-runtime/{application__Uninstall-_23pU2yB.js → application__Uninstall-BOf9oyvQ.js} +78 -37
- package/dist/cli-runtime/{application__UpdateRuntime-DPvY8ohd.js → application__UpdateRuntime-CzWkRJHa.js} +119 -29
- package/dist/cli-runtime/{application__android__AndroidApplicationService-CFgIFPM4.js → application__android__AndroidApplicationService-shW_aKlj.js} +3 -3
- package/dist/cli-runtime/{application__apple__AppleApplicationService-Db6QCsun.js → application__apple__AppleApplicationService-DIv6d3wB.js} +3 -3
- package/dist/cli-runtime/{application__harmony__HarmonyApplicationService-CFjocHoK.js → application__harmony__HarmonyApplicationService-OIUFVQFV.js} +3 -3
- package/dist/cli-runtime/{application__javascript__ElectronActiveObservationService-CmVDUI_Z.js → application__javascript__ElectronActiveObservationService-wvCh72hK.js} +3 -3
- package/dist/cli-runtime/application__javascript__ElectronObservationService-SydXPCwM.js +88 -0
- package/dist/cli-runtime/{application__javascript__JavaScriptApplicationService-CCkp8KBh.js → application__javascript__JavaScriptApplicationService-o0uEsjEc.js} +1120 -316
- package/dist/cli-runtime/{application__javascript__JavaScriptApplicationWorkflowService-lPy0tzr3.js → application__javascript__JavaScriptApplicationWorkflowService-BAheG_71.js} +51 -44
- package/dist/cli-runtime/{application__javascript__JavaScriptRuntimeReconciliationService-DWleA8K9.js → application__javascript__JavaScriptRuntimeReconciliationService-Cnn4GP8q.js} +5 -5
- package/dist/cli-runtime/{application__javascript__JavaScriptSemanticTraceService-DkALH4rL.js → application__javascript__JavaScriptSemanticTraceService-CmvLfV1A.js} +6 -6
- package/dist/cli-runtime/{artifacts__ArtifactProvider-zXI0QjSL.js → artifacts__ArtifactProvider-wx2K0F2I.js} +377 -359
- package/dist/cli-runtime/{binary-BVOr2mgE.js → binary-CWVNJhAC.js} +8561 -3159
- package/dist/cli-runtime/{catalogIdentity-DLoXgfIR.js → catalogIdentity-DAEEsOdX.js} +260 -81
- package/dist/cli-runtime/cli.js +6177 -3556
- package/dist/cli-runtime/{cliOutput-BC1BdAcB.js → cliOutput-CgSuw782.js} +47 -6
- package/dist/cli-runtime/cliOutput.js +2 -2
- package/dist/cli-runtime/cliResultOutput-10sd6xGx.js +1453 -0
- package/dist/cli-runtime/cliResultOutput.js +2 -1
- package/dist/cli-runtime/{composition__browserScenario-DHXC1a8n.js → composition__browserScenario-BtPb1c1y.js} +843 -356
- package/dist/cli-runtime/{composition__electronObservation-GecK2EID.js → composition__electronObservation-Bk8R6DJo.js} +128 -69
- package/dist/cli-runtime/{composition__electronScenario-CEZnVrAL.js → composition__electronScenario-BVF0qStH.js} +398 -135
- package/dist/cli-runtime/{cutterToolContracts-TZH9EHr5.js → cutterToolContracts-BQtG_Nzo.js} +195 -62
- package/dist/cli-runtime/{doctorRuntime-BE5ZX8it.js → doctorRuntime-B__SIpm-.js} +241 -21
- package/dist/cli-runtime/{dotnet__ManagedStaticProvider-C8_yZCDc.js → dotnet__ManagedStaticProvider-DO5Yzcp4.js} +1 -1
- package/dist/cli-runtime/{errorSchemas-CTRmvMl3.js → errorSchemas-Ixz_q7qt.js} +58 -4
- package/dist/cli-runtime/homeDirectory-DC_DeJIg.js +18 -0
- package/dist/cli-runtime/{javascriptApplicationAnalysis-HgMzVMQw.js → javascriptApplicationAnalysis-Dk6yBV8g.js} +688 -668
- package/dist/cli-runtime/{javascriptExportReturnShapeProjection-Dg00g35t.js → javascriptExportReturnShapeProjection-CObOIiQ6.js} +3 -3
- package/dist/cli-runtime/{javascriptExportShapeComparisonSchemas-BYnoIqIk.js → javascriptExportShapeComparisonSchemas-DpwuBenh.js} +5 -3
- package/dist/cli-runtime/{javascriptRuntimeReconciliation-DNjDoL3S.js → javascriptRuntimeReconciliation-C6ZgWMys.js} +61 -59
- package/dist/cli-runtime/{javascriptRuntimeReconciliationSchemas-BWpGWNcI.js → javascriptRuntimeReconciliationSchemas-D6tZKUQs.js} +2 -2
- package/dist/cli-runtime/{javascriptSemanticTraceSchemas-BTCNcvbc.js → javascriptSemanticTraceSchemas-C7m0b6_w.js} +3 -3
- package/dist/cli-runtime/{lipo-DSWP6fv-.js → lipo-DPQ6qurH.js} +9 -11
- package/dist/cli-runtime/{logger-CQQCI4a2.js → logger-BuDJ9xxO.js} +2 -2
- package/dist/cli-runtime/{machoContainer-C8BIkkq3.js → machoContainer-Cy98bkFm.js} +180 -0
- package/dist/cli-runtime/{managedApplicationGraph-B08jb3jq.js → managedApplicationGraph-BazVqpJv.js} +16 -10
- package/dist/cli-runtime/{managedToolContracts-D60QmIYj.js → managedToolContracts-BuFkMBH5.js} +2 -2
- package/dist/cli-runtime/mcpDoctor.js +8 -6
- package/dist/cli-runtime/mcpStartupPolicy-imCbM3qo.js +28 -0
- package/dist/cli-runtime/{native__NativeMacOSProvider-YBTvUeJO.js → native__NativeMacOSProvider-DTcRhuGA.js} +1384 -757
- package/dist/cli-runtime/{officialToolContracts-CCFF0an9.js → officialToolContracts-CzzVLx8I.js} +74 -53
- package/dist/cli-runtime/peMachine-B9ggfSJJ.js +95 -0
- package/dist/cli-runtime/propertyListKeys-D5dSASEy.js +355 -0
- package/dist/cli-runtime/{providerCleanupError-Ceq8f0wK.js → providerCleanupError-BhsJyAhk.js} +3 -5
- package/dist/cli-runtime/readArtifactFileChunks-BbTL_PtB.js +129 -0
- package/dist/cli-runtime/{reconstructionObligationLedgerSchemas-Bao0xMr-.js → reconstructionObligationLedgerSchemas-Bi6sect1.js} +6329 -3651
- package/dist/cli-runtime/{scanCanonical-KP4T9jSl.js → scanCanonical-CcDFUr-w.js} +233 -363
- package/dist/cli-runtime/snapshotEnvironment-Yvx5qwsl.js +196 -0
- package/dist/cli-runtime/{toolContracts-D2FOG_Nb.js → toolContracts-CJzEyZ38.js} +126 -52
- package/dist/cli-runtime/{toolOutputSchemaGroups-DRiYs1je.js → toolOutputSchemaGroups-BqdSzySu.js} +768 -589
- package/dist/cli-runtime/{workflowInputError-n8Oo-bLA.js → workflowInputError-BP8z9Wxl.js} +2 -2
- package/dist/cli.js +10 -0
- package/dist/cliBrowserScenarioCommands.js +2 -3
- package/dist/cliLogging.js +22 -7
- package/dist/cliObservationOptions.js +3 -0
- package/dist/cliOutput.js +68 -3
- package/dist/composition/binary.js +15 -2
- package/dist/composition/directAnalysis.js +8 -0
- package/dist/composition/javascriptAnalysisWorkerProcess.js +4 -5
- package/dist/composition/jeb.js +32 -21
- package/dist/config/environment.js +36 -2
- package/dist/config/mcpInputSchemaProfile.js +1 -1
- package/dist/config/parseConfig.js +7 -3
- package/dist/contracts/adb/adbToolContracts.js +2 -2
- package/dist/contracts/analysisViewApiSurfaceExample.js +4 -4
- package/dist/contracts/analysisViewToolContracts.js +42 -1
- package/dist/contracts/android/androidToolContracts.js +1 -1
- package/dist/contracts/apktool/apktoolToolContracts.js +5 -1
- package/dist/contracts/artifactComparisonExample.js +18 -14
- package/dist/contracts/artifactToolContracts.js +2 -1
- package/dist/contracts/browserScenarioToolContracts.js +1 -1
- package/dist/contracts/browserToolContracts.js +12 -1
- package/dist/contracts/compactInputSchema.js +13 -6
- package/dist/contracts/fridaToolContracts.js +5 -4
- package/dist/contracts/gdbToolContracts.js +2 -3
- package/dist/contracts/inputSchemaPresentation.js +173 -79
- package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +1 -0
- package/dist/contracts/javascript/javascriptRuntimeReconciliationExample.js +1 -0
- package/dist/contracts/jsonSchemaKeywords.js +29 -0
- package/dist/contracts/managed/managedWorkflowExamples.js +3 -0
- package/dist/contracts/managed/managedWorkflowToolContracts.js +1 -1
- package/dist/contracts/mobileApplicationGraphExamples.js +15 -12
- package/dist/contracts/officialToolContracts.js +2 -2
- package/dist/contracts/rizinDebugToolContracts.js +3 -2
- package/dist/contracts/sessionToolContracts.js +3 -3
- package/dist/contracts/toolEffects.js +6 -2
- package/dist/contracts/toolOutputSchemaGroups.js +7 -4
- package/dist/contracts/toolOutputSchemaPrimitives.js +7 -0
- package/dist/contracts/toolSchemaMetadata.js +99 -27
- package/dist/cutter/CutterBridgeClient.js +206 -67
- package/dist/cutter/CutterBridgeService.js +52 -4
- package/dist/doctorRuntime.js +25 -4
- package/dist/domain/adb/adbDeviceAnalysis.js +19 -1
- package/dist/domain/analysisErrorBase.js +59 -2
- package/dist/domain/analysisErrorCleanup.js +3 -1
- package/dist/domain/analysisErrorCore.js +13 -0
- package/dist/domain/analysisErrorPresentation.js +23 -4
- package/dist/domain/analysisErrorProjection.js +44 -28
- package/dist/domain/analysisSearch.js +26 -0
- package/dist/domain/analysisSnapshot.js +11 -11
- package/dist/domain/analysisView/WebNetworkApiSurfaceAccumulator.js +4 -65
- package/dist/domain/analysisView/analysisView.js +25 -0
- package/dist/domain/analysisView/analysisViewDataAdmission.js +86 -0
- package/dist/domain/analysisView/artifactInventoryView.js +4 -18
- package/dist/domain/analysisView/javascriptApplicationCoverage.js +27 -0
- package/dist/domain/analysisView/javascriptApplicationView.js +100 -27
- package/dist/domain/analysisView/javascriptFactsView.js +92 -0
- package/dist/domain/analysisView/javascriptModuleReferences.js +37 -0
- package/dist/domain/analysisView/managedMemberView.js +6 -0
- package/dist/domain/android/androidApplication.js +8 -7
- package/dist/domain/apktool/apktoolResourceAnalysis.js +52 -2
- package/dist/domain/apple/appleApplication.js +41 -60
- package/dist/domain/apple/appleBundleAnatomy.js +56 -68
- package/dist/domain/apple/dylibResolution.js +5 -1
- package/dist/domain/apple/interfaceBuilderGraph.js +29 -8
- package/dist/domain/apple/interfaceBuilderKeyedArchive.js +11 -4
- package/dist/domain/apple/jvmClassFile.js +226 -0
- package/dist/domain/apple/keyedArchive.js +39 -17
- package/dist/domain/apple/machoContainer.js +3 -0
- package/dist/domain/apple/plistNumbers.js +67 -5
- package/dist/domain/apple/plistValue.js +89 -18
- package/dist/domain/artifactComparison.js +7 -5
- package/dist/domain/artifactGraph.js +4 -12
- package/dist/domain/artifactInspection.js +6 -17
- package/dist/domain/artifactInventoryEvidence.js +68 -60
- package/dist/domain/binaryTarget.js +11 -26
- package/dist/domain/binaryTargetTypes.js +10 -0
- package/dist/domain/browserNetworkEvidence.js +20 -3
- package/dist/domain/browserObservation.js +5 -28
- package/dist/domain/browserObservationError.js +4 -4
- package/dist/domain/browserScenarioCapture.js +11 -2
- package/dist/domain/browserScenarioCaptureLimits.js +34 -0
- package/dist/domain/browserScenarioCaptureValues.js +50 -0
- package/dist/domain/browserScenarioDiffEvidence.js +1 -3
- package/dist/domain/browserScenarioValues.js +5 -1
- package/dist/domain/captures/packetCapture.js +2 -1
- package/dist/domain/dosMz.js +14 -5
- package/dist/domain/electron/electronFuseEvidence.js +42 -0
- package/dist/domain/elfFixedHeader.js +24 -0
- package/dist/domain/evidence.js +7 -6
- package/dist/domain/evidenceBundle.js +9 -2
- package/dist/domain/explicitSensitiveFailure.js +3 -0
- package/dist/domain/fileSnapshotObservation.js +25 -0
- package/dist/domain/fixedTupleSchema.js +9 -0
- package/dist/domain/functionCallCoverage.js +6 -6
- package/dist/domain/functionComparisonDimensions.js +38 -11
- package/dist/domain/functionComparisonNormalization.js +17 -9
- package/dist/domain/functionDossierEvidence.js +4 -3
- package/dist/domain/harmony/harmonyApplication.js +8 -8
- package/dist/domain/hopperErrors.js +4 -2
- package/dist/domain/hopperValues.js +27 -4
- package/dist/domain/javascript/electronActiveObservation.js +1 -0
- package/dist/domain/javascript/electronStaticAnalysisBrowser.js +80 -20
- package/dist/domain/javascript/electronStaticAnalysisValues.js +0 -20
- package/dist/domain/javascript/electronStaticOptionObjects.js +45 -0
- package/dist/domain/javascript/electronWrappedCallPaths.js +70 -17
- package/dist/domain/javascript/javascriptAnalysisResourceControls.js +20 -4
- package/dist/domain/javascript/javascriptApplicationAnalysis.js +4 -0
- package/dist/domain/javascript/javascriptApplicationChangeGraph.js +3 -0
- package/dist/domain/javascript/javascriptApplicationVersionComparisonSchemas.js +3 -1
- package/dist/domain/javascript/javascriptApplicationVersionItems.js +49 -21
- package/dist/domain/javascript/javascriptAstFingerprint.js +41 -10
- package/dist/domain/javascript/javascriptAstValues.js +83 -5
- package/dist/domain/javascript/javascriptBundledRequireOrigin.js +23 -36
- package/dist/domain/javascript/javascriptCommonJsExportReceivers.js +231 -0
- package/dist/domain/javascript/javascriptElectronMemberWrites.js +14 -4
- package/dist/domain/javascript/javascriptFeatureSeed.js +1 -1
- package/dist/domain/javascript/javascriptGraphqlOperations.js +382 -0
- package/dist/domain/javascript/javascriptModuleDeclaration.js +20 -0
- package/dist/domain/javascript/javascriptNativeHandoff.js +7 -11
- package/dist/domain/javascript/javascriptRpcEndpoints.js +7 -171
- package/dist/domain/javascript/javascriptRuntimeLoadState.js +9 -4
- package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +35 -12
- package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +50 -45
- package/dist/domain/javascript/javascriptSemanticAmbientWrites.js +284 -24
- package/dist/domain/javascript/javascriptSemanticAnalysis.js +452 -182
- package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +37 -20
- package/dist/domain/javascript/javascriptSemanticCallResolution.js +55 -27
- package/dist/domain/javascript/javascriptSemanticCalls.js +4 -4
- package/dist/domain/javascript/javascriptSemanticChildProcesses.js +134 -50
- package/dist/domain/javascript/javascriptSemanticCoverage.js +5 -1
- package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +7 -13
- package/dist/domain/javascript/javascriptSemanticDataEffects.js +33 -10
- package/dist/domain/javascript/javascriptSemanticDerivedAnalysis.js +1 -1
- package/dist/domain/javascript/javascriptSemanticEvaluationOrder.js +126 -0
- package/dist/domain/javascript/javascriptSemanticExpressionShapes.js +111 -0
- package/dist/domain/javascript/javascriptSemanticGetterQueries.js +147 -0
- package/dist/domain/javascript/javascriptSemanticGetterResults.js +264 -0
- package/dist/domain/javascript/javascriptSemanticGraph.js +18 -1
- package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +13 -0
- package/dist/domain/javascript/javascriptSemanticIterationSources.js +3 -2
- package/dist/domain/javascript/javascriptSemanticMapOperations.js +51 -0
- package/dist/domain/javascript/javascriptSemanticMemberMutations.js +215 -81
- package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +395 -118
- package/dist/domain/javascript/javascriptSemanticObjectReferences.js +241 -328
- package/dist/domain/javascript/javascriptSemanticObjects.js +33 -27
- package/dist/domain/javascript/javascriptSemanticOpaqueEffects.js +163 -0
- package/dist/domain/javascript/javascriptSemanticPrimitives.js +11 -1
- package/dist/domain/javascript/javascriptSemanticProjection.js +44 -67
- package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +2 -1
- package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +1 -1
- package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +45 -7
- package/dist/domain/javascript/javascriptSemanticResourceLimits.js +3 -19
- package/dist/domain/javascript/javascriptSemanticResources.js +27 -4
- package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +78 -37
- package/dist/domain/javascript/javascriptSemanticReturns.js +2 -2
- package/dist/domain/javascript/javascriptSemanticState.js +191 -42
- package/dist/domain/javascript/javascriptSemanticValues.js +167 -41
- package/dist/domain/javascript/javascriptSourceParser.js +54 -9
- package/dist/domain/javascript/javascriptStaticAnalysis.js +24 -13
- package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +276 -16
- package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +33 -25
- package/dist/domain/javascript/javascriptStaticAnalysisState.js +3 -0
- package/dist/domain/javascript/javascriptStaticAnalysisTypes.js +1 -1
- package/dist/domain/javascript/javascriptSymbolicBindings.js +424 -142
- package/dist/domain/javascript/javascriptSymbolicControlFlow.js +4 -0
- package/dist/domain/javascript/javascriptSymbolicValues.js +12 -1
- package/dist/domain/javascript/sourceToBundleSignals.js +3 -0
- package/dist/domain/managed/managedApplicationGraphNodes.js +14 -9
- package/dist/domain/managed/managedArtifact.js +26 -0
- package/dist/domain/managed/managedMemberComparison.js +3 -0
- package/dist/domain/managed/managedMemberComparisonCoverage.js +14 -1
- package/dist/domain/managed/managedMemberComparisonItems.js +124 -52
- package/dist/domain/managed/managedMemberComparisonMatch.js +76 -72
- package/dist/domain/managed/managedMemberSignatureIdentity.js +40 -0
- package/dist/domain/managed/managedNativeVerificationMatch.js +5 -5
- package/dist/domain/managed/managedNativeVerificationSchemas.js +2 -2
- package/dist/domain/mobileApplicationGraphProjection.js +33 -18
- package/dist/domain/native/bytePattern.js +21 -0
- package/dist/domain/native/nativeAotPe.js +29 -2
- package/dist/domain/native/nativeAotSnapshotObservation.js +18 -0
- package/dist/domain/native/nativeCallPartialObservation.js +14 -12
- package/dist/domain/native/nativeLoadImage.js +13 -0
- package/dist/domain/native/objcSwiftMetadata.js +15 -8
- package/dist/domain/native/peResources.js +6 -2
- package/dist/domain/peMachine.js +2 -0
- package/dist/domain/process/processComparison.js +3 -3
- package/dist/domain/process/processTraceDimensionProjection.js +1 -1
- package/dist/domain/process/processTraceEvaluation.js +65 -24
- package/dist/domain/propertyListKeys.js +84 -69
- package/dist/domain/propertyListXml.js +149 -0
- package/dist/domain/providerAdapterError.js +2 -0
- package/dist/domain/providerCleanupError.js +2 -4
- package/dist/domain/rawBinary.js +11 -2
- package/dist/domain/reconstructionCoverage.js +35 -23
- package/dist/domain/reconstructionCoverageEvaluation.js +36 -36
- package/dist/domain/reconstructionCoverageEvidence.js +26 -0
- package/dist/domain/reconstructionVerification.js +40 -26
- package/dist/domain/referenceSourceImportParsing.js +4 -0
- package/dist/domain/referenceSourcePathIdentity.js +2 -0
- package/dist/domain/referenceSourceRequireBindings.js +40 -101
- package/dist/domain/relationshipCoverage.js +4 -5
- package/dist/domain/sqlite/sqliteDatabase.js +2 -1
- package/dist/domain/symbolAnalysis.js +9 -8
- package/dist/domain/webBundleAnalyzerInspection.js +65 -25
- package/dist/domain/webCaptureDiff.js +124 -41
- package/dist/domain/webInventory.js +28 -14
- package/dist/domain/webModuleTrace.js +22 -0
- package/dist/domain/webScriptExportError.js +2 -3
- package/dist/domain/xmlDocument.js +41 -0
- package/dist/domain/zipPackageFormat.js +0 -4
- package/dist/dotnet/ManagedArtifactInspector.js +2 -4
- package/dist/dotnet/ManagedDecodeBudget.js +21 -1
- package/dist/dotnet/ManagedMemberInspector.js +31 -6
- package/dist/dotnet/ManagedMemberInspectorCore.js +63 -12
- package/dist/dotnet/ManagedMemberRows.js +8 -8
- package/dist/dotnet/ManagedMetadataHeaps.js +0 -1
- package/dist/dotnet/ManagedMetadataLayout.js +17 -15
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +20 -19
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +7 -8
- package/dist/dotnet/ManagedPeReader.js +5 -0
- package/dist/dotnet/ManagedSnapshot.js +25 -20
- package/dist/dotnet/ManagedTypeNameDigests.js +177 -0
- package/dist/dotnet/ManagedTypeNames.js +6 -46
- package/dist/dotnet/ManagedTypeNesting.js +25 -0
- package/dist/dotnet/ManagedTypeReferences.js +94 -0
- package/dist/electron/ElectronFuseFailures.js +105 -0
- package/dist/electron/ElectronFusePath.js +4 -3
- package/dist/electron/ElectronFuseProvider.js +67 -92
- package/dist/electron/ElectronFuseReader.js +46 -30
- package/dist/evm/EvmoleFailures.js +1 -0
- package/dist/evm/EvmoleInterfaceProvider.js +13 -16
- package/dist/filesystem/OwnedRegularFile.js +116 -0
- package/dist/filesystem/OwnedStagedOutput.js +28 -11
- package/dist/filesystem/RegularFile.js +20 -8
- package/dist/filesystem/StableFileHash.js +56 -38
- package/dist/filesystem/callerPath.js +26 -0
- package/dist/filesystem/readFileHandleChunks.js +55 -5
- package/dist/filesystem/readStableFileBytes.js +85 -0
- package/dist/firmware/FirmwareCommand.js +13 -7
- package/dist/firmware/FirmwareFailures.js +56 -0
- package/dist/firmware/FirmwareFiles.js +128 -98
- package/dist/firmware/FirmwareProvider.js +120 -65
- package/dist/firmware/FirmwarePublication.js +26 -11
- package/dist/flutter/DartElf.js +27 -0
- package/dist/flutter/FlutterBuildProvider.js +44 -4
- package/dist/gdb/GdbSessionManager.js +202 -14
- package/dist/generatedPackageMetadata.js +1 -1
- package/dist/ghidra/GhidraAnalysisProfile.js +24 -10
- package/dist/ghidra/GhidraAnalysisSeeds.js +39 -55
- package/dist/ghidra/GhidraBridgeSources.js +12 -0
- package/dist/ghidra/GhidraClient.js +362 -148
- package/dist/ghidra/GhidraClientStartup.js +5 -3
- package/dist/ghidra/GhidraClientWire.js +5 -2
- package/dist/ghidra/GhidraDiagnostics.js +16 -5
- package/dist/ghidra/GhidraDoctor.js +45 -14
- package/dist/ghidra/GhidraDosSnapshot.js +83 -0
- package/dist/ghidra/GhidraExecutableHeader.js +54 -0
- package/dist/ghidra/GhidraFileArtifacts.js +93 -0
- package/dist/ghidra/GhidraFunctionValues.js +1 -0
- package/dist/ghidra/GhidraInstallation.js +143 -142
- package/dist/ghidra/GhidraInstallationPolicy.js +20 -79
- package/dist/ghidra/GhidraInstallationProperties.js +57 -0
- package/dist/ghidra/GhidraInventoryValues.js +22 -6
- package/dist/ghidra/GhidraJavaLaunch.js +11 -4
- package/dist/ghidra/GhidraJavaProbe.js +267 -0
- package/dist/ghidra/GhidraJavaProperties.js +9 -7
- package/dist/ghidra/GhidraLanguageCatalog.js +12 -7
- package/dist/ghidra/GhidraLauncher.js +128 -65
- package/dist/ghidra/GhidraLoadImageAttest.js +75 -78
- package/dist/ghidra/GhidraLoadImageValues.js +39 -29
- package/dist/ghidra/GhidraMipsProfile.js +13 -5
- package/dist/ghidra/GhidraNativeAotSnapshotOwner.js +221 -0
- package/dist/ghidra/GhidraPeProfile.js +88 -18
- package/dist/ghidra/GhidraProvider.js +219 -32
- package/dist/ghidra/GhidraProviderCapabilities.js +17 -4
- package/dist/ghidra/GhidraProviderClient.js +199 -239
- package/dist/ghidra/GhidraPspExtension.js +104 -34
- package/dist/ghidra/GhidraPspProfile.js +4 -1
- package/dist/ghidra/GhidraRawBinaryLanguage.js +13 -4
- package/dist/ghidra/GhidraReleasePolicy.js +93 -0
- package/dist/ghidra/GhidraRequestQueue.js +64 -40
- package/dist/ghidra/GhidraSessionError.js +152 -19
- package/dist/ghidra/GhidraSessionValues.js +13 -3
- package/dist/ghidra/GhidraSocketConnection.js +25 -11
- package/dist/ghidra/GhidraTargetSnapshot.js +67 -50
- package/dist/ghidra/GhidraTransport.js +86 -63
- package/dist/ghidra/extensions/GhidraExtensions.js +30 -45
- package/dist/go/GoBinaryProvider.js +89 -60
- package/dist/go/GoElfImage.js +3 -3
- package/dist/hopper/BridgeLauncher.js +43 -4
- package/dist/hopper/HopperAnalysisProfile.js +4 -2
- package/dist/hopper/HopperCleanup.js +14 -1
- package/dist/hopper/HopperClient.js +135 -63
- package/dist/hopper/HopperProvider.js +4 -7
- package/dist/hopper/HopperProviderCapabilities.js +2 -1
- package/dist/hopper/HopperRegexSearch.js +21 -60
- package/dist/ida/IdaBusyHealth.js +36 -2
- package/dist/ida/IdaMcpConnection.js +17 -11
- package/dist/ida/IdaNativeProtocol.js +1 -9
- package/dist/ida/IdaOperationRunner.js +8 -26
- package/dist/ida/IdaProtocolValues.js +2 -1
- package/dist/ida/IdaProvider.js +18 -2
- package/dist/ida/IdaSessionClient.js +54 -12
- package/dist/inspector/V8InspectorCaptureProjection.js +7 -0
- package/dist/inspector/V8InspectorProvider.js +2 -0
- package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +25 -4
- package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +4 -3
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +3 -2
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +7 -1
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +1 -1
- package/dist/javascript/recovery/RecoveryFiles.js +57 -8
- package/dist/jeb/JebMcpConnection.js +129 -70
- package/dist/jeb/JebMcpConnectionOwner.js +116 -0
- package/dist/jeb/JebMcpDeadline.js +46 -0
- package/dist/jeb/JebProvider.js +77 -51
- package/dist/kuna/KunaAddress.js +11 -0
- package/dist/kuna/KunaCommand.js +217 -0
- package/dist/kuna/KunaConfiguration.js +90 -0
- package/dist/kuna/KunaDoctor.js +198 -0
- package/dist/kuna/KunaInstallation.js +137 -0
- package/dist/kuna/KunaJson.js +23 -0
- package/dist/kuna/KunaJsonStream.js +433 -0
- package/dist/kuna/KunaLimits.js +5 -0
- package/dist/kuna/KunaProjectCache.js +804 -0
- package/dist/kuna/KunaProjectExport.js +202 -0
- package/dist/kuna/KunaProjectFiles.js +191 -0
- package/dist/kuna/KunaProjectReader.js +115 -0
- package/dist/kuna/KunaProvider.js +217 -0
- package/dist/kuna/KunaProviderCapabilities.js +102 -0
- package/dist/kuna/KunaQueryErrors.js +12 -0
- package/dist/kuna/KunaQueryWork.js +113 -0
- package/dist/kuna/KunaReferenceFiles.js +258 -0
- package/dist/kuna/KunaReferenceQueries.js +211 -0
- package/dist/kuna/KunaRelease.js +10 -0
- package/dist/kuna/KunaRunSlots.js +56 -0
- package/dist/kuna/KunaSessionClient.js +1162 -0
- package/dist/kuna/KunaStringInventory.js +145 -0
- package/dist/kuna/KunaStringQueries.js +133 -0
- package/dist/kuna/KunaTargetCommands.js +205 -0
- package/dist/kuna/KunaUnavailable.js +11 -0
- package/dist/main/processShutdown.js +17 -0
- package/dist/main/transport.js +21 -1
- package/dist/main.js +2 -12
- package/dist/mcp/AnalysisProvider-BABWbLoM.js +38 -0
- package/dist/mcp/{AnalysisSnapshotFiles-BAbiJQOc.js → AnalysisSnapshotFiles-BXz0c37-.js} +39 -28
- package/dist/mcp/{ProcessOwnership-Bl_3ejLe.js → ArtifactFileOperation-64cQKI7B.js} +274 -72
- package/dist/mcp/{ArtifactProvider-DViCU_rn.js → ArtifactProvider-Dx6pmil1.js} +371 -354
- package/dist/mcp/ArtifactProviderMetadata-UCJr2oZW.js +167 -0
- package/dist/mcp/{ArtifactReader-OyM03Gjn.js → ArtifactReader-BrnwNaKY.js} +29 -6
- package/dist/mcp/ArtifactResourceScope-zi3Dkqzy.js +175 -0
- package/dist/mcp/{AsarHeader-WsPgoooH.js → AsarHeader-B_IbppTz.js} +1 -1
- package/dist/mcp/{BinarySessionStatus-B4P9gf-S.js → BinarySessionStatus-CZ9nnXMt.js} +5 -4
- package/dist/mcp/{BinaryTargetResolver-BMaE_0H1.js → BinaryTargetResolver-BUncASDP.js} +146 -215
- package/dist/mcp/BoundedFileBytes-DYt5q9G2.js +43 -0
- package/dist/mcp/{CdpCaptureDocuments-HDiF2O7k.js → CdpCaptureDocuments-Y2uFcBpl.js} +194 -145
- package/dist/mcp/{CdpCaptureValues-M-j6CIh1.js → CdpCaptureValues-tNIg-gQK.js} +12 -5
- package/dist/mcp/{CdpConnection-BpDfz4MK.js → CdpEndpoint-BrhMhpSi.js} +352 -281
- package/dist/mcp/{CdpOptionalCommand-BPjRD9Kz.js → CdpOptionalCommand-PZZhlqxv.js} +2 -2
- package/dist/mcp/CdpTargetSession-BmmDC3XO.js +290 -0
- package/dist/mcp/{DirectAnalysis-DrafbXke.js → DirectAnalysis-B9KuCHTG.js} +29 -21
- package/dist/mcp/{DirectAnalysisStatus-CjjeDLzW.js → DirectAnalysisStatus-BgzopkIt.js} +7 -7
- package/dist/mcp/{ElectronFileScope-BPG_YoyU.js → ElectronFileScope-FXtK0d6I.js} +1 -1
- package/dist/mcp/ElectronFuseFailures-uZ_wOV6T.js +610 -0
- package/dist/mcp/MachoLoadCommandReader-C2VGgHA3.js +330 -0
- package/dist/mcp/{ManagedStaticProvider-BthZbKyZ.js → ManagedStaticProvider-CZuoPme2.js} +429 -131
- package/dist/mcp/{NativeMacOSProvider-Bh79k8dI.js → NativeMacOSProvider-CMguKrvN.js} +1376 -748
- package/dist/mcp/{NativeMacOSProviderMetadata-N1lPOaY_.js → NativeMacOSProviderMetadata-B_RH4KXF.js} +97 -7
- package/dist/mcp/{ProviderDeadline-DskQ94YD.js → OwnedCommand-BW1jBSt9.js} +436 -127
- package/dist/mcp/ProcedureAddressResolution-H6Qwpb_Y.js +59 -0
- package/dist/mcp/{WorkflowEvidence-umWrB_wm.js → WorkflowEvidence-CO4C7ALz.js} +16 -9
- package/dist/mcp/analysisErrorCleanup-Q344SnTO.js +34 -0
- package/dist/mcp/analysisErrorCore-BIEP7tvF.js +509 -0
- package/dist/mcp/{analysisErrorProjection-BN0EPM-3.js → analysisErrorProjection-B8teQwwD.js} +80 -30
- package/dist/mcp/{artifactToolContracts-Di4qZlEt.js → artifactToolContracts-C9dRDo-D.js} +6 -4
- package/dist/mcp/{browserObservation-C0s4i8UI.js → browserObservation-DUraZs62.js} +272 -107
- package/dist/mcp/{browserObservationError-CyLugqX4.js → browserObservationError-C5okJ5el.js} +27 -4
- package/dist/mcp/{browserObservationSchemas-tgqjH7aA.js → browserObservationSchemas-DwGGxBpu.js} +3 -3
- package/dist/mcp/{browserScenario-CAQ8Fns9.js → browserScenario-BRUz7yN0.js} +844 -358
- package/dist/mcp/{browserScenarioCapture-CTNFN-FI.js → browserScenarioCapture-CiMAsMx8.js} +127 -11
- package/dist/mcp/{InterfaceBuilderDecodeBudget-5F2AkxJT.js → callerPath-CpPnMZyN.js} +91 -65
- package/dist/mcp/{electronActiveObservation-lDvQTMR0.js → electronActiveObservation-DV0Ffy9X.js} +1 -0
- package/dist/mcp/electronFuses-D5SS7XXw.js +367 -0
- package/dist/mcp/{electronObservation-i7LcILQ-.js → electronObservation-DsN-NqY1.js} +134 -75
- package/dist/mcp/{electronObservation-DFOFEood.js → electronObservation-wOYWwqgF.js} +3 -3
- package/dist/mcp/{electronScenario-nCzE6IfJ.js → electronScenario-CYrt2zBK.js} +395 -135
- package/dist/mcp/{emptyArraySchema-tL6Qymyd.js → emptyArraySchema-C0o2Sxwp.js} +2 -2
- package/dist/mcp/{enhancedInputs-DgdEnzHy.js → enhancedInputs-6CCgB3VB.js} +1 -1
- package/dist/mcp/{javascriptRuntimeObservation-61NhCf7H.js → javascriptRuntimeObservation-BVbhkO2-.js} +12 -9
- package/dist/mcp/{javascriptRuntimeObservation-PIUoLfX6.js → javascriptRuntimeObservation-Cu0Yedqq.js} +2 -2
- package/dist/mcp/{lipo-Bnkoq_6W.js → lipo-DSTgUqL1.js} +11 -118
- package/dist/mcp/{logger-BQY5ulYv.js → logger-BGdGHadX.js} +2 -2
- package/dist/mcp/machoContainer-CMSxUBlK.js +605 -0
- package/dist/mcp/{main-kBXHZ8S5.js → main-Cx-Z7m_n.js} +16788 -5902
- package/dist/mcp/main.js +1 -1
- package/dist/mcp/{managedToolContracts-CK--I_s7.js → managedToolContracts-CSlbKJP-.js} +3 -3
- package/dist/mcp/{nativeValueTrace-DR9UE62L.js → nativeValueTrace-BEZbDieM.js} +2630 -2468
- package/dist/mcp/{officialToolContracts-B67NJ2tC.js → officialToolContracts-CauCcSsc.js} +74 -55
- package/dist/mcp/peMachine-aP1iYnHq.js +95 -0
- package/dist/mcp/propertyListKeys-BfCo0k4w.js +356 -0
- package/dist/mcp/providerCleanupError-DIRHxzWo.js +125 -0
- package/dist/mcp/{providerOperationHealth-CTYa3iLf.js → providerOperationHealth-9DRSGM8N.js} +24 -1
- package/dist/mcp/{scanCanonical-CRXSpule.js → scanCanonical-CF3ATd1V.js} +269 -463
- package/dist/mcp/{serverIdentity-Cio4iFV3.js → serverIdentity-BK0Ejd_Y.js} +262 -83
- package/dist/mcp/{sourceMapEnvelope-C0uJlrOh.js → sourceMapEnvelope-DAaRUIGj.js} +4 -4
- package/dist/mcp/{toolContracts-BW05wpcr.js → toolContracts-BPoHQdlC.js} +541 -327
- package/dist/mcp/{toolOutputSchemaGroups-ColvNZ1r.js → toolOutputSchemaGroups-MJ_f-PMK.js} +2551 -2354
- package/dist/mcp/{webContentArtifact-Dzjc1z-R.js → webContentArtifact-DfGkgDcI.js} +2 -17
- package/dist/mcp/{webRuntime-K__NYzXm.js → webRuntime-ccyhkRru.js} +2 -2
- package/dist/mcp/{webSourceLocation-DbMAT2J9.js → webSourceLocation-DKIum0vJ.js} +6451 -4414
- package/dist/mcpDoctor.js +4 -2
- package/dist/mcpStartupPolicy.js +18 -3
- package/dist/native/AppleDispatchMetadata.js +76 -27
- package/dist/native/AppleMachoFixups.js +20 -10
- package/dist/native/AppleObjcCategories.js +12 -1
- package/dist/native/AppleObjcDispatchFacets.js +21 -12
- package/dist/native/AppleObjcProperties.js +61 -17
- package/dist/native/AppleObjcProtocols.js +25 -7
- package/dist/native/AppleSwiftVtables.js +2 -0
- package/dist/native/CommandRunner.js +13 -9
- package/dist/native/LldbCallTracer.js +232 -178
- package/dist/native/LldbReadbackFiles.js +70 -0
- package/dist/native/LldbRetainedObservations.js +28 -56
- package/dist/native/NativeCallObservation.js +53 -52
- package/dist/native/NativeCallTarget.js +95 -0
- package/dist/native/NativeMacOSProvider.js +240 -171
- package/dist/native/NativeMachoInspection.js +21 -7
- package/dist/native/NativePlistSource.js +179 -0
- package/dist/native/NativeUiCleanupError.js +30 -0
- package/dist/native/NativeUiHelperRuntime.js +48 -35
- package/dist/native/NativeUiObservation.js +67 -45
- package/dist/native/SignatureTargetBinding.js +72 -53
- package/dist/native/parsers/demangle.js +16 -12
- package/dist/native/parsers/machoUuid.js +4 -4
- package/dist/native/parsers/otool.js +57 -17
- package/dist/native/parsers/plist.js +40 -25
- package/dist/native/pe/PeResourceLayout.js +22 -7
- package/dist/native/pe/PeResourceParser.js +10 -9
- package/dist/native/pe/PeResourcesProvider.js +63 -16
- package/dist/native/pwndbg/CoreFileMappingAuthority.js +51 -0
- package/dist/native/pwndbg/PwndbgCoreContext.js +26 -15
- package/dist/native/pwntools/PwntoolsDecoder.js +116 -53
- package/dist/native/pwntools/PwntoolsFailures.js +17 -3
- package/dist/native/pwntools/PwntoolsRecordedCrashProvider.js +11 -1
- package/dist/objdump/ObjdumpCommand.js +5 -2
- package/dist/pcap/PcapOutput.js +38 -2
- package/dist/pcap/PcapProvider.js +45 -15
- package/dist/pcap/PcapSnapshot.js +24 -4
- package/dist/process/ArtifactAnalysisResources.js +145 -52
- package/dist/process/BoundedFileBytes.js +8 -3
- package/dist/process/CurrentEntrypointPath.js +3 -1
- package/dist/process/DarwinProcessRunTokenReader.js +174 -63
- package/dist/process/DetachedPgpSignature.js +57 -0
- package/dist/process/ExecFileOutput.js +14 -11
- package/dist/{hopper/HopperTargetLease.js → process/HopperLease.js} +10 -0
- package/dist/process/LinuxResourceLimits.js +4 -24
- package/dist/process/OwnedCommand.js +109 -14
- package/dist/process/ProviderProcess.js +129 -10
- package/dist/process/RegexMatcher.js +96 -0
- package/dist/process/SharedStartupAttempt.js +59 -0
- package/dist/process/WindowsAuthority.js +1 -1
- package/dist/process/capture/FilesystemSnapshot.js +3 -2
- package/dist/process/capture/ProcessCaptureError.js +55 -17
- package/dist/process/capture/ProcessCaptureLifecycle.js +17 -20
- package/dist/process/capture/ProcessCaptureProgress.js +5 -3
- package/dist/process/capture/ProcessHarness.js +17 -3
- package/dist/process/snapshotEnvironment.js +8 -8
- package/dist/{application/binary → providers}/AnalysisClientCleanup.js +3 -3
- package/dist/providers/AnalysisClientCreation.js +193 -0
- package/dist/providers/AnalysisClientFailure.js +191 -0
- package/dist/providers/DeferredAnalysisClient.js +48 -0
- package/dist/providers/OwnedCommandCleanup.js +65 -0
- package/dist/providers/ProviderInspectionScope.js +10 -0
- package/dist/recordedCatalogDigests.js +2 -0
- package/dist/reference/ReferenceSourceReader.js +64 -0
- package/dist/reference/ReferenceSourceReaderEntries.js +12 -3
- package/dist/reference/ReferenceSourceReaderFile.js +2 -1
- package/dist/rizin/RizinCommand.js +2 -2
- package/dist/rizin/RizinDebugSessionManager.js +249 -210
- package/dist/rust/RustBinaryProvider.js +55 -23
- package/dist/server/EvidenceMcpServer.js +2 -2
- package/dist/server/contractToolHandler.js +17 -11
- package/dist/server/createServer.js +27 -8
- package/dist/server/promptCompletion.js +24 -22
- package/dist/server/registerArtifactComparisonTool.js +13 -2
- package/dist/server/registerBrowserScenarioTool.js +7 -5
- package/dist/server/registerBrowserTools.js +2 -4
- package/dist/server/registerCutterTools.js +2 -3
- package/dist/server/registerElectronTools.js +2 -13
- package/dist/server/registerFridaTools.js +8 -12
- package/dist/server/registerInvestigationTools.js +20 -20
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +2 -4
- package/dist/server/registerManagedWorkflowTools/evidence.js +14 -7
- package/dist/server/registerProcessComparisonTool.js +3 -0
- package/dist/server/registerSessionStatusTool.js +13 -6
- package/dist/server/registerSessionTools.js +16 -29
- package/dist/server/runDerivedOperation.js +2 -0
- package/dist/signals/SigrokRecordingProvider.js +13 -6
- package/dist/sqlite/SqliteDatabaseFailures.js +25 -12
- package/dist/sqlite/SqliteDatabaseInspection.js +27 -12
- package/dist/sqlite/SqliteDatabaseSnapshot.js +58 -32
- package/dist/sqlite/SqliteDatabaseWorkerExecution.js +18 -3
- package/dist/wasm/WabtArtifactProvider.js +64 -42
- package/dist/wasm/WabtFailures.js +19 -1
- package/dist/wasm/WabtRuntime.js +58 -0
- package/dist/wasm/WasmGlueAdapter.js +20 -7
- package/dist/windows/WindowsNativeLoader.js +16 -2
- package/dist/windows/WindowsPrivateRuntime.js +44 -1
- package/licenses/npm-dependencies.txt +146 -1
- package/licenses/npm-runtime-notices.txt +175 -1
- package/native/windows/README.md +44 -7
- package/native/windows/build/manifest.json +2 -2
- package/native/windows/build/rea-windows-x64.node +0 -0
- package/package.json +11 -3
- package/scripts/electron-active-hook-boundaries.cjs +15 -2
- package/scripts/electron-active-hook.cjs +408 -46
- package/scripts/hopper-demo-x11.py +12 -10
- package/scripts/rea.mjs +62 -15
- package/skills/reverse-engineer-anything/SKILL.md +21 -7
- package/skills/reverse-engineer-anything/references/android-applications.md +3 -1
- package/skills/reverse-engineer-anything/references/javascript-applications.md +44 -1
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +30 -10
- package/dist/cli-runtime/ArtifactResourceScope-DQWTcUwE.js +0 -114
- package/dist/cli-runtime/ClientConfigPath-c6jr6INc.js +0 -36
- package/dist/cli-runtime/IdaConfiguration-CtGP7EKo.js +0 -1094
- package/dist/cli-runtime/JebMcpEndpoint-DUytrn5G.js +0 -428
- package/dist/cli-runtime/MacHopperPaths-CwL5lYPX.js +0 -434
- package/dist/cli-runtime/OwnedCommand-Cj9GhmPR.js +0 -112
- package/dist/cli-runtime/RegularFile-B_6KPCNQ.js +0 -139
- package/dist/cli-runtime/RegularFileRead-DVlC5faM.js +0 -125
- package/dist/cli-runtime/analysisErrorPresentation-DGt7TdsH.js +0 -497
- package/dist/cli-runtime/application__javascript__ElectronObservationService-DEsR8KDN.js +0 -63
- package/dist/cli-runtime/artifactOperationError-B7n03FbD.js +0 -27
- package/dist/cli-runtime/browserObservationError-Dx6xRTjb.js +0 -40
- package/dist/cli-runtime/cliResultOutput-DsRMI8CJ.js +0 -780
- package/dist/cli-runtime/mcpStartupPolicy-CVVSOmRc.js +0 -21
- package/dist/cli-runtime/propertyListKeys-G8e74YWb.js +0 -248
- package/dist/cli-runtime/providerAdapterError-DAjhICdr.js +0 -25
- package/dist/cli-runtime/readFileHandleChunks-dp60iZ6v.js +0 -38
- package/dist/hopper/HopperRegexWorker.js +0 -27
- package/dist/mcp/ArtifactProviderMetadata-b7pOK5_t.js +0 -76
- package/dist/mcp/ArtifactResourceScope-P3tq5z8Z.js +0 -162
- package/dist/mcp/BoundedFileBytes-DuczXiQZ.js +0 -68
- package/dist/mcp/CdpTargetSession-BsPoKhEU.js +0 -86
- package/dist/mcp/ProcedureAddressResolution-CQpuwm1h.js +0 -19
- package/dist/mcp/analysisErrorCore-DXRTvF_m.js +0 -235
- package/dist/mcp/artifactOperationError-CkHMMaf7.js +0 -27
- package/dist/mcp/digests-BFoWUT_-.js +0 -223
- package/dist/mcp/propertyListKeys-DD25WsjI.js +0 -553
- package/dist/mcp/providerAdapterError-sDxToNal.js +0 -25
- package/dist/mcp/unicodeCodePointOrder-BezCbTpg.js +0 -26
|
@@ -140,6 +140,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
140
140
|
"params"
|
|
141
141
|
);
|
|
142
142
|
private static final String[] CAPABILITIES = {
|
|
143
|
+
"read_binary_inventory_summary",
|
|
143
144
|
"annotate_native_function",
|
|
144
145
|
"set_address_name",
|
|
145
146
|
"set_addresses_names",
|
|
@@ -427,6 +428,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
427
428
|
);
|
|
428
429
|
}
|
|
429
430
|
return switch (request.method) {
|
|
431
|
+
case "read_binary_inventory_summary" -> binaryInventorySummary(request.params);
|
|
430
432
|
case "inspect_native_load_image" -> inspectNativeLoadImage(request.params);
|
|
431
433
|
case "read_bytes" -> readMemoryBytes(request.params);
|
|
432
434
|
case "search_bytes" -> searchMemoryBytes(request.params, descriptor);
|
|
@@ -934,7 +936,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
934
936
|
String value = decompiledText(decompile(function));
|
|
935
937
|
JsonObject result = functionObservation(
|
|
936
938
|
value == null ? JsonNull.INSTANCE : GSON.toJsonTree(value),
|
|
937
|
-
|
|
939
|
+
functionBoundaryLimitations(
|
|
938
940
|
function,
|
|
939
941
|
currentProgram.getListing().getInstructions(function.getBody(), true)
|
|
940
942
|
)
|
|
@@ -1027,7 +1029,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1027
1029
|
InstructionScan scan = scanInstructions(function, Integer.MAX_VALUE);
|
|
1028
1030
|
return functionObservation(
|
|
1029
1031
|
GSON.toJsonTree(renderAssembly(scan.instructions)),
|
|
1030
|
-
|
|
1032
|
+
functionBoundaryLimitations(function, scan.instructions)
|
|
1031
1033
|
);
|
|
1032
1034
|
}
|
|
1033
1035
|
|
|
@@ -1046,7 +1048,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1046
1048
|
limitations.add(
|
|
1047
1049
|
"The fast path does not invoke the decompiler or scan whole-program names and strings."
|
|
1048
1050
|
);
|
|
1049
|
-
List<String> boundaryLimitations =
|
|
1051
|
+
List<String> boundaryLimitations = functionBoundaryLimitations(function, scan.instructions);
|
|
1050
1052
|
for (String limitation : boundaryLimitations) limitations.add(limitation);
|
|
1051
1053
|
JsonObject result = new JsonObject();
|
|
1052
1054
|
result.add("procedure", procedureIdentity(function));
|
|
@@ -1069,7 +1071,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1069
1071
|
result.add(canonicalAddress(item.getEntryPoint()));
|
|
1070
1072
|
}
|
|
1071
1073
|
if (callers) {
|
|
1072
|
-
JsonObject observation = functionObservation(result,
|
|
1074
|
+
JsonObject observation = functionObservation(result, functionBoundaryLimitations(function,
|
|
1073
1075
|
currentProgram.getListing().getInstructions(function.getBody(), true)
|
|
1074
1076
|
));
|
|
1075
1077
|
observation.add("relationship_coverage", callRelationshipCoverage(null,
|
|
@@ -1099,7 +1101,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1099
1101
|
result.add("classification", functionClassification(function));
|
|
1100
1102
|
return functionObservation(
|
|
1101
1103
|
result,
|
|
1102
|
-
|
|
1104
|
+
functionBoundaryLimitations(
|
|
1103
1105
|
function,
|
|
1104
1106
|
currentProgram.getListing().getInstructions(function.getBody(), true)
|
|
1105
1107
|
)
|
|
@@ -1131,12 +1133,22 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1131
1133
|
result.addProperty("direction", direction);
|
|
1132
1134
|
result.add("references", edges);
|
|
1133
1135
|
result.addProperty("reference_kinds_available", true);
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
+
List<String> limitations;
|
|
1137
|
+
JsonArray unresolvedCalls = new JsonArray();
|
|
1138
|
+
if (direction.equals("outgoing")) {
|
|
1139
|
+
CallBoundaryObservation calls = callBoundaryObservation(
|
|
1136
1140
|
function, currentProgram.getListing().getInstructions(function.getBody(), true), null, true, references
|
|
1137
|
-
)
|
|
1141
|
+
);
|
|
1142
|
+
unresolvedCalls = calls.unresolvedCalls();
|
|
1143
|
+
limitations = calls.limitations();
|
|
1144
|
+
} else {
|
|
1145
|
+
limitations = functionBoundaryLimitations(
|
|
1146
|
+
function,
|
|
1147
|
+
currentProgram.getListing().getInstructions(function.getBody(), true)
|
|
1148
|
+
);
|
|
1149
|
+
}
|
|
1138
1150
|
result.add("unresolved_calls", unresolvedCalls);
|
|
1139
|
-
return result;
|
|
1151
|
+
return functionObservation(result, limitations);
|
|
1140
1152
|
}
|
|
1141
1153
|
|
|
1142
1154
|
private JsonObject inspectNativeDataType(JsonObject params) throws Exception {
|
|
@@ -1337,11 +1349,7 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1337
1349
|
result.add("references", references);
|
|
1338
1350
|
if (includeIncoming) {
|
|
1339
1351
|
TreeMap<String, Reference> incoming = new TreeMap<>();
|
|
1340
|
-
|
|
1341
|
-
while (incomingIterator.hasNext()) {
|
|
1342
|
-
monitor.checkCancelled();
|
|
1343
|
-
addReference(incoming, incomingIterator.next());
|
|
1344
|
-
}
|
|
1352
|
+
visitObservedReferencesTo(address, reference -> addReference(incoming, reference));
|
|
1345
1353
|
List<Reference> orderedIncoming = new ArrayList<>(incoming.values());
|
|
1346
1354
|
orderedIncoming.sort(REFERENCE_ORDER);
|
|
1347
1355
|
JsonArray incomingReferences = new JsonArray();
|
|
@@ -1393,16 +1401,8 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1393
1401
|
requireKeys(params, Set.of("document", "address"));
|
|
1394
1402
|
requireDocument(params);
|
|
1395
1403
|
Address address = requireAddress(params, "address");
|
|
1396
|
-
ReferenceIterator references = currentProgram.getReferenceManager().getReferencesTo(address);
|
|
1397
1404
|
Set<Address> sources = new HashSet<>();
|
|
1398
|
-
|
|
1399
|
-
monitor.checkCancelled();
|
|
1400
|
-
Reference reference = references.next();
|
|
1401
|
-
if (reference.isEntryPointReference()) {
|
|
1402
|
-
continue;
|
|
1403
|
-
}
|
|
1404
|
-
sources.add(reference.getFromAddress());
|
|
1405
|
-
}
|
|
1405
|
+
visitObservedReferencesTo(address, reference -> sources.add(reference.getFromAddress()));
|
|
1406
1406
|
List<Address> ordered = new ArrayList<>(sources);
|
|
1407
1407
|
ordered.sort(Address::compareTo);
|
|
1408
1408
|
JsonArray result = new JsonArray();
|
|
@@ -1976,6 +1976,18 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
1976
1976
|
return result;
|
|
1977
1977
|
}
|
|
1978
1978
|
|
|
1979
|
+
private JsonObject binaryInventorySummary(JsonObject params) throws Exception {
|
|
1980
|
+
requireKeys(params, Set.of());
|
|
1981
|
+
JsonObject result = new JsonObject();
|
|
1982
|
+
result.addProperty("document", currentProgram.getName());
|
|
1983
|
+
result.add("segments", segments());
|
|
1984
|
+
// Count the owning inventories, preserving their exact discovery rules
|
|
1985
|
+
// without serializing function identities or string values for counts.
|
|
1986
|
+
result.addProperty("procedure_count", procedures().size());
|
|
1987
|
+
result.addProperty("string_count", strings().size());
|
|
1988
|
+
return result;
|
|
1989
|
+
}
|
|
1990
|
+
|
|
1979
1991
|
private JsonArray listNames(JsonObject params) throws Exception {
|
|
1980
1992
|
requireKeys(params, Set.of("document", "address"));
|
|
1981
1993
|
requireDocument(params);
|
|
@@ -2002,6 +2014,10 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
2002
2014
|
private JsonArray listSegments(JsonObject params) {
|
|
2003
2015
|
requireKeys(params, Set.of("document"));
|
|
2004
2016
|
requireDocument(params);
|
|
2017
|
+
return segments();
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
private JsonArray segments() {
|
|
2005
2021
|
JsonArray result = new JsonArray();
|
|
2006
2022
|
String imageBase = canonicalAddress(currentProgram.getImageBase());
|
|
2007
2023
|
MemoryBlock[] blocks = currentProgram.getMemory().getBlocks();
|
|
@@ -3430,51 +3446,27 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
3430
3446
|
return omitted[0];
|
|
3431
3447
|
}
|
|
3432
3448
|
|
|
3433
|
-
private List<String>
|
|
3449
|
+
private List<String> functionBoundaryLimitations(
|
|
3434
3450
|
Function function, Iterable<Instruction> instructions)
|
|
3435
3451
|
throws Exception {
|
|
3436
|
-
|
|
3437
|
-
Instruction
|
|
3438
|
-
|
|
3439
|
-
for (Instruction instruction : instructions) {
|
|
3440
|
-
monitor.checkCancelled();
|
|
3441
|
-
String limitation = terminalCallLimitation(instruction);
|
|
3442
|
-
if (limitation != null) limitations.add(limitation);
|
|
3443
|
-
if (beforePrevious != null && previous != null) {
|
|
3444
|
-
String seh = borlandSehHandlerLimitation(
|
|
3445
|
-
function, beforePrevious, previous, instruction);
|
|
3446
|
-
if (seh != null) limitations.add(seh);
|
|
3447
|
-
}
|
|
3448
|
-
beforePrevious = previous;
|
|
3449
|
-
previous = instruction;
|
|
3450
|
-
}
|
|
3451
|
-
return limitations;
|
|
3452
|
+
FunctionBoundaryLimitations boundary = new FunctionBoundaryLimitations(function);
|
|
3453
|
+
for (Instruction instruction : instructions) boundary.observe(instruction);
|
|
3454
|
+
return boundary.values();
|
|
3452
3455
|
}
|
|
3453
3456
|
|
|
3454
3457
|
private CallBoundaryObservation callBoundaryObservation(
|
|
3455
3458
|
Function function, Iterable<Instruction> instructions, Set<Function> returnedCallees,
|
|
3456
3459
|
boolean includeUnresolvedSites, List<Reference> observedReferences)
|
|
3457
3460
|
throws Exception {
|
|
3458
|
-
|
|
3461
|
+
FunctionBoundaryLimitations boundary = new FunctionBoundaryLimitations(function);
|
|
3459
3462
|
CallBoundaryReferences calls = new CallBoundaryReferences(returnedCallees, includeUnresolvedSites);
|
|
3460
|
-
Instruction beforePrevious = null;
|
|
3461
|
-
Instruction previous = null;
|
|
3462
3463
|
if (observedReferences == null) visitReferences(function, "outgoing", calls::observe);
|
|
3463
3464
|
else for (Reference reference : observedReferences) {
|
|
3464
3465
|
monitor.checkCancelled();
|
|
3465
3466
|
calls.observe(reference);
|
|
3466
3467
|
}
|
|
3467
3468
|
for (Instruction instruction : instructions) {
|
|
3468
|
-
|
|
3469
|
-
String limitation = terminalCallLimitation(instruction);
|
|
3470
|
-
if (limitation != null) limitations.add(limitation);
|
|
3471
|
-
if (beforePrevious != null && previous != null) {
|
|
3472
|
-
String seh = borlandSehHandlerLimitation(
|
|
3473
|
-
function, beforePrevious, previous, instruction);
|
|
3474
|
-
if (seh != null) limitations.add(seh);
|
|
3475
|
-
}
|
|
3476
|
-
beforePrevious = previous;
|
|
3477
|
-
previous = instruction;
|
|
3469
|
+
boundary.observe(instruction);
|
|
3478
3470
|
if (!instruction.getFlowType().isCall()) continue;
|
|
3479
3471
|
boolean destination = false;
|
|
3480
3472
|
for (Reference reference : instruction.getReferencesFrom()) {
|
|
@@ -3488,10 +3480,38 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
3488
3480
|
"Instruction decoder identifies a call but ReferenceManager supplies no call destination");
|
|
3489
3481
|
}
|
|
3490
3482
|
}
|
|
3491
|
-
return new CallBoundaryObservation(
|
|
3483
|
+
return new CallBoundaryObservation(boundary.values(),
|
|
3492
3484
|
returnedCallees == null ? null : calls.unrepresented, calls.unresolvedCalls());
|
|
3493
3485
|
}
|
|
3494
3486
|
|
|
3487
|
+
private final class FunctionBoundaryLimitations {
|
|
3488
|
+
private final Function function;
|
|
3489
|
+
private final List<String> limitations = new ArrayList<>();
|
|
3490
|
+
private Instruction beforePrevious;
|
|
3491
|
+
private Instruction previous;
|
|
3492
|
+
|
|
3493
|
+
private FunctionBoundaryLimitations(Function function) {
|
|
3494
|
+
this.function = function;
|
|
3495
|
+
}
|
|
3496
|
+
|
|
3497
|
+
private void observe(Instruction instruction) throws Exception {
|
|
3498
|
+
monitor.checkCancelled();
|
|
3499
|
+
String limitation = terminalCallLimitation(instruction);
|
|
3500
|
+
if (limitation != null) limitations.add(limitation);
|
|
3501
|
+
if (beforePrevious != null && previous != null) {
|
|
3502
|
+
String seh = borlandSehHandlerLimitation(
|
|
3503
|
+
function, beforePrevious, previous, instruction);
|
|
3504
|
+
if (seh != null) limitations.add(seh);
|
|
3505
|
+
}
|
|
3506
|
+
beforePrevious = previous;
|
|
3507
|
+
previous = instruction;
|
|
3508
|
+
}
|
|
3509
|
+
|
|
3510
|
+
private List<String> values() {
|
|
3511
|
+
return List.copyOf(limitations);
|
|
3512
|
+
}
|
|
3513
|
+
}
|
|
3514
|
+
|
|
3495
3515
|
private String borlandSehHandlerLimitation(
|
|
3496
3516
|
Function function, Instruction handlerPush, Instruction framePush,
|
|
3497
3517
|
Instruction frameLink) {
|
|
@@ -3673,24 +3693,36 @@ public final class ReaGhidraBridge extends HeadlessScript {
|
|
|
3673
3693
|
monitor.checkCancelled();
|
|
3674
3694
|
Address address = addresses.next();
|
|
3675
3695
|
if (outgoing) {
|
|
3676
|
-
|
|
3677
|
-
.getReferencesFrom(address)) {
|
|
3678
|
-
monitor.checkCancelled();
|
|
3679
|
-
if (!reference.isEntryPointReference()) visitor.accept(reference);
|
|
3680
|
-
}
|
|
3696
|
+
visitObservedReferencesFrom(address, visitor);
|
|
3681
3697
|
}
|
|
3682
3698
|
else {
|
|
3683
|
-
|
|
3684
|
-
.getReferencesTo(address);
|
|
3685
|
-
while (iterator.hasNext()) {
|
|
3686
|
-
monitor.checkCancelled();
|
|
3687
|
-
Reference reference = iterator.next();
|
|
3688
|
-
if (!reference.isEntryPointReference()) visitor.accept(reference);
|
|
3689
|
-
}
|
|
3699
|
+
visitObservedReferencesTo(address, visitor);
|
|
3690
3700
|
}
|
|
3691
3701
|
}
|
|
3692
3702
|
}
|
|
3693
3703
|
|
|
3704
|
+
private void visitObservedReferencesFrom(Address address, ReferenceVisitor visitor)
|
|
3705
|
+
throws Exception {
|
|
3706
|
+
for (Reference reference : currentProgram.getReferenceManager().getReferencesFrom(address)) {
|
|
3707
|
+
monitor.checkCancelled();
|
|
3708
|
+
visitObservedReference(reference, visitor);
|
|
3709
|
+
}
|
|
3710
|
+
}
|
|
3711
|
+
|
|
3712
|
+
private void visitObservedReferencesTo(Address address, ReferenceVisitor visitor)
|
|
3713
|
+
throws Exception {
|
|
3714
|
+
ReferenceIterator references = currentProgram.getReferenceManager().getReferencesTo(address);
|
|
3715
|
+
while (references.hasNext()) {
|
|
3716
|
+
monitor.checkCancelled();
|
|
3717
|
+
visitObservedReference(references.next(), visitor);
|
|
3718
|
+
}
|
|
3719
|
+
}
|
|
3720
|
+
|
|
3721
|
+
private static void visitObservedReference(Reference reference, ReferenceVisitor visitor)
|
|
3722
|
+
throws Exception {
|
|
3723
|
+
if (!reference.isEntryPointReference()) visitor.accept(reference);
|
|
3724
|
+
}
|
|
3725
|
+
|
|
3694
3726
|
private static void addReference(TreeMap<String, Reference> observed, Reference reference) {
|
|
3695
3727
|
String key = canonicalAddress(reference.getFromAddress()) + "\u0000" +
|
|
3696
3728
|
canonicalAddress(reference.getToAddress()) + "\u0000" +
|
package/bridge/hopper_bridge.py
CHANGED
|
@@ -1057,6 +1057,10 @@ def _serve_connection(connection):
|
|
|
1057
1057
|
):
|
|
1058
1058
|
raise PermissionError("Invalid bridge capability")
|
|
1059
1059
|
authenticated = True
|
|
1060
|
+
# The connection grace period only bounds unauthenticated idle
|
|
1061
|
+
# clients. Native analysis and a connected owner's idle time
|
|
1062
|
+
# remain unbounded after capability validation.
|
|
1063
|
+
connection.settimeout(None)
|
|
1060
1064
|
_write_message(file, {"id": request_id, "event": {
|
|
1061
1065
|
"type": "progress",
|
|
1062
1066
|
"phase": "hopper_bridge",
|
|
@@ -1148,13 +1152,17 @@ def _run():
|
|
|
1148
1152
|
server.bind(REA_SOCKET)
|
|
1149
1153
|
os.chmod(REA_SOCKET, 0o600)
|
|
1150
1154
|
server.listen(1)
|
|
1155
|
+
# A bridge can start after its caller's startup/cleanup deadline. Bound
|
|
1156
|
+
# the first accept as well as reconnects so an orphan cannot pin Hopper's
|
|
1157
|
+
# dedicated Python thread and prevent later documents from starting REA.
|
|
1158
|
+
server.settimeout(REA_RECONNECT_TIMEOUT_SECONDS)
|
|
1151
1159
|
try:
|
|
1152
1160
|
while True:
|
|
1153
1161
|
try:
|
|
1154
1162
|
connection, _ = server.accept()
|
|
1155
1163
|
except socket.timeout:
|
|
1156
1164
|
break
|
|
1157
|
-
connection.settimeout(
|
|
1165
|
+
connection.settimeout(REA_RECONNECT_TIMEOUT_SECONDS)
|
|
1158
1166
|
if _serve_connection(connection):
|
|
1159
1167
|
break
|
|
1160
1168
|
# Match REA's cleanup handshake budget without pinning Hopper's
|
|
@@ -555,6 +555,38 @@ def _failed_launch_description(process):
|
|
|
555
555
|
return None
|
|
556
556
|
|
|
557
557
|
|
|
558
|
+
def _retire_failed_launch(process, config, listener, stdout, stderr):
|
|
559
|
+
"""Reconcile an SBProcess returned alongside a failed Launch error."""
|
|
560
|
+
if not process.IsValid():
|
|
561
|
+
stdout.close()
|
|
562
|
+
stderr.close()
|
|
563
|
+
return False
|
|
564
|
+
|
|
565
|
+
pid = process.GetProcessID()
|
|
566
|
+
if pid > 0:
|
|
567
|
+
# Even an already-exited process needs its PID published so the host
|
|
568
|
+
# can distinguish a completed launch failure from an unknown target.
|
|
569
|
+
with open(config["pid_path"], "w") as handle:
|
|
570
|
+
handle.write(str(pid))
|
|
571
|
+
|
|
572
|
+
if process.GetState() != lldb.eStateExited:
|
|
573
|
+
stdout.mark_launched()
|
|
574
|
+
stderr.mark_launched()
|
|
575
|
+
if pid > 0:
|
|
576
|
+
# Hold a surviving target until the host has captured its start
|
|
577
|
+
# identity. If that proof is unavailable, Kill still addresses
|
|
578
|
+
# this exact SBProcess created by the current launch request.
|
|
579
|
+
_wait_for_identity_ack(config)
|
|
580
|
+
process.Kill()
|
|
581
|
+
_wait_for_exit(listener, process, 5)
|
|
582
|
+
|
|
583
|
+
exit_observed = process.GetState() == lldb.eStateExited
|
|
584
|
+
expected_exit = exit_observed
|
|
585
|
+
stdout.close(expected_exit=expected_exit)
|
|
586
|
+
stderr.close(expected_exit=expected_exit)
|
|
587
|
+
return exit_observed
|
|
588
|
+
|
|
589
|
+
|
|
558
590
|
def trace(debugger, config):
|
|
559
591
|
global _TRACE_CONTEXT
|
|
560
592
|
debugger.SetAsync(True)
|
|
@@ -630,8 +662,9 @@ def trace(debugger, config):
|
|
|
630
662
|
)
|
|
631
663
|
process = target.Launch(_launch_info(target, config, listener), error)
|
|
632
664
|
if not error.Success() or not process.IsValid():
|
|
633
|
-
|
|
634
|
-
|
|
665
|
+
exit_observed = _retire_failed_launch(
|
|
666
|
+
process, config, listener, stdout, stderr
|
|
667
|
+
)
|
|
635
668
|
return {
|
|
636
669
|
"status": "launch-error",
|
|
637
670
|
"error": error.GetCString(),
|
|
@@ -640,15 +673,26 @@ def trace(debugger, config):
|
|
|
640
673
|
if process.IsValid()
|
|
641
674
|
else {}
|
|
642
675
|
),
|
|
676
|
+
**(
|
|
677
|
+
{"target_process_exit_observed": True}
|
|
678
|
+
if exit_observed
|
|
679
|
+
else {}
|
|
680
|
+
),
|
|
643
681
|
}
|
|
644
682
|
launch_failure = _failed_launch_description(process)
|
|
645
683
|
if launch_failure is not None:
|
|
646
|
-
|
|
647
|
-
|
|
684
|
+
exit_observed = _retire_failed_launch(
|
|
685
|
+
process, config, listener, stdout, stderr
|
|
686
|
+
)
|
|
648
687
|
return {
|
|
649
688
|
"status": "launch-error",
|
|
650
689
|
"error": launch_failure,
|
|
651
690
|
"target_process_created": True,
|
|
691
|
+
**(
|
|
692
|
+
{"target_process_exit_observed": True}
|
|
693
|
+
if exit_observed
|
|
694
|
+
else {}
|
|
695
|
+
),
|
|
652
696
|
}
|
|
653
697
|
stdout.mark_launched()
|
|
654
698
|
stderr.mark_launched()
|
|
@@ -20,8 +20,9 @@ def inspect(request):
|
|
|
20
20
|
root = Path(os.environ["REA_CORE_CONTEXT_REQUEST"]).parent
|
|
21
21
|
empty = root / "no-libraries"
|
|
22
22
|
empty.mkdir(mode=0o700)
|
|
23
|
-
for command in ["set auto-load off", "set debuginfod enabled off", "set auto-solib-add off", "set history save off", "set pagination off",
|
|
24
|
-
"set sysroot ./no-libraries", "set solib-search-path ./no-libraries"
|
|
23
|
+
for command in ["set auto-load off", "set debuginfod enabled off", "set auto-solib-add off", "set history save off", "set pagination off", "set target-file-system-kind unix",
|
|
24
|
+
"set sysroot ./no-libraries", "set solib-search-path ./no-libraries",
|
|
25
|
+
"set debug-file-directory ./no-libraries"]:
|
|
25
26
|
gdb.execute(command, to_string=True)
|
|
26
27
|
entry = request["gdbinit"]
|
|
27
28
|
try:
|
|
@@ -38,7 +39,19 @@ def inspect(request):
|
|
|
38
39
|
# relative filename in the owned cwd so no selected path becomes GDB syntax.
|
|
39
40
|
if Path(request["snapshot_path"]) != root.parent / "object.snapshot":
|
|
40
41
|
raise ContextFailure("decoder", "Core context request did not select the shared owned snapshot.")
|
|
42
|
+
# GDB 16 searches AT_EXECFN/NT_FILE outside sysroot when no executable BFD
|
|
43
|
+
# is selected. Occupy that slot with the already running, owned debugger;
|
|
44
|
+
# exec-file loads no symbols and never runs it. Clear it before any query.
|
|
45
|
+
# /proc/self/exe identifies this process, not the core's historical PID.
|
|
46
|
+
architecture = {"x86_64-little-endian": "i386:x86-64", "aarch64-little-endian": "aarch64"}.get(request["architecture"])
|
|
47
|
+
if architecture is None:
|
|
48
|
+
raise ContextFailure("unsupported", "Unsupported recorded core architecture.")
|
|
49
|
+
gdb.execute("exec-file /proc/self/exe", to_string=True)
|
|
50
|
+
# The placeholder must not select the core's architecture. Reuse the
|
|
51
|
+
# decoder's validated profile, including for cross-architecture GDB builds.
|
|
52
|
+
gdb.execute("set architecture " + architecture, to_string=True)
|
|
41
53
|
gdb.execute("core-file ../object.snapshot", to_string=True)
|
|
54
|
+
gdb.execute("file", to_string=True)
|
|
42
55
|
inferior = gdb.selected_inferior()
|
|
43
56
|
if inferior.connection is None or inferior.connection.type != "core" or gdb.current_progspace().filename is not None:
|
|
44
57
|
raise ContextFailure("decoder", "Requested core-only boundary was not established; no mapping query performed.")
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { AnalysisCancelledError, AnalysisProtocolError, AnalysisResourceConstraintError, AnalysisTimeoutError, AnalysisUnsupportedTargetError, } from "../domain/analysisErrorCore.js";
|
|
2
|
+
import { err, ok } from "../domain/result.js";
|
|
3
|
+
import { execFileBytes, ExecFileOutputCancelledError, execFileOutputFailure, } from "../process/ExecFileOutput.js";
|
|
4
|
+
import { packageChangeFailureReason } from "./AdbShellOutput.js";
|
|
5
|
+
const STDERR_EXCERPT_BYTES = 512;
|
|
6
|
+
/** Project parsed command-owner facts without reinterpreting the rejection. */
|
|
7
|
+
export const adbCommandCapturedOutput = (failure) => ({
|
|
8
|
+
stdout: failure.stdout,
|
|
9
|
+
stderr: failure.stderr,
|
|
10
|
+
...(failure.stdoutBytes === undefined
|
|
11
|
+
? {}
|
|
12
|
+
: { stdout_bytes: failure.stdoutBytes }),
|
|
13
|
+
...(failure.stderrBytes === undefined
|
|
14
|
+
? {}
|
|
15
|
+
: { stderr_bytes: failure.stderrBytes }),
|
|
16
|
+
exit_code: typeof failure.code === "number" ? failure.code : null,
|
|
17
|
+
signal: failure.signal,
|
|
18
|
+
truncated: failure.outputTruncated,
|
|
19
|
+
});
|
|
20
|
+
/** Parsed command failure owned by this adapter, separate from its public tag. */
|
|
21
|
+
class AdbProtocolError extends AnalysisProtocolError {
|
|
22
|
+
commandFailure;
|
|
23
|
+
constructor(message, commandFailure, cause) {
|
|
24
|
+
super(message, { cause });
|
|
25
|
+
this.commandFailure = commandFailure;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** adb joins shell operands into a remote POSIX command; quote at that boundary. */
|
|
29
|
+
const quoteShellOperand = (value) => /^[A-Za-z0-9_./:=@+,-]+$/u.test(value)
|
|
30
|
+
? value
|
|
31
|
+
: "'" + value.replaceAll("'", "'\\''") + "'";
|
|
32
|
+
export const adbArguments = (serial, arguments_) => {
|
|
33
|
+
const operands = arguments_[0] === "shell"
|
|
34
|
+
? ["shell", ...arguments_.slice(1).map(quoteShellOperand)]
|
|
35
|
+
: [...arguments_];
|
|
36
|
+
return serial === undefined ? operands : ["-s", serial, ...operands];
|
|
37
|
+
};
|
|
38
|
+
/** Run one bounded adb invocation and keep its exact failure shape. */
|
|
39
|
+
export const runAdbCapture = async (operation, targetPath, binary, arguments_, limits, signal) => {
|
|
40
|
+
if (signal?.aborted === true)
|
|
41
|
+
return err(new AnalysisCancelledError(operation, { cause: signal.reason }));
|
|
42
|
+
try {
|
|
43
|
+
return ok(await execFileBytes(binary, arguments_, {
|
|
44
|
+
timeout: limits.timeoutMs,
|
|
45
|
+
maxBuffer: limits.maxOutputBytes,
|
|
46
|
+
stopSignal: "SIGTERM",
|
|
47
|
+
...(signal === undefined ? {} : { signal }),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
catch (cause) {
|
|
51
|
+
const failure = execFileOutputFailure(cause);
|
|
52
|
+
if (cause instanceof ExecFileOutputCancelledError)
|
|
53
|
+
return err(new AnalysisCancelledError(operation, {
|
|
54
|
+
cause: cause.cause,
|
|
55
|
+
...(failure === undefined
|
|
56
|
+
? {}
|
|
57
|
+
: { capturedOutput: adbCommandCapturedOutput(failure) }),
|
|
58
|
+
}));
|
|
59
|
+
if (failure === undefined)
|
|
60
|
+
return err(new AnalysisProtocolError(`adb failed for ${operation}`, { cause }));
|
|
61
|
+
if (failure.outputTruncated)
|
|
62
|
+
return err(new AnalysisResourceConstraintError(operation, "memory", `adb output exceeded the ${String(limits.maxOutputBytes)}-byte capture budget`, { max_output_bytes: limits.maxOutputBytes }, { cause }));
|
|
63
|
+
const excerpt = failure.stderr.trim().slice(0, STDERR_EXCERPT_BYTES);
|
|
64
|
+
if (/unauthorized/iu.test(excerpt))
|
|
65
|
+
return err(new AnalysisUnsupportedTargetError(operation, targetPath, excerpt, {
|
|
66
|
+
cause,
|
|
67
|
+
}));
|
|
68
|
+
if (/device[^\n]*not found|device offline|still authorizing|more than one device/iu.test(excerpt))
|
|
69
|
+
return err(new AnalysisUnsupportedTargetError(operation, targetPath, excerpt, {
|
|
70
|
+
cause,
|
|
71
|
+
}));
|
|
72
|
+
if (/No such file or directory|Permission denied|read: Permission denied/iu.test(excerpt))
|
|
73
|
+
return err(new AnalysisUnsupportedTargetError(operation, targetPath, excerpt, {
|
|
74
|
+
cause,
|
|
75
|
+
}));
|
|
76
|
+
if (failure.killed)
|
|
77
|
+
return err(new AnalysisTimeoutError(operation, limits.timeoutMs, { cause }));
|
|
78
|
+
return err(new AdbProtocolError(excerpt === ""
|
|
79
|
+
? `adb exited with code ${String(failure.code)} for ${operation}`
|
|
80
|
+
: excerpt, failure, cause));
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
/** Decode textual adb protocols after the shared byte capture and error boundary. */
|
|
84
|
+
export const runAdb = async (...arguments_) => {
|
|
85
|
+
const captured = await runAdbCapture(...arguments_);
|
|
86
|
+
if (!captured.ok)
|
|
87
|
+
return captured;
|
|
88
|
+
return ok({
|
|
89
|
+
stdout: captured.value.stdout.toString("utf8"),
|
|
90
|
+
stderr: captured.value.stderr.toString("utf8"),
|
|
91
|
+
// Byte count of the captured output before UTF-8 decoding, so malformed
|
|
92
|
+
// sequences replaced by U+FFFD still report their true captured size.
|
|
93
|
+
stdoutBytes: captured.value.stdout.byteLength,
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* adb exits nonzero when the device refuses a package change, printing the
|
|
98
|
+
* `Failure [...]` verdict to stderr (install) or stdout (uninstall). Read the
|
|
99
|
+
* refusal from that failed run so it is not reported as unreadable output.
|
|
100
|
+
*/
|
|
101
|
+
export const packageChangeRefusal = (operation, serial, error) => {
|
|
102
|
+
if (!(error instanceof AdbProtocolError))
|
|
103
|
+
return undefined;
|
|
104
|
+
const failure = error.commandFailure;
|
|
105
|
+
const reason = packageChangeFailureReason(`${failure.stdout}\n${failure.stderr}`);
|
|
106
|
+
return reason === null
|
|
107
|
+
? undefined
|
|
108
|
+
: err(new AnalysisUnsupportedTargetError(operation, serial, reason, {
|
|
109
|
+
cause: error,
|
|
110
|
+
}));
|
|
111
|
+
};
|
|
112
|
+
/** Only the clean false result of test -e establishes absence. */
|
|
113
|
+
export const probeAdbPathExistence = async (operation, serial, path, binary, limits, signal) => {
|
|
114
|
+
const probed = await runAdbCapture(operation, path, binary, adbArguments(serial, ["shell", "test", "-e", path]), limits, signal);
|
|
115
|
+
if (probed.ok) {
|
|
116
|
+
if (probed.value.stdout.length === 0 && probed.value.stderr.length === 0)
|
|
117
|
+
return ok(true);
|
|
118
|
+
return err(new AnalysisProtocolError("The ADB path existence probe returned unexpected output; destination existence is unknown", {
|
|
119
|
+
diagnostics: { destination_existence: "unknown" },
|
|
120
|
+
capturedOutput: {
|
|
121
|
+
stdout: probed.value.stdout.toString("utf8"),
|
|
122
|
+
stderr: probed.value.stderr.toString("utf8"),
|
|
123
|
+
stdout_bytes: probed.value.stdout.length,
|
|
124
|
+
stderr_bytes: probed.value.stderr.length,
|
|
125
|
+
exit_code: 0,
|
|
126
|
+
signal: null,
|
|
127
|
+
truncated: false,
|
|
128
|
+
},
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
const error = probed.error;
|
|
132
|
+
if (!(error instanceof AdbProtocolError))
|
|
133
|
+
return probed;
|
|
134
|
+
const failure = error.commandFailure;
|
|
135
|
+
if (failure.code === 1 &&
|
|
136
|
+
failure.signal === null &&
|
|
137
|
+
!failure.killed &&
|
|
138
|
+
!failure.outputTruncated &&
|
|
139
|
+
failure.collectionFailure !== true &&
|
|
140
|
+
failure.stdout === "" &&
|
|
141
|
+
failure.stderr === "")
|
|
142
|
+
return ok(false);
|
|
143
|
+
return err(new AnalysisProtocolError(error.message, {
|
|
144
|
+
cause: error.cause,
|
|
145
|
+
diagnostics: { destination_existence: "unknown" },
|
|
146
|
+
capturedOutput: adbCommandCapturedOutput(failure),
|
|
147
|
+
}));
|
|
148
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { AnalysisCancelledError } from "../domain/analysisErrorCore.js";
|
|
1
|
+
import { AnalysisCancelledError, AnalysisResourceConstraintError, AnalysisTimeoutError, } from "../domain/analysisErrorCore.js";
|
|
2
2
|
import { isAbsolute } from "node:path";
|
|
3
|
-
import { execFileOutput, execFileOutputFailure, } from "../process/ExecFileOutput.js";
|
|
3
|
+
import { execFileOutput, ExecFileOutputCancelledError, execFileOutputFailure, } from "../process/ExecFileOutput.js";
|
|
4
|
+
import { adbCommandCapturedOutput } from "./AdbCommand.js";
|
|
4
5
|
/** Environment key selecting the caller's adb binary. */
|
|
5
6
|
export const ADB_BINARY_ENV = "REA_ADB_PATH";
|
|
6
7
|
const VERSION_TIMEOUT_MS = 10_000;
|
|
@@ -67,8 +68,29 @@ export const inspectAdbClient = async (selection, signal) => {
|
|
|
67
68
|
if (cause instanceof AdbConfigurationFailure)
|
|
68
69
|
throw cause;
|
|
69
70
|
const failure = execFileOutputFailure(cause);
|
|
70
|
-
if (
|
|
71
|
-
throw new AnalysisCancelledError("inspect_adb_client", {
|
|
71
|
+
if (cause instanceof ExecFileOutputCancelledError)
|
|
72
|
+
throw new AnalysisCancelledError("inspect_adb_client", {
|
|
73
|
+
cause: cause.cause,
|
|
74
|
+
...(failure === undefined
|
|
75
|
+
? {}
|
|
76
|
+
: { capturedOutput: adbCommandCapturedOutput(failure) }),
|
|
77
|
+
});
|
|
78
|
+
const diagnostics = {
|
|
79
|
+
selected_binary: selection.binary,
|
|
80
|
+
path_source: selection.pathSource,
|
|
81
|
+
...(failure === undefined ? {} : { exit_code: failure.code }),
|
|
82
|
+
};
|
|
83
|
+
const options = {
|
|
84
|
+
cause,
|
|
85
|
+
diagnostics,
|
|
86
|
+
...(failure === undefined
|
|
87
|
+
? {}
|
|
88
|
+
: { capturedOutput: adbCommandCapturedOutput(failure) }),
|
|
89
|
+
};
|
|
90
|
+
if (failure?.outputTruncated === true)
|
|
91
|
+
throw new AnalysisResourceConstraintError("inspect_adb_client", "memory", `adb version output exceeded the ${String(VERSION_MAX_OUTPUT_BYTES)}-byte capture budget`, { max_output_bytes: VERSION_MAX_OUTPUT_BYTES }, options);
|
|
92
|
+
if (failure?.code === "ETIMEDOUT")
|
|
93
|
+
throw new AnalysisTimeoutError("inspect_adb_client", VERSION_TIMEOUT_MS, options);
|
|
72
94
|
if (failure?.code === "ENOENT")
|
|
73
95
|
throw new AdbConfigurationFailure("binary_missing", `The selected adb binary was not found: ${selection.binary}`, {
|
|
74
96
|
selected_binary: selection.binary,
|