rea-agents 4.1.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/README.md +173 -568
  2. package/bridge/android/ReaJadxBridge.java +247 -0
  3. package/bridge/mitmproxy/capture.py +210 -0
  4. package/bridge/native/NativeUIChildren.swift +27 -0
  5. package/bridge/native/ReaNativeUI.swift +30 -16
  6. package/bridge/native/rea_lldb_tracer.py +303 -0
  7. package/bridge/process/ProcessRunTokenReader.swift +263 -0
  8. package/bridge/process/ProcessRunTokenReaderMain.swift +35 -0
  9. package/bridge/pwndbg/core_context.py +101 -0
  10. package/bridge/pwndbg/launch.py +39 -0
  11. package/bridge/pwndbg/launch_impl.py +34 -0
  12. package/bridge/pwntools/decoder_runtime.py +59 -0
  13. package/bridge/pwntools/layout.py +39 -0
  14. package/bridge/pwntools/layout_impl.py +309 -0
  15. package/bridge/pwntools/recorded_crash.py +39 -0
  16. package/bridge/pwntools/recorded_crash_impl.py +143 -0
  17. package/dist/android/AndroidTargetSnapshot.js +5 -3
  18. package/dist/android/JadxAnalysis.js +8 -6
  19. package/dist/android/JadxConfiguration.js +19 -3
  20. package/dist/android/JadxMcpTransport.js +43 -16
  21. package/dist/android/JadxProtocol.js +8 -0
  22. package/dist/android/JadxProvider.js +118 -28
  23. package/dist/android/JadxRelease.js +8 -0
  24. package/dist/android/JadxSession.js +32 -18
  25. package/dist/application/AppBundleExecutable.js +141 -0
  26. package/dist/application/BinaryTargetResolver.js +9 -64
  27. package/dist/application/CapabilityInventory.js +82 -3
  28. package/dist/application/ClientConfigurationDocument.js +72 -12
  29. package/dist/application/ClientRegistrationStatus.js +7 -8
  30. package/dist/application/DirectAnalysis.js +109 -37
  31. package/dist/application/DirectAnalysisStatus.js +4 -5
  32. package/dist/application/DoctorDiagnostics.js +3 -3
  33. package/dist/application/EnhancedTools.js +4 -4
  34. package/dist/application/EvidenceBundleCommands.js +1 -1
  35. package/dist/application/EvidenceBundleFiles.js +1 -1
  36. package/dist/application/InvestigationProviders.js +6 -0
  37. package/dist/application/LinuxHopper.js +8 -2
  38. package/dist/application/OptionalObservationProviders.js +3 -0
  39. package/dist/application/ReconstructionCoverageService.js +2 -6
  40. package/dist/application/ReconstructionObligationCandidates.js +10 -3
  41. package/dist/application/ReferenceSourceImport.js +2 -0
  42. package/dist/application/ReferenceSourceImportEntries.js +20 -3
  43. package/dist/application/ReferenceSourceImportTypes.js +5 -0
  44. package/dist/application/Setup.js +10 -2
  45. package/dist/application/SetupClientConfiguration.js +19 -16
  46. package/dist/application/SetupHost.js +18 -3
  47. package/dist/application/SetupPlan.js +1 -1
  48. package/dist/application/Uninstall.js +23 -17
  49. package/dist/application/UpdateMaintenance.js +3 -3
  50. package/dist/application/ValidateSelectedWebScript.js +27 -0
  51. package/dist/application/WebModuleTraceService.js +209 -0
  52. package/dist/application/WebNetworkCaptureService.js +132 -0
  53. package/dist/application/WebRuntimeService.js +73 -0
  54. package/dist/application/WebScriptExportService.js +115 -0
  55. package/dist/application/WebSourceLocationService.js +160 -0
  56. package/dist/application/WindowsCapabilities.js +1 -1
  57. package/dist/application/{AndroidAnalysisService.js → android/AndroidAnalysisService.js} +6 -6
  58. package/dist/application/{AndroidApplicationService.js → android/AndroidApplicationService.js} +3 -3
  59. package/dist/application/{AppleApplicationService.js → apple/AppleApplicationService.js} +5 -5
  60. package/dist/application/{AnalysisClientCleanup.js → binary/AnalysisClientCleanup.js} +2 -2
  61. package/dist/application/{AnalysisProviderEvaluation.js → binary/AnalysisProviderEvaluation.js} +4 -4
  62. package/dist/application/{AnalysisProviderRegistry.js → binary/AnalysisProviderRegistry.js} +5 -5
  63. package/dist/application/{AnalysisSnapshotCache.js → binary/AnalysisSnapshotCache.js} +55 -14
  64. package/dist/application/{AnalysisSnapshotFiles.js → binary/AnalysisSnapshotFiles.js} +4 -4
  65. package/dist/application/{BinarySession.js → binary/BinarySession.js} +50 -20
  66. package/dist/application/{BinarySessionComposition.js → binary/BinarySessionComposition.js} +2 -1
  67. package/dist/application/{BinarySessionExecution.js → binary/BinarySessionExecution.js} +9 -7
  68. package/dist/application/{BinarySessionOpen.js → binary/BinarySessionOpen.js} +22 -9
  69. package/dist/application/{BinarySessionRecords.js → binary/BinarySessionRecords.js} +48 -40
  70. package/dist/application/{CompositeProvider.js → binary/CompositeProvider.js} +2 -2
  71. package/dist/application/{LazyAnalysisProvider.js → binary/LazyAnalysisProvider.js} +6 -6
  72. package/dist/application/{SessionProviderRouter.js → binary/SessionProviderRouter.js} +7 -7
  73. package/dist/application/binaryDiagnostics/BinaryLayoutService.js +57 -0
  74. package/dist/application/binaryDiagnostics/RecordedCrashPort.js +1 -0
  75. package/dist/application/binaryDiagnostics/RecordedCrashService.js +60 -0
  76. package/dist/application/evm/EvmInterfacePort.js +1 -0
  77. package/dist/application/evm/EvmInterfaceService.js +62 -0
  78. package/dist/application/firmware/FirmwareAnalysisPort.js +1 -0
  79. package/dist/application/{FirmwareAnalysisService.js → firmware/FirmwareAnalysisService.js} +5 -5
  80. package/dist/application/{EvidenceLedger.js → investigation/EvidenceLedger.js} +44 -7
  81. package/dist/application/investigation/InvestigationRecordPort.js +1 -0
  82. package/dist/application/investigation/InvestigationRecords.js +69 -0
  83. package/dist/application/{UnknownEvidence.js → investigation/UnknownEvidence.js} +1 -1
  84. package/dist/application/{ElectronActiveEvidence.js → javascript/ElectronActiveEvidence.js} +3 -3
  85. package/dist/application/javascript/ElectronActiveObservationPort.js +1 -0
  86. package/dist/application/{ElectronActiveObservationService.js → javascript/ElectronActiveObservationService.js} +3 -3
  87. package/dist/application/{ElectronBoundaryAnalysis.js → javascript/ElectronBoundaryAnalysis.js} +1 -1
  88. package/dist/application/{ElectronBoundaryGraphContext.js → javascript/ElectronBoundaryGraphContext.js} +1 -1
  89. package/dist/application/{ElectronEvidence.js → javascript/ElectronEvidence.js} +2 -2
  90. package/dist/application/javascript/ElectronObservationPort.js +1 -0
  91. package/dist/application/{ElectronObservationService.js → javascript/ElectronObservationService.js} +3 -3
  92. package/dist/application/{JavaScriptApplicationEvidence.js → javascript/JavaScriptApplicationEvidence.js} +3 -4
  93. package/dist/application/{JavaScriptApplicationEvidenceGraph.js → javascript/JavaScriptApplicationEvidenceGraph.js} +5 -5
  94. package/dist/application/{JavaScriptApplicationService.js → javascript/JavaScriptApplicationService.js} +25 -12
  95. package/dist/application/{JavaScriptApplicationWorkflowEvidence.js → javascript/JavaScriptApplicationWorkflowEvidence.js} +3 -3
  96. package/dist/application/{JavaScriptApplicationWorkflowService.js → javascript/JavaScriptApplicationWorkflowService.js} +12 -12
  97. package/dist/application/{JavaScriptArtifactAnalysis.js → javascript/JavaScriptArtifactAnalysis.js} +50 -47
  98. package/dist/application/javascript/JavaScriptArtifactAnalysisTypes.js +1 -0
  99. package/dist/application/{JavaScriptArtifactGraphAccumulator.js → javascript/JavaScriptArtifactGraphAccumulator.js} +16 -2
  100. package/dist/application/{JavaScriptArtifactGraphBuilder.js → javascript/JavaScriptArtifactGraphBuilder.js} +2 -2
  101. package/dist/application/{JavaScriptArtifactGraphContext.js → javascript/JavaScriptArtifactGraphContext.js} +1 -1
  102. package/dist/application/{JavaScriptArtifactGraphDocuments.js → javascript/JavaScriptArtifactGraphDocuments.js} +27 -3
  103. package/dist/application/{JavaScriptArtifactGraphFindings.js → javascript/JavaScriptArtifactGraphFindings.js} +20 -7
  104. package/dist/application/{JavaScriptArtifactGraphStructure.js → javascript/JavaScriptArtifactGraphStructure.js} +1 -1
  105. package/dist/application/{JavaScriptArtifactPathResolution.js → javascript/JavaScriptArtifactPathResolution.js} +80 -36
  106. package/dist/application/{JavaScriptArtifactReconstruction.js → javascript/JavaScriptArtifactReconstruction.js} +26 -17
  107. package/dist/application/{JavaScriptJsonModules.js → javascript/JavaScriptJsonModules.js} +1 -1
  108. package/dist/application/{JavaScriptModuleRelationships.js → javascript/JavaScriptModuleRelationships.js} +2 -2
  109. package/dist/application/javascript/JavaScriptRecoveryPort.js +1 -0
  110. package/dist/application/javascript/JavaScriptRecoveryService.js +52 -0
  111. package/dist/application/{JavaScriptReturnShapeProjection.js → javascript/JavaScriptReturnShapeProjection.js} +3 -3
  112. package/dist/application/{JavaScriptRuntimeObservationEvidence.js → javascript/JavaScriptRuntimeObservationEvidence.js} +2 -2
  113. package/dist/application/javascript/JavaScriptRuntimeObservationPort.js +1 -0
  114. package/dist/application/{JavaScriptRuntimeObservationService.js → javascript/JavaScriptRuntimeObservationService.js} +3 -3
  115. package/dist/application/{JavaScriptRuntimeReconciliationEvidence.js → javascript/JavaScriptRuntimeReconciliationEvidence.js} +3 -3
  116. package/dist/application/{JavaScriptRuntimeReconciliationService.js → javascript/JavaScriptRuntimeReconciliationService.js} +6 -6
  117. package/dist/application/{JavaScriptSemanticGraphAsyncProjection.js → javascript/JavaScriptSemanticGraphAsyncProjection.js} +8 -8
  118. package/dist/application/{JavaScriptSemanticGraphBuilder.js → javascript/JavaScriptSemanticGraphBuilder.js} +150 -73
  119. package/dist/application/{JavaScriptSemanticGraphChildProcessProjection.js → javascript/JavaScriptSemanticGraphChildProcessProjection.js} +15 -16
  120. package/dist/application/{JavaScriptSemanticGraphConstruction.js → javascript/JavaScriptSemanticGraphConstruction.js} +43 -2
  121. package/dist/application/{JavaScriptSemanticGraphDataProjection.js → javascript/JavaScriptSemanticGraphDataProjection.js} +8 -8
  122. package/dist/application/{JavaScriptSemanticGraphFingerprintProjection.js → javascript/JavaScriptSemanticGraphFingerprintProjection.js} +1 -1
  123. package/dist/application/{JavaScriptSemanticGraphFlowProjection.js → javascript/JavaScriptSemanticGraphFlowProjection.js} +7 -11
  124. package/dist/application/{JavaScriptSemanticGraphObjectProjection.js → javascript/JavaScriptSemanticGraphObjectProjection.js} +4 -4
  125. package/dist/application/javascript/JavaScriptSemanticGraphProjection.js +144 -0
  126. package/dist/application/{JavaScriptSemanticGraphResourceProjection.js → javascript/JavaScriptSemanticGraphResourceProjection.js} +4 -4
  127. package/dist/application/{JavaScriptSemanticGraphValueProjection.js → javascript/JavaScriptSemanticGraphValueProjection.js} +5 -5
  128. package/dist/application/{JavaScriptSemanticTraceService.js → javascript/JavaScriptSemanticTraceService.js} +6 -6
  129. package/dist/application/{ManagedApplicationGraphService.js → managed/ManagedApplicationGraphService.js} +7 -7
  130. package/dist/application/{ManagedMemberComparisonService.js → managed/ManagedMemberComparisonService.js} +10 -10
  131. package/dist/application/{ManagedNativeVerificationService.js → managed/ManagedNativeVerificationService.js} +7 -7
  132. package/dist/application/{ManagedReconstructionService.js → managed/ManagedReconstructionService.js} +7 -7
  133. package/dist/application/{NativeApiInspection.js → native/NativeApiInspection.js} +1 -1
  134. package/dist/application/{NativeCallRoutes.js → native/NativeCallRoutes.js} +3 -3
  135. package/dist/application/{NativeDispatchMetadataInspection.js → native/NativeDispatchMetadataInspection.js} +4 -4
  136. package/dist/application/{NativeUiActionTrace.js → native/NativeUiActionTrace.js} +7 -7
  137. package/dist/application/{NativeValueTrace.js → native/NativeValueTrace.js} +6 -6
  138. package/dist/application/{ProcessCli.js → process/ProcessCli.js} +15 -11
  139. package/dist/application/{ProcessEvidence.js → process/ProcessEvidence.js} +4 -4
  140. package/dist/{application/ArtifactInventory/hash.js → artifacts/ArtifactHash.js} +4 -2
  141. package/dist/artifacts/ArtifactPaths.js +3 -3
  142. package/dist/artifacts/ArtifactProvider.js +37 -40
  143. package/dist/artifacts/ArtifactProviderMetadata.js +37 -0
  144. package/dist/artifacts/AsarArtifactReader.js +195 -23
  145. package/dist/artifacts/AsarEntryStream.js +76 -0
  146. package/dist/artifacts/DirectoryArtifactReader.js +41 -7
  147. package/dist/artifacts/NativeDmgArtifactReader.js +161 -9
  148. package/dist/artifacts/ZipArtifactReader.js +3 -0
  149. package/dist/{application → artifacts/apple}/AppleAssetCatalogAnalysis.js +4 -4
  150. package/dist/artifacts/apple/DylibResolutionReader.js +259 -0
  151. package/dist/{application → artifacts/apple}/InterfaceBuilderAnalysis.js +125 -51
  152. package/dist/artifacts/{KeyedArchiveReader.js → apple/KeyedArchiveReader.js} +21 -27
  153. package/dist/artifacts/apple/MachoLoadCommandReader.js +294 -0
  154. package/dist/artifacts/apple/NibViewHierarchy.js +150 -0
  155. package/dist/{application → artifacts/extraction}/ArtifactExtraction.js +10 -10
  156. package/dist/{application → artifacts/inventory}/ArtifactGraphConstruction.js +3 -3
  157. package/dist/{application → artifacts/inventory}/ArtifactInventory.js +4 -4
  158. package/dist/{application/ArtifactInventory → artifacts/inventory}/classify.js +2 -2
  159. package/dist/{application/ArtifactInventory → artifacts/inventory}/reader.js +5 -5
  160. package/dist/{application/ArtifactInventory → artifacts/inventory}/scanCanonical.js +3 -3
  161. package/dist/{application/ArtifactInventory → artifacts/inventory}/scanReader.js +5 -5
  162. package/dist/{application → artifacts/javascript}/JavaScriptArtifactFiles.js +27 -6
  163. package/dist/artifacts/javascript/JavaScriptArtifactReader.js +6 -0
  164. package/dist/artifacts/readStableArtifact.js +68 -0
  165. package/dist/browser/BrowserScenarioSecrets.js +50 -8
  166. package/dist/browser/CdpAuthorizedMainFrame.js +4 -4
  167. package/dist/browser/CdpAuthorizedTarget.js +22 -0
  168. package/dist/browser/CdpBrowserProvider.js +4 -15
  169. package/dist/browser/CdpCaptureDocuments.js +33 -21
  170. package/dist/browser/CdpCaptureEventBodyShapes.js +3 -3
  171. package/dist/browser/CdpCaptureEventHandlers.js +116 -28
  172. package/dist/browser/CdpCaptureEventHelpers.js +6 -6
  173. package/dist/browser/CdpCaptureEvents.js +9 -0
  174. package/dist/browser/CdpCaptureStorage.js +10 -8
  175. package/dist/browser/CdpCaptureStorageFingerprints.js +24 -22
  176. package/dist/browser/CdpCaptureValues.js +2 -2
  177. package/dist/browser/CdpCommandRejection.js +17 -0
  178. package/dist/browser/CdpConnection.js +51 -11
  179. package/dist/browser/CdpElectronInspection.js +10 -10
  180. package/dist/browser/CdpElectronProvider.js +3 -6
  181. package/dist/browser/CdpElectronScriptEvents.js +6 -6
  182. package/dist/browser/CdpElectronScripts.js +2 -2
  183. package/dist/browser/CdpElectronWorkers.js +4 -4
  184. package/dist/browser/CdpObservationSession.js +18 -23
  185. package/dist/browser/CdpPageCapture.js +4 -4
  186. package/dist/browser/CdpPageCaptureScripts.js +2 -2
  187. package/dist/browser/CdpPageCaptureWorkers.js +9 -9
  188. package/dist/browser/CdpSafeMetadata.js +48 -10
  189. package/dist/browser/CdpScreenshot.js +5 -5
  190. package/dist/browser/CdpTargetEvents.js +8 -0
  191. package/dist/browser/CdpTargetSession.js +2 -2
  192. package/dist/browser/CdpWebMcpDiscovery.js +22 -16
  193. package/dist/browser/PlaywrightBrowserScenarioProvider.js +7 -6
  194. package/dist/browser/PlaywrightElectronActiveProvider.js +15 -9
  195. package/dist/browser/PlaywrightScenarioEvents.js +59 -51
  196. package/dist/browser/PlaywrightScenarioSession.js +8 -1
  197. package/dist/browser/WebSourceMapFetcher.js +37 -53
  198. package/dist/browser/assets/LocalWebScriptArtifacts.js +87 -0
  199. package/dist/browser/assets/PageScriptCapture.js +32 -0
  200. package/dist/browser/assets/PublishWebScripts.js +74 -0
  201. package/dist/browser/assets/ScenarioScriptCapture.js +76 -0
  202. package/dist/browser/assets/ScriptCaptureAdapters.js +57 -0
  203. package/dist/browser/assets/WebArtifactReads.js +56 -0
  204. package/dist/browser/assets/WebSourceLocationArtifacts.js +40 -0
  205. package/dist/browser/execution/CdpEventListeners.js +79 -0
  206. package/dist/browser/execution/CdpExecutionCapture.js +135 -0
  207. package/dist/browser/execution/CdpExecutionCollection.js +57 -0
  208. package/dist/browser/execution/CdpExecutionWindow.js +100 -0
  209. package/dist/browser/execution/CdpListenerSelector.js +22 -0
  210. package/dist/browser/execution/CdpPreciseCoverage.js +48 -0
  211. package/dist/browser/execution/CdpRuntimeInitiator.js +18 -0
  212. package/dist/browser/execution/CdpRuntimeProtocol.js +106 -0
  213. package/dist/browser/execution/CdpRuntimeRequests.js +81 -0
  214. package/dist/browser/execution/CdpRuntimeSession.js +163 -0
  215. package/dist/browser/execution/CdpRuntimeSources.js +223 -0
  216. package/dist/browser/execution/CdpWebRuntimeProvider.js +51 -0
  217. package/dist/browser/history/CaptureFailures.js +101 -0
  218. package/dist/browser/history/CaptureFormatError.js +10 -0
  219. package/dist/browser/history/CaptureRedaction.js +65 -0
  220. package/dist/browser/history/CaptureRelease.js +12 -0
  221. package/dist/browser/history/HarCapture.js +165 -0
  222. package/dist/browser/history/HarCaptureAdapter.js +20 -0
  223. package/dist/browser/history/HarCaptureProcess.js +57 -0
  224. package/dist/browser/history/HarJson.js +91 -0
  225. package/dist/browser/history/HarSchema.js +72 -0
  226. package/dist/browser/history/HistoricalCaptureDecoder.js +186 -0
  227. package/dist/browser/history/HistoricalCaptureFormatAdapter.js +1 -0
  228. package/dist/browser/history/MitmproxyCaptureAdapter.js +42 -0
  229. package/dist/browser/modules/NativeModuleResolver.js +210 -0
  230. package/dist/browser/modules/WebModuleArtifacts.js +40 -0
  231. package/dist/browser/network/PlaywrightNetworkContent.js +71 -0
  232. package/dist/browser/network/PlaywrightScenarioNetwork.js +180 -0
  233. package/dist/browser/providerIdentities.js +24 -0
  234. package/dist/catalogIdentity.js +23 -15
  235. package/dist/cli/androidCommands.js +13 -3
  236. package/dist/cli/applicationCommands.js +39 -8
  237. package/dist/cli/artifactCommands.js +27 -2
  238. package/dist/cli/binaryDiagnosticsCommands.js +39 -0
  239. package/dist/cli/browserAdvancedCommands.js +27 -9
  240. package/dist/cli/coreAnalysisCommands.js +6 -494
  241. package/dist/cli/coreBinaryCommands.js +211 -0
  242. package/dist/cli/coreNativeCommands.js +293 -0
  243. package/dist/cli/electronCommands.js +29 -27
  244. package/dist/cli/evmCommands.js +24 -0
  245. package/dist/cli/firmwareCommands.js +9 -6
  246. package/dist/cli/javascriptApplicationAnalysis.js +17 -4
  247. package/dist/cli/javascriptRecoveryCommands.js +45 -0
  248. package/dist/cli/jsonOutput.js +133 -0
  249. package/dist/cli/managedCommands.js +4 -4
  250. package/dist/cli/managedProjectGraphCommand.js +1 -1
  251. package/dist/cli/nativeCallCommands.js +35 -0
  252. package/dist/cli/processCommands.js +1 -1
  253. package/dist/cli/referenceSourceImportStatus.js +6 -1
  254. package/dist/cli/streamedJsonOutput.js +56 -0
  255. package/dist/cli/utilityCommands.js +49 -23
  256. package/dist/cli/webModuleCommands.js +56 -0
  257. package/dist/cli/webNetworkCaptureCommands.js +40 -0
  258. package/dist/cli/webRuntimeCommands.js +60 -0
  259. package/dist/cli/webScriptCommands.js +31 -0
  260. package/dist/cli/webSourceLocationCommands.js +42 -0
  261. package/dist/cli.js +19 -3
  262. package/dist/cliBrowserContext.js +4 -2
  263. package/dist/cliBrowserScenarioCommands.js +6 -5
  264. package/dist/cliCommandNames.js +14 -0
  265. package/dist/cliJavaScriptRuntimeCommands.js +6 -4
  266. package/dist/cliJsonInput.js +38 -2
  267. package/dist/cliOutput.js +52 -11
  268. package/dist/composition/android.js +3 -0
  269. package/dist/composition/auxiliaryAnalysisProviders.js +30 -0
  270. package/dist/composition/binary.js +25 -0
  271. package/dist/composition/binaryDiagnostics.js +8 -0
  272. package/dist/composition/browserObservation.js +3 -0
  273. package/dist/composition/browserScenario.js +3 -0
  274. package/dist/composition/directAnalysis.js +17 -0
  275. package/dist/composition/electronObservation.js +3 -0
  276. package/dist/composition/electronScenario.js +3 -0
  277. package/dist/composition/evm.js +4 -0
  278. package/dist/composition/firmware.js +3 -0
  279. package/dist/composition/javascriptRecovery.js +3 -0
  280. package/dist/composition/javascriptRuntimeObservation.js +3 -0
  281. package/dist/composition/optionalObservationProviders.js +49 -0
  282. package/dist/composition/webModules.js +5 -0
  283. package/dist/composition/webNetworkCaptures.js +6 -0
  284. package/dist/composition/webRuntime.js +4 -0
  285. package/dist/composition/webSourceLocations.js +5 -0
  286. package/dist/config/parseConfig.js +22 -3
  287. package/dist/contracts/{androidToolContracts.js → android/androidToolContracts.js} +5 -5
  288. package/dist/contracts/applicationToolContracts.js +43 -8
  289. package/dist/contracts/artifactToolContracts.js +8 -2
  290. package/dist/contracts/browserCaptureToolInputSchema.js +43 -0
  291. package/dist/contracts/browserScenarioToolContracts.js +1 -1
  292. package/dist/contracts/browserToolContracts.js +4 -3
  293. package/dist/contracts/enhancedInputs.js +1 -1
  294. package/dist/contracts/errorSchemas.js +8 -1
  295. package/dist/contracts/evm/evmToolContracts.js +20 -0
  296. package/dist/contracts/{firmwareToolContracts.js → firmware/firmwareToolContracts.js} +5 -5
  297. package/dist/contracts/investigationExamples.js +2 -2
  298. package/dist/contracts/{applicationWorkflowInputContracts.js → javascript/applicationWorkflowInputContracts.js} +6 -6
  299. package/dist/contracts/{electronToolContracts.js → javascript/electronToolContracts.js} +6 -6
  300. package/dist/contracts/{javascriptApplicationWorkflowExamples.js → javascript/javascriptApplicationWorkflowExamples.js} +3 -3
  301. package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +23 -0
  302. package/dist/contracts/{javascriptRuntimeObservationToolContracts.js → javascript/javascriptRuntimeObservationToolContracts.js} +3 -3
  303. package/dist/contracts/{javascriptRuntimeReconciliationExample.js → javascript/javascriptRuntimeReconciliationExample.js} +5 -5
  304. package/dist/contracts/{managedToolContracts.js → managed/managedToolContracts.js} +10 -6
  305. package/dist/contracts/{managedWorkflowExamples.js → managed/managedWorkflowExamples.js} +1 -1
  306. package/dist/contracts/{managedWorkflowToolContracts.js → managed/managedWorkflowToolContracts.js} +6 -6
  307. package/dist/contracts/mobileApplicationGraphExamples.js +105 -0
  308. package/dist/contracts/native/binaryDiagnosticsToolContracts.js +42 -0
  309. package/dist/contracts/{nativeToolContracts.js → native/nativeToolContracts.js} +31 -8
  310. package/dist/contracts/officialToolContracts.js +15 -12
  311. package/dist/contracts/process/processCaptureExample.js +2 -0
  312. package/dist/contracts/sessionLifecycleInputs.js +22 -5
  313. package/dist/contracts/sessionStatusContract.js +10 -2
  314. package/dist/contracts/sessionToolContracts.js +9 -2
  315. package/dist/contracts/sessionToolSchemas.js +10 -3
  316. package/dist/contracts/toolContractExamples.js +1 -1
  317. package/dist/contracts/toolContracts.js +19 -7
  318. package/dist/contracts/toolEffects.js +62 -0
  319. package/dist/contracts/toolOutputSchemaGroups.js +23 -19
  320. package/dist/contracts/toolOutputSchemaPrimitives.js +1 -1
  321. package/dist/contracts/webNetworkCaptureToolContracts.js +24 -0
  322. package/dist/contracts/webRuntimeToolContracts.js +43 -0
  323. package/dist/contracts/webScriptToolContracts.js +68 -0
  324. package/dist/domain/analysisErrorBase.js +15 -0
  325. package/dist/domain/analysisErrorCore.js +63 -7
  326. package/dist/domain/analysisErrorPresentation.js +29 -1
  327. package/dist/domain/analysisErrorProjection.js +53 -2
  328. package/dist/domain/analysisSnapshot.js +166 -2
  329. package/dist/domain/{androidApplication.js → android/androidApplication.js} +7 -6
  330. package/dist/domain/apple/appleApplication.js +277 -0
  331. package/dist/domain/{appleAssetCatalog.js → apple/appleAssetCatalog.js} +2 -2
  332. package/dist/domain/apple/appleBundleAnatomy.js +236 -0
  333. package/dist/domain/apple/dyldPaths.js +81 -0
  334. package/dist/domain/apple/dylibResolution.js +367 -0
  335. package/dist/domain/apple/dylibResolutionFindings.js +75 -0
  336. package/dist/domain/{interfaceBuilderGraph.js → apple/interfaceBuilderGraph.js} +47 -314
  337. package/dist/domain/apple/interfaceBuilderKeyedArchive.js +411 -0
  338. package/dist/domain/{keyedArchive.js → apple/keyedArchive.js} +10 -9
  339. package/dist/domain/apple/plistValue.js +35 -0
  340. package/dist/domain/artifactInventoryEvidence.js +12 -2
  341. package/dist/domain/artifactInventorySnapshot.js +1 -0
  342. package/dist/domain/artifactOperationError.js +5 -1
  343. package/dist/domain/artifactPathSyntax.js +26 -0
  344. package/dist/domain/browserNetworkEvidence.js +82 -0
  345. package/dist/domain/browserObservation.js +1 -1
  346. package/dist/domain/browserObservationError.js +2 -0
  347. package/dist/domain/browserObservationSchemas.js +15 -1
  348. package/dist/domain/browserScenarioCapture.js +22 -0
  349. package/dist/domain/browserScenarioCaptureValues.js +25 -0
  350. package/dist/domain/browserScenarioDiff.js +6 -3
  351. package/dist/domain/browserScenarioDiffEvidence.js +35 -1
  352. package/dist/domain/browserScenarioValues.js +21 -3
  353. package/dist/domain/browserSession.js +2 -7
  354. package/dist/domain/bundleComparison.js +2 -1
  355. package/dist/domain/callPath.js +52 -44
  356. package/dist/domain/callPathSchemas.js +1 -1
  357. package/dist/domain/canonicalDigest.js +13 -1
  358. package/dist/domain/changedBehavior.js +3 -3
  359. package/dist/domain/comparisonStatus.js +11 -0
  360. package/dist/domain/conformanceTrustGate.js +0 -16
  361. package/dist/domain/evidence.js +17 -5
  362. package/dist/domain/evidenceBundle.js +98 -35
  363. package/dist/domain/evm/evmInterface.js +63 -0
  364. package/dist/domain/explicitSensitiveFailure.js +92 -0
  365. package/dist/domain/explicitSensitiveValues.js +10 -0
  366. package/dist/domain/{firmwareAnalysis.js → firmware/firmwareAnalysis.js} +10 -3
  367. package/dist/domain/functionComparisonNormalization.js +11 -13
  368. package/dist/domain/hopperValues.js +2 -2
  369. package/dist/domain/inputIssueProjection.js +17 -2
  370. package/dist/domain/{electronActiveObservation.js → javascript/electronActiveObservation.js} +9 -4
  371. package/dist/domain/{electronObservation.js → javascript/electronObservation.js} +5 -11
  372. package/dist/domain/{electronStaticAnalysisBrowser.js → javascript/electronStaticAnalysisBrowser.js} +4 -3
  373. package/dist/domain/{electronStaticAnalysisIpc.js → javascript/electronStaticAnalysisIpc.js} +2 -2
  374. package/dist/domain/{electronStaticAnalysisNative.js → javascript/electronStaticAnalysisNative.js} +12 -13
  375. package/dist/domain/javascript/electronStaticAnalysisTypes.js +1 -0
  376. package/dist/domain/{electronStaticAnalysisValues.js → javascript/electronStaticAnalysisValues.js} +3 -3
  377. package/dist/domain/javascript/htmlArtifactReferences.js +40 -0
  378. package/dist/domain/{javascriptApplicationAnalysis.js → javascript/javascriptApplicationAnalysis.js} +2 -2
  379. package/dist/domain/{javascriptApplicationChangeGraph.js → javascript/javascriptApplicationChangeGraph.js} +1 -1
  380. package/dist/domain/{javascriptApplicationEvidenceSchemas.js → javascript/javascriptApplicationEvidenceSchemas.js} +6 -4
  381. package/dist/domain/{javascriptApplicationGraph.js → javascript/javascriptApplicationGraph.js} +2 -2
  382. package/dist/domain/{javascriptApplicationGraphSchemas.js → javascript/javascriptApplicationGraphSchemas.js} +2 -2
  383. package/dist/domain/{javascriptApplicationVersionComparison.js → javascript/javascriptApplicationVersionComparison.js} +2 -2
  384. package/dist/domain/{javascriptApplicationVersionComparisonSchemas.js → javascript/javascriptApplicationVersionComparisonSchemas.js} +3 -3
  385. package/dist/domain/{javascriptApplicationVersionItems.js → javascript/javascriptApplicationVersionItems.js} +2 -2
  386. package/dist/domain/{javascriptApplicationVersionKeys.js → javascript/javascriptApplicationVersionKeys.js} +16 -9
  387. package/dist/domain/javascript/javascriptArtifactFiles.js +1 -0
  388. package/dist/domain/{javascriptAstFingerprint.js → javascript/javascriptAstFingerprint.js} +38 -22
  389. package/dist/domain/javascript/javascriptAstValues.js +23 -0
  390. package/dist/domain/{javascriptExportShapeComparison.js → javascript/javascriptExportShapeComparison.js} +21 -5
  391. package/dist/domain/{javascriptExportShapeComparisonSchemas.js → javascript/javascriptExportShapeComparisonSchemas.js} +2 -2
  392. package/dist/domain/{javascriptExportShapeSelection.js → javascript/javascriptExportShapeSelection.js} +1 -1
  393. package/dist/domain/{javascriptExportShapeVariants.js → javascript/javascriptExportShapeVariants.js} +1 -11
  394. package/dist/domain/{javascriptFeatureSeed.js → javascript/javascriptFeatureSeed.js} +4 -3
  395. package/dist/domain/{javascriptFeatureTrace.js → javascript/javascriptFeatureTrace.js} +2 -2
  396. package/dist/domain/{javascriptFeatureTraceSchemas.js → javascript/javascriptFeatureTraceSchemas.js} +32 -18
  397. package/dist/domain/{javascriptFeatureTraversal.js → javascript/javascriptFeatureTraversal.js} +6 -2
  398. package/dist/domain/{javascriptNativeHandoff.js → javascript/javascriptNativeHandoff.js} +1 -1
  399. package/dist/domain/javascript/javascriptRecovery.js +88 -0
  400. package/dist/domain/{javascriptRuntimeLoadState.js → javascript/javascriptRuntimeLoadState.js} +1 -1
  401. package/dist/domain/{javascriptRuntimeObservation.js → javascript/javascriptRuntimeObservation.js} +2 -2
  402. package/dist/domain/{javascriptRuntimeReconciliationActive.js → javascript/javascriptRuntimeReconciliationActive.js} +3 -3
  403. package/dist/domain/{javascriptRuntimeReconciliationGraph.js → javascript/javascriptRuntimeReconciliationGraph.js} +1 -1
  404. package/dist/domain/{javascriptRuntimeReconciliationMatching.js → javascript/javascriptRuntimeReconciliationMatching.js} +2 -2
  405. package/dist/domain/{javascriptRuntimeReconciliationParsing.js → javascript/javascriptRuntimeReconciliationParsing.js} +5 -5
  406. package/dist/domain/{javascriptRuntimeReconciliationResult.js → javascript/javascriptRuntimeReconciliationResult.js} +2 -2
  407. package/dist/domain/{javascriptRuntimeReconciliationSchemas.js → javascript/javascriptRuntimeReconciliationSchemas.js} +4 -4
  408. package/dist/domain/{javascriptRuntimeStaticCandidates.js → javascript/javascriptRuntimeStaticCandidates.js} +1 -1
  409. package/dist/domain/{javascriptSemanticAnalysis.js → javascript/javascriptSemanticAnalysis.js} +40 -14
  410. package/dist/domain/{javascriptSemanticAsyncEffects.js → javascript/javascriptSemanticAsyncEffects.js} +2 -1
  411. package/dist/domain/{javascriptSemanticCallResolution.js → javascript/javascriptSemanticCallResolution.js} +10 -5
  412. package/dist/domain/{javascriptSemanticCalls.js → javascript/javascriptSemanticCalls.js} +7 -4
  413. package/dist/domain/{javascriptSemanticChildProcesses.js → javascript/javascriptSemanticChildProcesses.js} +4 -2
  414. package/dist/domain/{javascriptSemanticDataEffectHelpers.js → javascript/javascriptSemanticDataEffectHelpers.js} +7 -6
  415. package/dist/domain/{javascriptSemanticDataEffects.js → javascript/javascriptSemanticDataEffects.js} +8 -6
  416. package/dist/domain/{javascriptSemanticFingerprints.js → javascript/javascriptSemanticFingerprints.js} +40 -16
  417. package/dist/domain/{javascriptSemanticGraph.js → javascript/javascriptSemanticGraph.js} +23 -7
  418. package/dist/domain/{javascriptSemanticGraphSchemas.js → javascript/javascriptSemanticGraphSchemas.js} +3 -3
  419. package/dist/domain/javascript/javascriptSemanticMemberMutations.js +116 -0
  420. package/dist/domain/javascript/javascriptSemanticMutationValues.js +53 -0
  421. package/dist/domain/{javascriptSemanticObjects.js → javascript/javascriptSemanticObjects.js} +5 -5
  422. package/dist/domain/{javascriptSemanticPrimitives.js → javascript/javascriptSemanticPrimitives.js} +1 -1
  423. package/dist/domain/{javascriptSemanticProjection.js → javascript/javascriptSemanticProjection.js} +31 -44
  424. package/dist/domain/{javascriptSemanticPromises.js → javascript/javascriptSemanticPromises.js} +77 -22
  425. package/dist/domain/{javascriptSemanticProvenance.js → javascript/javascriptSemanticProvenance.js} +4 -1
  426. package/dist/domain/{javascriptSemanticQuery.js → javascript/javascriptSemanticQuery.js} +1 -1
  427. package/dist/domain/{javascriptSemanticQueryAssessment.js → javascript/javascriptSemanticQueryAssessment.js} +1 -1
  428. package/dist/domain/{javascriptSemanticQueryIdentity.js → javascript/javascriptSemanticQueryIdentity.js} +1 -1
  429. package/dist/domain/{javascriptSemanticQuerySchemas.js → javascript/javascriptSemanticQuerySchemas.js} +3 -3
  430. package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +25 -0
  431. package/dist/domain/{javascriptSemanticResources.js → javascript/javascriptSemanticResources.js} +2 -1
  432. package/dist/domain/{javascriptSemanticReturns.js → javascript/javascriptSemanticReturns.js} +1 -1
  433. package/dist/domain/{javascriptSemanticTraceSchemas.js → javascript/javascriptSemanticTraceSchemas.js} +2 -2
  434. package/dist/domain/javascript/javascriptSemanticTraversal.js +55 -0
  435. package/dist/domain/javascript/javascriptSemanticValueTypes.js +1 -0
  436. package/dist/domain/{javascriptSemanticValues.js → javascript/javascriptSemanticValues.js} +72 -48
  437. package/dist/domain/{javascriptStaticAnalysis.js → javascript/javascriptStaticAnalysis.js} +7 -4
  438. package/dist/domain/{javascriptStaticAnalysisBundler.js → javascript/javascriptStaticAnalysisBundler.js} +14 -11
  439. package/dist/domain/{javascriptStaticAnalysisCalls.js → javascript/javascriptStaticAnalysisCalls.js} +2 -2
  440. package/dist/domain/{javascriptStaticAnalysisHelpers.js → javascript/javascriptStaticAnalysisHelpers.js} +231 -40
  441. package/dist/domain/{sourceToBundleComparison.js → javascript/sourceToBundleComparison.js} +2 -2
  442. package/dist/domain/{sourceToBundleComparisonSchemas.js → javascript/sourceToBundleComparisonSchemas.js} +4 -4
  443. package/dist/domain/{sourceToBundleSignals.js → javascript/sourceToBundleSignals.js} +2 -2
  444. package/dist/domain/jsonValue.js +4 -0
  445. package/dist/domain/localPath.js +2 -0
  446. package/dist/domain/{managedApplicationGraph.js → managed/managedApplicationGraph.js} +4 -4
  447. package/dist/domain/{managedApplicationGraphNodes.js → managed/managedApplicationGraphNodes.js} +1 -1
  448. package/dist/domain/{managedArtifact.js → managed/managedArtifact.js} +1 -1
  449. package/dist/domain/{managedMemberComparison.js → managed/managedMemberComparison.js} +4 -4
  450. package/dist/domain/{managedMemberComparisonCoverage.js → managed/managedMemberComparisonCoverage.js} +2 -1
  451. package/dist/domain/{managedMemberComparisonItems.js → managed/managedMemberComparisonItems.js} +97 -40
  452. package/dist/domain/{managedMemberComparisonMatch.js → managed/managedMemberComparisonMatch.js} +22 -11
  453. package/dist/domain/{managedNativeVerification.js → managed/managedNativeVerification.js} +1 -1
  454. package/dist/domain/{managedNativeVerificationMatch.js → managed/managedNativeVerificationMatch.js} +3 -3
  455. package/dist/domain/{managedNativeVerificationSchemas.js → managed/managedNativeVerificationSchemas.js} +6 -5
  456. package/dist/domain/{managedReconstruction.js → managed/managedReconstruction.js} +3 -3
  457. package/dist/domain/native/binaryLayout.js +357 -0
  458. package/dist/domain/native/nativeCallObservation.js +164 -0
  459. package/dist/domain/{nativeFunctionAnnotations.js → native/nativeFunctionAnnotations.js} +1 -1
  460. package/dist/domain/{nativeInspection.js → native/nativeInspection.js} +1 -1
  461. package/dist/domain/{nativeInvestigationGraph.js → native/nativeInvestigationGraph.js} +13 -4
  462. package/dist/domain/{nativeLoadImage.js → native/nativeLoadImage.js} +1 -1
  463. package/dist/domain/{nativeUiObservation.js → native/nativeUiObservation.js} +20 -6
  464. package/dist/domain/{objcSwiftMetadata.js → native/objcSwiftMetadata.js} +17 -39
  465. package/dist/domain/native/recordedCrash.js +266 -0
  466. package/dist/domain/native/recordedCrashNoteCoverage.js +73 -0
  467. package/dist/domain/process/processCapture.js +316 -0
  468. package/dist/domain/{processCaptureExample.js → process/processCaptureExample.js} +5 -0
  469. package/dist/domain/process/processCaptureParsing.js +54 -0
  470. package/dist/domain/{processCaptureValidation.js → process/processCaptureValidation.js} +18 -2
  471. package/dist/domain/{processComparison.js → process/processComparison.js} +1 -1
  472. package/dist/domain/{processObservation.js → process/processObservation.js} +1 -1
  473. package/dist/domain/{processScenario.js → process/processScenario.js} +17 -17
  474. package/dist/domain/{processTraceSpecification.js → process/processTraceSpecification.js} +1 -1
  475. package/dist/domain/propertyListKeys.js +69 -0
  476. package/dist/domain/providerCleanupError.js +5 -2
  477. package/dist/domain/providerSelectionError.js +4 -2
  478. package/dist/domain/reconstructionCoverageEvaluation.js +46 -24
  479. package/dist/domain/reconstructionCoverageInput.js +7 -0
  480. package/dist/domain/reconstructionVerification.js +3 -3
  481. package/dist/domain/reconstructionVerificationSchemas.js +1 -1
  482. package/dist/domain/residualUnknown.js +3 -2
  483. package/dist/domain/runtimeVersion.js +2 -0
  484. package/dist/domain/sourceMapEnvelope.js +38 -0
  485. package/dist/domain/staticRuntimeCorrelation.js +3 -3
  486. package/dist/domain/unicodeCodePointOrder.js +11 -6
  487. package/dist/domain/webBundleAnalyzerAst.js +2 -34
  488. package/dist/domain/webBundleAnalyzerInspection.js +12 -9
  489. package/dist/domain/webCaptureDiff.js +1 -0
  490. package/dist/domain/webEventListeners.js +28 -0
  491. package/dist/domain/webExecution.js +74 -0
  492. package/dist/domain/webMcpDiscovery.js +1 -7
  493. package/dist/domain/webModuleImports.js +104 -0
  494. package/dist/domain/webModuleTrace.js +106 -0
  495. package/dist/domain/webNetworkCapture.js +118 -0
  496. package/dist/domain/webNetworkCaptureCoordinates.js +58 -0
  497. package/dist/domain/webRuntime.js +69 -0
  498. package/dist/domain/webScreenshot.js +1 -7
  499. package/dist/domain/webScriptArtifacts.js +39 -0
  500. package/dist/domain/webScriptExport.js +86 -0
  501. package/dist/domain/webScriptExportError.js +13 -0
  502. package/dist/domain/webScriptExportPlan.js +108 -0
  503. package/dist/domain/webSourceLocation.js +106 -0
  504. package/dist/domain/webSourcePosition.js +21 -0
  505. package/dist/dotnet/ManagedArtifactInspector.js +1 -1
  506. package/dist/dotnet/ManagedExceptionRegionValidation.js +41 -0
  507. package/dist/dotnet/ManagedMemberInspector.js +5 -3
  508. package/dist/dotnet/ManagedMemberInspectorCore.js +72 -32
  509. package/dist/dotnet/ManagedMemberInstructionDecoder.js +23 -7
  510. package/dist/dotnet/ManagedMemberRows.js +19 -6
  511. package/dist/dotnet/ManagedMetadataHeaps.js +20 -2
  512. package/dist/dotnet/ManagedMetadataInventory.js +38 -28
  513. package/dist/dotnet/ManagedMetadataInventoryRows.js +24 -10
  514. package/dist/dotnet/ManagedMethodBodyReader.js +7 -1
  515. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +37 -19
  516. package/dist/dotnet/ManagedNativeBoundaryInspector.js +59 -51
  517. package/dist/dotnet/ManagedPeReader.js +11 -0
  518. package/dist/dotnet/ManagedStaticProvider.js +3 -33
  519. package/dist/dotnet/ManagedStaticProviderMetadata.js +36 -0
  520. package/dist/evaluation/CodexAgentEval.js +2 -1
  521. package/dist/evm/EvmBytecodeCarrier.js +21 -0
  522. package/dist/evm/EvmWorkerLimits.js +40 -0
  523. package/dist/evm/EvmoleFailures.js +126 -0
  524. package/dist/evm/EvmoleInterfaceAdapter.js +53 -0
  525. package/dist/evm/EvmoleInterfaceProvider.js +273 -0
  526. package/dist/evm/EvmoleInterfaceWorker.js +87 -0
  527. package/dist/evm/EvmoleRelease.js +16 -0
  528. package/dist/firmware/FirmwareCommand.js +1 -0
  529. package/dist/firmware/FirmwareProvider.js +18 -12
  530. package/dist/firmware/FirmwarePublication.js +1 -1
  531. package/dist/firmware/FirmwareRelease.js +1 -1
  532. package/dist/firmware/FirmwareReports.js +12 -0
  533. package/dist/firmware/FirmwareVersion.js +80 -0
  534. package/dist/generatedPackageMetadata.js +2 -2
  535. package/dist/ghidra/GhidraFunctionValues.js +5 -5
  536. package/dist/ghidra/GhidraInstallation.js +38 -34
  537. package/dist/ghidra/GhidraInstallationPolicy.js +140 -0
  538. package/dist/ghidra/GhidraInventoryValues.js +1 -1
  539. package/dist/ghidra/GhidraLauncher.js +13 -4
  540. package/dist/ghidra/GhidraLoadImageAttest.js +36 -0
  541. package/dist/ghidra/GhidraLoadImageValues.js +1 -1
  542. package/dist/ghidra/GhidraProvider.js +17 -235
  543. package/dist/ghidra/GhidraProviderCapabilities.js +8 -15
  544. package/dist/ghidra/GhidraProviderClient.js +209 -0
  545. package/dist/ghidra/GhidraResponseBuffer.js +7 -1
  546. package/dist/ghidra/extensions/nativeaot/NativeAotReport.js +17 -1
  547. package/dist/hopper/BridgeLauncher.js +2 -0
  548. package/dist/hopper/HopperProvider.js +2 -48
  549. package/dist/hopper/HopperProviderCapabilities.js +73 -0
  550. package/dist/hopper/HopperResponseStream.js +7 -1
  551. package/dist/hopper/LinuxPrivateDisplayProbe.js +8 -6
  552. package/dist/ida/IdaProviderCapabilities.js +3 -11
  553. package/dist/ida/IdaSessionClient.js +12 -0
  554. package/dist/{browser → inspector}/JavaScriptRuntimeScope.js +16 -5
  555. package/dist/{browser → inspector}/V8InspectorCaptureProjection.js +46 -8
  556. package/dist/{browser → inspector}/V8InspectorEndpoint.js +1 -1
  557. package/dist/{browser → inspector}/V8InspectorProvider.js +10 -13
  558. package/dist/inspector/providerIdentity.js +6 -0
  559. package/dist/javascript/recovery/RecoveryFiles.js +122 -0
  560. package/dist/javascript/recovery/WakaruCommand.js +119 -0
  561. package/dist/javascript/recovery/WakaruExecution.js +100 -0
  562. package/dist/javascript/recovery/WakaruProvider.js +96 -0
  563. package/dist/javascript/recovery/WakaruPublication.js +102 -0
  564. package/dist/javascript/recovery/WakaruRelease.js +29 -0
  565. package/dist/javascript/recovery/WakaruReport.js +134 -0
  566. package/dist/javascript/sourceMaps/SourceMapCodecProcess.js +37 -0
  567. package/dist/javascript/sourceMaps/SourceMapCodecProtocol.js +20 -0
  568. package/dist/javascript/sourceMaps/SourceMapCommand.js +177 -0
  569. package/dist/javascript/sourceMaps/SourceMapDecoder.js +61 -0
  570. package/dist/javascript/sourceMaps/SourceMapFormat.js +185 -0
  571. package/dist/javascript/sourceMaps/TraceSourceMap.js +138 -0
  572. package/dist/main/shutdown.js +8 -2
  573. package/dist/main/transport.js +24 -7
  574. package/dist/main.js +4 -18
  575. package/dist/native/AppleDispatchCoverage.js +58 -0
  576. package/dist/native/AppleDispatchMetadata.js +71 -509
  577. package/dist/native/AppleMachoFixups.js +292 -0
  578. package/dist/native/AppleMachoSelection.js +188 -0
  579. package/dist/native/AppleObjcCategories.js +59 -0
  580. package/dist/native/AppleObjcDispatchFacets.js +257 -0
  581. package/dist/native/AppleObjcProperties.js +68 -0
  582. package/dist/native/AppleObjcProtocols.js +2 -1
  583. package/dist/native/AppleSwiftDispatchFacets.js +150 -0
  584. package/dist/native/CommandRunner.js +2 -1
  585. package/dist/native/LldbCallTracer.js +278 -0
  586. package/dist/native/NativeCallObservation.js +135 -0
  587. package/dist/native/NativeMacOSProvider.js +151 -75
  588. package/dist/native/NativeMacOSProviderMetadata.js +47 -0
  589. package/dist/native/NativeMachoInspection.js +45 -14
  590. package/dist/native/NativeUiHelperRuntime.js +7 -3
  591. package/dist/native/NativeUiObservation.js +8 -4
  592. package/dist/native/NativeUiOutputBudget.js +8 -0
  593. package/dist/native/parsers/codesign.js +40 -5
  594. package/dist/native/parsers/demangle.js +6 -2
  595. package/dist/native/parsers/dyldInfo.js +13 -4
  596. package/dist/native/parsers/echoedPath.js +14 -0
  597. package/dist/native/parsers/lipo.js +14 -0
  598. package/dist/native/parsers/otool.js +1 -1
  599. package/dist/native/parsers/plist.js +174 -19
  600. package/dist/native/pwndbg/PwndbgCoreContext.js +160 -0
  601. package/dist/native/pwntools/PwntoolsDecoder.js +203 -0
  602. package/dist/native/pwntools/PwntoolsFailures.js +180 -0
  603. package/dist/native/pwntools/PwntoolsLayoutProvider.js +36 -0
  604. package/dist/native/pwntools/PwntoolsRecordedCrashProvider.js +75 -0
  605. package/dist/native/pwntools/PwntoolsRelease.js +19 -0
  606. package/dist/native/pwntools/PwntoolsResourceLimits.js +76 -0
  607. package/dist/native/pwntools/RecordedCrashSourceBindings.js +46 -0
  608. package/dist/native/pwntools/RecordedCrashStructureBindings.js +101 -0
  609. package/dist/process/DarwinProcessRunTokenReader.js +294 -0
  610. package/dist/process/ExecFileOutput.js +2 -0
  611. package/dist/process/OwnedCommand.js +113 -0
  612. package/dist/process/ProcessOwnership.js +263 -33
  613. package/dist/process/ProcessOwnershipObservation.js +161 -24
  614. package/dist/process/ProviderProcess.js +68 -20
  615. package/dist/{application → process/capture}/FilesystemSnapshot.js +20 -5
  616. package/dist/{application → process/capture}/ProcessCaptureCapability.js +16 -1
  617. package/dist/{application → process/capture}/ProcessCaptureError.js +17 -1
  618. package/dist/process/capture/ProcessCaptureLifecycle.js +615 -0
  619. package/dist/process/capture/ProcessHarness.js +452 -0
  620. package/dist/{application → process/capture}/ProcessSampling.js +2 -2
  621. package/dist/reference/ReferenceSourceReaderEntries.js +6 -1
  622. package/dist/server/createServer.js +70 -6
  623. package/dist/server/mcpClientMetadata.js +6 -3
  624. package/dist/server/promptCompletion.js +10 -3
  625. package/dist/server/registerAndroidTools.js +1 -1
  626. package/dist/server/registerApplicationTools/compareExportShapes.js +2 -2
  627. package/dist/server/registerApplicationTools/compareSourceToBundle.js +2 -2
  628. package/dist/server/registerApplicationTools/compareVersions.js +2 -2
  629. package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +43 -0
  630. package/dist/server/registerApplicationTools/traceFeature.js +1 -1
  631. package/dist/server/registerApplicationTools/traceSemantics.js +1 -1
  632. package/dist/server/registerApplicationTools.js +2 -0
  633. package/dist/server/registerBinaryDiagnosticsTools.js +17 -0
  634. package/dist/server/registerBrowserScenarioTool.js +6 -2
  635. package/dist/server/registerBrowserTools.js +13 -2
  636. package/dist/server/registerCloseLifecycleTool.js +1 -1
  637. package/dist/server/registerElectronTools.js +21 -7
  638. package/dist/server/registerEvidenceTools.js +1 -1
  639. package/dist/server/registerEvmTools.js +17 -0
  640. package/dist/server/registerJavaScriptRecoveryTool.js +17 -0
  641. package/dist/server/registerJavaScriptRuntimeObservationTools.js +9 -4
  642. package/dist/server/registerManagedTools.js +3 -3
  643. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +2 -2
  644. package/dist/server/registerManagedWorkflowTools/contract.js +1 -1
  645. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +1 -1
  646. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +1 -1
  647. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +2 -2
  648. package/dist/server/registerNativeTools.js +1 -1
  649. package/dist/server/registerProcessComparisonTool.js +1 -1
  650. package/dist/server/registerPrompts.js +5 -1
  651. package/dist/server/registerRecordedCrashTools.js +17 -0
  652. package/dist/server/registerSessionTools.js +3 -3
  653. package/dist/server/registerWebModuleTool.js +17 -0
  654. package/dist/server/registerWebNetworkCaptureTool.js +28 -0
  655. package/dist/server/registerWebRuntimeTools.js +31 -0
  656. package/dist/server/registerWebScriptTool.js +18 -0
  657. package/dist/server/registerWebSourceLocationTool.js +17 -0
  658. package/dist/server/sessionAvailabilityPolicy.js +27 -12
  659. package/dist/server/sessionToolPolicies.js +1 -1
  660. package/dist/server/toolResult.js +1 -1
  661. package/dist/windows/WindowsOwnedProcess.js +3 -1
  662. package/install.sh +12 -2
  663. package/native/windows/README.md +5 -0
  664. package/native/windows/build/manifest.json +2 -2
  665. package/native/windows/build/rea-windows-x64.node +0 -0
  666. package/package.json +75 -26
  667. package/scripts/hopper-demo-x11.py +67 -8
  668. package/scripts/rea.mjs +19 -3
  669. package/skills/reverse-engineer-anything/SKILL.md +23 -3
  670. package/skills/reverse-engineer-anything/references/android-applications.md +2 -2
  671. package/skills/reverse-engineer-anything/references/javascript-applications.md +1 -1
  672. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +61 -23
  673. package/third_party/README.md +60 -0
  674. package/third_party/evmole/LICENSE +21 -0
  675. package/third_party/evmole/README.md +22 -0
  676. package/third_party/pwndbg/LICENSE.md +21 -0
  677. package/third_party/pwndbg/README.md +23 -0
  678. package/third_party/pwntools/README.md +40 -0
  679. package/dist/application/AuthorizedArtifactInventory.js +0 -7
  680. package/dist/application/JavaScriptSemanticGraphProjection.js +0 -38
  681. package/dist/application/ProcessCaptureLifecycle.js +0 -299
  682. package/dist/application/ProcessHarness.js +0 -275
  683. package/dist/application/StoreFileLock.js +0 -124
  684. package/dist/application/runtime.js +0 -53
  685. package/dist/contracts/processCaptureExample.js +0 -2
  686. package/dist/domain/appleApplication.js +0 -181
  687. package/dist/domain/bytecodeProvider.js +0 -178
  688. package/dist/domain/customProtocolCapture.js +0 -137
  689. package/dist/domain/eventProcessTree.js +0 -225
  690. package/dist/domain/javascriptAstValues.js +0 -13
  691. package/dist/domain/javascriptSemanticTraversal.js +0 -30
  692. package/dist/domain/mobileApplicationInvestigation.js +0 -159
  693. package/dist/domain/packageAnalysis.js +0 -123
  694. package/dist/domain/peInspection.js +0 -197
  695. package/dist/domain/processCapture.js +0 -177
  696. package/dist/domain/processCaptureParsing.js +0 -21
  697. package/dist/domain/protocolCapture.js +0 -217
  698. package/dist/domain/runtimeIdentification.js +0 -212
  699. package/dist/generatedMcpToolCatalog.js +0 -37
  700. package/dist/native/NativeHostCapabilities.js +0 -23
  701. /package/dist/application/{AndroidAnalysisPort.js → DirectAnalysisDependencies.js} +0 -0
  702. /package/dist/application/{BinarySessionPort.js → WebModulePorts.js} +0 -0
  703. /package/dist/application/{ElectronActiveObservationPort.js → WebNetworkCapturePort.js} +0 -0
  704. /package/dist/application/{ElectronObservationPort.js → WebRuntimePort.js} +0 -0
  705. /package/dist/application/{FirmwareAnalysisPort.js → WebScriptArtifactPort.js} +0 -0
  706. /package/dist/application/{JavaScriptArtifactAnalysisTypes.js → WebSourceLocationPorts.js} +0 -0
  707. /package/dist/application/{JavaScriptRuntimeObservationPort.js → android/AndroidAnalysisPort.js} +0 -0
  708. /package/dist/application/{ArtifactExtractionDestination.js → artifacts/ArtifactExtractionDestination.js} +0 -0
  709. /package/dist/application/{AbortablePromise.js → binary/AbortablePromise.js} +0 -0
  710. /package/dist/{domain/electronStaticAnalysisTypes.js → application/binary/BinarySessionPort.js} +0 -0
  711. /package/dist/application/{BinarySessionStatus.js → binary/BinarySessionStatus.js} +0 -0
  712. /package/dist/{domain/javascriptSemanticValueTypes.js → application/binaryDiagnostics/BinaryLayoutPort.js} +0 -0
  713. /package/dist/application/{ElectronBoundaryGraph.js → javascript/ElectronBoundaryGraph.js} +0 -0
  714. /package/dist/application/{ElectronBoundaryGraphIpc.js → javascript/ElectronBoundaryGraphIpc.js} +0 -0
  715. /package/dist/application/{ElectronBoundaryGraphNative.js → javascript/ElectronBoundaryGraphNative.js} +0 -0
  716. /package/dist/application/{ElectronBoundaryGraphWindows.js → javascript/ElectronBoundaryGraphWindows.js} +0 -0
  717. /package/dist/application/{JavaScriptArtifactGraphBundlers.js → javascript/JavaScriptArtifactGraphBundlers.js} +0 -0
  718. /package/dist/application/{JavaScriptArtifactGraphEvidence.js → javascript/JavaScriptArtifactGraphEvidence.js} +0 -0
  719. /package/dist/application/{JavaScriptArtifactReconstructionInput.js → javascript/JavaScriptArtifactReconstructionInput.js} +0 -0
  720. /package/dist/application/{JavaScriptSemanticGraphEvidence.js → javascript/JavaScriptSemanticGraphEvidence.js} +0 -0
  721. /package/dist/artifacts/{NibArchive.js → apple/NibArchive.js} +0 -0
  722. /package/dist/{application/ArtifactInventory → artifacts/inventory}/policy.js +0 -0
  723. /package/dist/{application/ArtifactInventory → artifacts/inventory}/types.js +0 -0
  724. /package/dist/domain/{androidAnalysis.js → android/androidAnalysis.js} +0 -0
  725. /package/dist/domain/{electronStaticAnalysis.js → javascript/electronStaticAnalysis.js} +0 -0
  726. /package/dist/domain/{javascriptExportShapeComparisonIdentity.js → javascript/javascriptExportShapeComparisonIdentity.js} +0 -0
  727. /package/dist/domain/{javascriptRuntimeReconciliation.js → javascript/javascriptRuntimeReconciliation.js} +0 -0
  728. /package/dist/domain/{javascriptRuntimeReconciliationRuntime.js → javascript/javascriptRuntimeReconciliationRuntime.js} +0 -0
  729. /package/dist/domain/{javascriptSemanticCoverage.js → javascript/javascriptSemanticCoverage.js} +0 -0
  730. /package/dist/domain/{javascriptSemanticDerivedAnalysis.js → javascript/javascriptSemanticDerivedAnalysis.js} +0 -0
  731. /package/dist/domain/{javascriptSemanticGraphSerialization.js → javascript/javascriptSemanticGraphSerialization.js} +0 -0
  732. /package/dist/domain/{javascriptSemanticIr.js → javascript/javascriptSemanticIr.js} +0 -0
  733. /package/dist/domain/{javascriptSemanticQueryRelations.js → javascript/javascriptSemanticQueryRelations.js} +0 -0
  734. /package/dist/domain/{javascriptSemanticState.js → javascript/javascriptSemanticState.js} +0 -0
  735. /package/dist/domain/{javascriptSourceParser.js → javascript/javascriptSourceParser.js} +0 -0
  736. /package/dist/domain/{javascriptStaticAnalysisFindings.js → javascript/javascriptStaticAnalysisFindings.js} +0 -0
  737. /package/dist/domain/{javascriptStaticAnalysisState.js → javascript/javascriptStaticAnalysisState.js} +0 -0
  738. /package/dist/domain/{javascriptStaticAnalysisTypes.js → javascript/javascriptStaticAnalysisTypes.js} +0 -0
  739. /package/dist/domain/{managedApplicationGraphCoverage.js → managed/managedApplicationGraphCoverage.js} +0 -0
  740. /package/dist/domain/{managedApplicationGraphNodeCoverage.js → managed/managedApplicationGraphNodeCoverage.js} +0 -0
  741. /package/dist/domain/{nativeApiBoundary.js → native/nativeApiBoundary.js} +0 -0
  742. /package/dist/domain/{nativeDataType.js → native/nativeDataType.js} +0 -0
  743. /package/dist/domain/{nativeInstruction.js → native/nativeInstruction.js} +0 -0
  744. /package/dist/domain/{nativeMetadataRecovery.js → native/nativeMetadataRecovery.js} +0 -0
  745. /package/dist/domain/{nativeValueFlow.js → native/nativeValueFlow.js} +0 -0
  746. /package/dist/domain/{nativeValueTrace.js → native/nativeValueTrace.js} +0 -0
  747. /package/dist/domain/{processEvidenceProvider.js → process/processEvidenceProvider.js} +0 -0
  748. /package/dist/domain/{processTraceComparison.js → process/processTraceComparison.js} +0 -0
  749. /package/dist/domain/{processTraceDimensionProjection.js → process/processTraceDimensionProjection.js} +0 -0
  750. /package/dist/domain/{processTraceEvaluation.js → process/processTraceEvaluation.js} +0 -0
  751. /package/dist/{application → process/capture}/ProcessCaptureEnvironment.js +0 -0
  752. /package/dist/{application → process/capture}/ProcessCaptureJournal.js +0 -0
  753. /package/dist/{application → process/capture}/ProcessFilesystemEffects.js +0 -0
  754. /package/dist/{application → process/capture}/ProcessNormalization.js +0 -0
  755. /package/dist/{application → process/capture}/ProcessScenarioRuntimeValidation.js +0 -0
  756. /package/dist/{application → process/capture}/ProcessTimer.js +0 -0
  757. /package/dist/{application → process/capture}/TerminalRenderer.js +0 -0
@@ -1,10 +1,29 @@
1
+ import { accessSync, constants } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
1
4
  import { ConfigurationError } from "../domain/configurationErrors.js";
2
5
  import { ok } from "../domain/result.js";
3
6
  import { parseEnvironment } from "./environment.js";
4
7
  import { parseStringArray, parseLoaderArgs } from "./parsers.js";
5
- const defaultHopperLauncherPath = () => process.platform === "linux"
6
- ? "/opt/hopper/bin/Hopper"
7
- : "/Applications/Hopper Disassembler.app/Contents/MacOS/hopper";
8
+ const DEFAULT_HOPPER_LAUNCHER_PATH = "/Applications/Hopper Disassembler.app/Contents/MacOS/hopper";
9
+ const SYSTEM_LINUX_HOPPER = "/opt/hopper/bin/Hopper";
10
+ const executableAvailable = (path) => {
11
+ try {
12
+ accessSync(path, constants.X_OK);
13
+ return true;
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ };
19
+ export const defaultHopperLauncherPath = (platform = process.platform, homeDirectory = homedir(), executable = executableAvailable) => {
20
+ if (platform !== "linux")
21
+ return DEFAULT_HOPPER_LAUNCHER_PATH;
22
+ if (executable(SYSTEM_LINUX_HOPPER))
23
+ return SYSTEM_LINUX_HOPPER;
24
+ const userLocal = join(homeDirectory, ".local/share/rea/hopper/bin/Hopper");
25
+ return executable(userLocal) ? userLocal : SYSTEM_LINUX_HOPPER;
26
+ };
8
27
  /** Parse provider configuration and runtime prerequisites at the composition root. */
9
28
  export const parseConfig = (environment) => {
10
29
  const parsed = parseEnvironment(environment);
@@ -1,12 +1,12 @@
1
- import { androidInputSchemas, androidResultSchemas, } from "../domain/androidAnalysis.js";
2
- import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js";
3
- import { toolContractMetadata } from "./toolEffects.js";
1
+ import { androidInputSchemas, androidResultSchemas, } from "../../domain/android/androidAnalysis.js";
2
+ import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js";
3
+ import { toolContractMetadata } from "../toolEffects.js";
4
4
  /** Static APK operations backed by a separately supplied headless engine. */
5
5
  export const ANDROID_TOOL_CONTRACTS = [
6
6
  {
7
7
  name: "inspect_android_package",
8
8
  ...toolContractMetadata("inspect_android_package"),
9
- description: "Inspect a local APK's package, SDK and permission declarations, decoded manifest and class/resource counts. Does not execute the APK or verify signatures. Requires a caller-supplied JADX MCP JAR and Java; uses one worker in an isolated temporary workspace.",
9
+ description: "Inspect a local APK's package, SDK and permission declarations, decoded manifest and class/resource counts. Does not execute the APK or verify signatures. Requires a caller-supplied JADX MCP JAR and JDK; uses one worker in an isolated temporary workspace.",
10
10
  kind: "android-provider",
11
11
  inputSchema: androidInputSchemas.inspect_android_package,
12
12
  outputSchema: evidenceResultOf(androidResultSchemas.inspect_android_package),
@@ -31,7 +31,7 @@ export const ANDROID_TOOL_CONTRACTS = [
31
31
  {
32
32
  name: "inspect_android_class",
33
33
  ...toolContractMetadata("inspect_android_class"),
34
- description: "Inspect one exact Android class's methods, fields and inner classes. Returns display signatures and explicit unknown DEX descriptors without materializing the whole application source.",
34
+ description: "Inspect one exact Android class's parsed methods, fields and inner classes, including synthetic members. Returns display signatures and explicit unknown DEX descriptors without generating source. Overload indices remain consistent within the artifact and engine session.",
35
35
  kind: "android-provider",
36
36
  inputSchema: androidInputSchemas.inspect_android_class,
37
37
  outputSchema: evidenceResultOf(androidResultSchemas.inspect_android_class),
@@ -1,15 +1,18 @@
1
- import { applicationVersionComparisonResultSchema } from "../domain/javascriptApplicationVersionComparisonSchemas.js";
2
- import { applicationFeatureTraceResultSchema } from "../domain/javascriptFeatureTraceSchemas.js";
3
- import { javaScriptSemanticTraceResultSchema } from "../domain/javascriptSemanticTraceSchemas.js";
4
- import { javaScriptExportShapeComparisonResultSchema } from "../domain/javascriptExportShapeComparisonSchemas.js";
5
- import { sourceToBundleComparisonResultSchema } from "../domain/sourceToBundleComparisonSchemas.js";
6
- import { compareApplicationVersionsRequestSchema, compareJavaScriptExportShapesRequestSchema, compareSourceToBundleRequestSchema, traceApplicationFeatureRequestSchema, traceJavaScriptSemanticsRequestSchema, } from "./applicationWorkflowInputContracts.js";
7
- import { reconstructionCoverageEvaluationInputSchema } from "../application/ReconstructionCoverageService.js";
1
+ import { applicationVersionComparisonResultSchema } from "../domain/javascript/javascriptApplicationVersionComparisonSchemas.js";
2
+ import { applicationFeatureTraceResultSchema } from "../domain/javascript/javascriptFeatureTraceSchemas.js";
3
+ import { javaScriptSemanticTraceResultSchema } from "../domain/javascript/javascriptSemanticTraceSchemas.js";
4
+ import { javaScriptExportShapeComparisonResultSchema } from "../domain/javascript/javascriptExportShapeComparisonSchemas.js";
5
+ import { sourceToBundleComparisonResultSchema } from "../domain/javascript/sourceToBundleComparisonSchemas.js";
6
+ import { compareApplicationVersionsRequestSchema, compareJavaScriptExportShapesRequestSchema, compareSourceToBundleRequestSchema, traceApplicationFeatureRequestSchema, traceJavaScriptSemanticsRequestSchema, } from "./javascript/applicationWorkflowInputContracts.js";
7
+ import { reconstructionCoverageEvaluationInputSchema } from "../domain/reconstructionCoverageInput.js";
8
8
  import { reconstructionClosureResultSchema } from "../domain/reconstructionCoverage.js";
9
9
  import { reconstructionObligationLedgerInputSchema, reconstructionObligationLedgerSchema, } from "../domain/reconstructionObligationLedgerSchemas.js";
10
+ import { androidApplicationProjectionInputSchema, androidApplicationProjectionResultSchema, } from "../domain/android/androidApplication.js";
11
+ import { appleApplicationProjectionInputSchema, appleApplicationProjectionResultSchema, } from "../domain/apple/appleApplication.js";
10
12
  import { toolContractMetadata } from "./toolEffects.js";
11
13
  import { evidenceResultOf } from "./toolOutputSchemas.js";
12
- import { JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE, JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE, JAVASCRIPT_FEATURE_TRACE_EXAMPLE, SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE, } from "./javascriptApplicationWorkflowExamples.js";
14
+ import { JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE, JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE, JAVASCRIPT_FEATURE_TRACE_EXAMPLE, SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE, } from "./javascript/javascriptApplicationWorkflowExamples.js";
15
+ import { ANDROID_APPLICATION_GRAPH_EXAMPLE, APPLE_APPLICATION_GRAPH_EXAMPLE, MACOS_APPLICATION_GRAPH_EXAMPLE, } from "./mobileApplicationGraphExamples.js";
13
16
  const traceOutputSchema = evidenceResultOf(applicationFeatureTraceResultSchema);
14
17
  const semanticTraceOutputSchema = evidenceResultOf(javaScriptSemanticTraceResultSchema);
15
18
  const comparisonOutputSchema = evidenceResultOf(applicationVersionComparisonResultSchema);
@@ -201,6 +204,38 @@ export const APPLICATION_TOOL_CONTRACTS = [
201
204
  },
202
205
  ],
203
206
  },
207
+ {
208
+ name: "project_android_application_graph",
209
+ ...toolContractMetadata("project_android_application_graph"),
210
+ description: "Project authenticated APK inventory_artifact Evidence into an execution-free Android application inventory. Reports exact component paths and hashes, runtime-family hints, and path-based bridge hypotheses without decoding DEX, executing the APK, or claiming observed runtime calls.",
211
+ kind: "application",
212
+ inputSchema: androidApplicationProjectionInputSchema,
213
+ outputSchema: evidenceResultOf(androidApplicationProjectionResultSchema),
214
+ examples: [
215
+ {
216
+ title: "Project APK inventory Evidence into an Android application graph",
217
+ input: ANDROID_APPLICATION_GRAPH_EXAMPLE,
218
+ },
219
+ ],
220
+ },
221
+ {
222
+ name: "project_apple_application_graph",
223
+ ...toolContractMetadata("project_apple_application_graph"),
224
+ description: "Project authenticated IPA, macOS .app directory, ZIP, or DMG inventory Evidence into an execution-free Apple application inventory. Reports application roots, nested bundles with path-convention roles (app extensions, XPC services, login items, privileged helpers, system extensions, frameworks), launchd plists, exact component paths and hashes, runtime-family hints, and path-based bridge hypotheses without parsing plist/CMS semantics or claiming observed runtime calls.",
225
+ kind: "application",
226
+ inputSchema: appleApplicationProjectionInputSchema,
227
+ outputSchema: evidenceResultOf(appleApplicationProjectionResultSchema),
228
+ examples: [
229
+ {
230
+ title: "Project IPA inventory Evidence into an Apple application graph",
231
+ input: APPLE_APPLICATION_GRAPH_EXAMPLE,
232
+ },
233
+ {
234
+ title: "Project a macOS .app directory inventory into its bundle anatomy",
235
+ input: MACOS_APPLICATION_GRAPH_EXAMPLE,
236
+ },
237
+ ],
238
+ },
204
239
  ];
205
240
  export function applicationToolContract(name) {
206
241
  const contract = APPLICATION_TOOL_CONTRACTS.find(({ name: candidate }) => candidate === name);
@@ -3,8 +3,9 @@ import { artifactOutputSchemas } from "./toolOutputSchemas.js";
3
3
  import { jsonValueSchema } from "../domain/jsonValue.js";
4
4
  import { toolContractMetadata } from "./toolEffects.js";
5
5
  import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js";
6
- import { appleAssetCatalogInputSchema } from "../domain/appleAssetCatalog.js";
7
- import { keyedArchiveInputSchema } from "../domain/keyedArchive.js";
6
+ import { appleAssetCatalogInputSchema } from "../domain/apple/appleAssetCatalog.js";
7
+ import { dylibResolutionInputSchema } from "../domain/apple/dylibResolution.js";
8
+ import { keyedArchiveInputSchema } from "../domain/apple/keyedArchive.js";
8
9
  /** Exact caller boundary for deterministic artifact inventory. */
9
10
  export const artifactInventoryInputSchema = z.strictObject({
10
11
  integrity_policy: z.enum(["fail", "record-and-continue"]).default("fail"),
@@ -22,6 +23,10 @@ const examples = {
22
23
  decode_interface_builder: {},
23
24
  inspect_asset_catalog: { offset: 0, limit: 1000 },
24
25
  inspect_keyed_archive: { path: "Contents/Resources/Model.plist" },
26
+ trace_dylib_resolution: {
27
+ roots: ["Contents/MacOS/App"],
28
+ architecture: "arm64",
29
+ },
25
30
  };
26
31
  const artifact = (name, description, inputSchema) => {
27
32
  const outputSchema = requireOutputSchema(artifactOutputSchemas, name);
@@ -51,6 +56,7 @@ export const ARTIFACT_TOOL_CONTRACTS = [
51
56
  })),
52
57
  artifact("inspect_keyed_archive", "Inspect one Foundation NSKeyedArchiver plist in the active app bundle as original object-table nodes, class descriptors, named roots, and UID edges. Preserves shared and cyclic references without instantiating classes. The path is relative to the bundle; root selection and object pagination preserve original identities.", keyedArchiveInputSchema),
53
58
  artifact("inspect_asset_catalog", "Inspect compiled Assets.car metadata in an active Apple app bundle. Returns stable paginated catalog and rendition records with raw assetutil metadata and catalog digests; rendition bytes are not extracted.", appleAssetCatalogInputSchema),
59
+ artifact("trace_dylib_resolution", "Trace how dyld would resolve each Mach-O dylib load for the active Mach-O, or for every executable in the active .app bundle (the main app, XPC services, extensions, login items, helpers). Expands @executable_path, @loader_path, and @rpath through each process's LC_RPATH stack in dependents-first load order, and reports every candidate path with its outcome, the resolved image and digest, weak, re-export, and upward flags, and derived findings such as unresolved required loads or absent earlier @rpath candidates. Pure header parsing: nothing is executed, and absolute or system paths outside the analyzed root stay undetermined. Select roots or one architecture to narrow large bundles.", dylibResolutionInputSchema),
54
60
  ];
55
61
  /** Provider operations; inventory remains an internal primitive of inspection. */
56
62
  export const ARTIFACT_ANALYSIS_OPERATIONS = [
@@ -0,0 +1,43 @@
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
+ });
@@ -21,7 +21,7 @@ export const BROWSER_SCENARIO_TOOL_CONTRACTS = [
21
21
  {
22
22
  name: "capture_browser_scenario",
23
23
  ...toolContractMetadata("capture_browser_scenario"),
24
- description: "Run a controlled browser scenario when passive observation cannot exercise the application. Launch the selected executable or connect to a loopback CDP target, provide a start URL and actions, and select storage or artifacts when needed. Environment, empty storage, and a URL-only final capture are defaults; provide initial storage or additional artifacts when needed. Agents can run their own local fixture servers to control application responses. Actions run until completion or cancellation unless timeout_ms is set. Results are returned inline.",
24
+ description: "Run a controlled browser scenario when passive observation cannot exercise the application. Launch the selected executable or connect to a loopback CDP target, provide a start URL and actions, and select storage or artifacts when needed. Environment, empty storage, and a URL-only final capture are defaults. capture.network selects request_body, response_body, and header_values independently; selected content is returned inline with transaction and event references, byte digests, and explicit unavailable states. Credentials and declared secrets are redacted. Agents can run their own local fixture servers to control application responses. Actions run until completion or cancellation unless timeout_ms is set. Results are returned inline.",
25
25
  kind: "browser-provider",
26
26
  inputSchema: browserScenarioInputSchema,
27
27
  outputSchema: evidenceResultOf(browserScenarioCaptureSchema),
@@ -2,10 +2,11 @@ import { browserTargetListSchema, inspectWebPageInputSchema, listBrowserTargetsI
2
2
  import { analyzeWebBundleInputSchema, webBundleAnalysisSchema, } from "../domain/webBundleAnalysis.js";
3
3
  import { observeWebSessionInputSchema, webObservationSessionSchema, } from "../domain/browserSession.js";
4
4
  import { discoverWebMcpToolsInputSchema, webMcpDiscoverySchema, } from "../domain/webMcpDiscovery.js";
5
- import { browserCaptureComparisonInputSchema, browserCaptureComparisonSchema, } from "../domain/browserCaptureComparison.js";
5
+ import { browserCaptureComparisonSchema } from "../domain/browserCaptureComparison.js";
6
6
  import { captureWebScreenshotInputSchema, compareWebScreenshotsInputSchema, webScreenshotDiffSchema, webScreenshotSchema, } from "../domain/webScreenshot.js";
7
7
  import { toolContractMetadata } from "./toolEffects.js";
8
8
  import { evidenceResultOf } from "./toolOutputSchemas.js";
9
+ import { browserCaptureToolInputSchema } from "./browserCaptureToolInputSchema.js";
9
10
  const evidenceResult = evidenceResultOf;
10
11
  const listOutputSchema = evidenceResult(browserTargetListSchema);
11
12
  const inspectionOutputSchema = evidenceResult(webPageInspectionSchema);
@@ -181,9 +182,9 @@ export const BROWSER_TOOL_CONTRACTS = [
181
182
  {
182
183
  name: "compare_web_captures",
183
184
  ...toolContractMetadata("compare_web_captures"),
184
- description: "Compare passive web captures by providing before and after, or compare recorded scenarios by providing before_scenario and after_scenario with an optional normalization policy. Use exactly one input group. Scenario comparison aligns exact step IDs, records deterministic literal normalization, and returns every artifact-level difference plus alignment failures inline. Missing or truncated evidence never proves equality.",
185
+ description: "Compare passive web captures by providing before and after, each with the complete inspect_web_page result in inspection and an optional complete discover_webmcp_tools result in webmcp; or compare recorded scenarios by passing complete capture_browser_scenario results in before_scenario and after_scenario with an optional normalization policy. Use exactly one input group. Scenario comparison aligns exact step IDs, records deterministic literal normalization, and returns every artifact-level difference plus alignment failures inline. Missing or truncated evidence never proves equality.",
185
186
  kind: "browser-provider",
186
- inputSchema: browserCaptureComparisonInputSchema,
187
+ inputSchema: browserCaptureToolInputSchema,
187
188
  outputSchema: captureDiffOutputSchema,
188
189
  examples: [
189
190
  {
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { nativeValueTraceInputSchema } from "../domain/nativeValueTrace.js";
2
+ import { nativeValueTraceInputSchema } from "../domain/native/nativeValueTrace.js";
3
3
  const traceLiteralInputSchema = z.strictObject({
4
4
  query: z.string().min(1),
5
5
  case_sensitive: z.boolean().default(false),
@@ -1,11 +1,14 @@
1
1
  import { z } from "zod";
2
+ import { jsonValueSchema } from "../domain/jsonValue.js";
2
3
  const categorySchema = z.enum([
3
4
  "invalid_input",
4
5
  "unsupported_provider",
6
+ "unsupported_target",
5
7
  "integrity_mismatch",
6
8
  "truncated",
7
9
  "cancelled",
8
10
  "timeout",
11
+ "resource_constraint",
9
12
  "unavailable",
10
13
  "execution_failure",
11
14
  ]);
@@ -20,17 +23,21 @@ const common = {
20
23
  retryable: z.boolean(),
21
24
  remediation: remediationSchema,
22
25
  };
23
- const genericDetails = z.record(z.string(), z.json()).optional();
26
+ const genericDetails = z.record(z.string(), jsonValueSchema).optional();
24
27
  const generic = (code) => z
25
28
  .object({ code: z.literal(code), ...common, details: genericDetails })
26
29
  .strict();
27
30
  /** Stable discriminated schema shared by every CLI and MCP error surface. */
28
31
  export const analysisErrorProjectionSchema = z.discriminatedUnion("code", [
29
32
  generic("invalid_request"),
33
+ generic("access_denied"),
34
+ generic("artifact_changed"),
30
35
  generic("unreadable_output"),
31
36
  generic("capability_unavailable"),
37
+ generic("unsupported_target"),
32
38
  generic("provider_unavailable"),
33
39
  generic("provider_timeout"),
40
+ generic("resource_constraint"),
34
41
  generic("cancelled"),
35
42
  z
36
43
  .object({
@@ -0,0 +1,20 @@
1
+ import { inspectEvmInterfaceInputSchema, evmInterfaceSchema, } from "../../domain/evm/evmInterface.js";
2
+ import { toolContractMetadata } from "../toolEffects.js";
3
+ import { evidenceResultOf } from "../toolOutputSchemas.js";
4
+ /** Target-free EVM capabilities are independent of archive/Apple artifact providers. */
5
+ export const EVM_TOOL_CONTRACTS = [
6
+ {
7
+ name: "inspect_evm_interface",
8
+ ...toolContractMetadata("inspect_evm_interface"),
9
+ kind: "artifact-provider",
10
+ description: "Inspect an explicit local flat EVM bytecode carrier and infer dispatch selectors, argument strings and mutability without executing the target or accessing a chain/RPC endpoint. Choose raw or hex encoding explicitly. Returns original carrier and decoded-byte SHA-256, full bytecode and interface candidates inline as inferred Evidence; bytecode kind, hardfork, deployed authenticity and discovery completeness remain unknown. Initial real-verified Linux x64 profile uses unchanged bundled EVMole 0.9.3/WASM in a bounded owned worker; EOF-style EF00 containers are unsupported. No signature lookup, wallet action or transaction broadcast.",
11
+ inputSchema: inspectEvmInterfaceInputSchema,
12
+ outputSchema: evidenceResultOf(evmInterfaceSchema),
13
+ examples: [
14
+ {
15
+ title: "Inspect a local runtime bytecode hex carrier",
16
+ input: { path: "/artifacts/runtime.hex", encoding: "hex" },
17
+ },
18
+ ],
19
+ },
20
+ ];
@@ -1,13 +1,13 @@
1
- import { firmwareInputSchemas, firmwareResultSchemas, } from "../domain/firmwareAnalysis.js";
2
- import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js";
3
- import { toolContractMetadata } from "./toolEffects.js";
1
+ import { firmwareInputSchemas, firmwareResultSchemas, } from "../../domain/firmware/firmwareAnalysis.js";
2
+ import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js";
3
+ import { toolContractMetadata } from "../toolEffects.js";
4
4
  /** Explicit local firmware observations and extraction, backed by caller-supplied tools. */
5
5
  export const FIRMWARE_TOOL_CONTRACTS = [
6
6
  {
7
7
  name: "inspect_firmware_regions",
8
8
  ...toolContractMetadata("inspect_firmware_regions"),
9
9
  kind: "firmware-provider",
10
- description: "Inspect signature candidates in a local firmware file with Binwalk 3.1.0. Returns offsets, reported lengths, descriptions and raw confidence values. Length validation and runtime addresses remain unknown. No extraction or target execution. Linux, caller-supplied tool and util-linux prlimit required; 128 MiB input limit, one worker and 120-second deadline.",
10
+ description: "Inspect signature candidates in a local firmware file with Binwalk 3.1.x (verified with 3.1.0). Returns offsets, reported lengths, descriptions and raw confidence values. Length validation and runtime addresses remain unknown. No extraction or target execution. Linux, caller-supplied tool and util-linux prlimit required; 128 MiB input limit, one worker and 120-second deadline.",
11
11
  inputSchema: firmwareInputSchemas.inspect_firmware_regions,
12
12
  outputSchema: evidenceResultOf(firmwareResultSchemas.inspect_firmware_regions),
13
13
  examples: [
@@ -21,7 +21,7 @@ export const FIRMWARE_TOOL_CONTRACTS = [
21
21
  name: "extract_firmware",
22
22
  ...toolContractMetadata("extract_firmware"),
23
23
  kind: "firmware-provider",
24
- description: "Extract caller-selected firmware bytes with Unblob 26.6.4 into an absent output directory. Returns verified child paths/digests, task derivations, unknown chunks and extraction diagnostics inline. Preserves the default sandbox; publishes regular files only. Linux, caller-supplied tool, format-specific extractors and util-linux prlimit required. No mounts or extracted-code execution. Select a returned native file with open_binary for Ghidra analysis; decompressed offsets are not original-file addresses.",
24
+ description: "Extract caller-selected firmware bytes with Unblob 26.6.x (verified with 26.6.4) into an absent output directory. Returns verified child paths/digests, task derivations, unknown chunks and extraction diagnostics inline. Preserves the default sandbox; publishes regular files only. Linux, caller-supplied tool, format-specific extractors and util-linux prlimit required. No mounts or extracted-code execution. Select a returned native file with open_binary for Ghidra analysis; decompressed offsets are not original-file addresses.",
25
25
  inputSchema: firmwareInputSchemas.extract_firmware,
26
26
  outputSchema: evidenceResultOf(firmwareResultSchemas.extract_firmware),
27
27
  examples: [
@@ -1,9 +1,9 @@
1
1
  import { compareFunctions } from "../domain/functionComparison.js";
2
2
  import { createEvidence } from "../domain/evidence.js";
3
3
  import { jsonValueSchema } from "../domain/jsonValue.js";
4
- import { compareProcessCaptures, parseProcessCapture, } from "../domain/processCapture.js";
4
+ import { compareProcessCaptures, parseProcessCapture, } from "../domain/process/processCapture.js";
5
5
  import { FUNCTION_COMPARISON_EXAMPLE } from "./functionComparisonExample.js";
6
- import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js";
6
+ import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./process/processCaptureExample.js";
7
7
  const comparison = compareFunctions(FUNCTION_COMPARISON_EXAMPLE.left, FUNCTION_COMPARISON_EXAMPLE.right);
8
8
  export const FUNCTION_COMPARISON_EVIDENCE = createEvidence(undefined, {
9
9
  id: "rea-function-comparison",
@@ -1,10 +1,10 @@
1
1
  import { z } from "zod";
2
- import { evidenceInputSchema } from "./evidenceInputContracts.js";
3
- import { compareApplicationVersionsInputSchema } from "../domain/javascriptApplicationVersionComparisonSchemas.js";
4
- import { compareJavaScriptExportShapesInputSchema } from "../domain/javascriptExportShapeComparisonSchemas.js";
5
- import { traceApplicationFeatureInputSchema } from "../domain/javascriptFeatureTraceSchemas.js";
6
- import { javaScriptSemanticQueryInputSchema } from "../domain/javascriptSemanticQuerySchemas.js";
7
- import { compareSourceToBundleInputSchema } from "../domain/sourceToBundleComparisonSchemas.js";
2
+ import { evidenceInputSchema } from "../evidenceInputContracts.js";
3
+ import { compareApplicationVersionsInputSchema } from "../../domain/javascript/javascriptApplicationVersionComparisonSchemas.js";
4
+ import { compareJavaScriptExportShapesInputSchema } from "../../domain/javascript/javascriptExportShapeComparisonSchemas.js";
5
+ import { traceApplicationFeatureInputSchema } from "../../domain/javascript/javascriptFeatureTraceSchemas.js";
6
+ import { javaScriptSemanticQueryInputSchema } from "../../domain/javascript/javascriptSemanticQuerySchemas.js";
7
+ import { compareSourceToBundleInputSchema } from "../../domain/javascript/sourceToBundleComparisonSchemas.js";
8
8
  const traceApplicationFeatureFacts = {
9
9
  native_observations: traceApplicationFeatureInputSchema.shape.native_observations,
10
10
  seed: traceApplicationFeatureInputSchema.shape.seed,
@@ -1,9 +1,9 @@
1
- import { toolContractMetadata } from "./toolEffects.js";
2
- import { evidenceResultOf } from "./toolOutputSchemas.js";
3
- import { electronPageInspectionSchema, electronTargetListSchema, inspectElectronPageInputSchema, listElectronTargetsInputSchema, } from "../domain/electronObservation.js";
4
- import { electronActiveObservationInputSchema, electronActiveObservationResultSchema, } from "../domain/electronActiveObservation.js";
5
- import { analyzeJavaScriptApplicationInputSchema, javascriptApplicationAnalysisResultSchema, } from "../domain/javascriptApplicationAnalysis.js";
6
- import { javascriptRuntimeReconciliationResultSchema, reconcileJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeReconciliationSchemas.js";
1
+ import { toolContractMetadata } from "../toolEffects.js";
2
+ import { evidenceResultOf } from "../toolOutputSchemas.js";
3
+ import { electronPageInspectionSchema, electronTargetListSchema, inspectElectronPageInputSchema, listElectronTargetsInputSchema, } from "../../domain/javascript/electronObservation.js";
4
+ import { electronActiveObservationInputSchema, electronActiveObservationResultSchema, } from "../../domain/javascript/electronActiveObservation.js";
5
+ import { analyzeJavaScriptApplicationInputSchema, javascriptApplicationAnalysisResultSchema, } from "../../domain/javascript/javascriptApplicationAnalysis.js";
6
+ import { javascriptRuntimeReconciliationResultSchema, reconcileJavaScriptRuntimeInputSchema, } from "../../domain/javascript/javascriptRuntimeReconciliationSchemas.js";
7
7
  import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "./javascriptRuntimeReconciliationExample.js";
8
8
  const listOutputSchema = evidenceResultOf(electronTargetListSchema);
9
9
  const inspectionOutputSchema = evidenceResultOf(electronPageInspectionSchema);
@@ -1,7 +1,7 @@
1
- import { createEvidence } from "../domain/evidence.js";
2
- import { reconcileJavaScriptRuntime } from "../domain/javascriptRuntimeReconciliation.js";
1
+ import { createEvidence } from "../../domain/evidence.js";
2
+ import { reconcileJavaScriptRuntime } from "../../domain/javascript/javascriptRuntimeReconciliation.js";
3
3
  import { JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE, JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE, } from "./javascriptRuntimeReconciliationExample.js";
4
- import { createHistoricalSourceGraph } from "../domain/referenceSourceGraph.js";
4
+ import { createHistoricalSourceGraph } from "../../domain/referenceSourceGraph.js";
5
5
  const reconciliation = reconcileJavaScriptRuntime(JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE);
6
6
  const reconciliationEvidence = createEvidence(undefined, {
7
7
  id: "rea-javascript-runtime-reconciliation",
@@ -0,0 +1,23 @@
1
+ import { javascriptRecoveryInputSchema, javascriptRecoveryResultSchema, } from "../../domain/javascript/javascriptRecovery.js";
2
+ import { toolContractMetadata } from "../toolEffects.js";
3
+ import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js";
4
+ /** Derived script artifacts from optional upstream recovery adapters. */
5
+ export const JAVASCRIPT_RECOVERY_TOOL_CONTRACTS = [
6
+ {
7
+ name: "recover_javascript_sources",
8
+ ...toolContractMetadata("recover_javascript_sources"),
9
+ kind: "application",
10
+ description: "Recover readable modules from one local UTF-8 JavaScript script/bundle into an absent directory, using caller-supplied Wakaru 1.13.0 on Linux x64. Returns original/derived digests, extraction byte ranges, emitted source maps, warnings and analysis_input inline. Structural splitting may fall back to one module; original names and runtime equivalence remain unknown. No application code execution. Requires util-linux prlimit; one worker, 1 GiB address-space ceiling, 120-second deadline, 64 MiB input, 128 MiB output, 10000 entries and 8 MiB per diagnostic/report stream.",
11
+ inputSchema: javascriptRecoveryInputSchema,
12
+ outputSchema: evidenceResultOf(javascriptRecoveryResultSchema),
13
+ examples: [
14
+ {
15
+ title: "Recover a captured production bundle",
16
+ input: {
17
+ path: "/tmp/web-scripts/app.js",
18
+ output_directory: "/tmp/recovered-app",
19
+ },
20
+ },
21
+ ],
22
+ },
23
+ ];
@@ -1,6 +1,6 @@
1
- import { toolContractMetadata } from "./toolEffects.js";
2
- import { evidenceResultOf } from "./toolOutputSchemas.js";
3
- import { javascriptRuntimeObservationSchema, javascriptRuntimeTargetListSchema, listJavaScriptRuntimeTargetsInputSchema, observeJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeObservation.js";
1
+ import { toolContractMetadata } from "../toolEffects.js";
2
+ import { evidenceResultOf } from "../toolOutputSchemas.js";
3
+ import { javascriptRuntimeObservationSchema, javascriptRuntimeTargetListSchema, listJavaScriptRuntimeTargetsInputSchema, observeJavaScriptRuntimeInputSchema, } from "../../domain/javascript/javascriptRuntimeObservation.js";
4
4
  const endpoint = "http://127.0.0.1:9229";
5
5
  /** Passive Node/Electron V8 Inspector discovery and observation contracts. */
6
6
  export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
@@ -1,8 +1,8 @@
1
- import { createEvidence } from "../domain/evidence.js";
2
- import { createJavaScriptApplicationGraph, createJavaScriptApplicationNode, } from "../domain/javascriptApplicationGraph.js";
3
- import { createWebTextArtifact } from "../domain/webContentArtifact.js";
4
- import { createJavaScriptSemanticGraph, createJavaScriptSemanticGraphNode, } from "../domain/javascriptSemanticGraph.js";
5
- import { JAVASCRIPT_SEMANTIC_RELATION_FAMILIES } from "../domain/javascriptSemanticGraphSchemas.js";
1
+ import { createEvidence } from "../../domain/evidence.js";
2
+ import { createJavaScriptApplicationGraph, createJavaScriptApplicationNode, } from "../../domain/javascript/javascriptApplicationGraph.js";
3
+ import { createWebTextArtifact } from "../../domain/webContentArtifact.js";
4
+ import { createJavaScriptSemanticGraph, createJavaScriptSemanticGraphNode, } from "../../domain/javascript/javascriptSemanticGraph.js";
5
+ import { JAVASCRIPT_SEMANTIC_RELATION_FAMILIES } from "../../domain/javascript/javascriptSemanticGraphSchemas.js";
6
6
  const applicationSha256 = "1".repeat(64);
7
7
  const script = createWebTextArtifact("export const example = true;\n", "text/javascript");
8
8
  const inputPath = "/Applications/Example.app/Contents/Resources/app";
@@ -1,14 +1,18 @@
1
1
  import { z } from "zod";
2
- import { managedOutputSchemas } from "./toolOutputSchemas.js";
3
- import { toolContractMetadata } from "./toolEffects.js";
4
- import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js";
2
+ import { managedOutputSchemas } from "../toolOutputSchemas.js";
3
+ import { toolContractMetadata } from "../toolEffects.js";
4
+ import { requireOutputSchema } from "../toolOutputSchemaPrimitives.js";
5
+ import { isAbsoluteLocalPath } from "../../domain/localPath.js";
5
6
  /** Exact caller boundary for execution-free PE/CLI triage and identity. */
6
- const managedTargetInputSchema = z.object({
7
+ const managedTargetInputSchema = z.strictObject({
7
8
  path: z
8
9
  .string()
9
10
  .min(1)
10
- .optional()
11
- .describe("Explicit managed PE/CLI path; omit to reuse the previously selected managed target"),
11
+ .refine(isAbsoluteLocalPath, {
12
+ message: "path must be an absolute local filesystem path (for example /tmp/Example.dll or C:\\Example.dll)",
13
+ })
14
+ .describe("Explicit absolute managed PE/CLI path; omit to reuse the previously selected managed target")
15
+ .optional(),
12
16
  });
13
17
  export const managedArtifactInputSchema = managedTargetInputSchema;
14
18
  /** Exact caller boundary for execution-free metadata/signature/IL inspection. */
@@ -1,4 +1,4 @@
1
- import { createEvidence } from "../domain/evidence.js";
1
+ import { createEvidence } from "../../domain/evidence.js";
2
2
  const MANAGED_STATIC_EXAMPLE_PROVIDER = {
3
3
  id: "rea-dotnet-static",
4
4
  name: "REA managed static analysis provider",
@@ -1,10 +1,10 @@
1
1
  import { z } from "zod";
2
- import { evidenceSchema } from "../domain/evidence.js";
3
- import { managedReconstructionImportInputSchema } from "../domain/managedReconstruction.js";
4
- import { managedWorkflowOutputSchemas } from "./toolOutputSchemas.js";
2
+ import { evidenceSchema } from "../../domain/evidence.js";
3
+ import { managedReconstructionImportInputSchema } from "../../domain/managed/managedReconstruction.js";
4
+ import { managedWorkflowOutputSchemas } from "../toolOutputSchemas.js";
5
5
  import { MANAGED_MEMBER_COMPARISON_EXAMPLE, MANAGED_NATIVE_VERIFICATION_EXAMPLE, MANAGED_APPLICATION_GRAPH_EXAMPLE, MANAGED_RECONSTRUCTION_IMPORT_EXAMPLE, } from "./managedWorkflowExamples.js";
6
- import { toolContractMetadata } from "./toolEffects.js";
7
- import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js";
6
+ import { toolContractMetadata } from "../toolEffects.js";
7
+ import { requireOutputSchema } from "../toolOutputSchemaPrimitives.js";
8
8
  /** Inputs for comparing two managed observations carried inline. */
9
9
  export const compareManagedMembersReferenceInputSchema = z
10
10
  .strictObject({
@@ -96,7 +96,7 @@ export const MANAGED_WORKFLOW_TOOL_CONTRACTS = [
96
96
  {
97
97
  name: "compare_managed_members",
98
98
  ...toolContractMetadata("compare_managed_members"),
99
- description: "Compare two authenticated inspect_managed_members Evidence records using unique-only decoded-CIL/signature and structural method-shape tiers. Names are reported as observations but are not used as a matching basis; metadata tokens remain build-local coordinates bound to each artifact SHA-256 and MVID, and the tuple digest does not itself remap them.",
99
+ description: "Compare two authenticated inspect_managed_members Evidence records using unique-only tiers: exact CIL/signature, exact declared type, name, and raw signature (decoded or not), and decoded structural method shape. Names alone are never a matching basis; a member whose signature was not decoded, or whose same-named counterpart's was not, stays unknown rather than added or removed. Metadata tokens remain build-local coordinates bound to each artifact SHA-256 and MVID, and the tuple digest does not itself remap them.",
100
100
  kind: "application",
101
101
  inputSchema: compareManagedMembersReferenceInputSchema,
102
102
  outputSchema: comparisonOutputSchema,