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
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { nativeFunctionAnnotationsSchema } from "../domain/native/nativeFunctionAnnotations.js";
|
|
3
|
+
import { nativeLoadImageSchema } from "../domain/native/nativeLoadImage.js";
|
|
4
|
+
import { nativeUiResultSchema } from "../domain/native/nativeUiObservation.js";
|
|
5
|
+
import { nativeValueTraceSchema } from "../domain/native/nativeValueTrace.js";
|
|
6
|
+
import { nativeDataTypeSchema } from "../domain/native/nativeDataType.js";
|
|
7
|
+
import { nativeInstructionSchema, nativeCallTargetsSchema, } from "../domain/native/nativeInstruction.js";
|
|
6
8
|
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
7
9
|
import { residualUnknownSchema } from "../domain/residualUnknown.js";
|
|
8
10
|
import { evidenceBundleSchema } from "../domain/evidenceBundle.js";
|
|
9
11
|
import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/processCapture.js";
|
|
10
12
|
import { functionInstructionWindowSchema, referenceKindSchema, } from "../domain/hopperValues.js";
|
|
11
|
-
import { nativeApiInspectionResultSchema } from "../domain/nativeApiBoundary.js";
|
|
12
|
-
import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/nativeInspection.js";
|
|
13
|
+
import { nativeApiInspectionResultSchema } from "../domain/native/nativeApiBoundary.js";
|
|
14
|
+
import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/native/nativeInspection.js";
|
|
13
15
|
import { artifactExtractionResultSchema } from "../domain/artifactGraph.js";
|
|
14
16
|
import { artifactInspectionResultSchema } from "../domain/artifactInspection.js";
|
|
15
|
-
import { interfaceBuilderAnalysisSchema } from "../domain/interfaceBuilderGraph.js";
|
|
16
|
-
import { keyedArchiveResultSchema } from "../domain/keyedArchive.js";
|
|
17
|
-
import { appleAssetCatalogResultSchema } from "../domain/appleAssetCatalog.js";
|
|
18
|
-
import { managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, } from "../domain/managedArtifact.js";
|
|
19
|
-
import { managedMemberComparisonResultSchema } from "../domain/managedMemberComparison.js";
|
|
20
|
-
import { managedNativeVerificationResultSchema } from "../domain/managedNativeVerification.js";
|
|
21
|
-
import { managedReconstructionImportResultSchema } from "../domain/managedReconstruction.js";
|
|
22
|
-
import { managedApplicationGraphResultSchema } from "../domain/managedApplicationGraph.js";
|
|
17
|
+
import { interfaceBuilderAnalysisSchema } from "../domain/apple/interfaceBuilderGraph.js";
|
|
18
|
+
import { keyedArchiveResultSchema } from "../domain/apple/keyedArchive.js";
|
|
19
|
+
import { appleAssetCatalogResultSchema } from "../domain/apple/appleAssetCatalog.js";
|
|
20
|
+
import { managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, } from "../domain/managed/managedArtifact.js";
|
|
21
|
+
import { managedMemberComparisonResultSchema } from "../domain/managed/managedMemberComparison.js";
|
|
22
|
+
import { managedNativeVerificationResultSchema } from "../domain/managed/managedNativeVerification.js";
|
|
23
|
+
import { managedReconstructionImportResultSchema } from "../domain/managed/managedReconstruction.js";
|
|
24
|
+
import { managedApplicationGraphResultSchema } from "../domain/managed/managedApplicationGraph.js";
|
|
23
25
|
import { artifactComparisonResultSchema } from "../domain/artifactComparison.js";
|
|
24
26
|
import { functionComparisonResultSchema } from "../domain/functionComparison.js";
|
|
25
27
|
import { bundleComparisonResultSchema } from "../domain/bundleComparison.js";
|
|
@@ -28,8 +30,8 @@ import { callPathResultSchema } from "../domain/callPath.js";
|
|
|
28
30
|
import { staticRuntimeCorrelationResultSchema } from "../domain/staticRuntimeCorrelation.js";
|
|
29
31
|
import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerification.js";
|
|
30
32
|
import { analysisErrorProjectionSchema } from "./errorSchemas.js";
|
|
31
|
-
import { nativeDispatchMetadataResultSchema } from "../domain/objcSwiftMetadata.js";
|
|
32
|
-
import { nativeInvestigationTraceSchema } from "../domain/nativeInvestigationGraph.js";
|
|
33
|
+
import { nativeDispatchMetadataResultSchema } from "../domain/native/objcSwiftMetadata.js";
|
|
34
|
+
import { nativeInvestigationTraceSchema } from "../domain/native/nativeInvestigationGraph.js";
|
|
33
35
|
import { addressList, addressedValue, addressedEntry, containingProcedureResolution, functionDossierOutput, graphNode, lifecycleResultOf, nullableText, procedureIdentity, procedureInfoOutput, evidenceResultOf as resultOf, segmentOutput, sessionProvider, symbolDiscoveryOutput, targetFormatSchema, targetKindSchema, } from "./toolOutputSchemaPrimitives.js";
|
|
34
36
|
const contextFacetSchema = z.discriminatedUnion("state", [
|
|
35
37
|
z.object({ state: z.literal("available"), value: jsonValueSchema }),
|
|
@@ -60,6 +62,8 @@ const addressedString = z.object({
|
|
|
60
62
|
});
|
|
61
63
|
/** Exact structured-content schemas shared by direct analysis providers. */
|
|
62
64
|
export const officialOutputSchemas = {
|
|
65
|
+
annotate_native_function: resultOf(nativeFunctionAnnotationsSchema),
|
|
66
|
+
inspect_native_load_image: resultOf(nativeLoadImageSchema),
|
|
63
67
|
inspect_native_data_type: resultOf(nativeDataTypeSchema),
|
|
64
68
|
inspect_native_instruction: resultOf(nativeInstructionSchema),
|
|
65
69
|
resolve_native_call_targets: resultOf(nativeCallTargetsSchema),
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { toolContractMetadata } from "./toolEffects.js";
|
|
2
|
+
import { evidenceResultOf } from "./toolOutputSchemas.js";
|
|
3
|
+
import { observeWebExecutionInputSchema, webExecutionSchema, } from "../domain/webExecution.js";
|
|
4
|
+
import { inspectWebEventListenersInputSchema, webEventListenersSchema, } from "../domain/webEventListeners.js";
|
|
5
|
+
/** Native website runtime primitives distinguish instrumentation from listener inspection. */
|
|
6
|
+
export const WEB_RUNTIME_TOOL_CONTRACTS = [
|
|
7
|
+
{
|
|
8
|
+
name: "observe_web_execution",
|
|
9
|
+
...toolContractMetadata("observe_web_execution"),
|
|
10
|
+
description: "Instrument one selected CDP page for a finite, externally driven precise coverage window. Resets execution counters and prevents optimized execution until stopped. Returns complete nested UTF-16 ranges/counts, independently hashed script text and request initiator associations by session script ID. Does not navigate, click, evaluate selected code or close the externally owned page. Navigation ends document-scoped collection; workers and UI causality remain outside this claim. Emits an actual armed progress notification before external actions.",
|
|
11
|
+
kind: "browser-provider",
|
|
12
|
+
inputSchema: observeWebExecutionInputSchema,
|
|
13
|
+
outputSchema: evidenceResultOf(webExecutionSchema),
|
|
14
|
+
examples: [
|
|
15
|
+
{
|
|
16
|
+
title: "Attribute externally triggered page execution",
|
|
17
|
+
input: {
|
|
18
|
+
cdp_endpoint: "http://127.0.0.1:9222",
|
|
19
|
+
target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS",
|
|
20
|
+
observation_ms: 10_000,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "inspect_web_event_listeners",
|
|
27
|
+
...toolContractMetadata("inspect_web_event_listeners"),
|
|
28
|
+
description: "Inspect listeners registered directly on the first main-document CSS match in one selected CDP page. Returns event flags, native callback locations, source ownership and exact script text/digests inline. Does not dispatch events, evaluate JavaScript or invoke handlers. Delegated ancestor/framework listeners and execution history remain unknown. Releases REA's object group and transport, preserving the external page.",
|
|
29
|
+
kind: "browser-provider",
|
|
30
|
+
inputSchema: inspectWebEventListenersInputSchema,
|
|
31
|
+
outputSchema: evidenceResultOf(webEventListenersSchema),
|
|
32
|
+
examples: [
|
|
33
|
+
{
|
|
34
|
+
title: "Find a selected button's callback source",
|
|
35
|
+
input: {
|
|
36
|
+
cdp_endpoint: "http://127.0.0.1:9222",
|
|
37
|
+
target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS",
|
|
38
|
+
selector: "#submit",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
];
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { exportWebScriptsInputSchema, webScriptExportResultSchema, } from "../domain/webScriptExport.js";
|
|
2
|
+
import { webModuleTraceInputSchema, webModuleTraceResultSchema, } from "../domain/webModuleTrace.js";
|
|
3
|
+
import { toolContractMetadata } from "./toolEffects.js";
|
|
4
|
+
import { evidenceResultOf } from "./toolOutputSchemas.js";
|
|
5
|
+
import { webSourceLocationInputSchema, webSourceLocationResultSchema, } from "../domain/webSourceLocation.js";
|
|
6
|
+
/** Local captured-script publication contracts shared by CLI and MCP. */
|
|
7
|
+
export const WEB_SCRIPT_TOOL_CONTRACTS = [
|
|
8
|
+
{
|
|
9
|
+
name: "trace_web_source_location",
|
|
10
|
+
...toolContractMetadata("trace_web_source_location"),
|
|
11
|
+
description: "Trace one generated position in an exported website script through an explicitly paired local source map. Verifies manifest, selected script and map SHA-256/byte identities; returns every equal-position mapping, reported source/root, resolved source URL, embedded sourcesContent and original position inline. One-based lines and zero-based UTF-16 columns; greatest generated position <= requested across lines. Duplicate sources and generated-only mappings remain distinct. Caller-selected pairing does not establish deployment authenticity or execution. Regular maps and inline indexed sections only; external section URLs are unsupported. No network access or application execution; uses the pinned upstream codec in an owned Node process with private temporary files, independent 192 MiB old-generation heap and 20-second deadline. 4 MiB map, 32 MiB reply; complete evidence or actionable resource failure. Cleanup may extend the deadline.",
|
|
12
|
+
kind: "application",
|
|
13
|
+
inputSchema: webSourceLocationInputSchema,
|
|
14
|
+
outputSchema: evidenceResultOf(webSourceLocationResultSchema),
|
|
15
|
+
examples: [
|
|
16
|
+
{
|
|
17
|
+
title: "Trace a selected captured JavaScript point to embedded original source",
|
|
18
|
+
input: {
|
|
19
|
+
manifest_path: "/analysis/scripts/manifest.json",
|
|
20
|
+
script_index: 0,
|
|
21
|
+
source_map: {
|
|
22
|
+
path: "/analysis/app.js.map",
|
|
23
|
+
url: "https://example.test/app.js.map",
|
|
24
|
+
},
|
|
25
|
+
generated_position: { line: 1, column: 25 },
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "trace_web_module_imports",
|
|
32
|
+
...toolContractMetadata("trace_web_module_imports"),
|
|
33
|
+
description: "Trace one exported website script's outgoing native ES imports/re-exports, using exact URL and optional selected import-map context. Reads a local export_web_scripts manifest and verifies the selected source's SHA-256/size; returns source positions, native resolved URLs or exact errors, every matching captured candidate and explicit unknown execution. Query/fragment identities are preserved. Computed imports and bundler IDs remain unknown. Select importer_url for unknown inline/document-base context. Caller-supplied Chromium executes only a trusted REA resolver stub in an owned context with page requests locally fulfilled/blocked; no captured application execution or asset refetch. Requires absolute REA_BROWSER_EXECUTABLE for literal imports. 32 MiB manifest, 16 MiB source, 4 MiB map and 20-second native deadline; cleanup may extend the deadline.",
|
|
34
|
+
kind: "application",
|
|
35
|
+
inputSchema: webModuleTraceInputSchema,
|
|
36
|
+
outputSchema: evidenceResultOf(webModuleTraceResultSchema),
|
|
37
|
+
examples: [
|
|
38
|
+
{
|
|
39
|
+
title: "Trace an exported module under a selected import map",
|
|
40
|
+
input: {
|
|
41
|
+
manifest_path: "/analysis/exported-scripts/manifest.json",
|
|
42
|
+
script_index: 0,
|
|
43
|
+
import_map: {
|
|
44
|
+
path: "/analysis/import-map.json",
|
|
45
|
+
base_url: "https://example.test/app/",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "export_web_scripts",
|
|
53
|
+
...toolContractMetadata("export_web_scripts"),
|
|
54
|
+
description: "Export JavaScript bytes already retained in one local inspect_web_page or capture_browser_scenario JSON capture (normalized result or complete Evidence). Writes scripts and a digest-verified manifest into an absent absolute output_directory. Returns all source URLs, script or transaction/event references, unavailable states, and an analysis_input for analyze_javascript_application when any bytes were exported. Include script sources in inspect_web_page or select capture.network.response_body in scenarios. No refetch or execution. Safe unambiguous URL layouts preserve relative module paths; versions, query variants, inline scripts, and path collisions are isolated with explicit resolution limitations.",
|
|
55
|
+
kind: "application",
|
|
56
|
+
inputSchema: exportWebScriptsInputSchema,
|
|
57
|
+
outputSchema: evidenceResultOf(webScriptExportResultSchema),
|
|
58
|
+
examples: [
|
|
59
|
+
{
|
|
60
|
+
title: "Export a saved website capture for static JavaScript analysis",
|
|
61
|
+
input: {
|
|
62
|
+
capture_path: "/analysis/capture.json",
|
|
63
|
+
output_directory: "/analysis/exported-scripts",
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
];
|
package/dist/doctorRuntime.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { systemDoctorHost, } from "./application/Doctor.js";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
import { inspectSystemGhidraProvider } from "./ghidra/GhidraDoctor.js";
|
|
4
|
+
import { inspectIdaRegistration } from "./ida/IdaDoctor.js";
|
|
4
5
|
import { selectLinuxPrivateDisplayStrategy } from "./hopper/LinuxPrivateDisplayProbe.js";
|
|
5
6
|
/** Compose provider diagnostics at the outer CLI adapter boundary. */
|
|
6
7
|
export const createSystemDoctorHost = () => systemDoctorHost({
|
|
7
|
-
providerInspections: async () => [
|
|
8
|
+
providerInspections: async () => [
|
|
9
|
+
await inspectSystemGhidraProvider(),
|
|
10
|
+
inspectIdaRegistration(process.env.REA_IDA_MCP_CONFIG),
|
|
11
|
+
],
|
|
8
12
|
linuxDemoRuntimeCheck: inspectLinuxPrivateDisplay,
|
|
9
13
|
});
|
|
10
14
|
const HOPPER_DEMO_HELPER_PATH = fileURLToPath(new URL("../scripts/hopper-demo-x11.py", import.meta.url));
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Stable tags exposed by safe analysis-error projections. */
|
|
2
|
+
const ANALYSIS_ERROR_TAGS = [
|
|
3
|
+
"AnalysisProtocolError",
|
|
4
|
+
"AnalysisInputError",
|
|
5
|
+
"AnalysisOutputError",
|
|
6
|
+
"AnalysisCapabilityUnavailableError",
|
|
7
|
+
"AnalysisCancelledError",
|
|
8
|
+
"AnalysisTimeoutError",
|
|
9
|
+
"ProviderSelectionError",
|
|
10
|
+
"ProviderAdapterError",
|
|
11
|
+
"BrowserObservationError",
|
|
12
|
+
"ArtifactOperationError",
|
|
13
|
+
"ProcessCaptureError",
|
|
14
|
+
"EvidenceIntegrityError",
|
|
15
|
+
"EvidenceFileError",
|
|
16
|
+
"UnknownRegistryError",
|
|
17
|
+
"HopperTimeoutError",
|
|
18
|
+
"HopperCancelledError",
|
|
19
|
+
"HopperProtocolError",
|
|
20
|
+
"HopperRemoteError",
|
|
21
|
+
"HopperProcessError",
|
|
22
|
+
"HopperStartError",
|
|
23
|
+
"ConfigurationError",
|
|
24
|
+
"NoBinaryOpenError",
|
|
25
|
+
"BinaryTargetError",
|
|
26
|
+
];
|
|
27
|
+
/** Base class for expected analysis, provider, and session failures. */
|
|
28
|
+
export class AnalysisError extends Error {
|
|
29
|
+
userMessage = undefined;
|
|
30
|
+
userCategory = undefined;
|
|
31
|
+
cleanupIncomplete = false;
|
|
32
|
+
cleanupResources = [];
|
|
33
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { AnalysisError } from "./analysisErrorBase.js";
|
|
2
|
+
/** Provider-neutral invalid analysis input or output at an application boundary. */
|
|
3
|
+
export class AnalysisProtocolError extends AnalysisError {
|
|
4
|
+
_tag = "AnalysisProtocolError";
|
|
5
|
+
}
|
|
6
|
+
/** Caller input failed provider-neutral application parsing. */
|
|
7
|
+
export class AnalysisInputError extends AnalysisError {
|
|
8
|
+
operation;
|
|
9
|
+
issues;
|
|
10
|
+
_tag = "AnalysisInputError";
|
|
11
|
+
constructor(operation, options, issues = []) {
|
|
12
|
+
super(`Invalid analysis input for ${operation}`, options);
|
|
13
|
+
this.operation = operation;
|
|
14
|
+
this.issues = issues;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** Provider output failed provider-neutral application parsing. */
|
|
18
|
+
export class AnalysisOutputError extends AnalysisError {
|
|
19
|
+
operation;
|
|
20
|
+
reason;
|
|
21
|
+
_tag = "AnalysisOutputError";
|
|
22
|
+
constructor(operation, reason, options) {
|
|
23
|
+
super(`Invalid analysis output for ${operation}: ${reason}`, options);
|
|
24
|
+
this.operation = operation;
|
|
25
|
+
this.reason = reason;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** Selected provider cannot execute a declared analysis operation. */
|
|
29
|
+
export class AnalysisCapabilityUnavailableError extends AnalysisError {
|
|
30
|
+
providerId;
|
|
31
|
+
operation;
|
|
32
|
+
reason;
|
|
33
|
+
_tag = "AnalysisCapabilityUnavailableError";
|
|
34
|
+
userMessage;
|
|
35
|
+
constructor(providerId, operation, reason, options) {
|
|
36
|
+
super(`Provider ${providerId} cannot execute ${operation}: ${reason}`, options);
|
|
37
|
+
this.providerId = providerId;
|
|
38
|
+
this.operation = operation;
|
|
39
|
+
this.reason = reason;
|
|
40
|
+
this.userMessage = options?.userMessage;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Caller cancellation won before provider-neutral work completed. */
|
|
44
|
+
export class AnalysisCancelledError extends AnalysisError {
|
|
45
|
+
operation;
|
|
46
|
+
_tag = "AnalysisCancelledError";
|
|
47
|
+
constructor(operation) {
|
|
48
|
+
super(`Analysis operation was cancelled: ${operation}`);
|
|
49
|
+
this.operation = operation;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Provider-neutral operation exceeded its declared execution deadline. */
|
|
53
|
+
export class AnalysisTimeoutError extends AnalysisError {
|
|
54
|
+
operation;
|
|
55
|
+
timeoutMs;
|
|
56
|
+
_tag = "AnalysisTimeoutError";
|
|
57
|
+
constructor(operation, timeoutMs) {
|
|
58
|
+
super(`Analysis operation timed out after ${String(timeoutMs)}ms: ${operation}`);
|
|
59
|
+
this.operation = operation;
|
|
60
|
+
this.timeoutMs = timeoutMs;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import { AnalysisInputError
|
|
1
|
+
import { AnalysisInputError } from "./analysisErrorCore.js";
|
|
2
|
+
import { ArtifactOperationError } from "./artifactOperationError.js";
|
|
3
|
+
import { BinaryTargetError, ConfigurationError, NoBinaryOpenError, } from "./configurationErrors.js";
|
|
4
|
+
import { BrowserObservationError } from "./browserObservationError.js";
|
|
5
|
+
import { EvidenceFileError, EvidenceIntegrityError, EvidenceReferenceError, } from "./evidenceErrors.js";
|
|
6
|
+
import { HopperRemoteError, HopperProcessError, HopperStartError, HopperTimeoutError, } from "./hopperErrors.js";
|
|
7
|
+
import { ProviderSelectionError } from "./providerSelectionError.js";
|
|
8
|
+
import { UnknownRegistryError } from "./unknownRegistryError.js";
|
|
9
|
+
import {} from "./analysisErrorBase.js";
|
|
10
|
+
import {} from "./analysisErrorProjection.js";
|
|
2
11
|
export const analysisErrorRemediationAction = (error) => {
|
|
3
12
|
if (error instanceof HopperTimeoutError)
|
|
4
13
|
return error.providerState === "busy"
|
|
@@ -12,6 +21,11 @@ export const analysisErrorRemediationAction = (error) => {
|
|
|
12
21
|
: `Use the active REA session ${error.ownerRunId} or close it before opening this target again.`;
|
|
13
22
|
if (error instanceof HopperRemoteError)
|
|
14
23
|
return "Review the Hopper diagnostic details; correct the request or retry if the failure was transient.";
|
|
24
|
+
if (error instanceof EvidenceReferenceError)
|
|
25
|
+
return "Use an exact Evidence reference retained by this session, supply the complete inline Evidence, re-run its producer, or import its Evidence bundle. close_binary clears retained records.";
|
|
26
|
+
if (error instanceof BinaryTargetError &&
|
|
27
|
+
error.constraint === "directory_requires_file")
|
|
28
|
+
return "For a JavaScript/Electron application directory, call analyze_javascript_application with input_path or run `rea analyze <directory>`. For binary analysis, select its executable file.";
|
|
15
29
|
if (error instanceof AnalysisInputError)
|
|
16
30
|
return "Correct the listed arguments and retry.";
|
|
17
31
|
if (error instanceof UnknownRegistryError && error.reason === "not-found")
|
|
@@ -82,6 +96,10 @@ export const analysisErrorUserMessage = (error) => {
|
|
|
82
96
|
return standardMessage;
|
|
83
97
|
if (error instanceof ArtifactOperationError)
|
|
84
98
|
return artifactMessage(error.reason);
|
|
99
|
+
if (error instanceof EvidenceReferenceError)
|
|
100
|
+
return error.reason === "missing"
|
|
101
|
+
? `Evidence ${error.evidenceId} is not retained in this session. Supply complete inline Evidence, re-run its producer, or import its bundle before using this reference.`
|
|
102
|
+
: `Evidence ${error.evidenceId} does not match the requested reference (${error.reason}). Check the expected and actual identity in the diagnostic details.`;
|
|
85
103
|
if (error instanceof EvidenceIntegrityError)
|
|
86
104
|
return "Evidence is invalid or has changed. Recreate or re-import it, then try again.";
|
|
87
105
|
if (error instanceof EvidenceFileError)
|
|
@@ -95,7 +113,9 @@ export const analysisErrorUserMessage = (error) => {
|
|
|
95
113
|
if (error instanceof NoBinaryOpenError)
|
|
96
114
|
return error.message;
|
|
97
115
|
if (error instanceof BinaryTargetError)
|
|
98
|
-
return
|
|
116
|
+
return error.constraint === "directory_requires_file"
|
|
117
|
+
? "open_binary accepts files and macOS app bundles. This target is a directory; JavaScript/Electron application directories can be analyzed directly with analyze_javascript_application or `rea analyze <directory>`."
|
|
118
|
+
: `${error.message}. Check that the path exists, is readable, and points to a supported file.`;
|
|
99
119
|
if (error._tag === "ProcessCaptureError")
|
|
100
120
|
return (error.userMessage ??
|
|
101
121
|
"Process capture could not complete. Run `rea doctor`, then review capture policy and try again.");
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, AnalysisInputError, AnalysisTimeoutError, ArtifactOperationError, BinaryTargetError, BrowserObservationError, EvidenceFileError, EvidenceReferenceError, HopperCancelledError, HopperProcessError, HopperRemoteError, HopperTimeoutError, ProviderAdapterError, ProviderSelectionError, UnknownRegistryError, } from "./errors.js";
|
|
2
1
|
import { analysisErrorCategory, analysisErrorRemediationAction, analysisErrorUserMessage, assertKnownAnalysisErrorTag, } from "./analysisErrorPresentation.js";
|
|
2
|
+
import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, AnalysisInputError, AnalysisOutputError, AnalysisTimeoutError, } from "./analysisErrorCore.js";
|
|
3
|
+
import { ArtifactOperationError } from "./artifactOperationError.js";
|
|
4
|
+
import { BinaryTargetError } from "./configurationErrors.js";
|
|
5
|
+
import { BrowserObservationError } from "./browserObservationError.js";
|
|
6
|
+
import { EvidenceFileError, EvidenceReferenceError } from "./evidenceErrors.js";
|
|
7
|
+
import { HopperCancelledError, HopperProcessError, HopperRemoteError, HopperTimeoutError, } from "./hopperErrors.js";
|
|
8
|
+
import { ProviderAdapterError } from "./providerAdapterError.js";
|
|
9
|
+
import { ProviderSelectionError } from "./providerSelectionError.js";
|
|
10
|
+
import { UnknownRegistryError } from "./unknownRegistryError.js";
|
|
11
|
+
import {} from "./analysisErrorBase.js";
|
|
3
12
|
/** Project expected failures into exhaustive, secret-safe caller fields. */
|
|
4
13
|
export const projectAnalysisError = (error) => {
|
|
5
14
|
assertKnownAnalysisErrorTag(error._tag);
|
|
@@ -111,6 +120,8 @@ const errorDetails = (error) => requestErrorDetails(error) ??
|
|
|
111
120
|
providerErrorDetails(error) ??
|
|
112
121
|
lifecycleErrorDetails(error);
|
|
113
122
|
const requestErrorDetails = (error) => {
|
|
123
|
+
if (error instanceof AnalysisOutputError)
|
|
124
|
+
return { operation: error.operation, reason: error.reason };
|
|
114
125
|
if (error instanceof AnalysisInputError && error.issues.length > 0)
|
|
115
126
|
return {
|
|
116
127
|
operation: error.operation,
|
|
@@ -145,6 +156,7 @@ const artifactStateErrorDetails = (error) => {
|
|
|
145
156
|
operation: error.operation,
|
|
146
157
|
reason: error.reason,
|
|
147
158
|
...(error.reason === "limit" ? { truncated: true } : {}),
|
|
159
|
+
...(error.detail === undefined ? {} : { detail: error.detail }),
|
|
148
160
|
};
|
|
149
161
|
if (error instanceof UnknownRegistryError)
|
|
150
162
|
return { reason: error.reason };
|
|
@@ -154,7 +166,11 @@ const artifactStateErrorDetails = (error) => {
|
|
|
154
166
|
};
|
|
155
167
|
const providerErrorDetails = (error) => {
|
|
156
168
|
if (error instanceof AnalysisCapabilityUnavailableError)
|
|
157
|
-
return {
|
|
169
|
+
return {
|
|
170
|
+
provider_id: error.providerId,
|
|
171
|
+
operation: error.operation,
|
|
172
|
+
reason: error.reason,
|
|
173
|
+
};
|
|
158
174
|
if (error instanceof ProviderSelectionError)
|
|
159
175
|
return {
|
|
160
176
|
operation: error.operation,
|
|
@@ -261,7 +277,13 @@ const lifecycleErrorDetails = (error) => {
|
|
|
261
277
|
error.userCategory === "cancelled")
|
|
262
278
|
return { operation: "process_capture", cleanup: "complete" };
|
|
263
279
|
if (error instanceof BinaryTargetError)
|
|
264
|
-
return {
|
|
280
|
+
return {
|
|
281
|
+
path: error.path,
|
|
282
|
+
reason: error.reason,
|
|
283
|
+
...(error.constraint === undefined
|
|
284
|
+
? {}
|
|
285
|
+
: { constraint: error.constraint }),
|
|
286
|
+
};
|
|
265
287
|
return undefined;
|
|
266
288
|
};
|
|
267
289
|
const RETRYABLE_CODES = new Set([
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const target = {
|
|
3
|
+
path: z
|
|
4
|
+
.string()
|
|
5
|
+
.min(1)
|
|
6
|
+
.describe("Local APK path; the target is never executed"),
|
|
7
|
+
};
|
|
8
|
+
const classTarget = {
|
|
9
|
+
...target,
|
|
10
|
+
class_name: z.string().min(1).describe("Exact fully qualified class name"),
|
|
11
|
+
};
|
|
12
|
+
/** Caller intent for static Android inspection, independent of its engine. */
|
|
13
|
+
export const androidInputSchemas = {
|
|
14
|
+
inspect_android_package: z.strictObject(target),
|
|
15
|
+
search_android_classes: z.strictObject({
|
|
16
|
+
...target,
|
|
17
|
+
query: z
|
|
18
|
+
.string()
|
|
19
|
+
.describe("Case-sensitive class-name substring; empty lists all classes"),
|
|
20
|
+
}),
|
|
21
|
+
inspect_android_class: z.strictObject(classTarget),
|
|
22
|
+
inspect_android_method: z.strictObject({
|
|
23
|
+
...classTarget,
|
|
24
|
+
method_name: z.string().min(1),
|
|
25
|
+
overload_index: z
|
|
26
|
+
.number()
|
|
27
|
+
.int()
|
|
28
|
+
.nonnegative()
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Explicit index among same-name methods; required when ambiguous"),
|
|
31
|
+
}),
|
|
32
|
+
trace_android_references: z.strictObject({
|
|
33
|
+
...classTarget,
|
|
34
|
+
method_name: z
|
|
35
|
+
.string()
|
|
36
|
+
.min(1)
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Omit for class references; ambiguous overloaded methods are unsupported"),
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
/** Validate operation and input together so their types remain correlated. */
|
|
42
|
+
export const androidRequestSchema = z.discriminatedUnion("operation", [
|
|
43
|
+
z.strictObject({
|
|
44
|
+
operation: z.literal("inspect_android_package"),
|
|
45
|
+
input: androidInputSchemas.inspect_android_package,
|
|
46
|
+
}),
|
|
47
|
+
z.strictObject({
|
|
48
|
+
operation: z.literal("search_android_classes"),
|
|
49
|
+
input: androidInputSchemas.search_android_classes,
|
|
50
|
+
}),
|
|
51
|
+
z.strictObject({
|
|
52
|
+
operation: z.literal("inspect_android_class"),
|
|
53
|
+
input: androidInputSchemas.inspect_android_class,
|
|
54
|
+
}),
|
|
55
|
+
z.strictObject({
|
|
56
|
+
operation: z.literal("inspect_android_method"),
|
|
57
|
+
input: androidInputSchemas.inspect_android_method,
|
|
58
|
+
}),
|
|
59
|
+
z.strictObject({
|
|
60
|
+
operation: z.literal("trace_android_references"),
|
|
61
|
+
input: androidInputSchemas.trace_android_references,
|
|
62
|
+
}),
|
|
63
|
+
]);
|
|
64
|
+
const textCoverage = z.strictObject({
|
|
65
|
+
status: z.enum(["complete", "partial"]),
|
|
66
|
+
text: z.string(),
|
|
67
|
+
reported_total_bytes: z.number().int().nonnegative().nullable(),
|
|
68
|
+
});
|
|
69
|
+
const method = z.strictObject({
|
|
70
|
+
name: z.string(),
|
|
71
|
+
reported_signature: z.string(),
|
|
72
|
+
overload_index: z.number().int().nonnegative(),
|
|
73
|
+
is_constructor: z.boolean(),
|
|
74
|
+
dex_descriptor: z.null(),
|
|
75
|
+
});
|
|
76
|
+
const engine = z.strictObject({
|
|
77
|
+
name: z.string().min(1),
|
|
78
|
+
version: z.string().nullable(),
|
|
79
|
+
artifact_sha256: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
80
|
+
source_revision: z.string().nullable(),
|
|
81
|
+
worker_count: z.number().int().positive(),
|
|
82
|
+
heap_limit_mib: z.number().int().positive().nullable(),
|
|
83
|
+
});
|
|
84
|
+
const common = { engine };
|
|
85
|
+
/** Portable observations with explicit decompiler and identity limitations. */
|
|
86
|
+
export const androidResultSchemas = {
|
|
87
|
+
inspect_android_package: z.strictObject({
|
|
88
|
+
...common,
|
|
89
|
+
package_name: z.string().nullable(),
|
|
90
|
+
version_name: z.string().nullable(),
|
|
91
|
+
version_code: z.string().nullable(),
|
|
92
|
+
min_sdk: z.string().nullable(),
|
|
93
|
+
target_sdk: z.string().nullable(),
|
|
94
|
+
permissions: z.array(z.string()),
|
|
95
|
+
manifest: textCoverage,
|
|
96
|
+
class_count: z.number().int().nonnegative(),
|
|
97
|
+
resource_count: z.number().int().nonnegative(),
|
|
98
|
+
signature_verification: z.literal("not_performed"),
|
|
99
|
+
}),
|
|
100
|
+
search_android_classes: z.strictObject({
|
|
101
|
+
...common,
|
|
102
|
+
query: z.string(),
|
|
103
|
+
total_classes: z.number().int().nonnegative(),
|
|
104
|
+
matches: z.array(z.string()),
|
|
105
|
+
coverage: z.literal("complete"),
|
|
106
|
+
}),
|
|
107
|
+
inspect_android_class: z.strictObject({
|
|
108
|
+
...common,
|
|
109
|
+
class_name: z.string(),
|
|
110
|
+
methods: z.array(method),
|
|
111
|
+
fields: z.array(z.strictObject({ name: z.string(), reported_type: z.string() })),
|
|
112
|
+
inner_classes: z.array(z.string()),
|
|
113
|
+
}),
|
|
114
|
+
inspect_android_method: z.strictObject({
|
|
115
|
+
...common,
|
|
116
|
+
class_name: z.string(),
|
|
117
|
+
method: method,
|
|
118
|
+
overload_count: z.number().int().positive(),
|
|
119
|
+
representation: z.enum(["java", "smali"]),
|
|
120
|
+
body_status: z.enum(["available", "not_available"]),
|
|
121
|
+
fell_back: z.boolean(),
|
|
122
|
+
markers: z.array(z.string()),
|
|
123
|
+
source: textCoverage,
|
|
124
|
+
}),
|
|
125
|
+
trace_android_references: z.strictObject({
|
|
126
|
+
...common,
|
|
127
|
+
class_name: z.string(),
|
|
128
|
+
method_name: z.string().nullable(),
|
|
129
|
+
total: z.number().int().nonnegative(),
|
|
130
|
+
references: z.array(z.strictObject({
|
|
131
|
+
kind: z.string(),
|
|
132
|
+
name: z.string(),
|
|
133
|
+
reported_full_name: z.string(),
|
|
134
|
+
containing_class: z.string(),
|
|
135
|
+
top_class: z.string(),
|
|
136
|
+
source_line: z.null(),
|
|
137
|
+
dex_offset: z.null(),
|
|
138
|
+
})),
|
|
139
|
+
coverage: z.literal("complete"),
|
|
140
|
+
}),
|
|
141
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import canonicalize from "canonicalize";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { parseArtifactInventoryEvidence } from "
|
|
5
|
-
import { evidenceSchema } from "
|
|
6
|
-
import { digestSchema } from "
|
|
7
|
-
import { prefixedDigestSchema } from "
|
|
4
|
+
import { parseArtifactInventoryEvidence } from "../artifactInventoryEvidence.js";
|
|
5
|
+
import { evidenceSchema } from "../evidence.js";
|
|
6
|
+
import { digestSchema } from "../digests.js";
|
|
7
|
+
import { prefixedDigestSchema } from "../digests.js";
|
|
8
8
|
const evidenceIdSchema = prefixedDigestSchema("ev");
|
|
9
9
|
const pathSchema = z.string().min(1);
|
|
10
10
|
const componentSchema = z.strictObject({
|
|
@@ -86,6 +86,7 @@ export const projectAndroidApplication = (input) => {
|
|
|
86
86
|
? ["Source inventory pages are incomplete; absence is unknown."]
|
|
87
87
|
: []),
|
|
88
88
|
"Manifest, resource, signing, and bytecode semantics require a dedicated Android provider; this projection reports exact inventory paths and hashes only.",
|
|
89
|
+
"Runtime families are inferred from inventory formats and paths; filename suffixes do not establish valid DEX or JVM class bytes.",
|
|
89
90
|
"Bridge candidates are path-based hypotheses, not decoded JNI declarations or observed runtime calls.",
|
|
90
91
|
];
|
|
91
92
|
const withoutId = {
|
|
@@ -123,9 +124,9 @@ const classify = (all) => ({
|
|
|
123
124
|
const runtimeFamilies = (all) => {
|
|
124
125
|
const paths = all.map(({ path }) => path.toLowerCase());
|
|
125
126
|
const families = new Set();
|
|
126
|
-
if (all.some(({ path, format }) => format === "dex" || path.endsWith(".dex")))
|
|
127
|
+
if (all.some(({ path, format }) => format === "dex" || path.toLowerCase().endsWith(".dex")))
|
|
127
128
|
families.add("dalvik-art");
|
|
128
|
-
if (all.some(({ path, format }) => format === "jvm-class" || path.endsWith(".class")))
|
|
129
|
+
if (all.some(({ path, format }) => format === "jvm-class" || path.toLowerCase().endsWith(".class")))
|
|
129
130
|
families.add("java-kotlin");
|
|
130
131
|
if (all.some(({ format }) => format === "elf"))
|
|
131
132
|
families.add("native");
|