rea-agents 4.1.0 → 6.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 +173 -568
- package/bridge/android/ReaJadxBridge.java +247 -0
- package/bridge/mitmproxy/capture.py +210 -0
- package/bridge/native/NativeUIChildren.swift +27 -0
- package/bridge/native/ReaNativeUI.swift +30 -16
- package/bridge/native/rea_lldb_tracer.py +303 -0
- package/bridge/process/ProcessRunTokenReader.swift +263 -0
- package/bridge/process/ProcessRunTokenReaderMain.swift +35 -0
- package/bridge/pwndbg/core_context.py +101 -0
- package/bridge/pwndbg/launch.py +39 -0
- package/bridge/pwndbg/launch_impl.py +34 -0
- package/bridge/pwntools/decoder_runtime.py +59 -0
- package/bridge/pwntools/layout.py +39 -0
- package/bridge/pwntools/layout_impl.py +309 -0
- package/bridge/pwntools/recorded_crash.py +39 -0
- package/bridge/pwntools/recorded_crash_impl.py +143 -0
- package/dist/android/AndroidTargetSnapshot.js +5 -3
- package/dist/android/JadxAnalysis.js +8 -6
- package/dist/android/JadxConfiguration.js +19 -3
- package/dist/android/JadxMcpTransport.js +43 -16
- package/dist/android/JadxProtocol.js +8 -0
- package/dist/android/JadxProvider.js +118 -28
- package/dist/android/JadxRelease.js +8 -0
- package/dist/android/JadxSession.js +32 -18
- package/dist/application/AppBundleExecutable.js +141 -0
- package/dist/application/BinaryTargetResolver.js +9 -64
- package/dist/application/CapabilityInventory.js +82 -3
- package/dist/application/ClientConfigurationDocument.js +72 -12
- package/dist/application/ClientRegistrationStatus.js +7 -8
- package/dist/application/DirectAnalysis.js +109 -37
- package/dist/application/DirectAnalysisStatus.js +4 -5
- package/dist/application/DoctorDiagnostics.js +3 -3
- package/dist/application/EnhancedTools.js +4 -4
- package/dist/application/EvidenceBundleCommands.js +1 -1
- package/dist/application/EvidenceBundleFiles.js +1 -1
- package/dist/application/InvestigationProviders.js +6 -0
- package/dist/application/LinuxHopper.js +8 -2
- package/dist/application/OptionalObservationProviders.js +3 -0
- package/dist/application/ReconstructionCoverageService.js +2 -6
- package/dist/application/ReconstructionObligationCandidates.js +10 -3
- package/dist/application/ReferenceSourceImport.js +2 -0
- package/dist/application/ReferenceSourceImportEntries.js +20 -3
- package/dist/application/ReferenceSourceImportTypes.js +5 -0
- package/dist/application/Setup.js +10 -2
- package/dist/application/SetupClientConfiguration.js +19 -16
- package/dist/application/SetupHost.js +18 -3
- package/dist/application/SetupPlan.js +1 -1
- package/dist/application/Uninstall.js +23 -17
- package/dist/application/UpdateMaintenance.js +3 -3
- package/dist/application/ValidateSelectedWebScript.js +27 -0
- package/dist/application/WebModuleTraceService.js +209 -0
- package/dist/application/WebNetworkCaptureService.js +132 -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 +1 -1
- package/dist/application/{AndroidAnalysisService.js → android/AndroidAnalysisService.js} +6 -6
- 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} +4 -4
- package/dist/application/{AnalysisProviderRegistry.js → binary/AnalysisProviderRegistry.js} +5 -5
- package/dist/application/{AnalysisSnapshotCache.js → binary/AnalysisSnapshotCache.js} +55 -14
- package/dist/application/{AnalysisSnapshotFiles.js → binary/AnalysisSnapshotFiles.js} +4 -4
- package/dist/application/{BinarySession.js → binary/BinarySession.js} +50 -20
- package/dist/application/{BinarySessionComposition.js → binary/BinarySessionComposition.js} +2 -1
- package/dist/application/{BinarySessionExecution.js → binary/BinarySessionExecution.js} +9 -7
- package/dist/application/{BinarySessionOpen.js → binary/BinarySessionOpen.js} +22 -9
- package/dist/application/{BinarySessionRecords.js → binary/BinarySessionRecords.js} +48 -40
- package/dist/application/{CompositeProvider.js → binary/CompositeProvider.js} +2 -2
- package/dist/application/{LazyAnalysisProvider.js → binary/LazyAnalysisProvider.js} +6 -6
- package/dist/application/{SessionProviderRouter.js → binary/SessionProviderRouter.js} +7 -7
- package/dist/application/binaryDiagnostics/BinaryLayoutService.js +57 -0
- package/dist/application/binaryDiagnostics/RecordedCrashPort.js +1 -0
- package/dist/application/binaryDiagnostics/RecordedCrashService.js +60 -0
- package/dist/application/evm/EvmInterfacePort.js +1 -0
- package/dist/application/evm/EvmInterfaceService.js +62 -0
- package/dist/application/firmware/FirmwareAnalysisPort.js +1 -0
- package/dist/application/{FirmwareAnalysisService.js → firmware/FirmwareAnalysisService.js} +5 -5
- package/dist/application/{EvidenceLedger.js → investigation/EvidenceLedger.js} +44 -7
- 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} +3 -3
- package/dist/application/javascript/ElectronActiveObservationPort.js +1 -0
- package/dist/application/{ElectronActiveObservationService.js → javascript/ElectronActiveObservationService.js} +3 -3
- 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 -3
- package/dist/application/{JavaScriptApplicationEvidence.js → javascript/JavaScriptApplicationEvidence.js} +3 -4
- package/dist/application/{JavaScriptApplicationEvidenceGraph.js → javascript/JavaScriptApplicationEvidenceGraph.js} +5 -5
- package/dist/application/{JavaScriptApplicationService.js → javascript/JavaScriptApplicationService.js} +25 -12
- package/dist/application/{JavaScriptApplicationWorkflowEvidence.js → javascript/JavaScriptApplicationWorkflowEvidence.js} +3 -3
- package/dist/application/{JavaScriptApplicationWorkflowService.js → javascript/JavaScriptApplicationWorkflowService.js} +12 -12
- package/dist/application/{JavaScriptArtifactAnalysis.js → javascript/JavaScriptArtifactAnalysis.js} +50 -47
- 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} +27 -3
- 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} +80 -36
- package/dist/application/{JavaScriptArtifactReconstruction.js → javascript/JavaScriptArtifactReconstruction.js} +26 -17
- package/dist/application/{JavaScriptJsonModules.js → javascript/JavaScriptJsonModules.js} +1 -1
- package/dist/application/{JavaScriptModuleRelationships.js → javascript/JavaScriptModuleRelationships.js} +2 -2
- 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 -3
- package/dist/application/{JavaScriptRuntimeReconciliationEvidence.js → javascript/JavaScriptRuntimeReconciliationEvidence.js} +3 -3
- package/dist/application/{JavaScriptRuntimeReconciliationService.js → javascript/JavaScriptRuntimeReconciliationService.js} +6 -6
- package/dist/application/{JavaScriptSemanticGraphAsyncProjection.js → javascript/JavaScriptSemanticGraphAsyncProjection.js} +8 -8
- package/dist/application/{JavaScriptSemanticGraphBuilder.js → javascript/JavaScriptSemanticGraphBuilder.js} +150 -73
- package/dist/application/{JavaScriptSemanticGraphChildProcessProjection.js → javascript/JavaScriptSemanticGraphChildProcessProjection.js} +15 -16
- package/dist/application/{JavaScriptSemanticGraphConstruction.js → javascript/JavaScriptSemanticGraphConstruction.js} +43 -2
- package/dist/application/{JavaScriptSemanticGraphDataProjection.js → javascript/JavaScriptSemanticGraphDataProjection.js} +8 -8
- package/dist/application/{JavaScriptSemanticGraphFingerprintProjection.js → javascript/JavaScriptSemanticGraphFingerprintProjection.js} +1 -1
- package/dist/application/{JavaScriptSemanticGraphFlowProjection.js → javascript/JavaScriptSemanticGraphFlowProjection.js} +7 -11
- package/dist/application/{JavaScriptSemanticGraphObjectProjection.js → javascript/JavaScriptSemanticGraphObjectProjection.js} +4 -4
- package/dist/application/javascript/JavaScriptSemanticGraphProjection.js +144 -0
- package/dist/application/{JavaScriptSemanticGraphResourceProjection.js → javascript/JavaScriptSemanticGraphResourceProjection.js} +4 -4
- package/dist/application/{JavaScriptSemanticGraphValueProjection.js → javascript/JavaScriptSemanticGraphValueProjection.js} +5 -5
- package/dist/application/{JavaScriptSemanticTraceService.js → javascript/JavaScriptSemanticTraceService.js} +6 -6
- package/dist/application/{ManagedApplicationGraphService.js → managed/ManagedApplicationGraphService.js} +7 -7
- package/dist/application/{ManagedMemberComparisonService.js → managed/ManagedMemberComparisonService.js} +10 -10
- package/dist/application/{ManagedNativeVerificationService.js → managed/ManagedNativeVerificationService.js} +7 -7
- package/dist/application/{ManagedReconstructionService.js → managed/ManagedReconstructionService.js} +7 -7
- 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 -7
- package/dist/application/{NativeValueTrace.js → native/NativeValueTrace.js} +6 -6
- package/dist/application/{ProcessCli.js → process/ProcessCli.js} +15 -11
- package/dist/application/{ProcessEvidence.js → process/ProcessEvidence.js} +4 -4
- package/dist/{application/ArtifactInventory/hash.js → artifacts/ArtifactHash.js} +4 -2
- package/dist/artifacts/ArtifactPaths.js +3 -3
- package/dist/artifacts/ArtifactProvider.js +37 -40
- package/dist/artifacts/ArtifactProviderMetadata.js +37 -0
- package/dist/artifacts/AsarArtifactReader.js +195 -23
- package/dist/artifacts/AsarEntryStream.js +76 -0
- package/dist/artifacts/DirectoryArtifactReader.js +41 -7
- package/dist/artifacts/NativeDmgArtifactReader.js +161 -9
- package/dist/artifacts/ZipArtifactReader.js +3 -0
- package/dist/{application → artifacts/apple}/AppleAssetCatalogAnalysis.js +4 -4
- package/dist/artifacts/apple/DylibResolutionReader.js +259 -0
- package/dist/{application → artifacts/apple}/InterfaceBuilderAnalysis.js +125 -51
- package/dist/artifacts/{KeyedArchiveReader.js → apple/KeyedArchiveReader.js} +21 -27
- package/dist/artifacts/apple/MachoLoadCommandReader.js +294 -0
- package/dist/artifacts/apple/NibViewHierarchy.js +150 -0
- package/dist/{application → artifacts/extraction}/ArtifactExtraction.js +10 -10
- package/dist/{application → artifacts/inventory}/ArtifactGraphConstruction.js +3 -3
- package/dist/{application → artifacts/inventory}/ArtifactInventory.js +4 -4
- package/dist/{application/ArtifactInventory → artifacts/inventory}/classify.js +2 -2
- package/dist/{application/ArtifactInventory → artifacts/inventory}/reader.js +5 -5
- package/dist/{application/ArtifactInventory → artifacts/inventory}/scanCanonical.js +3 -3
- package/dist/{application/ArtifactInventory → artifacts/inventory}/scanReader.js +5 -5
- package/dist/{application → artifacts/javascript}/JavaScriptArtifactFiles.js +27 -6
- package/dist/artifacts/javascript/JavaScriptArtifactReader.js +6 -0
- package/dist/artifacts/readStableArtifact.js +68 -0
- package/dist/browser/BrowserScenarioSecrets.js +50 -8
- package/dist/browser/CdpAuthorizedMainFrame.js +4 -4
- package/dist/browser/CdpAuthorizedTarget.js +22 -0
- package/dist/browser/CdpBrowserProvider.js +4 -15
- package/dist/browser/CdpCaptureDocuments.js +33 -21
- package/dist/browser/CdpCaptureEventBodyShapes.js +3 -3
- package/dist/browser/CdpCaptureEventHandlers.js +116 -28
- package/dist/browser/CdpCaptureEventHelpers.js +6 -6
- package/dist/browser/CdpCaptureEvents.js +9 -0
- package/dist/browser/CdpCaptureStorage.js +10 -8
- package/dist/browser/CdpCaptureStorageFingerprints.js +24 -22
- package/dist/browser/CdpCaptureValues.js +2 -2
- package/dist/browser/CdpCommandRejection.js +17 -0
- package/dist/browser/CdpConnection.js +51 -11
- package/dist/browser/CdpElectronInspection.js +10 -10
- package/dist/browser/CdpElectronProvider.js +3 -6
- package/dist/browser/CdpElectronScriptEvents.js +6 -6
- package/dist/browser/CdpElectronScripts.js +2 -2
- package/dist/browser/CdpElectronWorkers.js +4 -4
- package/dist/browser/CdpObservationSession.js +18 -23
- package/dist/browser/CdpPageCapture.js +4 -4
- package/dist/browser/CdpPageCaptureScripts.js +2 -2
- package/dist/browser/CdpPageCaptureWorkers.js +9 -9
- package/dist/browser/CdpSafeMetadata.js +48 -10
- package/dist/browser/CdpScreenshot.js +5 -5
- package/dist/browser/CdpTargetEvents.js +8 -0
- package/dist/browser/CdpTargetSession.js +2 -2
- package/dist/browser/CdpWebMcpDiscovery.js +22 -16
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +7 -6
- package/dist/browser/PlaywrightElectronActiveProvider.js +15 -9
- package/dist/browser/PlaywrightScenarioEvents.js +59 -51
- package/dist/browser/PlaywrightScenarioSession.js +8 -1
- package/dist/browser/WebSourceMapFetcher.js +37 -53
- 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/history/CaptureFailures.js +101 -0
- package/dist/browser/history/CaptureFormatError.js +10 -0
- package/dist/browser/history/CaptureRedaction.js +65 -0
- package/dist/browser/history/CaptureRelease.js +12 -0
- package/dist/browser/history/HarCapture.js +165 -0
- package/dist/browser/history/HarCaptureAdapter.js +20 -0
- package/dist/browser/history/HarCaptureProcess.js +57 -0
- package/dist/browser/history/HarJson.js +91 -0
- package/dist/browser/history/HarSchema.js +72 -0
- package/dist/browser/history/HistoricalCaptureDecoder.js +186 -0
- package/dist/browser/history/HistoricalCaptureFormatAdapter.js +1 -0
- package/dist/browser/history/MitmproxyCaptureAdapter.js +42 -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 +13 -3
- package/dist/cli/applicationCommands.js +39 -8
- package/dist/cli/artifactCommands.js +27 -2
- package/dist/cli/binaryDiagnosticsCommands.js +39 -0
- package/dist/cli/browserAdvancedCommands.js +27 -9
- package/dist/cli/coreAnalysisCommands.js +6 -494
- package/dist/cli/coreBinaryCommands.js +211 -0
- package/dist/cli/coreNativeCommands.js +293 -0
- package/dist/cli/electronCommands.js +29 -27
- package/dist/cli/evmCommands.js +24 -0
- package/dist/cli/firmwareCommands.js +9 -6
- package/dist/cli/javascriptApplicationAnalysis.js +17 -4
- package/dist/cli/javascriptRecoveryCommands.js +45 -0
- package/dist/cli/jsonOutput.js +133 -0
- package/dist/cli/managedCommands.js +4 -4
- package/dist/cli/managedProjectGraphCommand.js +1 -1
- package/dist/cli/nativeCallCommands.js +35 -0
- package/dist/cli/processCommands.js +1 -1
- package/dist/cli/referenceSourceImportStatus.js +6 -1
- package/dist/cli/streamedJsonOutput.js +56 -0
- package/dist/cli/utilityCommands.js +49 -23
- package/dist/cli/webModuleCommands.js +56 -0
- package/dist/cli/webNetworkCaptureCommands.js +40 -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 +19 -3
- package/dist/cliBrowserContext.js +4 -2
- package/dist/cliBrowserScenarioCommands.js +6 -5
- package/dist/cliCommandNames.js +14 -0
- package/dist/cliJavaScriptRuntimeCommands.js +6 -4
- package/dist/cliJsonInput.js +38 -2
- package/dist/cliOutput.js +52 -11
- package/dist/composition/android.js +3 -0
- package/dist/composition/auxiliaryAnalysisProviders.js +30 -0
- package/dist/composition/binary.js +25 -0
- package/dist/composition/binaryDiagnostics.js +8 -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/evm.js +4 -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/webNetworkCaptures.js +6 -0
- package/dist/composition/webRuntime.js +4 -0
- package/dist/composition/webSourceLocations.js +5 -0
- package/dist/config/parseConfig.js +22 -3
- package/dist/contracts/{androidToolContracts.js → android/androidToolContracts.js} +5 -5
- package/dist/contracts/applicationToolContracts.js +43 -8
- package/dist/contracts/artifactToolContracts.js +8 -2
- package/dist/contracts/browserCaptureToolInputSchema.js +43 -0
- package/dist/contracts/browserScenarioToolContracts.js +1 -1
- package/dist/contracts/browserToolContracts.js +4 -3
- package/dist/contracts/enhancedInputs.js +1 -1
- package/dist/contracts/errorSchemas.js +8 -1
- package/dist/contracts/evm/evmToolContracts.js +20 -0
- package/dist/contracts/{firmwareToolContracts.js → firmware/firmwareToolContracts.js} +5 -5
- package/dist/contracts/investigationExamples.js +2 -2
- package/dist/contracts/{applicationWorkflowInputContracts.js → javascript/applicationWorkflowInputContracts.js} +6 -6
- 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} +10 -6
- 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/native/binaryDiagnosticsToolContracts.js +42 -0
- package/dist/contracts/{nativeToolContracts.js → native/nativeToolContracts.js} +31 -8
- package/dist/contracts/officialToolContracts.js +15 -12
- package/dist/contracts/process/processCaptureExample.js +2 -0
- package/dist/contracts/sessionLifecycleInputs.js +22 -5
- package/dist/contracts/sessionStatusContract.js +10 -2
- package/dist/contracts/sessionToolContracts.js +9 -2
- package/dist/contracts/sessionToolSchemas.js +10 -3
- package/dist/contracts/toolContractExamples.js +1 -1
- package/dist/contracts/toolContracts.js +19 -7
- package/dist/contracts/toolEffects.js +62 -0
- package/dist/contracts/toolOutputSchemaGroups.js +23 -19
- package/dist/contracts/toolOutputSchemaPrimitives.js +1 -1
- package/dist/contracts/webNetworkCaptureToolContracts.js +24 -0
- package/dist/contracts/webRuntimeToolContracts.js +43 -0
- package/dist/contracts/webScriptToolContracts.js +68 -0
- package/dist/domain/analysisErrorBase.js +15 -0
- package/dist/domain/analysisErrorCore.js +63 -7
- package/dist/domain/analysisErrorPresentation.js +29 -1
- package/dist/domain/analysisErrorProjection.js +53 -2
- package/dist/domain/analysisSnapshot.js +166 -2
- 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/apple/dyldPaths.js +81 -0
- package/dist/domain/apple/dylibResolution.js +367 -0
- package/dist/domain/apple/dylibResolutionFindings.js +75 -0
- package/dist/domain/{interfaceBuilderGraph.js → apple/interfaceBuilderGraph.js} +47 -314
- 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/artifactInventoryEvidence.js +12 -2
- package/dist/domain/artifactInventorySnapshot.js +1 -0
- package/dist/domain/artifactOperationError.js +5 -1
- package/dist/domain/artifactPathSyntax.js +26 -0
- package/dist/domain/browserNetworkEvidence.js +82 -0
- package/dist/domain/browserObservation.js +1 -1
- package/dist/domain/browserObservationError.js +2 -0
- package/dist/domain/browserObservationSchemas.js +15 -1
- package/dist/domain/browserScenarioCapture.js +22 -0
- package/dist/domain/browserScenarioCaptureValues.js +25 -0
- package/dist/domain/browserScenarioDiff.js +6 -3
- package/dist/domain/browserScenarioDiffEvidence.js +35 -1
- package/dist/domain/browserScenarioValues.js +21 -3
- package/dist/domain/browserSession.js +2 -7
- package/dist/domain/bundleComparison.js +2 -1
- package/dist/domain/callPath.js +52 -44
- package/dist/domain/callPathSchemas.js +1 -1
- package/dist/domain/canonicalDigest.js +13 -1
- package/dist/domain/changedBehavior.js +3 -3
- package/dist/domain/comparisonStatus.js +11 -0
- package/dist/domain/conformanceTrustGate.js +0 -16
- package/dist/domain/evidence.js +17 -5
- package/dist/domain/evidenceBundle.js +98 -35
- package/dist/domain/evm/evmInterface.js +63 -0
- package/dist/domain/explicitSensitiveFailure.js +92 -0
- package/dist/domain/explicitSensitiveValues.js +10 -0
- package/dist/domain/{firmwareAnalysis.js → firmware/firmwareAnalysis.js} +10 -3
- package/dist/domain/functionComparisonNormalization.js +11 -13
- package/dist/domain/hopperValues.js +2 -2
- package/dist/domain/inputIssueProjection.js +17 -2
- package/dist/domain/{electronActiveObservation.js → javascript/electronActiveObservation.js} +9 -4
- package/dist/domain/{electronObservation.js → javascript/electronObservation.js} +5 -11
- package/dist/domain/{electronStaticAnalysisBrowser.js → javascript/electronStaticAnalysisBrowser.js} +4 -3
- package/dist/domain/{electronStaticAnalysisIpc.js → javascript/electronStaticAnalysisIpc.js} +2 -2
- package/dist/domain/{electronStaticAnalysisNative.js → javascript/electronStaticAnalysisNative.js} +12 -13
- package/dist/domain/javascript/electronStaticAnalysisTypes.js +1 -0
- package/dist/domain/{electronStaticAnalysisValues.js → javascript/electronStaticAnalysisValues.js} +3 -3
- package/dist/domain/javascript/htmlArtifactReferences.js +40 -0
- package/dist/domain/{javascriptApplicationAnalysis.js → javascript/javascriptApplicationAnalysis.js} +2 -2
- package/dist/domain/{javascriptApplicationChangeGraph.js → javascript/javascriptApplicationChangeGraph.js} +1 -1
- package/dist/domain/{javascriptApplicationEvidenceSchemas.js → javascript/javascriptApplicationEvidenceSchemas.js} +6 -4
- package/dist/domain/{javascriptApplicationGraph.js → javascript/javascriptApplicationGraph.js} +2 -2
- package/dist/domain/{javascriptApplicationGraphSchemas.js → javascript/javascriptApplicationGraphSchemas.js} +2 -2
- package/dist/domain/{javascriptApplicationVersionComparison.js → javascript/javascriptApplicationVersionComparison.js} +2 -2
- package/dist/domain/{javascriptApplicationVersionComparisonSchemas.js → javascript/javascriptApplicationVersionComparisonSchemas.js} +3 -3
- package/dist/domain/{javascriptApplicationVersionItems.js → javascript/javascriptApplicationVersionItems.js} +2 -2
- 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} +21 -5
- 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} +1 -11
- package/dist/domain/{javascriptFeatureSeed.js → javascript/javascriptFeatureSeed.js} +4 -3
- package/dist/domain/{javascriptFeatureTrace.js → javascript/javascriptFeatureTrace.js} +2 -2
- package/dist/domain/{javascriptFeatureTraceSchemas.js → javascript/javascriptFeatureTraceSchemas.js} +32 -18
- package/dist/domain/{javascriptFeatureTraversal.js → javascript/javascriptFeatureTraversal.js} +6 -2
- package/dist/domain/{javascriptNativeHandoff.js → javascript/javascriptNativeHandoff.js} +1 -1
- package/dist/domain/javascript/javascriptRecovery.js +88 -0
- package/dist/domain/{javascriptRuntimeLoadState.js → javascript/javascriptRuntimeLoadState.js} +1 -1
- package/dist/domain/{javascriptRuntimeObservation.js → javascript/javascriptRuntimeObservation.js} +2 -2
- package/dist/domain/{javascriptRuntimeReconciliationActive.js → javascript/javascriptRuntimeReconciliationActive.js} +3 -3
- package/dist/domain/{javascriptRuntimeReconciliationGraph.js → javascript/javascriptRuntimeReconciliationGraph.js} +1 -1
- package/dist/domain/{javascriptRuntimeReconciliationMatching.js → javascript/javascriptRuntimeReconciliationMatching.js} +2 -2
- package/dist/domain/{javascriptRuntimeReconciliationParsing.js → javascript/javascriptRuntimeReconciliationParsing.js} +5 -5
- package/dist/domain/{javascriptRuntimeReconciliationResult.js → javascript/javascriptRuntimeReconciliationResult.js} +2 -2
- package/dist/domain/{javascriptRuntimeReconciliationSchemas.js → javascript/javascriptRuntimeReconciliationSchemas.js} +4 -4
- package/dist/domain/{javascriptRuntimeStaticCandidates.js → javascript/javascriptRuntimeStaticCandidates.js} +1 -1
- package/dist/domain/{javascriptSemanticAnalysis.js → javascript/javascriptSemanticAnalysis.js} +40 -14
- package/dist/domain/{javascriptSemanticAsyncEffects.js → javascript/javascriptSemanticAsyncEffects.js} +2 -1
- package/dist/domain/{javascriptSemanticCallResolution.js → javascript/javascriptSemanticCallResolution.js} +10 -5
- package/dist/domain/{javascriptSemanticCalls.js → javascript/javascriptSemanticCalls.js} +7 -4
- package/dist/domain/{javascriptSemanticChildProcesses.js → javascript/javascriptSemanticChildProcesses.js} +4 -2
- package/dist/domain/{javascriptSemanticDataEffectHelpers.js → javascript/javascriptSemanticDataEffectHelpers.js} +7 -6
- package/dist/domain/{javascriptSemanticDataEffects.js → javascript/javascriptSemanticDataEffects.js} +8 -6
- package/dist/domain/{javascriptSemanticFingerprints.js → javascript/javascriptSemanticFingerprints.js} +40 -16
- package/dist/domain/{javascriptSemanticGraph.js → javascript/javascriptSemanticGraph.js} +23 -7
- 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} +1 -1
- package/dist/domain/{javascriptSemanticProjection.js → javascript/javascriptSemanticProjection.js} +31 -44
- package/dist/domain/{javascriptSemanticPromises.js → javascript/javascriptSemanticPromises.js} +77 -22
- package/dist/domain/{javascriptSemanticProvenance.js → javascript/javascriptSemanticProvenance.js} +4 -1
- package/dist/domain/{javascriptSemanticQuery.js → javascript/javascriptSemanticQuery.js} +1 -1
- package/dist/domain/{javascriptSemanticQueryAssessment.js → javascript/javascriptSemanticQueryAssessment.js} +1 -1
- package/dist/domain/{javascriptSemanticQueryIdentity.js → javascript/javascriptSemanticQueryIdentity.js} +1 -1
- 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} +1 -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} +72 -48
- package/dist/domain/{javascriptStaticAnalysis.js → javascript/javascriptStaticAnalysis.js} +7 -4
- package/dist/domain/{javascriptStaticAnalysisBundler.js → javascript/javascriptStaticAnalysisBundler.js} +14 -11
- package/dist/domain/{javascriptStaticAnalysisCalls.js → javascript/javascriptStaticAnalysisCalls.js} +2 -2
- package/dist/domain/{javascriptStaticAnalysisHelpers.js → javascript/javascriptStaticAnalysisHelpers.js} +231 -40
- package/dist/domain/{sourceToBundleComparison.js → javascript/sourceToBundleComparison.js} +2 -2
- package/dist/domain/{sourceToBundleComparisonSchemas.js → javascript/sourceToBundleComparisonSchemas.js} +4 -4
- package/dist/domain/{sourceToBundleSignals.js → javascript/sourceToBundleSignals.js} +2 -2
- package/dist/domain/jsonValue.js +4 -0
- package/dist/domain/localPath.js +2 -0
- 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} +4 -4
- package/dist/domain/{managedMemberComparisonCoverage.js → managed/managedMemberComparisonCoverage.js} +2 -1
- package/dist/domain/{managedMemberComparisonItems.js → managed/managedMemberComparisonItems.js} +97 -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} +3 -3
- package/dist/domain/{managedNativeVerificationSchemas.js → managed/managedNativeVerificationSchemas.js} +6 -5
- package/dist/domain/{managedReconstruction.js → managed/managedReconstruction.js} +3 -3
- package/dist/domain/native/binaryLayout.js +357 -0
- package/dist/domain/native/nativeCallObservation.js +164 -0
- package/dist/domain/{nativeFunctionAnnotations.js → native/nativeFunctionAnnotations.js} +1 -1
- package/dist/domain/{nativeInspection.js → native/nativeInspection.js} +1 -1
- package/dist/domain/{nativeInvestigationGraph.js → native/nativeInvestigationGraph.js} +13 -4
- package/dist/domain/{nativeLoadImage.js → native/nativeLoadImage.js} +1 -1
- package/dist/domain/{nativeUiObservation.js → native/nativeUiObservation.js} +20 -6
- package/dist/domain/{objcSwiftMetadata.js → native/objcSwiftMetadata.js} +17 -39
- package/dist/domain/native/recordedCrash.js +266 -0
- package/dist/domain/native/recordedCrashNoteCoverage.js +73 -0
- package/dist/domain/process/processCapture.js +316 -0
- package/dist/domain/{processCaptureExample.js → process/processCaptureExample.js} +5 -0
- package/dist/domain/process/processCaptureParsing.js +54 -0
- package/dist/domain/{processCaptureValidation.js → process/processCaptureValidation.js} +18 -2
- package/dist/domain/{processComparison.js → process/processComparison.js} +1 -1
- package/dist/domain/{processObservation.js → process/processObservation.js} +1 -1
- package/dist/domain/{processScenario.js → process/processScenario.js} +17 -17
- package/dist/domain/{processTraceSpecification.js → process/processTraceSpecification.js} +1 -1
- package/dist/domain/propertyListKeys.js +69 -0
- package/dist/domain/providerCleanupError.js +5 -2
- package/dist/domain/providerSelectionError.js +4 -2
- package/dist/domain/reconstructionCoverageEvaluation.js +46 -24
- package/dist/domain/reconstructionCoverageInput.js +7 -0
- package/dist/domain/reconstructionVerification.js +3 -3
- package/dist/domain/reconstructionVerificationSchemas.js +1 -1
- package/dist/domain/residualUnknown.js +3 -2
- package/dist/domain/runtimeVersion.js +2 -0
- package/dist/domain/sourceMapEnvelope.js +38 -0
- package/dist/domain/staticRuntimeCorrelation.js +3 -3
- package/dist/domain/unicodeCodePointOrder.js +11 -6
- package/dist/domain/webBundleAnalyzerAst.js +2 -34
- package/dist/domain/webBundleAnalyzerInspection.js +12 -9
- package/dist/domain/webCaptureDiff.js +1 -0
- 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/webNetworkCapture.js +118 -0
- package/dist/domain/webNetworkCaptureCoordinates.js +58 -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/ManagedExceptionRegionValidation.js +41 -0
- package/dist/dotnet/ManagedMemberInspector.js +5 -3
- package/dist/dotnet/ManagedMemberInspectorCore.js +72 -32
- package/dist/dotnet/ManagedMemberInstructionDecoder.js +23 -7
- package/dist/dotnet/ManagedMemberRows.js +19 -6
- package/dist/dotnet/ManagedMetadataHeaps.js +20 -2
- package/dist/dotnet/ManagedMetadataInventory.js +38 -28
- package/dist/dotnet/ManagedMetadataInventoryRows.js +24 -10
- package/dist/dotnet/ManagedMethodBodyReader.js +7 -1
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +37 -19
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +59 -51
- package/dist/dotnet/ManagedPeReader.js +11 -0
- package/dist/dotnet/ManagedStaticProvider.js +3 -33
- package/dist/dotnet/ManagedStaticProviderMetadata.js +36 -0
- package/dist/evaluation/CodexAgentEval.js +2 -1
- package/dist/evm/EvmBytecodeCarrier.js +21 -0
- package/dist/evm/EvmWorkerLimits.js +40 -0
- package/dist/evm/EvmoleFailures.js +126 -0
- package/dist/evm/EvmoleInterfaceAdapter.js +53 -0
- package/dist/evm/EvmoleInterfaceProvider.js +273 -0
- package/dist/evm/EvmoleInterfaceWorker.js +87 -0
- package/dist/evm/EvmoleRelease.js +16 -0
- package/dist/firmware/FirmwareCommand.js +1 -0
- package/dist/firmware/FirmwareProvider.js +18 -12
- package/dist/firmware/FirmwarePublication.js +1 -1
- package/dist/firmware/FirmwareRelease.js +1 -1
- package/dist/firmware/FirmwareReports.js +12 -0
- package/dist/firmware/FirmwareVersion.js +80 -0
- package/dist/generatedPackageMetadata.js +2 -2
- package/dist/ghidra/GhidraFunctionValues.js +5 -5
- package/dist/ghidra/GhidraInstallation.js +38 -34
- package/dist/ghidra/GhidraInstallationPolicy.js +140 -0
- package/dist/ghidra/GhidraInventoryValues.js +1 -1
- package/dist/ghidra/GhidraLauncher.js +13 -4
- package/dist/ghidra/GhidraLoadImageAttest.js +36 -0
- package/dist/ghidra/GhidraLoadImageValues.js +1 -1
- package/dist/ghidra/GhidraProvider.js +17 -235
- package/dist/ghidra/GhidraProviderCapabilities.js +8 -15
- package/dist/ghidra/GhidraProviderClient.js +209 -0
- package/dist/ghidra/GhidraResponseBuffer.js +7 -1
- package/dist/ghidra/extensions/nativeaot/NativeAotReport.js +17 -1
- package/dist/hopper/BridgeLauncher.js +2 -0
- package/dist/hopper/HopperProvider.js +2 -48
- package/dist/hopper/HopperProviderCapabilities.js +73 -0
- package/dist/hopper/HopperResponseStream.js +7 -1
- package/dist/hopper/LinuxPrivateDisplayProbe.js +8 -6
- package/dist/ida/IdaProviderCapabilities.js +3 -11
- package/dist/ida/IdaSessionClient.js +12 -0
- package/dist/{browser → inspector}/JavaScriptRuntimeScope.js +16 -5
- package/dist/{browser → inspector}/V8InspectorCaptureProjection.js +46 -8
- package/dist/{browser → inspector}/V8InspectorEndpoint.js +1 -1
- package/dist/{browser → inspector}/V8InspectorProvider.js +10 -13
- package/dist/inspector/providerIdentity.js +6 -0
- package/dist/javascript/recovery/RecoveryFiles.js +122 -0
- package/dist/javascript/recovery/WakaruCommand.js +119 -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 +177 -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 +8 -2
- package/dist/main/transport.js +24 -7
- package/dist/main.js +4 -18
- package/dist/native/AppleDispatchCoverage.js +58 -0
- package/dist/native/AppleDispatchMetadata.js +71 -509
- 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/CommandRunner.js +2 -1
- package/dist/native/LldbCallTracer.js +278 -0
- package/dist/native/NativeCallObservation.js +135 -0
- package/dist/native/NativeMacOSProvider.js +151 -75
- package/dist/native/NativeMacOSProviderMetadata.js +47 -0
- package/dist/native/NativeMachoInspection.js +45 -14
- package/dist/native/NativeUiHelperRuntime.js +7 -3
- package/dist/native/NativeUiObservation.js +8 -4
- 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 +13 -4
- package/dist/native/parsers/echoedPath.js +14 -0
- package/dist/native/parsers/lipo.js +14 -0
- package/dist/native/parsers/otool.js +1 -1
- package/dist/native/parsers/plist.js +174 -19
- package/dist/native/pwndbg/PwndbgCoreContext.js +160 -0
- package/dist/native/pwntools/PwntoolsDecoder.js +203 -0
- package/dist/native/pwntools/PwntoolsFailures.js +180 -0
- package/dist/native/pwntools/PwntoolsLayoutProvider.js +36 -0
- package/dist/native/pwntools/PwntoolsRecordedCrashProvider.js +75 -0
- package/dist/native/pwntools/PwntoolsRelease.js +19 -0
- package/dist/native/pwntools/PwntoolsResourceLimits.js +76 -0
- package/dist/native/pwntools/RecordedCrashSourceBindings.js +46 -0
- package/dist/native/pwntools/RecordedCrashStructureBindings.js +101 -0
- package/dist/process/DarwinProcessRunTokenReader.js +294 -0
- package/dist/process/ExecFileOutput.js +2 -0
- package/dist/process/OwnedCommand.js +113 -0
- package/dist/process/ProcessOwnership.js +263 -33
- package/dist/process/ProcessOwnershipObservation.js +161 -24
- package/dist/process/ProviderProcess.js +68 -20
- package/dist/{application → process/capture}/FilesystemSnapshot.js +20 -5
- package/dist/{application → process/capture}/ProcessCaptureCapability.js +16 -1
- package/dist/{application → process/capture}/ProcessCaptureError.js +17 -1
- package/dist/process/capture/ProcessCaptureLifecycle.js +615 -0
- package/dist/process/capture/ProcessHarness.js +452 -0
- package/dist/{application → process/capture}/ProcessSampling.js +2 -2
- package/dist/reference/ReferenceSourceReaderEntries.js +6 -1
- package/dist/server/createServer.js +70 -6
- package/dist/server/mcpClientMetadata.js +6 -3
- package/dist/server/promptCompletion.js +10 -3
- package/dist/server/registerAndroidTools.js +1 -1
- package/dist/server/registerApplicationTools/compareExportShapes.js +2 -2
- package/dist/server/registerApplicationTools/compareSourceToBundle.js +2 -2
- package/dist/server/registerApplicationTools/compareVersions.js +2 -2
- package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +43 -0
- package/dist/server/registerApplicationTools/traceFeature.js +1 -1
- package/dist/server/registerApplicationTools/traceSemantics.js +1 -1
- package/dist/server/registerApplicationTools.js +2 -0
- package/dist/server/registerBinaryDiagnosticsTools.js +17 -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/registerEvidenceTools.js +1 -1
- package/dist/server/registerEvmTools.js +17 -0
- package/dist/server/registerJavaScriptRecoveryTool.js +17 -0
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +9 -4
- package/dist/server/registerManagedTools.js +3 -3
- package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +2 -2
- package/dist/server/registerManagedWorkflowTools/contract.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/registerProcessComparisonTool.js +1 -1
- package/dist/server/registerPrompts.js +5 -1
- package/dist/server/registerRecordedCrashTools.js +17 -0
- package/dist/server/registerSessionTools.js +3 -3
- package/dist/server/registerWebModuleTool.js +17 -0
- package/dist/server/registerWebNetworkCaptureTool.js +28 -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/sessionAvailabilityPolicy.js +27 -12
- package/dist/server/sessionToolPolicies.js +1 -1
- package/dist/server/toolResult.js +1 -1
- package/dist/windows/WindowsOwnedProcess.js +3 -1
- package/install.sh +12 -2
- package/native/windows/README.md +5 -0
- package/native/windows/build/manifest.json +2 -2
- package/native/windows/build/rea-windows-x64.node +0 -0
- package/package.json +75 -26
- package/scripts/hopper-demo-x11.py +67 -8
- package/scripts/rea.mjs +19 -3
- package/skills/reverse-engineer-anything/SKILL.md +23 -3
- package/skills/reverse-engineer-anything/references/android-applications.md +2 -2
- package/skills/reverse-engineer-anything/references/javascript-applications.md +1 -1
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +61 -23
- package/third_party/README.md +60 -0
- package/third_party/evmole/LICENSE +21 -0
- package/third_party/evmole/README.md +22 -0
- package/third_party/pwndbg/LICENSE.md +21 -0
- package/third_party/pwndbg/README.md +23 -0
- package/third_party/pwntools/README.md +40 -0
- package/dist/application/AuthorizedArtifactInventory.js +0 -7
- package/dist/application/JavaScriptSemanticGraphProjection.js +0 -38
- package/dist/application/ProcessCaptureLifecycle.js +0 -299
- package/dist/application/ProcessHarness.js +0 -275
- package/dist/application/StoreFileLock.js +0 -124
- package/dist/application/runtime.js +0 -53
- package/dist/contracts/processCaptureExample.js +0 -2
- package/dist/domain/appleApplication.js +0 -181
- package/dist/domain/bytecodeProvider.js +0 -178
- package/dist/domain/customProtocolCapture.js +0 -137
- package/dist/domain/eventProcessTree.js +0 -225
- package/dist/domain/javascriptAstValues.js +0 -13
- package/dist/domain/javascriptSemanticTraversal.js +0 -30
- package/dist/domain/mobileApplicationInvestigation.js +0 -159
- package/dist/domain/packageAnalysis.js +0 -123
- package/dist/domain/peInspection.js +0 -197
- package/dist/domain/processCapture.js +0 -177
- package/dist/domain/processCaptureParsing.js +0 -21
- package/dist/domain/protocolCapture.js +0 -217
- package/dist/domain/runtimeIdentification.js +0 -212
- package/dist/generatedMcpToolCatalog.js +0 -37
- package/dist/native/NativeHostCapabilities.js +0 -23
- /package/dist/application/{AndroidAnalysisPort.js → DirectAnalysisDependencies.js} +0 -0
- /package/dist/application/{BinarySessionPort.js → WebModulePorts.js} +0 -0
- /package/dist/application/{ElectronActiveObservationPort.js → WebNetworkCapturePort.js} +0 -0
- /package/dist/application/{ElectronObservationPort.js → WebRuntimePort.js} +0 -0
- /package/dist/application/{FirmwareAnalysisPort.js → WebScriptArtifactPort.js} +0 -0
- /package/dist/application/{JavaScriptArtifactAnalysisTypes.js → WebSourceLocationPorts.js} +0 -0
- /package/dist/application/{JavaScriptRuntimeObservationPort.js → android/AndroidAnalysisPort.js} +0 -0
- /package/dist/application/{ArtifactExtractionDestination.js → artifacts/ArtifactExtractionDestination.js} +0 -0
- /package/dist/application/{AbortablePromise.js → binary/AbortablePromise.js} +0 -0
- /package/dist/{domain/electronStaticAnalysisTypes.js → application/binary/BinarySessionPort.js} +0 -0
- /package/dist/application/{BinarySessionStatus.js → binary/BinarySessionStatus.js} +0 -0
- /package/dist/{domain/javascriptSemanticValueTypes.js → application/binaryDiagnostics/BinaryLayoutPort.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/artifacts/{NibArchive.js → apple/NibArchive.js} +0 -0
- /package/dist/{application/ArtifactInventory → artifacts/inventory}/policy.js +0 -0
- /package/dist/{application/ArtifactInventory → artifacts/inventory}/types.js +0 -0
- /package/dist/domain/{androidAnalysis.js → android/androidAnalysis.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/{javascriptSourceParser.js → javascript/javascriptSourceParser.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/{nativeDataType.js → native/nativeDataType.js} +0 -0
- /package/dist/domain/{nativeInstruction.js → native/nativeInstruction.js} +0 -0
- /package/dist/domain/{nativeMetadataRecovery.js → native/nativeMetadataRecovery.js} +0 -0
- /package/dist/domain/{nativeValueFlow.js → native/nativeValueFlow.js} +0 -0
- /package/dist/domain/{nativeValueTrace.js → native/nativeValueTrace.js} +0 -0
- /package/dist/domain/{processEvidenceProvider.js → process/processEvidenceProvider.js} +0 -0
- /package/dist/domain/{processTraceComparison.js → process/processTraceComparison.js} +0 -0
- /package/dist/domain/{processTraceDimensionProjection.js → process/processTraceDimensionProjection.js} +0 -0
- /package/dist/domain/{processTraceEvaluation.js → process/processTraceEvaluation.js} +0 -0
- /package/dist/{application → process/capture}/ProcessCaptureEnvironment.js +0 -0
- /package/dist/{application → process/capture}/ProcessCaptureJournal.js +0 -0
- /package/dist/{application → process/capture}/ProcessFilesystemEffects.js +0 -0
- /package/dist/{application → process/capture}/ProcessNormalization.js +0 -0
- /package/dist/{application → process/capture}/ProcessScenarioRuntimeValidation.js +0 -0
- /package/dist/{application → process/capture}/ProcessTimer.js +0 -0
- /package/dist/{application → process/capture}/TerminalRenderer.js +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { canonicalDigest } from "../domain/comparisonSemantics.js";
|
|
2
|
+
import { createEvidence } from "../domain/evidence.js";
|
|
3
|
+
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
4
|
+
const inventory = (format, digit) => {
|
|
5
|
+
const sha = digit.repeat(64);
|
|
6
|
+
const artifactId = `art_${canonicalDigest({ sha256: sha }, "Artifact inventory")}`;
|
|
7
|
+
const occurrenceId = `occ_${canonicalDigest({ root: artifactId }, "Artifact inventory")}`;
|
|
8
|
+
const nodes = [
|
|
9
|
+
{
|
|
10
|
+
artifact_id: artifactId,
|
|
11
|
+
kind: "resource",
|
|
12
|
+
format,
|
|
13
|
+
sha256: sha,
|
|
14
|
+
size: 1,
|
|
15
|
+
media_type: null,
|
|
16
|
+
architecture: null,
|
|
17
|
+
executable: false,
|
|
18
|
+
content_state: "materialized",
|
|
19
|
+
limitations: [],
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
const occurrences = [
|
|
23
|
+
{
|
|
24
|
+
occurrence_id: occurrenceId,
|
|
25
|
+
artifact_id: artifactId,
|
|
26
|
+
parent_occurrence_id: null,
|
|
27
|
+
logical_path: ".",
|
|
28
|
+
entry_kind: "file",
|
|
29
|
+
declared_size: 1,
|
|
30
|
+
compressed_size: null,
|
|
31
|
+
executable: false,
|
|
32
|
+
encrypted: false,
|
|
33
|
+
hash_status: "verified",
|
|
34
|
+
source_location: null,
|
|
35
|
+
limitations: [],
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
const graphSha256 = canonicalDigest({
|
|
39
|
+
nodes,
|
|
40
|
+
occurrences,
|
|
41
|
+
edges: [],
|
|
42
|
+
integrity_contradictions: [],
|
|
43
|
+
}, "Artifact inventory");
|
|
44
|
+
return jsonValueSchema.parse({
|
|
45
|
+
manifest: {
|
|
46
|
+
manifest_id: `agm_${canonicalDigest({
|
|
47
|
+
root_artifact_id: artifactId,
|
|
48
|
+
graph_sha256: graphSha256,
|
|
49
|
+
}, "Artifact inventory")}`,
|
|
50
|
+
root_artifact_id: artifactId,
|
|
51
|
+
root_sha256: sha,
|
|
52
|
+
root_format: format,
|
|
53
|
+
graph_sha256: graphSha256,
|
|
54
|
+
node_count: nodes.length,
|
|
55
|
+
occurrence_count: occurrences.length,
|
|
56
|
+
edge_count: 0,
|
|
57
|
+
},
|
|
58
|
+
nodes,
|
|
59
|
+
occurrences,
|
|
60
|
+
edges: [],
|
|
61
|
+
provenance: [],
|
|
62
|
+
limitations: [],
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
const provider = {
|
|
66
|
+
id: "rea-artifact-graph",
|
|
67
|
+
name: "REA safe artifact graph provider",
|
|
68
|
+
version: "1",
|
|
69
|
+
};
|
|
70
|
+
/** Catalog example for Android application inventory projection. */
|
|
71
|
+
export const ANDROID_APPLICATION_GRAPH_EXAMPLE = {
|
|
72
|
+
inventory_evidence: [
|
|
73
|
+
createEvidence({ path: "Fixture.apk", sha256: "a".repeat(64), format: "apk" }, provider, {
|
|
74
|
+
operation: "inventory_artifact",
|
|
75
|
+
parameters: {},
|
|
76
|
+
result: inventory("apk", "a"),
|
|
77
|
+
confidence: "observed",
|
|
78
|
+
authority: "shipped-artifact",
|
|
79
|
+
}),
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
/** Catalog example for Apple application inventory projection. */
|
|
83
|
+
export const APPLE_APPLICATION_GRAPH_EXAMPLE = {
|
|
84
|
+
inventory_evidence: [
|
|
85
|
+
createEvidence({ path: "Fixture.ipa", sha256: "b".repeat(64), format: "ipa" }, provider, {
|
|
86
|
+
operation: "inventory_artifact",
|
|
87
|
+
parameters: {},
|
|
88
|
+
result: inventory("ipa", "b"),
|
|
89
|
+
confidence: "observed",
|
|
90
|
+
authority: "shipped-artifact",
|
|
91
|
+
}),
|
|
92
|
+
],
|
|
93
|
+
};
|
|
94
|
+
/** Catalog example for a macOS application bundle inventoried as a directory. */
|
|
95
|
+
export const MACOS_APPLICATION_GRAPH_EXAMPLE = {
|
|
96
|
+
inventory_evidence: [
|
|
97
|
+
createEvidence({ path: "Fixture.app", sha256: "c".repeat(64), format: "directory" }, provider, {
|
|
98
|
+
operation: "inventory_artifact",
|
|
99
|
+
parameters: {},
|
|
100
|
+
result: inventory("directory", "c"),
|
|
101
|
+
confidence: "observed",
|
|
102
|
+
authority: "shipped-artifact",
|
|
103
|
+
}),
|
|
104
|
+
],
|
|
105
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { inspectRecordedCrashInputSchema, recordedCrashSchema, } from "../../domain/native/recordedCrash.js";
|
|
2
|
+
import { inspectBinaryLayoutInputSchema, binaryLayoutSchema, } from "../../domain/native/binaryLayout.js";
|
|
3
|
+
import { toolContractMetadata } from "../toolEffects.js";
|
|
4
|
+
import { evidenceResultOf } from "../toolOutputSchemas.js";
|
|
5
|
+
/** Offline binary diagnostics are independent of macOS process/UI providers. */
|
|
6
|
+
export const BINARY_DIAGNOSTICS_TOOL_CONTRACTS = [
|
|
7
|
+
{
|
|
8
|
+
name: "inspect_binary_layout",
|
|
9
|
+
...toolContractMetadata("inspect_binary_layout"),
|
|
10
|
+
kind: "native-provider",
|
|
11
|
+
description: "Inspect an explicit local binary without launching it as a host process. Returns file-backed section/segment ranges, linked addresses, original symbol/REL/RELA table identities, complete encoded RELR tables and upstream-derived offsets with unknown per-word locations/addends, raw name bytes, dependency/interpreter names and static mitigation inferences inline with artifact SHA-256 Evidence. Initial profile: ELF64 x86-64 little-endian EXEC/DYN/REL on Linux x64 via caller-supplied Python with unchanged pwntools 4.15.0, pyelftools 0.33 and Unicorn 2.1.2. Runtime addresses/library paths, overall relocation inventory completeness and complete derived GOT/PLT coverage remain unknown. Zero executable entry values mean absence; relocatable entries are not applicable. Upstream can emulate PLT instructions with Unicorn for derived static maps. Uses bounded complete output and owned temporary files/processes; malformed, unsupported or oversized objects return no partial success.",
|
|
12
|
+
inputSchema: inspectBinaryLayoutInputSchema,
|
|
13
|
+
outputSchema: evidenceResultOf(binaryLayoutSchema),
|
|
14
|
+
examples: [
|
|
15
|
+
{
|
|
16
|
+
title: "Inspect ELF linked and file layout",
|
|
17
|
+
input: { path: "/artifacts/application.elf" },
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "inspect_recorded_crash",
|
|
23
|
+
...toolContractMetadata("inspect_recorded_crash"),
|
|
24
|
+
kind: "native-provider",
|
|
25
|
+
description: "Inspect a supplied Linux ELF64 amd64 little-endian core without launching its target or attaching to any live PID. Returns all recorded segments, raw note owners/descriptors and source ranges, every Linux CORE PRSTATUS thread/register and SIGINFO fields inline with SHA-256 Evidence. Historical PID is recorded metadata; current process/file identity, note coverage and signal-thread associations stay unknown. Optionally add derived core-only GDB/pwndbg mapping candidates through explicit BYO configuration; zero map flags mean unknown permissions. Uses the same stable snapshot for both stages, bounded complete output and owned cleanup. Initial Linux x64 profile: unchanged pwntools 4.15.0/pyelftools 0.33/Unicorn 2.1.2; optional unchanged pwndbg 2026.09.15. No implicit executable/library pairing, GDB command language, host configuration changes or dependency installation.",
|
|
26
|
+
inputSchema: inspectRecordedCrashInputSchema,
|
|
27
|
+
outputSchema: evidenceResultOf(recordedCrashSchema),
|
|
28
|
+
examples: [
|
|
29
|
+
{
|
|
30
|
+
title: "Inspect recorded registers and signal evidence",
|
|
31
|
+
input: { path: "/artifacts/crash.core" },
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: "Add core-only debugger mapping candidates",
|
|
35
|
+
input: {
|
|
36
|
+
path: "/artifacts/crash.core",
|
|
37
|
+
include_debugger_context: true,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
];
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { nativeCallObservationInputSchema } from "../../domain/native/nativeCallObservation.js";
|
|
3
|
+
import { nativeUiObservationInputSchema, nativeUiScenarioInputSchema, } from "../../domain/native/nativeUiObservation.js";
|
|
4
|
+
import { nativeOutputSchemas } from "../toolOutputSchemas.js";
|
|
5
|
+
import { jsonValueSchema } from "../../domain/jsonValue.js";
|
|
6
|
+
import { toolContractMetadata } from "../toolEffects.js";
|
|
7
|
+
import { requireOutputSchema } from "../toolOutputSchemaPrimitives.js";
|
|
7
8
|
const examples = {
|
|
8
9
|
inspect_macho: {},
|
|
9
10
|
inspect_signature: {},
|
|
@@ -16,15 +17,29 @@ const examples = {
|
|
|
16
17
|
steps: [{ kind: "wait", milliseconds: 100 }],
|
|
17
18
|
},
|
|
18
19
|
demangle_swift: { symbols: ["$s4Test3fooyyF"] },
|
|
20
|
+
observe_native_calls: {
|
|
21
|
+
breakpoints: [
|
|
22
|
+
{
|
|
23
|
+
kind: "objc-method",
|
|
24
|
+
class_name: "NSURLSession",
|
|
25
|
+
selector: "dataTaskWithRequest:completionHandler:",
|
|
26
|
+
},
|
|
27
|
+
{ kind: "function", name: "open", module: "libsystem_kernel.dylib" },
|
|
28
|
+
],
|
|
29
|
+
arguments: ["--help"],
|
|
30
|
+
duration_ms: 5000,
|
|
31
|
+
backtrace_frames: 4,
|
|
32
|
+
},
|
|
19
33
|
};
|
|
20
34
|
const native = (name, description, inputSchema) => {
|
|
21
35
|
const outputSchema = requireOutputSchema(nativeOutputSchemas, name);
|
|
36
|
+
const strictInputSchema = inputSchema.strict();
|
|
22
37
|
return {
|
|
23
38
|
name,
|
|
24
39
|
...toolContractMetadata(name),
|
|
25
40
|
description,
|
|
26
41
|
kind: "native-provider",
|
|
27
|
-
inputSchema,
|
|
42
|
+
inputSchema: strictInputSchema,
|
|
28
43
|
outputSchema,
|
|
29
44
|
examples: [
|
|
30
45
|
{
|
|
@@ -36,17 +51,25 @@ const native = (name, description, inputSchema) => {
|
|
|
36
51
|
],
|
|
37
52
|
};
|
|
38
53
|
};
|
|
54
|
+
/** Ordered single-line symbols; `swift-demangle` ends each result with LF. */
|
|
55
|
+
export const swiftSymbolsSchema = z
|
|
56
|
+
.array(z
|
|
57
|
+
.string()
|
|
58
|
+
.min(1)
|
|
59
|
+
.regex(/^[^\n]*$/u, "Each Swift symbol must be one line."))
|
|
60
|
+
.min(1);
|
|
39
61
|
/** Provider-neutral semantic operations backed initially by macOS utilities. */
|
|
40
62
|
export const NATIVE_TOOL_CONTRACTS = [
|
|
41
63
|
native("observe_native_ui", "Observe an already-running native app by PID and window ID, bound to the active Mach-O target. Captures a bounded accessibility tree and selected-window screenshot; OS permission denial fails without broad capture or target launch.", nativeUiObservationInputSchema),
|
|
42
64
|
native("capture_native_ui_scenario", "Run selected-element press, increment/decrement scroll, AXValue text entry and bounded wait steps in one exact native app window. Returns ordered before/after captures and action/capture failures. Actions can change app data, network activity and persistent state; application state is left as-is and restoration is not attempted.", nativeUiScenarioInputSchema),
|
|
65
|
+
native("observe_native_calls", "Launch the active Mach-O as an owned process under LLDB and record each entry into caller-selected functions or Objective-C methods: thread, module, symbol, load and file address, raw argument registers, selector, receiver class and optional caller frames. Every hit auto-continues. No expression is evaluated and no other process is attached. The process is killed when max_events or duration_ms is reached; exit status, captured stdout/stderr, unresolved breakpoints and limitations are returned inline. The process runs with the current user's permissions and may change files, show UI or use the network. A hardened-runtime target needs the get-task-allow entitlement.", nativeCallObservationInputSchema),
|
|
43
66
|
native("inspect_macho", "Inspect Mach-O slices, load commands, imports, exports, dependencies, build metadata, segments, sections, permissions, and exact command provenance without launching Hopper.", z.object({})),
|
|
44
67
|
native("inspect_signature", "Inspect the active artifact's code-signing identity, hashes, authorities, requirements, entitlements, hardened-runtime state, and exact command provenance.", z.object({})),
|
|
45
68
|
native("inspect_plist", "Parse Info.plist from the active artifact by default, or pass any local plist path. Returns normalized JSON rather than plutil text.", z.object({
|
|
46
69
|
path: z.string().min(1).optional(),
|
|
47
70
|
})),
|
|
48
71
|
native("list_architectures", "List thin or universal Mach-O slices with offsets, sizes, alignment, explicit coverage, and native-tool provenance.", z.object({})),
|
|
49
|
-
native("demangle_swift", "Demangle an ordered list of Swift symbols without requiring Hopper. Each input returns demangled, unchanged, or invalid status.", z.object({
|
|
50
|
-
symbols:
|
|
72
|
+
native("demangle_swift", "Demangle an ordered list of single-line Swift symbols without requiring Hopper. Each input returns demangled, unchanged, or invalid status.", z.object({
|
|
73
|
+
symbols: swiftSymbolsSchema,
|
|
51
74
|
})),
|
|
52
75
|
];
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { nativeFunctionAnnotationsInputSchema } from "../domain/nativeFunctionAnnotations.js";
|
|
2
|
+
import { nativeFunctionAnnotationsInputSchema } from "../domain/native/nativeFunctionAnnotations.js";
|
|
3
3
|
import { officialOutputSchemas, requireOutputSchema, } from "./toolOutputSchemas.js";
|
|
4
4
|
import { address, document, examplesFor, optionalAddress, procedure, } from "./toolContractHelpers.js";
|
|
5
5
|
import { toolContractMetadata } from "./toolEffects.js";
|
|
6
|
-
import { nativeDataTypeInputSchema } from "../domain/nativeDataType.js";
|
|
7
|
-
import { nativeInstructionInputSchema } from "../domain/nativeInstruction.js";
|
|
6
|
+
import { nativeDataTypeInputSchema } from "../domain/native/nativeDataType.js";
|
|
7
|
+
import { nativeInstructionInputSchema } from "../domain/native/nativeInstruction.js";
|
|
8
8
|
import { functionInstructionInputSchema } from "./functionInstructionContract.js";
|
|
9
9
|
import { HOPPER_MEMORY_TOOL_DEFINITIONS } from "./hopperMemoryContracts.js";
|
|
10
10
|
import { analysisSearchInput } from "./analysisSearchContract.js";
|
|
11
|
-
const official = (name, description, inputSchema) =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
const official = (name, description, inputSchema) => {
|
|
12
|
+
const strictInputSchema = inputSchema.strict();
|
|
13
|
+
return {
|
|
14
|
+
name,
|
|
15
|
+
...toolContractMetadata(name),
|
|
16
|
+
description,
|
|
17
|
+
kind: "official-proxy",
|
|
18
|
+
inputSchema: strictInputSchema,
|
|
19
|
+
outputSchema: requireOutputSchema(officialOutputSchemas, name),
|
|
20
|
+
examples: examplesFor(name, strictInputSchema),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
20
23
|
/** Bridge operations exposed without additional application composition. */
|
|
21
24
|
export const OFFICIAL_TOOL_CONTRACTS = [
|
|
22
25
|
official("annotate_native_function", "Atomically update one function name and/or entry comments, read them back, and return a refreshed complete function dossier. Ghidra changes its ephemeral session analysis database only; original executable bytes remain unchanged. Empty comment text clears that comment. Edits remain available to subsequent MCP calls until close; CLI returns the updated dossier before discarding its session. Invalid edits roll back the entire operation. Windows P0 and providers without this capability are unsupported.", nativeFunctionAnnotationsInputSchema),
|
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
import { executableFormatHintSchema } from "../domain/dosCom.js";
|
|
2
|
+
import { isAbsoluteLocalPath } from "../domain/localPath.js";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
import { analysisProviderSelectorSchema } from "./providerSelection.js";
|
|
5
|
+
/** Caller-supplied analysis snapshot path; must name its destination absolutely. */
|
|
6
|
+
const snapshotPathSchema = z
|
|
7
|
+
.string()
|
|
8
|
+
.min(1)
|
|
9
|
+
.refine(isAbsoluteLocalPath, {
|
|
10
|
+
message: "snapshot_path must be an absolute local filesystem path (for example /tmp/rea/analysis.json or C:\\rea\\analysis.json)",
|
|
11
|
+
})
|
|
12
|
+
.describe("Absolute local filesystem path for the analysis snapshot; relative paths are rejected.");
|
|
13
|
+
/** Caller-supplied analysis target path; must name the target absolutely. */
|
|
14
|
+
const binaryTargetPathSchema = z
|
|
15
|
+
.string()
|
|
16
|
+
.min(1)
|
|
17
|
+
.refine(isAbsoluteLocalPath, {
|
|
18
|
+
message: "path must be an absolute local filesystem path (for example /tmp/fixture.bin or C:\\analysis\\fixture.bin)",
|
|
19
|
+
})
|
|
20
|
+
.describe("Absolute local filesystem path for the analysis target; relative paths are rejected.");
|
|
4
21
|
/** Input contract for opening a target with an optional staged snapshot. */
|
|
5
|
-
export const openBinaryInputSchema = z.
|
|
6
|
-
path:
|
|
22
|
+
export const openBinaryInputSchema = z.strictObject({
|
|
23
|
+
path: binaryTargetPathSchema,
|
|
7
24
|
format: executableFormatHintSchema
|
|
8
25
|
.optional()
|
|
9
26
|
.describe("Explicit headerless DOS COM interpretation; omission preserves header-based detection"),
|
|
10
27
|
provider_id: analysisProviderSelectorSchema.optional(),
|
|
11
|
-
snapshot_path:
|
|
28
|
+
snapshot_path: snapshotPathSchema.optional(),
|
|
12
29
|
});
|
|
13
30
|
/** Input contract for closing a target after an optional atomic snapshot. */
|
|
14
|
-
export const closeBinaryInputSchema = z.
|
|
15
|
-
snapshot_path:
|
|
31
|
+
export const closeBinaryInputSchema = z.strictObject({
|
|
32
|
+
snapshot_path: snapshotPathSchema.optional(),
|
|
16
33
|
overwrite: z.boolean().default(false),
|
|
17
34
|
});
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { isAbsoluteLocalPath } from "../domain/localPath.js";
|
|
2
3
|
/** Optional expectations used to compare the live session with its caller. */
|
|
3
|
-
export const binarySessionInputSchema = z.
|
|
4
|
+
export const binarySessionInputSchema = z.strictObject({
|
|
4
5
|
expected_package_version: z.string().min(1).optional(),
|
|
5
6
|
expected_catalog_digest: z
|
|
6
7
|
.string()
|
|
7
8
|
.regex(/^[a-f0-9]{64}$/u)
|
|
8
9
|
.optional(),
|
|
9
|
-
expected_server_path: z
|
|
10
|
+
expected_server_path: z
|
|
11
|
+
.string()
|
|
12
|
+
.min(1)
|
|
13
|
+
.refine(isAbsoluteLocalPath, {
|
|
14
|
+
message: "expected_server_path must be an absolute local filesystem path (for example /opt/rea/dist/main.js)",
|
|
15
|
+
})
|
|
16
|
+
.describe("Absolute local filesystem path expected for the running server; relative paths are rejected.")
|
|
17
|
+
.optional(),
|
|
10
18
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { isAbsoluteLocalPath } from "../domain/localPath.js";
|
|
2
3
|
import { sessionOutputSchemas, requireOutputSchema, } from "./toolOutputSchemas.js";
|
|
3
4
|
import { addressContextInputSchema, artifactComparisonInputSchema, binarySessionInputSchema, bundleComparisonInputSchema, callPathInputSchema, changedBehaviorInputSchema, closeBinaryInputSchema, functionComparisonInputSchema, importEvidenceBundleInputSchema, listUnknownsInputSchema, navigationContextInputSchema, openBinaryInputSchema, processComparisonInputSchema, processScenarioSchema, reconstructionVerificationInputSchema, recordUnknownInputSchema, getEvidenceBundleInputSchema, staticRuntimeCorrelationInputSchema, updateUnknownInputSchema, verifyUnknownResolutionInputSchema, } from "./sessionToolSchemas.js";
|
|
4
5
|
import { examplesFor } from "./toolContractHelpers.js";
|
|
@@ -14,7 +15,13 @@ const session = (name, description, inputSchema) => ({
|
|
|
14
15
|
});
|
|
15
16
|
/** Session-owned Evidence bundle export options. */
|
|
16
17
|
export const exportEvidenceBundleInputSchema = z.strictObject({
|
|
17
|
-
path: z
|
|
18
|
+
path: z
|
|
19
|
+
.string()
|
|
20
|
+
.min(1)
|
|
21
|
+
.refine(isAbsoluteLocalPath, {
|
|
22
|
+
message: "path must be an absolute local filesystem path (for example /tmp/rea/evidence.json or C:\\rea\\evidence.json)",
|
|
23
|
+
})
|
|
24
|
+
.describe("Absolute local filesystem path for the exported evidence bundle; relative paths are rejected."),
|
|
18
25
|
overwrite: z.boolean().default(false),
|
|
19
26
|
});
|
|
20
27
|
/** Target lifecycle tools available only on the long-lived MCP adapter. */
|
|
@@ -24,7 +31,7 @@ export const SESSION_TOOL_CONTRACTS = [
|
|
|
24
31
|
session("binary_session", "Report the complete current target, provider, capability availability, client-feature, analysis, and server-identity status without starting analysis.", binarySessionInputSchema),
|
|
25
32
|
session("export_evidence_bundle", "Atomically write the session's deterministic Evidence bundle to the requested local path. Existing files require overwrite: true; records and manifests use canonical byte-stable ordering.", exportEvidenceBundleInputSchema),
|
|
26
33
|
session("import_evidence_bundle", "Read the JSON bundle at the supplied local path, validate every Evidence ID and canonical manifest, then atomically merge it. Imported content is data only and is never executed.", importEvidenceBundleInputSchema),
|
|
27
|
-
session("capture_process_scenario", "Run one caller-selected command under a PTY and return process capture Evidence with residual unknowns. A command name resolves through the inherited PATH; the working directory defaults to the caller's current directory; host environment variables are inherited with scenario overrides. Filesystem snapshots are opt-in through filesystem_observation_paths. The target runs with the current user's permissions; this is not a security sandbox.", processScenarioSchema),
|
|
34
|
+
session("capture_process_scenario", "Run one caller-selected command under a PTY and return process capture Evidence with residual unknowns. A command name resolves through the inherited PATH; the working directory defaults to the caller's current directory; host environment variables are inherited with scenario overrides. Environment keys cannot contain '=' or NUL, and REA_PROCESS_RUN_ID is reserved for process ownership. Filesystem snapshots are opt-in through filesystem_observation_paths. The target runs with the current user's permissions; this is not a security sandbox.", processScenarioSchema),
|
|
28
35
|
session("compare_process_captures", "Compare two compatible process capture observations across terminal, interaction, lifecycle, process, filesystem, command-shim, HTTP, and WebSocket evidence. Optional trace_spec validates exact events against an explicit partial order or finite trace language; concurrency is never inferred from timestamps or broad sorting. Missing, journal-free, or truncated observations are never treated as equivalent.", processComparisonInputSchema),
|
|
29
36
|
session("compare_artifacts", "Compare complete artifact inventories by logical occurrence path, content identity, metadata, and graph relations. Pass the inventory Evidence nested in each inspect_artifact result as left and right. Every delta cites both inputs, and gaps yield truncated or unknown, never equivalence. Returns every change inline.", artifactComparisonInputSchema),
|
|
30
37
|
session("compare_functions", "Compare two explicit sets of analyze_function Evidence across identity, exact provider text, calls, references, strings, and address-normalized CFG topology. Missing or provider-incompatible facets remain truncated or unknown; every conclusion cites both Evidence sets.", functionComparisonInputSchema),
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { isAbsoluteLocalPath } from "../domain/localPath.js";
|
|
2
3
|
import { artifactComparisonInputSchema } from "../domain/artifactComparison.js";
|
|
3
4
|
import { bundleComparisonInputSchema } from "../domain/bundleComparison.js";
|
|
4
5
|
import { callPathInputSchema } from "../domain/callPath.js";
|
|
5
6
|
import { changedBehaviorInputSchema } from "../domain/changedBehavior.js";
|
|
6
7
|
import { functionComparisonInputSchema } from "../domain/functionComparison.js";
|
|
7
8
|
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
8
|
-
import { processScenarioSchema } from "../domain/processCapture.js";
|
|
9
|
-
import { processTraceSpecificationSchema } from "../domain/processTraceComparison.js";
|
|
9
|
+
import { processScenarioSchema } from "../domain/process/processCapture.js";
|
|
10
|
+
import { processTraceSpecificationSchema } from "../domain/process/processTraceComparison.js";
|
|
10
11
|
import { recordUnknownInputSchema } from "../domain/residualUnknown.js";
|
|
11
12
|
import { reconstructionVerificationInputSchema } from "../domain/reconstructionVerification.js";
|
|
12
13
|
import { staticRuntimeCorrelationInputSchema } from "../domain/staticRuntimeCorrelation.js";
|
|
@@ -28,7 +29,13 @@ export const addressContextInputSchema = z.strictObject({
|
|
|
28
29
|
});
|
|
29
30
|
/** Session-owned Evidence bundle import options. */
|
|
30
31
|
export const importEvidenceBundleInputSchema = z.strictObject({
|
|
31
|
-
path: z
|
|
32
|
+
path: z
|
|
33
|
+
.string()
|
|
34
|
+
.min(1)
|
|
35
|
+
.refine(isAbsoluteLocalPath, {
|
|
36
|
+
message: "path must be an absolute local filesystem path (for example /tmp/evidence.json or C:\\rea\\evidence.json)",
|
|
37
|
+
})
|
|
38
|
+
.describe("Absolute local filesystem path for the evidence bundle to import; relative paths are rejected."),
|
|
32
39
|
});
|
|
33
40
|
/** Evidence references for deterministic process comparison. */
|
|
34
41
|
export const processComparisonInputSchema = z.strictObject({
|
|
@@ -47,7 +47,7 @@ export const TOOL_EXAMPLE_OVERRIDES = {
|
|
|
47
47
|
open_binary: { path: "/tmp/fixture" },
|
|
48
48
|
export_evidence_bundle: { path: "/tmp/evidence.json" },
|
|
49
49
|
inspect_address_context: { address: "0x1000" },
|
|
50
|
-
import_evidence_bundle: { path: "evidence.json" },
|
|
50
|
+
import_evidence_bundle: { path: "/tmp/evidence.json" },
|
|
51
51
|
capture_process_scenario: {
|
|
52
52
|
executable: "/usr/bin/true",
|
|
53
53
|
working_directory: "/tmp",
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EVM_TOOL_CONTRACTS } from "./evm/evmToolContracts.js";
|
|
2
|
+
import { BINARY_DIAGNOSTICS_TOOL_CONTRACTS } from "./native/binaryDiagnosticsToolContracts.js";
|
|
3
|
+
import { NATIVE_TOOL_CONTRACTS } from "./native/nativeToolContracts.js";
|
|
2
4
|
import { ARTIFACT_TOOL_CONTRACTS } from "./artifactToolContracts.js";
|
|
3
|
-
import { MANAGED_TOOL_CONTRACTS } from "./managedToolContracts.js";
|
|
4
|
-
import { FIRMWARE_TOOL_CONTRACTS } from "./firmwareToolContracts.js";
|
|
5
|
-
import { ANDROID_TOOL_CONTRACTS } from "./androidToolContracts.js";
|
|
6
|
-
import { MANAGED_WORKFLOW_TOOL_CONTRACTS } from "./managedWorkflowToolContracts.js";
|
|
5
|
+
import { MANAGED_TOOL_CONTRACTS } from "./managed/managedToolContracts.js";
|
|
6
|
+
import { FIRMWARE_TOOL_CONTRACTS } from "./firmware/firmwareToolContracts.js";
|
|
7
|
+
import { ANDROID_TOOL_CONTRACTS } from "./android/androidToolContracts.js";
|
|
8
|
+
import { MANAGED_WORKFLOW_TOOL_CONTRACTS } from "./managed/managedWorkflowToolContracts.js";
|
|
7
9
|
import { BROWSER_PROVIDER_TOOL_CONTRACTS } from "./browserProviderToolContracts.js";
|
|
8
|
-
import { ELECTRON_TOOL_CONTRACTS } from "./electronToolContracts.js";
|
|
9
|
-
import { JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS } from "./javascriptRuntimeObservationToolContracts.js";
|
|
10
|
+
import { ELECTRON_TOOL_CONTRACTS } from "./javascript/electronToolContracts.js";
|
|
11
|
+
import { JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS } from "./javascript/javascriptRuntimeObservationToolContracts.js";
|
|
10
12
|
import { APPLICATION_TOOL_CONTRACTS } from "./applicationToolContracts.js";
|
|
13
|
+
import { WEB_SCRIPT_TOOL_CONTRACTS } from "./webScriptToolContracts.js";
|
|
14
|
+
import { WEB_RUNTIME_TOOL_CONTRACTS } from "./webRuntimeToolContracts.js";
|
|
15
|
+
import { WEB_NETWORK_CAPTURE_TOOL_CONTRACTS } from "./webNetworkCaptureToolContracts.js";
|
|
16
|
+
import { JAVASCRIPT_RECOVERY_TOOL_CONTRACTS } from "./javascript/javascriptRecoveryToolContracts.js";
|
|
11
17
|
import { OFFICIAL_TOOL_CONTRACTS } from "./officialToolContracts.js";
|
|
12
18
|
import { ENHANCED_TOOL_CONTRACTS } from "./enhancedToolContracts.js";
|
|
13
19
|
import { SESSION_TOOL_CONTRACTS } from "./sessionToolContracts.js";
|
|
@@ -16,7 +22,9 @@ export const TOOL_CONTRACTS = [
|
|
|
16
22
|
...OFFICIAL_TOOL_CONTRACTS,
|
|
17
23
|
...ENHANCED_TOOL_CONTRACTS,
|
|
18
24
|
...NATIVE_TOOL_CONTRACTS,
|
|
25
|
+
...BINARY_DIAGNOSTICS_TOOL_CONTRACTS,
|
|
19
26
|
...ARTIFACT_TOOL_CONTRACTS,
|
|
27
|
+
...EVM_TOOL_CONTRACTS,
|
|
20
28
|
...MANAGED_TOOL_CONTRACTS,
|
|
21
29
|
...ANDROID_TOOL_CONTRACTS,
|
|
22
30
|
...FIRMWARE_TOOL_CONTRACTS,
|
|
@@ -25,6 +33,10 @@ export const TOOL_CONTRACTS = [
|
|
|
25
33
|
...ELECTRON_TOOL_CONTRACTS,
|
|
26
34
|
...JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS,
|
|
27
35
|
...APPLICATION_TOOL_CONTRACTS,
|
|
36
|
+
...WEB_SCRIPT_TOOL_CONTRACTS,
|
|
37
|
+
...WEB_RUNTIME_TOOL_CONTRACTS,
|
|
38
|
+
...WEB_NETWORK_CAPTURE_TOOL_CONTRACTS,
|
|
39
|
+
...JAVASCRIPT_RECOVERY_TOOL_CONTRACTS,
|
|
28
40
|
...SESSION_TOOL_CONTRACTS,
|
|
29
41
|
];
|
|
30
42
|
/** Resolve a public contract by name while retaining its exact schema types. */
|
|
@@ -18,6 +18,45 @@ const browserEvidence = effects({
|
|
|
18
18
|
const sessionEvidence = effects({ mutatesSession: true });
|
|
19
19
|
/** Explicit effect audit for every public tool. */
|
|
20
20
|
export const TOOL_EFFECTS = {
|
|
21
|
+
inspect_evm_interface: effects({
|
|
22
|
+
mutatesSession: true,
|
|
23
|
+
writesFilesystem: true,
|
|
24
|
+
launchesProcess: true,
|
|
25
|
+
}),
|
|
26
|
+
inspect_web_network_capture: effects({
|
|
27
|
+
mutatesSession: true,
|
|
28
|
+
writesFilesystem: true,
|
|
29
|
+
launchesProcess: true,
|
|
30
|
+
}),
|
|
31
|
+
observe_web_execution: effects({
|
|
32
|
+
mutatesTarget: true,
|
|
33
|
+
mutatesSession: true,
|
|
34
|
+
accessesNetwork: true,
|
|
35
|
+
mayDiscardData: true,
|
|
36
|
+
idempotent: false,
|
|
37
|
+
}),
|
|
38
|
+
inspect_web_event_listeners: browserEvidence,
|
|
39
|
+
trace_web_source_location: effects({
|
|
40
|
+
mutatesSession: true,
|
|
41
|
+
writesFilesystem: true,
|
|
42
|
+
launchesProcess: true,
|
|
43
|
+
}),
|
|
44
|
+
trace_web_module_imports: effects({
|
|
45
|
+
mutatesSession: true,
|
|
46
|
+
writesFilesystem: true,
|
|
47
|
+
launchesProcess: true,
|
|
48
|
+
accessesNetwork: true,
|
|
49
|
+
}),
|
|
50
|
+
inspect_recorded_crash: effects({
|
|
51
|
+
mutatesSession: true,
|
|
52
|
+
writesFilesystem: true,
|
|
53
|
+
launchesProcess: true,
|
|
54
|
+
}),
|
|
55
|
+
inspect_binary_layout: effects({
|
|
56
|
+
mutatesSession: true,
|
|
57
|
+
writesFilesystem: true,
|
|
58
|
+
launchesProcess: true,
|
|
59
|
+
}),
|
|
21
60
|
inspect_firmware_regions: effects({
|
|
22
61
|
mutatesSession: true,
|
|
23
62
|
launchesProcess: true,
|
|
@@ -133,6 +172,15 @@ export const TOOL_EFFECTS = {
|
|
|
133
172
|
mayDiscardData: true,
|
|
134
173
|
idempotent: false,
|
|
135
174
|
}),
|
|
175
|
+
// The owned process can change files, show UI and use the network.
|
|
176
|
+
observe_native_calls: effects({
|
|
177
|
+
mutatesSession: true,
|
|
178
|
+
writesFilesystem: true,
|
|
179
|
+
launchesProcess: true,
|
|
180
|
+
accessesNetwork: true,
|
|
181
|
+
changesUiState: true,
|
|
182
|
+
idempotent: false,
|
|
183
|
+
}),
|
|
136
184
|
inspect_macho: nativeEvidence,
|
|
137
185
|
inspect_signature: nativeEvidence,
|
|
138
186
|
inspect_plist: nativeEvidence,
|
|
@@ -152,6 +200,7 @@ export const TOOL_EFFECTS = {
|
|
|
152
200
|
decode_interface_builder: evidence,
|
|
153
201
|
inspect_asset_catalog: nativeEvidence,
|
|
154
202
|
inspect_keyed_archive: evidence,
|
|
203
|
+
trace_dylib_resolution: evidence,
|
|
155
204
|
inspect_managed_artifact: evidence,
|
|
156
205
|
inspect_managed_members: evidence,
|
|
157
206
|
inspect_managed_native_boundaries: evidence,
|
|
@@ -192,7 +241,18 @@ export const TOOL_EFFECTS = {
|
|
|
192
241
|
list_javascript_runtime_targets: browserEvidence,
|
|
193
242
|
observe_javascript_runtime: browserEvidence,
|
|
194
243
|
analyze_javascript_application: evidence,
|
|
244
|
+
export_web_scripts: effects({
|
|
245
|
+
mutatesSession: true,
|
|
246
|
+
writesFilesystem: true,
|
|
247
|
+
idempotent: false,
|
|
248
|
+
}),
|
|
195
249
|
reconcile_javascript_runtime: evidence,
|
|
250
|
+
recover_javascript_sources: effects({
|
|
251
|
+
mutatesSession: true,
|
|
252
|
+
writesFilesystem: true,
|
|
253
|
+
launchesProcess: true,
|
|
254
|
+
idempotent: false,
|
|
255
|
+
}),
|
|
196
256
|
trace_application_feature: evidence,
|
|
197
257
|
trace_javascript_semantics: evidence,
|
|
198
258
|
compare_application_versions: evidence,
|
|
@@ -200,6 +260,8 @@ export const TOOL_EFFECTS = {
|
|
|
200
260
|
compare_javascript_export_shapes: evidence,
|
|
201
261
|
build_reconstruction_obligation_ledger: evidence,
|
|
202
262
|
evaluate_reconstruction_coverage: effects(),
|
|
263
|
+
project_android_application_graph: evidence,
|
|
264
|
+
project_apple_application_graph: evidence,
|
|
203
265
|
open_binary: effects({ mutatesSession: true, launchesProcess: true }),
|
|
204
266
|
close_binary: effects({
|
|
205
267
|
mutatesSession: true,
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { nativeFunctionAnnotationsSchema } from "../domain/nativeFunctionAnnotations.js";
|
|
3
|
-
import { nativeLoadImageSchema } from "../domain/nativeLoadImage.js";
|
|
4
|
-
import { nativeUiResultSchema } from "../domain/nativeUiObservation.js";
|
|
5
|
-
import { nativeValueTraceSchema } from "../domain/nativeValueTrace.js";
|
|
6
|
-
import { nativeDataTypeSchema } from "../domain/nativeDataType.js";
|
|
7
|
-
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 { nativeCallObservationResultSchema } from "../domain/native/nativeCallObservation.js";
|
|
8
|
+
import { nativeInstructionSchema, nativeCallTargetsSchema, } from "../domain/native/nativeInstruction.js";
|
|
8
9
|
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
9
10
|
import { residualUnknownSchema } from "../domain/residualUnknown.js";
|
|
10
11
|
import { evidenceBundleSchema } from "../domain/evidenceBundle.js";
|
|
11
|
-
import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/processCapture.js";
|
|
12
|
+
import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/process/processCapture.js";
|
|
12
13
|
import { functionInstructionWindowSchema, referenceKindSchema, } from "../domain/hopperValues.js";
|
|
13
|
-
import { nativeApiInspectionResultSchema } from "../domain/nativeApiBoundary.js";
|
|
14
|
-
import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/nativeInspection.js";
|
|
14
|
+
import { nativeApiInspectionResultSchema } from "../domain/native/nativeApiBoundary.js";
|
|
15
|
+
import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/native/nativeInspection.js";
|
|
15
16
|
import { artifactExtractionResultSchema } from "../domain/artifactGraph.js";
|
|
16
17
|
import { artifactInspectionResultSchema } from "../domain/artifactInspection.js";
|
|
17
|
-
import { interfaceBuilderAnalysisSchema } from "../domain/interfaceBuilderGraph.js";
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
18
|
+
import { interfaceBuilderAnalysisSchema } from "../domain/apple/interfaceBuilderGraph.js";
|
|
19
|
+
import { dylibResolutionResultSchema } from "../domain/apple/dylibResolution.js";
|
|
20
|
+
import { keyedArchiveResultSchema } from "../domain/apple/keyedArchive.js";
|
|
21
|
+
import { appleAssetCatalogResultSchema } from "../domain/apple/appleAssetCatalog.js";
|
|
22
|
+
import { managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, } from "../domain/managed/managedArtifact.js";
|
|
23
|
+
import { managedMemberComparisonResultSchema } from "../domain/managed/managedMemberComparison.js";
|
|
24
|
+
import { managedNativeVerificationResultSchema } from "../domain/managed/managedNativeVerification.js";
|
|
25
|
+
import { managedReconstructionImportResultSchema } from "../domain/managed/managedReconstruction.js";
|
|
26
|
+
import { managedApplicationGraphResultSchema } from "../domain/managed/managedApplicationGraph.js";
|
|
25
27
|
import { artifactComparisonResultSchema } from "../domain/artifactComparison.js";
|
|
26
28
|
import { functionComparisonResultSchema } from "../domain/functionComparison.js";
|
|
27
29
|
import { bundleComparisonResultSchema } from "../domain/bundleComparison.js";
|
|
@@ -30,8 +32,8 @@ import { callPathResultSchema } from "../domain/callPath.js";
|
|
|
30
32
|
import { staticRuntimeCorrelationResultSchema } from "../domain/staticRuntimeCorrelation.js";
|
|
31
33
|
import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerification.js";
|
|
32
34
|
import { analysisErrorProjectionSchema } from "./errorSchemas.js";
|
|
33
|
-
import { nativeDispatchMetadataResultSchema } from "../domain/objcSwiftMetadata.js";
|
|
34
|
-
import { nativeInvestigationTraceSchema } from "../domain/nativeInvestigationGraph.js";
|
|
35
|
+
import { nativeDispatchMetadataResultSchema } from "../domain/native/objcSwiftMetadata.js";
|
|
36
|
+
import { nativeInvestigationTraceSchema } from "../domain/native/nativeInvestigationGraph.js";
|
|
35
37
|
import { addressList, addressedValue, addressedEntry, containingProcedureResolution, functionDossierOutput, graphNode, lifecycleResultOf, nullableText, procedureIdentity, procedureInfoOutput, evidenceResultOf as resultOf, segmentOutput, sessionProvider, symbolDiscoveryOutput, targetFormatSchema, targetKindSchema, } from "./toolOutputSchemaPrimitives.js";
|
|
36
38
|
const contextFacetSchema = z.discriminatedUnion("state", [
|
|
37
39
|
z.object({ state: z.literal("available"), value: jsonValueSchema }),
|
|
@@ -235,6 +237,7 @@ export const enhancedOutputSchemas = {
|
|
|
235
237
|
export const nativeOutputSchemas = {
|
|
236
238
|
observe_native_ui: resultOf(nativeUiResultSchema),
|
|
237
239
|
capture_native_ui_scenario: resultOf(nativeUiResultSchema),
|
|
240
|
+
observe_native_calls: resultOf(nativeCallObservationResultSchema),
|
|
238
241
|
inspect_macho: resultOf(inspectMachoSchema),
|
|
239
242
|
inspect_signature: resultOf(inspectSignatureSchema),
|
|
240
243
|
inspect_plist: resultOf(inspectPlistSchema),
|
|
@@ -248,6 +251,7 @@ export const artifactOutputSchemas = {
|
|
|
248
251
|
decode_interface_builder: resultOf(interfaceBuilderAnalysisSchema),
|
|
249
252
|
inspect_keyed_archive: resultOf(keyedArchiveResultSchema),
|
|
250
253
|
inspect_asset_catalog: resultOf(appleAssetCatalogResultSchema),
|
|
254
|
+
trace_dylib_resolution: resultOf(dylibResolutionResultSchema),
|
|
251
255
|
};
|
|
252
256
|
/** Exact Evidence schema for execution-free managed static analysis. */
|
|
253
257
|
export const managedOutputSchemas = {
|
|
@@ -305,7 +305,7 @@ export const sessionProvider = z
|
|
|
305
305
|
negotiated_protocol_version: z.string().nullable(),
|
|
306
306
|
client: z.object({ name: z.string(), version: z.string() }).nullable(),
|
|
307
307
|
skill: z.object({ name: z.string(), expected_version: z.string() }),
|
|
308
|
-
catalog: z.record(z.string(),
|
|
308
|
+
catalog: z.record(z.string(), jsonValueSchema),
|
|
309
309
|
protocol_features: z.object({
|
|
310
310
|
progress: z.boolean(),
|
|
311
311
|
cancellation: z.boolean(),
|