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
@@ -0,0 +1,105 @@
1
+ import { canonicalDigest } from "../domain/comparisonSemantics.js";
2
+ import { createEvidence } from "../domain/evidence.js";
3
+ import { jsonValueSchema } from "../domain/jsonValue.js";
4
+ const inventory = (format, digit) => {
5
+ const sha = digit.repeat(64);
6
+ const artifactId = `art_${canonicalDigest({ sha256: sha }, "Artifact inventory")}`;
7
+ const occurrenceId = `occ_${canonicalDigest({ root: artifactId }, "Artifact inventory")}`;
8
+ const nodes = [
9
+ {
10
+ artifact_id: artifactId,
11
+ kind: "resource",
12
+ format,
13
+ sha256: sha,
14
+ size: 1,
15
+ media_type: null,
16
+ architecture: null,
17
+ executable: false,
18
+ content_state: "materialized",
19
+ limitations: [],
20
+ },
21
+ ];
22
+ const occurrences = [
23
+ {
24
+ occurrence_id: occurrenceId,
25
+ artifact_id: artifactId,
26
+ parent_occurrence_id: null,
27
+ logical_path: ".",
28
+ entry_kind: "file",
29
+ declared_size: 1,
30
+ compressed_size: null,
31
+ executable: false,
32
+ encrypted: false,
33
+ hash_status: "verified",
34
+ source_location: null,
35
+ limitations: [],
36
+ },
37
+ ];
38
+ const graphSha256 = canonicalDigest({
39
+ nodes,
40
+ occurrences,
41
+ edges: [],
42
+ integrity_contradictions: [],
43
+ }, "Artifact inventory");
44
+ return jsonValueSchema.parse({
45
+ manifest: {
46
+ manifest_id: `agm_${canonicalDigest({
47
+ root_artifact_id: artifactId,
48
+ graph_sha256: graphSha256,
49
+ }, "Artifact inventory")}`,
50
+ root_artifact_id: artifactId,
51
+ root_sha256: sha,
52
+ root_format: format,
53
+ graph_sha256: graphSha256,
54
+ node_count: nodes.length,
55
+ occurrence_count: occurrences.length,
56
+ edge_count: 0,
57
+ },
58
+ nodes,
59
+ occurrences,
60
+ edges: [],
61
+ provenance: [],
62
+ limitations: [],
63
+ });
64
+ };
65
+ const provider = {
66
+ id: "rea-artifact-graph",
67
+ name: "REA safe artifact graph provider",
68
+ version: "1",
69
+ };
70
+ /** Catalog example for Android application inventory projection. */
71
+ export const ANDROID_APPLICATION_GRAPH_EXAMPLE = {
72
+ inventory_evidence: [
73
+ createEvidence({ path: "Fixture.apk", sha256: "a".repeat(64), format: "apk" }, provider, {
74
+ operation: "inventory_artifact",
75
+ parameters: {},
76
+ result: inventory("apk", "a"),
77
+ confidence: "observed",
78
+ authority: "shipped-artifact",
79
+ }),
80
+ ],
81
+ };
82
+ /** Catalog example for Apple application inventory projection. */
83
+ export const APPLE_APPLICATION_GRAPH_EXAMPLE = {
84
+ inventory_evidence: [
85
+ createEvidence({ path: "Fixture.ipa", sha256: "b".repeat(64), format: "ipa" }, provider, {
86
+ operation: "inventory_artifact",
87
+ parameters: {},
88
+ result: inventory("ipa", "b"),
89
+ confidence: "observed",
90
+ authority: "shipped-artifact",
91
+ }),
92
+ ],
93
+ };
94
+ /** Catalog example for a macOS application bundle inventoried as a directory. */
95
+ export const MACOS_APPLICATION_GRAPH_EXAMPLE = {
96
+ inventory_evidence: [
97
+ createEvidence({ path: "Fixture.app", sha256: "c".repeat(64), format: "directory" }, provider, {
98
+ operation: "inventory_artifact",
99
+ parameters: {},
100
+ result: inventory("directory", "c"),
101
+ confidence: "observed",
102
+ authority: "shipped-artifact",
103
+ }),
104
+ ],
105
+ };
@@ -0,0 +1,42 @@
1
+ import { inspectRecordedCrashInputSchema, recordedCrashSchema, } from "../../domain/native/recordedCrash.js";
2
+ import { inspectBinaryLayoutInputSchema, binaryLayoutSchema, } from "../../domain/native/binaryLayout.js";
3
+ import { toolContractMetadata } from "../toolEffects.js";
4
+ import { evidenceResultOf } from "../toolOutputSchemas.js";
5
+ /** Offline binary diagnostics are independent of macOS process/UI providers. */
6
+ export const BINARY_DIAGNOSTICS_TOOL_CONTRACTS = [
7
+ {
8
+ name: "inspect_binary_layout",
9
+ ...toolContractMetadata("inspect_binary_layout"),
10
+ kind: "native-provider",
11
+ description: "Inspect an explicit local binary without launching it as a host process. Returns file-backed section/segment ranges, linked addresses, original symbol/REL/RELA table identities, complete encoded RELR tables and upstream-derived offsets with unknown per-word locations/addends, raw name bytes, dependency/interpreter names and static mitigation inferences inline with artifact SHA-256 Evidence. Initial profile: ELF64 x86-64 little-endian EXEC/DYN/REL on Linux x64 via caller-supplied Python with unchanged pwntools 4.15.0, pyelftools 0.33 and Unicorn 2.1.2. Runtime addresses/library paths, overall relocation inventory completeness and complete derived GOT/PLT coverage remain unknown. Zero executable entry values mean absence; relocatable entries are not applicable. Upstream can emulate PLT instructions with Unicorn for derived static maps. Uses bounded complete output and owned temporary files/processes; malformed, unsupported or oversized objects return no partial success.",
12
+ inputSchema: inspectBinaryLayoutInputSchema,
13
+ outputSchema: evidenceResultOf(binaryLayoutSchema),
14
+ examples: [
15
+ {
16
+ title: "Inspect ELF linked and file layout",
17
+ input: { path: "/artifacts/application.elf" },
18
+ },
19
+ ],
20
+ },
21
+ {
22
+ name: "inspect_recorded_crash",
23
+ ...toolContractMetadata("inspect_recorded_crash"),
24
+ kind: "native-provider",
25
+ description: "Inspect a supplied Linux ELF64 amd64 little-endian core without launching its target or attaching to any live PID. Returns all recorded segments, raw note owners/descriptors and source ranges, every Linux CORE PRSTATUS thread/register and SIGINFO fields inline with SHA-256 Evidence. Historical PID is recorded metadata; current process/file identity, note coverage and signal-thread associations stay unknown. Optionally add derived core-only GDB/pwndbg mapping candidates through explicit BYO configuration; zero map flags mean unknown permissions. Uses the same stable snapshot for both stages, bounded complete output and owned cleanup. Initial Linux x64 profile: unchanged pwntools 4.15.0/pyelftools 0.33/Unicorn 2.1.2; optional unchanged pwndbg 2026.09.15. No implicit executable/library pairing, GDB command language, host configuration changes or dependency installation.",
26
+ inputSchema: inspectRecordedCrashInputSchema,
27
+ outputSchema: evidenceResultOf(recordedCrashSchema),
28
+ examples: [
29
+ {
30
+ title: "Inspect recorded registers and signal evidence",
31
+ input: { path: "/artifacts/crash.core" },
32
+ },
33
+ {
34
+ title: "Add core-only debugger mapping candidates",
35
+ input: {
36
+ path: "/artifacts/crash.core",
37
+ include_debugger_context: true,
38
+ },
39
+ },
40
+ ],
41
+ },
42
+ ];
@@ -1,9 +1,10 @@
1
1
  import { z } from "zod";
2
- import { nativeUiObservationInputSchema, nativeUiScenarioInputSchema, } from "../domain/nativeUiObservation.js";
3
- import { nativeOutputSchemas } from "./toolOutputSchemas.js";
4
- import { jsonValueSchema } from "../domain/jsonValue.js";
5
- import { toolContractMetadata } from "./toolEffects.js";
6
- import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js";
2
+ import { nativeCallObservationInputSchema } from "../../domain/native/nativeCallObservation.js";
3
+ import { nativeUiObservationInputSchema, nativeUiScenarioInputSchema, } from "../../domain/native/nativeUiObservation.js";
4
+ import { nativeOutputSchemas } from "../toolOutputSchemas.js";
5
+ import { jsonValueSchema } from "../../domain/jsonValue.js";
6
+ import { toolContractMetadata } from "../toolEffects.js";
7
+ import { requireOutputSchema } from "../toolOutputSchemaPrimitives.js";
7
8
  const examples = {
8
9
  inspect_macho: {},
9
10
  inspect_signature: {},
@@ -16,15 +17,29 @@ const examples = {
16
17
  steps: [{ kind: "wait", milliseconds: 100 }],
17
18
  },
18
19
  demangle_swift: { symbols: ["$s4Test3fooyyF"] },
20
+ observe_native_calls: {
21
+ breakpoints: [
22
+ {
23
+ kind: "objc-method",
24
+ class_name: "NSURLSession",
25
+ selector: "dataTaskWithRequest:completionHandler:",
26
+ },
27
+ { kind: "function", name: "open", module: "libsystem_kernel.dylib" },
28
+ ],
29
+ arguments: ["--help"],
30
+ duration_ms: 5000,
31
+ backtrace_frames: 4,
32
+ },
19
33
  };
20
34
  const native = (name, description, inputSchema) => {
21
35
  const outputSchema = requireOutputSchema(nativeOutputSchemas, name);
36
+ const strictInputSchema = inputSchema.strict();
22
37
  return {
23
38
  name,
24
39
  ...toolContractMetadata(name),
25
40
  description,
26
41
  kind: "native-provider",
27
- inputSchema,
42
+ inputSchema: strictInputSchema,
28
43
  outputSchema,
29
44
  examples: [
30
45
  {
@@ -36,17 +51,25 @@ const native = (name, description, inputSchema) => {
36
51
  ],
37
52
  };
38
53
  };
54
+ /** Ordered single-line symbols; `swift-demangle` ends each result with LF. */
55
+ export const swiftSymbolsSchema = z
56
+ .array(z
57
+ .string()
58
+ .min(1)
59
+ .regex(/^[^\n]*$/u, "Each Swift symbol must be one line."))
60
+ .min(1);
39
61
  /** Provider-neutral semantic operations backed initially by macOS utilities. */
40
62
  export const NATIVE_TOOL_CONTRACTS = [
41
63
  native("observe_native_ui", "Observe an already-running native app by PID and window ID, bound to the active Mach-O target. Captures a bounded accessibility tree and selected-window screenshot; OS permission denial fails without broad capture or target launch.", nativeUiObservationInputSchema),
42
64
  native("capture_native_ui_scenario", "Run selected-element press, increment/decrement scroll, AXValue text entry and bounded wait steps in one exact native app window. Returns ordered before/after captures and action/capture failures. Actions can change app data, network activity and persistent state; application state is left as-is and restoration is not attempted.", nativeUiScenarioInputSchema),
65
+ native("observe_native_calls", "Launch the active Mach-O as an owned process under LLDB and record each entry into caller-selected functions or Objective-C methods: thread, module, symbol, load and file address, raw argument registers, selector, receiver class and optional caller frames. Every hit auto-continues. No expression is evaluated and no other process is attached. The process is killed when max_events or duration_ms is reached; exit status, captured stdout/stderr, unresolved breakpoints and limitations are returned inline. The process runs with the current user's permissions and may change files, show UI or use the network. A hardened-runtime target needs the get-task-allow entitlement.", nativeCallObservationInputSchema),
43
66
  native("inspect_macho", "Inspect Mach-O slices, load commands, imports, exports, dependencies, build metadata, segments, sections, permissions, and exact command provenance without launching Hopper.", z.object({})),
44
67
  native("inspect_signature", "Inspect the active artifact's code-signing identity, hashes, authorities, requirements, entitlements, hardened-runtime state, and exact command provenance.", z.object({})),
45
68
  native("inspect_plist", "Parse Info.plist from the active artifact by default, or pass any local plist path. Returns normalized JSON rather than plutil text.", z.object({
46
69
  path: z.string().min(1).optional(),
47
70
  })),
48
71
  native("list_architectures", "List thin or universal Mach-O slices with offsets, sizes, alignment, explicit coverage, and native-tool provenance.", z.object({})),
49
- native("demangle_swift", "Demangle an ordered list of Swift symbols without requiring Hopper. Each input returns demangled, unchanged, or invalid status.", z.object({
50
- symbols: z.array(z.string().min(1)).min(1),
72
+ native("demangle_swift", "Demangle an ordered list of single-line Swift symbols without requiring Hopper. Each input returns demangled, unchanged, or invalid status.", z.object({
73
+ symbols: swiftSymbolsSchema,
51
74
  })),
52
75
  ];
@@ -1,22 +1,25 @@
1
1
  import { z } from "zod";
2
- import { nativeFunctionAnnotationsInputSchema } from "../domain/nativeFunctionAnnotations.js";
2
+ import { nativeFunctionAnnotationsInputSchema } from "../domain/native/nativeFunctionAnnotations.js";
3
3
  import { officialOutputSchemas, requireOutputSchema, } from "./toolOutputSchemas.js";
4
4
  import { address, document, examplesFor, optionalAddress, procedure, } from "./toolContractHelpers.js";
5
5
  import { toolContractMetadata } from "./toolEffects.js";
6
- import { nativeDataTypeInputSchema } from "../domain/nativeDataType.js";
7
- import { nativeInstructionInputSchema } from "../domain/nativeInstruction.js";
6
+ import { nativeDataTypeInputSchema } from "../domain/native/nativeDataType.js";
7
+ import { nativeInstructionInputSchema } from "../domain/native/nativeInstruction.js";
8
8
  import { functionInstructionInputSchema } from "./functionInstructionContract.js";
9
9
  import { HOPPER_MEMORY_TOOL_DEFINITIONS } from "./hopperMemoryContracts.js";
10
10
  import { analysisSearchInput } from "./analysisSearchContract.js";
11
- const official = (name, description, inputSchema) => ({
12
- name,
13
- ...toolContractMetadata(name),
14
- description,
15
- kind: "official-proxy",
16
- inputSchema,
17
- outputSchema: requireOutputSchema(officialOutputSchemas, name),
18
- examples: examplesFor(name, inputSchema),
19
- });
11
+ const official = (name, description, inputSchema) => {
12
+ const strictInputSchema = inputSchema.strict();
13
+ return {
14
+ name,
15
+ ...toolContractMetadata(name),
16
+ description,
17
+ kind: "official-proxy",
18
+ inputSchema: strictInputSchema,
19
+ outputSchema: requireOutputSchema(officialOutputSchemas, name),
20
+ examples: examplesFor(name, strictInputSchema),
21
+ };
22
+ };
20
23
  /** Bridge operations exposed without additional application composition. */
21
24
  export const OFFICIAL_TOOL_CONTRACTS = [
22
25
  official("annotate_native_function", "Atomically update one function name and/or entry comments, read them back, and return a refreshed complete function dossier. Ghidra changes its ephemeral session analysis database only; original executable bytes remain unchanged. Empty comment text clears that comment. Edits remain available to subsequent MCP calls until close; CLI returns the updated dossier before discarding its session. Invalid edits roll back the entire operation. Windows P0 and providers without this capability are unsupported.", nativeFunctionAnnotationsInputSchema),
@@ -0,0 +1,2 @@
1
+ /** Minimal valid process capture retained as a public contract example. */
2
+ export { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../domain/process/processCaptureExample.js";
@@ -1,17 +1,34 @@
1
1
  import { executableFormatHintSchema } from "../domain/dosCom.js";
2
+ import { isAbsoluteLocalPath } from "../domain/localPath.js";
2
3
  import { z } from "zod";
3
4
  import { analysisProviderSelectorSchema } from "./providerSelection.js";
5
+ /** Caller-supplied analysis snapshot path; must name its destination absolutely. */
6
+ const snapshotPathSchema = z
7
+ .string()
8
+ .min(1)
9
+ .refine(isAbsoluteLocalPath, {
10
+ message: "snapshot_path must be an absolute local filesystem path (for example /tmp/rea/analysis.json or C:\\rea\\analysis.json)",
11
+ })
12
+ .describe("Absolute local filesystem path for the analysis snapshot; relative paths are rejected.");
13
+ /** Caller-supplied analysis target path; must name the target absolutely. */
14
+ const binaryTargetPathSchema = z
15
+ .string()
16
+ .min(1)
17
+ .refine(isAbsoluteLocalPath, {
18
+ message: "path must be an absolute local filesystem path (for example /tmp/fixture.bin or C:\\analysis\\fixture.bin)",
19
+ })
20
+ .describe("Absolute local filesystem path for the analysis target; relative paths are rejected.");
4
21
  /** Input contract for opening a target with an optional staged snapshot. */
5
- export const openBinaryInputSchema = z.object({
6
- path: z.string().min(1),
22
+ export const openBinaryInputSchema = z.strictObject({
23
+ path: binaryTargetPathSchema,
7
24
  format: executableFormatHintSchema
8
25
  .optional()
9
26
  .describe("Explicit headerless DOS COM interpretation; omission preserves header-based detection"),
10
27
  provider_id: analysisProviderSelectorSchema.optional(),
11
- snapshot_path: z.string().min(1).optional(),
28
+ snapshot_path: snapshotPathSchema.optional(),
12
29
  });
13
30
  /** Input contract for closing a target after an optional atomic snapshot. */
14
- export const closeBinaryInputSchema = z.object({
15
- snapshot_path: z.string().min(1).optional(),
31
+ export const closeBinaryInputSchema = z.strictObject({
32
+ snapshot_path: snapshotPathSchema.optional(),
16
33
  overwrite: z.boolean().default(false),
17
34
  });
@@ -1,10 +1,18 @@
1
1
  import { z } from "zod";
2
+ import { isAbsoluteLocalPath } from "../domain/localPath.js";
2
3
  /** Optional expectations used to compare the live session with its caller. */
3
- export const binarySessionInputSchema = z.object({
4
+ export const binarySessionInputSchema = z.strictObject({
4
5
  expected_package_version: z.string().min(1).optional(),
5
6
  expected_catalog_digest: z
6
7
  .string()
7
8
  .regex(/^[a-f0-9]{64}$/u)
8
9
  .optional(),
9
- expected_server_path: z.string().min(1).optional(),
10
+ expected_server_path: z
11
+ .string()
12
+ .min(1)
13
+ .refine(isAbsoluteLocalPath, {
14
+ message: "expected_server_path must be an absolute local filesystem path (for example /opt/rea/dist/main.js)",
15
+ })
16
+ .describe("Absolute local filesystem path expected for the running server; relative paths are rejected.")
17
+ .optional(),
10
18
  });
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { isAbsoluteLocalPath } from "../domain/localPath.js";
2
3
  import { sessionOutputSchemas, requireOutputSchema, } from "./toolOutputSchemas.js";
3
4
  import { addressContextInputSchema, artifactComparisonInputSchema, binarySessionInputSchema, bundleComparisonInputSchema, callPathInputSchema, changedBehaviorInputSchema, closeBinaryInputSchema, functionComparisonInputSchema, importEvidenceBundleInputSchema, listUnknownsInputSchema, navigationContextInputSchema, openBinaryInputSchema, processComparisonInputSchema, processScenarioSchema, reconstructionVerificationInputSchema, recordUnknownInputSchema, getEvidenceBundleInputSchema, staticRuntimeCorrelationInputSchema, updateUnknownInputSchema, verifyUnknownResolutionInputSchema, } from "./sessionToolSchemas.js";
4
5
  import { examplesFor } from "./toolContractHelpers.js";
@@ -14,7 +15,13 @@ const session = (name, description, inputSchema) => ({
14
15
  });
15
16
  /** Session-owned Evidence bundle export options. */
16
17
  export const exportEvidenceBundleInputSchema = z.strictObject({
17
- path: z.string().min(1),
18
+ path: z
19
+ .string()
20
+ .min(1)
21
+ .refine(isAbsoluteLocalPath, {
22
+ message: "path must be an absolute local filesystem path (for example /tmp/rea/evidence.json or C:\\rea\\evidence.json)",
23
+ })
24
+ .describe("Absolute local filesystem path for the exported evidence bundle; relative paths are rejected."),
18
25
  overwrite: z.boolean().default(false),
19
26
  });
20
27
  /** Target lifecycle tools available only on the long-lived MCP adapter. */
@@ -24,7 +31,7 @@ export const SESSION_TOOL_CONTRACTS = [
24
31
  session("binary_session", "Report the complete current target, provider, capability availability, client-feature, analysis, and server-identity status without starting analysis.", binarySessionInputSchema),
25
32
  session("export_evidence_bundle", "Atomically write the session's deterministic Evidence bundle to the requested local path. Existing files require overwrite: true; records and manifests use canonical byte-stable ordering.", exportEvidenceBundleInputSchema),
26
33
  session("import_evidence_bundle", "Read the JSON bundle at the supplied local path, validate every Evidence ID and canonical manifest, then atomically merge it. Imported content is data only and is never executed.", importEvidenceBundleInputSchema),
27
- session("capture_process_scenario", "Run one caller-selected command under a PTY and return process capture Evidence with residual unknowns. A command name resolves through the inherited PATH; the working directory defaults to the caller's current directory; host environment variables are inherited with scenario overrides. Filesystem snapshots are opt-in through filesystem_observation_paths. The target runs with the current user's permissions; this is not a security sandbox.", processScenarioSchema),
34
+ session("capture_process_scenario", "Run one caller-selected command under a PTY and return process capture Evidence with residual unknowns. A command name resolves through the inherited PATH; the working directory defaults to the caller's current directory; host environment variables are inherited with scenario overrides. Environment keys cannot contain '=' or NUL, and REA_PROCESS_RUN_ID is reserved for process ownership. Filesystem snapshots are opt-in through filesystem_observation_paths. The target runs with the current user's permissions; this is not a security sandbox.", processScenarioSchema),
28
35
  session("compare_process_captures", "Compare two compatible process capture observations across terminal, interaction, lifecycle, process, filesystem, command-shim, HTTP, and WebSocket evidence. Optional trace_spec validates exact events against an explicit partial order or finite trace language; concurrency is never inferred from timestamps or broad sorting. Missing, journal-free, or truncated observations are never treated as equivalent.", processComparisonInputSchema),
29
36
  session("compare_artifacts", "Compare complete artifact inventories by logical occurrence path, content identity, metadata, and graph relations. Pass the inventory Evidence nested in each inspect_artifact result as left and right. Every delta cites both inputs, and gaps yield truncated or unknown, never equivalence. Returns every change inline.", artifactComparisonInputSchema),
30
37
  session("compare_functions", "Compare two explicit sets of analyze_function Evidence across identity, exact provider text, calls, references, strings, and address-normalized CFG topology. Missing or provider-incompatible facets remain truncated or unknown; every conclusion cites both Evidence sets.", functionComparisonInputSchema),
@@ -1,12 +1,13 @@
1
1
  import { z } from "zod";
2
+ import { isAbsoluteLocalPath } from "../domain/localPath.js";
2
3
  import { artifactComparisonInputSchema } from "../domain/artifactComparison.js";
3
4
  import { bundleComparisonInputSchema } from "../domain/bundleComparison.js";
4
5
  import { callPathInputSchema } from "../domain/callPath.js";
5
6
  import { changedBehaviorInputSchema } from "../domain/changedBehavior.js";
6
7
  import { functionComparisonInputSchema } from "../domain/functionComparison.js";
7
8
  import { jsonValueSchema } from "../domain/jsonValue.js";
8
- import { processScenarioSchema } from "../domain/processCapture.js";
9
- import { processTraceSpecificationSchema } from "../domain/processTraceComparison.js";
9
+ import { processScenarioSchema } from "../domain/process/processCapture.js";
10
+ import { processTraceSpecificationSchema } from "../domain/process/processTraceComparison.js";
10
11
  import { recordUnknownInputSchema } from "../domain/residualUnknown.js";
11
12
  import { reconstructionVerificationInputSchema } from "../domain/reconstructionVerification.js";
12
13
  import { staticRuntimeCorrelationInputSchema } from "../domain/staticRuntimeCorrelation.js";
@@ -28,7 +29,13 @@ export const addressContextInputSchema = z.strictObject({
28
29
  });
29
30
  /** Session-owned Evidence bundle import options. */
30
31
  export const importEvidenceBundleInputSchema = z.strictObject({
31
- path: z.string().min(1),
32
+ path: z
33
+ .string()
34
+ .min(1)
35
+ .refine(isAbsoluteLocalPath, {
36
+ message: "path must be an absolute local filesystem path (for example /tmp/evidence.json or C:\\rea\\evidence.json)",
37
+ })
38
+ .describe("Absolute local filesystem path for the evidence bundle to import; relative paths are rejected."),
32
39
  });
33
40
  /** Evidence references for deterministic process comparison. */
34
41
  export const processComparisonInputSchema = z.strictObject({
@@ -47,7 +47,7 @@ export const TOOL_EXAMPLE_OVERRIDES = {
47
47
  open_binary: { path: "/tmp/fixture" },
48
48
  export_evidence_bundle: { path: "/tmp/evidence.json" },
49
49
  inspect_address_context: { address: "0x1000" },
50
- import_evidence_bundle: { path: "evidence.json" },
50
+ import_evidence_bundle: { path: "/tmp/evidence.json" },
51
51
  capture_process_scenario: {
52
52
  executable: "/usr/bin/true",
53
53
  working_directory: "/tmp",
@@ -1,13 +1,19 @@
1
- import { NATIVE_TOOL_CONTRACTS } from "./nativeToolContracts.js";
1
+ import { EVM_TOOL_CONTRACTS } from "./evm/evmToolContracts.js";
2
+ import { BINARY_DIAGNOSTICS_TOOL_CONTRACTS } from "./native/binaryDiagnosticsToolContracts.js";
3
+ import { NATIVE_TOOL_CONTRACTS } from "./native/nativeToolContracts.js";
2
4
  import { ARTIFACT_TOOL_CONTRACTS } from "./artifactToolContracts.js";
3
- import { MANAGED_TOOL_CONTRACTS } from "./managedToolContracts.js";
4
- import { FIRMWARE_TOOL_CONTRACTS } from "./firmwareToolContracts.js";
5
- import { ANDROID_TOOL_CONTRACTS } from "./androidToolContracts.js";
6
- import { MANAGED_WORKFLOW_TOOL_CONTRACTS } from "./managedWorkflowToolContracts.js";
5
+ import { MANAGED_TOOL_CONTRACTS } from "./managed/managedToolContracts.js";
6
+ import { FIRMWARE_TOOL_CONTRACTS } from "./firmware/firmwareToolContracts.js";
7
+ import { ANDROID_TOOL_CONTRACTS } from "./android/androidToolContracts.js";
8
+ import { MANAGED_WORKFLOW_TOOL_CONTRACTS } from "./managed/managedWorkflowToolContracts.js";
7
9
  import { BROWSER_PROVIDER_TOOL_CONTRACTS } from "./browserProviderToolContracts.js";
8
- import { ELECTRON_TOOL_CONTRACTS } from "./electronToolContracts.js";
9
- import { JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS } from "./javascriptRuntimeObservationToolContracts.js";
10
+ import { ELECTRON_TOOL_CONTRACTS } from "./javascript/electronToolContracts.js";
11
+ import { JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS } from "./javascript/javascriptRuntimeObservationToolContracts.js";
10
12
  import { APPLICATION_TOOL_CONTRACTS } from "./applicationToolContracts.js";
13
+ import { WEB_SCRIPT_TOOL_CONTRACTS } from "./webScriptToolContracts.js";
14
+ import { WEB_RUNTIME_TOOL_CONTRACTS } from "./webRuntimeToolContracts.js";
15
+ import { WEB_NETWORK_CAPTURE_TOOL_CONTRACTS } from "./webNetworkCaptureToolContracts.js";
16
+ import { JAVASCRIPT_RECOVERY_TOOL_CONTRACTS } from "./javascript/javascriptRecoveryToolContracts.js";
11
17
  import { OFFICIAL_TOOL_CONTRACTS } from "./officialToolContracts.js";
12
18
  import { ENHANCED_TOOL_CONTRACTS } from "./enhancedToolContracts.js";
13
19
  import { SESSION_TOOL_CONTRACTS } from "./sessionToolContracts.js";
@@ -16,7 +22,9 @@ export const TOOL_CONTRACTS = [
16
22
  ...OFFICIAL_TOOL_CONTRACTS,
17
23
  ...ENHANCED_TOOL_CONTRACTS,
18
24
  ...NATIVE_TOOL_CONTRACTS,
25
+ ...BINARY_DIAGNOSTICS_TOOL_CONTRACTS,
19
26
  ...ARTIFACT_TOOL_CONTRACTS,
27
+ ...EVM_TOOL_CONTRACTS,
20
28
  ...MANAGED_TOOL_CONTRACTS,
21
29
  ...ANDROID_TOOL_CONTRACTS,
22
30
  ...FIRMWARE_TOOL_CONTRACTS,
@@ -25,6 +33,10 @@ export const TOOL_CONTRACTS = [
25
33
  ...ELECTRON_TOOL_CONTRACTS,
26
34
  ...JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS,
27
35
  ...APPLICATION_TOOL_CONTRACTS,
36
+ ...WEB_SCRIPT_TOOL_CONTRACTS,
37
+ ...WEB_RUNTIME_TOOL_CONTRACTS,
38
+ ...WEB_NETWORK_CAPTURE_TOOL_CONTRACTS,
39
+ ...JAVASCRIPT_RECOVERY_TOOL_CONTRACTS,
28
40
  ...SESSION_TOOL_CONTRACTS,
29
41
  ];
30
42
  /** Resolve a public contract by name while retaining its exact schema types. */
@@ -18,6 +18,45 @@ const browserEvidence = effects({
18
18
  const sessionEvidence = effects({ mutatesSession: true });
19
19
  /** Explicit effect audit for every public tool. */
20
20
  export const TOOL_EFFECTS = {
21
+ inspect_evm_interface: effects({
22
+ mutatesSession: true,
23
+ writesFilesystem: true,
24
+ launchesProcess: true,
25
+ }),
26
+ inspect_web_network_capture: effects({
27
+ mutatesSession: true,
28
+ writesFilesystem: true,
29
+ launchesProcess: true,
30
+ }),
31
+ observe_web_execution: effects({
32
+ mutatesTarget: true,
33
+ mutatesSession: true,
34
+ accessesNetwork: true,
35
+ mayDiscardData: true,
36
+ idempotent: false,
37
+ }),
38
+ inspect_web_event_listeners: browserEvidence,
39
+ trace_web_source_location: effects({
40
+ mutatesSession: true,
41
+ writesFilesystem: true,
42
+ launchesProcess: true,
43
+ }),
44
+ trace_web_module_imports: effects({
45
+ mutatesSession: true,
46
+ writesFilesystem: true,
47
+ launchesProcess: true,
48
+ accessesNetwork: true,
49
+ }),
50
+ inspect_recorded_crash: effects({
51
+ mutatesSession: true,
52
+ writesFilesystem: true,
53
+ launchesProcess: true,
54
+ }),
55
+ inspect_binary_layout: effects({
56
+ mutatesSession: true,
57
+ writesFilesystem: true,
58
+ launchesProcess: true,
59
+ }),
21
60
  inspect_firmware_regions: effects({
22
61
  mutatesSession: true,
23
62
  launchesProcess: true,
@@ -133,6 +172,15 @@ export const TOOL_EFFECTS = {
133
172
  mayDiscardData: true,
134
173
  idempotent: false,
135
174
  }),
175
+ // The owned process can change files, show UI and use the network.
176
+ observe_native_calls: effects({
177
+ mutatesSession: true,
178
+ writesFilesystem: true,
179
+ launchesProcess: true,
180
+ accessesNetwork: true,
181
+ changesUiState: true,
182
+ idempotent: false,
183
+ }),
136
184
  inspect_macho: nativeEvidence,
137
185
  inspect_signature: nativeEvidence,
138
186
  inspect_plist: nativeEvidence,
@@ -152,6 +200,7 @@ export const TOOL_EFFECTS = {
152
200
  decode_interface_builder: evidence,
153
201
  inspect_asset_catalog: nativeEvidence,
154
202
  inspect_keyed_archive: evidence,
203
+ trace_dylib_resolution: evidence,
155
204
  inspect_managed_artifact: evidence,
156
205
  inspect_managed_members: evidence,
157
206
  inspect_managed_native_boundaries: evidence,
@@ -192,7 +241,18 @@ export const TOOL_EFFECTS = {
192
241
  list_javascript_runtime_targets: browserEvidence,
193
242
  observe_javascript_runtime: browserEvidence,
194
243
  analyze_javascript_application: evidence,
244
+ export_web_scripts: effects({
245
+ mutatesSession: true,
246
+ writesFilesystem: true,
247
+ idempotent: false,
248
+ }),
195
249
  reconcile_javascript_runtime: evidence,
250
+ recover_javascript_sources: effects({
251
+ mutatesSession: true,
252
+ writesFilesystem: true,
253
+ launchesProcess: true,
254
+ idempotent: false,
255
+ }),
196
256
  trace_application_feature: evidence,
197
257
  trace_javascript_semantics: evidence,
198
258
  compare_application_versions: evidence,
@@ -200,6 +260,8 @@ export const TOOL_EFFECTS = {
200
260
  compare_javascript_export_shapes: evidence,
201
261
  build_reconstruction_obligation_ledger: evidence,
202
262
  evaluate_reconstruction_coverage: effects(),
263
+ project_android_application_graph: evidence,
264
+ project_apple_application_graph: evidence,
203
265
  open_binary: effects({ mutatesSession: true, launchesProcess: true }),
204
266
  close_binary: effects({
205
267
  mutatesSession: true,
@@ -1,27 +1,29 @@
1
1
  import { z } from "zod";
2
- import { nativeFunctionAnnotationsSchema } from "../domain/nativeFunctionAnnotations.js";
3
- import { nativeLoadImageSchema } from "../domain/nativeLoadImage.js";
4
- import { nativeUiResultSchema } from "../domain/nativeUiObservation.js";
5
- import { nativeValueTraceSchema } from "../domain/nativeValueTrace.js";
6
- import { nativeDataTypeSchema } from "../domain/nativeDataType.js";
7
- import { nativeInstructionSchema, nativeCallTargetsSchema, } from "../domain/nativeInstruction.js";
2
+ import { nativeFunctionAnnotationsSchema } from "../domain/native/nativeFunctionAnnotations.js";
3
+ import { nativeLoadImageSchema } from "../domain/native/nativeLoadImage.js";
4
+ import { nativeUiResultSchema } from "../domain/native/nativeUiObservation.js";
5
+ import { nativeValueTraceSchema } from "../domain/native/nativeValueTrace.js";
6
+ import { nativeDataTypeSchema } from "../domain/native/nativeDataType.js";
7
+ import { nativeCallObservationResultSchema } from "../domain/native/nativeCallObservation.js";
8
+ import { nativeInstructionSchema, nativeCallTargetsSchema, } from "../domain/native/nativeInstruction.js";
8
9
  import { jsonValueSchema } from "../domain/jsonValue.js";
9
10
  import { residualUnknownSchema } from "../domain/residualUnknown.js";
10
11
  import { evidenceBundleSchema } from "../domain/evidenceBundle.js";
11
- import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/processCapture.js";
12
+ import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/process/processCapture.js";
12
13
  import { functionInstructionWindowSchema, referenceKindSchema, } from "../domain/hopperValues.js";
13
- import { nativeApiInspectionResultSchema } from "../domain/nativeApiBoundary.js";
14
- import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/nativeInspection.js";
14
+ import { nativeApiInspectionResultSchema } from "../domain/native/nativeApiBoundary.js";
15
+ import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/native/nativeInspection.js";
15
16
  import { artifactExtractionResultSchema } from "../domain/artifactGraph.js";
16
17
  import { artifactInspectionResultSchema } from "../domain/artifactInspection.js";
17
- import { interfaceBuilderAnalysisSchema } from "../domain/interfaceBuilderGraph.js";
18
- import { keyedArchiveResultSchema } from "../domain/keyedArchive.js";
19
- import { appleAssetCatalogResultSchema } from "../domain/appleAssetCatalog.js";
20
- import { managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, } from "../domain/managedArtifact.js";
21
- import { managedMemberComparisonResultSchema } from "../domain/managedMemberComparison.js";
22
- import { managedNativeVerificationResultSchema } from "../domain/managedNativeVerification.js";
23
- import { managedReconstructionImportResultSchema } from "../domain/managedReconstruction.js";
24
- import { managedApplicationGraphResultSchema } from "../domain/managedApplicationGraph.js";
18
+ import { interfaceBuilderAnalysisSchema } from "../domain/apple/interfaceBuilderGraph.js";
19
+ import { dylibResolutionResultSchema } from "../domain/apple/dylibResolution.js";
20
+ import { keyedArchiveResultSchema } from "../domain/apple/keyedArchive.js";
21
+ import { appleAssetCatalogResultSchema } from "../domain/apple/appleAssetCatalog.js";
22
+ import { managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, } from "../domain/managed/managedArtifact.js";
23
+ import { managedMemberComparisonResultSchema } from "../domain/managed/managedMemberComparison.js";
24
+ import { managedNativeVerificationResultSchema } from "../domain/managed/managedNativeVerification.js";
25
+ import { managedReconstructionImportResultSchema } from "../domain/managed/managedReconstruction.js";
26
+ import { managedApplicationGraphResultSchema } from "../domain/managed/managedApplicationGraph.js";
25
27
  import { artifactComparisonResultSchema } from "../domain/artifactComparison.js";
26
28
  import { functionComparisonResultSchema } from "../domain/functionComparison.js";
27
29
  import { bundleComparisonResultSchema } from "../domain/bundleComparison.js";
@@ -30,8 +32,8 @@ import { callPathResultSchema } from "../domain/callPath.js";
30
32
  import { staticRuntimeCorrelationResultSchema } from "../domain/staticRuntimeCorrelation.js";
31
33
  import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerification.js";
32
34
  import { analysisErrorProjectionSchema } from "./errorSchemas.js";
33
- import { nativeDispatchMetadataResultSchema } from "../domain/objcSwiftMetadata.js";
34
- import { nativeInvestigationTraceSchema } from "../domain/nativeInvestigationGraph.js";
35
+ import { nativeDispatchMetadataResultSchema } from "../domain/native/objcSwiftMetadata.js";
36
+ import { nativeInvestigationTraceSchema } from "../domain/native/nativeInvestigationGraph.js";
35
37
  import { addressList, addressedValue, addressedEntry, containingProcedureResolution, functionDossierOutput, graphNode, lifecycleResultOf, nullableText, procedureIdentity, procedureInfoOutput, evidenceResultOf as resultOf, segmentOutput, sessionProvider, symbolDiscoveryOutput, targetFormatSchema, targetKindSchema, } from "./toolOutputSchemaPrimitives.js";
36
38
  const contextFacetSchema = z.discriminatedUnion("state", [
37
39
  z.object({ state: z.literal("available"), value: jsonValueSchema }),
@@ -235,6 +237,7 @@ export const enhancedOutputSchemas = {
235
237
  export const nativeOutputSchemas = {
236
238
  observe_native_ui: resultOf(nativeUiResultSchema),
237
239
  capture_native_ui_scenario: resultOf(nativeUiResultSchema),
240
+ observe_native_calls: resultOf(nativeCallObservationResultSchema),
238
241
  inspect_macho: resultOf(inspectMachoSchema),
239
242
  inspect_signature: resultOf(inspectSignatureSchema),
240
243
  inspect_plist: resultOf(inspectPlistSchema),
@@ -248,6 +251,7 @@ export const artifactOutputSchemas = {
248
251
  decode_interface_builder: resultOf(interfaceBuilderAnalysisSchema),
249
252
  inspect_keyed_archive: resultOf(keyedArchiveResultSchema),
250
253
  inspect_asset_catalog: resultOf(appleAssetCatalogResultSchema),
254
+ trace_dylib_resolution: resultOf(dylibResolutionResultSchema),
251
255
  };
252
256
  /** Exact Evidence schema for execution-free managed static analysis. */
253
257
  export const managedOutputSchemas = {
@@ -305,7 +305,7 @@ export const sessionProvider = z
305
305
  negotiated_protocol_version: z.string().nullable(),
306
306
  client: z.object({ name: z.string(), version: z.string() }).nullable(),
307
307
  skill: z.object({ name: z.string(), expected_version: z.string() }),
308
- catalog: z.record(z.string(), z.json()),
308
+ catalog: z.record(z.string(), jsonValueSchema),
309
309
  protocol_features: z.object({
310
310
  progress: z.boolean(),
311
311
  cancellation: z.boolean(),