rea-agents 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/README.md +83 -108
  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/AnalysisContextQueries.js +21 -9
  6. package/dist/application/AnalysisSnapshotCache.js +0 -1
  7. package/dist/application/AnalysisSnapshotFiles.js +7 -7
  8. package/dist/application/AndroidApplicationService.js +1 -1
  9. package/dist/application/AppleApplicationService.js +1 -1
  10. package/dist/application/ArtifactExtraction.js +35 -54
  11. package/dist/application/ArtifactExtractionDestination.js +17 -0
  12. package/dist/application/ArtifactGraphConstruction.js +2 -17
  13. package/dist/application/ArtifactInventory/classify.js +2 -6
  14. package/dist/application/ArtifactInventory/hash.js +2 -20
  15. package/dist/application/ArtifactInventory/policy.js +17 -0
  16. package/dist/application/ArtifactInventory/reader.js +1 -4
  17. package/dist/application/ArtifactInventory/scanCanonical.js +8 -15
  18. package/dist/application/ArtifactInventory/scanReader.js +76 -58
  19. package/dist/application/ArtifactInventory/types.js +1 -5
  20. package/dist/application/ArtifactInventory.js +6 -14
  21. package/dist/application/AuthorizedArtifactInventory.js +3 -13
  22. package/dist/application/BinarySession.js +54 -28
  23. package/dist/application/BinarySessionComposition.js +0 -11
  24. package/dist/application/BinarySessionOpen.js +2 -1
  25. package/dist/application/BinarySessionRecords.js +24 -86
  26. package/dist/application/BinarySessionStatus.js +16 -21
  27. package/dist/application/BinaryTargetResolver.js +216 -0
  28. package/dist/application/BrowserEvidence.js +39 -57
  29. package/dist/application/BrowserObservationService.js +3 -6
  30. package/dist/application/BrowserScenarioCaptureService.js +3 -6
  31. package/dist/application/BrowserScenarioEvidence.js +3 -3
  32. package/dist/application/CallPathTracing.js +2 -36
  33. package/dist/application/CapabilityClientRequirements.js +26 -0
  34. package/dist/application/CapabilityInventory.js +143 -77
  35. package/dist/application/ClientConfigurationDocument.js +27 -0
  36. package/dist/application/ClientRegistrationStatus.js +16 -13
  37. package/dist/application/CommandShimReplay.js +14 -1
  38. package/dist/application/DirectAnalysis.js +22 -46
  39. package/dist/application/DirectAnalysisStatus.js +5 -61
  40. package/dist/application/Doctor.js +11 -32
  41. package/dist/application/DoctorDiagnostics.js +1 -2
  42. package/dist/application/DoctorScope.js +1 -1
  43. package/dist/application/ElectronActiveEvidence.js +50 -0
  44. package/dist/application/ElectronActiveObservationPort.js +1 -0
  45. package/dist/application/ElectronActiveObservationService.js +78 -0
  46. package/dist/application/ElectronBoundaryAnalysis.js +7 -8
  47. package/dist/application/ElectronBoundaryGraphContext.js +1 -1
  48. package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
  49. package/dist/application/ElectronBoundaryGraphNative.js +1 -2
  50. package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
  51. package/dist/application/ElectronEvidence.js +4 -7
  52. package/dist/application/ElectronObservationService.js +5 -9
  53. package/dist/application/EnhancedLiteralTracing.js +42 -65
  54. package/dist/application/EnhancedTools.js +98 -64
  55. package/dist/application/EvidenceBundleCommands.js +16 -12
  56. package/dist/application/EvidenceBundleFiles.js +9 -15
  57. package/dist/application/EvidenceLedger.js +14 -42
  58. package/dist/application/FilesystemSnapshot.js +2 -3
  59. package/dist/application/InterfaceBuilderAnalysis.js +266 -0
  60. package/dist/application/InventoryProjectionEvidence.js +4 -2
  61. package/dist/application/InvestigationProviders.js +1 -1
  62. package/dist/application/JavaScriptApplicationEvidence.js +2 -5
  63. package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
  64. package/dist/application/JavaScriptApplicationService.js +6 -29
  65. package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
  66. package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
  67. package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
  68. package/dist/application/JavaScriptArtifactFiles.js +67 -107
  69. package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
  70. package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
  71. package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
  72. package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
  73. package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
  74. package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
  75. package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
  76. package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
  77. package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
  78. package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
  79. package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
  80. package/dist/application/JavaScriptJsonModules.js +2 -2
  81. package/dist/application/JavaScriptModuleRelationships.js +22 -27
  82. package/dist/application/JavaScriptReplayPermission.js +1 -1
  83. package/dist/application/JavaScriptReplayPlanning.js +9 -3
  84. package/dist/application/JavaScriptReplayService.js +29 -47
  85. package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
  86. package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
  87. package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
  88. package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
  89. package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
  90. package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
  91. package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
  92. package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
  93. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
  94. package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
  95. package/dist/application/JavaScriptSemanticTraceService.js +1 -10
  96. package/dist/application/JsonFiles.js +79 -0
  97. package/dist/application/LinuxHopper.js +11 -9
  98. package/dist/application/LoopbackReplay.js +26 -23
  99. package/dist/application/LoopbackReplayRecorder.js +29 -1
  100. package/dist/application/ManagedApplicationGraphService.js +1 -2
  101. package/dist/application/ManagedMemberComparisonService.js +11 -41
  102. package/dist/application/ManagedNativeVerificationService.js +1 -2
  103. package/dist/application/ManagedReconstructionService.js +1 -1
  104. package/dist/application/ManagedRuntimeCorrelationService.js +14 -13
  105. package/dist/application/NativeApiInspection.js +2 -7
  106. package/dist/application/NativeUiActionTrace.js +394 -0
  107. package/dist/application/NodeRuntimeCharacterizationService.js +11 -16
  108. package/dist/application/PermissionAuthority.js +15 -7
  109. package/dist/application/PermissionFailure.js +5 -0
  110. package/dist/application/ProcessCaptureAuthority.js +5 -7
  111. package/dist/application/ProcessCaptureJournal.js +3 -2
  112. package/dist/application/ProcessCaptureLifecycle.js +10 -12
  113. package/dist/application/ProcessCheckpoints.js +29 -11
  114. package/dist/application/ProcessCli.js +8 -17
  115. package/dist/application/ProcessEvidence.js +5 -7
  116. package/dist/application/ProcessHarness.js +60 -20
  117. package/dist/application/ProcessNormalization.js +2 -1
  118. package/dist/application/ProcessReactiveCoordinator.js +2 -4
  119. package/dist/application/ProcessReactiveEffects.js +9 -3
  120. package/dist/application/ProcessReactiveHarness.js +13 -7
  121. package/dist/application/ProcessSampling.js +2 -4
  122. package/dist/application/ProcessTimer.js +39 -0
  123. package/dist/application/ProjectPermissionStore.js +39 -95
  124. package/dist/application/RealHopperAssertions.js +20 -66
  125. package/dist/application/ReconstructionCoverageService.js +12 -58
  126. package/dist/application/ReconstructionObligationAuthority.js +2 -2
  127. package/dist/application/ReconstructionObligationCandidates.js +4 -4
  128. package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
  129. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
  130. package/dist/application/ReconstructionObligationLedgerService.js +19 -38
  131. package/dist/application/ReferenceSourceImport.js +21 -47
  132. package/dist/application/ReferenceSourceImportEntries.js +2 -4
  133. package/dist/application/ReferenceSourceImportPolicy.js +5 -32
  134. package/dist/application/ReferenceSourceImportTypes.js +0 -16
  135. package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
  136. package/dist/application/SessionProviderRouter.js +2 -2
  137. package/dist/application/Setup.js +1 -3
  138. package/dist/application/SetupClientConfiguration.js +22 -88
  139. package/dist/application/SetupRegistrationEnvironment.js +0 -7
  140. package/dist/application/StoreFileLock.js +119 -0
  141. package/dist/application/TerminalRenderer.js +2 -3
  142. package/dist/application/Uninstall.js +9 -14
  143. package/dist/application/UnknownEvidence.js +1 -1
  144. package/dist/application/WindowsCapabilities.js +5 -4
  145. package/dist/artifacts/ArtifactPaths.js +2 -5
  146. package/dist/artifacts/ArtifactProvider.js +43 -67
  147. package/dist/artifacts/DirectoryArtifactReader.js +13 -8
  148. package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
  149. package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
  150. package/dist/artifacts/NibArchive.js +269 -0
  151. package/dist/artifacts/SafeOutputTree.js +21 -31
  152. package/dist/browser/BrowserProcessStartup.js +1 -2
  153. package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
  154. package/dist/browser/CdpBrowserProvider.js +3 -13
  155. package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
  156. package/dist/browser/CdpCaptureDocuments.js +28 -76
  157. package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
  158. package/dist/browser/CdpCaptureEventHandlers.js +22 -87
  159. package/dist/browser/CdpCaptureEvents.js +2 -8
  160. package/dist/browser/CdpCaptureStorage.js +9 -20
  161. package/dist/browser/CdpCaptureStorageFingerprints.js +85 -95
  162. package/dist/browser/CdpCaptureValues.js +21 -21
  163. package/dist/browser/CdpConnection.js +10 -25
  164. package/dist/browser/CdpElectronInspection.js +29 -51
  165. package/dist/browser/CdpElectronProvider.js +10 -35
  166. package/dist/browser/CdpElectronScriptEvents.js +8 -16
  167. package/dist/browser/CdpElectronScripts.js +6 -35
  168. package/dist/browser/CdpElectronWorkers.js +6 -10
  169. package/dist/browser/CdpEndpoint.js +25 -41
  170. package/dist/browser/CdpObservationSession.js +14 -26
  171. package/dist/browser/CdpPageCapture.js +34 -48
  172. package/dist/browser/CdpPageCaptureScripts.js +1 -19
  173. package/dist/browser/CdpPageCaptureWorkers.js +6 -10
  174. package/dist/browser/CdpSafeMetadata.js +19 -22
  175. package/dist/browser/CdpScreenshot.js +3 -5
  176. package/dist/browser/CdpTargetSession.js +1 -2
  177. package/dist/browser/CdpWebMcpDiscovery.js +13 -22
  178. package/dist/browser/ElectronFileScope.js +8 -19
  179. package/dist/browser/JavaScriptRuntimeScope.js +10 -10
  180. package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
  181. package/dist/browser/PlaywrightElectronActiveActions.js +309 -0
  182. package/dist/browser/PlaywrightElectronActiveProvider.js +274 -0
  183. package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
  184. package/dist/browser/PlaywrightScenarioActions.js +3 -7
  185. package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
  186. package/dist/browser/PlaywrightScenarioBrowser.js +7 -9
  187. package/dist/browser/PlaywrightScenarioEvents.js +45 -94
  188. package/dist/browser/PlaywrightScenarioSession.js +18 -34
  189. package/dist/browser/PngVisualDiff.js +22 -14
  190. package/dist/browser/SensitiveTextCapture.js +1 -18
  191. package/dist/browser/V8InspectorCaptureProjection.js +7 -7
  192. package/dist/browser/V8InspectorEndpoint.js +12 -14
  193. package/dist/browser/V8InspectorProvider.js +20 -61
  194. package/dist/browser/WebSourceMapFetcher.js +56 -176
  195. package/dist/catalogIdentity.js +12 -60
  196. package/dist/cli/artifactCommands.js +49 -77
  197. package/dist/cli/coreAnalysisCommands.js +83 -133
  198. package/dist/cli/javascriptApplicationAnalysis.js +1 -9
  199. package/dist/cli/managedCommands.js +6 -271
  200. package/dist/cli/setupCommands.js +3 -12
  201. package/dist/cli/utilityCommands.js +7 -41
  202. package/dist/cli.js +0 -2
  203. package/dist/cliApplicationCommands.js +44 -114
  204. package/dist/cliBrowserAdvancedCommands.js +12 -102
  205. package/dist/cliBrowserCommands.js +19 -124
  206. package/dist/cliBrowserContext.js +30 -0
  207. package/dist/cliCommandNames.js +5 -5
  208. package/dist/cliElectronCommands.js +49 -71
  209. package/dist/cliEvidenceCommands.js +8 -77
  210. package/dist/cliJavaScriptRuntimeCommands.js +18 -92
  211. package/dist/cliJsonInput.js +4 -14
  212. package/dist/cliObservationOptions.js +11 -92
  213. package/dist/cliPolicyCommands.js +2 -16
  214. package/dist/cliProcessCommands.js +3 -3
  215. package/dist/cliSetup.js +0 -13
  216. package/dist/config/browserScenario.js +77 -0
  217. package/dist/config/electronAutomation.js +35 -0
  218. package/dist/config/environment.js +6 -9
  219. package/dist/config/javascriptReplay.js +41 -0
  220. package/dist/config/managedRuntime.js +25 -0
  221. package/dist/config/parseConfig.js +56 -232
  222. package/dist/config/parsers.js +16 -28
  223. package/dist/config/passiveObservation.js +87 -0
  224. package/dist/config/permissions.js +0 -7
  225. package/dist/config/processCapture.js +47 -0
  226. package/dist/contracts/analysisSearchContract.js +2 -5
  227. package/dist/contracts/applicationToolContracts.js +58 -114
  228. package/dist/contracts/applicationWorkflowInputContracts.js +29 -114
  229. package/dist/contracts/artifactComparisonExample.js +58 -60
  230. package/dist/contracts/artifactToolContracts.js +37 -91
  231. package/dist/contracts/browserScenarioToolContracts.js +6 -51
  232. package/dist/contracts/browserToolContracts.js +10 -75
  233. package/dist/contracts/electronToolContracts.js +27 -98
  234. package/dist/contracts/enhancedInputs.js +31 -78
  235. package/dist/contracts/errorSchemas.js +0 -1
  236. package/dist/contracts/functionComparisonExample.js +10 -24
  237. package/dist/contracts/functionInstructionContract.js +1 -3
  238. package/dist/contracts/functionWorkflowToolContracts.js +4 -5
  239. package/dist/contracts/hopperMemoryContracts.js +3 -3
  240. package/dist/contracts/investigationExamples.js +14 -11
  241. package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
  242. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
  243. package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
  244. package/dist/contracts/managedToolContracts.js +10 -104
  245. package/dist/contracts/managedWorkflowExamples.js +77 -125
  246. package/dist/contracts/managedWorkflowToolContracts.js +51 -74
  247. package/dist/contracts/nativeToolContracts.js +9 -14
  248. package/dist/contracts/processCaptureExample.js +2 -69
  249. package/dist/contracts/promptContracts.js +49 -67
  250. package/dist/contracts/providerSelection.js +0 -1
  251. package/dist/contracts/reconstructionReadinessExample.js +1 -6
  252. package/dist/contracts/sessionStatusContract.js +1 -17
  253. package/dist/contracts/sessionToolSchemas.js +52 -0
  254. package/dist/contracts/toolContractExamples.js +11 -10
  255. package/dist/contracts/toolContractHelpers.js +19 -0
  256. package/dist/contracts/toolContracts.js +60 -143
  257. package/dist/contracts/toolEffects.js +16 -9
  258. package/dist/contracts/toolOutputSchemaGroups.js +47 -86
  259. package/dist/contracts/toolOutputSchemaPrimitives.js +72 -62
  260. package/dist/contracts/toolSchemaMetadata.js +117 -0
  261. package/dist/contracts/unknownContractExamples.js +0 -2
  262. package/dist/doctorRuntime.js +1 -1
  263. package/dist/domain/analysisErrorPresentation.js +46 -54
  264. package/dist/domain/analysisErrorProjection.js +28 -37
  265. package/dist/domain/analysisProfile.js +3 -31
  266. package/dist/domain/analysisSnapshot.js +3 -12
  267. package/dist/domain/androidApplication.js +15 -52
  268. package/dist/domain/appleApplication.js +24 -65
  269. package/dist/domain/artifactComparison.js +11 -29
  270. package/dist/domain/artifactGraph.js +14 -44
  271. package/dist/domain/artifactInspection.js +38 -69
  272. package/dist/domain/artifactInventoryEvidence.js +27 -21
  273. package/dist/domain/binaryTarget.js +2 -219
  274. package/dist/domain/binaryTargetTypes.js +1 -0
  275. package/dist/domain/browserCaptureComparison.js +35 -60
  276. package/dist/domain/browserObservation.js +45 -197
  277. package/dist/domain/browserObservationSchemas.js +5 -23
  278. package/dist/domain/browserScenario.js +11 -14
  279. package/dist/domain/browserScenarioCapture.js +11 -12
  280. package/dist/domain/browserScenarioCaptureValues.js +146 -84
  281. package/dist/domain/browserScenarioDiff.js +2 -59
  282. package/dist/domain/browserScenarioDiffEvidence.js +51 -0
  283. package/dist/domain/browserScenarioDiffValues.js +21 -38
  284. package/dist/domain/browserScenarioValues.js +80 -109
  285. package/dist/domain/browserSession.js +4 -7
  286. package/dist/domain/bundleComparison.js +6 -32
  287. package/dist/domain/bytecodeProvider.js +53 -54
  288. package/dist/domain/callPath.js +50 -169
  289. package/dist/domain/callPathSchemas.js +79 -0
  290. package/dist/domain/changedBehavior.js +34 -60
  291. package/dist/domain/completionLedgerGeneration.js +8 -14
  292. package/dist/domain/conformancePackage.js +126 -97
  293. package/dist/domain/conformanceReplay.js +39 -11
  294. package/dist/domain/conformanceTrustGate.js +174 -30
  295. package/dist/domain/customProtocolCapture.js +4 -4
  296. package/dist/domain/electronActiveObservation.js +244 -0
  297. package/dist/domain/electronObservation.js +21 -83
  298. package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
  299. package/dist/domain/electronStaticAnalysisIpc.js +38 -14
  300. package/dist/domain/electronStaticAnalysisNative.js +1 -8
  301. package/dist/domain/electronStaticAnalysisValues.js +14 -18
  302. package/dist/domain/errors.js +33 -54
  303. package/dist/domain/eventProcessTree.js +101 -90
  304. package/dist/domain/evidence.js +2 -10
  305. package/dist/domain/evidenceBundle.js +3 -5
  306. package/dist/domain/evidenceCompletionLedger.js +6 -8
  307. package/dist/domain/functionComparison.js +4 -14
  308. package/dist/domain/functionComparisonNormalization.js +8 -8
  309. package/dist/domain/functionComparisonResults.js +25 -15
  310. package/dist/domain/functionComparisonSchemas.js +49 -33
  311. package/dist/domain/functionDossierEvidence.js +31 -151
  312. package/dist/domain/hopperStartupFailure.js +1 -1
  313. package/dist/domain/hopperValues.js +17 -141
  314. package/dist/domain/inputIssueProjection.js +4 -1
  315. package/dist/domain/interfaceBuilderGraph.js +654 -0
  316. package/dist/domain/javascriptApplicationAnalysis.js +8 -112
  317. package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
  318. package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
  319. package/dist/domain/javascriptApplicationGraph.js +3 -13
  320. package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
  321. package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
  322. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
  323. package/dist/domain/javascriptApplicationVersionItems.js +120 -53
  324. package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
  325. package/dist/domain/javascriptAstFingerprint.js +25 -58
  326. package/dist/domain/javascriptAstValues.js +9 -0
  327. package/dist/domain/javascriptExportInstrumentation.js +2 -4
  328. package/dist/domain/javascriptExportShapeComparison.js +6 -7
  329. package/dist/domain/javascriptExportShapeComparisonSchemas.js +70 -77
  330. package/dist/domain/javascriptExportShapeSelection.js +17 -19
  331. package/dist/domain/javascriptFeatureSeed.js +20 -12
  332. package/dist/domain/javascriptFeatureTrace.js +13 -67
  333. package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
  334. package/dist/domain/javascriptFeatureTraversal.js +1 -44
  335. package/dist/domain/javascriptNativeHandoff.js +1 -1
  336. package/dist/domain/javascriptReplay.js +100 -101
  337. package/dist/domain/javascriptRuntimeLoadState.js +3 -8
  338. package/dist/domain/javascriptRuntimeObservation.js +43 -103
  339. package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
  340. package/dist/domain/javascriptRuntimeReconciliationActive.js +80 -0
  341. package/dist/domain/javascriptRuntimeReconciliationGraph.js +21 -33
  342. package/dist/domain/javascriptRuntimeReconciliationMatching.js +75 -61
  343. package/dist/domain/javascriptRuntimeReconciliationParsing.js +21 -46
  344. package/dist/domain/javascriptRuntimeReconciliationResult.js +25 -19
  345. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
  346. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +34 -49
  347. package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
  348. package/dist/domain/javascriptSemanticAnalysis.js +12 -45
  349. package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
  350. package/dist/domain/javascriptSemanticCallResolution.js +6 -16
  351. package/dist/domain/javascriptSemanticCalls.js +5 -32
  352. package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
  353. package/dist/domain/javascriptSemanticCoverage.js +11 -0
  354. package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
  355. package/dist/domain/javascriptSemanticDataEffects.js +1 -11
  356. package/dist/domain/javascriptSemanticFingerprints.js +3 -5
  357. package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
  358. package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
  359. package/dist/domain/javascriptSemanticIr.js +1 -29
  360. package/dist/domain/javascriptSemanticObjects.js +1 -5
  361. package/dist/domain/javascriptSemanticPrimitives.js +2 -9
  362. package/dist/domain/javascriptSemanticProjection.js +0 -18
  363. package/dist/domain/javascriptSemanticPromises.js +9 -16
  364. package/dist/domain/javascriptSemanticProvenance.js +16 -19
  365. package/dist/domain/javascriptSemanticQuery.js +17 -139
  366. package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
  367. package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
  368. package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
  369. package/dist/domain/javascriptSemanticResources.js +1 -6
  370. package/dist/domain/javascriptSemanticReturns.js +10 -27
  371. package/dist/domain/javascriptSemanticValueTypes.js +1 -0
  372. package/dist/domain/javascriptSemanticValues.js +44 -62
  373. package/dist/domain/javascriptStaticAnalysis.js +21 -43
  374. package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
  375. package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
  376. package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
  377. package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
  378. package/dist/domain/javascriptStaticAnalysisState.js +1 -5
  379. package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
  380. package/dist/domain/jsonShape.js +7 -33
  381. package/dist/domain/localPath.js +7 -0
  382. package/dist/domain/managedApplicationGraph.js +9 -41
  383. package/dist/domain/managedApplicationGraphCoverage.js +24 -156
  384. package/dist/domain/managedApplicationGraphNodes.js +10 -13
  385. package/dist/domain/managedArtifact.js +14 -27
  386. package/dist/domain/managedMemberComparison.js +90 -92
  387. package/dist/domain/managedMemberComparisonCoverage.js +11 -33
  388. package/dist/domain/managedMemberComparisonItems.js +221 -0
  389. package/dist/domain/managedMemberComparisonMatch.js +8 -208
  390. package/dist/domain/managedNativeVerification.js +3 -6
  391. package/dist/domain/managedNativeVerificationMatch.js +55 -59
  392. package/dist/domain/managedNativeVerificationSchemas.js +83 -47
  393. package/dist/domain/managedReconstruction.js +19 -23
  394. package/dist/domain/managedRuntimeCorrelation.js +6 -9
  395. package/dist/domain/nativeApiBoundary.js +17 -14
  396. package/dist/domain/nativeInspection.js +0 -2
  397. package/dist/domain/nativeInvestigationGraph.js +351 -0
  398. package/dist/domain/nativeValueFlow.js +61 -0
  399. package/dist/domain/nodeRuntimeCharacterization.js +15 -18
  400. package/dist/domain/objcSwiftMetadata.js +254 -0
  401. package/dist/domain/peInspection.js +1 -1
  402. package/dist/domain/permissionPolicy.js +13 -0
  403. package/dist/domain/processCapture.js +76 -113
  404. package/dist/domain/processCaptureExample.js +68 -0
  405. package/dist/domain/processCaptureParsing.js +21 -0
  406. package/dist/domain/processCaptureReactiveSchema.js +68 -0
  407. package/dist/domain/processCaptureReactiveValidation.js +8 -3
  408. package/dist/domain/processCaptureValidation.js +8 -10
  409. package/dist/domain/processComparison.js +12 -16
  410. package/dist/domain/processObservation.js +5 -6
  411. package/dist/domain/processReactiveMatching.js +32 -46
  412. package/dist/domain/processReactiveRuntime.js +4 -8
  413. package/dist/domain/processReactiveScenario.js +28 -94
  414. package/dist/domain/processReactiveScenarioPreflight.js +5 -30
  415. package/dist/domain/processReactiveTransition.js +42 -21
  416. package/dist/domain/processScenario.js +62 -93
  417. package/dist/domain/processTraceComparison.js +0 -7
  418. package/dist/domain/processTraceEvaluation.js +14 -4
  419. package/dist/domain/processTraceSpecification.js +11 -17
  420. package/dist/domain/protocolCapture.js +11 -9
  421. package/dist/domain/reconstructionCoverage.js +62 -129
  422. package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
  423. package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
  424. package/dist/domain/reconstructionReadiness.js +1 -2
  425. package/dist/domain/reconstructionReadinessSchemas.js +66 -40
  426. package/dist/domain/reconstructionUnknowns.js +3 -3
  427. package/dist/domain/reconstructionVerification.js +13 -47
  428. package/dist/domain/reconstructionVerificationSchemas.js +50 -38
  429. package/dist/domain/referenceSourceGraph.js +53 -61
  430. package/dist/domain/referenceSourceImportParsing.js +3 -7
  431. package/dist/domain/replayMachine.js +19 -31
  432. package/dist/domain/replayMachineRun.js +15 -63
  433. package/dist/domain/replayMachineRuntime.js +46 -44
  434. package/dist/domain/replayMachineValues.js +84 -0
  435. package/dist/domain/residualUnknown.js +25 -30
  436. package/dist/domain/runtimeCharacterization.js +15 -16
  437. package/dist/domain/runtimeIdentification.js +48 -47
  438. package/dist/domain/sourceToBundleComparison.js +11 -87
  439. package/dist/domain/sourceToBundleComparisonSchemas.js +25 -50
  440. package/dist/domain/sourceToBundleSignals.js +11 -16
  441. package/dist/domain/staticRuntimeCorrelation.js +44 -54
  442. package/dist/domain/symbolAnalysis.js +10 -19
  443. package/dist/domain/unicodeCodePointOrder.js +12 -0
  444. package/dist/domain/webBundleAnalysis.js +70 -99
  445. package/dist/domain/webBundleAnalyzer.js +2 -4
  446. package/dist/domain/webBundleAnalyzerAst.js +0 -13
  447. package/dist/domain/webBundleAnalyzerInspection.js +26 -52
  448. package/dist/domain/webBundleAnalyzerResult.js +7 -24
  449. package/dist/domain/webCaptureDiff.js +48 -85
  450. package/dist/domain/webCaptureDiffSchemas.js +86 -0
  451. package/dist/domain/webContentArtifact.js +1 -10
  452. package/dist/domain/webMcpDiscovery.js +3 -14
  453. package/dist/domain/webScreenshot.js +58 -34
  454. package/dist/domain/zipPackageFormat.js +7 -0
  455. package/dist/dotnet/ManagedArtifactInspector.js +17 -50
  456. package/dist/dotnet/ManagedMemberInspector.js +27 -58
  457. package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
  458. package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
  459. package/dist/dotnet/ManagedMemberRows.js +16 -16
  460. package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
  461. package/dist/dotnet/ManagedMetadataInventory.js +21 -30
  462. package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
  463. package/dist/dotnet/ManagedMetadataLayout.js +3 -5
  464. package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
  465. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
  466. package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -42
  467. package/dist/dotnet/ManagedPeReader.js +2 -2
  468. package/dist/dotnet/ManagedStaticProvider.js +13 -71
  469. package/dist/generatedMcpToolCatalog.js +1 -1
  470. package/dist/generatedPackageMetadata.js +1 -1
  471. package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
  472. package/dist/ghidra/GhidraClient.js +5 -13
  473. package/dist/ghidra/GhidraClientStartup.js +1 -1
  474. package/dist/ghidra/GhidraClientWire.js +9 -5
  475. package/dist/ghidra/GhidraDefaults.js +0 -18
  476. package/dist/ghidra/GhidraDiagnostics.js +0 -2
  477. package/dist/ghidra/GhidraDoctor.js +16 -12
  478. package/dist/ghidra/GhidraFunctionValues.js +67 -108
  479. package/dist/ghidra/GhidraInstallation.js +98 -42
  480. package/dist/ghidra/GhidraInventoryValues.js +18 -77
  481. package/dist/ghidra/GhidraLauncher.js +0 -8
  482. package/dist/ghidra/GhidraProvider.js +32 -31
  483. package/dist/ghidra/GhidraProviderCapabilities.js +11 -48
  484. package/dist/ghidra/GhidraRequestQueue.js +6 -30
  485. package/dist/ghidra/GhidraResponseBuffer.js +1 -7
  486. package/dist/ghidra/GhidraSessionValues.js +0 -2
  487. package/dist/ghidra/GhidraSocketConnection.js +1 -1
  488. package/dist/ghidra/GhidraTransport.js +4 -7
  489. package/dist/ghidra/protocol.js +19 -42
  490. package/dist/hopper/BridgeLauncher.js +115 -37
  491. package/dist/hopper/HopperAnalysisProfile.js +3 -5
  492. package/dist/hopper/HopperCleanup.js +11 -9
  493. package/dist/hopper/HopperClient.js +5 -8
  494. package/dist/hopper/HopperProcessDiagnostic.js +2 -2
  495. package/dist/hopper/HopperProvider.js +0 -30
  496. package/dist/hopper/HopperRequestQueue.js +21 -40
  497. package/dist/hopper/HopperResponseStream.js +1 -9
  498. package/dist/hopper/HopperSessionValues.js +3 -2
  499. package/dist/hopper/HopperTargetLease.js +119 -0
  500. package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
  501. package/dist/hopper/LinuxPrivateDisplayProbe.js +21 -26
  502. package/dist/hopper/protocol.js +6 -4
  503. package/dist/main/reload.js +1 -9
  504. package/dist/main/shutdown.js +1 -1
  505. package/dist/main/state.js +0 -23
  506. package/dist/main/transport.js +27 -39
  507. package/dist/main.js +17 -15
  508. package/dist/mcpDoctor.js +27 -69
  509. package/dist/native/CommandRunner.js +18 -25
  510. package/dist/native/NativeMacOSProvider.js +13 -38
  511. package/dist/native/NativeMachoInspection.js +1 -1
  512. package/dist/process/BoundedFileBytes.js +17 -0
  513. package/dist/process/ExecFileOutput.js +11 -0
  514. package/dist/process/PendingOperations.js +8 -6
  515. package/dist/process/PrivateRuntimeRoot.js +17 -0
  516. package/dist/process/ProcessOwnership.js +67 -130
  517. package/dist/process/ProcessOwnershipIdentity.js +13 -0
  518. package/dist/process/ProcessOwnershipObservation.js +87 -0
  519. package/dist/process/ProcessOwnershipProcessTree.js +22 -0
  520. package/dist/process/ProviderDeadline.js +8 -12
  521. package/dist/process/ProviderProcess.js +7 -28
  522. package/dist/process/WindowsAuthority.js +32 -0
  523. package/dist/reference/ReferenceSourceReader.js +8 -24
  524. package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
  525. package/dist/reference/ReferenceSourceReaderFile.js +13 -31
  526. package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
  527. package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
  528. package/dist/replay/JavaScriptReplayWorker.js +95 -13
  529. package/dist/replay/JavaScriptReplayWorkerTypes.js +1 -0
  530. package/dist/replay/LinuxJavaScriptReplayRunner.js +42 -43
  531. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
  532. package/dist/replay/LinuxRuntimeClosure.js +1 -3
  533. package/dist/replay/ReplayOutcome.js +27 -18
  534. package/dist/replay/ReplayProcessLifecycle.js +32 -7
  535. package/dist/replay/ReplaySeccompFile.js +29 -0
  536. package/dist/replay/ReplayWorkerProtocol.js +33 -30
  537. package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
  538. package/dist/server/ProcessCaptureElicitation.js +4 -8
  539. package/dist/server/createServer.js +145 -119
  540. package/dist/server/mcpClientMetadata.js +32 -0
  541. package/dist/server/promptCompletion.js +37 -61
  542. package/dist/server/recordDerivedEvidence.js +1 -1
  543. package/dist/server/registerApplicationTools/characterization.js +10 -21
  544. package/dist/server/registerApplicationTools/compareExportShapes.js +6 -16
  545. package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -15
  546. package/dist/server/registerApplicationTools/compareVersions.js +6 -16
  547. package/dist/server/registerApplicationTools/controlledReplay.js +8 -15
  548. package/dist/server/registerApplicationTools/coverage.js +7 -78
  549. package/dist/server/registerApplicationTools/helpers.js +1 -13
  550. package/dist/server/registerApplicationTools/obligationLedger.js +4 -8
  551. package/dist/server/registerApplicationTools/traceFeature.js +6 -15
  552. package/dist/server/registerApplicationTools/traceSemantics.js +5 -13
  553. package/dist/server/registerApplicationTools.js +0 -2
  554. package/dist/server/registerArtifactComparisonTool.js +27 -35
  555. package/dist/server/registerBrowserScenarioTool.js +3 -8
  556. package/dist/server/registerBrowserTools.js +36 -81
  557. package/dist/server/registerBundleComparisonTool.js +10 -16
  558. package/dist/server/registerCloseLifecycleTool.js +5 -27
  559. package/dist/server/registerElectronTools.js +29 -65
  560. package/dist/server/registerEnhancedTools.js +118 -127
  561. package/dist/server/registerEvidenceTools.js +19 -30
  562. package/dist/server/registerFunctionComparisonTool.js +35 -34
  563. package/dist/server/registerInvestigationTools/helpers.js +3 -32
  564. package/dist/server/registerInvestigationTools.js +36 -148
  565. package/dist/server/registerJavaScriptRuntimeObservationTools.js +15 -27
  566. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +16 -23
  567. package/dist/server/registerManagedWorkflowTools/contract.js +2 -3
  568. package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
  569. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +4 -14
  570. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +4 -14
  571. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +11 -20
  572. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +10 -21
  573. package/dist/server/registerOfficialTools.js +8 -51
  574. package/dist/server/registerProcessComparisonTool.js +43 -38
  575. package/dist/server/registerPrompts.js +19 -17
  576. package/dist/server/registerReplayMachineTool.js +4 -10
  577. package/dist/server/registerSessionRecordTools.js +36 -153
  578. package/dist/server/registerSessionStatusTool.js +18 -96
  579. package/dist/server/registerSessionTools.js +34 -91
  580. package/dist/server/sessionAvailabilityPolicy.js +2 -3
  581. package/dist/server/sessionEvidence.js +9 -15
  582. package/dist/server/sessionToolPolicies.js +1 -13
  583. package/dist/server/toolRegistrationOptions.js +4 -192
  584. package/dist/server/toolResult.js +15 -67
  585. package/dist/serverIdentity.js +0 -20
  586. package/install.sh +1 -1
  587. package/package.json +27 -15
  588. package/scripts/electron-active-hook-boundaries.cjs +394 -0
  589. package/scripts/electron-active-hook.cjs +469 -0
  590. package/scripts/hopper-demo-x11.py +13 -32
  591. package/scripts/rea.mjs +1 -11
  592. package/skills/reverse-engineer-anything/SKILL.md +46 -11
  593. package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
  594. package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
  595. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
  596. package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -180
  597. package/dist/application/BoundedJsonFiles.js +0 -86
  598. package/dist/application/CrossVersionInventory.js +0 -128
  599. package/dist/application/CrossVersionInvestigation.js +0 -301
  600. package/dist/application/CrossVersionInvestigationCollections.js +0 -23
  601. package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
  602. package/dist/application/CrossVersionInvestigationReplay.js +0 -170
  603. package/dist/application/DeferredFileAuthorization.js +0 -61
  604. package/dist/application/DoctorProjection.js +0 -43
  605. package/dist/application/EnhancedToolPagination.js +0 -22
  606. package/dist/application/EvidenceReferenceResolver.js +0 -26
  607. package/dist/application/InvestigationWorkspaceStore.js +0 -204
  608. package/dist/application/ProcessPairedExperiment.js +0 -72
  609. package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
  610. package/dist/application/ReconstructionReadinessService.js +0 -48
  611. package/dist/cliInvestigationCommands.js +0 -173
  612. package/dist/domain/boundedCartesianProjection.js +0 -15
  613. package/dist/domain/investigationWorkspace.js +0 -346
  614. package/dist/domain/jsonLimits.js +0 -26
  615. package/dist/domain/knownPageCoverage.js +0 -21
  616. package/dist/domain/processPairedExperiment.js +0 -128
  617. package/dist/server/DynamicToolAvailability.js +0 -70
  618. package/dist/server/LazyToolCatalog.js +0 -134
  619. package/dist/server/hydrateServerTools.js +0 -191
  620. package/dist/server/javascriptApplicationResult.js +0 -106
  621. package/dist/server/permissionFailure.js +0 -12
  622. package/dist/server/registerApplicationTools/readiness.js +0 -55
  623. package/dist/server/registerEvidenceResources.js +0 -315
  624. package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
  625. package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
  626. package/dist/server/registerReconstructionReadinessResource.js +0 -32
  627. package/dist/server/toolInputValidation.js +0 -77
  628. package/scripts/package-runner-bootstrap.mjs +0 -72
@@ -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, {
@@ -75,7 +79,7 @@ export const registerApplicationCommands = (cli, logger) => {
75
79
  if (!authority.ok)
76
80
  return projectAnalysisError(authority.error);
77
81
  const result = await runControlledReplay({
78
- policy: config.value.javascriptReplayPolicy,
82
+ policy: () => config.value.javascriptReplayPolicy,
79
83
  host: new SystemJavaScriptReplayHost(),
80
84
  runner: new LinuxJavaScriptReplayRunner(),
81
85
  authority: authority.value,
@@ -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
@@ -193,40 +155,28 @@ const configuredAuthority = async () => {
193
155
  : { ok: false, error: projectAnalysisError(configured.error) };
194
156
  };
195
157
  const replayDependencies = (config, authority) => ({
196
- policy: config.javascriptReplayPolicy,
158
+ policy: () => config.javascriptReplayPolicy,
197
159
  host: new SystemJavaScriptReplayHost(),
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 { 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,62 +24,28 @@ 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
- const context = await browserContext();
36
+ const context = await browserContext("discover_webmcp_tools");
73
37
  if (!context.ok)
74
38
  return context.error;
75
39
  const parsed = discoverWebMcpToolsInputSchema.safeParse({
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,35 +91,21 @@ 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
- const context = await browserContext();
97
+ const context = await browserContext("capture_web_screenshot");
159
98
  if (!context.ok)
160
99
  return context.error;
161
100
  const parsed = captureWebScreenshotInputSchema.safeParse({
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,42 +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 () => {
214
- const config = parseConfig(process.env);
215
- if (!config.ok)
216
- return { ok: false, error: cliError(config.error) };
217
- const authority = await loadConfiguredPermissionAuthority(config.value);
218
- if (!authority.ok)
219
- return { ok: false, error: cliError(authority.error) };
220
- return {
221
- ok: true,
222
- authority: authority.value,
223
- provider: new CdpBrowserProvider(),
224
- allowedBrowserOrigins: config.value.browserAllowedOrigins,
225
- };
226
- };
227
141
  const parseJson = (value) => {
228
142
  try {
229
143
  return JSON.parse(value);
@@ -232,8 +146,4 @@ const parseJson = (value) => {
232
146
  return undefined;
233
147
  }
234
148
  };
235
- const inputError = (operation) => cliError(new AnalysisInputError(operation));
236
- const cliError = (error) => ({
237
- error: "Browser observation failed",
238
- ...projectAnalysisError(error),
239
- });
149
+ const inputError = (operation) => browserCliError(new AnalysisInputError(operation));