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.
Files changed (590) hide show
  1. package/README.md +72 -95
  2. package/bridge/ghidra/ReaGhidraBridge.java +609 -841
  3. package/bridge/hopper_bridge.py +99 -344
  4. package/dist/application/AbortablePromise.js +6 -3
  5. package/dist/application/AnalysisSnapshotCache.js +0 -1
  6. package/dist/application/AnalysisSnapshotFiles.js +7 -7
  7. package/dist/application/AndroidApplicationService.js +1 -1
  8. package/dist/application/AppleApplicationService.js +1 -1
  9. package/dist/application/ArtifactExtraction.js +35 -54
  10. package/dist/application/ArtifactExtractionDestination.js +17 -0
  11. package/dist/application/ArtifactGraphConstruction.js +2 -17
  12. package/dist/application/ArtifactInventory/classify.js +2 -6
  13. package/dist/application/ArtifactInventory/hash.js +2 -20
  14. package/dist/application/ArtifactInventory/scanCanonical.js +8 -12
  15. package/dist/application/ArtifactInventory/scanReader.js +69 -51
  16. package/dist/application/ArtifactInventory.js +6 -14
  17. package/dist/application/AuthorizedArtifactInventory.js +3 -13
  18. package/dist/application/BinarySession.js +41 -13
  19. package/dist/application/BinarySessionComposition.js +0 -11
  20. package/dist/application/BinarySessionOpen.js +2 -1
  21. package/dist/application/BinarySessionRecords.js +5 -93
  22. package/dist/application/BinarySessionStatus.js +5 -16
  23. package/dist/application/BinaryTargetResolver.js +216 -0
  24. package/dist/application/BrowserEvidence.js +42 -58
  25. package/dist/application/BrowserObservationService.js +3 -6
  26. package/dist/application/BrowserScenarioCaptureService.js +3 -6
  27. package/dist/application/BrowserScenarioEvidence.js +3 -3
  28. package/dist/application/CallPathTracing.js +2 -36
  29. package/dist/application/CapabilityInventory.js +10 -15
  30. package/dist/application/ClientConfigurationDocument.js +27 -0
  31. package/dist/application/ClientRegistrationStatus.js +16 -13
  32. package/dist/application/CommandShimReplay.js +14 -1
  33. package/dist/application/DirectAnalysis.js +22 -46
  34. package/dist/application/DirectAnalysisStatus.js +5 -61
  35. package/dist/application/Doctor.js +11 -32
  36. package/dist/application/DoctorDiagnostics.js +1 -2
  37. package/dist/application/DoctorScope.js +1 -1
  38. package/dist/application/ElectronActiveEvidence.js +3 -8
  39. package/dist/application/ElectronActiveObservationService.js +3 -6
  40. package/dist/application/ElectronBoundaryAnalysis.js +7 -8
  41. package/dist/application/ElectronBoundaryGraphContext.js +1 -1
  42. package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
  43. package/dist/application/ElectronBoundaryGraphNative.js +1 -2
  44. package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
  45. package/dist/application/ElectronEvidence.js +4 -7
  46. package/dist/application/ElectronObservationService.js +5 -9
  47. package/dist/application/EnhancedLiteralTracing.js +42 -65
  48. package/dist/application/EnhancedTools.js +76 -44
  49. package/dist/application/EvidenceBundleCommands.js +11 -11
  50. package/dist/application/EvidenceBundleFiles.js +9 -15
  51. package/dist/application/EvidenceLedger.js +6 -41
  52. package/dist/application/FilesystemSnapshot.js +2 -3
  53. package/dist/application/InterfaceBuilderAnalysis.js +266 -0
  54. package/dist/application/InventoryProjectionEvidence.js +4 -2
  55. package/dist/application/InvestigationProviders.js +1 -1
  56. package/dist/application/JavaScriptApplicationEvidence.js +2 -5
  57. package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
  58. package/dist/application/JavaScriptApplicationService.js +6 -29
  59. package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
  60. package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
  61. package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
  62. package/dist/application/JavaScriptArtifactFiles.js +67 -107
  63. package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
  64. package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
  65. package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
  66. package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
  67. package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
  68. package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
  69. package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
  70. package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
  71. package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
  72. package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
  73. package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
  74. package/dist/application/JavaScriptJsonModules.js +2 -2
  75. package/dist/application/JavaScriptModuleRelationships.js +22 -27
  76. package/dist/application/JavaScriptReplayPlanning.js +9 -3
  77. package/dist/application/JavaScriptReplayService.js +6 -32
  78. package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
  79. package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
  80. package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
  81. package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
  82. package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
  83. package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
  84. package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
  85. package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
  86. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
  87. package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
  88. package/dist/application/JavaScriptSemanticTraceService.js +1 -10
  89. package/dist/application/JsonFiles.js +79 -0
  90. package/dist/application/LinuxHopper.js +11 -9
  91. package/dist/application/LoopbackReplay.js +26 -23
  92. package/dist/application/LoopbackReplayRecorder.js +29 -1
  93. package/dist/application/ManagedApplicationGraphService.js +1 -2
  94. package/dist/application/ManagedMemberComparisonService.js +11 -41
  95. package/dist/application/ManagedNativeVerificationService.js +1 -2
  96. package/dist/application/ManagedReconstructionService.js +1 -1
  97. package/dist/application/ManagedRuntimeCorrelationService.js +5 -8
  98. package/dist/application/NativeApiInspection.js +2 -7
  99. package/dist/application/NativeUiActionTrace.js +394 -0
  100. package/dist/application/NodeRuntimeCharacterizationService.js +3 -7
  101. package/dist/application/PermissionAuthority.js +15 -7
  102. package/dist/application/PermissionFailure.js +5 -0
  103. package/dist/application/ProcessCaptureAuthority.js +5 -7
  104. package/dist/application/ProcessCaptureJournal.js +3 -2
  105. package/dist/application/ProcessCaptureLifecycle.js +5 -12
  106. package/dist/application/ProcessCheckpoints.js +29 -11
  107. package/dist/application/ProcessCli.js +6 -16
  108. package/dist/application/ProcessEvidence.js +5 -7
  109. package/dist/application/ProcessHarness.js +52 -17
  110. package/dist/application/ProcessReactiveCoordinator.js +2 -4
  111. package/dist/application/ProcessReactiveEffects.js +9 -3
  112. package/dist/application/ProcessReactiveHarness.js +13 -7
  113. package/dist/application/ProcessSampling.js +2 -4
  114. package/dist/application/ProcessTimer.js +39 -0
  115. package/dist/application/ProjectPermissionStore.js +39 -96
  116. package/dist/application/RealHopperAssertions.js +20 -66
  117. package/dist/application/ReconstructionCoverageService.js +12 -58
  118. package/dist/application/ReconstructionObligationAuthority.js +2 -2
  119. package/dist/application/ReconstructionObligationCandidates.js +4 -4
  120. package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
  121. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
  122. package/dist/application/ReconstructionObligationLedgerService.js +19 -38
  123. package/dist/application/ReferenceSourceImport.js +19 -45
  124. package/dist/application/ReferenceSourceImportEntries.js +2 -4
  125. package/dist/application/ReferenceSourceImportPolicy.js +5 -32
  126. package/dist/application/ReferenceSourceImportTypes.js +0 -16
  127. package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
  128. package/dist/application/SessionProviderRouter.js +2 -2
  129. package/dist/application/Setup.js +1 -3
  130. package/dist/application/SetupClientConfiguration.js +22 -93
  131. package/dist/application/SetupRegistrationEnvironment.js +0 -7
  132. package/dist/application/StoreFileLock.js +119 -0
  133. package/dist/application/TerminalRenderer.js +2 -3
  134. package/dist/application/Uninstall.js +9 -14
  135. package/dist/application/UnknownEvidence.js +1 -1
  136. package/dist/artifacts/ArtifactPaths.js +2 -5
  137. package/dist/artifacts/ArtifactProvider.js +36 -58
  138. package/dist/artifacts/DirectoryArtifactReader.js +13 -8
  139. package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
  140. package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
  141. package/dist/artifacts/NibArchive.js +269 -0
  142. package/dist/artifacts/SafeOutputTree.js +15 -24
  143. package/dist/browser/BrowserProcessStartup.js +1 -2
  144. package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
  145. package/dist/browser/CdpBrowserProvider.js +3 -13
  146. package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
  147. package/dist/browser/CdpCaptureDocuments.js +28 -76
  148. package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
  149. package/dist/browser/CdpCaptureEventHandlers.js +22 -87
  150. package/dist/browser/CdpCaptureEvents.js +2 -8
  151. package/dist/browser/CdpCaptureStorage.js +9 -20
  152. package/dist/browser/CdpCaptureStorageFingerprints.js +85 -98
  153. package/dist/browser/CdpCaptureValues.js +21 -21
  154. package/dist/browser/CdpConnection.js +10 -25
  155. package/dist/browser/CdpElectronInspection.js +26 -50
  156. package/dist/browser/CdpElectronProvider.js +10 -35
  157. package/dist/browser/CdpElectronScriptEvents.js +8 -16
  158. package/dist/browser/CdpElectronScripts.js +6 -35
  159. package/dist/browser/CdpElectronWorkers.js +6 -10
  160. package/dist/browser/CdpEndpoint.js +25 -41
  161. package/dist/browser/CdpObservationSession.js +14 -26
  162. package/dist/browser/CdpPageCapture.js +34 -48
  163. package/dist/browser/CdpPageCaptureScripts.js +1 -19
  164. package/dist/browser/CdpPageCaptureWorkers.js +6 -10
  165. package/dist/browser/CdpSafeMetadata.js +19 -22
  166. package/dist/browser/CdpScreenshot.js +3 -5
  167. package/dist/browser/CdpTargetSession.js +1 -2
  168. package/dist/browser/CdpWebMcpDiscovery.js +13 -22
  169. package/dist/browser/ElectronFileScope.js +8 -19
  170. package/dist/browser/JavaScriptRuntimeScope.js +9 -14
  171. package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
  172. package/dist/browser/PlaywrightElectronActiveActions.js +54 -69
  173. package/dist/browser/PlaywrightElectronActiveProvider.js +14 -34
  174. package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
  175. package/dist/browser/PlaywrightScenarioActions.js +3 -7
  176. package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
  177. package/dist/browser/PlaywrightScenarioBrowser.js +3 -5
  178. package/dist/browser/PlaywrightScenarioEvents.js +45 -94
  179. package/dist/browser/PlaywrightScenarioSession.js +14 -30
  180. package/dist/browser/PngVisualDiff.js +22 -14
  181. package/dist/browser/SensitiveTextCapture.js +0 -17
  182. package/dist/browser/V8InspectorCaptureProjection.js +7 -8
  183. package/dist/browser/V8InspectorEndpoint.js +12 -14
  184. package/dist/browser/V8InspectorProvider.js +20 -61
  185. package/dist/browser/WebSourceMapFetcher.js +56 -176
  186. package/dist/catalogIdentity.js +0 -54
  187. package/dist/cli/artifactCommands.js +49 -77
  188. package/dist/cli/coreAnalysisCommands.js +83 -133
  189. package/dist/cli/javascriptApplicationAnalysis.js +1 -9
  190. package/dist/cli/managedCommands.js +5 -270
  191. package/dist/cli/setupCommands.js +3 -12
  192. package/dist/cli/utilityCommands.js +7 -41
  193. package/dist/cli.js +0 -2
  194. package/dist/cliApplicationCommands.js +42 -112
  195. package/dist/cliBrowserAdvancedCommands.js +10 -106
  196. package/dist/cliBrowserCommands.js +15 -127
  197. package/dist/cliBrowserContext.js +30 -0
  198. package/dist/cliCommandNames.js +4 -5
  199. package/dist/cliElectronCommands.js +8 -72
  200. package/dist/cliEvidenceCommands.js +8 -77
  201. package/dist/cliJavaScriptRuntimeCommands.js +9 -91
  202. package/dist/cliJsonInput.js +4 -14
  203. package/dist/cliObservationOptions.js +11 -96
  204. package/dist/cliPolicyCommands.js +2 -17
  205. package/dist/cliProcessCommands.js +3 -3
  206. package/dist/cliSetup.js +0 -13
  207. package/dist/config/browserScenario.js +2 -2
  208. package/dist/config/environment.js +0 -9
  209. package/dist/config/parseConfig.js +1 -33
  210. package/dist/config/parsers.js +6 -27
  211. package/dist/config/passiveObservation.js +7 -77
  212. package/dist/config/permissions.js +0 -7
  213. package/dist/contracts/analysisSearchContract.js +2 -5
  214. package/dist/contracts/applicationToolContracts.js +56 -109
  215. package/dist/contracts/applicationWorkflowInputContracts.js +27 -102
  216. package/dist/contracts/artifactComparisonExample.js +58 -60
  217. package/dist/contracts/artifactToolContracts.js +20 -67
  218. package/dist/contracts/browserScenarioToolContracts.js +6 -51
  219. package/dist/contracts/browserToolContracts.js +8 -73
  220. package/dist/contracts/electronToolContracts.js +8 -108
  221. package/dist/contracts/enhancedInputs.js +23 -54
  222. package/dist/contracts/errorSchemas.js +0 -1
  223. package/dist/contracts/functionComparisonExample.js +10 -24
  224. package/dist/contracts/functionInstructionContract.js +1 -3
  225. package/dist/contracts/functionWorkflowToolContracts.js +2 -2
  226. package/dist/contracts/hopperMemoryContracts.js +3 -3
  227. package/dist/contracts/investigationExamples.js +14 -11
  228. package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
  229. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
  230. package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
  231. package/dist/contracts/managedToolContracts.js +6 -95
  232. package/dist/contracts/managedWorkflowExamples.js +77 -128
  233. package/dist/contracts/managedWorkflowToolContracts.js +51 -77
  234. package/dist/contracts/nativeToolContracts.js +7 -11
  235. package/dist/contracts/processCaptureExample.js +2 -69
  236. package/dist/contracts/promptContracts.js +49 -67
  237. package/dist/contracts/providerSelection.js +0 -1
  238. package/dist/contracts/reconstructionReadinessExample.js +1 -6
  239. package/dist/contracts/sessionStatusContract.js +1 -17
  240. package/dist/contracts/sessionToolSchemas.js +6 -15
  241. package/dist/contracts/toolContractExamples.js +11 -11
  242. package/dist/contracts/toolContractHelpers.js +0 -4
  243. package/dist/contracts/toolContracts.js +60 -71
  244. package/dist/contracts/toolEffects.js +5 -13
  245. package/dist/contracts/toolOutputSchemaGroups.js +37 -91
  246. package/dist/contracts/toolOutputSchemaPrimitives.js +16 -56
  247. package/dist/contracts/toolSchemaMetadata.js +8 -19
  248. package/dist/contracts/unknownContractExamples.js +0 -2
  249. package/dist/domain/analysisErrorPresentation.js +46 -54
  250. package/dist/domain/analysisErrorProjection.js +28 -37
  251. package/dist/domain/analysisProfile.js +3 -31
  252. package/dist/domain/analysisSnapshot.js +3 -12
  253. package/dist/domain/androidApplication.js +15 -54
  254. package/dist/domain/appleApplication.js +24 -67
  255. package/dist/domain/artifactComparison.js +11 -29
  256. package/dist/domain/artifactGraph.js +14 -44
  257. package/dist/domain/artifactInspection.js +38 -69
  258. package/dist/domain/artifactInventoryEvidence.js +27 -21
  259. package/dist/domain/binaryTarget.js +2 -221
  260. package/dist/domain/browserCaptureComparison.js +47 -24
  261. package/dist/domain/browserObservation.js +28 -193
  262. package/dist/domain/browserObservationSchemas.js +5 -23
  263. package/dist/domain/browserScenario.js +11 -14
  264. package/dist/domain/browserScenarioCapture.js +11 -12
  265. package/dist/domain/browserScenarioCaptureValues.js +146 -84
  266. package/dist/domain/browserScenarioDiff.js +2 -59
  267. package/dist/domain/browserScenarioDiffEvidence.js +51 -0
  268. package/dist/domain/browserScenarioDiffValues.js +21 -38
  269. package/dist/domain/browserScenarioValues.js +80 -109
  270. package/dist/domain/browserSession.js +4 -7
  271. package/dist/domain/bundleComparison.js +6 -32
  272. package/dist/domain/bytecodeProvider.js +20 -19
  273. package/dist/domain/callPath.js +47 -167
  274. package/dist/domain/callPathSchemas.js +79 -0
  275. package/dist/domain/changedBehavior.js +34 -60
  276. package/dist/domain/completionLedgerGeneration.js +8 -14
  277. package/dist/domain/conformancePackage.js +126 -97
  278. package/dist/domain/conformanceReplay.js +36 -8
  279. package/dist/domain/conformanceTrustGate.js +23 -14
  280. package/dist/domain/customProtocolCapture.js +1 -1
  281. package/dist/domain/electronActiveObservation.js +70 -103
  282. package/dist/domain/electronObservation.js +14 -80
  283. package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
  284. package/dist/domain/electronStaticAnalysisIpc.js +38 -14
  285. package/dist/domain/electronStaticAnalysisNative.js +1 -8
  286. package/dist/domain/electronStaticAnalysisValues.js +10 -17
  287. package/dist/domain/errors.js +33 -54
  288. package/dist/domain/eventProcessTree.js +20 -12
  289. package/dist/domain/evidence.js +2 -10
  290. package/dist/domain/evidenceBundle.js +3 -5
  291. package/dist/domain/evidenceCompletionLedger.js +6 -8
  292. package/dist/domain/functionComparison.js +4 -14
  293. package/dist/domain/functionComparisonNormalization.js +4 -11
  294. package/dist/domain/functionComparisonResults.js +25 -15
  295. package/dist/domain/functionComparisonSchemas.js +49 -33
  296. package/dist/domain/functionDossierEvidence.js +31 -156
  297. package/dist/domain/hopperStartupFailure.js +1 -1
  298. package/dist/domain/hopperValues.js +15 -136
  299. package/dist/domain/interfaceBuilderGraph.js +654 -0
  300. package/dist/domain/javascriptApplicationAnalysis.js +8 -112
  301. package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
  302. package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
  303. package/dist/domain/javascriptApplicationGraph.js +3 -13
  304. package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
  305. package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
  306. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
  307. package/dist/domain/javascriptApplicationVersionItems.js +120 -53
  308. package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
  309. package/dist/domain/javascriptAstFingerprint.js +25 -58
  310. package/dist/domain/javascriptAstValues.js +9 -0
  311. package/dist/domain/javascriptExportInstrumentation.js +2 -4
  312. package/dist/domain/javascriptExportShapeComparison.js +6 -7
  313. package/dist/domain/javascriptExportShapeComparisonSchemas.js +68 -75
  314. package/dist/domain/javascriptExportShapeSelection.js +17 -19
  315. package/dist/domain/javascriptFeatureSeed.js +20 -12
  316. package/dist/domain/javascriptFeatureTrace.js +13 -67
  317. package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
  318. package/dist/domain/javascriptFeatureTraversal.js +1 -44
  319. package/dist/domain/javascriptNativeHandoff.js +1 -1
  320. package/dist/domain/javascriptReplay.js +24 -41
  321. package/dist/domain/javascriptRuntimeLoadState.js +3 -8
  322. package/dist/domain/javascriptRuntimeObservation.js +42 -103
  323. package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
  324. package/dist/domain/javascriptRuntimeReconciliationActive.js +8 -17
  325. package/dist/domain/javascriptRuntimeReconciliationGraph.js +10 -23
  326. package/dist/domain/javascriptRuntimeReconciliationMatching.js +18 -12
  327. package/dist/domain/javascriptRuntimeReconciliationParsing.js +16 -45
  328. package/dist/domain/javascriptRuntimeReconciliationResult.js +4 -5
  329. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
  330. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +33 -48
  331. package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
  332. package/dist/domain/javascriptSemanticAnalysis.js +12 -45
  333. package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
  334. package/dist/domain/javascriptSemanticCallResolution.js +6 -16
  335. package/dist/domain/javascriptSemanticCalls.js +5 -32
  336. package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
  337. package/dist/domain/javascriptSemanticCoverage.js +11 -0
  338. package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
  339. package/dist/domain/javascriptSemanticDataEffects.js +1 -11
  340. package/dist/domain/javascriptSemanticFingerprints.js +3 -5
  341. package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
  342. package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
  343. package/dist/domain/javascriptSemanticIr.js +1 -29
  344. package/dist/domain/javascriptSemanticObjects.js +1 -5
  345. package/dist/domain/javascriptSemanticPrimitives.js +2 -9
  346. package/dist/domain/javascriptSemanticProjection.js +0 -18
  347. package/dist/domain/javascriptSemanticPromises.js +9 -16
  348. package/dist/domain/javascriptSemanticProvenance.js +16 -19
  349. package/dist/domain/javascriptSemanticQuery.js +17 -139
  350. package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
  351. package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
  352. package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
  353. package/dist/domain/javascriptSemanticResources.js +1 -6
  354. package/dist/domain/javascriptSemanticReturns.js +10 -27
  355. package/dist/domain/javascriptSemanticValueTypes.js +1 -0
  356. package/dist/domain/javascriptSemanticValues.js +44 -62
  357. package/dist/domain/javascriptStaticAnalysis.js +21 -43
  358. package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
  359. package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
  360. package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
  361. package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
  362. package/dist/domain/javascriptStaticAnalysisState.js +1 -5
  363. package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
  364. package/dist/domain/jsonShape.js +7 -33
  365. package/dist/domain/localPath.js +7 -0
  366. package/dist/domain/managedApplicationGraph.js +9 -41
  367. package/dist/domain/managedApplicationGraphCoverage.js +24 -156
  368. package/dist/domain/managedApplicationGraphNodes.js +10 -13
  369. package/dist/domain/managedArtifact.js +14 -27
  370. package/dist/domain/managedMemberComparison.js +90 -92
  371. package/dist/domain/managedMemberComparisonCoverage.js +11 -33
  372. package/dist/domain/managedMemberComparisonItems.js +221 -0
  373. package/dist/domain/managedMemberComparisonMatch.js +8 -208
  374. package/dist/domain/managedNativeVerification.js +3 -6
  375. package/dist/domain/managedNativeVerificationMatch.js +55 -59
  376. package/dist/domain/managedNativeVerificationSchemas.js +83 -47
  377. package/dist/domain/managedReconstruction.js +19 -23
  378. package/dist/domain/managedRuntimeCorrelation.js +6 -9
  379. package/dist/domain/nativeApiBoundary.js +2 -7
  380. package/dist/domain/nativeInspection.js +0 -2
  381. package/dist/domain/nativeInvestigationGraph.js +351 -0
  382. package/dist/domain/nativeValueFlow.js +61 -0
  383. package/dist/domain/nodeRuntimeCharacterization.js +1 -5
  384. package/dist/domain/objcSwiftMetadata.js +254 -0
  385. package/dist/domain/peInspection.js +1 -1
  386. package/dist/domain/permissionPolicy.js +13 -0
  387. package/dist/domain/processCapture.js +76 -113
  388. package/dist/domain/processCaptureExample.js +68 -0
  389. package/dist/domain/processCaptureParsing.js +21 -0
  390. package/dist/domain/processCaptureReactiveSchema.js +68 -0
  391. package/dist/domain/processCaptureValidation.js +1 -7
  392. package/dist/domain/processComparison.js +3 -12
  393. package/dist/domain/processReactiveMatching.js +29 -50
  394. package/dist/domain/processReactiveRuntime.js +4 -8
  395. package/dist/domain/processReactiveScenario.js +28 -94
  396. package/dist/domain/processReactiveScenarioPreflight.js +5 -30
  397. package/dist/domain/processReactiveTransition.js +33 -18
  398. package/dist/domain/processScenario.js +56 -90
  399. package/dist/domain/processTraceComparison.js +0 -8
  400. package/dist/domain/processTraceEvaluation.js +14 -4
  401. package/dist/domain/processTraceSpecification.js +11 -17
  402. package/dist/domain/protocolCapture.js +3 -3
  403. package/dist/domain/reconstructionCoverage.js +62 -129
  404. package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
  405. package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
  406. package/dist/domain/reconstructionReadiness.js +1 -2
  407. package/dist/domain/reconstructionReadinessSchemas.js +36 -38
  408. package/dist/domain/reconstructionUnknowns.js +3 -3
  409. package/dist/domain/reconstructionVerification.js +13 -47
  410. package/dist/domain/reconstructionVerificationSchemas.js +50 -38
  411. package/dist/domain/referenceSourceGraph.js +53 -61
  412. package/dist/domain/referenceSourceImportParsing.js +1 -5
  413. package/dist/domain/replayMachine.js +19 -31
  414. package/dist/domain/replayMachineRun.js +15 -63
  415. package/dist/domain/replayMachineRuntime.js +41 -41
  416. package/dist/domain/replayMachineValues.js +84 -0
  417. package/dist/domain/residualUnknown.js +25 -30
  418. package/dist/domain/runtimeCharacterization.js +15 -16
  419. package/dist/domain/runtimeIdentification.js +48 -47
  420. package/dist/domain/sourceToBundleComparison.js +9 -85
  421. package/dist/domain/sourceToBundleComparisonSchemas.js +17 -42
  422. package/dist/domain/sourceToBundleSignals.js +4 -15
  423. package/dist/domain/staticRuntimeCorrelation.js +37 -49
  424. package/dist/domain/symbolAnalysis.js +10 -19
  425. package/dist/domain/unicodeCodePointOrder.js +12 -0
  426. package/dist/domain/webBundleAnalysis.js +70 -99
  427. package/dist/domain/webBundleAnalyzer.js +2 -4
  428. package/dist/domain/webBundleAnalyzerAst.js +0 -13
  429. package/dist/domain/webBundleAnalyzerInspection.js +26 -52
  430. package/dist/domain/webBundleAnalyzerResult.js +7 -24
  431. package/dist/domain/webCaptureDiff.js +33 -73
  432. package/dist/domain/webCaptureDiffSchemas.js +86 -0
  433. package/dist/domain/webContentArtifact.js +1 -10
  434. package/dist/domain/webMcpDiscovery.js +3 -14
  435. package/dist/domain/webScreenshot.js +58 -34
  436. package/dist/domain/zipPackageFormat.js +7 -0
  437. package/dist/dotnet/ManagedArtifactInspector.js +17 -50
  438. package/dist/dotnet/ManagedMemberInspector.js +27 -58
  439. package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
  440. package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
  441. package/dist/dotnet/ManagedMemberRows.js +16 -16
  442. package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
  443. package/dist/dotnet/ManagedMetadataInventory.js +21 -30
  444. package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
  445. package/dist/dotnet/ManagedMetadataLayout.js +3 -5
  446. package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
  447. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
  448. package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -41
  449. package/dist/dotnet/ManagedPeReader.js +2 -2
  450. package/dist/dotnet/ManagedStaticProvider.js +13 -71
  451. package/dist/generatedMcpToolCatalog.js +1 -1
  452. package/dist/generatedPackageMetadata.js +1 -1
  453. package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
  454. package/dist/ghidra/GhidraClient.js +4 -12
  455. package/dist/ghidra/GhidraClientWire.js +9 -5
  456. package/dist/ghidra/GhidraDefaults.js +0 -18
  457. package/dist/ghidra/GhidraDiagnostics.js +0 -2
  458. package/dist/ghidra/GhidraDoctor.js +16 -12
  459. package/dist/ghidra/GhidraFunctionValues.js +65 -108
  460. package/dist/ghidra/GhidraInstallation.js +98 -42
  461. package/dist/ghidra/GhidraInventoryValues.js +16 -85
  462. package/dist/ghidra/GhidraLauncher.js +0 -8
  463. package/dist/ghidra/GhidraProvider.js +15 -22
  464. package/dist/ghidra/GhidraProviderCapabilities.js +6 -47
  465. package/dist/ghidra/GhidraRequestQueue.js +6 -30
  466. package/dist/ghidra/GhidraResponseBuffer.js +1 -7
  467. package/dist/ghidra/GhidraSessionValues.js +0 -2
  468. package/dist/ghidra/GhidraTransport.js +4 -7
  469. package/dist/ghidra/protocol.js +2 -2
  470. package/dist/hopper/BridgeLauncher.js +112 -36
  471. package/dist/hopper/HopperAnalysisProfile.js +1 -1
  472. package/dist/hopper/HopperCleanup.js +6 -3
  473. package/dist/hopper/HopperClient.js +4 -7
  474. package/dist/hopper/HopperProcessDiagnostic.js +2 -2
  475. package/dist/hopper/HopperProvider.js +0 -16
  476. package/dist/hopper/HopperRequestQueue.js +21 -40
  477. package/dist/hopper/HopperResponseStream.js +1 -9
  478. package/dist/hopper/HopperSessionValues.js +3 -2
  479. package/dist/hopper/HopperTargetLease.js +119 -0
  480. package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
  481. package/dist/hopper/LinuxPrivateDisplayProbe.js +5 -16
  482. package/dist/hopper/protocol.js +6 -4
  483. package/dist/main/reload.js +0 -3
  484. package/dist/main/shutdown.js +1 -1
  485. package/dist/main/state.js +0 -9
  486. package/dist/main/transport.js +0 -5
  487. package/dist/mcpDoctor.js +25 -45
  488. package/dist/native/CommandRunner.js +18 -25
  489. package/dist/native/NativeMacOSProvider.js +13 -38
  490. package/dist/native/NativeMachoInspection.js +1 -1
  491. package/dist/process/BoundedFileBytes.js +17 -0
  492. package/dist/process/ExecFileOutput.js +11 -0
  493. package/dist/process/PendingOperations.js +8 -6
  494. package/dist/process/ProcessOwnership.js +3 -2
  495. package/dist/process/ProcessOwnershipObservation.js +0 -1
  496. package/dist/process/ProviderProcess.js +7 -28
  497. package/dist/reference/ReferenceSourceReader.js +8 -24
  498. package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
  499. package/dist/reference/ReferenceSourceReaderFile.js +13 -31
  500. package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
  501. package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
  502. package/dist/replay/JavaScriptReplayWorker.js +3 -5
  503. package/dist/replay/LinuxJavaScriptReplayRunner.js +33 -29
  504. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
  505. package/dist/replay/LinuxRuntimeClosure.js +1 -3
  506. package/dist/replay/ReplayOutcome.js +1 -3
  507. package/dist/replay/ReplayProcessLifecycle.js +32 -7
  508. package/dist/replay/ReplaySeccompFile.js +29 -0
  509. package/dist/replay/ReplayWorkerProtocol.js +0 -2
  510. package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
  511. package/dist/server/ProcessCaptureElicitation.js +4 -8
  512. package/dist/server/createServer.js +6 -44
  513. package/dist/server/promptCompletion.js +37 -61
  514. package/dist/server/recordDerivedEvidence.js +1 -1
  515. package/dist/server/registerApplicationTools/characterization.js +4 -8
  516. package/dist/server/registerApplicationTools/compareExportShapes.js +5 -10
  517. package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -10
  518. package/dist/server/registerApplicationTools/compareVersions.js +5 -10
  519. package/dist/server/registerApplicationTools/controlledReplay.js +3 -5
  520. package/dist/server/registerApplicationTools/coverage.js +6 -71
  521. package/dist/server/registerApplicationTools/helpers.js +1 -13
  522. package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
  523. package/dist/server/registerApplicationTools/traceFeature.js +5 -9
  524. package/dist/server/registerApplicationTools/traceSemantics.js +5 -8
  525. package/dist/server/registerApplicationTools.js +0 -2
  526. package/dist/server/registerArtifactComparisonTool.js +23 -27
  527. package/dist/server/registerBrowserScenarioTool.js +4 -4
  528. package/dist/server/registerBrowserTools.js +5 -8
  529. package/dist/server/registerBundleComparisonTool.js +5 -7
  530. package/dist/server/registerCloseLifecycleTool.js +2 -16
  531. package/dist/server/registerElectronTools.js +10 -29
  532. package/dist/server/registerEnhancedTools.js +10 -11
  533. package/dist/server/registerEvidenceTools.js +15 -22
  534. package/dist/server/registerFunctionComparisonTool.js +30 -25
  535. package/dist/server/registerInvestigationTools/helpers.js +3 -32
  536. package/dist/server/registerInvestigationTools.js +20 -116
  537. package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -4
  538. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +15 -17
  539. package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
  540. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -8
  541. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +3 -8
  542. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +10 -14
  543. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +9 -15
  544. package/dist/server/registerOfficialTools.js +1 -43
  545. package/dist/server/registerProcessComparisonTool.js +33 -23
  546. package/dist/server/registerPrompts.js +19 -17
  547. package/dist/server/registerSessionRecordTools.js +10 -156
  548. package/dist/server/registerSessionStatusTool.js +6 -69
  549. package/dist/server/registerSessionTools.js +10 -51
  550. package/dist/server/sessionAvailabilityPolicy.js +0 -2
  551. package/dist/server/sessionEvidence.js +9 -15
  552. package/dist/server/sessionToolPolicies.js +0 -8
  553. package/dist/server/toolResult.js +14 -50
  554. package/dist/serverIdentity.js +0 -20
  555. package/install.sh +1 -1
  556. package/package.json +11 -7
  557. package/scripts/electron-active-hook.cjs +23 -55
  558. package/scripts/hopper-demo-x11.py +13 -32
  559. package/skills/reverse-engineer-anything/SKILL.md +47 -12
  560. package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
  561. package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
  562. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
  563. package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -188
  564. package/dist/application/BoundedJsonFiles.js +0 -86
  565. package/dist/application/CrossVersionInventory.js +0 -129
  566. package/dist/application/CrossVersionInvestigation.js +0 -301
  567. package/dist/application/CrossVersionInvestigationCollections.js +0 -23
  568. package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
  569. package/dist/application/CrossVersionInvestigationReplay.js +0 -170
  570. package/dist/application/DeferredFileAuthorization.js +0 -61
  571. package/dist/application/DoctorProjection.js +0 -43
  572. package/dist/application/EnhancedToolPagination.js +0 -22
  573. package/dist/application/EvidenceReferenceResolver.js +0 -26
  574. package/dist/application/InvestigationWorkspaceStore.js +0 -204
  575. package/dist/application/ProcessPairedExperiment.js +0 -72
  576. package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
  577. package/dist/application/ReconstructionReadinessService.js +0 -48
  578. package/dist/cliInvestigationCommands.js +0 -173
  579. package/dist/domain/boundedCartesianProjection.js +0 -15
  580. package/dist/domain/investigationWorkspace.js +0 -347
  581. package/dist/domain/jsonLimits.js +0 -26
  582. package/dist/domain/knownPageCoverage.js +0 -29
  583. package/dist/domain/processPairedExperiment.js +0 -128
  584. package/dist/server/javascriptApplicationResult.js +0 -106
  585. package/dist/server/permissionFailure.js +0 -12
  586. package/dist/server/registerApplicationTools/readiness.js +0 -50
  587. package/dist/server/registerEvidenceResources.js +0 -315
  588. package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
  589. package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
  590. package/dist/server/registerReconstructionReadinessResource.js +0 -32
@@ -1,16 +1,17 @@
1
+ import { projectPermissionFailure } from "./PermissionFailure.js";
2
+ import { artifactExtractionPermissionRequest } from "./ArtifactExtractionDestination.js";
1
3
  import { parseConfig } from "../config.js";
2
4
  import { EnhancedTools } from "./EnhancedTools.js";
3
5
  import { createBinarySession } from "./runtime.js";
4
6
  import { silentLogger } from "../logger.js";
5
7
  import { createEvidence } from "../domain/evidence.js";
6
- import { EvidenceIntegrityError, AnalysisProtocolError, PermissionRequiredError, projectAnalysisError, } from "../domain/errors.js";
8
+ import { EvidenceIntegrityError, projectAnalysisError, } from "../domain/errors.js";
7
9
  import { access } from "node:fs/promises";
8
10
  import { readAnalysisSnapshot, writeAnalysisSnapshot, } from "./AnalysisSnapshotFiles.js";
9
- import { parseBinaryTarget } from "../domain/binaryTarget.js";
11
+ import { parseBinaryTarget } from "./BinaryTargetResolver.js";
10
12
  import { snapshotEvidenceForQuery, snapshotMatchesTarget, } from "../domain/analysisSnapshot.js";
11
13
  import { err, ok } from "../domain/result.js";
12
14
  import { loadConfiguredPermissionAuthority } from "./PermissionConfiguration.js";
13
- import { authorizeFileReadWithDeferredWrite, } from "./DeferredFileAuthorization.js";
14
15
  import { REA_WORKFLOW_PROVIDER, workflowAnalysisProfile, } from "./InvestigationProviders.js";
15
16
  import { artifactInspectionResultSchema } from "../domain/artifactInspection.js";
16
17
  export { runCapabilityStatus, runProviderStatus, } from "./DirectAnalysisStatus.js";
@@ -40,26 +41,13 @@ const authorizeAnalysis = async (authority, tool, arguments_) => {
40
41
  const requests = [];
41
42
  if (tool === "extract_artifact" && typeof arguments_.output_root === "string")
42
43
  requests.push({
43
- capability: "artifact_extract",
44
- path: arguments_.output_root,
44
+ request: artifactExtractionPermissionRequest(),
45
45
  access: "write",
46
46
  });
47
47
  for (const request of requests) {
48
- const result = await authority.authorize({
49
- capability: request.capability,
50
- roots: [request.path],
51
- executables: [],
52
- environment_names: [],
53
- network: "none",
54
- mount: false,
55
- operation_identity: `${tool}:${request.capability}:${request.path}`,
56
- }, request.access);
48
+ const result = await authority.authorize(request.request, request.access);
57
49
  if (!result.ok)
58
- return err(result.error instanceof PermissionRequiredError
59
- ? result.error
60
- : new AnalysisProtocolError(result.error.message, {
61
- cause: result.error,
62
- }));
50
+ return err(projectPermissionFailure(result.error));
63
51
  }
64
52
  if (["inventory_artifact", "inspect_artifact"].includes(tool) &&
65
53
  arguments_.native_mount_approved === true) {
@@ -73,26 +61,13 @@ const authorizeAnalysis = async (authority, tool, arguments_) => {
73
61
  operation_identity: `${tool}:native_mount`,
74
62
  }, "read");
75
63
  if (!result.ok)
76
- return err(result.error instanceof PermissionRequiredError
77
- ? result.error
78
- : new AnalysisProtocolError(result.error.message, {
79
- cause: result.error,
80
- }));
64
+ return err(projectPermissionFailure(result.error));
81
65
  }
82
66
  return ok(null);
83
67
  };
84
68
  const permissionAuthorityFor = (config, supplied) => supplied === undefined
85
69
  ? loadConfiguredPermissionAuthority(config)
86
70
  : Promise.resolve(ok(supplied));
87
- const authorizeSnapshotAccess = async (authority, tool, snapshotPath) => snapshotPath === undefined
88
- ? ok(undefined)
89
- : authorizeFileReadWithDeferredWrite(authority, {
90
- path: snapshotPath,
91
- readCapability: "snapshot_read",
92
- writeCapability: "snapshot_write",
93
- operation: tool,
94
- });
95
- const authorizeDeferredWrite = (authorization) => authorization?.authorizeWrite() ?? Promise.resolve(ok(null));
96
71
  const authorizeAnalysisRun = async (input) => {
97
72
  const authority = await permissionAuthorityFor(input.config, input.suppliedAuthority);
98
73
  if (!authority.ok)
@@ -100,7 +75,7 @@ const authorizeAnalysisRun = async (input) => {
100
75
  const operation = await authorizeAnalysis(authority.value, input.tool, input.arguments);
101
76
  if (!operation.ok)
102
77
  return operation;
103
- return authorizeSnapshotAccess(authority.value, input.tool, input.snapshotPath);
78
+ return ok(null);
104
79
  };
105
80
  const runAnalysis = async (path, tool, arguments_, options) => {
106
81
  const { logger, signal, snapshotPath } = options;
@@ -112,7 +87,6 @@ const runAnalysis = async (path, tool, arguments_, options) => {
112
87
  suppliedAuthority: options.permissionAuthority,
113
88
  tool,
114
89
  arguments: arguments_,
115
- snapshotPath,
116
90
  });
117
91
  if (!authorization.ok)
118
92
  return cliError(authorization.error);
@@ -121,7 +95,6 @@ const runAnalysis = async (path, tool, arguments_, options) => {
121
95
  const prepared = await prepareSnapshot({
122
96
  path,
123
97
  snapshotPath,
124
- policy: config.value.analysisSnapshotFilePolicy,
125
98
  });
126
99
  if (!prepared.ok)
127
100
  return cliError(prepared.error);
@@ -137,7 +110,8 @@ const runAnalysis = async (path, tool, arguments_, options) => {
137
110
  return cliError(opened.error);
138
111
  const evidenceProfile = analysisProfileForEvidence(session, tool);
139
112
  const bindingProfile = session.analysisProfile();
140
- if (snapshot !== undefined &&
113
+ if (tool !== "trace_native_ui_action" &&
114
+ snapshot !== undefined &&
141
115
  evidenceProfile !== undefined &&
142
116
  bindingProfile !== undefined) {
143
117
  const cached = snapshotEvidenceForQuery(snapshot, {
@@ -151,9 +125,6 @@ const runAnalysis = async (path, tool, arguments_, options) => {
151
125
  if (cached !== undefined)
152
126
  return cached;
153
127
  }
154
- const writable = await authorizeDeferredWrite(authorization.value);
155
- if (!writable.ok)
156
- return cliError(writable.error);
157
128
  const { output, evidence } = await executeAnalysisTool({
158
129
  session,
159
130
  openedTarget: opened.value,
@@ -164,11 +135,13 @@ const runAnalysis = async (path, tool, arguments_, options) => {
164
135
  });
165
136
  if (evidence !== undefined)
166
137
  session.recordEvidence(evidence);
167
- if (snapshotPath !== undefined && evidence !== undefined) {
138
+ if (tool !== "trace_native_ui_action" &&
139
+ snapshotPath !== undefined &&
140
+ evidence !== undefined) {
168
141
  const snapshot = session.exportAnalysisSnapshot();
169
142
  if (!snapshot.ok)
170
143
  return cliError(snapshot.error);
171
- const written = await writeAnalysisSnapshot(snapshot.value, snapshotPath, true, config.value.analysisSnapshotFilePolicy);
144
+ const written = await writeAnalysisSnapshot(snapshot.value, snapshotPath, true);
172
145
  if (!written.ok)
173
146
  return cliError(written.error);
174
147
  }
@@ -183,7 +156,9 @@ const executeAnalysisTool = async (input) => {
183
156
  if (tool === "binary_overview" ||
184
157
  tool === "analyze_function" ||
185
158
  tool === "inspect_native_api" ||
186
- tool === "trace_feature") {
159
+ tool === "inspect_native_dispatch_metadata" ||
160
+ tool === "trace_feature" ||
161
+ tool === "trace_native_ui_action") {
187
162
  const result = await new EnhancedTools(session).execute(tool, input.arguments, signal);
188
163
  if (!result.ok)
189
164
  return { output: cliError(result.error) };
@@ -235,10 +210,10 @@ const withProcessCancellation = async (suppliedSignal, operation) => {
235
210
  }
236
211
  };
237
212
  const prepareSnapshot = async (options) => {
238
- const { path, snapshotPath, policy } = options;
213
+ const { path, snapshotPath } = options;
239
214
  if (snapshotPath === undefined || !(await fileExists(snapshotPath)))
240
215
  return ok({});
241
- const loaded = await readAnalysisSnapshot(snapshotPath, policy);
216
+ const loaded = await readAnalysisSnapshot(snapshotPath);
242
217
  if (!loaded.ok)
243
218
  return loaded;
244
219
  const target = await parseBinaryTarget(path);
@@ -259,7 +234,8 @@ const analysisProfileForEvidence = (session, tool) => {
259
234
  };
260
235
  const isWorkflowEvidenceTool = (tool) => tool === "binary_overview" ||
261
236
  tool === "inspect_native_api" ||
262
- tool === "trace_feature";
237
+ tool === "trace_feature" ||
238
+ tool === "trace_native_ui_action";
263
239
  const fileExists = async (path) => {
264
240
  try {
265
241
  await access(path);
@@ -1,7 +1,7 @@
1
1
  import { parseConfig } from "../config.js";
2
2
  import { projectAnalysisError } from "../domain/errors.js";
3
3
  import { jsonObjectSchema } from "../domain/jsonValue.js";
4
- import { createServerIdentity, createServerIdentitySummary, } from "../serverIdentity.js";
4
+ import { createServerIdentity } from "../serverIdentity.js";
5
5
  import { silentLogger } from "../logger.js";
6
6
  import { createBinarySession } from "./runtime.js";
7
7
  const runSessionStatus = async (logger = silentLogger) => {
@@ -21,63 +21,7 @@ const runSessionStatus = async (logger = silentLogger) => {
21
21
  await session.close();
22
22
  }
23
23
  };
24
- /** List provider identities, selection, and availability without capability bodies. */
25
- export const runProviderStatus = async (logger = silentLogger, detail = "summary") => {
26
- const fullStatus = await runSessionStatus(logger);
27
- if (detail === "full")
28
- return fullStatus;
29
- const parsedStatus = jsonObjectSchema.safeParse(fullStatus);
30
- if (!parsedStatus.success || parsedStatus.data.error !== undefined)
31
- return fullStatus;
32
- const status = parsedStatus.data;
33
- return {
34
- open: status.open ?? false,
35
- provider: status.provider ?? null,
36
- providers: status.providers ?? [],
37
- analysis_provider_binding: status.analysis_provider_binding ?? null,
38
- analysis_provider_candidates: projectJsonObjectArray(status.analysis_provider_candidates, ["provider", "availability", "target_support", "selected"]),
39
- server_identity: createServerIdentitySummary({
40
- startedAt: new Date().toISOString(),
41
- }),
42
- };
43
- };
44
- /** List concise operation availability, with explicit full descriptor opt-in. */
45
- export const runCapabilityStatus = async (logger = silentLogger, detail = "summary") => {
46
- const fullStatus = await runSessionStatus(logger);
47
- if (detail === "full")
48
- return fullStatus;
49
- const parsedStatus = jsonObjectSchema.safeParse(fullStatus);
50
- if (!parsedStatus.success || parsedStatus.data.error !== undefined)
51
- return fullStatus;
52
- const status = parsedStatus.data;
53
- const capabilities = projectJsonObjectArray(status.capabilities, [
54
- "operation",
55
- "available",
56
- "reason",
57
- ]);
58
- const available = capabilities.filter((candidate) => typeof candidate === "object" &&
59
- candidate !== null &&
60
- "available" in candidate &&
61
- candidate.available === true).length;
62
- return {
63
- open: status.open ?? false,
64
- summary: {
65
- total: capabilities.length,
66
- available,
67
- unavailable: capabilities.length - available,
68
- },
69
- capabilities,
70
- analysis_provider_binding: status.analysis_provider_binding ?? null,
71
- server_identity: createServerIdentitySummary({
72
- startedAt: new Date().toISOString(),
73
- }),
74
- };
75
- };
76
- const projectJsonObjectArray = (value, keys) => Array.isArray(value)
77
- ? value.map((candidate) => {
78
- const parsed = jsonObjectSchema.safeParse(candidate);
79
- if (!parsed.success)
80
- return candidate;
81
- return Object.fromEntries(keys.flatMap((key) => parsed.data[key] === undefined ? [] : [[key, parsed.data[key]]]));
82
- })
83
- : [];
24
+ /** List complete provider identities, capabilities, and availability. */
25
+ export const runProviderStatus = (logger = silentLogger) => runSessionStatus(logger);
26
+ /** List complete operation descriptors and availability. */
27
+ export const runCapabilityStatus = (logger = silentLogger) => runSessionStatus(logger);
@@ -2,9 +2,8 @@ import { constants } from "node:fs";
2
2
  import { access, readFile, readdir } from "node:fs/promises";
3
3
  import { homedir } from "node:os";
4
4
  import { delimiter, join } from "node:path";
5
- import { execFile } from "node:child_process";
6
- import { promisify } from "node:util";
7
- import { parseBinaryTarget } from "../domain/binaryTarget.js";
5
+ import { parseBinaryTarget } from "./BinaryTargetResolver.js";
6
+ import { execFileOutput } from "../process/ExecFileOutput.js";
8
7
  import { probeHomebrew } from "./homebrew.js";
9
8
  import { linuxHopperBinarySupported, linuxSharedLibrariesAvailable, readLinuxDistribution, } from "./LinuxHopper.js";
10
9
  import { CATALOG_IDENTITY } from "../catalogIdentity.js";
@@ -13,7 +12,6 @@ import { readClientRegistrationStatuses, } from "./ClientRegistrationStatus.js";
13
12
  import { inspectRuntimeExecutables, } from "./RuntimeExecutableDiagnostics.js";
14
13
  import { collectDoctorDiagnostics, doctorHealthy, } from "./DoctorDiagnostics.js";
15
14
  import { normalizeDoctorScope, scopeDoctorChecks, } from "./DoctorScope.js";
16
- const execFileAsync = promisify(execFile);
17
15
  /** Deep provider IDs whose readiness can be selected explicitly by doctor. */
18
16
  export const DOCTOR_PROVIDER_IDS = ["hopper", "ghidra"];
19
17
  /**
@@ -56,14 +54,14 @@ export const runDoctor = async (target, host = systemDoctorHost(), requestedScop
56
54
  };
57
55
  const collectDoctorIdentity = async (host, runtimeExecutables) => {
58
56
  const installationPaths = (await host.installationPaths?.()) ?? [];
59
- const installedSkillIdentity = await readInstalledSkillIdentity(host);
57
+ const installedSkillIdentity = await host.installedSkillIdentity?.();
60
58
  const skillAligned = skillIdentityAligned(installedSkillIdentity);
61
59
  const registrations = (await host.clientRegistrations?.()) ?? [];
62
60
  return {
63
61
  checks: [
64
62
  ...(skillAligned ? [] : [skillIdentityCheck(installedSkillIdentity)]),
65
63
  ...registrations
66
- .filter(({ state }) => state !== "aligned")
64
+ .filter((registration) => registration.state !== "aligned")
67
65
  .map(registrationCheck),
68
66
  ],
69
67
  value: {
@@ -73,7 +71,7 @@ const collectDoctorIdentity = async (host, runtimeExecutables) => {
73
71
  catalog: CATALOG_IDENTITY,
74
72
  live_server: {
75
73
  state: "unknown",
76
- remediation: "Compare rea://server/identity or binary_session from the active client; an on-disk registration cannot prove the running server version.",
74
+ remediation: "Call binary_session in the active client to inspect the running server identity.",
77
75
  },
78
76
  installations: {
79
77
  paths: installationPaths,
@@ -97,15 +95,6 @@ const collectDoctorIdentity = async (host, runtimeExecutables) => {
97
95
  },
98
96
  };
99
97
  };
100
- const readInstalledSkillIdentity = async (host) => {
101
- const observed = await host.installedSkillIdentity?.();
102
- if (observed !== undefined)
103
- return observed;
104
- const legacyVersion = await host.installedSkillVersion?.();
105
- return legacyVersion === undefined
106
- ? undefined
107
- : { version: legacyVersion, toolCount: null, catalogDigest: null };
108
- };
109
98
  const skillIdentityAligned = (identity) => identity?.version === PRODUCT_IDENTITY.skillVersion &&
110
99
  identity.toolCount === CATALOG_IDENTITY.counts.mcp_tools &&
111
100
  identity.catalogDigest === CATALOG_IDENTITY.digests.combined_sha256;
@@ -123,8 +112,7 @@ const registrationCheck = (registration) => ({
123
112
  ok: false,
124
113
  classification: "config_drift",
125
114
  detail: registration.config_path,
126
- remediation: registration.remediation ??
127
- "Run rea setup, then restart the affected client.",
115
+ remediation: registration.remediation,
128
116
  });
129
117
  const installationState = (paths) => paths.length === 0 ? "unknown" : paths.length === 1 ? "single" : "multiple";
130
118
  /** Create diagnostics backed by the current process and host commands. */
@@ -149,7 +137,7 @@ export const systemDoctorHost = (options = {}) => ({
149
137
  async brewHopperPath() {
150
138
  return probeHomebrew(async (command) => {
151
139
  try {
152
- const prefix = (await execFileAsync(command, [
140
+ const prefix = (await execFileOutput(command, [
153
141
  "--prefix",
154
142
  "--cask",
155
143
  "hopper-disassembler",
@@ -171,7 +159,7 @@ export const systemDoctorHost = (options = {}) => ({
171
159
  async ilspyCmdVersion(path) {
172
160
  try {
173
161
  await access(path, constants.X_OK);
174
- return firstIlspyVersionLine((await execFileAsync(path, ["--version"], { timeout: 10_000 })).stdout);
162
+ return firstIlspyVersionLine((await execFileOutput(path, ["--version"], { timeout: 10_000 })).stdout);
175
163
  }
176
164
  catch {
177
165
  return undefined;
@@ -189,19 +177,18 @@ export const systemDoctorHost = (options = {}) => ({
189
177
  try {
190
178
  const command = process.platform === "win32" ? "where" : "which";
191
179
  const arguments_ = process.platform === "win32" ? ["rea"] : ["-a", "rea"];
192
- return uniqueLines((await execFileAsync(command, arguments_)).stdout);
180
+ return uniqueLines((await execFileOutput(command, arguments_)).stdout);
193
181
  }
194
182
  catch {
195
183
  return [];
196
184
  }
197
185
  },
198
- installedSkillVersion,
199
186
  installedSkillIdentity,
200
187
  clientRegistrations: () => readClientRegistrationStatuses(homedir()),
201
188
  });
202
189
  const readMacosVersion = async () => {
203
190
  try {
204
- return (await execFileAsync("sw_vers", ["-productVersion"])).stdout.trim();
191
+ return (await execFileOutput("sw_vers", ["-productVersion"])).stdout.trim();
205
192
  }
206
193
  catch {
207
194
  return undefined;
@@ -212,7 +199,7 @@ const executableAvailable = async (path) => {
212
199
  await access(path, constants.X_OK);
213
200
  if (process.platform !== "linux")
214
201
  return true;
215
- const linked = await execFileAsync("ldd", [path]);
202
+ const linked = await execFileOutput("ldd", [path]);
216
203
  return linuxSharedLibrariesAvailable(`${linked.stdout}\n${linked.stderr}`);
217
204
  }
218
205
  catch {
@@ -242,14 +229,6 @@ const manualHopperPaths = async () => {
242
229
  return paths;
243
230
  };
244
231
  const readInstalledSkill = () => readFile(join(homedir(), ".agents/skills", PRODUCT_IDENTITY.skillName, "SKILL.md"), "utf8");
245
- const installedSkillVersion = async () => {
246
- try {
247
- return /^\s{2}version:\s*"([^"]+)"\s*$/mu.exec(await readInstalledSkill())?.[1];
248
- }
249
- catch {
250
- return undefined;
251
- }
252
- };
253
232
  const installedSkillIdentity = async () => {
254
233
  try {
255
234
  const content = await readInstalledSkill();
@@ -70,9 +70,8 @@ const runtimeChecks = (inventory) => {
70
70
  const detail = broken.length === 0
71
71
  ? `${String(inventory.candidates.length)} runtime executable candidates passed bounded version probes.`
72
72
  : `${String(broken.length)} of ${String(inventory.candidates.length)} runtime executable candidates failed bounded version probes: ${broken
73
- .slice(0, 5)
74
73
  .map(({ lexical_path: path }) => path)
75
- .join(", ")}${broken.length > 5 ? ", …" : ""}`;
74
+ .join(", ")}`;
76
75
  return [
77
76
  check("node-toolchains", broken.length === 0, detail, {
78
77
  remediation: "Select a verified healthy Node toolchain or repair the failing installation, then rerun rea doctor. Do not create compatibility-library symlinks.",
@@ -88,7 +88,7 @@ const registrationCheck = (status) => ({
88
88
  ok: false,
89
89
  classification: "config_drift",
90
90
  detail: status.config_path,
91
- remediation: status.remediation ?? "Run rea setup, then restart the affected client.",
91
+ remediation: status.remediation,
92
92
  });
93
93
  const selectedSkillCheck = (state, checks) => checks.find(({ name }) => name === "skill:identity") ?? {
94
94
  name: "skill:identity",
@@ -1,9 +1,9 @@
1
1
  import { createEvidence } from "../domain/evidence.js";
2
2
  import { jsonValueSchema } from "../domain/jsonValue.js";
3
3
  import { digestJson } from "./JavaScriptReplayPlanning.js";
4
- /** Create Evidence v2 without retaining arbitrary runtime argument values. */
4
+ /** Create Evidence without retaining arbitrary runtime argument values. */
5
5
  export const createElectronActiveEvidence = (input, result, provider) => createEvidence(undefined, provider, {
6
- predicateType: "rea.electron-active-scenario/v1",
6
+ predicateType: "rea.electron-active-scenario",
7
7
  operation: "capture_electron_scenario",
8
8
  parameters: parameters(input),
9
9
  result: jsonValueSchema.parse(result),
@@ -18,14 +18,11 @@ export const createElectronActiveEvidence = (input, result, provider) => createE
18
18
  limitations: result.limitations,
19
19
  });
20
20
  const scenarioProjection = (input) => ({
21
- approved: input.approved,
22
- schema_version: input.schema_version,
23
21
  executable_path: input.executable_path,
24
22
  application_path: input.application_path,
25
23
  application_root: input.application_root,
26
24
  args: redactArguments(input.args),
27
25
  actions: input.actions.map(({ step_id, kind }) => ({ step_id, kind })),
28
- limits: input.limits,
29
26
  });
30
27
  const parameters = (input) => ({
31
28
  ...scenarioProjection(input),
@@ -49,7 +46,5 @@ const sensitiveFlag = /^--?(?:password|token|secret|api[-_]?key|authorization|co
49
46
  const redactArgument = (argument) => {
50
47
  if (/^--?(?:password|token|secret|api[-_]?key|authorization|cookie)=/iu.test(argument))
51
48
  return `${argument.slice(0, argument.indexOf("=") + 1)}<redacted>`;
52
- return argument.length > 256
53
- ? `${argument.slice(0, 256)}<redacted>`
54
- : argument;
49
+ return argument;
55
50
  };
@@ -1,6 +1,7 @@
1
+ import { projectPermissionFailure } from "./PermissionFailure.js";
1
2
  import { realpath } from "node:fs/promises";
2
3
  import { digestJson } from "./JavaScriptReplayPlanning.js";
3
- import { AnalysisCapabilityUnavailableError, AnalysisInputError, AnalysisProtocolError, PermissionRequiredError, } from "../domain/errors.js";
4
+ import { AnalysisCapabilityUnavailableError, AnalysisInputError, } from "../domain/errors.js";
4
5
  import { isPathContained } from "../domain/permissionPolicy.js";
5
6
  import { err } from "../domain/result.js";
6
7
  import { createElectronActiveEvidence } from "./ElectronActiveEvidence.js";
@@ -57,11 +58,7 @@ const authorize = async (authority, input) => {
57
58
  operation_identity: `${OPERATION}:${digestJson(canonical.value)}`,
58
59
  }, "write");
59
60
  if (!authorized.ok)
60
- return err(authorized.error instanceof PermissionRequiredError
61
- ? authorized.error
62
- : new AnalysisProtocolError(authorized.error.message, {
63
- cause: authorized.error,
64
- }));
61
+ return err(projectPermissionFailure(authorized.error));
65
62
  return canonical;
66
63
  };
67
64
  /** Authorize and execute one bounded, provider-owned Electron experiment. */
@@ -70,12 +70,13 @@ export const summarizeElectronBoundaries = (analysis) => {
70
70
  },
71
71
  sender_validation_observations: validations.length,
72
72
  utility_processes: utilities.length,
73
- resolved_utility_entrypoints: utilities.filter(({ file, finding }) => resolvesToFile({
74
- file,
75
- specifier: finding.module_path,
76
- context: finding.module_resolution_context ?? "module-specifier",
77
- files,
78
- })).length,
73
+ resolved_utility_entrypoints: utilities.filter(({ file, finding }) => finding.module_path !== null &&
74
+ resolvesToFile({
75
+ file,
76
+ specifier: finding.module_path,
77
+ context: finding.module_resolution_context,
78
+ files,
79
+ })).length,
79
80
  native_addon_bindings: nativeBindings.length,
80
81
  resolved_native_addon_bindings: nativeBindings.filter(({ file, finding }) => resolvesToFile({
81
82
  file,
@@ -97,8 +98,6 @@ const isPairableRendererTransmission = (record) => isRendererTransmission(record
97
98
  const isMainHandler = ({ finding }) => finding.side === "main" &&
98
99
  (finding.mode === "listen" || finding.mode === "handle");
99
100
  const resolvesToFile = (input) => {
100
- if (input.specifier === null)
101
- return false;
102
101
  const resolved = resolveArtifactPathByContext({
103
102
  declaredPath: input.specifier,
104
103
  sourcePath: input.file.path,
@@ -9,7 +9,7 @@ export const electronObservationIdentity = (context, scope, key) => ({
9
9
  strategy: "observation-fingerprint",
10
10
  stability: "observation-only",
11
11
  observation_sha256: sha256Text(`${context.snapshot.manifest.root_sha256}\0${scope}\0${key}`),
12
- scope: scope.slice(0, 4_096),
12
+ scope,
13
13
  });
14
14
  /** Add a direct AST syntax relationship. */
15
15
  export const addElectronAstEdge = (context, input) => {
@@ -96,7 +96,7 @@ const addHandlerNode = (input) => {
96
96
  const handlerRange = finding.handler_location ?? finding.location;
97
97
  const handler = context.accumulator.addNode({
98
98
  kind: "ipc-handler",
99
- identity: artifactLocalIdentity(file.sha256, "electron-ipc-handler", `${finding.side}:${finding.operation}:${finding.channel ?? finding.channel_expression ?? "[missing]"}:${electronRangeKey(handlerRange)}`),
99
+ identity: artifactLocalIdentity(file.sha256, "electron-ipc-handler", `${finding.side}:${finding.operation}:${finding.channel ?? finding.channel_expression}:${electronRangeKey(handlerRange)}`),
100
100
  observations: [
101
101
  {
102
102
  label: finding.channel,
@@ -177,7 +177,7 @@ const addValidationObservations = (state) => {
177
177
  const { file, javascript } = analyzed;
178
178
  if (javascript === null)
179
179
  continue;
180
- const coverage = javascriptAnalysisCoverage(javascript, state.context.input);
180
+ const coverage = javascriptAnalysisCoverage(javascript);
181
181
  for (const validation of javascript.electron.sender_validations) {
182
182
  const handlerRecord = containingHandler(state.records, file, validation);
183
183
  const target = handlerRecord === undefined
@@ -238,5 +238,5 @@ const coverageFor = (context, file) => {
238
238
  const javascript = context.analysis.files.find(({ file: candidate }) => candidate.path === file.path)?.javascript;
239
239
  return javascript === null || javascript === undefined
240
240
  ? undefined
241
- : javascriptAnalysisCoverage(javascript, context.input);
241
+ : javascriptAnalysisCoverage(javascript);
242
242
  };
@@ -7,7 +7,7 @@ export const addElectronNativeBoundaries = (context) => {
7
7
  const { file, javascript } = analyzed;
8
8
  if (javascript === null)
9
9
  continue;
10
- const coverage = javascriptAnalysisCoverage(javascript, context.input);
10
+ const coverage = javascriptAnalysisCoverage(javascript);
11
11
  for (const value of javascript.electron.native_addon_bindings)
12
12
  addNativeBinding({ context, file, value, coverage });
13
13
  }
@@ -29,7 +29,6 @@ const addNativeBinding = (input) => {
29
29
  specifier: value.specifier,
30
30
  binding_kind: value.binding_kind,
31
31
  requested_members: value.members,
32
- members_truncated: value.members_truncated,
33
32
  resolved_path: resolved,
34
33
  native_export_verification: "not-performed",
35
34
  },
@@ -8,7 +8,7 @@ export const addElectronWindowBoundaries = (context) => {
8
8
  const { file, javascript } = analyzed;
9
9
  if (javascript === null)
10
10
  continue;
11
- const coverage = javascriptAnalysisCoverage(javascript, context.input);
11
+ const coverage = javascriptAnalysisCoverage(javascript);
12
12
  for (const value of javascript.electron.browser_windows) {
13
13
  const source = electronFindingSourceNode(context, file, value.module_key);
14
14
  if (source !== undefined)
@@ -39,7 +39,6 @@ const addBrowserWindow = (input) => {
39
39
  options_status: value.options_status,
40
40
  web_preferences_status: value.web_preferences_status,
41
41
  web_preferences: value.web_preferences,
42
- omitted_web_preferences: value.omitted_web_preferences,
43
42
  preload_path: value.preload_path,
44
43
  preload_resolution_context: value.preload_resolution_context,
45
44
  absence_means_default: false,
@@ -70,13 +69,13 @@ const addBrowserWindow = (input) => {
70
69
  addWindowPreload(input, window);
71
70
  };
72
71
  const addWindowPreload = (input, window) => {
73
- const declared = input.value.preload_path;
74
- if (declared === null)
72
+ if (input.value.preload_path === null)
75
73
  return;
74
+ const { preload_path: declared, preload_resolution_context: resolutionContext, } = input.value;
76
75
  const resolution = resolveArtifactPathByContext({
77
76
  declaredPath: declared,
78
77
  sourcePath: input.file.path,
79
- context: input.value.preload_resolution_context ?? "module-specifier",
78
+ context: resolutionContext,
80
79
  files: input.context.filesByPath,
81
80
  });
82
81
  const role = createElectronRoleNode(input.context, {
@@ -127,7 +126,6 @@ const addContextBridge = (input) => {
127
126
  api_status: value.api_status,
128
127
  members: value.members,
129
128
  unknown_members: value.unknown_members,
130
- omitted_members: value.omitted_members,
131
129
  },
132
130
  evidence: astObservationEvidence({
133
131
  sha256: file.sha256,
@@ -158,7 +156,7 @@ const addUtilityProcess = (input) => {
158
156
  const { context, file, value, coverage } = input;
159
157
  const utility = context.accumulator.addNode({
160
158
  kind: "electron-utility",
161
- identity: artifactLocalIdentity(file.sha256, "electron-utility-process", `${value.module_path ?? value.module_expression ?? "[missing]"}:${electronRangeKey(value.location)}`),
159
+ identity: artifactLocalIdentity(file.sha256, "electron-utility-process", `${value.module_path ?? value.module_expression}:${electronRangeKey(value.location)}`),
162
160
  observations: [
163
161
  {
164
162
  label: value.service_name ?? value.module_path,
@@ -196,7 +194,7 @@ const addUtilityProcess = (input) => {
196
194
  const resolution = resolveArtifactPathByContext({
197
195
  declaredPath: value.module_path,
198
196
  sourcePath: file.path,
199
- context: value.module_resolution_context ?? "module-specifier",
197
+ context: value.module_resolution_context,
200
198
  files: context.filesByPath,
201
199
  });
202
200
  const resolved = resolution.resolved_path;
@@ -1,10 +1,10 @@
1
1
  import { createEvidence, } from "../domain/evidence.js";
2
2
  import { jsonValueSchema } from "../domain/jsonValue.js";
3
- /** Create Evidence v2 for one root-confined Electron observation. */
3
+ /** Create Evidence for one Electron observation. */
4
4
  export const createElectronEvidence = (operation, input, result, provider) => createEvidence(undefined, provider, {
5
5
  predicateType: operation === "list_electron_targets"
6
- ? "rea.electron-target-list/v1"
7
- : "rea.electron-page-inspection/v1",
6
+ ? "rea.electron-target-list"
7
+ : "rea.electron-page-inspection",
8
8
  operation,
9
9
  parameters: parameters(input),
10
10
  result: jsonValueSchema.parse(result),
@@ -22,14 +22,11 @@ export const createElectronEvidence = (operation, input, result, provider) => cr
22
22
  });
23
23
  const parameters = (input) => ({
24
24
  cdp_endpoint: input.cdp_endpoint,
25
- allowed_file_roots: input.allowed_file_roots,
26
25
  ...("target_id" in input
27
26
  ? {
28
27
  target_id: input.target_id,
29
28
  observation_ms: input.observation_ms,
30
29
  include_script_sources: input.include_script_sources,
31
- source_capture_approved: input.source_capture_approved,
32
- limits: input.limits,
33
30
  }
34
- : { offset: input.offset, limit: input.limit }),
31
+ : {}),
35
32
  });