rea-agents 3.1.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 +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,12 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
3
|
-
import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/processCapture.js";
|
|
4
3
|
import { residualUnknownSchema } from "../domain/residualUnknown.js";
|
|
4
|
+
import { evidenceBundleSchema } from "../domain/evidenceBundle.js";
|
|
5
|
+
import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/processCapture.js";
|
|
5
6
|
import { functionInstructionWindowSchema, referenceKindSchema, } from "../domain/hopperValues.js";
|
|
6
7
|
import { nativeApiInspectionResultSchema } from "../domain/nativeApiBoundary.js";
|
|
7
8
|
import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/nativeInspection.js";
|
|
8
|
-
import { artifactExtractionResultSchema
|
|
9
|
+
import { artifactExtractionResultSchema } from "../domain/artifactGraph.js";
|
|
9
10
|
import { artifactInspectionResultSchema } from "../domain/artifactInspection.js";
|
|
11
|
+
import { interfaceBuilderAnalysisSchema } from "../domain/interfaceBuilderGraph.js";
|
|
10
12
|
import { managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, } from "../domain/managedArtifact.js";
|
|
11
13
|
import { managedMemberComparisonResultSchema } from "../domain/managedMemberComparison.js";
|
|
12
14
|
import { managedNativeVerificationResultSchema } from "../domain/managedNativeVerification.js";
|
|
@@ -22,7 +24,9 @@ import { staticRuntimeCorrelationResultSchema } from "../domain/staticRuntimeCor
|
|
|
22
24
|
import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerification.js";
|
|
23
25
|
import { replayMachineRunOutputSchema } from "../domain/replayMachineRun.js";
|
|
24
26
|
import { analysisErrorProjectionSchema } from "./errorSchemas.js";
|
|
25
|
-
import {
|
|
27
|
+
import { nativeDispatchMetadataResultSchema } from "../domain/objcSwiftMetadata.js";
|
|
28
|
+
import { nativeInvestigationTraceSchema } from "../domain/nativeInvestigationGraph.js";
|
|
29
|
+
import { addressList, addressedValue, addressedEntry, containingProcedureResolution, functionDossierOutput, graphNode, lifecycleResultOf, nullableText, procedureIdentity, procedureInfoOutput, evidenceResultOf as resultOf, segmentOutput, sessionProvider, symbolDiscoveryOutput, targetFormatSchema, targetKindSchema, } from "./toolOutputSchemaPrimitives.js";
|
|
26
30
|
const contextFacetSchema = z.discriminatedUnion("state", [
|
|
27
31
|
z.object({ state: z.literal("available"), value: jsonValueSchema }),
|
|
28
32
|
z.object({
|
|
@@ -39,6 +43,17 @@ const bookmarkFacetSchema = z.discriminatedUnion("state", [
|
|
|
39
43
|
remediation: z.string(),
|
|
40
44
|
}),
|
|
41
45
|
]);
|
|
46
|
+
const addressedString = z.object({
|
|
47
|
+
address: z.string(),
|
|
48
|
+
value: z.string(),
|
|
49
|
+
string: z
|
|
50
|
+
.object({
|
|
51
|
+
encoding: z.string().min(1),
|
|
52
|
+
termination: z.enum(["missing", "present_or_not_required"]),
|
|
53
|
+
byte_length: z.number().int().min(0),
|
|
54
|
+
})
|
|
55
|
+
.optional(),
|
|
56
|
+
});
|
|
42
57
|
/** Exact structured-content schemas shared by direct analysis providers. */
|
|
43
58
|
export const officialOutputSchemas = {
|
|
44
59
|
address_name: resultOf(nullableText),
|
|
@@ -50,10 +65,10 @@ export const officialOutputSchemas = {
|
|
|
50
65
|
inline_comment: resultOf(nullableText),
|
|
51
66
|
list_bookmarks: resultOf(z.array(addressedEntry)),
|
|
52
67
|
list_documents: resultOf(z.array(z.string())),
|
|
53
|
-
list_names: resultOf(
|
|
54
|
-
list_procedures: resultOf(
|
|
68
|
+
list_names: resultOf(z.array(addressedValue)),
|
|
69
|
+
list_procedures: resultOf(z.array(addressedValue)),
|
|
55
70
|
list_segments: segmentOutput,
|
|
56
|
-
list_strings: resultOf(
|
|
71
|
+
list_strings: resultOf(z.array(addressedString)),
|
|
57
72
|
next_address: resultOf(z.string()),
|
|
58
73
|
prev_address: resultOf(z.string()),
|
|
59
74
|
procedure_address: resultOf(z.string()),
|
|
@@ -64,8 +79,8 @@ export const officialOutputSchemas = {
|
|
|
64
79
|
read_function_instructions: resultOf(functionInstructionWindowSchema),
|
|
65
80
|
read_bytes: resultOf(z.object({
|
|
66
81
|
address: z.string(),
|
|
67
|
-
requested_bytes: z.number().int().min(1)
|
|
68
|
-
returned_bytes: z.number().int().min(0)
|
|
82
|
+
requested_bytes: z.number().int().min(1),
|
|
83
|
+
returned_bytes: z.number().int().min(0),
|
|
69
84
|
bytes_hex: z.string().regex(/^(?:[a-f0-9]{2})*$/u),
|
|
70
85
|
complete: z.boolean(),
|
|
71
86
|
})),
|
|
@@ -76,20 +91,18 @@ export const officialOutputSchemas = {
|
|
|
76
91
|
procedure_references: resultOf(z.object({
|
|
77
92
|
procedure: procedureIdentity,
|
|
78
93
|
direction: z.enum(["incoming", "outgoing"]),
|
|
79
|
-
references:
|
|
94
|
+
references: z.array(z.object({
|
|
80
95
|
source_address: z.string(),
|
|
81
96
|
target_address: z.string(),
|
|
82
97
|
source_procedure: procedureIdentity.nullable(),
|
|
83
98
|
target_procedure: procedureIdentity.nullable(),
|
|
84
99
|
kind: referenceKindSchema,
|
|
85
100
|
})),
|
|
86
|
-
instructions_scanned: z.number().int().min(0),
|
|
87
|
-
instruction_scan_truncated: z.boolean(),
|
|
88
101
|
})),
|
|
89
102
|
procedure_pseudo_code: resultOf(nullableText),
|
|
90
103
|
resolve_containing_procedure: resultOf(containingProcedureResolution),
|
|
91
|
-
search_procedures: resultOf(
|
|
92
|
-
search_strings: resultOf(
|
|
104
|
+
search_procedures: resultOf(z.array(z.object({ address: z.string(), value: z.string() }))),
|
|
105
|
+
search_strings: resultOf(z.array(z.object({ address: z.string(), value: z.string() }))),
|
|
93
106
|
set_address_name: resultOf(z.boolean()),
|
|
94
107
|
set_addresses_names: resultOf(z.record(z.string(), z.boolean())),
|
|
95
108
|
set_bookmark: resultOf(z.boolean()),
|
|
@@ -102,8 +115,6 @@ export const officialOutputSchemas = {
|
|
|
102
115
|
const literalTraceOutput = resultOf(z.object({
|
|
103
116
|
query: z.string(),
|
|
104
117
|
search_mode: z.literal("literal"),
|
|
105
|
-
operations_used: z.number().int().min(0),
|
|
106
|
-
operation_budget: z.number().int().min(1),
|
|
107
118
|
matches: z.array(z.object({
|
|
108
119
|
type: z.enum(["string", "procedure"]),
|
|
109
120
|
address: z.string(),
|
|
@@ -136,13 +147,8 @@ const callPathTraceOutput = resultOf(z.object({
|
|
|
136
147
|
address: z.string(),
|
|
137
148
|
error: analysisErrorProjectionSchema,
|
|
138
149
|
})),
|
|
139
|
-
|
|
140
|
-
limits: z.object({
|
|
141
|
-
max_depth: z.number().int().min(1),
|
|
142
|
-
max_nodes: z.number().int().min(1),
|
|
143
|
-
max_operations: z.number().int().min(1),
|
|
150
|
+
traversal: z.object({
|
|
144
151
|
nodes_visited: z.number().int().min(1),
|
|
145
|
-
operations_used: z.number().int().min(0),
|
|
146
152
|
}),
|
|
147
153
|
truncated: z.boolean(),
|
|
148
154
|
residual_unknowns: z.array(z.string()),
|
|
@@ -150,7 +156,8 @@ const callPathTraceOutput = resultOf(z.object({
|
|
|
150
156
|
}));
|
|
151
157
|
/** Exact structured-content schemas for composed analysis workflows. */
|
|
152
158
|
export const enhancedOutputSchemas = {
|
|
153
|
-
|
|
159
|
+
inspect_native_dispatch_metadata: resultOf(nativeDispatchMetadataResultSchema),
|
|
160
|
+
trace_native_ui_action: resultOf(nativeInvestigationTraceSchema),
|
|
154
161
|
get_objc_classes: symbolDiscoveryOutput("classes"),
|
|
155
162
|
get_objc_protocols: symbolDiscoveryOutput("protocols"),
|
|
156
163
|
batch_decompile: resultOf(z.object({
|
|
@@ -193,12 +200,11 @@ export const enhancedOutputSchemas = {
|
|
|
193
200
|
])),
|
|
194
201
|
binary_overview: resultOf(z.object({
|
|
195
202
|
document: z.string(),
|
|
196
|
-
detail: z.enum(["concise", "detailed"]),
|
|
197
203
|
segments: z.array(z.object({
|
|
198
204
|
name: z.string(),
|
|
199
205
|
start: z.string(),
|
|
200
206
|
end: z.string(),
|
|
201
|
-
length: z.number().min(0)
|
|
207
|
+
length: z.number().min(0),
|
|
202
208
|
})),
|
|
203
209
|
segment_count: z.number().int().min(0),
|
|
204
210
|
procedure_count: z.number().int().min(0),
|
|
@@ -210,7 +216,7 @@ export const enhancedOutputSchemas = {
|
|
|
210
216
|
find_code_for_string: literalTraceOutput,
|
|
211
217
|
trace_call_path: callPathTraceOutput,
|
|
212
218
|
};
|
|
213
|
-
/** Exact Evidence
|
|
219
|
+
/** Exact Evidence schemas for provider-neutral native inspection. */
|
|
214
220
|
export const nativeOutputSchemas = {
|
|
215
221
|
inspect_macho: resultOf(inspectMachoSchema),
|
|
216
222
|
inspect_signature: resultOf(inspectSignatureSchema),
|
|
@@ -218,19 +224,19 @@ export const nativeOutputSchemas = {
|
|
|
218
224
|
list_architectures: resultOf(listArchitecturesSchema),
|
|
219
225
|
demangle_swift: resultOf(demangleSwiftSchema),
|
|
220
226
|
};
|
|
221
|
-
/** Exact Evidence
|
|
227
|
+
/** Exact Evidence schemas for provider-neutral artifact graph operations. */
|
|
222
228
|
export const artifactOutputSchemas = {
|
|
223
|
-
inventory_artifact: resultOf(artifactInventoryResultSchema),
|
|
224
229
|
inspect_artifact: resultOf(artifactInspectionResultSchema),
|
|
225
230
|
extract_artifact: resultOf(artifactExtractionResultSchema),
|
|
231
|
+
decode_interface_builder: resultOf(interfaceBuilderAnalysisSchema),
|
|
226
232
|
};
|
|
227
|
-
/** Exact Evidence
|
|
233
|
+
/** Exact Evidence schema for execution-free managed static analysis. */
|
|
228
234
|
export const managedOutputSchemas = {
|
|
229
235
|
inspect_managed_artifact: resultOf(managedArtifactInspectionSchema),
|
|
230
236
|
inspect_managed_members: resultOf(managedMemberInspectionSchema),
|
|
231
237
|
inspect_managed_native_boundaries: resultOf(managedNativeBoundaryInspectionSchema),
|
|
232
238
|
};
|
|
233
|
-
/** Exact Evidence
|
|
239
|
+
/** Exact Evidence schema for provider-neutral managed workflows. */
|
|
234
240
|
export const managedWorkflowOutputSchemas = {
|
|
235
241
|
compare_managed_members: resultOf(managedMemberComparisonResultSchema),
|
|
236
242
|
verify_managed_native_boundaries: resultOf(managedNativeVerificationResultSchema),
|
|
@@ -257,51 +263,11 @@ export const sessionOutputSchemas = {
|
|
|
257
263
|
}),
|
|
258
264
|
])),
|
|
259
265
|
binary_session: lifecycleResultOf(z.union([
|
|
260
|
-
z.object({
|
|
261
|
-
view: z.literal("summary"),
|
|
262
|
-
open: z.boolean(),
|
|
263
|
-
provider: providerIdentity,
|
|
264
|
-
active_provider: providerIdentity.nullable(),
|
|
265
|
-
target: z
|
|
266
|
-
.object({
|
|
267
|
-
path: z.string(),
|
|
268
|
-
format: targetFormatSchema,
|
|
269
|
-
kind: targetKindSchema,
|
|
270
|
-
sha256: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
271
|
-
architecture: z.enum(["x86", "x86_64", "arm", "arm64"]).nullable(),
|
|
272
|
-
})
|
|
273
|
-
.nullable(),
|
|
274
|
-
alignment: z.object({
|
|
275
|
-
state: z.enum(["aligned", "mcp_server_restart_required", "unknown"]),
|
|
276
|
-
reasons: z.array(z.string()),
|
|
277
|
-
remediation: z.string().nullable(),
|
|
278
|
-
}),
|
|
279
|
-
analysis_activity: analysisActivity,
|
|
280
|
-
recommended_actions: z.array(z.string()),
|
|
281
|
-
}),
|
|
282
|
-
z.object({
|
|
283
|
-
view: z.literal("capabilities"),
|
|
284
|
-
open: z.boolean(),
|
|
285
|
-
provider: providerIdentity,
|
|
286
|
-
active_provider: providerIdentity.nullable(),
|
|
287
|
-
capability_family: z.string().nullable(),
|
|
288
|
-
capabilities: z.object({
|
|
289
|
-
items: z.array(toolAvailability),
|
|
290
|
-
cursor: z.number().int().min(0),
|
|
291
|
-
limit: z.number().int().min(1),
|
|
292
|
-
total: z.number().int().min(0),
|
|
293
|
-
next_cursor: z.number().int().min(0).nullable(),
|
|
294
|
-
has_more: z.boolean(),
|
|
295
|
-
}),
|
|
296
|
-
client_features: clientFeatureAvailabilitySchema,
|
|
297
|
-
}),
|
|
298
266
|
z.union([
|
|
299
267
|
sessionProvider.extend({
|
|
300
|
-
view: z.literal("full"),
|
|
301
268
|
open: z.literal(false),
|
|
302
269
|
}),
|
|
303
270
|
sessionProvider.extend({
|
|
304
|
-
view: z.literal("full"),
|
|
305
271
|
open: z.literal(true),
|
|
306
272
|
path: z.string(),
|
|
307
273
|
format: targetFormatSchema,
|
|
@@ -317,20 +283,7 @@ export const sessionOutputSchemas = {
|
|
|
317
283
|
records: z.number().int().min(0),
|
|
318
284
|
unknowns: z.number().int().min(0),
|
|
319
285
|
})),
|
|
320
|
-
|
|
321
|
-
bundle_digest: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
322
|
-
bundle_version: z.literal(2),
|
|
323
|
-
bytes: z.number().int().min(0),
|
|
324
|
-
records: z.number().int().min(0),
|
|
325
|
-
unknowns: z.number().int().min(0),
|
|
326
|
-
scope: z.literal("session"),
|
|
327
|
-
survives_session: z.literal(false),
|
|
328
|
-
bundle_uri: z.string().regex(/^rea:\/\/evidence-bundle\/[a-f0-9]{64}$/u),
|
|
329
|
-
})),
|
|
330
|
-
release_evidence_bundle: lifecycleResultOf(z.object({
|
|
331
|
-
bundle_digest: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
332
|
-
released: z.boolean(),
|
|
333
|
-
})),
|
|
286
|
+
get_evidence_bundle: lifecycleResultOf(evidenceBundleSchema),
|
|
334
287
|
get_navigation_context: lifecycleResultOf(z.object({
|
|
335
288
|
document: z.string(),
|
|
336
289
|
address: z.string(),
|
|
@@ -360,15 +313,8 @@ export const sessionOutputSchemas = {
|
|
|
360
313
|
correlate_static_and_runtime: resultOf(staticRuntimeCorrelationResultSchema),
|
|
361
314
|
verify_reconstruction: resultOf(reconstructionVerificationResultSchema),
|
|
362
315
|
list_unknowns: lifecycleResultOf(z.object({
|
|
363
|
-
items: z.array(
|
|
364
|
-
unknown: residualUnknownSchema,
|
|
365
|
-
uri: z.string().regex(/^rea:\/\/unknown\/unk_[a-f0-9]{64}$/u),
|
|
366
|
-
})),
|
|
367
|
-
offset: z.number().int().min(0),
|
|
368
|
-
limit: z.number().int().min(1).max(500),
|
|
316
|
+
items: z.array(residualUnknownSchema),
|
|
369
317
|
total: z.number().int().min(0),
|
|
370
|
-
next_offset: z.number().int().min(0).nullable(),
|
|
371
|
-
has_more: z.boolean(),
|
|
372
318
|
})),
|
|
373
319
|
record_unknown: lifecycleResultOf(residualUnknownSchema),
|
|
374
320
|
update_unknown: lifecycleResultOf(residualUnknownSchema),
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { procedureClassificationSchema, procedureIdentitySchema, localVariableSchema, functionDossierSchema, } from "../domain/hopperValues.js";
|
|
3
3
|
import { analysisProfileSchema } from "../domain/analysisProfile.js";
|
|
4
|
+
import { evidenceEnvelopeSchema } from "../domain/evidence.js";
|
|
5
|
+
import { jsonValueSchema } from "../domain/jsonValue.js";
|
|
4
6
|
import { PROVIDER_REJECTION_CODES, } from "./providerSelection.js";
|
|
5
7
|
import { analysisErrorProjectionSchema } from "./errorSchemas.js";
|
|
6
|
-
/**
|
|
8
|
+
/** Inline result with its complete Evidence record. */
|
|
9
|
+
export const inlineEvidenceRecordSchema = evidenceEnvelopeSchema.omit({
|
|
10
|
+
normalized_result: true,
|
|
11
|
+
});
|
|
7
12
|
export const evidenceResultOf = (schema) => z.strictObject({
|
|
8
13
|
result: schema,
|
|
9
14
|
evidence_id: z.string().regex(/^ev_[a-f0-9]{64}$/u),
|
|
10
|
-
|
|
15
|
+
evidence: inlineEvidenceRecordSchema,
|
|
11
16
|
});
|
|
12
17
|
const resultOf = evidenceResultOf;
|
|
13
18
|
export const lifecycleResultOf = (schema) => z.object({ result: schema });
|
|
@@ -44,10 +49,6 @@ export const targetKindSchema = z.enum([
|
|
|
44
49
|
]);
|
|
45
50
|
const providerCapabilityFacts = {
|
|
46
51
|
operation: z.string(),
|
|
47
|
-
input_contract_version: z.number().int().min(1),
|
|
48
|
-
output_contract_version: z.number().int().min(1),
|
|
49
|
-
pagination: z.enum(["none", "offset", "cursor"]),
|
|
50
|
-
exhaustive: z.boolean(),
|
|
51
52
|
effects: z.object({
|
|
52
53
|
mutates_artifact: z.boolean(),
|
|
53
54
|
launches_process: z.boolean(),
|
|
@@ -57,11 +58,6 @@ const providerCapabilityFacts = {
|
|
|
57
58
|
changes_permissions: z.boolean(),
|
|
58
59
|
requires_root: z.boolean(),
|
|
59
60
|
}),
|
|
60
|
-
limits: z.object({
|
|
61
|
-
max_results: z.number().int().min(0).nullable(),
|
|
62
|
-
max_payload_bytes: z.number().int().min(0).nullable(),
|
|
63
|
-
timeout_ms: z.number().int().min(0).nullable(),
|
|
64
|
-
}),
|
|
65
61
|
limitations: z.array(z.string()),
|
|
66
62
|
};
|
|
67
63
|
export const providerCapability = z.discriminatedUnion("available", [
|
|
@@ -97,7 +93,6 @@ const processLineageObservation = z.discriminatedUnion("status", [
|
|
|
97
93
|
z.object({
|
|
98
94
|
status: z.literal("verified"),
|
|
99
95
|
observed_at: z.iso.datetime(),
|
|
100
|
-
schema_version: z.literal(1),
|
|
101
96
|
...processCoordinates,
|
|
102
97
|
launcher_parent_pid: z.number().int().min(0),
|
|
103
98
|
descendants: z.array(z.object({
|
|
@@ -123,7 +118,7 @@ const analysisRun = z
|
|
|
123
118
|
})
|
|
124
119
|
.nullable();
|
|
125
120
|
export const analysisActivity = z.object({
|
|
126
|
-
status: z.enum(["not_observed", "idle", "busy"
|
|
121
|
+
status: z.enum(["not_observed", "idle", "busy"]),
|
|
127
122
|
providers: z.array(z.object({
|
|
128
123
|
provider: providerIdentity,
|
|
129
124
|
active: z
|
|
@@ -131,15 +126,14 @@ export const analysisActivity = z.object({
|
|
|
131
126
|
request_id: z.number().int().min(1),
|
|
132
127
|
operation: z.string().min(1),
|
|
133
128
|
elapsed_ms: z.number().int().min(0),
|
|
134
|
-
|
|
135
|
-
caller_state: z.enum(["waiting", "timed_out", "cancelled"]),
|
|
129
|
+
caller_state: z.enum(["waiting", "cancelled"]),
|
|
136
130
|
})
|
|
137
131
|
.nullable(),
|
|
138
132
|
queued_requests: z.number().int().min(0),
|
|
139
133
|
})),
|
|
140
134
|
});
|
|
141
135
|
const providerRejectionCode = z.enum(PROVIDER_REJECTION_CODES);
|
|
142
|
-
const providerDiagnostics = z.record(z.string(),
|
|
136
|
+
const providerDiagnostics = z.record(z.string(), jsonValueSchema);
|
|
143
137
|
const providerAvailability = z.discriminatedUnion("status", [
|
|
144
138
|
z.object({
|
|
145
139
|
status: z.literal("available"),
|
|
@@ -197,7 +191,7 @@ const toolAvailabilityMode = z.discriminatedUnion("available", [
|
|
|
197
191
|
z.object({
|
|
198
192
|
name: z.string(),
|
|
199
193
|
available: z.literal(true),
|
|
200
|
-
missing_operations: z.array(z.string()).
|
|
194
|
+
missing_operations: z.array(z.string()).length(0),
|
|
201
195
|
remediation: z.null(),
|
|
202
196
|
}),
|
|
203
197
|
z.object({
|
|
@@ -258,7 +252,8 @@ export const toolAvailability = z.discriminatedUnion("available", [
|
|
|
258
252
|
remediation: z.string().nullable(),
|
|
259
253
|
}),
|
|
260
254
|
]);
|
|
261
|
-
export const sessionProvider = z
|
|
255
|
+
export const sessionProvider = z
|
|
256
|
+
.object({
|
|
262
257
|
provider: providerIdentity,
|
|
263
258
|
providers: z.array(providerIdentity),
|
|
264
259
|
capabilities: z.array(providerCapability),
|
|
@@ -314,7 +309,6 @@ export const sessionProvider = z.object({
|
|
|
314
309
|
protocol_features: z.object({
|
|
315
310
|
progress: z.boolean(),
|
|
316
311
|
cancellation: z.boolean(),
|
|
317
|
-
evidence_resources: z.boolean(),
|
|
318
312
|
elicitation: z.boolean(),
|
|
319
313
|
}),
|
|
320
314
|
alignment: z.object({
|
|
@@ -323,7 +317,8 @@ export const sessionProvider = z.object({
|
|
|
323
317
|
remediation: z.string().nullable(),
|
|
324
318
|
}),
|
|
325
319
|
}),
|
|
326
|
-
})
|
|
320
|
+
})
|
|
321
|
+
.passthrough();
|
|
327
322
|
export const nullableText = z.string().nullable();
|
|
328
323
|
export const addressList = z.array(z.string());
|
|
329
324
|
export const addressedEntry = z.object({
|
|
@@ -353,29 +348,9 @@ const availableMemoryPermissions = z.object({
|
|
|
353
348
|
available: z.literal(true),
|
|
354
349
|
source: z.literal("ghidra-memory-block"),
|
|
355
350
|
});
|
|
356
|
-
export const
|
|
357
|
-
const facts = {
|
|
358
|
-
items: z.array(item),
|
|
359
|
-
total: z.number().int().min(0).nullable(),
|
|
360
|
-
returned: z.number().int().min(0),
|
|
361
|
-
};
|
|
362
|
-
return z.discriminatedUnion("truncated", [
|
|
363
|
-
z.object({
|
|
364
|
-
...facts,
|
|
365
|
-
truncated: z.literal(false),
|
|
366
|
-
next_offset: z.null(),
|
|
367
|
-
}),
|
|
368
|
-
z.object({
|
|
369
|
-
...facts,
|
|
370
|
-
truncated: z.literal(true),
|
|
371
|
-
next_offset: z.number().int().min(0).nullable(),
|
|
372
|
-
}),
|
|
373
|
-
]);
|
|
374
|
-
};
|
|
375
|
-
const addressedValue = z.object({
|
|
351
|
+
export const addressedValue = z.object({
|
|
376
352
|
address: z.string(),
|
|
377
353
|
value: z.string(),
|
|
378
|
-
value_truncated: z.boolean().optional(),
|
|
379
354
|
symbol: z
|
|
380
355
|
.object({
|
|
381
356
|
primary: z.boolean(),
|
|
@@ -400,21 +375,6 @@ const addressedValue = z.object({
|
|
|
400
375
|
})
|
|
401
376
|
.optional(),
|
|
402
377
|
});
|
|
403
|
-
export const pageOutput = z.object({
|
|
404
|
-
items: z.array(addressedValue),
|
|
405
|
-
offset: z.number().int().min(0),
|
|
406
|
-
limit: z.number().int().min(1),
|
|
407
|
-
total: z.number().int().min(0),
|
|
408
|
-
next_offset: z.number().int().min(0).nullable(),
|
|
409
|
-
has_more: z.boolean(),
|
|
410
|
-
});
|
|
411
|
-
export const searchPageOutput = pageOutput.extend({
|
|
412
|
-
items: z.array(z.object({
|
|
413
|
-
address: z.string(),
|
|
414
|
-
value: z.string(),
|
|
415
|
-
value_truncated: z.boolean(),
|
|
416
|
-
})),
|
|
417
|
-
});
|
|
418
378
|
const memoryRegionOutput = z.object({
|
|
419
379
|
name: z.string(),
|
|
420
380
|
start: z.string(),
|
|
@@ -10,40 +10,33 @@ const PROPERTY_DESCRIPTIONS = {
|
|
|
10
10
|
comment: "Exact analyst comment text to write.",
|
|
11
11
|
comparisons: "Validated comparison Evidence records to aggregate.",
|
|
12
12
|
coverage: "Exact reconstruction-coverage commitment to verify.",
|
|
13
|
-
detail: "Requested response detail level.",
|
|
14
13
|
direction: "Direction in which to traverse or compare relationships.",
|
|
15
14
|
document: "Exact provider document or program identity.",
|
|
16
15
|
error: "Structured, caller-actionable error when the operation fails.",
|
|
17
|
-
evidence: "Evidence
|
|
18
|
-
evidence_id: "Stable identifier of the recorded Evidence
|
|
19
|
-
evidence_uri: "Session resource URI for the recorded Evidence v2 observation.",
|
|
16
|
+
evidence: "Evidence record produced by this operation.",
|
|
17
|
+
evidence_id: "Stable identifier of the recorded Evidence observation.",
|
|
20
18
|
executable: "Approved absolute path of the executable to run.",
|
|
21
19
|
format: "Declared input artifact format.",
|
|
22
20
|
name: "Exact name used by this operation.",
|
|
23
|
-
pattern: "
|
|
21
|
+
pattern: "Literal text or regular expression used to filter matching results.",
|
|
24
22
|
phase: "Current plan or execution phase of the operation.",
|
|
25
23
|
plan: "Content-bound execution plan and its approval commitment.",
|
|
26
24
|
query: "Non-empty feature or text query to investigate.",
|
|
27
25
|
question: "Concrete unresolved question to retain for later investigation.",
|
|
28
26
|
result: "Primary structured result returned by this operation.",
|
|
29
27
|
left: "Left-hand input used for comparison or differential execution.",
|
|
30
|
-
|
|
31
|
-
limits: "Bounded resource-consumption and result-size limits for this operation.",
|
|
28
|
+
limits: "Resource budgets that bound execution and retained output for this operation.",
|
|
32
29
|
mode: "Operation mode that selects the requested behavior.",
|
|
33
|
-
offset: "Zero-based index of the first result to return.",
|
|
34
30
|
overwrite: "Whether an existing destination may be replaced.",
|
|
35
31
|
path: "Local filesystem path used by this operation.",
|
|
36
32
|
provider_id: "Exact deep-analysis provider ID, or automatic selection when omitted.",
|
|
37
33
|
right: "Right-hand input used for comparison or differential execution.",
|
|
38
|
-
schema_version: "Version of this structured result schema.",
|
|
39
34
|
source_evidence: "Evidence records supporting the prepared source transformation.",
|
|
40
35
|
status: "Current lifecycle or verification status.",
|
|
41
36
|
summary: "Concise evidence-backed summary of the result.",
|
|
42
|
-
symbols: "Ordered
|
|
37
|
+
symbols: "Ordered Swift symbols to demangle.",
|
|
43
38
|
target_id: "Exact authorized CDP target identifier.",
|
|
44
39
|
unknown_id: "Exact residual-unknown identifier.",
|
|
45
|
-
unknown_registry_approved: "Explicit approval to record bounded residual uncertainty in the session registry.",
|
|
46
|
-
workspace_path: "Approved local path of the persistent investigation workspace.",
|
|
47
40
|
};
|
|
48
41
|
/** Attach caller guidance to a canonical schema for the SDK wire projection. */
|
|
49
42
|
export const toolInputSchemaWithMetadata = (contract) => {
|
|
@@ -97,10 +90,6 @@ const fallbackPropertyDescription = (property) => {
|
|
|
97
90
|
const words = property.replaceAll("_", " ");
|
|
98
91
|
if (property.endsWith("_approved"))
|
|
99
92
|
return `Explicit operator approval for ${words.slice(0, -9)}.`;
|
|
100
|
-
if (property.endsWith("_offset"))
|
|
101
|
-
return `Zero-based index of the first ${words.slice(0, -7)} to return.`;
|
|
102
|
-
if (property.endsWith("_limit"))
|
|
103
|
-
return `Maximum number of ${words.slice(0, -6)} entries to return.`;
|
|
104
93
|
if (property.startsWith("max_"))
|
|
105
94
|
return `Maximum permitted ${words.slice(4)} for this operation.`;
|
|
106
95
|
if (property.startsWith("include_"))
|
|
@@ -110,15 +99,15 @@ const fallbackPropertyDescription = (property) => {
|
|
|
110
99
|
if (property.endsWith("_sha256"))
|
|
111
100
|
return `Exact SHA-256 digest of ${words.slice(0, -7)}.`;
|
|
112
101
|
if (property.endsWith("_evidence_id"))
|
|
113
|
-
return `Exact Evidence
|
|
102
|
+
return `Exact Evidence identifier for the ${words.slice(0, -12)} observation.`;
|
|
114
103
|
if (property.endsWith("_evidence_ids"))
|
|
115
|
-
return `Ordered Evidence
|
|
104
|
+
return `Ordered Evidence identifiers for the ${words.slice(0, -13)} observations.`;
|
|
116
105
|
if (property.endsWith("_path"))
|
|
117
106
|
return `Local filesystem path for ${words.slice(0, -5)}.`;
|
|
118
107
|
if (property.endsWith("_uri"))
|
|
119
108
|
return `Canonical URI for ${words.slice(0, -4)}.`;
|
|
120
109
|
if (property.endsWith("_bytes"))
|
|
121
|
-
return `
|
|
110
|
+
return `Byte count for ${words.slice(0, -6)}.`;
|
|
122
111
|
if (property.endsWith("_root") || property.endsWith("_roots"))
|
|
123
112
|
return `Approved canonical filesystem ${words}.`;
|
|
124
113
|
if (property.startsWith("is_") || property.startsWith("has_"))
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
export const UNKNOWN_CONTRACT_EXAMPLES = {
|
|
3
3
|
list_unknowns: {},
|
|
4
4
|
record_unknown: {
|
|
5
|
-
approved: true,
|
|
6
5
|
question: "Does this branch require an unavailable external service?",
|
|
7
6
|
severity: "medium",
|
|
8
7
|
domain: "protocol",
|
|
@@ -15,7 +14,6 @@ export const UNKNOWN_CONTRACT_EXAMPLES = {
|
|
|
15
14
|
relationships: [],
|
|
16
15
|
},
|
|
17
16
|
update_unknown: {
|
|
18
|
-
approved: true,
|
|
19
17
|
unknown_id: `unk_${"0".repeat(64)}`,
|
|
20
18
|
expected_revision: 1,
|
|
21
19
|
status: "investigating",
|