rea-agents 3.2.1 → 4.0.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 (434) hide show
  1. package/README.md +183 -332
  2. package/bridge/ghidra/ReaGhidraBridge.java +561 -74
  3. package/bridge/hopper_bridge.py +70 -27
  4. package/bridge/native/ReaNativeUI.swift +157 -0
  5. package/dist/application/AnalysisContextQueries.js +19 -5
  6. package/dist/application/AnalysisSnapshotCache.js +30 -11
  7. package/dist/application/AppleAssetCatalogAnalysis.js +171 -0
  8. package/dist/application/ArtifactExtractionDestination.js +0 -12
  9. package/dist/application/ArtifactGraphConstruction.js +44 -11
  10. package/dist/application/ArtifactInventory/classify.js +7 -15
  11. package/dist/application/ArtifactInventory/hash.js +4 -2
  12. package/dist/application/ArtifactInventory/policy.js +2 -17
  13. package/dist/application/ArtifactInventory/reader.js +3 -3
  14. package/dist/application/ArtifactInventory/scanCanonical.js +2 -2
  15. package/dist/application/ArtifactInventory/scanReader.js +12 -4
  16. package/dist/application/ArtifactInventory/types.js +0 -3
  17. package/dist/application/BinarySession.js +28 -43
  18. package/dist/application/BinarySessionExecution.js +37 -1
  19. package/dist/application/BinaryTargetResolver.js +50 -4
  20. package/dist/application/BrowserEvidence.js +36 -7
  21. package/dist/application/BrowserObservationService.js +17 -44
  22. package/dist/application/BrowserScenarioCaptureService.js +2 -35
  23. package/dist/application/BrowserScenarioEvidence.js +13 -9
  24. package/dist/application/CapabilityClientRequirements.js +2 -11
  25. package/dist/application/CapabilityInventory.js +21 -35
  26. package/dist/application/ClientConfigurationDocument.js +84 -7
  27. package/dist/application/ClientRegistrationIdentity.js +32 -0
  28. package/dist/application/ClientRegistrationStatus.js +59 -6
  29. package/dist/application/DirectAnalysis.js +37 -58
  30. package/dist/application/DirectAnalysisStatus.js +4 -4
  31. package/dist/application/Doctor.js +89 -80
  32. package/dist/application/DoctorDiagnostics.js +2 -26
  33. package/dist/application/DoctorScope.js +8 -14
  34. package/dist/application/ElectronActiveEvidence.js +10 -27
  35. package/dist/application/ElectronActiveObservationService.js +9 -36
  36. package/dist/application/ElectronBoundaryAnalysis.js +2 -0
  37. package/dist/application/ElectronBoundaryGraphNative.js +1 -1
  38. package/dist/application/ElectronEvidence.js +8 -3
  39. package/dist/application/ElectronObservationService.js +9 -25
  40. package/dist/application/EnhancedLiteralTracing.js +4 -8
  41. package/dist/application/EnhancedTools.js +15 -35
  42. package/dist/application/FilesystemSnapshot.js +7 -8
  43. package/dist/application/JavaScriptApplicationEvidenceGraph.js +2 -1
  44. package/dist/application/JavaScriptApplicationWorkflowService.js +31 -7
  45. package/dist/application/JavaScriptArtifactAnalysis.js +6 -4
  46. package/dist/application/JavaScriptArtifactFiles.js +5 -0
  47. package/dist/application/JavaScriptArtifactPathResolution.js +179 -47
  48. package/dist/application/JavaScriptRuntimeObservationEvidence.js +6 -3
  49. package/dist/application/JavaScriptRuntimeObservationService.js +9 -25
  50. package/dist/application/JavaScriptRuntimeReconciliationService.js +45 -4
  51. package/dist/application/JavaScriptSemanticGraphAsyncProjection.js +11 -0
  52. package/dist/application/JavaScriptSemanticGraphChildProcessProjection.js +11 -0
  53. package/dist/application/JavaScriptSemanticGraphDataProjection.js +11 -0
  54. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +14 -5
  55. package/dist/application/JsonFiles.js +1 -1
  56. package/dist/application/LazyAnalysisProvider.js +27 -6
  57. package/dist/application/ManagedMemberComparisonService.js +19 -6
  58. package/dist/application/NativeApiInspection.js +2 -0
  59. package/dist/application/NativeCallRoutes.js +72 -0
  60. package/dist/application/NativeDispatchMetadataInspection.js +33 -0
  61. package/dist/application/NativeUiActionTrace.js +73 -49
  62. package/dist/application/NativeValueTrace.js +320 -0
  63. package/dist/application/ProcessCaptureCapability.js +32 -5
  64. package/dist/application/ProcessCaptureEnvironment.js +9 -26
  65. package/dist/application/ProcessCaptureError.js +1 -5
  66. package/dist/application/ProcessCaptureJournal.js +3 -40
  67. package/dist/application/ProcessCaptureLifecycle.js +102 -111
  68. package/dist/application/ProcessCli.js +18 -25
  69. package/dist/application/ProcessEvidence.js +5 -7
  70. package/dist/application/ProcessFilesystemEffects.js +36 -0
  71. package/dist/application/ProcessHarness.js +41 -120
  72. package/dist/application/ProcessNormalization.js +2 -17
  73. package/dist/application/ProcessScenarioRuntimeValidation.js +76 -0
  74. package/dist/application/ReferenceSourceImport.js +3 -4
  75. package/dist/application/Setup.js +236 -84
  76. package/dist/application/SetupClientConfiguration.js +14 -9
  77. package/dist/application/SetupPlan.js +138 -86
  78. package/dist/application/SetupSkill.js +0 -1
  79. package/dist/application/SupportedClients.js +102 -21
  80. package/dist/application/Uninstall.js +31 -20
  81. package/dist/application/Update.js +93 -0
  82. package/dist/application/UpdateMaintenance.js +108 -0
  83. package/dist/application/UpdateRuntime.js +126 -0
  84. package/dist/application/runtime.js +13 -2
  85. package/dist/artifacts/ArtifactPaths.js +6 -8
  86. package/dist/artifacts/ArtifactProvider.js +94 -41
  87. package/dist/artifacts/AsarArtifactReader.js +19 -4
  88. package/dist/artifacts/KeyedArchiveReader.js +110 -0
  89. package/dist/artifacts/MachOSliceArtifactReader.js +53 -5
  90. package/dist/artifacts/ZipArtifactReader.js +18 -1
  91. package/dist/browser/BrowserScenarioSecrets.js +28 -1
  92. package/dist/browser/CdpBrowserProvider.js +36 -15
  93. package/dist/browser/CdpCaptureDocuments.js +22 -8
  94. package/dist/browser/CdpCaptureEventHandlers.js +14 -5
  95. package/dist/browser/CdpCaptureEventHelpers.js +13 -0
  96. package/dist/browser/CdpCaptureEvents.js +10 -1
  97. package/dist/browser/CdpElectronInspection.js +5 -10
  98. package/dist/browser/CdpElectronProvider.js +1 -5
  99. package/dist/browser/CdpElectronScripts.js +1 -1
  100. package/dist/browser/CdpEndpoint.js +3 -2
  101. package/dist/browser/CdpObservationSession.js +14 -10
  102. package/dist/browser/CdpPageCapture.js +1 -1
  103. package/dist/browser/CdpPageCaptureScripts.js +1 -1
  104. package/dist/browser/CdpSafeMetadata.js +5 -4
  105. package/dist/browser/CdpScreenshot.js +16 -5
  106. package/dist/browser/CdpTargetSession.js +25 -4
  107. package/dist/browser/CdpWebMcpDiscovery.js +93 -20
  108. package/dist/browser/JavaScriptRuntimeScope.js +28 -2
  109. package/dist/browser/PlaywrightBrowserScenarioProvider.js +9 -8
  110. package/dist/browser/PlaywrightElectronActiveActions.js +3 -10
  111. package/dist/browser/PlaywrightElectronActiveProvider.js +5 -5
  112. package/dist/browser/PlaywrightScenarioActions.js +1 -1
  113. package/dist/browser/PlaywrightScenarioArtifacts.js +13 -25
  114. package/dist/browser/PlaywrightScenarioBrowser.js +28 -25
  115. package/dist/browser/PlaywrightScenarioEvents.js +82 -93
  116. package/dist/browser/PlaywrightScenarioSession.js +27 -123
  117. package/dist/browser/PngVisualDiff.js +22 -3
  118. package/dist/browser/V8InspectorCaptureProjection.js +7 -1
  119. package/dist/browser/V8InspectorProvider.js +60 -7
  120. package/dist/browser/WebSourceMapFetcher.js +99 -53
  121. package/dist/cli/artifactCommands.js +56 -12
  122. package/dist/cli/coreAnalysisCommands.js +110 -0
  123. package/dist/cli/managedCommands.js +1 -31
  124. package/dist/cli/setupCommands.js +16 -14
  125. package/dist/cli/utilityCommands.js +61 -4
  126. package/dist/cli.js +5 -7
  127. package/dist/cliApplicationCommands.js +0 -83
  128. package/dist/cliBrowserAdvancedCommands.js +7 -11
  129. package/dist/cliBrowserCommands.js +15 -23
  130. package/dist/cliBrowserContext.js +3 -24
  131. package/dist/cliBrowserScenarioCommands.js +2 -10
  132. package/dist/cliCommandNames.js +82 -7
  133. package/dist/cliElectronCommands.js +10 -36
  134. package/dist/cliJavaScriptRuntimeCommands.js +6 -30
  135. package/dist/cliJsonInput.js +4 -2
  136. package/dist/cliLogging.js +16 -7
  137. package/dist/cliObservationOptions.js +1 -1
  138. package/dist/cliOutput.js +2 -4
  139. package/dist/cliProcessCommands.js +6 -33
  140. package/dist/cliSetup.js +90 -160
  141. package/dist/config/environment.js +2 -78
  142. package/dist/config/parseConfig.js +18 -109
  143. package/dist/config/parsers.js +0 -23
  144. package/dist/contracts/applicationToolContracts.js +1 -118
  145. package/dist/contracts/artifactToolContracts.js +11 -19
  146. package/dist/contracts/browserScenarioToolContracts.js +1 -5
  147. package/dist/contracts/browserToolContracts.js +9 -16
  148. package/dist/contracts/electronToolContracts.js +5 -6
  149. package/dist/contracts/enhancedInputs.js +3 -2
  150. package/dist/contracts/errorSchemas.js +16 -40
  151. package/dist/contracts/functionWorkflowToolContracts.js +2 -2
  152. package/dist/contracts/javascriptApplicationWorkflowExamples.js +2 -2
  153. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +4 -4
  154. package/dist/contracts/javascriptRuntimeReconciliationExample.js +1 -1
  155. package/dist/contracts/managedToolContracts.js +7 -4
  156. package/dist/contracts/managedWorkflowExamples.js +0 -22
  157. package/dist/contracts/managedWorkflowToolContracts.js +16 -31
  158. package/dist/contracts/nativeToolContracts.js +9 -0
  159. package/dist/contracts/promptContracts.js +6 -6
  160. package/dist/contracts/sessionToolSchemas.js +3 -3
  161. package/dist/contracts/toolContractExamples.js +4 -3
  162. package/dist/contracts/toolContracts.js +18 -7
  163. package/dist/contracts/toolEffects.js +34 -21
  164. package/dist/contracts/toolOutputSchemaGroups.js +18 -5
  165. package/dist/contracts/toolOutputSchemaPrimitives.js +9 -6
  166. package/dist/contracts/toolSchemaMetadata.js +5 -8
  167. package/dist/doctorRuntime.js +0 -41
  168. package/dist/domain/analysisErrorPresentation.js +4 -28
  169. package/dist/domain/analysisErrorProjection.js +33 -50
  170. package/dist/domain/analysisProfile.js +1 -1
  171. package/dist/domain/analysisSnapshot.js +77 -3
  172. package/dist/domain/androidApplication.js +5 -4
  173. package/dist/domain/appleApplication.js +5 -4
  174. package/dist/domain/appleAssetCatalog.js +127 -0
  175. package/dist/domain/artifactComparison.js +7 -11
  176. package/dist/domain/artifactGraph.js +8 -6
  177. package/dist/domain/artifactInspection.js +13 -12
  178. package/dist/domain/binaryTarget.js +23 -9
  179. package/dist/domain/browserObservation.js +43 -24
  180. package/dist/domain/browserObservationSchemas.js +2 -1
  181. package/dist/domain/browserScenario.js +7 -107
  182. package/dist/domain/browserScenarioCapture.js +0 -1
  183. package/dist/domain/browserScenarioCaptureValues.js +5 -4
  184. package/dist/domain/browserScenarioDiff.js +1 -3
  185. package/dist/domain/browserScenarioValues.js +16 -107
  186. package/dist/domain/bundleComparison.js +18 -17
  187. package/dist/domain/callPathSchemas.js +17 -7
  188. package/dist/domain/changedBehavior.js +2 -3
  189. package/dist/domain/comparisonSemantics.js +19 -0
  190. package/dist/domain/completionLedgerGeneration.js +3 -2
  191. package/dist/domain/conformancePackage.js +2 -1
  192. package/dist/domain/conformanceTrustGate.js +3 -5
  193. package/dist/domain/customProtocolCapture.js +2 -2
  194. package/dist/domain/digests.js +30 -0
  195. package/dist/domain/dosMz.js +83 -0
  196. package/dist/domain/electronActiveObservation.js +7 -5
  197. package/dist/domain/electronObservation.js +3 -2
  198. package/dist/domain/electronStaticAnalysisNative.js +15 -6
  199. package/dist/domain/emptyArraySchema.js +3 -0
  200. package/dist/domain/errors.js +10 -28
  201. package/dist/domain/evidence.js +5 -3
  202. package/dist/domain/evidenceCompletionLedger.js +3 -2
  203. package/dist/domain/functionComparisonNormalization.js +24 -18
  204. package/dist/domain/functionComparisonResults.js +3 -7
  205. package/dist/domain/functionComparisonSchemas.js +3 -2
  206. package/dist/domain/hopperValues.js +108 -8
  207. package/dist/domain/javascriptApplicationAnalysis.js +4 -7
  208. package/dist/domain/javascriptApplicationEvidenceSchemas.js +4 -3
  209. package/dist/domain/javascriptApplicationGraphSchemas.js +8 -7
  210. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +9 -7
  211. package/dist/domain/javascriptApplicationVersionItems.js +12 -18
  212. package/dist/domain/javascriptAstValues.js +4 -0
  213. package/dist/domain/javascriptExportShapeComparison.js +1 -6
  214. package/dist/domain/javascriptExportShapeComparisonSchemas.js +6 -10
  215. package/dist/domain/javascriptExportShapeVariants.js +15 -2
  216. package/dist/domain/javascriptFeatureTraceSchemas.js +8 -7
  217. package/dist/domain/javascriptRuntimeObservation.js +14 -2
  218. package/dist/domain/javascriptRuntimeReconciliationMatching.js +8 -0
  219. package/dist/domain/javascriptRuntimeReconciliationParsing.js +4 -2
  220. package/dist/domain/javascriptRuntimeReconciliationResult.js +6 -4
  221. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +15 -4
  222. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +19 -18
  223. package/dist/domain/javascriptRuntimeStaticCandidates.js +18 -6
  224. package/dist/domain/javascriptSemanticAnalysis.js +57 -19
  225. package/dist/domain/javascriptSemanticAsyncEffects.js +39 -40
  226. package/dist/domain/javascriptSemanticCalls.js +46 -27
  227. package/dist/domain/javascriptSemanticChildProcesses.js +43 -50
  228. package/dist/domain/javascriptSemanticDataEffectHelpers.js +91 -18
  229. package/dist/domain/javascriptSemanticDataEffects.js +22 -10
  230. package/dist/domain/javascriptSemanticGraphSchemas.js +8 -6
  231. package/dist/domain/javascriptSemanticObjects.js +13 -3
  232. package/dist/domain/javascriptSemanticProjection.js +144 -38
  233. package/dist/domain/javascriptSemanticPromises.js +14 -27
  234. package/dist/domain/javascriptSemanticQuerySchemas.js +6 -9
  235. package/dist/domain/javascriptSemanticResources.js +2 -5
  236. package/dist/domain/javascriptSemanticState.js +4 -0
  237. package/dist/domain/javascriptSemanticTraceSchemas.js +2 -1
  238. package/dist/domain/javascriptSemanticTraversal.js +13 -5
  239. package/dist/domain/javascriptSemanticValues.js +10 -9
  240. package/dist/domain/javascriptSourceParser.js +5 -1
  241. package/dist/domain/javascriptStaticAnalysisCalls.js +8 -5
  242. package/dist/domain/javascriptStaticAnalysisHelpers.js +16 -7
  243. package/dist/domain/keyedArchive.js +181 -0
  244. package/dist/domain/managedApplicationGraph.js +4 -3
  245. package/dist/domain/managedArtifact.js +2 -1
  246. package/dist/domain/managedMemberComparison.js +18 -13
  247. package/dist/domain/managedMemberComparisonCoverage.js +2 -1
  248. package/dist/domain/managedMemberComparisonItems.js +27 -7
  249. package/dist/domain/managedMemberComparisonMatch.js +22 -6
  250. package/dist/domain/managedNativeVerificationMatch.js +2 -2
  251. package/dist/domain/managedNativeVerificationSchemas.js +7 -5
  252. package/dist/domain/managedReconstruction.js +6 -5
  253. package/dist/domain/nativeApiBoundary.js +7 -0
  254. package/dist/domain/nativeDataType.js +51 -0
  255. package/dist/domain/nativeInspection.js +0 -1
  256. package/dist/domain/nativeInstruction.js +82 -0
  257. package/dist/domain/nativeInvestigationGraph.js +9 -5
  258. package/dist/domain/nativeUiObservation.js +123 -0
  259. package/dist/domain/nativeValueFlow.js +17 -0
  260. package/dist/domain/nativeValueTrace.js +64 -0
  261. package/dist/domain/objcSwiftMetadata.js +39 -0
  262. package/dist/domain/peInspection.js +1 -0
  263. package/dist/domain/processCapture.js +5 -55
  264. package/dist/domain/processCaptureExample.js +0 -9
  265. package/dist/domain/processCaptureValidation.js +13 -144
  266. package/dist/domain/processComparison.js +3 -25
  267. package/dist/domain/processObservation.js +0 -29
  268. package/dist/domain/processScenario.js +28 -228
  269. package/dist/domain/processTraceDimensionProjection.js +0 -15
  270. package/dist/domain/processTraceEvaluation.js +0 -6
  271. package/dist/domain/protocolCapture.js +8 -36
  272. package/dist/domain/reconstructionCoverage.js +3 -2
  273. package/dist/domain/reconstructionObligationLedgerSchemas.js +4 -12
  274. package/dist/domain/reconstructionReadinessSchemas.js +4 -3
  275. package/dist/domain/reconstructionVerification.js +2 -1
  276. package/dist/domain/reconstructionVerificationSchemas.js +6 -13
  277. package/dist/domain/referenceSourceClassification.js +0 -110
  278. package/dist/domain/referenceSourceGraph.js +15 -5
  279. package/dist/domain/residualUnknown.js +3 -2
  280. package/dist/domain/runtimeIdentification.js +6 -5
  281. package/dist/domain/sourceMapContents.js +5 -0
  282. package/dist/domain/sourceToBundleComparison.js +3 -10
  283. package/dist/domain/sourceToBundleComparisonSchemas.js +7 -6
  284. package/dist/domain/sourceToBundleSignals.js +9 -3
  285. package/dist/domain/staticRuntimeCorrelation.js +5 -11
  286. package/dist/domain/webBundleAnalysis.js +17 -9
  287. package/dist/domain/webBundleAnalyzer.js +1 -1
  288. package/dist/domain/webCaptureDiff.js +5 -11
  289. package/dist/domain/webCaptureDiffSchemas.js +2 -1
  290. package/dist/domain/webMcpDiscovery.js +2 -1
  291. package/dist/dotnet/ManagedMemberInspectorCore.js +15 -7
  292. package/dist/dotnet/ManagedMemberInstructionDecoder.js +57 -40
  293. package/dist/dotnet/ManagedMemberRows.js +2 -0
  294. package/dist/dotnet/ManagedMethodBodyReader.js +15 -8
  295. package/dist/dotnet/ManagedPeReader.js +2 -0
  296. package/dist/generatedMcpToolCatalog.js +1 -1
  297. package/dist/generatedPackageMetadata.js +2 -2
  298. package/dist/ghidra/GhidraAnalysisProfile.js +15 -5
  299. package/dist/ghidra/GhidraClient.js +38 -8
  300. package/dist/ghidra/GhidraFunctionValues.js +56 -20
  301. package/dist/ghidra/GhidraInstallation.js +7 -4
  302. package/dist/ghidra/GhidraInventoryValues.js +44 -9
  303. package/dist/ghidra/GhidraLauncher.js +18 -3
  304. package/dist/ghidra/GhidraProvider.js +23 -2
  305. package/dist/ghidra/GhidraRequestQueue.js +45 -4
  306. package/dist/ghidra/GhidraSessionValues.js +5 -0
  307. package/dist/hopper/HopperAnalysisProfile.js +2 -0
  308. package/dist/hopper/HopperProvider.js +29 -6
  309. package/dist/hopper/HopperTargetLease.js +18 -4
  310. package/dist/logger.js +0 -13
  311. package/dist/main/messages.js +0 -1
  312. package/dist/main/reload.js +3 -32
  313. package/dist/main/shutdown.js +1 -2
  314. package/dist/main/transport.js +0 -17
  315. package/dist/main.js +0 -10
  316. package/dist/native/AppleDispatchMetadata.js +582 -0
  317. package/dist/native/AppleObjcProtocols.js +88 -0
  318. package/dist/native/AppleSwiftVtables.js +86 -0
  319. package/dist/native/CommandRunner.js +1 -1
  320. package/dist/native/NativeHostCapabilities.js +23 -0
  321. package/dist/native/NativeMacOSProvider.js +61 -9
  322. package/dist/native/NativeMachoInspection.js +39 -6
  323. package/dist/native/NativeUiHelperRuntime.js +42 -0
  324. package/dist/native/NativeUiObservation.js +174 -0
  325. package/dist/native/parsers/codesign.js +4 -1
  326. package/dist/native/parsers/dyldInfo.js +51 -25
  327. package/dist/native/parsers/lipo.js +13 -4
  328. package/dist/native/parsers/otool.js +84 -39
  329. package/dist/native/parsers/plist.js +2 -1
  330. package/dist/process/ExecFileOutput.js +5 -1
  331. package/dist/process/ProcessOwnership.js +69 -33
  332. package/dist/process/ProcessOwnershipObservation.js +31 -12
  333. package/dist/process/ProviderProcess.js +4 -2
  334. package/dist/reference/ReferenceSourceReaderEntries.js +48 -31
  335. package/dist/reference/ReferenceSourceReaderErrors.js +24 -0
  336. package/dist/reference/ReferenceSourceReaderFile.js +11 -5
  337. package/dist/reference/ReferenceSourceReaderValidate.js +22 -8
  338. package/dist/server/createServer.js +7 -62
  339. package/dist/server/registerApplicationTools/helpers.js +2 -9
  340. package/dist/server/registerApplicationTools.js +0 -4
  341. package/dist/server/registerArtifactComparisonTool.js +1 -1
  342. package/dist/server/registerBrowserScenarioTool.js +4 -2
  343. package/dist/server/registerBrowserTools.js +7 -7
  344. package/dist/server/registerBundleComparisonTool.js +1 -1
  345. package/dist/server/registerCloseLifecycleTool.js +1 -1
  346. package/dist/server/registerElectronTools.js +10 -4
  347. package/dist/server/registerEnhancedTools.js +20 -12
  348. package/dist/server/registerEvidenceTools.js +4 -28
  349. package/dist/server/registerFunctionComparisonTool.js +1 -1
  350. package/dist/server/registerInvestigationTools.js +6 -6
  351. package/dist/server/registerJavaScriptRuntimeObservationTools.js +2 -2
  352. package/dist/server/registerManagedTools.js +28 -14
  353. package/dist/server/registerManagedWorkflowTools.js +0 -2
  354. package/dist/server/registerProcessComparisonTool.js +1 -3
  355. package/dist/server/registerSessionRecordTools.js +9 -9
  356. package/dist/server/registerSessionStatusTool.js +1 -1
  357. package/dist/server/registerSessionTools.js +28 -57
  358. package/dist/server/sessionAvailabilityPolicy.js +2 -3
  359. package/dist/server/sessionToolPolicies.js +0 -4
  360. package/dist/server/toolResult.js +8 -10
  361. package/package.json +32 -22
  362. package/skills/reverse-engineer-anything/SKILL.md +15 -11
  363. package/skills/reverse-engineer-anything/references/evidence-workflows.md +3 -2
  364. package/skills/reverse-engineer-anything/references/javascript-applications.md +3 -2
  365. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +8 -6
  366. package/skills/reverse-engineer-anything/references/runtime-observation.md +15 -11
  367. package/dist/application/CommandShimReplay.js +0 -152
  368. package/dist/application/ConfiguredRoots.js +0 -19
  369. package/dist/application/InstrumentedJavaScriptReplayHost.js +0 -36
  370. package/dist/application/JavaScriptReplayPermission.js +0 -16
  371. package/dist/application/JavaScriptReplayPlanning.js +0 -207
  372. package/dist/application/JavaScriptReplayService.js +0 -274
  373. package/dist/application/LoopbackReplay.js +0 -389
  374. package/dist/application/LoopbackReplayRecorder.js +0 -129
  375. package/dist/application/ManagedRuntimeCorrelationService.js +0 -104
  376. package/dist/application/NodeRuntimeCharacterizationService.js +0 -191
  377. package/dist/application/PermissionAuthority.js +0 -268
  378. package/dist/application/PermissionConfiguration.js +0 -26
  379. package/dist/application/PermissionFailure.js +0 -5
  380. package/dist/application/ProcessCaptureAuthority.js +0 -24
  381. package/dist/application/ProcessCapturePermission.js +0 -13
  382. package/dist/application/ProcessCheckpoints.js +0 -178
  383. package/dist/application/ProcessReactiveCoordinator.js +0 -223
  384. package/dist/application/ProcessReactiveEffects.js +0 -153
  385. package/dist/application/ProcessReactiveHarness.js +0 -106
  386. package/dist/application/ProcessReactiveObservations.js +0 -105
  387. package/dist/application/ProjectPermissionStore.js +0 -199
  388. package/dist/application/RuntimeExecutableDiagnostics.js +0 -198
  389. package/dist/application/Upgrade.js +0 -134
  390. package/dist/browser/SensitiveTextCapture.js +0 -8
  391. package/dist/cliPolicyCommands.js +0 -185
  392. package/dist/config/browserScenario.js +0 -77
  393. package/dist/config/electronAutomation.js +0 -35
  394. package/dist/config/javascriptReplay.js +0 -41
  395. package/dist/config/managedRuntime.js +0 -25
  396. package/dist/config/passiveObservation.js +0 -87
  397. package/dist/config/permissions.js +0 -23
  398. package/dist/config/processCapture.js +0 -47
  399. package/dist/contracts/replayMachineExample.js +0 -37
  400. package/dist/domain/javascriptExportInstrumentation.js +0 -95
  401. package/dist/domain/javascriptReplay.js +0 -360
  402. package/dist/domain/managedRuntimeCorrelation.js +0 -181
  403. package/dist/domain/nodeRuntimeCharacterization.js +0 -63
  404. package/dist/domain/permissionPolicy.js +0 -176
  405. package/dist/domain/processCaptureReactiveSchema.js +0 -68
  406. package/dist/domain/processCaptureReactiveValidation.js +0 -180
  407. package/dist/domain/processReactiveCheckpointDataflow.js +0 -32
  408. package/dist/domain/processReactiveMatching.js +0 -196
  409. package/dist/domain/processReactiveRuntime.js +0 -116
  410. package/dist/domain/processReactiveScenario.js +0 -296
  411. package/dist/domain/processReactiveScenarioPreflight.js +0 -95
  412. package/dist/domain/processReactiveTransition.js +0 -187
  413. package/dist/domain/replayMachine.js +0 -320
  414. package/dist/domain/replayMachineRun.js +0 -168
  415. package/dist/domain/replayMachineRuntime.js +0 -296
  416. package/dist/domain/replayMachineValues.js +0 -84
  417. package/dist/domain/runtimeCharacterization.js +0 -84
  418. package/dist/replay/JavaScriptReplayWorker.js +0 -382
  419. package/dist/replay/JavaScriptReplayWorkerTypes.js +0 -1
  420. package/dist/replay/LinuxJavaScriptReplayRunner.js +0 -216
  421. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -121
  422. package/dist/replay/LinuxRuntimeClosure.js +0 -44
  423. package/dist/replay/LinuxSeccompPolicy.js +0 -40
  424. package/dist/replay/ReplayOutcome.js +0 -104
  425. package/dist/replay/ReplayProcessLifecycle.js +0 -96
  426. package/dist/replay/ReplaySeccompFile.js +0 -29
  427. package/dist/replay/ReplayWorkerProtocol.js +0 -58
  428. package/dist/replay/SystemJavaScriptReplayHost.js +0 -153
  429. package/dist/server/ProcessCaptureElicitation.js +0 -153
  430. package/dist/server/registerApplicationTools/characterization.js +0 -46
  431. package/dist/server/registerApplicationTools/controlledReplay.js +0 -31
  432. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +0 -29
  433. package/dist/server/registerReplayMachineTool.js +0 -14
  434. package/skills/reverse-engineer-anything/references/controlled-replay.md +0 -12
@@ -24,7 +24,10 @@ const MUTATING_OPERATIONS = new Set([
24
24
  ]);
25
25
  /** Tool contracts implemented directly by the Hopper adapter. */
26
26
  export const HOPPER_PROVIDER_TOOL_CONTRACTS = Object.freeze([
27
- ...GENERATED_MCP_TOOL_CATALOG.filter(({ kind }) => kind === "official-proxy"),
27
+ ...GENERATED_MCP_TOOL_CATALOG.filter(({ kind, name }) => kind === "official-proxy" &&
28
+ name !== "inspect_native_data_type" &&
29
+ name !== "inspect_native_instruction" &&
30
+ name !== "resolve_native_call_targets"),
28
31
  ...GENERATED_MCP_TOOL_CATALOG.filter(({ name }) => name === "analyze_function"),
29
32
  ]);
30
33
  const CAPABILITIES = Object.freeze(HOPPER_PROVIDER_TOOL_CONTRACTS.map((contract) => {
@@ -54,9 +57,17 @@ const CAPABILITIES = Object.freeze(HOPPER_PROVIDER_TOOL_CONTRACTS.map((contract)
54
57
  export class HopperProvider {
55
58
  config;
56
59
  logger;
57
- constructor(config, logger) {
60
+ platform;
61
+ /**
62
+ * Host platform, injected so availability and launch-mode decisions can be
63
+ * exercised for any host rather than only the machine running the suite.
64
+ * Mirrors `GhidraProvider`, which already threads its installation host's
65
+ * platform the same way.
66
+ */
67
+ constructor(config, logger, platform = process.platform) {
58
68
  this.config = config;
59
69
  this.logger = logger;
70
+ this.platform = platform;
60
71
  }
61
72
  identity() {
62
73
  return IDENTITY;
@@ -67,13 +78,13 @@ export class HopperProvider {
67
78
  inspectAvailability() {
68
79
  const diagnostics = {
69
80
  launcher_path: this.config.hopperLauncherPath,
70
- platform: process.platform,
81
+ platform: this.platform,
71
82
  };
72
- if (process.platform !== "darwin" && process.platform !== "linux")
83
+ if (this.platform !== "darwin" && this.platform !== "linux")
73
84
  return {
74
85
  status: "unavailable",
75
86
  code: "unsupported_host",
76
- reason: `Hopper integration is not supported on ${process.platform}.`,
87
+ reason: `Hopper integration is not supported on ${this.platform}.`,
77
88
  diagnostics,
78
89
  };
79
90
  try {
@@ -114,6 +125,13 @@ export class HopperProvider {
114
125
  reason: null,
115
126
  diagnostics,
116
127
  };
128
+ if (target.format === "dos-mz")
129
+ return {
130
+ status: "unsupported",
131
+ code: "target_format_unsupported",
132
+ reason: "DOS MZ analysis requires the Ghidra 16-bit real-mode adapter.",
133
+ diagnostics,
134
+ };
117
135
  return {
118
136
  status: "supported",
119
137
  code: null,
@@ -151,7 +169,7 @@ export class HopperProvider {
151
169
  ? this.config.hopperLoaderArgs
152
170
  : derivedLoaderArgs.value,
153
171
  bridgeScriptPath: fileURLToPath(new URL("../../bridge/hopper_bridge.py", import.meta.url)),
154
- ...(process.platform === "linux"
172
+ ...(this.platform === "linux"
155
173
  ? {
156
174
  launchMode: "verified_linux_demo",
157
175
  demoHelperPath: fileURLToPath(new URL("../../scripts/hopper-demo-x11.py", import.meta.url)),
@@ -172,6 +190,11 @@ export class HopperProvider {
172
190
  ...(profile === undefined ? {} : { analysisProfile: profile }),
173
191
  limitations: [
174
192
  "Results depend on Hopper's completed static analysis.",
193
+ ...(operation === "procedure_references"
194
+ ? [
195
+ "Hopper's public Python API does not expose flow classification for calls without resolved targets; unresolved_calls is empty and its coverage is unknown.",
196
+ ]
197
+ : []),
175
198
  ],
176
199
  }),
177
200
  }
@@ -2,6 +2,7 @@ import { createHash } from "node:crypto";
2
2
  import { chmod, lstat, mkdir, realpath, rm } from "node:fs/promises";
3
3
  import { createConnection, createServer, } from "node:net";
4
4
  import { join, resolve } from "node:path";
5
+ import { HopperStartError } from "../domain/errors.js";
5
6
  const leaseDirectory = join("/tmp", `rea-hopper-${process.getuid?.() ?? 0}`);
6
7
  /** Keep two REA processes from opening duplicate Hopper documents for one target/profile. */
7
8
  export const acquireHopperTargetLease = async (input) => {
@@ -42,15 +43,28 @@ export const acquireHopperTargetLease = async (input) => {
42
43
  return { acquired: false, owner: existingOwner };
43
44
  await rm(socketPath, { force: true });
44
45
  }
45
- throw new Error("Could not acquire the Hopper target lease");
46
+ throw new HopperStartError({
47
+ userMessage: "REA could not reserve this Hopper target. Close competing REA sessions and retry.",
48
+ });
46
49
  };
47
50
  const ensureLeaseDirectory = async (directory) => {
48
- await mkdir(directory, { recursive: true, mode: 0o700 });
49
- const directoryStat = await lstat(directory);
51
+ let directoryStat;
52
+ try {
53
+ await mkdir(directory, { recursive: true, mode: 0o700 });
54
+ directoryStat = await lstat(directory);
55
+ }
56
+ catch (cause) {
57
+ throw new HopperStartError({
58
+ cause,
59
+ userMessage: "REA could not create or inspect its private Hopper lease directory.",
60
+ });
61
+ }
50
62
  if (directoryStat.isSymbolicLink() ||
51
63
  directoryStat.isDirectory() === false ||
52
64
  (process.getuid !== undefined && directoryStat.uid !== process.getuid()))
53
- throw new Error("Hopper target lease directory is not private");
65
+ throw new HopperStartError({
66
+ userMessage: "REA's Hopper lease directory is not a private directory owned by this user.",
67
+ });
54
68
  if ((directoryStat.mode & 0o077) !== 0)
55
69
  await chmod(directory, 0o700);
56
70
  };
package/dist/logger.js CHANGED
@@ -9,19 +9,6 @@ export const parseLogLevel = (value) => logLevelSchema.parse(value);
9
9
  export const createLogger = (mode, level) => pino({
10
10
  level,
11
11
  base: { application: "rea", mode },
12
- redact: {
13
- paths: [
14
- "token",
15
- "*.token",
16
- "params",
17
- "*.params",
18
- "arguments",
19
- "*.arguments",
20
- "environment",
21
- "*.environment",
22
- ],
23
- censor: "[Redacted]",
24
- },
25
12
  }, pino.destination({ dest: 2, sync: false }));
26
13
  /** Logger used by embedders that have not opted into process output. */
27
14
  export const silentLogger = pino({ level: "silent" });
@@ -1,5 +1,4 @@
1
1
  export const MCP_CONNECTION_LOST = "REA lost its MCP client connection. Restart REA from your MCP client.";
2
2
  export const MCP_CONNECTION_START_FAILED = "REA could not start its MCP connection. Restart REA from your MCP client; run `rea doctor` if it fails again.";
3
3
  export const MCP_SHUTDOWN_FAILED = "REA could not close cleanly. End the REA process before starting it again.";
4
- export const MCP_PERMISSION_RELOAD_FAILED = "Reloaded permission policy failed unexpectedly";
5
4
  export const SERVER_START_FAILED = "REA could not start. Run `rea doctor`, then restart REA from your MCP client.";
@@ -1,41 +1,12 @@
1
1
  import { parseConfig } from "../config.js";
2
- import { readProjectPermissionStore } from "../application/ProjectPermissionStore.js";
3
- import { MCP_PERMISSION_RELOAD_FAILED } from "./messages.js";
4
2
  export const registerConfigReload = (input) => {
5
- const { dependencies, permissionAuthority, runtimeState, serverLogger } = input;
6
- let reloadQueue = Promise.resolve();
3
+ const { dependencies, runtimeState, serverLogger } = input;
7
4
  return (dependencies.registerReload?.(() => {
8
5
  const refreshed = parseConfig(dependencies.env);
9
6
  if (!refreshed.ok) {
10
- serverLogger.error("Reloaded permission policy is invalid");
7
+ serverLogger.error("Reloaded REA configuration is invalid");
11
8
  return;
12
9
  }
13
- reloadQueue = reloadQueue
14
- .then(async () => {
15
- let projectGrants = [];
16
- if (refreshed.value.permissionProjectRoot !== undefined &&
17
- refreshed.value.permissionProjectStore !== undefined) {
18
- const project = await (dependencies.readProjectPermissionStore ??
19
- readProjectPermissionStore)(refreshed.value.permissionProjectStore, refreshed.value.permissionProjectRoot);
20
- if (!project.ok) {
21
- serverLogger.error("Reloaded project grants could not be read");
22
- return;
23
- }
24
- projectGrants = project.value?.grants ?? [];
25
- }
26
- const reloaded = await permissionAuthority.replaceConfiguredPolicy({
27
- ceilings: refreshed.value.permissionCeilings,
28
- administratorGrants: refreshed.value.administratorPermissionGrants,
29
- projectGrants,
30
- });
31
- if (!reloaded.ok) {
32
- serverLogger.error("Reloaded permission policy could not be applied");
33
- return;
34
- }
35
- runtimeState.currentConfig = refreshed.value;
36
- })
37
- .catch(() => {
38
- serverLogger.error(MCP_PERMISSION_RELOAD_FAILED);
39
- });
10
+ runtimeState.currentConfig = refreshed.value;
40
11
  }) ?? (() => undefined));
41
12
  };
@@ -1,6 +1,6 @@
1
1
  import { MCP_SHUTDOWN_FAILED } from "./messages.js";
2
2
  export const createShutdown = (input) => {
3
- const { handle, session, permissionAuthority, unregisterReload, dependencies, serverLogger, } = input;
3
+ const { handle, session, unregisterReload, dependencies, serverLogger } = input;
4
4
  let shutdownPromise;
5
5
  let unregisterShutdown = () => undefined;
6
6
  const shutdown = async () => {
@@ -9,7 +9,6 @@ export const createShutdown = (input) => {
9
9
  unregisterShutdown();
10
10
  await handle.close();
11
11
  await session.close({ retainProviderDocuments: true });
12
- permissionAuthority.clearSessionGrants();
13
12
  })();
14
13
  return shutdownPromise;
15
14
  };
@@ -13,14 +13,7 @@ export const startMcpTransport = async (dependencies, session, serverContext) =>
13
13
  try {
14
14
  handle = dependencies.serve(() => (dependencies.createServer ?? createServer)(session, session, {
15
15
  logger: serverContext.logger,
16
- processPolicy: () => serverContext.runtimeState.currentConfig.processExecutionPolicy,
17
- permissionAuthority: serverContext.permissionAuthority,
18
16
  ...optionalProviders,
19
- artifactIntegrityContinueEnabled: () => serverContext.runtimeState.currentConfig
20
- .artifactIntegrityContinueEnabled,
21
- javascriptReplayPolicy: () => serverContext.runtimeState.currentConfig.javascriptReplayPolicy,
22
- managedRuntimePolicy: () => serverContext.runtimeState.currentConfig.managedRuntimePolicy,
23
- availabilityPolicy: () => runtimeAvailability(serverContext.runtimeState),
24
17
  }), {
25
18
  onerror: () => {
26
19
  serverLogger.error(MCP_CONNECTION_LOST);
@@ -36,13 +29,3 @@ export const startMcpTransport = async (dependencies, session, serverContext) =>
36
29
  }
37
30
  return { ok: true, handle };
38
31
  };
39
- const runtimeAvailability = (state) => ({
40
- processCaptureEnabled: state.currentConfig.processExecutionPolicy.status === "enabled",
41
- browserObservationEnabled: state.currentConfig.browserObservationPolicy.status === "enabled",
42
- browserScenarioEnabled: state.currentConfig.browserScenarioPolicy.status === "enabled",
43
- electronObservationEnabled: state.currentConfig.electronObservationPolicy.status === "enabled",
44
- electronAutomationEnabled: state.currentConfig.electronAutomationPolicy.status === "enabled",
45
- v8InspectorObservationEnabled: state.currentConfig.v8InspectorObservationPolicy.status === "enabled",
46
- javascriptReplayEnabled: state.currentConfig.javascriptReplayPolicy.status === "enabled",
47
- managedRuntimeEnabled: state.currentConfig.managedRuntimePolicy.status === "enabled",
48
- });
package/dist/main.js CHANGED
@@ -6,7 +6,6 @@ import { parseConfig } from "./config.js";
6
6
  import { createBinarySession } from "./application/runtime.js";
7
7
  import { createLogger } from "./logger.js";
8
8
  import { projectAnalysisError } from "./domain/errors.js";
9
- import { loadConfiguredPermissionAuthority } from "./application/PermissionConfiguration.js";
10
9
  import { SERVER_START_FAILED } from "./main/messages.js";
11
10
  import { createRuntimeState } from "./main/state.js";
12
11
  import { openInitialTarget } from "./main/startup.js";
@@ -50,11 +49,6 @@ export const run = async (dependencies = runtimeDependencies()) => {
50
49
  }
51
50
  const logger = createLogger("mcp", config.value.logLevel);
52
51
  const serverLogger = logger.child({ layer: "server" });
53
- const permissionAuthority = await loadConfiguredPermissionAuthority(config.value);
54
- if (!permissionAuthority.ok) {
55
- dependencies.writeStderr(`${projectAnalysisError(permissionAuthority.error).message}\n`);
56
- return 1;
57
- }
58
52
  const session = createBinarySession(config.value, logger);
59
53
  const opened = await openInitialTarget(session, config.value, serverLogger, dependencies.writeStderr);
60
54
  if (!opened.ok)
@@ -80,21 +74,17 @@ export const run = async (dependencies = runtimeDependencies()) => {
80
74
  javascriptRuntimeObservation: new V8InspectorProvider(),
81
75
  };
82
76
  }),
83
- permissionAuthority: permissionAuthority.value,
84
- runtimeState,
85
77
  });
86
78
  if (!transport.ok)
87
79
  return 1;
88
80
  const unregisterReload = registerConfigReload({
89
81
  dependencies,
90
- permissionAuthority: permissionAuthority.value,
91
82
  runtimeState,
92
83
  serverLogger,
93
84
  });
94
85
  createShutdown({
95
86
  handle: transport.handle,
96
87
  session,
97
- permissionAuthority: permissionAuthority.value,
98
88
  unregisterReload,
99
89
  dependencies,
100
90
  serverLogger,