rea-agents 3.0.0 → 3.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 +83 -108
- package/bridge/ghidra/ReaGhidraBridge.java +609 -841
- package/bridge/hopper_bridge.py +99 -344
- package/dist/application/AbortablePromise.js +6 -3
- package/dist/application/AnalysisContextQueries.js +21 -9
- 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/policy.js +17 -0
- package/dist/application/ArtifactInventory/reader.js +1 -4
- package/dist/application/ArtifactInventory/scanCanonical.js +8 -15
- package/dist/application/ArtifactInventory/scanReader.js +76 -58
- package/dist/application/ArtifactInventory/types.js +1 -5
- package/dist/application/ArtifactInventory.js +6 -14
- package/dist/application/AuthorizedArtifactInventory.js +3 -13
- package/dist/application/BinarySession.js +54 -28
- package/dist/application/BinarySessionComposition.js +0 -11
- package/dist/application/BinarySessionOpen.js +2 -1
- package/dist/application/BinarySessionRecords.js +24 -86
- package/dist/application/BinarySessionStatus.js +16 -21
- package/dist/application/BinaryTargetResolver.js +216 -0
- package/dist/application/BrowserEvidence.js +39 -57
- 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/CapabilityClientRequirements.js +26 -0
- package/dist/application/CapabilityInventory.js +143 -77
- 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 +50 -0
- package/dist/application/ElectronActiveObservationPort.js +1 -0
- package/dist/application/ElectronActiveObservationService.js +78 -0
- 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 +98 -64
- package/dist/application/EvidenceBundleCommands.js +16 -12
- package/dist/application/EvidenceBundleFiles.js +9 -15
- package/dist/application/EvidenceLedger.js +14 -42
- 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/JavaScriptReplayPermission.js +1 -1
- package/dist/application/JavaScriptReplayPlanning.js +9 -3
- package/dist/application/JavaScriptReplayService.js +29 -47
- 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 +14 -13
- package/dist/application/NativeApiInspection.js +2 -7
- package/dist/application/NativeUiActionTrace.js +394 -0
- package/dist/application/NodeRuntimeCharacterizationService.js +11 -16
- 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 +10 -12
- package/dist/application/ProcessCheckpoints.js +29 -11
- package/dist/application/ProcessCli.js +8 -17
- package/dist/application/ProcessEvidence.js +5 -7
- package/dist/application/ProcessHarness.js +60 -20
- package/dist/application/ProcessNormalization.js +2 -1
- 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 -95
- 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 +21 -47
- 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 -88
- 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/application/WindowsCapabilities.js +5 -4
- package/dist/artifacts/ArtifactPaths.js +2 -5
- package/dist/artifacts/ArtifactProvider.js +43 -67
- 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 +21 -31
- 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 -95
- package/dist/browser/CdpCaptureValues.js +21 -21
- package/dist/browser/CdpConnection.js +10 -25
- package/dist/browser/CdpElectronInspection.js +29 -51
- 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 +10 -10
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
- package/dist/browser/PlaywrightElectronActiveActions.js +309 -0
- package/dist/browser/PlaywrightElectronActiveProvider.js +274 -0
- 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 +7 -9
- package/dist/browser/PlaywrightScenarioEvents.js +45 -94
- package/dist/browser/PlaywrightScenarioSession.js +18 -34
- package/dist/browser/PngVisualDiff.js +22 -14
- package/dist/browser/SensitiveTextCapture.js +1 -18
- package/dist/browser/V8InspectorCaptureProjection.js +7 -7
- 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 +12 -60
- 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 +6 -271
- package/dist/cli/setupCommands.js +3 -12
- package/dist/cli/utilityCommands.js +7 -41
- package/dist/cli.js +0 -2
- package/dist/cliApplicationCommands.js +44 -114
- package/dist/cliBrowserAdvancedCommands.js +12 -102
- package/dist/cliBrowserCommands.js +19 -124
- package/dist/cliBrowserContext.js +30 -0
- package/dist/cliCommandNames.js +5 -5
- package/dist/cliElectronCommands.js +49 -71
- package/dist/cliEvidenceCommands.js +8 -77
- package/dist/cliJavaScriptRuntimeCommands.js +18 -92
- package/dist/cliJsonInput.js +4 -14
- package/dist/cliObservationOptions.js +11 -92
- package/dist/cliPolicyCommands.js +2 -16
- package/dist/cliProcessCommands.js +3 -3
- package/dist/cliSetup.js +0 -13
- package/dist/config/browserScenario.js +77 -0
- package/dist/config/electronAutomation.js +35 -0
- package/dist/config/environment.js +6 -9
- package/dist/config/javascriptReplay.js +41 -0
- package/dist/config/managedRuntime.js +25 -0
- package/dist/config/parseConfig.js +56 -232
- package/dist/config/parsers.js +16 -28
- package/dist/config/passiveObservation.js +87 -0
- package/dist/config/permissions.js +0 -7
- package/dist/config/processCapture.js +47 -0
- package/dist/contracts/analysisSearchContract.js +2 -5
- package/dist/contracts/applicationToolContracts.js +58 -114
- package/dist/contracts/applicationWorkflowInputContracts.js +29 -114
- package/dist/contracts/artifactComparisonExample.js +58 -60
- package/dist/contracts/artifactToolContracts.js +37 -91
- package/dist/contracts/browserScenarioToolContracts.js +6 -51
- package/dist/contracts/browserToolContracts.js +10 -75
- package/dist/contracts/electronToolContracts.js +27 -98
- package/dist/contracts/enhancedInputs.js +31 -78
- 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 +4 -5
- 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 +10 -104
- package/dist/contracts/managedWorkflowExamples.js +77 -125
- package/dist/contracts/managedWorkflowToolContracts.js +51 -74
- package/dist/contracts/nativeToolContracts.js +9 -14
- 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 +52 -0
- package/dist/contracts/toolContractExamples.js +11 -10
- package/dist/contracts/toolContractHelpers.js +19 -0
- package/dist/contracts/toolContracts.js +60 -143
- package/dist/contracts/toolEffects.js +16 -9
- package/dist/contracts/toolOutputSchemaGroups.js +47 -86
- package/dist/contracts/toolOutputSchemaPrimitives.js +72 -62
- package/dist/contracts/toolSchemaMetadata.js +117 -0
- package/dist/contracts/unknownContractExamples.js +0 -2
- package/dist/doctorRuntime.js +1 -1
- 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 -52
- package/dist/domain/appleApplication.js +24 -65
- 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 -219
- package/dist/domain/binaryTargetTypes.js +1 -0
- package/dist/domain/browserCaptureComparison.js +35 -60
- package/dist/domain/browserObservation.js +45 -197
- 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 +53 -54
- package/dist/domain/callPath.js +50 -169
- 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 +39 -11
- package/dist/domain/conformanceTrustGate.js +174 -30
- package/dist/domain/customProtocolCapture.js +4 -4
- package/dist/domain/electronActiveObservation.js +244 -0
- package/dist/domain/electronObservation.js +21 -83
- 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 +14 -18
- package/dist/domain/errors.js +33 -54
- package/dist/domain/eventProcessTree.js +101 -90
- 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 +8 -8
- package/dist/domain/functionComparisonResults.js +25 -15
- package/dist/domain/functionComparisonSchemas.js +49 -33
- package/dist/domain/functionDossierEvidence.js +31 -151
- package/dist/domain/hopperStartupFailure.js +1 -1
- package/dist/domain/hopperValues.js +17 -141
- package/dist/domain/inputIssueProjection.js +4 -1
- 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 +70 -77
- 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 +100 -101
- package/dist/domain/javascriptRuntimeLoadState.js +3 -8
- package/dist/domain/javascriptRuntimeObservation.js +43 -103
- package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
- package/dist/domain/javascriptRuntimeReconciliationActive.js +80 -0
- package/dist/domain/javascriptRuntimeReconciliationGraph.js +21 -33
- package/dist/domain/javascriptRuntimeReconciliationMatching.js +75 -61
- package/dist/domain/javascriptRuntimeReconciliationParsing.js +21 -46
- package/dist/domain/javascriptRuntimeReconciliationResult.js +25 -19
- package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
- package/dist/domain/javascriptRuntimeReconciliationSchemas.js +34 -49
- 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 +17 -14
- 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 +15 -18
- 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/processCaptureReactiveValidation.js +8 -3
- package/dist/domain/processCaptureValidation.js +8 -10
- package/dist/domain/processComparison.js +12 -16
- package/dist/domain/processObservation.js +5 -6
- package/dist/domain/processReactiveMatching.js +32 -46
- 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 +42 -21
- package/dist/domain/processScenario.js +62 -93
- package/dist/domain/processTraceComparison.js +0 -7
- package/dist/domain/processTraceEvaluation.js +14 -4
- package/dist/domain/processTraceSpecification.js +11 -17
- package/dist/domain/protocolCapture.js +11 -9
- 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 +66 -40
- 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 +3 -7
- package/dist/domain/replayMachine.js +19 -31
- package/dist/domain/replayMachineRun.js +15 -63
- package/dist/domain/replayMachineRuntime.js +46 -44
- 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 +11 -87
- package/dist/domain/sourceToBundleComparisonSchemas.js +25 -50
- package/dist/domain/sourceToBundleSignals.js +11 -16
- package/dist/domain/staticRuntimeCorrelation.js +44 -54
- 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 +48 -85
- 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 -42
- 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 +5 -13
- package/dist/ghidra/GhidraClientStartup.js +1 -1
- 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 +67 -108
- package/dist/ghidra/GhidraInstallation.js +98 -42
- package/dist/ghidra/GhidraInventoryValues.js +18 -77
- package/dist/ghidra/GhidraLauncher.js +0 -8
- package/dist/ghidra/GhidraProvider.js +32 -31
- package/dist/ghidra/GhidraProviderCapabilities.js +11 -48
- package/dist/ghidra/GhidraRequestQueue.js +6 -30
- package/dist/ghidra/GhidraResponseBuffer.js +1 -7
- package/dist/ghidra/GhidraSessionValues.js +0 -2
- package/dist/ghidra/GhidraSocketConnection.js +1 -1
- package/dist/ghidra/GhidraTransport.js +4 -7
- package/dist/ghidra/protocol.js +19 -42
- package/dist/hopper/BridgeLauncher.js +115 -37
- package/dist/hopper/HopperAnalysisProfile.js +3 -5
- package/dist/hopper/HopperCleanup.js +11 -9
- package/dist/hopper/HopperClient.js +5 -8
- package/dist/hopper/HopperProcessDiagnostic.js +2 -2
- package/dist/hopper/HopperProvider.js +0 -30
- 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 +21 -26
- package/dist/hopper/protocol.js +6 -4
- package/dist/main/reload.js +1 -9
- package/dist/main/shutdown.js +1 -1
- package/dist/main/state.js +0 -23
- package/dist/main/transport.js +27 -39
- package/dist/main.js +17 -15
- package/dist/mcpDoctor.js +27 -69
- 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/PrivateRuntimeRoot.js +17 -0
- package/dist/process/ProcessOwnership.js +67 -130
- package/dist/process/ProcessOwnershipIdentity.js +13 -0
- package/dist/process/ProcessOwnershipObservation.js +87 -0
- package/dist/process/ProcessOwnershipProcessTree.js +22 -0
- package/dist/process/ProviderDeadline.js +8 -12
- package/dist/process/ProviderProcess.js +7 -28
- package/dist/process/WindowsAuthority.js +32 -0
- 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 +95 -13
- package/dist/replay/JavaScriptReplayWorkerTypes.js +1 -0
- package/dist/replay/LinuxJavaScriptReplayRunner.js +42 -43
- package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
- package/dist/replay/LinuxRuntimeClosure.js +1 -3
- package/dist/replay/ReplayOutcome.js +27 -18
- package/dist/replay/ReplayProcessLifecycle.js +32 -7
- package/dist/replay/ReplaySeccompFile.js +29 -0
- package/dist/replay/ReplayWorkerProtocol.js +33 -30
- package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
- package/dist/server/ProcessCaptureElicitation.js +4 -8
- package/dist/server/createServer.js +145 -119
- package/dist/server/mcpClientMetadata.js +32 -0
- package/dist/server/promptCompletion.js +37 -61
- package/dist/server/recordDerivedEvidence.js +1 -1
- package/dist/server/registerApplicationTools/characterization.js +10 -21
- package/dist/server/registerApplicationTools/compareExportShapes.js +6 -16
- package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -15
- package/dist/server/registerApplicationTools/compareVersions.js +6 -16
- package/dist/server/registerApplicationTools/controlledReplay.js +8 -15
- package/dist/server/registerApplicationTools/coverage.js +7 -78
- package/dist/server/registerApplicationTools/helpers.js +1 -13
- package/dist/server/registerApplicationTools/obligationLedger.js +4 -8
- package/dist/server/registerApplicationTools/traceFeature.js +6 -15
- package/dist/server/registerApplicationTools/traceSemantics.js +5 -13
- package/dist/server/registerApplicationTools.js +0 -2
- package/dist/server/registerArtifactComparisonTool.js +27 -35
- package/dist/server/registerBrowserScenarioTool.js +3 -8
- package/dist/server/registerBrowserTools.js +36 -81
- package/dist/server/registerBundleComparisonTool.js +10 -16
- package/dist/server/registerCloseLifecycleTool.js +5 -27
- package/dist/server/registerElectronTools.js +29 -65
- package/dist/server/registerEnhancedTools.js +118 -127
- package/dist/server/registerEvidenceTools.js +19 -30
- package/dist/server/registerFunctionComparisonTool.js +35 -34
- package/dist/server/registerInvestigationTools/helpers.js +3 -32
- package/dist/server/registerInvestigationTools.js +36 -148
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +15 -27
- package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +16 -23
- package/dist/server/registerManagedWorkflowTools/contract.js +2 -3
- package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
- package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +4 -14
- package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +4 -14
- package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +11 -20
- package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +10 -21
- package/dist/server/registerOfficialTools.js +8 -51
- package/dist/server/registerProcessComparisonTool.js +43 -38
- package/dist/server/registerPrompts.js +19 -17
- package/dist/server/registerReplayMachineTool.js +4 -10
- package/dist/server/registerSessionRecordTools.js +36 -153
- package/dist/server/registerSessionStatusTool.js +18 -96
- package/dist/server/registerSessionTools.js +34 -91
- package/dist/server/sessionAvailabilityPolicy.js +2 -3
- package/dist/server/sessionEvidence.js +9 -15
- package/dist/server/sessionToolPolicies.js +1 -13
- package/dist/server/toolRegistrationOptions.js +4 -192
- package/dist/server/toolResult.js +15 -67
- package/dist/serverIdentity.js +0 -20
- package/install.sh +1 -1
- package/package.json +27 -15
- package/scripts/electron-active-hook-boundaries.cjs +394 -0
- package/scripts/electron-active-hook.cjs +469 -0
- package/scripts/hopper-demo-x11.py +13 -32
- package/scripts/rea.mjs +1 -11
- package/skills/reverse-engineer-anything/SKILL.md +46 -11
- 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 -180
- package/dist/application/BoundedJsonFiles.js +0 -86
- package/dist/application/CrossVersionInventory.js +0 -128
- 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 -346
- package/dist/domain/jsonLimits.js +0 -26
- package/dist/domain/knownPageCoverage.js +0 -21
- package/dist/domain/processPairedExperiment.js +0 -128
- package/dist/server/DynamicToolAvailability.js +0 -70
- package/dist/server/LazyToolCatalog.js +0 -134
- package/dist/server/hydrateServerTools.js +0 -191
- package/dist/server/javascriptApplicationResult.js +0 -106
- package/dist/server/permissionFailure.js +0 -12
- package/dist/server/registerApplicationTools/readiness.js +0 -55
- 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
- package/dist/server/toolInputValidation.js +0 -77
- package/scripts/package-runner-bootstrap.mjs +0 -72
|
@@ -1,89 +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
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { applicationCoverageSchema } from "../domain/javascriptApplicationEvidenceSchemas.js";
|
|
4
|
+
import { electronActiveObservationInputSchema, electronActiveObservationResultSchema, } from "../domain/electronActiveObservation.js";
|
|
5
|
+
import { analyzeJavaScriptApplicationInputSchema, javascriptApplicationAnalysisResultSchema, } from "../domain/javascriptApplicationAnalysis.js";
|
|
8
6
|
import { javascriptRuntimeReconciliationResultSchema, reconcileJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeReconciliationSchemas.js";
|
|
9
7
|
import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "./javascriptRuntimeReconciliationExample.js";
|
|
10
8
|
const listOutputSchema = evidenceResultOf(electronTargetListSchema);
|
|
11
9
|
const inspectionOutputSchema = evidenceResultOf(electronPageInspectionSchema);
|
|
12
|
-
|
|
13
|
-
export const analyzeJavaScriptApplicationToolInputSchema = analyzeJavaScriptApplicationInputSchema.extend({
|
|
14
|
-
detail: z
|
|
15
|
-
.enum(["summary", "full"])
|
|
16
|
-
.default("summary")
|
|
17
|
-
.describe("summary returns bounded findings and paged graph resource URIs; full returns the complete graph only when explicitly required"),
|
|
18
|
-
});
|
|
19
|
-
/** Bounded default projection for agent-facing JavaScript application analysis. */
|
|
20
|
-
const applicationGraphSummarySchema = z.strictObject({
|
|
21
|
-
graph_id: z.string().regex(/^jag_[a-f0-9]{64}$/u),
|
|
22
|
-
node_count: z.number().int().min(0),
|
|
23
|
-
edge_count: z.number().int().min(0),
|
|
24
|
-
roots: z.strictObject({
|
|
25
|
-
items: z.array(z.string().regex(/^jag_node_[a-f0-9]{64}$/u)),
|
|
26
|
-
total: z.number().int().min(0),
|
|
27
|
-
truncated: z.boolean(),
|
|
28
|
-
}),
|
|
29
|
-
node_kinds: z.array(z.strictObject({
|
|
30
|
-
kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
|
|
31
|
-
count: z.number().int().min(1),
|
|
32
|
-
})),
|
|
33
|
-
top_findings: z.array(z.strictObject({
|
|
34
|
-
node_id: z.string().regex(/^jag_node_[a-f0-9]{64}$/u),
|
|
35
|
-
kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
|
|
36
|
-
label: z.string().nullable(),
|
|
37
|
-
authority: z.string(),
|
|
38
|
-
state: z.string(),
|
|
39
|
-
confidence: z.string(),
|
|
40
|
-
location: z.json(),
|
|
41
|
-
})),
|
|
42
|
-
coverage: applicationCoverageSchema,
|
|
43
|
-
limitations: z.array(z.string()),
|
|
44
|
-
pages: z.strictObject({
|
|
45
|
-
nodes: z.string().startsWith("rea://evidence/"),
|
|
46
|
-
edges: z.string().startsWith("rea://evidence/"),
|
|
47
|
-
page_limit: z.number().int().min(1).max(500),
|
|
48
|
-
}),
|
|
49
|
-
});
|
|
50
|
-
const semanticGraphSummarySchema = z.strictObject({
|
|
51
|
-
graph_id: z.string().regex(/^jsrg_[a-f0-9]{64}$/u),
|
|
52
|
-
nodes: z.number().int().min(0),
|
|
53
|
-
relations: z.number().int().min(0),
|
|
54
|
-
unknown_frontiers: z.number().int().min(0),
|
|
55
|
-
fingerprints: z.number().int().min(0),
|
|
56
|
-
coverage: z.enum(["complete", "partial", "unknown", "unavailable"]),
|
|
57
|
-
query_tool: z.literal("trace_javascript_semantics"),
|
|
58
|
-
});
|
|
59
|
-
const summaryFields = {
|
|
60
|
-
unknowns: z.array(z.string().min(1).max(4_096)).max(1_000),
|
|
61
|
-
graph: applicationGraphSummarySchema,
|
|
62
|
-
};
|
|
63
|
-
/** Bounded default projection for agent-facing JavaScript application analysis. */
|
|
64
|
-
export const javascriptApplicationAnalysisSummarySchema = z.discriminatedUnion("schema_version", [
|
|
65
|
-
javaScriptApplicationAnalysisResultV1Schema
|
|
66
|
-
.omit({ graph: true })
|
|
67
|
-
.extend(summaryFields),
|
|
68
|
-
javaScriptApplicationAnalysisResultV1Schema.omit({ graph: true }).extend({
|
|
69
|
-
schema_version: z.literal(2),
|
|
70
|
-
...summaryFields,
|
|
71
|
-
semantic_graph: semanticGraphSummarySchema,
|
|
72
|
-
}),
|
|
73
|
-
]);
|
|
74
|
-
const applicationOutputSchema = evidenceResultOf(z.union([
|
|
75
|
-
javascriptApplicationAnalysisSummarySchema,
|
|
76
|
-
javascriptApplicationAnalysisResultSchema,
|
|
77
|
-
]));
|
|
10
|
+
const applicationOutputSchema = evidenceResultOf(javascriptApplicationAnalysisResultSchema);
|
|
78
11
|
const reconciliationOutputSchema = evidenceResultOf(javascriptRuntimeReconciliationResultSchema);
|
|
79
12
|
const endpoint = "http://127.0.0.1:9223";
|
|
80
|
-
const
|
|
13
|
+
const activeExample = {
|
|
14
|
+
executable_path: "/Applications/Electron.app/Contents/MacOS/Electron",
|
|
15
|
+
application_path: "/Applications/Example.app/Contents/Resources/main.js",
|
|
16
|
+
application_root: "/Applications/Example.app/Contents/Resources",
|
|
17
|
+
args: [],
|
|
18
|
+
actions: [{ step_id: "exercise-ipc", kind: "click", selector: "#run" }],
|
|
19
|
+
};
|
|
81
20
|
/** Root-confined Electron file-page discovery and inspection contracts. */
|
|
82
21
|
export const ELECTRON_TOOL_CONTRACTS = [
|
|
83
22
|
{
|
|
84
23
|
name: "list_electron_targets",
|
|
85
24
|
...toolContractMetadata("list_electron_targets"),
|
|
86
|
-
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.",
|
|
87
26
|
kind: "electron-provider",
|
|
88
27
|
inputSchema: listElectronTargetsInputSchema,
|
|
89
28
|
outputSchema: listOutputSchema,
|
|
@@ -92,10 +31,6 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
92
31
|
title: "List approved Electron file pages",
|
|
93
32
|
input: {
|
|
94
33
|
cdp_endpoint: endpoint,
|
|
95
|
-
allowed_file_roots: [root],
|
|
96
|
-
approved: true,
|
|
97
|
-
offset: 0,
|
|
98
|
-
limit: 100,
|
|
99
34
|
},
|
|
100
35
|
},
|
|
101
36
|
],
|
|
@@ -103,7 +38,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
103
38
|
{
|
|
104
39
|
name: "inspect_electron_page",
|
|
105
40
|
...toolContractMetadata("inspect_electron_page"),
|
|
106
|
-
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.",
|
|
107
42
|
kind: "electron-provider",
|
|
108
43
|
inputSchema: inspectElectronPageInputSchema,
|
|
109
44
|
outputSchema: inspectionOutputSchema,
|
|
@@ -112,21 +47,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
112
47
|
title: "Inspect an approved Electron page",
|
|
113
48
|
input: {
|
|
114
49
|
cdp_endpoint: endpoint,
|
|
115
|
-
allowed_file_roots: [root],
|
|
116
50
|
target_id: "TARGET_ID_FROM_LIST_ELECTRON_TARGETS",
|
|
117
|
-
approved: true,
|
|
118
|
-
observation_ms: 100,
|
|
119
|
-
include_script_sources: false,
|
|
120
|
-
source_capture_approved: false,
|
|
121
|
-
limits: {
|
|
122
|
-
max_frames: 200,
|
|
123
|
-
max_dom_nodes: 2_000,
|
|
124
|
-
max_scripts: 500,
|
|
125
|
-
max_resources: 2_000,
|
|
126
|
-
max_workers: 500,
|
|
127
|
-
max_script_source_bytes: 1_048_576,
|
|
128
|
-
max_total_script_source_bytes: 4_194_304,
|
|
129
|
-
},
|
|
130
51
|
},
|
|
131
52
|
},
|
|
132
53
|
],
|
|
@@ -134,19 +55,16 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
134
55
|
{
|
|
135
56
|
name: "analyze_javascript_application",
|
|
136
57
|
...toolContractMetadata("analyze_javascript_application"),
|
|
137
|
-
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.",
|
|
138
59
|
kind: "electron-provider",
|
|
139
|
-
inputSchema:
|
|
60
|
+
inputSchema: analyzeJavaScriptApplicationInputSchema,
|
|
140
61
|
outputSchema: applicationOutputSchema,
|
|
141
62
|
examples: [
|
|
142
63
|
{
|
|
143
|
-
title: "Analyze one
|
|
64
|
+
title: "Analyze one local JavaScript application",
|
|
144
65
|
input: {
|
|
145
66
|
input_path: "/Applications/Example.app/Contents/Resources/app.asar",
|
|
146
67
|
format: "auto",
|
|
147
|
-
approved: true,
|
|
148
|
-
source_map_read_approved: false,
|
|
149
|
-
detail: "summary",
|
|
150
68
|
},
|
|
151
69
|
},
|
|
152
70
|
],
|
|
@@ -154,7 +72,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
154
72
|
{
|
|
155
73
|
name: "reconcile_javascript_runtime",
|
|
156
74
|
...toolContractMetadata("reconcile_javascript_runtime"),
|
|
157
|
-
description: "Reconcile verified static JavaScript application graphs with existing passive web or Electron
|
|
75
|
+
description: "Reconcile verified static JavaScript application graphs with existing passive web/Electron CDP, passive V8 Inspector, or provider-owned active Electron Evidence. Active Electron captures contribute an explicitly partial target-only runtime record; they never invent renderer scripts, frames, workers, or execution claims. Exact captured-source digests take priority over caller-declared file/URL mappings; target, frame, script, and worker ambiguity remains explicit, and source-map authority stays separate.",
|
|
158
76
|
kind: "electron-provider",
|
|
159
77
|
inputSchema: reconcileJavaScriptRuntimeInputSchema,
|
|
160
78
|
outputSchema: reconciliationOutputSchema,
|
|
@@ -165,4 +83,15 @@ export const ELECTRON_TOOL_CONTRACTS = [
|
|
|
165
83
|
},
|
|
166
84
|
],
|
|
167
85
|
},
|
|
86
|
+
{
|
|
87
|
+
name: "capture_electron_scenario",
|
|
88
|
+
...toolContractMetadata("capture_electron_scenario"),
|
|
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.",
|
|
90
|
+
kind: "electron-provider",
|
|
91
|
+
inputSchema: electronActiveObservationInputSchema,
|
|
92
|
+
outputSchema: evidenceResultOf(electronActiveObservationResultSchema),
|
|
93
|
+
examples: [
|
|
94
|
+
{ title: "Exercise an owned Electron application", input: activeExample },
|
|
95
|
+
],
|
|
96
|
+
},
|
|
168
97
|
];
|
|
@@ -1,106 +1,59 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
const traceLiteralInputSchema = z.
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
inspect_native_dispatch_metadata: z.strictObject({
|
|
9
|
+
max_records: z.number().int().min(1).max(20_000).default(5_000),
|
|
10
|
+
}),
|
|
11
|
+
get_objc_classes: z.strictObject({ pattern: z.string().default("") }),
|
|
12
|
+
get_objc_protocols: z.strictObject({}),
|
|
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
|
-
get_call_graph: z.
|
|
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.
|
|
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
|
}),
|
|
34
|
-
|
|
32
|
+
find_xrefs_to_name: z.strictObject({ name: z.string() }),
|
|
33
|
+
binary_overview: z.strictObject({}),
|
|
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
|
-
.object({
|
|
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
|
-
inspect_native_api: z.
|
|
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,
|
|
75
|
-
trace_call_path: z.
|
|
42
|
+
trace_call_path: z.strictObject({
|
|
76
43
|
start: z.string().describe("A provider-normalized procedure address"),
|
|
77
44
|
goal: z
|
|
78
45
|
.string()
|
|
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
|
-
/** Runtime parser for dispatching only the closed enhanced names. */
|
|
92
|
-
export const enhancedToolNameSchema = z.enum([
|
|
93
|
-
"swift_classes",
|
|
94
|
-
"get_objc_classes",
|
|
95
|
-
"get_objc_protocols",
|
|
96
|
-
"batch_decompile",
|
|
97
|
-
"get_call_graph",
|
|
98
|
-
"analyze_swift_types",
|
|
99
|
-
"find_xrefs_to_name",
|
|
100
|
-
"binary_overview",
|
|
101
|
-
"analyze_function",
|
|
102
|
-
"inspect_native_api",
|
|
103
|
-
"trace_feature",
|
|
104
|
-
"find_code_for_string",
|
|
105
|
-
"trace_call_path",
|
|
106
|
-
]);
|
|
@@ -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
|
});
|
|
@@ -3,11 +3,10 @@ import { enhancedInputSchemas } from "./enhancedInputs.js";
|
|
|
3
3
|
import { TOOL_EXAMPLE_OVERRIDES } from "./toolContractExamples.js";
|
|
4
4
|
import { toolContractMetadata } from "./toolEffects.js";
|
|
5
5
|
import { enhancedOutputSchemas } from "./toolOutputSchemas.js";
|
|
6
|
+
import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js";
|
|
6
7
|
const functionWorkflow = (name, description) => {
|
|
7
8
|
const inputSchema = enhancedInputSchemas[name];
|
|
8
|
-
const outputSchema = enhancedOutputSchemas
|
|
9
|
-
if (outputSchema === undefined)
|
|
10
|
-
throw new Error(`Missing function workflow output schema for ${name}`);
|
|
9
|
+
const outputSchema = requireOutputSchema(enhancedOutputSchemas, name);
|
|
11
10
|
return {
|
|
12
11
|
name,
|
|
13
12
|
...toolContractMetadata(name),
|
|
@@ -25,6 +24,6 @@ const functionWorkflow = (name, description) => {
|
|
|
25
24
|
};
|
|
26
25
|
/** Function dossier and native API reconstruction workflow contracts. */
|
|
27
26
|
export const FUNCTION_WORKFLOW_TOOL_CONTRACTS = [
|
|
28
|
-
functionWorkflow("analyze_function", "
|
|
29
|
-
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."),
|
|
30
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
|
],
|