rea-agents 3.1.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -3,13 +3,12 @@ import { DOCTOR_PROVIDER_IDS, runDoctor, } from "../application/Doctor.js";
3
3
  import { runSetup, systemSetupHost, } from "../application/Setup.js";
4
4
  import { runUninstall } from "../application/Uninstall.js";
5
5
  import { runUpgrade, systemUpgradeHost } from "../application/Upgrade.js";
6
- import { conciseSetupResult, confirmInteractiveSetup, renderInteractiveSetupResult, renderSetupProgress, } from "../cliSetup.js";
6
+ import { confirmInteractiveSetup, renderInteractiveSetupResult, renderSetupProgress, } from "../cliSetup.js";
7
7
  import { PRODUCT_IDENTITY } from "../identity.js";
8
8
  import { logCliCommand } from "../cliLogging.js";
9
9
  import { createSystemDoctorHost } from "../doctorRuntime.js";
10
10
  import { CLI_COMMANDS } from "../cliCommandNames.js";
11
11
  import { SUPPORTED_CLIENT_DEFINITIONS } from "../application/SupportedClients.js";
12
- import { projectDoctorReport } from "../application/DoctorProjection.js";
13
12
  const supportedClientIds = SUPPORTED_CLIENT_DEFINITIONS.map(({ name }) => name);
14
13
  const supportedClientSchema = z
15
14
  .string()
@@ -53,10 +52,6 @@ const registerSetupCommand = (cli, logger) => {
53
52
  .boolean()
54
53
  .default(false)
55
54
  .describe("Use sequential accessible setup prompts"),
56
- detail: z
57
- .enum(["summary", "full"])
58
- .default("summary")
59
- .describe("Summary or complete setup and doctor diagnostics"),
60
55
  }),
61
56
  alias: { yes: "y" },
62
57
  run: ({ options, formatExplicit }) => logCliCommand(logger, "setup", () => runSetupCommand({ options, formatExplicit })),
@@ -79,12 +74,8 @@ const registerDoctorCommand = (cli, logger) => {
79
74
  .boolean()
80
75
  .optional()
81
76
  .describe("Require the installed REA skill identity to be aligned"),
82
- detail: z
83
- .enum(["summary", "full"])
84
- .default("summary")
85
- .describe("Summary or complete doctor diagnostics"),
86
77
  }),
87
- run: ({ options }) => logCliCommand(logger, "doctor", () => runDoctor(options.target, createSystemDoctorHost(), doctorScope(options)).then((report) => projectDoctorReport(report, options.detail))),
78
+ run: ({ options }) => logCliCommand(logger, "doctor", () => runDoctor(options.target, createSystemDoctorHost(), doctorScope(options))),
88
79
  });
89
80
  };
90
81
  const registerMaintenanceCommands = (cli, logger) => {
@@ -115,7 +106,7 @@ const runSetupCommand = async (input) => {
115
106
  : undefined);
116
107
  if (interactive)
117
108
  renderInteractiveSetupResult(result);
118
- return options.detail === "full" ? result : conciseSetupResult(result);
109
+ return result;
119
110
  };
120
111
  const setupRunOptions = (input, interactive, hasExplicitScope) => {
121
112
  const { options } = input;
@@ -2,9 +2,8 @@ import { z } from "incur";
2
2
  import { runCapabilityStatus, runProviderAnalysis, runProviderStatus, } from "../application/DirectAnalysis.js";
3
3
  import { importReferenceSource } from "../application/ReferenceSourceImport.js";
4
4
  import { projectReferenceSourceImportError } from "../application/ReferenceSourceImportTypes.js";
5
- import { loadConfiguredPermissionAuthority } from "../application/PermissionConfiguration.js";
6
5
  import { parseConfig } from "../config.js";
7
- import { AnalysisProtocolError, PermissionRequiredError, projectAnalysisError, } from "../domain/errors.js";
6
+ import { projectAnalysisError } from "../domain/errors.js";
8
7
  import { PRODUCT_IDENTITY } from "../identity.js";
9
8
  import { logCliCommand } from "../cliLogging.js";
10
9
  import { CLI_COMMANDS } from "../cliCommandNames.js";
@@ -22,15 +21,9 @@ const registerCapabilityCommands = (cli, logger) => {
22
21
  description: command === "capabilities"
23
22
  ? "List provider capabilities and side effects"
24
23
  : "List configured analysis providers",
25
- options: z.object({
26
- detail: z
27
- .enum(["summary", "full"])
28
- .default("summary")
29
- .describe("Summary or complete provider descriptors"),
30
- }),
31
- run: ({ options }) => logCliCommand(logger, command, () => command === CLI_COMMANDS.providers
32
- ? runProviderStatus(logger, options.detail)
33
- : runCapabilityStatus(logger, options.detail)),
24
+ run: () => logCliCommand(logger, command, () => command === CLI_COMMANDS.providers
25
+ ? runProviderStatus(logger)
26
+ : runCapabilityStatus(logger)),
34
27
  });
35
28
  }
36
29
  };
@@ -59,13 +52,12 @@ const registerNativeCommands = (cli, logger) => {
59
52
  run: ({ args, options }) => logCliCommand(logger, "inspect-plist", () => runProviderAnalysis(args.path, "inspect_plist", { relative_path: options.relativePath }, logger)),
60
53
  });
61
54
  cli.command(CLI_COMMANDS.demangleSwift, {
62
- description: "Demangle a bounded Swift symbol batch without Hopper",
55
+ description: "Demangle Swift symbols without Hopper",
63
56
  args: z.object({
64
57
  path: z.string().describe("Artifact path used for evidence identity"),
65
58
  symbols: z
66
59
  .array(z.string().min(1))
67
60
  .min(1)
68
- .max(500)
69
61
  .describe("Swift mangled symbols to demangle"),
70
62
  }),
71
63
  run: ({ args }) => logCliCommand(logger, "demangle-swift", () => runProviderAnalysis(args.path, "demangle_swift", { symbols: args.symbols }, logger)),
@@ -73,11 +65,11 @@ const registerNativeCommands = (cli, logger) => {
73
65
  };
74
66
  const registerReferenceSourceCommand = (cli, logger) => {
75
67
  cli.command(CLI_COMMANDS.importReferenceSource, {
76
- description: "Import a bounded source tree as historical reference only",
68
+ description: "Import a source tree as historical reference only",
77
69
  args: z.object({
78
70
  root: z
79
71
  .string()
80
- .describe("Source root allowed by REA_REFERENCE_ROOTS_JSON"),
72
+ .describe("Local source directory to import as historical reference"),
81
73
  }),
82
74
  run: ({ args }) => logCliCommand(logger, "import-reference-source", async () => {
83
75
  const config = parseConfig(process.env);
@@ -86,32 +78,6 @@ const registerReferenceSourceCommand = (cli, logger) => {
86
78
  error: "Import failed",
87
79
  ...projectAnalysisError(config.error),
88
80
  };
89
- const authority = await loadConfiguredPermissionAuthority(config.value);
90
- if (!authority.ok)
91
- return {
92
- error: "Import failed",
93
- ...projectAnalysisError(authority.error),
94
- };
95
- const authorized = await authority.value.authorize({
96
- capability: "reference_read",
97
- roots: [args.root],
98
- executables: [],
99
- environment_names: [],
100
- network: "none",
101
- mount: false,
102
- operation_identity: `import_reference_source:${args.root}`,
103
- }, "read");
104
- if (!authorized.ok) {
105
- const error = authorized.error instanceof PermissionRequiredError
106
- ? authorized.error
107
- : new AnalysisProtocolError(authorized.error.message, {
108
- cause: authorized.error,
109
- });
110
- return {
111
- error: "Import failed",
112
- ...projectAnalysisError(error),
113
- };
114
- }
115
81
  const imported = await importReferenceSource({
116
82
  root: args.root,
117
83
  caller: "rea-cli",
package/dist/cli.js CHANGED
@@ -7,7 +7,6 @@ import { registerCoreAnalysisCommands } from "./cli/coreAnalysisCommands.js";
7
7
  import { registerUtilityCommands } from "./cli/utilityCommands.js";
8
8
  import { registerArtifactCommands } from "./cli/artifactCommands.js";
9
9
  import { registerManagedCommands } from "./cli/managedCommands.js";
10
- import { registerInvestigationCommands } from "./cliInvestigationCommands.js";
11
10
  import { registerEvidenceCommands } from "./cliEvidenceCommands.js";
12
11
  import { registerProcessCommands } from "./cliProcessCommands.js";
13
12
  import { registerPolicyCommands } from "./cliPolicyCommands.js";
@@ -48,7 +47,6 @@ export const createCli = () => {
48
47
  registerUtilityCommands(cli, logger);
49
48
  registerArtifactCommands(cli, logger);
50
49
  registerManagedCommands(cli, logger);
51
- registerInvestigationCommands(cli, logger);
52
50
  registerEvidenceCommands(cli, logger);
53
51
  registerProcessCommands(cli, logger);
54
52
  registerPolicyCommands(cli, logger);
@@ -1,22 +1,26 @@
1
1
  import { Cli, z } from "incur";
2
2
  import { compareApplicationVersionsEvidenceValidated, compareJavaScriptExportShapesEvidenceValidated, compareSourceToBundleEvidenceValidated, traceApplicationFeatureEvidenceValidated, } from "./application/JavaScriptApplicationWorkflowService.js";
3
3
  import { traceJavaScriptSemanticsEvidenceValidated } from "./application/JavaScriptSemanticTraceService.js";
4
- import { resolveCompareApplicationVersionsRequest, resolveCompareJavaScriptExportShapesRequest, resolveCompareSourceToBundleRequest, resolveTraceApplicationFeatureRequest, resolveTraceJavaScriptSemanticsRequest, } from "./application/ApplicationWorkflowEvidenceResolver.js";
5
- import { readEvidenceBundle } from "./application/EvidenceBundleFiles.js";
6
4
  import { runControlledReplay } from "./application/JavaScriptReplayService.js";
7
5
  import { executeNodeCharacterization, prepareNodeCharacterization, } from "./application/NodeRuntimeCharacterizationService.js";
8
- import { commitReconstructionCoverage, queryReconstructionCoverage, reconstructionCoverageCommitInputSchema, reconstructionCoverageQueryInputSchema, } from "./application/ReconstructionCoverageService.js";
9
- import { buildReconstructionObligationLedgerEvidenceValidated, resolveReconstructionObligationLedgerRequest, } from "./application/ReconstructionObligationLedgerService.js";
10
- import { evaluateReconstructionReadinessValidated, resolveReconstructionReadinessRequest, } from "./application/ReconstructionReadinessService.js";
11
- import { authorizeFileReadWithDeferredWrite, authorizeRootPermission, } from "./application/DeferredFileAuthorization.js";
6
+ import { evaluateReconstructionCoverage, reconstructionCoverageEvaluationInputSchema, } from "./application/ReconstructionCoverageService.js";
7
+ import { buildReconstructionObligationLedgerEvidenceValidated } from "./application/ReconstructionObligationLedgerService.js";
12
8
  import { loadConfiguredPermissionAuthority } from "./application/PermissionConfiguration.js";
13
9
  import { CLI_COMMANDS } from "./cliCommandNames.js";
14
10
  import { parseCliJsonInput } from "./cliJsonInput.js";
15
11
  import { logCliCommand } from "./cliLogging.js";
16
12
  import { AnalysisInputError, projectAnalysisError, } from "./domain/errors.js";
13
+ import { jsonValueSchema } from "./domain/jsonValue.js";
17
14
  import { parseConfig } from "./config.js";
18
15
  import { LinuxJavaScriptReplayRunner } from "./replay/LinuxJavaScriptReplayRunner.js";
19
16
  import { SystemJavaScriptReplayHost } from "./replay/SystemJavaScriptReplayHost.js";
17
+ import { traceApplicationFeatureInputSchema } from "./domain/javascriptFeatureTraceSchemas.js";
18
+ import { traceJavaScriptSemanticsInputSchema } from "./domain/javascriptSemanticTraceSchemas.js";
19
+ import { compareApplicationVersionsInputSchema } from "./domain/javascriptApplicationVersionComparisonSchemas.js";
20
+ import { compareSourceToBundleInputSchema } from "./domain/sourceToBundleComparisonSchemas.js";
21
+ import { compareJavaScriptExportShapesInputSchema } from "./domain/javascriptExportShapeComparisonSchemas.js";
22
+ import { projectInputIssues } from "./domain/inputIssueProjection.js";
23
+ import { reconstructionObligationLedgerInputSchema } from "./domain/reconstructionObligationLedgerSchemas.js";
20
24
  /** Register CLI equivalents of provider-neutral application graph workflows. */
21
25
  export const registerApplicationCommands = (cli, logger) => {
22
26
  registerJsonCommand({
@@ -24,7 +28,7 @@ export const registerApplicationCommands = (cli, logger) => {
24
28
  logger,
25
29
  name: CLI_COMMANDS.traceApplicationFeature,
26
30
  description: "Trace a typed seed through authenticated application Evidence JSON",
27
- resolveInput: resolveTraceApplicationFeatureRequest,
31
+ inputSchema: traceApplicationFeatureInputSchema,
28
32
  workflow: traceApplicationFeatureEvidenceValidated,
29
33
  });
30
34
  registerJsonCommand({
@@ -32,7 +36,7 @@ export const registerApplicationCommands = (cli, logger) => {
32
36
  logger,
33
37
  name: CLI_COMMANDS.traceJavaScriptSemantics,
34
38
  description: "Trace bounded static semantic relations through authenticated application Evidence",
35
- resolveInput: resolveTraceJavaScriptSemanticsRequest,
39
+ inputSchema: traceJavaScriptSemanticsInputSchema,
36
40
  workflow: traceJavaScriptSemanticsEvidenceValidated,
37
41
  });
38
42
  registerJsonCommand({
@@ -40,7 +44,7 @@ export const registerApplicationCommands = (cli, logger) => {
40
44
  logger,
41
45
  name: CLI_COMMANDS.compareApplicationVersions,
42
46
  description: "Compare two authenticated JavaScript Application Graph versions",
43
- resolveInput: resolveCompareApplicationVersionsRequest,
47
+ inputSchema: compareApplicationVersionsInputSchema,
44
48
  workflow: compareApplicationVersionsEvidenceValidated,
45
49
  });
46
50
  registerJsonCommand({
@@ -48,7 +52,7 @@ export const registerApplicationCommands = (cli, logger) => {
48
52
  logger,
49
53
  name: CLI_COMMANDS.compareSourceToBundle,
50
54
  description: "Compare committed historical source with authenticated application Evidence",
51
- resolveInput: resolveCompareSourceToBundleRequest,
55
+ inputSchema: compareSourceToBundleInputSchema,
52
56
  workflow: compareSourceToBundleEvidenceValidated,
53
57
  });
54
58
  registerJsonCommand({
@@ -56,7 +60,7 @@ export const registerApplicationCommands = (cli, logger) => {
56
60
  logger,
57
61
  name: CLI_COMMANDS.compareJavaScriptExportShapes,
58
62
  description: "Compare exact static JavaScript export return shapes without execution",
59
- resolveInput: resolveCompareJavaScriptExportShapesRequest,
63
+ inputSchema: compareJavaScriptExportShapesInputSchema,
60
64
  workflow: compareJavaScriptExportShapesEvidenceValidated,
61
65
  });
62
66
  cli.command(CLI_COMMANDS.runControlledReplay, {
@@ -98,24 +102,20 @@ export const registerApplicationCommands = (cli, logger) => {
98
102
  workflow: (config, authority, input) => executeNodeCharacterization(replayDependencies(config, authority), input),
99
103
  });
100
104
  registerObligationLedgerCommand(cli, logger);
101
- registerReadinessCommand(cli, logger);
102
- registerCoverageCommands(cli, logger);
105
+ registerCoverageCommand(cli, logger);
103
106
  };
104
107
  const registerObligationLedgerCommand = (cli, logger) => registerJsonCommand({
105
108
  cli,
106
109
  logger,
107
110
  name: CLI_COMMANDS.buildReconstructionObligationLedger,
108
111
  description: "Generate a deterministic Evidence-backed reconstruction obligation ledger page",
109
- resolveInput: resolveReconstructionObligationLedgerRequest,
110
- workflow: buildReconstructionObligationLedgerEvidenceValidated,
111
- });
112
- const registerReadinessCommand = (cli, logger) => registerJsonCommand({
113
- cli,
114
- logger,
115
- name: CLI_COMMANDS.evaluateReconstructionReadiness,
116
- description: "Evaluate a complete Evidence-backed reconstruction readiness journey",
117
- resolveInput: resolveReconstructionReadinessRequest,
118
- workflow: evaluateReconstructionReadinessValidated,
112
+ inputSchema: reconstructionObligationLedgerInputSchema,
113
+ workflow: (input) => {
114
+ const result = buildReconstructionObligationLedgerEvidenceValidated(input);
115
+ return result.ok
116
+ ? { ok: true, value: jsonValueSchema.parse(result.value) }
117
+ : result;
118
+ },
119
119
  });
120
120
  const registerAuthorizedJsonCommand = ({ cli, logger, name, description, workflow, }) => {
121
121
  cli.command(name, {
@@ -135,57 +135,19 @@ const registerAuthorizedJsonCommand = ({ cli, logger, name, description, workflo
135
135
  }),
136
136
  });
137
137
  };
138
- const registerCoverageCommands = (cli, logger) => {
139
- registerAuthorizedJsonCommand({
140
- cli,
141
- logger,
142
- name: CLI_COMMANDS.commitReconstructionCoverage,
143
- description: "Commit one canonical reconstruction coverage workspace revision",
144
- workflow: async (config, authority, input) => {
145
- const parsed = reconstructionCoverageCommitInputSchema.safeParse(input);
146
- if (!parsed.success)
147
- return {
148
- ok: false,
149
- error: new AnalysisInputError(CLI_COMMANDS.commitReconstructionCoverage, { cause: parsed.error }),
150
- };
151
- const authorization = await authorizeFileReadWithDeferredWrite(authority, {
152
- path: parsed.data.workspace_path,
153
- readCapability: "investigation_workspace_read",
154
- writeCapability: "investigation_workspace_write",
155
- operation: CLI_COMMANDS.commitReconstructionCoverage,
156
- });
157
- if (!authorization.ok)
158
- return authorization;
159
- const write = await authorization.value.authorizeWrite();
160
- if (!write.ok)
161
- return write;
162
- return commitReconstructionCoverage(parsed.data, config.evidenceFilePolicy);
163
- },
164
- });
165
- registerAuthorizedJsonCommand({
166
- cli,
167
- logger,
168
- name: CLI_COMMANDS.queryReconstructionCoverage,
169
- description: "Evaluate one fail-closed reconstruction coverage boundary",
170
- workflow: async (config, authority, input) => {
171
- const parsed = reconstructionCoverageQueryInputSchema.safeParse(input);
172
- if (!parsed.success)
173
- return {
174
- ok: false,
175
- error: new AnalysisInputError(CLI_COMMANDS.queryReconstructionCoverage, { cause: parsed.error }),
176
- };
177
- const authorized = await authorizeRootPermission(authority, {
178
- capability: "investigation_workspace_read",
179
- roots: [parsed.data.workspace_path],
180
- access: "read",
181
- operation: CLI_COMMANDS.queryReconstructionCoverage,
182
- });
183
- if (!authorized.ok)
184
- return authorized;
185
- return queryReconstructionCoverage(parsed.data, config.evidenceFilePolicy, Date.now());
186
- },
187
- });
188
- };
138
+ const registerCoverageCommand = (cli, logger) => registerJsonCommand({
139
+ cli,
140
+ logger,
141
+ name: CLI_COMMANDS.evaluateReconstructionCoverage,
142
+ description: "Evaluate inline fail-closed reconstruction coverage",
143
+ inputSchema: reconstructionCoverageEvaluationInputSchema,
144
+ workflow: (input) => {
145
+ const result = evaluateReconstructionCoverage(input);
146
+ return result.ok
147
+ ? { ok: true, value: jsonValueSchema.parse(result.value) }
148
+ : result;
149
+ },
150
+ });
189
151
  const configuredAuthority = async () => {
190
152
  const configured = await loadConfiguredAuthority();
191
153
  return configured.ok
@@ -198,35 +160,23 @@ const replayDependencies = (config, authority) => ({
198
160
  runner: new LinuxJavaScriptReplayRunner(),
199
161
  authority,
200
162
  });
201
- const registerJsonCommand = ({ cli, logger, name, description, resolveInput, workflow, }) => {
163
+ const registerJsonCommand = ({ cli, logger, name, description, inputSchema, workflow, }) => {
202
164
  cli.command(name, {
203
165
  description,
204
166
  args: z.object({
205
167
  inputJson: z.string().describe("Inline workflow JSON or JSON file path"),
206
168
  }),
207
- options: z.object({
208
- evidenceBundle: z
209
- .string()
210
- .optional()
211
- .describe("Authorized Evidence bundle used to resolve Evidence IDs"),
212
- }),
213
- run: ({ args, options }) => logCliCommand(logger, name, async () => {
169
+ run: ({ args }) => logCliCommand(logger, name, async () => {
214
170
  const input = await parseCliJsonInput(args.inputJson, name);
215
171
  if (!input.ok)
216
172
  return input.error;
217
- const lookup = await loadEvidenceLookup(options.evidenceBundle, name);
218
- if (!lookup.ok)
219
- return {
220
- error: "Application workflow failed",
221
- ...projectAnalysisError(lookup.error),
222
- };
223
- const resolved = resolveInput(input.value, lookup.value);
224
- if (!resolved.ok)
173
+ const parsed = inputSchema.safeParse(input.value);
174
+ if (!parsed.success)
225
175
  return {
226
176
  error: "Application workflow failed",
227
- ...projectAnalysisError(resolved.error),
177
+ ...projectAnalysisError(new AnalysisInputError(name, undefined, projectInputIssues(parsed.error.issues, input.value))),
228
178
  };
229
- const result = workflow(resolved.value);
179
+ const result = workflow(parsed.data);
230
180
  return result.ok
231
181
  ? result.value
232
182
  : {
@@ -236,26 +186,6 @@ const registerJsonCommand = ({ cli, logger, name, description, resolveInput, wor
236
186
  }),
237
187
  });
238
188
  };
239
- const loadEvidenceLookup = async (bundlePath, operation) => {
240
- if (bundlePath === undefined)
241
- return { ok: true, value: undefined };
242
- const configured = await loadConfiguredAuthority();
243
- if (!configured.ok)
244
- return configured;
245
- const authorized = await authorizeRootPermission(configured.authority, {
246
- capability: "evidence_read",
247
- roots: [bundlePath],
248
- access: "read",
249
- operation,
250
- });
251
- if (!authorized.ok)
252
- return authorized;
253
- const loaded = await readEvidenceBundle(bundlePath, configured.config.evidenceFilePolicy);
254
- if (!loaded.ok)
255
- return loaded;
256
- const records = new Map(loaded.value.records.map((record) => [record.evidence_id, record]));
257
- return { ok: true, value: (evidenceId) => records.get(evidenceId) };
258
- };
259
189
  const loadConfiguredAuthority = async () => {
260
190
  const config = parseConfig(process.env);
261
191
  if (!config.ok)
@@ -1,21 +1,14 @@
1
1
  import { Cli, z } from "incur";
2
+ import { browserContext, browserCliError } from "./cliBrowserContext.js";
3
+ import { browserScopeOptions } from "./cliObservationOptions.js";
2
4
  import { captureWebScreenshot, compareWebCaptureEvidence, compareWebScreenshotEvidence, discoverWebMcpTools, } from "./application/BrowserObservationService.js";
3
- import { loadConfiguredPermissionAuthority } from "./application/PermissionConfiguration.js";
4
5
  import { CdpBrowserProvider } from "./browser/CdpBrowserProvider.js";
5
6
  import { logCliCommand } from "./cliLogging.js";
6
- import { parseConfig } from "./config.js";
7
- import { AnalysisCapabilityUnavailableError, AnalysisInputError, projectAnalysisError, } from "./domain/errors.js";
7
+ import { AnalysisInputError } from "./domain/errors.js";
8
8
  import { browserCaptureComparisonInputSchema } from "./domain/browserCaptureComparison.js";
9
9
  import { discoverWebMcpToolsInputSchema } from "./domain/webMcpDiscovery.js";
10
10
  import { captureWebScreenshotInputSchema, compareWebScreenshotsInputSchema, } from "./domain/webScreenshot.js";
11
11
  import { CLI_COMMANDS } from "./cliCommandNames.js";
12
- const scopeOptions = {
13
- allowedOrigins: z
14
- .array(z.string().min(1))
15
- .optional()
16
- .describe("Exact origins to observe; defaults to REA_BROWSER_ALLOWED_ORIGINS_JSON"),
17
- approved: z.boolean().default(false).describe("Approve passive observation"),
18
- };
19
12
  /** Register WebMCP, capture-diff, and screenshot CLI equivalents. */
20
13
  export const registerAdvancedBrowserCommands = (cli, logger) => {
21
14
  registerWebMcp(cli, logger);
@@ -31,42 +24,13 @@ const registerWebMcp = (cli, logger) => {
31
24
  targetId: z.string().describe("Target ID from list-browser-targets"),
32
25
  }),
33
26
  options: z.object({
34
- ...scopeOptions,
27
+ ...browserScopeOptions,
35
28
  observationMs: z
36
29
  .number()
37
30
  .int()
38
31
  .min(0)
39
- .max(10_000)
40
32
  .default(100)
41
33
  .describe("Observation duration in milliseconds"),
42
- maxTools: z
43
- .number()
44
- .int()
45
- .min(1)
46
- .max(5_000)
47
- .default(500)
48
- .describe("Maximum page-declared WebMCP tools to return"),
49
- maxSchemaBytes: z
50
- .number()
51
- .int()
52
- .min(1)
53
- .max(1_024 * 1_024)
54
- .default(256 * 1_024)
55
- .describe("Maximum serialized size of one declared tool schema"),
56
- maxSchemaNodes: z
57
- .number()
58
- .int()
59
- .min(1)
60
- .max(100_000)
61
- .default(5_000)
62
- .describe("Maximum nodes in one declared tool schema"),
63
- maxSchemaDepth: z
64
- .number()
65
- .int()
66
- .min(1)
67
- .max(100)
68
- .default(20)
69
- .describe("Maximum nesting depth in one declared tool schema"),
70
34
  }),
71
35
  run: ({ args, options }) => logCliCommand(logger, "discover-webmcp-tools", async () => {
72
36
  const context = await browserContext("discover_webmcp_tools");
@@ -76,17 +40,12 @@ const registerWebMcp = (cli, logger) => {
76
40
  cdp_endpoint: args.endpoint,
77
41
  allowed_origins: options.allowedOrigins ?? context.allowedBrowserOrigins,
78
42
  target_id: args.targetId,
79
- approved: options.approved,
80
43
  observation_ms: options.observationMs,
81
- max_tools: options.maxTools,
82
- max_schema_bytes: options.maxSchemaBytes,
83
- max_schema_nodes: options.maxSchemaNodes,
84
- max_schema_depth: options.maxSchemaDepth,
85
44
  });
86
45
  if (!parsed.success)
87
46
  return inputError("discover_webmcp_tools");
88
47
  const result = await discoverWebMcpTools(context.provider, context.authority, parsed.data);
89
- return result.ok ? result.value : cliError(result.error);
48
+ return result.ok ? result.value : browserCliError(result.error);
90
49
  }),
91
50
  });
92
51
  };
@@ -98,13 +57,6 @@ const registerCaptureDiff = (cli, logger) => {
98
57
  afterJson: z.string().describe("Later normalized web capture JSON"),
99
58
  }),
100
59
  options: z.object({
101
- maxChanges: z
102
- .number()
103
- .int()
104
- .min(1)
105
- .max(20_000)
106
- .default(2_000)
107
- .describe("Maximum normalized changes to return"),
108
60
  normalizationJson: z
109
61
  .string()
110
62
  .default('{"rules":[]}')
@@ -117,19 +69,17 @@ const registerCaptureDiff = (cli, logger) => {
117
69
  before_scenario: before,
118
70
  after_scenario: after,
119
71
  normalization: parseJson(options.normalizationJson),
120
- max_changes: options.maxChanges,
121
72
  });
122
73
  const parsed = scenarioComparison.success
123
74
  ? scenarioComparison
124
75
  : browserCaptureComparisonInputSchema.safeParse({
125
76
  before,
126
77
  after,
127
- max_changes: options.maxChanges,
128
78
  });
129
79
  if (!parsed.success)
130
80
  return inputError("compare_web_captures");
131
81
  const result = await compareWebCaptureEvidence(new CdpBrowserProvider(), parsed.data);
132
- return result.ok ? result.value : cliError(result.error);
82
+ return result.ok ? result.value : browserCliError(result.error);
133
83
  }),
134
84
  });
135
85
  };
@@ -141,18 +91,7 @@ const registerScreenshot = (cli, logger) => {
141
91
  targetId: z.string().describe("Target ID from list-browser-targets"),
142
92
  }),
143
93
  options: z.object({
144
- ...scopeOptions,
145
- screenshotApproved: z
146
- .boolean()
147
- .default(false)
148
- .describe("Approve capturing the visible page viewport"),
149
- maximumImageBytes: z
150
- .number()
151
- .int()
152
- .min(1)
153
- .max(8 * 1_024 * 1_024)
154
- .default(4 * 1_024 * 1_024)
155
- .describe("Maximum captured PNG size"),
94
+ ...browserScopeOptions,
156
95
  }),
157
96
  run: ({ args, options }) => logCliCommand(logger, "capture-web-screenshot", async () => {
158
97
  const context = await browserContext("capture_web_screenshot");
@@ -162,14 +101,11 @@ const registerScreenshot = (cli, logger) => {
162
101
  cdp_endpoint: args.endpoint,
163
102
  allowed_origins: options.allowedOrigins ?? context.allowedBrowserOrigins,
164
103
  target_id: args.targetId,
165
- approved: options.approved,
166
- screenshot_approved: options.screenshotApproved,
167
- maximum_image_bytes: options.maximumImageBytes,
168
104
  });
169
105
  if (!parsed.success)
170
106
  return inputError("capture_web_screenshot");
171
107
  const result = await captureWebScreenshot(context.provider, context.authority, parsed.data);
172
- return result.ok ? result.value : cliError(result.error);
108
+ return result.ok ? result.value : browserCliError(result.error);
173
109
  }),
174
110
  });
175
111
  };
@@ -188,48 +124,20 @@ const registerScreenshotDiff = (cli, logger) => {
188
124
  .max(255)
189
125
  .default(0)
190
126
  .describe("Per-channel difference threshold for changed pixels"),
191
- maximumPixels: z
192
- .number()
193
- .int()
194
- .min(1)
195
- .max(32_000_000)
196
- .default(16_000_000)
197
- .describe("Maximum decoded pixels per screenshot"),
198
127
  }),
199
128
  run: ({ args, options }) => logCliCommand(logger, "compare-web-screenshots", async () => {
200
129
  const parsed = compareWebScreenshotsInputSchema.safeParse({
201
130
  before: parseJson(args.beforeJson),
202
131
  after: parseJson(args.afterJson),
203
132
  channel_threshold: options.channelThreshold,
204
- maximum_pixels: options.maximumPixels,
205
133
  });
206
134
  if (!parsed.success)
207
135
  return inputError("compare_web_screenshots");
208
136
  const result = await compareWebScreenshotEvidence(new CdpBrowserProvider(), parsed.data);
209
- return result.ok ? result.value : cliError(result.error);
137
+ return result.ok ? result.value : browserCliError(result.error);
210
138
  }),
211
139
  });
212
140
  };
213
- const browserContext = async (operation) => {
214
- const config = parseConfig(process.env);
215
- if (!config.ok)
216
- return { ok: false, error: cliError(config.error) };
217
- const policy = config.value.browserObservationPolicy;
218
- if (policy.status === "disabled")
219
- return {
220
- ok: false,
221
- error: cliError(new AnalysisCapabilityUnavailableError("rea-cdp-browser", operation, "browser observation is disabled; configure exact endpoints and origins before enabling it")),
222
- };
223
- const authority = await loadConfiguredPermissionAuthority(config.value);
224
- if (!authority.ok)
225
- return { ok: false, error: cliError(authority.error) };
226
- return {
227
- ok: true,
228
- authority: authority.value,
229
- provider: new CdpBrowserProvider(),
230
- allowedBrowserOrigins: policy.allowedOrigins,
231
- };
232
- };
233
141
  const parseJson = (value) => {
234
142
  try {
235
143
  return JSON.parse(value);
@@ -238,8 +146,4 @@ const parseJson = (value) => {
238
146
  return undefined;
239
147
  }
240
148
  };
241
- const inputError = (operation) => cliError(new AnalysisInputError(operation));
242
- const cliError = (error) => ({
243
- error: "Browser observation failed",
244
- ...projectAnalysisError(error),
245
- });
149
+ const inputError = (operation) => browserCliError(new AnalysisInputError(operation));