rea-agents 6.1.0 → 6.3.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 (573) hide show
  1. package/README.md +24 -24
  2. package/bridge/ghidra/ReaGhidraBridge.java +32 -4
  3. package/bridge/hopper_bridge.py +8 -1
  4. package/dist/android/JadxConfiguration.js +87 -7
  5. package/dist/android/JadxMcpTransport.js +14 -2
  6. package/dist/android/JadxProvider.js +64 -36
  7. package/dist/android/JadxSession.js +51 -9
  8. package/dist/application/BinaryTargetResolver.js +68 -20
  9. package/dist/application/BrowserEvidence.js +3 -8
  10. package/dist/application/BrowserScenarioEvidence.js +4 -20
  11. package/dist/application/CapabilityInventory.js +43 -9
  12. package/dist/application/ClientConfigurationDocument.js +97 -25
  13. package/dist/application/ClientRegistrationStatus.js +19 -6
  14. package/dist/application/DirectAnalysis.js +41 -20
  15. package/dist/application/DirectAnalysisCleanup.js +71 -0
  16. package/dist/application/DirectAnalysisStatus.js +3 -7
  17. package/dist/application/Doctor.js +40 -53
  18. package/dist/application/DoctorDiagnostics.js +2 -3
  19. package/dist/application/EnhancedTools.js +51 -6
  20. package/dist/application/EvidenceBundleFiles.js +8 -3
  21. package/dist/application/InvestigationProviders.js +13 -5
  22. package/dist/application/JsonFiles.js +56 -23
  23. package/dist/application/LinuxHopper.js +11 -7
  24. package/dist/application/MacHopper.js +15 -18
  25. package/dist/application/RealHopperAssertions.js +0 -11
  26. package/dist/application/ReconstructionObligationCandidates.js +10 -3
  27. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -1
  28. package/dist/application/ReferenceSourceImportEntries.js +1 -1
  29. package/dist/application/RegularFileRead.js +17 -0
  30. package/dist/application/Setup.js +26 -23
  31. package/dist/application/SetupClientConfiguration.js +18 -7
  32. package/dist/application/SetupHost.js +20 -29
  33. package/dist/application/SetupPlan.js +24 -20
  34. package/dist/application/SetupSkill.js +57 -8
  35. package/dist/application/SupportedClients.js +43 -0
  36. package/dist/application/Uninstall.js +98 -30
  37. package/dist/application/UpdateMaintenance.js +13 -7
  38. package/dist/application/UpdateRuntime.js +12 -12
  39. package/dist/application/Utf8JsonInput.js +64 -0
  40. package/dist/application/WebScriptExportService.js +38 -5
  41. package/dist/application/WorkflowEvidence.js +25 -2
  42. package/dist/application/XrefsAddressResolution.js +45 -0
  43. package/dist/application/analysisView/AnalysisViewService.js +76 -0
  44. package/dist/application/android/AndroidAnalysisService.js +1 -1
  45. package/dist/application/binary/AnalysisClientCleanup.js +30 -5
  46. package/dist/application/binary/AnalysisProviderEvaluation.js +1 -2
  47. package/dist/application/binary/AnalysisProviderRegistry.js +2 -6
  48. package/dist/application/binary/AnalysisSnapshotCache.js +13 -10
  49. package/dist/application/binary/BinarySession.js +86 -29
  50. package/dist/application/binary/BinarySessionComposition.js +1 -3
  51. package/dist/application/binary/BinarySessionExecution.js +3 -5
  52. package/dist/application/binary/BinarySessionOpen.js +10 -2
  53. package/dist/application/binary/BinarySessionRecords.js +1 -1
  54. package/dist/application/binary/BinarySessionStatus.js +1 -6
  55. package/dist/application/binary/CompositeProvider.js +4 -18
  56. package/dist/application/binary/LazyAnalysisProvider.js +5 -5
  57. package/dist/application/binary/SessionProviderRouter.js +27 -135
  58. package/dist/application/homebrew.js +48 -0
  59. package/dist/application/javascript/ElectronActiveEvidence.js +10 -14
  60. package/dist/application/javascript/ElectronBoundaryAnalysis.js +2 -2
  61. package/dist/application/javascript/ElectronBoundaryGraphNative.js +5 -1
  62. package/dist/application/javascript/JavaScriptApplicationEvidence.js +3 -6
  63. package/dist/application/javascript/JavaScriptApplicationEvidenceGraph.js +107 -46
  64. package/dist/application/javascript/JavaScriptApplicationService.js +7 -1
  65. package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +59 -45
  66. package/dist/application/javascript/JavaScriptArtifactAnalysis.js +5 -9
  67. package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +19 -27
  68. package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +11 -3
  69. package/dist/application/javascript/JavaScriptArtifactGraphContext.js +9 -0
  70. package/dist/application/javascript/JavaScriptArtifactGraphDocuments.js +8 -5
  71. package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +46 -29
  72. package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +0 -1
  73. package/dist/application/javascript/JavaScriptArtifactPathResolution.js +86 -27
  74. package/dist/application/javascript/JavaScriptArtifactReconstruction.js +52 -9
  75. package/dist/application/javascript/JavaScriptArtifactReconstructionInput.js +1 -0
  76. package/dist/application/javascript/JavaScriptJsonModules.js +2 -2
  77. package/dist/application/javascript/JavaScriptModuleRelationships.js +6 -18
  78. package/dist/application/javascript/JavaScriptRuntimeObservationService.js +3 -3
  79. package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +11 -27
  80. package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +4 -5
  81. package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +8 -6
  82. package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +2 -3
  83. package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +7 -5
  84. package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +3 -4
  85. package/dist/application/javascript/JavaScriptSemanticGraphEvidence.js +1 -1
  86. package/dist/application/javascript/JavaScriptSemanticGraphFingerprintProjection.js +2 -2
  87. package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +3 -7
  88. package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +76 -47
  89. package/dist/application/javascript/JavaScriptSemanticGraphProjection.js +4 -4
  90. package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +3 -4
  91. package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +51 -25
  92. package/dist/application/javascript/JavaScriptSemanticTraceService.js +15 -10
  93. package/dist/application/managed/ManagedMemberComparisonService.js +2 -1
  94. package/dist/application/managed/ManagedNativeVerificationService.js +2 -1
  95. package/dist/application/native/NativeCallRoutes.js +2 -4
  96. package/dist/application/process/ProcessCli.js +11 -11
  97. package/dist/application/process/ProcessEvidence.js +0 -1
  98. package/dist/artifacts/ArtifactProvider.js +53 -30
  99. package/dist/artifacts/ArtifactProviderMetadata.js +1 -4
  100. package/dist/artifacts/ArtifactReader.js +31 -0
  101. package/dist/artifacts/AsarArtifactReader.js +81 -17
  102. package/dist/artifacts/DirectoryArtifactReader.js +2 -1
  103. package/dist/artifacts/MachOSliceArtifactReader.js +9 -2
  104. package/dist/artifacts/NativeDmgArtifactReader.js +207 -77
  105. package/dist/artifacts/NativeDmgOwnership.js +109 -0
  106. package/dist/artifacts/SafeOutputTree.js +16 -2
  107. package/dist/artifacts/ZipArtifactReader.js +11 -4
  108. package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +4 -2
  109. package/dist/artifacts/apple/DylibResolutionReader.js +17 -7
  110. package/dist/artifacts/apple/KeyedArchiveReader.js +68 -42
  111. package/dist/artifacts/apple/MachoLoadCommandReader.js +36 -6
  112. package/dist/artifacts/extraction/ArtifactExtraction.js +104 -29
  113. package/dist/artifacts/inventory/ArtifactGraphConstruction.js +71 -66
  114. package/dist/artifacts/inventory/ArtifactInventory.js +0 -1
  115. package/dist/artifacts/inventory/classify.js +33 -14
  116. package/dist/artifacts/inventory/hashStableRootArtifact.js +37 -0
  117. package/dist/artifacts/inventory/reader.js +3 -3
  118. package/dist/artifacts/inventory/scanCanonical.js +64 -34
  119. package/dist/artifacts/inventory/scanReader.js +12 -20
  120. package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +65 -27
  121. package/dist/browser/BrowserScenarioPartialObservation.js +106 -0
  122. package/dist/browser/CdpBrowserProvider.js +6 -6
  123. package/dist/browser/CdpCaptureEventHandlers.js +2 -4
  124. package/dist/browser/CdpCaptureEvents.js +0 -1
  125. package/dist/browser/CdpCaptureStorageFingerprints.js +3 -3
  126. package/dist/browser/CdpCaptureValues.js +20 -0
  127. package/dist/browser/CdpElectronInspection.js +2 -2
  128. package/dist/browser/CdpElectronProvider.js +4 -5
  129. package/dist/browser/CdpElectronScriptEvents.js +2 -8
  130. package/dist/browser/CdpElectronScripts.js +4 -5
  131. package/dist/browser/CdpPageCaptureScripts.js +2 -3
  132. package/dist/browser/CdpSafeMetadata.js +10 -10
  133. package/dist/browser/CdpWebMcpDiscovery.js +16 -13
  134. package/dist/browser/PlaywrightBrowserScenarioProvider.js +64 -49
  135. package/dist/browser/PlaywrightElectronActiveActions.js +2 -56
  136. package/dist/browser/PlaywrightElectronActiveProvider.js +10 -6
  137. package/dist/browser/PlaywrightScenarioArtifacts.js +1 -1
  138. package/dist/browser/PlaywrightScenarioBrowser.js +269 -66
  139. package/dist/browser/PlaywrightScenarioEvents.js +1 -1
  140. package/dist/browser/PlaywrightScenarioSession.js +41 -32
  141. package/dist/browser/WebSourceMapFetcher.js +32 -6
  142. package/dist/browser/assets/ScenarioScriptCapture.js +8 -12
  143. package/dist/browser/assets/ScriptCaptureAdapters.js +1 -1
  144. package/dist/browser/history/CaptureFailures.js +6 -2
  145. package/dist/browser/history/MitmproxyCaptureAdapter.js +4 -2
  146. package/dist/catalogIdentity.js +0 -1
  147. package/dist/cli/analysisViewCommands.js +36 -0
  148. package/dist/cli/artifactCommands.js +11 -12
  149. package/dist/cli/coreAnalysisCommands.js +3 -3
  150. package/dist/cli/coreBinaryCommands.js +37 -28
  151. package/dist/cli/coreNativeCommands.js +9 -10
  152. package/dist/cli/electronCommands.js +12 -13
  153. package/dist/cli/interactiveSetup.js +6 -6
  154. package/dist/cli/javascriptApplicationAnalysis.js +2 -12
  155. package/dist/cli/jsonOutput.js +3 -2
  156. package/dist/cli/managedCommands.js +7 -8
  157. package/dist/cli/nativeCallCommands.js +1 -2
  158. package/dist/cli/omittableDefaults.js +50 -0
  159. package/dist/cli/processCommands.js +3 -2
  160. package/dist/cli/setupCommands.js +16 -15
  161. package/dist/cli/streamedJsonOutput.js +83 -4
  162. package/dist/cli/utilityCommands.js +10 -12
  163. package/dist/cli.js +19 -8
  164. package/dist/cliBrowserScenarioCommands.js +2 -2
  165. package/dist/cliCommandNames.js +1 -0
  166. package/dist/cliJsonFile.js +179 -0
  167. package/dist/cliJsonInput.js +60 -33
  168. package/dist/cliObservationOptions.js +4 -0
  169. package/dist/cliOutput.js +0 -38
  170. package/dist/composition/auxiliaryAnalysisProviders.js +30 -25
  171. package/dist/composition/binary.js +9 -9
  172. package/dist/composition/browserScenario.js +2 -1
  173. package/dist/composition/directAnalysis.js +20 -14
  174. package/dist/composition/electronScenario.js +1 -1
  175. package/dist/composition/optionalObservationProviders.js +12 -7
  176. package/dist/config/environment.js +6 -0
  177. package/dist/config/ghidraStartupTimeout.js +4 -9
  178. package/dist/config/homeDirectory.js +12 -0
  179. package/dist/config/mcpResponseBudget.js +9 -1
  180. package/dist/config/parseConfig.js +7 -3
  181. package/dist/config/parsers.js +19 -22
  182. package/dist/contracts/analysisViewToolContracts.js +56 -0
  183. package/dist/contracts/applicationToolContracts.js +5 -4
  184. package/dist/contracts/artifactComparisonExample.js +7 -7
  185. package/dist/contracts/artifactToolContracts.js +1 -1
  186. package/dist/contracts/browserScenarioToolContracts.js +1 -1
  187. package/dist/contracts/browserToolContracts.js +19 -15
  188. package/dist/contracts/enhancedInputs.js +2 -2
  189. package/dist/contracts/enhancedToolContracts.js +4 -3
  190. package/dist/contracts/errorSchemas.js +3 -1
  191. package/dist/contracts/evm/evmToolContracts.js +1 -1
  192. package/dist/contracts/functionComparisonExample.js +8 -0
  193. package/dist/contracts/functionWorkflowToolContracts.js +1 -1
  194. package/dist/contracts/inputSchemaPresentation.js +181 -0
  195. package/dist/contracts/investigationExamples.js +4 -3
  196. package/dist/contracts/javascript/electronToolContracts.js +3 -2
  197. package/dist/contracts/javascript/javascriptApplicationWorkflowExamples.js +3 -22
  198. package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +248 -0
  199. package/dist/contracts/javascript/javascriptRuntimeObservationToolContracts.js +1 -1
  200. package/dist/contracts/javascript/javascriptRuntimeReconciliationExample.js +8 -7
  201. package/dist/contracts/managed/managedToolContracts.js +8 -12
  202. package/dist/contracts/managed/managedWorkflowToolContracts.js +1 -1
  203. package/dist/contracts/mobileApplicationGraphExamples.js +8 -8
  204. package/dist/contracts/native/binaryDiagnosticsToolContracts.js +1 -1
  205. package/dist/contracts/native/nativeToolContracts.js +2 -2
  206. package/dist/contracts/officialToolContracts.js +2 -1
  207. package/dist/contracts/promptContracts.js +2 -2
  208. package/dist/contracts/providerSelection.js +1 -1
  209. package/dist/contracts/sessionLifecycleInputs.js +4 -3
  210. package/dist/contracts/sessionStatusContract.js +3 -2
  211. package/dist/contracts/sessionToolContracts.js +17 -4
  212. package/dist/contracts/sessionToolSchemas.js +4 -16
  213. package/dist/contracts/toolContracts.js +2 -0
  214. package/dist/contracts/toolEffects.js +1 -0
  215. package/dist/contracts/toolOutputSchemaGroups.js +138 -94
  216. package/dist/contracts/toolOutputSchemaPrimitives.js +13 -26
  217. package/dist/contracts/toolSchemaMetadata.js +18 -69
  218. package/dist/contracts/webNetworkCaptureToolContracts.js +1 -1
  219. package/dist/contracts/webRuntimeToolContracts.js +1 -1
  220. package/dist/contracts/webScriptToolContracts.js +1 -1
  221. package/dist/doctorRuntime.js +7 -5
  222. package/dist/domain/analysisErrorBase.js +5 -0
  223. package/dist/domain/analysisErrorCore.js +3 -0
  224. package/dist/domain/analysisErrorPresentation.js +22 -5
  225. package/dist/domain/analysisErrorProjection.js +24 -5
  226. package/dist/domain/analysisSnapshot.js +31 -31
  227. package/dist/domain/analysisView/analysisView.js +241 -0
  228. package/dist/domain/analysisView/analysisViewCoverage.js +19 -0
  229. package/dist/domain/analysisView/binaryLayoutView.js +159 -0
  230. package/dist/domain/analysisView/javascriptApplicationView.js +238 -0
  231. package/dist/domain/android/androidApplication.js +1 -1
  232. package/dist/domain/android/androidPartialObservation.js +36 -0
  233. package/dist/domain/apple/appleApplication.js +1 -1
  234. package/dist/domain/apple/dylibResolution.js +10 -3
  235. package/dist/domain/apple/interfaceBuilderGraph.js +0 -1
  236. package/dist/domain/apple/keyedArchive.js +26 -2
  237. package/dist/domain/artifactComparison.js +15 -6
  238. package/dist/domain/artifactGraph.js +17 -4
  239. package/dist/domain/artifactIdentity.js +8 -8
  240. package/dist/domain/artifactInspection.js +8 -8
  241. package/dist/domain/artifactInventoryEvidence.js +9 -16
  242. package/dist/domain/artifactOperationError.js +3 -3
  243. package/dist/domain/artifactPartialObservation.js +1 -0
  244. package/dist/domain/artifactPathSyntax.js +49 -0
  245. package/dist/domain/binaryTarget.js +39 -13
  246. package/dist/domain/browserCaptureComparison.js +13 -49
  247. package/dist/domain/browserCompleteness.js +3 -2
  248. package/dist/domain/browserNetworkEvidence.js +10 -4
  249. package/dist/domain/browserObservation.js +0 -1
  250. package/dist/domain/browserObservationSchemas.js +14 -3
  251. package/dist/domain/browserScenario.js +0 -1
  252. package/dist/domain/browserScenarioCapture.js +1 -2
  253. package/dist/domain/browserScenarioCaptureValues.js +2 -2
  254. package/dist/domain/browserScenarioDiff.js +0 -2
  255. package/dist/domain/browserScenarioDiffEvidence.js +0 -12
  256. package/dist/domain/browserScenarioDiffValues.js +2 -2
  257. package/dist/domain/browserScenarioNormalization.js +3 -3
  258. package/dist/domain/browserScenarioValues.js +6 -6
  259. package/dist/domain/callPath.js +15 -18
  260. package/dist/domain/callPathSchemas.js +2 -2
  261. package/dist/domain/canonicalDigest.js +7 -1
  262. package/dist/domain/canonicalOrdering.js +1 -13
  263. package/dist/domain/changedBehavior.js +5 -6
  264. package/dist/domain/comparisonSemantics.js +0 -5
  265. package/dist/domain/completionLedgerGeneration.js +2 -1
  266. package/dist/domain/configurationErrors.js +12 -0
  267. package/dist/domain/conformancePackage.js +4 -3
  268. package/dist/domain/digests.js +0 -3
  269. package/dist/domain/evidence.js +19 -40
  270. package/dist/domain/evidenceBundle.js +58 -42
  271. package/dist/domain/evidenceCompletionLedger.js +2 -1
  272. package/dist/domain/firmware/firmwareAnalysis.js +4 -3
  273. package/dist/domain/functionComparison.js +6 -6
  274. package/dist/domain/functionComparisonDimensions.js +120 -87
  275. package/dist/domain/functionComparisonNormalization.js +26 -36
  276. package/dist/domain/functionComparisonResults.js +3 -6
  277. package/dist/domain/functionComparisonSchemas.js +2 -8
  278. package/dist/domain/functionDossierEvidence.js +4 -38
  279. package/dist/domain/hopperValues.js +11 -15
  280. package/dist/domain/javascript/electronActiveObservation.js +29 -71
  281. package/dist/domain/javascript/electronObservation.js +14 -3
  282. package/dist/domain/javascript/electronStaticAnalysisBrowser.js +12 -11
  283. package/dist/domain/javascript/electronStaticAnalysisIpc.js +11 -2
  284. package/dist/domain/javascript/electronStaticAnalysisNative.js +7 -4
  285. package/dist/domain/javascript/electronStaticAnalysisValues.js +8 -4
  286. package/dist/domain/javascript/javascriptApplicationAnalysis.js +3 -1
  287. package/dist/domain/javascript/javascriptApplicationChangeGraph.js +12 -8
  288. package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +6 -0
  289. package/dist/domain/javascript/javascriptApplicationGraph.js +41 -16
  290. package/dist/domain/javascript/javascriptApplicationGraphSchemas.js +9 -2
  291. package/dist/domain/javascript/javascriptApplicationVersionComparison.js +4 -4
  292. package/dist/domain/javascript/javascriptApplicationVersionComparisonSchemas.js +37 -22
  293. package/dist/domain/javascript/javascriptApplicationVersionItems.js +50 -36
  294. package/dist/domain/javascript/javascriptApplicationVersionKeys.js +9 -8
  295. package/dist/domain/javascript/javascriptAstFingerprint.js +2 -2
  296. package/dist/domain/javascript/javascriptAstValues.js +22 -0
  297. package/dist/{application/javascript/JavaScriptReturnShapeProjection.js → domain/javascript/javascriptExportReturnShapeProjection.js} +4 -4
  298. package/dist/domain/javascript/javascriptExportShapeComparison.js +10 -3
  299. package/dist/domain/javascript/javascriptExportShapeComparisonIdentity.js +6 -1
  300. package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +58 -22
  301. package/dist/domain/javascript/javascriptExportShapeSelection.js +7 -7
  302. package/dist/domain/javascript/javascriptExportShapeVariants.js +70 -16
  303. package/dist/domain/javascript/javascriptFeatureSeed.js +25 -3
  304. package/dist/domain/javascript/javascriptFeatureTrace.js +7 -6
  305. package/dist/domain/javascript/javascriptFeatureTraceSchemas.js +17 -9
  306. package/dist/domain/javascript/javascriptFeatureTraversal.js +4 -5
  307. package/dist/domain/javascript/javascriptNativeHandoff.js +7 -7
  308. package/dist/domain/javascript/javascriptRuntimeLoadState.js +0 -1
  309. package/dist/domain/javascript/javascriptRuntimeObservation.js +18 -7
  310. package/dist/domain/javascript/javascriptRuntimeReconciliation.js +12 -6
  311. package/dist/domain/javascript/javascriptRuntimeReconciliationActive.js +9 -8
  312. package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +212 -0
  313. package/dist/domain/javascript/javascriptRuntimeReconciliationGraph.js +5 -4
  314. package/dist/domain/javascript/javascriptRuntimeReconciliationInputValidation.js +28 -0
  315. package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +6 -6
  316. package/dist/domain/javascript/javascriptRuntimeReconciliationParsing.js +12 -222
  317. package/dist/domain/javascript/javascriptRuntimeReconciliationResult.js +2 -2
  318. package/dist/domain/javascript/javascriptRuntimeReconciliationRuntime.js +15 -4
  319. package/dist/domain/javascript/javascriptRuntimeReconciliationSchemas.js +2 -2
  320. package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +7 -7
  321. package/dist/domain/javascript/javascriptSemanticAnalysis.js +209 -11
  322. package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +2 -1
  323. package/dist/domain/javascript/javascriptSemanticCallResolution.js +9 -7
  324. package/dist/domain/javascript/javascriptSemanticCalls.js +2 -1
  325. package/dist/domain/javascript/javascriptSemanticChildProcesses.js +4 -3
  326. package/dist/domain/javascript/javascriptSemanticCoverage.js +20 -0
  327. package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +7 -9
  328. package/dist/domain/javascript/javascriptSemanticDataEffects.js +4 -11
  329. package/dist/domain/javascript/javascriptSemanticFingerprints.js +2 -2
  330. package/dist/domain/javascript/javascriptSemanticGraph.js +220 -71
  331. package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +19 -1
  332. package/dist/domain/javascript/javascriptSemanticIr.js +0 -4
  333. package/dist/domain/javascript/javascriptSemanticIterationSources.js +106 -0
  334. package/dist/domain/javascript/javascriptSemanticMemberMutations.js +515 -74
  335. package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +190 -0
  336. package/dist/domain/javascript/javascriptSemanticMutationValues.js +44 -36
  337. package/dist/domain/javascript/javascriptSemanticObjects.js +79 -42
  338. package/dist/domain/javascript/javascriptSemanticPrimitives.js +8 -14
  339. package/dist/domain/javascript/javascriptSemanticProjection.js +21 -16
  340. package/dist/domain/javascript/javascriptSemanticPromises.js +16 -21
  341. package/dist/domain/javascript/javascriptSemanticPropertyPaths.js +23 -0
  342. package/dist/domain/javascript/javascriptSemanticProvenance.js +3 -3
  343. package/dist/domain/javascript/javascriptSemanticQuery.js +8 -2
  344. package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +3 -2
  345. package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +8 -9
  346. package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +16 -10
  347. package/dist/domain/javascript/javascriptSemanticResourceLimits.js +1 -1
  348. package/dist/domain/javascript/javascriptSemanticResources.js +1 -1
  349. package/dist/domain/javascript/javascriptSemanticReturns.js +55 -44
  350. package/dist/domain/javascript/javascriptSemanticSlots.js +72 -0
  351. package/dist/domain/javascript/javascriptSemanticTraversal.js +6 -1
  352. package/dist/domain/javascript/javascriptSemanticValues.js +180 -76
  353. package/dist/domain/javascript/javascriptSourceMapPaths.js +114 -0
  354. package/dist/domain/javascript/javascriptSourceParser.js +34 -9
  355. package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +5 -6
  356. package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +2 -1
  357. package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +26 -16
  358. package/dist/domain/javascript/sourceToBundleComparison.js +19 -8
  359. package/dist/domain/javascript/sourceToBundleSignals.js +53 -25
  360. package/dist/domain/jsonSerialization.js +109 -55
  361. package/dist/domain/jsonShape.js +46 -19
  362. package/dist/domain/localPath.js +10 -4
  363. package/dist/domain/managed/managedApplicationGraph.js +10 -6
  364. package/dist/domain/managed/managedApplicationGraphNodes.js +82 -57
  365. package/dist/domain/managed/managedArtifact.js +6 -4
  366. package/dist/domain/managed/managedMemberComparison.js +2 -9
  367. package/dist/domain/managed/managedMemberComparisonMatch.js +6 -7
  368. package/dist/domain/managed/managedNativeVerification.js +0 -2
  369. package/dist/domain/managed/managedNativeVerificationMatch.js +9 -3
  370. package/dist/domain/native/binaryLayout.js +2 -3
  371. package/dist/domain/native/nativeApiBoundary.js +1 -1
  372. package/dist/domain/native/nativeCallObservation.js +3 -3
  373. package/dist/domain/native/nativeInstruction.js +7 -0
  374. package/dist/domain/native/nativeValueFlow.js +5 -11
  375. package/dist/domain/native/objcSwiftMetadata.js +15 -17
  376. package/dist/domain/native/recordedCrash.js +2 -3
  377. package/dist/domain/offsetDateTime.js +17 -0
  378. package/dist/domain/process/processCapture.js +22 -20
  379. package/dist/domain/process/processCaptureCoverage.js +70 -0
  380. package/dist/domain/process/processCaptureExample.js +45 -1
  381. package/dist/domain/process/processCaptureParsing.js +1 -34
  382. package/dist/domain/process/processCaptureValidation.js +82 -13
  383. package/dist/domain/process/processComparison.js +39 -43
  384. package/dist/domain/process/processObservation.js +10 -2
  385. package/dist/domain/process/processScenario.js +24 -2
  386. package/dist/domain/process/processTraceComparison.js +0 -2
  387. package/dist/domain/process/processTraceDimensionProjection.js +1 -1
  388. package/dist/domain/process/processTraceEvaluation.js +19 -15
  389. package/dist/domain/process/processTraceSpecification.js +4 -7
  390. package/dist/domain/providerAdapterError.js +2 -0
  391. package/dist/domain/providerCleanupError.js +6 -2
  392. package/dist/domain/reconstructionCoverage.js +7 -3
  393. package/dist/domain/reconstructionObligationLedgerSchemas.js +2 -1
  394. package/dist/domain/reconstructionReadinessSchemas.js +2 -1
  395. package/dist/domain/reconstructionUnknowns.js +4 -3
  396. package/dist/domain/reconstructionVerification.js +6 -5
  397. package/dist/domain/reconstructionVerificationSchemas.js +2 -1
  398. package/dist/domain/referenceSourceGraph.js +27 -28
  399. package/dist/domain/referenceSourceImportParsing.js +34 -45
  400. package/dist/domain/residualUnknown.js +3 -2
  401. package/dist/domain/staticRuntimeCorrelation.js +4 -3
  402. package/dist/domain/stringPatterns.js +6 -0
  403. package/dist/domain/swiftSymbolClassification.js +66 -0
  404. package/dist/domain/symbolAnalysis.js +83 -20
  405. package/dist/domain/unicodeCodePointOrder.js +6 -0
  406. package/dist/domain/webBundleAnalyzerInspection.js +9 -1
  407. package/dist/domain/webCaptureDiff.js +71 -30
  408. package/dist/domain/webCaptureDiffSchemas.js +8 -11
  409. package/dist/domain/webEventListeners.js +3 -2
  410. package/dist/domain/webExecution.js +3 -2
  411. package/dist/domain/webInventory.js +3 -2
  412. package/dist/domain/webMcpDiscovery.js +4 -3
  413. package/dist/domain/webRuntime.js +0 -2
  414. package/dist/domain/webScriptExport.js +2 -2
  415. package/dist/dotnet/ManagedArtifactInspector.js +2 -19
  416. package/dist/dotnet/ManagedMemberInspector.js +12 -18
  417. package/dist/dotnet/ManagedMemberInspectorCore.js +47 -44
  418. package/dist/dotnet/ManagedMemberInstructionDecoder.js +1 -2
  419. package/dist/dotnet/ManagedMemberRows.js +75 -62
  420. package/dist/dotnet/ManagedMetadataInventory.js +16 -22
  421. package/dist/dotnet/ManagedMethodBodyReader.js +4 -0
  422. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +109 -94
  423. package/dist/dotnet/ManagedNativeBoundaryInspector.js +12 -21
  424. package/dist/dotnet/ManagedReaderFailure.js +16 -0
  425. package/dist/dotnet/ManagedStaticProvider.js +13 -12
  426. package/dist/dotnet/ManagedStaticProviderMetadata.js +1 -4
  427. package/dist/evaluation/AgentEvaluationFixtures.js +250 -0
  428. package/dist/evaluation/AgentEvaluationReport.js +28 -0
  429. package/dist/evaluation/CodexAgentEval.js +12 -8
  430. package/dist/evaluation/KnownAnswerEvaluation.js +281 -0
  431. package/dist/evm/EvmoleInterfaceProvider.js +2 -1
  432. package/dist/filesystem/RegularFile.js +41 -0
  433. package/dist/firmware/FirmwareCommand.js +9 -5
  434. package/dist/firmware/FirmwareProvider.js +4 -4
  435. package/dist/generatedPackageMetadata.js +2 -2
  436. package/dist/ghidra/GhidraAnalysisProfile.js +3 -6
  437. package/dist/ghidra/GhidraClient.js +105 -36
  438. package/dist/ghidra/GhidraClientStartup.js +0 -2
  439. package/dist/ghidra/GhidraDoctor.js +6 -5
  440. package/dist/ghidra/GhidraFunctionValues.js +3 -5
  441. package/dist/ghidra/GhidraInstallation.js +151 -22
  442. package/dist/ghidra/GhidraJavaLaunch.js +6 -2
  443. package/dist/ghidra/GhidraLauncher.js +58 -26
  444. package/dist/ghidra/GhidraProvider.js +6 -2
  445. package/dist/ghidra/GhidraProviderCapabilities.js +6 -0
  446. package/dist/ghidra/GhidraProviderClient.js +13 -3
  447. package/dist/ghidra/GhidraSessionError.js +2 -0
  448. package/dist/ghidra/GhidraSessionRoot.js +39 -0
  449. package/dist/ghidra/extensions/GhidraExtensions.js +17 -10
  450. package/dist/ghidra/extensions/nativeaot/NativeAotAdapter.js +8 -2
  451. package/dist/hopper/BridgeLauncher.js +34 -45
  452. package/dist/hopper/HopperAnalysisProfile.js +3 -8
  453. package/dist/hopper/HopperCleanup.js +56 -27
  454. package/dist/hopper/HopperClient.js +86 -65
  455. package/dist/hopper/HopperMachOImage.js +3 -2
  456. package/dist/hopper/HopperProvider.js +16 -18
  457. package/dist/hopper/HopperRegexSearch.js +3 -6
  458. package/dist/hopper/HopperTargetLease.js +132 -49
  459. package/dist/hopper/LinuxPrivateDisplayProbe.js +6 -0
  460. package/dist/ida/IdaConfiguration.js +8 -3
  461. package/dist/ida/IdaInput.js +1 -7
  462. package/dist/ida/IdaMcpConnection.js +8 -4
  463. package/dist/ida/IdaOperationRunner.js +5 -3
  464. package/dist/ida/IdaProvider.js +8 -12
  465. package/dist/ida/IdaSessionClient.js +24 -20
  466. package/dist/ida/IdaWorkspace.js +12 -13
  467. package/dist/inspector/JavaScriptRuntimeScope.js +9 -5
  468. package/dist/inspector/V8InspectorCaptureProjection.js +47 -14
  469. package/dist/inspector/V8InspectorProvider.js +97 -35
  470. package/dist/javascript/recovery/WakaruCommand.js +7 -2
  471. package/dist/javascript/recovery/WakaruExecution.js +5 -2
  472. package/dist/main/shutdown.js +81 -29
  473. package/dist/main/startup.js +9 -2
  474. package/dist/main/transport.js +23 -3
  475. package/dist/main.js +11 -18
  476. package/dist/native/AppleMachoSelection.js +16 -6
  477. package/dist/native/AppleObjcDispatchFacets.js +3 -3
  478. package/dist/native/AppleObjcProperties.js +17 -7
  479. package/dist/native/CommandRunner.js +9 -7
  480. package/dist/native/LldbCallTracer.js +249 -77
  481. package/dist/native/NativeMacOSProvider.js +32 -17
  482. package/dist/native/NativeMacOSProviderMetadata.js +1 -2
  483. package/dist/native/NativeUiHelperRuntime.js +11 -2
  484. package/dist/native/NativeUiObservation.js +2 -2
  485. package/dist/native/pwntools/PwntoolsDecoder.js +2 -1
  486. package/dist/process/DarwinProcessRunTokenReader.js +16 -2
  487. package/dist/process/ExecFileOutput.js +88 -6
  488. package/dist/process/PrivateRuntimeRoot.js +10 -5
  489. package/dist/process/ProcessOwnership.js +1 -4
  490. package/dist/process/ProcessOwnershipObservation.js +18 -16
  491. package/dist/process/ProviderProcess.js +1 -3
  492. package/dist/process/capture/FilesystemSnapshot.js +131 -24
  493. package/dist/process/capture/ProcessCaptureError.js +13 -0
  494. package/dist/process/capture/ProcessCaptureLifecycle.js +148 -74
  495. package/dist/process/capture/ProcessFilesystemEffects.js +51 -6
  496. package/dist/process/capture/ProcessHarness.js +16 -33
  497. package/dist/process/capture/ProcessNormalization.js +20 -2
  498. package/dist/process/capture/ProcessSampling.js +25 -2
  499. package/dist/process/capture/TerminalRenderer.js +14 -0
  500. package/dist/process/snapshotEnvironment.js +14 -0
  501. package/dist/server/EvidenceMcpServer.js +25 -14
  502. package/dist/server/analysisAdmission.js +8 -0
  503. package/dist/server/createServer.js +71 -59
  504. package/dist/server/mcpClientMetadata.js +12 -5
  505. package/dist/server/promptCompletion.js +3 -8
  506. package/dist/server/registerAnalysisViewTool.js +15 -0
  507. package/dist/server/registerAndroidTools.js +2 -3
  508. package/dist/server/registerApplicationTools/compareExportShapes.js +6 -6
  509. package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
  510. package/dist/server/registerApplicationTools/compareVersions.js +4 -5
  511. package/dist/server/registerApplicationTools/coverage.js +1 -2
  512. package/dist/server/registerApplicationTools/helpers.js +4 -4
  513. package/dist/server/registerApplicationTools/obligationLedger.js +4 -5
  514. package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +3 -4
  515. package/dist/server/registerApplicationTools/traceFeature.js +4 -5
  516. package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
  517. package/dist/server/registerArtifactComparisonTool.js +4 -5
  518. package/dist/server/registerArtifactTools.js +2 -2
  519. package/dist/server/registerBinaryDiagnosticsTools.js +2 -3
  520. package/dist/server/registerBrowserScenarioTool.js +3 -4
  521. package/dist/server/registerBrowserTools.js +13 -16
  522. package/dist/server/registerBundleComparisonTool.js +5 -6
  523. package/dist/server/registerCloseLifecycleTool.js +8 -7
  524. package/dist/server/registerElectronTools.js +10 -13
  525. package/dist/server/registerEnhancedTools.js +82 -77
  526. package/dist/server/registerEvidenceTools.js +54 -47
  527. package/dist/server/registerEvmTools.js +2 -3
  528. package/dist/server/registerFirmwareTools.js +2 -3
  529. package/dist/server/registerFunctionComparisonTool.js +7 -8
  530. package/dist/server/registerInvestigationTools.js +14 -15
  531. package/dist/server/registerJavaScriptRecoveryTool.js +2 -3
  532. package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -6
  533. package/dist/server/registerManagedTools.js +7 -4
  534. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +5 -6
  535. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +4 -5
  536. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +6 -7
  537. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +6 -7
  538. package/dist/server/registerOfficialTools.js +32 -41
  539. package/dist/server/registerProcessComparisonTool.js +8 -8
  540. package/dist/server/registerRecordedCrashTools.js +2 -3
  541. package/dist/server/registerSessionRecordTools.js +15 -19
  542. package/dist/server/registerSessionStatusTool.js +3 -4
  543. package/dist/server/registerSessionTools.js +19 -19
  544. package/dist/server/registerWebModuleTool.js +2 -3
  545. package/dist/server/registerWebNetworkCaptureTool.js +2 -3
  546. package/dist/server/registerWebRuntimeTools.js +4 -5
  547. package/dist/server/registerWebScriptTool.js +2 -3
  548. package/dist/server/registerWebSourceLocationTool.js +2 -3
  549. package/dist/server/toolResult.js +66 -94
  550. package/dist/server/toolResultEncoding.js +11 -10
  551. package/dist/windows/WindowsNativeLoader.js +1 -0
  552. package/dist/windows/WindowsOwnedProcess.js +60 -15
  553. package/dist/windows/WindowsPrivateRuntime.js +7 -8
  554. package/native/windows/README.md +3 -1
  555. package/native/windows/build/manifest.json +2 -2
  556. package/native/windows/build/rea-windows-x64.node +0 -0
  557. package/package.json +42 -30
  558. package/scripts/rea.mjs +3 -6
  559. package/skills/reverse-engineer-anything/SKILL.md +14 -13
  560. package/skills/reverse-engineer-anything/references/android-applications.md +6 -3
  561. package/skills/reverse-engineer-anything/references/evidence-workflows.md +8 -4
  562. package/skills/reverse-engineer-anything/references/javascript-applications.md +16 -6
  563. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +18 -0
  564. package/dist/artifacts/inventory/policy.js +0 -2
  565. package/dist/config.js +0 -1
  566. package/dist/contracts/browserCaptureToolInputSchema.js +0 -43
  567. package/dist/contracts/process/processCaptureExample.js +0 -2
  568. package/dist/contracts/toolOutputSchemas.js +0 -2
  569. package/dist/domain/managed/managedApplicationGraphNodeCoverage.js +0 -6
  570. package/dist/main/reload.js +0 -12
  571. package/dist/main/state.js +0 -3
  572. package/dist/server/registerNativeTools.js +0 -6
  573. package/dist/server/sessionToolPolicies.js +0 -2
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rea-agents",
3
3
  "mcpName": "io.github.morluto/rea",
4
- "version": "6.1.0",
4
+ "version": "6.3.0",
5
5
  "description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -80,27 +80,26 @@
80
80
  ],
81
81
  "scripts": {
82
82
  "deps:check": "node scripts/check-dependency-install.mjs",
83
- "metadata:generate": "node scripts/generate-package-metadata.mjs",
83
+ "metadata:generate": "node scripts/run-exclusive.mjs artifacts node scripts/generate-package-metadata.mjs",
84
84
  "metadata:check": "node scripts/generate-package-metadata.mjs --check",
85
85
  "mcp-registry:check": "node scripts/verify-mcp-registry-metadata.mjs",
86
- "mcp-catalog:generate": "npm run build:cached",
87
- "mcp-catalog:check": "node scripts/generate-mcp-tool-catalog.mjs --check",
88
- "prebuild": "npm run deps:check && npm run metadata:check",
89
- "build": "node scripts/run-exclusive.mjs build npm run build:unlocked",
90
- "build:unlocked": "node scripts/clean-build-output.mjs && tsc -p tsconfig.build.json && 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",
86
+ "mcp-catalog:generate": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:mcp-catalog",
87
+ "mcp-catalog:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run mcp-catalog:check:built",
88
+ "prebuild": "npm run deps:check",
89
+ "build": "node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills --force",
91
90
  "precheck": "npm run deps:check",
92
- "check": "turbo run typecheck lint format:check knip metadata:check",
91
+ "check": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check && npm run verify:architecture-guards",
93
92
  "precheck:fast": "npm run deps:check",
94
93
  "check:fast": "turbo run typecheck lint --output-logs=errors-only",
95
94
  "precheck:changed": "npm run deps:check",
96
95
  "check:changed": "npm run check:fast && npm run test:changed",
97
96
  "precheck:test": "npm run deps:check",
98
- "check:test": "turbo run typecheck lint format:check knip metadata:check test:run",
97
+ "check:test": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check test:run",
99
98
  "precheck:pr": "npm run deps:check",
100
- "check:pr": "turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check && npm run jscpd && npm run scan:todos",
99
+ "check:pr": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check test:run && npm run docs:check && npm run jscpd && npm run scan:todos",
101
100
  "precheck:ci": "npm run deps:check",
102
- "check:ci": "turbo run typecheck lint format:check knip metadata:check jscpd scan:todos",
103
- "build:cached": "node scripts/check-dependency-install.mjs && turbo run build",
101
+ "check:ci": "node scripts/run-exclusive.mjs artifacts turbo run typecheck lint format:check knip metadata:check jscpd scan:todos && npm run verify:architecture-guards",
102
+ "build:cached": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills",
104
103
  "format": "oxfmt .",
105
104
  "format:check": "oxfmt --check .",
106
105
  "lint": "oxlint && npm run verify:module-boundaries",
@@ -110,33 +109,33 @@
110
109
  "scan:todos": "node scripts/scan-todos.mjs",
111
110
  "start": "node scripts/rea.mjs mcp",
112
111
  "test": "npm run test:with-build",
113
- "test:with-build": "npm run build:cached && vitest run",
112
+ "test:with-build": "npm run test:prepare && vitest run",
114
113
  "test:run": "vitest run",
115
114
  "test:local": "node scripts/run-development-tests.mjs local",
116
115
  "test:fast": "vitest run --project domain --project services --project adapters --project composition --project conformance --project evaluation",
117
- "pretest:boundary": "npm run build:cached",
116
+ "pretest:boundary": "npm run test:prepare",
118
117
  "test:boundary": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global",
119
- "pretest:mcp": "npm run build:cached",
118
+ "pretest:mcp": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:skills artifacts:mcp-catalog",
120
119
  "test:mcp": "vitest run --project mcp-boundary",
121
120
  "pretest:acceptance": "npm run build:cached",
122
121
  "test:acceptance": "vitest run --project acceptance",
123
122
  "test:changed": "node scripts/run-development-tests.mjs changed",
124
- "pretest:integration": "npm run build:cached",
123
+ "pretest:integration": "npm run test:prepare",
125
124
  "test:integration": "vitest run --project boundary --project process-boundary --project mcp-boundary --project process-global --project acceptance",
126
- "pretest:coverage": "npm run build:cached",
125
+ "pretest:coverage": "npm run test:prepare",
127
126
  "test:coverage": "vitest run --coverage.enabled --coverage.provider=v8",
128
127
  "test:ci": "npm run test:coverage -- --reporter=default --reporter=junit --outputFile.junit=test-results.xml",
129
- "pretest:ci:shard": "npm run build:cached",
128
+ "pretest:ci:shard": "npm run test:prepare",
130
129
  "test:ci:shard": "npm run test:ci:shard:run",
131
130
  "test:ci:shard:run": "vitest run --coverage.enabled --coverage.provider=v8 --coverage.thresholds.lines=0 --coverage.thresholds.functions=0 --coverage.thresholds.branches=0 --coverage.thresholds.statements=0 --reporter=default --reporter=blob",
132
131
  "test:ci:merge": "vitest --merge-reports --coverage.enabled --coverage.provider=v8",
133
- "pretest:verbose": "npm run build:cached",
132
+ "pretest:verbose": "npm run test:prepare",
134
133
  "test:verbose": "vitest run --reporter=verbose",
135
134
  "test:watch": "vitest --project domain --project services --project adapters --project composition --project conformance --project evaluation --changed",
136
- "pretest:watch:all": "npm run build:cached",
135
+ "pretest:watch:all": "npm run test:prepare",
137
136
  "test:watch:all": "vitest --changed",
138
137
  "typecheck": "tsc --noEmit",
139
- "verify:test-temp-hygiene": "npm run build:cached && node scripts/verify-test-temp-hygiene.mjs",
138
+ "verify:test-temp-hygiene": "npm run test:prepare && node scripts/verify-test-temp-hygiene.mjs",
140
139
  "verify:hopper": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper.mjs",
141
140
  "verify:hopper:deadlines": "npm run verify:fixtures && npm run build:cached && node scripts/verify-real-hopper-deadlines.mjs",
142
141
  "verify:hopper:fat": "npm run build:cached && node scripts/verify-real-hopper-fat.mjs",
@@ -145,7 +144,10 @@
145
144
  "verify:native-ui": "npm run build:cached && node scripts/verify-native-ui.mjs",
146
145
  "verify:keyed-archive": "npm run build:cached && node scripts/verify/apple/keyed-archive.mjs",
147
146
  "verify:macos-bundle": "npm run build:cached && node scripts/verify/apple/macos-bundle.mjs",
147
+ "verify:legacy-simulator": "npm run build:cached && node scripts/verify/apple/legacy-simulator.mjs",
148
+ "verify:architecture-guards": "node scripts/verify/architecture-guards.mjs",
148
149
  "verify:ghidra": "npm run build:cached && node scripts/verify-real-ghidra.mjs",
150
+ "verify:ghidra:swift": "npm run build:cached && node scripts/verify-real-ghidra-swift.mjs",
149
151
  "verify:ida": "npm run build:cached && node scripts/verify-real-ida.mjs",
150
152
  "verify:ghidra:switch": "npm run build:cached && node scripts/verify-real-ghidra-switch.mjs",
151
153
  "verify:ghidra:dos": "npm run build:cached && node scripts/verify-real-ghidra-dos.mjs",
@@ -180,18 +182,17 @@
180
182
  "probe:windows-capabilities": "npm run build:cached && node scripts/windows-capabilities.mjs",
181
183
  "verify:published": "node scripts/verify-published-package.mjs",
182
184
  "config:print": "node scripts/print-mcp-config.mjs",
183
- "evidence:generate": "npm run build:cached && node scripts/generate-completion-ledger.mjs",
184
- "evidence:check": "npm run build:cached && node scripts/generate-completion-ledger.mjs --check",
185
+ "evidence:generate": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:managed-evidence",
186
+ "evidence:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run evidence:check:built",
185
187
  "predocs:dev": "npm run docs:generate",
186
188
  "docs:dev": "vitepress dev docs",
187
189
  "predocs:build": "npm run docs:generate",
188
190
  "docs:build": "vitepress build docs",
189
191
  "docs:preview": "vitepress preview docs",
190
- "docs:generate": "node scripts/run-exclusive.mjs docs npm run docs:generate:unlocked",
191
- "docs:generate:unlocked": "npm run metadata:generate && npm run build:cached && node scripts/generate-error-schema.mjs",
192
- "docs:check": "node scripts/run-exclusive.mjs docs turbo run docs:check:built",
193
- "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",
194
- "docs:error-schema": "npm run build:cached && node scripts/generate-error-schema.mjs",
192
+ "docs:generate": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts npm run docs:prepare",
193
+ "docs:check": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run docs:check:built",
194
+ "docs:check:built": "node scripts/generate-package-metadata.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",
195
+ "docs:error-schema": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:error-schema",
195
196
  "prepack": "node scripts/prepack.mjs",
196
197
  "prepare": "node scripts/prepare.mjs",
197
198
  "verify:asset-catalog": "npm run build:cached && node scripts/verify/apple/asset-catalog.mjs",
@@ -216,14 +217,24 @@
216
217
  "verify:web:network-captures": "npm run build:cached && node scripts/verify-web-network-captures.mjs",
217
218
  "verify:binary:layout": "npm run build:cached && node scripts/verify-binary-layout.mjs",
218
219
  "verify:evm:interface": "npm run build:cached && node scripts/verify-evm-interface.mjs",
219
- "verify:recorded:crash": "npm run build:cached && node scripts/verify-recorded-crash.mjs"
220
+ "verify:recorded:crash": "npm run build:cached && node scripts/verify-recorded-crash.mjs",
221
+ "mcp-catalog:check:built": "node scripts/generate-mcp-tool-catalog.mjs --check",
222
+ "compile": "node scripts/clean-build-output.mjs && tsc -p tsconfig.build.json",
223
+ "artifacts:mcp-catalog": "node scripts/generate-mcp-tool-catalog.mjs",
224
+ "artifacts:skills": "node scripts/generate-skill-metadata.mjs",
225
+ "artifacts:product-catalog": "node scripts/generate-product-catalog.mjs",
226
+ "artifacts:managed-evidence": "node scripts/generate-completion-ledger.mjs",
227
+ "artifacts:error-schema": "node scripts/generate-error-schema.mjs",
228
+ "test:prepare": "node scripts/check-dependency-install.mjs && node scripts/run-exclusive.mjs artifacts turbo run artifacts:mcp-catalog artifacts:product-catalog artifacts:managed-evidence",
229
+ "evidence:check:built": "node scripts/generate-completion-ledger.mjs --check",
230
+ "docs:prepare": "node scripts/generate-package-metadata.mjs && turbo run artifacts:product-catalog artifacts:managed-evidence artifacts:error-schema"
220
231
  },
221
232
  "lint-staged": {
222
233
  "*.{cjs,cts,js,jsx,mjs,mts,ts,tsx}": [
223
234
  "oxfmt",
224
235
  "oxlint --fix"
225
236
  ],
226
- "*.{json,md,yml,yaml}": "oxfmt"
237
+ "*.{json,md,yml,yaml}": "oxfmt --no-error-on-unmatched-pattern"
227
238
  },
228
239
  "dependencies": {
229
240
  "@babel/parser": "8.0.4",
@@ -254,6 +265,7 @@
254
265
  "plist": "5.0.0",
255
266
  "semver": "7.8.5",
256
267
  "smol-toml": "1.9.0",
268
+ "stream-json": "3.7.0",
257
269
  "write-file-atomic": "7.0.0",
258
270
  "ws": "8.21.0",
259
271
  "zod": "4.4.3",
package/scripts/rea.mjs CHANGED
@@ -44,7 +44,6 @@ if (!(await compiledRuntimeExists(runtimeFiles))) {
44
44
  const {
45
45
  renderCliOutputArgumentError,
46
46
  renderEmptyFilteredCliOutput,
47
- sanitizeCliOutput,
48
47
  validateCliOutputArguments,
49
48
  } = await import("../dist/cliOutput.js");
50
49
  const outputArguments = validateCliOutputArguments(args);
@@ -57,13 +56,11 @@ if (!(await compiledRuntimeExists(runtimeFiles))) {
57
56
  await createCli(process.env, resultOutput).serve(args, {
58
57
  stdout: (output) => {
59
58
  if (resultOutput?.handled) {
60
- if (resultOutput.failed)
61
- process.stderr.write(sanitizeCliOutput(output));
59
+ if (resultOutput.failed) process.stderr.write(output);
62
60
  return;
63
61
  }
64
- const sanitized = sanitizeCliOutput(output);
65
- if (sanitized.length > 0) wroteOutput = true;
66
- process.stdout.write(sanitized);
62
+ if (output.length > 0) wroteOutput = true;
63
+ process.stdout.write(output);
67
64
  },
68
65
  });
69
66
  if (!wroteOutput && !resultOutput?.handled)
@@ -2,8 +2,8 @@
2
2
  name: reverse-engineer-anything
3
3
  description: Reverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.
4
4
  metadata:
5
- version: "33"
6
- tool_count: 138
5
+ version: "34"
6
+ tool_count: 139
7
7
  ---
8
8
 
9
9
  # REA
@@ -29,10 +29,10 @@ advertise retained references.
29
29
  When tools are absent or registration is stale:
30
30
 
31
31
  1. Diagnose without changing files. For Codex, run
32
- `npx -y rea-agents@latest doctor --client codex --json`. Substitute the current
32
+ `npx -y rea-agents@6.3.0 doctor --client codex --json`. Substitute the current
33
33
  supported client: `claude_code`, `claude_desktop`, `codex`, `cursor`,
34
34
  `gemini_cli`, `windsurf`, `devin`, `opencode`, `antigravity`, `copilot_cli`,
35
- `commandcode`, `vscode`, `grok_build`, or `grok_bot`. `grok_bot` has no local
35
+ `commandcode`, `vscode`, `grok_build`, `omp`, or `grok_bot`. `grok_bot` has no local
36
36
  file registration: doctor reports the Grok Bot chat step, and setup does not
37
37
  write `mcp.json`. If the client is unknown, use `doctor --json` and
38
38
  inspect its registration results before choosing a setup scope.
@@ -43,12 +43,12 @@ When tools are absent or registration is stale:
43
43
  that provider: static JavaScript inspection needs neither Hopper nor Ghidra,
44
44
  and Android inspection has separate bring-your-own JADX/Java prerequisites.
45
45
  3. For a configuration repair, prepare the read-only plan:
46
- `npx -y rea-agents@latest setup --client codex --dry-run --json`.
46
+ `npx -y rea-agents@6.3.0 setup --client codex --dry-run --json`.
47
47
  Use the current client's ID, show its exact proposed paths, backups, and
48
48
  changes, and obtain approval before setup writes configuration or installs
49
49
  Hopper. Setup normally installs the matching bundled skill too; include that
50
50
  replacement in the reviewed plan. After approval, apply the same scope with
51
- `npx -y rea-agents@latest setup --client codex --yes`. Add `--install-hopper`
51
+ `npx -y rea-agents@6.3.0 setup --client codex --yes`. Add `--install-hopper`
52
52
  only if that separate installation was needed and explicitly approved.
53
53
  4. Restart/reconnect the affected agent. Verify that REA tools actually appear
54
54
  in the session, then resume the original investigation. If they remain
@@ -63,7 +63,7 @@ with a version-pinned `rea-agents` package or continue through the CLI.
63
63
  A concrete CLI fallback for an operator-supplied JavaScript tree or ASAR is:
64
64
 
65
65
  ```bash
66
- npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
66
+ npx -y rea-agents@6.3.0 analyze-javascript-application /absolute/path/to/app --json
67
67
  ```
68
68
 
69
69
  No MCP registration or native engine is required. Read the returned Evidence,
@@ -147,12 +147,13 @@ Start with the default result and use its inline Evidence and graph context.
147
147
  Do not repeat an identical tool call. Make a focused follow-up only when the
148
148
  returned result leaves a specific question unanswered.
149
149
 
150
- If MCP reports `resource_constraint` with `details.resource: "transport"`, use
151
- its reported same-session Evidence reference with a focused application tool,
152
- or call `export_evidence_bundle` to write the complete session to a selected
153
- path. The analysis remains complete in the ledger; avoid repeating it merely
154
- to request the same oversized response. Complete CLI JSON output also streams
155
- without a single MCP frame.
150
+ If MCP reports `resource_constraint` with `details.resource: "transport"`, call
151
+ `inspect_analysis_view` with its reported same-session Evidence reference for a
152
+ summary, one section/module, or a stable page. Use `trace_application_feature`
153
+ once a seed is known, or call `export_evidence_bundle` to write the complete
154
+ session to a selected path. The analysis remains complete in the ledger; avoid
155
+ repeating it merely to request the same oversized response. Complete CLI JSON
156
+ output also streams without a single MCP frame.
156
157
 
157
158
  Every conclusion must distinguish observations, inferences, and unknowns. Cite
158
159
  Evidence IDs, preserve limitations and incomplete coverage, and never imply
@@ -19,9 +19,12 @@ can select Java. REA setup does not install or configure that JAR, and doctor
19
19
  provider scopes cover Hopper/Ghidra rather than JADX. Use existing tools and
20
20
  report missing prerequisites for the Android task specifically.
21
21
 
22
- Real verification covers Linux. macOS has the POSIX launch boundary but no
23
- claimed real-provider verification; Windows is unsupported. Calls use one
24
- worker, a bounded JVM heap, and provider deadlines. The APK is never launched,
22
+ Linux and macOS use the POSIX owned-process boundary. Windows x64 requires the
23
+ matching bundled native controls and uses an owned Job Object with bidirectional
24
+ stdio. A full JDK, including `jdk.compiler`, is required on every host; Windows
25
+ `JAVA_HOME` selects `bin\java.exe`. Consult the Android guide for actual host
26
+ verification coverage. Calls use one worker and provider deadlines; optional
27
+ `REA_JADX_HEAP_MIB` selects the JVM heap. The APK is never launched,
25
28
  and no emulator is required.
26
29
 
27
30
  Manifest entries and decompiled text are static observations, not execution or
@@ -1,11 +1,15 @@
1
1
  # Evidence, comparison, and verification workflows
2
2
 
3
- REA returns Evidence with each result. Read that result directly, cite its
4
- Evidence ID when another tool or your explanation needs a stable reference, and
5
- preserve authority, limitations, coverage, and residual unknowns. If a result
3
+ Evidence-producing tools return the complete Evidence record directly in MCP
4
+ `structuredContent` and CLI JSON. Read `normalized_result` for operation data,
5
+ and cite `evidence_id` when another tool or your explanation needs a stable
6
+ reference. Preserve authority, limitations, coverage, and residual unknowns. If a result
6
7
  is incomplete or paginated, continue only when the remaining data matters to
7
8
  the task; do not fetch a bundle or resource merely to read a result already
8
- returned inline.
9
+ returned inline. When complete `inspect_binary_layout` or
10
+ `analyze_javascript_application` Evidence is already retained, call
11
+ `inspect_analysis_view` for a summary, one section/symbol/module, or a stable
12
+ page instead of repeating the producer.
9
13
 
10
14
  Use `record_unknown` to track unresolved questions in the user's investigation
11
15
  and name the authority or environment still required. Supply supporting and
@@ -8,10 +8,12 @@ only when a specific question remains unanswered.
8
8
 
9
9
  An oversized response reports `resource_constraint` and
10
10
  `details.resource: "transport"`. Reuse
11
- `details.reported_limits.evidence_reference` with `trace_application_feature`
12
- for the module or feature under investigation. `export_evidence_bundle` writes
13
- the complete canonical session to a caller-selected file. Both workflows keep
14
- the original Evidence and coverage; a broad follow-up can also exceed framing.
11
+ `details.reported_limits.evidence_reference` with `inspect_analysis_view` for a
12
+ summary, one module, or a stable page of module identities. Use
13
+ `trace_application_feature` once a module, route, or string seed is known.
14
+ `export_evidence_bundle` writes the complete canonical session to a
15
+ caller-selected file. These workflows keep the original Evidence and coverage;
16
+ a broad follow-up can also exceed framing.
15
17
 
16
18
  BrowserWindow preferences, preload and contextBridge surfaces, IPC
17
19
  registrations, utility processes, and native binding requests are static syntax
@@ -38,7 +40,13 @@ changed, analyze each version once and then call
38
40
  `compare_javascript_export_shapes` with explicit module paths and export names.
39
41
  Use the returned IDs on the same connection, or complete inline Evidence
40
42
  records, from both analysis calls. Accept variant
41
- pairing only through the tool's unique exact literal discriminant. Cite the
43
+ pairing only through the tool's unique exact literal discriminant. Read
44
+ `property_inventories` and each change's `presence` before treating `unknown` as
45
+ "the name was not observed": inventories list observed property names even when
46
+ values stay unknown, with a `source_range` for each paired or unpaired variant.
47
+ Array holes and mutation-invalidated slots are not observed properties.
48
+ Complete parent coverage reports presence-only
49
+ `added`/`removed` independently of unresolved values. Cite the
42
50
  comparison Evidence and report JSON Pointer changes; dynamic values, ambiguous
43
51
  variants, and incomplete parent-property coverage stay unknown. This is static
44
52
  inference, not runtime behavior. When runtime semantics are needed, run
@@ -50,7 +58,9 @@ through the available browser, Electron, or process workflows.
50
58
  When advertised by the connected server, application trace and compare tools
51
59
  accept complete inline Evidence or
52
60
  `{"kind":"retained-evidence","evidence_id":"ev_<64 lowercase hex characters>"}`
53
- for their application input (`application`, or `left`/`right`). This notation is
61
+ for their application input (`application`, or `left`/`right`). `inspect_analysis_view`
62
+ uses the same retained-reference form in `source`, or portable inline Evidence,
63
+ to project a summary, module page, or one module with its recorded observations. This notation is
54
64
  a template: replace it with the actual returned ID. Versions before 4.1.0 accept only full
55
65
  inline Evidence. Use the exact ID
56
66
  returned by the producer on the same MCP connection. Resolution does not run
@@ -16,6 +16,15 @@ Requested unavailable context fails with setup guidance. See
16
16
  [recorded crashes](https://github.com/morluto/rea/blob/main/docs/recorded-crashes.md)
17
17
  for exact upstream profiles, bounds and verification coverage.
18
18
 
19
+ ## Offline ELF layout
20
+
21
+ Use `inspect_binary_layout` with an explicit local ELF path for file-backed
22
+ sections, symbols, relocations, linkage names, and static mitigation inferences
23
+ without opening a disassembler target. When that complete record is already
24
+ retained, call `inspect_analysis_view` for a summary, mitigations or linkage
25
+ facet, one section or symbol, or a stable page. Do not re-run the decoder to
26
+ read a single object.
27
+
19
28
  ## Native targets
20
29
 
21
30
  After `open_binary`, use focused search, procedure, or function tools directly.
@@ -51,6 +60,15 @@ use inclusive ends and can contain gaps. Do not treat the enclosing span as code
51
60
  For packed targets, retain the original and separately derived artifact identities;
52
61
  decompiling an unpacking stub does not recover the unpacked program.
53
62
 
63
+ When reading Objective-C dispatch metadata, distinguish class implementation
64
+ methods from protocol requirements: class methods report null requirement
65
+ flags, while decoded protocol declarations retain required and optional facts.
66
+ Property attributes remain raw name/value tokens; use the property's
67
+ `atomicity` field for the decoded `N` marker or the default atomic behavior.
68
+ Null class/meta flags, ivar counts, atomicity, or read-only values mean the
69
+ selected provider did not establish that fact. Symbol names alone do not prove
70
+ that a class is a root class or has no ivars.
71
+
54
72
  ## Managed PE/CLI
55
73
 
56
74
  Start with `inspect_managed_artifact`. REA's canonical managed inspection is
@@ -1,2 +0,0 @@
1
- /** Preserve the explicit integrity admission choice without changing verification. */
2
- export const resolveArtifactIntegrityPolicy = (intent) => intent;
package/dist/config.js DELETED
@@ -1 +0,0 @@
1
- export { parseConfig } from "./config/parseConfig.js";
@@ -1,43 +0,0 @@
1
- import { browserCaptureComparisonInputSchema } from "../domain/browserCaptureComparison.js";
2
- import { browserScenarioCaptureSchema } from "../domain/browserScenarioCapture.js";
3
- import { captureSnapshotSchema } from "../domain/webCaptureDiffSchemas.js";
4
- // Captures are complete producer results to pass back unchanged, rather than
5
- // analyst-authored options. Describe that boundary without embedding the entire
6
- // inspection result schema in every comparison input. The cloned parser still
7
- // validates every nested field using the canonical domain schemas.
8
- const passiveCaptureInputSchema = captureSnapshotSchema.clone(captureSnapshotSchema.def);
9
- passiveCaptureInputSchema._zod.toJSONSchema = () => ({
10
- type: "object",
11
- properties: {
12
- inspection: {
13
- type: "object",
14
- description: "Complete result object returned by inspect_web_page. Pass the entire result unchanged, including capture identity, observations, completeness, and limitations. Every nested field is validated by REA.",
15
- },
16
- webmcp: {
17
- anyOf: [{ type: "object" }, { type: "null" }],
18
- default: null,
19
- description: "Complete result object returned by discover_webmcp_tools for this capture, or null when it was not recorded. Pass the entire result unchanged. Every nested field is validated by REA.",
20
- },
21
- },
22
- required: ["inspection"],
23
- });
24
- const scenarioCaptureInputSchema = browserScenarioCaptureSchema.clone(browserScenarioCaptureSchema.def);
25
- scenarioCaptureInputSchema._zod.toJSONSchema = () => ({
26
- type: "object",
27
- description: "Complete result object returned by capture_browser_scenario. Pass the entire result unchanged, including browser and scenario identity, steps, events, artifact contents and digests, completeness, and limitations. Every nested field is validated by REA.",
28
- });
29
- /** Advertise capture round trips while retaining full runtime validation. */
30
- export const browserCaptureToolInputSchema = browserCaptureComparisonInputSchema.safeExtend({
31
- before: passiveCaptureInputSchema
32
- .optional()
33
- .describe("Earlier passive web-page capture with complete producer results."),
34
- after: passiveCaptureInputSchema
35
- .optional()
36
- .describe("Later passive web-page capture with complete producer results."),
37
- before_scenario: scenarioCaptureInputSchema
38
- .optional()
39
- .describe("Earlier complete result object returned by capture_browser_scenario."),
40
- after_scenario: scenarioCaptureInputSchema
41
- .optional()
42
- .describe("Later complete result object returned by capture_browser_scenario."),
43
- });
@@ -1,2 +0,0 @@
1
- /** Minimal valid process capture retained as a public contract example. */
2
- export { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../domain/process/processCaptureExample.js";
@@ -1,2 +0,0 @@
1
- export * from "./toolOutputSchemaPrimitives.js";
2
- export * from "./toolOutputSchemaGroups.js";
@@ -1,6 +0,0 @@
1
- /** Derive module coverage from the best available managed evidence source. */
2
- export const moduleCoverageState = (parsed) => parsed.artifact !== null && parsed.artifact.result.module !== null
3
- ? parsed.artifact.result.coverage.state
4
- : parsed.members !== null && parsed.members.result.module !== null
5
- ? parsed.members.result.coverage.state
6
- : (parsed.boundaries?.result.coverage.state ?? "complete");
@@ -1,12 +0,0 @@
1
- import { parseConfig } from "../config.js";
2
- export const registerConfigReload = (input) => {
3
- const { dependencies, runtimeState, serverLogger } = input;
4
- return (dependencies.registerReload?.(() => {
5
- const refreshed = parseConfig(dependencies.env);
6
- if (!refreshed.ok) {
7
- serverLogger.error("Reloaded REA configuration is invalid");
8
- return;
9
- }
10
- runtimeState.currentConfig = refreshed.value;
11
- }) ?? (() => undefined));
12
- };
@@ -1,3 +0,0 @@
1
- export const createRuntimeState = (config) => ({
2
- currentConfig: config,
3
- });
@@ -1,6 +0,0 @@
1
- import { NATIVE_TOOL_CONTRACTS } from "../contracts/native/nativeToolContracts.js";
2
- import { registerEvidenceTools } from "./registerEvidenceTools.js";
3
- /** Register provider-neutral static inspection operations. */
4
- export const registerNativeTools = (server, analysis, options) => {
5
- registerEvidenceTools(server, analysis, NATIVE_TOOL_CONTRACTS, options);
6
- };
@@ -1,2 +0,0 @@
1
- export { PROCESS_PROVIDER } from "../application/process/ProcessEvidence.js";
2
- 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";