rea-agents 6.0.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (611) hide show
  1. package/README.md +26 -18
  2. package/bridge/android/ReaJadxBridge.java +14 -5
  3. package/bridge/ghidra/ReaGhidraBridge.java +205 -51
  4. package/bridge/hopper_bridge.py +314 -127
  5. package/bridge/mitmproxy/capture.py +0 -2
  6. package/bridge/native/rea_lldb_tracer.py +630 -94
  7. package/bridge/process/ProcessRunTokenReader.swift +39 -5
  8. package/bridge/pwntools/recorded_crash_impl.py +4 -0
  9. package/dist/android/JadxConfiguration.js +274 -31
  10. package/dist/android/JadxMcpTransport.js +18 -2
  11. package/dist/android/JadxProtocol.js +6 -0
  12. package/dist/android/JadxProvider.js +76 -37
  13. package/dist/android/JadxSession.js +23 -4
  14. package/dist/application/AnalysisContextQueries.js +8 -35
  15. package/dist/application/AnalysisDocument.js +32 -0
  16. package/dist/application/AppBundleExecutable.js +67 -21
  17. package/dist/application/BinaryTargetResolver.js +5 -3
  18. package/dist/application/BrowserEvidence.js +3 -8
  19. package/dist/application/BrowserScenarioEvidence.js +2 -18
  20. package/dist/application/CallPathTracing.js +19 -3
  21. package/dist/application/CapabilityInventory.js +48 -11
  22. package/dist/application/ClientConfigurationDocument.js +917 -8
  23. package/dist/application/ClientRegistrationIdentity.js +26 -5
  24. package/dist/application/ClientRegistrationStatus.js +29 -14
  25. package/dist/application/DirectAnalysis.js +56 -51
  26. package/dist/application/DirectAnalysisCleanup.js +72 -0
  27. package/dist/application/DirectAnalysisStatus.js +4 -5
  28. package/dist/application/Doctor.js +19 -21
  29. package/dist/application/DoctorDiagnostics.js +1 -2
  30. package/dist/application/DoctorScope.js +25 -13
  31. package/dist/application/EnhancedLiteralTracing.js +22 -25
  32. package/dist/application/EnhancedTools.js +64 -17
  33. package/dist/application/EvidenceBundleFiles.js +30 -13
  34. package/dist/application/FunctionAnalysisEvidence.js +2 -3
  35. package/dist/application/InventoryProjectionEvidence.js +4 -3
  36. package/dist/application/InvestigationProviders.js +11 -2
  37. package/dist/application/JsonFiles.js +83 -28
  38. package/dist/application/LinuxHopper.js +9 -6
  39. package/dist/application/MacHopper.js +15 -18
  40. package/dist/application/ProcedureAddressResolution.js +11 -0
  41. package/dist/application/RealHopperAssertions.js +0 -11
  42. package/dist/application/ReconstructionCoverageService.js +7 -4
  43. package/dist/application/ReconstructionObligationCandidates.js +1 -1
  44. package/dist/application/ReconstructionObligationLedgerService.js +4 -3
  45. package/dist/application/ReferenceSourceImportEntries.js +1 -1
  46. package/dist/application/Setup.js +21 -17
  47. package/dist/application/SetupClientConfiguration.js +10 -15
  48. package/dist/application/SetupHost.js +21 -29
  49. package/dist/application/SetupPlan.js +11 -9
  50. package/dist/application/SupportedClients.js +34 -1
  51. package/dist/application/Uninstall.js +82 -29
  52. package/dist/application/Update.js +18 -3
  53. package/dist/application/UpdateMaintenance.js +7 -5
  54. package/dist/application/UpdateRuntime.js +57 -36
  55. package/dist/application/WebModuleTraceService.js +4 -2
  56. package/dist/application/WebNetworkCaptureService.js +4 -2
  57. package/dist/application/WebRuntimeService.js +5 -3
  58. package/dist/application/WebScriptExportService.js +32 -6
  59. package/dist/application/WebSourceLocationService.js +4 -2
  60. package/dist/application/WorkflowEvidence.js +105 -0
  61. package/dist/application/XrefsAddressResolution.js +45 -0
  62. package/dist/application/analysisView/AnalysisViewService.js +76 -0
  63. package/dist/application/binary/AnalysisClientCleanup.js +30 -5
  64. package/dist/application/binary/AnalysisProviderEvaluation.js +22 -7
  65. package/dist/application/binary/AnalysisProviderRegistry.js +4 -6
  66. package/dist/application/binary/AnalysisSnapshotCache.js +13 -14
  67. package/dist/application/binary/BinarySession.js +161 -93
  68. package/dist/application/binary/BinarySessionComposition.js +1 -3
  69. package/dist/application/binary/BinarySessionExecution.js +3 -5
  70. package/dist/application/binary/BinarySessionOpen.js +4 -4
  71. package/dist/application/binary/BinarySessionRecords.js +26 -4
  72. package/dist/application/binary/BinarySessionStatus.js +18 -7
  73. package/dist/application/binary/CompositeProvider.js +16 -17
  74. package/dist/application/binary/LazyAnalysisProvider.js +8 -5
  75. package/dist/application/binary/SessionProviderRouter.js +27 -135
  76. package/dist/application/binaryDiagnostics/BinaryLayoutService.js +4 -2
  77. package/dist/application/binaryDiagnostics/RecordedCrashService.js +4 -2
  78. package/dist/application/evm/EvmInterfaceService.js +4 -2
  79. package/dist/application/homebrew.js +48 -0
  80. package/dist/application/investigation/EvidenceLedger.js +21 -7
  81. package/dist/application/investigation/InvestigationRecords.js +8 -0
  82. package/dist/application/javascript/ElectronActiveEvidence.js +9 -13
  83. package/dist/application/javascript/JavaScriptAnalysisControl.js +34 -0
  84. package/dist/application/javascript/JavaScriptApplicationEvidence.js +21 -4
  85. package/dist/application/javascript/JavaScriptApplicationEvidenceGraph.js +19 -2
  86. package/dist/application/javascript/JavaScriptApplicationService.js +27 -15
  87. package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +5 -5
  88. package/dist/application/javascript/JavaScriptArtifactAnalysis.js +10 -7
  89. package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +44 -10
  90. package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +11 -3
  91. package/dist/application/javascript/JavaScriptArtifactGraphContext.js +9 -0
  92. package/dist/application/javascript/JavaScriptArtifactGraphDocuments.js +8 -5
  93. package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +12 -3
  94. package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +0 -1
  95. package/dist/application/javascript/JavaScriptArtifactPathResolution.js +49 -19
  96. package/dist/application/javascript/JavaScriptArtifactReconstruction.js +56 -8
  97. package/dist/application/javascript/JavaScriptModuleRelationships.js +38 -9
  98. package/dist/application/javascript/JavaScriptRecoveryService.js +4 -2
  99. package/dist/application/javascript/JavaScriptRuntimeObservationService.js +6 -4
  100. package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +3 -3
  101. package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +2 -3
  102. package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +63 -61
  103. package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +1 -2
  104. package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +2 -3
  105. package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +1 -5
  106. package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +75 -46
  107. package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +2 -3
  108. package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +64 -19
  109. package/dist/application/managed/ManagedApplicationGraphService.js +4 -3
  110. package/dist/application/managed/ManagedMemberComparisonService.js +9 -5
  111. package/dist/application/managed/ManagedNativeVerificationService.js +6 -4
  112. package/dist/application/managed/ManagedReconstructionService.js +4 -3
  113. package/dist/application/process/ProcessCli.js +25 -17
  114. package/dist/application/process/ProcessEvidence.js +4 -4
  115. package/dist/application/workflowInputError.js +18 -0
  116. package/dist/artifacts/ArtifactProvider.js +48 -13
  117. package/dist/artifacts/ArtifactReader.js +31 -0
  118. package/dist/artifacts/DirectoryArtifactReader.js +2 -1
  119. package/dist/artifacts/MachOSliceArtifactReader.js +106 -15
  120. package/dist/artifacts/NativeDmgArtifactReader.js +73 -21
  121. package/dist/artifacts/SafeOutputTree.js +16 -2
  122. package/dist/artifacts/ZipArtifactReader.js +11 -4
  123. package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +26 -5
  124. package/dist/artifacts/apple/DylibResolutionReader.js +17 -7
  125. package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +176 -56
  126. package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +195 -0
  127. package/dist/artifacts/apple/KeyedArchiveReader.js +55 -23
  128. package/dist/artifacts/apple/MachoLoadCommandReader.js +92 -31
  129. package/dist/artifacts/apple/NibArchive.js +81 -14
  130. package/dist/artifacts/apple/NibViewHierarchy.js +10 -3
  131. package/dist/artifacts/apple/PlistNumberLiterals.js +164 -0
  132. package/dist/artifacts/extraction/ArtifactExtraction.js +78 -21
  133. package/dist/artifacts/inventory/ArtifactGraphConstruction.js +79 -68
  134. package/dist/artifacts/inventory/ArtifactInventory.js +0 -1
  135. package/dist/artifacts/inventory/reader.js +3 -3
  136. package/dist/artifacts/inventory/scanCanonical.js +59 -38
  137. package/dist/artifacts/inventory/scanReader.js +5 -9
  138. package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +6 -2
  139. package/dist/browser/BrowserScenarioPartialObservation.js +106 -0
  140. package/dist/browser/CdpBrowserProvider.js +2 -3
  141. package/dist/browser/CdpCaptureCompleteness.js +2 -0
  142. package/dist/browser/CdpCaptureEventHandlers.js +78 -15
  143. package/dist/browser/CdpCaptureEventTypes.js +5 -1
  144. package/dist/browser/CdpCaptureEvents.js +25 -1
  145. package/dist/browser/CdpCaptureValues.js +20 -0
  146. package/dist/browser/CdpConnection.js +30 -11
  147. package/dist/browser/CdpElectronProvider.js +0 -2
  148. package/dist/browser/CdpElectronScriptEvents.js +2 -8
  149. package/dist/browser/CdpElectronScripts.js +2 -3
  150. package/dist/browser/CdpOptionalCommand.js +2 -3
  151. package/dist/browser/CdpPageCapture.js +23 -1
  152. package/dist/browser/CdpPageCaptureScripts.js +2 -3
  153. package/dist/browser/CdpSafeMetadata.js +10 -10
  154. package/dist/browser/PlaywrightBrowserScenarioProvider.js +59 -44
  155. package/dist/browser/PlaywrightElectronActiveActions.js +34 -79
  156. package/dist/browser/PlaywrightElectronActiveProjection.js +141 -0
  157. package/dist/browser/PlaywrightElectronActiveProvider.js +133 -130
  158. package/dist/browser/PlaywrightScenarioArtifacts.js +1 -1
  159. package/dist/browser/PlaywrightScenarioBrowser.js +139 -39
  160. package/dist/browser/PlaywrightScenarioEvents.js +1 -1
  161. package/dist/browser/PlaywrightScenarioSession.js +39 -22
  162. package/dist/browser/WebSourceMapFetcher.js +426 -72
  163. package/dist/browser/assets/LocalWebScriptArtifacts.js +2 -2
  164. package/dist/browser/assets/ScriptCaptureAdapters.js +1 -1
  165. package/dist/browser/history/CaptureFailures.js +41 -1
  166. package/dist/browser/history/CaptureRelease.js +5 -0
  167. package/dist/browser/history/HarCaptureAdapter.js +3 -3
  168. package/dist/browser/history/HarJson.js +3 -2
  169. package/dist/browser/history/HistoricalCaptureDecoder.js +4 -2
  170. package/dist/browser/history/MitmproxyCaptureAdapter.js +4 -2
  171. package/dist/catalogIdentity.js +0 -1
  172. package/dist/cli/analysisSelector.js +23 -0
  173. package/dist/cli/analysisViewCommands.js +36 -0
  174. package/dist/cli/applicationCommands.js +2 -3
  175. package/dist/cli/artifactCommands.js +11 -12
  176. package/dist/cli/coreAnalysisCommands.js +3 -3
  177. package/dist/cli/coreBinaryCommands.js +100 -37
  178. package/dist/cli/coreNativeCommands.js +9 -10
  179. package/dist/cli/electronCommands.js +10 -9
  180. package/dist/cli/interactiveSetup.js +6 -6
  181. package/dist/cli/javascriptApplicationAnalysis.js +7 -3
  182. package/dist/cli/jsonOutput.js +4 -99
  183. package/dist/cli/managedCommands.js +7 -8
  184. package/dist/cli/nativeCallCommands.js +3 -5
  185. package/dist/cli/omittableDefaults.js +50 -0
  186. package/dist/cli/processCommands.js +3 -2
  187. package/dist/cli/setupCommands.js +16 -15
  188. package/dist/cli/utilityCommands.js +9 -9
  189. package/dist/cli/webRuntimeCommands.js +8 -8
  190. package/dist/cli.js +18 -9
  191. package/dist/cliBrowserScenarioCommands.js +2 -2
  192. package/dist/cliCommandNames.js +1 -1
  193. package/dist/cliJsonInput.js +24 -5
  194. package/dist/cliOutput.js +0 -38
  195. package/dist/composition/auxiliaryAnalysisProviders.js +27 -23
  196. package/dist/composition/binary.js +9 -9
  197. package/dist/composition/browserScenario.js +2 -1
  198. package/dist/composition/directAnalysis.js +20 -13
  199. package/dist/composition/electronScenario.js +1 -1
  200. package/dist/composition/optionalObservationProviders.js +12 -7
  201. package/dist/config/environment.js +10 -0
  202. package/dist/config/ghidraStartupTimeout.js +12 -0
  203. package/dist/config/homeDirectory.js +12 -0
  204. package/dist/config/mcpResponseBudget.js +30 -0
  205. package/dist/config/parseConfig.js +8 -3
  206. package/dist/config/parsers.js +19 -22
  207. package/dist/contracts/analysisViewToolContracts.js +56 -0
  208. package/dist/contracts/applicationToolContracts.js +5 -4
  209. package/dist/contracts/artifactComparisonExample.js +2 -2
  210. package/dist/contracts/artifactToolContracts.js +1 -1
  211. package/dist/contracts/browserScenarioToolContracts.js +1 -1
  212. package/dist/contracts/browserToolContracts.js +19 -15
  213. package/dist/contracts/enhancedInputs.js +7 -5
  214. package/dist/contracts/enhancedToolContracts.js +7 -6
  215. package/dist/contracts/evm/evmToolContracts.js +1 -1
  216. package/dist/contracts/functionWorkflowToolContracts.js +1 -1
  217. package/dist/contracts/hopperMemoryContracts.js +2 -5
  218. package/dist/contracts/inputSchemaPresentation.js +90 -0
  219. package/dist/contracts/investigationExamples.js +4 -3
  220. package/dist/contracts/javascript/electronToolContracts.js +2 -2
  221. package/dist/contracts/javascript/javascriptApplicationWorkflowExamples.js +0 -20
  222. package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +245 -0
  223. package/dist/contracts/javascript/javascriptRuntimeObservationToolContracts.js +1 -1
  224. package/dist/contracts/managed/managedToolContracts.js +7 -14
  225. package/dist/contracts/managed/managedWorkflowToolContracts.js +1 -1
  226. package/dist/contracts/mobileApplicationGraphExamples.js +3 -3
  227. package/dist/contracts/native/binaryDiagnosticsToolContracts.js +1 -1
  228. package/dist/contracts/native/nativeToolContracts.js +5 -3
  229. package/dist/contracts/officialToolContracts.js +16 -16
  230. package/dist/contracts/promptContracts.js +5 -5
  231. package/dist/contracts/providerSelection.js +1 -1
  232. package/dist/contracts/sessionLifecycleInputs.js +3 -7
  233. package/dist/contracts/sessionStatusContract.js +2 -4
  234. package/dist/contracts/sessionToolContracts.js +18 -8
  235. package/dist/contracts/sessionToolSchemas.js +3 -19
  236. package/dist/contracts/toolContractExamples.js +0 -1
  237. package/dist/contracts/toolContractHelpers.js +4 -1
  238. package/dist/contracts/toolContracts.js +2 -0
  239. package/dist/contracts/toolEffects.js +1 -1
  240. package/dist/contracts/toolOutputSchemaGroups.js +160 -115
  241. package/dist/contracts/toolOutputSchemaPrimitives.js +28 -20
  242. package/dist/contracts/toolSchemaMetadata.js +41 -33
  243. package/dist/contracts/webNetworkCaptureToolContracts.js +2 -2
  244. package/dist/contracts/webRuntimeToolContracts.js +1 -1
  245. package/dist/contracts/webScriptToolContracts.js +1 -1
  246. package/dist/doctorRuntime.js +7 -5
  247. package/dist/domain/analysisErrorBase.js +8 -3
  248. package/dist/domain/analysisErrorCore.js +6 -1
  249. package/dist/domain/analysisErrorPresentation.js +90 -20
  250. package/dist/domain/analysisErrorProjection.js +130 -32
  251. package/dist/domain/analysisSnapshot.js +29 -31
  252. package/dist/domain/analysisView/analysisView.js +243 -0
  253. package/dist/domain/analysisView/analysisViewCoverage.js +19 -0
  254. package/dist/domain/analysisView/binaryLayoutView.js +159 -0
  255. package/dist/domain/analysisView/javascriptApplicationView.js +238 -0
  256. package/dist/domain/android/androidAnalysis.js +2 -4
  257. package/dist/domain/android/androidApplication.js +18 -10
  258. package/dist/domain/apple/appleApplication.js +42 -15
  259. package/dist/domain/apple/dyldEnvironment.js +73 -0
  260. package/dist/domain/apple/dylibResolution.js +130 -12
  261. package/dist/domain/apple/dylibResolutionFindings.js +9 -7
  262. package/dist/domain/apple/interfaceBuilderGraph.js +25 -14
  263. package/dist/domain/apple/interfaceBuilderKeyedArchive.js +13 -3
  264. package/dist/domain/apple/keyedArchive.js +35 -3
  265. package/dist/domain/apple/machoContainer.js +54 -0
  266. package/dist/domain/apple/plistNumbers.js +76 -0
  267. package/dist/domain/artifactComparison.js +15 -6
  268. package/dist/domain/artifactGraph.js +16 -3
  269. package/dist/domain/artifactIdentity.js +29 -0
  270. package/dist/domain/artifactInventoryEvidence.js +28 -40
  271. package/dist/domain/artifactOperationError.js +3 -3
  272. package/dist/domain/artifactPartialObservation.js +1 -0
  273. package/dist/domain/artifactPathSyntax.js +49 -0
  274. package/dist/domain/binaryTarget.js +39 -13
  275. package/dist/domain/bridgeCandidateProjection.js +71 -0
  276. package/dist/domain/browserCaptureComparison.js +13 -49
  277. package/dist/domain/browserCompleteness.js +1 -0
  278. package/dist/domain/browserNetworkEvidence.js +10 -4
  279. package/dist/domain/browserObservation.js +0 -1
  280. package/dist/domain/browserObservationError.js +24 -5
  281. package/dist/domain/browserObservationSchemas.js +14 -3
  282. package/dist/domain/browserScenario.js +0 -1
  283. package/dist/domain/browserScenarioCapture.js +1 -2
  284. package/dist/domain/browserScenarioDiff.js +0 -2
  285. package/dist/domain/browserScenarioDiffEvidence.js +0 -12
  286. package/dist/domain/browserScenarioDiffValues.js +2 -2
  287. package/dist/domain/browserScenarioValues.js +5 -10
  288. package/dist/domain/bundleComparison.js +3 -2
  289. package/dist/domain/callPath.js +8 -9
  290. package/dist/domain/callPathSchemas.js +2 -2
  291. package/dist/domain/canonicalJsonDigestSteps.js +133 -0
  292. package/dist/domain/canonicalOrdering.js +9 -5
  293. package/dist/domain/changedBehavior.js +9 -9
  294. package/dist/domain/comparisonSourceEvidence.js +40 -0
  295. package/dist/domain/completionLedgerGeneration.js +2 -1
  296. package/dist/domain/configurationErrors.js +13 -1
  297. package/dist/domain/conformancePackage.js +4 -3
  298. package/dist/domain/evidence.js +65 -36
  299. package/dist/domain/evidenceBundle.js +47 -8
  300. package/dist/domain/evidenceCompletionLedger.js +2 -1
  301. package/dist/domain/evidenceErrors.js +12 -1
  302. package/dist/domain/explicitSensitiveFailure.js +17 -1
  303. package/dist/domain/firmware/firmwareAnalysis.js +6 -7
  304. package/dist/domain/functionComparison.js +4 -5
  305. package/dist/domain/functionComparisonDimensions.js +120 -87
  306. package/dist/domain/functionComparisonNormalization.js +23 -34
  307. package/dist/domain/functionComparisonResults.js +1 -4
  308. package/dist/domain/functionComparisonSchemas.js +2 -8
  309. package/dist/domain/functionDossierEvidence.js +2 -37
  310. package/dist/domain/hopperErrors.js +23 -2
  311. package/dist/domain/hopperValues.js +51 -8
  312. package/dist/domain/immutableJson.js +114 -0
  313. package/dist/domain/inputIssueProjection.js +3 -0
  314. package/dist/domain/javascript/electronActiveObservation.js +47 -64
  315. package/dist/domain/javascript/electronObservation.js +14 -3
  316. package/dist/domain/javascript/electronStaticAnalysisBrowser.js +10 -9
  317. package/dist/domain/javascript/electronStaticAnalysisIpc.js +2 -1
  318. package/dist/domain/javascript/electronStaticAnalysisNative.js +2 -1
  319. package/dist/domain/javascript/electronStaticAnalysisValues.js +6 -12
  320. package/dist/domain/javascript/javascriptApplicationAnalysis.js +71 -23
  321. package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +2 -0
  322. package/dist/domain/javascript/javascriptApplicationGraph.js +39 -3
  323. package/dist/domain/javascript/javascriptApplicationGraphSchemas.js +9 -2
  324. package/dist/domain/javascript/javascriptApplicationVersionItems.js +5 -2
  325. package/dist/domain/javascript/javascriptApplicationVersionKeys.js +2 -1
  326. package/dist/domain/javascript/javascriptAstValues.js +20 -0
  327. package/dist/{application/javascript/JavaScriptReturnShapeProjection.js → domain/javascript/javascriptExportReturnShapeProjection.js} +4 -4
  328. package/dist/domain/javascript/javascriptExportShapeComparison.js +7 -1
  329. package/dist/domain/javascript/javascriptExportShapeComparisonIdentity.js +6 -1
  330. package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +29 -1
  331. package/dist/domain/javascript/javascriptExportShapeSelection.js +5 -5
  332. package/dist/domain/javascript/javascriptExportShapeVariants.js +67 -14
  333. package/dist/domain/javascript/javascriptFeatureSeed.js +20 -0
  334. package/dist/domain/javascript/javascriptFeatureTraversal.js +0 -1
  335. package/dist/domain/javascript/javascriptNativeHandoff.js +1 -1
  336. package/dist/domain/javascript/javascriptRecovery.js +3 -8
  337. package/dist/domain/javascript/javascriptRuntimeLoadState.js +0 -1
  338. package/dist/domain/javascript/javascriptRuntimeObservation.js +10 -2
  339. package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +1 -1
  340. package/dist/domain/javascript/javascriptRuntimeReconciliationParsing.js +3 -2
  341. package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +0 -1
  342. package/dist/domain/javascript/javascriptSemanticAnalysis.js +106 -5
  343. package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +2 -1
  344. package/dist/domain/javascript/javascriptSemanticCalls.js +2 -1
  345. package/dist/domain/javascript/javascriptSemanticChildProcesses.js +2 -1
  346. package/dist/domain/javascript/javascriptSemanticCoverage.js +6 -5
  347. package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +9 -17
  348. package/dist/domain/javascript/javascriptSemanticDataEffects.js +23 -6
  349. package/dist/domain/javascript/javascriptSemanticGraph.js +98 -43
  350. package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +1 -0
  351. package/dist/domain/javascript/javascriptSemanticMemberMutations.js +77 -20
  352. package/dist/domain/javascript/javascriptSemanticMutationValues.js +21 -27
  353. package/dist/domain/javascript/javascriptSemanticObjects.js +83 -42
  354. package/dist/domain/javascript/javascriptSemanticPrimitives.js +18 -21
  355. package/dist/domain/javascript/javascriptSemanticProjection.js +2 -3
  356. package/dist/domain/javascript/javascriptSemanticPromises.js +2 -1
  357. package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +8 -4
  358. package/dist/domain/javascript/javascriptSemanticResourceLimits.js +77 -0
  359. package/dist/domain/javascript/javascriptSemanticResources.js +1 -1
  360. package/dist/domain/javascript/javascriptSemanticReturns.js +32 -17
  361. package/dist/domain/javascript/javascriptSemanticSlots.js +72 -0
  362. package/dist/domain/javascript/javascriptSemanticValues.js +126 -61
  363. package/dist/domain/javascript/javascriptSourceMapPaths.js +104 -0
  364. package/dist/domain/javascript/javascriptSourceParser.js +6 -2
  365. package/dist/domain/javascript/javascriptStaticAnalysis.js +22 -17
  366. package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +5 -3
  367. package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +16 -5
  368. package/dist/domain/javascript/javascriptStaticAnalysisFindings.js +66 -7
  369. package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +28 -17
  370. package/dist/domain/javascript/javascriptStaticAnalysisState.js +3 -2
  371. package/dist/domain/javascript/sourceToBundleComparison.js +12 -3
  372. package/dist/domain/javascript/sourceToBundleSignals.js +47 -19
  373. package/dist/domain/jsonSerialization.js +109 -0
  374. package/dist/domain/jsonValue.js +90 -6
  375. package/dist/domain/localPath.js +6 -0
  376. package/dist/domain/managed/managedApplicationGraph.js +10 -10
  377. package/dist/domain/managed/managedArtifact.js +6 -4
  378. package/dist/domain/managed/managedInspectionEvidence.js +16 -0
  379. package/dist/domain/managed/managedMemberComparison.js +2 -9
  380. package/dist/domain/managed/managedMemberComparisonMatch.js +5 -9
  381. package/dist/domain/managed/managedNativeVerification.js +3 -11
  382. package/dist/domain/managed/managedNativeVerificationMatch.js +9 -3
  383. package/dist/domain/native/binaryLayout.js +2 -3
  384. package/dist/domain/native/fileOffsetPartialObservation.js +1 -0
  385. package/dist/domain/native/nativeApiBoundary.js +1 -1
  386. package/dist/domain/native/nativeCallObservation.js +37 -13
  387. package/dist/domain/native/nativeCallPartialObservation.js +33 -0
  388. package/dist/domain/native/nativeInstruction.js +7 -0
  389. package/dist/domain/native/recordedCrash.js +2 -3
  390. package/dist/domain/offsetDateTime.js +17 -0
  391. package/dist/domain/process/processCapture.js +21 -16
  392. package/dist/domain/process/processCaptureCoverage.js +67 -0
  393. package/dist/domain/process/processCaptureExample.js +2 -1
  394. package/dist/domain/process/processCaptureParsing.js +1 -34
  395. package/dist/domain/process/processCaptureValidation.js +81 -13
  396. package/dist/domain/process/processComparison.js +79 -26
  397. package/dist/domain/process/processObservation.js +10 -2
  398. package/dist/domain/process/processScenario.js +35 -12
  399. package/dist/domain/process/processTraceComparison.js +0 -2
  400. package/dist/domain/process/processTraceDimensionProjection.js +1 -1
  401. package/dist/domain/process/processTraceEvaluation.js +15 -11
  402. package/dist/domain/process/processTraceSpecification.js +3 -4
  403. package/dist/domain/propertyListKeys.js +1 -1
  404. package/dist/domain/propertyListXmlText.js +19 -0
  405. package/dist/domain/providerAdapterError.js +3 -1
  406. package/dist/domain/providerOperationHealth.js +54 -0
  407. package/dist/domain/reconstructionCoverage.js +5 -2
  408. package/dist/domain/reconstructionObligationLedgerSchemas.js +2 -1
  409. package/dist/domain/reconstructionReadinessSchemas.js +2 -1
  410. package/dist/domain/reconstructionVerification.js +9 -46
  411. package/dist/domain/reconstructionVerificationSchemas.js +4 -3
  412. package/dist/domain/referenceSourceGraph.js +20 -21
  413. package/dist/domain/staticRuntimeCorrelation.js +8 -45
  414. package/dist/domain/stringPatterns.js +6 -0
  415. package/dist/domain/swiftSymbolClassification.js +61 -0
  416. package/dist/domain/symbolAnalysis.js +66 -18
  417. package/dist/domain/webBundleAnalysis.js +20 -8
  418. package/dist/domain/webBundleAnalyzerInspection.js +13 -8
  419. package/dist/domain/webBundleAnalyzerResult.js +41 -2
  420. package/dist/domain/webCaptureDiff.js +0 -1
  421. package/dist/domain/webCaptureDiffSchemas.js +6 -3
  422. package/dist/domain/webEventListeners.js +3 -2
  423. package/dist/domain/webExecution.js +3 -2
  424. package/dist/domain/webRuntime.js +19 -7
  425. package/dist/domain/webScriptExport.js +1 -1
  426. package/dist/domain/webSourceLocation.js +1 -0
  427. package/dist/dotnet/ManagedArtifactInspector.js +2 -19
  428. package/dist/dotnet/ManagedMemberInspector.js +12 -18
  429. package/dist/dotnet/ManagedMemberInspectorCore.js +47 -44
  430. package/dist/dotnet/ManagedMemberRows.js +75 -62
  431. package/dist/dotnet/ManagedMetadataInventory.js +16 -22
  432. package/dist/dotnet/ManagedMethodBodyReader.js +4 -0
  433. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +109 -94
  434. package/dist/dotnet/ManagedNativeBoundaryInspector.js +12 -21
  435. package/dist/dotnet/ManagedReaderFailure.js +16 -0
  436. package/dist/dotnet/ManagedStaticProvider.js +3 -5
  437. package/dist/evaluation/AgentEvaluationFixtures.js +250 -0
  438. package/dist/evaluation/AgentEvaluationReport.js +28 -0
  439. package/dist/evaluation/CodexAgentEval.js +12 -8
  440. package/dist/evaluation/KnownAnswerEvaluation.js +281 -0
  441. package/dist/evm/EvmoleInterfaceProvider.js +2 -1
  442. package/dist/firmware/FirmwareCommand.js +9 -5
  443. package/dist/firmware/FirmwareFiles.js +1 -1
  444. package/dist/firmware/FirmwareProvider.js +4 -4
  445. package/dist/generatedPackageMetadata.js +2 -2
  446. package/dist/ghidra/GhidraAnalysisProfile.js +7 -5
  447. package/dist/ghidra/GhidraClient.js +126 -34
  448. package/dist/ghidra/GhidraClientStartup.js +0 -2
  449. package/dist/ghidra/GhidraDiagnostics.js +7 -7
  450. package/dist/ghidra/GhidraDoctor.js +6 -5
  451. package/dist/ghidra/GhidraFunctionValues.js +13 -12
  452. package/dist/ghidra/GhidraInstallation.js +58 -33
  453. package/dist/ghidra/GhidraInventoryValues.js +14 -4
  454. package/dist/ghidra/GhidraJavaLaunch.js +66 -0
  455. package/dist/ghidra/GhidraLauncher.js +47 -22
  456. package/dist/ghidra/GhidraProvider.js +6 -2
  457. package/dist/ghidra/GhidraProviderCapabilities.js +20 -2
  458. package/dist/ghidra/GhidraProviderClient.js +36 -15
  459. package/dist/ghidra/GhidraSessionError.js +13 -7
  460. package/dist/ghidra/GhidraSessionRoot.js +39 -0
  461. package/dist/ghidra/GhidraTargetSnapshot.js +47 -12
  462. package/dist/ghidra/GhidraTransport.js +20 -0
  463. package/dist/ghidra/extensions/GhidraExtensions.js +17 -10
  464. package/dist/ghidra/extensions/nativeaot/NativeAotAdapter.js +8 -2
  465. package/dist/hopper/BridgeLauncher.js +65 -56
  466. package/dist/hopper/HopperAnalysisProfile.js +65 -12
  467. package/dist/hopper/HopperCleanup.js +63 -22
  468. package/dist/hopper/HopperClient.js +288 -59
  469. package/dist/hopper/HopperFileOffset.js +237 -0
  470. package/dist/hopper/HopperMachOImage.js +197 -0
  471. package/dist/hopper/HopperOperationStage.js +6 -0
  472. package/dist/hopper/HopperProvider.js +71 -19
  473. package/dist/hopper/HopperProviderCapabilities.js +19 -1
  474. package/dist/hopper/HopperRegexSearch.js +134 -0
  475. package/dist/hopper/HopperRegexWorker.js +27 -0
  476. package/dist/hopper/HopperRequestQueue.js +68 -19
  477. package/dist/hopper/HopperTargetLease.js +133 -49
  478. package/dist/hopper/LinuxPrivateDisplayProbe.js +6 -0
  479. package/dist/ida/IdaConfiguration.js +8 -3
  480. package/dist/ida/IdaInput.js +1 -7
  481. package/dist/ida/IdaMcpConnection.js +8 -4
  482. package/dist/ida/IdaOperationRunner.js +3 -3
  483. package/dist/ida/IdaProvider.js +8 -12
  484. package/dist/ida/IdaSessionClient.js +20 -18
  485. package/dist/ida/IdaWorkspace.js +12 -13
  486. package/dist/inspector/JavaScriptRuntimeScope.js +9 -1
  487. package/dist/inspector/V8InspectorCaptureProjection.js +9 -4
  488. package/dist/inspector/V8InspectorProvider.js +82 -36
  489. package/dist/javascript/recovery/WakaruCommand.js +7 -2
  490. package/dist/javascript/recovery/WakaruExecution.js +5 -2
  491. package/dist/javascript/sourceMaps/DecodedSourceMap.js +47 -0
  492. package/dist/javascript/sourceMaps/SourceMapCommand.js +16 -0
  493. package/dist/javascript/sourceMaps/SourceMapFormat.js +79 -31
  494. package/dist/javascript/sourceMaps/TraceSourceMap.js +14 -28
  495. package/dist/main/shutdown.js +11 -3
  496. package/dist/main/startup.js +9 -2
  497. package/dist/main/transport.js +22 -2
  498. package/dist/main.js +11 -18
  499. package/dist/mcpDoctor.js +62 -2
  500. package/dist/native/AppleDispatchCoverage.js +47 -6
  501. package/dist/native/AppleDispatchDecodeFacts.js +6 -0
  502. package/dist/native/AppleDispatchMetadata.js +6 -3
  503. package/dist/native/AppleMachoFixups.js +48 -24
  504. package/dist/native/AppleMachoSelection.js +48 -22
  505. package/dist/native/AppleObjcCategories.js +6 -2
  506. package/dist/native/AppleObjcDispatchFacets.js +5 -2
  507. package/dist/native/AppleObjcProperties.js +2 -1
  508. package/dist/native/AppleSwiftDispatchFacets.js +27 -21
  509. package/dist/native/AppleSwiftVtables.js +21 -15
  510. package/dist/native/CommandRunner.js +87 -88
  511. package/dist/native/LldbCallTracer.js +372 -103
  512. package/dist/native/LldbRetainedObservations.js +178 -0
  513. package/dist/native/NativeCallObservation.js +62 -3
  514. package/dist/native/NativeMacOSProvider.js +122 -31
  515. package/dist/native/NativeUiHelperRuntime.js +11 -2
  516. package/dist/native/NativeUiObservation.js +2 -2
  517. package/dist/native/SignatureTargetBinding.js +155 -0
  518. package/dist/native/parsers/lipo.js +71 -1
  519. package/dist/native/pwndbg/PwndbgCoreContext.js +25 -5
  520. package/dist/native/pwntools/PwntoolsDecoder.js +2 -1
  521. package/dist/native/pwntools/RecordedCrashStructureBindings.js +2 -0
  522. package/dist/process/DarwinProcessRunTokenReader.js +23 -10
  523. package/dist/process/ExecFileOutput.js +108 -6
  524. package/dist/process/OwnedCommand.js +7 -2
  525. package/dist/process/PrivateRuntimeRoot.js +10 -5
  526. package/dist/process/ProcessOwnership.js +204 -57
  527. package/dist/process/ProcessOwnershipObservation.js +60 -9
  528. package/dist/process/ProviderProcess.js +39 -10
  529. package/dist/process/capture/FilesystemSnapshot.js +50 -13
  530. package/dist/process/capture/ProcessCaptureError.js +15 -2
  531. package/dist/process/capture/ProcessCaptureLifecycle.js +235 -81
  532. package/dist/process/capture/ProcessFilesystemEffects.js +33 -3
  533. package/dist/process/capture/ProcessHarness.js +21 -25
  534. package/dist/process/capture/ProcessNormalization.js +20 -2
  535. package/dist/process/capture/ProcessSampling.js +25 -2
  536. package/dist/process/capture/TerminalRenderer.js +14 -0
  537. package/dist/process/snapshotEnvironment.js +14 -0
  538. package/dist/server/EvidenceMcpServer.js +157 -0
  539. package/dist/server/createServer.js +61 -41
  540. package/dist/server/mcpClientMetadata.js +12 -5
  541. package/dist/server/promptCompletion.js +3 -8
  542. package/dist/server/registerAnalysisViewTool.js +15 -0
  543. package/dist/server/registerAndroidTools.js +2 -5
  544. package/dist/server/registerApplicationTools/compareExportShapes.js +4 -5
  545. package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
  546. package/dist/server/registerApplicationTools/compareVersions.js +4 -5
  547. package/dist/server/registerApplicationTools/coverage.js +1 -2
  548. package/dist/server/registerApplicationTools/helpers.js +1 -4
  549. package/dist/server/registerApplicationTools/obligationLedger.js +4 -5
  550. package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +3 -4
  551. package/dist/server/registerApplicationTools/traceFeature.js +4 -5
  552. package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
  553. package/dist/server/registerArtifactComparisonTool.js +13 -10
  554. package/dist/server/registerBinaryDiagnosticsTools.js +2 -5
  555. package/dist/server/registerBrowserScenarioTool.js +3 -6
  556. package/dist/server/registerBrowserTools.js +13 -18
  557. package/dist/server/registerBundleComparisonTool.js +5 -7
  558. package/dist/server/registerCloseLifecycleTool.js +9 -20
  559. package/dist/server/registerElectronTools.js +10 -15
  560. package/dist/server/registerEnhancedTools.js +36 -77
  561. package/dist/server/registerEvidenceTools.js +3 -6
  562. package/dist/server/registerEvmTools.js +2 -5
  563. package/dist/server/registerFirmwareTools.js +2 -5
  564. package/dist/server/registerFunctionComparisonTool.js +15 -12
  565. package/dist/server/registerInvestigationTools.js +16 -17
  566. package/dist/server/registerJavaScriptRecoveryTool.js +2 -5
  567. package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -8
  568. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +5 -8
  569. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +4 -7
  570. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +6 -9
  571. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +6 -9
  572. package/dist/server/registerOfficialTools.js +4 -21
  573. package/dist/server/registerProcessComparisonTool.js +74 -48
  574. package/dist/server/registerRecordedCrashTools.js +2 -5
  575. package/dist/server/registerSessionRecordTools.js +19 -24
  576. package/dist/server/registerSessionStatusTool.js +19 -6
  577. package/dist/server/registerSessionTools.js +20 -18
  578. package/dist/server/registerWebModuleTool.js +2 -5
  579. package/dist/server/registerWebNetworkCaptureTool.js +2 -5
  580. package/dist/server/registerWebRuntimeTools.js +4 -9
  581. package/dist/server/registerWebScriptTool.js +2 -5
  582. package/dist/server/registerWebSourceLocationTool.js +2 -5
  583. package/dist/server/runDerivedOperation.js +15 -3
  584. package/dist/server/sessionAvailabilityPolicy.js +0 -1
  585. package/dist/server/toolRegistrationOptions.js +2 -2
  586. package/dist/server/toolResult.js +75 -51
  587. package/dist/server/toolResultEncoding.js +34 -0
  588. package/dist/windows/WindowsNativeLoader.js +1 -0
  589. package/dist/windows/WindowsOwnedProcess.js +60 -15
  590. package/dist/windows/WindowsPrivateRuntime.js +7 -8
  591. package/install.sh +1 -1
  592. package/native/windows/README.md +3 -1
  593. package/native/windows/build/manifest.json +2 -2
  594. package/native/windows/build/rea-windows-x64.node +0 -0
  595. package/package.json +44 -30
  596. package/scripts/electron-active-hook-boundaries.cjs +18 -20
  597. package/scripts/electron-active-hook.cjs +241 -37
  598. package/scripts/rea.mjs +3 -6
  599. package/skills/reverse-engineer-anything/SKILL.md +12 -3
  600. package/skills/reverse-engineer-anything/references/android-applications.md +6 -3
  601. package/skills/reverse-engineer-anything/references/evidence-workflows.md +8 -4
  602. package/skills/reverse-engineer-anything/references/javascript-applications.md +20 -3
  603. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +9 -0
  604. package/dist/config.js +0 -1
  605. package/dist/contracts/browserCaptureToolInputSchema.js +0 -43
  606. package/dist/contracts/process/processCaptureExample.js +0 -2
  607. package/dist/contracts/toolOutputSchemas.js +0 -2
  608. package/dist/ghidra/GhidraDefaults.js +0 -2
  609. package/dist/main/reload.js +0 -12
  610. package/dist/main/state.js +0 -3
  611. package/dist/server/sessionToolPolicies.js +0 -2
@@ -16,9 +16,19 @@ const ipcEventKinds = new Set([
16
16
  "ipc-renderer-post-message",
17
17
  ]);
18
18
  const events = [];
19
+ // Budget serialized data and estimated retained object/array storage together.
20
+ const retentionBudgetBytes = 16 * 1024 * 1024;
21
+ const snapshotEnvelopeReserveBytes = 1024;
22
+ let estimatedRetainedBytes = 0;
23
+ let serializedBytes = 0;
19
24
  let observed = 0;
20
25
  let observedIpc = 0;
21
26
  let observedRuntime = 0;
27
+ let dropped = 0;
28
+ let droppedIpc = 0;
29
+ let droppedRuntime = 0;
30
+ const droppedFamilies = new Map();
31
+ const droppedRoles = new Map();
22
32
  let sequence = 0;
23
33
  let correlationSequence = 0;
24
34
 
@@ -43,6 +53,73 @@ const shape = (value, depth = 0) => {
43
53
  }
44
54
  };
45
55
 
56
+ // Measure JSON strings without allocating an encoded copy of a caller value.
57
+ const jsonStringBytes = (value) => {
58
+ let bytes = 2;
59
+ for (let index = 0; index < value.length; index += 1) {
60
+ const code = value.charCodeAt(index);
61
+ if (code === 0x22 || code === 0x5c) bytes += 2;
62
+ else if (
63
+ code === 0x08 ||
64
+ code === 0x09 ||
65
+ code === 0x0a ||
66
+ code === 0x0c ||
67
+ code === 0x0d
68
+ )
69
+ bytes += 2;
70
+ else if (code <= 0x1f) bytes += 6;
71
+ else if (code >= 0xd800 && code <= 0xdbff) {
72
+ const next = value.charCodeAt(index + 1);
73
+ if (next >= 0xdc00 && next <= 0xdfff) {
74
+ bytes += 4;
75
+ index += 1;
76
+ } else bytes += 6;
77
+ } else if (code >= 0xdc00 && code <= 0xdfff) bytes += 6;
78
+ else if (code <= 0x7f) bytes += 1;
79
+ else if (code <= 0x7ff) bytes += 2;
80
+ else bytes += 3;
81
+ if (bytes > retentionBudgetBytes) return bytes;
82
+ }
83
+ return bytes;
84
+ };
85
+
86
+ const jsonScalarBytes = (value) => {
87
+ if (value === null) return 4;
88
+ if (typeof value === "string") return jsonStringBytes(value);
89
+ if (typeof value === "boolean") return value ? 4 : 5;
90
+ return String(value).length;
91
+ };
92
+
93
+ const eventFamily = (kind, processTypeValue) => {
94
+ if (kind === "preload" && processTypeValue === "main")
95
+ return "preload-configuration";
96
+ if (kind.startsWith("ipc-renderer"))
97
+ return processTypeValue === "renderer" ? "renderer-ipc" : "ipc";
98
+ return ipcEventKinds.has(kind) ? "ipc" : kind;
99
+ };
100
+
101
+ const noteDropped = (kind, processTypeValue, isIpc) => {
102
+ dropped += 1;
103
+ if (isIpc) droppedIpc += 1;
104
+ else droppedRuntime += 1;
105
+ const family = eventFamily(kind, processTypeValue);
106
+ droppedFamilies.set(family, (droppedFamilies.get(family) ?? 0) + 1);
107
+ if (typeof processTypeValue === "string")
108
+ droppedRoles.set(
109
+ processTypeValue,
110
+ (droppedRoles.get(processTypeValue) ?? 0) + 1,
111
+ );
112
+ if (kind === "window-lifecycle")
113
+ droppedRoles.set("window", (droppedRoles.get("window") ?? 0) + 1);
114
+ if (kind === "web-contents-lifecycle" || kind === "navigation")
115
+ droppedRoles.set(
116
+ "web_contents",
117
+ (droppedRoles.get("web_contents") ?? 0) + 1,
118
+ );
119
+ if (kind === "preload" && processTypeValue === "preload")
120
+ droppedRoles.set("preload", (droppedRoles.get("preload") ?? 0) + 1);
121
+ };
122
+
46
123
  const isAllowedNavigation = (value) => {
47
124
  if (typeof value !== "string") return true;
48
125
  try {
@@ -83,7 +160,8 @@ const frameIdentity = (event) => {
83
160
 
84
161
  const record = (event) => {
85
162
  observed += 1;
86
- if (ipcEventKinds.has(event.kind)) observedIpc += 1;
163
+ const isIpc = ipcEventKinds.has(event.kind);
164
+ if (isIpc) observedIpc += 1;
87
165
  else observedRuntime += 1;
88
166
  const raw = {
89
167
  sequence: ++sequence,
@@ -109,10 +187,15 @@ const record = (event) => {
109
187
  error: false,
110
188
  ...event,
111
189
  };
112
- const argumentShapes = Array.isArray(raw.argument_shapes)
190
+ const shapeGroups = Array.isArray(raw.argument_shape_value_groups)
191
+ ? raw.argument_shape_value_groups.filter(Array.isArray)
192
+ : Array.isArray(raw.argument_shape_values)
193
+ ? [raw.argument_shape_values]
194
+ : [];
195
+ const existingShapes = Array.isArray(raw.argument_shapes)
113
196
  ? raw.argument_shapes
114
197
  : [];
115
- events.push({
198
+ const retainedEvent = {
116
199
  ...raw,
117
200
  correlation_id: raw.correlation_id,
118
201
  event: typeof raw.event === "string" ? raw.event : null,
@@ -121,9 +204,7 @@ const record = (event) => {
121
204
  receiver: typeof raw.receiver === "string" ? raw.receiver : null,
122
205
  frame: typeof raw.frame === "string" ? raw.frame : null,
123
206
  target: typeof raw.target === "string" ? raw.target : null,
124
- argument_shapes: argumentShapes.map((value) =>
125
- typeof value === "string" ? value : "unknown",
126
- ),
207
+ argument_shapes: [],
127
208
  result_shape:
128
209
  typeof raw.result_shape === "string" ? raw.result_shape : null,
129
210
  process_type:
@@ -132,8 +213,91 @@ const record = (event) => {
132
213
  typeof raw.artifact_path === "string" ? raw.artifact_path : null,
133
214
  artifact_sha256:
134
215
  typeof raw.artifact_sha256 === "string" ? raw.artifact_sha256 : null,
135
- });
136
- return events.at(-1);
216
+ };
217
+ delete retainedEvent.argument_shape_values;
218
+ delete retainedEvent.argument_shape_value_groups;
219
+
220
+ // All event values are JSON scalars except argument_shapes. Measure them
221
+ // incrementally so large channels, paths, or shape lists never require a
222
+ // full JSON.stringify temporary allocation before the budget decision.
223
+ let eventBytes = 2;
224
+ let argumentShapeCount = 0;
225
+ const eventKeys = Object.keys(retainedEvent);
226
+ for (let index = 0; index < eventKeys.length; index += 1) {
227
+ const key = eventKeys[index];
228
+ const value = retainedEvent[key];
229
+ if (index > 0) eventBytes += 1;
230
+ eventBytes += jsonStringBytes(key) + 1;
231
+ if (key === "argument_shapes") {
232
+ eventBytes += 2;
233
+ let shapeOverflow = false;
234
+ const countShape = (argument) => {
235
+ const encodedShapeBytes = jsonStringBytes(shape(argument));
236
+ eventBytes += encodedShapeBytes + (argumentShapeCount === 0 ? 0 : 1);
237
+ argumentShapeCount += 1;
238
+ shapeOverflow =
239
+ eventBytes + estimatedRetainedBytes + snapshotEnvelopeReserveBytes >
240
+ retentionBudgetBytes;
241
+ };
242
+ for (const group of shapeGroups)
243
+ for (const argument of group) {
244
+ countShape(argument);
245
+ if (shapeOverflow) break;
246
+ }
247
+ if (shapeOverflow) {
248
+ noteDropped(raw.kind, retainedEvent.process_type, isIpc);
249
+ return null;
250
+ }
251
+ for (const valueShape of existingShapes)
252
+ if (!shapeOverflow) {
253
+ eventBytes +=
254
+ jsonStringBytes(
255
+ typeof valueShape === "string" ? valueShape : "unknown",
256
+ ) + (argumentShapeCount++ === 0 ? 0 : 1);
257
+ shapeOverflow =
258
+ eventBytes + estimatedRetainedBytes + snapshotEnvelopeReserveBytes >
259
+ retentionBudgetBytes;
260
+ }
261
+ if (shapeOverflow) {
262
+ noteDropped(raw.kind, retainedEvent.process_type, isIpc);
263
+ return null;
264
+ }
265
+ } else eventBytes += jsonScalarBytes(value);
266
+ if (
267
+ eventBytes + estimatedRetainedBytes + snapshotEnvelopeReserveBytes >
268
+ retentionBudgetBytes
269
+ ) {
270
+ noteDropped(raw.kind, retainedEvent.process_type, isIpc);
271
+ return null;
272
+ }
273
+ }
274
+ // Reserve room for the only fields mutated after recording: result_shape and
275
+ // error. The shape vocabulary's longest value is "undefined".
276
+ const reservedMutationBytes = retainedEvent.result_shape === null ? 7 : 0;
277
+ // Include one byte for the event-array separator and reserve space for the
278
+ // snapshot's counters and JSON delimiters.
279
+ // One retained event, one defensive snapshot copy, and up to two serialized
280
+ // result views (timeline plus IPC), with per-object and per-array-slot costs.
281
+ const eventEstimateBytes = eventBytes * 3 + 512 + argumentShapeCount * 16;
282
+ const retainedEventBytes = eventEstimateBytes + reservedMutationBytes + 1;
283
+ if (
284
+ estimatedRetainedBytes + retainedEventBytes + snapshotEnvelopeReserveBytes >
285
+ retentionBudgetBytes
286
+ ) {
287
+ noteDropped(raw.kind, retainedEvent.process_type, isIpc);
288
+ return null;
289
+ }
290
+ for (const group of shapeGroups)
291
+ for (const argument of group)
292
+ retainedEvent.argument_shapes.push(shape(argument));
293
+ for (const valueShape of existingShapes)
294
+ retainedEvent.argument_shapes.push(
295
+ typeof valueShape === "string" ? valueShape : "unknown",
296
+ );
297
+ events.push(retainedEvent);
298
+ estimatedRetainedBytes += retainedEventBytes;
299
+ serializedBytes += eventBytes + reservedMutationBytes + 1;
300
+ return retainedEvent;
137
301
  };
138
302
 
139
303
  const recordRuntime = (kind, event, phase, details = {}) =>
@@ -145,7 +309,7 @@ const recordIpc = (kind, channel, args, details = {}) =>
145
309
  return record({
146
310
  kind,
147
311
  channel: typeof channel === "string" ? channel : null,
148
- argument_shapes: values.map((value) => shape(value)),
312
+ argument_shape_values: values,
149
313
  ...details,
150
314
  });
151
315
  })();
@@ -222,7 +386,7 @@ const patchNavigationMethods = (webContents, contentsId) => {
222
386
  webContents[method] = function patchedNavigation(...args) {
223
387
  recordRuntime("navigation", method, "attempted", {
224
388
  target: contentsId,
225
- argument_shapes: args.map((value) => shape(value)),
389
+ argument_shape_values: args,
226
390
  });
227
391
  if (method === "loadURL" && !isAllowedNavigation(args[0])) {
228
392
  recordRuntime("navigation", method, "blocked", {
@@ -354,7 +518,7 @@ const patchWebContents = (webContents, windowId) => {
354
518
  recordRuntime("navigation", event, "blocked", {
355
519
  target: contentsId,
356
520
  sender: windowId,
357
- argument_shapes: args.map((value) => shape(value)),
521
+ argument_shape_values: args,
358
522
  error: true,
359
523
  });
360
524
  return;
@@ -363,7 +527,7 @@ const patchWebContents = (webContents, windowId) => {
363
527
  recordRuntime(kind, event, "observed", {
364
528
  target: contentsId,
365
529
  sender: windowId,
366
- argument_shapes: args.map((value) => shape(value)),
530
+ argument_shape_values: args,
367
531
  error: kind === "error",
368
532
  });
369
533
  if (event === "did-create-window") {
@@ -379,31 +543,44 @@ const patchWebContents = (webContents, windowId) => {
379
543
  boundaries.patchWindowOpenHandler(webContents, contentsId);
380
544
  };
381
545
 
382
- const patchBrowserWindow = (electron) => {
383
- const original = electron.BrowserWindow;
384
- if (typeof original !== "function") return;
385
- electron.BrowserWindow = new Proxy(original, {
386
- construct(target, args, newTarget) {
387
- const window = Reflect.construct(target, args, newTarget);
388
- const targetId = identity(window, "window");
389
- recordRuntime("window-lifecycle", "created", "completed", {
390
- target: targetId,
391
- argument_shapes: args.map((value) => shape(value)),
392
- });
393
- const preload = args[0]?.webPreferences?.preload;
546
+ const patchWindows = (app) => {
547
+ if (app === null || app === undefined) return;
548
+ app.on("browser-window-created", (_event, window) => {
549
+ const targetId = identity(window, "window");
550
+ recordRuntime("window-lifecycle", "created", "completed", {
551
+ target: targetId,
552
+ capture_method: "event-emitter",
553
+ });
554
+ try {
555
+ // Electron 44 separates the preload descriptor from WebPreferences.
556
+ // Read the engine's descriptor, never infer a path from application code.
557
+ const preferences = window.webContents.getLastWebPreferences?.();
558
+ const preload =
559
+ typeof preferences?.preload === "string"
560
+ ? preferences.preload
561
+ : window.webContents._getPreloadScript?.()?.filePath;
394
562
  if (typeof preload === "string")
395
563
  recordRuntime("preload", "configured", "completed", {
396
564
  target: targetId,
397
565
  artifact_path: preload,
398
566
  });
399
- patchEmitter(window, (event) =>
400
- recordRuntime("window-lifecycle", event, "observed", {
567
+ } catch (cause) {
568
+ recordRuntime(
569
+ "error",
570
+ cause instanceof Error ? cause.message : String(cause),
571
+ "failed",
572
+ {
401
573
  target: targetId,
402
- }),
574
+ error: true,
575
+ },
403
576
  );
404
- patchWebContents(window.webContents, targetId);
405
- return window;
406
- },
577
+ }
578
+ patchEmitter(window, (event) =>
579
+ recordRuntime("window-lifecycle", event, "observed", {
580
+ target: targetId,
581
+ }),
582
+ );
583
+ patchWebContents(window.webContents, targetId);
407
584
  });
408
585
  };
409
586
 
@@ -427,7 +604,7 @@ try {
427
604
  "observed",
428
605
  {
429
606
  target: "app",
430
- argument_shapes: args.map((value) => shape(value)),
607
+ argument_shape_values: args,
431
608
  process_type: "main",
432
609
  },
433
610
  ),
@@ -435,33 +612,60 @@ try {
435
612
  patchIpcMain(electron.ipcMain);
436
613
  boundaries.patchIpcRenderer(electron.ipcRenderer);
437
614
  boundaries.patchContextBridge(electron.contextBridge);
438
- patchBrowserWindow(electron);
615
+ patchWindows(electron.app);
439
616
  boundaries.patchUtilityProcess(electron.utilityProcess);
440
617
  boundaries.patchShell(electron.shell);
441
- boundaries.patchSessionManager(electron.session);
618
+ boundaries.patchSessionManager(electron.session, electron.app);
442
619
  boundaries.patchApplicationEffects(electron.app);
443
620
  boundaries.patchNativeAddonLoading();
444
621
  boundaries.patchChildProcess();
445
622
  process.once("uncaughtException", (cause, origin) => {
446
623
  recordRuntime("process-lifecycle", "uncaught-exception", "observed", {
447
- argument_shapes: [shape(cause), shape(origin)],
624
+ argument_shape_values: [cause, origin],
448
625
  error: true,
449
626
  });
450
627
  throw cause;
451
628
  });
452
629
  process.once("unhandledRejection", (reason, promise) => {
453
630
  recordRuntime("process-lifecycle", "unhandled-rejection", "observed", {
454
- argument_shapes: [shape(reason), shape(promise)],
631
+ argument_shape_values: [reason, promise],
455
632
  error: true,
456
633
  });
457
634
  throw reason;
458
635
  });
459
- } catch {
636
+ } catch (cause) {
460
637
  globalThis.__reaElectronActiveHookError = true;
638
+ recordRuntime(
639
+ "error",
640
+ cause instanceof Error ? cause.message : String(cause),
641
+ "failed",
642
+ {
643
+ target: "active-hook-installation",
644
+ error: true,
645
+ },
646
+ );
461
647
  }
462
648
 
463
649
  globalThis.__reaElectronActiveSnapshot = () => ({
464
- events: events.slice(),
650
+ events: events.map((event) => ({
651
+ ...event,
652
+ argument_shapes: [...event.argument_shapes],
653
+ })),
654
+ retention_budget_bytes: retentionBudgetBytes,
655
+ estimated_retained_bytes: estimatedRetainedBytes,
656
+ event_serialized_byte_upper_bound: serializedBytes,
657
+ retained: events.length,
658
+ dropped,
659
+ dropped_ipc: droppedIpc,
660
+ dropped_runtime: droppedRuntime,
661
+ dropped_event_families: [...droppedFamilies].map(([family, count]) => ({
662
+ family,
663
+ count,
664
+ })),
665
+ dropped_event_roles: [...droppedRoles].map(([role, count]) => ({
666
+ role,
667
+ count,
668
+ })),
465
669
  observed,
466
670
  observed_ipc: observedIpc,
467
671
  observed_runtime: observedRuntime,
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,9 +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"
5
+ version: "34"
6
6
  tool_count: 139
7
- catalog_digest: "4c5f67d076baf821b5cb6d6fb2cc0f6c274e96b627b85b892577760a6f71ab1a"
8
7
  ---
9
8
 
10
9
  # REA
@@ -33,7 +32,9 @@ When tools are absent or registration is stale:
33
32
  `npx -y rea-agents@latest doctor --client codex --json`. Substitute the current
34
33
  supported client: `claude_code`, `claude_desktop`, `codex`, `cursor`,
35
34
  `gemini_cli`, `windsurf`, `devin`, `opencode`, `antigravity`, `copilot_cli`,
36
- `commandcode`, or `vscode`. If the client is unknown, use `doctor --json` and
35
+ `commandcode`, `vscode`, `grok_build`, or `grok_bot`. `grok_bot` has no local
36
+ file registration: doctor reports the Grok Bot chat step, and setup does not
37
+ write `mcp.json`. If the client is unknown, use `doctor --json` and
37
38
  inspect its registration results before choosing a setup scope.
38
39
  2. Distinguish the reason. Missing, malformed, or stale registration needs a
39
40
  scoped configuration repair. An aligned registration with no tools in the
@@ -146,6 +147,14 @@ Start with the default result and use its inline Evidence and graph context.
146
147
  Do not repeat an identical tool call. Make a focused follow-up only when the
147
148
  returned result leaves a specific question unanswered.
148
149
 
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.
157
+
149
158
  Every conclusion must distinguish observations, inferences, and unknowns. Cite
150
159
  Evidence IDs, preserve limitations and incomplete coverage, and never imply
151
160
  that static analysis observed execution. Runtime requests execute the declared
@@ -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
@@ -2,10 +2,19 @@
2
2
 
3
3
  Use `analyze_javascript_application` directly on the operator-supplied ASAR or
4
4
  extracted tree. The complete result, graph, and Evidence context are returned
5
- inline. Source-map contents are part of the static analysis. Start from its
5
+ inline when they fit the MCP frame. Source-map contents are part of the static analysis. Start from its
6
6
  findings, coverage, unknowns, and graph context, then make a focused follow-up
7
7
  only when a specific question remains unanswered.
8
8
 
9
+ An oversized response reports `resource_constraint` and
10
+ `details.resource: "transport"`. Reuse
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.
17
+
9
18
  BrowserWindow preferences, preload and contextBridge surfaces, IPC
10
19
  registrations, utility processes, and native binding requests are static syntax
11
20
  observations. Only a unique exact literal IPC channel match supports an inferred
@@ -31,7 +40,13 @@ changed, analyze each version once and then call
31
40
  `compare_javascript_export_shapes` with explicit module paths and export names.
32
41
  Use the returned IDs on the same connection, or complete inline Evidence
33
42
  records, from both analysis calls. Accept variant
34
- 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
35
50
  comparison Evidence and report JSON Pointer changes; dynamic values, ambiguous
36
51
  variants, and incomplete parent-property coverage stay unknown. This is static
37
52
  inference, not runtime behavior. When runtime semantics are needed, run
@@ -43,7 +58,9 @@ through the available browser, Electron, or process workflows.
43
58
  When advertised by the connected server, application trace and compare tools
44
59
  accept complete inline Evidence or
45
60
  `{"kind":"retained-evidence","evidence_id":"ev_<64 lowercase hex characters>"}`
46
- 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
47
64
  a template: replace it with the actual returned ID. Versions before 4.1.0 accept only full
48
65
  inline Evidence. Use the exact ID
49
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.
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,2 +0,0 @@
1
- /** Absolute import, analysis, bridge, and health startup deadline. */
2
- export const GHIDRA_STARTUP_TIMEOUT_MS = 330_000;
@@ -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,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";