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,1427 @@
1
+ import { t as __esmMin } from "./rolldown-runtime-BjeaiXFo.js";
2
+ import { _ as ok, f as init_analysisErrorCore, g as init_result, h as err, i as AnalysisCancelledError } from "./analysisErrorCore-DXRTvF_m.js";
3
+ import { C as BinaryTargetError, E as init_configurationErrors } from "./analysisErrorProjection-BN0EPM-3.js";
4
+ import { Q as init_zipPackageFormat, Z as hasZipSignature, et as isZipPackageFormat, tt as zipPackageFormatForPath } from "./nativeValueTrace-DR9UE62L.js";
5
+ import { n as isPathWithinRoot, t as init_localPath } from "./localPath-AxvW9aPe.js";
6
+ import { _ as init_machoContainer, a as parseXmlPropertyList, d as init_RegularFile, f as openRegularFile, g as classifyFatContainerIdentity, h as init_OwnedFileHandle, l as RegularFileAdmissionFailure, m as OwnedFileHandle, n as init_propertyListKeys, p as sameRegularFileState, r as omitPrototypeKeys, u as RegularFileChangedError, v as readFatContainerHeader } from "./propertyListKeys-DD25WsjI.js";
7
+ import { Sa as init_rawBinary, ba as admitRawBinary, wa as rawBinarySelectionError } from "./toolOutputSchemaGroups-ColvNZ1r.js";
8
+ import { n as readBoundedFileBytes, t as init_BoundedFileBytes } from "./BoundedFileBytes-DuczXiQZ.js";
9
+ import { I as init_dosMz, L as observeMzWindowsHeader, R as parseDosMzHeader, a as preflightPropertyListDecode, c as hasBinaryPlistSignature, d as init_appleArchiveFormat, f as decodeXmlPlistText, i as init_InterfaceBuilderDecodeBudget, o as MAX_XML_PLIST_PROBE_BYTES, p as init_propertyListXmlText, s as createXmlPlistSignatureProbe } from "./InterfaceBuilderDecodeBudget-5F2AkxJT.js";
10
+ import { c as validateDosComLength, s as init_dosCom } from "./managedToolContracts-CK--I_s7.js";
11
+ import { extname, isAbsolute, join, resolve } from "node:path";
12
+ import { constants } from "node:fs";
13
+ import { z } from "zod";
14
+ import { createHash } from "node:crypto";
15
+ import { access, lstat, opendir, readFile, realpath, stat } from "node:fs/promises";
16
+ import { parseBinary } from "plist";
17
+
18
+ //#region dist/domain/elfFixedHeader.js
19
+ var readElfFixedHeader;
20
+ function init_elfFixedHeader() {
21
+ return (init_elfFixedHeader = __esmMin((() => {
22
+ init_result();
23
+ readElfFixedHeader = (bytes, totalBytes = bytes.length) => {
24
+ if (bytes.length >= 4 && bytes.toString("hex", 0, 4) !== "7f454c46") return err("not an ELF image");
25
+ if (bytes.length < 16) return err("ELF identification is truncated");
26
+ const classByte = bytes[4];
27
+ if (classByte !== 1 && classByte !== 2) return err("unsupported ELF class");
28
+ const dataByte = bytes[5];
29
+ if (dataByte !== 1 && dataByte !== 2) return err("unsupported ELF endianness");
30
+ if (bytes[6] !== 1) return err("unsupported ELF identification version");
31
+ const elfClass = classByte === 1 ? 32 : 64;
32
+ const minimumSize = elfClass === 32 ? 52 : 64;
33
+ if (!Number.isSafeInteger(totalBytes) || totalBytes < bytes.length || totalBytes < minimumSize || bytes.length < minimumSize) return err(`truncated ELF header: an ELF${elfClass} header needs ${minimumSize} bytes; the file has ${totalBytes}`);
34
+ const littleEndian = dataByte === 1;
35
+ const readU16 = (offset) => littleEndian ? bytes.readUInt16LE(offset) : bytes.readUInt16BE(offset);
36
+ const readU32 = (offset) => littleEndian ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
37
+ if (readU32(20) !== 1) return err("unsupported ELF header version");
38
+ const headerSize = readU16(elfClass === 32 ? 40 : 52);
39
+ if (headerSize < minimumSize || headerSize > totalBytes) return err("invalid ELF header size");
40
+ return ok({
41
+ elfClass,
42
+ byteOrder: littleEndian ? "little" : "big",
43
+ headerSize
44
+ });
45
+ };
46
+ })))();
47
+ }
48
+
49
+ //#endregion
50
+ //#region dist/domain/peMachine.js
51
+ var architectureForMachine, NATIVE_OS_OVERRIDES, decodePeMachine;
52
+ function init_peMachine() {
53
+ return (init_peMachine = __esmMin((() => {
54
+ architectureForMachine = (machine) => {
55
+ switch (machine) {
56
+ case 332: return "x86";
57
+ case 34404: return "x86_64";
58
+ case 448:
59
+ case 450:
60
+ case 452: return "arm";
61
+ case 43620: return "arm64";
62
+ }
63
+ return undefined;
64
+ };
65
+ NATIVE_OS_OVERRIDES = [
66
+ 17988,
67
+ 44484,
68
+ 44485,
69
+ 31609,
70
+ 6547,
71
+ 6546
72
+ ];
73
+ decodePeMachine = (machine) => {
74
+ const direct = architectureForMachine(machine);
75
+ if (direct !== undefined) return {
76
+ architecture: direct,
77
+ nativeOsOverride: false
78
+ };
79
+ for (const override of NATIVE_OS_OVERRIDES) {
80
+ const architecture = architectureForMachine(machine ^ override);
81
+ if (architecture !== undefined) return {
82
+ architecture,
83
+ nativeOsOverride: true
84
+ };
85
+ }
86
+ return undefined;
87
+ };
88
+ })))();
89
+ }
90
+
91
+ //#endregion
92
+ //#region dist/domain/binaryTarget.js
93
+ var parseExecutableHeader, parseThinMachO, parseFatMachO, fatHostArchitecture, fatIdentityError, parseElf, parseMz, parsePeRecord, parseCodeViewData, peDebugDirectoryEntry, peRvaToFileOffset, parsePeCodeViewFromBuffer, peManagedStatus, machArchitecture, elfArchitecture;
94
+ function init_binaryTarget() {
95
+ return (init_binaryTarget = __esmMin((() => {
96
+ init_result();
97
+ init_elfFixedHeader();
98
+ init_dosMz();
99
+ init_peMachine();
100
+ init_machoContainer();
101
+ parseExecutableHeader = (bytes, hostArchitecture, fileSize = bytes.length, mzWindowsHeaderSignature) => {
102
+ if (bytes.length >= 4 && bytes.subarray(0, 4).equals(Buffer.from([
103
+ 127,
104
+ 69,
105
+ 76,
106
+ 70
107
+ ]))) return parseElf(bytes, fileSize);
108
+ if (bytes.length >= 2 && bytes[0] === 77 && bytes[1] === 90) return parseMz(bytes, fileSize, mzWindowsHeaderSignature);
109
+ if (bytes.length < 8) return err("truncated or unsupported binary header");
110
+ const magic = bytes.readUInt32BE(0);
111
+ if ([
112
+ 4277009102,
113
+ 4277009103,
114
+ 3472551422,
115
+ 3489328638
116
+ ].includes(magic)) return parseThinMachO(bytes, magic, fileSize);
117
+ const fatHeader = readFatContainerHeader(bytes, fileSize);
118
+ if (fatHeader.state !== "not-fat") return parseFatMachO(bytes, hostArchitecture, fatHeader);
119
+ return err("unsupported binary format");
120
+ };
121
+ parseThinMachO = (bytes, magic, fileSize) => {
122
+ const is64 = magic === 4277009103 || magic === 3489328638;
123
+ const headerSize = is64 ? 32 : 28;
124
+ if (bytes.length < headerSize) return err(`truncated Mach-O header: a ${is64 ? 64 : 32}-bit header needs ${headerSize} bytes; the file has ${fileSize}`);
125
+ const little = magic === 3472551422 || magic === 3489328638;
126
+ const read = (offset) => little ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
127
+ const architecture = machArchitecture(read(4));
128
+ if (architecture === undefined) return err("unsupported Mach-O architecture");
129
+ const commandBytes = read(20);
130
+ if (headerSize + commandBytes > fileSize) return err(`truncated Mach-O load commands: the header declares ${commandBytes} bytes after its ${headerSize}-byte header; the file has ${fileSize}`);
131
+ return ok({
132
+ format: "mach-o",
133
+ architecture,
134
+ availableArchitectures: [architecture]
135
+ });
136
+ };
137
+ parseFatMachO = (bytes, host, header) => {
138
+ if (header.state === "needs-data") return err("truncated or invalid FAT architecture table");
139
+ if (header.state === "malformed") return err(header.reason);
140
+ const identityError = fatIdentityError(bytes, header);
141
+ if (identityError !== null) return err(identityError);
142
+ const architectures = [];
143
+ const slices = new Map();
144
+ for (const declaration of header.slices) {
145
+ const architecture = machArchitecture(declaration.cpuType);
146
+ if (architecture === undefined || architectures.includes(architecture)) continue;
147
+ architectures.push(architecture);
148
+ slices.set(architecture, {
149
+ offset: declaration.offset,
150
+ size: declaration.size
151
+ });
152
+ }
153
+ const preferred = fatHostArchitecture(host);
154
+ const slice = preferred === undefined ? undefined : slices.get(preferred);
155
+ if (preferred === undefined || slice === undefined) return err(`FAT binary has no host-compatible ${host} architecture`);
156
+ const minimumHeaderSize = preferred === "arm64" || preferred === "x86_64" ? 32 : 28;
157
+ if (slice.size < minimumHeaderSize) return err(`FAT slice for ${preferred} is shorter than its Mach-O header`);
158
+ return ok({
159
+ format: "mach-o-universal",
160
+ architecture: preferred,
161
+ availableArchitectures: architectures,
162
+ universalSlice: {
163
+ offset: slice.offset,
164
+ size: slice.size
165
+ }
166
+ });
167
+ };
168
+ fatHostArchitecture = (host) => {
169
+ switch (host) {
170
+ case "arm64": return "arm64";
171
+ case "x64": return "x86_64";
172
+ case "ia32": return "x86";
173
+ case "arm": return "arm";
174
+ default: return undefined;
175
+ }
176
+ };
177
+ fatIdentityError = (bytes, header) => {
178
+ const identity = classifyFatContainerIdentity(header, (offset) => {
179
+ if (offset >= bytes.length) return undefined;
180
+ if (offset + 4 > bytes.length) return null;
181
+ return bytes.readUInt32BE(offset);
182
+ });
183
+ if (identity.state === "needs-slice-header") return "FAT slice identity is outside the bounded prefix";
184
+ if (identity.state === "not-mach-o") return "FAT table does not identify a Mach-O image";
185
+ if (identity.state === "malformed") return identity.reason;
186
+ return null;
187
+ };
188
+ parseElf = (bytes, fileSize) => {
189
+ const fixedHeader = readElfFixedHeader(bytes, fileSize);
190
+ if (!fixedHeader.ok) return fixedHeader;
191
+ const { elfClass, byteOrder } = fixedHeader.value;
192
+ const little = byteOrder === "little";
193
+ const machine = little ? bytes.readUInt16LE(18) : bytes.readUInt16BE(18);
194
+ const architecture = elfArchitecture(machine);
195
+ if (architecture === undefined) return err("unsupported ELF architecture");
196
+ if (architecture === "mips" || architecture === "riscv" || architecture === "powerpc") {
197
+ const flagsOffset = elfClass === 32 ? 36 : 48;
198
+ const metadata = {
199
+ elfClass,
200
+ byteOrder: little ? "little" : "big",
201
+ type: little ? bytes.readUInt16LE(16) : bytes.readUInt16BE(16),
202
+ flags: little ? bytes.readUInt32LE(flagsOffset) : bytes.readUInt32BE(flagsOffset)
203
+ };
204
+ if (architecture === "powerpc") return ok({
205
+ format: "elf",
206
+ architecture,
207
+ availableArchitectures: [architecture],
208
+ powerpc: metadata
209
+ });
210
+ return architecture === "mips" ? ok({
211
+ format: "elf",
212
+ architecture,
213
+ availableArchitectures: [architecture],
214
+ mips: metadata
215
+ }) : ok({
216
+ format: "elf",
217
+ architecture,
218
+ availableArchitectures: [architecture],
219
+ riscv: metadata
220
+ });
221
+ }
222
+ return ok({
223
+ format: "elf",
224
+ architecture,
225
+ availableArchitectures: [architecture]
226
+ });
227
+ };
228
+ parseMz = (bytes, fileSize, signatureAtOffset) => {
229
+ const windowsHeader = observeMzWindowsHeader(bytes, fileSize, signatureAtOffset);
230
+ if (windowsHeader.state === "header-needed" || windowsHeader.state === "signature-needed") return err("Windows new-header pointer or signature is outside the bounded prefix");
231
+ if (windowsHeader.state === "declared") {
232
+ const { offset } = windowsHeader;
233
+ if (offset < 64 || offset > bytes.length - 24) return err("invalid or truncated Windows executable header in MZ image");
234
+ if ([
235
+ "NE",
236
+ "LE",
237
+ "LX"
238
+ ].includes(windowsHeader.signature)) return err(`unsupported ${windowsHeader.signature} executable in MZ image`);
239
+ if (windowsHeader.signature !== "PE") return err("invalid or truncated Windows executable header in MZ image");
240
+ const codeView = parsePeCodeViewFromBuffer(bytes, offset);
241
+ return parsePeRecord(bytes.subarray(offset), codeView);
242
+ }
243
+ const parsed = parseDosMzHeader(bytes, fileSize, signatureAtOffset);
244
+ return parsed.ok ? ok({
245
+ format: "dos-mz",
246
+ architecture: "x86",
247
+ availableArchitectures: ["x86"]
248
+ }) : parsed;
249
+ };
250
+ parsePeRecord = (record, codeView) => {
251
+ if (record.length < 24 || record.toString("binary", 0, 4) !== "PE\0\0") return err("invalid or truncated PE header");
252
+ const machineType = record.readUInt16LE(4);
253
+ const machine = decodePeMachine(machineType);
254
+ if (machine === undefined) return err(`unsupported PE architecture (COFF machine 0x${machineType.toString(16).padStart(4, "0")})`);
255
+ const { architecture } = machine;
256
+ const optionalHeaderSize = record.readUInt16LE(20);
257
+ if (optionalHeaderSize > 4096 || record.length < 24 + optionalHeaderSize) return err("invalid or truncated PE optional header");
258
+ const optionalHeader = record.subarray(24, 24 + optionalHeaderSize);
259
+ const managed = peManagedStatus(optionalHeader, architecture);
260
+ if (!managed.ok) return managed;
261
+ if (machine.nativeOsOverride && !managed.value) return err("unsupported PE architecture");
262
+ const characteristics = record.readUInt16LE(22);
263
+ return ok({
264
+ format: "pe",
265
+ architecture,
266
+ availableArchitectures: [architecture],
267
+ executableRole: (characteristics & 2) === 0 ? "non-executable" : (characteristics & 8192) === 0 ? "application" : "shared-library",
268
+ managed: managed.value,
269
+ ...codeView !== undefined ? { codeView } : {}
270
+ });
271
+ };
272
+ parseCodeViewData = (buffer, sizeOfData) => {
273
+ if (sizeOfData < 16 || buffer.length < 16) return undefined;
274
+ const magic = buffer.subarray(0, 4).toString("binary");
275
+ const pathOffset = magic === "RSDS" ? 24 : magic === "NB10" ? 16 : undefined;
276
+ if (pathOffset === undefined || sizeOfData <= pathOffset || buffer.length <= pathOffset) return undefined;
277
+ const end = buffer.indexOf(0, pathOffset);
278
+ if (end <= pathOffset || end >= sizeOfData) return undefined;
279
+ const pdbPath = buffer.toString("utf8", pathOffset, end);
280
+ const pdbFileName = pdbPath.split(/[/\\]/u).pop() ?? pdbPath;
281
+ if (magic === "RSDS" && sizeOfData >= 24 && buffer.length >= 24) {
282
+ const part1 = buffer.readUInt32LE(4).toString(16).padStart(8, "0");
283
+ const part2 = buffer.readUInt16LE(8).toString(16).padStart(4, "0");
284
+ const part3 = buffer.readUInt16LE(10).toString(16).padStart(4, "0");
285
+ const part4 = buffer.subarray(12, 14).toString("hex");
286
+ const part5 = buffer.subarray(14, 20).toString("hex");
287
+ const guid = `${part1}-${part2}-${part3}-${part4}-${part5}`;
288
+ const age = buffer.readUInt32LE(20);
289
+ return {
290
+ pdbPath,
291
+ pdbFileName,
292
+ guid,
293
+ age
294
+ };
295
+ }
296
+ if (magic === "NB10") {
297
+ const age = buffer.readUInt32LE(12);
298
+ return {
299
+ pdbPath,
300
+ pdbFileName,
301
+ guid: null,
302
+ age
303
+ };
304
+ }
305
+ return undefined;
306
+ };
307
+ peDebugDirectoryEntry = (optionalHeader) => {
308
+ if (optionalHeader.length < 2) return undefined;
309
+ const magic = optionalHeader.readUInt16LE(0);
310
+ if (magic !== 267 && magic !== 523) return undefined;
311
+ const directoryOffset = magic === 523 ? 112 : 96;
312
+ const directoryCountOffset = directoryOffset - 4;
313
+ if (optionalHeader.length < directoryCountOffset + 4) return undefined;
314
+ const directoryCount = optionalHeader.readUInt32LE(directoryCountOffset);
315
+ if (directoryCount <= 6) return undefined;
316
+ const debugEntryOffset = directoryOffset + 6 * 8;
317
+ if (optionalHeader.length < debugEntryOffset + 8) return undefined;
318
+ const debugRva = optionalHeader.readUInt32LE(debugEntryOffset);
319
+ const debugSize = optionalHeader.readUInt32LE(debugEntryOffset + 4);
320
+ if (debugRva === 0 || debugSize < 28) return undefined;
321
+ return {
322
+ debugRva,
323
+ debugSize,
324
+ sizeOfHeaders: optionalHeader.readUInt32LE(60)
325
+ };
326
+ };
327
+ peRvaToFileOffset = (rva, sectionTable, numberOfSections, sizeOfHeaders, size = 1) => {
328
+ if (rva < sizeOfHeaders && size <= sizeOfHeaders - rva) return rva;
329
+ for (let i = 0; i < numberOfSections; i++) {
330
+ const offset = i * 40;
331
+ if (sectionTable.length < offset + 40) break;
332
+ const virtualAddress = sectionTable.readUInt32LE(offset + 12);
333
+ const sizeOfRawData = sectionTable.readUInt32LE(offset + 16);
334
+ const pointerToRawData = sectionTable.readUInt32LE(offset + 20);
335
+ if (pointerToRawData > 0 && rva >= virtualAddress && rva - virtualAddress < sizeOfRawData && size <= sizeOfRawData - (rva - virtualAddress)) {
336
+ return pointerToRawData + (rva - virtualAddress);
337
+ }
338
+ }
339
+ return undefined;
340
+ };
341
+ parsePeCodeViewFromBuffer = (fileBytes, peOffset) => {
342
+ if (fileBytes.length < peOffset + 24) return undefined;
343
+ const numberOfSections = fileBytes.readUInt16LE(peOffset + 6);
344
+ const optionalHeaderSize = fileBytes.readUInt16LE(peOffset + 20);
345
+ if (optionalHeaderSize > 4096 || fileBytes.length < peOffset + 24 + optionalHeaderSize) return undefined;
346
+ const optionalHeader = fileBytes.subarray(peOffset + 24, peOffset + 24 + optionalHeaderSize);
347
+ const debugDir = peDebugDirectoryEntry(optionalHeader);
348
+ if (debugDir === undefined) return undefined;
349
+ const sectionTableOffset = peOffset + 24 + optionalHeaderSize;
350
+ const sectionTableSize = numberOfSections * 40;
351
+ if (fileBytes.length < sectionTableOffset + sectionTableSize) return undefined;
352
+ const sectionTable = fileBytes.subarray(sectionTableOffset, sectionTableOffset + sectionTableSize);
353
+ const debugFileOffset = peRvaToFileOffset(debugDir.debugRva, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(debugDir.debugSize, 4096));
354
+ if (debugFileOffset === undefined || fileBytes.length < debugFileOffset + 28) return undefined;
355
+ const maxDebugBytes = Math.min(debugDir.debugSize, fileBytes.length - debugFileOffset);
356
+ const numEntries = Math.floor(maxDebugBytes / 28);
357
+ for (let j = 0; j < numEntries; j++) {
358
+ const entryOffset = debugFileOffset + j * 28;
359
+ const type = fileBytes.readUInt32LE(entryOffset + 12);
360
+ if (type !== 2) continue;
361
+ const sizeOfData = fileBytes.readUInt32LE(entryOffset + 16);
362
+ let pointerToRawData = fileBytes.readUInt32LE(entryOffset + 24);
363
+ if (pointerToRawData === 0) {
364
+ const addressOfRawData = fileBytes.readUInt32LE(entryOffset + 20);
365
+ const mapped = peRvaToFileOffset(addressOfRawData, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(sizeOfData, 4096));
366
+ if (mapped === undefined) continue;
367
+ pointerToRawData = mapped;
368
+ }
369
+ if (sizeOfData < 16 || fileBytes.length < pointerToRawData + Math.min(sizeOfData, 24)) continue;
370
+ const codeViewData = fileBytes.subarray(pointerToRawData, Math.min(fileBytes.length, pointerToRawData + sizeOfData));
371
+ const parsed = parseCodeViewData(codeViewData, sizeOfData);
372
+ if (parsed !== undefined) return parsed;
373
+ }
374
+ return undefined;
375
+ };
376
+ peManagedStatus = (optionalHeader, architecture) => {
377
+ if (optionalHeader.length < 2) return err("truncated PE optional header");
378
+ const magic = optionalHeader.readUInt16LE(0);
379
+ const expectedMagic = architecture === "x86_64" || architecture === "arm64" ? 523 : 267;
380
+ if (magic !== expectedMagic) return err("PE optional-header magic does not match its architecture");
381
+ const directoryOffset = magic === 523 ? 112 : 96;
382
+ const directoryCountOffset = directoryOffset - 4;
383
+ if (optionalHeader.length < directoryCountOffset + 4) return err("truncated PE optional header");
384
+ const directoryCount = optionalHeader.readUInt32LE(directoryCountOffset);
385
+ const requiredBytes = directoryOffset + directoryCount * 8;
386
+ if (!Number.isSafeInteger(requiredBytes) || requiredBytes > optionalHeader.length) return err("truncated PE data-directory table");
387
+ if (directoryCount <= 14) return ok(false);
388
+ const cliDirectory = directoryOffset + 14 * 8;
389
+ return ok(optionalHeader.readUInt32LE(cliDirectory) !== 0 || optionalHeader.readUInt32LE(cliDirectory + 4) !== 0);
390
+ };
391
+ machArchitecture = (cpu) => {
392
+ switch (cpu) {
393
+ case 7: return "x86";
394
+ case 16777223: return "x86_64";
395
+ case 12: return "arm";
396
+ case 16777228: return "arm64";
397
+ }
398
+ return undefined;
399
+ };
400
+ elfArchitecture = (machine) => {
401
+ switch (machine) {
402
+ case 3: return "x86";
403
+ case 62: return "x86_64";
404
+ case 8: return "mips";
405
+ case 20: return "powerpc";
406
+ case 40: return "arm";
407
+ case 183: return "arm64";
408
+ case 243: return "riscv";
409
+ }
410
+ return undefined;
411
+ };
412
+ })))();
413
+ }
414
+
415
+ //#endregion
416
+ //#region dist/application/RegularFileRead.js
417
+ var InvalidUtf8FileError, RegularFileCleanupFailure, retryRegularFileCleanup, failureMessage, withRegularFile, withRegularFileOwned, readRegularFile, readRegularFileText, readRegularFileContent;
418
+ function init_RegularFileRead() {
419
+ return (init_RegularFileRead = __esmMin((() => {
420
+ init_RegularFile();
421
+ init_OwnedFileHandle();
422
+ init_BoundedFileBytes();
423
+ InvalidUtf8FileError = class extends TypeError {
424
+ path;
425
+ _tag = "InvalidUtf8FileError";
426
+ constructor(path, cause) {
427
+ super(`File is not valid UTF-8: ${path}`, { cause });
428
+ this.path = path;
429
+ this.name = this._tag;
430
+ }
431
+ };
432
+ RegularFileCleanupFailure = class extends Error {
433
+ path;
434
+ owner;
435
+ outcome;
436
+ cleanupCause;
437
+ constructor(path, owner, outcome, cleanupCause) {
438
+ super(`Regular file cleanup failed: ${path}`, { cause: outcome.kind === "failed" ? outcome.cause : cleanupCause });
439
+ this.path = path;
440
+ this.owner = owner;
441
+ this.outcome = outcome;
442
+ this.cleanupCause = cleanupCause;
443
+ this.name = "RegularFileCleanupFailure";
444
+ }
445
+ };
446
+ retryRegularFileCleanup = async (failure, resources) => {
447
+ const released = await resources.release({
448
+ kind: "file-handle",
449
+ handle: failure.owner,
450
+ resource: failure.path
451
+ });
452
+ if (released.kind === "released") return { outcome: failure.outcome };
453
+ return {
454
+ outcome: failure.outcome,
455
+ cleanup: {
456
+ reason: `${failureMessage(failure.cleanupCause)}; retry: ${failureMessage(released.cause)}`,
457
+ resources: [failure.path]
458
+ }
459
+ };
460
+ };
461
+ failureMessage = (cause) => cause instanceof Error ? cause.message : String(cause);
462
+ withRegularFile = async (path, read, options = {}) => options.resources === undefined ? withRegularFileOwned(path, read, options) : options.resources.run(() => withRegularFileOwned(path, read, options));
463
+ withRegularFileOwned = async (path, read, options) => {
464
+ const { signal } = options;
465
+ let handle;
466
+ try {
467
+ handle = await openRegularFile(path, {
468
+ symlinks: options.symlinks ?? "follow",
469
+ signal
470
+ });
471
+ } catch (cause) {
472
+ if (!(cause instanceof RegularFileAdmissionFailure)) throw cause;
473
+ const failure = new RegularFileCleanupFailure(path, cause.owner, {
474
+ kind: "failed",
475
+ cause: cause.cause
476
+ }, cause.cleanupCause);
477
+ if (options.resources === undefined) throw failure;
478
+ const retry = await retryRegularFileCleanup(failure, options.resources);
479
+ if (retry.cleanup !== undefined) throw failure;
480
+ throw cause.cause;
481
+ }
482
+ const owner = new OwnedFileHandle(handle);
483
+ let outcome;
484
+ try {
485
+ const stats = await handle.stat();
486
+ signal?.throwIfAborted();
487
+ const value = await read(handle, stats);
488
+ signal?.throwIfAborted();
489
+ const [opened, currentPath] = await Promise.all([handle.stat(), options.symlinks === "reject" ? lstat(path) : stat(path)]);
490
+ if (!sameRegularFileState(stats, opened) || !sameRegularFileState(stats, currentPath)) throw new RegularFileChangedError(path);
491
+ outcome = {
492
+ kind: "completed",
493
+ value
494
+ };
495
+ } catch (cause) {
496
+ outcome = {
497
+ kind: "failed",
498
+ cause
499
+ };
500
+ }
501
+ try {
502
+ await owner.close();
503
+ } catch (cleanupCause) {
504
+ const failure = new RegularFileCleanupFailure(path, owner, outcome, cleanupCause);
505
+ if (options.resources === undefined) throw failure;
506
+ const retry = await retryRegularFileCleanup(failure, options.resources);
507
+ if (retry.cleanup !== undefined) throw failure;
508
+ if (retry.outcome.kind === "failed") throw retry.outcome.cause;
509
+ return retry.outcome.value;
510
+ }
511
+ if (outcome.kind === "failed") throw outcome.cause;
512
+ return outcome.value;
513
+ };
514
+ readRegularFile = (path, options = {}) => readRegularFileContent(path, (bytes) => bytes, options);
515
+ readRegularFileText = (path, options = {}) => readRegularFileContent(path, (bytes) => {
516
+ try {
517
+ return new TextDecoder("utf-8", {
518
+ fatal: true,
519
+ ignoreBOM: true
520
+ }).decode(bytes);
521
+ } catch (cause) {
522
+ if (!(cause instanceof TypeError)) throw cause;
523
+ throw new InvalidUtf8FileError(path, cause);
524
+ }
525
+ }, options);
526
+ readRegularFileContent = (path, decode, options) => withRegularFile(path, async (handle, stats) => {
527
+ const bytes = await readBoundedFileBytes(handle, stats.size, options.signal);
528
+ if (bytes === undefined || bytes.length !== stats.size) throw new RegularFileChangedError(path);
529
+ return decode(bytes);
530
+ }, options);
531
+ })))();
532
+ }
533
+
534
+ //#endregion
535
+ //#region dist/application/MipsElfSharedLoad.js
536
+ var readMipsElfSharedLoad;
537
+ function init_MipsElfSharedLoad() {
538
+ return (init_MipsElfSharedLoad = __esmMin((() => {
539
+ init_result();
540
+ readMipsElfSharedLoad = async (programHeaders, little, fileSize, read, checkCancelled, sections) => {
541
+ const u32 = (bytes, offset) => little ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
542
+ const loads = [];
543
+ let dynamic;
544
+ for (let position = 0; position < programHeaders.length; position += 32) {
545
+ checkCancelled();
546
+ const type = u32(programHeaders, position);
547
+ const offset = u32(programHeaders, position + 4);
548
+ const size = u32(programHeaders, position + 16);
549
+ if (type === 1) {
550
+ const address = u32(programHeaders, position + 8);
551
+ const memorySize = u32(programHeaders, position + 20);
552
+ if (offset > fileSize - size || size > memorySize || address + memorySize > 4294967296) return err("invalid or incomplete MIPS PT_LOAD range");
553
+ loads.push({
554
+ offset,
555
+ address,
556
+ size,
557
+ memorySize
558
+ });
559
+ }
560
+ if (type === 2) {
561
+ if (dynamic !== undefined) return err("duplicate MIPS PT_DYNAMIC tables");
562
+ dynamic = {
563
+ offset,
564
+ address: u32(programHeaders, position + 8),
565
+ size
566
+ };
567
+ }
568
+ }
569
+ if (dynamic === undefined) return err("MIPS shared image has no PT_DYNAMIC table");
570
+ if (dynamic.size === 0 || dynamic.size % 8 !== 0) return err("invalid MIPS ELF32 dynamic table size");
571
+ if (dynamic.offset > fileSize - dynamic.size) return err("MIPS PT_DYNAMIC range extends beyond the file");
572
+ const ranges = loads.filter((load) => load.memorySize > 0).sort((left, right) => left.address - right.address);
573
+ for (let i = 1; i < ranges.length; i += 1) {
574
+ checkCancelled();
575
+ const previous = ranges[i - 1];
576
+ if (ranges[i].address < previous.address + previous.memorySize) return err("overlapping MIPS PT_LOAD memory ranges require separate mapping verification");
577
+ }
578
+ const mapped = (address, length, fileBacked) => {
579
+ let low = 0;
580
+ let high = ranges.length;
581
+ while (low < high) {
582
+ const middle = Math.floor((low + high) / 2);
583
+ if (ranges[middle].address <= address) low = middle + 1;
584
+ else high = middle;
585
+ }
586
+ const range = ranges[low - 1];
587
+ return range !== undefined && address - range.address <= (fileBacked ? range.size : range.memorySize) - length ? range : undefined;
588
+ };
589
+ const dynamicMapping = mapped(dynamic.address, dynamic.size, true);
590
+ if (dynamicMapping === undefined || dynamicMapping.offset + dynamic.address - dynamicMapping.address !== dynamic.offset) return err("MIPS PT_DYNAMIC has no unique matching file-backed PT_LOAD range");
591
+ const chunkBytes = 64 * 1024;
592
+ const relevant = new Set([
593
+ 2,
594
+ 7,
595
+ 8,
596
+ 9,
597
+ 17,
598
+ 18,
599
+ 19,
600
+ 20,
601
+ 23
602
+ ]);
603
+ const tags = new Map();
604
+ let terminated = false;
605
+ for (let offset = 0; offset < dynamic.size && !terminated; offset += chunkBytes) {
606
+ const chunk = await read(dynamic.offset + offset, Math.min(chunkBytes, dynamic.size - offset), "dynamic table");
607
+ if (!chunk.ok) return chunk;
608
+ for (let position = 0; position < chunk.value.length; position += 8) {
609
+ checkCancelled();
610
+ const tag = u32(chunk.value, position);
611
+ if (tag === 0) {
612
+ terminated = true;
613
+ break;
614
+ }
615
+ if (!relevant.has(tag)) continue;
616
+ if (tags.has(tag)) return err(`duplicate MIPS dynamic tag ${tag}`);
617
+ tags.set(tag, u32(chunk.value, position + 4));
618
+ }
619
+ }
620
+ if (!terminated) return err("MIPS dynamic table has no DT_NULL terminator");
621
+ if ([
622
+ 2,
623
+ 7,
624
+ 8,
625
+ 9,
626
+ 23
627
+ ].some((tag) => (tags.get(tag) ?? 0) !== 0)) return err("MIPS shared RELA or PLT relocation declarations require separate verification");
628
+ const address = tags.get(17);
629
+ const size = tags.get(18);
630
+ const stride = tags.get(19);
631
+ const checkSections = (offset, length) => {
632
+ let observed = 0;
633
+ for (const section of sections) {
634
+ checkCancelled();
635
+ if (section.size === 0) continue;
636
+ if (section.type !== 9 || section.entrySize !== 8 || section.offset !== offset || section.size !== length) return "MIPS section relocation declarations outside the dynamic REL table require separate verification";
637
+ observed += 1;
638
+ }
639
+ return observed > 1 ? "duplicate MIPS section relocation declarations require separate verification" : undefined;
640
+ };
641
+ const emptyRelocations = () => {
642
+ const reason = checkSections(0, 0);
643
+ return reason === undefined ? ok({
644
+ status: "complete",
645
+ relocationCount: 0,
646
+ relocationTypes: [],
647
+ symbolRelativeCount: 0
648
+ }) : err(reason);
649
+ };
650
+ if (address === undefined && size === undefined && stride === undefined) return emptyRelocations();
651
+ if (address === undefined || size === undefined || stride !== 8 || size % 8 !== 0) return err("incomplete or invalid MIPS DT_REL/DT_RELSZ/DT_RELENT declaration");
652
+ if (size === 0) return emptyRelocations();
653
+ const mapping = mapped(address, size, true);
654
+ if (mapping === undefined) return err("MIPS DT_REL range has no unique complete file-backed PT_LOAD mapping");
655
+ const fileOffset = mapping.offset + address - mapping.address;
656
+ const sectionReason = checkSections(fileOffset, size);
657
+ if (sectionReason !== undefined) return err(sectionReason);
658
+ let symbolRelativeCount = 0;
659
+ const types = new Set();
660
+ for (let offset = 0; offset < size; offset += chunkBytes) {
661
+ const chunk = await read(fileOffset + offset, Math.min(chunkBytes, size - offset), "dynamic REL records");
662
+ if (!chunk.ok) return chunk;
663
+ for (let position = 0; position < chunk.value.length; position += 8) {
664
+ checkCancelled();
665
+ const info = u32(chunk.value, position + 4);
666
+ const type = info & 255;
667
+ const relocationAddress = u32(chunk.value, position);
668
+ if (type === 3 && mapped(relocationAddress, 4, false) === undefined) return err("MIPS REL32 destination has no unique complete PT_LOAD memory range");
669
+ types.add(type);
670
+ if (type === 3 && info >>> 8 !== 0) symbolRelativeCount += 1;
671
+ }
672
+ }
673
+ return ok({
674
+ status: "complete",
675
+ relocationCount: size / 8,
676
+ relocationTypes: [...types].sort((left, right) => left - right),
677
+ symbolRelativeCount
678
+ });
679
+ };
680
+ })))();
681
+ }
682
+
683
+ //#endregion
684
+ //#region dist/application/MipsGnuAttributes.js
685
+ var MIPS_GNU_ATTRIBUTES_MAX_BYTES, FORMAT_VERSION, TAG_FILE, TAG_GNU_MIPS_ABI_FP, TAG_GNU_MIPS_ABI_MSA, parseMipsGnuAttributes;
686
+ function init_MipsGnuAttributes() {
687
+ return (init_MipsGnuAttributes = __esmMin((() => {
688
+ init_result();
689
+ MIPS_GNU_ATTRIBUTES_MAX_BYTES = 4096;
690
+ FORMAT_VERSION = 65;
691
+ TAG_FILE = 1;
692
+ TAG_GNU_MIPS_ABI_FP = 4;
693
+ TAG_GNU_MIPS_ABI_MSA = 8;
694
+ parseMipsGnuAttributes = (bytes, littleEndian) => {
695
+ if (bytes.length === 0 || bytes[0] !== FORMAT_VERSION) return err("unsupported MIPS GNU attribute section format version");
696
+ const readU32 = (offset) => littleEndian ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
697
+ const readUleb = (offset, end) => {
698
+ let value = 0;
699
+ for (let index = 0; index < 5 && offset + index < end; index += 1) {
700
+ const byte = bytes[offset + index];
701
+ value += (byte & 127) * 2 ** (7 * index);
702
+ if ((byte & 128) === 0) return value <= 4294967295 ? {
703
+ value,
704
+ next: offset + index + 1
705
+ } : undefined;
706
+ }
707
+ return undefined;
708
+ };
709
+ let fpAbi = null;
710
+ let msa = null;
711
+ let vendorSeen = false;
712
+ let position = 1;
713
+ while (position < bytes.length) {
714
+ if (bytes.length - position < 4) return err("truncated MIPS GNU attribute subsection length");
715
+ const length = readU32(position);
716
+ if (length < 4 || length > bytes.length - position) return err("MIPS GNU attribute subsection length does not fit the section");
717
+ const end = position + length;
718
+ const vendorEnd = bytes.indexOf(0, position + 4);
719
+ if (vendorEnd < 0 || vendorEnd >= end) return err("unterminated MIPS GNU attribute vendor name");
720
+ if (bytes.toString("latin1", position + 4, vendorEnd) !== "gnu") return err("MIPS ELF declares non-GNU vendor attributes that REA does not inspect");
721
+ if (vendorSeen) return err("duplicate MIPS GNU attribute vendor subsections");
722
+ vendorSeen = true;
723
+ let cursor = vendorEnd + 1;
724
+ while (cursor < end) {
725
+ const scopeStart = cursor;
726
+ const scope = readUleb(cursor, end);
727
+ if (scope === undefined) return err("malformed MIPS GNU attribute scope tag");
728
+ if (scope.value !== TAG_FILE) return err("MIPS GNU attributes scoped to sections or symbols are not inspected by REA");
729
+ if (end - scope.next < 4) return err("truncated MIPS GNU attribute scope length");
730
+ const scopeLength = readU32(scope.next);
731
+ if (scopeLength < scope.next + 4 - scopeStart || scopeLength > end - scopeStart) return err("MIPS GNU attribute scope length does not fit its subsection");
732
+ const scopeEnd = scopeStart + scopeLength;
733
+ cursor = scope.next + 4;
734
+ while (cursor < scopeEnd) {
735
+ const tag = readUleb(cursor, scopeEnd);
736
+ if (tag === undefined) return err("malformed MIPS GNU attribute tag");
737
+ if (tag.value !== TAG_GNU_MIPS_ABI_FP && tag.value !== TAG_GNU_MIPS_ABI_MSA) return err(`MIPS ELF declares GNU attribute tag ${tag.value}, which REA does not inspect`);
738
+ const value = readUleb(tag.next, scopeEnd);
739
+ if (value === undefined) return err("malformed MIPS GNU attribute value");
740
+ if (tag.value === TAG_GNU_MIPS_ABI_FP) {
741
+ if (fpAbi !== null) return err("duplicate MIPS GNU floating-point ABI attributes");
742
+ fpAbi = value.value;
743
+ } else {
744
+ if (msa !== null) return err("duplicate MIPS GNU MSA ABI attributes");
745
+ msa = value.value;
746
+ }
747
+ cursor = value.next;
748
+ }
749
+ cursor = scopeEnd;
750
+ }
751
+ position = end;
752
+ }
753
+ return ok({
754
+ fpAbi,
755
+ msa
756
+ });
757
+ };
758
+ })))();
759
+ }
760
+
761
+ //#endregion
762
+ //#region dist/application/MipsElfMetadata.js
763
+ var SHT_GNU_ATTRIBUTES, readMipsElfMetadata;
764
+ function init_MipsElfMetadata() {
765
+ return (init_MipsElfMetadata = __esmMin((() => {
766
+ init_elfFixedHeader();
767
+ init_result();
768
+ init_MipsElfSharedLoad();
769
+ init_MipsGnuAttributes();
770
+ SHT_GNU_ATTRIBUTES = 1879048181;
771
+ readMipsElfMetadata = async (handle, metadata, checkCancelled) => {
772
+ checkCancelled();
773
+ if (metadata.elfClass !== 32) return err("MIPS ABI record inspection currently supports ELF32 only");
774
+ const fileSize = (await handle.stat()).size;
775
+ checkCancelled();
776
+ const read = async (offset, length, label) => {
777
+ checkCancelled();
778
+ if (!Number.isSafeInteger(fileSize) || offset < 0 || length < 0 || offset > fileSize - length) return err(`MIPS ${label} lies outside the file`);
779
+ const bytes = Buffer.alloc(length);
780
+ let total = 0;
781
+ while (total < length) {
782
+ checkCancelled();
783
+ const observed = await handle.read(bytes, total, length - total, offset + total);
784
+ checkCancelled();
785
+ if (observed.bytesRead === 0) return err(`truncated MIPS ${label}`);
786
+ total += observed.bytesRead;
787
+ }
788
+ return ok(bytes);
789
+ };
790
+ const header = await read(0, 52, "ELF32 header");
791
+ if (!header.ok) return header;
792
+ const bytes = header.value;
793
+ const fixedHeader = readElfFixedHeader(bytes, fileSize);
794
+ if (!fixedHeader.ok) return fixedHeader;
795
+ const little = metadata.byteOrder === "little";
796
+ const u16 = (data, offset) => little ? data.readUInt16LE(offset) : data.readUInt16BE(offset);
797
+ const u32 = (data, offset) => little ? data.readUInt32LE(offset) : data.readUInt32BE(offset);
798
+ if (fixedHeader.value.elfClass !== 32 || fixedHeader.value.byteOrder !== metadata.byteOrder || u16(bytes, 18) !== 8 || u16(bytes, 16) !== metadata.type || u32(bytes, 36) !== metadata.flags) return err("MIPS ELF header no longer matches the resolved identity");
799
+ if (fixedHeader.value.headerSize !== 52) return err("invalid MIPS ELF32 version or header size");
800
+ const tables = [{
801
+ label: "program header table",
802
+ offset: u32(bytes, 28),
803
+ count: u16(bytes, 44),
804
+ stride: u16(bytes, 42),
805
+ entrySize: 32,
806
+ typeOffset: 0,
807
+ dataOffset: 4,
808
+ sizeOffset: 16,
809
+ recordType: 1879048195,
810
+ optional: false
811
+ }, {
812
+ label: "section header table",
813
+ offset: u32(bytes, 32),
814
+ count: u16(bytes, 48),
815
+ stride: u16(bytes, 46),
816
+ entrySize: 40,
817
+ typeOffset: 4,
818
+ dataOffset: 16,
819
+ sizeOffset: 20,
820
+ recordType: 1879048234,
821
+ optional: true
822
+ }];
823
+ if (u16(bytes, 44) === 65535 || u16(bytes, 48) >= 65280) return err("extended or reserved MIPS ELF table numbering is unsupported");
824
+ let record;
825
+ let sharedLoad;
826
+ let programHeaders;
827
+ const relocationSections = [];
828
+ const limitations = [];
829
+ let gnuAttributes = null;
830
+ for (const table of tables) {
831
+ if (table.count === 0) {
832
+ if (table.offset !== 0) return err(`unsupported extended or inconsistent MIPS ${table.label}`);
833
+ continue;
834
+ }
835
+ if (table.offset < 52 || table.stride !== table.entrySize) return err(`invalid MIPS ${table.label} offset or entry size`);
836
+ const count = table.optional ? Math.min(table.count, Math.max(0, Math.floor((fileSize - table.offset) / table.entrySize))) : table.count;
837
+ if (count < table.count) limitations.push(`MIPS ${table.label} at file offset ${table.offset} extends beyond the captured file: examined ${count} of ${table.count} complete headers. ABI declarations in unavailable headers remain unknown.`);
838
+ if (count === 0) continue;
839
+ const contents = await read(table.offset, count * table.entrySize, table.label);
840
+ if (!contents.ok) return contents;
841
+ if (!table.optional && metadata.type === 3) programHeaders = contents.value;
842
+ let found = false;
843
+ for (let i = 0; i < count; i += 1) {
844
+ checkCancelled();
845
+ const position = i * table.entrySize;
846
+ const type = u32(contents.value, position + table.typeOffset);
847
+ if (table.optional && type === SHT_GNU_ATTRIBUTES) {
848
+ if (gnuAttributes !== null) return err("duplicate MIPS GNU attribute sections");
849
+ const size = u32(contents.value, position + 20);
850
+ if (size === 0 || size > 4096) return err(`MIPS GNU attribute section size ${size} is outside REA's inspected bound of ${MIPS_GNU_ATTRIBUTES_MAX_BYTES} bytes`);
851
+ const section = await read(u32(contents.value, position + 16), size, "GNU attribute section");
852
+ if (!section.ok) return section;
853
+ const parsed = parseMipsGnuAttributes(section.value, little);
854
+ if (!parsed.ok) return parsed;
855
+ gnuAttributes = parsed.value;
856
+ continue;
857
+ }
858
+ if (metadata.type === 3 && table.optional && (type === 4 || type === 9)) relocationSections.push({
859
+ type,
860
+ offset: u32(contents.value, position + 16),
861
+ size: u32(contents.value, position + 20),
862
+ entrySize: u32(contents.value, position + 36)
863
+ });
864
+ if (type !== table.recordType) continue;
865
+ if (found) return err(`duplicate MIPS ABI records in ${table.label}`);
866
+ found = true;
867
+ const offset = u32(contents.value, position + table.dataOffset);
868
+ const size = u32(contents.value, position + table.sizeOffset);
869
+ if (size !== 24) return err("unsupported MIPS ABI record size; expected 24 bytes");
870
+ const candidate = await read(offset, 24, "ABI record");
871
+ if (!candidate.ok) return candidate;
872
+ if (record !== undefined && !record.equals(candidate.value)) return err("conflicting MIPS program/section ABI declarations");
873
+ record = candidate.value;
874
+ }
875
+ }
876
+ if (metadata.type === 3 && programHeaders !== undefined) {
877
+ if (limitations.length > 0) sharedLoad = {
878
+ status: "unavailable",
879
+ reason: `MIPS shared-image relocation declaration sources are incomplete. ${limitations.join(" ")}`
880
+ };
881
+ else {
882
+ const shared = await readMipsElfSharedLoad(programHeaders, little, fileSize, read, checkCancelled, relocationSections);
883
+ sharedLoad = shared.ok ? shared.value : {
884
+ status: "unavailable",
885
+ reason: shared.error
886
+ };
887
+ }
888
+ }
889
+ const shared = metadata.type === 3 ? { sharedLoad: sharedLoad ?? {
890
+ status: "unavailable",
891
+ reason: "MIPS shared image has no inspected program header table"
892
+ } } : {};
893
+ if (record === undefined) return ok({
894
+ abiFlags: null,
895
+ gnuAttributes,
896
+ limitations,
897
+ ...shared
898
+ });
899
+ const abiFlags = {
900
+ version: u16(record, 0),
901
+ isaLevel: record.readUInt8(2),
902
+ isaRevision: record.readUInt8(3),
903
+ gprSize: record.readUInt8(4),
904
+ cpr1Size: record.readUInt8(5),
905
+ cpr2Size: record.readUInt8(6),
906
+ fpAbi: record.readUInt8(7),
907
+ isaExtension: u32(record, 8),
908
+ ases: u32(record, 12),
909
+ flags1: u32(record, 16),
910
+ flags2: u32(record, 20)
911
+ };
912
+ if (gnuAttributes !== null && gnuAttributes.fpAbi !== null && gnuAttributes.fpAbi !== 0 && gnuAttributes.fpAbi !== abiFlags.fpAbi) return err("conflicting MIPS ABI flags and GNU floating-point ABI declarations");
913
+ return ok({
914
+ abiFlags,
915
+ gnuAttributes,
916
+ limitations,
917
+ ...shared
918
+ });
919
+ };
920
+ })))();
921
+ }
922
+
923
+ //#endregion
924
+ //#region dist/application/AppBundleExecutable.js
925
+ var BINARY_PLIST_DECODE_BYTES, BUNDLE_LAYOUTS, defaultFileSystem, resolveAppBundleExecutable, presentLayout, layoutPlistPresent, isAbsence, errorCode, codeDescription, isSystemErrorCode, isPermissionDenied, errorReason, wrappedBundle, resolveLayoutExecutable, parseXmlPlistExecutable, executableName, executableEntrySchema, parseBinaryPlistExecutable, isSafeExecutableName;
926
+ function init_AppBundleExecutable() {
927
+ return (init_AppBundleExecutable = __esmMin((() => {
928
+ init_InterfaceBuilderDecodeBudget();
929
+ init_configurationErrors();
930
+ init_localPath();
931
+ init_propertyListKeys();
932
+ init_propertyListXmlText();
933
+ init_appleArchiveFormat();
934
+ init_result();
935
+ BINARY_PLIST_DECODE_BYTES = 16 * 1024 * 1024;
936
+ BUNDLE_LAYOUTS = [{
937
+ plist: ["Contents", "Info.plist"],
938
+ programs: ["Contents", "MacOS"],
939
+ programsLabel: "Contents/MacOS"
940
+ }, {
941
+ plist: ["Info.plist"],
942
+ programs: [],
943
+ programsLabel: "the bundle root"
944
+ }];
945
+ defaultFileSystem = {
946
+ readFile,
947
+ realpath
948
+ };
949
+ resolveAppBundleExecutable = async (path, fileSystem = defaultFileSystem) => {
950
+ try {
951
+ const layout = await presentLayout(path);
952
+ if (layout !== undefined) return resolveLayoutExecutable(path, layout, fileSystem);
953
+ const wrapped = await wrappedBundle(path);
954
+ if (wrapped !== undefined) {
955
+ const wrappedLayout = await presentLayout(wrapped);
956
+ if (wrappedLayout !== undefined) return resolveLayoutExecutable(wrapped, wrappedLayout, fileSystem);
957
+ }
958
+ } catch (cause) {
959
+ if (cause instanceof BinaryTargetError) return err(cause);
960
+ return err(new BinaryTargetError(path, errorReason(cause, path), { cause }));
961
+ }
962
+ return err(new BinaryTargetError(path, `app Info.plist is missing or no supported bundle layout was found: ${path}`, { cause: new Error("No Contents/Info.plist, root Info.plist, or single Wrapper/*.app bundle was found") }));
963
+ };
964
+ presentLayout = async (bundle) => {
965
+ for (const layout of BUNDLE_LAYOUTS) if (await layoutPlistPresent(join(bundle, ...layout.plist))) return layout;
966
+ return undefined;
967
+ };
968
+ layoutPlistPresent = async (path) => {
969
+ try {
970
+ return (await stat(path)).isFile();
971
+ } catch (cause) {
972
+ if (isAbsence(cause)) return false;
973
+ if (isPermissionDenied(cause)) throw new BinaryTargetError(path, `permission denied inspecting app Info.plist ${path}`, { cause });
974
+ throw cause;
975
+ }
976
+ };
977
+ isAbsence = (cause) => {
978
+ const code = errorCode(cause);
979
+ return code === "ENOENT" || code === "ENOTDIR";
980
+ };
981
+ errorCode = (cause) => cause instanceof Error ? Reflect.get(cause, "code") : undefined;
982
+ codeDescription = (cause) => {
983
+ const code = errorCode(cause);
984
+ return typeof code === "string" || typeof code === "number" ? ` (${String(code)})` : "";
985
+ };
986
+ isSystemErrorCode = (cause) => {
987
+ const code = errorCode(cause);
988
+ return typeof code === "string" && /^[A-Z][A-Z0-9_]+$/u.test(code) && !code.startsWith("ERR_");
989
+ };
990
+ isPermissionDenied = (cause) => errorCode(cause) === "EACCES" || errorCode(cause) === "EPERM";
991
+ errorReason = (cause, path) => isPermissionDenied(cause) ? `permission denied accessing app bundle path ${path}` : isAbsence(cause) ? `app bundle path is missing: ${path}` : `could not inspect app bundle path ${path}`;
992
+ wrappedBundle = async (bundle) => {
993
+ const wrapper = join(bundle, "Wrapper");
994
+ try {
995
+ if (!(await lstat(wrapper)).isDirectory()) return undefined;
996
+ } catch (cause) {
997
+ if (isAbsence(cause)) return undefined;
998
+ throw cause;
999
+ }
1000
+ let app;
1001
+ for await (const entry of await opendir(wrapper)) {
1002
+ if (!entry.isDirectory() || !entry.name.toLowerCase().endsWith(".app")) continue;
1003
+ if (app !== undefined) return undefined;
1004
+ app = join(wrapper, entry.name);
1005
+ }
1006
+ return app;
1007
+ };
1008
+ resolveLayoutExecutable = async (bundle, layout, fileSystem) => {
1009
+ const plistPath = join(bundle, ...layout.plist);
1010
+ let plist;
1011
+ try {
1012
+ plist = await fileSystem.readFile(plistPath);
1013
+ } catch (cause) {
1014
+ return err(new BinaryTargetError(plistPath, isPermissionDenied(cause) ? `permission denied reading app Info.plist ${plistPath}` : isAbsence(cause) ? `app Info.plist is missing: ${plistPath}` : `could not read app Info.plist ${plistPath}${codeDescription(cause)}`, { cause }));
1015
+ }
1016
+ let name;
1017
+ try {
1018
+ name = hasBinaryPlistSignature(plist) ? await (fileSystem.decodeBinaryPlist?.(plistPath) ?? parseBinaryPlistExecutable(plist)) : parseXmlPlistExecutable(decodeXmlPlistText(plist));
1019
+ } catch (cause) {
1020
+ return err(new BinaryTargetError(plistPath, isPermissionDenied(cause) ? `permission denied decoding app Info.plist ${plistPath}${codeDescription(cause)}` : isSystemErrorCode(cause) ? `could not decode app Info.plist ${plistPath}${codeDescription(cause)}` : `app Info.plist is malformed, unsupported, or lacks CFBundleExecutable: ${plistPath}${cause instanceof Error ? ` (${cause.message})` : ""}`, { cause }));
1021
+ }
1022
+ if (!isSafeExecutableName(name)) return err(new BinaryTargetError(bundle, "app has an unsafe CFBundleExecutable"));
1023
+ const programs = join(bundle, ...layout.programs);
1024
+ const executable = join(programs, name);
1025
+ try {
1026
+ const [canonicalPrograms, canonicalExecutable] = await Promise.all([fileSystem.realpath(programs), fileSystem.realpath(executable)]);
1027
+ if (!isPathWithinRoot(canonicalPrograms, canonicalExecutable)) return err(new BinaryTargetError(bundle, `app program file leaves ${layout.programsLabel}`));
1028
+ return ok({
1029
+ executable: canonicalExecutable,
1030
+ infoPlist: plistPath
1031
+ });
1032
+ } catch (cause) {
1033
+ return err(new BinaryTargetError(executable, isPermissionDenied(cause) ? `permission denied resolving app program file ${executable}` : isAbsence(cause) ? `app program file is missing: ${executable}` : `could not resolve app program file ${executable}`, { cause }));
1034
+ }
1035
+ };
1036
+ parseXmlPlistExecutable = (plist) => {
1037
+ const { value } = parseXmlPropertyList(plist);
1038
+ return executableName(value);
1039
+ };
1040
+ executableName = (value) => {
1041
+ const executable = executableEntrySchema.safeParse(value);
1042
+ if (!executable.success) throw new Error("CFBundleExecutable is missing");
1043
+ return executable.data.CFBundleExecutable;
1044
+ };
1045
+ executableEntrySchema = z.looseObject({ CFBundleExecutable: z.string() });
1046
+ parseBinaryPlistExecutable = (plist) => {
1047
+ preflightPropertyListDecode(plist, BINARY_PLIST_DECODE_BYTES);
1048
+ return executableName(omitPrototypeKeys(parseBinary(plist)).value);
1049
+ };
1050
+ isSafeExecutableName = (name) => name.length > 0 && name !== "." && name !== ".." && !name.includes("\0") && !/[/\\]/u.test(name);
1051
+ })))();
1052
+ }
1053
+
1054
+ //#endregion
1055
+ //#region dist/application/BinaryTargetResolver.js
1056
+ var XML_PLIST_PROBE_CHUNK_BYTES, parseBinaryTarget, classifyBinaryTargetFilesystemFailure, filesystemErrorCode, targetFailureReason, throwIfTargetResolutionCancelled, detectArtifactFormat, namedArtifactFormat, isArchiveFormat, sha256Handle, resolveAppBundle, readExecutableMetadata, readPeMetadata, readPeCodeView;
1057
+ function init_BinaryTargetResolver() {
1058
+ return (init_BinaryTargetResolver = __esmMin((() => {
1059
+ init_configurationErrors();
1060
+ init_RegularFile();
1061
+ init_analysisErrorCore();
1062
+ init_result();
1063
+ init_MipsElfMetadata();
1064
+ init_AppBundleExecutable();
1065
+ init_dosCom();
1066
+ init_rawBinary();
1067
+ init_dosMz();
1068
+ init_appleArchiveFormat();
1069
+ init_zipPackageFormat();
1070
+ init_binaryTarget();
1071
+ XML_PLIST_PROBE_CHUNK_BYTES = 64 * 1024;
1072
+ parseBinaryTarget = async (input, options = {}) => {
1073
+ const cwd = options.cwd ?? process.cwd();
1074
+ const hostArchitecture = options.hostArchitecture ?? process.arch;
1075
+ const { targetKind, formatHint, signal, architecture, entryPoint } = options;
1076
+ const candidate = isAbsolute(input) ? input : resolve(cwd, input);
1077
+ try {
1078
+ throwIfTargetResolutionCancelled(signal);
1079
+ await access(candidate, constants.R_OK);
1080
+ throwIfTargetResolutionCancelled(signal);
1081
+ const canonical = await realpath(candidate);
1082
+ const sourcePath = process.platform === "win32" ? candidate : canonical;
1083
+ throwIfTargetResolutionCancelled(signal);
1084
+ const resolved = await resolveAppBundle(canonical);
1085
+ throwIfTargetResolutionCancelled(signal);
1086
+ if (!resolved.ok) return err(resolved.error);
1087
+ const { executable: path, infoPlist } = resolved.value;
1088
+ const bundle = infoPlist === undefined ? {} : { bundleInfoPlist: infoPlist };
1089
+ const handle = await openRegularFile(path, {
1090
+ symlinks: "reject",
1091
+ signal
1092
+ });
1093
+ try {
1094
+ throwIfTargetResolutionCancelled(signal);
1095
+ const metadata = await handle.stat();
1096
+ throwIfTargetResolutionCancelled(signal);
1097
+ if (formatHint === "raw-binary") {
1098
+ if (targetKind !== undefined && targetKind !== "executable") return err(new BinaryTargetError(path, "raw-binary format requires an executable target kind", { constraint: "load_selection_rejected" }));
1099
+ const admitted = admitRawBinary({
1100
+ architecture,
1101
+ entryPoint,
1102
+ fileBytes: metadata.size
1103
+ });
1104
+ if (!admitted.ok) return err(new BinaryTargetError(path, admitted.error.reason, { constraint: admitted.error.constraint }));
1105
+ return ok({
1106
+ path,
1107
+ sourcePath,
1108
+ sha256: await sha256Handle(handle, path, metadata, signal),
1109
+ kind: "executable",
1110
+ format: "raw-binary",
1111
+ architecture: admitted.value.architecture,
1112
+ availableArchitectures: [admitted.value.architecture],
1113
+ entryPoint: admitted.value.entryPoint,
1114
+ entryPointSource: admitted.value.entryPointSource
1115
+ });
1116
+ }
1117
+ const pairing = rawBinarySelectionError({
1118
+ ...formatHint === undefined ? {} : { format: formatHint },
1119
+ architecture,
1120
+ entryPoint
1121
+ });
1122
+ if (pairing !== undefined) return err(new BinaryTargetError(path, pairing, { constraint: "load_selection_rejected" }));
1123
+ if (formatHint === "dos-com") {
1124
+ if (targetKind !== undefined && targetKind !== "executable") return err(new BinaryTargetError(path, "DOS COM format requires an executable target kind", { constraint: "load_selection_rejected" }));
1125
+ const length = validateDosComLength(metadata.size);
1126
+ if (!length.ok) return err(new BinaryTargetError(path, length.error, { constraint: "file_format_rejected" }));
1127
+ return ok({
1128
+ path,
1129
+ sourcePath,
1130
+ sha256: await sha256Handle(handle, path, metadata, signal),
1131
+ kind: "executable",
1132
+ format: "dos-com",
1133
+ architecture: "x86",
1134
+ availableArchitectures: ["x86"]
1135
+ });
1136
+ }
1137
+ const artifactFormat = targetKind === "database" ? undefined : await detectArtifactFormat(path, handle, signal);
1138
+ if (targetKind === "database" || targetKind === undefined && path.toLowerCase().endsWith(".hop")) return ok({
1139
+ path,
1140
+ sourcePath,
1141
+ sha256: await sha256Handle(handle, path, metadata, signal),
1142
+ kind: "database",
1143
+ format: "analysis-database"
1144
+ });
1145
+ if (artifactFormat !== undefined) {
1146
+ const identity = {
1147
+ path,
1148
+ sourcePath,
1149
+ sha256: await sha256Handle(handle, path, metadata, signal)
1150
+ };
1151
+ return isArchiveFormat(artifactFormat) ? ok({
1152
+ ...identity,
1153
+ kind: "archive",
1154
+ format: artifactFormat
1155
+ }) : ok({
1156
+ ...identity,
1157
+ kind: "artifact",
1158
+ format: artifactFormat
1159
+ });
1160
+ }
1161
+ const detected = await readExecutableMetadata(handle, hostArchitecture, signal);
1162
+ if (!detected.ok) return err(new BinaryTargetError(path, detected.error, { constraint: "file_format_rejected" }));
1163
+ return ok({
1164
+ path,
1165
+ sourcePath,
1166
+ ...bundle,
1167
+ sha256: await sha256Handle(handle, path, metadata, signal),
1168
+ kind: "executable",
1169
+ ...detected.value
1170
+ });
1171
+ } finally {
1172
+ await handle.close();
1173
+ }
1174
+ } catch (cause) {
1175
+ if (cause instanceof AnalysisCancelledError) return err(cause);
1176
+ if (signal?.aborted === true && cause === signal.reason) return err(new AnalysisCancelledError("resolve_binary_target", { cause }));
1177
+ if (cause instanceof BinaryTargetError) return err(cause);
1178
+ if (!(cause instanceof Error)) throw cause;
1179
+ const failure = classifyBinaryTargetFilesystemFailure(candidate, cause);
1180
+ if (failure === undefined) throw cause;
1181
+ return err(failure);
1182
+ }
1183
+ };
1184
+ classifyBinaryTargetFilesystemFailure = (path, cause) => {
1185
+ if (!(cause instanceof Error)) return undefined;
1186
+ const code = filesystemErrorCode(cause);
1187
+ return code === undefined ? undefined : new BinaryTargetError(path, targetFailureReason(code, cause.message), { cause });
1188
+ };
1189
+ filesystemErrorCode = (cause) => {
1190
+ const code = Reflect.get(cause, "code");
1191
+ return typeof code === "string" ? code : undefined;
1192
+ };
1193
+ targetFailureReason = (code, detail) => {
1194
+ switch (code) {
1195
+ case "ENOENT":
1196
+ case "ENOTDIR": return `target does not exist or a path component is not a directory: ${detail}`;
1197
+ case "EACCES":
1198
+ case "EPERM": return `permission denied while reading target: ${detail}`;
1199
+ case "EISDIR": return `target is a directory, not a readable file: ${detail}`;
1200
+ case "ENOTFILE": return "target is not a regular file";
1201
+ case "ELOOP": return `target changed while being opened: ${detail}`;
1202
+ default: return `target could not be read (${code}): ${detail}`;
1203
+ }
1204
+ };
1205
+ throwIfTargetResolutionCancelled = (signal) => {
1206
+ if (signal?.aborted === true) throw new AnalysisCancelledError("resolve_binary_target");
1207
+ };
1208
+ detectArtifactFormat = async (path, handle, signal) => {
1209
+ throwIfTargetResolutionCancelled(signal);
1210
+ const lower = path.toLowerCase();
1211
+ const magic = Buffer.alloc(4096);
1212
+ const observed = await handle.read(magic, 0, magic.length, 0);
1213
+ throwIfTargetResolutionCancelled(signal);
1214
+ if (observed.bytesRead >= 8 && magic.subarray(0, 8).equals(Buffer.from([
1215
+ 0,
1216
+ 97,
1217
+ 115,
1218
+ 109,
1219
+ 1,
1220
+ 0,
1221
+ 0,
1222
+ 0
1223
+ ]))) throw new BinaryTargetError(path, "WebAssembly v1 artifacts are not supported by the native opening route", { constraint: "wasm_requires_static_inspection" });
1224
+ if (hasZipSignature(magic.subarray(0, observed.bytesRead))) {
1225
+ if (lower.endsWith(".app")) return "app-pack";
1226
+ return zipPackageFormatForPath(lower) ?? "zip";
1227
+ }
1228
+ if (hasBinaryPlistSignature(magic.subarray(0, observed.bytesRead))) return "plist";
1229
+ const named = namedArtifactFormat(lower);
1230
+ if (named !== undefined) return named;
1231
+ if (lower.endsWith(".pkg") && observed.bytesRead >= 4 && magic.subarray(0, 4).equals(Buffer.from("xar!"))) return "pkg";
1232
+ if (lower.endsWith(".dmg")) {
1233
+ throwIfTargetResolutionCancelled(signal);
1234
+ const size = (await handle.stat()).size;
1235
+ throwIfTargetResolutionCancelled(signal);
1236
+ if (size >= 512) {
1237
+ const trailer = Buffer.alloc(4);
1238
+ const read = await handle.read(trailer, 0, trailer.length, size - 512);
1239
+ throwIfTargetResolutionCancelled(signal);
1240
+ if (read.bytesRead === 4 && trailer.equals(Buffer.from("koly"))) return "dmg";
1241
+ }
1242
+ }
1243
+ const xmlProbe = createXmlPlistSignatureProbe();
1244
+ let xmlState = xmlProbe.write(magic.subarray(0, observed.bytesRead));
1245
+ if (xmlState === "matched") return "plist";
1246
+ const chunk = Buffer.alloc(XML_PLIST_PROBE_CHUNK_BYTES);
1247
+ let bytesRead = observed.bytesRead;
1248
+ while (xmlState === "pending" && bytesRead < 1048576) {
1249
+ throwIfTargetResolutionCancelled(signal);
1250
+ const read = await handle.read(chunk, 0, Math.min(chunk.length, MAX_XML_PLIST_PROBE_BYTES - bytesRead), bytesRead);
1251
+ throwIfTargetResolutionCancelled(signal);
1252
+ if (read.bytesRead === 0) break;
1253
+ bytesRead += read.bytesRead;
1254
+ xmlState = xmlProbe.write(chunk.subarray(0, read.bytesRead));
1255
+ if (xmlState === "matched") return "plist";
1256
+ }
1257
+ if (bytesRead === 1048576) {
1258
+ const { size } = await handle.stat();
1259
+ throwIfTargetResolutionCancelled(signal);
1260
+ if (size > bytesRead) throw new BinaryTargetError(path, "XML plist prolog was not found within the 1 MiB format probe limit", { constraint: "file_format_rejected" });
1261
+ }
1262
+ return undefined;
1263
+ };
1264
+ namedArtifactFormat = (lowerPath) => {
1265
+ if (lowerPath.endsWith(".asar")) return "asar";
1266
+ if (lowerPath.endsWith(".plist")) return "plist";
1267
+ if (lowerPath.endsWith(".map")) return "source-map";
1268
+ return /\.(?:m?js|cjs)$/u.test(lowerPath) ? "javascript" : undefined;
1269
+ };
1270
+ isArchiveFormat = (format) => isZipPackageFormat(format) || [
1271
+ "asar",
1272
+ "dmg",
1273
+ "pkg"
1274
+ ].includes(format);
1275
+ sha256Handle = async (handle, path, initial, signal) => {
1276
+ const hash = createHash("sha256");
1277
+ const chunk = Buffer.allocUnsafe(64 * 1024);
1278
+ let position = 0;
1279
+ while (true) {
1280
+ throwIfTargetResolutionCancelled(signal);
1281
+ const observed = await handle.read(chunk, 0, Math.min(chunk.length, initial.size - position + 1), position);
1282
+ throwIfTargetResolutionCancelled(signal);
1283
+ if (observed.bytesRead === 0) break;
1284
+ hash.update(chunk.subarray(0, observed.bytesRead));
1285
+ position += observed.bytesRead;
1286
+ if (position > initial.size) throw new BinaryTargetError(path, "target grew while being read");
1287
+ }
1288
+ throwIfTargetResolutionCancelled(signal);
1289
+ const [opened, currentPath] = await Promise.all([handle.stat(), lstat(path)]);
1290
+ if (!sameRegularFileState(initial, opened) || !sameRegularFileState(initial, currentPath) || position !== initial.size) throw new BinaryTargetError(path, "target changed while being read");
1291
+ return hash.digest("hex");
1292
+ };
1293
+ resolveAppBundle = async (path) => {
1294
+ const metadata = await stat(path);
1295
+ if (!metadata.isDirectory()) return ok({ executable: path });
1296
+ if (extname(path).toLowerCase() !== ".app") return err(new BinaryTargetError(path, "this opening route requires a file or app bundle", { constraint: "directory_requires_file" }));
1297
+ return resolveAppBundleExecutable(path);
1298
+ };
1299
+ readExecutableMetadata = async (handle, hostArchitecture, signal) => {
1300
+ throwIfTargetResolutionCancelled(signal);
1301
+ const prefix = Buffer.alloc(4096);
1302
+ const prefixRead = await handle.read(prefix, 0, prefix.length, 0);
1303
+ throwIfTargetResolutionCancelled(signal);
1304
+ const bytes = prefix.subarray(0, prefixRead.bytesRead);
1305
+ const fileSize = (await handle.stat()).size;
1306
+ throwIfTargetResolutionCancelled(signal);
1307
+ if (bytes.length >= 2 && bytes[0] === 77 && bytes[1] === 90) {
1308
+ let windowsHeader = observeMzWindowsHeader(bytes, fileSize);
1309
+ let signatureBytes;
1310
+ if (windowsHeader.state === "signature-needed") {
1311
+ const { offset } = windowsHeader;
1312
+ const signature = Buffer.alloc(Math.min(4, fileSize - offset));
1313
+ const observedSignature = await handle.read(signature, 0, signature.length, offset);
1314
+ throwIfTargetResolutionCancelled(signal);
1315
+ signatureBytes = signature.subarray(0, observedSignature.bytesRead);
1316
+ windowsHeader = observeMzWindowsHeader(bytes, fileSize, signatureBytes);
1317
+ }
1318
+ if (windowsHeader.state === "declared") {
1319
+ if (windowsHeader.offset < 64) return err("invalid Windows new-header offset in MZ image");
1320
+ return readPeMetadata(handle, windowsHeader.offset, bytes, fileSize, signal);
1321
+ }
1322
+ const tableEnd = bytes.length >= 28 ? bytes.readUInt16LE(24) + bytes.readUInt16LE(6) * 4 : 0;
1323
+ const headerBytes = bytes.length >= 28 ? bytes.readUInt16LE(8) * 16 : 0;
1324
+ if (tableEnd > bytes.length && tableEnd <= headerBytes && tableEnd <= fileSize) {
1325
+ const table = Buffer.alloc(tableEnd);
1326
+ const observed = await handle.read(table, 0, table.length, 0);
1327
+ throwIfTargetResolutionCancelled(signal);
1328
+ return parseExecutableHeader(table.subarray(0, observed.bytesRead), hostArchitecture, fileSize);
1329
+ }
1330
+ return parseExecutableHeader(bytes, hostArchitecture, fileSize, signatureBytes);
1331
+ }
1332
+ if (bytes.length >= 8) {
1333
+ const magic = bytes.readUInt32BE(0);
1334
+ if ([3405691583, 3216703178].includes(magic)) {
1335
+ const little = magic === 3216703178;
1336
+ const count = little ? bytes.readUInt32LE(4) : bytes.readUInt32BE(4);
1337
+ const required = 8 + count * 32;
1338
+ if (count <= 128 && required > bytes.length) {
1339
+ const header = Buffer.alloc(required);
1340
+ const headerRead = await handle.read(header, 0, header.length, 0);
1341
+ throwIfTargetResolutionCancelled(signal);
1342
+ return parseExecutableHeader(header.subarray(0, headerRead.bytesRead), hostArchitecture, fileSize);
1343
+ }
1344
+ }
1345
+ }
1346
+ const parsed = parseExecutableHeader(bytes, hostArchitecture, fileSize);
1347
+ if (!parsed.ok || parsed.value.architecture !== "mips" || parsed.value.mips.elfClass !== 32) return parsed;
1348
+ const declarations = await readMipsElfMetadata(handle, parsed.value.mips, () => throwIfTargetResolutionCancelled(signal));
1349
+ if (!declarations.ok) return declarations;
1350
+ return ok({
1351
+ ...parsed.value,
1352
+ mips: {
1353
+ ...parsed.value.mips,
1354
+ abiFlags: declarations.value.abiFlags,
1355
+ gnuAttributes: declarations.value.gnuAttributes,
1356
+ ...declarations.value.sharedLoad === undefined ? {} : { sharedLoad: declarations.value.sharedLoad },
1357
+ ...declarations.value.limitations.length === 0 ? {} : { limitations: declarations.value.limitations }
1358
+ }
1359
+ });
1360
+ };
1361
+ readPeMetadata = async (handle, offset, mzPrefix, fileSize, signal) => {
1362
+ throwIfTargetResolutionCancelled(signal);
1363
+ const fileHeader = Buffer.alloc(24);
1364
+ const fileHeaderRead = await handle.read(fileHeader, 0, fileHeader.length, offset);
1365
+ throwIfTargetResolutionCancelled(signal);
1366
+ if (fileHeaderRead.bytesRead !== fileHeader.length) return err("invalid or truncated PE header");
1367
+ const windowsHeader = observeMzWindowsHeader(mzPrefix, fileSize, fileHeader.subarray(0, 4));
1368
+ if (windowsHeader.state !== "declared") return err("invalid Windows new-header signature in MZ image");
1369
+ if ([
1370
+ "NE",
1371
+ "LE",
1372
+ "LX"
1373
+ ].includes(windowsHeader.signature)) return err(`unsupported ${windowsHeader.signature} executable in MZ image`);
1374
+ const optionalHeaderSize = fileHeader.readUInt16LE(20);
1375
+ if (optionalHeaderSize > 4096) return err("invalid PE optional header size");
1376
+ const numberOfSections = fileHeader.readUInt16LE(6);
1377
+ const record = Buffer.alloc(24 + optionalHeaderSize);
1378
+ const recordRead = await handle.read(record, 0, record.length, offset);
1379
+ throwIfTargetResolutionCancelled(signal);
1380
+ if (recordRead.bytesRead !== record.length) return err("invalid or truncated PE header");
1381
+ const codeView = await readPeCodeView(handle, offset, numberOfSections, record.subarray(24), optionalHeaderSize, signal);
1382
+ return parsePeRecord(record, codeView);
1383
+ };
1384
+ readPeCodeView = async (handle, peOffset, numberOfSections, optionalHeader, optionalHeaderSize, signal) => {
1385
+ throwIfTargetResolutionCancelled(signal);
1386
+ const debugDir = peDebugDirectoryEntry(optionalHeader);
1387
+ if (debugDir === undefined || numberOfSections > 96) return undefined;
1388
+ const sectionTableOffset = peOffset + 24 + optionalHeaderSize;
1389
+ const sectionTableSize = numberOfSections * 40;
1390
+ const sectionTable = Buffer.alloc(sectionTableSize);
1391
+ const sectionRead = await handle.read(sectionTable, 0, sectionTableSize, sectionTableOffset);
1392
+ throwIfTargetResolutionCancelled(signal);
1393
+ if (sectionRead.bytesRead !== sectionTableSize) return undefined;
1394
+ const debugFileOffset = peRvaToFileOffset(debugDir.debugRva, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(debugDir.debugSize, 4096));
1395
+ if (debugFileOffset === undefined) return undefined;
1396
+ const maxDebugSize = Math.min(debugDir.debugSize, 4096);
1397
+ const debugDirectoryBuffer = Buffer.alloc(maxDebugSize);
1398
+ const debugDirRead = await handle.read(debugDirectoryBuffer, 0, maxDebugSize, debugFileOffset);
1399
+ throwIfTargetResolutionCancelled(signal);
1400
+ const numEntries = Math.floor(debugDirRead.bytesRead / 28);
1401
+ for (let j = 0; j < numEntries; j++) {
1402
+ const entryOffset = j * 28;
1403
+ const type = debugDirectoryBuffer.readUInt32LE(entryOffset + 12);
1404
+ if (type !== 2) continue;
1405
+ const sizeOfData = debugDirectoryBuffer.readUInt32LE(entryOffset + 16);
1406
+ let pointerToRawData = debugDirectoryBuffer.readUInt32LE(entryOffset + 24);
1407
+ if (pointerToRawData === 0) {
1408
+ const addressOfRawData = debugDirectoryBuffer.readUInt32LE(entryOffset + 20);
1409
+ const mapped = peRvaToFileOffset(addressOfRawData, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(sizeOfData, 4096));
1410
+ if (mapped === undefined) continue;
1411
+ pointerToRawData = mapped;
1412
+ }
1413
+ if (sizeOfData < 16) continue;
1414
+ const maxCodeViewRead = Math.min(sizeOfData, 4096);
1415
+ const codeViewBuffer = Buffer.alloc(maxCodeViewRead);
1416
+ const codeViewRead = await handle.read(codeViewBuffer, 0, maxCodeViewRead, pointerToRawData);
1417
+ throwIfTargetResolutionCancelled(signal);
1418
+ const parsed = parseCodeViewData(codeViewBuffer.subarray(0, codeViewRead.bytesRead), sizeOfData);
1419
+ if (parsed !== undefined) return parsed;
1420
+ }
1421
+ return undefined;
1422
+ };
1423
+ })))();
1424
+ }
1425
+
1426
+ //#endregion
1427
+ export { init_RegularFileRead as a, withRegularFile as c, decodePeMachine as d, init_peMachine as f, RegularFileCleanupFailure as i, init_binaryTarget as l, readElfFixedHeader as m, init_BinaryTargetResolver as n, readRegularFile as o, init_elfFixedHeader as p, parseBinaryTarget as r, retryRegularFileCleanup as s, classifyBinaryTargetFilesystemFailure as t, parseExecutableHeader as u };