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,18 +1,6 @@
1
1
  /** Fail-closed process policy used when operator configuration is absent. */
2
2
  export const DENY_PROCESS_POLICY = {
3
- enabled: false,
4
- executableRoots: [],
5
- workingRoots: [],
6
- allowedEnvironment: [],
7
- allowExternalNetwork: false,
8
- };
9
- /** Fail-closed evidence filesystem policy used without approved roots. */
10
- export const DENY_EVIDENCE_FILE_POLICY = {
11
- roots: [],
12
- maxBytes: 64 * 1024 * 1024,
13
- maxDepth: 64,
14
- maxStringLength: 1024 * 1024,
15
- maxNodes: 1_000_000,
3
+ status: "disabled",
16
4
  };
17
5
  export { PROCESS_PROVIDER } from "../application/ProcessEvidence.js";
18
6
  export { ARTIFACT_COMPARISON_PROVIDER, BUNDLE_COMPARISON_PROVIDER, CALL_PATH_PROVIDER, CHANGED_BEHAVIOR_PROVIDER, FUNCTION_COMPARISON_PROVIDER, RECONSTRUCTION_PROVIDER, STATIC_RUNTIME_PROVIDER, } from "../application/InvestigationProviders.js";
@@ -1,197 +1,9 @@
1
- import { z } from "zod";
2
- const ADVERTISED_INPUT_SCHEMAS = new WeakMap();
3
- const ADVERTISED_OUTPUT_SCHEMAS = new WeakMap();
4
- /** Project the public contract fields accepted by MCP tool registration. */
1
+ import { toolInputSchemaWithMetadata } from "../contracts/toolSchemaMetadata.js";
2
+ /** Project the canonical Zod contracts directly into SDK registration. */
5
3
  export const toolRegistrationOptions = (contract) => ({
6
4
  title: contract.title,
7
5
  description: contract.description,
8
- inputSchema: advertisedInputSchema(contract),
9
- outputSchema: advertisedOutputSchema(contract.outputSchema),
6
+ inputSchema: toolInputSchemaWithMetadata(contract),
7
+ outputSchema: contract.outputSchema,
10
8
  annotations: contract.annotations,
11
9
  });
12
- /**
13
- * Advertise the exact Zod contract while leaving validation to REA's adapter.
14
- * The SDK otherwise converts validation failures to text-only JSON-RPC errors
15
- * before REA can return its stable structured error envelope.
16
- */
17
- const advertisedInputSchema = (contract) => ({
18
- "~standard": {
19
- version: 1,
20
- vendor: "rea",
21
- validate: (input) => ({ value: input }),
22
- jsonSchema: {
23
- input: () => advertisedInputJsonSchema(contract),
24
- output: () => advertisedInputJsonSchema(contract),
25
- },
26
- },
27
- });
28
- const advertisedOutputSchema = (schema) => {
29
- const standard = schema["~standard"];
30
- const converter = standard.jsonSchema?.output;
31
- if (converter === undefined)
32
- throw new TypeError("Tool output schema does not expose Standard JSON Schema");
33
- return {
34
- "~standard": {
35
- ...standard,
36
- jsonSchema: {
37
- input: () => advertisedOutputJsonSchema(schema, converter),
38
- output: () => advertisedOutputJsonSchema(schema, converter),
39
- },
40
- },
41
- };
42
- };
43
- const advertisedInputJsonSchema = (contract) => cachedJsonSchema(ADVERTISED_INPUT_SCHEMAS, contract.inputSchema, () => ({
44
- ...describeProperties(closeObjectSchemas(inputJsonSchema(contract.inputSchema))),
45
- examples: contract.examples.map(({ input }) => input),
46
- }));
47
- const advertisedOutputJsonSchema = (schema, converter) => cachedJsonSchema(ADVERTISED_OUTPUT_SCHEMAS, schema, () => describeRootProperties(closeObjectSchemas(converter({ target: "draft-2020-12" }))));
48
- const cachedJsonSchema = (cache, schema, create) => {
49
- const cached = cache.get(schema);
50
- if (cached !== undefined)
51
- return cached;
52
- const created = create();
53
- cache.set(schema, created);
54
- return created;
55
- };
56
- const inputJsonSchema = (schema) => {
57
- const converter = schema["~standard"].jsonSchema?.input;
58
- if (converter === undefined)
59
- throw new TypeError("Tool input schema does not expose Standard JSON Schema");
60
- return converter({ target: "draft-2020-12" });
61
- };
62
- /** Close fixed-shape JSON Schema objects while preserving explicit maps. */
63
- export const closeObjectSchemas = (value) => {
64
- const closed = Object.fromEntries(Object.entries(value).map(([key, child]) => [key, closeSchemaValue(child)]));
65
- return value.type === "object" &&
66
- isObject(value.properties) &&
67
- value.additionalProperties === undefined
68
- ? { ...closed, additionalProperties: false }
69
- : closed;
70
- };
71
- const closeSchemaValue = (value) => {
72
- if (Array.isArray(value))
73
- return value.map(closeSchemaValue);
74
- if (!isObject(value))
75
- return value;
76
- return closeObjectSchemas(value);
77
- };
78
- const describeProperties = (value) => Object.fromEntries(Object.entries(value).map(([key, child]) => {
79
- if (key !== "properties" || typeof child !== "object" || child === null)
80
- return [key, describeValue(child)];
81
- return [
82
- key,
83
- Object.fromEntries(Object.entries(child).map(([property, schema]) => [
84
- property,
85
- isObject(schema) && typeof schema.description !== "string"
86
- ? {
87
- ...describeProperties(schema),
88
- description: fallbackPropertyDescription(property),
89
- }
90
- : describeValue(schema),
91
- ])),
92
- ];
93
- }));
94
- const describeValue = (value) => {
95
- if (Array.isArray(value))
96
- return value.map(describeValue);
97
- return isObject(value) ? describeProperties(value) : value;
98
- };
99
- const describeRootProperties = (value) => {
100
- const properties = value.properties;
101
- if (!isObject(properties))
102
- return { ...value };
103
- return {
104
- ...value,
105
- properties: Object.fromEntries(Object.entries(properties).map(([property, schema]) => [
106
- property,
107
- isObject(schema) && typeof schema.description !== "string"
108
- ? {
109
- ...schema,
110
- description: fallbackPropertyDescription(property),
111
- }
112
- : schema,
113
- ])),
114
- };
115
- };
116
- const PROPERTY_DESCRIPTIONS = {
117
- addresses: "Ordered provider-normalized procedure addresses to analyze.",
118
- approved: "Explicit operator approval to perform this operation.",
119
- after: "The later or right-hand observation to compare.",
120
- before: "The earlier or left-hand observation to compare.",
121
- boundary_id: "Exact reconstruction boundary identifier to evaluate.",
122
- case_sensitive: "Whether text matching distinguishes uppercase and lowercase.",
123
- cdp_endpoint: "Approved literal loopback Chrome DevTools Protocol endpoint.",
124
- comment: "Exact analyst comment text to write.",
125
- comparisons: "Validated comparison Evidence records to aggregate.",
126
- coverage: "Exact reconstruction-coverage commitment to verify.",
127
- detail: "Requested response detail level.",
128
- direction: "Direction in which to traverse or compare relationships.",
129
- document: "Exact provider document or program identity.",
130
- error: "Structured, caller-actionable error when the operation fails.",
131
- evidence: "Evidence v2 record produced by this operation.",
132
- evidence_id: "Stable identifier of the recorded Evidence v2 observation.",
133
- evidence_uri: "Session resource URI for the recorded Evidence v2 observation.",
134
- executable: "Approved absolute path of the executable to run.",
135
- format: "Declared input artifact format.",
136
- name: "Exact name used by this operation.",
137
- pattern: "Text or bounded pattern used to filter matching results.",
138
- phase: "Current plan or execution phase of the operation.",
139
- plan: "Content-bound execution plan and its approval commitment.",
140
- query: "Non-empty feature or text query to investigate.",
141
- question: "Concrete unresolved question to retain for later investigation.",
142
- result: "Primary structured result returned by this operation.",
143
- left: "Left-hand input used for comparison or differential execution.",
144
- limit: "Maximum number of results to return in this page.",
145
- limits: "Bounded resource-consumption and result-size limits for this operation.",
146
- mode: "Operation mode that selects the requested behavior.",
147
- offset: "Zero-based index of the first result to return.",
148
- overwrite: "Whether an existing destination may be replaced.",
149
- path: "Local filesystem path used by this operation.",
150
- provider_id: "Exact deep-analysis provider ID, or automatic selection when omitted.",
151
- right: "Right-hand input used for comparison or differential execution.",
152
- schema_version: "Version of this structured result schema.",
153
- source_evidence: "Evidence records supporting the prepared source transformation.",
154
- status: "Current lifecycle or verification status.",
155
- summary: "Concise evidence-backed summary of the result.",
156
- symbols: "Ordered bounded Swift symbols to demangle.",
157
- target_id: "Exact authorized CDP target identifier.",
158
- unknown_id: "Exact residual-unknown identifier.",
159
- unknown_registry_approved: "Explicit approval to record bounded residual uncertainty in the session registry.",
160
- workspace_path: "Approved local path of the persistent investigation workspace.",
161
- };
162
- const fallbackPropertyDescription = (property) => {
163
- const explicit = PROPERTY_DESCRIPTIONS[property];
164
- if (explicit !== undefined)
165
- return explicit;
166
- const words = property.replaceAll("_", " ");
167
- if (property.endsWith("_approved"))
168
- return `Explicit operator approval for ${words.slice(0, -9)}.`;
169
- if (property.endsWith("_offset"))
170
- return `Zero-based index of the first ${words.slice(0, -7)} to return.`;
171
- if (property.endsWith("_limit"))
172
- return `Maximum number of ${words.slice(0, -6)} entries to return.`;
173
- if (property.startsWith("max_"))
174
- return `Maximum permitted ${words.slice(4)} for this operation.`;
175
- if (property.startsWith("include_"))
176
- return `Whether to include ${words.slice(8)} in the result.`;
177
- if (property.startsWith("expected_"))
178
- return `Expected ${words.slice(9)} used to reject stale or mismatched input.`;
179
- if (property.endsWith("_sha256"))
180
- return `Exact SHA-256 digest of ${words.slice(0, -7)}.`;
181
- if (property.endsWith("_evidence_id"))
182
- return `Exact Evidence v2 identifier for the ${words.slice(0, -12)} observation.`;
183
- if (property.endsWith("_evidence_ids"))
184
- return `Ordered Evidence v2 identifiers for the ${words.slice(0, -13)} observations.`;
185
- if (property.endsWith("_path"))
186
- return `Local filesystem path for ${words.slice(0, -5)}.`;
187
- if (property.endsWith("_uri"))
188
- return `Canonical URI for ${words.slice(0, -4)}.`;
189
- if (property.endsWith("_bytes"))
190
- return `Bounded byte count for ${words.slice(0, -6)}.`;
191
- if (property.endsWith("_root") || property.endsWith("_roots"))
192
- return `Approved canonical filesystem ${words}.`;
193
- if (property.startsWith("is_") || property.startsWith("has_"))
194
- return `Whether ${words}.`;
195
- return `Value for ${words}.`;
196
- };
197
- const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
@@ -1,12 +1,10 @@
1
- import { AnalysisOutputError, projectAnalysisError, } from "../domain/errors.js";
1
+ import { projectAnalysisError } from "../domain/errors.js";
2
2
  /**
3
3
  * Translate an application result into MCP text content.
4
4
  * Error tags and safe messages remain visible while underlying causes, process
5
5
  * output, and other potentially sensitive details stay private.
6
6
  */
7
- export const toCallToolResult = (result, contract, options = {}) => result.ok
8
- ? successResult(result.value, contract, options)
9
- : errorResult(result.error);
7
+ export const toCallToolResult = (result, contract) => result.ok ? successResult(result.value, contract) : errorResult(result.error);
10
8
  const errorResult = (error) => {
11
9
  const projected = projectAnalysisError(error);
12
10
  const structuredContent = { error: projected };
@@ -21,58 +19,20 @@ const errorResult = (error) => {
21
19
  isError: true,
22
20
  };
23
21
  };
24
- const successResult = (value, contract, options) => {
25
- const candidate = compactEvidence(value, options.evidenceResultProjection) ??
22
+ const successResult = (value, contract) => {
23
+ const candidate = compactEvidence(value) ??
26
24
  (contract.kind === "session" ? { result: value } : value);
27
- const parsed = contract.outputSchema.safeParse(candidate);
28
- if (!parsed.success) {
29
- const structuredContent = {
30
- error: projectAnalysisError(new AnalysisOutputError(contract.name, "output does not match the tool contract")),
31
- };
32
- return {
33
- content: [
34
- {
35
- type: "text",
36
- text: JSON.stringify(structuredContent),
37
- },
38
- ],
39
- structuredContent,
40
- isError: true,
41
- };
42
- }
43
25
  return {
44
26
  content: [
45
27
  {
46
28
  type: "text",
47
- text: JSON.stringify(options.evidenceTextProjection === undefined
48
- ? parsed.data
49
- : (compactEvidence(value, options.evidenceTextProjection) ??
50
- options.evidenceTextProjection)),
29
+ text: JSON.stringify(candidate),
51
30
  },
52
- ...(hasResourceLinks(value, contract, options)
53
- ? [
54
- {
55
- type: "text",
56
- text: "Full detail is available through MCP resources/read. Copy the opaque URI exactly. In Codex, call read_mcp_resource.",
57
- },
58
- ]
59
- : []),
60
- ...evidenceResourceLinks(value, contract.kind === "session" ||
61
- options.evidenceResourcesAvailable === true),
62
- ...(options.resourceLinks ?? []).map((resource) => ({
63
- type: "resource_link",
64
- ...resource,
65
- mimeType: "application/json",
66
- })),
67
31
  ],
68
32
  structuredContent: candidate,
69
33
  };
70
34
  };
71
- const hasResourceLinks = (value, contract, options) => options.resourceLinks !== undefined && options.resourceLinks.length > 0
72
- ? true
73
- : evidenceResourceLinks(value, contract.kind === "session" ||
74
- options.evidenceResourcesAvailable === true).length > 0;
75
- const compactEvidence = (value, resultProjection) => {
35
+ const compactEvidence = (value) => {
76
36
  if (typeof value !== "object" ||
77
37
  value === null ||
78
38
  Array.isArray(value) ||
@@ -80,27 +40,15 @@ const compactEvidence = (value, resultProjection) => {
80
40
  !/^ev_[a-f0-9]{64}$/u.test(value.evidence_id) ||
81
41
  !("normalized_result" in value))
82
42
  return undefined;
43
+ const evidence = value;
44
+ const normalizedResult = evidence.normalized_result;
45
+ const evidenceId = evidence.evidence_id;
46
+ if (normalizedResult === undefined || typeof evidenceId !== "string")
47
+ return undefined;
48
+ const inlineEvidence = Object.fromEntries(Object.entries(evidence).filter(([key]) => key !== "normalized_result"));
83
49
  return {
84
- result: resultProjection ?? value.normalized_result,
85
- evidence_id: value.evidence_id,
86
- evidence_uri: `rea://evidence/${value.evidence_id}`,
50
+ result: normalizedResult,
51
+ evidence_id: evidenceId,
52
+ evidence: inlineEvidence,
87
53
  };
88
54
  };
89
- const evidenceResourceLinks = (value, available) => {
90
- if (!available ||
91
- typeof value !== "object" ||
92
- value === null ||
93
- Array.isArray(value) ||
94
- typeof value.evidence_id !== "string" ||
95
- !/^ev_[a-f0-9]{64}$/u.test(value.evidence_id))
96
- return [];
97
- return [
98
- {
99
- type: "resource_link",
100
- uri: `rea://evidence/${value.evidence_id}`,
101
- name: value.evidence_id,
102
- description: "Session-owned Evidence v2 record",
103
- mimeType: "application/json",
104
- },
105
- ];
106
- };
@@ -50,7 +50,6 @@ export const createServerIdentity = (input) => {
50
50
  protocol_features: {
51
51
  progress: true,
52
52
  cancellation: true,
53
- evidence_resources: true,
54
53
  elicitation: false,
55
54
  },
56
55
  alignment: {
@@ -68,22 +67,3 @@ export const createServerIdentity = (input) => {
68
67
  },
69
68
  };
70
69
  };
71
- /** Compact identity projection for CLI summaries; MCP retains full identity. */
72
- export const createServerIdentitySummary = (input) => {
73
- const identity = createServerIdentity(input);
74
- return {
75
- package: {
76
- name: identity.package.name,
77
- version: identity.package.version,
78
- },
79
- server: {
80
- name: identity.server.name,
81
- version: identity.server.version,
82
- },
83
- catalog: {
84
- counts: identity.catalog.counts,
85
- digests: identity.catalog.digests,
86
- },
87
- alignment: identity.alignment,
88
- };
89
- };
package/install.sh CHANGED
@@ -102,7 +102,7 @@ printf 'Installing %s@%s...\n' "$PACKAGE" "$version"
102
102
  npm install --global "${prefix_args[@]}" "$PACKAGE@$version" || fail "npm could not install REA. Check registry access and npm permissions, then retry."
103
103
  [[ -x "$install_bin" ]] || fail "npm completed without installing the rea command. Check the npm global bin directory and PATH, then retry."
104
104
  installed_version="$("$install_bin" --version 2>/dev/null | tr -d '[:space:]')" || fail "the installed REA version could not be read. Reinstall the requested version, then retry."
105
- [[ "$installed_version" == "$version" ]] || fail "installed version $installed_version does not match $version."
105
+ [[ "$installed_version" == "$version" ]] || fail "installed version $installed_version does not match $version. Reinstall the requested version, then retry."
106
106
 
107
107
  printf 'REA %s is installed.\n' "$version"
108
108
  if [[ "$start_setup" == true && -r /dev/tty && -w /dev/tty && -t 1 ]]; then
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "rea-agents",
3
- "version": "3.0.0",
3
+ "mcpName": "io.github.morluto/rea",
4
+ "version": "3.2.0",
4
5
  "description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
5
6
  "license": "MIT",
6
7
  "repository": {
@@ -43,7 +44,8 @@
43
44
  "bridge/hopper_bridge.py",
44
45
  "bridge/ghidra/ReaGhidraBridge.java",
45
46
  "scripts/rea.mjs",
46
- "scripts/package-runner-bootstrap.mjs",
47
+ "scripts/electron-active-hook.cjs",
48
+ "scripts/electron-active-hook-boundaries.cjs",
47
49
  "scripts/hopper-demo-x11.py",
48
50
  "scripts/prepack.mjs",
49
51
  "scripts/prepare.mjs",
@@ -55,9 +57,10 @@
55
57
  "deps:check": "node scripts/check-dependency-install.mjs",
56
58
  "metadata:generate": "node scripts/generate-package-metadata.mjs",
57
59
  "metadata:check": "node scripts/generate-package-metadata.mjs --check",
60
+ "mcp-registry:check": "node scripts/verify-mcp-registry-metadata.mjs",
58
61
  "mcp-catalog:generate": "npm run build:cached && node scripts/generate-mcp-tool-catalog.mjs",
59
62
  "mcp-catalog:check": "node scripts/generate-mcp-tool-catalog.mjs --check",
60
- "prebuild": "npm run deps:check && npm run metadata:check",
63
+ "prebuild": "npm run deps:check && npm run metadata:check && node scripts/clean-build-output.mjs",
61
64
  "build": "tsc -p tsconfig.build.json",
62
65
  "precheck": "npm run deps:check",
63
66
  "check": "turbo run typecheck lint format:check knip metadata:check",
@@ -68,7 +71,7 @@
68
71
  "precheck:test": "npm run deps:check",
69
72
  "check:test": "turbo run typecheck lint format:check knip metadata:check test:run",
70
73
  "precheck:pr": "npm run deps:check",
71
- "check:pr": "turbo run typecheck lint format:check knip metadata:check test:run docs:check:built",
74
+ "check:pr": "turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check",
72
75
  "precheck:ci": "npm run deps:check",
73
76
  "check:ci": "turbo run typecheck lint format:check knip metadata:check jscpd scan:todos",
74
77
  "build:cached": "turbo run build",
@@ -81,19 +84,22 @@
81
84
  "jscpd": "jscpd src/ tests/",
82
85
  "scan:todos": "node scripts/scan-todos.mjs",
83
86
  "start": "node scripts/rea.mjs mcp",
84
- "pretest": "npm run build:cached",
85
- "test": "vitest run",
86
- "test:run": "vitest run",
87
+ "test": "node scripts/run-exclusive.mjs test npm run test:with-build",
88
+ "test:with-build": "npm run build:cached && vitest run",
89
+ "test:run": "node scripts/run-exclusive.mjs test vitest run",
90
+ "test:local": "node scripts/run-exclusive.mjs test vitest run --changed --passWithNoTests --maxWorkers=1",
87
91
  "pretest:fast": "npm run build:cached",
88
- "test:fast": "vitest run --project domain --project services --project adapters --project composition --project boundary --project conformance",
92
+ "test:fast": "vitest run --project domain --project services --project adapters --project composition --project boundary --project process-boundary --project mcp-boundary --project conformance",
89
93
  "pretest:boundary": "npm run build:cached",
90
- "test:boundary": "vitest run --project boundary --project process-global",
94
+ "test:boundary": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global",
95
+ "pretest:mcp": "npm run build:cached",
96
+ "test:mcp": "vitest run --project mcp-boundary",
91
97
  "pretest:acceptance": "npm run build:cached",
92
98
  "test:acceptance": "vitest run --project acceptance",
93
99
  "pretest:changed": "npm run build:cached",
94
- "test:changed": "vitest run --project domain --project services --project adapters --project composition --project boundary --project conformance --project evaluation --changed",
100
+ "test:changed": "vitest run --project domain --project services --project adapters --project composition --project boundary --project process-boundary --project mcp-boundary --project conformance --project evaluation --changed",
95
101
  "pretest:integration": "npm run build:cached",
96
- "test:integration": "vitest run --project boundary --project process-global --project acceptance",
102
+ "test:integration": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global --project acceptance",
97
103
  "pretest:coverage": "npm run build:cached",
98
104
  "test:coverage": "vitest run --coverage.enabled --coverage.provider=v8",
99
105
  "test:ci": "npm run test:coverage -- --reporter=default --reporter=junit --outputFile.junit=test-results.xml",
@@ -104,15 +110,19 @@
104
110
  "pretest:verbose": "npm run build:cached",
105
111
  "test:verbose": "vitest run --reporter=verbose",
106
112
  "pretest:watch": "npm run build:cached",
107
- "test:watch": "vitest --project domain --project services --project adapters --project composition --project boundary --project conformance --project evaluation --changed",
113
+ "test:watch": "vitest --project domain --project services --project adapters --project composition --project boundary --project process-boundary --project mcp-boundary --project conformance --project evaluation --changed",
108
114
  "pretest:watch:all": "npm run build:cached",
109
115
  "test:watch:all": "vitest --changed",
110
116
  "typecheck": "tsc --noEmit",
111
117
  "verify:test-temp-hygiene": "npm run build:cached && node scripts/verify-test-temp-hygiene.mjs",
112
118
  "verify:hopper": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper.mjs",
113
119
  "verify:ghidra": "npm run build:cached && node scripts/verify-real-ghidra.mjs",
120
+ "verify:ghidra:aarch64-jump-table": "npm run build:cached && node scripts/verify-real-ghidra.mjs --aarch64-jump-table",
121
+ "verify:interface-builder": "npm run build:cached && node scripts/verify-interface-builder.mjs",
122
+ "verify:ghidra:cross-format": "npm run build:cached && node scripts/verify-real-ghidra.mjs --cross-format",
114
123
  "verify:ghidra:windows": "npm run build:cached && npm run build:ghidra-windows-fixture && node scripts/verify-real-ghidra-windows.mjs",
115
124
  "verify:browser": "npm run build:cached && node scripts/verify-real-browser.mjs",
125
+ "verify:electron": "npm run build:cached && node scripts/verify-real-electron.mjs",
116
126
  "verify:inspector": "npm run build:cached && node scripts/verify-real-javascript-runtime-observation.mjs",
117
127
  "verify:javascript-runtime": "npm run build:cached && node scripts/verify-local-javascript-runtime.mjs",
118
128
  "verify:application-workflows": "npm run build:cached && node scripts/verify-local-application-workflows.mjs",
@@ -134,8 +144,9 @@
134
144
  "evidence:check": "npm run build:cached && node scripts/generate-completion-ledger.mjs --check",
135
145
  "docs:api": "typedoc",
136
146
  "docs:api:cached": "turbo run docs:api",
137
- "docs:generate": "npm run metadata:generate && npm run build:cached && node scripts/generate-mcp-tool-catalog.mjs && node scripts/generate-skill-metadata.mjs && node scripts/generate-product-catalog.mjs && node scripts/generate-completion-ledger.mjs && npm run docs:api:cached && node scripts/generate-error-schema.mjs",
138
- "docs:check": "turbo run docs:check:built",
147
+ "docs:generate": "node scripts/run-exclusive.mjs docs npm run docs:generate:unlocked",
148
+ "docs:generate:unlocked": "npm run metadata:generate && npm run build:cached && node scripts/generate-mcp-tool-catalog.mjs && node scripts/generate-skill-metadata.mjs && node scripts/generate-product-catalog.mjs && node scripts/generate-completion-ledger.mjs && npm run docs:api:cached && node scripts/generate-error-schema.mjs",
149
+ "docs:check": "node scripts/run-exclusive.mjs docs turbo run docs:check:built",
139
150
  "docs:check:built": "node scripts/generate-package-metadata.mjs --check && node scripts/generate-mcp-tool-catalog.mjs --check && node scripts/generate-skill-metadata.mjs --check && node scripts/generate-product-catalog.mjs --check && node scripts/generate-completion-ledger.mjs --check && node scripts/check-doc-facts.mjs && node scripts/generate-error-schema.mjs --check",
140
151
  "docs:error-schema": "npm run build:cached && node scripts/generate-error-schema.mjs",
141
152
  "prepack": "node scripts/prepack.mjs",
@@ -192,6 +203,7 @@
192
203
  "turbo": "2.10.5",
193
204
  "typedoc": "0.28.20",
194
205
  "typescript": "5.9.3",
195
- "vitest": "4.1.10"
206
+ "vitest": "4.1.10",
207
+ "yaml": "2.9.0"
196
208
  }
197
209
  }