rea-agents 6.2.0 → 6.4.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 (636) hide show
  1. package/README.md +24 -23
  2. package/bridge/ghidra/ReaGhidraApplySeeds.java +151 -0
  3. package/bridge/ghidra/ReaGhidraBridge.java +597 -209
  4. package/bridge/ghidra/ReaGhidraNoReturnFix.java +123 -0
  5. package/bridge/hopper_bridge.py +2 -0
  6. package/dist/adb/AdbConfiguration.js +88 -0
  7. package/dist/adb/AdbDeviceOutput.js +186 -0
  8. package/dist/adb/AdbProvider.js +1190 -0
  9. package/dist/adb/AdbShellOutput.js +309 -0
  10. package/dist/android/AndroidTargetSnapshot.js +104 -22
  11. package/dist/android/JadxConfiguration.js +44 -24
  12. package/dist/android/JadxProvider.js +59 -21
  13. package/dist/android/JadxSession.js +51 -9
  14. package/dist/apktool/ApktoolConfiguration.js +84 -0
  15. package/dist/apktool/ApktoolDecodeOutput.js +59 -0
  16. package/dist/apktool/ApktoolProvider.js +506 -0
  17. package/dist/application/AnalysisProvider.js +8 -2
  18. package/dist/application/AppBundleExecutable.js +27 -22
  19. package/dist/application/BinaryTargetResolver.js +85 -19
  20. package/dist/application/BrowserScenarioEvidence.js +2 -2
  21. package/dist/application/CapabilityInventory.js +11 -1
  22. package/dist/application/ClientConfigurationDocument.js +98 -0
  23. package/dist/application/ClientConfigurationFiles.js +91 -0
  24. package/dist/application/ClientRegistrationEnvironment.js +35 -0
  25. package/dist/application/ClientRegistrationStatus.js +75 -27
  26. package/dist/application/DirectAnalysis.js +14 -8
  27. package/dist/application/DirectAnalysisCleanup.js +1 -2
  28. package/dist/application/DirectAnalysisStatus.js +3 -6
  29. package/dist/application/Doctor.js +27 -34
  30. package/dist/application/DoctorDiagnostics.js +1 -1
  31. package/dist/application/EvidenceBundleCommands.js +6 -12
  32. package/dist/application/EvidenceBundleFiles.js +1 -1
  33. package/dist/application/GeminiClientSettings.js +139 -0
  34. package/dist/application/HermesClientHome.js +115 -0
  35. package/dist/application/HopperDownload.js +39 -0
  36. package/dist/application/InvestigationProviders.js +10 -4
  37. package/dist/application/JsonFiles.js +16 -15
  38. package/dist/application/JsonInputFile.js +252 -0
  39. package/dist/application/LinuxHopper.js +6 -13
  40. package/dist/application/MacHopper.js +172 -149
  41. package/dist/application/MipsElfAbiFlags.js +140 -0
  42. package/dist/application/ProviderOperationExecution.js +31 -0
  43. package/dist/application/ReconstructionObligationCandidates.js +16 -3
  44. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -1
  45. package/dist/application/ReferenceSourceImport.js +76 -29
  46. package/dist/application/ReferenceSourceImportEntries.js +18 -9
  47. package/dist/application/ReferenceSourceImportPolicy.js +99 -23
  48. package/dist/application/ReferenceSourceImportTypes.js +30 -22
  49. package/dist/application/ReferenceSourceVcsAdapter.js +145 -30
  50. package/dist/application/RegularFileRead.js +103 -0
  51. package/dist/application/Setup.js +69 -10
  52. package/dist/application/SetupClientConfiguration.js +134 -23
  53. package/dist/application/SetupHost.js +102 -22
  54. package/dist/application/SetupPlan.js +18 -17
  55. package/dist/application/SetupSkill.js +81 -13
  56. package/dist/application/SupportedClients.js +305 -37
  57. package/dist/application/Uninstall.js +172 -8
  58. package/dist/application/UpdateMaintenance.js +23 -23
  59. package/dist/application/Utf8JsonInput.js +71 -0
  60. package/dist/application/WebScriptExportService.js +130 -57
  61. package/dist/application/WebSourceLocationService.js +3 -0
  62. package/dist/application/adb/AdbDeviceAnalysisPort.js +1 -0
  63. package/dist/application/adb/AdbDeviceAnalysisService.js +13 -0
  64. package/dist/application/analysisView/AnalysisViewService.js +40 -2
  65. package/dist/application/android/AndroidAnalysisService.js +1 -1
  66. package/dist/application/apktool/ApktoolResourceAnalysisPort.js +1 -0
  67. package/dist/application/apktool/ApktoolResourceAnalysisService.js +13 -0
  68. package/dist/application/binary/AnalysisClientCleanup.js +0 -24
  69. package/dist/application/binary/AnalysisSnapshotCache.js +5 -4
  70. package/dist/application/binary/BinarySession.js +18 -1
  71. package/dist/application/binary/BinarySessionOpen.js +9 -1
  72. package/dist/application/binaryDiagnostics/BinaryLayoutService.js +2 -1
  73. package/dist/application/binaryDiagnostics/PeResourcesPort.js +1 -0
  74. package/dist/application/binaryDiagnostics/PeResourcesService.js +111 -0
  75. package/dist/application/binaryDiagnostics/RecordedCrashService.js +2 -1
  76. package/dist/application/evm/EvmInterfaceService.js +3 -0
  77. package/dist/application/firmware/FirmwareAnalysisService.js +3 -0
  78. package/dist/application/investigation/InspectEvidenceBundle.js +18 -0
  79. package/dist/application/javascript/ElectronActiveEvidence.js +2 -2
  80. package/dist/application/javascript/ElectronBoundaryAnalysis.js +2 -2
  81. package/dist/application/javascript/ElectronBoundaryGraphContext.js +3 -2
  82. package/dist/application/javascript/ElectronBoundaryGraphIpc.js +2 -2
  83. package/dist/application/javascript/ElectronBoundaryGraphNative.js +20 -3
  84. package/dist/application/javascript/ElectronBoundaryGraphWindows.js +3 -3
  85. package/dist/application/javascript/JavaScriptApplicationEvidence.js +1 -0
  86. package/dist/application/javascript/JavaScriptApplicationEvidenceGraph.js +107 -46
  87. package/dist/application/javascript/JavaScriptApplicationService.js +23 -11
  88. package/dist/application/javascript/JavaScriptApplicationWorkflowEvidence.js +5 -6
  89. package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +59 -45
  90. package/dist/application/javascript/JavaScriptArtifactAnalysis.js +171 -36
  91. package/dist/application/javascript/JavaScriptArtifactGraphAccumulator.js +14 -16
  92. package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +74 -36
  93. package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +4 -3
  94. package/dist/application/javascript/JavaScriptArtifactGraphContext.js +11 -5
  95. package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +53 -42
  96. package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +92 -10
  97. package/dist/application/javascript/JavaScriptArtifactPathResolution.js +293 -238
  98. package/dist/application/javascript/JavaScriptArtifactReconstruction.js +120 -28
  99. package/dist/application/javascript/JavaScriptArtifactReconstructionInput.js +4 -0
  100. package/dist/application/javascript/JavaScriptJsonModules.js +2 -2
  101. package/dist/application/javascript/JavaScriptModuleRelationships.js +10 -20
  102. package/dist/application/javascript/JavaScriptRecoveryService.js +3 -0
  103. package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +11 -27
  104. package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +11 -5
  105. package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +206 -66
  106. package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +1 -1
  107. package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +18 -23
  108. package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +5 -2
  109. package/dist/application/javascript/JavaScriptSemanticGraphEvidence.js +1 -1
  110. package/dist/application/javascript/JavaScriptSemanticGraphFingerprintProjection.js +2 -2
  111. package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +7 -5
  112. package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +6 -4
  113. package/dist/application/javascript/JavaScriptSemanticGraphProjection.js +4 -4
  114. package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +1 -1
  115. package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +29 -15
  116. package/dist/application/javascript/JavaScriptSemanticTraceService.js +15 -10
  117. package/dist/application/jeb/JebAnalysisPort.js +1 -0
  118. package/dist/application/jeb/JebAnalysisService.js +13 -0
  119. package/dist/application/managed/ManagedApplicationGraphService.js +1 -1
  120. package/dist/application/native/NativeCallRoutes.js +2 -4
  121. package/dist/application/native/NativeUiActionTrace.js +16 -8
  122. package/dist/application/native/NativeValueTrace.js +23 -6
  123. package/dist/application/process/ProcessCli.js +25 -20
  124. package/dist/artifacts/ArtifactPaths.js +129 -8
  125. package/dist/artifacts/ArtifactProvider.js +34 -31
  126. package/dist/artifacts/ArtifactProviderMetadata.js +1 -4
  127. package/dist/artifacts/ArtifactReader.js +23 -0
  128. package/dist/artifacts/ArtifactResourceScope.js +100 -0
  129. package/dist/artifacts/AsarArtifactReader.js +218 -80
  130. package/dist/artifacts/AsarHeader.js +24 -0
  131. package/dist/artifacts/DirectoryArtifactReader.js +168 -65
  132. package/dist/artifacts/MachOSliceArtifactReader.js +116 -39
  133. package/dist/artifacts/NativeDmgArtifactReader.js +179 -87
  134. package/dist/artifacts/NativeDmgOwnership.js +109 -0
  135. package/dist/artifacts/SafeOutputTree.js +245 -70
  136. package/dist/artifacts/SafeOutputTreeCleanup.js +45 -0
  137. package/dist/artifacts/SafeOutputTreeCreationFailure.js +20 -0
  138. package/dist/artifacts/SafeOutputTreeIdentity.js +42 -0
  139. package/dist/artifacts/SafeOutputTreeReadback.js +33 -0
  140. package/dist/artifacts/ZipArtifactReader.js +77 -27
  141. package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +58 -18
  142. package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +62 -24
  143. package/dist/artifacts/apple/KeyedArchiveReader.js +76 -49
  144. package/dist/artifacts/apple/MachoLoadCommandReader.js +36 -6
  145. package/dist/artifacts/extraction/ArtifactExtraction.js +134 -92
  146. package/dist/artifacts/inventory/ArtifactGraphConstruction.js +116 -50
  147. package/dist/artifacts/inventory/ArtifactInventory.js +5 -4
  148. package/dist/artifacts/inventory/classify.js +87 -25
  149. package/dist/artifacts/inventory/hashStableRootArtifact.js +70 -0
  150. package/dist/artifacts/inventory/reader.js +13 -5
  151. package/dist/artifacts/inventory/scanCanonical.js +73 -30
  152. package/dist/artifacts/inventory/scanReader.js +43 -20
  153. package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +72 -28
  154. package/dist/artifacts/javascript/JavaScriptSourceAnalysis.js +3 -0
  155. package/dist/browser/BrowserScenarioPartialObservation.js +8 -2
  156. package/dist/browser/BrowserScenarioSecrets.js +52 -37
  157. package/dist/browser/CdpBrowserProvider.js +9 -3
  158. package/dist/browser/CdpCaptureDocuments.js +40 -6
  159. package/dist/browser/CdpCaptureDomSvg.js +210 -0
  160. package/dist/browser/CdpCaptureEventBodyShapes.js +4 -8
  161. package/dist/browser/CdpCaptureEventHandlers.js +26 -9
  162. package/dist/browser/CdpCaptureEvents.js +4 -9
  163. package/dist/browser/CdpCaptureStorageFingerprints.js +3 -3
  164. package/dist/browser/CdpConnection.js +22 -5
  165. package/dist/browser/CdpElectronInspection.js +2 -2
  166. package/dist/browser/CdpElectronProvider.js +4 -3
  167. package/dist/browser/CdpElectronScripts.js +2 -2
  168. package/dist/browser/CdpPageCapture.js +1 -1
  169. package/dist/browser/CdpTargetSession.js +30 -34
  170. package/dist/browser/CdpWebMcpDiscovery.js +48 -23
  171. package/dist/browser/ElectronFileScope.js +99 -9
  172. package/dist/browser/PlaywrightBrowserScenarioProvider.js +63 -7
  173. package/dist/browser/PlaywrightElectronActiveProvider.js +11 -6
  174. package/dist/browser/PlaywrightScenarioArtifacts.js +5 -5
  175. package/dist/browser/PlaywrightScenarioBrowser.js +208 -43
  176. package/dist/browser/PlaywrightScenarioSession.js +130 -65
  177. package/dist/browser/PlaywrightScenarioStorage.js +507 -0
  178. package/dist/browser/PngVisualDiff.js +198 -29
  179. package/dist/browser/WebSourceMapFetcher.js +35 -9
  180. package/dist/browser/assets/LocalWebScriptArtifacts.js +3 -1
  181. package/dist/browser/assets/PublishWebScripts.js +75 -20
  182. package/dist/browser/assets/ScenarioScriptCapture.js +8 -12
  183. package/dist/browser/assets/WebArtifactReads.js +23 -1
  184. package/dist/browser/assets/WebSourceLocationArtifacts.js +1 -0
  185. package/dist/browser/execution/CdpExecutionCapture.js +3 -3
  186. package/dist/browser/execution/CdpPreciseCoverage.js +5 -8
  187. package/dist/browser/history/HarCapture.js +14 -0
  188. package/dist/browser/history/HarCaptureProcess.js +2 -10
  189. package/dist/browser/history/MitmproxyCaptureAdapter.js +3 -1
  190. package/dist/browser/modules/WebModuleArtifacts.js +1 -0
  191. package/dist/cli/adbCommands.js +337 -0
  192. package/dist/cli/analysisViewCommands.js +39 -1
  193. package/dist/cli/apktoolCommands.js +53 -0
  194. package/dist/cli/artifactCommands.js +8 -11
  195. package/dist/cli/binaryDiagnosticsCommands.js +19 -1
  196. package/dist/cli/browserAdvancedCommands.js +65 -36
  197. package/dist/cli/coreAnalysisCommands.js +2 -2
  198. package/dist/cli/coreBinaryCommands.js +12 -13
  199. package/dist/cli/coreNativeCommands.js +1 -14
  200. package/dist/cli/electronCommands.js +14 -10
  201. package/dist/cli/evmCommands.js +13 -4
  202. package/dist/cli/firmwareCommands.js +7 -2
  203. package/dist/cli/javascriptApplicationAnalysis.js +19 -13
  204. package/dist/cli/javascriptRecoveryCommands.js +22 -15
  205. package/dist/cli/jebCommands.js +99 -0
  206. package/dist/cli/jsonOutput.js +12 -4
  207. package/dist/cli/referenceSourceImportStatus.js +7 -0
  208. package/dist/cli/setupCommands.js +15 -3
  209. package/dist/cli/streamedJsonOutput.js +83 -4
  210. package/dist/cli/utilityCommands.js +68 -22
  211. package/dist/cli/webScriptCommands.js +20 -1
  212. package/dist/cli/webSourceLocationCommands.js +21 -9
  213. package/dist/cli.js +11 -2
  214. package/dist/cliBrowserScenarioCommands.js +2 -1
  215. package/dist/cliCommandNames.js +32 -0
  216. package/dist/cliJsonInput.js +47 -34
  217. package/dist/cliObservationOptions.js +7 -0
  218. package/dist/composition/adb.js +3 -0
  219. package/dist/composition/apktool.js +3 -0
  220. package/dist/composition/auxiliaryAnalysisProviders.js +5 -4
  221. package/dist/composition/binaryDiagnostics.js +4 -0
  222. package/dist/composition/browserScenario.js +2 -2
  223. package/dist/composition/directAnalysis.js +14 -7
  224. package/dist/composition/javascriptAnalysisWorkerProcess.js +48 -0
  225. package/dist/composition/jeb.js +6 -0
  226. package/dist/config/environment.js +10 -0
  227. package/dist/config/ghidraLanguageOverride.js +9 -0
  228. package/dist/config/mcpInputSchemaProfile.js +27 -0
  229. package/dist/config/parseConfig.js +28 -1
  230. package/dist/contracts/adb/adbToolContracts.js +353 -0
  231. package/dist/contracts/advertisedInputExamples.js +48 -0
  232. package/dist/contracts/analysisDetail.js +10 -0
  233. package/dist/contracts/analysisViewToolContracts.js +17 -2
  234. package/dist/contracts/apktool/apktoolToolContracts.js +33 -0
  235. package/dist/contracts/artifactComparisonExample.js +5 -5
  236. package/dist/contracts/artifactToolContracts.js +8 -5
  237. package/dist/contracts/browserToolContracts.js +1 -1
  238. package/dist/contracts/compactInputSchema.js +256 -0
  239. package/dist/contracts/errorSchemas.js +3 -1
  240. package/dist/contracts/functionComparisonExample.js +8 -0
  241. package/dist/contracts/functionWorkflowToolContracts.js +1 -1
  242. package/dist/contracts/inputSchemaPresentation.js +104 -13
  243. package/dist/contracts/javascript/electronToolContracts.js +16 -3
  244. package/dist/contracts/javascript/javascriptApplicationWorkflowExamples.js +3 -2
  245. package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +6 -3
  246. package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +1 -1
  247. package/dist/contracts/javascript/javascriptRuntimeReconciliationExample.js +8 -7
  248. package/dist/contracts/jeb/jebToolContracts.js +64 -0
  249. package/dist/contracts/managed/managedToolContracts.js +3 -2
  250. package/dist/contracts/mobileApplicationGraphExamples.js +5 -5
  251. package/dist/contracts/native/binaryDiagnosticsToolContracts.js +25 -3
  252. package/dist/contracts/native/nativeToolContracts.js +1 -1
  253. package/dist/contracts/officialToolContracts.js +5 -5
  254. package/dist/contracts/sessionLifecycleInputs.js +4 -3
  255. package/dist/contracts/sessionStatusContract.js +3 -2
  256. package/dist/contracts/sessionToolContracts.js +5 -4
  257. package/dist/contracts/sessionToolSchemas.js +9 -4
  258. package/dist/contracts/toolContractExamples.js +6 -0
  259. package/dist/contracts/toolContractTypes.js +3 -0
  260. package/dist/contracts/toolContracts.js +6 -0
  261. package/dist/contracts/toolEffects.js +167 -0
  262. package/dist/contracts/toolOutputSchemaGroups.js +7 -5
  263. package/dist/contracts/toolOutputSchemaPrimitives.js +2 -5
  264. package/dist/contracts/toolSchemaMetadata.js +82 -7
  265. package/dist/domain/adb/adbDeviceAnalysis.js +583 -0
  266. package/dist/domain/analysisErrorBase.js +5 -0
  267. package/dist/domain/analysisErrorCleanup.js +29 -0
  268. package/dist/domain/analysisErrorPresentation.js +18 -4
  269. package/dist/domain/analysisErrorProjection.js +4 -1
  270. package/dist/domain/analysisSnapshot.js +5 -2
  271. package/dist/domain/analysisView/analysisView.js +53 -5
  272. package/dist/domain/analysisView/binaryLayoutView.js +2 -0
  273. package/dist/domain/analysisView/javascriptApplicationView.js +2 -0
  274. package/dist/domain/analysisView/nativeFunctionView.js +155 -0
  275. package/dist/domain/android/androidApplication.js +25 -20
  276. package/dist/domain/android/androidPartialObservation.js +36 -0
  277. package/dist/domain/apktool/apktoolResourceAnalysis.js +77 -0
  278. package/dist/domain/apple/appleApplication.js +40 -23
  279. package/dist/domain/apple/appleBundleAnatomy.js +95 -28
  280. package/dist/domain/apple/dyldPaths.js +9 -1
  281. package/dist/domain/apple/dylibResolution.js +3 -3
  282. package/dist/domain/apple/interfaceBuilderGraph.js +22 -19
  283. package/dist/domain/apple/interfaceBuilderKeyedArchive.js +10 -1
  284. package/dist/domain/artifactComparison.js +39 -11
  285. package/dist/domain/artifactGraph.js +6 -4
  286. package/dist/domain/artifactIdentity.js +37 -9
  287. package/dist/domain/artifactInspection.js +10 -50
  288. package/dist/domain/artifactIntegrityPolicy.js +10 -0
  289. package/dist/domain/artifactInventoryEvidence.js +16 -17
  290. package/dist/domain/artifactPathSyntax.js +1 -1
  291. package/dist/domain/binaryTarget.js +16 -0
  292. package/dist/domain/binaryTargetTypes.js +8 -1
  293. package/dist/domain/browserCompleteness.js +3 -2
  294. package/dist/domain/browserObservationSchemas.js +8 -4
  295. package/dist/domain/browserScenarioCaptureValues.js +2 -2
  296. package/dist/domain/browserScenarioNormalization.js +3 -3
  297. package/dist/domain/browserScenarioValues.js +3 -2
  298. package/dist/domain/callPath.js +8 -10
  299. package/dist/domain/canonicalDigest.js +7 -1
  300. package/dist/domain/canonicalJsonDigestSteps.js +34 -12
  301. package/dist/domain/canonicalOrdering.js +1 -13
  302. package/dist/domain/changedBehavior.js +2 -3
  303. package/dist/domain/compactStringIdentity.js +9 -0
  304. package/dist/domain/comparisonSemantics.js +0 -5
  305. package/dist/domain/digests.js +0 -3
  306. package/dist/domain/evidence.js +12 -6
  307. package/dist/domain/evidenceBundle.js +51 -33
  308. package/dist/domain/evidenceRecordSummary.js +144 -0
  309. package/dist/domain/firmware/firmwareAnalysis.js +4 -3
  310. package/dist/domain/functionComparison.js +2 -1
  311. package/dist/domain/functionComparisonNormalization.js +4 -3
  312. package/dist/domain/functionComparisonResults.js +2 -2
  313. package/dist/domain/functionDossierEvidence.js +2 -1
  314. package/dist/domain/hopperValues.js +11 -15
  315. package/dist/domain/inputIssueProjection.js +16 -1
  316. package/dist/domain/javascript/electronActiveObservation.js +4 -3
  317. package/dist/domain/javascript/electronStaticAnalysisBrowser.js +14 -15
  318. package/dist/domain/javascript/electronStaticAnalysisIpc.js +20 -21
  319. package/dist/domain/javascript/electronStaticAnalysisNative.js +73 -41
  320. package/dist/domain/javascript/electronStaticAnalysisValues.js +24 -4
  321. package/dist/domain/javascript/javascriptAnalysisResourceControls.js +45 -0
  322. package/dist/domain/javascript/javascriptApplicationAnalysis.js +6 -1
  323. package/dist/domain/javascript/javascriptApplicationChangeGraph.js +18 -14
  324. package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +4 -0
  325. package/dist/domain/javascript/javascriptApplicationGraph.js +91 -28
  326. package/dist/domain/javascript/javascriptApplicationProjectionResources.js +35 -0
  327. package/dist/domain/javascript/javascriptApplicationVersionComparison.js +4 -4
  328. package/dist/domain/javascript/javascriptApplicationVersionComparisonSchemas.js +37 -22
  329. package/dist/domain/javascript/javascriptApplicationVersionItems.js +72 -45
  330. package/dist/domain/javascript/javascriptApplicationVersionKeys.js +16 -8
  331. package/dist/domain/javascript/javascriptAstFingerprint.js +60 -33
  332. package/dist/domain/javascript/javascriptAstValues.js +54 -0
  333. package/dist/domain/javascript/javascriptElectronMemberWrites.js +50 -0
  334. package/dist/domain/javascript/javascriptExportShapeComparison.js +3 -2
  335. package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +31 -23
  336. package/dist/domain/javascript/javascriptExportShapeSelection.js +2 -2
  337. package/dist/domain/javascript/javascriptExportShapeVariants.js +3 -2
  338. package/dist/domain/javascript/javascriptFeatureSeed.js +5 -3
  339. package/dist/domain/javascript/javascriptFeatureTrace.js +7 -6
  340. package/dist/domain/javascript/javascriptFeatureTraceSchemas.js +17 -9
  341. package/dist/domain/javascript/javascriptFeatureTraversal.js +4 -4
  342. package/dist/domain/javascript/javascriptModuleSemanticIr.js +15 -0
  343. package/dist/domain/javascript/javascriptNativeHandoff.js +12 -7
  344. package/dist/domain/javascript/javascriptRpcEndpoints.js +253 -0
  345. package/dist/domain/javascript/javascriptRuntimeLoadState.js +1 -3
  346. package/dist/domain/javascript/javascriptRuntimeObservation.js +8 -5
  347. package/dist/domain/javascript/javascriptRuntimeReconciliation.js +12 -6
  348. package/dist/domain/javascript/javascriptRuntimeReconciliationActive.js +9 -8
  349. package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +212 -0
  350. package/dist/domain/javascript/javascriptRuntimeReconciliationGraph.js +12 -6
  351. package/dist/domain/javascript/javascriptRuntimeReconciliationInputValidation.js +28 -0
  352. package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +5 -5
  353. package/dist/domain/javascript/javascriptRuntimeReconciliationParsing.js +12 -223
  354. package/dist/domain/javascript/javascriptRuntimeReconciliationResult.js +2 -2
  355. package/dist/domain/javascript/javascriptRuntimeReconciliationRuntime.js +15 -4
  356. package/dist/domain/javascript/javascriptRuntimeReconciliationSchemas.js +2 -2
  357. package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +15 -17
  358. package/dist/domain/javascript/javascriptSemanticAnalysis.js +379 -30
  359. package/dist/domain/javascript/javascriptSemanticCallResolution.js +9 -7
  360. package/dist/domain/javascript/javascriptSemanticCallableResults.js +42 -0
  361. package/dist/domain/javascript/javascriptSemanticCalls.js +8 -1
  362. package/dist/domain/javascript/javascriptSemanticChildProcesses.js +2 -2
  363. package/dist/domain/javascript/javascriptSemanticCoverage.js +20 -0
  364. package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +7 -9
  365. package/dist/domain/javascript/javascriptSemanticDataEffects.js +4 -11
  366. package/dist/domain/javascript/javascriptSemanticDerivedAnalysis.js +15 -4
  367. package/dist/domain/javascript/javascriptSemanticFileProjection.js +1 -0
  368. package/dist/domain/javascript/javascriptSemanticFingerprints.js +43 -42
  369. package/dist/domain/javascript/javascriptSemanticGraph.js +205 -52
  370. package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +21 -11
  371. package/dist/domain/javascript/javascriptSemanticIr.js +0 -4
  372. package/dist/domain/javascript/javascriptSemanticIterationSources.js +139 -0
  373. package/dist/domain/javascript/javascriptSemanticMemberMutations.js +774 -136
  374. package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +190 -0
  375. package/dist/domain/javascript/javascriptSemanticMutationValues.js +98 -41
  376. package/dist/domain/javascript/javascriptSemanticObjectReferences.js +381 -0
  377. package/dist/domain/javascript/javascriptSemanticObjects.js +9 -7
  378. package/dist/domain/javascript/javascriptSemanticPrimitives.js +7 -2
  379. package/dist/domain/javascript/javascriptSemanticProjection.js +72 -28
  380. package/dist/domain/javascript/javascriptSemanticPromises.js +15 -21
  381. package/dist/domain/javascript/javascriptSemanticPropertyPaths.js +100 -0
  382. package/dist/domain/javascript/javascriptSemanticProvenance.js +3 -3
  383. package/dist/domain/javascript/javascriptSemanticQuery.js +33 -29
  384. package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +4 -5
  385. package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +8 -9
  386. package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +16 -10
  387. package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +219 -0
  388. package/dist/domain/javascript/javascriptSemanticReturns.js +34 -48
  389. package/dist/domain/javascript/javascriptSemanticState.js +22 -2
  390. package/dist/domain/javascript/javascriptSemanticTraversal.js +25 -2
  391. package/dist/domain/javascript/javascriptSemanticValues.js +169 -30
  392. package/dist/domain/javascript/javascriptSourceAnalysis.js +1 -0
  393. package/dist/domain/javascript/javascriptSourceMapPaths.js +11 -1
  394. package/dist/domain/javascript/javascriptSourceParser.js +34 -9
  395. package/dist/domain/javascript/javascriptStaticAnalysis.js +29 -17
  396. package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +13 -12
  397. package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +49 -5
  398. package/dist/domain/javascript/javascriptStaticAnalysisFindings.js +8 -4
  399. package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +26 -15
  400. package/dist/domain/javascript/javascriptStaticAnalysisState.js +1 -0
  401. package/dist/domain/javascript/sourceToBundleComparison.js +7 -5
  402. package/dist/domain/javascript/sourceToBundleSignals.js +7 -7
  403. package/dist/domain/jeb/jebAnalysis.js +114 -0
  404. package/dist/domain/jsonSerialization.js +109 -55
  405. package/dist/domain/jsonShape.js +69 -31
  406. package/dist/domain/jsonValue.js +3 -0
  407. package/dist/domain/localPath.js +10 -4
  408. package/dist/domain/managed/managedApplicationGraph.js +47 -6
  409. package/dist/domain/managed/managedApplicationGraphCoverage.js +8 -2
  410. package/dist/domain/managed/managedApplicationGraphNodes.js +94 -59
  411. package/dist/domain/managed/managedArtifact.js +1 -0
  412. package/dist/domain/managed/managedInspectionEvidence.js +13 -0
  413. package/dist/domain/managed/managedMemberComparisonMatch.js +6 -7
  414. package/dist/domain/native/nativeAotPe.js +1408 -0
  415. package/dist/domain/native/nativeCallObservation.js +2 -4
  416. package/dist/domain/native/nativeInstruction.js +21 -0
  417. package/dist/domain/native/nativeMetadataRecovery.js +79 -6
  418. package/dist/domain/native/nativeValueFlow.js +5 -11
  419. package/dist/domain/native/objcSwiftMetadata.js +15 -17
  420. package/dist/domain/native/peResources.js +94 -0
  421. package/dist/domain/nativeConvention.js +33 -0
  422. package/dist/domain/process/processCapture.js +102 -11
  423. package/dist/domain/process/processCaptureCoverage.js +8 -5
  424. package/dist/domain/process/processCaptureExample.js +67 -0
  425. package/dist/domain/process/processCaptureValidation.js +83 -3
  426. package/dist/domain/process/processComparison.js +0 -23
  427. package/dist/domain/process/processScenario.js +62 -10
  428. package/dist/domain/process/processTraceEvaluation.js +4 -4
  429. package/dist/domain/process/processTraceSpecification.js +1 -3
  430. package/dist/domain/propertyListKeys.js +3 -1
  431. package/dist/domain/providerCleanupError.js +6 -2
  432. package/dist/domain/reconstructionCoverage.js +2 -1
  433. package/dist/domain/reconstructionUnknowns.js +4 -3
  434. package/dist/domain/reconstructionVerification.js +3 -2
  435. package/dist/domain/referenceSourceGraph.js +32 -23
  436. package/dist/domain/referenceSourceImportParsing.js +40 -48
  437. package/dist/domain/referenceSourcePathIdentity.js +22 -0
  438. package/dist/domain/referenceSourceRequireBindings.js +137 -0
  439. package/dist/domain/residualUnknown.js +3 -2
  440. package/dist/domain/staticRuntimeCorrelation.js +2 -1
  441. package/dist/domain/swiftSymbolClassification.js +6 -1
  442. package/dist/domain/symbolAnalysis.js +17 -2
  443. package/dist/domain/unicodeCodePointOrder.js +6 -0
  444. package/dist/domain/webBundleAnalyzerInspection.js +23 -3
  445. package/dist/domain/webCaptureDiff.js +170 -30
  446. package/dist/domain/webCaptureDiffSchemas.js +2 -8
  447. package/dist/domain/webInventory.js +3 -2
  448. package/dist/domain/webMcpDiscovery.js +4 -3
  449. package/dist/domain/webScriptExport.js +1 -1
  450. package/dist/domain/webScriptExportError.js +10 -4
  451. package/dist/domain/webScriptExportPlan.js +7 -13
  452. package/dist/domain/zipPackageFormat.js +4 -1
  453. package/dist/domain/zodCollectionSteps.js +24 -0
  454. package/dist/dotnet/ManagedArtifactInspector.js +55 -43
  455. package/dist/dotnet/ManagedDecodeBudget.js +80 -0
  456. package/dist/dotnet/ManagedMemberInspector.js +13 -6
  457. package/dist/dotnet/ManagedMemberInspectorCore.js +2 -2
  458. package/dist/dotnet/ManagedMemberInstructionDecoder.js +5 -4
  459. package/dist/dotnet/ManagedMemberRows.js +9 -4
  460. package/dist/dotnet/ManagedMetadataHeaps.js +15 -5
  461. package/dist/dotnet/ManagedMetadataInventoryRows.js +20 -11
  462. package/dist/dotnet/ManagedMetadataLayout.js +10 -4
  463. package/dist/dotnet/ManagedMethodBodyReader.js +8 -3
  464. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +3 -2
  465. package/dist/dotnet/ManagedNativeBoundaryInspector.js +49 -34
  466. package/dist/dotnet/ManagedPeReader.js +41 -25
  467. package/dist/dotnet/ManagedReaderFailure.js +2 -1
  468. package/dist/dotnet/ManagedStaticProvider.js +65 -31
  469. package/dist/dotnet/ManagedStaticProviderMetadata.js +1 -4
  470. package/dist/evaluation/AgentEvaluationReport.js +9 -5
  471. package/dist/evaluation/CodexAgentEval.js +43 -13
  472. package/dist/evm/EvmoleFailures.js +0 -2
  473. package/dist/evm/EvmoleInterfaceProvider.js +67 -2
  474. package/dist/filesystem/OwnedDirectoryHandle.js +29 -0
  475. package/dist/filesystem/OwnedFileHandle.js +36 -0
  476. package/dist/filesystem/RegularFile.js +73 -0
  477. package/dist/filesystem/StableFileHash.js +46 -0
  478. package/dist/filesystem/readFileHandleChunks.js +26 -0
  479. package/dist/firmware/FirmwareCommand.js +25 -3
  480. package/dist/firmware/FirmwareFiles.js +23 -8
  481. package/dist/firmware/FirmwareProvider.js +156 -32
  482. package/dist/firmware/FirmwarePublication.js +24 -3
  483. package/dist/firmware/FirmwareRelease.js +1 -0
  484. package/dist/generatedPackageMetadata.js +2 -2
  485. package/dist/ghidra/GhidraAnalysisProfile.js +55 -4
  486. package/dist/ghidra/GhidraAnalysisSeeds.js +211 -0
  487. package/dist/ghidra/GhidraClient.js +90 -8
  488. package/dist/ghidra/GhidraDiagnostics.js +11 -8
  489. package/dist/ghidra/GhidraFunctionValues.js +26 -2
  490. package/dist/ghidra/GhidraInstallation.js +111 -10
  491. package/dist/ghidra/GhidraInventoryValues.js +23 -1
  492. package/dist/ghidra/GhidraLanguageCatalog.js +99 -0
  493. package/dist/ghidra/GhidraLauncher.js +123 -58
  494. package/dist/ghidra/GhidraLoadImageAttest.js +49 -2
  495. package/dist/ghidra/GhidraMipsProfile.js +79 -0
  496. package/dist/ghidra/GhidraProvider.js +57 -9
  497. package/dist/ghidra/GhidraProviderCapabilities.js +18 -8
  498. package/dist/ghidra/GhidraProviderClient.js +282 -21
  499. package/dist/ghidra/GhidraSessionValues.js +9 -2
  500. package/dist/hopper/HopperAnalysisProfile.js +2 -0
  501. package/dist/hopper/HopperCleanup.js +1 -1
  502. package/dist/hopper/HopperClient.js +15 -6
  503. package/dist/hopper/HopperMachOImage.js +2 -0
  504. package/dist/hopper/HopperProvider.js +13 -2
  505. package/dist/ida/IdaOperationRunner.js +10 -2
  506. package/dist/ida/IdaProvider.js +7 -0
  507. package/dist/ida/IdaSessionClient.js +7 -3
  508. package/dist/ida/IdaWorkspace.js +4 -2
  509. package/dist/inspector/JavaScriptRuntimeScope.js +9 -5
  510. package/dist/inspector/V8InspectorCaptureProjection.js +46 -13
  511. package/dist/inspector/V8InspectorProvider.js +60 -8
  512. package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +326 -0
  513. package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +520 -0
  514. package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +63 -0
  515. package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +521 -0
  516. package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +116 -0
  517. package/dist/javascript/recovery/RecoveryFiles.js +18 -7
  518. package/dist/javascript/recovery/WakaruCommand.js +22 -9
  519. package/dist/javascript/recovery/WakaruExecution.js +11 -7
  520. package/dist/javascript/recovery/WakaruProvider.js +139 -16
  521. package/dist/javascript/recovery/WakaruPublication.js +14 -4
  522. package/dist/javascript/recovery/WakaruRelease.js +10 -3
  523. package/dist/javascript/recovery/WakaruReport.js +12 -7
  524. package/dist/javascript/recovery/WakaruVersion.js +24 -0
  525. package/dist/javascript/sourceMaps/SourceMapCommand.js +16 -3
  526. package/dist/javascript/sourceMaps/SourceMapDecoder.js +63 -7
  527. package/dist/javascript/sourceMaps/SourceMapFormat.js +15 -4
  528. package/dist/jeb/JebMcpConnection.js +179 -0
  529. package/dist/jeb/JebMcpEndpoint.js +40 -0
  530. package/dist/jeb/JebProvider.js +299 -0
  531. package/dist/main/shutdown.js +76 -32
  532. package/dist/main/transport.js +1 -1
  533. package/dist/mcpDoctor.js +15 -6
  534. package/dist/native/AppleDispatchCoverage.js +25 -12
  535. package/dist/native/AppleDispatchMetadata.js +14 -7
  536. package/dist/native/AppleMachoFixups.js +71 -15
  537. package/dist/native/AppleMachoSelection.js +23 -3
  538. package/dist/native/AppleObjcDispatchFacets.js +3 -3
  539. package/dist/native/AppleObjcProperties.js +17 -7
  540. package/dist/native/LldbCallTracer.js +241 -75
  541. package/dist/native/NativeMacOSProvider.js +100 -20
  542. package/dist/native/NativeMacOSProviderMetadata.js +1 -2
  543. package/dist/native/NativeMachoInspection.js +11 -7
  544. package/dist/native/NativeUiHelperRuntime.js +6 -1
  545. package/dist/native/NativeUiObservation.js +4 -3
  546. package/dist/native/pe/PeResourceLayout.js +120 -0
  547. package/dist/native/pe/PeResourceParser.js +286 -0
  548. package/dist/native/pe/PeResourcesProvider.js +63 -0
  549. package/dist/process/BoundedFileBytes.js +30 -7
  550. package/dist/process/DarwinProcessRunTokenReader.js +8 -3
  551. package/dist/process/OwnedCommand.js +4 -3
  552. package/dist/process/ProcessOwnership.js +104 -112
  553. package/dist/process/ProcessOwnershipObservation.js +104 -51
  554. package/dist/process/ProcessOwnershipProcessTree.js +4 -4
  555. package/dist/process/ProcessRunTokenObservations.js +48 -0
  556. package/dist/process/ProviderDiagnosticRedaction.js +17 -0
  557. package/dist/process/ProviderProcess.js +4 -3
  558. package/dist/process/capture/FilesystemSnapshot.js +116 -22
  559. package/dist/process/capture/ProcessCaptureLifecycle.js +363 -86
  560. package/dist/process/capture/ProcessCaptureProgress.js +62 -0
  561. package/dist/process/capture/ProcessFilesystemEffects.js +19 -4
  562. package/dist/process/capture/ProcessHarness.js +202 -47
  563. package/dist/process/capture/ProcessNormalization.js +3 -1
  564. package/dist/process/capture/ProcessScenarioRuntimeValidation.js +5 -2
  565. package/dist/process/capture/TerminalRenderer.js +24 -7
  566. package/dist/reference/ReferenceSourceReader.js +22 -5
  567. package/dist/reference/ReferenceSourceReaderEntries.js +114 -51
  568. package/dist/reference/ReferenceSourceReaderErrors.js +12 -0
  569. package/dist/reference/ReferenceSourceReaderFile.js +50 -10
  570. package/dist/reference/ReferenceSourceReaderValidate.js +4 -4
  571. package/dist/server/EvidenceMcpServer.js +36 -1
  572. package/dist/server/admittedToolOperation.js +9 -0
  573. package/dist/server/analysisAdmission.js +8 -0
  574. package/dist/server/contractToolHandler.js +21 -0
  575. package/dist/server/createServer.js +118 -47
  576. package/dist/server/registerAdbTools.js +36 -0
  577. package/dist/server/registerAnalysisViewTool.js +4 -9
  578. package/dist/server/registerAndroidTools.js +3 -12
  579. package/dist/server/registerApktoolTools.js +14 -0
  580. package/dist/server/registerApplicationTools/compareExportShapes.js +6 -7
  581. package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
  582. package/dist/server/registerApplicationTools/compareVersions.js +3 -2
  583. package/dist/server/registerApplicationTools/coverage.js +3 -2
  584. package/dist/server/registerApplicationTools/helpers.js +3 -2
  585. package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
  586. package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +3 -2
  587. package/dist/server/registerApplicationTools/traceFeature.js +3 -2
  588. package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
  589. package/dist/server/registerArtifactComparisonTool.js +5 -2
  590. package/dist/server/registerArtifactTools.js +2 -2
  591. package/dist/server/registerBinaryDiagnosticsTools.js +16 -4
  592. package/dist/server/registerBrowserScenarioTool.js +10 -7
  593. package/dist/server/registerBrowserTools.js +12 -9
  594. package/dist/server/registerBundleComparisonTool.js +16 -2
  595. package/dist/server/registerCloseLifecycleTool.js +36 -5
  596. package/dist/server/registerElectronTools.js +28 -10
  597. package/dist/server/registerEnhancedTools.js +78 -73
  598. package/dist/server/registerEvidenceTools.js +54 -46
  599. package/dist/server/registerEvmTools.js +4 -9
  600. package/dist/server/registerFirmwareTools.js +3 -11
  601. package/dist/server/registerFunctionComparisonTool.js +5 -2
  602. package/dist/server/registerJavaScriptRecoveryTool.js +4 -9
  603. package/dist/server/registerJavaScriptRuntimeObservationTools.js +9 -6
  604. package/dist/server/registerJebTools.js +16 -0
  605. package/dist/server/registerManagedTools.js +7 -4
  606. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +4 -6
  607. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -2
  608. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +3 -2
  609. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +3 -2
  610. package/dist/server/registerOfficialTools.js +31 -25
  611. package/dist/server/registerPeResourcesTool.js +9 -0
  612. package/dist/server/registerProcessComparisonTool.js +5 -2
  613. package/dist/server/registerRecordedCrashTools.js +4 -9
  614. package/dist/server/registerSessionRecordTools.js +2 -1
  615. package/dist/server/registerSessionTools.js +58 -21
  616. package/dist/server/registerWebModuleTool.js +4 -9
  617. package/dist/server/registerWebNetworkCaptureTool.js +4 -9
  618. package/dist/server/registerWebRuntimeTools.js +6 -5
  619. package/dist/server/registerWebScriptTool.js +6 -3
  620. package/dist/server/registerWebSourceLocationTool.js +4 -9
  621. package/dist/server/toolResult.js +21 -2
  622. package/dist/windows/WindowsPrivateRuntime.js +12 -5
  623. package/install.sh +7 -4
  624. package/licenses/nativeaot-parser-MIT.txt +28 -0
  625. package/native/windows/build/manifest.json +2 -2
  626. package/native/windows/build/rea-windows-x64.node +0 -0
  627. package/package.json +38 -7
  628. package/scripts/rea.mjs +16 -1
  629. package/skills/reverse-engineer-anything/SKILL.md +52 -51
  630. package/skills/reverse-engineer-anything/references/connection-and-recovery.md +127 -0
  631. package/skills/reverse-engineer-anything/references/evidence-workflows.md +8 -0
  632. package/skills/reverse-engineer-anything/references/javascript-applications.md +92 -13
  633. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +31 -1
  634. package/dist/artifacts/inventory/policy.js +0 -2
  635. package/dist/domain/managed/managedApplicationGraphNodeCoverage.js +0 -6
  636. package/dist/server/registerNativeTools.js +0 -6
@@ -1,13 +1,14 @@
1
1
  import { snapshotEnvironment } from "../process/snapshotEnvironment.js";
2
- import { ARTIFACT_PROVIDER_IDENTITY, artifactCapabilities, } from "../artifacts/ArtifactProviderMetadata.js";
3
- import { MANAGED_STATIC_PROVIDER_IDENTITY, managedStaticCapabilities, } from "../dotnet/ManagedStaticProviderMetadata.js";
2
+ import { artifactCapabilities } from "../artifacts/ArtifactProviderMetadata.js";
3
+ import { ARTIFACT_GRAPH_PROVIDER, MANAGED_STATIC_PROVIDER, } from "../application/InvestigationProviders.js";
4
+ import { managedStaticCapabilities } from "../dotnet/ManagedStaticProviderMetadata.js";
4
5
  import { NATIVE_MACOS_PROVIDER_IDENTITY, nativeMacOSCapabilities, } from "../native/NativeMacOSProviderMetadata.js";
5
6
  /** Wire the three existing auxiliary AnalysisProvider implementations lazily. */
6
7
  export const auxiliaryAnalysisProviderDeclarations = (selectedEnvironment, platform = process.platform) => {
7
8
  const environment = snapshotEnvironment(selectedEnvironment, platform);
8
9
  return [
9
10
  {
10
- identity: ARTIFACT_PROVIDER_IDENTITY,
11
+ identity: ARTIFACT_GRAPH_PROVIDER,
11
12
  capabilities: artifactCapabilities(platform),
12
13
  load: async () => {
13
14
  const { ArtifactProvider } = await import("../artifacts/ArtifactProvider.js");
@@ -23,7 +24,7 @@ export const auxiliaryAnalysisProviderDeclarations = (selectedEnvironment, platf
23
24
  },
24
25
  },
25
26
  {
26
- identity: MANAGED_STATIC_PROVIDER_IDENTITY,
27
+ identity: MANAGED_STATIC_PROVIDER,
27
28
  capabilities: managedStaticCapabilities(),
28
29
  load: async () => {
29
30
  const { ManagedStaticProvider } = await import("../dotnet/ManagedStaticProvider.js");
@@ -2,6 +2,10 @@ import { RecordedCrashService } from "../application/binaryDiagnostics/RecordedC
2
2
  import { PwntoolsRecordedCrashProvider } from "../native/pwntools/PwntoolsRecordedCrashProvider.js";
3
3
  import { BinaryLayoutService } from "../application/binaryDiagnostics/BinaryLayoutService.js";
4
4
  import { PwntoolsLayoutProvider } from "../native/pwntools/PwntoolsLayoutProvider.js";
5
+ import { PeResourcesService } from "../application/binaryDiagnostics/PeResourcesService.js";
6
+ import { PeResourcesProvider } from "../native/pe/PeResourcesProvider.js";
7
+ /** Portable PE inspection with no engine, installation or target acquisition. */
8
+ export const createPeResourcesService = () => new PeResourcesService(new PeResourcesProvider());
5
9
  /** Compose the offline adapter without import-time I/O or dependency acquisition. */
6
10
  export const createBinaryLayoutService = (environment = process.env) => new BinaryLayoutService(new PwntoolsLayoutProvider(environment));
7
11
  /** Compose recorded-core inspection without acquiring a debugger or toolchain. */
@@ -1,4 +1,4 @@
1
1
  import { PlaywrightBrowserScenarioProvider } from "../browser/PlaywrightBrowserScenarioProvider.js";
2
- import { PlaywrightScenarioSessionFactory } from "../browser/PlaywrightScenarioSession.js";
2
+ import { PlaywrightScenarioSession } from "../browser/PlaywrightScenarioSession.js";
3
3
  /** Construct a fresh provider without opening a target or acquiring an engine. */
4
- export const createBrowserScenarioProvider = (environment) => new PlaywrightBrowserScenarioProvider(new PlaywrightScenarioSessionFactory(environment));
4
+ export const createBrowserScenarioProvider = (environment) => new PlaywrightBrowserScenarioProvider((scenario, options) => PlaywrightScenarioSession.open(scenario, environment, options));
@@ -1,24 +1,31 @@
1
1
  import { snapshotEnvironment } from "../process/snapshotEnvironment.js";
2
2
  import { parseConfig } from "../config/parseConfig.js";
3
3
  import { runDirectAnalysis as executeDirectAnalysis, runProviderAnalysis as executeProviderAnalysis, runManagedProviderExecution as executeManagedProvider, } from "../application/DirectAnalysis.js";
4
- import { runCapabilityStatus as executeCapabilityStatus, runProviderStatus as executeProviderStatus, } from "../application/DirectAnalysisStatus.js";
5
- import { createBinarySession, createManagedBinarySession } from "./binary.js";
4
+ import { runSessionStatus as executeSessionStatus } from "../application/DirectAnalysisStatus.js";
6
5
  /** Bind one-shot analysis and status commands to one caller-selected environment. */
7
6
  export const createDirectAnalysis = (selectedEnvironment) => {
8
7
  const environment = snapshotEnvironment(selectedEnvironment);
9
8
  const dependencies = {
10
9
  readConfiguration: () => parseConfig(environment),
11
- createBinarySession: (config, logger) => createBinarySession(config, logger, environment),
12
- createManagedBinarySession,
10
+ createBinarySession: async (config, logger) => {
11
+ const { createBinarySession } = await import("./binary.js");
12
+ return createBinarySession(config, logger, environment);
13
+ },
14
+ createManagedBinarySession: async () => {
15
+ const { createManagedBinarySession } = await import("./binary.js");
16
+ return createManagedBinarySession();
17
+ },
13
18
  };
14
19
  return {
15
20
  runDirectAnalysis: executeDirectAnalysis.bind(undefined, dependencies),
16
21
  runProviderAnalysis: executeProviderAnalysis.bind(undefined, dependencies),
17
- runProviderStatus: executeProviderStatus.bind(undefined, dependencies),
18
- runCapabilityStatus: executeCapabilityStatus.bind(undefined, dependencies),
22
+ runSessionStatus: executeSessionStatus.bind(undefined, dependencies),
19
23
  };
20
24
  };
21
25
  /** Execute managed metadata without configuration or native provider candidates. */
22
26
  export const runManagedProviderExecution = executeManagedProvider.bind(undefined, {
23
- createManagedBinarySession,
27
+ createManagedBinarySession: async () => {
28
+ const { createManagedBinarySession } = await import("./binary.js");
29
+ return createManagedBinarySession();
30
+ },
24
31
  });
@@ -0,0 +1,48 @@
1
+ import { parseJavaScriptSource } from "../domain/javascript/javascriptSourceParser.js";
2
+ import { analyzeParsedJavaScriptStaticSourceSteps } from "../domain/javascript/javascriptStaticAnalysis.js";
3
+ import { analyzeParsedJavaScriptSemanticsSteps, classifyParsedJavaScriptOpenReceiversSteps, } from "../domain/javascript/javascriptSemanticAnalysis.js";
4
+ import { failedJavaScriptStaticAnalysis } from "../domain/javascript/javascriptStaticAnalysisHelpers.js";
5
+ import { projectJavaScriptModuleSemantics } from "../domain/javascript/javascriptModuleSemanticIr.js";
6
+ import { measureJavaScriptModuleTransfer } from "../javascript/analysis/JavaScriptAnalysisTransfer.js";
7
+ import { AnalysisResourceConstraintError } from "../domain/analysisErrorCore.js";
8
+ import { projectJavaScriptSemanticFileSteps } from "../application/javascript/JavaScriptSemanticGraphBuilder.js";
9
+ import { completeJavaScriptAnalysisSteps } from "../application/javascript/JavaScriptAnalysisControl.js";
10
+ import { serveJavaScriptAnalysisWorker, } from "../javascript/analysis/JavaScriptAnalysisWorkerServer.js";
11
+ const analyze = async (file, nodeBudget, callbacks) => {
12
+ if (!file.text.included)
13
+ throw new TypeError("JavaScript worker requires decoded source text");
14
+ await callbacks.phase("parse");
15
+ let parsed = parseJavaScriptSource(file.text.value, file.path);
16
+ if (parsed === null) {
17
+ await callbacks.checkpoint(failedJavaScriptStaticAnalysis());
18
+ return null;
19
+ }
20
+ await callbacks.phase("static");
21
+ const receivers = await completeJavaScriptAnalysisSteps(classifyParsedJavaScriptOpenReceiversSteps(parsed));
22
+ const facts = await completeJavaScriptAnalysisSteps(analyzeParsedJavaScriptStaticSourceSteps(file.text.value, parsed, receivers));
23
+ const resultBudgetBytes = await callbacks.checkpoint(facts);
24
+ if (facts.parse_status === "failed")
25
+ return null;
26
+ if (resultBudgetBytes === 0)
27
+ throw new AnalysisResourceConstraintError("analyze_javascript_application", "memory", `The parent reserved its remaining result capacity for static observations; semantic analysis of ${file.path} was not started`, { semantic_result_budget_bytes: 0 });
28
+ await callbacks.phase("semantic");
29
+ const ir = await completeJavaScriptAnalysisSteps(analyzeParsedJavaScriptSemanticsSteps(parsed));
30
+ parsed = null;
31
+ const module = projectJavaScriptModuleSemantics(ir);
32
+ const measured = measureJavaScriptModuleTransfer(module);
33
+ if (measured.retentionBytes > resultBudgetBytes)
34
+ throw new AnalysisResourceConstraintError("analyze_javascript_application", "memory", `Completed module facts for ${file.path} exceed the parent's offered result budget; static facts were retained`, {
35
+ semantic_result_budget_bytes: resultBudgetBytes,
36
+ module_transfer_bytes: measured.bytes,
37
+ });
38
+ await callbacks.phase("projection");
39
+ const projection = await completeJavaScriptAnalysisSteps(projectJavaScriptSemanticFileSteps(file, ir, nodeBudget));
40
+ return { module, projection };
41
+ };
42
+ try {
43
+ await serveJavaScriptAnalysisWorker(analyze);
44
+ }
45
+ catch (cause) {
46
+ process.stderr.write(`${cause instanceof Error ? cause.message : String(cause)}\n`);
47
+ process.exitCode = 1;
48
+ }
@@ -0,0 +1,6 @@
1
+ import { JebProvider } from "../jeb/JebProvider.js";
2
+ /** Construct one JEB provider bound to the caller-selected MCP endpoint. */
3
+ export const createJebAnalysisProvider = (environment = process.env, connectionFactory) => new JebProvider({
4
+ environment,
5
+ ...(connectionFactory === undefined ? {} : { connectionFactory }),
6
+ });
@@ -3,11 +3,14 @@ import { isAbsolute } from "node:path";
3
3
  import { ConfigurationError } from "../domain/configurationErrors.js";
4
4
  import { err, ok } from "../domain/result.js";
5
5
  import { analysisProviderSelectorSchema } from "../contracts/providerSelection.js";
6
+ import { ghidraCompilerSpecIdSchema, ghidraLanguageIdSchema, } from "./ghidraLanguageOverride.js";
6
7
  import { ghidraStartupTimeoutSchema } from "./ghidraStartupTimeout.js";
8
+ import { mcpInputSchemaProfileSchema } from "./mcpInputSchemaProfile.js";
7
9
  import { mcpResponseBudgetSchema } from "./mcpResponseBudget.js";
8
10
  const environmentSchema = z.object({
9
11
  REA_ANALYSIS_PROVIDER: analysisProviderSelectorSchema.default("auto"),
10
12
  REA_MCP_MAX_RESPONSE_BYTES: mcpResponseBudgetSchema.optional(),
13
+ REA_MCP_INPUT_SCHEMA_PROFILE: mcpInputSchemaProfileSchema.optional(),
11
14
  REA_IDA_MCP_CONFIG: z
12
15
  .string()
13
16
  .min(1)
@@ -29,6 +32,13 @@ const environmentSchema = z.object({
29
32
  .refine(isAbsolute, "REA_GHIDRA_NATIVEAOT_JAR must be absolute")
30
33
  .optional(),
31
34
  REA_GHIDRA_STARTUP_TIMEOUT_MS: ghidraStartupTimeoutSchema,
35
+ REA_GHIDRA_LANGUAGE_ID: ghidraLanguageIdSchema.optional(),
36
+ REA_GHIDRA_COMPILER_SPEC_ID: ghidraCompilerSpecIdSchema.optional(),
37
+ REA_GHIDRA_SEED_FILE: z
38
+ .string()
39
+ .min(1)
40
+ .refine(isAbsolute, "REA_GHIDRA_SEED_FILE must be absolute")
41
+ .optional(),
32
42
  REA_ILSPY_CMD_PATH: z
33
43
  .string()
34
44
  .min(1)
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ // Ghidra language IDs are four colon-separated fields; variants may contain
3
+ // spaces ("x86:LE:16:Real Mode") but never leading or trailing whitespace.
4
+ export const ghidraLanguageIdSchema = z
5
+ .string()
6
+ .regex(/^[A-Za-z0-9_.+-]+:(?:LE|BE):[1-9]\d*:[A-Za-z0-9_.+-](?:[A-Za-z0-9_.+ -]*[A-Za-z0-9_.+-])?$/u, "must be a Ghidra language ID such as x86:LE:32:default");
7
+ export const ghidraCompilerSpecIdSchema = z
8
+ .string()
9
+ .regex(/^[A-Za-z0-9_.+-]+$/u, "must be a Ghidra compiler-spec ID such as default or borlandcpp");
@@ -0,0 +1,27 @@
1
+ import { z } from "zod";
2
+ import { ConfigurationError } from "../domain/configurationErrors.js";
3
+ import { err, ok } from "../domain/result.js";
4
+ // Moonshot's function-calling API rejects requests while any single tool
5
+ // parameters schema exceeds its literal serialized size cap. Community
6
+ // measurements bound the cap between ~13.7 KB (accepted) and ~15 KB
7
+ // (rejected); 13 KiB leaves margin under the lower bound. See
8
+ // https://github.com/morluto/rea/issues/1484 for the measured evidence.
9
+ export const COMPACT_INPUT_SCHEMA_BUDGET_BYTES = 13 * 1024;
10
+ export const mcpInputSchemaProfileSchema = z.enum(["full", "compact"]);
11
+ const profileConstraint = 'REA_MCP_INPUT_SCHEMA_PROFILE must be "full" (default) or "compact". The compact profile advertises input schemas without nested annotation prose for providers that cap each tool schema\'s serialized size.';
12
+ /** Parse the advertised input schema presentation selection. */
13
+ export const parseMcpInputSchemaProfile = (value) => {
14
+ if (value === undefined)
15
+ return ok(undefined);
16
+ const parsed = mcpInputSchemaProfileSchema.safeParse(value);
17
+ return parsed.success
18
+ ? ok(parsed.data)
19
+ : err(new ConfigurationError(profileConstraint, {
20
+ settings: [
21
+ {
22
+ setting: "REA_MCP_INPUT_SCHEMA_PROFILE",
23
+ constraint: profileConstraint,
24
+ },
25
+ ],
26
+ }));
27
+ };
@@ -1,7 +1,7 @@
1
1
  import { accessSync, constants } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { ConfigurationError } from "../domain/configurationErrors.js";
4
- import { ok } from "../domain/result.js";
4
+ import { err, ok } from "../domain/result.js";
5
5
  import { parseEnvironment } from "./environment.js";
6
6
  import { homeDirectoryFromEnvironment } from "./homeDirectory.js";
7
7
  import { parseStringArray, parseLoaderArgs } from "./parsers.js";
@@ -36,10 +36,24 @@ export const parseConfig = (environment) => {
36
36
  const secretPatterns = parseStringArray(env.REA_REFERENCE_SECRET_PATTERNS_JSON, "REA_REFERENCE_SECRET_PATTERNS_JSON");
37
37
  if (!secretPatterns.ok)
38
38
  return secretPatterns;
39
+ // Ghidra's analyzeHeadless accepts -cspec only together with -processor.
40
+ if (env.REA_GHIDRA_COMPILER_SPEC_ID !== undefined &&
41
+ env.REA_GHIDRA_LANGUAGE_ID === undefined)
42
+ return err(new ConfigurationError("Invalid REA environment configuration", {
43
+ settings: [
44
+ {
45
+ setting: "REA_GHIDRA_COMPILER_SPEC_ID",
46
+ constraint: "requires REA_GHIDRA_LANGUAGE_ID",
47
+ },
48
+ ],
49
+ }));
39
50
  return ok({
40
51
  ...(env.REA_MCP_MAX_RESPONSE_BYTES === undefined
41
52
  ? {}
42
53
  : { mcpMaxResponseBytes: env.REA_MCP_MAX_RESPONSE_BYTES }),
54
+ ...(env.REA_MCP_INPUT_SCHEMA_PROFILE === undefined
55
+ ? {}
56
+ : { mcpInputSchemaProfile: env.REA_MCP_INPUT_SCHEMA_PROFILE }),
43
57
  analysisProvider: env.REA_ANALYSIS_PROVIDER,
44
58
  ...(env.REA_IDA_MCP_CONFIG === undefined
45
59
  ? {}
@@ -47,6 +61,19 @@ export const parseConfig = (environment) => {
47
61
  ghidraInstallDir: env.GHIDRA_INSTALL_DIR,
48
62
  ghidraJavaHome: env.JAVA_HOME,
49
63
  ghidraStartupTimeoutMs: env.REA_GHIDRA_STARTUP_TIMEOUT_MS,
64
+ ...(env.REA_GHIDRA_LANGUAGE_ID === undefined
65
+ ? {}
66
+ : {
67
+ ghidraLanguageOverride: {
68
+ languageId: env.REA_GHIDRA_LANGUAGE_ID,
69
+ ...(env.REA_GHIDRA_COMPILER_SPEC_ID === undefined
70
+ ? {}
71
+ : { compilerSpecId: env.REA_GHIDRA_COMPILER_SPEC_ID }),
72
+ },
73
+ }),
74
+ ...(env.REA_GHIDRA_SEED_FILE === undefined
75
+ ? {}
76
+ : { ghidraSeedFile: env.REA_GHIDRA_SEED_FILE }),
50
77
  ...(env.REA_GHIDRA_NATIVEAOT_JAR === undefined
51
78
  ? {}
52
79
  : { ghidraNativeAotJar: env.REA_GHIDRA_NATIVEAOT_JAR }),
@@ -0,0 +1,353 @@
1
+ import { adbInputSchemas, adbResultSchemas, } from "../../domain/adb/adbDeviceAnalysis.js";
2
+ import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js";
3
+ import { toolContractMetadata } from "../toolEffects.js";
4
+ /** ADB device inspection and acquisition over a caller-supplied binary. */
5
+ export const ADB_TOOL_CONTRACTS = [
6
+ {
7
+ name: "inspect_adb_client",
8
+ ...toolContractMetadata("inspect_adb_client"),
9
+ description: "Inspect the caller-selected adb client: resolved binary, version, and install path. Never contacts devices and never starts the adb server. REA never installs platform tools; select a binary with REA_ADB_PATH (absolute) or adb on PATH.",
10
+ kind: "adb-provider",
11
+ inputSchema: adbInputSchemas.inspect_adb_client,
12
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_client),
13
+ examples: [{ title: "Check the adb client", input: {} }],
14
+ },
15
+ {
16
+ name: "list_adb_devices",
17
+ ...toolContractMetadata("list_adb_devices"),
18
+ description: "List attached devices exactly as `adb devices -l` reports them: serial, state, transport, model metadata, and an inferred emulator/physical kind with its evidence basis. Emulators and USB or network devices appear alike; REA neither starts nor manages them. May start the local adb server on first use.",
19
+ kind: "adb-provider",
20
+ inputSchema: adbInputSchemas.list_adb_devices,
21
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_devices),
22
+ examples: [{ title: "List attached devices", input: {} }],
23
+ },
24
+ {
25
+ name: "inspect_adb_device",
26
+ ...toolContractMetadata("inspect_adb_device"),
27
+ description: "Inspect one device's build identity through a fixed `getprop` whitelist: Android and SDK versions, security patch, fingerprint, product identity, CPU ABIs, and debuggable flag, plus the observed emulator indicator ro.kernel.qemu. Read-only with respect to the device.",
28
+ kind: "adb-provider",
29
+ inputSchema: adbInputSchemas.inspect_adb_device,
30
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_device),
31
+ examples: [
32
+ { title: "Inspect one device", input: { serial: "emulator-5554" } },
33
+ ],
34
+ },
35
+ {
36
+ name: "list_adb_packages",
37
+ ...toolContractMetadata("list_adb_packages"),
38
+ description: "List installed packages on one device with each base APK's device path, optionally scoped to third-party or system packages. Paths are device filesystem paths, not host-local. Read-only.",
39
+ kind: "adb-provider",
40
+ inputSchema: adbInputSchemas.list_adb_packages,
41
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_packages),
42
+ examples: [
43
+ {
44
+ title: "List third-party packages",
45
+ input: { serial: "emulator-5554", scope: "third_party" },
46
+ },
47
+ ],
48
+ },
49
+ {
50
+ name: "pull_adb_package",
51
+ ...toolContractMetadata("pull_adb_package"),
52
+ description: "Pull one installed package's complete APK set (base plus every split, as `pm path` reports) from the device into a caller-selected output directory, creating a package-named subdirectory that must not already exist. Every pulled file is digested with SHA-256; partial pulls keep successful artifacts and per-file failure reasons. The device keeps the originals.",
53
+ kind: "adb-provider",
54
+ inputSchema: adbInputSchemas.pull_adb_package,
55
+ outputSchema: evidenceResultOf(adbResultSchemas.pull_adb_package),
56
+ examples: [
57
+ {
58
+ title: "Pull a package APK set",
59
+ input: {
60
+ serial: "emulator-5554",
61
+ package: "com.example.app",
62
+ output_directory: "/tmp/rea-pulls",
63
+ },
64
+ },
65
+ ],
66
+ },
67
+ {
68
+ name: "read_adb_logcat",
69
+ ...toolContractMetadata("read_adb_logcat"),
70
+ description: "Read a bounded dump of the device log (`logcat -d -t`) for one buffer, optionally restricted to a process id. No streaming, no clearing; the newest lines are kept when the count cap trims. Read-only.",
71
+ kind: "adb-provider",
72
+ inputSchema: adbInputSchemas.read_adb_logcat,
73
+ outputSchema: evidenceResultOf(adbResultSchemas.read_adb_logcat),
74
+ examples: [
75
+ {
76
+ title: "Read the last 200 main-buffer lines",
77
+ input: { serial: "emulator-5554", count: 200, buffer: "main" },
78
+ },
79
+ ],
80
+ },
81
+ {
82
+ name: "inspect_adb_package",
83
+ ...toolContractMetadata("inspect_adb_package"),
84
+ description: "Inspect one installed package through `dumpsys package`: version name/code, install and update times, installer, user id, flags, and the requested-permission count. A fixed projection of version-dependent output; unknown sections are ignored rather than guessed. Read-only.",
85
+ kind: "adb-provider",
86
+ inputSchema: adbInputSchemas.inspect_adb_package,
87
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_package),
88
+ examples: [
89
+ {
90
+ title: "Inspect an installed package",
91
+ input: { serial: "emulator-5554", package: "com.example.app" },
92
+ },
93
+ ],
94
+ },
95
+ {
96
+ name: "pull_adb_file",
97
+ ...toolContractMetadata("pull_adb_file"),
98
+ description: "Pull one absolute device path (a database, shared-preferences XML, or any readable file) into a caller-selected output directory, digesting it with SHA-256. The local copy must not already exist. Read-only with respect to the device.",
99
+ kind: "adb-provider",
100
+ inputSchema: adbInputSchemas.pull_adb_file,
101
+ outputSchema: evidenceResultOf(adbResultSchemas.pull_adb_file),
102
+ examples: [
103
+ {
104
+ title: "Pull an app database",
105
+ input: {
106
+ serial: "emulator-5554",
107
+ device_path: "/data/data/com.example.app/databases/app.db",
108
+ output_directory: "/tmp/rea-pulls",
109
+ },
110
+ },
111
+ ],
112
+ },
113
+ {
114
+ name: "push_adb_file",
115
+ ...toolContractMetadata("push_adb_file"),
116
+ description: "Push one local file to an absolute device path. The only device-mutating ADB tool: existing device files are refused unless overwrite is explicitly requested, and the transfer is verified by comparing the local digest with the device's own sha256sum when the device provides one.",
117
+ kind: "adb-provider",
118
+ inputSchema: adbInputSchemas.push_adb_file,
119
+ outputSchema: evidenceResultOf(adbResultSchemas.push_adb_file),
120
+ examples: [
121
+ {
122
+ title: "Push a script to tmp",
123
+ input: {
124
+ serial: "emulator-5554",
125
+ local_path: "/tmp/frida-server",
126
+ device_path: "/data/local/tmp/frida-server",
127
+ },
128
+ },
129
+ ],
130
+ },
131
+ {
132
+ name: "capture_adb_screen",
133
+ ...toolContractMetadata("capture_adb_screen"),
134
+ description: "Capture one frame of the device screen as a PNG (`screencap -p` through exec-out, no device-side file) into a caller-selected output directory, digesting it and reporting its dimensions. No recording or interaction.",
135
+ kind: "adb-provider",
136
+ inputSchema: adbInputSchemas.capture_adb_screen,
137
+ outputSchema: evidenceResultOf(adbResultSchemas.capture_adb_screen),
138
+ examples: [
139
+ {
140
+ title: "Capture the current screen",
141
+ input: {
142
+ serial: "emulator-5554",
143
+ output_directory: "/tmp/rea-captures",
144
+ },
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ name: "list_adb_processes",
150
+ ...toolContractMetadata("list_adb_processes"),
151
+ description: "List running processes exactly as `ps -A` reports them: user, pid, ppid, rss, state, and name. Useful for pairing with instrumentation lanes. Read-only.",
152
+ kind: "adb-provider",
153
+ inputSchema: adbInputSchemas.list_adb_processes,
154
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_processes),
155
+ examples: [{ title: "List processes", input: { serial: "emulator-5554" } }],
156
+ },
157
+ {
158
+ name: "list_adb_directory",
159
+ ...toolContractMetadata("list_adb_directory"),
160
+ description: "List one absolute device directory (`ls -la`): names, kinds, permissions, owner, group, sizes, dates, and symlink targets. Recognizes the standard errors for absent paths and denied reads. Read-only.",
161
+ kind: "adb-provider",
162
+ inputSchema: adbInputSchemas.list_adb_directory,
163
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_directory),
164
+ examples: [
165
+ {
166
+ title: "List an app's data directory",
167
+ input: {
168
+ serial: "emulator-5554",
169
+ device_path: "/data/data/com.example.app",
170
+ },
171
+ },
172
+ ],
173
+ },
174
+ {
175
+ name: "list_adb_features",
176
+ ...toolContractMetadata("list_adb_features"),
177
+ description: "List the device's declared hardware and software features (`pm list features`) for device fingerprinting. Read-only.",
178
+ kind: "adb-provider",
179
+ inputSchema: adbInputSchemas.list_adb_features,
180
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_features),
181
+ examples: [{ title: "List features", input: { serial: "emulator-5554" } }],
182
+ },
183
+ {
184
+ name: "list_adb_services",
185
+ ...toolContractMetadata("list_adb_services"),
186
+ description: "List the device's binder services with their interfaces (`service list`). Read-only.",
187
+ kind: "adb-provider",
188
+ inputSchema: adbInputSchemas.list_adb_services,
189
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_services),
190
+ examples: [{ title: "List services", input: { serial: "emulator-5554" } }],
191
+ },
192
+ {
193
+ name: "inspect_adb_display",
194
+ ...toolContractMetadata("inspect_adb_display"),
195
+ description: "Report the display's physical and any overridden size (`wm size`) and density (`wm density`) as the device declares them. Read-only; setting values is not exposed.",
196
+ kind: "adb-provider",
197
+ inputSchema: adbInputSchemas.inspect_adb_display,
198
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_display),
199
+ examples: [
200
+ { title: "Inspect the display", input: { serial: "emulator-5554" } },
201
+ ],
202
+ },
203
+ {
204
+ name: "inspect_adb_window",
205
+ ...toolContractMetadata("inspect_adb_window"),
206
+ description: "Report the window manager's current focus declarations (`dumpsys window windows`: mCurrentFocus and mFocusedApp) — what is on screen at read time without any interaction. Read-only.",
207
+ kind: "adb-provider",
208
+ inputSchema: adbInputSchemas.inspect_adb_window,
209
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_window),
210
+ examples: [
211
+ { title: "Inspect window focus", input: { serial: "emulator-5554" } },
212
+ ],
213
+ },
214
+ {
215
+ name: "read_adb_setting",
216
+ ...toolContractMetadata("read_adb_setting"),
217
+ description: "Read one settings value (`settings get`) from the system, secure, or global namespace. Absent keys report the device's own null observation. Read-only; writing settings is not exposed.",
218
+ kind: "adb-provider",
219
+ inputSchema: adbInputSchemas.read_adb_setting,
220
+ outputSchema: evidenceResultOf(adbResultSchemas.read_adb_setting),
221
+ examples: [
222
+ {
223
+ title: "Read the ADB-enabled setting",
224
+ input: {
225
+ serial: "emulator-5554",
226
+ namespace: "secure",
227
+ key: "adb_enabled",
228
+ },
229
+ },
230
+ ],
231
+ },
232
+ {
233
+ name: "collect_adb_bugreport",
234
+ ...toolContractMetadata("collect_adb_bugreport"),
235
+ description: "Collect one device-generated bugreport archive (`adb bugreport`) into a caller-selected output directory, digesting the zip. The archive contains the device's own dumpstate, dumpsys, and logcat report; collection can take minutes. Read-only with respect to configuration.",
236
+ kind: "adb-provider",
237
+ inputSchema: adbInputSchemas.collect_adb_bugreport,
238
+ outputSchema: evidenceResultOf(adbResultSchemas.collect_adb_bugreport),
239
+ examples: [
240
+ {
241
+ title: "Collect a bugreport",
242
+ input: {
243
+ serial: "emulator-5554",
244
+ output_directory: "/tmp/rea-bugreports",
245
+ },
246
+ },
247
+ ],
248
+ },
249
+ {
250
+ name: "resolve_adb_packages",
251
+ ...toolContractMetadata("resolve_adb_packages"),
252
+ description: "Find installed packages by case-insensitive substring of the package name (e.g. `whatsapp` → `com.whatsapp`), returning each match's base APK device path. The first step of an easy get: resolve, then pull_adb_package the exact name. Read-only.",
253
+ kind: "adb-provider",
254
+ inputSchema: adbInputSchemas.resolve_adb_packages,
255
+ outputSchema: evidenceResultOf(adbResultSchemas.resolve_adb_packages),
256
+ examples: [
257
+ {
258
+ title: "Find a package by partial name",
259
+ input: { serial: "emulator-5554", query: "whatsapp" },
260
+ },
261
+ ],
262
+ },
263
+ {
264
+ name: "install_adb_package",
265
+ ...toolContractMetadata("install_adb_package"),
266
+ description: "Install one local APK on the device (`adb install [-r]`), recording the APK's host digest and byte size. A device-mutating tool: `replace` re-installs over an existing package while keeping its data; the device's own Success/Failure verdict is preserved with its reason.",
267
+ kind: "adb-provider",
268
+ inputSchema: adbInputSchemas.install_adb_package,
269
+ outputSchema: evidenceResultOf(adbResultSchemas.install_adb_package),
270
+ examples: [
271
+ {
272
+ title: "Install an APK",
273
+ input: { serial: "emulator-5554", apk_path: "/tmp/app.apk" },
274
+ },
275
+ {
276
+ title: "Replace an existing install keeping data",
277
+ input: {
278
+ serial: "emulator-5554",
279
+ apk_path: "/tmp/app.apk",
280
+ replace: true,
281
+ },
282
+ },
283
+ ],
284
+ },
285
+ {
286
+ name: "uninstall_adb_package",
287
+ ...toolContractMetadata("uninstall_adb_package"),
288
+ description: "Uninstall one package from the device (`adb uninstall`), removing its data for user 0. A device-mutating tool; absent packages report the device's own refusal reason.",
289
+ kind: "adb-provider",
290
+ inputSchema: adbInputSchemas.uninstall_adb_package,
291
+ outputSchema: evidenceResultOf(adbResultSchemas.uninstall_adb_package),
292
+ examples: [
293
+ {
294
+ title: "Uninstall a package",
295
+ input: { serial: "emulator-5554", package: "com.example.app" },
296
+ },
297
+ ],
298
+ },
299
+ {
300
+ name: "start_adb_app",
301
+ ...toolContractMetadata("start_adb_app"),
302
+ description: "Start one installed app by launching its declared launcher activity: the component is resolved through `cmd package resolve-activity --brief`, then started with `am start -n`. A device-mutating tool for dynamic-analysis workflows; pair with `read_adb_logcat` (pid filter) and `list_adb_processes` to observe the started app, and `stop_adb_app` to end the run.",
303
+ kind: "adb-provider",
304
+ inputSchema: adbInputSchemas.start_adb_app,
305
+ outputSchema: evidenceResultOf(adbResultSchemas.start_adb_app),
306
+ examples: [
307
+ {
308
+ title: "Start an app",
309
+ input: { serial: "emulator-5554", package: "com.example.app" },
310
+ },
311
+ ],
312
+ },
313
+ {
314
+ name: "start_adb_activity",
315
+ ...toolContractMetadata("start_adb_activity"),
316
+ description: "Start an intent with `am start`: one action, optional data URI, optional explicit component, and up to 16 typed extras (string, boolean, int, long, float). A device-mutating tool; the activity manager's Starting/Error verdict is preserved verbatim.",
317
+ kind: "adb-provider",
318
+ inputSchema: adbInputSchemas.start_adb_activity,
319
+ outputSchema: evidenceResultOf(adbResultSchemas.start_adb_activity),
320
+ examples: [
321
+ {
322
+ title: "Open a deep link",
323
+ input: {
324
+ serial: "emulator-5554",
325
+ action: "android.intent.action.VIEW",
326
+ data_uri: "https://example.com/path",
327
+ },
328
+ },
329
+ {
330
+ title: "Start with typed extras",
331
+ input: {
332
+ serial: "emulator-5554",
333
+ action: "com.example.APP_ACTION",
334
+ extras: [{ key: "level", type: "int", value: "3" }],
335
+ },
336
+ },
337
+ ],
338
+ },
339
+ {
340
+ name: "stop_adb_app",
341
+ ...toolContractMetadata("stop_adb_app"),
342
+ description: "Force-stop every process of one package (`am force-stop`), ending a dynamic-analysis run. A device-mutating tool; it succeeds whether or not the package had running processes.",
343
+ kind: "adb-provider",
344
+ inputSchema: adbInputSchemas.stop_adb_app,
345
+ outputSchema: evidenceResultOf(adbResultSchemas.stop_adb_app),
346
+ examples: [
347
+ {
348
+ title: "Stop an app",
349
+ input: { serial: "emulator-5554", package: "com.example.app" },
350
+ },
351
+ ],
352
+ },
353
+ ];