rea-agents 3.1.0 → 3.2.1
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 +72 -95
- package/bridge/ghidra/ReaGhidraBridge.java +609 -841
- package/bridge/hopper_bridge.py +99 -344
- package/dist/application/AbortablePromise.js +6 -3
- package/dist/application/AnalysisSnapshotCache.js +0 -1
- package/dist/application/AnalysisSnapshotFiles.js +7 -7
- package/dist/application/AndroidApplicationService.js +1 -1
- package/dist/application/AppleApplicationService.js +1 -1
- package/dist/application/ArtifactExtraction.js +35 -54
- package/dist/application/ArtifactExtractionDestination.js +17 -0
- package/dist/application/ArtifactGraphConstruction.js +2 -17
- package/dist/application/ArtifactInventory/classify.js +2 -6
- package/dist/application/ArtifactInventory/hash.js +2 -20
- package/dist/application/ArtifactInventory/scanCanonical.js +8 -12
- package/dist/application/ArtifactInventory/scanReader.js +69 -51
- package/dist/application/ArtifactInventory.js +6 -14
- package/dist/application/AuthorizedArtifactInventory.js +3 -13
- package/dist/application/BinarySession.js +41 -13
- package/dist/application/BinarySessionComposition.js +0 -11
- package/dist/application/BinarySessionOpen.js +2 -1
- package/dist/application/BinarySessionRecords.js +5 -93
- package/dist/application/BinarySessionStatus.js +5 -16
- package/dist/application/BinaryTargetResolver.js +216 -0
- package/dist/application/BrowserEvidence.js +42 -58
- package/dist/application/BrowserObservationService.js +3 -6
- package/dist/application/BrowserScenarioCaptureService.js +3 -6
- package/dist/application/BrowserScenarioEvidence.js +3 -3
- package/dist/application/CallPathTracing.js +2 -36
- package/dist/application/CapabilityInventory.js +10 -15
- package/dist/application/ClientConfigurationDocument.js +27 -0
- package/dist/application/ClientRegistrationStatus.js +16 -13
- package/dist/application/CommandShimReplay.js +14 -1
- package/dist/application/DirectAnalysis.js +22 -46
- package/dist/application/DirectAnalysisStatus.js +5 -61
- package/dist/application/Doctor.js +11 -32
- package/dist/application/DoctorDiagnostics.js +1 -2
- package/dist/application/DoctorScope.js +1 -1
- package/dist/application/ElectronActiveEvidence.js +3 -8
- package/dist/application/ElectronActiveObservationService.js +3 -6
- package/dist/application/ElectronBoundaryAnalysis.js +7 -8
- package/dist/application/ElectronBoundaryGraphContext.js +1 -1
- package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
- package/dist/application/ElectronBoundaryGraphNative.js +1 -2
- package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
- package/dist/application/ElectronEvidence.js +4 -7
- package/dist/application/ElectronObservationService.js +5 -9
- package/dist/application/EnhancedLiteralTracing.js +42 -65
- package/dist/application/EnhancedTools.js +76 -44
- package/dist/application/EvidenceBundleCommands.js +11 -11
- package/dist/application/EvidenceBundleFiles.js +9 -15
- package/dist/application/EvidenceLedger.js +6 -41
- package/dist/application/FilesystemSnapshot.js +2 -3
- package/dist/application/InterfaceBuilderAnalysis.js +266 -0
- package/dist/application/InventoryProjectionEvidence.js +4 -2
- package/dist/application/InvestigationProviders.js +1 -1
- package/dist/application/JavaScriptApplicationEvidence.js +2 -5
- package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
- package/dist/application/JavaScriptApplicationService.js +6 -29
- package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
- package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
- package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
- package/dist/application/JavaScriptArtifactFiles.js +67 -107
- package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
- package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
- package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
- package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
- package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
- package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
- package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
- package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
- package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
- package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
- package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
- package/dist/application/JavaScriptJsonModules.js +2 -2
- package/dist/application/JavaScriptModuleRelationships.js +22 -27
- package/dist/application/JavaScriptReplayPlanning.js +9 -3
- package/dist/application/JavaScriptReplayService.js +6 -32
- package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
- package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
- package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
- package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
- package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
- package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
- package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
- package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
- package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
- package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
- package/dist/application/JavaScriptSemanticTraceService.js +1 -10
- package/dist/application/JsonFiles.js +79 -0
- package/dist/application/LinuxHopper.js +11 -9
- package/dist/application/LoopbackReplay.js +26 -23
- package/dist/application/LoopbackReplayRecorder.js +29 -1
- package/dist/application/ManagedApplicationGraphService.js +1 -2
- package/dist/application/ManagedMemberComparisonService.js +11 -41
- package/dist/application/ManagedNativeVerificationService.js +1 -2
- package/dist/application/ManagedReconstructionService.js +1 -1
- package/dist/application/ManagedRuntimeCorrelationService.js +5 -8
- package/dist/application/NativeApiInspection.js +2 -7
- package/dist/application/NativeUiActionTrace.js +394 -0
- package/dist/application/NodeRuntimeCharacterizationService.js +3 -7
- package/dist/application/PermissionAuthority.js +15 -7
- package/dist/application/PermissionFailure.js +5 -0
- package/dist/application/ProcessCaptureAuthority.js +5 -7
- package/dist/application/ProcessCaptureJournal.js +3 -2
- package/dist/application/ProcessCaptureLifecycle.js +5 -12
- package/dist/application/ProcessCheckpoints.js +29 -11
- package/dist/application/ProcessCli.js +6 -16
- package/dist/application/ProcessEvidence.js +5 -7
- package/dist/application/ProcessHarness.js +52 -17
- package/dist/application/ProcessReactiveCoordinator.js +2 -4
- package/dist/application/ProcessReactiveEffects.js +9 -3
- package/dist/application/ProcessReactiveHarness.js +13 -7
- package/dist/application/ProcessSampling.js +2 -4
- package/dist/application/ProcessTimer.js +39 -0
- package/dist/application/ProjectPermissionStore.js +39 -96
- package/dist/application/RealHopperAssertions.js +20 -66
- package/dist/application/ReconstructionCoverageService.js +12 -58
- package/dist/application/ReconstructionObligationAuthority.js +2 -2
- package/dist/application/ReconstructionObligationCandidates.js +4 -4
- package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
- package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
- package/dist/application/ReconstructionObligationLedgerService.js +19 -38
- package/dist/application/ReferenceSourceImport.js +19 -45
- package/dist/application/ReferenceSourceImportEntries.js +2 -4
- package/dist/application/ReferenceSourceImportPolicy.js +5 -32
- package/dist/application/ReferenceSourceImportTypes.js +0 -16
- package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
- package/dist/application/SessionProviderRouter.js +2 -2
- package/dist/application/Setup.js +1 -3
- package/dist/application/SetupClientConfiguration.js +22 -93
- package/dist/application/SetupRegistrationEnvironment.js +0 -7
- package/dist/application/StoreFileLock.js +119 -0
- package/dist/application/TerminalRenderer.js +2 -3
- package/dist/application/Uninstall.js +9 -14
- package/dist/application/UnknownEvidence.js +1 -1
- package/dist/artifacts/ArtifactPaths.js +2 -5
- package/dist/artifacts/ArtifactProvider.js +36 -58
- package/dist/artifacts/DirectoryArtifactReader.js +13 -8
- package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
- package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
- package/dist/artifacts/NibArchive.js +269 -0
- package/dist/artifacts/SafeOutputTree.js +15 -24
- package/dist/browser/BrowserProcessStartup.js +1 -2
- package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
- package/dist/browser/CdpBrowserProvider.js +3 -13
- package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
- package/dist/browser/CdpCaptureDocuments.js +28 -76
- package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
- package/dist/browser/CdpCaptureEventHandlers.js +22 -87
- package/dist/browser/CdpCaptureEvents.js +2 -8
- package/dist/browser/CdpCaptureStorage.js +9 -20
- package/dist/browser/CdpCaptureStorageFingerprints.js +85 -98
- package/dist/browser/CdpCaptureValues.js +21 -21
- package/dist/browser/CdpConnection.js +10 -25
- package/dist/browser/CdpElectronInspection.js +26 -50
- package/dist/browser/CdpElectronProvider.js +10 -35
- package/dist/browser/CdpElectronScriptEvents.js +8 -16
- package/dist/browser/CdpElectronScripts.js +6 -35
- package/dist/browser/CdpElectronWorkers.js +6 -10
- package/dist/browser/CdpEndpoint.js +25 -41
- package/dist/browser/CdpObservationSession.js +14 -26
- package/dist/browser/CdpPageCapture.js +34 -48
- package/dist/browser/CdpPageCaptureScripts.js +1 -19
- package/dist/browser/CdpPageCaptureWorkers.js +6 -10
- package/dist/browser/CdpSafeMetadata.js +19 -22
- package/dist/browser/CdpScreenshot.js +3 -5
- package/dist/browser/CdpTargetSession.js +1 -2
- package/dist/browser/CdpWebMcpDiscovery.js +13 -22
- package/dist/browser/ElectronFileScope.js +8 -19
- package/dist/browser/JavaScriptRuntimeScope.js +9 -14
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
- package/dist/browser/PlaywrightElectronActiveActions.js +54 -69
- package/dist/browser/PlaywrightElectronActiveProvider.js +14 -34
- package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
- package/dist/browser/PlaywrightScenarioActions.js +3 -7
- package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
- package/dist/browser/PlaywrightScenarioBrowser.js +3 -5
- package/dist/browser/PlaywrightScenarioEvents.js +45 -94
- package/dist/browser/PlaywrightScenarioSession.js +14 -30
- package/dist/browser/PngVisualDiff.js +22 -14
- package/dist/browser/SensitiveTextCapture.js +0 -17
- package/dist/browser/V8InspectorCaptureProjection.js +7 -8
- package/dist/browser/V8InspectorEndpoint.js +12 -14
- package/dist/browser/V8InspectorProvider.js +20 -61
- package/dist/browser/WebSourceMapFetcher.js +56 -176
- package/dist/catalogIdentity.js +0 -54
- package/dist/cli/artifactCommands.js +49 -77
- package/dist/cli/coreAnalysisCommands.js +83 -133
- package/dist/cli/javascriptApplicationAnalysis.js +1 -9
- package/dist/cli/managedCommands.js +5 -270
- package/dist/cli/setupCommands.js +3 -12
- package/dist/cli/utilityCommands.js +7 -41
- package/dist/cli.js +0 -2
- package/dist/cliApplicationCommands.js +42 -112
- package/dist/cliBrowserAdvancedCommands.js +10 -106
- package/dist/cliBrowserCommands.js +15 -127
- package/dist/cliBrowserContext.js +30 -0
- package/dist/cliCommandNames.js +4 -5
- package/dist/cliElectronCommands.js +8 -72
- package/dist/cliEvidenceCommands.js +8 -77
- package/dist/cliJavaScriptRuntimeCommands.js +9 -91
- package/dist/cliJsonInput.js +4 -14
- package/dist/cliObservationOptions.js +11 -96
- package/dist/cliPolicyCommands.js +2 -17
- package/dist/cliProcessCommands.js +3 -3
- package/dist/cliSetup.js +0 -13
- package/dist/config/browserScenario.js +2 -2
- package/dist/config/environment.js +0 -9
- package/dist/config/parseConfig.js +1 -33
- package/dist/config/parsers.js +6 -27
- package/dist/config/passiveObservation.js +7 -77
- package/dist/config/permissions.js +0 -7
- package/dist/contracts/analysisSearchContract.js +2 -5
- package/dist/contracts/applicationToolContracts.js +56 -109
- package/dist/contracts/applicationWorkflowInputContracts.js +27 -102
- package/dist/contracts/artifactComparisonExample.js +58 -60
- package/dist/contracts/artifactToolContracts.js +20 -67
- package/dist/contracts/browserScenarioToolContracts.js +6 -51
- package/dist/contracts/browserToolContracts.js +8 -73
- package/dist/contracts/electronToolContracts.js +8 -108
- package/dist/contracts/enhancedInputs.js +23 -54
- package/dist/contracts/errorSchemas.js +0 -1
- package/dist/contracts/functionComparisonExample.js +10 -24
- package/dist/contracts/functionInstructionContract.js +1 -3
- package/dist/contracts/functionWorkflowToolContracts.js +2 -2
- package/dist/contracts/hopperMemoryContracts.js +3 -3
- package/dist/contracts/investigationExamples.js +14 -11
- package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
- package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
- package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
- package/dist/contracts/managedToolContracts.js +6 -95
- package/dist/contracts/managedWorkflowExamples.js +77 -128
- package/dist/contracts/managedWorkflowToolContracts.js +51 -77
- package/dist/contracts/nativeToolContracts.js +7 -11
- package/dist/contracts/processCaptureExample.js +2 -69
- package/dist/contracts/promptContracts.js +49 -67
- package/dist/contracts/providerSelection.js +0 -1
- package/dist/contracts/reconstructionReadinessExample.js +1 -6
- package/dist/contracts/sessionStatusContract.js +1 -17
- package/dist/contracts/sessionToolSchemas.js +6 -15
- package/dist/contracts/toolContractExamples.js +11 -11
- package/dist/contracts/toolContractHelpers.js +0 -4
- package/dist/contracts/toolContracts.js +60 -71
- package/dist/contracts/toolEffects.js +5 -13
- package/dist/contracts/toolOutputSchemaGroups.js +37 -91
- package/dist/contracts/toolOutputSchemaPrimitives.js +16 -56
- package/dist/contracts/toolSchemaMetadata.js +8 -19
- package/dist/contracts/unknownContractExamples.js +0 -2
- package/dist/domain/analysisErrorPresentation.js +46 -54
- package/dist/domain/analysisErrorProjection.js +28 -37
- package/dist/domain/analysisProfile.js +3 -31
- package/dist/domain/analysisSnapshot.js +3 -12
- package/dist/domain/androidApplication.js +15 -54
- package/dist/domain/appleApplication.js +24 -67
- package/dist/domain/artifactComparison.js +11 -29
- package/dist/domain/artifactGraph.js +14 -44
- package/dist/domain/artifactInspection.js +38 -69
- package/dist/domain/artifactInventoryEvidence.js +27 -21
- package/dist/domain/binaryTarget.js +2 -221
- package/dist/domain/browserCaptureComparison.js +47 -24
- package/dist/domain/browserObservation.js +28 -193
- package/dist/domain/browserObservationSchemas.js +5 -23
- package/dist/domain/browserScenario.js +11 -14
- package/dist/domain/browserScenarioCapture.js +11 -12
- package/dist/domain/browserScenarioCaptureValues.js +146 -84
- package/dist/domain/browserScenarioDiff.js +2 -59
- package/dist/domain/browserScenarioDiffEvidence.js +51 -0
- package/dist/domain/browserScenarioDiffValues.js +21 -38
- package/dist/domain/browserScenarioValues.js +80 -109
- package/dist/domain/browserSession.js +4 -7
- package/dist/domain/bundleComparison.js +6 -32
- package/dist/domain/bytecodeProvider.js +20 -19
- package/dist/domain/callPath.js +47 -167
- package/dist/domain/callPathSchemas.js +79 -0
- package/dist/domain/changedBehavior.js +34 -60
- package/dist/domain/completionLedgerGeneration.js +8 -14
- package/dist/domain/conformancePackage.js +126 -97
- package/dist/domain/conformanceReplay.js +36 -8
- package/dist/domain/conformanceTrustGate.js +23 -14
- package/dist/domain/customProtocolCapture.js +1 -1
- package/dist/domain/electronActiveObservation.js +70 -103
- package/dist/domain/electronObservation.js +14 -80
- package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
- package/dist/domain/electronStaticAnalysisIpc.js +38 -14
- package/dist/domain/electronStaticAnalysisNative.js +1 -8
- package/dist/domain/electronStaticAnalysisValues.js +10 -17
- package/dist/domain/errors.js +33 -54
- package/dist/domain/eventProcessTree.js +20 -12
- package/dist/domain/evidence.js +2 -10
- package/dist/domain/evidenceBundle.js +3 -5
- package/dist/domain/evidenceCompletionLedger.js +6 -8
- package/dist/domain/functionComparison.js +4 -14
- package/dist/domain/functionComparisonNormalization.js +4 -11
- package/dist/domain/functionComparisonResults.js +25 -15
- package/dist/domain/functionComparisonSchemas.js +49 -33
- package/dist/domain/functionDossierEvidence.js +31 -156
- package/dist/domain/hopperStartupFailure.js +1 -1
- package/dist/domain/hopperValues.js +15 -136
- package/dist/domain/interfaceBuilderGraph.js +654 -0
- package/dist/domain/javascriptApplicationAnalysis.js +8 -112
- package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
- package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
- package/dist/domain/javascriptApplicationGraph.js +3 -13
- package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
- package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
- package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
- package/dist/domain/javascriptApplicationVersionItems.js +120 -53
- package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
- package/dist/domain/javascriptAstFingerprint.js +25 -58
- package/dist/domain/javascriptAstValues.js +9 -0
- package/dist/domain/javascriptExportInstrumentation.js +2 -4
- package/dist/domain/javascriptExportShapeComparison.js +6 -7
- package/dist/domain/javascriptExportShapeComparisonSchemas.js +68 -75
- package/dist/domain/javascriptExportShapeSelection.js +17 -19
- package/dist/domain/javascriptFeatureSeed.js +20 -12
- package/dist/domain/javascriptFeatureTrace.js +13 -67
- package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
- package/dist/domain/javascriptFeatureTraversal.js +1 -44
- package/dist/domain/javascriptNativeHandoff.js +1 -1
- package/dist/domain/javascriptReplay.js +24 -41
- package/dist/domain/javascriptRuntimeLoadState.js +3 -8
- package/dist/domain/javascriptRuntimeObservation.js +42 -103
- package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
- package/dist/domain/javascriptRuntimeReconciliationActive.js +8 -17
- package/dist/domain/javascriptRuntimeReconciliationGraph.js +10 -23
- package/dist/domain/javascriptRuntimeReconciliationMatching.js +18 -12
- package/dist/domain/javascriptRuntimeReconciliationParsing.js +16 -45
- package/dist/domain/javascriptRuntimeReconciliationResult.js +4 -5
- package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
- package/dist/domain/javascriptRuntimeReconciliationSchemas.js +33 -48
- package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
- package/dist/domain/javascriptSemanticAnalysis.js +12 -45
- package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
- package/dist/domain/javascriptSemanticCallResolution.js +6 -16
- package/dist/domain/javascriptSemanticCalls.js +5 -32
- package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
- package/dist/domain/javascriptSemanticCoverage.js +11 -0
- package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
- package/dist/domain/javascriptSemanticDataEffects.js +1 -11
- package/dist/domain/javascriptSemanticFingerprints.js +3 -5
- package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
- package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
- package/dist/domain/javascriptSemanticIr.js +1 -29
- package/dist/domain/javascriptSemanticObjects.js +1 -5
- package/dist/domain/javascriptSemanticPrimitives.js +2 -9
- package/dist/domain/javascriptSemanticProjection.js +0 -18
- package/dist/domain/javascriptSemanticPromises.js +9 -16
- package/dist/domain/javascriptSemanticProvenance.js +16 -19
- package/dist/domain/javascriptSemanticQuery.js +17 -139
- package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
- package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
- package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
- package/dist/domain/javascriptSemanticResources.js +1 -6
- package/dist/domain/javascriptSemanticReturns.js +10 -27
- package/dist/domain/javascriptSemanticValueTypes.js +1 -0
- package/dist/domain/javascriptSemanticValues.js +44 -62
- package/dist/domain/javascriptStaticAnalysis.js +21 -43
- package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
- package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
- package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
- package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
- package/dist/domain/javascriptStaticAnalysisState.js +1 -5
- package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
- package/dist/domain/jsonShape.js +7 -33
- package/dist/domain/localPath.js +7 -0
- package/dist/domain/managedApplicationGraph.js +9 -41
- package/dist/domain/managedApplicationGraphCoverage.js +24 -156
- package/dist/domain/managedApplicationGraphNodes.js +10 -13
- package/dist/domain/managedArtifact.js +14 -27
- package/dist/domain/managedMemberComparison.js +90 -92
- package/dist/domain/managedMemberComparisonCoverage.js +11 -33
- package/dist/domain/managedMemberComparisonItems.js +221 -0
- package/dist/domain/managedMemberComparisonMatch.js +8 -208
- package/dist/domain/managedNativeVerification.js +3 -6
- package/dist/domain/managedNativeVerificationMatch.js +55 -59
- package/dist/domain/managedNativeVerificationSchemas.js +83 -47
- package/dist/domain/managedReconstruction.js +19 -23
- package/dist/domain/managedRuntimeCorrelation.js +6 -9
- package/dist/domain/nativeApiBoundary.js +2 -7
- package/dist/domain/nativeInspection.js +0 -2
- package/dist/domain/nativeInvestigationGraph.js +351 -0
- package/dist/domain/nativeValueFlow.js +61 -0
- package/dist/domain/nodeRuntimeCharacterization.js +1 -5
- package/dist/domain/objcSwiftMetadata.js +254 -0
- package/dist/domain/peInspection.js +1 -1
- package/dist/domain/permissionPolicy.js +13 -0
- package/dist/domain/processCapture.js +76 -113
- package/dist/domain/processCaptureExample.js +68 -0
- package/dist/domain/processCaptureParsing.js +21 -0
- package/dist/domain/processCaptureReactiveSchema.js +68 -0
- package/dist/domain/processCaptureValidation.js +1 -7
- package/dist/domain/processComparison.js +3 -12
- package/dist/domain/processReactiveMatching.js +29 -50
- package/dist/domain/processReactiveRuntime.js +4 -8
- package/dist/domain/processReactiveScenario.js +28 -94
- package/dist/domain/processReactiveScenarioPreflight.js +5 -30
- package/dist/domain/processReactiveTransition.js +33 -18
- package/dist/domain/processScenario.js +56 -90
- package/dist/domain/processTraceComparison.js +0 -8
- package/dist/domain/processTraceEvaluation.js +14 -4
- package/dist/domain/processTraceSpecification.js +11 -17
- package/dist/domain/protocolCapture.js +3 -3
- package/dist/domain/reconstructionCoverage.js +62 -129
- package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
- package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
- package/dist/domain/reconstructionReadiness.js +1 -2
- package/dist/domain/reconstructionReadinessSchemas.js +36 -38
- package/dist/domain/reconstructionUnknowns.js +3 -3
- package/dist/domain/reconstructionVerification.js +13 -47
- package/dist/domain/reconstructionVerificationSchemas.js +50 -38
- package/dist/domain/referenceSourceGraph.js +53 -61
- package/dist/domain/referenceSourceImportParsing.js +1 -5
- package/dist/domain/replayMachine.js +19 -31
- package/dist/domain/replayMachineRun.js +15 -63
- package/dist/domain/replayMachineRuntime.js +41 -41
- package/dist/domain/replayMachineValues.js +84 -0
- package/dist/domain/residualUnknown.js +25 -30
- package/dist/domain/runtimeCharacterization.js +15 -16
- package/dist/domain/runtimeIdentification.js +48 -47
- package/dist/domain/sourceToBundleComparison.js +9 -85
- package/dist/domain/sourceToBundleComparisonSchemas.js +17 -42
- package/dist/domain/sourceToBundleSignals.js +4 -15
- package/dist/domain/staticRuntimeCorrelation.js +37 -49
- package/dist/domain/symbolAnalysis.js +10 -19
- package/dist/domain/unicodeCodePointOrder.js +12 -0
- package/dist/domain/webBundleAnalysis.js +70 -99
- package/dist/domain/webBundleAnalyzer.js +2 -4
- package/dist/domain/webBundleAnalyzerAst.js +0 -13
- package/dist/domain/webBundleAnalyzerInspection.js +26 -52
- package/dist/domain/webBundleAnalyzerResult.js +7 -24
- package/dist/domain/webCaptureDiff.js +33 -73
- package/dist/domain/webCaptureDiffSchemas.js +86 -0
- package/dist/domain/webContentArtifact.js +1 -10
- package/dist/domain/webMcpDiscovery.js +3 -14
- package/dist/domain/webScreenshot.js +58 -34
- package/dist/domain/zipPackageFormat.js +7 -0
- package/dist/dotnet/ManagedArtifactInspector.js +17 -50
- package/dist/dotnet/ManagedMemberInspector.js +27 -58
- package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
- package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
- package/dist/dotnet/ManagedMemberRows.js +16 -16
- package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
- package/dist/dotnet/ManagedMetadataInventory.js +21 -30
- package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
- package/dist/dotnet/ManagedMetadataLayout.js +3 -5
- package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -41
- package/dist/dotnet/ManagedPeReader.js +2 -2
- package/dist/dotnet/ManagedStaticProvider.js +13 -71
- package/dist/generatedMcpToolCatalog.js +1 -1
- package/dist/generatedPackageMetadata.js +1 -1
- package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
- package/dist/ghidra/GhidraClient.js +4 -12
- package/dist/ghidra/GhidraClientWire.js +9 -5
- package/dist/ghidra/GhidraDefaults.js +0 -18
- package/dist/ghidra/GhidraDiagnostics.js +0 -2
- package/dist/ghidra/GhidraDoctor.js +16 -12
- package/dist/ghidra/GhidraFunctionValues.js +65 -108
- package/dist/ghidra/GhidraInstallation.js +98 -42
- package/dist/ghidra/GhidraInventoryValues.js +16 -85
- package/dist/ghidra/GhidraLauncher.js +0 -8
- package/dist/ghidra/GhidraProvider.js +15 -22
- package/dist/ghidra/GhidraProviderCapabilities.js +6 -47
- package/dist/ghidra/GhidraRequestQueue.js +6 -30
- package/dist/ghidra/GhidraResponseBuffer.js +1 -7
- package/dist/ghidra/GhidraSessionValues.js +0 -2
- package/dist/ghidra/GhidraTransport.js +4 -7
- package/dist/ghidra/protocol.js +2 -2
- package/dist/hopper/BridgeLauncher.js +112 -36
- package/dist/hopper/HopperAnalysisProfile.js +1 -1
- package/dist/hopper/HopperCleanup.js +6 -3
- package/dist/hopper/HopperClient.js +4 -7
- package/dist/hopper/HopperProcessDiagnostic.js +2 -2
- package/dist/hopper/HopperProvider.js +0 -16
- package/dist/hopper/HopperRequestQueue.js +21 -40
- package/dist/hopper/HopperResponseStream.js +1 -9
- package/dist/hopper/HopperSessionValues.js +3 -2
- package/dist/hopper/HopperTargetLease.js +119 -0
- package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
- package/dist/hopper/LinuxPrivateDisplayProbe.js +5 -16
- package/dist/hopper/protocol.js +6 -4
- package/dist/main/reload.js +0 -3
- package/dist/main/shutdown.js +1 -1
- package/dist/main/state.js +0 -9
- package/dist/main/transport.js +0 -5
- package/dist/mcpDoctor.js +25 -45
- package/dist/native/CommandRunner.js +18 -25
- package/dist/native/NativeMacOSProvider.js +13 -38
- package/dist/native/NativeMachoInspection.js +1 -1
- package/dist/process/BoundedFileBytes.js +17 -0
- package/dist/process/ExecFileOutput.js +11 -0
- package/dist/process/PendingOperations.js +8 -6
- package/dist/process/ProcessOwnership.js +3 -2
- package/dist/process/ProcessOwnershipObservation.js +0 -1
- package/dist/process/ProviderProcess.js +7 -28
- package/dist/reference/ReferenceSourceReader.js +8 -24
- package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
- package/dist/reference/ReferenceSourceReaderFile.js +13 -31
- package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
- package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
- package/dist/replay/JavaScriptReplayWorker.js +3 -5
- package/dist/replay/LinuxJavaScriptReplayRunner.js +33 -29
- package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
- package/dist/replay/LinuxRuntimeClosure.js +1 -3
- package/dist/replay/ReplayOutcome.js +1 -3
- package/dist/replay/ReplayProcessLifecycle.js +32 -7
- package/dist/replay/ReplaySeccompFile.js +29 -0
- package/dist/replay/ReplayWorkerProtocol.js +0 -2
- package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
- package/dist/server/ProcessCaptureElicitation.js +4 -8
- package/dist/server/createServer.js +6 -44
- package/dist/server/promptCompletion.js +37 -61
- package/dist/server/recordDerivedEvidence.js +1 -1
- package/dist/server/registerApplicationTools/characterization.js +4 -8
- package/dist/server/registerApplicationTools/compareExportShapes.js +5 -10
- package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -10
- package/dist/server/registerApplicationTools/compareVersions.js +5 -10
- package/dist/server/registerApplicationTools/controlledReplay.js +3 -5
- package/dist/server/registerApplicationTools/coverage.js +6 -71
- package/dist/server/registerApplicationTools/helpers.js +1 -13
- package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
- package/dist/server/registerApplicationTools/traceFeature.js +5 -9
- package/dist/server/registerApplicationTools/traceSemantics.js +5 -8
- package/dist/server/registerApplicationTools.js +0 -2
- package/dist/server/registerArtifactComparisonTool.js +23 -27
- package/dist/server/registerBrowserScenarioTool.js +4 -4
- package/dist/server/registerBrowserTools.js +5 -8
- package/dist/server/registerBundleComparisonTool.js +5 -7
- package/dist/server/registerCloseLifecycleTool.js +2 -16
- package/dist/server/registerElectronTools.js +10 -29
- package/dist/server/registerEnhancedTools.js +10 -11
- package/dist/server/registerEvidenceTools.js +15 -22
- package/dist/server/registerFunctionComparisonTool.js +30 -25
- package/dist/server/registerInvestigationTools/helpers.js +3 -32
- package/dist/server/registerInvestigationTools.js +20 -116
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -4
- package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +15 -17
- package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
- package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -8
- package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +3 -8
- package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +10 -14
- package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +9 -15
- package/dist/server/registerOfficialTools.js +1 -43
- package/dist/server/registerProcessComparisonTool.js +33 -23
- package/dist/server/registerPrompts.js +19 -17
- package/dist/server/registerSessionRecordTools.js +10 -156
- package/dist/server/registerSessionStatusTool.js +6 -69
- package/dist/server/registerSessionTools.js +10 -51
- package/dist/server/sessionAvailabilityPolicy.js +0 -2
- package/dist/server/sessionEvidence.js +9 -15
- package/dist/server/sessionToolPolicies.js +0 -8
- package/dist/server/toolResult.js +14 -50
- package/dist/serverIdentity.js +0 -20
- package/install.sh +1 -1
- package/package.json +11 -7
- package/scripts/electron-active-hook.cjs +23 -55
- package/scripts/hopper-demo-x11.py +13 -32
- package/skills/reverse-engineer-anything/SKILL.md +47 -12
- package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
- package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
- package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -188
- package/dist/application/BoundedJsonFiles.js +0 -86
- package/dist/application/CrossVersionInventory.js +0 -129
- package/dist/application/CrossVersionInvestigation.js +0 -301
- package/dist/application/CrossVersionInvestigationCollections.js +0 -23
- package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
- package/dist/application/CrossVersionInvestigationReplay.js +0 -170
- package/dist/application/DeferredFileAuthorization.js +0 -61
- package/dist/application/DoctorProjection.js +0 -43
- package/dist/application/EnhancedToolPagination.js +0 -22
- package/dist/application/EvidenceReferenceResolver.js +0 -26
- package/dist/application/InvestigationWorkspaceStore.js +0 -204
- package/dist/application/ProcessPairedExperiment.js +0 -72
- package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
- package/dist/application/ReconstructionReadinessService.js +0 -48
- package/dist/cliInvestigationCommands.js +0 -173
- package/dist/domain/boundedCartesianProjection.js +0 -15
- package/dist/domain/investigationWorkspace.js +0 -347
- package/dist/domain/jsonLimits.js +0 -26
- package/dist/domain/knownPageCoverage.js +0 -29
- package/dist/domain/processPairedExperiment.js +0 -128
- package/dist/server/javascriptApplicationResult.js +0 -106
- package/dist/server/permissionFailure.js +0 -12
- package/dist/server/registerApplicationTools/readiness.js +0 -50
- package/dist/server/registerEvidenceResources.js +0 -315
- package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
- package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
- package/dist/server/registerReconstructionReadinessResource.js +0 -32
|
@@ -1,107 +1,28 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
1
|
import { toolContractMetadata } from "./toolEffects.js";
|
|
3
2
|
import { evidenceResultOf } from "./toolOutputSchemas.js";
|
|
4
3
|
import { electronPageInspectionSchema, electronTargetListSchema, inspectElectronPageInputSchema, listElectronTargetsInputSchema, } from "../domain/electronObservation.js";
|
|
5
4
|
import { electronActiveObservationInputSchema, electronActiveObservationResultSchema, } from "../domain/electronActiveObservation.js";
|
|
6
|
-
import { analyzeJavaScriptApplicationInputSchema,
|
|
7
|
-
import { JAVASCRIPT_APPLICATION_NODE_KINDS } from "../domain/javascriptApplicationGraphSchemas.js";
|
|
8
|
-
import { applicationCoverageSchema } from "../domain/javascriptApplicationEvidenceSchemas.js";
|
|
5
|
+
import { analyzeJavaScriptApplicationInputSchema, javascriptApplicationAnalysisResultSchema, } from "../domain/javascriptApplicationAnalysis.js";
|
|
9
6
|
import { javascriptRuntimeReconciliationResultSchema, reconcileJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeReconciliationSchemas.js";
|
|
10
7
|
import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "./javascriptRuntimeReconciliationExample.js";
|
|
11
8
|
const listOutputSchema = evidenceResultOf(electronTargetListSchema);
|
|
12
9
|
const inspectionOutputSchema = evidenceResultOf(electronPageInspectionSchema);
|
|
13
|
-
|
|
14
|
-
export const analyzeJavaScriptApplicationToolInputSchema = analyzeJavaScriptApplicationInputSchema.extend({
|
|
15
|
-
detail: z
|
|
16
|
-
.enum(["summary", "full"])
|
|
17
|
-
.default("summary")
|
|
18
|
-
.describe("summary returns bounded findings and paged graph resource URIs; full returns the complete graph only when explicitly required"),
|
|
19
|
-
});
|
|
20
|
-
/** Bounded default projection for agent-facing JavaScript application analysis. */
|
|
21
|
-
const applicationGraphSummarySchema = z.strictObject({
|
|
22
|
-
graph_id: z.string().regex(/^jag_[a-f0-9]{64}$/u),
|
|
23
|
-
node_count: z.number().int().min(0),
|
|
24
|
-
edge_count: z.number().int().min(0),
|
|
25
|
-
roots: z.strictObject({
|
|
26
|
-
items: z.array(z.string().regex(/^jag_node_[a-f0-9]{64}$/u)),
|
|
27
|
-
total: z.number().int().min(0),
|
|
28
|
-
truncated: z.boolean(),
|
|
29
|
-
}),
|
|
30
|
-
node_kinds: z.array(z.strictObject({
|
|
31
|
-
kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
|
|
32
|
-
count: z.number().int().min(1),
|
|
33
|
-
})),
|
|
34
|
-
top_findings: z.array(z.strictObject({
|
|
35
|
-
node_id: z.string().regex(/^jag_node_[a-f0-9]{64}$/u),
|
|
36
|
-
kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
|
|
37
|
-
label: z.string().nullable(),
|
|
38
|
-
authority: z.string(),
|
|
39
|
-
state: z.string(),
|
|
40
|
-
confidence: z.string(),
|
|
41
|
-
location: z.json(),
|
|
42
|
-
})),
|
|
43
|
-
coverage: applicationCoverageSchema,
|
|
44
|
-
limitations: z.array(z.string()),
|
|
45
|
-
pages: z.strictObject({
|
|
46
|
-
nodes: z.string().startsWith("rea://evidence/"),
|
|
47
|
-
edges: z.string().startsWith("rea://evidence/"),
|
|
48
|
-
page_limit: z.number().int().min(1).max(500),
|
|
49
|
-
}),
|
|
50
|
-
});
|
|
51
|
-
const semanticGraphSummarySchema = z.strictObject({
|
|
52
|
-
graph_id: z.string().regex(/^jsrg_[a-f0-9]{64}$/u),
|
|
53
|
-
nodes: z.number().int().min(0),
|
|
54
|
-
relations: z.number().int().min(0),
|
|
55
|
-
unknown_frontiers: z.number().int().min(0),
|
|
56
|
-
fingerprints: z.number().int().min(0),
|
|
57
|
-
coverage: z.enum(["complete", "partial", "unknown", "unavailable"]),
|
|
58
|
-
query_tool: z.literal("trace_javascript_semantics"),
|
|
59
|
-
});
|
|
60
|
-
const summaryFields = {
|
|
61
|
-
unknowns: z.array(z.string().min(1).max(4_096)).max(1_000),
|
|
62
|
-
graph: applicationGraphSummarySchema,
|
|
63
|
-
};
|
|
64
|
-
/** Bounded default projection for agent-facing JavaScript application analysis. */
|
|
65
|
-
export const javascriptApplicationAnalysisSummarySchema = z.discriminatedUnion("schema_version", [
|
|
66
|
-
javaScriptApplicationAnalysisResultV1Schema
|
|
67
|
-
.omit({ graph: true })
|
|
68
|
-
.extend(summaryFields),
|
|
69
|
-
javaScriptApplicationAnalysisResultV1Schema.omit({ graph: true }).extend({
|
|
70
|
-
schema_version: z.literal(2),
|
|
71
|
-
...summaryFields,
|
|
72
|
-
semantic_graph: semanticGraphSummarySchema,
|
|
73
|
-
}),
|
|
74
|
-
]);
|
|
75
|
-
const applicationOutputSchema = evidenceResultOf(z.union([
|
|
76
|
-
javascriptApplicationAnalysisSummarySchema,
|
|
77
|
-
javascriptApplicationAnalysisResultSchema,
|
|
78
|
-
]));
|
|
10
|
+
const applicationOutputSchema = evidenceResultOf(javascriptApplicationAnalysisResultSchema);
|
|
79
11
|
const reconciliationOutputSchema = evidenceResultOf(javascriptRuntimeReconciliationResultSchema);
|
|
80
12
|
const endpoint = "http://127.0.0.1:9223";
|
|
81
|
-
const root = "/Applications/Example.app/Contents/Resources";
|
|
82
13
|
const activeExample = {
|
|
83
|
-
schema_version: 1,
|
|
84
14
|
executable_path: "/Applications/Electron.app/Contents/MacOS/Electron",
|
|
85
15
|
application_path: "/Applications/Example.app/Contents/Resources/main.js",
|
|
86
16
|
application_root: "/Applications/Example.app/Contents/Resources",
|
|
87
17
|
args: [],
|
|
88
18
|
actions: [{ step_id: "exercise-ipc", kind: "click", selector: "#run" }],
|
|
89
|
-
limits: {
|
|
90
|
-
max_duration_ms: 60_000,
|
|
91
|
-
action_timeout_ms: 5_000,
|
|
92
|
-
max_actions: 20,
|
|
93
|
-
max_ipc_events: 2_000,
|
|
94
|
-
max_processes: 32,
|
|
95
|
-
max_windows: 32,
|
|
96
|
-
},
|
|
97
|
-
approved: true,
|
|
98
19
|
};
|
|
99
20
|
/** Root-confined Electron file-page discovery and inspection contracts. */
|
|
100
21
|
export const ELECTRON_TOOL_CONTRACTS = [
|
|
101
22
|
{
|
|
102
23
|
name: "list_electron_targets",
|
|
103
24
|
...toolContractMetadata("list_electron_targets"),
|
|
104
|
-
description: "List Electron file:// page
|
|
25
|
+
description: "List every Electron file:// page target from an approved user-owned loopback CDP endpoint. Every path is canonicalized and must remain contained by an approved filesystem root, including after symlink resolution.",
|
|
105
26
|
kind: "electron-provider",
|
|
106
27
|
inputSchema: listElectronTargetsInputSchema,
|
|
107
28
|
outputSchema: listOutputSchema,
|
|
@@ -110,10 +31,6 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
110
31
|
title: "List approved Electron file pages",
|
|
111
32
|
input: {
|
|
112
33
|
cdp_endpoint: endpoint,
|
|
113
|
-
allowed_file_roots: [root],
|
|
114
|
-
approved: true,
|
|
115
|
-
offset: 0,
|
|
116
|
-
limit: 100,
|
|
117
34
|
},
|
|
118
35
|
},
|
|
119
36
|
],
|
|
@@ -121,7 +38,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
121
38
|
{
|
|
122
39
|
name: "inspect_electron_page",
|
|
123
40
|
...toolContractMetadata("inspect_electron_page"),
|
|
124
|
-
description: "Passively inspect one
|
|
41
|
+
description: "Passively inspect one Electron file page by supplying its loopback CDP endpoint and target ID. The provider rechecks that the target currently exists at that endpoint and is a local file page. Returns frames, DOM structure, resource paths, and scripts without evaluating renderer JavaScript or invoking Electron APIs. The selected endpoint exposes every local file page and its metadata to this tool.",
|
|
125
42
|
kind: "electron-provider",
|
|
126
43
|
inputSchema: inspectElectronPageInputSchema,
|
|
127
44
|
outputSchema: inspectionOutputSchema,
|
|
@@ -130,21 +47,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
130
47
|
title: "Inspect an approved Electron page",
|
|
131
48
|
input: {
|
|
132
49
|
cdp_endpoint: endpoint,
|
|
133
|
-
allowed_file_roots: [root],
|
|
134
50
|
target_id: "TARGET_ID_FROM_LIST_ELECTRON_TARGETS",
|
|
135
|
-
approved: true,
|
|
136
|
-
observation_ms: 100,
|
|
137
|
-
include_script_sources: false,
|
|
138
|
-
source_capture_approved: false,
|
|
139
|
-
limits: {
|
|
140
|
-
max_frames: 200,
|
|
141
|
-
max_dom_nodes: 2_000,
|
|
142
|
-
max_scripts: 500,
|
|
143
|
-
max_resources: 2_000,
|
|
144
|
-
max_workers: 500,
|
|
145
|
-
max_script_source_bytes: 1_048_576,
|
|
146
|
-
max_total_script_source_bytes: 4_194_304,
|
|
147
|
-
},
|
|
148
51
|
},
|
|
149
52
|
},
|
|
150
53
|
],
|
|
@@ -152,19 +55,16 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
152
55
|
{
|
|
153
56
|
name: "analyze_javascript_application",
|
|
154
57
|
...toolContractMetadata("analyze_javascript_application"),
|
|
155
|
-
description: "
|
|
58
|
+
description: "Reconstruct one local ASAR or extracted JavaScript application as an inline application graph without executing it. Returns all recovered graph nodes, edges, semantic relations, limitations, and coverage.",
|
|
156
59
|
kind: "electron-provider",
|
|
157
|
-
inputSchema:
|
|
60
|
+
inputSchema: analyzeJavaScriptApplicationInputSchema,
|
|
158
61
|
outputSchema: applicationOutputSchema,
|
|
159
62
|
examples: [
|
|
160
63
|
{
|
|
161
|
-
title: "Analyze one
|
|
64
|
+
title: "Analyze one local JavaScript application",
|
|
162
65
|
input: {
|
|
163
66
|
input_path: "/Applications/Example.app/Contents/Resources/app.asar",
|
|
164
67
|
format: "auto",
|
|
165
|
-
approved: true,
|
|
166
|
-
source_map_read_approved: false,
|
|
167
|
-
detail: "summary",
|
|
168
68
|
},
|
|
169
69
|
},
|
|
170
70
|
],
|
|
@@ -186,7 +86,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
186
86
|
{
|
|
187
87
|
name: "capture_electron_scenario",
|
|
188
88
|
...toolContractMetadata("capture_electron_scenario"),
|
|
189
|
-
description: "Use this for an explicitly approved, provider-owned Electron run when passive CDP or Inspector observation cannot exercise application behavior. REA owns startup and teardown, accepts
|
|
89
|
+
description: "Use this for an explicitly approved, provider-owned Electron run when passive CDP or Inspector observation cannot exercise application behavior. REA owns startup and teardown, accepts caller-defined click/wait actions plus window-targeted renderer reload/crash and synthetic open-url/second-instance delivery, and returns correlated window/WebContents/process/preload/session/navigation/shell/IPC evidence without retaining payload values. Results identify observed and unavailable event families, coverage status, action targets, and truncation. External shell, navigation, permission, download, popup, updater, and OS-integration effects are blocked and recorded. Use passive Electron tools for observation-only work.",
|
|
190
90
|
kind: "electron-provider",
|
|
191
91
|
inputSchema: electronActiveObservationInputSchema,
|
|
192
92
|
outputSchema: evidenceResultOf(electronActiveObservationResultSchema),
|
|
@@ -2,73 +2,40 @@ import { z } from "zod";
|
|
|
2
2
|
const traceLiteralInputSchema = z.strictObject({
|
|
3
3
|
query: z.string().min(1),
|
|
4
4
|
case_sensitive: z.boolean().default(false),
|
|
5
|
-
limit: z.number().int().min(1).max(100).default(20),
|
|
6
|
-
max_operations: z.number().int().min(1).max(100).default(20),
|
|
7
|
-
unknown_registry_approved: z
|
|
8
|
-
.literal(true)
|
|
9
|
-
.optional()
|
|
10
|
-
.describe("Explicit approval to record bounded residuals durably"),
|
|
11
5
|
});
|
|
12
6
|
/** Input schemas shared by MCP registration and enhanced application dispatch. */
|
|
13
7
|
export const enhancedInputSchemas = {
|
|
14
|
-
|
|
8
|
+
inspect_native_dispatch_metadata: z.strictObject({
|
|
9
|
+
max_records: z.number().int().min(1).max(20_000).default(5_000),
|
|
10
|
+
}),
|
|
15
11
|
get_objc_classes: z.strictObject({ pattern: z.string().default("") }),
|
|
16
12
|
get_objc_protocols: z.strictObject({}),
|
|
17
13
|
batch_decompile: z.strictObject({
|
|
18
14
|
addresses: z
|
|
19
15
|
.array(z.string().describe("A provider-normalized procedure address"))
|
|
20
|
-
.max(20)
|
|
21
16
|
.default([]),
|
|
22
17
|
}),
|
|
23
18
|
get_call_graph: z.strictObject({
|
|
24
19
|
address: z.string().describe("A provider-normalized procedure address"),
|
|
25
20
|
direction: z.enum(["forward", "backward"]).default("forward"),
|
|
26
|
-
depth: z.number().int().min(1).max(5).default(2),
|
|
27
21
|
}),
|
|
28
|
-
analyze_swift_types: z.strictObject({
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
analyze_swift_types: z.strictObject({
|
|
23
|
+
category: z
|
|
24
|
+
.enum(["classes", "structs", "enums", "protocols", "extensions", "other"])
|
|
25
|
+
.optional()
|
|
26
|
+
.describe("Limit results to one Swift symbol category."),
|
|
27
|
+
pattern: z
|
|
28
|
+
.string()
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Case-sensitive literal filter applied to mangled symbol names."),
|
|
33
31
|
}),
|
|
32
|
+
find_xrefs_to_name: z.strictObject({ name: z.string() }),
|
|
33
|
+
binary_overview: z.strictObject({}),
|
|
34
34
|
analyze_function: z.strictObject({
|
|
35
35
|
procedure: z.string().describe("A procedure name or address"),
|
|
36
|
-
include_assembly: z.boolean().default(false),
|
|
37
|
-
limit: z.number().int().min(1).max(500).default(100),
|
|
38
|
-
max_pseudocode_chars: z.number().int().min(1).max(100_000).default(20_000),
|
|
39
|
-
max_instructions: z.number().int().min(1).max(5_000).default(500),
|
|
40
|
-
pseudocode_offset: z.number().int().min(0).default(0),
|
|
41
|
-
assembly_offset: z.number().int().min(0).default(0),
|
|
42
|
-
collection_offset: z
|
|
43
|
-
.strictObject({
|
|
44
|
-
comments: z.number().int().min(0).default(0),
|
|
45
|
-
callers: z.number().int().min(0).default(0),
|
|
46
|
-
callees: z.number().int().min(0).default(0),
|
|
47
|
-
incoming_references: z.number().int().min(0).default(0),
|
|
48
|
-
outgoing_references: z.number().int().min(0).default(0),
|
|
49
|
-
referenced_strings: z.number().int().min(0).default(0),
|
|
50
|
-
referenced_names: z.number().int().min(0).default(0),
|
|
51
|
-
basic_blocks: z.number().int().min(0).default(0),
|
|
52
|
-
})
|
|
53
|
-
.default({
|
|
54
|
-
comments: 0,
|
|
55
|
-
callers: 0,
|
|
56
|
-
callees: 0,
|
|
57
|
-
incoming_references: 0,
|
|
58
|
-
outgoing_references: 0,
|
|
59
|
-
referenced_strings: 0,
|
|
60
|
-
referenced_names: 0,
|
|
61
|
-
basic_blocks: 0,
|
|
62
|
-
}),
|
|
63
36
|
}),
|
|
64
37
|
inspect_native_api: z.strictObject({
|
|
65
38
|
procedure: z.string().describe("A procedure name or address"),
|
|
66
|
-
max_pseudocode_chars: z.number().int().min(1).max(100_000).default(20_000),
|
|
67
|
-
max_instructions: z.number().int().min(1).max(5_000).default(500),
|
|
68
|
-
unknown_registry_approved: z
|
|
69
|
-
.literal(true)
|
|
70
|
-
.optional()
|
|
71
|
-
.describe("Explicit approval to record unsupported native API branches durably"),
|
|
72
39
|
}),
|
|
73
40
|
trace_feature: traceLiteralInputSchema,
|
|
74
41
|
find_code_for_string: traceLiteralInputSchema,
|
|
@@ -79,12 +46,14 @@ export const enhancedInputSchemas = {
|
|
|
79
46
|
.describe("An optional provider-normalized destination address")
|
|
80
47
|
.optional(),
|
|
81
48
|
direction: z.enum(["forward", "backward"]).default("forward"),
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
.
|
|
87
|
-
.
|
|
88
|
-
|
|
49
|
+
}),
|
|
50
|
+
trace_native_ui_action: z.strictObject({
|
|
51
|
+
action: z
|
|
52
|
+
.string()
|
|
53
|
+
.min(1)
|
|
54
|
+
.describe("A unique compiled UI action selector or interface object ID"),
|
|
55
|
+
max_depth: z.number().int().min(0).max(32).default(8),
|
|
56
|
+
max_nodes: z.number().int().min(1).max(2_000).default(250),
|
|
57
|
+
max_edges: z.number().int().min(1).max(5_000).default(500),
|
|
89
58
|
}),
|
|
90
59
|
};
|
|
@@ -91,7 +91,6 @@ export const analysisErrorProjectionSchema = z.discriminatedUnion("code", [
|
|
|
91
91
|
generic("process_capture_failed"),
|
|
92
92
|
generic("cleanup_incomplete"),
|
|
93
93
|
generic("revision_conflict"),
|
|
94
|
-
generic("outside_approved_root"),
|
|
95
94
|
generic("configuration_invalid"),
|
|
96
95
|
generic("target_unavailable"),
|
|
97
96
|
generic("execution_failure"),
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { enhancedInputSchemas } from "./enhancedInputs.js";
|
|
2
2
|
import { createEvidence } from "../domain/evidence.js";
|
|
3
3
|
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
4
|
-
const bounded = (items) => ({
|
|
5
|
-
items,
|
|
6
|
-
total: items.length,
|
|
7
|
-
returned: items.length,
|
|
8
|
-
truncated: false,
|
|
9
|
-
next_offset: null,
|
|
10
|
-
});
|
|
11
4
|
const dossier = (text) => jsonValueSchema.parse({
|
|
12
5
|
procedure: {
|
|
13
6
|
address: "0x1000",
|
|
@@ -15,23 +8,16 @@ const dossier = (text) => jsonValueSchema.parse({
|
|
|
15
8
|
signature: "int main(void)",
|
|
16
9
|
locals: [],
|
|
17
10
|
},
|
|
18
|
-
pseudocode:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
callees: bounded([]),
|
|
29
|
-
incoming_references: bounded([]),
|
|
30
|
-
outgoing_references: bounded([]),
|
|
31
|
-
referenced_strings: bounded([]),
|
|
32
|
-
referenced_names: bounded([]),
|
|
33
|
-
basic_blocks: bounded([{ start: "0x1000", end: "0x1001", successors: [] }]),
|
|
34
|
-
instruction_scan: { scanned: 1, truncated: false },
|
|
11
|
+
pseudocode: text,
|
|
12
|
+
assembly: [],
|
|
13
|
+
comments: [],
|
|
14
|
+
callers: [],
|
|
15
|
+
callees: [],
|
|
16
|
+
incoming_references: [],
|
|
17
|
+
outgoing_references: [],
|
|
18
|
+
referenced_strings: [],
|
|
19
|
+
referenced_names: [],
|
|
20
|
+
basic_blocks: [{ start: "0x1000", end: "0x1001", successors: [] }],
|
|
35
21
|
});
|
|
36
22
|
const observe = (digit, text) => createEvidence({
|
|
37
23
|
path: `/tmp/function-${digit}`,
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
/** Provider-neutral input for
|
|
2
|
+
/** Provider-neutral input for a function's complete raw instruction list. */
|
|
3
3
|
export const functionInstructionInputSchema = z.object({
|
|
4
4
|
procedure: z.string().describe("The procedure name or address"),
|
|
5
|
-
offset: z.number().int().min(0).max(100_000).default(0),
|
|
6
|
-
limit: z.number().int().min(1).max(500).default(64),
|
|
7
5
|
document: z.string().optional().describe("The document name"),
|
|
8
6
|
});
|
|
@@ -24,6 +24,6 @@ const functionWorkflow = (name, description) => {
|
|
|
24
24
|
};
|
|
25
25
|
/** Function dossier and native API reconstruction workflow contracts. */
|
|
26
26
|
export const FUNCTION_WORKFLOW_TOOL_CONTRACTS = [
|
|
27
|
-
functionWorkflow("analyze_function", "
|
|
28
|
-
functionWorkflow("inspect_native_api", "
|
|
27
|
+
functionWorkflow("analyze_function", "Build a dossier for one native function identified by symbol or provider-returned address. Returns identity, provider-specific pseudocode and assembly, comments, calls, references, referenced strings/names, local CFG blocks, and available native API boundary observations."),
|
|
28
|
+
functionWorkflow("inspect_native_api", "Analyze a native API boundary in one function identified by symbol or provider-returned address. Returns confidence, evidence, jump-table dispatch/data/target mappings, unsupported branches, and residual unknowns."),
|
|
29
29
|
];
|
|
@@ -3,14 +3,14 @@ const document = z.string().optional().describe("The document name");
|
|
|
3
3
|
const address = z
|
|
4
4
|
.string()
|
|
5
5
|
.describe("A provider-normalized address; default memory uses 0x-prefixed hexadecimal");
|
|
6
|
-
/**
|
|
6
|
+
/** Hopper memory and file-mapping contracts. */
|
|
7
7
|
export const HOPPER_MEMORY_TOOL_DEFINITIONS = [
|
|
8
8
|
{
|
|
9
9
|
name: "read_bytes",
|
|
10
|
-
description: "Read
|
|
10
|
+
description: "Read analyzed bytes from one provider-normalized virtual address. The hexadecimal payload reports the exact returned length; incomplete reads remain explicit and unsupported provider APIs return typed capability unavailability.",
|
|
11
11
|
inputSchema: z.object({
|
|
12
12
|
address,
|
|
13
|
-
length: z.number().int().min(1).
|
|
13
|
+
length: z.number().int().min(1).default(256),
|
|
14
14
|
document,
|
|
15
15
|
}),
|
|
16
16
|
},
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
import { compareFunctions } from "../domain/functionComparison.js";
|
|
2
2
|
import { createEvidence } from "../domain/evidence.js";
|
|
3
3
|
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
4
|
-
import { compareProcessCaptures,
|
|
4
|
+
import { compareProcessCaptures, parseProcessCapture, } from "../domain/processCapture.js";
|
|
5
5
|
import { FUNCTION_COMPARISON_EXAMPLE } from "./functionComparisonExample.js";
|
|
6
6
|
import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js";
|
|
7
|
-
const comparison = compareFunctions(FUNCTION_COMPARISON_EXAMPLE.left, FUNCTION_COMPARISON_EXAMPLE.right
|
|
7
|
+
const comparison = compareFunctions(FUNCTION_COMPARISON_EXAMPLE.left, FUNCTION_COMPARISON_EXAMPLE.right);
|
|
8
8
|
export const FUNCTION_COMPARISON_EVIDENCE = createEvidence(undefined, {
|
|
9
9
|
id: "rea-function-comparison",
|
|
10
10
|
name: "REA function comparison",
|
|
11
11
|
version: "1",
|
|
12
12
|
}, {
|
|
13
|
-
predicateType: "rea.function-comparison
|
|
13
|
+
predicateType: "rea.function-comparison",
|
|
14
14
|
operation: "compare_functions",
|
|
15
15
|
parameters: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
offset: 0,
|
|
19
|
-
limit: 100,
|
|
16
|
+
left_evidence_id: FUNCTION_COMPARISON_EXAMPLE.left.evidence_id,
|
|
17
|
+
right_evidence_id: FUNCTION_COMPARISON_EXAMPLE.right.evidence_id,
|
|
20
18
|
},
|
|
21
19
|
result: jsonValueSchema.parse(comparison),
|
|
22
20
|
confidence: "derived",
|
|
@@ -31,9 +29,9 @@ const PROCESS_PROVIDER = {
|
|
|
31
29
|
name: "REA deterministic process harness",
|
|
32
30
|
version: "3",
|
|
33
31
|
};
|
|
34
|
-
const capture =
|
|
32
|
+
const capture = parseProcessCapture(EMPTY_PROCESS_CAPTURE_EXAMPLE);
|
|
35
33
|
const captureEvidence = (scenario) => createEvidence(undefined, PROCESS_PROVIDER, {
|
|
36
|
-
predicateType: "rea.process-capture
|
|
34
|
+
predicateType: "rea.process-capture",
|
|
37
35
|
operation: "capture_process_scenario",
|
|
38
36
|
parameters: { scenario },
|
|
39
37
|
result: jsonValueSchema.parse(capture),
|
|
@@ -49,7 +47,7 @@ const captureEvidence = (scenario) => createEvidence(undefined, PROCESS_PROVIDER
|
|
|
49
47
|
export const PROCESS_CAPTURE_REFERENCE = captureEvidence("reference");
|
|
50
48
|
export const PROCESS_CAPTURE_RECONSTRUCTION = captureEvidence("reconstruction");
|
|
51
49
|
export const PROCESS_COMPARISON_EVIDENCE = createEvidence(undefined, PROCESS_PROVIDER, {
|
|
52
|
-
predicateType: "rea.process-comparison
|
|
50
|
+
predicateType: "rea.process-comparison",
|
|
53
51
|
operation: "compare_process_captures",
|
|
54
52
|
parameters: {
|
|
55
53
|
left_evidence_id: PROCESS_CAPTURE_REFERENCE.evidence_id,
|
|
@@ -67,6 +65,12 @@ export const PROCESS_COMPARISON_EVIDENCE = createEvidence(undefined, PROCESS_PRO
|
|
|
67
65
|
});
|
|
68
66
|
/** Canonical inputs for comparison-composed investigation contracts. */
|
|
69
67
|
export const INVESTIGATION_EXAMPLES = {
|
|
68
|
+
compare_process_captures: {
|
|
69
|
+
input: {
|
|
70
|
+
left: PROCESS_CAPTURE_REFERENCE,
|
|
71
|
+
right: PROCESS_CAPTURE_RECONSTRUCTION,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
70
74
|
find_changed_behavior: { comparisons: [FUNCTION_COMPARISON_EVIDENCE] },
|
|
71
75
|
build_call_path: {
|
|
72
76
|
functions: [FUNCTION_COMPARISON_EXAMPLE.left],
|
|
@@ -96,7 +100,6 @@ export const INVESTIGATION_EXAMPLES = {
|
|
|
96
100
|
},
|
|
97
101
|
verify_reconstruction: {
|
|
98
102
|
specification: {
|
|
99
|
-
schema_version: 1,
|
|
100
103
|
name: "Terminal compatibility",
|
|
101
104
|
claims: [
|
|
102
105
|
{
|
|
@@ -8,7 +8,7 @@ const reconciliationEvidence = createEvidence(undefined, {
|
|
|
8
8
|
name: "REA JavaScript runtime reconciliation",
|
|
9
9
|
version: "1",
|
|
10
10
|
}, {
|
|
11
|
-
predicateType: "rea.javascript-runtime-reconciliation
|
|
11
|
+
predicateType: "rea.javascript-runtime-reconciliation",
|
|
12
12
|
operation: "reconcile_javascript_runtime",
|
|
13
13
|
parameters: {
|
|
14
14
|
static_layers: JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE.static_layers.map(({ role, analysis }) => ({
|
|
@@ -17,11 +17,6 @@ const reconciliationEvidence = createEvidence(undefined, {
|
|
|
17
17
|
runtime_mappings: [],
|
|
18
18
|
})),
|
|
19
19
|
runtime_evidence_ids: JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE.runtime_observations.map(({ evidence_id: id }) => id),
|
|
20
|
-
limits: {
|
|
21
|
-
max_runtime_entities: 10_000,
|
|
22
|
-
max_reconciliation_items: 20_000,
|
|
23
|
-
max_static_load_states: 20_000,
|
|
24
|
-
},
|
|
25
20
|
},
|
|
26
21
|
result: reconciliation,
|
|
27
22
|
confidence: "inferred",
|
|
@@ -29,29 +24,27 @@ const reconciliationEvidence = createEvidence(undefined, {
|
|
|
29
24
|
limitations: reconciliation.limitations,
|
|
30
25
|
evidenceLinks: reconciliation.evidence_links,
|
|
31
26
|
});
|
|
32
|
-
const EXAMPLE_EVIDENCE_ID = `ev_${"0".repeat(64)}`;
|
|
33
|
-
const SECOND_EXAMPLE_EVIDENCE_ID = `ev_${"1".repeat(64)}`;
|
|
34
27
|
const TRACE_SEED = {
|
|
35
28
|
kind: "module",
|
|
36
29
|
value: "renderer.js",
|
|
37
30
|
match: "exact",
|
|
38
31
|
case_sensitive: false,
|
|
39
32
|
};
|
|
40
|
-
/** Natural trace request
|
|
33
|
+
/** Natural trace request with the producer's complete Evidence inline. */
|
|
41
34
|
export const JAVASCRIPT_FEATURE_TRACE_EXAMPLE = {
|
|
42
|
-
|
|
35
|
+
application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
|
|
43
36
|
seed: TRACE_SEED,
|
|
44
37
|
direction: "both",
|
|
45
38
|
};
|
|
46
|
-
/** Natural version comparison
|
|
39
|
+
/** Natural version comparison with both Evidence records inline. */
|
|
47
40
|
export const JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE = {
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
left: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
|
|
42
|
+
right: reconciliationEvidence,
|
|
50
43
|
};
|
|
51
|
-
/** Historical source inventory compared with
|
|
44
|
+
/** Historical source inventory compared with inline application Evidence. */
|
|
52
45
|
export const SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = {
|
|
53
46
|
reference: createHistoricalSourceGraph({
|
|
54
|
-
schema: "HistoricalSourceGraph
|
|
47
|
+
schema: "HistoricalSourceGraph",
|
|
55
48
|
authority: "historical-reference",
|
|
56
49
|
root_alias: "$REFERENCE_ROOT",
|
|
57
50
|
inventory_state: "complete",
|
|
@@ -87,12 +80,12 @@ export const SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = {
|
|
|
87
80
|
},
|
|
88
81
|
limitations: [],
|
|
89
82
|
}),
|
|
90
|
-
|
|
83
|
+
application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
|
|
91
84
|
};
|
|
92
|
-
/** Exact static return-shape comparison
|
|
85
|
+
/** Exact static return-shape comparison with both Evidence records inline. */
|
|
93
86
|
export const JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE = {
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
left: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
|
|
88
|
+
right: reconciliationEvidence,
|
|
96
89
|
left_module_path: "parser.mjs",
|
|
97
90
|
left_export_name: "default",
|
|
98
91
|
right_module_path: "parser.mjs",
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { toolContractMetadata } from "./toolEffects.js";
|
|
2
2
|
import { evidenceResultOf } from "./toolOutputSchemas.js";
|
|
3
3
|
import { javascriptRuntimeObservationSchema, javascriptRuntimeTargetListSchema, listJavaScriptRuntimeTargetsInputSchema, observeJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeObservation.js";
|
|
4
|
-
const root = "/opt/example-app";
|
|
5
4
|
const endpoint = "http://127.0.0.1:9229";
|
|
6
5
|
/** Passive Node/Electron V8 Inspector discovery and observation contracts. */
|
|
7
6
|
export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
|
|
8
7
|
{
|
|
9
8
|
name: "list_javascript_runtime_targets",
|
|
10
9
|
...toolContractMetadata("list_javascript_runtime_targets"),
|
|
11
|
-
description: "List attachable Node/Electron V8 Inspector
|
|
10
|
+
description: "List every attachable Node/Electron V8 Inspector target from an explicit literal-loopback endpoint. Every returned target and script location exposed by that Inspector endpoint is eligible for Evidence.",
|
|
12
11
|
kind: "runtime-provider",
|
|
13
12
|
inputSchema: listJavaScriptRuntimeTargetsInputSchema,
|
|
14
13
|
outputSchema: evidenceResultOf(javascriptRuntimeTargetListSchema),
|
|
@@ -17,11 +16,6 @@ export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
|
|
|
17
16
|
title: "List approved Node Inspector targets",
|
|
18
17
|
input: {
|
|
19
18
|
inspector_endpoint: endpoint,
|
|
20
|
-
allowed_file_roots: [root],
|
|
21
|
-
allowed_origins: [],
|
|
22
|
-
approved: true,
|
|
23
|
-
offset: 0,
|
|
24
|
-
limit: 100,
|
|
25
19
|
},
|
|
26
20
|
},
|
|
27
21
|
],
|
|
@@ -29,7 +23,7 @@ export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
|
|
|
29
23
|
{
|
|
30
24
|
name: "observe_javascript_runtime",
|
|
31
25
|
...toolContractMetadata("observe_javascript_runtime"),
|
|
32
|
-
description: "Attach passively to one
|
|
26
|
+
description: "Attach passively to one Node/Electron V8 Inspector target by supplying its loopback Inspector endpoint and target ID. The provider rechecks that the target currently exists at that endpoint and is an attachable file or URL target. Captures Debugger.scriptParsed and Runtime execution-context events. REA never evaluates, pauses, resumes, reads source, or instruments the target; require/import edges, EventEmitter activity, and Electron IPC remain explicit unknowns. Reconcile the result with static Application Graph Evidence using reconcile_javascript_runtime. The selected endpoint exposes every target it serves to this tool.",
|
|
33
27
|
kind: "runtime-provider",
|
|
34
28
|
inputSchema: observeJavaScriptRuntimeInputSchema,
|
|
35
29
|
outputSchema: evidenceResultOf(javascriptRuntimeObservationSchema),
|
|
@@ -38,19 +32,7 @@ export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
|
|
|
38
32
|
title: "Observe one approved Node runtime",
|
|
39
33
|
input: {
|
|
40
34
|
inspector_endpoint: endpoint,
|
|
41
|
-
allowed_file_roots: [root],
|
|
42
|
-
allowed_origins: [],
|
|
43
35
|
target_id: "TARGET_ID_FROM_LIST_JAVASCRIPT_RUNTIME_TARGETS",
|
|
44
|
-
runtime_kind: "node",
|
|
45
|
-
approved: true,
|
|
46
|
-
observation_ms: 100,
|
|
47
|
-
limits: {
|
|
48
|
-
max_events: 10_000,
|
|
49
|
-
max_scripts: 2_000,
|
|
50
|
-
max_execution_contexts: 1_000,
|
|
51
|
-
max_location_bytes: 16_384,
|
|
52
|
-
max_total_metadata_bytes: 4_194_304,
|
|
53
|
-
},
|
|
54
36
|
},
|
|
55
37
|
},
|
|
56
38
|
],
|