rea-agents 6.0.0 → 6.2.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 +26 -18
- package/bridge/android/ReaJadxBridge.java +14 -5
- package/bridge/ghidra/ReaGhidraBridge.java +205 -51
- package/bridge/hopper_bridge.py +314 -127
- package/bridge/mitmproxy/capture.py +0 -2
- package/bridge/native/rea_lldb_tracer.py +630 -94
- package/bridge/process/ProcessRunTokenReader.swift +39 -5
- package/bridge/pwntools/recorded_crash_impl.py +4 -0
- package/dist/android/JadxConfiguration.js +274 -31
- package/dist/android/JadxMcpTransport.js +18 -2
- package/dist/android/JadxProtocol.js +6 -0
- package/dist/android/JadxProvider.js +76 -37
- package/dist/android/JadxSession.js +23 -4
- package/dist/application/AnalysisContextQueries.js +8 -35
- package/dist/application/AnalysisDocument.js +32 -0
- package/dist/application/AppBundleExecutable.js +67 -21
- package/dist/application/BinaryTargetResolver.js +5 -3
- package/dist/application/BrowserEvidence.js +3 -8
- package/dist/application/BrowserScenarioEvidence.js +2 -18
- package/dist/application/CallPathTracing.js +19 -3
- package/dist/application/CapabilityInventory.js +48 -11
- package/dist/application/ClientConfigurationDocument.js +917 -8
- package/dist/application/ClientRegistrationIdentity.js +26 -5
- package/dist/application/ClientRegistrationStatus.js +29 -14
- package/dist/application/DirectAnalysis.js +56 -51
- package/dist/application/DirectAnalysisCleanup.js +72 -0
- package/dist/application/DirectAnalysisStatus.js +4 -5
- package/dist/application/Doctor.js +19 -21
- package/dist/application/DoctorDiagnostics.js +1 -2
- package/dist/application/DoctorScope.js +25 -13
- package/dist/application/EnhancedLiteralTracing.js +22 -25
- package/dist/application/EnhancedTools.js +64 -17
- package/dist/application/EvidenceBundleFiles.js +30 -13
- package/dist/application/FunctionAnalysisEvidence.js +2 -3
- package/dist/application/InventoryProjectionEvidence.js +4 -3
- package/dist/application/InvestigationProviders.js +11 -2
- package/dist/application/JsonFiles.js +83 -28
- package/dist/application/LinuxHopper.js +9 -6
- package/dist/application/MacHopper.js +15 -18
- package/dist/application/ProcedureAddressResolution.js +11 -0
- package/dist/application/RealHopperAssertions.js +0 -11
- package/dist/application/ReconstructionCoverageService.js +7 -4
- package/dist/application/ReconstructionObligationCandidates.js +1 -1
- package/dist/application/ReconstructionObligationLedgerService.js +4 -3
- package/dist/application/ReferenceSourceImportEntries.js +1 -1
- package/dist/application/Setup.js +21 -17
- package/dist/application/SetupClientConfiguration.js +10 -15
- package/dist/application/SetupHost.js +21 -29
- package/dist/application/SetupPlan.js +11 -9
- package/dist/application/SupportedClients.js +34 -1
- package/dist/application/Uninstall.js +82 -29
- package/dist/application/Update.js +18 -3
- package/dist/application/UpdateMaintenance.js +7 -5
- package/dist/application/UpdateRuntime.js +57 -36
- package/dist/application/WebModuleTraceService.js +4 -2
- package/dist/application/WebNetworkCaptureService.js +4 -2
- package/dist/application/WebRuntimeService.js +5 -3
- package/dist/application/WebScriptExportService.js +32 -6
- package/dist/application/WebSourceLocationService.js +4 -2
- package/dist/application/WorkflowEvidence.js +105 -0
- package/dist/application/XrefsAddressResolution.js +45 -0
- package/dist/application/analysisView/AnalysisViewService.js +76 -0
- package/dist/application/binary/AnalysisClientCleanup.js +30 -5
- package/dist/application/binary/AnalysisProviderEvaluation.js +22 -7
- package/dist/application/binary/AnalysisProviderRegistry.js +4 -6
- package/dist/application/binary/AnalysisSnapshotCache.js +13 -14
- package/dist/application/binary/BinarySession.js +161 -93
- package/dist/application/binary/BinarySessionComposition.js +1 -3
- package/dist/application/binary/BinarySessionExecution.js +3 -5
- package/dist/application/binary/BinarySessionOpen.js +4 -4
- package/dist/application/binary/BinarySessionRecords.js +26 -4
- package/dist/application/binary/BinarySessionStatus.js +18 -7
- package/dist/application/binary/CompositeProvider.js +16 -17
- package/dist/application/binary/LazyAnalysisProvider.js +8 -5
- package/dist/application/binary/SessionProviderRouter.js +27 -135
- package/dist/application/binaryDiagnostics/BinaryLayoutService.js +4 -2
- package/dist/application/binaryDiagnostics/RecordedCrashService.js +4 -2
- package/dist/application/evm/EvmInterfaceService.js +4 -2
- package/dist/application/homebrew.js +48 -0
- package/dist/application/investigation/EvidenceLedger.js +21 -7
- package/dist/application/investigation/InvestigationRecords.js +8 -0
- package/dist/application/javascript/ElectronActiveEvidence.js +9 -13
- package/dist/application/javascript/JavaScriptAnalysisControl.js +34 -0
- package/dist/application/javascript/JavaScriptApplicationEvidence.js +21 -4
- package/dist/application/javascript/JavaScriptApplicationEvidenceGraph.js +19 -2
- package/dist/application/javascript/JavaScriptApplicationService.js +27 -15
- package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +5 -5
- package/dist/application/javascript/JavaScriptArtifactAnalysis.js +10 -7
- package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +44 -10
- package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +11 -3
- package/dist/application/javascript/JavaScriptArtifactGraphContext.js +9 -0
- package/dist/application/javascript/JavaScriptArtifactGraphDocuments.js +8 -5
- package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +12 -3
- package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +0 -1
- package/dist/application/javascript/JavaScriptArtifactPathResolution.js +49 -19
- package/dist/application/javascript/JavaScriptArtifactReconstruction.js +56 -8
- package/dist/application/javascript/JavaScriptModuleRelationships.js +38 -9
- package/dist/application/javascript/JavaScriptRecoveryService.js +4 -2
- package/dist/application/javascript/JavaScriptRuntimeObservationService.js +6 -4
- package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +3 -3
- package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +2 -3
- package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +63 -61
- package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +1 -2
- package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +2 -3
- package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +1 -5
- package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +75 -46
- package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +2 -3
- package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +64 -19
- package/dist/application/managed/ManagedApplicationGraphService.js +4 -3
- package/dist/application/managed/ManagedMemberComparisonService.js +9 -5
- package/dist/application/managed/ManagedNativeVerificationService.js +6 -4
- package/dist/application/managed/ManagedReconstructionService.js +4 -3
- package/dist/application/process/ProcessCli.js +25 -17
- package/dist/application/process/ProcessEvidence.js +4 -4
- package/dist/application/workflowInputError.js +18 -0
- package/dist/artifacts/ArtifactProvider.js +48 -13
- package/dist/artifacts/ArtifactReader.js +31 -0
- package/dist/artifacts/DirectoryArtifactReader.js +2 -1
- package/dist/artifacts/MachOSliceArtifactReader.js +106 -15
- package/dist/artifacts/NativeDmgArtifactReader.js +73 -21
- package/dist/artifacts/SafeOutputTree.js +16 -2
- package/dist/artifacts/ZipArtifactReader.js +11 -4
- package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +26 -5
- package/dist/artifacts/apple/DylibResolutionReader.js +17 -7
- package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +176 -56
- package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +195 -0
- package/dist/artifacts/apple/KeyedArchiveReader.js +55 -23
- package/dist/artifacts/apple/MachoLoadCommandReader.js +92 -31
- package/dist/artifacts/apple/NibArchive.js +81 -14
- package/dist/artifacts/apple/NibViewHierarchy.js +10 -3
- package/dist/artifacts/apple/PlistNumberLiterals.js +164 -0
- package/dist/artifacts/extraction/ArtifactExtraction.js +78 -21
- package/dist/artifacts/inventory/ArtifactGraphConstruction.js +79 -68
- package/dist/artifacts/inventory/ArtifactInventory.js +0 -1
- package/dist/artifacts/inventory/reader.js +3 -3
- package/dist/artifacts/inventory/scanCanonical.js +59 -38
- package/dist/artifacts/inventory/scanReader.js +5 -9
- package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +6 -2
- package/dist/browser/BrowserScenarioPartialObservation.js +106 -0
- package/dist/browser/CdpBrowserProvider.js +2 -3
- package/dist/browser/CdpCaptureCompleteness.js +2 -0
- package/dist/browser/CdpCaptureEventHandlers.js +78 -15
- package/dist/browser/CdpCaptureEventTypes.js +5 -1
- package/dist/browser/CdpCaptureEvents.js +25 -1
- package/dist/browser/CdpCaptureValues.js +20 -0
- package/dist/browser/CdpConnection.js +30 -11
- package/dist/browser/CdpElectronProvider.js +0 -2
- package/dist/browser/CdpElectronScriptEvents.js +2 -8
- package/dist/browser/CdpElectronScripts.js +2 -3
- package/dist/browser/CdpOptionalCommand.js +2 -3
- package/dist/browser/CdpPageCapture.js +23 -1
- package/dist/browser/CdpPageCaptureScripts.js +2 -3
- package/dist/browser/CdpSafeMetadata.js +10 -10
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +59 -44
- package/dist/browser/PlaywrightElectronActiveActions.js +34 -79
- package/dist/browser/PlaywrightElectronActiveProjection.js +141 -0
- package/dist/browser/PlaywrightElectronActiveProvider.js +133 -130
- package/dist/browser/PlaywrightScenarioArtifacts.js +1 -1
- package/dist/browser/PlaywrightScenarioBrowser.js +139 -39
- package/dist/browser/PlaywrightScenarioEvents.js +1 -1
- package/dist/browser/PlaywrightScenarioSession.js +39 -22
- package/dist/browser/WebSourceMapFetcher.js +426 -72
- package/dist/browser/assets/LocalWebScriptArtifacts.js +2 -2
- package/dist/browser/assets/ScriptCaptureAdapters.js +1 -1
- package/dist/browser/history/CaptureFailures.js +41 -1
- package/dist/browser/history/CaptureRelease.js +5 -0
- package/dist/browser/history/HarCaptureAdapter.js +3 -3
- package/dist/browser/history/HarJson.js +3 -2
- package/dist/browser/history/HistoricalCaptureDecoder.js +4 -2
- package/dist/browser/history/MitmproxyCaptureAdapter.js +4 -2
- package/dist/catalogIdentity.js +0 -1
- package/dist/cli/analysisSelector.js +23 -0
- package/dist/cli/analysisViewCommands.js +36 -0
- package/dist/cli/applicationCommands.js +2 -3
- package/dist/cli/artifactCommands.js +11 -12
- package/dist/cli/coreAnalysisCommands.js +3 -3
- package/dist/cli/coreBinaryCommands.js +100 -37
- package/dist/cli/coreNativeCommands.js +9 -10
- package/dist/cli/electronCommands.js +10 -9
- package/dist/cli/interactiveSetup.js +6 -6
- package/dist/cli/javascriptApplicationAnalysis.js +7 -3
- package/dist/cli/jsonOutput.js +4 -99
- package/dist/cli/managedCommands.js +7 -8
- package/dist/cli/nativeCallCommands.js +3 -5
- package/dist/cli/omittableDefaults.js +50 -0
- package/dist/cli/processCommands.js +3 -2
- package/dist/cli/setupCommands.js +16 -15
- package/dist/cli/utilityCommands.js +9 -9
- package/dist/cli/webRuntimeCommands.js +8 -8
- package/dist/cli.js +18 -9
- package/dist/cliBrowserScenarioCommands.js +2 -2
- package/dist/cliCommandNames.js +1 -1
- package/dist/cliJsonInput.js +24 -5
- package/dist/cliOutput.js +0 -38
- package/dist/composition/auxiliaryAnalysisProviders.js +27 -23
- package/dist/composition/binary.js +9 -9
- package/dist/composition/browserScenario.js +2 -1
- package/dist/composition/directAnalysis.js +20 -13
- package/dist/composition/electronScenario.js +1 -1
- package/dist/composition/optionalObservationProviders.js +12 -7
- package/dist/config/environment.js +10 -0
- package/dist/config/ghidraStartupTimeout.js +12 -0
- package/dist/config/homeDirectory.js +12 -0
- package/dist/config/mcpResponseBudget.js +30 -0
- package/dist/config/parseConfig.js +8 -3
- package/dist/config/parsers.js +19 -22
- package/dist/contracts/analysisViewToolContracts.js +56 -0
- package/dist/contracts/applicationToolContracts.js +5 -4
- package/dist/contracts/artifactComparisonExample.js +2 -2
- package/dist/contracts/artifactToolContracts.js +1 -1
- package/dist/contracts/browserScenarioToolContracts.js +1 -1
- package/dist/contracts/browserToolContracts.js +19 -15
- package/dist/contracts/enhancedInputs.js +7 -5
- package/dist/contracts/enhancedToolContracts.js +7 -6
- package/dist/contracts/evm/evmToolContracts.js +1 -1
- package/dist/contracts/functionWorkflowToolContracts.js +1 -1
- package/dist/contracts/hopperMemoryContracts.js +2 -5
- package/dist/contracts/inputSchemaPresentation.js +90 -0
- package/dist/contracts/investigationExamples.js +4 -3
- package/dist/contracts/javascript/electronToolContracts.js +2 -2
- package/dist/contracts/javascript/javascriptApplicationWorkflowExamples.js +0 -20
- package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +245 -0
- package/dist/contracts/javascript/javascriptRuntimeObservationToolContracts.js +1 -1
- package/dist/contracts/managed/managedToolContracts.js +7 -14
- package/dist/contracts/managed/managedWorkflowToolContracts.js +1 -1
- package/dist/contracts/mobileApplicationGraphExamples.js +3 -3
- package/dist/contracts/native/binaryDiagnosticsToolContracts.js +1 -1
- package/dist/contracts/native/nativeToolContracts.js +5 -3
- package/dist/contracts/officialToolContracts.js +16 -16
- package/dist/contracts/promptContracts.js +5 -5
- package/dist/contracts/providerSelection.js +1 -1
- package/dist/contracts/sessionLifecycleInputs.js +3 -7
- package/dist/contracts/sessionStatusContract.js +2 -4
- package/dist/contracts/sessionToolContracts.js +18 -8
- package/dist/contracts/sessionToolSchemas.js +3 -19
- package/dist/contracts/toolContractExamples.js +0 -1
- package/dist/contracts/toolContractHelpers.js +4 -1
- package/dist/contracts/toolContracts.js +2 -0
- package/dist/contracts/toolEffects.js +1 -1
- package/dist/contracts/toolOutputSchemaGroups.js +160 -115
- package/dist/contracts/toolOutputSchemaPrimitives.js +28 -20
- package/dist/contracts/toolSchemaMetadata.js +41 -33
- package/dist/contracts/webNetworkCaptureToolContracts.js +2 -2
- package/dist/contracts/webRuntimeToolContracts.js +1 -1
- package/dist/contracts/webScriptToolContracts.js +1 -1
- package/dist/doctorRuntime.js +7 -5
- package/dist/domain/analysisErrorBase.js +8 -3
- package/dist/domain/analysisErrorCore.js +6 -1
- package/dist/domain/analysisErrorPresentation.js +90 -20
- package/dist/domain/analysisErrorProjection.js +130 -32
- package/dist/domain/analysisSnapshot.js +29 -31
- package/dist/domain/analysisView/analysisView.js +243 -0
- package/dist/domain/analysisView/analysisViewCoverage.js +19 -0
- package/dist/domain/analysisView/binaryLayoutView.js +159 -0
- package/dist/domain/analysisView/javascriptApplicationView.js +238 -0
- package/dist/domain/android/androidAnalysis.js +2 -4
- package/dist/domain/android/androidApplication.js +18 -10
- package/dist/domain/apple/appleApplication.js +42 -15
- package/dist/domain/apple/dyldEnvironment.js +73 -0
- package/dist/domain/apple/dylibResolution.js +130 -12
- package/dist/domain/apple/dylibResolutionFindings.js +9 -7
- package/dist/domain/apple/interfaceBuilderGraph.js +25 -14
- package/dist/domain/apple/interfaceBuilderKeyedArchive.js +13 -3
- package/dist/domain/apple/keyedArchive.js +35 -3
- package/dist/domain/apple/machoContainer.js +54 -0
- package/dist/domain/apple/plistNumbers.js +76 -0
- package/dist/domain/artifactComparison.js +15 -6
- package/dist/domain/artifactGraph.js +16 -3
- package/dist/domain/artifactIdentity.js +29 -0
- package/dist/domain/artifactInventoryEvidence.js +28 -40
- package/dist/domain/artifactOperationError.js +3 -3
- package/dist/domain/artifactPartialObservation.js +1 -0
- package/dist/domain/artifactPathSyntax.js +49 -0
- package/dist/domain/binaryTarget.js +39 -13
- package/dist/domain/bridgeCandidateProjection.js +71 -0
- package/dist/domain/browserCaptureComparison.js +13 -49
- package/dist/domain/browserCompleteness.js +1 -0
- package/dist/domain/browserNetworkEvidence.js +10 -4
- package/dist/domain/browserObservation.js +0 -1
- package/dist/domain/browserObservationError.js +24 -5
- package/dist/domain/browserObservationSchemas.js +14 -3
- package/dist/domain/browserScenario.js +0 -1
- package/dist/domain/browserScenarioCapture.js +1 -2
- package/dist/domain/browserScenarioDiff.js +0 -2
- package/dist/domain/browserScenarioDiffEvidence.js +0 -12
- package/dist/domain/browserScenarioDiffValues.js +2 -2
- package/dist/domain/browserScenarioValues.js +5 -10
- package/dist/domain/bundleComparison.js +3 -2
- package/dist/domain/callPath.js +8 -9
- package/dist/domain/callPathSchemas.js +2 -2
- package/dist/domain/canonicalJsonDigestSteps.js +133 -0
- package/dist/domain/canonicalOrdering.js +9 -5
- package/dist/domain/changedBehavior.js +9 -9
- package/dist/domain/comparisonSourceEvidence.js +40 -0
- package/dist/domain/completionLedgerGeneration.js +2 -1
- package/dist/domain/configurationErrors.js +13 -1
- package/dist/domain/conformancePackage.js +4 -3
- package/dist/domain/evidence.js +65 -36
- package/dist/domain/evidenceBundle.js +47 -8
- package/dist/domain/evidenceCompletionLedger.js +2 -1
- package/dist/domain/evidenceErrors.js +12 -1
- package/dist/domain/explicitSensitiveFailure.js +17 -1
- package/dist/domain/firmware/firmwareAnalysis.js +6 -7
- package/dist/domain/functionComparison.js +4 -5
- package/dist/domain/functionComparisonDimensions.js +120 -87
- package/dist/domain/functionComparisonNormalization.js +23 -34
- package/dist/domain/functionComparisonResults.js +1 -4
- package/dist/domain/functionComparisonSchemas.js +2 -8
- package/dist/domain/functionDossierEvidence.js +2 -37
- package/dist/domain/hopperErrors.js +23 -2
- package/dist/domain/hopperValues.js +51 -8
- package/dist/domain/immutableJson.js +114 -0
- package/dist/domain/inputIssueProjection.js +3 -0
- package/dist/domain/javascript/electronActiveObservation.js +47 -64
- package/dist/domain/javascript/electronObservation.js +14 -3
- package/dist/domain/javascript/electronStaticAnalysisBrowser.js +10 -9
- package/dist/domain/javascript/electronStaticAnalysisIpc.js +2 -1
- package/dist/domain/javascript/electronStaticAnalysisNative.js +2 -1
- package/dist/domain/javascript/electronStaticAnalysisValues.js +6 -12
- package/dist/domain/javascript/javascriptApplicationAnalysis.js +71 -23
- package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +2 -0
- package/dist/domain/javascript/javascriptApplicationGraph.js +39 -3
- package/dist/domain/javascript/javascriptApplicationGraphSchemas.js +9 -2
- package/dist/domain/javascript/javascriptApplicationVersionItems.js +5 -2
- package/dist/domain/javascript/javascriptApplicationVersionKeys.js +2 -1
- package/dist/domain/javascript/javascriptAstValues.js +20 -0
- package/dist/{application/javascript/JavaScriptReturnShapeProjection.js → domain/javascript/javascriptExportReturnShapeProjection.js} +4 -4
- package/dist/domain/javascript/javascriptExportShapeComparison.js +7 -1
- package/dist/domain/javascript/javascriptExportShapeComparisonIdentity.js +6 -1
- package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +29 -1
- package/dist/domain/javascript/javascriptExportShapeSelection.js +5 -5
- package/dist/domain/javascript/javascriptExportShapeVariants.js +67 -14
- package/dist/domain/javascript/javascriptFeatureSeed.js +20 -0
- package/dist/domain/javascript/javascriptFeatureTraversal.js +0 -1
- package/dist/domain/javascript/javascriptNativeHandoff.js +1 -1
- package/dist/domain/javascript/javascriptRecovery.js +3 -8
- package/dist/domain/javascript/javascriptRuntimeLoadState.js +0 -1
- package/dist/domain/javascript/javascriptRuntimeObservation.js +10 -2
- package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +1 -1
- package/dist/domain/javascript/javascriptRuntimeReconciliationParsing.js +3 -2
- package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +0 -1
- package/dist/domain/javascript/javascriptSemanticAnalysis.js +106 -5
- package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +2 -1
- package/dist/domain/javascript/javascriptSemanticCalls.js +2 -1
- package/dist/domain/javascript/javascriptSemanticChildProcesses.js +2 -1
- package/dist/domain/javascript/javascriptSemanticCoverage.js +6 -5
- package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +9 -17
- package/dist/domain/javascript/javascriptSemanticDataEffects.js +23 -6
- package/dist/domain/javascript/javascriptSemanticGraph.js +98 -43
- package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +1 -0
- package/dist/domain/javascript/javascriptSemanticMemberMutations.js +77 -20
- package/dist/domain/javascript/javascriptSemanticMutationValues.js +21 -27
- package/dist/domain/javascript/javascriptSemanticObjects.js +83 -42
- package/dist/domain/javascript/javascriptSemanticPrimitives.js +18 -21
- package/dist/domain/javascript/javascriptSemanticProjection.js +2 -3
- package/dist/domain/javascript/javascriptSemanticPromises.js +2 -1
- package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +8 -4
- package/dist/domain/javascript/javascriptSemanticResourceLimits.js +77 -0
- package/dist/domain/javascript/javascriptSemanticResources.js +1 -1
- package/dist/domain/javascript/javascriptSemanticReturns.js +32 -17
- package/dist/domain/javascript/javascriptSemanticSlots.js +72 -0
- package/dist/domain/javascript/javascriptSemanticValues.js +126 -61
- package/dist/domain/javascript/javascriptSourceMapPaths.js +104 -0
- package/dist/domain/javascript/javascriptSourceParser.js +6 -2
- package/dist/domain/javascript/javascriptStaticAnalysis.js +22 -17
- package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +5 -3
- package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +16 -5
- package/dist/domain/javascript/javascriptStaticAnalysisFindings.js +66 -7
- package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +28 -17
- package/dist/domain/javascript/javascriptStaticAnalysisState.js +3 -2
- package/dist/domain/javascript/sourceToBundleComparison.js +12 -3
- package/dist/domain/javascript/sourceToBundleSignals.js +47 -19
- package/dist/domain/jsonSerialization.js +109 -0
- package/dist/domain/jsonValue.js +90 -6
- package/dist/domain/localPath.js +6 -0
- package/dist/domain/managed/managedApplicationGraph.js +10 -10
- package/dist/domain/managed/managedArtifact.js +6 -4
- package/dist/domain/managed/managedInspectionEvidence.js +16 -0
- package/dist/domain/managed/managedMemberComparison.js +2 -9
- package/dist/domain/managed/managedMemberComparisonMatch.js +5 -9
- package/dist/domain/managed/managedNativeVerification.js +3 -11
- package/dist/domain/managed/managedNativeVerificationMatch.js +9 -3
- package/dist/domain/native/binaryLayout.js +2 -3
- package/dist/domain/native/fileOffsetPartialObservation.js +1 -0
- package/dist/domain/native/nativeApiBoundary.js +1 -1
- package/dist/domain/native/nativeCallObservation.js +37 -13
- package/dist/domain/native/nativeCallPartialObservation.js +33 -0
- package/dist/domain/native/nativeInstruction.js +7 -0
- package/dist/domain/native/recordedCrash.js +2 -3
- package/dist/domain/offsetDateTime.js +17 -0
- package/dist/domain/process/processCapture.js +21 -16
- package/dist/domain/process/processCaptureCoverage.js +67 -0
- package/dist/domain/process/processCaptureExample.js +2 -1
- package/dist/domain/process/processCaptureParsing.js +1 -34
- package/dist/domain/process/processCaptureValidation.js +81 -13
- package/dist/domain/process/processComparison.js +79 -26
- package/dist/domain/process/processObservation.js +10 -2
- package/dist/domain/process/processScenario.js +35 -12
- package/dist/domain/process/processTraceComparison.js +0 -2
- package/dist/domain/process/processTraceDimensionProjection.js +1 -1
- package/dist/domain/process/processTraceEvaluation.js +15 -11
- package/dist/domain/process/processTraceSpecification.js +3 -4
- package/dist/domain/propertyListKeys.js +1 -1
- package/dist/domain/propertyListXmlText.js +19 -0
- package/dist/domain/providerAdapterError.js +3 -1
- package/dist/domain/providerOperationHealth.js +54 -0
- package/dist/domain/reconstructionCoverage.js +5 -2
- package/dist/domain/reconstructionObligationLedgerSchemas.js +2 -1
- package/dist/domain/reconstructionReadinessSchemas.js +2 -1
- package/dist/domain/reconstructionVerification.js +9 -46
- package/dist/domain/reconstructionVerificationSchemas.js +4 -3
- package/dist/domain/referenceSourceGraph.js +20 -21
- package/dist/domain/staticRuntimeCorrelation.js +8 -45
- package/dist/domain/stringPatterns.js +6 -0
- package/dist/domain/swiftSymbolClassification.js +61 -0
- package/dist/domain/symbolAnalysis.js +66 -18
- package/dist/domain/webBundleAnalysis.js +20 -8
- package/dist/domain/webBundleAnalyzerInspection.js +13 -8
- package/dist/domain/webBundleAnalyzerResult.js +41 -2
- package/dist/domain/webCaptureDiff.js +0 -1
- package/dist/domain/webCaptureDiffSchemas.js +6 -3
- package/dist/domain/webEventListeners.js +3 -2
- package/dist/domain/webExecution.js +3 -2
- package/dist/domain/webRuntime.js +19 -7
- package/dist/domain/webScriptExport.js +1 -1
- package/dist/domain/webSourceLocation.js +1 -0
- package/dist/dotnet/ManagedArtifactInspector.js +2 -19
- package/dist/dotnet/ManagedMemberInspector.js +12 -18
- package/dist/dotnet/ManagedMemberInspectorCore.js +47 -44
- package/dist/dotnet/ManagedMemberRows.js +75 -62
- package/dist/dotnet/ManagedMetadataInventory.js +16 -22
- package/dist/dotnet/ManagedMethodBodyReader.js +4 -0
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +109 -94
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +12 -21
- package/dist/dotnet/ManagedReaderFailure.js +16 -0
- package/dist/dotnet/ManagedStaticProvider.js +3 -5
- package/dist/evaluation/AgentEvaluationFixtures.js +250 -0
- package/dist/evaluation/AgentEvaluationReport.js +28 -0
- package/dist/evaluation/CodexAgentEval.js +12 -8
- package/dist/evaluation/KnownAnswerEvaluation.js +281 -0
- package/dist/evm/EvmoleInterfaceProvider.js +2 -1
- package/dist/firmware/FirmwareCommand.js +9 -5
- package/dist/firmware/FirmwareFiles.js +1 -1
- package/dist/firmware/FirmwareProvider.js +4 -4
- package/dist/generatedPackageMetadata.js +2 -2
- package/dist/ghidra/GhidraAnalysisProfile.js +7 -5
- package/dist/ghidra/GhidraClient.js +126 -34
- package/dist/ghidra/GhidraClientStartup.js +0 -2
- package/dist/ghidra/GhidraDiagnostics.js +7 -7
- package/dist/ghidra/GhidraDoctor.js +6 -5
- package/dist/ghidra/GhidraFunctionValues.js +13 -12
- package/dist/ghidra/GhidraInstallation.js +58 -33
- package/dist/ghidra/GhidraInventoryValues.js +14 -4
- package/dist/ghidra/GhidraJavaLaunch.js +66 -0
- package/dist/ghidra/GhidraLauncher.js +47 -22
- package/dist/ghidra/GhidraProvider.js +6 -2
- package/dist/ghidra/GhidraProviderCapabilities.js +20 -2
- package/dist/ghidra/GhidraProviderClient.js +36 -15
- package/dist/ghidra/GhidraSessionError.js +13 -7
- package/dist/ghidra/GhidraSessionRoot.js +39 -0
- package/dist/ghidra/GhidraTargetSnapshot.js +47 -12
- package/dist/ghidra/GhidraTransport.js +20 -0
- package/dist/ghidra/extensions/GhidraExtensions.js +17 -10
- package/dist/ghidra/extensions/nativeaot/NativeAotAdapter.js +8 -2
- package/dist/hopper/BridgeLauncher.js +65 -56
- package/dist/hopper/HopperAnalysisProfile.js +65 -12
- package/dist/hopper/HopperCleanup.js +63 -22
- package/dist/hopper/HopperClient.js +288 -59
- package/dist/hopper/HopperFileOffset.js +237 -0
- package/dist/hopper/HopperMachOImage.js +197 -0
- package/dist/hopper/HopperOperationStage.js +6 -0
- package/dist/hopper/HopperProvider.js +71 -19
- package/dist/hopper/HopperProviderCapabilities.js +19 -1
- package/dist/hopper/HopperRegexSearch.js +134 -0
- package/dist/hopper/HopperRegexWorker.js +27 -0
- package/dist/hopper/HopperRequestQueue.js +68 -19
- package/dist/hopper/HopperTargetLease.js +133 -49
- package/dist/hopper/LinuxPrivateDisplayProbe.js +6 -0
- package/dist/ida/IdaConfiguration.js +8 -3
- package/dist/ida/IdaInput.js +1 -7
- package/dist/ida/IdaMcpConnection.js +8 -4
- package/dist/ida/IdaOperationRunner.js +3 -3
- package/dist/ida/IdaProvider.js +8 -12
- package/dist/ida/IdaSessionClient.js +20 -18
- package/dist/ida/IdaWorkspace.js +12 -13
- package/dist/inspector/JavaScriptRuntimeScope.js +9 -1
- package/dist/inspector/V8InspectorCaptureProjection.js +9 -4
- package/dist/inspector/V8InspectorProvider.js +82 -36
- package/dist/javascript/recovery/WakaruCommand.js +7 -2
- package/dist/javascript/recovery/WakaruExecution.js +5 -2
- package/dist/javascript/sourceMaps/DecodedSourceMap.js +47 -0
- package/dist/javascript/sourceMaps/SourceMapCommand.js +16 -0
- package/dist/javascript/sourceMaps/SourceMapFormat.js +79 -31
- package/dist/javascript/sourceMaps/TraceSourceMap.js +14 -28
- package/dist/main/shutdown.js +11 -3
- package/dist/main/startup.js +9 -2
- package/dist/main/transport.js +22 -2
- package/dist/main.js +11 -18
- package/dist/mcpDoctor.js +62 -2
- package/dist/native/AppleDispatchCoverage.js +47 -6
- package/dist/native/AppleDispatchDecodeFacts.js +6 -0
- package/dist/native/AppleDispatchMetadata.js +6 -3
- package/dist/native/AppleMachoFixups.js +48 -24
- package/dist/native/AppleMachoSelection.js +48 -22
- package/dist/native/AppleObjcCategories.js +6 -2
- package/dist/native/AppleObjcDispatchFacets.js +5 -2
- package/dist/native/AppleObjcProperties.js +2 -1
- package/dist/native/AppleSwiftDispatchFacets.js +27 -21
- package/dist/native/AppleSwiftVtables.js +21 -15
- package/dist/native/CommandRunner.js +87 -88
- package/dist/native/LldbCallTracer.js +372 -103
- package/dist/native/LldbRetainedObservations.js +178 -0
- package/dist/native/NativeCallObservation.js +62 -3
- package/dist/native/NativeMacOSProvider.js +122 -31
- package/dist/native/NativeUiHelperRuntime.js +11 -2
- package/dist/native/NativeUiObservation.js +2 -2
- package/dist/native/SignatureTargetBinding.js +155 -0
- package/dist/native/parsers/lipo.js +71 -1
- package/dist/native/pwndbg/PwndbgCoreContext.js +25 -5
- package/dist/native/pwntools/PwntoolsDecoder.js +2 -1
- package/dist/native/pwntools/RecordedCrashStructureBindings.js +2 -0
- package/dist/process/DarwinProcessRunTokenReader.js +23 -10
- package/dist/process/ExecFileOutput.js +108 -6
- package/dist/process/OwnedCommand.js +7 -2
- package/dist/process/PrivateRuntimeRoot.js +10 -5
- package/dist/process/ProcessOwnership.js +204 -57
- package/dist/process/ProcessOwnershipObservation.js +60 -9
- package/dist/process/ProviderProcess.js +39 -10
- package/dist/process/capture/FilesystemSnapshot.js +50 -13
- package/dist/process/capture/ProcessCaptureError.js +15 -2
- package/dist/process/capture/ProcessCaptureLifecycle.js +235 -81
- package/dist/process/capture/ProcessFilesystemEffects.js +33 -3
- package/dist/process/capture/ProcessHarness.js +21 -25
- package/dist/process/capture/ProcessNormalization.js +20 -2
- package/dist/process/capture/ProcessSampling.js +25 -2
- package/dist/process/capture/TerminalRenderer.js +14 -0
- package/dist/process/snapshotEnvironment.js +14 -0
- package/dist/server/EvidenceMcpServer.js +157 -0
- package/dist/server/createServer.js +61 -41
- package/dist/server/mcpClientMetadata.js +12 -5
- package/dist/server/promptCompletion.js +3 -8
- package/dist/server/registerAnalysisViewTool.js +15 -0
- package/dist/server/registerAndroidTools.js +2 -5
- package/dist/server/registerApplicationTools/compareExportShapes.js +4 -5
- package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
- package/dist/server/registerApplicationTools/compareVersions.js +4 -5
- package/dist/server/registerApplicationTools/coverage.js +1 -2
- package/dist/server/registerApplicationTools/helpers.js +1 -4
- package/dist/server/registerApplicationTools/obligationLedger.js +4 -5
- package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +3 -4
- package/dist/server/registerApplicationTools/traceFeature.js +4 -5
- package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
- package/dist/server/registerArtifactComparisonTool.js +13 -10
- package/dist/server/registerBinaryDiagnosticsTools.js +2 -5
- package/dist/server/registerBrowserScenarioTool.js +3 -6
- package/dist/server/registerBrowserTools.js +13 -18
- package/dist/server/registerBundleComparisonTool.js +5 -7
- package/dist/server/registerCloseLifecycleTool.js +9 -20
- package/dist/server/registerElectronTools.js +10 -15
- package/dist/server/registerEnhancedTools.js +36 -77
- package/dist/server/registerEvidenceTools.js +3 -6
- package/dist/server/registerEvmTools.js +2 -5
- package/dist/server/registerFirmwareTools.js +2 -5
- package/dist/server/registerFunctionComparisonTool.js +15 -12
- package/dist/server/registerInvestigationTools.js +16 -17
- package/dist/server/registerJavaScriptRecoveryTool.js +2 -5
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -8
- package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +5 -8
- package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +4 -7
- package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +6 -9
- package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +6 -9
- package/dist/server/registerOfficialTools.js +4 -21
- package/dist/server/registerProcessComparisonTool.js +74 -48
- package/dist/server/registerRecordedCrashTools.js +2 -5
- package/dist/server/registerSessionRecordTools.js +19 -24
- package/dist/server/registerSessionStatusTool.js +19 -6
- package/dist/server/registerSessionTools.js +20 -18
- package/dist/server/registerWebModuleTool.js +2 -5
- package/dist/server/registerWebNetworkCaptureTool.js +2 -5
- package/dist/server/registerWebRuntimeTools.js +4 -9
- package/dist/server/registerWebScriptTool.js +2 -5
- package/dist/server/registerWebSourceLocationTool.js +2 -5
- package/dist/server/runDerivedOperation.js +15 -3
- package/dist/server/sessionAvailabilityPolicy.js +0 -1
- package/dist/server/toolRegistrationOptions.js +2 -2
- package/dist/server/toolResult.js +75 -51
- package/dist/server/toolResultEncoding.js +34 -0
- package/dist/windows/WindowsNativeLoader.js +1 -0
- package/dist/windows/WindowsOwnedProcess.js +60 -15
- package/dist/windows/WindowsPrivateRuntime.js +7 -8
- package/install.sh +1 -1
- package/native/windows/README.md +3 -1
- package/native/windows/build/manifest.json +2 -2
- package/native/windows/build/rea-windows-x64.node +0 -0
- package/package.json +44 -30
- package/scripts/electron-active-hook-boundaries.cjs +18 -20
- package/scripts/electron-active-hook.cjs +241 -37
- package/scripts/rea.mjs +3 -6
- package/skills/reverse-engineer-anything/SKILL.md +12 -3
- package/skills/reverse-engineer-anything/references/android-applications.md +6 -3
- package/skills/reverse-engineer-anything/references/evidence-workflows.md +8 -4
- package/skills/reverse-engineer-anything/references/javascript-applications.md +20 -3
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +9 -0
- package/dist/config.js +0 -1
- package/dist/contracts/browserCaptureToolInputSchema.js +0 -43
- package/dist/contracts/process/processCaptureExample.js +0 -2
- package/dist/contracts/toolOutputSchemas.js +0 -2
- package/dist/ghidra/GhidraDefaults.js +0 -2
- package/dist/main/reload.js +0 -12
- package/dist/main/state.js +0 -3
- package/dist/server/sessionToolPolicies.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
|
-
import { PassThrough } from "node:stream";
|
|
2
|
+
import { PassThrough, Writable } from "node:stream";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { requireWindowsNativeAuthority, windowsHandleSchema, } from "./WindowsNativeLoader.js";
|
|
5
5
|
const launchSchema = z.strictObject({
|
|
@@ -26,6 +26,7 @@ export const quoteWindowsProcessArgument = (value) => {
|
|
|
26
26
|
export class WindowsOwnedProcess extends EventEmitter {
|
|
27
27
|
stdout = new PassThrough();
|
|
28
28
|
stderr = new PassThrough();
|
|
29
|
+
stdin;
|
|
29
30
|
signalCode = null;
|
|
30
31
|
exitCode = null;
|
|
31
32
|
pid;
|
|
@@ -34,13 +35,14 @@ export class WindowsOwnedProcess extends EventEmitter {
|
|
|
34
35
|
#settled;
|
|
35
36
|
#settle;
|
|
36
37
|
#closed = false;
|
|
37
|
-
#verifiedSettlement = false;
|
|
38
38
|
#failure;
|
|
39
39
|
#timer;
|
|
40
40
|
#cleanup;
|
|
41
|
-
constructor(command, arguments_, cwd, environment, verbatim) {
|
|
41
|
+
constructor(command, arguments_, cwd, environment, verbatim, protocolStdin = false) {
|
|
42
42
|
super();
|
|
43
43
|
this.#authority = requireWindowsNativeAuthority();
|
|
44
|
+
if (protocolStdin && this.#authority.inspection.protocolStdin !== true)
|
|
45
|
+
throw new Error("The bundled Windows native artifact does not support owned protocol stdin; use a matching current Windows x64 REA package.");
|
|
44
46
|
const entries = Object.entries(environment)
|
|
45
47
|
.filter((entry) => entry[1] !== undefined)
|
|
46
48
|
.map(([key, value]) => `${key}=${value}`);
|
|
@@ -55,14 +57,55 @@ export class WindowsOwnedProcess extends EventEmitter {
|
|
|
55
57
|
line,
|
|
56
58
|
cwd ?? "",
|
|
57
59
|
entries,
|
|
60
|
+
...(protocolStdin ? [true] : []),
|
|
58
61
|
]));
|
|
59
62
|
this.pid = launched.pid;
|
|
60
63
|
this.#handle = launched.handle;
|
|
64
|
+
this.stdin = protocolStdin
|
|
65
|
+
? new Writable({
|
|
66
|
+
write: (chunk, _encoding, callback) => {
|
|
67
|
+
void this.#writeInput(chunk).then(() => callback(), (cause) => callback(cause instanceof Error ? cause : new Error(String(cause))));
|
|
68
|
+
},
|
|
69
|
+
final: (callback) => {
|
|
70
|
+
try {
|
|
71
|
+
this.#authority.call("process_stdin_close", [this.#handle]);
|
|
72
|
+
callback();
|
|
73
|
+
}
|
|
74
|
+
catch (cause) {
|
|
75
|
+
callback(cause instanceof Error ? cause : new Error(String(cause)));
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
destroy: (cause, callback) => {
|
|
79
|
+
try {
|
|
80
|
+
if (!this.#closed)
|
|
81
|
+
this.#authority.call("process_stdin_close", [this.#handle]);
|
|
82
|
+
callback(cause);
|
|
83
|
+
}
|
|
84
|
+
catch (failure) {
|
|
85
|
+
callback(failure instanceof Error ? failure : new Error(String(failure)));
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
: null;
|
|
61
90
|
this.#settled = new Promise((resolve) => {
|
|
62
91
|
this.#settle = resolve;
|
|
63
92
|
});
|
|
64
93
|
this.#schedule();
|
|
65
94
|
}
|
|
95
|
+
async #writeInput(chunk) {
|
|
96
|
+
const bytes = z.instanceof(Buffer).parse(chunk);
|
|
97
|
+
const written = z
|
|
98
|
+
.number()
|
|
99
|
+
.int()
|
|
100
|
+
.nonnegative()
|
|
101
|
+
.max(Number.MAX_SAFE_INTEGER)
|
|
102
|
+
.parse(await this.#authority.call("process_stdin_write", [
|
|
103
|
+
this.#handle,
|
|
104
|
+
bytes,
|
|
105
|
+
]));
|
|
106
|
+
if (written !== bytes.length)
|
|
107
|
+
throw new Error("Owned Windows input write did not preserve all requested bytes");
|
|
108
|
+
}
|
|
66
109
|
/** Terminate the retained job, never a PID supplied by another caller. */
|
|
67
110
|
kill(signal) {
|
|
68
111
|
if (signal === 0)
|
|
@@ -78,27 +121,27 @@ export class WindowsOwnedProcess extends EventEmitter {
|
|
|
78
121
|
}
|
|
79
122
|
/** Terminate and verify that the entire job has settled before releasing it. */
|
|
80
123
|
cleanup() {
|
|
81
|
-
this.#cleanup ??= this.#stop()
|
|
124
|
+
this.#cleanup ??= this.#stop().then((result) => {
|
|
125
|
+
if (!result.cleaned)
|
|
126
|
+
this.#cleanup = undefined;
|
|
127
|
+
return result;
|
|
128
|
+
});
|
|
82
129
|
return this.#cleanup;
|
|
83
130
|
}
|
|
84
131
|
async #stop() {
|
|
85
132
|
if (this.#closed)
|
|
86
|
-
return
|
|
87
|
-
? { cleaned: true, signaled: false }
|
|
88
|
-
: {
|
|
89
|
-
cleaned: false,
|
|
90
|
-
reason: this.#failure ?? "Windows Job Object settlement was not verified",
|
|
91
|
-
};
|
|
133
|
+
return { cleaned: true, signaled: false };
|
|
92
134
|
let timer;
|
|
93
135
|
try {
|
|
94
136
|
const signaled = this.kill();
|
|
137
|
+
this.#schedule();
|
|
95
138
|
const settled = await Promise.race([
|
|
96
139
|
this.#settled.then(() => true),
|
|
97
140
|
new Promise((resolve) => {
|
|
98
141
|
timer = setTimeout(() => resolve(false), 5_000);
|
|
99
142
|
}),
|
|
100
143
|
]);
|
|
101
|
-
return settled
|
|
144
|
+
return settled
|
|
102
145
|
? { cleaned: true, signaled }
|
|
103
146
|
: {
|
|
104
147
|
cleaned: false,
|
|
@@ -115,18 +158,20 @@ export class WindowsOwnedProcess extends EventEmitter {
|
|
|
115
158
|
finally {
|
|
116
159
|
if (timer !== undefined)
|
|
117
160
|
clearTimeout(timer);
|
|
118
|
-
if (!this.#closed)
|
|
119
|
-
this.#release();
|
|
120
161
|
}
|
|
121
162
|
}
|
|
122
163
|
#schedule() {
|
|
164
|
+
if (this.#closed || this.#timer !== undefined)
|
|
165
|
+
return;
|
|
123
166
|
this.#timer = setTimeout(() => this.#poll(), 25);
|
|
124
167
|
}
|
|
125
168
|
#poll() {
|
|
169
|
+
this.#timer = undefined;
|
|
126
170
|
if (this.#closed)
|
|
127
171
|
return;
|
|
128
172
|
try {
|
|
129
173
|
const state = pollSchema.parse(this.#authority.call("process_poll", [this.#handle]));
|
|
174
|
+
this.#failure = undefined;
|
|
130
175
|
if (state.stdout.length > 0)
|
|
131
176
|
this.stdout.write(state.stdout);
|
|
132
177
|
if (state.stderr.length > 0)
|
|
@@ -139,7 +184,6 @@ export class WindowsOwnedProcess extends EventEmitter {
|
|
|
139
184
|
state.stdoutEnded &&
|
|
140
185
|
state.stderrEnded &&
|
|
141
186
|
state.activeProcesses === 0) {
|
|
142
|
-
this.#verifiedSettlement = true;
|
|
143
187
|
this.#release();
|
|
144
188
|
}
|
|
145
189
|
else
|
|
@@ -152,7 +196,7 @@ export class WindowsOwnedProcess extends EventEmitter {
|
|
|
152
196
|
// the captured stderr observation produced by the child itself.
|
|
153
197
|
if (this.listenerCount("error") > 0)
|
|
154
198
|
this.emit("error", failure);
|
|
155
|
-
|
|
199
|
+
// Retain the original job so explicit cleanup can retry its observation.
|
|
156
200
|
}
|
|
157
201
|
}
|
|
158
202
|
#release() {
|
|
@@ -162,6 +206,7 @@ export class WindowsOwnedProcess extends EventEmitter {
|
|
|
162
206
|
clearTimeout(this.#timer);
|
|
163
207
|
this.#authority.call("process_close", [this.#handle]);
|
|
164
208
|
this.#closed = true;
|
|
209
|
+
this.stdin?.destroy();
|
|
165
210
|
this.stdout.end();
|
|
166
211
|
this.stderr.end();
|
|
167
212
|
this.#settle?.();
|
|
@@ -105,7 +105,10 @@ export class WindowsPrivateRuntime {
|
|
|
105
105
|
}
|
|
106
106
|
/** Remove owned objects by handle, unlinking reparse entries without traversal. */
|
|
107
107
|
close() {
|
|
108
|
-
this.#closePromise ??= this.#remove()
|
|
108
|
+
this.#closePromise ??= this.#remove().catch((cause) => {
|
|
109
|
+
this.#closePromise = undefined;
|
|
110
|
+
throw cause;
|
|
111
|
+
});
|
|
109
112
|
return this.#closePromise;
|
|
110
113
|
}
|
|
111
114
|
async #remove() {
|
|
@@ -114,13 +117,9 @@ export class WindowsPrivateRuntime {
|
|
|
114
117
|
if (this.#pending !== undefined)
|
|
115
118
|
this.authority.call("runtime_snapshot_cancel", [this.observation.handle]);
|
|
116
119
|
await this.#pending?.catch(() => undefined);
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
finally {
|
|
121
|
-
this.#closed = true;
|
|
122
|
-
runtimes.delete(this.observation.path.toLowerCase());
|
|
123
|
-
}
|
|
120
|
+
this.authority.call("runtime_close", [this.observation.handle]);
|
|
121
|
+
this.#closed = true;
|
|
122
|
+
runtimes.delete(this.observation.path.toLowerCase());
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
125
|
/** Select an already-owned runtime; an arbitrary pathname cannot grant authority. */
|
package/install.sh
CHANGED
|
@@ -107,7 +107,7 @@ if [[ "$dry_run" == true ]]; then
|
|
|
107
107
|
fi
|
|
108
108
|
|
|
109
109
|
printf 'Installing %s@%s...\n' "$PACKAGE" "$version"
|
|
110
|
-
npm install --global "${prefix_args[@]}" "$PACKAGE@$version" || fail "npm could not install REA. Check registry access and npm permissions, then retry."
|
|
110
|
+
npm install --global ${prefix_args[@]+"${prefix_args[@]}"} "$PACKAGE@$version" || fail "npm could not install REA. Check registry access and npm permissions, then retry."
|
|
111
111
|
[[ -x "$install_bin" ]] || fail "npm completed without installing the rea command. Check the npm global bin directory and PATH, then retry."
|
|
112
112
|
installed_version="$("$install_bin" --version 2>/dev/null | tr -d '[:space:]')" || fail "the installed REA version could not be read. Reinstall the requested version, then retry."
|
|
113
113
|
[[ "$installed_version" == "$version" ]] || fail "installed version $installed_version does not match $version. Reinstall the requested version, then retry."
|
package/native/windows/README.md
CHANGED
|
@@ -57,7 +57,9 @@ without this lane reports Windows native controls as unavailable.
|
|
|
57
57
|
deduplicated using Windows ordinal comparison, preserving their native Unicode
|
|
58
58
|
semantics and caller-selected values.
|
|
59
59
|
- Cleanup walks locked directory objects, removes files by handle, and unlinks
|
|
60
|
-
reparse entries without traversing their targets.
|
|
60
|
+
reparse entries without traversing their targets. Failed removal retains the
|
|
61
|
+
root and ancestor leases for retry; a partially removed runtime accepts only
|
|
62
|
+
cleanup, and its registry entry remains until removal succeeds. Normal close, cancellation,
|
|
61
63
|
startup failure, and timeout release provider resources. Abrupt owner death
|
|
62
64
|
kills the owned job; it can leave private runtime files for later operator
|
|
63
65
|
cleanup and does not claim transactional deletion after a crash.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageVersion": "6.
|
|
2
|
+
"packageVersion": "6.2.0",
|
|
3
3
|
"platform": "win32",
|
|
4
4
|
"architecture": "x64",
|
|
5
5
|
"abiVersion": 1,
|
|
6
6
|
"nodeApiVersion": 8,
|
|
7
7
|
"artifact": "rea-windows-x64.node",
|
|
8
|
-
"artifactSha256": "
|
|
8
|
+
"artifactSha256": "fedfd4ce8b3e15784d1a6ef7e9ba7eb9052e8335a1c75b6d69cd7e94f29ab1f8"
|
|
9
9
|
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rea-agents",
|
|
3
3
|
"mcpName": "io.github.morluto/rea",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.2.0",
|
|
5
5
|
"description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -80,27 +80,26 @@
|
|
|
80
80
|
],
|
|
81
81
|
"scripts": {
|
|
82
82
|
"deps:check": "node scripts/check-dependency-install.mjs",
|
|
83
|
-
"metadata:generate": "node scripts/generate-package-metadata.mjs",
|
|
83
|
+
"metadata:generate": "node scripts/run-exclusive.mjs artifacts node scripts/generate-package-metadata.mjs",
|
|
84
84
|
"metadata:check": "node scripts/generate-package-metadata.mjs --check",
|
|
85
85
|
"mcp-registry:check": "node scripts/verify-mcp-registry-metadata.mjs",
|
|
86
|
-
"mcp-catalog:generate": "
|
|
87
|
-
"mcp-catalog:check": "node scripts/
|
|
88
|
-
"prebuild": "npm run deps:check
|
|
89
|
-
"build": "node scripts/run-exclusive.mjs
|
|
90
|
-
"build:unlocked": "node scripts/clean-build-output.mjs && tsc -p tsconfig.build.json && node scripts/generate-mcp-tool-catalog.mjs",
|
|
86
|
+
"mcp-catalog:generate": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:mcp-catalog",
|
|
87
|
+
"mcp-catalog:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run mcp-catalog:check:built",
|
|
88
|
+
"prebuild": "npm run deps:check",
|
|
89
|
+
"build": "node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills --force",
|
|
91
90
|
"precheck": "npm run deps:check",
|
|
92
|
-
"check": "turbo run typecheck lint format:check knip metadata:check",
|
|
91
|
+
"check": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check",
|
|
93
92
|
"precheck:fast": "npm run deps:check",
|
|
94
93
|
"check:fast": "turbo run typecheck lint --output-logs=errors-only",
|
|
95
94
|
"precheck:changed": "npm run deps:check",
|
|
96
95
|
"check:changed": "npm run check:fast && npm run test:changed",
|
|
97
96
|
"precheck:test": "npm run deps:check",
|
|
98
|
-
"check:test": "turbo run typecheck lint format:check knip metadata:check test:run",
|
|
97
|
+
"check:test": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check test:run",
|
|
99
98
|
"precheck:pr": "npm run deps:check",
|
|
100
|
-
"check:pr": "turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check && npm run jscpd && npm run scan:todos",
|
|
99
|
+
"check:pr": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check && npm run jscpd && npm run scan:todos",
|
|
101
100
|
"precheck:ci": "npm run deps:check",
|
|
102
|
-
"check:ci": "turbo run typecheck lint format:check knip metadata:check jscpd scan:todos",
|
|
103
|
-
"build:cached": "node scripts/check-dependency-install.mjs && turbo run
|
|
101
|
+
"check:ci": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check jscpd scan:todos",
|
|
102
|
+
"build:cached": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills",
|
|
104
103
|
"format": "oxfmt .",
|
|
105
104
|
"format:check": "oxfmt --check .",
|
|
106
105
|
"lint": "oxlint && npm run verify:module-boundaries",
|
|
@@ -110,39 +109,43 @@
|
|
|
110
109
|
"scan:todos": "node scripts/scan-todos.mjs",
|
|
111
110
|
"start": "node scripts/rea.mjs mcp",
|
|
112
111
|
"test": "npm run test:with-build",
|
|
113
|
-
"test:with-build": "npm run
|
|
112
|
+
"test:with-build": "npm run test:prepare && vitest run",
|
|
114
113
|
"test:run": "vitest run",
|
|
115
114
|
"test:local": "node scripts/run-development-tests.mjs local",
|
|
116
115
|
"test:fast": "vitest run --project domain --project services --project adapters --project composition --project conformance --project evaluation",
|
|
117
|
-
"pretest:boundary": "npm run
|
|
116
|
+
"pretest:boundary": "npm run test:prepare",
|
|
118
117
|
"test:boundary": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global",
|
|
119
|
-
"pretest:mcp": "
|
|
118
|
+
"pretest:mcp": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills artifacts:mcp-catalog",
|
|
120
119
|
"test:mcp": "vitest run --project mcp-boundary",
|
|
121
120
|
"pretest:acceptance": "npm run build:cached",
|
|
122
121
|
"test:acceptance": "vitest run --project acceptance",
|
|
123
122
|
"test:changed": "node scripts/run-development-tests.mjs changed",
|
|
124
|
-
"pretest:integration": "npm run
|
|
123
|
+
"pretest:integration": "npm run test:prepare",
|
|
125
124
|
"test:integration": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global --project acceptance",
|
|
126
|
-
"pretest:coverage": "npm run
|
|
125
|
+
"pretest:coverage": "npm run test:prepare",
|
|
127
126
|
"test:coverage": "vitest run --coverage.enabled --coverage.provider=v8",
|
|
128
127
|
"test:ci": "npm run test:coverage -- --reporter=default --reporter=junit --outputFile.junit=test-results.xml",
|
|
129
|
-
"pretest:ci:shard": "npm run
|
|
128
|
+
"pretest:ci:shard": "npm run test:prepare",
|
|
130
129
|
"test:ci:shard": "npm run test:ci:shard:run",
|
|
131
130
|
"test:ci:shard:run": "vitest run --coverage.enabled --coverage.provider=v8 --coverage.thresholds.lines=0 --coverage.thresholds.functions=0 --coverage.thresholds.branches=0 --coverage.thresholds.statements=0 --reporter=default --reporter=blob",
|
|
132
131
|
"test:ci:merge": "vitest --merge-reports --coverage.enabled --coverage.provider=v8",
|
|
133
|
-
"pretest:verbose": "npm run
|
|
132
|
+
"pretest:verbose": "npm run test:prepare",
|
|
134
133
|
"test:verbose": "vitest run --reporter=verbose",
|
|
135
134
|
"test:watch": "vitest --project domain --project services --project adapters --project composition --project conformance --project evaluation --changed",
|
|
136
|
-
"pretest:watch:all": "npm run
|
|
135
|
+
"pretest:watch:all": "npm run test:prepare",
|
|
137
136
|
"test:watch:all": "vitest --changed",
|
|
138
137
|
"typecheck": "tsc --noEmit",
|
|
139
|
-
"verify:test-temp-hygiene": "npm run
|
|
138
|
+
"verify:test-temp-hygiene": "npm run test:prepare && node scripts/verify-test-temp-hygiene.mjs",
|
|
140
139
|
"verify:hopper": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper.mjs",
|
|
140
|
+
"verify:hopper:deadlines": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper-deadlines.mjs",
|
|
141
|
+
"verify:hopper:fat": "npm run build:cached && node scripts/verify-real-hopper-fat.mjs",
|
|
142
|
+
"verify:hopper:fat64": "npm run build:cached && node scripts/verify-real-hopper-fat.mjs --fat64",
|
|
141
143
|
"verify:apple-dispatch": "npm run build:cached && node scripts/verify/apple/dispatch.mjs",
|
|
142
144
|
"verify:native-ui": "npm run build:cached && node scripts/verify-native-ui.mjs",
|
|
143
145
|
"verify:keyed-archive": "npm run build:cached && node scripts/verify/apple/keyed-archive.mjs",
|
|
144
146
|
"verify:macos-bundle": "npm run build:cached && node scripts/verify/apple/macos-bundle.mjs",
|
|
145
147
|
"verify:ghidra": "npm run build:cached && node scripts/verify-real-ghidra.mjs",
|
|
148
|
+
"verify:ghidra:swift": "npm run build:cached && node scripts/verify-real-ghidra-swift.mjs",
|
|
146
149
|
"verify:ida": "npm run build:cached && node scripts/verify-real-ida.mjs",
|
|
147
150
|
"verify:ghidra:switch": "npm run build:cached && node scripts/verify-real-ghidra-switch.mjs",
|
|
148
151
|
"verify:ghidra:dos": "npm run build:cached && node scripts/verify-real-ghidra-dos.mjs",
|
|
@@ -177,16 +180,17 @@
|
|
|
177
180
|
"probe:windows-capabilities": "npm run build:cached && node scripts/windows-capabilities.mjs",
|
|
178
181
|
"verify:published": "node scripts/verify-published-package.mjs",
|
|
179
182
|
"config:print": "node scripts/print-mcp-config.mjs",
|
|
180
|
-
"evidence:generate": "
|
|
181
|
-
"evidence:check": "
|
|
183
|
+
"evidence:generate": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:managed-evidence",
|
|
184
|
+
"evidence:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run evidence:check:built",
|
|
185
|
+
"predocs:dev": "npm run docs:generate",
|
|
182
186
|
"docs:dev": "vitepress dev docs",
|
|
187
|
+
"predocs:build": "npm run docs:generate",
|
|
183
188
|
"docs:build": "vitepress build docs",
|
|
184
189
|
"docs:preview": "vitepress preview docs",
|
|
185
|
-
"docs:generate": "node scripts/run-exclusive.mjs
|
|
186
|
-
"docs:
|
|
187
|
-
"docs:check": "node scripts/
|
|
188
|
-
"docs:
|
|
189
|
-
"docs:error-schema": "npm run build:cached && node scripts/generate-error-schema.mjs",
|
|
190
|
+
"docs:generate": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts npm run docs:prepare",
|
|
191
|
+
"docs:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run docs:check:built",
|
|
192
|
+
"docs:check:built": "node scripts/generate-package-metadata.mjs --check && node scripts/generate-skill-metadata.mjs --check && node scripts/generate-product-catalog.mjs --check && node scripts/generate-completion-ledger.mjs --check && node scripts/check-doc-facts.mjs && node scripts/generate-error-schema.mjs --check",
|
|
193
|
+
"docs:error-schema": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:error-schema",
|
|
190
194
|
"prepack": "node scripts/prepack.mjs",
|
|
191
195
|
"prepare": "node scripts/prepare.mjs",
|
|
192
196
|
"verify:asset-catalog": "npm run build:cached && node scripts/verify/apple/asset-catalog.mjs",
|
|
@@ -211,14 +215,24 @@
|
|
|
211
215
|
"verify:web:network-captures": "npm run build:cached && node scripts/verify-web-network-captures.mjs",
|
|
212
216
|
"verify:binary:layout": "npm run build:cached && node scripts/verify-binary-layout.mjs",
|
|
213
217
|
"verify:evm:interface": "npm run build:cached && node scripts/verify-evm-interface.mjs",
|
|
214
|
-
"verify:recorded:crash": "npm run build:cached && node scripts/verify-recorded-crash.mjs"
|
|
218
|
+
"verify:recorded:crash": "npm run build:cached && node scripts/verify-recorded-crash.mjs",
|
|
219
|
+
"mcp-catalog:check:built": "node scripts/generate-mcp-tool-catalog.mjs --check",
|
|
220
|
+
"compile": "node scripts/clean-build-output.mjs && tsc -p tsconfig.build.json",
|
|
221
|
+
"artifacts:mcp-catalog": "node scripts/generate-mcp-tool-catalog.mjs",
|
|
222
|
+
"artifacts:skills": "node scripts/generate-skill-metadata.mjs",
|
|
223
|
+
"artifacts:product-catalog": "node scripts/generate-product-catalog.mjs",
|
|
224
|
+
"artifacts:managed-evidence": "node scripts/generate-completion-ledger.mjs",
|
|
225
|
+
"artifacts:error-schema": "node scripts/generate-error-schema.mjs",
|
|
226
|
+
"test:prepare": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:mcp-catalog artifacts:product-catalog artifacts:managed-evidence",
|
|
227
|
+
"evidence:check:built": "node scripts/generate-completion-ledger.mjs --check",
|
|
228
|
+
"docs:prepare": "node scripts/generate-package-metadata.mjs && turbo run artifacts:product-catalog artifacts:managed-evidence artifacts:error-schema"
|
|
215
229
|
},
|
|
216
230
|
"lint-staged": {
|
|
217
231
|
"*.{cjs,cts,js,jsx,mjs,mts,ts,tsx}": [
|
|
218
232
|
"oxfmt",
|
|
219
233
|
"oxlint --fix"
|
|
220
234
|
],
|
|
221
|
-
"*.{json,md,yml,yaml}": "oxfmt"
|
|
235
|
+
"*.{json,md,yml,yaml}": "oxfmt --no-error-on-unmatched-pattern"
|
|
222
236
|
},
|
|
223
237
|
"dependencies": {
|
|
224
238
|
"@babel/parser": "8.0.4",
|
|
@@ -61,7 +61,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
61
61
|
const target = typeof args[0] === "string" ? args[0] : null;
|
|
62
62
|
recordRuntime("preload", "context-bridge-exposure", "attempted", {
|
|
63
63
|
target,
|
|
64
|
-
|
|
64
|
+
argument_shape_values: args,
|
|
65
65
|
process_type: processType(),
|
|
66
66
|
});
|
|
67
67
|
try {
|
|
@@ -110,7 +110,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
110
110
|
event === "will-download" ? "blocked" : "observed",
|
|
111
111
|
{
|
|
112
112
|
target: identity(args[0], "webContents"),
|
|
113
|
-
|
|
113
|
+
argument_shape_values: args,
|
|
114
114
|
error: event === "will-download",
|
|
115
115
|
},
|
|
116
116
|
);
|
|
@@ -124,7 +124,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
124
124
|
(webContents, permission, callback) => {
|
|
125
125
|
recordRuntime("permission", "permission-request", "blocked", {
|
|
126
126
|
target: identity(webContents, "webContents"),
|
|
127
|
-
|
|
127
|
+
argument_shape_values: [permission],
|
|
128
128
|
error: true,
|
|
129
129
|
});
|
|
130
130
|
if (typeof callback === "function") callback(false);
|
|
@@ -137,7 +137,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
137
137
|
return originalPermissionCheck.call(this, (webContents, permission) => {
|
|
138
138
|
recordRuntime("permission", "permission-check", "blocked", {
|
|
139
139
|
target: identity(webContents, "webContents"),
|
|
140
|
-
|
|
140
|
+
argument_shape_values: [permission],
|
|
141
141
|
error: true,
|
|
142
142
|
});
|
|
143
143
|
return false;
|
|
@@ -148,7 +148,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
148
148
|
session.setCertificateVerifyProc = function blockedCertificate() {
|
|
149
149
|
return originalCertificate.call(this, (request, callback) => {
|
|
150
150
|
recordRuntime("permission", "certificate-error", "blocked", {
|
|
151
|
-
|
|
151
|
+
argument_shape_values: [request],
|
|
152
152
|
error: true,
|
|
153
153
|
});
|
|
154
154
|
if (typeof callback === "function") callback(-2);
|
|
@@ -168,14 +168,14 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
168
168
|
} catch {
|
|
169
169
|
recordRuntime("popup-attempt", "window-open-handler", "failed", {
|
|
170
170
|
target: contentsId,
|
|
171
|
-
|
|
171
|
+
argument_shape_values: args,
|
|
172
172
|
error: true,
|
|
173
173
|
});
|
|
174
174
|
return { action: "deny" };
|
|
175
175
|
}
|
|
176
176
|
recordRuntime("popup-attempt", "window-open-handler", "blocked", {
|
|
177
177
|
target: contentsId,
|
|
178
|
-
|
|
178
|
+
argument_shape_values: args,
|
|
179
179
|
error: true,
|
|
180
180
|
});
|
|
181
181
|
return { action: "deny" };
|
|
@@ -195,9 +195,11 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
195
195
|
};
|
|
196
196
|
};
|
|
197
197
|
|
|
198
|
-
const patchSessionManager = (sessionModule) => {
|
|
198
|
+
const patchSessionManager = (sessionModule, app) => {
|
|
199
199
|
if (sessionModule === null || sessionModule === undefined) return;
|
|
200
|
-
|
|
200
|
+
if (app === undefined || app.isReady())
|
|
201
|
+
patchSession(sessionModule.defaultSession);
|
|
202
|
+
else app.once("ready", () => patchSession(sessionModule.defaultSession));
|
|
201
203
|
for (const method of ["fromPartition", "fromPath"]) {
|
|
202
204
|
const original = sessionModule[method];
|
|
203
205
|
if (typeof original !== "function") continue;
|
|
@@ -223,7 +225,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
223
225
|
method === "relaunch" ? "updater" : "protocol",
|
|
224
226
|
method,
|
|
225
227
|
"blocked",
|
|
226
|
-
{
|
|
228
|
+
{ argument_shape_values: args, error: true },
|
|
227
229
|
);
|
|
228
230
|
return method === "setAsDefaultProtocolClient" ? false : undefined;
|
|
229
231
|
};
|
|
@@ -250,11 +252,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
250
252
|
recordRuntime("native-addon", "dlopen", "attempted", {
|
|
251
253
|
artifact_path: typeof filename === "string" ? filename : null,
|
|
252
254
|
artifact_sha256: digest,
|
|
253
|
-
|
|
254
|
-
shape(module),
|
|
255
|
-
shape(filename),
|
|
256
|
-
...args.map((value) => shape(value)),
|
|
257
|
-
],
|
|
255
|
+
argument_shape_value_groups: [[module, filename], args],
|
|
258
256
|
});
|
|
259
257
|
try {
|
|
260
258
|
const result = original.call(this, module, filename, ...args);
|
|
@@ -280,7 +278,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
280
278
|
if (typeof original !== "function") return;
|
|
281
279
|
utilityProcess.fork = function patchedFork(...args) {
|
|
282
280
|
recordRuntime("process-lifecycle", "utility-process-fork", "attempted", {
|
|
283
|
-
|
|
281
|
+
argument_shape_values: args,
|
|
284
282
|
process_type: "main",
|
|
285
283
|
});
|
|
286
284
|
const child = original.apply(this, args);
|
|
@@ -304,7 +302,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
304
302
|
recordRuntime("process-lifecycle", `utility.${event}`, "observed", {
|
|
305
303
|
target: childId,
|
|
306
304
|
process_type: "utility",
|
|
307
|
-
|
|
305
|
+
argument_shape_values: eventArgs,
|
|
308
306
|
});
|
|
309
307
|
});
|
|
310
308
|
if (child && typeof child.postMessage === "function") {
|
|
@@ -344,7 +342,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
344
342
|
if (typeof original !== "function") continue;
|
|
345
343
|
shell[method] = function blockedShellCall(...args) {
|
|
346
344
|
recordRuntime("shell-attempt", method, "blocked", {
|
|
347
|
-
|
|
345
|
+
argument_shape_values: args,
|
|
348
346
|
error: true,
|
|
349
347
|
});
|
|
350
348
|
return Promise.reject(new Error("External shell effects are blocked"));
|
|
@@ -359,7 +357,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
359
357
|
if (typeof original !== "function") continue;
|
|
360
358
|
childProcess[method] = function patchedChildProcess(...args) {
|
|
361
359
|
recordRuntime("process-lifecycle", `child.${method}`, "attempted", {
|
|
362
|
-
|
|
360
|
+
argument_shape_values: args,
|
|
363
361
|
});
|
|
364
362
|
const child = original.apply(this, args);
|
|
365
363
|
const childId = identity(child, "child");
|
|
@@ -369,7 +367,7 @@ const createElectronActiveBoundaryPatches = ({
|
|
|
369
367
|
patchEmitter(child, (event, eventArgs) =>
|
|
370
368
|
recordRuntime("process-lifecycle", `child.${event}`, "observed", {
|
|
371
369
|
target: childId,
|
|
372
|
-
|
|
370
|
+
argument_shape_values: eventArgs,
|
|
373
371
|
}),
|
|
374
372
|
);
|
|
375
373
|
return child;
|