rea-agents 6.2.0 → 6.4.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 +24 -23
- package/bridge/ghidra/ReaGhidraApplySeeds.java +151 -0
- package/bridge/ghidra/ReaGhidraBridge.java +597 -209
- package/bridge/ghidra/ReaGhidraNoReturnFix.java +123 -0
- package/bridge/hopper_bridge.py +2 -0
- package/dist/adb/AdbConfiguration.js +88 -0
- package/dist/adb/AdbDeviceOutput.js +186 -0
- package/dist/adb/AdbProvider.js +1190 -0
- package/dist/adb/AdbShellOutput.js +309 -0
- package/dist/android/AndroidTargetSnapshot.js +104 -22
- package/dist/android/JadxConfiguration.js +44 -24
- package/dist/android/JadxProvider.js +59 -21
- package/dist/android/JadxSession.js +51 -9
- package/dist/apktool/ApktoolConfiguration.js +84 -0
- package/dist/apktool/ApktoolDecodeOutput.js +59 -0
- package/dist/apktool/ApktoolProvider.js +506 -0
- package/dist/application/AnalysisProvider.js +8 -2
- package/dist/application/AppBundleExecutable.js +27 -22
- package/dist/application/BinaryTargetResolver.js +85 -19
- package/dist/application/BrowserScenarioEvidence.js +2 -2
- package/dist/application/CapabilityInventory.js +11 -1
- package/dist/application/ClientConfigurationDocument.js +98 -0
- package/dist/application/ClientConfigurationFiles.js +91 -0
- package/dist/application/ClientRegistrationEnvironment.js +35 -0
- package/dist/application/ClientRegistrationStatus.js +75 -27
- package/dist/application/DirectAnalysis.js +14 -8
- package/dist/application/DirectAnalysisCleanup.js +1 -2
- package/dist/application/DirectAnalysisStatus.js +3 -6
- package/dist/application/Doctor.js +27 -34
- package/dist/application/DoctorDiagnostics.js +1 -1
- package/dist/application/EvidenceBundleCommands.js +6 -12
- package/dist/application/EvidenceBundleFiles.js +1 -1
- package/dist/application/GeminiClientSettings.js +139 -0
- package/dist/application/HermesClientHome.js +115 -0
- package/dist/application/HopperDownload.js +39 -0
- package/dist/application/InvestigationProviders.js +10 -4
- package/dist/application/JsonFiles.js +16 -15
- package/dist/application/JsonInputFile.js +252 -0
- package/dist/application/LinuxHopper.js +6 -13
- package/dist/application/MacHopper.js +172 -149
- package/dist/application/MipsElfAbiFlags.js +140 -0
- package/dist/application/ProviderOperationExecution.js +31 -0
- package/dist/application/ReconstructionObligationCandidates.js +16 -3
- package/dist/application/ReconstructionObligationLedgerProjection.js +3 -1
- package/dist/application/ReferenceSourceImport.js +76 -29
- package/dist/application/ReferenceSourceImportEntries.js +18 -9
- package/dist/application/ReferenceSourceImportPolicy.js +99 -23
- package/dist/application/ReferenceSourceImportTypes.js +30 -22
- package/dist/application/ReferenceSourceVcsAdapter.js +145 -30
- package/dist/application/RegularFileRead.js +103 -0
- package/dist/application/Setup.js +69 -10
- package/dist/application/SetupClientConfiguration.js +134 -23
- package/dist/application/SetupHost.js +102 -22
- package/dist/application/SetupPlan.js +18 -17
- package/dist/application/SetupSkill.js +81 -13
- package/dist/application/SupportedClients.js +305 -37
- package/dist/application/Uninstall.js +172 -8
- package/dist/application/UpdateMaintenance.js +23 -23
- package/dist/application/Utf8JsonInput.js +71 -0
- package/dist/application/WebScriptExportService.js +130 -57
- package/dist/application/WebSourceLocationService.js +3 -0
- package/dist/application/adb/AdbDeviceAnalysisPort.js +1 -0
- package/dist/application/adb/AdbDeviceAnalysisService.js +13 -0
- package/dist/application/analysisView/AnalysisViewService.js +40 -2
- package/dist/application/android/AndroidAnalysisService.js +1 -1
- package/dist/application/apktool/ApktoolResourceAnalysisPort.js +1 -0
- package/dist/application/apktool/ApktoolResourceAnalysisService.js +13 -0
- package/dist/application/binary/AnalysisClientCleanup.js +0 -24
- package/dist/application/binary/AnalysisSnapshotCache.js +5 -4
- package/dist/application/binary/BinarySession.js +18 -1
- package/dist/application/binary/BinarySessionOpen.js +9 -1
- package/dist/application/binaryDiagnostics/BinaryLayoutService.js +2 -1
- package/dist/application/binaryDiagnostics/PeResourcesPort.js +1 -0
- package/dist/application/binaryDiagnostics/PeResourcesService.js +111 -0
- package/dist/application/binaryDiagnostics/RecordedCrashService.js +2 -1
- package/dist/application/evm/EvmInterfaceService.js +3 -0
- package/dist/application/firmware/FirmwareAnalysisService.js +3 -0
- package/dist/application/investigation/InspectEvidenceBundle.js +18 -0
- package/dist/application/javascript/ElectronActiveEvidence.js +2 -2
- package/dist/application/javascript/ElectronBoundaryAnalysis.js +2 -2
- package/dist/application/javascript/ElectronBoundaryGraphContext.js +3 -2
- package/dist/application/javascript/ElectronBoundaryGraphIpc.js +2 -2
- package/dist/application/javascript/ElectronBoundaryGraphNative.js +20 -3
- package/dist/application/javascript/ElectronBoundaryGraphWindows.js +3 -3
- package/dist/application/javascript/JavaScriptApplicationEvidence.js +1 -0
- package/dist/application/javascript/JavaScriptApplicationEvidenceGraph.js +107 -46
- package/dist/application/javascript/JavaScriptApplicationService.js +23 -11
- package/dist/application/javascript/JavaScriptApplicationWorkflowEvidence.js +5 -6
- package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +59 -45
- package/dist/application/javascript/JavaScriptArtifactAnalysis.js +171 -36
- package/dist/application/javascript/JavaScriptArtifactGraphAccumulator.js +14 -16
- package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +74 -36
- package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +4 -3
- package/dist/application/javascript/JavaScriptArtifactGraphContext.js +11 -5
- package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +53 -42
- package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +92 -10
- package/dist/application/javascript/JavaScriptArtifactPathResolution.js +293 -238
- package/dist/application/javascript/JavaScriptArtifactReconstruction.js +120 -28
- package/dist/application/javascript/JavaScriptArtifactReconstructionInput.js +4 -0
- package/dist/application/javascript/JavaScriptJsonModules.js +2 -2
- package/dist/application/javascript/JavaScriptModuleRelationships.js +10 -20
- package/dist/application/javascript/JavaScriptRecoveryService.js +3 -0
- package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +11 -27
- package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +11 -5
- package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +206 -66
- package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +1 -1
- package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +18 -23
- package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +5 -2
- package/dist/application/javascript/JavaScriptSemanticGraphEvidence.js +1 -1
- package/dist/application/javascript/JavaScriptSemanticGraphFingerprintProjection.js +2 -2
- package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +7 -5
- package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +6 -4
- package/dist/application/javascript/JavaScriptSemanticGraphProjection.js +4 -4
- package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +1 -1
- package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +29 -15
- package/dist/application/javascript/JavaScriptSemanticTraceService.js +15 -10
- package/dist/application/jeb/JebAnalysisPort.js +1 -0
- package/dist/application/jeb/JebAnalysisService.js +13 -0
- package/dist/application/managed/ManagedApplicationGraphService.js +1 -1
- package/dist/application/native/NativeCallRoutes.js +2 -4
- package/dist/application/native/NativeUiActionTrace.js +16 -8
- package/dist/application/native/NativeValueTrace.js +23 -6
- package/dist/application/process/ProcessCli.js +25 -20
- package/dist/artifacts/ArtifactPaths.js +129 -8
- package/dist/artifacts/ArtifactProvider.js +34 -31
- package/dist/artifacts/ArtifactProviderMetadata.js +1 -4
- package/dist/artifacts/ArtifactReader.js +23 -0
- package/dist/artifacts/ArtifactResourceScope.js +100 -0
- package/dist/artifacts/AsarArtifactReader.js +218 -80
- package/dist/artifacts/AsarHeader.js +24 -0
- package/dist/artifacts/DirectoryArtifactReader.js +168 -65
- package/dist/artifacts/MachOSliceArtifactReader.js +116 -39
- package/dist/artifacts/NativeDmgArtifactReader.js +179 -87
- package/dist/artifacts/NativeDmgOwnership.js +109 -0
- package/dist/artifacts/SafeOutputTree.js +245 -70
- package/dist/artifacts/SafeOutputTreeCleanup.js +45 -0
- package/dist/artifacts/SafeOutputTreeCreationFailure.js +20 -0
- package/dist/artifacts/SafeOutputTreeIdentity.js +42 -0
- package/dist/artifacts/SafeOutputTreeReadback.js +33 -0
- package/dist/artifacts/ZipArtifactReader.js +77 -27
- package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +58 -18
- package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +62 -24
- package/dist/artifacts/apple/KeyedArchiveReader.js +76 -49
- package/dist/artifacts/apple/MachoLoadCommandReader.js +36 -6
- package/dist/artifacts/extraction/ArtifactExtraction.js +134 -92
- package/dist/artifacts/inventory/ArtifactGraphConstruction.js +116 -50
- package/dist/artifacts/inventory/ArtifactInventory.js +5 -4
- package/dist/artifacts/inventory/classify.js +87 -25
- package/dist/artifacts/inventory/hashStableRootArtifact.js +70 -0
- package/dist/artifacts/inventory/reader.js +13 -5
- package/dist/artifacts/inventory/scanCanonical.js +73 -30
- package/dist/artifacts/inventory/scanReader.js +43 -20
- package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +72 -28
- package/dist/artifacts/javascript/JavaScriptSourceAnalysis.js +3 -0
- package/dist/browser/BrowserScenarioPartialObservation.js +8 -2
- package/dist/browser/BrowserScenarioSecrets.js +52 -37
- package/dist/browser/CdpBrowserProvider.js +9 -3
- package/dist/browser/CdpCaptureDocuments.js +40 -6
- package/dist/browser/CdpCaptureDomSvg.js +210 -0
- package/dist/browser/CdpCaptureEventBodyShapes.js +4 -8
- package/dist/browser/CdpCaptureEventHandlers.js +26 -9
- package/dist/browser/CdpCaptureEvents.js +4 -9
- package/dist/browser/CdpCaptureStorageFingerprints.js +3 -3
- package/dist/browser/CdpConnection.js +22 -5
- package/dist/browser/CdpElectronInspection.js +2 -2
- package/dist/browser/CdpElectronProvider.js +4 -3
- package/dist/browser/CdpElectronScripts.js +2 -2
- package/dist/browser/CdpPageCapture.js +1 -1
- package/dist/browser/CdpTargetSession.js +30 -34
- package/dist/browser/CdpWebMcpDiscovery.js +48 -23
- package/dist/browser/ElectronFileScope.js +99 -9
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +63 -7
- package/dist/browser/PlaywrightElectronActiveProvider.js +11 -6
- package/dist/browser/PlaywrightScenarioArtifacts.js +5 -5
- package/dist/browser/PlaywrightScenarioBrowser.js +208 -43
- package/dist/browser/PlaywrightScenarioSession.js +130 -65
- package/dist/browser/PlaywrightScenarioStorage.js +507 -0
- package/dist/browser/PngVisualDiff.js +198 -29
- package/dist/browser/WebSourceMapFetcher.js +35 -9
- package/dist/browser/assets/LocalWebScriptArtifacts.js +3 -1
- package/dist/browser/assets/PublishWebScripts.js +75 -20
- package/dist/browser/assets/ScenarioScriptCapture.js +8 -12
- package/dist/browser/assets/WebArtifactReads.js +23 -1
- package/dist/browser/assets/WebSourceLocationArtifacts.js +1 -0
- package/dist/browser/execution/CdpExecutionCapture.js +3 -3
- package/dist/browser/execution/CdpPreciseCoverage.js +5 -8
- package/dist/browser/history/HarCapture.js +14 -0
- package/dist/browser/history/HarCaptureProcess.js +2 -10
- package/dist/browser/history/MitmproxyCaptureAdapter.js +3 -1
- package/dist/browser/modules/WebModuleArtifacts.js +1 -0
- package/dist/cli/adbCommands.js +337 -0
- package/dist/cli/analysisViewCommands.js +39 -1
- package/dist/cli/apktoolCommands.js +53 -0
- package/dist/cli/artifactCommands.js +8 -11
- package/dist/cli/binaryDiagnosticsCommands.js +19 -1
- package/dist/cli/browserAdvancedCommands.js +65 -36
- package/dist/cli/coreAnalysisCommands.js +2 -2
- package/dist/cli/coreBinaryCommands.js +12 -13
- package/dist/cli/coreNativeCommands.js +1 -14
- package/dist/cli/electronCommands.js +14 -10
- package/dist/cli/evmCommands.js +13 -4
- package/dist/cli/firmwareCommands.js +7 -2
- package/dist/cli/javascriptApplicationAnalysis.js +19 -13
- package/dist/cli/javascriptRecoveryCommands.js +22 -15
- package/dist/cli/jebCommands.js +99 -0
- package/dist/cli/jsonOutput.js +12 -4
- package/dist/cli/referenceSourceImportStatus.js +7 -0
- package/dist/cli/setupCommands.js +15 -3
- package/dist/cli/streamedJsonOutput.js +83 -4
- package/dist/cli/utilityCommands.js +68 -22
- package/dist/cli/webScriptCommands.js +20 -1
- package/dist/cli/webSourceLocationCommands.js +21 -9
- package/dist/cli.js +11 -2
- package/dist/cliBrowserScenarioCommands.js +2 -1
- package/dist/cliCommandNames.js +32 -0
- package/dist/cliJsonInput.js +47 -34
- package/dist/cliObservationOptions.js +7 -0
- package/dist/composition/adb.js +3 -0
- package/dist/composition/apktool.js +3 -0
- package/dist/composition/auxiliaryAnalysisProviders.js +5 -4
- package/dist/composition/binaryDiagnostics.js +4 -0
- package/dist/composition/browserScenario.js +2 -2
- package/dist/composition/directAnalysis.js +14 -7
- package/dist/composition/javascriptAnalysisWorkerProcess.js +48 -0
- package/dist/composition/jeb.js +6 -0
- package/dist/config/environment.js +10 -0
- package/dist/config/ghidraLanguageOverride.js +9 -0
- package/dist/config/mcpInputSchemaProfile.js +27 -0
- package/dist/config/parseConfig.js +28 -1
- package/dist/contracts/adb/adbToolContracts.js +353 -0
- package/dist/contracts/advertisedInputExamples.js +48 -0
- package/dist/contracts/analysisDetail.js +10 -0
- package/dist/contracts/analysisViewToolContracts.js +17 -2
- package/dist/contracts/apktool/apktoolToolContracts.js +33 -0
- package/dist/contracts/artifactComparisonExample.js +5 -5
- package/dist/contracts/artifactToolContracts.js +8 -5
- package/dist/contracts/browserToolContracts.js +1 -1
- package/dist/contracts/compactInputSchema.js +256 -0
- package/dist/contracts/errorSchemas.js +3 -1
- package/dist/contracts/functionComparisonExample.js +8 -0
- package/dist/contracts/functionWorkflowToolContracts.js +1 -1
- package/dist/contracts/inputSchemaPresentation.js +104 -13
- package/dist/contracts/javascript/electronToolContracts.js +16 -3
- package/dist/contracts/javascript/javascriptApplicationWorkflowExamples.js +3 -2
- package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +6 -3
- package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +1 -1
- package/dist/contracts/javascript/javascriptRuntimeReconciliationExample.js +8 -7
- package/dist/contracts/jeb/jebToolContracts.js +64 -0
- package/dist/contracts/managed/managedToolContracts.js +3 -2
- package/dist/contracts/mobileApplicationGraphExamples.js +5 -5
- package/dist/contracts/native/binaryDiagnosticsToolContracts.js +25 -3
- package/dist/contracts/native/nativeToolContracts.js +1 -1
- package/dist/contracts/officialToolContracts.js +5 -5
- package/dist/contracts/sessionLifecycleInputs.js +4 -3
- package/dist/contracts/sessionStatusContract.js +3 -2
- package/dist/contracts/sessionToolContracts.js +5 -4
- package/dist/contracts/sessionToolSchemas.js +9 -4
- package/dist/contracts/toolContractExamples.js +6 -0
- package/dist/contracts/toolContractTypes.js +3 -0
- package/dist/contracts/toolContracts.js +6 -0
- package/dist/contracts/toolEffects.js +167 -0
- package/dist/contracts/toolOutputSchemaGroups.js +7 -5
- package/dist/contracts/toolOutputSchemaPrimitives.js +2 -5
- package/dist/contracts/toolSchemaMetadata.js +82 -7
- package/dist/domain/adb/adbDeviceAnalysis.js +583 -0
- package/dist/domain/analysisErrorBase.js +5 -0
- package/dist/domain/analysisErrorCleanup.js +29 -0
- package/dist/domain/analysisErrorPresentation.js +18 -4
- package/dist/domain/analysisErrorProjection.js +4 -1
- package/dist/domain/analysisSnapshot.js +5 -2
- package/dist/domain/analysisView/analysisView.js +53 -5
- package/dist/domain/analysisView/binaryLayoutView.js +2 -0
- package/dist/domain/analysisView/javascriptApplicationView.js +2 -0
- package/dist/domain/analysisView/nativeFunctionView.js +155 -0
- package/dist/domain/android/androidApplication.js +25 -20
- package/dist/domain/android/androidPartialObservation.js +36 -0
- package/dist/domain/apktool/apktoolResourceAnalysis.js +77 -0
- package/dist/domain/apple/appleApplication.js +40 -23
- package/dist/domain/apple/appleBundleAnatomy.js +95 -28
- package/dist/domain/apple/dyldPaths.js +9 -1
- package/dist/domain/apple/dylibResolution.js +3 -3
- package/dist/domain/apple/interfaceBuilderGraph.js +22 -19
- package/dist/domain/apple/interfaceBuilderKeyedArchive.js +10 -1
- package/dist/domain/artifactComparison.js +39 -11
- package/dist/domain/artifactGraph.js +6 -4
- package/dist/domain/artifactIdentity.js +37 -9
- package/dist/domain/artifactInspection.js +10 -50
- package/dist/domain/artifactIntegrityPolicy.js +10 -0
- package/dist/domain/artifactInventoryEvidence.js +16 -17
- package/dist/domain/artifactPathSyntax.js +1 -1
- package/dist/domain/binaryTarget.js +16 -0
- package/dist/domain/binaryTargetTypes.js +8 -1
- package/dist/domain/browserCompleteness.js +3 -2
- package/dist/domain/browserObservationSchemas.js +8 -4
- package/dist/domain/browserScenarioCaptureValues.js +2 -2
- package/dist/domain/browserScenarioNormalization.js +3 -3
- package/dist/domain/browserScenarioValues.js +3 -2
- package/dist/domain/callPath.js +8 -10
- package/dist/domain/canonicalDigest.js +7 -1
- package/dist/domain/canonicalJsonDigestSteps.js +34 -12
- package/dist/domain/canonicalOrdering.js +1 -13
- package/dist/domain/changedBehavior.js +2 -3
- package/dist/domain/compactStringIdentity.js +9 -0
- package/dist/domain/comparisonSemantics.js +0 -5
- package/dist/domain/digests.js +0 -3
- package/dist/domain/evidence.js +12 -6
- package/dist/domain/evidenceBundle.js +51 -33
- package/dist/domain/evidenceRecordSummary.js +144 -0
- package/dist/domain/firmware/firmwareAnalysis.js +4 -3
- package/dist/domain/functionComparison.js +2 -1
- package/dist/domain/functionComparisonNormalization.js +4 -3
- package/dist/domain/functionComparisonResults.js +2 -2
- package/dist/domain/functionDossierEvidence.js +2 -1
- package/dist/domain/hopperValues.js +11 -15
- package/dist/domain/inputIssueProjection.js +16 -1
- package/dist/domain/javascript/electronActiveObservation.js +4 -3
- package/dist/domain/javascript/electronStaticAnalysisBrowser.js +14 -15
- package/dist/domain/javascript/electronStaticAnalysisIpc.js +20 -21
- package/dist/domain/javascript/electronStaticAnalysisNative.js +73 -41
- package/dist/domain/javascript/electronStaticAnalysisValues.js +24 -4
- package/dist/domain/javascript/javascriptAnalysisResourceControls.js +45 -0
- package/dist/domain/javascript/javascriptApplicationAnalysis.js +6 -1
- package/dist/domain/javascript/javascriptApplicationChangeGraph.js +18 -14
- package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +4 -0
- package/dist/domain/javascript/javascriptApplicationGraph.js +91 -28
- package/dist/domain/javascript/javascriptApplicationProjectionResources.js +35 -0
- package/dist/domain/javascript/javascriptApplicationVersionComparison.js +4 -4
- package/dist/domain/javascript/javascriptApplicationVersionComparisonSchemas.js +37 -22
- package/dist/domain/javascript/javascriptApplicationVersionItems.js +72 -45
- package/dist/domain/javascript/javascriptApplicationVersionKeys.js +16 -8
- package/dist/domain/javascript/javascriptAstFingerprint.js +60 -33
- package/dist/domain/javascript/javascriptAstValues.js +54 -0
- package/dist/domain/javascript/javascriptElectronMemberWrites.js +50 -0
- package/dist/domain/javascript/javascriptExportShapeComparison.js +3 -2
- package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +31 -23
- package/dist/domain/javascript/javascriptExportShapeSelection.js +2 -2
- package/dist/domain/javascript/javascriptExportShapeVariants.js +3 -2
- package/dist/domain/javascript/javascriptFeatureSeed.js +5 -3
- package/dist/domain/javascript/javascriptFeatureTrace.js +7 -6
- package/dist/domain/javascript/javascriptFeatureTraceSchemas.js +17 -9
- package/dist/domain/javascript/javascriptFeatureTraversal.js +4 -4
- package/dist/domain/javascript/javascriptModuleSemanticIr.js +15 -0
- package/dist/domain/javascript/javascriptNativeHandoff.js +12 -7
- package/dist/domain/javascript/javascriptRpcEndpoints.js +253 -0
- package/dist/domain/javascript/javascriptRuntimeLoadState.js +1 -3
- package/dist/domain/javascript/javascriptRuntimeObservation.js +8 -5
- package/dist/domain/javascript/javascriptRuntimeReconciliation.js +12 -6
- package/dist/domain/javascript/javascriptRuntimeReconciliationActive.js +9 -8
- package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +212 -0
- package/dist/domain/javascript/javascriptRuntimeReconciliationGraph.js +12 -6
- package/dist/domain/javascript/javascriptRuntimeReconciliationInputValidation.js +28 -0
- package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +5 -5
- package/dist/domain/javascript/javascriptRuntimeReconciliationParsing.js +12 -223
- package/dist/domain/javascript/javascriptRuntimeReconciliationResult.js +2 -2
- package/dist/domain/javascript/javascriptRuntimeReconciliationRuntime.js +15 -4
- package/dist/domain/javascript/javascriptRuntimeReconciliationSchemas.js +2 -2
- package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +15 -17
- package/dist/domain/javascript/javascriptSemanticAnalysis.js +379 -30
- package/dist/domain/javascript/javascriptSemanticCallResolution.js +9 -7
- package/dist/domain/javascript/javascriptSemanticCallableResults.js +42 -0
- package/dist/domain/javascript/javascriptSemanticCalls.js +8 -1
- package/dist/domain/javascript/javascriptSemanticChildProcesses.js +2 -2
- package/dist/domain/javascript/javascriptSemanticCoverage.js +20 -0
- package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +7 -9
- package/dist/domain/javascript/javascriptSemanticDataEffects.js +4 -11
- package/dist/domain/javascript/javascriptSemanticDerivedAnalysis.js +15 -4
- package/dist/domain/javascript/javascriptSemanticFileProjection.js +1 -0
- package/dist/domain/javascript/javascriptSemanticFingerprints.js +43 -42
- package/dist/domain/javascript/javascriptSemanticGraph.js +205 -52
- package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +21 -11
- package/dist/domain/javascript/javascriptSemanticIr.js +0 -4
- package/dist/domain/javascript/javascriptSemanticIterationSources.js +139 -0
- package/dist/domain/javascript/javascriptSemanticMemberMutations.js +774 -136
- package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +190 -0
- package/dist/domain/javascript/javascriptSemanticMutationValues.js +98 -41
- package/dist/domain/javascript/javascriptSemanticObjectReferences.js +381 -0
- package/dist/domain/javascript/javascriptSemanticObjects.js +9 -7
- package/dist/domain/javascript/javascriptSemanticPrimitives.js +7 -2
- package/dist/domain/javascript/javascriptSemanticProjection.js +72 -28
- package/dist/domain/javascript/javascriptSemanticPromises.js +15 -21
- package/dist/domain/javascript/javascriptSemanticPropertyPaths.js +100 -0
- package/dist/domain/javascript/javascriptSemanticProvenance.js +3 -3
- package/dist/domain/javascript/javascriptSemanticQuery.js +33 -29
- package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +4 -5
- package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +8 -9
- package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +16 -10
- package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +219 -0
- package/dist/domain/javascript/javascriptSemanticReturns.js +34 -48
- package/dist/domain/javascript/javascriptSemanticState.js +22 -2
- package/dist/domain/javascript/javascriptSemanticTraversal.js +25 -2
- package/dist/domain/javascript/javascriptSemanticValues.js +169 -30
- package/dist/domain/javascript/javascriptSourceAnalysis.js +1 -0
- package/dist/domain/javascript/javascriptSourceMapPaths.js +11 -1
- package/dist/domain/javascript/javascriptSourceParser.js +34 -9
- package/dist/domain/javascript/javascriptStaticAnalysis.js +29 -17
- package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +13 -12
- package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +49 -5
- package/dist/domain/javascript/javascriptStaticAnalysisFindings.js +8 -4
- package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +26 -15
- package/dist/domain/javascript/javascriptStaticAnalysisState.js +1 -0
- package/dist/domain/javascript/sourceToBundleComparison.js +7 -5
- package/dist/domain/javascript/sourceToBundleSignals.js +7 -7
- package/dist/domain/jeb/jebAnalysis.js +114 -0
- package/dist/domain/jsonSerialization.js +109 -55
- package/dist/domain/jsonShape.js +69 -31
- package/dist/domain/jsonValue.js +3 -0
- package/dist/domain/localPath.js +10 -4
- package/dist/domain/managed/managedApplicationGraph.js +47 -6
- package/dist/domain/managed/managedApplicationGraphCoverage.js +8 -2
- package/dist/domain/managed/managedApplicationGraphNodes.js +94 -59
- package/dist/domain/managed/managedArtifact.js +1 -0
- package/dist/domain/managed/managedInspectionEvidence.js +13 -0
- package/dist/domain/managed/managedMemberComparisonMatch.js +6 -7
- package/dist/domain/native/nativeAotPe.js +1408 -0
- package/dist/domain/native/nativeCallObservation.js +2 -4
- package/dist/domain/native/nativeInstruction.js +21 -0
- package/dist/domain/native/nativeMetadataRecovery.js +79 -6
- package/dist/domain/native/nativeValueFlow.js +5 -11
- package/dist/domain/native/objcSwiftMetadata.js +15 -17
- package/dist/domain/native/peResources.js +94 -0
- package/dist/domain/nativeConvention.js +33 -0
- package/dist/domain/process/processCapture.js +102 -11
- package/dist/domain/process/processCaptureCoverage.js +8 -5
- package/dist/domain/process/processCaptureExample.js +67 -0
- package/dist/domain/process/processCaptureValidation.js +83 -3
- package/dist/domain/process/processComparison.js +0 -23
- package/dist/domain/process/processScenario.js +62 -10
- package/dist/domain/process/processTraceEvaluation.js +4 -4
- package/dist/domain/process/processTraceSpecification.js +1 -3
- package/dist/domain/propertyListKeys.js +3 -1
- package/dist/domain/providerCleanupError.js +6 -2
- package/dist/domain/reconstructionCoverage.js +2 -1
- package/dist/domain/reconstructionUnknowns.js +4 -3
- package/dist/domain/reconstructionVerification.js +3 -2
- package/dist/domain/referenceSourceGraph.js +32 -23
- package/dist/domain/referenceSourceImportParsing.js +40 -48
- package/dist/domain/referenceSourcePathIdentity.js +22 -0
- package/dist/domain/referenceSourceRequireBindings.js +137 -0
- package/dist/domain/residualUnknown.js +3 -2
- package/dist/domain/staticRuntimeCorrelation.js +2 -1
- package/dist/domain/swiftSymbolClassification.js +6 -1
- package/dist/domain/symbolAnalysis.js +17 -2
- package/dist/domain/unicodeCodePointOrder.js +6 -0
- package/dist/domain/webBundleAnalyzerInspection.js +23 -3
- package/dist/domain/webCaptureDiff.js +170 -30
- package/dist/domain/webCaptureDiffSchemas.js +2 -8
- package/dist/domain/webInventory.js +3 -2
- package/dist/domain/webMcpDiscovery.js +4 -3
- package/dist/domain/webScriptExport.js +1 -1
- package/dist/domain/webScriptExportError.js +10 -4
- package/dist/domain/webScriptExportPlan.js +7 -13
- package/dist/domain/zipPackageFormat.js +4 -1
- package/dist/domain/zodCollectionSteps.js +24 -0
- package/dist/dotnet/ManagedArtifactInspector.js +55 -43
- package/dist/dotnet/ManagedDecodeBudget.js +80 -0
- package/dist/dotnet/ManagedMemberInspector.js +13 -6
- package/dist/dotnet/ManagedMemberInspectorCore.js +2 -2
- package/dist/dotnet/ManagedMemberInstructionDecoder.js +5 -4
- package/dist/dotnet/ManagedMemberRows.js +9 -4
- package/dist/dotnet/ManagedMetadataHeaps.js +15 -5
- package/dist/dotnet/ManagedMetadataInventoryRows.js +20 -11
- package/dist/dotnet/ManagedMetadataLayout.js +10 -4
- package/dist/dotnet/ManagedMethodBodyReader.js +8 -3
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +3 -2
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +49 -34
- package/dist/dotnet/ManagedPeReader.js +41 -25
- package/dist/dotnet/ManagedReaderFailure.js +2 -1
- package/dist/dotnet/ManagedStaticProvider.js +65 -31
- package/dist/dotnet/ManagedStaticProviderMetadata.js +1 -4
- package/dist/evaluation/AgentEvaluationReport.js +9 -5
- package/dist/evaluation/CodexAgentEval.js +43 -13
- package/dist/evm/EvmoleFailures.js +0 -2
- package/dist/evm/EvmoleInterfaceProvider.js +67 -2
- package/dist/filesystem/OwnedDirectoryHandle.js +29 -0
- package/dist/filesystem/OwnedFileHandle.js +36 -0
- package/dist/filesystem/RegularFile.js +73 -0
- package/dist/filesystem/StableFileHash.js +46 -0
- package/dist/filesystem/readFileHandleChunks.js +26 -0
- package/dist/firmware/FirmwareCommand.js +25 -3
- package/dist/firmware/FirmwareFiles.js +23 -8
- package/dist/firmware/FirmwareProvider.js +156 -32
- package/dist/firmware/FirmwarePublication.js +24 -3
- package/dist/firmware/FirmwareRelease.js +1 -0
- package/dist/generatedPackageMetadata.js +2 -2
- package/dist/ghidra/GhidraAnalysisProfile.js +55 -4
- package/dist/ghidra/GhidraAnalysisSeeds.js +211 -0
- package/dist/ghidra/GhidraClient.js +90 -8
- package/dist/ghidra/GhidraDiagnostics.js +11 -8
- package/dist/ghidra/GhidraFunctionValues.js +26 -2
- package/dist/ghidra/GhidraInstallation.js +111 -10
- package/dist/ghidra/GhidraInventoryValues.js +23 -1
- package/dist/ghidra/GhidraLanguageCatalog.js +99 -0
- package/dist/ghidra/GhidraLauncher.js +123 -58
- package/dist/ghidra/GhidraLoadImageAttest.js +49 -2
- package/dist/ghidra/GhidraMipsProfile.js +79 -0
- package/dist/ghidra/GhidraProvider.js +57 -9
- package/dist/ghidra/GhidraProviderCapabilities.js +18 -8
- package/dist/ghidra/GhidraProviderClient.js +282 -21
- package/dist/ghidra/GhidraSessionValues.js +9 -2
- package/dist/hopper/HopperAnalysisProfile.js +2 -0
- package/dist/hopper/HopperCleanup.js +1 -1
- package/dist/hopper/HopperClient.js +15 -6
- package/dist/hopper/HopperMachOImage.js +2 -0
- package/dist/hopper/HopperProvider.js +13 -2
- package/dist/ida/IdaOperationRunner.js +10 -2
- package/dist/ida/IdaProvider.js +7 -0
- package/dist/ida/IdaSessionClient.js +7 -3
- package/dist/ida/IdaWorkspace.js +4 -2
- package/dist/inspector/JavaScriptRuntimeScope.js +9 -5
- package/dist/inspector/V8InspectorCaptureProjection.js +46 -13
- package/dist/inspector/V8InspectorProvider.js +60 -8
- package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +326 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +520 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +63 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +521 -0
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +116 -0
- package/dist/javascript/recovery/RecoveryFiles.js +18 -7
- package/dist/javascript/recovery/WakaruCommand.js +22 -9
- package/dist/javascript/recovery/WakaruExecution.js +11 -7
- package/dist/javascript/recovery/WakaruProvider.js +139 -16
- package/dist/javascript/recovery/WakaruPublication.js +14 -4
- package/dist/javascript/recovery/WakaruRelease.js +10 -3
- package/dist/javascript/recovery/WakaruReport.js +12 -7
- package/dist/javascript/recovery/WakaruVersion.js +24 -0
- package/dist/javascript/sourceMaps/SourceMapCommand.js +16 -3
- package/dist/javascript/sourceMaps/SourceMapDecoder.js +63 -7
- package/dist/javascript/sourceMaps/SourceMapFormat.js +15 -4
- package/dist/jeb/JebMcpConnection.js +179 -0
- package/dist/jeb/JebMcpEndpoint.js +40 -0
- package/dist/jeb/JebProvider.js +299 -0
- package/dist/main/shutdown.js +76 -32
- package/dist/main/transport.js +1 -1
- package/dist/mcpDoctor.js +15 -6
- package/dist/native/AppleDispatchCoverage.js +25 -12
- package/dist/native/AppleDispatchMetadata.js +14 -7
- package/dist/native/AppleMachoFixups.js +71 -15
- package/dist/native/AppleMachoSelection.js +23 -3
- package/dist/native/AppleObjcDispatchFacets.js +3 -3
- package/dist/native/AppleObjcProperties.js +17 -7
- package/dist/native/LldbCallTracer.js +241 -75
- package/dist/native/NativeMacOSProvider.js +100 -20
- package/dist/native/NativeMacOSProviderMetadata.js +1 -2
- package/dist/native/NativeMachoInspection.js +11 -7
- package/dist/native/NativeUiHelperRuntime.js +6 -1
- package/dist/native/NativeUiObservation.js +4 -3
- package/dist/native/pe/PeResourceLayout.js +120 -0
- package/dist/native/pe/PeResourceParser.js +286 -0
- package/dist/native/pe/PeResourcesProvider.js +63 -0
- package/dist/process/BoundedFileBytes.js +30 -7
- package/dist/process/DarwinProcessRunTokenReader.js +8 -3
- package/dist/process/OwnedCommand.js +4 -3
- package/dist/process/ProcessOwnership.js +104 -112
- package/dist/process/ProcessOwnershipObservation.js +104 -51
- package/dist/process/ProcessOwnershipProcessTree.js +4 -4
- package/dist/process/ProcessRunTokenObservations.js +48 -0
- package/dist/process/ProviderDiagnosticRedaction.js +17 -0
- package/dist/process/ProviderProcess.js +4 -3
- package/dist/process/capture/FilesystemSnapshot.js +116 -22
- package/dist/process/capture/ProcessCaptureLifecycle.js +363 -86
- package/dist/process/capture/ProcessCaptureProgress.js +62 -0
- package/dist/process/capture/ProcessFilesystemEffects.js +19 -4
- package/dist/process/capture/ProcessHarness.js +202 -47
- package/dist/process/capture/ProcessNormalization.js +3 -1
- package/dist/process/capture/ProcessScenarioRuntimeValidation.js +5 -2
- package/dist/process/capture/TerminalRenderer.js +24 -7
- package/dist/reference/ReferenceSourceReader.js +22 -5
- package/dist/reference/ReferenceSourceReaderEntries.js +114 -51
- package/dist/reference/ReferenceSourceReaderErrors.js +12 -0
- package/dist/reference/ReferenceSourceReaderFile.js +50 -10
- package/dist/reference/ReferenceSourceReaderValidate.js +4 -4
- package/dist/server/EvidenceMcpServer.js +36 -1
- package/dist/server/admittedToolOperation.js +9 -0
- package/dist/server/analysisAdmission.js +8 -0
- package/dist/server/contractToolHandler.js +21 -0
- package/dist/server/createServer.js +118 -47
- package/dist/server/registerAdbTools.js +36 -0
- package/dist/server/registerAnalysisViewTool.js +4 -9
- package/dist/server/registerAndroidTools.js +3 -12
- package/dist/server/registerApktoolTools.js +14 -0
- package/dist/server/registerApplicationTools/compareExportShapes.js +6 -7
- package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
- package/dist/server/registerApplicationTools/compareVersions.js +3 -2
- package/dist/server/registerApplicationTools/coverage.js +3 -2
- package/dist/server/registerApplicationTools/helpers.js +3 -2
- package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
- package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +3 -2
- package/dist/server/registerApplicationTools/traceFeature.js +3 -2
- package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
- package/dist/server/registerArtifactComparisonTool.js +5 -2
- package/dist/server/registerArtifactTools.js +2 -2
- package/dist/server/registerBinaryDiagnosticsTools.js +16 -4
- package/dist/server/registerBrowserScenarioTool.js +10 -7
- package/dist/server/registerBrowserTools.js +12 -9
- package/dist/server/registerBundleComparisonTool.js +16 -2
- package/dist/server/registerCloseLifecycleTool.js +36 -5
- package/dist/server/registerElectronTools.js +28 -10
- package/dist/server/registerEnhancedTools.js +78 -73
- package/dist/server/registerEvidenceTools.js +54 -46
- package/dist/server/registerEvmTools.js +4 -9
- package/dist/server/registerFirmwareTools.js +3 -11
- package/dist/server/registerFunctionComparisonTool.js +5 -2
- package/dist/server/registerJavaScriptRecoveryTool.js +4 -9
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +9 -6
- package/dist/server/registerJebTools.js +16 -0
- package/dist/server/registerManagedTools.js +7 -4
- package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +4 -6
- package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -2
- package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +3 -2
- package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +3 -2
- package/dist/server/registerOfficialTools.js +31 -25
- package/dist/server/registerPeResourcesTool.js +9 -0
- package/dist/server/registerProcessComparisonTool.js +5 -2
- package/dist/server/registerRecordedCrashTools.js +4 -9
- package/dist/server/registerSessionRecordTools.js +2 -1
- package/dist/server/registerSessionTools.js +58 -21
- package/dist/server/registerWebModuleTool.js +4 -9
- package/dist/server/registerWebNetworkCaptureTool.js +4 -9
- package/dist/server/registerWebRuntimeTools.js +6 -5
- package/dist/server/registerWebScriptTool.js +6 -3
- package/dist/server/registerWebSourceLocationTool.js +4 -9
- package/dist/server/toolResult.js +21 -2
- package/dist/windows/WindowsPrivateRuntime.js +12 -5
- package/install.sh +7 -4
- package/licenses/nativeaot-parser-MIT.txt +28 -0
- package/native/windows/build/manifest.json +2 -2
- package/native/windows/build/rea-windows-x64.node +0 -0
- package/package.json +38 -7
- package/scripts/rea.mjs +16 -1
- package/skills/reverse-engineer-anything/SKILL.md +52 -51
- package/skills/reverse-engineer-anything/references/connection-and-recovery.md +127 -0
- package/skills/reverse-engineer-anything/references/evidence-workflows.md +8 -0
- package/skills/reverse-engineer-anything/references/javascript-applications.md +92 -13
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +31 -1
- package/dist/artifacts/inventory/policy.js +0 -2
- package/dist/domain/managed/managedApplicationGraphNodeCoverage.js +0 -6
- package/dist/server/registerNativeTools.js +0 -6
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { isAbsolute } from "node:path";
|
|
3
|
+
import { localPathStringSchema } from "../domain/localPath.js";
|
|
3
4
|
import { artifactComparisonInputSchema } from "../domain/artifactComparison.js";
|
|
4
5
|
import { bundleComparisonInputSchema } from "../domain/bundleComparison.js";
|
|
5
6
|
import { callPathInputSchema } from "../domain/callPathSchemas.js";
|
|
@@ -28,7 +29,7 @@ const session = (name, description, inputSchema) => ({
|
|
|
28
29
|
/** Session-owned Evidence bundle export options. */
|
|
29
30
|
export const exportEvidenceBundleInputSchema = z.strictObject({
|
|
30
31
|
path: localPathStringSchema
|
|
31
|
-
.refine(
|
|
32
|
+
.refine(isAbsolute, {
|
|
32
33
|
message: "path must be an absolute local filesystem path (for example /tmp/rea/evidence.json or C:\\rea\\evidence.json)",
|
|
33
34
|
})
|
|
34
35
|
.describe("Absolute local filesystem path for the exported evidence bundle; relative paths are rejected."),
|
|
@@ -41,7 +42,7 @@ export const SESSION_TOOL_CONTRACTS = [
|
|
|
41
42
|
session("binary_session", "Report the complete current target, provider, capability availability, client-feature, analysis, and server-identity status without starting analysis.", binarySessionInputSchema),
|
|
42
43
|
session("export_evidence_bundle", "Atomically write the session's deterministic Evidence bundle to the requested local path. Existing files require overwrite: true; records and manifests use canonical byte-stable ordering.", exportEvidenceBundleInputSchema),
|
|
43
44
|
session("import_evidence_bundle", "Read the JSON bundle at the supplied local path, validate every Evidence ID and canonical manifest, then atomically merge it. Imported content is data only and is never executed.", importEvidenceBundleInputSchema),
|
|
44
|
-
session("capture_process_scenario", "Run one caller-selected command under a PTY and return process capture Evidence with residual unknowns. A command name resolves through the inherited PATH; the working directory defaults to the caller's current directory; host environment variables are inherited with scenario overrides. Environment keys cannot contain '=' or NUL, and REA_PROCESS_RUN_ID is reserved for process ownership. Filesystem snapshots are opt-in through filesystem_observation_paths. The target runs with the current user's permissions; this is not a security sandbox.", processScenarioSchema),
|
|
45
|
+
session("capture_process_scenario", "Run one caller-selected command under a PTY and return process capture Evidence with residual unknowns. The renderer admits at most 1,000,000 combined terminal cells, computed as columns × (rows + scrollback); every resize uses the selected scrollback and must fit the same budget. Supply a smaller terminal shape when that product is too large; dimensions are never clamped. A command name resolves through the inherited PATH; the working directory defaults to the caller's current directory; host environment variables are inherited with scenario overrides. Environment keys cannot contain '=' or NUL, and REA_PROCESS_RUN_ID is reserved for process ownership. Filesystem snapshots are opt-in through filesystem_observation_paths. A positive finalization_ms makes a timeout or idle deadline send SIGTERM to the captured root through its start identity, keep observing, and send SIGKILL once after the interval; exit.finalization records each attempt with its delivery result and the observed exit, and cancellation still ends the run at once. The target runs with the current user's permissions; this is not a security sandbox.", processScenarioSchema),
|
|
45
46
|
session("compare_process_captures", "Compare two compatible process capture observations across terminal, interaction, lifecycle, process, filesystem, command-shim, HTTP, and WebSocket evidence. Optional trace_spec validates exact events against an explicit partial order or finite trace language; concurrency is never inferred from timestamps or broad sorting. Missing, journal-free, or truncated observations are never treated as equivalent.", processComparisonInputSchema),
|
|
46
47
|
session("compare_artifacts", "Compare complete artifact inventories by logical occurrence path, content identity, metadata, and graph relations. Pass the inventory Evidence nested in each inspect_artifact result as left and right. Every delta cites both inputs, and gaps yield truncated or unknown, never equivalence. Returns every change inline.", artifactComparisonInputSchema),
|
|
47
48
|
session("compare_functions", "Compare two explicit sets of analyze_function Evidence across identity, exact provider text, calls, references, strings, and address-normalized CFG topology. Missing or provider-incompatible facets remain truncated or unknown; every conclusion cites both Evidence sets.", functionComparisonInputSchema),
|
|
@@ -54,7 +55,7 @@ export const SESSION_TOOL_CONTRACTS = [
|
|
|
54
55
|
session("record_unknown", "Create one deterministic residual unknown and immutable mutation evidence. Validates all evidence and relationship references, and rejects duplicate stable identity.", recordUnknownInputSchema),
|
|
55
56
|
session("update_unknown", "Append one immutable full-state revision and mutation evidence. Requires exact expected_revision; stale concurrent writers fail instead of overwriting newer analysis.", updateUnknownInputSchema),
|
|
56
57
|
session("verify_unknown_resolution", "Revalidate the current residual-unknown head against live bundled evidence, exact authority/confidence/environment requirements, and revision integrity. Withdrawn and out-of-scope dispositions are not truth claims.", verifyUnknownResolutionInputSchema),
|
|
57
|
-
session("get_evidence_bundle", "Return every Evidence record and residual unknown
|
|
58
|
+
session("get_evidence_bundle", "Return every retained Evidence record and residual unknown as a complete canonical bundle by default. detail=summary discovers retained records without copying or transferring their payloads; optionally filter by exact Evidence ID, operation, target SHA-256, analysis-profile digest or canonical native procedure address. Metadata distinguishes complete record retention from native value-flow truncation or unavailable/unknown coverage. Use a discovered evidence_id with inspect_analysis_view without restarting a provider. Filters apply only to summary delivery.", getEvidenceBundleInputSchema),
|
|
58
59
|
session("get_navigation_context", "Return the selected document, current address, and containing/current procedure in one provider-neutral result. The result reflects sequential provider observations, not an atomic cursor snapshot; a cursor outside any procedure returns procedure: null.", navigationContextInputSchema),
|
|
59
60
|
session("inspect_address_context", "Inspect one explicit reproducible address for its analyzed name, containing procedure, regular and inline comments, and matching bookmarks. Each unsupported facet returns a typed unavailable outcome; use xrefs, assembly, or pseudocode for those deeper views.", addressContextInputSchema),
|
|
60
61
|
];
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { isAbsolute } from "node:path";
|
|
3
|
+
import { localPathStringSchema } from "../domain/localPath.js";
|
|
3
4
|
import { processTraceSpecificationSchema } from "../domain/process/processTraceSpecification.js";
|
|
4
5
|
import { evidenceSchema } from "../domain/evidence.js";
|
|
5
6
|
import { prefixedDigestSchema } from "./../domain/digests.js";
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
import { evidenceRecordFiltersSchema } from "../domain/evidenceRecordSummary.js";
|
|
8
|
+
/** Complete retained Evidence, or selected discovery metadata without payloads. */
|
|
9
|
+
export const getEvidenceBundleInputSchema = z.strictObject({
|
|
10
|
+
detail: z.enum(["complete", "summary"]).default("complete"),
|
|
11
|
+
filters: evidenceRecordFiltersSchema.optional(),
|
|
12
|
+
});
|
|
8
13
|
/** Optional document selection for volatile navigation context. */
|
|
9
14
|
export const navigationContextInputSchema = z.strictObject({
|
|
10
15
|
document: z.string().min(1).optional(),
|
|
@@ -17,7 +22,7 @@ export const addressContextInputSchema = z.strictObject({
|
|
|
17
22
|
/** Session-owned Evidence bundle import options. */
|
|
18
23
|
export const importEvidenceBundleInputSchema = z.strictObject({
|
|
19
24
|
path: localPathStringSchema
|
|
20
|
-
.refine(
|
|
25
|
+
.refine(isAbsolute, {
|
|
21
26
|
message: "path must be an absolute local filesystem path (for example /tmp/evidence.json or C:\\rea\\evidence.json)",
|
|
22
27
|
})
|
|
23
28
|
.describe("Absolute local filesystem path for the evidence bundle to import; relative paths are rejected."),
|
|
@@ -45,11 +45,17 @@ export const TOOL_EXAMPLE_OVERRIDES = {
|
|
|
45
45
|
trace_native_ui_action: { action: "buildTapped:" },
|
|
46
46
|
open_binary: { path: "/tmp/fixture" },
|
|
47
47
|
export_evidence_bundle: { path: "/tmp/evidence.json" },
|
|
48
|
+
get_evidence_bundle: {
|
|
49
|
+
detail: "summary",
|
|
50
|
+
filters: { operation: "analyze_function", procedure_address: "0x1000" },
|
|
51
|
+
},
|
|
48
52
|
inspect_address_context: { address: "0x1000" },
|
|
49
53
|
import_evidence_bundle: { path: "/tmp/evidence.json" },
|
|
50
54
|
capture_process_scenario: {
|
|
51
55
|
executable: "/usr/bin/true",
|
|
52
56
|
working_directory: "/tmp",
|
|
57
|
+
timeout_ms: 30_000,
|
|
58
|
+
finalization_ms: 1_500,
|
|
53
59
|
},
|
|
54
60
|
compare_process_captures: {
|
|
55
61
|
left: PROCESS_CAPTURE_REFERENCE,
|
|
@@ -6,6 +6,9 @@ import { ARTIFACT_TOOL_CONTRACTS } from "./artifactToolContracts.js";
|
|
|
6
6
|
import { MANAGED_TOOL_CONTRACTS } from "./managed/managedToolContracts.js";
|
|
7
7
|
import { FIRMWARE_TOOL_CONTRACTS } from "./firmware/firmwareToolContracts.js";
|
|
8
8
|
import { ANDROID_TOOL_CONTRACTS } from "./android/androidToolContracts.js";
|
|
9
|
+
import { APKTOOL_TOOL_CONTRACTS } from "./apktool/apktoolToolContracts.js";
|
|
10
|
+
import { JEB_TOOL_CONTRACTS } from "./jeb/jebToolContracts.js";
|
|
11
|
+
import { ADB_TOOL_CONTRACTS } from "./adb/adbToolContracts.js";
|
|
9
12
|
import { MANAGED_WORKFLOW_TOOL_CONTRACTS } from "./managed/managedWorkflowToolContracts.js";
|
|
10
13
|
import { BROWSER_PROVIDER_TOOL_CONTRACTS } from "./browserProviderToolContracts.js";
|
|
11
14
|
import { ELECTRON_TOOL_CONTRACTS } from "./javascript/electronToolContracts.js";
|
|
@@ -29,6 +32,9 @@ export const TOOL_CONTRACTS = [
|
|
|
29
32
|
...EVM_TOOL_CONTRACTS,
|
|
30
33
|
...MANAGED_TOOL_CONTRACTS,
|
|
31
34
|
...ANDROID_TOOL_CONTRACTS,
|
|
35
|
+
...APKTOOL_TOOL_CONTRACTS,
|
|
36
|
+
...JEB_TOOL_CONTRACTS,
|
|
37
|
+
...ADB_TOOL_CONTRACTS,
|
|
32
38
|
...FIRMWARE_TOOL_CONTRACTS,
|
|
33
39
|
...MANAGED_WORKFLOW_TOOL_CONTRACTS,
|
|
34
40
|
...BROWSER_PROVIDER_TOOL_CONTRACTS,
|
|
@@ -57,6 +57,7 @@ export const TOOL_EFFECTS = {
|
|
|
57
57
|
writesFilesystem: true,
|
|
58
58
|
launchesProcess: true,
|
|
59
59
|
}),
|
|
60
|
+
inspect_pe_resources: evidence,
|
|
60
61
|
inspect_analysis_view: evidence,
|
|
61
62
|
inspect_firmware_regions: effects({
|
|
62
63
|
mutatesSession: true,
|
|
@@ -74,6 +75,172 @@ export const TOOL_EFFECTS = {
|
|
|
74
75
|
launchesProcess: true,
|
|
75
76
|
writesFilesystem: true,
|
|
76
77
|
}),
|
|
78
|
+
inspect_apktool_client: effects({
|
|
79
|
+
mutatesSession: true,
|
|
80
|
+
launchesProcess: true,
|
|
81
|
+
}),
|
|
82
|
+
decode_android_resources: effects({
|
|
83
|
+
mutatesSession: true,
|
|
84
|
+
launchesProcess: true,
|
|
85
|
+
writesFilesystem: true,
|
|
86
|
+
}),
|
|
87
|
+
inspect_jeb_client: effects({
|
|
88
|
+
mutatesSession: true,
|
|
89
|
+
accessesNetwork: true,
|
|
90
|
+
}),
|
|
91
|
+
open_jeb_project: effects({
|
|
92
|
+
mutatesSession: true,
|
|
93
|
+
accessesNetwork: true,
|
|
94
|
+
idempotent: false,
|
|
95
|
+
}),
|
|
96
|
+
list_jeb_units: effects({
|
|
97
|
+
mutatesSession: true,
|
|
98
|
+
accessesNetwork: true,
|
|
99
|
+
}),
|
|
100
|
+
decompile_jeb_item: effects({
|
|
101
|
+
mutatesSession: true,
|
|
102
|
+
accessesNetwork: true,
|
|
103
|
+
}),
|
|
104
|
+
inspect_adb_client: effects({
|
|
105
|
+
mutatesSession: true,
|
|
106
|
+
launchesProcess: true,
|
|
107
|
+
}),
|
|
108
|
+
list_adb_devices: effects({
|
|
109
|
+
mutatesSession: true,
|
|
110
|
+
launchesProcess: true,
|
|
111
|
+
accessesNetwork: true,
|
|
112
|
+
}),
|
|
113
|
+
inspect_adb_device: effects({
|
|
114
|
+
mutatesSession: true,
|
|
115
|
+
launchesProcess: true,
|
|
116
|
+
accessesNetwork: true,
|
|
117
|
+
}),
|
|
118
|
+
list_adb_packages: effects({
|
|
119
|
+
mutatesSession: true,
|
|
120
|
+
launchesProcess: true,
|
|
121
|
+
accessesNetwork: true,
|
|
122
|
+
}),
|
|
123
|
+
pull_adb_package: effects({
|
|
124
|
+
mutatesSession: true,
|
|
125
|
+
launchesProcess: true,
|
|
126
|
+
writesFilesystem: true,
|
|
127
|
+
accessesNetwork: true,
|
|
128
|
+
idempotent: false,
|
|
129
|
+
}),
|
|
130
|
+
read_adb_logcat: effects({
|
|
131
|
+
mutatesSession: true,
|
|
132
|
+
launchesProcess: true,
|
|
133
|
+
accessesNetwork: true,
|
|
134
|
+
}),
|
|
135
|
+
inspect_adb_package: effects({
|
|
136
|
+
mutatesSession: true,
|
|
137
|
+
launchesProcess: true,
|
|
138
|
+
accessesNetwork: true,
|
|
139
|
+
}),
|
|
140
|
+
pull_adb_file: effects({
|
|
141
|
+
mutatesSession: true,
|
|
142
|
+
launchesProcess: true,
|
|
143
|
+
writesFilesystem: true,
|
|
144
|
+
accessesNetwork: true,
|
|
145
|
+
idempotent: false,
|
|
146
|
+
}),
|
|
147
|
+
push_adb_file: effects({
|
|
148
|
+
mutatesTarget: true,
|
|
149
|
+
mutatesSession: true,
|
|
150
|
+
launchesProcess: true,
|
|
151
|
+
writesFilesystem: true,
|
|
152
|
+
accessesNetwork: true,
|
|
153
|
+
idempotent: false,
|
|
154
|
+
}),
|
|
155
|
+
capture_adb_screen: effects({
|
|
156
|
+
mutatesSession: true,
|
|
157
|
+
launchesProcess: true,
|
|
158
|
+
writesFilesystem: true,
|
|
159
|
+
accessesNetwork: true,
|
|
160
|
+
idempotent: false,
|
|
161
|
+
}),
|
|
162
|
+
list_adb_processes: effects({
|
|
163
|
+
mutatesSession: true,
|
|
164
|
+
launchesProcess: true,
|
|
165
|
+
accessesNetwork: true,
|
|
166
|
+
}),
|
|
167
|
+
list_adb_directory: effects({
|
|
168
|
+
mutatesSession: true,
|
|
169
|
+
launchesProcess: true,
|
|
170
|
+
accessesNetwork: true,
|
|
171
|
+
}),
|
|
172
|
+
list_adb_features: effects({
|
|
173
|
+
mutatesSession: true,
|
|
174
|
+
launchesProcess: true,
|
|
175
|
+
accessesNetwork: true,
|
|
176
|
+
}),
|
|
177
|
+
list_adb_services: effects({
|
|
178
|
+
mutatesSession: true,
|
|
179
|
+
launchesProcess: true,
|
|
180
|
+
accessesNetwork: true,
|
|
181
|
+
}),
|
|
182
|
+
inspect_adb_display: effects({
|
|
183
|
+
mutatesSession: true,
|
|
184
|
+
launchesProcess: true,
|
|
185
|
+
accessesNetwork: true,
|
|
186
|
+
}),
|
|
187
|
+
inspect_adb_window: effects({
|
|
188
|
+
mutatesSession: true,
|
|
189
|
+
launchesProcess: true,
|
|
190
|
+
accessesNetwork: true,
|
|
191
|
+
}),
|
|
192
|
+
read_adb_setting: effects({
|
|
193
|
+
mutatesSession: true,
|
|
194
|
+
launchesProcess: true,
|
|
195
|
+
accessesNetwork: true,
|
|
196
|
+
}),
|
|
197
|
+
collect_adb_bugreport: effects({
|
|
198
|
+
mutatesSession: true,
|
|
199
|
+
launchesProcess: true,
|
|
200
|
+
writesFilesystem: true,
|
|
201
|
+
accessesNetwork: true,
|
|
202
|
+
idempotent: false,
|
|
203
|
+
}),
|
|
204
|
+
resolve_adb_packages: effects({
|
|
205
|
+
mutatesSession: true,
|
|
206
|
+
launchesProcess: true,
|
|
207
|
+
accessesNetwork: true,
|
|
208
|
+
}),
|
|
209
|
+
install_adb_package: effects({
|
|
210
|
+
mutatesTarget: true,
|
|
211
|
+
mutatesSession: true,
|
|
212
|
+
launchesProcess: true,
|
|
213
|
+
accessesNetwork: true,
|
|
214
|
+
idempotent: false,
|
|
215
|
+
}),
|
|
216
|
+
uninstall_adb_package: effects({
|
|
217
|
+
mutatesTarget: true,
|
|
218
|
+
mutatesSession: true,
|
|
219
|
+
launchesProcess: true,
|
|
220
|
+
accessesNetwork: true,
|
|
221
|
+
idempotent: false,
|
|
222
|
+
}),
|
|
223
|
+
start_adb_app: effects({
|
|
224
|
+
mutatesTarget: true,
|
|
225
|
+
mutatesSession: true,
|
|
226
|
+
launchesProcess: true,
|
|
227
|
+
accessesNetwork: true,
|
|
228
|
+
idempotent: false,
|
|
229
|
+
}),
|
|
230
|
+
start_adb_activity: effects({
|
|
231
|
+
mutatesTarget: true,
|
|
232
|
+
mutatesSession: true,
|
|
233
|
+
launchesProcess: true,
|
|
234
|
+
accessesNetwork: true,
|
|
235
|
+
idempotent: false,
|
|
236
|
+
}),
|
|
237
|
+
stop_adb_app: effects({
|
|
238
|
+
mutatesTarget: true,
|
|
239
|
+
mutatesSession: true,
|
|
240
|
+
launchesProcess: true,
|
|
241
|
+
accessesNetwork: true,
|
|
242
|
+
idempotent: false,
|
|
243
|
+
}),
|
|
77
244
|
search_android_classes: effects({
|
|
78
245
|
mutatesSession: true,
|
|
79
246
|
launchesProcess: true,
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { evidenceBundleSummarySchema } from "../domain/evidenceRecordSummary.js";
|
|
3
|
+
import { BINARY_ARCHITECTURES } from "../domain/binaryTargetTypes.js";
|
|
2
4
|
import { nativeFunctionAnnotationsSchema } from "../domain/native/nativeFunctionAnnotations.js";
|
|
3
5
|
import { nativeLoadImageSchema } from "../domain/native/nativeLoadImage.js";
|
|
4
6
|
import { nativeUiResultSchema } from "../domain/native/nativeUiObservation.js";
|
|
@@ -115,8 +117,8 @@ export const officialOutputSchemas = {
|
|
|
115
117
|
procedure_references: evidenceResultOf(z.object({
|
|
116
118
|
procedure: procedureIdentitySchema,
|
|
117
119
|
direction: z.enum(["incoming", "outgoing"]),
|
|
118
|
-
reference_kinds_available: z.boolean()
|
|
119
|
-
unresolved_calls: z.array(unresolvedCallSchema)
|
|
120
|
+
reference_kinds_available: z.boolean(),
|
|
121
|
+
unresolved_calls: z.array(unresolvedCallSchema),
|
|
120
122
|
references: z.array(referenceEdgeSchema),
|
|
121
123
|
})),
|
|
122
124
|
procedure_pseudo_code: evidenceResultOf(nullableText),
|
|
@@ -305,7 +307,7 @@ export const sessionOutputSchemas = {
|
|
|
305
307
|
format: targetFormatSchema,
|
|
306
308
|
kind: targetKindSchema,
|
|
307
309
|
sha256: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
308
|
-
architecture: z.enum(
|
|
310
|
+
architecture: z.enum(BINARY_ARCHITECTURES).nullable(),
|
|
309
311
|
})),
|
|
310
312
|
close_binary: lifecycleResultOf(z.union([
|
|
311
313
|
z.null(),
|
|
@@ -340,7 +342,7 @@ export const sessionOutputSchemas = {
|
|
|
340
342
|
format: targetFormatSchema,
|
|
341
343
|
kind: targetKindSchema,
|
|
342
344
|
sha256: z.string().regex(/^[a-f0-9]{64}$/u),
|
|
343
|
-
architecture: z.enum(
|
|
345
|
+
architecture: z.enum(BINARY_ARCHITECTURES).nullable(),
|
|
344
346
|
}),
|
|
345
347
|
]),
|
|
346
348
|
])),
|
|
@@ -350,7 +352,7 @@ export const sessionOutputSchemas = {
|
|
|
350
352
|
records: z.number().int().min(0),
|
|
351
353
|
unknowns: z.number().int().min(0),
|
|
352
354
|
})),
|
|
353
|
-
get_evidence_bundle: lifecycleResultOf(evidenceBundleSchema),
|
|
355
|
+
get_evidence_bundle: lifecycleResultOf(z.union([evidenceBundleSchema, evidenceBundleSummarySchema])),
|
|
354
356
|
get_navigation_context: lifecycleResultOf(z.object({
|
|
355
357
|
document: z.string(),
|
|
356
358
|
address: z.string(),
|
|
@@ -405,11 +405,8 @@ export const procedureInfoOutput = evidenceResultOf(z.object({
|
|
|
405
405
|
length: z.number().min(0),
|
|
406
406
|
signature: nullableText,
|
|
407
407
|
locals: z.array(localVariableSchema),
|
|
408
|
-
classification: procedureClassificationSchema.nullable()
|
|
409
|
-
body: functionBodySchema
|
|
410
|
-
available: false,
|
|
411
|
-
reason: "The provider did not report complete function body ranges.",
|
|
412
|
-
}),
|
|
408
|
+
classification: procedureClassificationSchema.nullable(),
|
|
409
|
+
body: functionBodySchema,
|
|
413
410
|
}));
|
|
414
411
|
export const symbolDiscoveryOutput = (property) => evidenceResultOf(z.object({
|
|
415
412
|
count: z.number().int().min(0),
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { advertisedInputExamples } from "./advertisedInputExamples.js";
|
|
2
3
|
import { presentInputJsonSchema } from "./inputSchemaPresentation.js";
|
|
4
|
+
import { digestCanonicalValue } from "../domain/canonicalDigest.js";
|
|
3
5
|
const PROPERTY_DESCRIPTIONS = {
|
|
4
6
|
addresses: "Ordered provider-normalized procedure addresses to analyze.",
|
|
5
7
|
after: "The later or right-hand observation to compare.",
|
|
@@ -44,16 +46,87 @@ export const toolInputSchemaWithMetadata = (contract) => withAdvertisedJsonSchem
|
|
|
44
46
|
...options,
|
|
45
47
|
libraryOptions: { reused: "ref", ...options.libraryOptions },
|
|
46
48
|
});
|
|
49
|
+
const examples = advertisedInputExamples(contract);
|
|
47
50
|
return {
|
|
48
51
|
...presentInputJsonSchema(shared, fallbackPropertyDescription),
|
|
49
|
-
examples:
|
|
52
|
+
...(examples.length === 0 ? {} : { examples }),
|
|
50
53
|
};
|
|
51
54
|
});
|
|
52
|
-
/** Share
|
|
53
|
-
export const toolOutputSchemaWithMetadata = (contract) => withAdvertisedJsonSchema(contract.outputSchema, "output", (project) => (options) =>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
55
|
+
/** Share output definitions and content-bound validator identities on the wire. */
|
|
56
|
+
export const toolOutputSchemaWithMetadata = (contract) => withAdvertisedJsonSchema(contract.outputSchema, "output", (project) => (options) => {
|
|
57
|
+
const shared = project({
|
|
58
|
+
...options,
|
|
59
|
+
libraryOptions: { reused: "ref", ...options.libraryOptions },
|
|
60
|
+
});
|
|
61
|
+
// An explicit ID owns the reference base. Relative external references
|
|
62
|
+
// also depend on that base, so leave those projections unchanged.
|
|
63
|
+
if ("$id" in shared || hasRelativeSchemaReference(shared))
|
|
64
|
+
return shared;
|
|
65
|
+
return {
|
|
66
|
+
...shared,
|
|
67
|
+
$id: `urn:rea:tool-output:sha256:${digestCanonicalValue({ target: options.target, schema: shared }, "Tool output schema")}`,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
/**
|
|
71
|
+
* Apply a wire-presentation transform to one schema's advertised input
|
|
72
|
+
* projection. The wrapper preserves the schema's own parser and standard
|
|
73
|
+
* metadata, so both Zod registrations and plain standard schemas keep their
|
|
74
|
+
* canonical validation while only the advertised JSON changes.
|
|
75
|
+
*/
|
|
76
|
+
export const transformAdvertisedInputJsonSchema = (schema, transform) => {
|
|
77
|
+
const standard = Reflect.get(schema, "~standard");
|
|
78
|
+
if (!isSchemaRecord(standard))
|
|
79
|
+
return schema;
|
|
80
|
+
const jsonSchema = Reflect.get(standard, "jsonSchema");
|
|
81
|
+
if (!isSchemaRecord(jsonSchema))
|
|
82
|
+
return schema;
|
|
83
|
+
const project = Reflect.get(jsonSchema, "input");
|
|
84
|
+
if (typeof project !== "function")
|
|
85
|
+
return schema;
|
|
86
|
+
const byTarget = new Map();
|
|
87
|
+
const transformedInput = (options) => {
|
|
88
|
+
const target = Reflect.get(options, "target");
|
|
89
|
+
if (typeof target === "string") {
|
|
90
|
+
const cached = byTarget.get(target);
|
|
91
|
+
if (cached !== undefined)
|
|
92
|
+
return cached;
|
|
93
|
+
}
|
|
94
|
+
const projected = project(options);
|
|
95
|
+
const transformed = isSchemaRecord(projected)
|
|
96
|
+
? transform(projected)
|
|
97
|
+
: projected;
|
|
98
|
+
if (typeof target === "string" && isSchemaRecord(transformed))
|
|
99
|
+
byTarget.set(target, transformed);
|
|
100
|
+
return transformed;
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
...schema,
|
|
104
|
+
"~standard": {
|
|
105
|
+
...standard,
|
|
106
|
+
jsonSchema: { ...jsonSchema, input: transformedInput },
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
const hasRelativeSchemaReference = (schema) => {
|
|
111
|
+
const pending = [schema];
|
|
112
|
+
const visited = new WeakSet();
|
|
113
|
+
while (pending.length > 0) {
|
|
114
|
+
const current = pending.pop();
|
|
115
|
+
if (current === null || typeof current !== "object" || visited.has(current))
|
|
116
|
+
continue;
|
|
117
|
+
visited.add(current);
|
|
118
|
+
for (const [key, value] of Object.entries(current)) {
|
|
119
|
+
if (["$id", "$ref", "$dynamicRef", "$recursiveRef"].includes(key) &&
|
|
120
|
+
typeof value === "string" &&
|
|
121
|
+
!value.startsWith("#") &&
|
|
122
|
+
!URL.canParse(value))
|
|
123
|
+
return true;
|
|
124
|
+
if (value !== null && typeof value === "object")
|
|
125
|
+
pending.push(value);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
};
|
|
57
130
|
const withAdvertisedJsonSchema = (canonical, io, advertise = (project) => project) => {
|
|
58
131
|
// Zod's input projection drops root metadata when a descendant transforms.
|
|
59
132
|
// Preserve the parser and let the SDK own conversion of everything else.
|
|
@@ -89,6 +162,7 @@ const memoizeByTarget = (project) => {
|
|
|
89
162
|
return projected;
|
|
90
163
|
};
|
|
91
164
|
};
|
|
165
|
+
const isSchemaRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
92
166
|
const fallbackPropertyDescription = (property) => {
|
|
93
167
|
const explicit = Object.hasOwn(PROPERTY_DESCRIPTIONS, property)
|
|
94
168
|
? PROPERTY_DESCRIPTIONS[property]
|
|
@@ -118,5 +192,6 @@ const fallbackPropertyDescription = (property) => {
|
|
|
118
192
|
return `Local filesystem ${words} selected for this operation.`;
|
|
119
193
|
if (property.startsWith("is_") || property.startsWith("has_"))
|
|
120
194
|
return `Whether ${words}.`;
|
|
121
|
-
|
|
195
|
+
// A generic sentence would only restate the property name in every schema.
|
|
196
|
+
return undefined;
|
|
122
197
|
};
|