rea-agents 6.3.0 → 6.5.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 (1332) hide show
  1. package/DISCLAIMER.md +136 -0
  2. package/README.md +72 -18
  3. package/THIRD_PARTY_NOTICES.md +134 -0
  4. package/bridge/android/ReaJadxBridge.java +123 -11
  5. package/bridge/cutter/rea_bridge.py +816 -0
  6. package/bridge/ghidra/ReaGhidraAnalysisOptions.java +38 -0
  7. package/bridge/ghidra/ReaGhidraApplySeeds.java +151 -0
  8. package/bridge/ghidra/ReaGhidraBridge.java +1729 -283
  9. package/bridge/ghidra/ReaGhidraBundleActivator.java +14 -0
  10. package/bridge/ghidra/ReaGhidraMipsSoftFloat.java +176 -0
  11. package/bridge/ghidra/ReaGhidraNoReturnFix.java +123 -0
  12. package/bridge/ghidra/ReaGhidraPrepareRaw.java +49 -0
  13. package/bridge/hopper_bridge.py +103 -69
  14. package/bridge/mitmproxy/capture.py +189 -13
  15. package/bridge/native/rea_lldb_tracer.py +40 -6
  16. package/bridge/process/ProcessRunTokenReader.swift +76 -34
  17. package/bridge/pwntools/layout_impl.py +5 -0
  18. package/bridge/pwntools/recorded_crash_impl.py +31 -10
  19. package/dist/adb/AdbConfiguration.js +100 -0
  20. package/dist/adb/AdbDeviceOutput.js +208 -0
  21. package/dist/adb/AdbDirectoryListing.js +80 -0
  22. package/dist/adb/AdbHostFileName.js +34 -0
  23. package/dist/adb/AdbProvider.js +1433 -0
  24. package/dist/adb/AdbShellOutput.js +307 -0
  25. package/dist/android/AndroidTargetSnapshot.js +104 -22
  26. package/dist/android/JadxAnalysis.js +32 -7
  27. package/dist/android/JadxConfiguration.js +163 -53
  28. package/dist/android/JadxDoctor.js +115 -0
  29. package/dist/android/JadxMcpTransport.js +5 -3
  30. package/dist/android/JadxProtocol.js +14 -0
  31. package/dist/android/JadxProvider.js +63 -25
  32. package/dist/android/JadxRelease.js +12 -1
  33. package/dist/android/JadxWorkspaceRoot.js +157 -0
  34. package/dist/apktool/ApktoolConfiguration.js +227 -0
  35. package/dist/apktool/ApktoolDecodeOutput.js +142 -0
  36. package/dist/apktool/ApktoolProvider.js +543 -0
  37. package/dist/application/AnalysisContextQueries.js +5 -8
  38. package/dist/application/AnalysisProvider.js +24 -14
  39. package/dist/application/AppBundleExecutable.js +30 -25
  40. package/dist/application/BinaryTargetResolver.js +210 -33
  41. package/dist/application/BrowserEvidence.js +1 -1
  42. package/dist/application/BrowserObservationService.js +13 -2
  43. package/dist/application/BrowserScenarioCaptureService.js +0 -1
  44. package/dist/application/CallPathTracing.js +52 -13
  45. package/dist/application/CapabilityInventory.js +179 -29
  46. package/dist/application/ClaudeDesktopConfigLocation.js +152 -0
  47. package/dist/application/ClientConfigurationDocument.js +154 -7
  48. package/dist/application/ClientConfigurationFiles.js +128 -0
  49. package/dist/application/ClientRegistrationEnvironment.js +41 -0
  50. package/dist/application/ClientRegistrationIdentity.js +94 -29
  51. package/dist/application/ClientRegistrationStatus.js +223 -67
  52. package/dist/application/DirectAnalysis.js +86 -31
  53. package/dist/application/DirectAnalysisCleanup.js +1 -1
  54. package/dist/application/DirectAnalysisStatus.js +14 -2
  55. package/dist/application/Doctor.js +117 -34
  56. package/dist/application/DoctorDiagnostics.js +34 -12
  57. package/dist/application/DoctorProviderIds.js +2 -0
  58. package/dist/application/DoctorScope.js +11 -2
  59. package/dist/application/DshCordisPatch.js +355 -0
  60. package/dist/application/DshCordisYaml.js +155 -0
  61. package/dist/application/EnhancedLiteralTracing.js +30 -16
  62. package/dist/application/EnhancedToolTypes.js +0 -1
  63. package/dist/application/EnhancedTools.js +164 -54
  64. package/dist/application/EvidenceBundleCommands.js +36 -19
  65. package/dist/application/EvidenceBundleFiles.js +29 -7
  66. package/dist/application/FunctionAnalysisEvidence.js +3 -0
  67. package/dist/application/GeminiClientSettings.js +151 -0
  68. package/dist/application/HermesClientHome.js +115 -0
  69. package/dist/application/HermesConfigurationYaml.js +272 -0
  70. package/dist/application/HopperDownload.js +39 -0
  71. package/dist/application/InventoryProjectionEvidence.js +0 -1
  72. package/dist/application/InvestigationProviders.js +19 -3
  73. package/dist/application/JsonFiles.js +114 -23
  74. package/dist/application/JsonInputFile.js +410 -0
  75. package/dist/application/LinuxHopper.js +130 -60
  76. package/dist/application/MacHopper.js +177 -150
  77. package/dist/application/MacHopperPaths.js +40 -0
  78. package/dist/application/MipsElfMetadata.js +201 -0
  79. package/dist/application/MipsElfSharedLoad.js +164 -0
  80. package/dist/application/MipsGnuAttributes.js +90 -0
  81. package/dist/application/MsixPackageStorage.js +133 -0
  82. package/dist/application/ProgressReporter.js +1 -1
  83. package/dist/application/ProviderOperationExecution.js +39 -0
  84. package/dist/application/ReconstructionCoverageService.js +0 -1
  85. package/dist/application/ReconstructionObligationCandidates.js +12 -5
  86. package/dist/application/ReconstructionObligationLedgerDiagnostics.js +2 -2
  87. package/dist/application/ReconstructionObligationLedgerEvaluation.js +15 -33
  88. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -72
  89. package/dist/application/ReconstructionObligationLedgerService.js +3 -1
  90. package/dist/application/ReconstructionObligationOriginalCases.js +2 -1
  91. package/dist/application/ReferenceSourceImport.js +94 -31
  92. package/dist/application/ReferenceSourceImportEntries.js +40 -30
  93. package/dist/application/ReferenceSourceImportPolicy.js +99 -23
  94. package/dist/application/ReferenceSourceImportTypes.js +30 -23
  95. package/dist/application/ReferenceSourceVcsAdapter.js +163 -31
  96. package/dist/application/RegularFileRead.js +121 -7
  97. package/dist/application/Setup.js +88 -14
  98. package/dist/application/SetupClientConfiguration.js +307 -38
  99. package/dist/application/SetupClients.js +12 -6
  100. package/dist/application/SetupHost.js +158 -38
  101. package/dist/application/SetupInstallFailure.js +42 -2
  102. package/dist/application/SetupPlan.js +83 -57
  103. package/dist/application/SetupRecoveryBackup.js +66 -0
  104. package/dist/application/SetupRegistrationEnvironment.js +2 -1
  105. package/dist/application/SetupSkill.js +354 -88
  106. package/dist/application/SupportedClients.js +429 -70
  107. package/dist/application/TypeScriptEmittedSourceCandidates.js +26 -0
  108. package/dist/application/Uninstall.js +412 -73
  109. package/dist/application/UninstallFailure.js +14 -0
  110. package/dist/application/Update.js +54 -25
  111. package/dist/application/UpdateFailure.js +17 -0
  112. package/dist/application/UpdateMaintenance.js +25 -47
  113. package/dist/application/UpdateRuntime.js +141 -27
  114. package/dist/application/Utf8JsonInput.js +7 -0
  115. package/dist/application/WebModuleTraceService.js +7 -0
  116. package/dist/application/WebNetworkCaptureService.js +16 -7
  117. package/dist/application/WebScriptExportService.js +131 -65
  118. package/dist/application/WebSourceLocationService.js +22 -3
  119. package/dist/application/WindowsCapabilities.js +18 -15
  120. package/dist/application/WorkflowEvidence.js +24 -1
  121. package/dist/application/adb/AdbDeviceAnalysisPort.js +1 -0
  122. package/dist/application/adb/AdbDeviceAnalysisService.js +13 -0
  123. package/dist/application/analysisView/AnalysisViewService.js +122 -6
  124. package/dist/application/android/AndroidPackageInspection.js +25 -0
  125. package/dist/application/android/AndroidSearchEvidenceSummary.js +100 -0
  126. package/dist/application/apktool/ApktoolResourceAnalysisPort.js +1 -0
  127. package/dist/application/apktool/ApktoolResourceAnalysisService.js +13 -0
  128. package/dist/application/binary/AnalysisClientCleanup.js +0 -24
  129. package/dist/application/binary/AnalysisProviderEvaluation.js +1 -1
  130. package/dist/application/binary/AnalysisProviderRegistry.js +36 -21
  131. package/dist/application/binary/AnalysisSnapshotCache.js +41 -20
  132. package/dist/application/binary/AnalysisSnapshotFiles.js +75 -9
  133. package/dist/application/binary/BinarySession.js +250 -97
  134. package/dist/application/binary/BinarySessionExecution.js +5 -4
  135. package/dist/application/binary/BinarySessionOpen.js +13 -6
  136. package/dist/application/binary/BinarySessionRecords.js +33 -7
  137. package/dist/application/binary/BinarySessionStatus.js +93 -23
  138. package/dist/application/binary/BinaryTargetSummary.js +9 -0
  139. package/dist/application/binary/CompositeProvider.js +71 -28
  140. package/dist/application/binary/LazyAnalysisProvider.js +3 -1
  141. package/dist/application/binary/SessionProviderRouter.js +5 -2
  142. package/dist/application/binaryDiagnostics/BinaryLayoutService.js +13 -2
  143. package/dist/application/binaryDiagnostics/PeResourcesPort.js +1 -0
  144. package/dist/application/binaryDiagnostics/PeResourcesService.js +114 -0
  145. package/dist/application/binaryDiagnostics/RecordedCrashService.js +16 -4
  146. package/dist/application/captures/PacketCaptureService.js +83 -0
  147. package/dist/application/closeOwnedWebResources.js +7 -0
  148. package/dist/application/electron/ElectronFusePort.js +1 -0
  149. package/dist/application/electron/ElectronFuseService.js +80 -0
  150. package/dist/application/evm/EvmInterfaceService.js +4 -0
  151. package/dist/application/firmware/FirmwareAnalysisService.js +3 -0
  152. package/dist/application/flutter/DartAotInspection.js +26 -0
  153. package/dist/application/flutter/FlutterBuildAnalysisPort.js +1 -0
  154. package/dist/application/flutter/FlutterBuildAnalysisService.js +13 -0
  155. package/dist/application/frida/FridaInstrumentationPort.js +8 -0
  156. package/dist/application/frida/FridaInstrumentationService.js +310 -0
  157. package/dist/application/frida/fridaInputErrors.js +17 -0
  158. package/dist/application/go/GoBinaryPort.js +1 -0
  159. package/dist/application/go/GoBinaryService.js +80 -0
  160. package/dist/application/harmony/HarmonyApplicationService.js +17 -0
  161. package/dist/application/investigation/EvidenceLedger.js +40 -14
  162. package/dist/application/investigation/InspectEvidenceBundle.js +18 -0
  163. package/dist/application/investigation/InvestigationRecords.js +12 -21
  164. package/dist/application/investigation/UnknownEvidence.js +22 -18
  165. package/dist/application/javascript/ElectronActiveObservationService.js +55 -25
  166. package/dist/application/javascript/ElectronBoundaryAnalysis.js +17 -3
  167. package/dist/application/javascript/ElectronBoundaryGraph.js +2 -0
  168. package/dist/application/javascript/ElectronBoundaryGraphCallPaths.js +144 -0
  169. package/dist/application/javascript/ElectronBoundaryGraphContext.js +3 -2
  170. package/dist/application/javascript/ElectronBoundaryGraphIpc.js +28 -9
  171. package/dist/application/javascript/ElectronBoundaryGraphNative.js +20 -7
  172. package/dist/application/javascript/ElectronBoundaryGraphWindows.js +50 -12
  173. package/dist/application/javascript/ElectronObservationService.js +0 -1
  174. package/dist/application/javascript/JavaScriptApplicationEvidence.js +15 -0
  175. package/dist/application/javascript/JavaScriptApplicationService.js +44 -18
  176. package/dist/application/javascript/JavaScriptApplicationWorkflowEvidence.js +5 -6
  177. package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +0 -1
  178. package/dist/application/javascript/JavaScriptArtifactAnalysis.js +253 -60
  179. package/dist/application/javascript/JavaScriptArtifactGraphAccumulator.js +51 -23
  180. package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +93 -21
  181. package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +4 -3
  182. package/dist/application/javascript/JavaScriptArtifactGraphContext.js +35 -8
  183. package/dist/application/javascript/JavaScriptArtifactGraphDocuments.js +25 -14
  184. package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +163 -54
  185. package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +246 -15
  186. package/dist/application/javascript/JavaScriptArtifactPathResolution.js +1057 -323
  187. package/dist/application/javascript/JavaScriptArtifactReconstruction.js +134 -32
  188. package/dist/application/javascript/JavaScriptArtifactReconstructionInput.js +6 -1
  189. package/dist/application/javascript/JavaScriptModuleRelationships.js +39 -15
  190. package/dist/application/javascript/JavaScriptRecoveryService.js +32 -9
  191. package/dist/application/javascript/JavaScriptRuntimeObservationService.js +2 -1
  192. package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +0 -1
  193. package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +9 -3
  194. package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +228 -74
  195. package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +12 -19
  196. package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +4 -1
  197. package/dist/application/javascript/JavaScriptSemanticGraphElectronProjection.js +67 -0
  198. package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +5 -3
  199. package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +5 -3
  200. package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +19 -8
  201. package/dist/application/javascript/JavaScriptSemanticTraceService.js +0 -1
  202. package/dist/application/jeb/JebAnalysisPort.js +1 -0
  203. package/dist/application/jeb/JebAnalysisService.js +13 -0
  204. package/dist/application/managed/ManagedApplicationGraphService.js +1 -2
  205. package/dist/application/managed/ManagedMemberComparisonService.js +72 -54
  206. package/dist/application/managed/ManagedNativeVerificationService.js +0 -1
  207. package/dist/application/managed/ManagedReconstructionService.js +0 -1
  208. package/dist/application/native/NativeCallRoutes.js +54 -34
  209. package/dist/application/native/NativeDispatchMetadataInspection.js +6 -2
  210. package/dist/application/native/NativeUiActionTrace.js +51 -30
  211. package/dist/application/native/NativeValueTrace.js +75 -24
  212. package/dist/application/pcap/PcapAnalysisPort.js +1 -0
  213. package/dist/application/pcap/PcapAnalysisService.js +24 -0
  214. package/dist/application/process/ProcessCli.js +57 -32
  215. package/dist/application/reverse/ReverseEngineeringCommandPort.js +1 -0
  216. package/dist/application/reverse/ReverseEngineeringService.js +688 -0
  217. package/dist/application/rust/RustBinaryPort.js +1 -0
  218. package/dist/application/rust/RustBinaryService.js +80 -0
  219. package/dist/application/signals/SignalRecordingService.js +83 -0
  220. package/dist/application/sqlite/SqliteDatabaseCapability.js +30 -0
  221. package/dist/application/sqlite/SqliteDatabasePort.js +1 -0
  222. package/dist/application/sqlite/SqliteDatabaseService.js +76 -0
  223. package/dist/application/wasm/WasmArtifactPort.js +1 -0
  224. package/dist/application/wasm/WasmArtifactService.js +77 -0
  225. package/dist/application/wasm/WasmInterfaceComparisonService.js +188 -0
  226. package/dist/artifacts/ArtifactHash.js +13 -2
  227. package/dist/artifacts/ArtifactPaths.js +133 -15
  228. package/dist/artifacts/ArtifactProvider.js +28 -19
  229. package/dist/artifacts/ArtifactReader.js +35 -0
  230. package/dist/artifacts/ArtifactResourceScope.js +109 -0
  231. package/dist/artifacts/AsarArtifactReader.js +295 -156
  232. package/dist/artifacts/AsarHeader.js +24 -0
  233. package/dist/artifacts/AsarListing.js +78 -0
  234. package/dist/artifacts/DirectoryArtifactReader.js +247 -74
  235. package/dist/artifacts/MachOSliceArtifactReader.js +198 -48
  236. package/dist/artifacts/NativeDmgArtifactReader.js +188 -78
  237. package/dist/artifacts/OrderedReads.js +57 -0
  238. package/dist/artifacts/SafeOutputTree.js +261 -71
  239. package/dist/artifacts/SafeOutputTreeCleanup.js +45 -0
  240. package/dist/artifacts/SafeOutputTreeCreationFailure.js +20 -0
  241. package/dist/artifacts/SafeOutputTreeIdentity.js +42 -0
  242. package/dist/artifacts/SafeOutputTreeReadback.js +33 -0
  243. package/dist/artifacts/ZipArtifactReader.js +186 -31
  244. package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +77 -68
  245. package/dist/artifacts/apple/DylibResolutionReader.js +11 -5
  246. package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +114 -38
  247. package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +125 -35
  248. package/dist/artifacts/apple/KeyedArchiveReader.js +35 -15
  249. package/dist/artifacts/apple/MachoLoadCommandReader.js +62 -61
  250. package/dist/artifacts/apple/NibArchive.js +11 -4
  251. package/dist/artifacts/apple/PlistNumberLiterals.js +2 -2
  252. package/dist/artifacts/extraction/ArtifactExtraction.js +115 -92
  253. package/dist/artifacts/hostExecutableMarking.js +16 -0
  254. package/dist/artifacts/inventory/ArtifactGraphConstruction.js +236 -69
  255. package/dist/artifacts/inventory/ArtifactInventory.js +7 -6
  256. package/dist/artifacts/inventory/classify.js +95 -35
  257. package/dist/artifacts/inventory/hashStableRootArtifact.js +48 -15
  258. package/dist/artifacts/inventory/reader.js +40 -17
  259. package/dist/artifacts/inventory/scanCanonical.js +84 -40
  260. package/dist/artifacts/inventory/scanReader.js +72 -19
  261. package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +177 -15
  262. package/dist/artifacts/javascript/JavaScriptSourceAnalysis.js +3 -0
  263. package/dist/artifacts/readStableArtifact.js +28 -4
  264. package/dist/browser/BrowserProcessStartup.js +20 -9
  265. package/dist/browser/BrowserScenarioPartialObservation.js +60 -38
  266. package/dist/browser/BrowserScenarioSecrets.js +193 -48
  267. package/dist/browser/CdpBrowserProvider.js +74 -98
  268. package/dist/browser/CdpCaptureDocuments.js +261 -65
  269. package/dist/browser/CdpCaptureDomSvg.js +243 -0
  270. package/dist/browser/CdpCaptureEventBodyShapes.js +12 -12
  271. package/dist/browser/CdpCaptureEventHandlers.js +49 -21
  272. package/dist/browser/CdpCaptureEvents.js +53 -19
  273. package/dist/browser/CdpCaptureStorage.js +22 -5
  274. package/dist/browser/CdpCaptureStorageFingerprints.js +54 -11
  275. package/dist/browser/CdpCaptureValues.js +0 -1
  276. package/dist/browser/CdpConnection.js +25 -9
  277. package/dist/browser/CdpElectronInspection.js +14 -4
  278. package/dist/browser/CdpElectronProvider.js +7 -2
  279. package/dist/browser/CdpElectronScripts.js +2 -1
  280. package/dist/browser/CdpElectronWorkers.js +7 -2
  281. package/dist/browser/CdpEndpoint.js +143 -17
  282. package/dist/browser/CdpObservationSession.js +24 -8
  283. package/dist/browser/CdpPageCapture.js +67 -17
  284. package/dist/browser/CdpPageCaptureScripts.js +4 -3
  285. package/dist/browser/CdpPageCaptureWorkers.js +5 -1
  286. package/dist/browser/CdpSafeMetadata.js +9 -5
  287. package/dist/browser/CdpScreenshot.js +5 -14
  288. package/dist/browser/CdpSnapshotStrings.js +21 -0
  289. package/dist/browser/CdpTargetSession.js +59 -36
  290. package/dist/browser/CdpWebMcpDiscovery.js +55 -16
  291. package/dist/browser/ElectronFileScope.js +99 -9
  292. package/dist/browser/PlaywrightBrowserScenarioProvider.js +64 -8
  293. package/dist/browser/PlaywrightElectronActiveActions.js +4 -4
  294. package/dist/browser/PlaywrightElectronActiveProjection.js +16 -4
  295. package/dist/browser/PlaywrightElectronActiveProvider.js +114 -36
  296. package/dist/browser/PlaywrightExecutionBoundary.js +2 -2
  297. package/dist/browser/PlaywrightScenarioArtifacts.js +5 -5
  298. package/dist/browser/PlaywrightScenarioBrowser.js +78 -13
  299. package/dist/browser/PlaywrightScenarioEvents.js +198 -36
  300. package/dist/browser/PlaywrightScenarioServiceWorkers.js +249 -0
  301. package/dist/browser/PlaywrightScenarioSession.js +180 -75
  302. package/dist/browser/PlaywrightScenarioStorage.js +507 -0
  303. package/dist/browser/PngVisualDiff.js +198 -29
  304. package/dist/browser/WebSourceMapFetcher.js +164 -81
  305. package/dist/browser/assets/LocalWebScriptArtifacts.js +27 -4
  306. package/dist/browser/assets/PublishWebScripts.js +88 -22
  307. package/dist/browser/assets/ScenarioScriptCapture.js +2 -1
  308. package/dist/browser/assets/WebArtifactReads.js +34 -4
  309. package/dist/browser/assets/WebSourceLocationArtifacts.js +39 -3
  310. package/dist/browser/execution/CdpExecutionCapture.js +3 -3
  311. package/dist/browser/execution/CdpPreciseCoverage.js +5 -8
  312. package/dist/browser/history/CaptureFailures.js +22 -8
  313. package/dist/browser/history/CaptureFormatError.js +2 -2
  314. package/dist/browser/history/{HarJson.js → CaptureJson.js} +14 -4
  315. package/dist/browser/history/CaptureRedaction.js +16 -3
  316. package/dist/browser/history/CaptureRelease.js +20 -2
  317. package/dist/browser/history/HarCapture.js +16 -9
  318. package/dist/browser/history/HarSchema.js +36 -36
  319. package/dist/browser/history/HistoricalCaptureDecoder.js +93 -25
  320. package/dist/browser/history/MitmproxyCaptureAdapter.js +3 -1
  321. package/dist/browser/history/NodeCaptureAdapter.js +48 -0
  322. package/dist/browser/history/{HarCaptureProcess.js → NodeCaptureProcess.js} +16 -15
  323. package/dist/browser/history/QlogCapture.js +385 -0
  324. package/dist/browser/history/SazCapture.js +130 -0
  325. package/dist/browser/history/SazHttp.js +61 -0
  326. package/dist/browser/history/SazMetadata.js +92 -0
  327. package/dist/browser/history/SazProjection.js +90 -0
  328. package/dist/browser/modules/NativeModuleResolver.js +177 -110
  329. package/dist/browser/modules/WebModuleArtifacts.js +41 -3
  330. package/dist/browser/network/PlaywrightNetworkContent.js +40 -5
  331. package/dist/browser/network/PlaywrightScenarioNetwork.js +125 -11
  332. package/dist/captures/TsharkCaptureProvider.js +370 -0
  333. package/dist/captures/parseFieldDiscovery.js +66 -0
  334. package/dist/captures/parsePacketOutput.js +21 -0
  335. package/dist/catalogIdentity.js +46 -35
  336. package/dist/cli/adbCommands.js +337 -0
  337. package/dist/cli/analysisViewCommands.js +39 -1
  338. package/dist/cli/androidCommands.js +11 -2
  339. package/dist/cli/apktoolCommands.js +52 -0
  340. package/dist/cli/applicationCommands.js +44 -17
  341. package/dist/cli/artifactCommands.js +9 -12
  342. package/dist/cli/binaryDiagnosticsCommands.js +27 -5
  343. package/dist/cli/browserAdvancedCommands.js +97 -55
  344. package/dist/cli/browserCommands.js +46 -29
  345. package/dist/cli/captureCommands.js +72 -0
  346. package/dist/cli/cliResultOutput.js +188 -0
  347. package/dist/cli/coreBinaryCommands.js +73 -32
  348. package/dist/cli/coreNativeCommands.js +54 -45
  349. package/dist/cli/cutterCommands.js +50 -0
  350. package/dist/cli/electronCommands.js +51 -4
  351. package/dist/cli/evmCommands.js +16 -8
  352. package/dist/cli/finishAnalysisCommand.js +44 -0
  353. package/dist/cli/firmwareCommands.js +21 -38
  354. package/dist/cli/flutterCommands.js +69 -0
  355. package/dist/cli/fridaCommands.js +211 -0
  356. package/dist/cli/goCommands.js +20 -0
  357. package/dist/cli/interactiveSetup.js +11 -1
  358. package/dist/cli/javascriptApplicationAnalysis.js +18 -2
  359. package/dist/cli/javascriptRecoveryCommands.js +29 -15
  360. package/dist/cli/jebCommands.js +99 -0
  361. package/dist/cli/jsonOutput.js +13 -6
  362. package/dist/cli/managedCommands.js +31 -3
  363. package/dist/cli/options.js +20 -2
  364. package/dist/cli/pcapCommands.js +47 -0
  365. package/dist/cli/processCommands.js +1 -1
  366. package/dist/cli/referenceSourceImportStatus.js +7 -0
  367. package/dist/cli/reverseEngineeringCommands.js +268 -0
  368. package/dist/cli/rustCommands.js +21 -0
  369. package/dist/cli/setupCommands.js +55 -15
  370. package/dist/cli/signalCommands.js +72 -0
  371. package/dist/cli/sqliteCommands.js +79 -0
  372. package/dist/cli/utilityCommands.js +179 -89
  373. package/dist/cli/wasmCommands.js +61 -0
  374. package/dist/cli/webModuleCommands.js +36 -32
  375. package/dist/cli/webNetworkCaptureCommands.js +8 -8
  376. package/dist/cli/webScriptCommands.js +20 -1
  377. package/dist/cli/webSourceLocationCommands.js +21 -9
  378. package/dist/cli-runtime/AbortablePromise-BVBemxbD.js +123 -0
  379. package/dist/cli-runtime/AnalysisProvider-D0Us2OTk.js +27 -0
  380. package/dist/cli-runtime/AnalysisSnapshotCache-BXS0wRd2.js +710 -0
  381. package/dist/cli-runtime/ArtifactReader-BXkffc1D.js +55 -0
  382. package/dist/cli-runtime/ArtifactResourceScope-DQWTcUwE.js +114 -0
  383. package/dist/cli-runtime/AsarHeader-CnzOzYEH.js +31 -0
  384. package/dist/cli-runtime/BinarySessionStatus-DnMxMk-r.js +211 -0
  385. package/dist/cli-runtime/BinaryTargetResolver-CVIJ_s1A.js +1308 -0
  386. package/dist/cli-runtime/BoundedFileBytes-BU30odTm.js +39 -0
  387. package/dist/cli-runtime/CdpTargetSession-DGX5pV9w.js +650 -0
  388. package/dist/cli-runtime/ClientConfigPath-c6jr6INc.js +36 -0
  389. package/dist/cli-runtime/ClientConfigurationDocument-ffQ9X0Se.js +1957 -0
  390. package/dist/cli-runtime/ClientRegistrationStatus-DszCyPEU.js +509 -0
  391. package/dist/cli-runtime/CurrentEntrypointPath-D5FRNdkq.js +14 -0
  392. package/dist/cli-runtime/DirectAnalysis-BgvAtpN3.js +528 -0
  393. package/dist/cli-runtime/Doctor-DIpf_I7N.js +588 -0
  394. package/dist/cli-runtime/ElectronFileScope-dpHm2nrS.js +1054 -0
  395. package/dist/cli-runtime/ExecFileOutput-BEQs-lDD.js +117 -0
  396. package/dist/cli-runtime/IdaConfiguration-CtGP7EKo.js +1094 -0
  397. package/dist/cli-runtime/InterfaceBuilderDecodeBudget-D4omRUe4.js +279 -0
  398. package/dist/cli-runtime/InventoryProjectionEvidence-DIsI4DJ6.js +49 -0
  399. package/dist/cli-runtime/InvestigationProviders-DoQRIHii.js +117 -0
  400. package/dist/cli-runtime/JavaScriptApplicationEvidenceGraph-D5aI_FSJ.js +160 -0
  401. package/dist/cli-runtime/JavaScriptApplicationWorkflowEvidence-Bz4-V0Ct.js +75 -0
  402. package/dist/cli-runtime/JavaScriptWorkerMemoryLimit-B1bwMM1a.js +86 -0
  403. package/dist/cli-runtime/JebMcpEndpoint-DUytrn5G.js +428 -0
  404. package/dist/cli-runtime/JsonFiles-DQa1PRKy.js +708 -0
  405. package/dist/cli-runtime/MacCodeSignature-MgYbRK_H.js +24 -0
  406. package/dist/cli-runtime/MacHopperPaths-CwL5lYPX.js +434 -0
  407. package/dist/cli-runtime/MachoLoadCommandReader-C7e074Ze.js +510 -0
  408. package/dist/cli-runtime/ManagedSnapshot-rqyBHcdL.js +4185 -0
  409. package/dist/cli-runtime/OwnedCommand-Cj9GhmPR.js +112 -0
  410. package/dist/cli-runtime/PrivateRuntimeRoot-DAy0PiBM.js +263 -0
  411. package/dist/cli-runtime/ProcessOwnership-DXC5-UWt.js +1378 -0
  412. package/dist/cli-runtime/ProviderDeadline-8m2pFRDc.js +122 -0
  413. package/dist/cli-runtime/RegularFile-B_6KPCNQ.js +139 -0
  414. package/dist/cli-runtime/RegularFileRead-DVlC5faM.js +125 -0
  415. package/dist/cli-runtime/SafeOutputTree-D6U15GXd.js +524 -0
  416. package/dist/cli-runtime/SetupHost-FkYWswsq.js +1098 -0
  417. package/dist/cli-runtime/SupportedClients-DaX6Lt2d.js +1049 -0
  418. package/dist/cli-runtime/UninstallFailure-1blyKXHE.js +22 -0
  419. package/dist/cli-runtime/Update-CbTC_eg1.js +143 -0
  420. package/dist/cli-runtime/UpdateFailure-BcFNxEZZ.js +24 -0
  421. package/dist/cli-runtime/ZipArtifactReader-B8ZgNe4D.js +248 -0
  422. package/dist/cli-runtime/analysisErrorCleanup-Do6YeeoD.js +32 -0
  423. package/dist/cli-runtime/analysisErrorPresentation-DGt7TdsH.js +497 -0
  424. package/dist/cli-runtime/appleArchiveFormat-tVoI2ykA.js +263 -0
  425. package/dist/cli-runtime/application__DirectAnalysisStatus-DpOejOf0.js +150 -0
  426. package/dist/cli-runtime/application__EnhancedTools-oFE2bOjs.js +1787 -0
  427. package/dist/cli-runtime/application__FunctionAnalysisEvidence-B6osuhvW.js +41 -0
  428. package/dist/cli-runtime/application__ReconstructionCoverageService-DN3wTFQj.js +32 -0
  429. package/dist/cli-runtime/application__ReconstructionObligationLedgerService-CKcTppX9.js +815 -0
  430. package/dist/cli-runtime/application__Setup-XpMaRNjy.js +514 -0
  431. package/dist/cli-runtime/application__Uninstall-_23pU2yB.js +427 -0
  432. package/dist/cli-runtime/application__UpdateRuntime-DPvY8ohd.js +345 -0
  433. package/dist/cli-runtime/application__android__AndroidApplicationService-CFgIFPM4.js +31 -0
  434. package/dist/cli-runtime/application__apple__AppleApplicationService-Db6QCsun.js +31 -0
  435. package/dist/cli-runtime/application__harmony__HarmonyApplicationService-CFjocHoK.js +31 -0
  436. package/dist/cli-runtime/application__javascript__ElectronActiveObservationService-CmVDUI_Z.js +118 -0
  437. package/dist/cli-runtime/application__javascript__ElectronObservationService-DEsR8KDN.js +63 -0
  438. package/dist/cli-runtime/application__javascript__JavaScriptApplicationService-CCkp8KBh.js +11450 -0
  439. package/dist/cli-runtime/application__javascript__JavaScriptApplicationWorkflowService-lPy0tzr3.js +2329 -0
  440. package/dist/cli-runtime/application__javascript__JavaScriptRuntimeReconciliationService-DWleA8K9.js +88 -0
  441. package/dist/cli-runtime/application__javascript__JavaScriptSemanticTraceService-DkALH4rL.js +299 -0
  442. package/dist/cli-runtime/artifactOperationError-B7n03FbD.js +27 -0
  443. package/dist/cli-runtime/artifacts__ArtifactProvider-zXI0QjSL.js +2187 -0
  444. package/dist/cli-runtime/binary-BVOr2mgE.js +14206 -0
  445. package/dist/cli-runtime/browserObservationError-Dx6xRTjb.js +40 -0
  446. package/dist/cli-runtime/catalogIdentity-DLoXgfIR.js +933 -0
  447. package/dist/cli-runtime/cli.js +41848 -0
  448. package/dist/cli-runtime/cliOutput-BC1BdAcB.js +122 -0
  449. package/dist/cli-runtime/cliOutput.js +5 -0
  450. package/dist/cli-runtime/cliResultOutput-DsRMI8CJ.js +780 -0
  451. package/dist/cli-runtime/cliResultOutput.js +5 -0
  452. package/dist/cli-runtime/composition__browserScenario-DHXC1a8n.js +2927 -0
  453. package/dist/cli-runtime/composition__electronObservation-GecK2EID.js +555 -0
  454. package/dist/cli-runtime/composition__electronScenario-CEZnVrAL.js +653 -0
  455. package/dist/cli-runtime/cutterToolContracts-TZH9EHr5.js +5134 -0
  456. package/dist/cli-runtime/doctorRuntime-BE5ZX8it.js +258 -0
  457. package/dist/cli-runtime/dotnet__ManagedStaticProvider-C8_yZCDc.js +5 -0
  458. package/dist/cli-runtime/errorSchemas-CTRmvMl3.js +601 -0
  459. package/dist/cli-runtime/javascriptApplicationAnalysis-HgMzVMQw.js +2068 -0
  460. package/dist/cli-runtime/javascriptExportReturnShapeProjection-Dg00g35t.js +78 -0
  461. package/dist/cli-runtime/javascriptExportShapeComparisonSchemas-BYnoIqIk.js +1242 -0
  462. package/dist/cli-runtime/javascriptRuntimeReconciliation-DNjDoL3S.js +1507 -0
  463. package/dist/cli-runtime/javascriptRuntimeReconciliationSchemas-BWpGWNcI.js +247 -0
  464. package/dist/cli-runtime/javascriptSemanticTraceSchemas-BTCNcvbc.js +126 -0
  465. package/dist/cli-runtime/lipo-DSWP6fv-.js +396 -0
  466. package/dist/cli-runtime/logger-CQQCI4a2.js +48 -0
  467. package/dist/cli-runtime/machoContainer-C8BIkkq3.js +172 -0
  468. package/dist/cli-runtime/managedApplicationGraph-B08jb3jq.js +1130 -0
  469. package/dist/cli-runtime/managedToolContracts-D60QmIYj.js +99 -0
  470. package/dist/cli-runtime/mcpDoctor.js +359 -0
  471. package/dist/cli-runtime/mcpStartupPolicy-CVVSOmRc.js +21 -0
  472. package/dist/cli-runtime/native__NativeMacOSProvider-YBTvUeJO.js +4875 -0
  473. package/dist/cli-runtime/officialToolContracts-CCFF0an9.js +1501 -0
  474. package/dist/cli-runtime/propertyListKeys-G8e74YWb.js +248 -0
  475. package/dist/cli-runtime/providerAdapterError-DAjhICdr.js +25 -0
  476. package/dist/cli-runtime/providerCleanupError-Ceq8f0wK.js +27 -0
  477. package/dist/cli-runtime/providerIdentities-Ao1XTvwx.js +31 -0
  478. package/dist/cli-runtime/providerStartupTimeout-B2tF2LtZ.js +17 -0
  479. package/dist/cli-runtime/readFileHandleChunks-dp60iZ6v.js +38 -0
  480. package/dist/cli-runtime/reconstructionObligationLedgerSchemas-Bao0xMr-.js +19478 -0
  481. package/dist/cli-runtime/rolldown-runtime-DXoylpqc.js +121 -0
  482. package/dist/cli-runtime/runtimeVersion-CMGd0bDu.js +23 -0
  483. package/dist/cli-runtime/safeJson-DKKACtdy.js +25 -0
  484. package/dist/cli-runtime/scanCanonical-KP4T9jSl.js +2724 -0
  485. package/dist/cli-runtime/snapshotEnvironment-D_tWyOub.js +813 -0
  486. package/dist/cli-runtime/toolContracts-D2FOG_Nb.js +3721 -0
  487. package/dist/cli-runtime/toolOutputSchemaGroups-DRiYs1je.js +12070 -0
  488. package/dist/cli-runtime/workflowInputError-n8Oo-bLA.js +26 -0
  489. package/dist/cli.js +44 -5
  490. package/dist/cliBrowserScenarioCommands.js +41 -5
  491. package/dist/cliCommandNames.js +80 -0
  492. package/dist/cliEvidenceCommands.js +0 -1
  493. package/dist/cliJavaScriptRuntimeCommands.js +16 -14
  494. package/dist/cliJsonInput.js +14 -6
  495. package/dist/cliLogging.js +50 -14
  496. package/dist/cliObservationOptions.js +9 -0
  497. package/dist/cliOutput.js +38 -5
  498. package/dist/composition/adb.js +3 -0
  499. package/dist/composition/apktool.js +3 -0
  500. package/dist/composition/binary.js +4 -0
  501. package/dist/composition/binaryDiagnostics.js +4 -0
  502. package/dist/composition/captures.js +3 -0
  503. package/dist/composition/directAnalysis.js +36 -11
  504. package/dist/composition/electronFuses.js +4 -0
  505. package/dist/composition/evm.js +12 -0
  506. package/dist/composition/flutter.js +3 -0
  507. package/dist/composition/go.js +4 -0
  508. package/dist/composition/javascriptAnalysisWorkerProcess.js +49 -0
  509. package/dist/composition/jeb.js +35 -0
  510. package/dist/composition/pcap.js +3 -0
  511. package/dist/composition/resolveWindowsProviderExecutable.js +61 -0
  512. package/dist/composition/reverseEngineering.js +29 -0
  513. package/dist/composition/rust.js +4 -0
  514. package/dist/composition/signals.js +3 -0
  515. package/dist/composition/sqlite.js +4 -0
  516. package/dist/composition/wasm.js +22 -0
  517. package/dist/composition/webNetworkCaptures.js +7 -2
  518. package/dist/config/environment.js +55 -4
  519. package/dist/config/ghidraDisabledAnalyzers.js +25 -0
  520. package/dist/config/ghidraLanguageOverride.js +9 -0
  521. package/dist/config/homeDirectory.js +9 -6
  522. package/dist/config/mcpInputSchemaProfile.js +31 -0
  523. package/dist/config/mcpOutputSchemaProfile.js +22 -0
  524. package/dist/config/parseConfig.js +36 -19
  525. package/dist/config/parsers.js +4 -3
  526. package/dist/config/{ghidraStartupTimeout.js → providerStartupTimeout.js} +7 -3
  527. package/dist/contracts/adb/adbToolContracts.js +353 -0
  528. package/dist/contracts/advertisedInputExamples.js +48 -0
  529. package/dist/contracts/analysisDetail.js +13 -0
  530. package/dist/contracts/analysisViewApiSurfaceExample.js +68 -0
  531. package/dist/contracts/analysisViewToolContracts.js +39 -3
  532. package/dist/contracts/android/androidToolContracts.js +17 -8
  533. package/dist/contracts/apktool/apktoolToolContracts.js +33 -0
  534. package/dist/contracts/applicationToolContracts.js +17 -2
  535. package/dist/contracts/artifactToolContracts.js +21 -6
  536. package/dist/contracts/browserToolContracts.js +2 -1
  537. package/dist/contracts/captures/captureToolContracts.js +42 -0
  538. package/dist/contracts/compactInputSchema.js +276 -0
  539. package/dist/contracts/cutterToolContracts.js +84 -0
  540. package/dist/contracts/enhancedToolContracts.js +2 -2
  541. package/dist/contracts/evm/evmToolContracts.js +30 -15
  542. package/dist/contracts/firmware/firmwareToolContracts.js +1 -1
  543. package/dist/contracts/flutter/flutterToolContracts.js +47 -0
  544. package/dist/contracts/fridaRemoteAddress.js +23 -0
  545. package/dist/contracts/fridaToolContracts.js +273 -0
  546. package/dist/contracts/functionComparisonExample.js +12 -1
  547. package/dist/contracts/functionWorkflowToolContracts.js +1 -1
  548. package/dist/contracts/gdbToolContracts.js +103 -0
  549. package/dist/contracts/go/goToolContracts.js +20 -0
  550. package/dist/contracts/hopperMemoryContracts.js +15 -0
  551. package/dist/contracts/inputSchemaPresentation.js +91 -24
  552. package/dist/contracts/investigationExamples.js +1 -0
  553. package/dist/contracts/javascript/electronToolContracts.js +40 -3
  554. package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +13 -1
  555. package/dist/contracts/jeb/jebToolContracts.js +64 -0
  556. package/dist/contracts/managed/managedToolContracts.js +43 -4
  557. package/dist/contracts/managed/managedWorkflowExamples.js +7 -1
  558. package/dist/contracts/managed/managedWorkflowToolContracts.js +4 -30
  559. package/dist/contracts/mobileApplicationGraphExamples.js +12 -0
  560. package/dist/contracts/native/binaryDiagnosticsToolContracts.js +27 -4
  561. package/dist/contracts/native/nativeToolContracts.js +10 -6
  562. package/dist/contracts/officialToolContracts.js +9 -9
  563. package/dist/contracts/pcap/pcapToolContracts.js +33 -0
  564. package/dist/contracts/providerSelection.js +1 -0
  565. package/dist/contracts/reconstructionReadinessExample.js +126 -119
  566. package/dist/contracts/reverseEngineeringToolContracts.js +52 -0
  567. package/dist/contracts/rizinDebugToolContracts.js +96 -0
  568. package/dist/contracts/rust/rustToolContracts.js +20 -0
  569. package/dist/contracts/sessionLifecycleInputs.js +34 -2
  570. package/dist/contracts/sessionToolContracts.js +4 -4
  571. package/dist/contracts/sessionToolSchemas.js +20 -2
  572. package/dist/contracts/signals/signalToolContracts.js +40 -0
  573. package/dist/contracts/sqlite/sqliteToolContracts.js +36 -0
  574. package/dist/contracts/toolContractExamples.js +35 -0
  575. package/dist/contracts/toolContractTypes.js +5 -0
  576. package/dist/contracts/toolContracts.js +32 -0
  577. package/dist/contracts/toolEffects.js +414 -8
  578. package/dist/contracts/toolOutputSchemaGroups.js +78 -33
  579. package/dist/contracts/toolOutputSchemaPrimitives.js +111 -10
  580. package/dist/contracts/toolSchemaMetadata.js +98 -9
  581. package/dist/contracts/unknownContractExamples.js +1 -1
  582. package/dist/contracts/wasm/wasmComparisonContracts.js +52 -0
  583. package/dist/contracts/wasm/wasmToolContracts.js +33 -0
  584. package/dist/contracts/webNetworkCaptureToolContracts.js +15 -4
  585. package/dist/cutter/CutterBridgeClient.js +621 -0
  586. package/dist/cutter/CutterBridgeService.js +139 -0
  587. package/dist/doctorRuntime.js +20 -8
  588. package/dist/domain/adb/adbDeviceAnalysis.js +605 -0
  589. package/dist/domain/analysisErrorBase.js +20 -0
  590. package/dist/domain/analysisErrorCleanup.js +29 -0
  591. package/dist/domain/analysisErrorCore.js +19 -0
  592. package/dist/domain/analysisErrorPresentation.js +75 -22
  593. package/dist/domain/analysisErrorProjection.js +35 -13
  594. package/dist/domain/analysisProfile.js +7 -3
  595. package/dist/domain/analysisSnapshot.js +313 -185
  596. package/dist/domain/analysisView/WebNetworkApiSurfaceAccumulator.js +414 -0
  597. package/dist/domain/analysisView/analysisView.js +417 -45
  598. package/dist/domain/analysisView/analysisViewCoverage.js +32 -0
  599. package/dist/domain/analysisView/analysisViewErrors.js +4 -0
  600. package/dist/domain/analysisView/analysisViewParent.js +12 -0
  601. package/dist/domain/analysisView/analysisViewText.js +29 -0
  602. package/dist/domain/analysisView/androidPackageView.js +102 -0
  603. package/dist/domain/analysisView/artifactInventoryView.js +140 -0
  604. package/dist/domain/analysisView/binaryLayoutView.js +13 -4
  605. package/dist/domain/analysisView/dartAotView.js +93 -0
  606. package/dist/domain/analysisView/evmInterfaceView.js +105 -0
  607. package/dist/domain/analysisView/interfaceBuilderView.js +182 -0
  608. package/dist/domain/analysisView/javascriptApplicationView.js +29 -26
  609. package/dist/domain/analysisView/machoView.js +186 -0
  610. package/dist/domain/analysisView/managedArtifactView.js +108 -0
  611. package/dist/domain/analysisView/managedMemberView.js +209 -0
  612. package/dist/domain/analysisView/nativeFunctionView.js +150 -0
  613. package/dist/domain/analysisView/pcapCaptureView.js +264 -0
  614. package/dist/domain/analysisView/qlogCaptureView.js +198 -0
  615. package/dist/domain/analysisView/wasmArtifactView.js +162 -0
  616. package/dist/domain/analysisView/webNetworkApiSurfaceView.js +123 -0
  617. package/dist/domain/analysisView/webNetworkCaptureView.js +388 -0
  618. package/dist/domain/android/androidAnalysis.js +36 -2
  619. package/dist/domain/android/androidApplication.js +57 -80
  620. package/dist/domain/apktool/apktoolResourceAnalysis.js +89 -0
  621. package/dist/domain/apple/appleApplication.js +71 -52
  622. package/dist/domain/apple/appleArchiveFormat.js +184 -0
  623. package/dist/domain/apple/appleAssetCatalog.js +15 -0
  624. package/dist/domain/apple/appleBundleAnatomy.js +96 -29
  625. package/dist/domain/apple/dyldPaths.js +18 -3
  626. package/dist/domain/apple/dylibResolution.js +21 -11
  627. package/dist/domain/apple/dylibResolutionFindings.js +8 -9
  628. package/dist/domain/apple/interfaceBuilderGraph.js +72 -45
  629. package/dist/domain/apple/interfaceBuilderKeyedArchive.js +38 -9
  630. package/dist/domain/apple/machoContainer.js +120 -8
  631. package/dist/domain/apple/machoCpuIdentity.js +4 -0
  632. package/dist/domain/apple/plistValue.js +6 -1
  633. package/dist/domain/artifactComparison.js +130 -25
  634. package/dist/domain/artifactDecompressionBudget.js +26 -0
  635. package/dist/domain/artifactGraph.js +28 -9
  636. package/dist/domain/artifactIdentity.js +33 -2
  637. package/dist/domain/artifactInspection.js +47 -45
  638. package/dist/domain/artifactIntegrityPolicy.js +10 -0
  639. package/dist/domain/artifactInventoryEvidence.js +148 -51
  640. package/dist/domain/artifactPathSyntax.js +1 -1
  641. package/dist/domain/binaryTarget.js +253 -80
  642. package/dist/domain/binaryTargetTypes.js +21 -1
  643. package/dist/domain/browserNetworkEvidence.js +4 -0
  644. package/dist/domain/browserObservation.js +88 -29
  645. package/dist/domain/browserObservationSchemas.js +12 -5
  646. package/dist/domain/browserScenarioCapture.js +2 -1
  647. package/dist/domain/browserScenarioCaptureValues.js +26 -2
  648. package/dist/domain/browserScenarioDiff.js +120 -11
  649. package/dist/domain/browserScenarioDiffEvidence.js +46 -13
  650. package/dist/domain/browserScenarioDiffValues.js +10 -3
  651. package/dist/domain/browserScenarioNetworkComparison.js +158 -0
  652. package/dist/domain/browserScenarioNormalization.js +10 -13
  653. package/dist/domain/browserScenarioValues.js +2 -12
  654. package/dist/domain/browserSession.js +2 -2
  655. package/dist/domain/bundleComparison.js +1 -5
  656. package/dist/domain/callPath.js +40 -3
  657. package/dist/domain/canonicalJsonDigestSteps.js +34 -12
  658. package/dist/domain/captures/packetCapture.js +138 -0
  659. package/dist/domain/captures/packetFields.js +81 -0
  660. package/dist/domain/changedBehavior.js +43 -41
  661. package/dist/domain/compactStringIdentity.js +9 -0
  662. package/dist/domain/comparisonSourceEvidence.js +6 -0
  663. package/dist/domain/dosCom.js +2 -2
  664. package/dist/domain/dosMz.js +52 -14
  665. package/dist/domain/electron/electronFuses.js +360 -0
  666. package/dist/domain/elfFixedHeader.js +42 -0
  667. package/dist/domain/evidence.js +104 -38
  668. package/dist/domain/evidenceBundle.js +58 -20
  669. package/dist/domain/evidenceErrors.js +5 -0
  670. package/dist/domain/evidenceRecordSummary.js +144 -0
  671. package/dist/domain/evm/evmInterface.js +18 -4
  672. package/dist/domain/evm/solidityMetadata.js +70 -0
  673. package/dist/domain/explicitSensitiveFailure.js +42 -24
  674. package/dist/domain/firmware/firmwareAnalysis.js +29 -0
  675. package/dist/domain/flutter/flutterBuildAnalysis.js +141 -0
  676. package/dist/domain/functionCallCoverage.js +60 -0
  677. package/dist/domain/functionComparisonDimensions.js +101 -10
  678. package/dist/domain/functionComparisonNormalization.js +66 -10
  679. package/dist/domain/functionComparisonResults.js +7 -6
  680. package/dist/domain/functionComparisonSchemas.js +14 -3
  681. package/dist/domain/functionDossierEvidence.js +3 -0
  682. package/dist/domain/go/goBinary.js +96 -0
  683. package/dist/domain/harmony/harmonyApplication.js +156 -0
  684. package/dist/domain/hopperErrors.js +15 -16
  685. package/dist/domain/hopperPublisher.js +12 -0
  686. package/dist/domain/hopperValues.js +112 -34
  687. package/dist/domain/inputIssueProjection.js +16 -1
  688. package/dist/domain/javascript/electronObservation.js +4 -1
  689. package/dist/domain/javascript/electronStaticAnalysisBrowser.js +24 -24
  690. package/dist/domain/javascript/electronStaticAnalysisIpc.js +13 -20
  691. package/dist/domain/javascript/electronStaticAnalysisNative.js +85 -41
  692. package/dist/domain/javascript/electronStaticAnalysisValues.js +30 -8
  693. package/dist/domain/javascript/electronWrappedCallPaths.js +498 -0
  694. package/dist/domain/javascript/htmlArtifactReferences.js +94 -4
  695. package/dist/domain/javascript/javascriptAnalysisResourceControls.js +65 -0
  696. package/dist/domain/javascript/javascriptApplicationAnalysis.js +7 -1
  697. package/dist/domain/javascript/javascriptApplicationChangeGraph.js +13 -8
  698. package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +1 -1
  699. package/dist/domain/javascript/javascriptApplicationGraph.js +96 -19
  700. package/dist/domain/javascript/javascriptApplicationGraphSchemas.js +1 -0
  701. package/dist/domain/javascript/javascriptApplicationProjectionResources.js +43 -0
  702. package/dist/domain/javascript/javascriptApplicationVersionItems.js +28 -12
  703. package/dist/domain/javascript/javascriptApplicationVersionKeys.js +40 -19
  704. package/dist/domain/javascript/javascriptArtifactFiles.js +2 -1
  705. package/dist/domain/javascript/javascriptAstFingerprint.js +100 -39
  706. package/dist/domain/javascript/javascriptAstValues.js +81 -0
  707. package/dist/domain/javascript/javascriptBootstrap.js +94 -0
  708. package/dist/domain/javascript/javascriptBootstrapIntegrity.js +372 -0
  709. package/dist/domain/javascript/javascriptBuiltinResourceMethods.js +8 -0
  710. package/dist/domain/javascript/javascriptBundledRequireOrigin.js +291 -0
  711. package/dist/domain/javascript/javascriptContextBridgeExposure.js +23 -0
  712. package/dist/domain/javascript/javascriptElectronMemberWrites.js +114 -0
  713. package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +6 -5
  714. package/dist/domain/javascript/javascriptExportShapeVariants.js +1 -1
  715. package/dist/domain/javascript/javascriptFeatureSeed.js +33 -16
  716. package/dist/domain/javascript/javascriptFeatureTrace.js +9 -3
  717. package/dist/domain/javascript/javascriptFeatureTraceSchemas.js +42 -11
  718. package/dist/domain/javascript/javascriptIntrinsicInvocation.js +132 -0
  719. package/dist/domain/javascript/javascriptModuleDeclaration.js +28 -0
  720. package/dist/domain/javascript/javascriptModuleInterop.js +618 -0
  721. package/dist/domain/javascript/javascriptModuleResolutionMode.js +18 -0
  722. package/dist/domain/javascript/javascriptModuleSemanticIr.js +15 -0
  723. package/dist/domain/javascript/javascriptModuleSpecifier.js +5 -0
  724. package/dist/domain/javascript/javascriptNativeHandoff.js +6 -2
  725. package/dist/domain/javascript/javascriptPackageImportAliases.js +58 -0
  726. package/dist/domain/javascript/javascriptRecovery.js +12 -5
  727. package/dist/domain/javascript/javascriptRpcEndpoints.js +331 -0
  728. package/dist/domain/javascript/javascriptRuntimeLoadState.js +12 -3
  729. package/dist/domain/javascript/javascriptRuntimeObservation.js +4 -1
  730. package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +10 -4
  731. package/dist/domain/javascript/javascriptRuntimeReconciliationGraph.js +7 -2
  732. package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +15 -2
  733. package/dist/domain/javascript/javascriptRuntimeReconciliationResult.js +0 -1
  734. package/dist/domain/javascript/javascriptRuntimeReconciliationSchemas.js +5 -4
  735. package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +121 -22
  736. package/dist/domain/javascript/javascriptSemanticAmbientWrites.js +251 -0
  737. package/dist/domain/javascript/javascriptSemanticAnalysis.js +493 -104
  738. package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +17 -34
  739. package/dist/domain/javascript/javascriptSemanticCallResolution.js +4 -3
  740. package/dist/domain/javascript/javascriptSemanticCallableResults.js +42 -0
  741. package/dist/domain/javascript/javascriptSemanticCallableStack.js +52 -0
  742. package/dist/domain/javascript/javascriptSemanticCalls.js +14 -12
  743. package/dist/domain/javascript/javascriptSemanticChildProcesses.js +42 -55
  744. package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +428 -32
  745. package/dist/domain/javascript/javascriptSemanticDataEffects.js +14 -20
  746. package/dist/domain/javascript/javascriptSemanticDependencies.js +69 -0
  747. package/dist/domain/javascript/javascriptSemanticDerivedAnalysis.js +15 -4
  748. package/dist/domain/javascript/javascriptSemanticFileProjection.js +1 -0
  749. package/dist/domain/javascript/javascriptSemanticFingerprints.js +51 -53
  750. package/dist/domain/javascript/javascriptSemanticGraph.js +74 -24
  751. package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +2 -11
  752. package/dist/domain/javascript/javascriptSemanticIterationSources.js +41 -8
  753. package/dist/domain/javascript/javascriptSemanticMemberMutations.js +538 -151
  754. package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +199 -3
  755. package/dist/domain/javascript/javascriptSemanticMutationValues.js +78 -35
  756. package/dist/domain/javascript/javascriptSemanticObjectReferences.js +671 -0
  757. package/dist/domain/javascript/javascriptSemanticObjects.js +27 -17
  758. package/dist/domain/javascript/javascriptSemanticProjection.js +202 -56
  759. package/dist/domain/javascript/javascriptSemanticPromises.js +6 -9
  760. package/dist/domain/javascript/javascriptSemanticPropertyPaths.js +77 -0
  761. package/dist/domain/javascript/javascriptSemanticProvenance.js +5 -1
  762. package/dist/domain/javascript/javascriptSemanticQuery.js +34 -31
  763. package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +1 -3
  764. package/dist/domain/javascript/javascriptSemanticReferenceSources.js +25 -0
  765. package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +331 -8
  766. package/dist/domain/javascript/javascriptSemanticResources.js +6 -40
  767. package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +233 -0
  768. package/dist/domain/javascript/javascriptSemanticReturns.js +49 -52
  769. package/dist/domain/javascript/javascriptSemanticState.js +61 -4
  770. package/dist/domain/javascript/javascriptSemanticTraversal.js +25 -5
  771. package/dist/domain/javascript/javascriptSemanticValues.js +260 -35
  772. package/dist/domain/javascript/javascriptSourceAnalysis.js +1 -0
  773. package/dist/domain/javascript/javascriptSourceMapPaths.js +44 -17
  774. package/dist/domain/javascript/javascriptSourceParser.js +72 -3
  775. package/dist/domain/javascript/javascriptSourceSelection.js +11 -0
  776. package/dist/domain/javascript/javascriptStaticAnalysis.js +72 -26
  777. package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +100 -24
  778. package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +271 -47
  779. package/dist/domain/javascript/javascriptStaticAnalysisFindings.js +8 -4
  780. package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +166 -56
  781. package/dist/domain/javascript/javascriptStaticAnalysisState.js +2 -0
  782. package/dist/domain/javascript/javascriptStaticAnalysisTypes.js +2 -1
  783. package/dist/domain/javascript/javascriptSymbolicBindings.js +836 -0
  784. package/dist/domain/javascript/javascriptSymbolicControlFlow.js +40 -0
  785. package/dist/domain/javascript/javascriptSymbolicValues.js +34 -0
  786. package/dist/domain/javascript/sourceToBundleComparison.js +3 -1
  787. package/dist/domain/javascript/sourceToBundleComparisonSchemas.js +2 -0
  788. package/dist/domain/javascript/sourceToBundleSignals.js +47 -13
  789. package/dist/domain/jeb/jebAnalysis.js +114 -0
  790. package/dist/domain/jsonShape.js +63 -52
  791. package/dist/domain/jsonValue.js +40 -12
  792. package/dist/domain/localPath.js +6 -3
  793. package/dist/domain/managed/managedApplicationGraph.js +42 -0
  794. package/dist/domain/managed/managedApplicationGraphCoverage.js +12 -2
  795. package/dist/domain/managed/managedApplicationGraphNodes.js +32 -23
  796. package/dist/domain/managed/managedArtifact.js +52 -1
  797. package/dist/domain/managed/managedInspectionEvidence.js +12 -0
  798. package/dist/domain/managed/managedMemberComparison.js +3 -0
  799. package/dist/domain/managed/managedMemberComparisonCoverage.js +23 -3
  800. package/dist/domain/managed/managedMemberComparisonItems.js +23 -19
  801. package/dist/domain/managed/managedMemberComparisonMatch.js +209 -18
  802. package/dist/domain/managed/managedNativeVerificationMatch.js +49 -26
  803. package/dist/domain/managed/managedNativeVerificationSchemas.js +13 -2
  804. package/dist/domain/managed/managedReconstruction.js +5 -8
  805. package/dist/domain/mobileApplicationGraphProjection.js +80 -0
  806. package/dist/domain/native/addressCoordinate.js +11 -0
  807. package/dist/domain/native/binaryLayout.js +2 -4
  808. package/dist/domain/native/bytePattern.js +100 -0
  809. package/dist/domain/native/nativeAotPe.js +1408 -0
  810. package/dist/domain/native/nativeInspection.js +38 -4
  811. package/dist/domain/native/nativeInstruction.js +38 -2
  812. package/dist/domain/native/nativeInvestigationGraph.js +9 -5
  813. package/dist/domain/native/nativeLoadImage.js +19 -1
  814. package/dist/domain/native/nativeMetadataRecovery.js +79 -6
  815. package/dist/domain/native/nativeUiObservation.js +5 -6
  816. package/dist/domain/native/objcSwiftMetadata.js +4 -1
  817. package/dist/domain/native/peResources.js +100 -0
  818. package/dist/domain/native/recordedCrash.js +79 -10
  819. package/dist/domain/nativeConvention.js +33 -0
  820. package/dist/domain/offsetDateTime.js +60 -0
  821. package/dist/domain/pcap/pcapAnalysis.js +91 -0
  822. package/dist/domain/pcap/pcapEvidence.js +15 -0
  823. package/dist/domain/peMachine.js +36 -0
  824. package/dist/domain/pngHeader.js +18 -0
  825. package/dist/domain/process/processCapture.js +91 -1
  826. package/dist/domain/process/processCaptureCoverage.js +26 -3
  827. package/dist/domain/process/processCaptureExample.js +26 -0
  828. package/dist/domain/process/processCaptureValidation.js +112 -8
  829. package/dist/domain/process/processComparison.js +41 -13
  830. package/dist/domain/process/processScenario.js +66 -7
  831. package/dist/domain/process/processTraceEvaluation.js +54 -50
  832. package/dist/domain/process/processTraceSpecification.js +243 -89
  833. package/dist/domain/propertyListKeys.js +214 -12
  834. package/dist/domain/propertyListXmlText.js +20 -4
  835. package/dist/domain/providerAdapterError.js +0 -5
  836. package/dist/domain/providerConfigurationRefusal.js +12 -0
  837. package/dist/domain/providerSelectionError.js +2 -1
  838. package/dist/domain/qlogCapture.js +62 -0
  839. package/dist/domain/rawBinary.js +96 -0
  840. package/dist/domain/reconstructionCoverage.js +5 -1
  841. package/dist/domain/reconstructionCoverageEvaluation.js +18 -15
  842. package/dist/domain/reconstructionCoverageVerifierResults.js +35 -0
  843. package/dist/domain/reconstructionObligationLedgerIntegrity.js +114 -0
  844. package/dist/domain/reconstructionObligationLedgerSchemas.js +104 -1
  845. package/dist/domain/reconstructionReadiness.js +4 -8
  846. package/dist/domain/reconstructionReadinessJourneyFindings.js +4 -1
  847. package/dist/domain/reconstructionUnknowns.js +9 -1
  848. package/dist/domain/reconstructionVerification.js +54 -25
  849. package/dist/domain/recordedTransportUrl.js +59 -0
  850. package/dist/domain/referenceSourceClassification.js +27 -23
  851. package/dist/domain/referenceSourceGraph.js +70 -23
  852. package/dist/domain/referenceSourceImportParsing.js +29 -16
  853. package/dist/domain/referenceSourcePathIdentity.js +32 -0
  854. package/dist/domain/referenceSourceRequireBindings.js +130 -0
  855. package/dist/domain/referenceSourceSummary.js +92 -0
  856. package/dist/domain/relationshipCoverage.js +44 -0
  857. package/dist/domain/residualUnknown.js +93 -26
  858. package/dist/domain/reverseEngineering.js +31 -0
  859. package/dist/domain/runtimeVersion.js +8 -0
  860. package/dist/domain/rust/rustBinary.js +200 -0
  861. package/dist/domain/signals/annotationTextWindow.js +31 -0
  862. package/dist/domain/signals/signalDecoders.js +69 -0
  863. package/dist/domain/signals/signalRecording.js +115 -0
  864. package/dist/domain/sourceMapContents.js +10 -3
  865. package/dist/domain/sourceMapEnvelope.js +17 -11
  866. package/dist/domain/sqlite/sqliteDatabase.js +188 -0
  867. package/dist/domain/staticRuntimeCorrelation.js +7 -9
  868. package/dist/domain/swiftSymbolClassification.js +17 -0
  869. package/dist/domain/symbolAnalysis.js +16 -4
  870. package/dist/domain/urlComponents.js +6 -0
  871. package/dist/domain/wasm/wasmArtifact.js +119 -0
  872. package/dist/domain/wasm/wasmInterface.js +89 -0
  873. package/dist/domain/webBundleAnalysis.js +14 -3
  874. package/dist/domain/webBundleAnalyzerAst.js +7 -2
  875. package/dist/domain/webBundleAnalyzerInspection.js +68 -40
  876. package/dist/domain/webBundleAnalyzerResult.js +18 -6
  877. package/dist/domain/webCaptureDiff.js +233 -34
  878. package/dist/domain/webCaptureFrameComparison.js +49 -0
  879. package/dist/domain/webMcpDiscovery.js +5 -2
  880. package/dist/domain/webModuleImports.js +22 -27
  881. package/dist/domain/webModuleTrace.js +3 -8
  882. package/dist/domain/webNetworkCapture.js +101 -39
  883. package/dist/domain/webNetworkCaptureCoordinates.js +21 -0
  884. package/dist/domain/webRuntime.js +0 -1
  885. package/dist/domain/webScreenshot.js +2 -2
  886. package/dist/domain/webScriptArtifacts.js +2 -4
  887. package/dist/domain/webScriptExport.js +6 -8
  888. package/dist/domain/webScriptExportError.js +10 -4
  889. package/dist/domain/webScriptExportPlan.js +9 -15
  890. package/dist/domain/webSourceLocation.js +20 -9
  891. package/dist/domain/zipPackageFormat.js +31 -2
  892. package/dist/domain/zodCollectionSteps.js +24 -0
  893. package/dist/dotnet/ManagedArtifactInspector.js +81 -54
  894. package/dist/dotnet/ManagedDecodeBudget.js +138 -0
  895. package/dist/dotnet/ManagedMemberInspector.js +113 -26
  896. package/dist/dotnet/ManagedMemberInspectorCore.js +356 -140
  897. package/dist/dotnet/ManagedMemberInstructionDecoder.js +112 -38
  898. package/dist/dotnet/ManagedMemberOwnership.js +65 -0
  899. package/dist/dotnet/ManagedMemberPointers.js +69 -0
  900. package/dist/dotnet/ManagedMemberRows.js +182 -44
  901. package/dist/dotnet/ManagedMetadataHeaps.js +123 -27
  902. package/dist/dotnet/ManagedMetadataInventory.js +5 -5
  903. package/dist/dotnet/ManagedMetadataInventoryRows.js +56 -63
  904. package/dist/dotnet/ManagedMetadataLayout.js +19 -5
  905. package/dist/dotnet/ManagedMetadataRowSizes.js +1 -1
  906. package/dist/dotnet/ManagedMethodBodyReader.js +34 -11
  907. package/dist/dotnet/ManagedMethodSpecs.js +78 -0
  908. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +5 -4
  909. package/dist/dotnet/ManagedNativeBoundaryInspector.js +52 -44
  910. package/dist/dotnet/ManagedPeReader.js +96 -52
  911. package/dist/dotnet/ManagedReaderFailure.js +11 -1
  912. package/dist/dotnet/ManagedSnapshot.js +88 -0
  913. package/dist/dotnet/ManagedStaticProvider.js +57 -35
  914. package/dist/dotnet/ManagedTypeMemberLists.js +105 -0
  915. package/dist/dotnet/ManagedTypeNames.js +98 -0
  916. package/dist/dotnet/ManagedUserStrings.js +75 -0
  917. package/dist/electron/ElectronFusePath.js +247 -0
  918. package/dist/electron/ElectronFuseProvider.js +113 -0
  919. package/dist/electron/ElectronFuseReader.js +317 -0
  920. package/dist/evaluation/AgentEvaluationFixtures.js +194 -11
  921. package/dist/evaluation/AgentEvaluationReport.js +9 -5
  922. package/dist/evaluation/CodexAgentEval.js +58 -49
  923. package/dist/evaluation/KnownAnswerEvaluation.js +126 -57
  924. package/dist/evm/EvmoleFailures.js +19 -16
  925. package/dist/evm/EvmoleInterfaceAdapter.js +5 -1
  926. package/dist/evm/EvmoleInterfaceProvider.js +198 -23
  927. package/dist/evm/EvmoleInterfaceWorker.js +2 -0
  928. package/dist/evm/SolidityMetadata.js +139 -0
  929. package/dist/filesystem/OwnedDirectoryHandle.js +29 -0
  930. package/dist/filesystem/OwnedFileHandle.js +36 -0
  931. package/dist/filesystem/OwnedStagedOutput.js +138 -0
  932. package/dist/filesystem/RegularFile.js +81 -5
  933. package/dist/filesystem/StableFileHash.js +46 -0
  934. package/dist/filesystem/readFileHandleChunks.js +35 -0
  935. package/dist/firmware/FirmwareCommand.js +27 -5
  936. package/dist/firmware/FirmwareFiles.js +18 -7
  937. package/dist/firmware/FirmwareProvider.js +158 -32
  938. package/dist/firmware/FirmwarePublication.js +242 -4
  939. package/dist/firmware/FirmwareRelease.js +1 -0
  940. package/dist/firmware/FirmwareReports.js +202 -12
  941. package/dist/flutter/DartElf.js +418 -0
  942. package/dist/flutter/ElfBuildId.js +137 -0
  943. package/dist/flutter/ElfLoadMap.js +91 -0
  944. package/dist/flutter/FlutterBuildProvider.js +826 -0
  945. package/dist/flutter/FlutterPayloadScan.js +180 -0
  946. package/dist/frida/FridaInstrumentationManager.js +1104 -0
  947. package/dist/gdb/GdbSessionManager.js +1451 -0
  948. package/dist/generatedPackageMetadata.js +2 -2
  949. package/dist/ghidra/GhidraAnalysisProfile.js +175 -6
  950. package/dist/ghidra/GhidraAnalysisSeeds.js +211 -0
  951. package/dist/ghidra/GhidraClient.js +208 -29
  952. package/dist/ghidra/GhidraDiagnostics.js +18 -8
  953. package/dist/ghidra/GhidraDoctor.js +15 -12
  954. package/dist/ghidra/GhidraFunctionValues.js +73 -2
  955. package/dist/ghidra/GhidraInstallation.js +216 -20
  956. package/dist/ghidra/GhidraInstallationPolicy.js +79 -29
  957. package/dist/ghidra/GhidraInventoryValues.js +53 -1
  958. package/dist/ghidra/GhidraJavaLaunch.js +91 -10
  959. package/dist/ghidra/GhidraJavaProperties.js +117 -0
  960. package/dist/ghidra/GhidraLanguageCatalog.js +169 -0
  961. package/dist/ghidra/GhidraLauncher.js +306 -88
  962. package/dist/ghidra/GhidraLoadImageAttest.js +74 -7
  963. package/dist/ghidra/GhidraLoadImageValues.js +72 -0
  964. package/dist/ghidra/GhidraMipsProfile.js +315 -0
  965. package/dist/ghidra/GhidraPeProfile.js +21 -0
  966. package/dist/ghidra/GhidraPowerPcProfile.js +51 -0
  967. package/dist/ghidra/GhidraProvider.js +106 -20
  968. package/dist/ghidra/GhidraProviderCapabilities.js +30 -19
  969. package/dist/ghidra/GhidraProviderClient.js +520 -56
  970. package/dist/ghidra/GhidraPspExtension.js +140 -0
  971. package/dist/ghidra/GhidraPspProfile.js +59 -0
  972. package/dist/ghidra/GhidraRawBinaryLanguage.js +40 -0
  973. package/dist/ghidra/GhidraRiscvProfile.js +100 -0
  974. package/dist/ghidra/GhidraSessionError.js +155 -11
  975. package/dist/ghidra/GhidraSessionValues.js +75 -2
  976. package/dist/ghidra/GhidraTransport.js +2 -1
  977. package/dist/go/GoBinaryContainer.js +140 -0
  978. package/dist/go/GoBinaryImage.js +210 -0
  979. package/dist/go/GoBinaryProvider.js +151 -0
  980. package/dist/go/GoElfImage.js +211 -0
  981. package/dist/go/GoMachoImage.js +164 -0
  982. package/dist/go/GoModuleText.js +217 -0
  983. package/dist/go/GoPeImage.js +124 -0
  984. package/dist/hopper/BridgeLauncher.js +35 -2
  985. package/dist/hopper/HopperAnalysisProfile.js +21 -9
  986. package/dist/hopper/HopperCleanup.js +15 -3
  987. package/dist/hopper/HopperClient.js +203 -42
  988. package/dist/hopper/HopperMacPublisher.js +29 -0
  989. package/dist/hopper/HopperMachOImage.js +61 -27
  990. package/dist/hopper/HopperProcessDiagnostic.js +27 -0
  991. package/dist/hopper/HopperProvider.js +68 -26
  992. package/dist/hopper/HopperProviderCapabilities.js +7 -3
  993. package/dist/hopper/HopperRequestQueue.js +17 -5
  994. package/dist/hopper/HopperSessionValues.js +10 -1
  995. package/dist/hopper/HopperTargetLease.js +66 -19
  996. package/dist/ida/IdaBusyHealth.js +44 -0
  997. package/dist/ida/IdaCallGraph.js +134 -0
  998. package/dist/ida/IdaConfiguration.js +7 -2
  999. package/dist/ida/IdaDiagnosticRedactor.js +199 -0
  1000. package/dist/ida/IdaDiagnosticWriter.js +62 -0
  1001. package/dist/ida/IdaDoctor.js +7 -5
  1002. package/dist/ida/IdaJsonDiagnostic.js +138 -0
  1003. package/dist/ida/IdaMcpConnection.js +297 -27
  1004. package/dist/ida/IdaNativeProtocol.js +93 -0
  1005. package/dist/ida/IdaOperationRunner.js +249 -40
  1006. package/dist/ida/IdaProtocolValues.js +86 -4
  1007. package/dist/ida/IdaProvider.js +34 -8
  1008. package/dist/ida/IdaProviderCapabilities.js +37 -8
  1009. package/dist/ida/IdaSessionClient.js +332 -53
  1010. package/dist/ida/IdaWorkspace.js +57 -7
  1011. package/dist/inspector/V8InspectorCaptureProjection.js +7 -2
  1012. package/dist/inspector/V8InspectorEndpoint.js +15 -13
  1013. package/dist/inspector/V8InspectorProvider.js +41 -7
  1014. package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +337 -0
  1015. package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +594 -0
  1016. package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +65 -0
  1017. package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +590 -0
  1018. package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +126 -0
  1019. package/dist/javascript/recovery/RecoveryFiles.js +68 -12
  1020. package/dist/javascript/recovery/WakaruCommand.js +22 -9
  1021. package/dist/javascript/recovery/WakaruExecution.js +30 -18
  1022. package/dist/javascript/recovery/WakaruProvider.js +150 -24
  1023. package/dist/javascript/recovery/WakaruPublication.js +38 -14
  1024. package/dist/javascript/recovery/WakaruRelease.js +11 -4
  1025. package/dist/javascript/recovery/WakaruReport.js +15 -9
  1026. package/dist/javascript/recovery/WakaruVersion.js +24 -0
  1027. package/dist/javascript/sourceMaps/DecodedSourceMap.js +2 -16
  1028. package/dist/javascript/sourceMaps/SourceMapCommand.js +38 -7
  1029. package/dist/javascript/sourceMaps/SourceMapDecoder.js +84 -10
  1030. package/dist/javascript/sourceMaps/SourceMapFormat.js +26 -28
  1031. package/dist/javascript/sourceMaps/TraceSourceMap.js +34 -6
  1032. package/dist/jeb/JebMcpConnection.js +186 -0
  1033. package/dist/jeb/JebMcpEndpoint.js +45 -0
  1034. package/dist/jeb/JebProvider.js +297 -0
  1035. package/dist/logger.js +14 -1
  1036. package/dist/main/shutdown.js +3 -0
  1037. package/dist/main/transport.js +48 -4
  1038. package/dist/main.js +14 -3
  1039. package/dist/mcp/AnalysisSnapshotFiles-BAbiJQOc.js +1412 -0
  1040. package/dist/mcp/ArtifactProvider-DViCU_rn.js +2183 -0
  1041. package/dist/mcp/ArtifactProviderMetadata-b7pOK5_t.js +76 -0
  1042. package/dist/mcp/ArtifactReader-OyM03Gjn.js +55 -0
  1043. package/dist/mcp/ArtifactResourceScope-P3tq5z8Z.js +162 -0
  1044. package/dist/mcp/AsarHeader-WsPgoooH.js +31 -0
  1045. package/dist/mcp/BinarySessionStatus-B4P9gf-S.js +212 -0
  1046. package/dist/mcp/BinaryTargetResolver-BMaE_0H1.js +1427 -0
  1047. package/dist/mcp/BoundedFileBytes-DuczXiQZ.js +68 -0
  1048. package/dist/mcp/CdpCaptureDocuments-HDiF2O7k.js +746 -0
  1049. package/dist/mcp/CdpCaptureValues-M-j6CIh1.js +90 -0
  1050. package/dist/mcp/CdpConnection-BpDfz4MK.js +570 -0
  1051. package/dist/mcp/CdpOptionalCommand-BPjRD9Kz.js +120 -0
  1052. package/dist/mcp/CdpTargetSession-BsPoKhEU.js +86 -0
  1053. package/dist/mcp/DirectAnalysis-DrafbXke.js +409 -0
  1054. package/dist/mcp/DirectAnalysisStatus-CjjeDLzW.js +44 -0
  1055. package/dist/mcp/ElectronFileScope-BPG_YoyU.js +110 -0
  1056. package/dist/mcp/InterfaceBuilderDecodeBudget-5F2AkxJT.js +652 -0
  1057. package/dist/mcp/ManagedStaticProvider-BthZbKyZ.js +5028 -0
  1058. package/dist/mcp/NativeMacOSProvider-Bh79k8dI.js +4867 -0
  1059. package/dist/mcp/NativeMacOSProviderMetadata-N1lPOaY_.js +307 -0
  1060. package/dist/mcp/ProcedureAddressResolution-CQpuwm1h.js +19 -0
  1061. package/dist/mcp/ProcessOwnership-Bl_3ejLe.js +1502 -0
  1062. package/dist/mcp/ProviderDeadline-DskQ94YD.js +932 -0
  1063. package/dist/mcp/WorkflowEvidence-umWrB_wm.js +111 -0
  1064. package/dist/mcp/analysisErrorCore-DXRTvF_m.js +235 -0
  1065. package/dist/mcp/analysisErrorProjection-BN0EPM-3.js +892 -0
  1066. package/dist/mcp/artifactOperationError-CkHMMaf7.js +27 -0
  1067. package/dist/mcp/artifactToolContracts-Di4qZlEt.js +72 -0
  1068. package/dist/mcp/browserObservation-C0s4i8UI.js +4468 -0
  1069. package/dist/mcp/browserObservationError-CyLugqX4.js +40 -0
  1070. package/dist/mcp/browserObservationSchemas-tgqjH7aA.js +573 -0
  1071. package/dist/mcp/browserScenario-CAQ8Fns9.js +2929 -0
  1072. package/dist/mcp/browserScenarioCapture-CTNFN-FI.js +479 -0
  1073. package/dist/mcp/canonicalDigest-Bi_0_zGi.js +71 -0
  1074. package/dist/mcp/digests-BFoWUT_-.js +223 -0
  1075. package/dist/mcp/electronActiveObservation-lDvQTMR0.js +226 -0
  1076. package/dist/mcp/electronObservation-DFOFEood.js +112 -0
  1077. package/dist/mcp/electronObservation-i7LcILQ-.js +562 -0
  1078. package/dist/mcp/electronScenario-nCzE6IfJ.js +653 -0
  1079. package/dist/mcp/emptyArraySchema-tL6Qymyd.js +140 -0
  1080. package/dist/mcp/enhancedInputs-DgdEnzHy.js +56 -0
  1081. package/dist/mcp/javascriptRuntimeObservation-61NhCf7H.js +690 -0
  1082. package/dist/mcp/javascriptRuntimeObservation-PIUoLfX6.js +121 -0
  1083. package/dist/mcp/jsonSerialization-V-wWiFRE.js +152 -0
  1084. package/dist/mcp/lipo-Bnkoq_6W.js +502 -0
  1085. package/dist/mcp/localPath-AxvW9aPe.js +19 -0
  1086. package/dist/mcp/logger-BQY5ulYv.js +48 -0
  1087. package/dist/mcp/main-kBXHZ8S5.js +69390 -0
  1088. package/dist/mcp/main.js +6 -0
  1089. package/dist/mcp/managedToolContracts-CK--I_s7.js +101 -0
  1090. package/dist/mcp/nativeValueTrace-DR9UE62L.js +3439 -0
  1091. package/dist/mcp/officialToolContracts-B67NJ2tC.js +1413 -0
  1092. package/dist/mcp/pngHeader-DQ-ObyY2.js +147 -0
  1093. package/dist/mcp/propertyListKeys-DD25WsjI.js +553 -0
  1094. package/dist/mcp/providerAdapterError-sDxToNal.js +25 -0
  1095. package/dist/mcp/providerIdentities--ptAh481.js +31 -0
  1096. package/dist/mcp/providerIdentity-BCQ5n5tw.js +16 -0
  1097. package/dist/mcp/providerOperationHealth-CTYa3iLf.js +48 -0
  1098. package/dist/mcp/rolldown-runtime-BjeaiXFo.js +121 -0
  1099. package/dist/mcp/safeJson-NeGfpkrI.js +25 -0
  1100. package/dist/mcp/scanCanonical-CRXSpule.js +3982 -0
  1101. package/dist/mcp/serverIdentity-Cio4iFV3.js +1328 -0
  1102. package/dist/mcp/sourceMapEnvelope-C0uJlrOh.js +94 -0
  1103. package/dist/mcp/toolContracts-BW05wpcr.js +12200 -0
  1104. package/dist/mcp/toolOutputSchemaGroups-ColvNZ1r.js +17533 -0
  1105. package/dist/mcp/unicodeCodePointOrder-BezCbTpg.js +26 -0
  1106. package/dist/mcp/webContentArtifact-Dzjc1z-R.js +284 -0
  1107. package/dist/mcp/webRuntime-K__NYzXm.js +74 -0
  1108. package/dist/mcp/webSourceLocation-DbMAT2J9.js +11130 -0
  1109. package/dist/mcpDoctor.js +108 -76
  1110. package/dist/mcpStartupPolicy.js +3 -0
  1111. package/dist/native/AppleDispatchCoverage.js +81 -28
  1112. package/dist/native/AppleDispatchMetadata.js +20 -9
  1113. package/dist/native/AppleMachoFixups.js +253 -34
  1114. package/dist/native/AppleMachoSelection.js +44 -17
  1115. package/dist/native/AppleObjcCategories.js +1 -2
  1116. package/dist/native/AppleObjcDispatchFacets.js +76 -7
  1117. package/dist/native/CommandRunner.js +142 -32
  1118. package/dist/native/LldbCallTracer.js +5 -3
  1119. package/dist/native/MachoArchitectureSelection.js +50 -0
  1120. package/dist/native/NativeCallObservation.js +2 -1
  1121. package/dist/native/NativeMacOSProvider.js +173 -37
  1122. package/dist/native/NativeMachoInspection.js +142 -78
  1123. package/dist/native/NativeUiHelperRuntime.js +6 -1
  1124. package/dist/native/NativeUiObservation.js +6 -5
  1125. package/dist/native/SignatureTargetBinding.js +118 -55
  1126. package/dist/native/parsers/codesign.js +27 -10
  1127. package/dist/native/parsers/demangle.js +7 -1
  1128. package/dist/native/parsers/dyldInfo.js +73 -4
  1129. package/dist/native/parsers/lipo.js +53 -19
  1130. package/dist/native/parsers/machoUuid.js +150 -0
  1131. package/dist/native/parsers/otool.js +232 -29
  1132. package/dist/native/pe/PeResourceLayout.js +120 -0
  1133. package/dist/native/pe/PeResourceParser.js +286 -0
  1134. package/dist/native/pe/PeResourcesProvider.js +77 -0
  1135. package/dist/native/pwndbg/PwndbgCoreContext.js +20 -20
  1136. package/dist/native/pwntools/PwntoolsDecoder.js +264 -40
  1137. package/dist/native/pwntools/PwntoolsFailures.js +2 -1
  1138. package/dist/native/pwntools/PwntoolsInputLimit.js +27 -0
  1139. package/dist/native/pwntools/PwntoolsRecordedCrashProvider.js +27 -15
  1140. package/dist/native/pwntools/PwntoolsResourceLimits.js +3 -3
  1141. package/dist/native/pwntools/RecordedCrashSourceBindings.js +12 -8
  1142. package/dist/native/pwntools/RecordedCrashStructureBindings.js +3 -1
  1143. package/dist/objdump/ObjdumpCommand.js +21 -0
  1144. package/dist/pcap/PcapCommand.js +146 -0
  1145. package/dist/pcap/PcapConfiguration.js +93 -0
  1146. package/dist/pcap/PcapNativeBound.js +58 -0
  1147. package/dist/pcap/PcapOutput.js +240 -0
  1148. package/dist/pcap/PcapProvider.js +424 -0
  1149. package/dist/pcap/PcapSnapshot.js +171 -0
  1150. package/dist/process/ArtifactAnalysisResources.js +213 -0
  1151. package/dist/process/BoundedFileBytes.js +30 -7
  1152. package/dist/process/CurrentEntrypointPath.js +6 -0
  1153. package/dist/process/DarwinProcessRunTokenReader.js +125 -16
  1154. package/dist/process/ExecFileBoundedOutput.js +44 -0
  1155. package/dist/process/ExecFileOutput.js +30 -6
  1156. package/dist/process/JavaScriptWorkerMemoryLimit.js +25 -0
  1157. package/dist/process/LinuxResourceLimits.js +80 -0
  1158. package/dist/process/MacCodeSignature.js +3 -0
  1159. package/dist/process/OwnedCommand.js +40 -15
  1160. package/dist/process/PrivateRuntimeRoot.js +9 -19
  1161. package/dist/process/PrivateRuntimeRootUnavailableError.js +10 -0
  1162. package/dist/process/ProcessOwnership.js +173 -128
  1163. package/dist/process/ProcessOwnershipObservation.js +131 -43
  1164. package/dist/process/ProcessOwnershipProcessTree.js +4 -4
  1165. package/dist/process/ProcessRunTokenObservations.js +48 -0
  1166. package/dist/process/ProviderDeadline.js +58 -12
  1167. package/dist/process/ProviderDiagnosticRedaction.js +17 -0
  1168. package/dist/process/ProviderProcess.js +112 -14
  1169. package/dist/process/WindowsAuthority.js +48 -39
  1170. package/dist/process/WindowsBatchCommand.js +46 -0
  1171. package/dist/process/boundedUtf8Text.js +13 -0
  1172. package/dist/process/capture/FilesystemSnapshot.js +87 -12
  1173. package/dist/process/capture/ProcessCaptureClock.js +2 -0
  1174. package/dist/process/capture/ProcessCaptureError.js +22 -3
  1175. package/dist/process/capture/ProcessCaptureJournal.js +2 -1
  1176. package/dist/process/capture/ProcessCaptureLifecycle.js +433 -91
  1177. package/dist/process/capture/ProcessCaptureProgress.js +63 -0
  1178. package/dist/process/capture/ProcessHarness.js +209 -38
  1179. package/dist/process/capture/ProcessNormalization.js +278 -34
  1180. package/dist/process/capture/ProcessSampling.js +3 -2
  1181. package/dist/process/capture/ProcessScenarioRuntimeValidation.js +18 -15
  1182. package/dist/process/capture/TerminalRenderer.js +52 -14
  1183. package/dist/process/ownedDebuggerSession.js +203 -0
  1184. package/dist/reference/ReferenceSourceReader.js +22 -6
  1185. package/dist/reference/ReferenceSourceReaderEntries.js +182 -105
  1186. package/dist/reference/ReferenceSourceReaderErrors.js +17 -1
  1187. package/dist/reference/ReferenceSourceReaderFile.js +50 -11
  1188. package/dist/reference/ReferenceSourceReaderTypes.js +1 -2
  1189. package/dist/reference/ReferenceSourceReaderValidate.js +4 -5
  1190. package/dist/rizin/RizinCommand.js +14 -0
  1191. package/dist/rizin/RizinDebugSessionManager.js +1072 -0
  1192. package/dist/rust/RustAuditableReader.js +309 -0
  1193. package/dist/rust/RustBinaryImage.js +116 -0
  1194. package/dist/rust/RustBinaryProvider.js +162 -0
  1195. package/dist/server/EvidenceMcpServer.js +185 -27
  1196. package/dist/server/admittedToolOperation.js +14 -0
  1197. package/dist/server/contractToolHandler.js +28 -0
  1198. package/dist/server/createServer.js +238 -36
  1199. package/dist/server/externalMutationAdmission.js +50 -0
  1200. package/dist/server/mcpProgress.js +4 -2
  1201. package/dist/server/promptCompletion.js +19 -6
  1202. package/dist/server/providerEnvironment.js +3 -0
  1203. package/dist/server/registerAdbTools.js +36 -0
  1204. package/dist/server/registerAnalysisViewTool.js +9 -10
  1205. package/dist/server/registerAndroidTools.js +22 -13
  1206. package/dist/server/registerApktoolTools.js +14 -0
  1207. package/dist/server/registerApplicationTools/compareExportShapes.js +4 -6
  1208. package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
  1209. package/dist/server/registerApplicationTools/compareVersions.js +3 -2
  1210. package/dist/server/registerApplicationTools/coverage.js +3 -2
  1211. package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
  1212. package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +11 -3
  1213. package/dist/server/registerApplicationTools/traceFeature.js +3 -2
  1214. package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
  1215. package/dist/server/registerArtifactComparisonTool.js +5 -2
  1216. package/dist/server/registerArtifactTools.js +21 -1
  1217. package/dist/server/registerBinaryDiagnosticsTools.js +16 -4
  1218. package/dist/server/registerBrowserScenarioTool.js +10 -7
  1219. package/dist/server/registerBrowserTools.js +14 -13
  1220. package/dist/server/registerBundleComparisonTool.js +20 -6
  1221. package/dist/server/registerCaptureTools.js +12 -0
  1222. package/dist/server/registerCloseLifecycleTool.js +32 -3
  1223. package/dist/server/registerCutterTools.js +33 -0
  1224. package/dist/server/registerElectronTools.js +38 -17
  1225. package/dist/server/registerEnhancedTools.js +7 -6
  1226. package/dist/server/registerEvidenceTools.js +14 -10
  1227. package/dist/server/registerEvmTools.js +24 -11
  1228. package/dist/server/registerFirmwareTools.js +3 -11
  1229. package/dist/server/registerFlutterTools.js +17 -0
  1230. package/dist/server/registerFridaTools.js +205 -0
  1231. package/dist/server/registerFunctionComparisonTool.js +34 -11
  1232. package/dist/server/registerGdbTools.js +64 -0
  1233. package/dist/server/registerGoTools.js +9 -0
  1234. package/dist/server/registerInvestigationTools/helpers.js +2 -2
  1235. package/dist/server/registerInvestigationTools.js +12 -8
  1236. package/dist/server/registerJavaScriptRecoveryTool.js +4 -9
  1237. package/dist/server/registerJavaScriptRuntimeObservationTools.js +10 -11
  1238. package/dist/server/registerJebTools.js +16 -0
  1239. package/dist/server/registerManagedTools.js +11 -1
  1240. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +4 -6
  1241. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -2
  1242. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +3 -2
  1243. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +3 -2
  1244. package/dist/server/registerNativeTools.js +14 -0
  1245. package/dist/server/registerOfficialTools.js +5 -0
  1246. package/dist/server/registerPcapTools.js +35 -0
  1247. package/dist/server/registerPeResourcesTool.js +9 -0
  1248. package/dist/server/registerProcessComparisonTool.js +14 -4
  1249. package/dist/server/registerRecordedCrashTools.js +4 -9
  1250. package/dist/server/registerReverseEngineeringTools.js +86 -0
  1251. package/dist/server/registerRizinDebugTools.js +53 -0
  1252. package/dist/server/registerRustTools.js +9 -0
  1253. package/dist/server/registerSessionRecordTools.js +21 -14
  1254. package/dist/server/registerSessionStatusTool.js +22 -4
  1255. package/dist/server/registerSessionTools.js +78 -34
  1256. package/dist/server/registerSignalTools.js +12 -0
  1257. package/dist/server/registerSqliteTools.js +9 -0
  1258. package/dist/server/registerWasmTools.js +46 -0
  1259. package/dist/server/registerWebModuleTool.js +4 -9
  1260. package/dist/server/registerWebNetworkCaptureTool.js +26 -17
  1261. package/dist/server/registerWebRuntimeTools.js +6 -5
  1262. package/dist/server/registerWebScriptTool.js +6 -3
  1263. package/dist/server/registerWebSourceLocationTool.js +4 -9
  1264. package/dist/server/retainedSummaryDelivery.js +28 -0
  1265. package/dist/server/sessionAvailabilityPolicy.js +3 -0
  1266. package/dist/server/toolRegistrationOptions.js +8 -0
  1267. package/dist/server/toolResult.js +68 -16
  1268. package/dist/server/toolResultEncoding.js +36 -3
  1269. package/dist/serverIdentity.js +17 -8
  1270. package/dist/signals/SigrokRecordingProvider.js +339 -0
  1271. package/dist/signals/parseDecoderDiscovery.js +65 -0
  1272. package/dist/sqlite/SqliteDatabaseFailures.js +134 -0
  1273. package/dist/sqlite/SqliteDatabaseInspection.js +421 -0
  1274. package/dist/sqlite/SqliteDatabaseLimits.js +16 -0
  1275. package/dist/sqlite/SqliteDatabaseProvider.js +295 -0
  1276. package/dist/sqlite/SqliteDatabaseSnapshot.js +156 -0
  1277. package/dist/sqlite/SqliteDatabaseWorker.js +46 -0
  1278. package/dist/sqlite/SqliteDatabaseWorkerExecution.js +112 -0
  1279. package/dist/wasm/WabtArtifactProvider.js +336 -0
  1280. package/dist/wasm/WabtFailures.js +101 -0
  1281. package/dist/wasm/WabtInterface.js +309 -0
  1282. package/dist/wasm/WabtOutput.js +60 -0
  1283. package/dist/wasm/WabtRelease.js +12 -0
  1284. package/dist/wasm/WabtString.js +48 -0
  1285. package/dist/wasm/WabtWat.js +147 -0
  1286. package/dist/wasm/WasmGlueAdapter.js +53 -0
  1287. package/dist/wasm/WasmInterfaceBudget.js +11 -0
  1288. package/dist/windows/WindowsNativeLoader.js +37 -7
  1289. package/dist/windows/WindowsOwnedProcess.js +150 -17
  1290. package/dist/windows/WindowsPrivateRuntime.js +34 -6
  1291. package/install.sh +157 -95
  1292. package/licenses/Apache-2.0.txt +202 -0
  1293. package/licenses/GCC-Runtime-Library-Exception-3.1.txt +73 -0
  1294. package/licenses/GPL-3.0.txt +674 -0
  1295. package/licenses/LGPL-2.0.txt +480 -0
  1296. package/licenses/MIT-template.txt +18 -0
  1297. package/licenses/MinGW-w64-runtime.txt +240 -0
  1298. package/licenses/Node-22.19.0-LICENSE.txt +2666 -0
  1299. package/licenses/README.md +68 -0
  1300. package/licenses/cfworker-MIT.txt +21 -0
  1301. package/licenses/dotnet-runtime-MIT.txt +23 -0
  1302. package/licenses/frida-17.23.2-COPYING.txt +50 -0
  1303. package/licenses/ghidra-12.1.4-DISCLAIMER.txt +13 -0
  1304. package/licenses/ghidra-12.1.4-LICENSE.txt +201 -0
  1305. package/licenses/ghidra-12.1.4-NOTICE.txt +49 -0
  1306. package/licenses/nativeaot-parser-MIT.txt +28 -0
  1307. package/licenses/npm-dependencies.txt +3612 -0
  1308. package/licenses/npm-runtime-notices.txt +8548 -0
  1309. package/licenses/upstream-sources.json +72 -0
  1310. package/licenses/xterm-MIT.txt +21 -0
  1311. package/native/windows/README.md +92 -11
  1312. package/native/windows/build/manifest.json +2 -2
  1313. package/native/windows/build/rea-windows-x64.node +0 -0
  1314. package/package.json +117 -22
  1315. package/scripts/electron-active-hook.cjs +4 -1
  1316. package/scripts/hopper-demo-x11.py +53 -3
  1317. package/scripts/prepack.mjs +5 -0
  1318. package/scripts/rea-android-workspace-guardian.mjs +46 -0
  1319. package/scripts/rea.mjs +44 -13
  1320. package/scripts/verify-windows-native-artifact.mjs +2 -2
  1321. package/skills/reverse-engineer-anything/SKILL.md +142 -20
  1322. package/skills/reverse-engineer-anything/references/connection-and-recovery.md +127 -0
  1323. package/skills/reverse-engineer-anything/references/evidence-workflows.md +31 -0
  1324. package/skills/reverse-engineer-anything/references/javascript-applications.md +118 -13
  1325. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +147 -16
  1326. package/skills/reverse-engineer-anything/references/runtime-observation.md +57 -7
  1327. package/third_party/README.md +1 -1
  1328. package/third_party/wabt/README.md +24 -0
  1329. package/dist/browser/history/HarCaptureAdapter.js +0 -20
  1330. package/dist/cli/streamedJsonOutput.js +0 -135
  1331. package/dist/cliJsonFile.js +0 -179
  1332. /package/dist/{application/binary → process}/AbortablePromise.js +0 -0
@@ -0,0 +1,3721 @@
1
+ import { __esmMin } from "./rolldown-runtime-DXoylpqc.js";
2
+ import { analysisProviderSelectorSchema, analyzeJavaScriptSemantics, androidApplicationProjectionInputSchema, androidApplicationProjectionResultSchema, appleApplicationProjectionInputSchema, appleApplicationProjectionResultSchema, browserScenarioCaptureSchema, browserTargetListSchema, captureWebScreenshotInputSchema, compareWebScreenshotsInputSchema, createEvidence, createWebTextArtifact, digestCanonicalValue, electronActiveObservationInputSchema, electronActiveObservationResultSchema, electronPageInspectionSchema, electronTargetListSchema, evidenceResultOf, evidenceSchema, functionComparisonInputSchema, harmonyApplicationProjectionInputSchema, harmonyApplicationProjectionResultSchema, init_androidApplication, init_appleApplication, init_browserObservation, init_browserObservationSchemas, init_browserScenarioCapture, init_canonicalDigest, init_electronActiveObservation, init_electronObservation, init_evidence, init_functionComparisonSchemas, init_harmonyApplication, init_javascriptRuntimeObservation, init_javascriptSemanticAnalysis, init_localPath, init_processScenario, init_providerSelection, init_reconstructionCoverage, init_reconstructionCoverageInput, init_reconstructionObligationLedgerSchemas, init_residualUnknown, init_toolOutputSchemaPrimitives, init_webContentArtifact, init_webScreenshot, inspectElectronPageInputSchema, inspectWebPageInputSchema, javascriptRuntimeObservationSchema, javascriptRuntimeTargetListSchema, listBrowserTargetsInputSchema, listElectronTargetsInputSchema, listJavaScriptRuntimeTargetsInputSchema, localPathStringSchema, observeJavaScriptRuntimeInputSchema, processScenarioSchema, reconstructionClosureResultSchema, reconstructionCoverageEvaluationInputSchema, reconstructionObligationLedgerInputSchema, reconstructionObligationLedgerSchema, recordUnknownInputSchema, requireOutputSchema, updateUnknownInputSchema, webPageInspectionSchema, webScreenshotDiffSchema, webScreenshotSchema } from "./reconstructionObligationLedgerSchemas-Bao0xMr-.js";
3
+ import { CUTTER_TOOL_CONTRACTS, EVM_TOOL_CONTRACTS, FRIDA_TOOL_CONTRACTS, NATIVE_TOOL_CONTRACTS, WASM_TOOL_CONTRACTS, adbInputSchemas, adbResultSchemas, addressContextInputSchema, analyzeWebBundleInputSchema, apktoolInputSchemas, apktoolResultSchemas, browserCaptureComparisonInputSchema, browserCaptureComparisonSchema, browserScenarioInputSchema, decodeSignalRecordingInputSchema, discoverWebMcpToolsInputSchema, evidenceInputSchema, exportWebScriptsInputSchema, firmwareInputSchemas, firmwareResultSchemas, getEvidenceBundleInputSchema, goBinarySchema, importEvidenceBundleInputSchema, init_adbDeviceAnalysis, init_apktoolResourceAnalysis, init_browserCaptureComparison, init_browserScenario, init_browserSession, init_cutterToolContracts, init_evidenceInputContracts, init_evmToolContracts, init_firmwareAnalysis, init_fridaToolContracts, init_goBinary, init_javascriptRecovery, init_jebAnalysis, init_nativeToolContracts, init_packetCapture, init_packetFields, init_peResources, init_recordedCrash, init_reverseEngineering, init_rustBinary, init_sessionToolSchemas, init_signalDecoders, init_signalRecording, init_sqliteDatabase, init_wasmToolContracts, init_webBundleAnalysis, init_webEventListeners, init_webExecution, init_webMcpDiscovery, init_webModuleTrace, init_webScriptExport, init_webSourceLocation, inspectGoBinaryInputSchema, inspectPacketCaptureInputSchema, inspectPacketFieldsInputSchema, inspectPeResourcesInputSchema, inspectRecordedCrashInputSchema, inspectRustBinaryInputSchema, inspectSignalDecodersInputSchema, inspectSqliteDatabaseInputSchema, inspectWebEventListenersInputSchema, javascriptRecoveryInputSchema, javascriptRecoveryResultSchema, jebInputSchemas, jebResultSchemas, listUnknownsInputSchema, navigationContextInputSchema, objdumpInputSchema, observeWebExecutionInputSchema, observeWebSessionInputSchema, packetCaptureSchema, packetFieldsCatalogSchema, peResourcesSchema, processComparisonInputSchema, recordedCrashSchema, rizinInputSchema, rustBinarySchema, signalDecodersSchema, signalRecordingSchema, sqliteDatabaseSchema, verifyUnknownResolutionInputSchema, webBundleAnalysisSchema, webEventListenersSchema, webExecutionSchema, webMcpDiscoverySchema, webModuleTraceInputSchema, webModuleTraceResultSchema, webObservationSessionSchema, webScriptExportResultSchema, webSourceLocationInputSchema, webSourceLocationResultSchema } from "./cutterToolContracts-TZH9EHr5.js";
4
+ import { init_jsonValue, jsonObjectSchema, jsonValueSchema } from "./errorSchemas-CTRmvMl3.js";
5
+ import { analysisDetailOutputSchemaOf, analysisDetailSchema, analysisViewResultSchema, androidInputSchemas, androidPackageInspectionInputSchema, androidPackageSummaryViewResultSchema, androidResultSchemas, artifactComparisonInputSchema, binaryArchitectureSchema, binaryLayoutSchema, binaryLayoutSummaryViewResultSchema, bundleComparisonInputSchema, callPathInputSchema, changedBehaviorInputSchema, dartAotInspectionInputSchema, dartAotSummaryViewResultSchema, electronFuseOutputSchemas, enhancedOutputSchemas, flutterInputSchemas, flutterResultSchemas, init_analysisDetail, init_analysisView, init_androidAnalysis, init_artifactComparison, init_binaryLayout, init_bundleComparison, init_callPathSchemas, init_changedBehavior, init_electronFuses, init_flutterBuildAnalysis, init_managedNativeVerificationSchemas, init_managedReconstruction, init_pcapAnalysis, init_rawBinary, init_reconstructionVerificationSchemas, init_staticRuntimeCorrelation, init_toolEffects, init_toolOutputSchemaGroups, init_webNetworkCapture, inspectAnalysisViewInputSchema, inspectBinaryLayoutInputSchema, inspectElectronFusesInputSchema, inspectWebNetworkCaptureInputSchema, javascriptApplicationSummaryViewResultSchema, managedNativeVerificationInputSchema, managedReconstructionImportInputSchema, managedWorkflowOutputSchemas, pcapCaptureSummaryViewResultSchema, pcapInputSchemas, pcapResultSchemas, rawBinaryEntryPointSchema, rawBinarySelectionError, reconstructionVerificationInputSchema, sessionOutputSchemas, staticRuntimeCorrelationInputSchema, toolContractMetadata, webNetworkCaptureSchema, webNetworkCaptureSummaryViewResultSchema } from "./toolOutputSchemaGroups-DRiYs1je.js";
6
+ import { JAVASCRIPT_SEMANTIC_RELATION_FAMILIES, JavaScriptSemanticEvidenceContextRegistry, analyzeJavaScriptApplicationInputSchema, completeApplicationCoverage, createJavaScriptApplicationGraph, createJavaScriptApplicationNode, createJavaScriptSemanticGraph, createJavaScriptSemanticGraphNode, init_javascriptApplicationAnalysis, init_javascriptApplicationEvidenceSchemas, init_javascriptApplicationGraph, init_javascriptSemanticGraph, init_javascriptSemanticGraphSchemas, javascriptApplicationAnalysisResultSchema, partialApplicationCoverage } from "./javascriptApplicationAnalysis-HgMzVMQw.js";
7
+ import { MANAGED_TOOL_CONTRACTS, executableFormatHintSchema, init_dosCom, init_managedToolContracts } from "./managedToolContracts-D60QmIYj.js";
8
+ import { applicationFeatureTraceResultSchema, applicationVersionComparisonResultSchema, compareApplicationVersionsInputSchema, compareJavaScriptExportShapesInputSchema, compareSourceToBundleInputSchema, createHistoricalSourceGraph, init_javascriptApplicationVersionComparisonSchemas, init_javascriptExportShapeComparisonSchemas, init_javascriptFeatureTraceSchemas, init_referenceSourceGraph, init_sourceToBundleComparisonSchemas, javaScriptExportShapeComparisonResultSchema, sourceToBundleComparisonResultSchema, traceApplicationFeatureInputSchema } from "./javascriptExportShapeComparisonSchemas-BYnoIqIk.js";
9
+ import { init_javascriptSemanticQuerySchemas, init_javascriptSemanticTraceSchemas, javaScriptSemanticQueryInputSchema, javaScriptSemanticTraceResultSchema } from "./javascriptSemanticTraceSchemas-BTCNcvbc.js";
10
+ import { ARTIFACT_TOOL_CONTRACTS, OFFICIAL_TOOL_CONTRACTS, TOOL_EXAMPLE_OVERRIDES, enhancedInputSchemas, examplesFor, init_artifactToolContracts, init_enhancedInputs, init_officialToolContracts, init_toolContractExamples, init_toolContractHelpers } from "./officialToolContracts-CCFF0an9.js";
11
+ import { init_javascriptRuntimeReconciliationSchemas, javascriptRuntimeReconciliationResultSchema, reconcileJavaScriptRuntimeInputSchema } from "./javascriptRuntimeReconciliationSchemas-BWpGWNcI.js";
12
+ import { init_javascriptRuntimeReconciliation, parseRuntimeReconciliationInput, reconcileJavaScriptRuntime } from "./javascriptRuntimeReconciliation-DNjDoL3S.js";
13
+ import { init_javascriptExportReturnShapeProjection, projectJavaScriptExportReturnShapes } from "./javascriptExportReturnShapeProjection-Dg00g35t.js";
14
+ import { z } from "zod";
15
+ import { isAbsolute } from "node:path";
16
+
17
+ //#region dist/contracts/captures/captureToolContracts.js
18
+ var CAPTURE_TOOL_CONTRACTS;
19
+ function init_captureToolContracts() {
20
+ return (init_captureToolContracts = __esmMin((() => {
21
+ init_packetFields();
22
+ init_packetCapture();
23
+ init_toolEffects();
24
+ init_toolOutputSchemaPrimitives();
25
+ CAPTURE_TOOL_CONTRACTS = [{
26
+ name: "inspect_packet_fields",
27
+ ...toolContractMetadata("inspect_packet_fields"),
28
+ kind: "artifact-provider",
29
+ description: "Discover protocols or field names/types registered in the installed TShark 4.x. kind defaults to protocols; use fields and optional exact protocol abbreviation to select field definitions. query searches name/abbreviation/description by case-insensitive literal substring. Return 50 matches by default with offset/limit paging; null requests all remaining within resource limits. Preserve type/base/bitmask/description, duplicate registrations, source line numbers, coverage, tool identity and diagnostics. Linux, REA_TSHARK_COMMAND and prlimit required. No capture file, interface or binary target needed. Registrations describe tool capabilities, not observed traffic. Each call rereads the glossary; use selected fields with inspect_packet_capture.",
30
+ inputSchema: inspectPacketFieldsInputSchema,
31
+ outputSchema: evidenceResultOf(packetFieldsCatalogSchema),
32
+ examples: [{
33
+ title: "Find USB protocol registrations",
34
+ input: { query: "usb" }
35
+ }, {
36
+ title: "Find the installed USB vendor-ID field",
37
+ input: {
38
+ kind: "fields",
39
+ protocol: "usb",
40
+ query: "idVendor"
41
+ }
42
+ }]
43
+ }, {
44
+ name: "inspect_packet_capture",
45
+ ...toolContractMetadata("inspect_packet_capture"),
46
+ kind: "artifact-provider",
47
+ description: "Inspect caller-selected fields in an existing local packet capture with TShark 4.x. Return 50 matching frames by default, with match_offset/match_limit paging and coverage counts; match_limit:null requests all remaining matches. Preserve repeated values, frame numbers, display filter, decode-as rules and pass mode in inline Evidence with source/tool identity and diagnostics. Optional packet_limit counts input packets before filtering; output paging does not shorten dissection or two-pass reassembly. Requires Linux, util-linux prlimit, and absolute REA_TSHARK_COMMAND. File-only analysis; no live capture or device communication. Missing fields or no matches do not establish absence of device traffic.",
48
+ inputSchema: inspectPacketCaptureInputSchema,
49
+ outputSchema: evidenceResultOf(packetCaptureSchema),
50
+ examples: [{
51
+ title: "Inspect UDP exchanges in a recording",
52
+ input: {
53
+ path: "/artifacts/device.pcapng",
54
+ fields: [
55
+ "ip.addr",
56
+ "udp.port",
57
+ "data.data"
58
+ ],
59
+ display_filter: "udp",
60
+ decode_as: [],
61
+ packet_limit: null,
62
+ two_pass: true
63
+ }
64
+ }]
65
+ }];
66
+ })))();
67
+ }
68
+
69
+ //#endregion
70
+ //#region dist/contracts/signals/signalToolContracts.js
71
+ var SIGNAL_TOOL_CONTRACTS;
72
+ function init_signalToolContracts() {
73
+ return (init_signalToolContracts = __esmMin((() => {
74
+ init_signalDecoders();
75
+ init_signalRecording();
76
+ init_toolEffects();
77
+ init_toolOutputSchemaPrimitives();
78
+ SIGNAL_TOOL_CONTRACTS = [{
79
+ name: "inspect_signal_decoders",
80
+ ...toolContractMetadata("inspect_signal_decoders"),
81
+ kind: "artifact-provider",
82
+ description: "Discover installed sigrok protocol decoders or inspect one decoder's channel/option help on Linux. Omit decoder to list ID/name pairs; supply its exact ID for literal help lines with source line numbers. query is a case-insensitive literal substring. Page matches with offset/limit (default 50; null returns all remaining). Reports tool identity, version, diagnostics and examined/matching coverage. Uses configured REA_SIGROK_COMMAND and prlimit; no recording, binary target, hardware scan or acquisition. Each call probes again; decoder modules are trusted, not fully fingerprinted. Use returned IDs/options with decode_signal_recording.",
83
+ inputSchema: inspectSignalDecodersInputSchema,
84
+ outputSchema: evidenceResultOf(signalDecodersSchema),
85
+ examples: [{
86
+ title: "Find installed UART decoders",
87
+ input: { query: "uart" }
88
+ }, {
89
+ title: "Read the installed UART baud-rate option",
90
+ input: {
91
+ decoder: "uart",
92
+ query: "baud"
93
+ }
94
+ }]
95
+ }, {
96
+ name: "decode_signal_recording",
97
+ ...toolContractMetadata("decode_signal_recording"),
98
+ kind: "artifact-provider",
99
+ description: "Decode an existing local logic/signal recording on Linux with sigrok-cli 0.7.2 and util-linux prlimit. Supply decoder stack, channels and options explicitly; optionally select input format and annotation classes. Return 50 literal output lines by default, with line_offset/line_limit paging; line_limit:null requests all remaining lines. Output windows count display lines, not annotations or samples, and do not shorten decoding. Preserve selected text, sample ranges, stderr, source/tool identity and coverage inline. Configure absolute REA_SIGROK_COMMAND. File-only analysis; no hardware acquisition or device communication. Empty output does not prove absence of traffic.",
100
+ inputSchema: decodeSignalRecordingInputSchema,
101
+ outputSchema: evidenceResultOf(signalRecordingSchema),
102
+ examples: [{
103
+ title: "Decode recorded UART RX bytes",
104
+ input: {
105
+ path: "/artifacts/uart.vcd",
106
+ input_format: "vcd",
107
+ decoders: "uart:rx=RX:baudrate=9600",
108
+ annotations: "uart=rx-data"
109
+ }
110
+ }]
111
+ }];
112
+ })))();
113
+ }
114
+
115
+ //#endregion
116
+ //#region dist/contracts/go/goToolContracts.js
117
+ var GO_TOOL_CONTRACTS;
118
+ function init_goToolContracts() {
119
+ return (init_goToolContracts = __esmMin((() => {
120
+ init_goBinary();
121
+ init_toolEffects();
122
+ init_toolOutputSchemaPrimitives();
123
+ GO_TOOL_CONTRACTS = [{
124
+ name: "inspect_go_binary",
125
+ ...toolContractMetadata("inspect_go_binary"),
126
+ kind: "artifact-provider",
127
+ description: "Inspect embedded Go compiler version, main module, dependency/replacement versions and build settings in an explicit local ELF, PE or thin Mach-O image. Returns original artifact SHA-256, exact build-info source ranges, raw framed module bytes and unparsed module-text lines inline as observed Evidence. Supports inline and historical pointer encodings without installing Go, opening a disassembler, executing the target, writing temporary files or accessing the network. Missing metadata is reported as unknown, not proof that an image is not Go. Does not recover functions, source mappings, types or runtime behavior. Resource guards bound files to 256 MiB, aggregate embedded strings to 1 MiB, structural table decoding to 16 MiB and complete inline metadata to 8 MiB; malformed, unsupported and oversized inputs receive typed failures rather than partial success.",
128
+ inputSchema: inspectGoBinaryInputSchema,
129
+ outputSchema: evidenceResultOf(goBinarySchema),
130
+ examples: [{
131
+ title: "Inspect embedded build provenance",
132
+ input: { path: "/artifacts/application" }
133
+ }]
134
+ }];
135
+ })))();
136
+ }
137
+
138
+ //#endregion
139
+ //#region dist/contracts/rust/rustToolContracts.js
140
+ var RUST_TOOL_CONTRACTS;
141
+ function init_rustToolContracts() {
142
+ return (init_rustToolContracts = __esmMin((() => {
143
+ init_rustBinary();
144
+ init_toolEffects();
145
+ init_toolOutputSchemaPrimitives();
146
+ RUST_TOOL_CONTRACTS = [{
147
+ name: "inspect_rust_binary",
148
+ ...toolContractMetadata("inspect_rust_binary"),
149
+ kind: "artifact-provider",
150
+ description: "Inspect the cargo-auditable crate dependency list embedded in an explicit local ELF, PE or thin Mach-O image. Returns the artifact SHA-256, the .dep-v0 section file offset and size, compressed and uncompressed sizes, format version, packages in their original order, the root package index, and dependency edges by index. Reads zlib-compressed JSON without installing Rust, opening a disassembler, executing the target, writing temporary files or accessing the network. A missing section is null metadata with a limitation and is not proof that the binary has no dependencies. A rustc commit hash is reported only as an inference when a /rustc/<40-hex>/ path is present in read-only data. Resource guards bound files to 256 MiB, dependency sections to 1 MiB, inflated JSON to the smaller of 8 MiB and 64 times the compressed size, and the complete report to 8 MiB. Malformed, unsupported and oversized inputs receive typed failures rather than partial success.",
151
+ inputSchema: inspectRustBinaryInputSchema,
152
+ outputSchema: evidenceResultOf(rustBinarySchema),
153
+ examples: [{
154
+ title: "Inspect an embedded Rust dependency list",
155
+ input: { path: "/artifacts/application" }
156
+ }]
157
+ }];
158
+ })))();
159
+ }
160
+
161
+ //#endregion
162
+ //#region dist/contracts/sqlite/sqliteToolContracts.js
163
+ var SQLITE_TOOL_CONTRACTS;
164
+ function init_sqliteToolContracts() {
165
+ return (init_sqliteToolContracts = __esmMin((() => {
166
+ init_sqliteDatabase();
167
+ init_toolEffects();
168
+ init_toolOutputSchemaPrimitives();
169
+ SQLITE_TOOL_CONTRACTS = [{
170
+ name: "inspect_sqlite_database",
171
+ ...toolContractMetadata("inspect_sqlite_database"),
172
+ kind: "artifact-provider",
173
+ description: "Inspect an explicit local SQLite database snapshot and its existing sibling WAL without modifying source files or opening a native analysis provider. Requires Node.js 24.x >=24.15 or 26+ with native DatabaseSync.limits support, checked by the worker. Returns observed Evidence with database/WAL SHA-256 and a compact schema inventory. Selecting an exact ordinary table expands only its schema and samples rows (default 20, subject to byte and worker resource limits). Select exact columns in the requested order to avoid unrelated or large values; schema_scope=database explicitly expands the whole schema; returned rows retain 64-bit integers, text bytes and blobs with explicit truncation. No arbitrary SQL, view or virtual-table execution, extension loading, database repair, encryption support or live-snapshot atomicity claim. At most two inspections per provider are admitted; occupied capacity is retryable. An isolated temporary copy and owned worker enforce input, value/record, SQL-statement, JSON-reply, JavaScript-heap and deadline limits; overall native heap is not capped. Supply a quiescent snapshot for coherent database/WAL evidence.",
174
+ inputSchema: inspectSqliteDatabaseInputSchema,
175
+ outputSchema: evidenceResultOf(sqliteDatabaseSchema),
176
+ examples: [
177
+ {
178
+ title: "Inspect a compact inventory of a local SQLite snapshot",
179
+ input: { path: "/artifacts/application.sqlite" }
180
+ },
181
+ {
182
+ title: "Read selected rows from an ordinary table",
183
+ input: {
184
+ path: "/artifacts/application.sqlite",
185
+ table: "settings",
186
+ columns: ["key", "value"],
187
+ row_limit: 20
188
+ }
189
+ },
190
+ {
191
+ title: "Expand the complete stored schema",
192
+ input: {
193
+ path: "/artifacts/application.sqlite",
194
+ schema_scope: "database"
195
+ }
196
+ }
197
+ ]
198
+ }];
199
+ })))();
200
+ }
201
+
202
+ //#endregion
203
+ //#region dist/contracts/analysisViewApiSurfaceExample.js
204
+ var API_SURFACE_EXAMPLE;
205
+ function init_analysisViewApiSurfaceExample() {
206
+ return (init_analysisViewApiSurfaceExample = __esmMin((() => {
207
+ API_SURFACE_EXAMPLE = {
208
+ input: {
209
+ source: {
210
+ kind: "retained-evidence",
211
+ evidence_id: "ev_9e218c18bc6159ec9c8492a9130c286496fb1b6d9f03ec2f4ea3321ce2b15097"
212
+ },
213
+ view: {
214
+ kind: "api-surface",
215
+ offset: 0,
216
+ limit: 50
217
+ }
218
+ },
219
+ output: {
220
+ parent_evidence_id: "ev_9e218c18bc6159ec9c8492a9130c286496fb1b6d9f03ec2f4ea3321ce2b15097",
221
+ parent_operation: "inspect_web_network_capture",
222
+ parent_digest: "9e218c18bc6159ec9c8492a9130c286496fb1b6d9f03ec2f4ea3321ce2b15097",
223
+ view_digest: "47c1859b7a86dd10770061767300bdb6ec177a9254e8dc7863d5ea8603343da6",
224
+ artifact: {
225
+ path: "/fixtures/api-surface.har",
226
+ sha256: "bf58e2c06e55bfe7e0628157c4ad027ce0aeb81a10e8edef8a7f95b8e5f14225"
227
+ },
228
+ coverage: {
229
+ status: "page",
230
+ examined: 1,
231
+ total: 1,
232
+ next_offset: null,
233
+ exhausted: true
234
+ },
235
+ limitations: ["Grouping does not establish handler identity, URL-space schemas or causality.", "HAR text is producer-decoded Unicode. Original body bytes remain unknown unless content explicitly uses valid base64; declared sizes are preserved independently of retained bytes. mitmproxy 12.2.3 SaveHar may report null optional postData.text; that null is retained and omitted only from the upstream validation copy."],
236
+ unknowns: [],
237
+ records: {
238
+ examined: 2,
239
+ total: 2,
240
+ excluded: 0
241
+ },
242
+ templated_groups: 1,
243
+ groups: [{
244
+ method: "GET",
245
+ origin: "https://api.example.test",
246
+ path_template: "/users/{numeric}",
247
+ templated_segments: [{
248
+ segment_index: 1,
249
+ rule: "numeric",
250
+ basis: "inferred",
251
+ observed_values: ["8812", "9031"]
252
+ }],
253
+ record_ordinals: [0, 1],
254
+ statuses: [200, 404],
255
+ content_types: ["application/json", "text/plain"],
256
+ flags: ["mixed-statuses", "mixed-content-types"]
257
+ }],
258
+ excluded_records: [],
259
+ kind: "api-surface",
260
+ view: {
261
+ kind: "api-surface",
262
+ offset: 0,
263
+ limit: 50
264
+ }
265
+ }
266
+ };
267
+ })))();
268
+ }
269
+
270
+ //#endregion
271
+ //#region dist/contracts/analysisViewToolContracts.js
272
+ var RETAINED_EXAMPLE_ID, ANALYSIS_VIEW_TOOL_CONTRACTS;
273
+ function init_analysisViewToolContracts() {
274
+ return (init_analysisViewToolContracts = __esmMin((() => {
275
+ init_analysisViewApiSurfaceExample();
276
+ init_analysisView();
277
+ init_toolEffects();
278
+ init_toolOutputSchemaPrimitives();
279
+ RETAINED_EXAMPLE_ID = `ev_${"a".repeat(64)}`;
280
+ ANALYSIS_VIEW_TOOL_CONTRACTS = [{
281
+ name: "inspect_analysis_view",
282
+ ...toolContractMetadata("inspect_analysis_view"),
283
+ kind: "application",
284
+ description: "Inspect selected views of completed binary-layout, JavaScript application, native analyze_function, inspect_artifact, inventory_artifact, inspect_wasm_artifact, inspect_macho, decode_interface_builder, inspect_evm_interface, inspect_managed_artifact, inspect_managed_members, inspect_android_package, inspect_dart_aot or inspect_web_network_capture Evidence without repeating analysis. Historical capture summaries return identity and counts without bodies or archive inventories. Capture views page retained records: view {kind: \"capture\", detail: \"preview\" | \"complete\", offset: 0, limit: 20}; preview selects recorded headline fields and binary descriptors, complete returns exact records with all sidecars. Offsets follow the selected parent record order, preserving original producer ordinals. Paging never reopens the source or reruns the decoder. For inspect_pcap_capture parents, kind pcap pages endpoints, dns-queries, tls-sni, protocols, http-uris or unattributed-addresses. Select an exact query for dns-addresses, or a tshark/capinfos stream for UTF-16 diagnostics text. Page totals count retained facts; source coverage remains explicit. Qlog summaries keep profile/scope and counts; kind qlog pages traces, streams, loss-declarations, incomplete-records, contributions, ranges or final-sizes. Except traces, select trace_index; stream-specific facets also require exact stream_id and direction. Facts retain all-recorded-events-before-selection scope, and interval overlap or endpoint loss declarations do not prove retransmission or network loss. The api-surface view groups retained HAR requests by method, origin and format-rule path template; templated segments are inferences. It reads no headers or bodies and reports no query values. For a retained record use source: {kind: \"retained-evidence\", evidence_id: \"<parent_evidence_id>\"}. Use normalized_result.parent_evidence_id from a summary receipt. Source kind is required. Portable source uses {kind: \"inline\", evidence: <complete Evidence>}. For layout, JavaScript, inventory, WASM, Mach-O, Interface Builder, EVM, managed artifact, Android package and Dart AOT sources, request a summary with view: {kind: \"summary\"}; summary is a view kind and has no facet. The WASM summary gives validation, counts, WAT digest/length, tool profile and execution/network states without reading WAT text. Select a layout mitigations/linkage facet, one section/symbol/module, or a stable page. Module pages include assets, bundled and source modules; use node_id for ambiguous or unavailable paths. Inventory uses view: {kind: \"inventory\", collection: \"occurrences\", logical_paths: [\"package.json\"], offset: 0, limit: 64}. Inventory views page nodes, occurrences, edges or integrity contradictions; occurrence logical_paths matches exact recorded strings (omitted means all available, [] means none). source_complete distinguishes complete inventories from partial source records; page exhaustion does not prove absence in a partial source. WASM views use kind wasm and facet sections/imports/exports/candidates/glue/wat/headers/details/tool_profile; text facets use UTF-16 code units and source forms remain exact. Mach-O views use kind macho and facet entrypoints/architectures/build_metadata/load_commands/dependencies/imports/exports/segments/provenance; source_exhaustive false means unreturned rows may exist. Interface Builder views use kind interface-builder and collection documents/nodes/edges/coverage; nodes and edges accept an exact document relative_path. EVM summary returns all inferred interface candidates, carrier/decoded identities and explicit unknowns without hex or duplicate stdout. EVM views use kind evm and facet functions/bytecode_hex/stdout/stderr; function pages preserve the original candidate rows, and text offsets/limits count UTF-16 code units (hex has two characters per decoded byte). Exhausting candidate pages does not establish global interface completeness. Managed artifact summaries preserve complete identity/classification, metadata status, module/MVID, frameworks, coverage and limitations without unrelated inventories. Managed pages use kind managed and collection references/resources/attributes, retaining source coverage and build-local token scope; page exhaustion does not establish complete metadata. Managed member summaries keep identity, selection with unmatched names, coverage and per-collection counts; managed-members pages use collection types/exported_types/fields/methods/member_refs/call_edges/field_accesses/user_strings and carry the source selection and coverage. Android package summaries retain all declarations, engine identity and counts without decoded manifest text. Android manifest pages use kind android, facet manifest, offset and limit in UTF-16 code units; source_status preserves partial decoded coverage even when the retained text page is exhausted. Dart AOT summary preserves target/ABI/library identity, snapshot headers and pool lower bounds. String pages use kind dart-aot, collection package_uris/dart_uris/class_like_tokens; source coverage remains partial when the producer says partial. Native function Evidence requires kind native: view: {kind: \"native\", facet: \"procedure\"}. Facets select procedure, pseudocode, assembly, basic blocks, comments, callers/callees, references, unresolved calls, referenced strings/names, native API and high-pcode. Use nonnegative offset and a positive caller-selected limit (defaults 0 and 64); pseudocode uses UTF-16 code units, other native pages use rows. Returns artifact identity, parent Evidence ID, a distinct view digest, coverage, limitations and unknowns. Actual serialized size determines MCP transport admission; choose a smaller page or export the complete retained Evidence if needed.",
285
+ inputSchema: inspectAnalysisViewInputSchema,
286
+ outputSchema: evidenceResultOf(analysisViewResultSchema),
287
+ examples: [
288
+ {
289
+ title: "Read exact inventory paths from retained inspection Evidence",
290
+ input: {
291
+ source: {
292
+ kind: "retained-evidence",
293
+ evidence_id: RETAINED_EXAMPLE_ID
294
+ },
295
+ view: {
296
+ kind: "inventory",
297
+ collection: "occurrences",
298
+ logical_paths: ["package.json", "main.js"],
299
+ offset: 0,
300
+ limit: 32
301
+ }
302
+ }
303
+ },
304
+ {
305
+ title: "Group requests from retained HAR Evidence",
306
+ input: API_SURFACE_EXAMPLE.input
307
+ },
308
+ {
309
+ title: "Summarize retained analysis Evidence, including WASM",
310
+ input: {
311
+ source: {
312
+ kind: "retained-evidence",
313
+ evidence_id: RETAINED_EXAMPLE_ID
314
+ },
315
+ view: { kind: "summary" }
316
+ }
317
+ },
318
+ {
319
+ title: "Read one ELF section from retained layout Evidence",
320
+ input: {
321
+ source: {
322
+ kind: "retained-evidence",
323
+ evidence_id: RETAINED_EXAMPLE_ID
324
+ },
325
+ view: {
326
+ kind: "item",
327
+ collection: "sections",
328
+ selector: { name: ".text" }
329
+ }
330
+ }
331
+ },
332
+ {
333
+ title: "Page native high-pcode operations from retained Evidence",
334
+ input: {
335
+ source: {
336
+ kind: "retained-evidence",
337
+ evidence_id: RETAINED_EXAMPLE_ID
338
+ },
339
+ view: {
340
+ kind: "native",
341
+ facet: "value_flow_operations",
342
+ offset: 0,
343
+ limit: 32
344
+ }
345
+ }
346
+ },
347
+ {
348
+ title: "Page module identities from retained application Evidence",
349
+ input: {
350
+ source: {
351
+ kind: "retained-evidence",
352
+ evidence_id: RETAINED_EXAMPLE_ID
353
+ },
354
+ view: {
355
+ kind: "page",
356
+ collection: "modules",
357
+ offset: 0,
358
+ limit: 32
359
+ }
360
+ }
361
+ }
362
+ ]
363
+ }];
364
+ })))();
365
+ }
366
+
367
+ //#endregion
368
+ //#region dist/contracts/native/binaryDiagnosticsToolContracts.js
369
+ var inspectBinaryLayoutRequestSchema, BINARY_DIAGNOSTICS_TOOL_CONTRACTS;
370
+ function init_binaryDiagnosticsToolContracts() {
371
+ return (init_binaryDiagnosticsToolContracts = __esmMin((() => {
372
+ init_recordedCrash();
373
+ init_binaryLayout();
374
+ init_analysisView();
375
+ init_analysisDetail();
376
+ init_toolEffects();
377
+ init_toolOutputSchemaPrimitives();
378
+ init_peResources();
379
+ inspectBinaryLayoutRequestSchema = inspectBinaryLayoutInputSchema.extend({ detail: analysisDetailSchema });
380
+ BINARY_DIAGNOSTICS_TOOL_CONTRACTS = [
381
+ {
382
+ name: "inspect_pe_resources",
383
+ ...toolContractMetadata("inspect_pe_resources"),
384
+ kind: "native-provider",
385
+ description: "Inspect one explicit local PE32/PE32+ image's complete bounded type/name/language resource tree without executing it or opening a disassembler. Returns numeric IDs versus original UTF-16 names, directory/data-entry file locations, payload RVA/file ranges, complete SHA-256 hashes and static RT_GROUP_ICON image-resource candidates. Language fallback, image decoding and actual shell/window loading remain unobserved. Reads a stable regular file; malformed or ambiguous mappings, non-identical overlapping ranges and exhausted budgets return no partial success. Portable on supported Node hosts; no Windows SDK or engine installation required.",
386
+ inputSchema: inspectPeResourcesInputSchema,
387
+ outputSchema: evidenceResultOf(peResourcesSchema),
388
+ examples: [{
389
+ title: "Inspect PE resource identities and icon relationships",
390
+ input: { path: "/artifacts/application.exe" }
391
+ }]
392
+ },
393
+ {
394
+ name: "inspect_binary_layout",
395
+ ...toolContractMetadata("inspect_binary_layout"),
396
+ kind: "native-provider",
397
+ 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. Select detail summary to retain the complete layout Evidence in this session and receive only its summary view, then inspect sections, symbols, mitigations or linkage with inspect_analysis_view.",
398
+ inputSchema: inspectBinaryLayoutRequestSchema,
399
+ outputSchema: analysisDetailOutputSchemaOf(binaryLayoutSchema, binaryLayoutSummaryViewResultSchema),
400
+ examples: [{
401
+ title: "Inspect ELF linked and file layout",
402
+ input: { path: "/artifacts/application.elf" }
403
+ }, {
404
+ title: "Retain the complete layout and return its summary view",
405
+ input: {
406
+ path: "/artifacts/application.elf",
407
+ detail: "summary"
408
+ }
409
+ }]
410
+ },
411
+ {
412
+ name: "inspect_recorded_crash",
413
+ ...toolContractMetadata("inspect_recorded_crash"),
414
+ kind: "native-provider",
415
+ description: "Inspect a supplied Linux ELF64 amd64 or AArch64 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. Linux x64 host 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.",
416
+ inputSchema: inspectRecordedCrashInputSchema,
417
+ outputSchema: evidenceResultOf(recordedCrashSchema),
418
+ examples: [{
419
+ title: "Inspect recorded registers and signal evidence",
420
+ input: { path: "/artifacts/crash.core" }
421
+ }, {
422
+ title: "Add core-only debugger mapping candidates",
423
+ input: {
424
+ path: "/artifacts/crash.core",
425
+ include_debugger_context: true
426
+ }
427
+ }]
428
+ }
429
+ ];
430
+ })))();
431
+ }
432
+
433
+ //#endregion
434
+ //#region dist/contracts/firmware/firmwareToolContracts.js
435
+ var FIRMWARE_TOOL_CONTRACTS;
436
+ function init_firmwareToolContracts() {
437
+ return (init_firmwareToolContracts = __esmMin((() => {
438
+ init_firmwareAnalysis();
439
+ init_toolOutputSchemaPrimitives();
440
+ init_toolEffects();
441
+ FIRMWARE_TOOL_CONTRACTS = [{
442
+ name: "inspect_firmware_regions",
443
+ ...toolContractMetadata("inspect_firmware_regions"),
444
+ kind: "firmware-provider",
445
+ description: "Inspect signature candidates in a local firmware file with Binwalk 3.1.x (verified with 3.1.0). Returns offsets, reported lengths, descriptions and raw confidence values. Length validation and runtime addresses remain unknown. No extraction or target execution. Linux, caller-supplied tool and util-linux prlimit required; 128 MiB input limit, one worker and 120-second deadline.",
446
+ inputSchema: firmwareInputSchemas.inspect_firmware_regions,
447
+ outputSchema: evidenceResultOf(firmwareResultSchemas.inspect_firmware_regions),
448
+ examples: [{
449
+ title: "Inspect firmware regions",
450
+ input: { path: "/tmp/firmware.bin" }
451
+ }]
452
+ }, {
453
+ name: "extract_firmware",
454
+ ...toolContractMetadata("extract_firmware"),
455
+ kind: "firmware-provider",
456
+ description: "Extract caller-selected firmware bytes with Unblob 26.6.x (verified with 26.6.4) into an absent output directory. Returns verified child paths/digests, task derivations, unknown chunks, extraction diagnostics and explicit extraction_gaps rows naming unextracted regions, missing extractor dependencies and a continuation_id referencing shared extraction_continuations recovery instructions. Preserves the default sandbox; publishes regular files only. Linux, caller-supplied tool, format-specific extractors and util-linux prlimit required. No mounts or extracted-code execution. Select a returned native file with open_binary for Ghidra analysis; decompressed offsets are not original-file addresses.",
457
+ inputSchema: firmwareInputSchemas.extract_firmware,
458
+ outputSchema: evidenceResultOf(firmwareResultSchemas.extract_firmware),
459
+ examples: [{
460
+ title: "Extract selected firmware",
461
+ input: {
462
+ path: "/tmp/firmware.bin",
463
+ output_directory: "/tmp/firmware-output",
464
+ range: {
465
+ offset: 64,
466
+ length: 4096
467
+ }
468
+ }
469
+ }]
470
+ }];
471
+ })))();
472
+ }
473
+
474
+ //#endregion
475
+ //#region dist/contracts/android/androidToolContracts.js
476
+ var ANDROID_TOOL_CONTRACTS;
477
+ function init_androidToolContracts() {
478
+ return (init_androidToolContracts = __esmMin((() => {
479
+ init_androidAnalysis();
480
+ init_analysisView();
481
+ init_toolOutputSchemaPrimitives();
482
+ init_toolEffects();
483
+ ANDROID_TOOL_CONTRACTS = [
484
+ {
485
+ name: "inspect_android_package",
486
+ ...toolContractMetadata("inspect_android_package"),
487
+ description: "Inspect a local APK's package, SDK and permission declarations, decoded manifest and class/resource counts. Omitted or complete detail preserves the complete result. Select detail: \"summary\" for all declarations, engine identity and counts without decoded manifest text or duplicate raw calls; retains the complete source and returns a distinct linked inspect_analysis_view summary. Read the exact retained manifest with view kind android, facet manifest, offset and limit (UTF-16 code units), using normalized_result.parent_evidence_id. Does not execute the APK or verify signatures. Requires a caller-supplied JADX MCP JAR and JDK; uses one worker in an isolated temporary workspace.",
488
+ kind: "android-provider",
489
+ inputSchema: androidPackageInspectionInputSchema,
490
+ outputSchema: evidenceResultOf(z.union([androidResultSchemas.inspect_android_package, androidPackageSummaryViewResultSchema])),
491
+ examples: [{
492
+ title: "Inspect an APK",
493
+ input: { path: "/tmp/Example.apk" }
494
+ }, {
495
+ title: "Inspect APK declarations with retained manifest",
496
+ input: {
497
+ path: "/tmp/Example.apk",
498
+ detail: "summary"
499
+ }
500
+ }]
501
+ },
502
+ {
503
+ name: "search_android_classes",
504
+ ...toolContractMetadata("search_android_classes"),
505
+ description: "Search complete decompiler class-name rows in an explicit local APK by case-sensitive substring. Empty query inventories all rows. Repeated names remain repeated and appear in duplicate_names; the provider accepts only class names for lookup, so these rows do not identify which same-name class node a later lookup selects. Retains artifact and engine identity; no APK execution.",
506
+ kind: "android-provider",
507
+ inputSchema: androidInputSchemas.search_android_classes,
508
+ outputSchema: evidenceResultOf(androidResultSchemas.search_android_classes),
509
+ examples: [{
510
+ title: "Find activity classes",
511
+ input: {
512
+ path: "/tmp/Example.apk",
513
+ query: "Activity"
514
+ }
515
+ }]
516
+ },
517
+ {
518
+ name: "inspect_android_class",
519
+ ...toolContractMetadata("inspect_android_class"),
520
+ description: "Inspect one exact Android class's parsed methods, fields and inner classes, including synthetic members. Returns display signatures and exact DEX prototypes without generating source. A prototype is not a complete raw method ID; overload indices remain consistent within the artifact and engine session.",
521
+ kind: "android-provider",
522
+ inputSchema: androidInputSchemas.inspect_android_class,
523
+ outputSchema: evidenceResultOf(androidResultSchemas.inspect_android_class),
524
+ examples: [{
525
+ title: "Inspect a class",
526
+ input: {
527
+ path: "/tmp/Example.apk",
528
+ class_name: "example.MainActivity"
529
+ }
530
+ }]
531
+ },
532
+ {
533
+ name: "inspect_android_method",
534
+ ...toolContractMetadata("inspect_android_method"),
535
+ description: "Decompile one Android method with smali fallback. Requires explicit overload_index when multiple methods share a name. Reports its DEX prototype, representation, fallback markers and source truncation; display signatures may be aliases.",
536
+ kind: "android-provider",
537
+ inputSchema: androidInputSchemas.inspect_android_method,
538
+ outputSchema: evidenceResultOf(androidResultSchemas.inspect_android_method),
539
+ examples: [{
540
+ title: "Decompile a method",
541
+ input: {
542
+ path: "/tmp/Example.apk",
543
+ class_name: "example.MainActivity",
544
+ method_name: "onCreate"
545
+ }
546
+ }]
547
+ },
548
+ {
549
+ name: "trace_android_references",
550
+ ...toolContractMetadata("trace_android_references"),
551
+ description: "Trace incoming static using nodes to an exact Android class or selected method overload. The total counts containing nodes, not individual invoke instructions. Use inspect_android_class to choose an overload_index when names collide. Source lines and the containing node dex_offset remain unknown. direct_invokes carries exact DEX code-unit instruction offsets when available; direct_invokes_exhaustive false marks byte-bounded partial instruction evidence, and null means coverage is unknown. Using-node coverage remains separate; no runtime calls are inferred.",
552
+ kind: "android-provider",
553
+ inputSchema: androidInputSchemas.trace_android_references,
554
+ outputSchema: evidenceResultOf(androidResultSchemas.trace_android_references),
555
+ examples: [{
556
+ title: "Find references to a class",
557
+ input: {
558
+ path: "/tmp/Example.apk",
559
+ class_name: "example.MainActivity"
560
+ }
561
+ }]
562
+ }
563
+ ];
564
+ })))();
565
+ }
566
+
567
+ //#endregion
568
+ //#region dist/contracts/apktool/apktoolToolContracts.js
569
+ var APKTOOL_TOOL_CONTRACTS;
570
+ function init_apktoolToolContracts() {
571
+ return (init_apktoolToolContracts = __esmMin((() => {
572
+ init_apktoolResourceAnalysis();
573
+ init_toolOutputSchemaPrimitives();
574
+ init_toolEffects();
575
+ APKTOOL_TOOL_CONTRACTS = [{
576
+ name: "inspect_apktool_client",
577
+ ...toolContractMetadata("inspect_apktool_client"),
578
+ description: "Inspect the caller-selected apktool launcher: resolved command, selection source, and version. Decodes nothing. REA never installs Apktool or Java; select a launcher with REA_APKTOOL_COMMAND (absolute) or apktool on PATH.",
579
+ kind: "apktool-provider",
580
+ inputSchema: apktoolInputSchemas.inspect_apktool_client,
581
+ outputSchema: evidenceResultOf(apktoolResultSchemas.inspect_apktool_client),
582
+ examples: [{
583
+ title: "Check the Apktool launcher",
584
+ input: {}
585
+ }]
586
+ }, {
587
+ name: "decode_android_resources",
588
+ ...toolContractMetadata("decode_android_resources"),
589
+ description: "Decode one local APK's resources with `apktool d --no-src` in a provider-owned workspace that is removed after projection: the readable AndroidManifest.xml, apktool.yml version and SDK facts, the app's string resources (default or one locale, bounded to 2000 entries), available string locales, and the decoded file count. The target APK is digest with SHA-256 before decoding; smali is skipped because Java-source recovery belongs to the JADX family.",
590
+ kind: "apktool-provider",
591
+ inputSchema: apktoolInputSchemas.decode_android_resources,
592
+ outputSchema: evidenceResultOf(apktoolResultSchemas.decode_android_resources),
593
+ examples: [{
594
+ title: "Decode an APK's resources",
595
+ input: { path: "/targets/Example.apk" }
596
+ }, {
597
+ title: "Decode one locale's strings",
598
+ input: {
599
+ path: "/targets/Example.apk",
600
+ locale: "de"
601
+ }
602
+ }]
603
+ }];
604
+ })))();
605
+ }
606
+
607
+ //#endregion
608
+ //#region dist/contracts/pcap/pcapToolContracts.js
609
+ var PCAP_TOOL_CONTRACTS;
610
+ function init_pcapToolContracts() {
611
+ return (init_pcapToolContracts = __esmMin((() => {
612
+ init_pcapAnalysis();
613
+ init_toolOutputSchemaPrimitives();
614
+ init_toolEffects();
615
+ init_analysisDetail();
616
+ init_analysisView();
617
+ PCAP_TOOL_CONTRACTS = [{
618
+ name: "inspect_pcap_client",
619
+ ...toolContractMetadata("inspect_pcap_client"),
620
+ description: "Inspect the caller-selected tshark and capinfos binaries: selected commands, selection sources, and versions. Both tools must be usable. Reads no capture file. REA never installs the Wireshark suite; select binaries with REA_TSHARK_COMMAND and REA_CAPINFOS_COMMAND (absolute) or from PATH.",
621
+ kind: "pcap-provider",
622
+ inputSchema: pcapInputSchemas.inspect_pcap_client,
623
+ outputSchema: evidenceResultOf(pcapResultSchemas.inspect_pcap_client),
624
+ examples: [{
625
+ title: "Check the analysis tools",
626
+ input: {}
627
+ }]
628
+ }, {
629
+ name: "inspect_pcap_capture",
630
+ ...toolContractMetadata("inspect_pcap_capture"),
631
+ description: "Request detail summary for capture identity/counts, then page retained facts with inspect_analysis_view kind pcap. Default detail complete preserves inline delivery. Inspect one saved pcap or pcapng capture through an owned snapshot: metadata, exact packet count, SHA-256, IPv4/IPv6 address counts, DNS questions and address values from the same single-question response, TLS SNI, protocol distribution and HTTP URIs. All derived inventories are retained within declared resource budgets; unknown DNS attribution and excluded credentials remain explicit. Linux requires util-linux prlimit; Windows uses owned Job Objects. Requires caller-supplied capinfos and tshark; REA never captures traffic.",
632
+ kind: "pcap-provider",
633
+ inputSchema: pcapInputSchemas.inspect_pcap_capture.extend({ detail: analysisDetailSchema }),
634
+ outputSchema: analysisDetailOutputSchemaOf(pcapResultSchemas.inspect_pcap_capture, pcapCaptureSummaryViewResultSchema),
635
+ examples: [{
636
+ title: "Inspect a capture file",
637
+ input: { path: "/captures/session.pcap" }
638
+ }]
639
+ }];
640
+ })))();
641
+ }
642
+
643
+ //#endregion
644
+ //#region dist/contracts/flutter/flutterToolContracts.js
645
+ var FLUTTER_TOOL_CONTRACTS;
646
+ function init_flutterToolContracts() {
647
+ return (init_flutterToolContracts = __esmMin((() => {
648
+ init_flutterBuildAnalysis();
649
+ init_analysisView();
650
+ init_toolOutputSchemaPrimitives();
651
+ init_toolEffects();
652
+ FLUTTER_TOOL_CONTRACTS = [{
653
+ name: "identify_flutter_build",
654
+ ...toolContractMetadata("identify_flutter_build"),
655
+ description: "Identify a Flutter app's build facts by pure parsing: the Dart VM snapshot hash from every lib/<abi>/libapp.so AOT section (vm and isolate, cross-checked), per-ABI library digests, the engine library's GNU build-id, and any labeled Dart version or toolchain strings libflutter.so carries. The snapshot hash is the artifact that maps to a Dart SDK release through an external dataset; REA performs no lookup. No engine, no execution, no external tools.",
656
+ kind: "flutter-provider",
657
+ inputSchema: flutterInputSchemas.identify_flutter_build,
658
+ outputSchema: evidenceResultOf(flutterResultSchemas.identify_flutter_build),
659
+ examples: [{
660
+ title: "Identify a Flutter build",
661
+ input: { path: "/targets/Example.apk" }
662
+ }]
663
+ }, {
664
+ name: "inspect_dart_aot",
665
+ ...toolContractMetadata("inspect_dart_aot"),
666
+ description: "Inspect one ABI's Dart AOT snapshot inside an APK: the four snapshot symbols located through the ELF dynamic symbol table with their offsets, sizes, and section headers (magic, kind, length), the snapshot hash, and a bounded string-pool projection from the isolate data section (package: source URIs, dart: SDK URIs, identifier-like tokens) exposing the app's dependency structure. String-pool entries are byte-pattern observations, not deserialized cluster semantics; typed class and function recovery needs an SDK-specific parser. Omitted or complete detail returns the full observation. Select detail: \"summary\" for target/ABI/library identity, all snapshot headers, coverage and original lower-bound counts without string lists. The complete source stays retained; read returned strings via inspect_analysis_view with parent_evidence_id and kind dart-aot, collection package_uris/dart_uris/class_like_tokens, offset and limit. Exhausting pages does not imply complete pool coverage. No engine, no execution.",
667
+ kind: "flutter-provider",
668
+ inputSchema: dartAotInspectionInputSchema,
669
+ outputSchema: evidenceResultOf(z.union([flutterResultSchemas.inspect_dart_aot, dartAotSummaryViewResultSchema])),
670
+ examples: [
671
+ {
672
+ title: "Inspect the preferred ABI's AOT snapshot",
673
+ input: { path: "/targets/Example.apk" }
674
+ },
675
+ {
676
+ title: "Inspect one ABI explicitly",
677
+ input: {
678
+ path: "/targets/Example.apk",
679
+ abi: "arm64-v8a"
680
+ }
681
+ },
682
+ {
683
+ title: "Inspect snapshot identity with retained string lists",
684
+ input: {
685
+ path: "/targets/Example.apk",
686
+ detail: "summary"
687
+ }
688
+ }
689
+ ]
690
+ }];
691
+ })))();
692
+ }
693
+
694
+ //#endregion
695
+ //#region dist/contracts/jeb/jebToolContracts.js
696
+ var JEB_TOOL_CONTRACTS;
697
+ function init_jebToolContracts() {
698
+ return (init_jebToolContracts = __esmMin((() => {
699
+ init_jebAnalysis();
700
+ init_toolOutputSchemaPrimitives();
701
+ init_toolEffects();
702
+ JEB_TOOL_CONTRACTS = [
703
+ {
704
+ name: "inspect_jeb_client",
705
+ ...toolContractMetadata("inspect_jeb_client"),
706
+ description: "Inspect the running JEB client serving MCP: engine version, GUI or headless mode, and startup time. Does not open a target. Requires a caller-started JEB client reachable at REA_JEB_MCP_URL (default http://127.0.0.1:8425/mcp); REA never installs or launches JEB.",
707
+ kind: "jeb-provider",
708
+ inputSchema: jebInputSchemas.inspect_jeb_client,
709
+ outputSchema: evidenceResultOf(jebResultSchemas.inspect_jeb_client),
710
+ examples: [{
711
+ title: "Check the engine",
712
+ input: {}
713
+ }]
714
+ },
715
+ {
716
+ name: "open_jeb_project",
717
+ ...toolContractMetadata("open_jeb_project"),
718
+ description: "Open or create a JEB project from an artifact file or existing .jdb2 database on the engine host. Returns the project's input-file digests and top-level units. The engine analyzes the target itself; REA does not read the file or execute it. Fails when a project is already open.",
719
+ kind: "jeb-provider",
720
+ inputSchema: jebInputSchemas.open_jeb_project,
721
+ outputSchema: evidenceResultOf(jebResultSchemas.open_jeb_project),
722
+ examples: [{
723
+ title: "Open a target for analysis",
724
+ input: { path: "/tmp/Example.apk" }
725
+ }]
726
+ },
727
+ {
728
+ name: "list_jeb_units",
729
+ ...toolContractMetadata("list_jeb_units"),
730
+ description: "List project units by stable unit path and type, with optional wildcard filter, parent restriction, and pagination. The engine caps pages at 100 units; a full page reports partial coverage because more units may exist. Read-only.",
731
+ kind: "jeb-provider",
732
+ inputSchema: jebInputSchemas.list_jeb_units,
733
+ outputSchema: evidenceResultOf(jebResultSchemas.list_jeb_units),
734
+ examples: [{
735
+ title: "List units",
736
+ input: {}
737
+ }, {
738
+ title: "Find DEX units",
739
+ input: { filter: "*.dex" }
740
+ }]
741
+ },
742
+ {
743
+ name: "decompile_jeb_item",
744
+ ...toolContractMetadata("decompile_jeb_item"),
745
+ description: "Decompile one type or method to engine pseudo-code using its decompiler (Dalvik, Java, or native). item_address comes from the engine's code item listing; unit_path defaults to the engine's first code unit and stays unknown when omitted. Read-only with respect to the target file.",
746
+ kind: "jeb-provider",
747
+ inputSchema: jebInputSchemas.decompile_jeb_item,
748
+ outputSchema: evidenceResultOf(jebResultSchemas.decompile_jeb_item),
749
+ examples: [{
750
+ title: "Decompile a method",
751
+ input: {
752
+ item_address: "Lcom/example/Main;->onCreate()V",
753
+ item_kind: "method"
754
+ }
755
+ }]
756
+ }
757
+ ];
758
+ })))();
759
+ }
760
+
761
+ //#endregion
762
+ //#region dist/contracts/adb/adbToolContracts.js
763
+ var ADB_TOOL_CONTRACTS;
764
+ function init_adbToolContracts() {
765
+ return (init_adbToolContracts = __esmMin((() => {
766
+ init_adbDeviceAnalysis();
767
+ init_toolOutputSchemaPrimitives();
768
+ init_toolEffects();
769
+ ADB_TOOL_CONTRACTS = [
770
+ {
771
+ name: "inspect_adb_client",
772
+ ...toolContractMetadata("inspect_adb_client"),
773
+ description: "Inspect the caller-selected adb client: resolved binary, version, and install path. Never contacts devices and never starts the adb server. REA never installs platform tools; select a binary with REA_ADB_PATH (absolute) or adb on PATH.",
774
+ kind: "adb-provider",
775
+ inputSchema: adbInputSchemas.inspect_adb_client,
776
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_client),
777
+ examples: [{
778
+ title: "Check the adb client",
779
+ input: {}
780
+ }]
781
+ },
782
+ {
783
+ name: "list_adb_devices",
784
+ ...toolContractMetadata("list_adb_devices"),
785
+ description: "List attached devices exactly as `adb devices -l` reports them: serial, state, transport, model metadata, and an inferred emulator/physical kind with its evidence basis. Emulators and USB or network devices appear alike; REA neither starts nor manages them. May start the local adb server on first use.",
786
+ kind: "adb-provider",
787
+ inputSchema: adbInputSchemas.list_adb_devices,
788
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_devices),
789
+ examples: [{
790
+ title: "List attached devices",
791
+ input: {}
792
+ }]
793
+ },
794
+ {
795
+ name: "inspect_adb_device",
796
+ ...toolContractMetadata("inspect_adb_device"),
797
+ description: "Inspect one device's build identity through a fixed `getprop` whitelist: Android and SDK versions, security patch, fingerprint, product identity, CPU ABIs, and debuggable flag, plus the observed emulator indicator ro.kernel.qemu. Read-only with respect to the device.",
798
+ kind: "adb-provider",
799
+ inputSchema: adbInputSchemas.inspect_adb_device,
800
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_device),
801
+ examples: [{
802
+ title: "Inspect one device",
803
+ input: { serial: "emulator-5554" }
804
+ }]
805
+ },
806
+ {
807
+ name: "list_adb_packages",
808
+ ...toolContractMetadata("list_adb_packages"),
809
+ description: "List installed packages on one device with each base APK's device path, optionally scoped to third-party or system packages. Paths are device filesystem paths, not host-local. Read-only.",
810
+ kind: "adb-provider",
811
+ inputSchema: adbInputSchemas.list_adb_packages,
812
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_packages),
813
+ examples: [{
814
+ title: "List third-party packages",
815
+ input: {
816
+ serial: "emulator-5554",
817
+ scope: "third_party"
818
+ }
819
+ }]
820
+ },
821
+ {
822
+ name: "pull_adb_package",
823
+ ...toolContractMetadata("pull_adb_package"),
824
+ description: "Pull one installed package's complete APK set (base plus every split, as `pm path` reports) from the device into a caller-selected output directory, creating a package-named subdirectory that must not already exist. Every pulled file is digested with SHA-256; partial pulls keep successful artifacts and per-file failure reasons. The device keeps the originals.",
825
+ kind: "adb-provider",
826
+ inputSchema: adbInputSchemas.pull_adb_package,
827
+ outputSchema: evidenceResultOf(adbResultSchemas.pull_adb_package),
828
+ examples: [{
829
+ title: "Pull a package APK set",
830
+ input: {
831
+ serial: "emulator-5554",
832
+ package: "com.example.app",
833
+ output_directory: "/tmp/rea-pulls"
834
+ }
835
+ }]
836
+ },
837
+ {
838
+ name: "read_adb_logcat",
839
+ ...toolContractMetadata("read_adb_logcat"),
840
+ description: "Read a bounded dump of the device log (`logcat -d -t`) for one buffer, optionally restricted to a process id. No streaming, no clearing; the newest lines are kept when the count cap trims. Read-only.",
841
+ kind: "adb-provider",
842
+ inputSchema: adbInputSchemas.read_adb_logcat,
843
+ outputSchema: evidenceResultOf(adbResultSchemas.read_adb_logcat),
844
+ examples: [{
845
+ title: "Read the last 200 main-buffer lines",
846
+ input: {
847
+ serial: "emulator-5554",
848
+ count: 200,
849
+ buffer: "main"
850
+ }
851
+ }]
852
+ },
853
+ {
854
+ name: "inspect_adb_package",
855
+ ...toolContractMetadata("inspect_adb_package"),
856
+ description: "Inspect one installed package through `dumpsys package`: version name/code, install and update times, installer, user id, flags, and the requested-permission count. A fixed projection of version-dependent output; unknown sections are ignored rather than guessed. Read-only.",
857
+ kind: "adb-provider",
858
+ inputSchema: adbInputSchemas.inspect_adb_package,
859
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_package),
860
+ examples: [{
861
+ title: "Inspect an installed package",
862
+ input: {
863
+ serial: "emulator-5554",
864
+ package: "com.example.app"
865
+ }
866
+ }]
867
+ },
868
+ {
869
+ name: "pull_adb_file",
870
+ ...toolContractMetadata("pull_adb_file"),
871
+ description: "Pull one absolute device path (a database, shared-preferences XML, or any readable file) into a caller-selected output directory, digesting it with SHA-256. The local copy must not already exist. Read-only with respect to the device.",
872
+ kind: "adb-provider",
873
+ inputSchema: adbInputSchemas.pull_adb_file,
874
+ outputSchema: evidenceResultOf(adbResultSchemas.pull_adb_file),
875
+ examples: [{
876
+ title: "Pull an app database",
877
+ input: {
878
+ serial: "emulator-5554",
879
+ device_path: "/data/data/com.example.app/databases/app.db",
880
+ output_directory: "/tmp/rea-pulls"
881
+ }
882
+ }]
883
+ },
884
+ {
885
+ name: "push_adb_file",
886
+ ...toolContractMetadata("push_adb_file"),
887
+ description: "Push one local file to an absolute device path. A device-mutating tool: checks for an existing device file before transfer and refuses it unless overwrite is explicitly requested; this check is not an atomic create and another process can create the path before adb writes. When the device provides sha256sum, the transfer is verified by comparing it with the local digest.",
888
+ kind: "adb-provider",
889
+ inputSchema: adbInputSchemas.push_adb_file,
890
+ outputSchema: evidenceResultOf(adbResultSchemas.push_adb_file),
891
+ examples: [{
892
+ title: "Push a script to tmp",
893
+ input: {
894
+ serial: "emulator-5554",
895
+ local_path: "/tmp/frida-server",
896
+ device_path: "/data/local/tmp/frida-server"
897
+ }
898
+ }]
899
+ },
900
+ {
901
+ name: "capture_adb_screen",
902
+ ...toolContractMetadata("capture_adb_screen"),
903
+ description: "Capture one frame of the device screen as a PNG (`screencap -p` through exec-out, no device-side file) into a caller-selected output directory, digesting it and reporting its dimensions. No recording or interaction.",
904
+ kind: "adb-provider",
905
+ inputSchema: adbInputSchemas.capture_adb_screen,
906
+ outputSchema: evidenceResultOf(adbResultSchemas.capture_adb_screen),
907
+ examples: [{
908
+ title: "Capture the current screen",
909
+ input: {
910
+ serial: "emulator-5554",
911
+ output_directory: "/tmp/rea-captures"
912
+ }
913
+ }]
914
+ },
915
+ {
916
+ name: "list_adb_processes",
917
+ ...toolContractMetadata("list_adb_processes"),
918
+ description: "List running processes exactly as `ps -A` reports them: user, pid, ppid, rss, state, and name. Useful for pairing with instrumentation lanes. Read-only.",
919
+ kind: "adb-provider",
920
+ inputSchema: adbInputSchemas.list_adb_processes,
921
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_processes),
922
+ examples: [{
923
+ title: "List processes",
924
+ input: { serial: "emulator-5554" }
925
+ }]
926
+ },
927
+ {
928
+ name: "list_adb_directory",
929
+ ...toolContractMetadata("list_adb_directory"),
930
+ description: "List the immediate children of one absolute device directory, including hidden entries: names, kinds, permissions, owner, group, sizes, dates, and symlink targets. Names and targets preserve embedded newlines. Recognizes the standard errors for absent paths and denied reads. Read-only.",
931
+ kind: "adb-provider",
932
+ inputSchema: adbInputSchemas.list_adb_directory,
933
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_directory),
934
+ examples: [{
935
+ title: "List an app's data directory",
936
+ input: {
937
+ serial: "emulator-5554",
938
+ device_path: "/data/data/com.example.app"
939
+ }
940
+ }]
941
+ },
942
+ {
943
+ name: "list_adb_features",
944
+ ...toolContractMetadata("list_adb_features"),
945
+ description: "List the device's declared hardware and software features (`pm list features`) for device fingerprinting. Read-only.",
946
+ kind: "adb-provider",
947
+ inputSchema: adbInputSchemas.list_adb_features,
948
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_features),
949
+ examples: [{
950
+ title: "List features",
951
+ input: { serial: "emulator-5554" }
952
+ }]
953
+ },
954
+ {
955
+ name: "list_adb_services",
956
+ ...toolContractMetadata("list_adb_services"),
957
+ description: "List the device's binder services with their interfaces (`service list`). Read-only.",
958
+ kind: "adb-provider",
959
+ inputSchema: adbInputSchemas.list_adb_services,
960
+ outputSchema: evidenceResultOf(adbResultSchemas.list_adb_services),
961
+ examples: [{
962
+ title: "List services",
963
+ input: { serial: "emulator-5554" }
964
+ }]
965
+ },
966
+ {
967
+ name: "inspect_adb_display",
968
+ ...toolContractMetadata("inspect_adb_display"),
969
+ description: "Report the display's physical and any overridden size (`wm size`) and density (`wm density`) as the device declares them. Read-only; setting values is not exposed.",
970
+ kind: "adb-provider",
971
+ inputSchema: adbInputSchemas.inspect_adb_display,
972
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_display),
973
+ examples: [{
974
+ title: "Inspect the display",
975
+ input: { serial: "emulator-5554" }
976
+ }]
977
+ },
978
+ {
979
+ name: "inspect_adb_window",
980
+ ...toolContractMetadata("inspect_adb_window"),
981
+ description: "Report the window manager's current focus declarations (mCurrentFocus and mFocusedApp from `dumpsys window windows`, or from `dumpsys window displays` when the windows section declares neither, as on Android 16) — what is on screen at read time without any interaction. Read-only.",
982
+ kind: "adb-provider",
983
+ inputSchema: adbInputSchemas.inspect_adb_window,
984
+ outputSchema: evidenceResultOf(adbResultSchemas.inspect_adb_window),
985
+ examples: [{
986
+ title: "Inspect window focus",
987
+ input: { serial: "emulator-5554" }
988
+ }]
989
+ },
990
+ {
991
+ name: "read_adb_setting",
992
+ ...toolContractMetadata("read_adb_setting"),
993
+ description: "Read one settings value (`settings get`) from the system, secure, or global namespace. Absent keys report the device's own null observation. Read-only; writing settings is not exposed.",
994
+ kind: "adb-provider",
995
+ inputSchema: adbInputSchemas.read_adb_setting,
996
+ outputSchema: evidenceResultOf(adbResultSchemas.read_adb_setting),
997
+ examples: [{
998
+ title: "Read the ADB-enabled setting",
999
+ input: {
1000
+ serial: "emulator-5554",
1001
+ namespace: "secure",
1002
+ key: "adb_enabled"
1003
+ }
1004
+ }]
1005
+ },
1006
+ {
1007
+ name: "collect_adb_bugreport",
1008
+ ...toolContractMetadata("collect_adb_bugreport"),
1009
+ description: "Collect one device-generated bugreport archive (`adb bugreport`) into a caller-selected output directory, digesting the zip. The archive contains the device's own dumpstate, dumpsys, and logcat report; collection can take minutes. Read-only with respect to configuration.",
1010
+ kind: "adb-provider",
1011
+ inputSchema: adbInputSchemas.collect_adb_bugreport,
1012
+ outputSchema: evidenceResultOf(adbResultSchemas.collect_adb_bugreport),
1013
+ examples: [{
1014
+ title: "Collect a bugreport",
1015
+ input: {
1016
+ serial: "emulator-5554",
1017
+ output_directory: "/tmp/rea-bugreports"
1018
+ }
1019
+ }]
1020
+ },
1021
+ {
1022
+ name: "resolve_adb_packages",
1023
+ ...toolContractMetadata("resolve_adb_packages"),
1024
+ description: "Find installed packages by case-insensitive substring of the package name (e.g. `whatsapp` → `com.whatsapp`), returning each match's base APK device path. The first step of an easy get: resolve, then pull_adb_package the exact name. Read-only.",
1025
+ kind: "adb-provider",
1026
+ inputSchema: adbInputSchemas.resolve_adb_packages,
1027
+ outputSchema: evidenceResultOf(adbResultSchemas.resolve_adb_packages),
1028
+ examples: [{
1029
+ title: "Find a package by partial name",
1030
+ input: {
1031
+ serial: "emulator-5554",
1032
+ query: "whatsapp"
1033
+ }
1034
+ }]
1035
+ },
1036
+ {
1037
+ name: "install_adb_package",
1038
+ ...toolContractMetadata("install_adb_package"),
1039
+ description: "Install one local APK on the device (`adb install [-r]`), recording the APK's host digest and byte size. A device-mutating tool: `replace_requested` records whether `-r` was selected; `replaced` is null because install success does not establish prior package state. The device's own Success/Failure verdict is preserved with its reason.",
1040
+ kind: "adb-provider",
1041
+ inputSchema: adbInputSchemas.install_adb_package,
1042
+ outputSchema: evidenceResultOf(adbResultSchemas.install_adb_package),
1043
+ examples: [{
1044
+ title: "Install an APK",
1045
+ input: {
1046
+ serial: "emulator-5554",
1047
+ apk_path: "/tmp/app.apk"
1048
+ }
1049
+ }, {
1050
+ title: "Request reinstall mode to keep existing app data",
1051
+ input: {
1052
+ serial: "emulator-5554",
1053
+ apk_path: "/tmp/app.apk",
1054
+ replace: true
1055
+ }
1056
+ }]
1057
+ },
1058
+ {
1059
+ name: "uninstall_adb_package",
1060
+ ...toolContractMetadata("uninstall_adb_package"),
1061
+ description: "Uninstall one package from the device (`adb uninstall`), removing its data for user 0. A device-mutating tool; absent packages report the device's own refusal reason.",
1062
+ kind: "adb-provider",
1063
+ inputSchema: adbInputSchemas.uninstall_adb_package,
1064
+ outputSchema: evidenceResultOf(adbResultSchemas.uninstall_adb_package),
1065
+ examples: [{
1066
+ title: "Uninstall a package",
1067
+ input: {
1068
+ serial: "emulator-5554",
1069
+ package: "com.example.app"
1070
+ }
1071
+ }]
1072
+ },
1073
+ {
1074
+ name: "start_adb_app",
1075
+ ...toolContractMetadata("start_adb_app"),
1076
+ description: "Start one installed app's resolved launcher activity with `am start -W -n`. A device-mutating tool for dynamic analysis. The full wait report determines success; failures retain launch-attempt facts and raw output. Pair with `read_adb_logcat` (pid filter) and `list_adb_processes` to observe the app, and `stop_adb_app` to end the run.",
1077
+ kind: "adb-provider",
1078
+ inputSchema: adbInputSchemas.start_adb_app,
1079
+ outputSchema: evidenceResultOf(adbResultSchemas.start_adb_app),
1080
+ examples: [{
1081
+ title: "Start an app",
1082
+ input: {
1083
+ serial: "emulator-5554",
1084
+ package: "com.example.app"
1085
+ }
1086
+ }]
1087
+ },
1088
+ {
1089
+ name: "start_adb_activity",
1090
+ ...toolContractMetadata("start_adb_activity"),
1091
+ description: "Start an intent with `am start -W`: one action, optional data URI, optional explicit component, and up to 16 typed extras (string, boolean, int, long, float). A device-mutating tool; the full wait report determines success, with failed-attempt facts and raw output retained.",
1092
+ kind: "adb-provider",
1093
+ inputSchema: adbInputSchemas.start_adb_activity,
1094
+ outputSchema: evidenceResultOf(adbResultSchemas.start_adb_activity),
1095
+ examples: [{
1096
+ title: "Open a deep link",
1097
+ input: {
1098
+ serial: "emulator-5554",
1099
+ action: "android.intent.action.VIEW",
1100
+ data_uri: "https://example.com/path"
1101
+ }
1102
+ }, {
1103
+ title: "Start with typed extras",
1104
+ input: {
1105
+ serial: "emulator-5554",
1106
+ action: "com.example.APP_ACTION",
1107
+ extras: [{
1108
+ key: "level",
1109
+ type: "int",
1110
+ value: "3"
1111
+ }]
1112
+ }
1113
+ }]
1114
+ },
1115
+ {
1116
+ name: "stop_adb_app",
1117
+ ...toolContractMetadata("stop_adb_app"),
1118
+ description: "Force-stop every process of one package (`am force-stop`), ending a dynamic-analysis run. A device-mutating tool; it succeeds whether or not the package had running processes.",
1119
+ kind: "adb-provider",
1120
+ inputSchema: adbInputSchemas.stop_adb_app,
1121
+ outputSchema: evidenceResultOf(adbResultSchemas.stop_adb_app),
1122
+ examples: [{
1123
+ title: "Stop an app",
1124
+ input: {
1125
+ serial: "emulator-5554",
1126
+ package: "com.example.app"
1127
+ }
1128
+ }]
1129
+ }
1130
+ ];
1131
+ })))();
1132
+ }
1133
+
1134
+ //#endregion
1135
+ //#region dist/contracts/managed/managedWorkflowExamples.js
1136
+ var MANAGED_STATIC_EXAMPLE_PROVIDER, NATIVE_EXAMPLE_PROVIDER, emptyManagedMembers, evidence, runtimeMembers, MANAGED_MEMBER_COMPARISON_EXAMPLE, runtimeExampleEvidence, MANAGED_APPLICATION_GRAPH_EXAMPLE, boundaryEvidence, nativeExportEvidence, coverage, MANAGED_RECONSTRUCTION_IMPORT_EXAMPLE, MANAGED_NATIVE_VERIFICATION_EXAMPLE;
1137
+ function init_managedWorkflowExamples() {
1138
+ return (init_managedWorkflowExamples = __esmMin((() => {
1139
+ init_evidence();
1140
+ MANAGED_STATIC_EXAMPLE_PROVIDER = {
1141
+ id: "rea-dotnet-static",
1142
+ name: "REA managed static analysis provider",
1143
+ version: "1"
1144
+ };
1145
+ NATIVE_EXAMPLE_PROVIDER = {
1146
+ id: "native-macos",
1147
+ name: "REA native macOS provider",
1148
+ version: "1"
1149
+ };
1150
+ emptyManagedMembers = (sha256, mvid) => ({
1151
+ artifact: {
1152
+ path: `/examples/${sha256.slice(0, 8)}.dll`,
1153
+ sha256,
1154
+ byte_length: 4096,
1155
+ format: "pe"
1156
+ },
1157
+ module: {
1158
+ name: "Example.dll",
1159
+ generation: 0,
1160
+ mvid,
1161
+ enc_id: null,
1162
+ enc_base_id: null,
1163
+ token: "0x00000001",
1164
+ row_offset: 0
1165
+ },
1166
+ metadata: {
1167
+ status: "complete",
1168
+ version: "v4.0.30319",
1169
+ table_row_counts: {}
1170
+ },
1171
+ identity_scope: {
1172
+ token_identity: "build-local",
1173
+ requires_artifact_sha256: sha256,
1174
+ requires_mvid: mvid
1175
+ },
1176
+ types: [],
1177
+ exported_types: [],
1178
+ fields: [],
1179
+ methods: [],
1180
+ member_refs: [],
1181
+ call_edges: [],
1182
+ field_accesses: [],
1183
+ user_strings: {
1184
+ state: "complete",
1185
+ literals: [],
1186
+ issues: []
1187
+ },
1188
+ selection: null,
1189
+ coverage: {
1190
+ state: "complete",
1191
+ issues: []
1192
+ },
1193
+ limitations: []
1194
+ });
1195
+ evidence = (result) => createEvidence(undefined, MANAGED_STATIC_EXAMPLE_PROVIDER, {
1196
+ operation: "inspect_managed_members",
1197
+ parameters: {},
1198
+ result,
1199
+ rawResult: null,
1200
+ limitations: result.limitations
1201
+ });
1202
+ runtimeMembers = () => {
1203
+ const result = emptyManagedMembers("2".repeat(64), "11112222-3333-4444-9555-666677778888");
1204
+ return {
1205
+ ...result,
1206
+ methods: [{
1207
+ token: "0x06000001",
1208
+ row_offset: 128,
1209
+ declaring_type_token: "0x02000001",
1210
+ declaring_type: "Example.Program",
1211
+ name: "Main",
1212
+ rva: 8192,
1213
+ impl_flags: 0,
1214
+ flags: 22,
1215
+ signature: {
1216
+ raw_length: 3,
1217
+ raw_sha256: "3".repeat(64),
1218
+ kind: "method",
1219
+ parse_status: "decoded",
1220
+ calling_convention: "default",
1221
+ generic_parameter_count: 0,
1222
+ parameter_count: 0,
1223
+ return_type: "void",
1224
+ parameter_types: [],
1225
+ field_type: null,
1226
+ issue: null
1227
+ },
1228
+ body: {
1229
+ status: "present",
1230
+ header_format: "tiny",
1231
+ rva: 8192,
1232
+ file_offset: 512,
1233
+ max_stack: 8,
1234
+ init_locals: false,
1235
+ local_var_sig_token: null,
1236
+ il_size: 1,
1237
+ il_sha256: "4".repeat(64),
1238
+ normalized_il_sha256: "5".repeat(64),
1239
+ instruction_count: 1,
1240
+ decoded_instruction_count: 1,
1241
+ truncated_instructions: 0,
1242
+ opcode_counts: { ret: 1 },
1243
+ anchors: [],
1244
+ exception_regions: [],
1245
+ issue: null
1246
+ }
1247
+ }]
1248
+ };
1249
+ };
1250
+ MANAGED_MEMBER_COMPARISON_EXAMPLE = {
1251
+ left: evidence(emptyManagedMembers("0".repeat(64), "00112233-4455-6677-8899-aabbccddeeff")),
1252
+ right: evidence(emptyManagedMembers("1".repeat(64), "ffeeddcc-bbaa-4988-9766-554433221100"))
1253
+ };
1254
+ runtimeExampleEvidence = evidence(runtimeMembers());
1255
+ MANAGED_APPLICATION_GRAPH_EXAMPLE = { managed_members: runtimeExampleEvidence };
1256
+ boundaryEvidence = () => {
1257
+ const result = {
1258
+ artifact: {
1259
+ path: "/examples/ManagedInterop.exe",
1260
+ sha256: "6".repeat(64),
1261
+ byte_length: 8192,
1262
+ format: "pe"
1263
+ },
1264
+ module: {
1265
+ name: "ManagedInterop.exe",
1266
+ generation: 0,
1267
+ mvid: "00112233-4455-4677-8899-aabbccddeeff",
1268
+ enc_id: null,
1269
+ enc_base_id: null,
1270
+ token: "0x00000001",
1271
+ row_offset: 0
1272
+ },
1273
+ metadata: {
1274
+ status: "complete",
1275
+ version: "v4.0.30319",
1276
+ table_row_counts: {}
1277
+ },
1278
+ identity_scope: {
1279
+ token_identity: "build-local",
1280
+ requires_artifact_sha256: "6".repeat(64),
1281
+ requires_mvid: "00112233-4455-4677-8899-aabbccddeeff"
1282
+ },
1283
+ cli_native: {
1284
+ il_only: true,
1285
+ requires_32bit: false,
1286
+ strong_name_signed: false,
1287
+ native_entry_point: false,
1288
+ ready_to_run_signature: false,
1289
+ managed_native_header_rva: 0,
1290
+ managed_native_header_size: 0
1291
+ },
1292
+ module_refs: [{
1293
+ token: "0x1a000001",
1294
+ row_offset: 256,
1295
+ name: "nativehelper.dll"
1296
+ }],
1297
+ pinvoke_imports: [{
1298
+ token: "0x1c000001",
1299
+ row_offset: 288,
1300
+ mapping_flags: 0,
1301
+ mapping_flags_hex: "0x0000",
1302
+ member_token: "0x06000001",
1303
+ member_kind: "method",
1304
+ member_name: "OpenNative",
1305
+ import_name: "open_native",
1306
+ import_scope_token: "0x1a000001",
1307
+ import_scope_name: "nativehelper.dll",
1308
+ no_mangle: true,
1309
+ char_set: "not-specified",
1310
+ call_convention: "cdecl",
1311
+ supports_last_error: false,
1312
+ best_fit: "assembly-default",
1313
+ throw_on_unmappable_char: "assembly-default",
1314
+ verification: "managed-declaration-only"
1315
+ }],
1316
+ native_implementations: [],
1317
+ summary: {
1318
+ module_ref_count: 1,
1319
+ pinvoke_import_count: 1,
1320
+ native_implementation_count: 0,
1321
+ ready_to_run: false,
1322
+ mixed_mode_or_native_header: false
1323
+ },
1324
+ coverage: {
1325
+ state: "complete",
1326
+ issues: []
1327
+ },
1328
+ limitations: []
1329
+ };
1330
+ return createEvidence(undefined, MANAGED_STATIC_EXAMPLE_PROVIDER, {
1331
+ operation: "inspect_managed_native_boundaries",
1332
+ parameters: {},
1333
+ result,
1334
+ rawResult: null,
1335
+ limitations: result.limitations
1336
+ });
1337
+ };
1338
+ nativeExportEvidence = () => {
1339
+ const result = {
1340
+ format: "mach-o",
1341
+ selected_architecture: {
1342
+ name: "x86_64",
1343
+ container_file_offset: null
1344
+ },
1345
+ endian: "little",
1346
+ word_size: 64,
1347
+ file_type: "dylib",
1348
+ flags: [],
1349
+ uuid: null,
1350
+ entrypoints: coverage([]),
1351
+ architectures: coverage([]),
1352
+ build_metadata: coverage([]),
1353
+ load_commands: coverage([]),
1354
+ dependencies: coverage([]),
1355
+ imports: coverage([]),
1356
+ exports: coverage([{
1357
+ name: "open_native",
1358
+ address: "0x1000",
1359
+ weak: false,
1360
+ reexport: false,
1361
+ source: "nm"
1362
+ }]),
1363
+ segments: coverage([]),
1364
+ provenance: [],
1365
+ limitations: ["Selected Mach-O slice container offset is unknown in this synthetic example."]
1366
+ };
1367
+ return createEvidence({
1368
+ path: "/examples/nativehelper.dll",
1369
+ sha256: "7".repeat(64),
1370
+ format: "mach-o",
1371
+ architecture: "x86_64"
1372
+ }, NATIVE_EXAMPLE_PROVIDER, {
1373
+ operation: "inspect_macho",
1374
+ parameters: {},
1375
+ result,
1376
+ rawResult: null,
1377
+ limitations: result.limitations
1378
+ });
1379
+ };
1380
+ coverage = (items) => ({
1381
+ items: [...items],
1382
+ total: items.length,
1383
+ exhaustive: true,
1384
+ limitations: []
1385
+ });
1386
+ MANAGED_RECONSTRUCTION_IMPORT_EXAMPLE = {
1387
+ static_members: runtimeExampleEvidence,
1388
+ decompiler: {
1389
+ name: "ilspycmd",
1390
+ version: "9.1.0.7988",
1391
+ family: "ilspy",
1392
+ executable_sha256: null,
1393
+ options: [
1394
+ "--disable-updatecheck",
1395
+ "--type",
1396
+ "Example.Program"
1397
+ ]
1398
+ },
1399
+ methods: [{
1400
+ token: "0x06000001",
1401
+ signature_sha256: "3".repeat(64),
1402
+ normalized_il_sha256: "5".repeat(64),
1403
+ reconstruction: {
1404
+ kind: "decompiled-csharp",
1405
+ language: "csharp",
1406
+ text: "internal static void Main() { }",
1407
+ source_path: "/examples/Example.Program.cs",
1408
+ start_line: 1,
1409
+ end_line: 1
1410
+ }
1411
+ }],
1412
+ notes: ["Synthetic example only; decompiler output is imported as inference."]
1413
+ };
1414
+ MANAGED_NATIVE_VERIFICATION_EXAMPLE = {
1415
+ managed_boundaries: boundaryEvidence(),
1416
+ native_observations: [nativeExportEvidence()]
1417
+ };
1418
+ })))();
1419
+ }
1420
+
1421
+ //#endregion
1422
+ //#region dist/contracts/managed/managedWorkflowToolContracts.js
1423
+ var compareManagedMembersReferenceInputSchema, managedReconstructionReferenceInputSchema, managedApplicationGraphReferenceFacts, managedApplicationGraphReferenceShape, managedApplicationGraphReferenceInputSchema, comparisonOutputSchema$1, reconstructionOutputSchema, nativeVerificationOutputSchema, managedApplicationGraphOutputSchema, MANAGED_WORKFLOW_TOOL_CONTRACTS;
1424
+ function init_managedWorkflowToolContracts() {
1425
+ return (init_managedWorkflowToolContracts = __esmMin((() => {
1426
+ init_evidence();
1427
+ init_managedNativeVerificationSchemas();
1428
+ init_managedReconstruction();
1429
+ init_toolOutputSchemaGroups();
1430
+ init_managedWorkflowExamples();
1431
+ init_toolEffects();
1432
+ init_toolOutputSchemaPrimitives();
1433
+ compareManagedMembersReferenceInputSchema = z.strictObject({
1434
+ left: evidenceSchema,
1435
+ right: evidenceSchema
1436
+ }).superRefine((input, context) => {
1437
+ if (input.left.evidence_id === input.right.evidence_id) context.addIssue({
1438
+ code: "custom",
1439
+ path: ["right"],
1440
+ message: "Managed member Evidence must be distinct"
1441
+ });
1442
+ });
1443
+ managedReconstructionReferenceInputSchema = managedReconstructionImportInputSchema.extend({ static_members: evidenceSchema });
1444
+ managedApplicationGraphReferenceFacts = {};
1445
+ managedApplicationGraphReferenceShape = z.strictObject({
1446
+ ...managedApplicationGraphReferenceFacts,
1447
+ managed_artifact: evidenceSchema.optional(),
1448
+ managed_members: evidenceSchema.optional(),
1449
+ managed_native_boundaries: evidenceSchema.optional()
1450
+ });
1451
+ managedApplicationGraphReferenceInputSchema = z.union([
1452
+ managedApplicationGraphReferenceShape.extend({ managed_artifact: evidenceSchema }),
1453
+ managedApplicationGraphReferenceShape.extend({ managed_members: evidenceSchema }),
1454
+ managedApplicationGraphReferenceShape.extend({ managed_native_boundaries: evidenceSchema })
1455
+ ]).superRefine((input, context) => {
1456
+ const ids = [
1457
+ input.managed_artifact?.evidence_id,
1458
+ input.managed_members?.evidence_id,
1459
+ input.managed_native_boundaries?.evidence_id
1460
+ ].filter((id) => id !== undefined);
1461
+ if (ids.length === 0) context.addIssue({
1462
+ code: "custom",
1463
+ message: "Provide at least one managed Evidence source"
1464
+ });
1465
+ if (new Set(ids).size !== ids.length) context.addIssue({
1466
+ code: "custom",
1467
+ message: "Managed application graph Evidence IDs must be unique"
1468
+ });
1469
+ });
1470
+ comparisonOutputSchema$1 = requireOutputSchema(managedWorkflowOutputSchemas, "compare_managed_members");
1471
+ reconstructionOutputSchema = requireOutputSchema(managedWorkflowOutputSchemas, "import_managed_reconstruction");
1472
+ nativeVerificationOutputSchema = requireOutputSchema(managedWorkflowOutputSchemas, "verify_managed_native_boundaries");
1473
+ managedApplicationGraphOutputSchema = requireOutputSchema(managedWorkflowOutputSchemas, "project_managed_application_graph");
1474
+ MANAGED_WORKFLOW_TOOL_CONTRACTS = [
1475
+ {
1476
+ name: "compare_managed_members",
1477
+ ...toolContractMetadata("compare_managed_members"),
1478
+ description: "Compare two authenticated inspect_managed_members Evidence records using unique-only tiers: exact declared type, name, and CIL/signature; exact declared type, name, and raw signature (decoded or not); exact declared type, name, and decoded structural method shape; then exact CIL/signature or decoded structural method shape alone, which never takes a member whose own declared type and name remain unpaired on the other side or whose declaring type is unresolved. Names alone are never a matching basis; a member whose signature was not decoded, or whose same-named counterpart's was not, stays unknown rather than added or removed. Metadata tokens remain build-local coordinates bound to each artifact SHA-256 and MVID, and the tuple digest does not itself remap them.",
1479
+ kind: "application",
1480
+ inputSchema: compareManagedMembersReferenceInputSchema,
1481
+ outputSchema: comparisonOutputSchema$1,
1482
+ examples: [{
1483
+ title: "Compare two managed member observations",
1484
+ input: {
1485
+ left: MANAGED_MEMBER_COMPARISON_EXAMPLE.left,
1486
+ right: MANAGED_MEMBER_COMPARISON_EXAMPLE.right
1487
+ }
1488
+ }]
1489
+ },
1490
+ {
1491
+ name: "verify_managed_native_boundaries",
1492
+ ...toolContractMetadata("verify_managed_native_boundaries"),
1493
+ description: "Verify managed P/Invoke/native-boundary declarations against authenticated native export or function Evidence without executing managed code or translating managed metadata tokens into native addresses. The workflow preserves declaration-only, verified, inferred, contradicted, and unresolved states; a name candidate with missing managed or native module identity remains unresolved with its candidate evidence retained.",
1494
+ kind: "application",
1495
+ inputSchema: managedNativeVerificationInputSchema,
1496
+ outputSchema: nativeVerificationOutputSchema,
1497
+ examples: [{
1498
+ title: "Verify a managed P/Invoke declaration against native Evidence",
1499
+ input: {
1500
+ managed_boundaries: MANAGED_NATIVE_VERIFICATION_EXAMPLE.managed_boundaries,
1501
+ native_observations: MANAGED_NATIVE_VERIFICATION_EXAMPLE.native_observations
1502
+ }
1503
+ }]
1504
+ },
1505
+ {
1506
+ name: "import_managed_reconstruction",
1507
+ ...toolContractMetadata("import_managed_reconstruction"),
1508
+ description: "Import decompiler-produced managed reconstruction against authenticated inspect_managed_members Evidence. The workflow locks each method to artifact SHA-256, MVID, metadata token, signature hash, and the limited decoded-IL tuple hash, records the decompiler identity and options, and marks C# or pseudocode as analyst inference rather than canonical byte observation.",
1509
+ kind: "application",
1510
+ inputSchema: managedReconstructionReferenceInputSchema,
1511
+ outputSchema: reconstructionOutputSchema,
1512
+ examples: [{
1513
+ title: "Import a decompiler reconstruction for one managed method",
1514
+ input: {
1515
+ static_members: MANAGED_RECONSTRUCTION_IMPORT_EXAMPLE.static_members,
1516
+ decompiler: MANAGED_RECONSTRUCTION_IMPORT_EXAMPLE.decompiler,
1517
+ methods: MANAGED_RECONSTRUCTION_IMPORT_EXAMPLE.methods,
1518
+ notes: MANAGED_RECONSTRUCTION_IMPORT_EXAMPLE.notes
1519
+ }
1520
+ }]
1521
+ },
1522
+ {
1523
+ name: "project_managed_application_graph",
1524
+ ...toolContractMetadata("project_managed_application_graph"),
1525
+ description: "Project authenticated managed artifact, member, and native-boundary Evidence into the provider-neutral application graph without executing managed code, loading assemblies, or translating managed metadata tokens to native addresses. The graph preserves managed static observations as managed-specific nodes linked to source Evidence.",
1526
+ kind: "application",
1527
+ inputSchema: managedApplicationGraphReferenceInputSchema,
1528
+ outputSchema: managedApplicationGraphOutputSchema,
1529
+ examples: [{
1530
+ title: "Project static managed observations into an application graph",
1531
+ input: { managed_members: MANAGED_APPLICATION_GRAPH_EXAMPLE.managed_members }
1532
+ }]
1533
+ }
1534
+ ];
1535
+ })))();
1536
+ }
1537
+
1538
+ //#endregion
1539
+ //#region dist/contracts/browserScenarioToolContracts.js
1540
+ var example, BROWSER_SCENARIO_TOOL_CONTRACTS;
1541
+ function init_browserScenarioToolContracts() {
1542
+ return (init_browserScenarioToolContracts = __esmMin((() => {
1543
+ init_toolEffects();
1544
+ init_toolOutputSchemaPrimitives();
1545
+ init_browserScenario();
1546
+ init_browserScenarioCapture();
1547
+ example = {
1548
+ browser: {
1549
+ mode: "launch",
1550
+ executable_path: "/opt/chromium/chrome"
1551
+ },
1552
+ start_url: {
1553
+ url: "https://app.example.test/",
1554
+ query: []
1555
+ },
1556
+ actions: [{
1557
+ step_id: "settle",
1558
+ action: "wait_for_timeout",
1559
+ duration_ms: 250
1560
+ }]
1561
+ };
1562
+ BROWSER_SCENARIO_TOOL_CONTRACTS = [{
1563
+ name: "capture_browser_scenario",
1564
+ ...toolContractMetadata("capture_browser_scenario"),
1565
+ description: "Run a controlled browser scenario when passive observation cannot exercise the application. Launch the selected executable or connect to a loopback CDP target, provide a start URL and actions, and select storage or artifacts when needed. Environment, empty storage, and a URL-only final capture are defaults. capture.network selects request_body, response_body, and header_values independently; selected content is returned inline with transaction and event references, byte digests, and explicit unavailable states. Credentials and declared secrets are redacted. Agents can run their own local fixture servers to control application responses. Actions run until completion or cancellation unless timeout_ms is set. Results are returned inline.",
1566
+ kind: "browser-provider",
1567
+ inputSchema: browserScenarioInputSchema,
1568
+ outputSchema: evidenceResultOf(browserScenarioCaptureSchema),
1569
+ examples: [{
1570
+ title: "Capture a deterministic browser scenario",
1571
+ input: example
1572
+ }]
1573
+ }];
1574
+ })))();
1575
+ }
1576
+
1577
+ //#endregion
1578
+ //#region dist/contracts/browserToolContracts.js
1579
+ function exampleScreenshot() {
1580
+ return {
1581
+ sha256: "153cf6c9a526a63053a37b10234c2fd85df38887c2dc0a800d90abfa6631d01c",
1582
+ bytes: 70,
1583
+ media_type: "image/png",
1584
+ data_base64: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PzWvWQAAAABJRU5ErkJggg=="
1585
+ };
1586
+ }
1587
+ var listOutputSchema$1, inspectionOutputSchema$1, bundleOutputSchema, observationSessionOutputSchema, webMcpOutputSchema, captureDiffOutputSchema, screenshotOutputSchema, screenshotDiffOutputSchema, endpoint$2, origin, scenarioUrl, scenarioCompleteness, scenarioArtifacts, exampleScenarioCapture, BROWSER_TOOL_CONTRACTS;
1588
+ function init_browserToolContracts() {
1589
+ return (init_browserToolContracts = __esmMin((() => {
1590
+ init_browserObservation();
1591
+ init_browserObservationSchemas();
1592
+ init_webBundleAnalysis();
1593
+ init_browserSession();
1594
+ init_webMcpDiscovery();
1595
+ init_browserCaptureComparison();
1596
+ init_webScreenshot();
1597
+ init_toolEffects();
1598
+ init_toolOutputSchemaPrimitives();
1599
+ listOutputSchema$1 = evidenceResultOf(browserTargetListSchema);
1600
+ inspectionOutputSchema$1 = evidenceResultOf(webPageInspectionSchema);
1601
+ bundleOutputSchema = evidenceResultOf(webBundleAnalysisSchema);
1602
+ observationSessionOutputSchema = evidenceResultOf(webObservationSessionSchema);
1603
+ webMcpOutputSchema = evidenceResultOf(webMcpDiscoverySchema);
1604
+ captureDiffOutputSchema = evidenceResultOf(browserCaptureComparisonSchema);
1605
+ screenshotOutputSchema = evidenceResultOf(webScreenshotSchema);
1606
+ screenshotDiffOutputSchema = evidenceResultOf(webScreenshotDiffSchema);
1607
+ endpoint$2 = "http://127.0.0.1:9222";
1608
+ origin = "https://app.example.test";
1609
+ scenarioUrl = {
1610
+ url: `${origin}/`,
1611
+ origin,
1612
+ query_parameter_names: [],
1613
+ redacted: false
1614
+ };
1615
+ scenarioCompleteness = {
1616
+ status: "complete",
1617
+ equality_eligible: true,
1618
+ missing_sections: [],
1619
+ truncated_sections: []
1620
+ };
1621
+ scenarioArtifacts = {
1622
+ screenshot: { state: "not_requested" },
1623
+ dom: { state: "not_requested" },
1624
+ accessibility: { state: "not_requested" },
1625
+ url: { state: "not_requested" },
1626
+ history: { state: "not_requested" },
1627
+ storage: { state: "not_requested" }
1628
+ };
1629
+ exampleScenarioCapture = () => ({
1630
+ browser: {
1631
+ mode: "connect",
1632
+ process_ownership: "external",
1633
+ cleanup: "disconnected-external",
1634
+ product: "Chromium",
1635
+ version: "149"
1636
+ },
1637
+ scenario: {
1638
+ start_origin: origin,
1639
+ action_count: 1,
1640
+ secret_references: [],
1641
+ network_content: {
1642
+ request_body: false,
1643
+ response_body: false,
1644
+ header_values: false
1645
+ },
1646
+ event_families: []
1647
+ },
1648
+ duration_ms: 10,
1649
+ steps: [{
1650
+ step_index: 0,
1651
+ step_id: "scenario_start",
1652
+ action: "scenario_start",
1653
+ status: "completed",
1654
+ elapsed_ms: 0,
1655
+ before_url: scenarioUrl,
1656
+ after_url: scenarioUrl,
1657
+ error: null,
1658
+ event_sequence_start: 1,
1659
+ event_sequence_end: 0,
1660
+ artifacts: scenarioArtifacts,
1661
+ completeness: scenarioCompleteness
1662
+ }, {
1663
+ step_index: 1,
1664
+ step_id: "open-settings",
1665
+ action: "click",
1666
+ status: "completed",
1667
+ elapsed_ms: 10,
1668
+ before_url: scenarioUrl,
1669
+ after_url: scenarioUrl,
1670
+ error: null,
1671
+ event_sequence_start: 1,
1672
+ event_sequence_end: 0,
1673
+ artifacts: scenarioArtifacts,
1674
+ completeness: scenarioCompleteness
1675
+ }],
1676
+ events: {
1677
+ retained: 0,
1678
+ dropped: 0,
1679
+ items: []
1680
+ },
1681
+ completeness: scenarioCompleteness,
1682
+ limitations: []
1683
+ });
1684
+ BROWSER_TOOL_CONTRACTS = [
1685
+ {
1686
+ name: "list_browser_targets",
1687
+ ...toolContractMetadata("list_browser_targets"),
1688
+ description: "List page targets exposed by the selected loopback Chrome DevTools Protocol endpoint. Optionally filter by exact origin. URLs preserve query values and fragments; only URL userinfo credentials are removed.",
1689
+ kind: "browser-provider",
1690
+ inputSchema: listBrowserTargetsInputSchema,
1691
+ outputSchema: listOutputSchema$1,
1692
+ examples: [{
1693
+ title: "List browser page targets",
1694
+ input: { cdp_endpoint: endpoint$2 }
1695
+ }]
1696
+ },
1697
+ {
1698
+ name: "inspect_web_page",
1699
+ ...toolContractMetadata("inspect_web_page"),
1700
+ description: "Passively inspect one selected page target through CDP without evaluating JavaScript, navigating, clicking, closing, or mutating the page. If no origin filter is supplied, capture is scoped to the target's current origin. Returns DOM structure, accessibility, scripts, resources, attach-window network and console metadata, workers, and redacted storage inventory as Evidence.",
1701
+ kind: "browser-provider",
1702
+ inputSchema: inspectWebPageInputSchema,
1703
+ outputSchema: inspectionOutputSchema$1,
1704
+ examples: [{
1705
+ title: "Inspect one browser page",
1706
+ input: {
1707
+ cdp_endpoint: endpoint$2,
1708
+ target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS"
1709
+ }
1710
+ }]
1711
+ },
1712
+ {
1713
+ name: "analyze_web_bundle",
1714
+ ...toolContractMetadata("analyze_web_bundle"),
1715
+ description: "Capture JavaScript source from one selected CDP page and statically derive a chunk graph, route and endpoint candidates, vendor fingerprints, page-declared WebMCP metadata, and optionally fetch source maps from the selected target origin or explicitly requested origins. JavaScript is parsed but never executed.",
1716
+ kind: "browser-provider",
1717
+ inputSchema: analyzeWebBundleInputSchema,
1718
+ outputSchema: bundleOutputSchema,
1719
+ examples: [{
1720
+ title: "Analyze a page bundle",
1721
+ input: {
1722
+ cdp_endpoint: endpoint$2,
1723
+ target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS",
1724
+ observation_ms: 500,
1725
+ include_accessibility_text: false,
1726
+ include_script_sources: true,
1727
+ include_storage_keys: false,
1728
+ fetch_source_maps: false
1729
+ }
1730
+ }]
1731
+ },
1732
+ {
1733
+ name: "observe_web_session",
1734
+ ...toolContractMetadata("observe_web_session"),
1735
+ description: "Arm a CDP observation window of the requested duration while the user operates the page. By default it follows the selected target's current origin; an explicit origin list controls which origins may be retained. Records navigation, redirect, lifecycle, and failure events.",
1736
+ kind: "browser-provider",
1737
+ inputSchema: observeWebSessionInputSchema,
1738
+ outputSchema: observationSessionOutputSchema,
1739
+ examples: [{
1740
+ title: "Observe one external user action",
1741
+ input: {
1742
+ cdp_endpoint: endpoint$2,
1743
+ target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS",
1744
+ observation_ms: 1e4
1745
+ }
1746
+ }]
1747
+ },
1748
+ {
1749
+ name: "discover_webmcp_tools",
1750
+ ...toolContractMetadata("discover_webmcp_tools"),
1751
+ description: "Passively inventory every page-registered WebMCP tool and its complete structural input-schema summary using the experimental CDP WebMCP domain. Metadata is page-declared-untrusted; REA never registers or invokes discovered tools.",
1752
+ kind: "browser-provider",
1753
+ inputSchema: discoverWebMcpToolsInputSchema,
1754
+ outputSchema: webMcpOutputSchema,
1755
+ examples: [{
1756
+ title: "Discover current WebMCP declarations",
1757
+ input: {
1758
+ cdp_endpoint: endpoint$2,
1759
+ target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS",
1760
+ observation_ms: 100
1761
+ }
1762
+ }]
1763
+ },
1764
+ {
1765
+ name: "compare_web_captures",
1766
+ ...toolContractMetadata("compare_web_captures"),
1767
+ description: "Compare passive web captures by providing before and after, each with the complete inspect_web_page normalized_result in inspection and an optional complete discover_webmcp_tools normalized_result in webmcp; or compare recorded scenarios by passing complete capture_browser_scenario normalized_result objects in before_scenario and after_scenario with an optional normalization policy. Use exactly one input group. Network comparison includes observed HTTP requests and WebSocket frame streams; same-URL connections are compared as an unordered collection of ordered streams, retaining connection counts without claiming stable identity between individual connections. Scenario comparison aligns exact step IDs, records deterministic literal normalization, and returns every artifact-level difference plus alignment failures inline. Missing or truncated evidence never proves equality.",
1768
+ kind: "browser-provider",
1769
+ inputSchema: browserCaptureComparisonInputSchema,
1770
+ outputSchema: captureDiffOutputSchema,
1771
+ examples: [{
1772
+ title: "Compare two recorded browser scenarios",
1773
+ input: {
1774
+ before_scenario: exampleScenarioCapture(),
1775
+ after_scenario: exampleScenarioCapture(),
1776
+ normalization: { rules: [{
1777
+ rule_id: "volatile-build-id",
1778
+ artifacts: ["dom", "accessibility"],
1779
+ match: "build-123",
1780
+ replacement: "[BUILD_ID]"
1781
+ }] }
1782
+ }
1783
+ }]
1784
+ },
1785
+ {
1786
+ name: "capture_web_screenshot",
1787
+ ...toolContractMetadata("capture_web_screenshot"),
1788
+ description: "Capture the current visible viewport of one configured page as an inline, content-addressed PNG artifact. The operation never scrolls, navigates, or evaluates page JavaScript.",
1789
+ kind: "browser-provider",
1790
+ inputSchema: captureWebScreenshotInputSchema,
1791
+ outputSchema: screenshotOutputSchema,
1792
+ examples: [{
1793
+ title: "Capture a viewport",
1794
+ input: {
1795
+ cdp_endpoint: endpoint$2,
1796
+ target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS"
1797
+ }
1798
+ }]
1799
+ },
1800
+ {
1801
+ name: "compare_web_screenshots",
1802
+ ...toolContractMetadata("compare_web_screenshots"),
1803
+ description: "Compare two self-verifying PNG screenshot artifacts with local pixel metrics. Returns exact changed-pixel ratios and channel deltas without OCR or external services.",
1804
+ kind: "browser-provider",
1805
+ inputSchema: compareWebScreenshotsInputSchema,
1806
+ outputSchema: screenshotDiffOutputSchema,
1807
+ examples: [{
1808
+ title: "Compare two screenshot artifacts",
1809
+ input: {
1810
+ before: exampleScreenshot(),
1811
+ after: exampleScreenshot(),
1812
+ channel_threshold: 0
1813
+ }
1814
+ }]
1815
+ }
1816
+ ];
1817
+ })))();
1818
+ }
1819
+
1820
+ //#endregion
1821
+ //#region dist/contracts/browserProviderToolContracts.js
1822
+ var BROWSER_PROVIDER_TOOL_CONTRACTS;
1823
+ function init_browserProviderToolContracts() {
1824
+ return (init_browserProviderToolContracts = __esmMin((() => {
1825
+ init_browserScenarioToolContracts();
1826
+ init_browserToolContracts();
1827
+ BROWSER_PROVIDER_TOOL_CONTRACTS = [...BROWSER_TOOL_CONTRACTS, ...BROWSER_SCENARIO_TOOL_CONTRACTS];
1828
+ })))();
1829
+ }
1830
+
1831
+ //#endregion
1832
+ //#region dist/contracts/javascript/javascriptRuntimeReconciliationExample.js
1833
+ function browserCompleteness() {
1834
+ return {
1835
+ status: "complete_within_window",
1836
+ conditions: ["complete_within_window"],
1837
+ policy_filtered_sections: [],
1838
+ attach_limited_sections: [],
1839
+ truncated_sections: [],
1840
+ unavailable_sections: [],
1841
+ excluded: [],
1842
+ dropped_events: {
1843
+ scripts: 0,
1844
+ network_requests: 0,
1845
+ console_events: 0,
1846
+ websocket_connections: 0,
1847
+ websocket_frames: 0,
1848
+ webmcp_tools: 0,
1849
+ timeline_events: 0,
1850
+ total: 0
1851
+ }
1852
+ };
1853
+ }
1854
+ var applicationSha256, script, inputPath, scriptPath, completeCoverage, graphEvidence, asset, graph, evidenceContexts, semanticNode, semanticGraph, JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE, runtimeEvidence, JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE;
1855
+ function init_javascriptRuntimeReconciliationExample() {
1856
+ return (init_javascriptRuntimeReconciliationExample = __esmMin((() => {
1857
+ init_evidence();
1858
+ init_javascriptApplicationGraph();
1859
+ init_webContentArtifact();
1860
+ init_javascriptSemanticGraph();
1861
+ init_javascriptSemanticGraphSchemas();
1862
+ applicationSha256 = "1".repeat(64);
1863
+ script = createWebTextArtifact("export const example = true;\n", "text/javascript");
1864
+ inputPath = "/Applications/Example.app/Contents/Resources/app";
1865
+ scriptPath = `${inputPath}/renderer.js`;
1866
+ completeCoverage = {
1867
+ status: "complete",
1868
+ truncated: false,
1869
+ omitted_count: 0,
1870
+ limits: []
1871
+ };
1872
+ graphEvidence = {
1873
+ authority: "artifact-bytes",
1874
+ state: "observed",
1875
+ confidence: "exact",
1876
+ artifact: {
1877
+ available: true,
1878
+ artifact_id: `art_${script.sha256}`,
1879
+ sha256: script.sha256
1880
+ },
1881
+ location: {
1882
+ available: true,
1883
+ value: {
1884
+ kind: "artifact-path",
1885
+ path: "renderer.js"
1886
+ }
1887
+ },
1888
+ extractor: {
1889
+ name: "rea-javascript-application",
1890
+ version: "1",
1891
+ operation: "inventory-relevant-file",
1892
+ executable_sha256: null
1893
+ },
1894
+ coverage: completeCoverage,
1895
+ limitations: [],
1896
+ evidence_ids: []
1897
+ };
1898
+ asset = createJavaScriptApplicationNode({
1899
+ kind: "javascript-asset",
1900
+ identity: {
1901
+ strategy: "content-digest",
1902
+ stability: "global-exact",
1903
+ sha256: script.sha256
1904
+ },
1905
+ observations: [{
1906
+ label: "renderer.js",
1907
+ properties: {
1908
+ path: "renderer.js",
1909
+ bytes: script.bytes
1910
+ },
1911
+ evidence: graphEvidence
1912
+ }]
1913
+ });
1914
+ graph = createJavaScriptApplicationGraph({
1915
+ schema: "JavaScriptApplicationGraph",
1916
+ root_node_ids: [asset.node_id],
1917
+ nodes: [asset],
1918
+ edges: [],
1919
+ coverage: completeCoverage,
1920
+ limitations: []
1921
+ });
1922
+ evidenceContexts = new JavaScriptSemanticEvidenceContextRegistry();
1923
+ semanticNode = createJavaScriptSemanticGraphNode({
1924
+ kind: "module",
1925
+ identity: {
1926
+ artifact_sha256: applicationSha256,
1927
+ module_path: "renderer.js",
1928
+ source_range: null,
1929
+ role_key: "example-module"
1930
+ },
1931
+ function_node_id: null,
1932
+ application_node_ids: [asset.node_id],
1933
+ label: "renderer.js",
1934
+ properties: {},
1935
+ evidence: graphEvidence
1936
+ }, evidenceContexts);
1937
+ semanticGraph = createJavaScriptSemanticGraph({
1938
+ schema: "JavaScriptSemanticRelationGraph",
1939
+ root_artifact_sha256: applicationSha256,
1940
+ application_graph_id: graph.graph_id,
1941
+ root_node_ids: [semanticNode.node_id],
1942
+ evidence_contexts: evidenceContexts.contexts,
1943
+ nodes: [semanticNode],
1944
+ relations: [],
1945
+ fingerprints: [],
1946
+ unknowns: [],
1947
+ coverage: {
1948
+ status: "unknown",
1949
+ truncated: false,
1950
+ omitted_nodes: 0,
1951
+ omitted_relations: 0,
1952
+ limits: [],
1953
+ families: JAVASCRIPT_SEMANTIC_RELATION_FAMILIES.map((family) => ({
1954
+ family,
1955
+ status: "unknown",
1956
+ retained_relations: 0,
1957
+ omitted_relations: 0,
1958
+ unknown_ids: []
1959
+ }))
1960
+ },
1961
+ limitations: ["Semantic relations are unavailable in this minimal example."]
1962
+ });
1963
+ JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE = createEvidence({
1964
+ path: inputPath,
1965
+ sha256: applicationSha256,
1966
+ format: "directory"
1967
+ }, {
1968
+ id: "rea-javascript-application",
1969
+ name: "REA JavaScript application analyzer",
1970
+ version: "1"
1971
+ }, {
1972
+ predicateType: "rea.javascript-application-analysis",
1973
+ operation: "analyze_javascript_application",
1974
+ parameters: {},
1975
+ result: {
1976
+ input_path: inputPath,
1977
+ format: "directory",
1978
+ root_artifact_sha256: applicationSha256,
1979
+ inventory_manifest_id: `agm_${"2".repeat(64)}`,
1980
+ inventory_graph_sha256: "3".repeat(64),
1981
+ integrity_contradictions: [],
1982
+ graph,
1983
+ semantic_graph: semanticGraph,
1984
+ summary: {
1985
+ browser_windows: 0,
1986
+ explicit_web_preferences: 0,
1987
+ preload_entrypoints: 0,
1988
+ context_bridge_apis: 0,
1989
+ exposed_api_members: 0,
1990
+ ipc: {
1991
+ operations: 0,
1992
+ literal_channels: 0,
1993
+ dynamic_channel_operations: 0,
1994
+ renderer_transmissions: 0,
1995
+ renderer_listeners: 0,
1996
+ main_handlers: 0,
1997
+ paired_renderer_transmissions: 0,
1998
+ ambiguous_renderer_transmissions: 0,
1999
+ unpaired_literal_renderer_transmissions: 0
2000
+ },
2001
+ sender_validation_observations: 0,
2002
+ utility_processes: 0,
2003
+ resolved_utility_entrypoints: 0,
2004
+ native_addon_bindings: 0,
2005
+ resolved_native_addon_bindings: 0
2006
+ },
2007
+ statistics: {
2008
+ relevant_files: 1,
2009
+ nested_asar_containers: 0,
2010
+ text_bytes_read: script.bytes,
2011
+ invalid_utf8_files: 0,
2012
+ parsed_javascript_files: 1,
2013
+ visited_ast_nodes: 1,
2014
+ findings: 0,
2015
+ modules: 0,
2016
+ parse_failures: 0
2017
+ },
2018
+ limitations: []
2019
+ },
2020
+ confidence: "derived",
2021
+ authority: "shipped-artifact"
2022
+ });
2023
+ runtimeEvidence = createEvidence(undefined, {
2024
+ id: "rea-cdp-electron",
2025
+ name: "REA Electron file-page CDP observation provider",
2026
+ version: "1"
2027
+ }, {
2028
+ predicateType: "rea.electron-page-inspection",
2029
+ operation: "inspect_electron_page",
2030
+ parameters: {
2031
+ cdp_endpoint: "http://127.0.0.1:9223",
2032
+ target_id: "example-target",
2033
+ include_script_sources: true
2034
+ },
2035
+ result: {
2036
+ browser: {
2037
+ product: "Electron/example",
2038
+ protocol_version: "1.3",
2039
+ revision: "example",
2040
+ user_agent: "Electron example",
2041
+ js_version: "1"
2042
+ },
2043
+ target: {
2044
+ target_id: "example-target",
2045
+ type: "page",
2046
+ title: "Example",
2047
+ file_path: `${inputPath}/index.html`,
2048
+ attached: false
2049
+ },
2050
+ capture_window: {
2051
+ started_at: "2026-07-15T00:00:00.000Z",
2052
+ ended_at: "2026-07-15T00:00:00.100Z",
2053
+ observation_ms: 100
2054
+ },
2055
+ completeness: browserCompleteness(),
2056
+ frames: [],
2057
+ dom: {
2058
+ total_nodes: 0,
2059
+ nodes: []
2060
+ },
2061
+ scripts: {
2062
+ total: 1,
2063
+ items: [{
2064
+ script_key: `electron_script_${"4".repeat(64)}`,
2065
+ frame_id: null,
2066
+ file_path: scriptPath,
2067
+ cdp_hash: "example",
2068
+ length: script.bytes,
2069
+ is_module: true,
2070
+ language: "JavaScript",
2071
+ source: {
2072
+ included: true,
2073
+ artifact: script
2074
+ }
2075
+ }]
2076
+ },
2077
+ resources: [],
2078
+ workers: [],
2079
+ limitations: ["Example passive capture."]
2080
+ },
2081
+ confidence: "observed",
2082
+ authority: "external-service"
2083
+ });
2084
+ JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE = {
2085
+ static_layers: [{ analysis: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE }],
2086
+ runtime_observations: [runtimeEvidence]
2087
+ };
2088
+ })))();
2089
+ }
2090
+
2091
+ //#endregion
2092
+ //#region dist/contracts/javascript/electronToolContracts.js
2093
+ var listOutputSchema, inspectionOutputSchema, analyzeJavaScriptApplicationRequestSchema, applicationOutputSchema, reconciliationOutputSchema, endpoint$1, activeExample, ELECTRON_TOOL_CONTRACTS;
2094
+ function init_electronToolContracts() {
2095
+ return (init_electronToolContracts = __esmMin((() => {
2096
+ init_toolEffects();
2097
+ init_toolOutputSchemaGroups();
2098
+ init_toolOutputSchemaPrimitives();
2099
+ init_electronFuses();
2100
+ init_electronObservation();
2101
+ init_electronActiveObservation();
2102
+ init_analysisView();
2103
+ init_analysisDetail();
2104
+ init_javascriptApplicationAnalysis();
2105
+ init_javascriptRuntimeReconciliationSchemas();
2106
+ init_javascriptRuntimeReconciliationExample();
2107
+ listOutputSchema = evidenceResultOf(electronTargetListSchema);
2108
+ inspectionOutputSchema = evidenceResultOf(electronPageInspectionSchema);
2109
+ analyzeJavaScriptApplicationRequestSchema = analyzeJavaScriptApplicationInputSchema.extend({ detail: analysisDetailSchema });
2110
+ applicationOutputSchema = analysisDetailOutputSchemaOf(javascriptApplicationAnalysisResultSchema, javascriptApplicationSummaryViewResultSchema);
2111
+ reconciliationOutputSchema = evidenceResultOf(javascriptRuntimeReconciliationResultSchema);
2112
+ endpoint$1 = "http://127.0.0.1:9223";
2113
+ activeExample = {
2114
+ executable_path: "/Applications/Electron.app/Contents/MacOS/Electron",
2115
+ application_path: "/Applications/Example.app/Contents/Resources/main.js",
2116
+ args: [],
2117
+ actions: [{
2118
+ step_id: "exercise-ipc",
2119
+ kind: "click",
2120
+ selector: "#run"
2121
+ }]
2122
+ };
2123
+ ELECTRON_TOOL_CONTRACTS = [
2124
+ {
2125
+ name: "list_electron_targets",
2126
+ ...toolContractMetadata("list_electron_targets"),
2127
+ description: "List every Electron file:// page target from a selected loopback CDP endpoint. Local file paths are canonicalized after symlink resolution. Selecting an endpoint exposes every eligible target and its local path metadata.",
2128
+ kind: "electron-provider",
2129
+ inputSchema: listElectronTargetsInputSchema,
2130
+ outputSchema: listOutputSchema,
2131
+ examples: [{
2132
+ title: "List Electron file pages",
2133
+ input: { cdp_endpoint: endpoint$1 }
2134
+ }]
2135
+ },
2136
+ {
2137
+ name: "inspect_electron_page",
2138
+ ...toolContractMetadata("inspect_electron_page"),
2139
+ description: "Passively inspect one Electron file page by supplying its loopback CDP endpoint and target ID. The provider rechecks that the target currently exists at that endpoint and is a local file page. Returns frames, DOM structure, resource paths, and scripts without evaluating renderer JavaScript or invoking Electron APIs. The selected endpoint exposes every local file page and its metadata to this tool.",
2140
+ kind: "electron-provider",
2141
+ inputSchema: inspectElectronPageInputSchema,
2142
+ outputSchema: inspectionOutputSchema,
2143
+ examples: [{
2144
+ title: "Inspect an Electron page",
2145
+ input: {
2146
+ cdp_endpoint: endpoint$1,
2147
+ target_id: "TARGET_ID_FROM_LIST_ELECTRON_TARGETS"
2148
+ }
2149
+ }]
2150
+ },
2151
+ {
2152
+ name: "analyze_javascript_application",
2153
+ ...toolContractMetadata("analyze_javascript_application"),
2154
+ description: "Reconstruct one local ASAR or extracted JavaScript application as an inline application graph without executing it. Returns recovered graph nodes, edges, semantic relations, integrity contradictions, limitations, and coverage. Select source_paths to acquire and analyze only exact inventoried file paths; the complete artifact inventory and identity remain intact, and unselected sources remain explicit unknowns. Dependencies are not implicitly analyzed. Select detail summary to retain the complete analysis Evidence in this session and receive only its summary view, then inspect selected modules or pages with inspect_analysis_view. Summary detail reduces delivery, whereas source_paths bounds source analysis. Integrity mismatches fail by default; record-and-continue retains observed bytes as untrusted and marks graph coverage partial.",
2155
+ kind: "electron-provider",
2156
+ inputSchema: analyzeJavaScriptApplicationRequestSchema,
2157
+ outputSchema: applicationOutputSchema,
2158
+ examples: [
2159
+ {
2160
+ title: "Analyze one local JavaScript application",
2161
+ input: {
2162
+ input_path: "/Applications/Example.app/Contents/Resources/app.asar",
2163
+ format: "auto",
2164
+ integrity_policy: "fail"
2165
+ }
2166
+ },
2167
+ {
2168
+ title: "Analyze selected entry sources before unrelated vendor files",
2169
+ input: {
2170
+ input_path: "/Applications/Example.app/Contents/Resources/app.asar",
2171
+ source_paths: [
2172
+ "package.json",
2173
+ "main.js",
2174
+ "preload.js"
2175
+ ],
2176
+ detail: "summary"
2177
+ }
2178
+ },
2179
+ {
2180
+ title: "Retain the complete analysis and return its summary view",
2181
+ input: {
2182
+ input_path: "/Applications/Example.app/Contents/Resources/app.asar",
2183
+ detail: "summary"
2184
+ }
2185
+ }
2186
+ ]
2187
+ },
2188
+ {
2189
+ name: "reconcile_javascript_runtime",
2190
+ ...toolContractMetadata("reconcile_javascript_runtime"),
2191
+ description: "Reconcile verified static JavaScript application graphs with existing passive web/Electron CDP, passive V8 Inspector, or provider-owned active Electron Evidence. Active Electron captures contribute an explicitly partial target-only runtime record; they never invent renderer scripts, frames, workers, or execution claims. Exact captured-source digests take priority over caller-declared file/URL mappings; target, frame, script, and worker ambiguity remains explicit, and source-map authority stays separate.",
2192
+ kind: "electron-provider",
2193
+ inputSchema: reconcileJavaScriptRuntimeInputSchema,
2194
+ outputSchema: reconciliationOutputSchema,
2195
+ examples: [{
2196
+ title: "Reconcile one passive Electron capture",
2197
+ input: JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE
2198
+ }]
2199
+ },
2200
+ {
2201
+ name: "capture_electron_scenario",
2202
+ ...toolContractMetadata("capture_electron_scenario"),
2203
+ description: "Use this for a provider-owned Electron run when passive CDP or Inspector observation cannot exercise application behavior. REA owns startup and teardown, accepts caller-defined click/wait actions plus window-targeted renderer reload/crash and synthetic open-url/second-instance delivery, and returns correlated window/WebContents/process/preload/session/navigation/shell/IPC evidence without retaining payload values. Actions wait for completion or request cancellation; a missing click target can keep the request pending. Results identify observed and unavailable event families, coverage status, action targets, and truncation. Cleanup failures retain collected observations with explicit cleanup uncertainty. External shell, navigation, permission, download, popup, updater, and OS-integration effects are blocked and recorded. Use passive Electron tools for observation-only work.",
2204
+ kind: "electron-provider",
2205
+ inputSchema: electronActiveObservationInputSchema,
2206
+ outputSchema: evidenceResultOf(electronActiveObservationResultSchema),
2207
+ examples: [{
2208
+ title: "Exercise an owned Electron application",
2209
+ input: activeExample
2210
+ }]
2211
+ },
2212
+ {
2213
+ name: "inspect_electron_fuses",
2214
+ ...toolContractMetadata("inspect_electron_fuses"),
2215
+ kind: "artifact-provider",
2216
+ description: "Inspect packaged Electron fuse bytes in one local macOS app bundle, Electron Framework binary, Windows PE executable, or Linux ELF executable. Returns the artifact digest, per-slice wire version, fuse index, version-1 name, state, and raw byte, plus derived implications for Inspector flags, ELECTRON_RUN_AS_NODE, embedded ASAR integrity, and app.asar-only loading. A missing sentinel is unknown fuse state. Reads artifact bytes only and does not modify the selected file or open a runtime target.",
2217
+ inputSchema: inspectElectronFusesInputSchema,
2218
+ outputSchema: electronFuseOutputSchemas.inspect_electron_fuses,
2219
+ examples: [{
2220
+ title: "Read packaged Electron fuse state",
2221
+ input: { path: "/Applications/Example.app" }
2222
+ }]
2223
+ }
2224
+ ];
2225
+ })))();
2226
+ }
2227
+
2228
+ //#endregion
2229
+ //#region dist/contracts/javascript/javascriptRuntimeObservationToolContracts.js
2230
+ var endpoint, JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS;
2231
+ function init_javascriptRuntimeObservationToolContracts() {
2232
+ return (init_javascriptRuntimeObservationToolContracts = __esmMin((() => {
2233
+ init_toolEffects();
2234
+ init_toolOutputSchemaPrimitives();
2235
+ init_javascriptRuntimeObservation();
2236
+ endpoint = "http://127.0.0.1:9229";
2237
+ JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [{
2238
+ name: "list_javascript_runtime_targets",
2239
+ ...toolContractMetadata("list_javascript_runtime_targets"),
2240
+ description: "List every eligible Node/Electron V8 Inspector target from an explicit literal-loopback endpoint. Node discovery file locations that cannot be verified are preserved as unresolved reported URLs; they do not prove filesystem identity. Listing does not attach to targets.",
2241
+ kind: "runtime-provider",
2242
+ inputSchema: listJavaScriptRuntimeTargetsInputSchema,
2243
+ outputSchema: evidenceResultOf(javascriptRuntimeTargetListSchema),
2244
+ examples: [{
2245
+ title: "List Node Inspector targets",
2246
+ input: { inspector_endpoint: endpoint }
2247
+ }]
2248
+ }, {
2249
+ name: "observe_javascript_runtime",
2250
+ ...toolContractMetadata("observe_javascript_runtime"),
2251
+ description: "Attach passively to one Node/Electron V8 Inspector target by supplying its loopback Inspector endpoint and target ID. The provider rechecks target presence and attachability; a Node discovery file location may remain unresolved. Loaded script locations are validated independently from Debugger.scriptParsed. Captures script and Runtime execution-context metadata. REA never evaluates, pauses, resumes, reads source, or instruments the target; require/import edges, EventEmitter activity, and Electron IPC remain explicit unknowns. Reconcile the result with static Application Graph Evidence using reconcile_javascript_runtime. The selected endpoint exposes every target it serves to this tool.",
2252
+ kind: "runtime-provider",
2253
+ inputSchema: observeJavaScriptRuntimeInputSchema,
2254
+ outputSchema: evidenceResultOf(javascriptRuntimeObservationSchema),
2255
+ examples: [{
2256
+ title: "Observe one Node runtime",
2257
+ input: {
2258
+ inspector_endpoint: endpoint,
2259
+ target_id: "TARGET_ID_FROM_LIST_JAVASCRIPT_RUNTIME_TARGETS"
2260
+ }
2261
+ }]
2262
+ }];
2263
+ })))();
2264
+ }
2265
+
2266
+ //#endregion
2267
+ //#region dist/contracts/javascript/applicationWorkflowInputContracts.js
2268
+ var traceApplicationFeatureFacts, traceApplicationFeatureRequestSchema, traceJavaScriptSemanticsRequestSchema, compareApplicationVersionsFacts, compareApplicationVersionsRequestSchema, compareSourceToBundleFacts, compareSourceToBundleRequestSchema, compareJavaScriptExportShapesFacts, compareJavaScriptExportShapesRequestSchema;
2269
+ function init_applicationWorkflowInputContracts() {
2270
+ return (init_applicationWorkflowInputContracts = __esmMin((() => {
2271
+ init_evidenceInputContracts();
2272
+ init_javascriptApplicationVersionComparisonSchemas();
2273
+ init_javascriptExportShapeComparisonSchemas();
2274
+ init_javascriptFeatureTraceSchemas();
2275
+ init_javascriptSemanticQuerySchemas();
2276
+ init_sourceToBundleComparisonSchemas();
2277
+ traceApplicationFeatureFacts = {
2278
+ native_observations: traceApplicationFeatureInputSchema.shape.native_observations,
2279
+ seed: traceApplicationFeatureInputSchema.shape.seed,
2280
+ direction: traceApplicationFeatureInputSchema.shape.direction
2281
+ };
2282
+ traceApplicationFeatureRequestSchema = z.strictObject({
2283
+ ...traceApplicationFeatureFacts,
2284
+ application: evidenceInputSchema
2285
+ });
2286
+ traceJavaScriptSemanticsRequestSchema = z.strictObject({
2287
+ application: evidenceInputSchema,
2288
+ query: javaScriptSemanticQueryInputSchema
2289
+ });
2290
+ compareApplicationVersionsFacts = {
2291
+ left_native_observations: compareApplicationVersionsInputSchema.shape.left_native_observations,
2292
+ right_native_observations: compareApplicationVersionsInputSchema.shape.right_native_observations
2293
+ };
2294
+ compareApplicationVersionsRequestSchema = z.strictObject({
2295
+ ...compareApplicationVersionsFacts,
2296
+ left: evidenceInputSchema,
2297
+ right: evidenceInputSchema
2298
+ });
2299
+ compareSourceToBundleFacts = { reference: compareSourceToBundleInputSchema.shape.reference };
2300
+ compareSourceToBundleRequestSchema = z.strictObject({
2301
+ ...compareSourceToBundleFacts,
2302
+ application: evidenceInputSchema
2303
+ });
2304
+ compareJavaScriptExportShapesFacts = {
2305
+ left_module_path: compareJavaScriptExportShapesInputSchema.shape.left_module_path,
2306
+ left_export_name: compareJavaScriptExportShapesInputSchema.shape.left_export_name,
2307
+ right_module_path: compareJavaScriptExportShapesInputSchema.shape.right_module_path,
2308
+ right_export_name: compareJavaScriptExportShapesInputSchema.shape.right_export_name
2309
+ };
2310
+ compareJavaScriptExportShapesRequestSchema = z.strictObject({
2311
+ ...compareJavaScriptExportShapesFacts,
2312
+ left: evidenceInputSchema,
2313
+ right: evidenceInputSchema
2314
+ });
2315
+ })))();
2316
+ }
2317
+
2318
+ //#endregion
2319
+ //#region dist/contracts/javascript/javascriptApplicationWorkflowExamples.js
2320
+ var reconciliation, reconciliationEvidence, TRACE_SEED, JAVASCRIPT_FEATURE_TRACE_EXAMPLE, JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE, SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE;
2321
+ function init_javascriptApplicationWorkflowExamples() {
2322
+ return (init_javascriptApplicationWorkflowExamples = __esmMin((() => {
2323
+ init_evidence();
2324
+ init_javascriptRuntimeReconciliation();
2325
+ init_javascriptRuntimeReconciliationExample();
2326
+ init_referenceSourceGraph();
2327
+ init_javascriptRuntimeReconciliationSchemas();
2328
+ reconciliation = reconcileJavaScriptRuntime(parseRuntimeReconciliationInput(reconcileJavaScriptRuntimeInputSchema.parse(JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE)));
2329
+ reconciliationEvidence = createEvidence(undefined, {
2330
+ id: "rea-javascript-runtime-reconciliation",
2331
+ name: "REA JavaScript runtime reconciliation",
2332
+ version: "1"
2333
+ }, {
2334
+ predicateType: "rea.javascript-runtime-reconciliation",
2335
+ operation: "reconcile_javascript_runtime",
2336
+ parameters: {
2337
+ static_layers: JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE.static_layers.map(({ analysis }) => ({
2338
+ role: "application",
2339
+ evidence_id: analysis.evidence_id,
2340
+ runtime_mappings: []
2341
+ })),
2342
+ runtime_evidence_ids: JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE.runtime_observations.map(({ evidence_id: id }) => id)
2343
+ },
2344
+ result: reconciliation,
2345
+ confidence: "inferred",
2346
+ authority: "analyst-inference",
2347
+ limitations: reconciliation.limitations,
2348
+ evidenceLinks: reconciliation.evidence_links
2349
+ });
2350
+ TRACE_SEED = {
2351
+ kind: "module",
2352
+ value: "renderer.js",
2353
+ match: "exact",
2354
+ case_sensitive: false
2355
+ };
2356
+ JAVASCRIPT_FEATURE_TRACE_EXAMPLE = {
2357
+ application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
2358
+ seed: TRACE_SEED,
2359
+ direction: "both"
2360
+ };
2361
+ JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE = {
2362
+ left: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
2363
+ right: reconciliationEvidence
2364
+ };
2365
+ SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = {
2366
+ reference: createHistoricalSourceGraph({
2367
+ schema: "HistoricalSourceGraph",
2368
+ authority: "historical-reference",
2369
+ root_alias: "$REFERENCE_ROOT",
2370
+ inventory_state: "complete",
2371
+ entries: [{
2372
+ path: "src",
2373
+ kind: "directory",
2374
+ classifications: ["source"],
2375
+ tree_state: "enumerated",
2376
+ limitations: []
2377
+ }, {
2378
+ path: "src/main.ts",
2379
+ kind: "file",
2380
+ sha256: "2".repeat(64),
2381
+ size: 128,
2382
+ language: "TypeScript",
2383
+ classifications: ["source"],
2384
+ content_state: "hashed",
2385
+ limitations: []
2386
+ }],
2387
+ relationships: [],
2388
+ parse_failures: [],
2389
+ exclusions: [],
2390
+ languages: ["TypeScript"],
2391
+ manifests: [],
2392
+ vcs: {
2393
+ kind: "none",
2394
+ head: null,
2395
+ dirty: null
2396
+ },
2397
+ provenance: {
2398
+ importer: "rea",
2399
+ importer_version: "1",
2400
+ caller: "contract-example"
2401
+ },
2402
+ limitations: []
2403
+ }),
2404
+ application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE
2405
+ };
2406
+ })))();
2407
+ }
2408
+
2409
+ //#endregion
2410
+ //#region dist/contracts/javascript/javascriptExportShapeComparisonExample.js
2411
+ var captures, summary, statistics, modulePath, limitations, exampleEvidence, JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE;
2412
+ function init_javascriptExportShapeComparisonExample() {
2413
+ return (init_javascriptExportShapeComparisonExample = __esmMin((() => {
2414
+ init_evidence();
2415
+ init_webContentArtifact();
2416
+ init_javascriptSemanticAnalysis();
2417
+ init_javascriptExportReturnShapeProjection();
2418
+ init_javascriptApplicationEvidenceSchemas();
2419
+ init_javascriptApplicationGraph();
2420
+ init_javascriptSemanticGraph();
2421
+ init_javascriptSemanticGraphSchemas();
2422
+ init_javascriptApplicationAnalysis();
2423
+ captures = {
2424
+ count: {
2425
+ input_path: "/examples/javascript-export-presence/left",
2426
+ root_artifact_sha256: "5005ebc2f35719a2fc014f19a81c669f3a1ab471b7245ef6985a111b6845a747",
2427
+ inventory_manifest_id: "agm_f30ded9a83d43a3980417bbe63dfad569e83386f243c4d6a01af0166372cb9e6",
2428
+ inventory_graph_sha256: "4b8aceaf67e43fd8317ec1f5fd1df5235f8fa402335accf011683e008c6bc62c",
2429
+ integrity_contradictions: []
2430
+ },
2431
+ total: {
2432
+ input_path: "/examples/javascript-export-presence/right",
2433
+ root_artifact_sha256: "269ae72a601ad5ac02f1c2dda6ff9accffa2d2e4f4a9e406facee0d5a78a5377",
2434
+ inventory_manifest_id: "agm_d3ceaa1af38fb3474070ca25c0d4644282e5fb7d5824cee3e3a81391481e9fc1",
2435
+ inventory_graph_sha256: "3e9bc926951480c35385efe5650d9d781631bd74c37a523d543b5fbe06b01ce6",
2436
+ integrity_contradictions: []
2437
+ }
2438
+ };
2439
+ summary = {
2440
+ browser_windows: 0,
2441
+ explicit_web_preferences: 0,
2442
+ preload_entrypoints: 0,
2443
+ context_bridge_apis: 0,
2444
+ exposed_api_members: 0,
2445
+ ipc: {
2446
+ operations: 0,
2447
+ literal_channels: 0,
2448
+ dynamic_channel_operations: 0,
2449
+ renderer_transmissions: 0,
2450
+ renderer_listeners: 0,
2451
+ main_handlers: 0,
2452
+ paired_renderer_transmissions: 0,
2453
+ ambiguous_renderer_transmissions: 0,
2454
+ unpaired_literal_renderer_transmissions: 0
2455
+ },
2456
+ sender_validation_observations: 0,
2457
+ utility_processes: 0,
2458
+ resolved_utility_entrypoints: 0,
2459
+ native_addon_bindings: 0,
2460
+ resolved_native_addon_bindings: 0
2461
+ };
2462
+ statistics = {
2463
+ relevant_files: 1,
2464
+ nested_asar_containers: 0,
2465
+ text_bytes_read: 60,
2466
+ invalid_utf8_files: 0,
2467
+ parsed_javascript_files: 1,
2468
+ visited_ast_nodes: 12,
2469
+ findings: 1,
2470
+ modules: 0,
2471
+ parse_failures: 0
2472
+ };
2473
+ modulePath = "parser.mjs";
2474
+ limitations = ["This example retains export and return-shape facts only; other application and semantic relationships are omitted."];
2475
+ exampleEvidence = (property) => {
2476
+ const metadata = captures[property];
2477
+ const source = `export default () => ({ kind: "results", ${property}: query() });\n`;
2478
+ const artifact = createWebTextArtifact(source, "text/javascript");
2479
+ const ir = analyzeJavaScriptSemantics(source);
2480
+ const link = ir.moduleLinks.find(({ exportedName }) => exportedName === "default");
2481
+ if (link === undefined) throw new Error("Example source must define a default export");
2482
+ const coverage = ir.coverage.status === "complete" ? completeApplicationCoverage() : partialApplicationCoverage([], ir.coverage.omittedCount);
2483
+ const projection = projectJavaScriptExportReturnShapes({
2484
+ ir,
2485
+ link,
2486
+ modulePath,
2487
+ baseCoverage: coverage
2488
+ });
2489
+ if (projection === null) throw new Error("Example export must retain return shapes");
2490
+ const evidence = {
2491
+ artifact: {
2492
+ available: true,
2493
+ artifact_id: `art_${artifact.sha256}`,
2494
+ sha256: artifact.sha256
2495
+ },
2496
+ location: {
2497
+ available: true,
2498
+ value: {
2499
+ kind: "source-range",
2500
+ source: modulePath,
2501
+ ...link.location
2502
+ }
2503
+ },
2504
+ extractor: {
2505
+ name: "rea-javascript-artifact-reconstruction",
2506
+ version: "1",
2507
+ operation: "recover-module-export",
2508
+ executable_sha256: null
2509
+ },
2510
+ coverage,
2511
+ limitations: ir.limitations,
2512
+ evidence_ids: []
2513
+ };
2514
+ const exported = createJavaScriptApplicationNode({
2515
+ kind: "javascript-module",
2516
+ identity: {
2517
+ strategy: "artifact-local-key",
2518
+ stability: "artifact-version",
2519
+ artifact_sha256: artifact.sha256,
2520
+ namespace: "module-export",
2521
+ key: `${metadata.root_artifact_sha256}:${modulePath}:default`
2522
+ },
2523
+ observations: [{
2524
+ label: `${modulePath}:default`,
2525
+ properties: {
2526
+ semantic_role: "export-binding",
2527
+ module_path: modulePath,
2528
+ relationship_kind: link.kind,
2529
+ exported_name: link.exportedName,
2530
+ local_name: link.localName,
2531
+ imported_name: link.importedName,
2532
+ declared_specifier: link.specifier
2533
+ },
2534
+ evidence: {
2535
+ ...evidence,
2536
+ authority: "ast-static-analysis",
2537
+ state: "observed",
2538
+ confidence: "exact"
2539
+ }
2540
+ }, {
2541
+ label: `${modulePath}:default:return-shapes`,
2542
+ properties: projection.properties,
2543
+ evidence: {
2544
+ ...evidence,
2545
+ authority: "static-relationship-inference",
2546
+ state: "inferred",
2547
+ confidence: "high",
2548
+ location: {
2549
+ available: true,
2550
+ value: {
2551
+ kind: "source-range",
2552
+ source: modulePath,
2553
+ ...projection.range
2554
+ }
2555
+ },
2556
+ extractor: {
2557
+ ...evidence.extractor,
2558
+ operation: "recover-export-return-shapes"
2559
+ },
2560
+ coverage: projection.coverage,
2561
+ limitations: projection.limitations
2562
+ }
2563
+ }]
2564
+ });
2565
+ const graph = createJavaScriptApplicationGraph({
2566
+ schema: "JavaScriptApplicationGraph",
2567
+ root_node_ids: [exported.node_id],
2568
+ nodes: [exported],
2569
+ edges: [],
2570
+ coverage: partialApplicationCoverage([], null),
2571
+ limitations
2572
+ });
2573
+ const evidenceContexts = new JavaScriptSemanticEvidenceContextRegistry();
2574
+ const module = createJavaScriptSemanticGraphNode({
2575
+ kind: "module",
2576
+ identity: {
2577
+ artifact_sha256: artifact.sha256,
2578
+ module_path: modulePath,
2579
+ source_range: null,
2580
+ role_key: "example-module"
2581
+ },
2582
+ function_node_id: null,
2583
+ application_node_ids: [exported.node_id],
2584
+ label: modulePath,
2585
+ properties: {},
2586
+ evidence: {
2587
+ ...evidence,
2588
+ authority: "ast-static-analysis",
2589
+ state: "observed",
2590
+ confidence: "exact"
2591
+ }
2592
+ }, evidenceContexts);
2593
+ const semanticGraph = createJavaScriptSemanticGraph({
2594
+ schema: "JavaScriptSemanticRelationGraph",
2595
+ root_artifact_sha256: metadata.root_artifact_sha256,
2596
+ application_graph_id: graph.graph_id,
2597
+ root_node_ids: [module.node_id],
2598
+ evidence_contexts: evidenceContexts.contexts,
2599
+ nodes: [module],
2600
+ relations: [],
2601
+ fingerprints: [],
2602
+ unknowns: [],
2603
+ coverage: {
2604
+ status: "unknown",
2605
+ truncated: false,
2606
+ omitted_nodes: null,
2607
+ omitted_relations: null,
2608
+ limits: [],
2609
+ families: JAVASCRIPT_SEMANTIC_RELATION_FAMILIES.map((family) => ({
2610
+ family,
2611
+ status: "unknown",
2612
+ retained_relations: 0,
2613
+ omitted_relations: null,
2614
+ unknown_ids: []
2615
+ }))
2616
+ },
2617
+ limitations
2618
+ });
2619
+ const result = javascriptApplicationAnalysisResultSchema.parse({
2620
+ ...metadata,
2621
+ format: "directory",
2622
+ graph,
2623
+ semantic_graph: semanticGraph,
2624
+ summary,
2625
+ statistics,
2626
+ limitations
2627
+ });
2628
+ return createEvidence({
2629
+ path: result.input_path,
2630
+ sha256: result.root_artifact_sha256,
2631
+ format: "directory"
2632
+ }, {
2633
+ id: "rea-javascript-application",
2634
+ name: "REA JavaScript application analyzer",
2635
+ version: "1"
2636
+ }, {
2637
+ predicateType: "rea.javascript-application-analysis",
2638
+ operation: "analyze_javascript_application",
2639
+ parameters: {},
2640
+ result,
2641
+ confidence: "derived",
2642
+ authority: "shipped-artifact",
2643
+ limitations
2644
+ });
2645
+ };
2646
+ JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE = {
2647
+ left: exampleEvidence("count"),
2648
+ right: exampleEvidence("total"),
2649
+ left_module_path: modulePath,
2650
+ left_export_name: "default",
2651
+ right_module_path: modulePath,
2652
+ right_export_name: "default"
2653
+ };
2654
+ })))();
2655
+ }
2656
+
2657
+ //#endregion
2658
+ //#region dist/contracts/mobileApplicationGraphExamples.js
2659
+ var inventory, provider, ANDROID_APPLICATION_GRAPH_EXAMPLE, APPLE_APPLICATION_GRAPH_EXAMPLE, MACOS_APPLICATION_GRAPH_EXAMPLE, HARMONY_APPLICATION_GRAPH_EXAMPLE;
2660
+ function init_mobileApplicationGraphExamples() {
2661
+ return (init_mobileApplicationGraphExamples = __esmMin((() => {
2662
+ init_canonicalDigest();
2663
+ init_evidence();
2664
+ init_jsonValue();
2665
+ inventory = (format, digit) => {
2666
+ const sha = digit.repeat(64);
2667
+ const artifactId = `art_${digestCanonicalValue({ sha256: sha }, "Artifact inventory")}`;
2668
+ const occurrenceId = `occ_${digestCanonicalValue({ root: artifactId }, "Artifact inventory")}`;
2669
+ const nodes = [{
2670
+ artifact_id: artifactId,
2671
+ format: format === "directory" ? "directory" : "zip",
2672
+ sha256: sha,
2673
+ size: 1,
2674
+ media_type: null,
2675
+ architecture: null,
2676
+ content_state: "materialized",
2677
+ limitations: []
2678
+ }];
2679
+ const occurrences = [{
2680
+ occurrence_id: occurrenceId,
2681
+ artifact_id: artifactId,
2682
+ parent_occurrence_id: null,
2683
+ logical_path: ".",
2684
+ entry_kind: "file",
2685
+ artifact_kind: "resource",
2686
+ artifact_format: format,
2687
+ declared_size: 1,
2688
+ compressed_size: null,
2689
+ executable: false,
2690
+ encrypted: false,
2691
+ hash_status: "verified",
2692
+ source_location: null,
2693
+ limitations: []
2694
+ }];
2695
+ const graphSha256 = digestCanonicalValue({
2696
+ nodes,
2697
+ occurrences,
2698
+ edges: [],
2699
+ integrity_contradictions: []
2700
+ }, "Artifact inventory");
2701
+ return jsonValueSchema.parse({
2702
+ manifest: {
2703
+ manifest_id: `agm_${digestCanonicalValue({
2704
+ root_artifact_id: artifactId,
2705
+ graph_sha256: graphSha256
2706
+ }, "Artifact inventory")}`,
2707
+ root_artifact_id: artifactId,
2708
+ root_sha256: sha,
2709
+ root_format: format,
2710
+ graph_sha256: graphSha256,
2711
+ node_count: nodes.length,
2712
+ occurrence_count: occurrences.length,
2713
+ edge_count: 0
2714
+ },
2715
+ nodes,
2716
+ occurrences,
2717
+ edges: [],
2718
+ provenance: [],
2719
+ limitations: []
2720
+ });
2721
+ };
2722
+ provider = {
2723
+ id: "rea-artifact-graph",
2724
+ name: "REA safe artifact graph provider",
2725
+ version: "1"
2726
+ };
2727
+ ANDROID_APPLICATION_GRAPH_EXAMPLE = { inventory_evidence: [createEvidence({
2728
+ path: "Fixture.apk",
2729
+ sha256: "a".repeat(64),
2730
+ format: "apk"
2731
+ }, provider, {
2732
+ operation: "inventory_artifact",
2733
+ parameters: {},
2734
+ result: inventory("apk", "a"),
2735
+ confidence: "observed",
2736
+ authority: "shipped-artifact"
2737
+ })] };
2738
+ APPLE_APPLICATION_GRAPH_EXAMPLE = { inventory_evidence: [createEvidence({
2739
+ path: "Fixture.ipa",
2740
+ sha256: "b".repeat(64),
2741
+ format: "ipa"
2742
+ }, provider, {
2743
+ operation: "inventory_artifact",
2744
+ parameters: {},
2745
+ result: inventory("ipa", "b"),
2746
+ confidence: "observed",
2747
+ authority: "shipped-artifact"
2748
+ })] };
2749
+ MACOS_APPLICATION_GRAPH_EXAMPLE = { inventory_evidence: [createEvidence({
2750
+ path: "Fixture.app",
2751
+ sha256: "c".repeat(64),
2752
+ format: "directory"
2753
+ }, provider, {
2754
+ operation: "inventory_artifact",
2755
+ parameters: {},
2756
+ result: inventory("directory", "c"),
2757
+ confidence: "observed",
2758
+ authority: "shipped-artifact"
2759
+ })] };
2760
+ HARMONY_APPLICATION_GRAPH_EXAMPLE = { inventory_evidence: [createEvidence({
2761
+ path: "Fixture.hap",
2762
+ sha256: "d".repeat(64),
2763
+ format: "hap"
2764
+ }, provider, {
2765
+ operation: "inventory_artifact",
2766
+ parameters: {},
2767
+ result: inventory("hap", "d"),
2768
+ confidence: "observed",
2769
+ authority: "shipped-artifact"
2770
+ })] };
2771
+ })))();
2772
+ }
2773
+
2774
+ //#endregion
2775
+ //#region dist/contracts/applicationToolContracts.js
2776
+ function applicationToolContract(name) {
2777
+ const contract = APPLICATION_TOOL_CONTRACTS.find(({ name: candidate }) => candidate === name);
2778
+ if (contract === undefined) throw new Error(`Missing application tool contract: ${name}`);
2779
+ return contract;
2780
+ }
2781
+ var traceOutputSchema, semanticTraceOutputSchema, comparisonOutputSchema, sourceToBundleOutputSchema, exportShapeComparisonOutputSchema, reconstructionObligationLedgerOutputSchema, HASH, retained, APPLICATION_TOOL_CONTRACTS;
2782
+ function init_applicationToolContracts() {
2783
+ return (init_applicationToolContracts = __esmMin((() => {
2784
+ init_javascriptApplicationVersionComparisonSchemas();
2785
+ init_javascriptFeatureTraceSchemas();
2786
+ init_javascriptSemanticTraceSchemas();
2787
+ init_javascriptExportShapeComparisonSchemas();
2788
+ init_sourceToBundleComparisonSchemas();
2789
+ init_applicationWorkflowInputContracts();
2790
+ init_reconstructionCoverageInput();
2791
+ init_reconstructionCoverage();
2792
+ init_reconstructionObligationLedgerSchemas();
2793
+ init_androidApplication();
2794
+ init_appleApplication();
2795
+ init_harmonyApplication();
2796
+ init_toolEffects();
2797
+ init_toolOutputSchemaPrimitives();
2798
+ init_javascriptApplicationWorkflowExamples();
2799
+ init_javascriptExportShapeComparisonExample();
2800
+ init_mobileApplicationGraphExamples();
2801
+ traceOutputSchema = evidenceResultOf(applicationFeatureTraceResultSchema);
2802
+ semanticTraceOutputSchema = evidenceResultOf(javaScriptSemanticTraceResultSchema);
2803
+ comparisonOutputSchema = evidenceResultOf(applicationVersionComparisonResultSchema);
2804
+ sourceToBundleOutputSchema = evidenceResultOf(sourceToBundleComparisonResultSchema);
2805
+ exportShapeComparisonOutputSchema = evidenceResultOf(javaScriptExportShapeComparisonResultSchema);
2806
+ reconstructionObligationLedgerOutputSchema = evidenceResultOf(reconstructionObligationLedgerSchema);
2807
+ HASH = "0".repeat(64);
2808
+ retained = (evidence_id) => ({
2809
+ kind: "retained-evidence",
2810
+ evidence_id
2811
+ });
2812
+ APPLICATION_TOOL_CONTRACTS = [
2813
+ {
2814
+ name: "trace_application_feature",
2815
+ ...toolContractMetadata("trace_application_feature"),
2816
+ description: "Trace a typed literal seed through every reachable part of an authenticated JavaScript Application Graph supplied as inline Evidence or exact same-session retained references. Original static, native, passive-runtime, inferred, and unknown authorities remain distinct; native addon handoffs never open a provider or execute the application.",
2817
+ kind: "application",
2818
+ inputSchema: traceApplicationFeatureRequestSchema,
2819
+ outputSchema: traceOutputSchema,
2820
+ examples: [{
2821
+ title: "Trace one module seed through a retained application graph",
2822
+ input: JAVASCRIPT_FEATURE_TRACE_EXAMPLE
2823
+ }, {
2824
+ title: "Use exact Evidence already retained in this session",
2825
+ input: {
2826
+ ...JAVASCRIPT_FEATURE_TRACE_EXAMPLE,
2827
+ application: retained(JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application.evidence_id)
2828
+ }
2829
+ }]
2830
+ },
2831
+ {
2832
+ name: "trace_javascript_semantics",
2833
+ ...toolContractMetadata("trace_javascript_semantics"),
2834
+ description: "Trace static JavaScript data-flow, direct call/return, and closure relations from inline application Evidence or an exact same-session retained reference. Dynamic or unsupported semantics remain explicit unknowns; static reachability never claims runtime execution.",
2835
+ kind: "application",
2836
+ inputSchema: traceJavaScriptSemanticsRequestSchema,
2837
+ outputSchema: semanticTraceOutputSchema,
2838
+ examples: [{
2839
+ title: "Trace backward provenance from one semantic node",
2840
+ input: {
2841
+ application: JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application,
2842
+ query: {
2843
+ seed: {
2844
+ kind: "semantic-node",
2845
+ node_id: `jsrg_node_${HASH}`
2846
+ },
2847
+ direction: "backward-provenance"
2848
+ }
2849
+ }
2850
+ }]
2851
+ },
2852
+ {
2853
+ name: "compare_application_versions",
2854
+ ...toolContractMetadata("compare_application_versions"),
2855
+ description: "Compare two authenticated JavaScript Application Graph versions supplied as inline Evidence or exact same-session retained references. Uses unique-only exact digest, module source digest, source-map identity, structural fingerprint, and non-module semantic-key tiers. Reports added, removed, changed, ambiguous, and unknown entities plus the complete matching changed_from graph without fuzzy or module-ordinal pairing.",
2856
+ kind: "application",
2857
+ inputSchema: compareApplicationVersionsRequestSchema,
2858
+ outputSchema: comparisonOutputSchema,
2859
+ examples: [{
2860
+ title: "Compare authenticated static and reconciled application graphs",
2861
+ input: JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE
2862
+ }, {
2863
+ title: "Use exact Evidence already retained in this session",
2864
+ input: {
2865
+ ...JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE,
2866
+ left: retained(JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.left.evidence_id),
2867
+ right: retained(JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE.right.evidence_id)
2868
+ }
2869
+ }]
2870
+ },
2871
+ {
2872
+ name: "compare_source_to_bundle",
2873
+ ...toolContractMetadata("compare_source_to_bundle"),
2874
+ description: "Compare a cryptographically committed HistoricalSourceGraph with authenticated JavaScript Application Graph Evidence supplied inline or by exact same-session retained reference. Uses explicit exact-digest, source-map path, current-path, suffix, and basename signals with stable weights. Classifies unchanged, modified, removed, split, merged, duplicated, and unknown; incomplete coverage and ambiguous weak signals never become absence or forced matches.",
2875
+ kind: "application",
2876
+ inputSchema: compareSourceToBundleRequestSchema,
2877
+ outputSchema: sourceToBundleOutputSchema,
2878
+ examples: [{
2879
+ title: "Compare committed historical source with a shipped bundle graph",
2880
+ input: SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE
2881
+ }]
2882
+ },
2883
+ {
2884
+ name: "compare_javascript_export_shapes",
2885
+ ...toolContractMetadata("compare_javascript_export_shapes"),
2886
+ description: "Compare static return shapes for one exact module/export selector on each authenticated JavaScript Application Graph supplied as inline Evidence or exact same-session retained references. Variants pair only by reciprocal unique literal discriminants. Each retained variant lists observed return-property names even when values stay unknown. Presence (present, absent, or unknown-coverage) is separate from value resolution: a name present on only one paired shape is added or removed when parent-property coverage is complete on both sides, including when the static value is unresolved. Dynamic values, incomplete parent coverage, and unpaired variants remain unknown. Reports JSON Pointer changes without executing JavaScript; runtime behavior requires a separate agent-run probe.",
2887
+ kind: "application",
2888
+ inputSchema: compareJavaScriptExportShapesRequestSchema,
2889
+ outputSchema: exportShapeComparisonOutputSchema,
2890
+ examples: [{
2891
+ title: "Report observed return-property presence when static values stay unknown",
2892
+ input: JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE
2893
+ }, {
2894
+ title: "Use exact Evidence already retained in this session",
2895
+ input: {
2896
+ ...JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE,
2897
+ left: retained(JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE.left.evidence_id),
2898
+ right: retained(JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE.right.evidence_id)
2899
+ }
2900
+ }]
2901
+ },
2902
+ {
2903
+ name: "build_reconstruction_obligation_ledger",
2904
+ ...toolContractMetadata("build_reconstruction_obligation_ledger"),
2905
+ description: "Generate the complete deterministic ReconstructionObligationLedger from an authenticated Evidence bundle, reviewed obligations, and an explicit reconstruction manifest. Static candidates remain candidates; duplicate ownership, missing original or reconstruction cases, missing parser/type, weak verifier authority, unenumerated claims, contradictions, dependencies, and residual unknowns fail closed. The inline result carries the full-ledger closure digest and typed per-obligation diagnostics.",
2906
+ kind: "application",
2907
+ inputSchema: reconstructionObligationLedgerInputSchema,
2908
+ outputSchema: reconstructionObligationLedgerOutputSchema,
2909
+ examples: [{
2910
+ title: "Generate the complete obligation ledger",
2911
+ input: {
2912
+ evidence_bundle: {
2913
+ artifacts: [],
2914
+ providers: [],
2915
+ environments: [],
2916
+ scenarios: [],
2917
+ captures: [],
2918
+ unknowns: [],
2919
+ records: []
2920
+ },
2921
+ reviewed_obligations: [],
2922
+ manifest: {
2923
+ bindings: [],
2924
+ contradictions: []
2925
+ }
2926
+ }
2927
+ }]
2928
+ },
2929
+ {
2930
+ name: "evaluate_reconstruction_coverage",
2931
+ ...toolContractMetadata("evaluate_reconstruction_coverage"),
2932
+ description: "Evaluate inline evidence-backed reconstruction coverage against one named boundary. Missing ownership or inventory is partial; stale, weak, truncated, skipped, unresolved, or conflicting tied verifier proof is unknown; contradictions, failed proof, missing owners, and authority routing fail closed.",
2933
+ kind: "application",
2934
+ inputSchema: reconstructionCoverageEvaluationInputSchema,
2935
+ outputSchema: reconstructionClosureResultSchema,
2936
+ examples: [{
2937
+ title: "Evaluate one replacement boundary",
2938
+ input: {
2939
+ coverage: {
2940
+ evidence_bundle: {
2941
+ artifacts: [],
2942
+ providers: [],
2943
+ environments: [],
2944
+ scenarios: [],
2945
+ captures: [],
2946
+ unknowns: [],
2947
+ records: []
2948
+ },
2949
+ artifacts: [],
2950
+ surfaces: [],
2951
+ owners: [],
2952
+ claims: [],
2953
+ verifier_contracts: [],
2954
+ verifier_results: [],
2955
+ residual_unknown_ids: [],
2956
+ contradictions: [],
2957
+ package_proofs: [],
2958
+ boundaries: [{
2959
+ boundary_id: "replacement.cli",
2960
+ title: "CLI replacement",
2961
+ required_surface_ids: ["cli.help"],
2962
+ required_claim_ids: ["claim.cli.help"],
2963
+ required_package_proof_kinds: ["clean-install", "authority-independence"],
2964
+ allowed_dispositions: [],
2965
+ allowed_unknown_ids: []
2966
+ }]
2967
+ },
2968
+ boundary_id: "replacement.cli"
2969
+ }
2970
+ }]
2971
+ },
2972
+ {
2973
+ name: "project_android_application_graph",
2974
+ ...toolContractMetadata("project_android_application_graph"),
2975
+ description: "Project authenticated APK inventory_artifact Evidence into an execution-free Android application inventory. Reports exact component paths and hashes, runtime-family hints, and path-based bridge hypotheses without decoding DEX, executing the APK, or claiming observed runtime calls.",
2976
+ kind: "application",
2977
+ inputSchema: androidApplicationProjectionInputSchema,
2978
+ outputSchema: evidenceResultOf(androidApplicationProjectionResultSchema),
2979
+ examples: [{
2980
+ title: "Project APK inventory Evidence into an Android application graph",
2981
+ input: ANDROID_APPLICATION_GRAPH_EXAMPLE
2982
+ }]
2983
+ },
2984
+ {
2985
+ name: "project_apple_application_graph",
2986
+ ...toolContractMetadata("project_apple_application_graph"),
2987
+ description: "Project authenticated IPA, macOS .app directory, ZIP, or DMG inventory Evidence into an execution-free Apple application inventory. Reports application roots, nested bundles with path-convention roles (app extensions, XPC services, login items, privileged helpers, system extensions, frameworks), launchd plists, exact component paths and hashes, runtime-family hints, and path-based bridge hypotheses without parsing plist/CMS semantics or claiming observed runtime calls.",
2988
+ kind: "application",
2989
+ inputSchema: appleApplicationProjectionInputSchema,
2990
+ outputSchema: evidenceResultOf(appleApplicationProjectionResultSchema),
2991
+ examples: [{
2992
+ title: "Project IPA inventory Evidence into an Apple application graph",
2993
+ input: APPLE_APPLICATION_GRAPH_EXAMPLE
2994
+ }, {
2995
+ title: "Project a macOS .app directory inventory into its bundle anatomy",
2996
+ input: MACOS_APPLICATION_GRAPH_EXAMPLE
2997
+ }]
2998
+ },
2999
+ {
3000
+ name: "project_harmony_application_graph",
3001
+ ...toolContractMetadata("project_harmony_application_graph"),
3002
+ description: "Project authenticated HarmonyOS HAP, HSP, or App Pack inventory Evidence into an execution-free application inventory. Reports packaging-model hints (Stage module.json versus FA config.json), exact component paths and hashes (manifests, Ark bytecode, resources, native libraries, JavaScript, signing), App Pack child packages, runtime-family hints, and path-based N-API bridge hypotheses without decoding Ark bytecode, parsing manifest semantics, or claiming observed runtime calls.",
3003
+ kind: "application",
3004
+ inputSchema: harmonyApplicationProjectionInputSchema,
3005
+ outputSchema: evidenceResultOf(harmonyApplicationProjectionResultSchema),
3006
+ examples: [{
3007
+ title: "Project HAP inventory Evidence into a HarmonyOS application graph",
3008
+ input: HARMONY_APPLICATION_GRAPH_EXAMPLE
3009
+ }]
3010
+ }
3011
+ ];
3012
+ })))();
3013
+ }
3014
+
3015
+ //#endregion
3016
+ //#region dist/contracts/webScriptToolContracts.js
3017
+ var WEB_SCRIPT_TOOL_CONTRACTS;
3018
+ function init_webScriptToolContracts() {
3019
+ return (init_webScriptToolContracts = __esmMin((() => {
3020
+ init_webScriptExport();
3021
+ init_webModuleTrace();
3022
+ init_toolEffects();
3023
+ init_toolOutputSchemaPrimitives();
3024
+ init_webSourceLocation();
3025
+ WEB_SCRIPT_TOOL_CONTRACTS = [
3026
+ {
3027
+ name: "trace_web_source_location",
3028
+ ...toolContractMetadata("trace_web_source_location"),
3029
+ description: "Trace one generated position in an exported website script through an explicitly paired local source map. Verifies manifest, selected script and map SHA-256/byte identities; returns every equal-position mapping, reported source/root, resolved source URL, embedded sourcesContent and original position inline. One-based lines and zero-based UTF-16 columns; greatest generated position <= requested across lines. Duplicate sources and generated-only mappings remain distinct. Caller-selected pairing does not establish deployment authenticity or execution. Regular maps and inline indexed sections only; external section URLs are unsupported. No network access or application execution; uses the pinned upstream codec in an owned Node process with private temporary files, independent 192 MiB old-generation heap and 20-second deadline. 4 MiB map, 32 MiB reply; complete evidence or actionable resource failure. Cleanup may extend the deadline.",
3030
+ kind: "application",
3031
+ inputSchema: webSourceLocationInputSchema,
3032
+ outputSchema: evidenceResultOf(webSourceLocationResultSchema),
3033
+ examples: [{
3034
+ title: "Trace a selected captured JavaScript point to embedded original source",
3035
+ input: {
3036
+ manifest_path: "/analysis/scripts/manifest.json",
3037
+ script_index: 0,
3038
+ source_map: {
3039
+ path: "/analysis/app.js.map",
3040
+ url: "https://example.test/app.js.map"
3041
+ },
3042
+ generated_position: {
3043
+ line: 1,
3044
+ column: 25
3045
+ }
3046
+ }
3047
+ }]
3048
+ },
3049
+ {
3050
+ name: "trace_web_module_imports",
3051
+ ...toolContractMetadata("trace_web_module_imports"),
3052
+ description: "Trace one exported website script's outgoing native ES imports/re-exports, using exact URL and optional selected import-map context. Reads a local export_web_scripts manifest and verifies the selected source's SHA-256/size; returns source positions, native resolved URLs or exact errors, every matching captured candidate and explicit unknown execution. Query/fragment identities are preserved. Computed imports and bundler IDs remain unknown. Select importer_url for unknown inline/document-base context. Caller-supplied Chromium executes only a trusted REA resolver stub in an owned context with page requests locally fulfilled/blocked; no captured application execution or asset refetch. Requires absolute REA_BROWSER_EXECUTABLE for literal imports. 32 MiB manifest, 16 MiB source, 4 MiB map and 20-second native deadline; cleanup may extend the deadline.",
3053
+ kind: "application",
3054
+ inputSchema: webModuleTraceInputSchema,
3055
+ outputSchema: evidenceResultOf(webModuleTraceResultSchema),
3056
+ examples: [{
3057
+ title: "Trace an exported module under a selected import map",
3058
+ input: {
3059
+ manifest_path: "/analysis/exported-scripts/manifest.json",
3060
+ script_index: 0,
3061
+ import_map: {
3062
+ path: "/analysis/import-map.json",
3063
+ base_url: "https://example.test/app/"
3064
+ }
3065
+ }
3066
+ }]
3067
+ },
3068
+ {
3069
+ name: "export_web_scripts",
3070
+ ...toolContractMetadata("export_web_scripts"),
3071
+ description: "Export JavaScript bytes already retained in one local inspect_web_page or capture_browser_scenario JSON capture (normalized result or complete Evidence). Writes scripts and a digest-verified manifest into an absent absolute output_directory. Returns all source URLs, script or transaction/event references, unavailable states, and an analysis_input for analyze_javascript_application when any bytes were exported. Include script sources in inspect_web_page or select capture.network.response_body in scenarios. No refetch or execution. Safe unambiguous URL layouts preserve relative module paths; versions, query variants, inline scripts, and path collisions are isolated with explicit resolution limitations.",
3072
+ kind: "application",
3073
+ inputSchema: exportWebScriptsInputSchema,
3074
+ outputSchema: evidenceResultOf(webScriptExportResultSchema),
3075
+ examples: [{
3076
+ title: "Export a saved website capture for static JavaScript analysis",
3077
+ input: {
3078
+ capture_path: "/analysis/capture.json",
3079
+ output_directory: "/analysis/exported-scripts"
3080
+ }
3081
+ }]
3082
+ }
3083
+ ];
3084
+ })))();
3085
+ }
3086
+
3087
+ //#endregion
3088
+ //#region dist/contracts/webRuntimeToolContracts.js
3089
+ var WEB_RUNTIME_TOOL_CONTRACTS;
3090
+ function init_webRuntimeToolContracts() {
3091
+ return (init_webRuntimeToolContracts = __esmMin((() => {
3092
+ init_toolEffects();
3093
+ init_toolOutputSchemaPrimitives();
3094
+ init_webExecution();
3095
+ init_webEventListeners();
3096
+ WEB_RUNTIME_TOOL_CONTRACTS = [{
3097
+ name: "observe_web_execution",
3098
+ ...toolContractMetadata("observe_web_execution"),
3099
+ description: "Instrument one selected CDP page for a finite, externally driven precise coverage window. Resets execution counters and prevents optimized execution until stopped. Returns complete nested UTF-16 ranges/counts, independently hashed script text and request initiator associations by session script ID. Does not navigate, click, evaluate selected code or close the externally owned page. Navigation ends document-scoped collection; workers and UI causality remain outside this claim. Emits an actual armed progress notification before external actions.",
3100
+ kind: "browser-provider",
3101
+ inputSchema: observeWebExecutionInputSchema,
3102
+ outputSchema: evidenceResultOf(webExecutionSchema),
3103
+ examples: [{
3104
+ title: "Attribute externally triggered page execution",
3105
+ input: {
3106
+ cdp_endpoint: "http://127.0.0.1:9222",
3107
+ target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS",
3108
+ observation_ms: 1e4
3109
+ }
3110
+ }]
3111
+ }, {
3112
+ name: "inspect_web_event_listeners",
3113
+ ...toolContractMetadata("inspect_web_event_listeners"),
3114
+ description: "Inspect listeners registered directly on the first main-document CSS match in one selected CDP page. Returns event flags, native callback locations, source ownership and exact script text/digests inline. Does not dispatch events, evaluate JavaScript or invoke handlers. Delegated ancestor/framework listeners and execution history remain unknown. Releases REA's object group and transport, preserving the external page.",
3115
+ kind: "browser-provider",
3116
+ inputSchema: inspectWebEventListenersInputSchema,
3117
+ outputSchema: evidenceResultOf(webEventListenersSchema),
3118
+ examples: [{
3119
+ title: "Find a selected button's callback source",
3120
+ input: {
3121
+ cdp_endpoint: "http://127.0.0.1:9222",
3122
+ target_id: "TARGET_ID_FROM_LIST_BROWSER_TARGETS",
3123
+ selector: "#submit"
3124
+ }
3125
+ }]
3126
+ }];
3127
+ })))();
3128
+ }
3129
+
3130
+ //#endregion
3131
+ //#region dist/contracts/webNetworkCaptureToolContracts.js
3132
+ var WEB_NETWORK_CAPTURE_TOOL_CONTRACTS;
3133
+ function init_webNetworkCaptureToolContracts() {
3134
+ return (init_webNetworkCaptureToolContracts = __esmMin((() => {
3135
+ init_webNetworkCapture();
3136
+ init_toolEffects();
3137
+ init_analysisDetail();
3138
+ init_analysisView();
3139
+ WEB_NETWORK_CAPTURE_TOOL_CONTRACTS = [{
3140
+ name: "inspect_web_network_capture",
3141
+ ...toolContractMetadata("inspect_web_network_capture"),
3142
+ description: "Request detail summary for capture identity and counts; then page retained records with inspect_analysis_view kind capture (preview or complete), avoiding repeated decoding. Default detail complete preserves existing inline delivery. Inspect retained local HAR 1.2, native mitmproxy, Fiddler SAZ or aioquic 1.5.0 JSON qlog 0.3 events without contacting recorded URLs. Returns original ordinals, pointers/byte ranges/archive member names, preserved producer fields, precise numeric representations and exact exposed binary bytes inline. Excludes known transport credentials and explicitly marked values. Decodes every record before optional ordinal selection; malformed or oversized captures return no partial success. Duplicate JSON members are invalid; prototype-named members such as __proto__ are preserved as ordinary own JSON members without prototype mutation. Qlog reports trace-scoped STREAM interval unions and endpoint loss declarations; it does not recover bodies, prove network loss or correlate PCAP. Other qlog layouts are unsupported. Uses pinned upstream parsers, owned temporary files and bounded offline processes. SAZ preserves HTTP fields, XML metadata and encoded body/message bytes without replay or HAR conversion; encrypted archives are unsupported. Native mitmproxy requires caller-supplied mitmdump 12.2.3 on Linux. Browser transaction IDs, runtime attribution and original bytes of HAR Unicode text remain unknown.",
3143
+ kind: "browser-provider",
3144
+ inputSchema: inspectWebNetworkCaptureInputSchema.extend({ detail: analysisDetailSchema }),
3145
+ outputSchema: analysisDetailOutputSchemaOf(webNetworkCaptureSchema, webNetworkCaptureSummaryViewResultSchema),
3146
+ examples: [{
3147
+ title: "Inspect retained aioquic qlog events",
3148
+ input: {
3149
+ capture_path: "/captures/origin.qlog",
3150
+ format: "qlog",
3151
+ record_ordinals: [0, 2]
3152
+ }
3153
+ }, {
3154
+ title: "Inspect historical HAR entries",
3155
+ input: {
3156
+ capture_path: "/captures/session.har",
3157
+ format: "har",
3158
+ record_ordinals: [0, 2]
3159
+ }
3160
+ }]
3161
+ }];
3162
+ })))();
3163
+ }
3164
+
3165
+ //#endregion
3166
+ //#region dist/contracts/javascript/javascriptRecoveryToolContracts.js
3167
+ var JAVASCRIPT_RECOVERY_TOOL_CONTRACTS;
3168
+ function init_javascriptRecoveryToolContracts() {
3169
+ return (init_javascriptRecoveryToolContracts = __esmMin((() => {
3170
+ init_javascriptRecovery();
3171
+ init_toolEffects();
3172
+ init_toolOutputSchemaPrimitives();
3173
+ JAVASCRIPT_RECOVERY_TOOL_CONTRACTS = [{
3174
+ name: "recover_javascript_sources",
3175
+ ...toolContractMetadata("recover_javascript_sources"),
3176
+ kind: "application",
3177
+ description: "Recover readable modules from local UTF-8 JavaScript scripts/bundles into an absent directory, using caller-supplied Wakaru ^1.13.0 (verified with 1.14.0) on Linux x64. Use additional_paths for related chunks; each input retains its own snapshot and provenance. Returns original/derived digests, extraction byte ranges, emitted source maps, warnings and analysis_input inline. Structural splitting may fall back to one module; original names and runtime equivalence remain unknown. No application code execution. Requires util-linux prlimit; one worker, 1 GiB address-space ceiling, 120-second deadline, 64 MiB total input, 128 MiB output, 10000 entries and 8 MiB per diagnostic/report stream.",
3178
+ inputSchema: javascriptRecoveryInputSchema,
3179
+ outputSchema: evidenceResultOf(javascriptRecoveryResultSchema),
3180
+ examples: [{
3181
+ title: "Recover a captured production bundle",
3182
+ input: {
3183
+ path: "/tmp/web-scripts/app.js",
3184
+ output_directory: "/tmp/recovered-app"
3185
+ }
3186
+ }, {
3187
+ title: "Recover a code-split bundle together",
3188
+ input: {
3189
+ path: "/tmp/web-scripts/main.js",
3190
+ additional_paths: [
3191
+ "/tmp/web-scripts/runtime.js",
3192
+ "/tmp/web-scripts/shared.js",
3193
+ "/tmp/web-scripts/checkout.chunk.js"
3194
+ ],
3195
+ output_directory: "/tmp/recovered-chunks"
3196
+ }
3197
+ }]
3198
+ }];
3199
+ })))();
3200
+ }
3201
+
3202
+ //#endregion
3203
+ //#region dist/contracts/functionWorkflowToolContracts.js
3204
+ var functionWorkflow, FUNCTION_WORKFLOW_TOOL_CONTRACTS;
3205
+ function init_functionWorkflowToolContracts() {
3206
+ return (init_functionWorkflowToolContracts = __esmMin((() => {
3207
+ init_jsonValue();
3208
+ init_enhancedInputs();
3209
+ init_toolContractExamples();
3210
+ init_toolEffects();
3211
+ init_toolOutputSchemaGroups();
3212
+ init_toolOutputSchemaPrimitives();
3213
+ functionWorkflow = (name, description) => {
3214
+ const inputSchema = enhancedInputSchemas[name];
3215
+ const outputSchema = requireOutputSchema(enhancedOutputSchemas, name);
3216
+ return {
3217
+ name,
3218
+ ...toolContractMetadata(name),
3219
+ description,
3220
+ kind: "enhanced",
3221
+ inputSchema,
3222
+ outputSchema,
3223
+ examples: [{
3224
+ title: `Example ${name.replaceAll("_", " ")} request`,
3225
+ input: jsonObjectSchema.parse(inputSchema.parse(TOOL_EXAMPLE_OVERRIDES[name] ?? {}))
3226
+ }]
3227
+ };
3228
+ };
3229
+ FUNCTION_WORKFLOW_TOOL_CONTRACTS = [functionWorkflow("analyze_function", "Build a dossier for one native function identified by symbol or provider-returned address. Returns identity with complete inclusive analyzed body ranges or explicit unknown, provider-specific pseudocode and assembly, comments, calls, references, referenced strings/names, local CFG blocks, and available native API boundary observations. Ghidra terminal-call assumptions that may cut the analyzed body are reported in limitations with available callee identities."), functionWorkflow("inspect_native_api", "Analyze a native API boundary in one function identified by symbol or provider-returned address. Returns confidence, evidence, jump-table dispatch/data/case mappings, separately evidenced default targets, unsupported branches, and residual unknowns. Null case values mean unresolved cases, never a known default.")];
3230
+ })))();
3231
+ }
3232
+
3233
+ //#endregion
3234
+ //#region dist/contracts/enhancedToolContracts.js
3235
+ var enhanced, ENHANCED_TOOL_CONTRACTS;
3236
+ function init_enhancedToolContracts() {
3237
+ return (init_enhancedToolContracts = __esmMin((() => {
3238
+ init_enhancedInputs();
3239
+ init_toolOutputSchemaGroups();
3240
+ init_toolOutputSchemaPrimitives();
3241
+ init_toolContractHelpers();
3242
+ init_toolEffects();
3243
+ init_functionWorkflowToolContracts();
3244
+ enhanced = (name, description, inputSchema) => ({
3245
+ name,
3246
+ ...toolContractMetadata(name),
3247
+ description,
3248
+ kind: "enhanced",
3249
+ inputSchema,
3250
+ outputSchema: requireOutputSchema(enhancedOutputSchemas, name),
3251
+ examples: examplesFor(name, inputSchema)
3252
+ });
3253
+ ENHANCED_TOOL_CONTRACTS = [
3254
+ enhanced("inspect_native_dispatch_metadata", "Inspect the bound provider's name inventory for Objective-C class/method symbols and Swift mangled symbols, returning at most max_records decoded names. Includes target SHA-256 when available, provider identity/version, analysis-profile digest, facet coverage, and per-record Evidence. This is symbol-level evidence, not runtime metadata: ivar layouts, protocol conformances, witness/class tables, and relative pointers are explicitly marked unsupported unless a provider supplies those decoders. The provider controls how its name inventory is acquired.", enhancedInputSchemas.inspect_native_dispatch_metadata),
3255
+ enhanced("get_objc_classes", "Discover and deduplicate Objective-C class labels, optionally filtering by literal substring.", enhancedInputSchemas.get_objc_classes),
3256
+ enhanced("get_objc_protocols", "Discover and deduplicate Objective-C and Swift protocol labels.", enhancedInputSchemas.get_objc_protocols),
3257
+ enhanced("batch_decompile", "Decompile each explicit procedure symbol or address concurrently. Preserves each input selector in address and reports the observed canonical entry and entry label in procedure; identity or label failures remain explicit without discarding usable pseudocode. Returns ordered per-item success or error results and aggregate counts.", enhancedInputSchemas.batch_decompile),
3258
+ enhanced("get_call_graph", "Resolve one symbol or address to its canonical procedure entry, then traverse the bound provider's caller or callee relationships until the reachable graph is exhausted. Every node uses a canonical address and has an ok/error status; failures use safe typed projections. Unresolved indirect calls may be missing and results are not a whole-program CFG.", enhancedInputSchemas.get_call_graph),
3259
+ enhanced("analyze_swift_types", "Categorize analyzed Swift procedure names using their manglings or same-address Swift symbol aliases. Decodes legacy and literal modern nominal contexts into classes, structs, enums, protocols, and extensions. Preserves provider names and supporting mangled_names; unresolved categories appear in other and in unclassified, which remains inline even under category filters. Returns deduplicated procedure-name counts, not unique source types, plus identification limitations. Optionally select one category and/or apply a case-sensitive literal filter to provider names or supporting manglings; for example, use {category: \"structs\", pattern: \"Pair\"}.", enhancedInputSchemas.analyze_swift_types),
3260
+ enhanced("find_xrefs_to_name", "Resolve an exact name against the bound provider's name inventory and return a resolved or unresolved result. Unresolved names use the stable name_not_found reason; this xref workflow returns address-only projections.", enhancedInputSchemas.find_xrefs_to_name),
3261
+ enhanced("binary_overview", "Return the bound document and exhaustive procedure/string counts, plus every segment and segment_count when the provider supports segment enumeration. If segment fields are omitted, segment coverage is unavailable rather than empty. When every observed segment agrees on an analysis image base, return it as image_base so callers can relate provider addresses to their loader coordinates. Use search_procedures, list_procedures, or analyze_function directly when you already know which procedure to inspect.", enhancedInputSchemas.binary_overview),
3262
+ ...FUNCTION_WORKFLOW_TOOL_CONTRACTS,
3263
+ enhanced("trace_feature", "Trace the complete literal query, preserving spaces, through every matching string and procedure, their xrefs, and truthful containing-procedure resolution. Returns observations, operation count, and residual unknowns without inferring reference kinds.", enhancedInputSchemas.trace_feature),
3264
+ enhanced("trace_call_path", "Resolve start and optional goal symbols or addresses to canonical procedure entries, then trace direct callers or callees until the graph is exhausted or the goal is reached. Results use canonical addresses; Evidence preserves supplied selectors. Returns visited nodes, direct-call edges, a shortest traversal path, provider failures, and residual unknowns. A requested goal is unknown when unresolved expansions prevent proving it absent; unresolved indirect calls remain unknown.", enhancedInputSchemas.trace_call_path),
3265
+ enhanced("trace_native_ui_action", "Trace one unique compiled UI action, object ID, native symbol or exact function address through authored connections, encoded or symbolized Objective-C handlers, and bounded static call references. Typed direct and resolved indirect calls, ambiguous candidates, inferred untyped provider callees, and targetless sites remain distinct. Runtime reachability is unknown; use trace_native_values for recovered value dependencies.", enhancedInputSchemas.trace_native_ui_action),
3266
+ enhanced("trace_native_values", "Trace a bounded static dependency graph from one explicit native procedure. Includes high-p-code def-use, constants, operators, memory and branch operations, resolved call edges, and derived argument/parameter and return/output bindings. Missing bindings, alias semantics, persistent state and RNG roles remain unknown. Budgets bound depth, decompilations, graph size and payloads; nodes are paginated.", enhancedInputSchemas.trace_native_values)
3267
+ ];
3268
+ })))();
3269
+ }
3270
+
3271
+ //#endregion
3272
+ //#region dist/contracts/sessionLifecycleInputs.js
3273
+ var snapshotPathSchema, binaryTargetPathSchema, openBinaryInputSchema, closeBinaryInputSchema;
3274
+ function init_sessionLifecycleInputs() {
3275
+ return (init_sessionLifecycleInputs = __esmMin((() => {
3276
+ init_dosCom();
3277
+ init_localPath();
3278
+ init_rawBinary();
3279
+ init_providerSelection();
3280
+ snapshotPathSchema = localPathStringSchema.refine(isAbsolute, { message: "snapshot_path must be an absolute local filesystem path (for example /tmp/rea/analysis.json or C:\\rea\\analysis.json)" }).describe("Absolute local filesystem path for the analysis snapshot; relative paths are rejected.");
3281
+ binaryTargetPathSchema = localPathStringSchema.refine(isAbsolute, { message: "path must be an absolute local filesystem path (for example /tmp/fixture.bin or C:\\analysis\\fixture.bin)" }).describe("Absolute local filesystem path for the analysis target; relative paths are rejected.");
3282
+ openBinaryInputSchema = z.strictObject({
3283
+ path: binaryTargetPathSchema,
3284
+ format: executableFormatHintSchema.optional().describe("Explicit headerless interpretation: dos-com or raw-binary. Omission preserves header-based detection."),
3285
+ architecture: binaryArchitectureSchema.optional().describe("Caller-supplied CPU family. Required with format=raw-binary; rejected otherwise."),
3286
+ entry_point: rawBinaryEntryPointSchema.optional().describe("Caller-supplied load and entry address (0xhex). File offset 0 is mapped here. Required with format=raw-binary; rejected otherwise."),
3287
+ provider_id: analysisProviderSelectorSchema.optional(),
3288
+ snapshot_path: snapshotPathSchema.optional()
3289
+ }).superRefine((value, context) => {
3290
+ const pairing = rawBinarySelectionError({
3291
+ ...value.format === undefined ? {} : { format: value.format },
3292
+ ...value.architecture === undefined ? {} : { architecture: value.architecture },
3293
+ ...value.entry_point === undefined ? {} : { entryPoint: value.entry_point }
3294
+ });
3295
+ if (pairing === undefined) return;
3296
+ context.addIssue({
3297
+ code: "custom",
3298
+ path: value.format === "raw-binary" ? value.architecture === undefined ? ["architecture"] : ["entry_point"] : value.architecture === undefined ? ["entry_point"] : ["architecture"],
3299
+ message: pairing
3300
+ });
3301
+ });
3302
+ closeBinaryInputSchema = z.strictObject({
3303
+ snapshot_path: snapshotPathSchema.optional(),
3304
+ overwrite: z.boolean().default(false)
3305
+ });
3306
+ })))();
3307
+ }
3308
+
3309
+ //#endregion
3310
+ //#region dist/contracts/sessionStatusContract.js
3311
+ var binarySessionInputSchema;
3312
+ function init_sessionStatusContract() {
3313
+ return (init_sessionStatusContract = __esmMin((() => {
3314
+ init_localPath();
3315
+ binarySessionInputSchema = z.strictObject({
3316
+ expected_package_version: z.string().min(1).optional(),
3317
+ expected_catalog_digest: z.string().regex(/^[a-f0-9]{64}$/u).optional(),
3318
+ expected_server_path: localPathStringSchema.refine(isAbsolute, { message: "expected_server_path must be an absolute local filesystem path (for example /opt/rea/dist/main.js)" }).describe("Absolute local filesystem path expected for the running server; relative paths are rejected.").optional()
3319
+ });
3320
+ })))();
3321
+ }
3322
+
3323
+ //#endregion
3324
+ //#region dist/contracts/sessionToolContracts.js
3325
+ var session, exportEvidenceBundleInputSchema, SESSION_TOOL_CONTRACTS;
3326
+ function init_sessionToolContracts() {
3327
+ return (init_sessionToolContracts = __esmMin((() => {
3328
+ init_localPath();
3329
+ init_artifactComparison();
3330
+ init_bundleComparison();
3331
+ init_callPathSchemas();
3332
+ init_changedBehavior();
3333
+ init_functionComparisonSchemas();
3334
+ init_processScenario();
3335
+ init_residualUnknown();
3336
+ init_reconstructionVerificationSchemas();
3337
+ init_staticRuntimeCorrelation();
3338
+ init_toolOutputSchemaGroups();
3339
+ init_toolOutputSchemaPrimitives();
3340
+ init_sessionLifecycleInputs();
3341
+ init_sessionStatusContract();
3342
+ init_sessionToolSchemas();
3343
+ init_toolContractHelpers();
3344
+ init_toolEffects();
3345
+ session = (name, description, inputSchema) => ({
3346
+ name,
3347
+ ...toolContractMetadata(name),
3348
+ description,
3349
+ kind: "session",
3350
+ inputSchema,
3351
+ outputSchema: requireOutputSchema(sessionOutputSchemas, name),
3352
+ examples: examplesFor(name, inputSchema)
3353
+ });
3354
+ exportEvidenceBundleInputSchema = z.strictObject({
3355
+ path: localPathStringSchema.refine(isAbsolute, { message: "path must be an absolute local filesystem path (for example /tmp/rea/evidence.json or C:\\rea\\evidence.json)" }).describe("Absolute local filesystem path for the exported evidence bundle; relative paths are rejected."),
3356
+ overwrite: z.boolean().default(false)
3357
+ });
3358
+ SESSION_TOOL_CONTRACTS = [
3359
+ session("open_binary", "Open a local executable, application bundle, archive, JavaScript, source map, plist, or analysis database after validation. format=dos-com explicitly interprets 1..65280 headerless bytes as a DOS COM analysis image. format=raw-binary interprets headerless bytes with a required architecture and entry_point; file offset 0 maps at that address. Omission preserves header-based detection. provider_id selects one deep provider or deterministic auto selection; the binding remains stable until close or an explicit switch, with no failure fallback. Reopening the same target and profile retains its active database and metadata edits. An optional analysis snapshot is imported atomically and must match the binary identity, concrete provider, and canonical analysis profile exactly; importing into a session with metadata mutations requires closing and reopening it first.", openBinaryInputSchema),
3360
+ session("close_binary", "Drain earlier provider requests, optionally write a provider-neutral analysis snapshot atomically to the caller-supplied path, then close the active target and every provider resource started for it. Later provider requests wait until this lifecycle operation finishes. Existing files require explicit overwrite; a failed save leaves the session open so cached analysis is not lost. Metadata edits prevent immutable snapshot saves until the session is recreated; export_evidence_bundle preserves mutable observations before closing without a snapshot.", closeBinaryInputSchema),
3361
+ session("binary_session", "Report the complete current target, provider, capability availability, client-feature, analysis, and server-identity status without starting analysis.", binarySessionInputSchema),
3362
+ 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),
3363
+ 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),
3364
+ session("capture_process_scenario", "Run one caller-selected command under a PTY and return process capture Evidence with residual unknowns. The renderer admits at most 1,000,000 combined terminal cells, computed as columns × (rows + scrollback); every resize uses the selected scrollback and must fit the same budget. Supply a smaller terminal shape when that product is too large; dimensions are never clamped. 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. A positive finalization_ms makes a timeout or idle deadline send SIGTERM to the captured root through its start identity, keep observing, and send SIGKILL once after the interval; exit.finalization records each attempt with its delivery result and the observed exit, and cancellation still ends the run at once. The target runs with the current user's permissions; this is not a security sandbox.", processScenarioSchema),
3365
+ 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),
3366
+ 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),
3367
+ 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),
3368
+ session("compare_bundles", "Compare two canonical Evidence bundles by exact record membership, explicit one-to-one observation pairs, and complete residual-unknown revision histories. Missing bundle members describe omission only, never behavioral equivalence; output is digest-anchored and returns every change inline.", bundleComparisonInputSchema),
3369
+ session("find_changed_behavior", "Aggregate validated process and artifact comparison Evidence. Runtime observations remain distinct from static behavior candidates; missing or incomplete comparisons produce unresolved findings, never causal claims. Returns every finding inline.", changedBehaviorInputSchema),
3370
+ session("build_call_path", "Build every shortest direct-callee path inline from complete analyze_function Evidence records using exact canonical addresses. Missing dossiers and provider mixing remain unknown; every node and edge cites source Evidence.", callPathInputSchema),
3371
+ session("correlate_static_and_runtime", "Evaluate every explicit caller-declared hypothesis between exact static comparison findings and runtime comparison dimensions. Similar names or paths are never auto-matched, consistent cochange never proves causality, and unknown or truncated inputs remain unresolved. Returns all correlations and their complete Evidence closure inline.", staticRuntimeCorrelationInputSchema),
3372
+ session("verify_reconstruction", "Verify a finite typed behavioral and structural specification against a canonical Evidence bundle. Pass means every declared claim has complete comparable authority—not global source equivalence; changed claims fail and missing, limited, or unresolved evidence stays unknown.", reconstructionVerificationInputSchema),
3373
+ session("list_unknowns", "List current residual-unknown heads in deterministic ID order, with optional exact status, severity, and domain filters. Results are complete inline by default; supply offset and limit to page the filtered order. total is the matching-head count and next_offset is null when the page exhausts the result. This is read-only; unresolved, contradicted, and non-truth dispositions remain distinct.", listUnknownsInputSchema),
3374
+ session("record_unknown", "Create one deterministic residual unknown and immutable mutation evidence. Validates all evidence and relationship references, and rejects duplicate stable identity.", recordUnknownInputSchema),
3375
+ session("update_unknown", "Append one immutable full-state revision and mutation evidence. Requires exact expected_revision; stale concurrent writers fail instead of overwriting newer analysis.", updateUnknownInputSchema),
3376
+ session("verify_unknown_resolution", "Revalidate the current residual-unknown head against live bundled evidence, exact authority/confidence/environment requirements, and revision integrity. Withdrawn and out-of-scope dispositions are not truth claims.", verifyUnknownResolutionInputSchema),
3377
+ session("get_evidence_bundle", "Return every retained Evidence record and residual unknown as a complete canonical bundle by default. detail=summary discovers retained records without copying or transferring their payloads; optionally filter by exact Evidence ID, operation, target SHA-256, analysis-profile digest or canonical native procedure address. Metadata distinguishes complete record retention from native value-flow truncation or unavailable/unknown coverage. Use a discovered evidence_id with inspect_analysis_view without restarting a provider. Filters apply only to summary delivery.", getEvidenceBundleInputSchema),
3378
+ session("get_navigation_context", "Return the selected document, current address, and containing/current procedure in one provider-neutral result. The result reflects sequential provider observations, not an atomic cursor snapshot; a cursor outside any procedure returns procedure: null.", navigationContextInputSchema),
3379
+ session("inspect_address_context", "Inspect one explicit reproducible address for its analyzed name, containing procedure, regular and inline comments, and matching bookmarks. Each unsupported facet returns a typed unavailable outcome; use xrefs, assembly, or pseudocode for those deeper views.", addressContextInputSchema)
3380
+ ];
3381
+ })))();
3382
+ }
3383
+
3384
+ //#endregion
3385
+ //#region dist/contracts/reverseEngineeringToolContracts.js
3386
+ var commandObservationSchema, REVERSE_ENGINEERING_TOOL_CONTRACTS;
3387
+ function init_reverseEngineeringToolContracts() {
3388
+ return (init_reverseEngineeringToolContracts = __esmMin((() => {
3389
+ init_reverseEngineering();
3390
+ init_toolOutputSchemaPrimitives();
3391
+ init_toolEffects();
3392
+ commandObservationSchema = z.strictObject({
3393
+ stdout: z.string(),
3394
+ stderr: z.string(),
3395
+ exit_code: z.union([
3396
+ z.string(),
3397
+ z.number(),
3398
+ z.null()
3399
+ ]),
3400
+ signal: z.string().nullable(),
3401
+ output_truncated: z.boolean(),
3402
+ completion_status: z.enum(["complete", "unknown"]),
3403
+ artifact_sha256_after: z.string().regex(/^[a-f0-9]{64}$/u).nullable(),
3404
+ artifact_changed: z.boolean().nullable()
3405
+ });
3406
+ REVERSE_ENGINEERING_TOOL_CONTRACTS = [{
3407
+ name: "inspect_with_objdump",
3408
+ ...toolContractMetadata("inspect_with_objdump"),
3409
+ kind: "native-provider",
3410
+ description: "Run caller-selected GNU objdump inspection against a local artifact, or request operation=architectures without a path to list BFD targets advertised by the installed binary. Preserves decoded stdout and stderr inline with SHA-256 Evidence for artifact inspections, up to a shared 16 MiB combined limit; invalid UTF-8 bytes are represented by replacement characters and flagged in Evidence limitations. output_truncated reports output beyond that limit and completion_status is unknown if buffer enforcement terminated the process. The raw output is authoritative and REA does not claim a stable normalized format. DWARF does not follow local debug links by default. Set follow_debug_links to true to follow them; identities of external debug files are not bound to Evidence. REA clears DEBUGINFOD_URLS for objdump so DWARF processing does not make debuginfod network requests. Architecture output is subjectless and does not establish support for any artifact.",
3411
+ inputSchema: objdumpInputSchema,
3412
+ outputSchema: evidenceResultOf(commandObservationSchema),
3413
+ examples: [{
3414
+ title: "Disassemble code sections",
3415
+ input: {
3416
+ path: "/tmp/program",
3417
+ operation: "disassemble"
3418
+ }
3419
+ }, {
3420
+ title: "List advertised BFD targets",
3421
+ input: { operation: "architectures" }
3422
+ }]
3423
+ }, {
3424
+ name: "execute_rizin_command",
3425
+ ...toolContractMetadata("execute_rizin_command"),
3426
+ kind: "native-provider",
3427
+ description: "Execute one caller-selected Rizin command against a local artifact using the Rizin CLI profile that suppresses user settings and scripts while retaining plugins. Preserves decoded stdout and stderr inline with SHA-256 Evidence, up to a shared 16 MiB combined limit; invalid UTF-8 bytes are represented by replacement characters and flagged in Evidence limitations. output_truncated reports output beyond that limit and completion_status is unknown if buffer enforcement terminated the process. Rizin commands and retained plugins can execute foreign code, mutate files, access the network, and read files outside the selected artifact; identities and contents of those external inputs are not bound to Evidence. Command effects depend on the Rizin command and loaded plugins; JSON is command-specific and raw output remains authoritative. In a shared MCP server, this admitted command closes any active binary-analysis session; after its effects have settled, call open_binary before further analysis. Close an active Ghidra session explicitly first.",
3428
+ inputSchema: rizinInputSchema,
3429
+ outputSchema: evidenceResultOf(commandObservationSchema),
3430
+ examples: [{
3431
+ title: "Inspect binary information",
3432
+ input: {
3433
+ path: "/tmp/program",
3434
+ command: "iI"
3435
+ }
3436
+ }]
3437
+ }];
3438
+ })))();
3439
+ }
3440
+
3441
+ //#endregion
3442
+ //#region dist/contracts/gdbToolContracts.js
3443
+ var sessionId$1, gdbCommandResult, GDB_TOOL_CONTRACTS;
3444
+ function init_gdbToolContracts() {
3445
+ return (init_gdbToolContracts = __esmMin((() => {
3446
+ init_toolOutputSchemaPrimitives();
3447
+ init_toolEffects();
3448
+ sessionId$1 = z.string().uuid();
3449
+ gdbCommandResult = z.strictObject({
3450
+ command: z.string(),
3451
+ mi: z.string(),
3452
+ records: z.array(z.string()),
3453
+ console: z.string(),
3454
+ target: z.string(),
3455
+ log: z.string(),
3456
+ process_exit_observed: z.boolean().optional(),
3457
+ process_exit_code: z.number().int().nullable().optional(),
3458
+ process_exit_signal: z.string().nullable().optional(),
3459
+ output_truncated: z.boolean(),
3460
+ output_invalid_utf8: z.literal(true).optional(),
3461
+ completion_status: z.enum(["complete", "unknown"])
3462
+ });
3463
+ GDB_TOOL_CONTRACTS = [
3464
+ {
3465
+ name: "start_gdb_session",
3466
+ ...toolContractMetadata("start_gdb_session"),
3467
+ kind: "native-provider",
3468
+ description: "Start a BYO GDB process in MI3 mode when available, suppress startup files, and disable auto-loading. Persistent GDB sessions are available only on Linux, where REA can verify live inferior output descriptors through /proc before detaching; macOS descriptor verification is not implemented, and Windows Job Object cleanup can terminate debugger inferiors. Optionally set inferior_tty to a caller-selected terminal for future inferior runs; REA verifies the setting through GDB/MI before the session becomes ready. The selected terminal must remain available after GDB exits. A live inferior can be detached during close only while this durable output sink remains verified. The session persists in this REA MCP server process and receives an explicit session ID.",
3469
+ inputSchema: z.strictObject({ inferior_tty: z.string().min(1).optional().describe("Caller-selected terminal path for future inferior runs. GDB must report the exact configured path before the session is ready.") }),
3470
+ outputSchema: z.strictObject({
3471
+ session_id: sessionId$1,
3472
+ mi_version: z.enum(["mi3", "mi2"])
3473
+ }),
3474
+ examples: [{
3475
+ title: "Start GDB",
3476
+ input: {}
3477
+ }]
3478
+ },
3479
+ {
3480
+ name: "gdb_console",
3481
+ ...toolContractMetadata("gdb_console"),
3482
+ kind: "native-provider",
3483
+ description: "Run one unrestricted GDB CLI command through MI interpreter-exec console and return raw MI, console, target, and log records inline with Evidence. A command timeout preserves collected records with completion_status unknown and stops the owned debugger session. Commands can execute shell, alter target state, access files, and use network. Closing the debugger never implies target termination. In a shared MCP server, this admitted command closes any active binary-analysis session; after its effects have settled, call open_binary before further analysis. Close an active Ghidra session explicitly first.",
3484
+ inputSchema: z.strictObject({
3485
+ session_id: sessionId$1,
3486
+ command: z.string().min(1)
3487
+ }),
3488
+ outputSchema: evidenceResultOf(gdbCommandResult),
3489
+ examples: [{
3490
+ title: "Inspect loaded symbols",
3491
+ input: {
3492
+ session_id: "00000000-0000-4000-8000-000000000001",
3493
+ command: "info functions"
3494
+ }
3495
+ }]
3496
+ },
3497
+ {
3498
+ name: "gdb_session_status",
3499
+ ...toolContractMetadata("gdb_session_status"),
3500
+ kind: "native-provider",
3501
+ description: "Return the observed lifecycle state and bounded recent MI records and process diagnostics for one persistent REA GDB session; truncation and invalid-UTF-8 fields report discarded or lossy data.",
3502
+ inputSchema: z.strictObject({ session_id: sessionId$1 }),
3503
+ outputSchema: z.strictObject({
3504
+ session_id: sessionId$1,
3505
+ mi_version: z.enum(["mi3", "mi2"]),
3506
+ state: z.enum(["ready", "closed"]),
3507
+ recent_mi_records: z.array(z.string()),
3508
+ recent_mi_records_truncated: z.boolean(),
3509
+ mi_invalid_utf8: z.boolean(),
3510
+ stderr: z.string(),
3511
+ stderr_observed_bytes: z.number().int().nonnegative(),
3512
+ stderr_truncated: z.boolean(),
3513
+ stderr_invalid_utf8: z.boolean(),
3514
+ diagnostics_truncated: z.boolean(),
3515
+ inferior_tty: z.string().nullable(),
3516
+ inferior_tty_verified: z.boolean()
3517
+ }),
3518
+ examples: [{
3519
+ title: "Check GDB session",
3520
+ input: { session_id: "00000000-0000-4000-8000-000000000001" }
3521
+ }]
3522
+ },
3523
+ {
3524
+ name: "close_gdb_session",
3525
+ ...toolContractMetadata("close_gdb_session"),
3526
+ kind: "native-provider",
3527
+ description: "Close the owned GDB process after verifying the inferior state. When one live thread group has a verified durable output TTY, REA automatically detaches it, which may resume target execution; otherwise close reports that a disposition is required. REA never kills attached or remote targets as part of debugger cleanup. In a shared MCP server, this admitted close retires any active binary-analysis session; after target effects have settled, call open_binary before further analysis. Close an active Ghidra session explicitly first.",
3528
+ inputSchema: z.strictObject({ session_id: sessionId$1 }),
3529
+ outputSchema: z.strictObject({ target_state: z.enum(["none_observed", "unknown"]) }),
3530
+ examples: [{
3531
+ title: "Close GDB session",
3532
+ input: { session_id: "00000000-0000-4000-8000-000000000001" }
3533
+ }]
3534
+ }
3535
+ ];
3536
+ })))();
3537
+ }
3538
+
3539
+ //#endregion
3540
+ //#region dist/contracts/rizinDebugToolContracts.js
3541
+ var sessionId, commandResult, RIZIN_DEBUG_TOOL_CONTRACTS;
3542
+ function init_rizinDebugToolContracts() {
3543
+ return (init_rizinDebugToolContracts = __esmMin((() => {
3544
+ init_toolOutputSchemaPrimitives();
3545
+ init_toolEffects();
3546
+ sessionId = z.string().uuid();
3547
+ commandResult = z.strictObject({
3548
+ command: z.string(),
3549
+ output: z.string(),
3550
+ output_scope: z.literal("command_and_interleaved_session_output"),
3551
+ output_truncated: z.boolean(),
3552
+ output_invalid_utf8: z.literal(true).optional(),
3553
+ completion_status: z.enum(["complete", "unknown"]),
3554
+ backend: z.string().nullable()
3555
+ });
3556
+ RIZIN_DEBUG_TOOL_CONTRACTS = [
3557
+ {
3558
+ name: "start_rizin_debug_session",
3559
+ ...toolContractMetadata("start_rizin_debug_session"),
3560
+ kind: "native-provider",
3561
+ description: "Start a persistent Rizin debugger session using `-N` to suppress user settings and scripts while retaining plugins, `-0` for NUL framing, and `-d` with an optional caller-selected IO debugger backend. Requires a caller-selected Linux TTY for inferior stdout and stderr; the target may write directly to that terminal while running and after detach. REA verifies both destinations and `dbg.exitkills=false` before detaching. Backend and target capabilities depend on the installed build. The session lives in this REA MCP process. Persistent sessions require Linux `/proc` descriptor readback. In a shared MCP server, starting this session retires any active binary-analysis session; after target effects have settled, call open_binary before further analysis. Close an active Ghidra session explicitly first.",
3562
+ inputSchema: z.strictObject({
3563
+ path: z.string().min(1),
3564
+ inferior_tty: z.string().min(1),
3565
+ backend: z.string().min(1).optional()
3566
+ }),
3567
+ outputSchema: z.strictObject({
3568
+ session_id: sessionId,
3569
+ backend: z.string().nullable()
3570
+ }),
3571
+ examples: [{
3572
+ title: "Start Rizin debugger",
3573
+ input: {
3574
+ path: "/tmp/program",
3575
+ inferior_tty: "/dev/pts/7"
3576
+ }
3577
+ }]
3578
+ },
3579
+ {
3580
+ name: "rizin_debug_command",
3581
+ ...toolContractMetadata("rizin_debug_command"),
3582
+ kind: "native-provider",
3583
+ description: "Execute one unrestricted command in a persistent Rizin debugger session. Returns raw output inline with Evidence, including backend output interleaved before the completion marker. If the command exceeds the output or frame limit, `output_truncated` is true and `completion_status` is `unknown`; retained partial output is returned and the owned debugger session is stopped. Unsolicited frames already queued before the command make the session unavailable because correlation is ambiguous. Commands can access local files, shell, network, plugins, and target state; effects depend on the active backend and target. In a shared MCP server, this admitted command closes any active binary-analysis session; after its effects have settled, call open_binary before further analysis. Close an active Ghidra session explicitly first.",
3584
+ inputSchema: z.strictObject({
3585
+ session_id: sessionId,
3586
+ command: z.string().min(1).refine((value) => !/[\r\n]/u.test(value), "A single command line is required")
3587
+ }),
3588
+ outputSchema: evidenceResultOf(commandResult),
3589
+ examples: [{
3590
+ title: "Inspect debugger state",
3591
+ input: {
3592
+ session_id: "00000000-0000-4000-8000-000000000001",
3593
+ command: "dr"
3594
+ }
3595
+ }]
3596
+ },
3597
+ {
3598
+ name: "rizin_debug_session_status",
3599
+ ...toolContractMetadata("rizin_debug_session_status"),
3600
+ kind: "native-provider",
3601
+ description: "Return observed lifecycle state and bounded recent NUL-framed output and process diagnostics for one Rizin debugger session; truncation fields report discarded data, and output_invalid_utf8 reports whether invalid UTF-8 has been observed in session frame bytes; recent output may contain replacement characters.",
3602
+ inputSchema: z.strictObject({ session_id: sessionId }),
3603
+ outputSchema: z.strictObject({
3604
+ session_id: sessionId,
3605
+ state: z.enum(["ready", "closed"]),
3606
+ inferior_tty: z.string(),
3607
+ recent_output: z.array(z.string()),
3608
+ recent_output_truncated: z.boolean(),
3609
+ diagnostics_truncated: z.boolean(),
3610
+ output_invalid_utf8: z.boolean()
3611
+ }),
3612
+ examples: [{
3613
+ title: "Check Rizin session",
3614
+ input: { session_id: "00000000-0000-4000-8000-000000000001" }
3615
+ }]
3616
+ },
3617
+ {
3618
+ name: "close_rizin_debug_session",
3619
+ ...toolContractMetadata("close_rizin_debug_session"),
3620
+ kind: "native-provider",
3621
+ description: "Close the REA-owned Rizin debugger only after verifying no inferior remains or detaching one with a verified caller-selected TTY output sink. A detached target may continue running and write to that TTY; target state is otherwise reported as unknown. REA never signals an inferior based on PID or path. In a shared MCP server, this admitted close retires any active binary-analysis session; after target effects have settled, call open_binary before further analysis. Close an active Ghidra session explicitly first.",
3622
+ inputSchema: z.strictObject({ session_id: sessionId }),
3623
+ outputSchema: z.strictObject({ target_state: z.literal("unknown") }),
3624
+ examples: [{
3625
+ title: "Close Rizin debugger",
3626
+ input: { session_id: "00000000-0000-4000-8000-000000000001" }
3627
+ }]
3628
+ }
3629
+ ];
3630
+ })))();
3631
+ }
3632
+
3633
+ //#endregion
3634
+ //#region dist/contracts/toolContracts.js
3635
+ var TOOL_CONTRACTS, toolContract;
3636
+ function init_toolContracts() {
3637
+ return (init_toolContracts = __esmMin((() => {
3638
+ init_captureToolContracts();
3639
+ init_signalToolContracts();
3640
+ init_wasmToolContracts();
3641
+ init_evmToolContracts();
3642
+ init_goToolContracts();
3643
+ init_rustToolContracts();
3644
+ init_sqliteToolContracts();
3645
+ init_analysisViewToolContracts();
3646
+ init_binaryDiagnosticsToolContracts();
3647
+ init_nativeToolContracts();
3648
+ init_artifactToolContracts();
3649
+ init_managedToolContracts();
3650
+ init_firmwareToolContracts();
3651
+ init_androidToolContracts();
3652
+ init_apktoolToolContracts();
3653
+ init_pcapToolContracts();
3654
+ init_flutterToolContracts();
3655
+ init_jebToolContracts();
3656
+ init_adbToolContracts();
3657
+ init_managedWorkflowToolContracts();
3658
+ init_browserProviderToolContracts();
3659
+ init_electronToolContracts();
3660
+ init_javascriptRuntimeObservationToolContracts();
3661
+ init_applicationToolContracts();
3662
+ init_webScriptToolContracts();
3663
+ init_webRuntimeToolContracts();
3664
+ init_webNetworkCaptureToolContracts();
3665
+ init_javascriptRecoveryToolContracts();
3666
+ init_officialToolContracts();
3667
+ init_enhancedToolContracts();
3668
+ init_sessionToolContracts();
3669
+ init_cutterToolContracts();
3670
+ init_reverseEngineeringToolContracts();
3671
+ init_gdbToolContracts();
3672
+ init_rizinDebugToolContracts();
3673
+ init_fridaToolContracts();
3674
+ TOOL_CONTRACTS = [
3675
+ ...OFFICIAL_TOOL_CONTRACTS,
3676
+ ...ENHANCED_TOOL_CONTRACTS,
3677
+ ...NATIVE_TOOL_CONTRACTS,
3678
+ ...BINARY_DIAGNOSTICS_TOOL_CONTRACTS,
3679
+ ...ANALYSIS_VIEW_TOOL_CONTRACTS,
3680
+ ...ARTIFACT_TOOL_CONTRACTS,
3681
+ ...EVM_TOOL_CONTRACTS,
3682
+ ...GO_TOOL_CONTRACTS,
3683
+ ...RUST_TOOL_CONTRACTS,
3684
+ ...WASM_TOOL_CONTRACTS,
3685
+ ...SQLITE_TOOL_CONTRACTS,
3686
+ ...CAPTURE_TOOL_CONTRACTS,
3687
+ ...SIGNAL_TOOL_CONTRACTS,
3688
+ ...MANAGED_TOOL_CONTRACTS,
3689
+ ...ANDROID_TOOL_CONTRACTS,
3690
+ ...APKTOOL_TOOL_CONTRACTS,
3691
+ ...PCAP_TOOL_CONTRACTS,
3692
+ ...FLUTTER_TOOL_CONTRACTS,
3693
+ ...JEB_TOOL_CONTRACTS,
3694
+ ...ADB_TOOL_CONTRACTS,
3695
+ ...FIRMWARE_TOOL_CONTRACTS,
3696
+ ...MANAGED_WORKFLOW_TOOL_CONTRACTS,
3697
+ ...BROWSER_PROVIDER_TOOL_CONTRACTS,
3698
+ ...ELECTRON_TOOL_CONTRACTS,
3699
+ ...JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS,
3700
+ ...APPLICATION_TOOL_CONTRACTS,
3701
+ ...WEB_SCRIPT_TOOL_CONTRACTS,
3702
+ ...WEB_RUNTIME_TOOL_CONTRACTS,
3703
+ ...WEB_NETWORK_CAPTURE_TOOL_CONTRACTS,
3704
+ ...JAVASCRIPT_RECOVERY_TOOL_CONTRACTS,
3705
+ ...SESSION_TOOL_CONTRACTS,
3706
+ ...CUTTER_TOOL_CONTRACTS,
3707
+ ...REVERSE_ENGINEERING_TOOL_CONTRACTS,
3708
+ ...GDB_TOOL_CONTRACTS,
3709
+ ...RIZIN_DEBUG_TOOL_CONTRACTS,
3710
+ ...FRIDA_TOOL_CONTRACTS
3711
+ ];
3712
+ toolContract = (name) => {
3713
+ const contract = TOOL_CONTRACTS.find((candidate) => candidate.name === name);
3714
+ if (contract === undefined) throw new Error(`Missing tool contract: ${name}`);
3715
+ return contract;
3716
+ };
3717
+ })))();
3718
+ }
3719
+
3720
+ //#endregion
3721
+ export { ENHANCED_TOOL_CONTRACTS, TOOL_CONTRACTS, init_enhancedToolContracts, init_toolContracts, toolContract };