rea-agents 6.4.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 (1211) hide show
  1. package/DISCLAIMER.md +136 -0
  2. package/README.md +67 -16
  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/ReaGhidraBridge.java +1181 -123
  8. package/bridge/ghidra/ReaGhidraBundleActivator.java +14 -0
  9. package/bridge/ghidra/ReaGhidraMipsSoftFloat.java +176 -0
  10. package/bridge/ghidra/ReaGhidraPrepareRaw.java +49 -0
  11. package/bridge/hopper_bridge.py +103 -69
  12. package/bridge/mitmproxy/capture.py +189 -13
  13. package/bridge/native/rea_lldb_tracer.py +40 -6
  14. package/bridge/process/ProcessRunTokenReader.swift +76 -34
  15. package/bridge/pwntools/layout_impl.py +5 -0
  16. package/bridge/pwntools/recorded_crash_impl.py +31 -10
  17. package/dist/adb/AdbConfiguration.js +15 -3
  18. package/dist/adb/AdbDeviceOutput.js +59 -37
  19. package/dist/adb/AdbDirectoryListing.js +80 -0
  20. package/dist/adb/AdbHostFileName.js +34 -0
  21. package/dist/adb/AdbProvider.js +416 -173
  22. package/dist/adb/AdbShellOutput.js +55 -57
  23. package/dist/android/JadxAnalysis.js +32 -7
  24. package/dist/android/JadxConfiguration.js +119 -29
  25. package/dist/android/JadxDoctor.js +115 -0
  26. package/dist/android/JadxMcpTransport.js +5 -3
  27. package/dist/android/JadxProtocol.js +14 -0
  28. package/dist/android/JadxProvider.js +15 -9
  29. package/dist/android/JadxRelease.js +12 -1
  30. package/dist/android/JadxWorkspaceRoot.js +157 -0
  31. package/dist/apktool/ApktoolConfiguration.js +165 -22
  32. package/dist/apktool/ApktoolDecodeOutput.js +124 -41
  33. package/dist/apktool/ApktoolProvider.js +70 -33
  34. package/dist/application/AnalysisContextQueries.js +5 -8
  35. package/dist/application/AnalysisProvider.js +24 -20
  36. package/dist/application/AppBundleExecutable.js +5 -5
  37. package/dist/application/BinaryTargetResolver.js +195 -38
  38. package/dist/application/BrowserEvidence.js +1 -1
  39. package/dist/application/BrowserObservationService.js +13 -2
  40. package/dist/application/BrowserScenarioCaptureService.js +0 -1
  41. package/dist/application/CallPathTracing.js +52 -13
  42. package/dist/application/CapabilityInventory.js +168 -28
  43. package/dist/application/ClaudeDesktopConfigLocation.js +152 -0
  44. package/dist/application/ClientConfigurationDocument.js +102 -25
  45. package/dist/application/ClientConfigurationFiles.js +51 -14
  46. package/dist/application/ClientRegistrationEnvironment.js +10 -4
  47. package/dist/application/ClientRegistrationIdentity.js +94 -29
  48. package/dist/application/ClientRegistrationStatus.js +180 -59
  49. package/dist/application/DirectAnalysis.js +85 -30
  50. package/dist/application/DirectAnalysisStatus.js +13 -1
  51. package/dist/application/Doctor.js +113 -32
  52. package/dist/application/DoctorDiagnostics.js +34 -12
  53. package/dist/application/DoctorProviderIds.js +2 -0
  54. package/dist/application/DoctorScope.js +11 -2
  55. package/dist/application/DshCordisPatch.js +355 -0
  56. package/dist/application/DshCordisYaml.js +155 -0
  57. package/dist/application/EnhancedLiteralTracing.js +30 -16
  58. package/dist/application/EnhancedToolTypes.js +0 -1
  59. package/dist/application/EnhancedTools.js +164 -54
  60. package/dist/application/EvidenceBundleCommands.js +30 -7
  61. package/dist/application/EvidenceBundleFiles.js +29 -7
  62. package/dist/application/FunctionAnalysisEvidence.js +3 -0
  63. package/dist/application/GeminiClientSettings.js +25 -13
  64. package/dist/application/HermesConfigurationYaml.js +272 -0
  65. package/dist/application/InventoryProjectionEvidence.js +0 -1
  66. package/dist/application/InvestigationProviders.js +13 -3
  67. package/dist/application/JsonFiles.js +110 -20
  68. package/dist/application/JsonInputFile.js +220 -62
  69. package/dist/application/LinuxHopper.js +126 -48
  70. package/dist/application/MacHopper.js +21 -17
  71. package/dist/application/MacHopperPaths.js +40 -0
  72. package/dist/application/{MipsElfAbiFlags.js → MipsElfMetadata.js} +70 -9
  73. package/dist/application/MipsElfSharedLoad.js +164 -0
  74. package/dist/application/MipsGnuAttributes.js +90 -0
  75. package/dist/application/MsixPackageStorage.js +133 -0
  76. package/dist/application/ProgressReporter.js +1 -1
  77. package/dist/application/ProviderOperationExecution.js +11 -3
  78. package/dist/application/ReconstructionCoverageService.js +0 -1
  79. package/dist/application/ReconstructionObligationCandidates.js +3 -2
  80. package/dist/application/ReconstructionObligationLedgerDiagnostics.js +2 -2
  81. package/dist/application/ReconstructionObligationLedgerEvaluation.js +15 -33
  82. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -72
  83. package/dist/application/ReconstructionObligationLedgerService.js +3 -1
  84. package/dist/application/ReconstructionObligationOriginalCases.js +2 -1
  85. package/dist/application/ReferenceSourceImport.js +24 -8
  86. package/dist/application/ReferenceSourceImportEntries.js +22 -21
  87. package/dist/application/ReferenceSourceImportTypes.js +0 -1
  88. package/dist/application/ReferenceSourceVcsAdapter.js +33 -16
  89. package/dist/application/RegularFileRead.js +46 -18
  90. package/dist/application/Setup.js +36 -10
  91. package/dist/application/SetupClientConfiguration.js +206 -37
  92. package/dist/application/SetupClients.js +12 -6
  93. package/dist/application/SetupHost.js +66 -24
  94. package/dist/application/SetupInstallFailure.js +42 -2
  95. package/dist/application/SetupPlan.js +79 -50
  96. package/dist/application/SetupRecoveryBackup.js +66 -0
  97. package/dist/application/SetupRegistrationEnvironment.js +2 -1
  98. package/dist/application/SetupSkill.js +323 -76
  99. package/dist/application/SupportedClients.js +162 -28
  100. package/dist/application/TypeScriptEmittedSourceCandidates.js +26 -0
  101. package/dist/application/Uninstall.js +273 -82
  102. package/dist/application/UninstallFailure.js +14 -0
  103. package/dist/application/Update.js +54 -25
  104. package/dist/application/UpdateFailure.js +17 -0
  105. package/dist/application/UpdateMaintenance.js +11 -29
  106. package/dist/application/UpdateRuntime.js +141 -27
  107. package/dist/application/WebModuleTraceService.js +7 -0
  108. package/dist/application/WebNetworkCaptureService.js +16 -7
  109. package/dist/application/WebSourceLocationService.js +20 -4
  110. package/dist/application/WindowsCapabilities.js +18 -15
  111. package/dist/application/WorkflowEvidence.js +24 -1
  112. package/dist/application/analysisView/AnalysisViewService.js +90 -12
  113. package/dist/application/android/AndroidPackageInspection.js +25 -0
  114. package/dist/application/android/AndroidSearchEvidenceSummary.js +100 -0
  115. package/dist/application/binary/AnalysisProviderEvaluation.js +1 -1
  116. package/dist/application/binary/AnalysisProviderRegistry.js +36 -21
  117. package/dist/application/binary/AnalysisSnapshotCache.js +41 -20
  118. package/dist/application/binary/AnalysisSnapshotFiles.js +75 -9
  119. package/dist/application/binary/BinarySession.js +248 -96
  120. package/dist/application/binary/BinarySessionExecution.js +5 -4
  121. package/dist/application/binary/BinarySessionOpen.js +13 -6
  122. package/dist/application/binary/BinarySessionRecords.js +33 -7
  123. package/dist/application/binary/BinarySessionStatus.js +93 -23
  124. package/dist/application/binary/BinaryTargetSummary.js +9 -0
  125. package/dist/application/binary/CompositeProvider.js +71 -28
  126. package/dist/application/binary/LazyAnalysisProvider.js +3 -1
  127. package/dist/application/binary/SessionProviderRouter.js +5 -2
  128. package/dist/application/binaryDiagnostics/BinaryLayoutService.js +11 -1
  129. package/dist/application/binaryDiagnostics/PeResourcesService.js +3 -0
  130. package/dist/application/binaryDiagnostics/RecordedCrashService.js +14 -3
  131. package/dist/application/captures/PacketCaptureService.js +83 -0
  132. package/dist/application/closeOwnedWebResources.js +7 -0
  133. package/dist/application/electron/ElectronFusePort.js +1 -0
  134. package/dist/application/electron/ElectronFuseService.js +80 -0
  135. package/dist/application/evm/EvmInterfaceService.js +1 -0
  136. package/dist/application/flutter/DartAotInspection.js +26 -0
  137. package/dist/application/flutter/FlutterBuildAnalysisPort.js +1 -0
  138. package/dist/application/flutter/FlutterBuildAnalysisService.js +13 -0
  139. package/dist/application/frida/FridaInstrumentationPort.js +8 -0
  140. package/dist/application/frida/FridaInstrumentationService.js +310 -0
  141. package/dist/application/frida/fridaInputErrors.js +17 -0
  142. package/dist/application/go/GoBinaryPort.js +1 -0
  143. package/dist/application/go/GoBinaryService.js +80 -0
  144. package/dist/application/harmony/HarmonyApplicationService.js +17 -0
  145. package/dist/application/investigation/EvidenceLedger.js +40 -14
  146. package/dist/application/investigation/InvestigationRecords.js +12 -21
  147. package/dist/application/investigation/UnknownEvidence.js +22 -18
  148. package/dist/application/javascript/ElectronActiveObservationService.js +55 -25
  149. package/dist/application/javascript/ElectronBoundaryAnalysis.js +17 -3
  150. package/dist/application/javascript/ElectronBoundaryGraph.js +2 -0
  151. package/dist/application/javascript/ElectronBoundaryGraphCallPaths.js +144 -0
  152. package/dist/application/javascript/ElectronBoundaryGraphIpc.js +26 -7
  153. package/dist/application/javascript/ElectronBoundaryGraphNative.js +1 -1
  154. package/dist/application/javascript/ElectronBoundaryGraphWindows.js +47 -9
  155. package/dist/application/javascript/ElectronObservationService.js +0 -1
  156. package/dist/application/javascript/JavaScriptApplicationEvidence.js +15 -0
  157. package/dist/application/javascript/JavaScriptApplicationService.js +29 -14
  158. package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +0 -1
  159. package/dist/application/javascript/JavaScriptArtifactAnalysis.js +86 -34
  160. package/dist/application/javascript/JavaScriptArtifactGraphAccumulator.js +51 -21
  161. package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +31 -7
  162. package/dist/application/javascript/JavaScriptArtifactGraphContext.js +25 -4
  163. package/dist/application/javascript/JavaScriptArtifactGraphDocuments.js +25 -14
  164. package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +147 -41
  165. package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +156 -7
  166. package/dist/application/javascript/JavaScriptArtifactPathResolution.js +892 -181
  167. package/dist/application/javascript/JavaScriptArtifactReconstruction.js +43 -30
  168. package/dist/application/javascript/JavaScriptArtifactReconstructionInput.js +2 -0
  169. package/dist/application/javascript/JavaScriptModuleRelationships.js +33 -11
  170. package/dist/application/javascript/JavaScriptRecoveryService.js +29 -9
  171. package/dist/application/javascript/JavaScriptRuntimeObservationService.js +2 -1
  172. package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +0 -1
  173. package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +42 -26
  174. package/dist/application/javascript/JavaScriptSemanticGraphElectronProjection.js +67 -0
  175. package/dist/application/javascript/JavaScriptSemanticTraceService.js +0 -1
  176. package/dist/application/managed/ManagedApplicationGraphService.js +0 -1
  177. package/dist/application/managed/ManagedMemberComparisonService.js +72 -54
  178. package/dist/application/managed/ManagedNativeVerificationService.js +0 -1
  179. package/dist/application/managed/ManagedReconstructionService.js +0 -1
  180. package/dist/application/native/NativeCallRoutes.js +54 -34
  181. package/dist/application/native/NativeDispatchMetadataInspection.js +6 -2
  182. package/dist/application/native/NativeUiActionTrace.js +35 -22
  183. package/dist/application/native/NativeValueTrace.js +57 -23
  184. package/dist/application/pcap/PcapAnalysisPort.js +1 -0
  185. package/dist/application/pcap/PcapAnalysisService.js +24 -0
  186. package/dist/application/process/ProcessCli.js +33 -13
  187. package/dist/application/reverse/ReverseEngineeringCommandPort.js +1 -0
  188. package/dist/application/reverse/ReverseEngineeringService.js +688 -0
  189. package/dist/application/rust/RustBinaryPort.js +1 -0
  190. package/dist/application/rust/RustBinaryService.js +80 -0
  191. package/dist/application/signals/SignalRecordingService.js +83 -0
  192. package/dist/application/sqlite/SqliteDatabaseCapability.js +30 -0
  193. package/dist/application/sqlite/SqliteDatabasePort.js +1 -0
  194. package/dist/application/sqlite/SqliteDatabaseService.js +76 -0
  195. package/dist/application/wasm/WasmArtifactPort.js +1 -0
  196. package/dist/application/wasm/WasmArtifactService.js +77 -0
  197. package/dist/application/wasm/WasmInterfaceComparisonService.js +188 -0
  198. package/dist/artifacts/ArtifactHash.js +13 -2
  199. package/dist/artifacts/ArtifactPaths.js +4 -7
  200. package/dist/artifacts/ArtifactProvider.js +8 -4
  201. package/dist/artifacts/ArtifactReader.js +13 -1
  202. package/dist/artifacts/ArtifactResourceScope.js +12 -3
  203. package/dist/artifacts/AsarArtifactReader.js +177 -112
  204. package/dist/artifacts/AsarListing.js +78 -0
  205. package/dist/artifacts/DirectoryArtifactReader.js +94 -24
  206. package/dist/artifacts/MachOSliceArtifactReader.js +83 -10
  207. package/dist/artifacts/NativeDmgArtifactReader.js +161 -58
  208. package/dist/artifacts/OrderedReads.js +57 -0
  209. package/dist/artifacts/SafeOutputTree.js +19 -4
  210. package/dist/artifacts/ZipArtifactReader.js +117 -12
  211. package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +77 -68
  212. package/dist/artifacts/apple/DylibResolutionReader.js +11 -5
  213. package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +57 -21
  214. package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +64 -12
  215. package/dist/artifacts/apple/KeyedArchiveReader.js +3 -2
  216. package/dist/artifacts/apple/MachoLoadCommandReader.js +62 -61
  217. package/dist/artifacts/apple/NibArchive.js +11 -4
  218. package/dist/artifacts/apple/PlistNumberLiterals.js +2 -2
  219. package/dist/artifacts/extraction/ArtifactExtraction.js +6 -7
  220. package/dist/artifacts/hostExecutableMarking.js +16 -0
  221. package/dist/artifacts/inventory/ArtifactGraphConstruction.js +134 -34
  222. package/dist/artifacts/inventory/ArtifactInventory.js +2 -2
  223. package/dist/artifacts/inventory/classify.js +32 -15
  224. package/dist/artifacts/inventory/reader.js +36 -21
  225. package/dist/artifacts/inventory/scanCanonical.js +25 -18
  226. package/dist/artifacts/inventory/scanReader.js +36 -10
  227. package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +163 -7
  228. package/dist/artifacts/readStableArtifact.js +28 -4
  229. package/dist/browser/BrowserProcessStartup.js +20 -9
  230. package/dist/browser/BrowserScenarioPartialObservation.js +60 -44
  231. package/dist/browser/BrowserScenarioSecrets.js +176 -46
  232. package/dist/browser/CdpBrowserProvider.js +70 -99
  233. package/dist/browser/CdpCaptureDocuments.js +231 -69
  234. package/dist/browser/CdpCaptureDomSvg.js +94 -61
  235. package/dist/browser/CdpCaptureEventBodyShapes.js +9 -5
  236. package/dist/browser/CdpCaptureEventHandlers.js +23 -12
  237. package/dist/browser/CdpCaptureEvents.js +49 -10
  238. package/dist/browser/CdpCaptureStorage.js +22 -5
  239. package/dist/browser/CdpCaptureStorageFingerprints.js +54 -11
  240. package/dist/browser/CdpCaptureValues.js +0 -1
  241. package/dist/browser/CdpConnection.js +3 -4
  242. package/dist/browser/CdpElectronInspection.js +14 -4
  243. package/dist/browser/CdpElectronProvider.js +7 -2
  244. package/dist/browser/CdpElectronScripts.js +2 -1
  245. package/dist/browser/CdpElectronWorkers.js +7 -2
  246. package/dist/browser/CdpEndpoint.js +143 -17
  247. package/dist/browser/CdpObservationSession.js +24 -8
  248. package/dist/browser/CdpPageCapture.js +66 -16
  249. package/dist/browser/CdpPageCaptureScripts.js +4 -3
  250. package/dist/browser/CdpPageCaptureWorkers.js +5 -1
  251. package/dist/browser/CdpSafeMetadata.js +9 -5
  252. package/dist/browser/CdpScreenshot.js +5 -14
  253. package/dist/browser/CdpSnapshotStrings.js +21 -0
  254. package/dist/browser/CdpTargetSession.js +29 -2
  255. package/dist/browser/CdpWebMcpDiscovery.js +23 -6
  256. package/dist/browser/PlaywrightBrowserScenarioProvider.js +4 -4
  257. package/dist/browser/PlaywrightElectronActiveActions.js +4 -4
  258. package/dist/browser/PlaywrightElectronActiveProjection.js +16 -4
  259. package/dist/browser/PlaywrightElectronActiveProvider.js +103 -30
  260. package/dist/browser/PlaywrightExecutionBoundary.js +2 -2
  261. package/dist/browser/PlaywrightScenarioBrowser.js +9 -6
  262. package/dist/browser/PlaywrightScenarioEvents.js +198 -36
  263. package/dist/browser/PlaywrightScenarioServiceWorkers.js +249 -0
  264. package/dist/browser/PlaywrightScenarioSession.js +61 -29
  265. package/dist/browser/WebSourceMapFetcher.js +163 -80
  266. package/dist/browser/assets/LocalWebScriptArtifacts.js +24 -3
  267. package/dist/browser/assets/PublishWebScripts.js +13 -2
  268. package/dist/browser/assets/ScenarioScriptCapture.js +2 -1
  269. package/dist/browser/assets/WebArtifactReads.js +11 -3
  270. package/dist/browser/assets/WebSourceLocationArtifacts.js +38 -3
  271. package/dist/browser/history/CaptureFailures.js +22 -8
  272. package/dist/browser/history/CaptureFormatError.js +2 -2
  273. package/dist/browser/history/{HarJson.js → CaptureJson.js} +14 -4
  274. package/dist/browser/history/CaptureRedaction.js +16 -3
  275. package/dist/browser/history/CaptureRelease.js +20 -2
  276. package/dist/browser/history/HarCapture.js +16 -23
  277. package/dist/browser/history/HarSchema.js +36 -36
  278. package/dist/browser/history/HistoricalCaptureDecoder.js +93 -25
  279. package/dist/browser/history/NodeCaptureAdapter.js +48 -0
  280. package/dist/browser/history/{HarCaptureProcess.js → NodeCaptureProcess.js} +18 -9
  281. package/dist/browser/history/QlogCapture.js +385 -0
  282. package/dist/browser/history/SazCapture.js +130 -0
  283. package/dist/browser/history/SazHttp.js +61 -0
  284. package/dist/browser/history/SazMetadata.js +92 -0
  285. package/dist/browser/history/SazProjection.js +90 -0
  286. package/dist/browser/modules/NativeModuleResolver.js +177 -110
  287. package/dist/browser/modules/WebModuleArtifacts.js +40 -3
  288. package/dist/browser/network/PlaywrightNetworkContent.js +40 -5
  289. package/dist/browser/network/PlaywrightScenarioNetwork.js +125 -11
  290. package/dist/captures/TsharkCaptureProvider.js +370 -0
  291. package/dist/captures/parseFieldDiscovery.js +66 -0
  292. package/dist/captures/parsePacketOutput.js +21 -0
  293. package/dist/catalogIdentity.js +46 -35
  294. package/dist/cli/adbCommands.js +2 -2
  295. package/dist/cli/analysisViewCommands.js +1 -1
  296. package/dist/cli/androidCommands.js +11 -2
  297. package/dist/cli/apktoolCommands.js +10 -11
  298. package/dist/cli/applicationCommands.js +44 -17
  299. package/dist/cli/artifactCommands.js +1 -1
  300. package/dist/cli/binaryDiagnosticsCommands.js +14 -10
  301. package/dist/cli/browserAdvancedCommands.js +37 -24
  302. package/dist/cli/browserCommands.js +46 -29
  303. package/dist/cli/captureCommands.js +72 -0
  304. package/dist/cli/cliResultOutput.js +188 -0
  305. package/dist/cli/coreBinaryCommands.js +73 -27
  306. package/dist/cli/coreNativeCommands.js +53 -31
  307. package/dist/cli/cutterCommands.js +50 -0
  308. package/dist/cli/electronCommands.js +45 -3
  309. package/dist/cli/evmCommands.js +4 -5
  310. package/dist/cli/finishAnalysisCommand.js +44 -0
  311. package/dist/cli/firmwareCommands.js +14 -36
  312. package/dist/cli/flutterCommands.js +69 -0
  313. package/dist/cli/fridaCommands.js +211 -0
  314. package/dist/cli/goCommands.js +20 -0
  315. package/dist/cli/interactiveSetup.js +11 -1
  316. package/dist/cli/javascriptApplicationAnalysis.js +1 -1
  317. package/dist/cli/javascriptRecoveryCommands.js +7 -0
  318. package/dist/cli/jsonOutput.js +2 -2
  319. package/dist/cli/managedCommands.js +31 -3
  320. package/dist/cli/options.js +20 -2
  321. package/dist/cli/pcapCommands.js +47 -0
  322. package/dist/cli/processCommands.js +1 -1
  323. package/dist/cli/reverseEngineeringCommands.js +268 -0
  324. package/dist/cli/rustCommands.js +21 -0
  325. package/dist/cli/setupCommands.js +40 -12
  326. package/dist/cli/signalCommands.js +72 -0
  327. package/dist/cli/sqliteCommands.js +79 -0
  328. package/dist/cli/utilityCommands.js +116 -74
  329. package/dist/cli/wasmCommands.js +61 -0
  330. package/dist/cli/webModuleCommands.js +36 -32
  331. package/dist/cli/webNetworkCaptureCommands.js +8 -8
  332. package/dist/cli-runtime/AbortablePromise-BVBemxbD.js +123 -0
  333. package/dist/cli-runtime/AnalysisProvider-D0Us2OTk.js +27 -0
  334. package/dist/cli-runtime/AnalysisSnapshotCache-BXS0wRd2.js +710 -0
  335. package/dist/cli-runtime/ArtifactReader-BXkffc1D.js +55 -0
  336. package/dist/cli-runtime/ArtifactResourceScope-DQWTcUwE.js +114 -0
  337. package/dist/cli-runtime/AsarHeader-CnzOzYEH.js +31 -0
  338. package/dist/cli-runtime/BinarySessionStatus-DnMxMk-r.js +211 -0
  339. package/dist/cli-runtime/BinaryTargetResolver-CVIJ_s1A.js +1308 -0
  340. package/dist/cli-runtime/BoundedFileBytes-BU30odTm.js +39 -0
  341. package/dist/cli-runtime/CdpTargetSession-DGX5pV9w.js +650 -0
  342. package/dist/cli-runtime/ClientConfigPath-c6jr6INc.js +36 -0
  343. package/dist/cli-runtime/ClientConfigurationDocument-ffQ9X0Se.js +1957 -0
  344. package/dist/cli-runtime/ClientRegistrationStatus-DszCyPEU.js +509 -0
  345. package/dist/cli-runtime/CurrentEntrypointPath-D5FRNdkq.js +14 -0
  346. package/dist/cli-runtime/DirectAnalysis-BgvAtpN3.js +528 -0
  347. package/dist/cli-runtime/Doctor-DIpf_I7N.js +588 -0
  348. package/dist/cli-runtime/ElectronFileScope-dpHm2nrS.js +1054 -0
  349. package/dist/cli-runtime/ExecFileOutput-BEQs-lDD.js +117 -0
  350. package/dist/cli-runtime/IdaConfiguration-CtGP7EKo.js +1094 -0
  351. package/dist/cli-runtime/InterfaceBuilderDecodeBudget-D4omRUe4.js +279 -0
  352. package/dist/cli-runtime/InventoryProjectionEvidence-DIsI4DJ6.js +49 -0
  353. package/dist/cli-runtime/InvestigationProviders-DoQRIHii.js +117 -0
  354. package/dist/cli-runtime/JavaScriptApplicationEvidenceGraph-D5aI_FSJ.js +160 -0
  355. package/dist/cli-runtime/JavaScriptApplicationWorkflowEvidence-Bz4-V0Ct.js +75 -0
  356. package/dist/cli-runtime/JavaScriptWorkerMemoryLimit-B1bwMM1a.js +86 -0
  357. package/dist/cli-runtime/JebMcpEndpoint-DUytrn5G.js +428 -0
  358. package/dist/cli-runtime/JsonFiles-DQa1PRKy.js +708 -0
  359. package/dist/cli-runtime/MacCodeSignature-MgYbRK_H.js +24 -0
  360. package/dist/cli-runtime/MacHopperPaths-CwL5lYPX.js +434 -0
  361. package/dist/cli-runtime/MachoLoadCommandReader-C7e074Ze.js +510 -0
  362. package/dist/cli-runtime/ManagedSnapshot-rqyBHcdL.js +4185 -0
  363. package/dist/cli-runtime/OwnedCommand-Cj9GhmPR.js +112 -0
  364. package/dist/cli-runtime/PrivateRuntimeRoot-DAy0PiBM.js +263 -0
  365. package/dist/cli-runtime/ProcessOwnership-DXC5-UWt.js +1378 -0
  366. package/dist/cli-runtime/ProviderDeadline-8m2pFRDc.js +122 -0
  367. package/dist/cli-runtime/RegularFile-B_6KPCNQ.js +139 -0
  368. package/dist/cli-runtime/RegularFileRead-DVlC5faM.js +125 -0
  369. package/dist/cli-runtime/SafeOutputTree-D6U15GXd.js +524 -0
  370. package/dist/cli-runtime/SetupHost-FkYWswsq.js +1098 -0
  371. package/dist/cli-runtime/SupportedClients-DaX6Lt2d.js +1049 -0
  372. package/dist/cli-runtime/UninstallFailure-1blyKXHE.js +22 -0
  373. package/dist/cli-runtime/Update-CbTC_eg1.js +143 -0
  374. package/dist/cli-runtime/UpdateFailure-BcFNxEZZ.js +24 -0
  375. package/dist/cli-runtime/ZipArtifactReader-B8ZgNe4D.js +248 -0
  376. package/dist/cli-runtime/analysisErrorCleanup-Do6YeeoD.js +32 -0
  377. package/dist/cli-runtime/analysisErrorPresentation-DGt7TdsH.js +497 -0
  378. package/dist/cli-runtime/appleArchiveFormat-tVoI2ykA.js +263 -0
  379. package/dist/cli-runtime/application__DirectAnalysisStatus-DpOejOf0.js +150 -0
  380. package/dist/cli-runtime/application__EnhancedTools-oFE2bOjs.js +1787 -0
  381. package/dist/cli-runtime/application__FunctionAnalysisEvidence-B6osuhvW.js +41 -0
  382. package/dist/cli-runtime/application__ReconstructionCoverageService-DN3wTFQj.js +32 -0
  383. package/dist/cli-runtime/application__ReconstructionObligationLedgerService-CKcTppX9.js +815 -0
  384. package/dist/cli-runtime/application__Setup-XpMaRNjy.js +514 -0
  385. package/dist/cli-runtime/application__Uninstall-_23pU2yB.js +427 -0
  386. package/dist/cli-runtime/application__UpdateRuntime-DPvY8ohd.js +345 -0
  387. package/dist/cli-runtime/application__android__AndroidApplicationService-CFgIFPM4.js +31 -0
  388. package/dist/cli-runtime/application__apple__AppleApplicationService-Db6QCsun.js +31 -0
  389. package/dist/cli-runtime/application__harmony__HarmonyApplicationService-CFjocHoK.js +31 -0
  390. package/dist/cli-runtime/application__javascript__ElectronActiveObservationService-CmVDUI_Z.js +118 -0
  391. package/dist/cli-runtime/application__javascript__ElectronObservationService-DEsR8KDN.js +63 -0
  392. package/dist/cli-runtime/application__javascript__JavaScriptApplicationService-CCkp8KBh.js +11450 -0
  393. package/dist/cli-runtime/application__javascript__JavaScriptApplicationWorkflowService-lPy0tzr3.js +2329 -0
  394. package/dist/cli-runtime/application__javascript__JavaScriptRuntimeReconciliationService-DWleA8K9.js +88 -0
  395. package/dist/cli-runtime/application__javascript__JavaScriptSemanticTraceService-DkALH4rL.js +299 -0
  396. package/dist/cli-runtime/artifactOperationError-B7n03FbD.js +27 -0
  397. package/dist/cli-runtime/artifacts__ArtifactProvider-zXI0QjSL.js +2187 -0
  398. package/dist/cli-runtime/binary-BVOr2mgE.js +14206 -0
  399. package/dist/cli-runtime/browserObservationError-Dx6xRTjb.js +40 -0
  400. package/dist/cli-runtime/catalogIdentity-DLoXgfIR.js +933 -0
  401. package/dist/cli-runtime/cli.js +41848 -0
  402. package/dist/cli-runtime/cliOutput-BC1BdAcB.js +122 -0
  403. package/dist/cli-runtime/cliOutput.js +5 -0
  404. package/dist/cli-runtime/cliResultOutput-DsRMI8CJ.js +780 -0
  405. package/dist/cli-runtime/cliResultOutput.js +5 -0
  406. package/dist/cli-runtime/composition__browserScenario-DHXC1a8n.js +2927 -0
  407. package/dist/cli-runtime/composition__electronObservation-GecK2EID.js +555 -0
  408. package/dist/cli-runtime/composition__electronScenario-CEZnVrAL.js +653 -0
  409. package/dist/cli-runtime/cutterToolContracts-TZH9EHr5.js +5134 -0
  410. package/dist/cli-runtime/doctorRuntime-BE5ZX8it.js +258 -0
  411. package/dist/cli-runtime/dotnet__ManagedStaticProvider-C8_yZCDc.js +5 -0
  412. package/dist/cli-runtime/errorSchemas-CTRmvMl3.js +601 -0
  413. package/dist/cli-runtime/javascriptApplicationAnalysis-HgMzVMQw.js +2068 -0
  414. package/dist/cli-runtime/javascriptExportReturnShapeProjection-Dg00g35t.js +78 -0
  415. package/dist/cli-runtime/javascriptExportShapeComparisonSchemas-BYnoIqIk.js +1242 -0
  416. package/dist/cli-runtime/javascriptRuntimeReconciliation-DNjDoL3S.js +1507 -0
  417. package/dist/cli-runtime/javascriptRuntimeReconciliationSchemas-BWpGWNcI.js +247 -0
  418. package/dist/cli-runtime/javascriptSemanticTraceSchemas-BTCNcvbc.js +126 -0
  419. package/dist/cli-runtime/lipo-DSWP6fv-.js +396 -0
  420. package/dist/cli-runtime/logger-CQQCI4a2.js +48 -0
  421. package/dist/cli-runtime/machoContainer-C8BIkkq3.js +172 -0
  422. package/dist/cli-runtime/managedApplicationGraph-B08jb3jq.js +1130 -0
  423. package/dist/cli-runtime/managedToolContracts-D60QmIYj.js +99 -0
  424. package/dist/cli-runtime/mcpDoctor.js +359 -0
  425. package/dist/cli-runtime/mcpStartupPolicy-CVVSOmRc.js +21 -0
  426. package/dist/cli-runtime/native__NativeMacOSProvider-YBTvUeJO.js +4875 -0
  427. package/dist/cli-runtime/officialToolContracts-CCFF0an9.js +1501 -0
  428. package/dist/cli-runtime/propertyListKeys-G8e74YWb.js +248 -0
  429. package/dist/cli-runtime/providerAdapterError-DAjhICdr.js +25 -0
  430. package/dist/cli-runtime/providerCleanupError-Ceq8f0wK.js +27 -0
  431. package/dist/cli-runtime/providerIdentities-Ao1XTvwx.js +31 -0
  432. package/dist/cli-runtime/providerStartupTimeout-B2tF2LtZ.js +17 -0
  433. package/dist/cli-runtime/readFileHandleChunks-dp60iZ6v.js +38 -0
  434. package/dist/cli-runtime/reconstructionObligationLedgerSchemas-Bao0xMr-.js +19478 -0
  435. package/dist/cli-runtime/rolldown-runtime-DXoylpqc.js +121 -0
  436. package/dist/cli-runtime/runtimeVersion-CMGd0bDu.js +23 -0
  437. package/dist/cli-runtime/safeJson-DKKACtdy.js +25 -0
  438. package/dist/cli-runtime/scanCanonical-KP4T9jSl.js +2724 -0
  439. package/dist/cli-runtime/snapshotEnvironment-D_tWyOub.js +813 -0
  440. package/dist/cli-runtime/toolContracts-D2FOG_Nb.js +3721 -0
  441. package/dist/cli-runtime/toolOutputSchemaGroups-DRiYs1je.js +12070 -0
  442. package/dist/cli-runtime/workflowInputError-n8Oo-bLA.js +26 -0
  443. package/dist/cli.js +38 -5
  444. package/dist/cliBrowserScenarioCommands.js +39 -4
  445. package/dist/cliCommandNames.js +48 -0
  446. package/dist/cliEvidenceCommands.js +0 -1
  447. package/dist/cliJavaScriptRuntimeCommands.js +16 -14
  448. package/dist/cliJsonInput.js +12 -4
  449. package/dist/cliLogging.js +50 -14
  450. package/dist/cliObservationOptions.js +6 -0
  451. package/dist/cliOutput.js +38 -5
  452. package/dist/composition/binary.js +4 -0
  453. package/dist/composition/captures.js +3 -0
  454. package/dist/composition/directAnalysis.js +28 -11
  455. package/dist/composition/electronFuses.js +4 -0
  456. package/dist/composition/evm.js +12 -0
  457. package/dist/composition/flutter.js +3 -0
  458. package/dist/composition/go.js +4 -0
  459. package/dist/composition/javascriptAnalysisWorkerProcess.js +5 -4
  460. package/dist/composition/jeb.js +33 -4
  461. package/dist/composition/pcap.js +3 -0
  462. package/dist/composition/resolveWindowsProviderExecutable.js +61 -0
  463. package/dist/composition/reverseEngineering.js +29 -0
  464. package/dist/composition/rust.js +4 -0
  465. package/dist/composition/signals.js +3 -0
  466. package/dist/composition/sqlite.js +4 -0
  467. package/dist/composition/wasm.js +22 -0
  468. package/dist/composition/webNetworkCaptures.js +7 -2
  469. package/dist/config/environment.js +45 -4
  470. package/dist/config/ghidraDisabledAnalyzers.js +25 -0
  471. package/dist/config/homeDirectory.js +9 -6
  472. package/dist/config/mcpInputSchemaProfile.js +4 -0
  473. package/dist/config/mcpOutputSchemaProfile.js +22 -0
  474. package/dist/config/parseConfig.js +21 -31
  475. package/dist/config/parsers.js +4 -3
  476. package/dist/config/{ghidraStartupTimeout.js → providerStartupTimeout.js} +7 -3
  477. package/dist/contracts/adb/adbToolContracts.js +7 -7
  478. package/dist/contracts/analysisDetail.js +6 -3
  479. package/dist/contracts/analysisViewApiSurfaceExample.js +68 -0
  480. package/dist/contracts/analysisViewToolContracts.js +24 -3
  481. package/dist/contracts/android/androidToolContracts.js +17 -8
  482. package/dist/contracts/applicationToolContracts.js +17 -2
  483. package/dist/contracts/artifactToolContracts.js +14 -2
  484. package/dist/contracts/browserToolContracts.js +1 -0
  485. package/dist/contracts/captures/captureToolContracts.js +42 -0
  486. package/dist/contracts/compactInputSchema.js +26 -6
  487. package/dist/contracts/cutterToolContracts.js +84 -0
  488. package/dist/contracts/enhancedToolContracts.js +2 -2
  489. package/dist/contracts/evm/evmToolContracts.js +30 -15
  490. package/dist/contracts/firmware/firmwareToolContracts.js +1 -1
  491. package/dist/contracts/flutter/flutterToolContracts.js +47 -0
  492. package/dist/contracts/fridaRemoteAddress.js +23 -0
  493. package/dist/contracts/fridaToolContracts.js +273 -0
  494. package/dist/contracts/functionComparisonExample.js +12 -1
  495. package/dist/contracts/gdbToolContracts.js +103 -0
  496. package/dist/contracts/go/goToolContracts.js +20 -0
  497. package/dist/contracts/hopperMemoryContracts.js +15 -0
  498. package/dist/contracts/inputSchemaPresentation.js +81 -14
  499. package/dist/contracts/investigationExamples.js +1 -0
  500. package/dist/contracts/javascript/electronToolContracts.js +27 -2
  501. package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +13 -1
  502. package/dist/contracts/managed/managedToolContracts.js +43 -4
  503. package/dist/contracts/managed/managedWorkflowExamples.js +7 -1
  504. package/dist/contracts/managed/managedWorkflowToolContracts.js +4 -30
  505. package/dist/contracts/mobileApplicationGraphExamples.js +12 -0
  506. package/dist/contracts/native/binaryDiagnosticsToolContracts.js +3 -2
  507. package/dist/contracts/native/nativeToolContracts.js +10 -6
  508. package/dist/contracts/officialToolContracts.js +5 -5
  509. package/dist/contracts/pcap/pcapToolContracts.js +33 -0
  510. package/dist/contracts/providerSelection.js +1 -0
  511. package/dist/contracts/reconstructionReadinessExample.js +126 -119
  512. package/dist/contracts/reverseEngineeringToolContracts.js +52 -0
  513. package/dist/contracts/rizinDebugToolContracts.js +96 -0
  514. package/dist/contracts/rust/rustToolContracts.js +20 -0
  515. package/dist/contracts/sessionLifecycleInputs.js +34 -2
  516. package/dist/contracts/sessionToolContracts.js +2 -2
  517. package/dist/contracts/sessionToolSchemas.js +14 -0
  518. package/dist/contracts/signals/signalToolContracts.js +40 -0
  519. package/dist/contracts/sqlite/sqliteToolContracts.js +36 -0
  520. package/dist/contracts/toolContractExamples.js +29 -0
  521. package/dist/contracts/toolContractTypes.js +2 -0
  522. package/dist/contracts/toolContracts.js +26 -0
  523. package/dist/contracts/toolEffects.js +247 -8
  524. package/dist/contracts/toolOutputSchemaGroups.js +75 -32
  525. package/dist/contracts/toolOutputSchemaPrimitives.js +111 -10
  526. package/dist/contracts/toolSchemaMetadata.js +16 -2
  527. package/dist/contracts/unknownContractExamples.js +1 -1
  528. package/dist/contracts/wasm/wasmComparisonContracts.js +52 -0
  529. package/dist/contracts/wasm/wasmToolContracts.js +33 -0
  530. package/dist/contracts/webNetworkCaptureToolContracts.js +15 -4
  531. package/dist/cutter/CutterBridgeClient.js +621 -0
  532. package/dist/cutter/CutterBridgeService.js +139 -0
  533. package/dist/doctorRuntime.js +20 -8
  534. package/dist/domain/adb/adbDeviceAnalysis.js +26 -4
  535. package/dist/domain/analysisErrorBase.js +20 -0
  536. package/dist/domain/analysisErrorCleanup.js +1 -1
  537. package/dist/domain/analysisErrorCore.js +19 -0
  538. package/dist/domain/analysisErrorPresentation.js +58 -17
  539. package/dist/domain/analysisErrorProjection.js +31 -12
  540. package/dist/domain/analysisProfile.js +7 -3
  541. package/dist/domain/analysisSnapshot.js +311 -184
  542. package/dist/domain/analysisView/WebNetworkApiSurfaceAccumulator.js +414 -0
  543. package/dist/domain/analysisView/analysisView.js +366 -44
  544. package/dist/domain/analysisView/analysisViewCoverage.js +32 -0
  545. package/dist/domain/analysisView/analysisViewErrors.js +4 -0
  546. package/dist/domain/analysisView/analysisViewParent.js +12 -0
  547. package/dist/domain/analysisView/analysisViewText.js +29 -0
  548. package/dist/domain/analysisView/androidPackageView.js +102 -0
  549. package/dist/domain/analysisView/artifactInventoryView.js +140 -0
  550. package/dist/domain/analysisView/binaryLayoutView.js +11 -4
  551. package/dist/domain/analysisView/dartAotView.js +93 -0
  552. package/dist/domain/analysisView/evmInterfaceView.js +105 -0
  553. package/dist/domain/analysisView/interfaceBuilderView.js +182 -0
  554. package/dist/domain/analysisView/javascriptApplicationView.js +29 -28
  555. package/dist/domain/analysisView/machoView.js +186 -0
  556. package/dist/domain/analysisView/managedArtifactView.js +108 -0
  557. package/dist/domain/analysisView/managedMemberView.js +209 -0
  558. package/dist/domain/analysisView/nativeFunctionView.js +20 -25
  559. package/dist/domain/analysisView/pcapCaptureView.js +264 -0
  560. package/dist/domain/analysisView/qlogCaptureView.js +198 -0
  561. package/dist/domain/analysisView/wasmArtifactView.js +162 -0
  562. package/dist/domain/analysisView/webNetworkApiSurfaceView.js +123 -0
  563. package/dist/domain/analysisView/webNetworkCaptureView.js +388 -0
  564. package/dist/domain/android/androidAnalysis.js +36 -2
  565. package/dist/domain/android/androidApplication.js +32 -60
  566. package/dist/domain/apktool/apktoolResourceAnalysis.js +19 -7
  567. package/dist/domain/apple/appleApplication.js +31 -29
  568. package/dist/domain/apple/appleArchiveFormat.js +184 -0
  569. package/dist/domain/apple/appleAssetCatalog.js +15 -0
  570. package/dist/domain/apple/appleBundleAnatomy.js +1 -1
  571. package/dist/domain/apple/dyldPaths.js +9 -2
  572. package/dist/domain/apple/dylibResolution.js +19 -9
  573. package/dist/domain/apple/dylibResolutionFindings.js +8 -9
  574. package/dist/domain/apple/interfaceBuilderGraph.js +50 -26
  575. package/dist/domain/apple/interfaceBuilderKeyedArchive.js +28 -8
  576. package/dist/domain/apple/machoContainer.js +120 -8
  577. package/dist/domain/apple/machoCpuIdentity.js +4 -0
  578. package/dist/domain/apple/plistValue.js +6 -1
  579. package/dist/domain/artifactComparison.js +109 -32
  580. package/dist/domain/artifactDecompressionBudget.js +26 -0
  581. package/dist/domain/artifactGraph.js +23 -6
  582. package/dist/domain/artifactIdentity.js +4 -1
  583. package/dist/domain/artifactInspection.js +44 -2
  584. package/dist/domain/artifactInventoryEvidence.js +137 -39
  585. package/dist/domain/binaryTarget.js +251 -94
  586. package/dist/domain/binaryTargetTypes.js +14 -1
  587. package/dist/domain/browserNetworkEvidence.js +4 -0
  588. package/dist/domain/browserObservation.js +88 -29
  589. package/dist/domain/browserObservationSchemas.js +4 -1
  590. package/dist/domain/browserScenarioCapture.js +2 -1
  591. package/dist/domain/browserScenarioCaptureValues.js +26 -2
  592. package/dist/domain/browserScenarioDiff.js +120 -11
  593. package/dist/domain/browserScenarioDiffEvidence.js +46 -13
  594. package/dist/domain/browserScenarioDiffValues.js +10 -3
  595. package/dist/domain/browserScenarioNetworkComparison.js +158 -0
  596. package/dist/domain/browserScenarioNormalization.js +10 -13
  597. package/dist/domain/browserScenarioValues.js +2 -12
  598. package/dist/domain/browserSession.js +2 -2
  599. package/dist/domain/bundleComparison.js +1 -5
  600. package/dist/domain/callPath.js +40 -3
  601. package/dist/domain/captures/packetCapture.js +138 -0
  602. package/dist/domain/captures/packetFields.js +81 -0
  603. package/dist/domain/changedBehavior.js +43 -41
  604. package/dist/domain/comparisonSourceEvidence.js +6 -0
  605. package/dist/domain/dosCom.js +2 -2
  606. package/dist/domain/dosMz.js +52 -14
  607. package/dist/domain/electron/electronFuses.js +360 -0
  608. package/dist/domain/elfFixedHeader.js +42 -0
  609. package/dist/domain/evidence.js +103 -38
  610. package/dist/domain/evidenceBundle.js +58 -20
  611. package/dist/domain/evidenceErrors.js +5 -0
  612. package/dist/domain/evm/evmInterface.js +18 -4
  613. package/dist/domain/evm/solidityMetadata.js +70 -0
  614. package/dist/domain/explicitSensitiveFailure.js +42 -24
  615. package/dist/domain/firmware/firmwareAnalysis.js +29 -0
  616. package/dist/domain/flutter/flutterBuildAnalysis.js +141 -0
  617. package/dist/domain/functionCallCoverage.js +60 -0
  618. package/dist/domain/functionComparisonDimensions.js +101 -10
  619. package/dist/domain/functionComparisonNormalization.js +66 -10
  620. package/dist/domain/functionComparisonResults.js +7 -6
  621. package/dist/domain/functionComparisonSchemas.js +14 -3
  622. package/dist/domain/functionDossierEvidence.js +3 -0
  623. package/dist/domain/go/goBinary.js +96 -0
  624. package/dist/domain/harmony/harmonyApplication.js +156 -0
  625. package/dist/domain/hopperErrors.js +15 -16
  626. package/dist/domain/hopperPublisher.js +12 -0
  627. package/dist/domain/hopperValues.js +112 -34
  628. package/dist/domain/javascript/electronObservation.js +4 -1
  629. package/dist/domain/javascript/electronStaticAnalysisBrowser.js +15 -14
  630. package/dist/domain/javascript/electronStaticAnalysisIpc.js +3 -1
  631. package/dist/domain/javascript/electronStaticAnalysisNative.js +19 -5
  632. package/dist/domain/javascript/electronStaticAnalysisValues.js +14 -8
  633. package/dist/domain/javascript/electronWrappedCallPaths.js +498 -0
  634. package/dist/domain/javascript/htmlArtifactReferences.js +94 -4
  635. package/dist/domain/javascript/javascriptAnalysisResourceControls.js +21 -1
  636. package/dist/domain/javascript/javascriptApplicationAnalysis.js +3 -0
  637. package/dist/domain/javascript/javascriptApplicationChangeGraph.js +7 -2
  638. package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +1 -1
  639. package/dist/domain/javascript/javascriptApplicationGraph.js +17 -1
  640. package/dist/domain/javascript/javascriptApplicationGraphSchemas.js +1 -0
  641. package/dist/domain/javascript/javascriptApplicationProjectionResources.js +8 -0
  642. package/dist/domain/javascript/javascriptApplicationVersionKeys.js +31 -18
  643. package/dist/domain/javascript/javascriptArtifactFiles.js +2 -1
  644. package/dist/domain/javascript/javascriptAstFingerprint.js +51 -17
  645. package/dist/domain/javascript/javascriptAstValues.js +52 -3
  646. package/dist/domain/javascript/javascriptBootstrap.js +94 -0
  647. package/dist/domain/javascript/javascriptBootstrapIntegrity.js +372 -0
  648. package/dist/domain/javascript/javascriptBuiltinResourceMethods.js +8 -0
  649. package/dist/domain/javascript/javascriptBundledRequireOrigin.js +291 -0
  650. package/dist/domain/javascript/javascriptContextBridgeExposure.js +23 -0
  651. package/dist/domain/javascript/javascriptElectronMemberWrites.js +86 -22
  652. package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +6 -5
  653. package/dist/domain/javascript/javascriptExportShapeVariants.js +1 -1
  654. package/dist/domain/javascript/javascriptFeatureSeed.js +33 -16
  655. package/dist/domain/javascript/javascriptFeatureTrace.js +9 -3
  656. package/dist/domain/javascript/javascriptFeatureTraceSchemas.js +42 -11
  657. package/dist/domain/javascript/javascriptIntrinsicInvocation.js +132 -0
  658. package/dist/domain/javascript/javascriptModuleDeclaration.js +28 -0
  659. package/dist/domain/javascript/javascriptModuleInterop.js +618 -0
  660. package/dist/domain/javascript/javascriptModuleResolutionMode.js +18 -0
  661. package/dist/domain/javascript/javascriptModuleSpecifier.js +5 -0
  662. package/dist/domain/javascript/javascriptNativeHandoff.js +0 -1
  663. package/dist/domain/javascript/javascriptPackageImportAliases.js +58 -0
  664. package/dist/domain/javascript/javascriptRecovery.js +12 -5
  665. package/dist/domain/javascript/javascriptRpcEndpoints.js +119 -41
  666. package/dist/domain/javascript/javascriptRuntimeLoadState.js +11 -0
  667. package/dist/domain/javascript/javascriptRuntimeObservation.js +4 -1
  668. package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +10 -4
  669. package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +15 -2
  670. package/dist/domain/javascript/javascriptRuntimeReconciliationResult.js +0 -1
  671. package/dist/domain/javascript/javascriptRuntimeReconciliationSchemas.js +5 -4
  672. package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +113 -11
  673. package/dist/domain/javascript/javascriptSemanticAmbientWrites.js +251 -0
  674. package/dist/domain/javascript/javascriptSemanticAnalysis.js +340 -108
  675. package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +17 -34
  676. package/dist/domain/javascript/javascriptSemanticCallResolution.js +4 -3
  677. package/dist/domain/javascript/javascriptSemanticCallableStack.js +52 -0
  678. package/dist/domain/javascript/javascriptSemanticCalls.js +6 -11
  679. package/dist/domain/javascript/javascriptSemanticChildProcesses.js +42 -55
  680. package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +428 -32
  681. package/dist/domain/javascript/javascriptSemanticDataEffects.js +14 -20
  682. package/dist/domain/javascript/javascriptSemanticDependencies.js +69 -0
  683. package/dist/domain/javascript/javascriptSemanticFingerprints.js +11 -14
  684. package/dist/domain/javascript/javascriptSemanticGraph.js +5 -1
  685. package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +0 -1
  686. package/dist/domain/javascript/javascriptSemanticIterationSources.js +2 -2
  687. package/dist/domain/javascript/javascriptSemanticMemberMutations.js +224 -91
  688. package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +199 -3
  689. package/dist/domain/javascript/javascriptSemanticObjectReferences.js +333 -43
  690. package/dist/domain/javascript/javascriptSemanticObjects.js +20 -16
  691. package/dist/domain/javascript/javascriptSemanticProjection.js +151 -43
  692. package/dist/domain/javascript/javascriptSemanticPromises.js +6 -9
  693. package/dist/domain/javascript/javascriptSemanticProvenance.js +5 -1
  694. package/dist/domain/javascript/javascriptSemanticQuery.js +7 -2
  695. package/dist/domain/javascript/javascriptSemanticReferenceSources.js +25 -0
  696. package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +331 -8
  697. package/dist/domain/javascript/javascriptSemanticResources.js +6 -40
  698. package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +14 -0
  699. package/dist/domain/javascript/javascriptSemanticReturns.js +37 -30
  700. package/dist/domain/javascript/javascriptSemanticState.js +39 -2
  701. package/dist/domain/javascript/javascriptSemanticTraversal.js +6 -4
  702. package/dist/domain/javascript/javascriptSemanticValues.js +227 -30
  703. package/dist/domain/javascript/javascriptSourceMapPaths.js +44 -17
  704. package/dist/domain/javascript/javascriptSourceParser.js +72 -3
  705. package/dist/domain/javascript/javascriptSourceSelection.js +11 -0
  706. package/dist/domain/javascript/javascriptStaticAnalysis.js +51 -17
  707. package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +97 -23
  708. package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +224 -44
  709. package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +166 -56
  710. package/dist/domain/javascript/javascriptStaticAnalysisState.js +1 -0
  711. package/dist/domain/javascript/javascriptStaticAnalysisTypes.js +2 -1
  712. package/dist/domain/javascript/javascriptSymbolicBindings.js +836 -0
  713. package/dist/domain/javascript/javascriptSymbolicControlFlow.js +40 -0
  714. package/dist/domain/javascript/javascriptSymbolicValues.js +34 -0
  715. package/dist/domain/javascript/sourceToBundleComparison.js +3 -1
  716. package/dist/domain/javascript/sourceToBundleComparisonSchemas.js +2 -0
  717. package/dist/domain/javascript/sourceToBundleSignals.js +47 -13
  718. package/dist/domain/jsonValue.js +37 -12
  719. package/dist/domain/localPath.js +6 -3
  720. package/dist/domain/managed/managedApplicationGraph.js +5 -0
  721. package/dist/domain/managed/managedApplicationGraphCoverage.js +6 -2
  722. package/dist/domain/managed/managedApplicationGraphNodes.js +0 -1
  723. package/dist/domain/managed/managedArtifact.js +51 -1
  724. package/dist/domain/managed/managedInspectionEvidence.js +5 -6
  725. package/dist/domain/managed/managedMemberComparison.js +3 -0
  726. package/dist/domain/managed/managedMemberComparisonCoverage.js +23 -3
  727. package/dist/domain/managed/managedMemberComparisonItems.js +23 -19
  728. package/dist/domain/managed/managedMemberComparisonMatch.js +209 -18
  729. package/dist/domain/managed/managedNativeVerificationMatch.js +49 -26
  730. package/dist/domain/managed/managedNativeVerificationSchemas.js +13 -2
  731. package/dist/domain/managed/managedReconstruction.js +5 -8
  732. package/dist/domain/mobileApplicationGraphProjection.js +80 -0
  733. package/dist/domain/native/addressCoordinate.js +11 -0
  734. package/dist/domain/native/binaryLayout.js +2 -4
  735. package/dist/domain/native/bytePattern.js +100 -0
  736. package/dist/domain/native/nativeAotPe.js +2 -2
  737. package/dist/domain/native/nativeInspection.js +38 -4
  738. package/dist/domain/native/nativeInstruction.js +17 -2
  739. package/dist/domain/native/nativeInvestigationGraph.js +9 -5
  740. package/dist/domain/native/nativeLoadImage.js +19 -1
  741. package/dist/domain/native/nativeUiObservation.js +5 -6
  742. package/dist/domain/native/objcSwiftMetadata.js +4 -1
  743. package/dist/domain/native/peResources.js +8 -2
  744. package/dist/domain/native/recordedCrash.js +79 -10
  745. package/dist/domain/offsetDateTime.js +60 -0
  746. package/dist/domain/pcap/pcapAnalysis.js +91 -0
  747. package/dist/domain/pcap/pcapEvidence.js +15 -0
  748. package/dist/domain/peMachine.js +36 -0
  749. package/dist/domain/pngHeader.js +18 -0
  750. package/dist/domain/process/processCaptureCoverage.js +26 -3
  751. package/dist/domain/process/processCaptureExample.js +2 -0
  752. package/dist/domain/process/processCaptureValidation.js +33 -8
  753. package/dist/domain/process/processComparison.js +41 -13
  754. package/dist/domain/process/processScenario.js +7 -0
  755. package/dist/domain/process/processTraceEvaluation.js +54 -50
  756. package/dist/domain/process/processTraceSpecification.js +243 -89
  757. package/dist/domain/propertyListKeys.js +211 -11
  758. package/dist/domain/propertyListXmlText.js +20 -4
  759. package/dist/domain/providerAdapterError.js +0 -5
  760. package/dist/domain/providerConfigurationRefusal.js +12 -0
  761. package/dist/domain/providerSelectionError.js +2 -1
  762. package/dist/domain/qlogCapture.js +62 -0
  763. package/dist/domain/rawBinary.js +96 -0
  764. package/dist/domain/reconstructionCoverage.js +5 -1
  765. package/dist/domain/reconstructionCoverageEvaluation.js +18 -15
  766. package/dist/domain/reconstructionCoverageVerifierResults.js +35 -0
  767. package/dist/domain/reconstructionObligationLedgerIntegrity.js +114 -0
  768. package/dist/domain/reconstructionObligationLedgerSchemas.js +104 -1
  769. package/dist/domain/reconstructionReadiness.js +4 -8
  770. package/dist/domain/reconstructionReadinessJourneyFindings.js +4 -1
  771. package/dist/domain/reconstructionUnknowns.js +9 -1
  772. package/dist/domain/reconstructionVerification.js +54 -25
  773. package/dist/domain/recordedTransportUrl.js +59 -0
  774. package/dist/domain/referenceSourceClassification.js +27 -23
  775. package/dist/domain/referenceSourceGraph.js +51 -13
  776. package/dist/domain/referenceSourceImportParsing.js +23 -13
  777. package/dist/domain/referenceSourcePathIdentity.js +11 -1
  778. package/dist/domain/referenceSourceRequireBindings.js +5 -12
  779. package/dist/domain/referenceSourceSummary.js +92 -0
  780. package/dist/domain/relationshipCoverage.js +44 -0
  781. package/dist/domain/residualUnknown.js +93 -26
  782. package/dist/domain/reverseEngineering.js +31 -0
  783. package/dist/domain/runtimeVersion.js +8 -0
  784. package/dist/domain/rust/rustBinary.js +200 -0
  785. package/dist/domain/signals/annotationTextWindow.js +31 -0
  786. package/dist/domain/signals/signalDecoders.js +69 -0
  787. package/dist/domain/signals/signalRecording.js +115 -0
  788. package/dist/domain/sourceMapContents.js +10 -3
  789. package/dist/domain/sourceMapEnvelope.js +17 -11
  790. package/dist/domain/sqlite/sqliteDatabase.js +188 -0
  791. package/dist/domain/staticRuntimeCorrelation.js +7 -9
  792. package/dist/domain/swiftSymbolClassification.js +17 -0
  793. package/dist/domain/symbolAnalysis.js +16 -4
  794. package/dist/domain/urlComponents.js +6 -0
  795. package/dist/domain/wasm/wasmArtifact.js +119 -0
  796. package/dist/domain/wasm/wasmInterface.js +89 -0
  797. package/dist/domain/webBundleAnalysis.js +14 -3
  798. package/dist/domain/webBundleAnalyzerAst.js +7 -2
  799. package/dist/domain/webBundleAnalyzerInspection.js +54 -38
  800. package/dist/domain/webBundleAnalyzerResult.js +18 -6
  801. package/dist/domain/webCaptureDiff.js +140 -39
  802. package/dist/domain/webCaptureFrameComparison.js +49 -0
  803. package/dist/domain/webMcpDiscovery.js +5 -2
  804. package/dist/domain/webModuleImports.js +22 -27
  805. package/dist/domain/webModuleTrace.js +3 -8
  806. package/dist/domain/webNetworkCapture.js +101 -39
  807. package/dist/domain/webNetworkCaptureCoordinates.js +21 -0
  808. package/dist/domain/webRuntime.js +0 -1
  809. package/dist/domain/webScreenshot.js +2 -2
  810. package/dist/domain/webScriptArtifacts.js +2 -4
  811. package/dist/domain/webScriptExport.js +6 -8
  812. package/dist/domain/webScriptExportPlan.js +2 -2
  813. package/dist/domain/webSourceLocation.js +20 -9
  814. package/dist/domain/zipPackageFormat.js +29 -3
  815. package/dist/dotnet/ManagedArtifactInspector.js +27 -12
  816. package/dist/dotnet/ManagedDecodeBudget.js +66 -8
  817. package/dist/dotnet/ManagedMemberInspector.js +101 -21
  818. package/dist/dotnet/ManagedMemberInspectorCore.js +356 -140
  819. package/dist/dotnet/ManagedMemberInstructionDecoder.js +109 -37
  820. package/dist/dotnet/ManagedMemberOwnership.js +65 -0
  821. package/dist/dotnet/ManagedMemberPointers.js +69 -0
  822. package/dist/dotnet/ManagedMemberRows.js +179 -46
  823. package/dist/dotnet/ManagedMetadataHeaps.js +110 -24
  824. package/dist/dotnet/ManagedMetadataInventory.js +5 -5
  825. package/dist/dotnet/ManagedMetadataInventoryRows.js +36 -52
  826. package/dist/dotnet/ManagedMetadataLayout.js +9 -1
  827. package/dist/dotnet/ManagedMetadataRowSizes.js +1 -1
  828. package/dist/dotnet/ManagedMethodBodyReader.js +29 -11
  829. package/dist/dotnet/ManagedMethodSpecs.js +78 -0
  830. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +2 -2
  831. package/dist/dotnet/ManagedNativeBoundaryInspector.js +6 -13
  832. package/dist/dotnet/ManagedPeReader.js +55 -27
  833. package/dist/dotnet/ManagedReaderFailure.js +9 -0
  834. package/dist/dotnet/ManagedSnapshot.js +88 -0
  835. package/dist/dotnet/ManagedStaticProvider.js +55 -64
  836. package/dist/dotnet/ManagedTypeMemberLists.js +105 -0
  837. package/dist/dotnet/ManagedTypeNames.js +98 -0
  838. package/dist/dotnet/ManagedUserStrings.js +75 -0
  839. package/dist/electron/ElectronFusePath.js +247 -0
  840. package/dist/electron/ElectronFuseProvider.js +113 -0
  841. package/dist/electron/ElectronFuseReader.js +317 -0
  842. package/dist/evaluation/AgentEvaluationFixtures.js +194 -11
  843. package/dist/evaluation/CodexAgentEval.js +19 -40
  844. package/dist/evaluation/KnownAnswerEvaluation.js +126 -57
  845. package/dist/evm/EvmoleFailures.js +19 -14
  846. package/dist/evm/EvmoleInterfaceAdapter.js +5 -1
  847. package/dist/evm/EvmoleInterfaceProvider.js +141 -31
  848. package/dist/evm/EvmoleInterfaceWorker.js +2 -0
  849. package/dist/evm/SolidityMetadata.js +139 -0
  850. package/dist/filesystem/OwnedStagedOutput.js +138 -0
  851. package/dist/filesystem/RegularFile.js +48 -4
  852. package/dist/filesystem/readFileHandleChunks.js +17 -8
  853. package/dist/firmware/FirmwareCommand.js +2 -2
  854. package/dist/firmware/FirmwareFiles.js +8 -12
  855. package/dist/firmware/FirmwareProvider.js +2 -0
  856. package/dist/firmware/FirmwarePublication.js +218 -1
  857. package/dist/firmware/FirmwareReports.js +202 -12
  858. package/dist/flutter/DartElf.js +418 -0
  859. package/dist/flutter/ElfBuildId.js +137 -0
  860. package/dist/flutter/ElfLoadMap.js +91 -0
  861. package/dist/flutter/FlutterBuildProvider.js +826 -0
  862. package/dist/flutter/FlutterPayloadScan.js +180 -0
  863. package/dist/frida/FridaInstrumentationManager.js +1104 -0
  864. package/dist/gdb/GdbSessionManager.js +1451 -0
  865. package/dist/generatedPackageMetadata.js +2 -2
  866. package/dist/ghidra/GhidraAnalysisProfile.js +130 -12
  867. package/dist/ghidra/GhidraClient.js +195 -88
  868. package/dist/ghidra/GhidraDiagnostics.js +7 -0
  869. package/dist/ghidra/GhidraDoctor.js +15 -12
  870. package/dist/ghidra/GhidraFunctionValues.js +49 -2
  871. package/dist/ghidra/GhidraInstallation.js +215 -19
  872. package/dist/ghidra/GhidraInstallationPolicy.js +79 -29
  873. package/dist/ghidra/GhidraInventoryValues.js +30 -0
  874. package/dist/ghidra/GhidraJavaLaunch.js +91 -10
  875. package/dist/ghidra/GhidraJavaProperties.js +117 -0
  876. package/dist/ghidra/GhidraLanguageCatalog.js +74 -4
  877. package/dist/ghidra/GhidraLauncher.js +234 -57
  878. package/dist/ghidra/GhidraLoadImageAttest.js +28 -8
  879. package/dist/ghidra/GhidraLoadImageValues.js +72 -0
  880. package/dist/ghidra/GhidraMipsProfile.js +250 -14
  881. package/dist/ghidra/GhidraPeProfile.js +21 -0
  882. package/dist/ghidra/GhidraPowerPcProfile.js +51 -0
  883. package/dist/ghidra/GhidraProvider.js +54 -16
  884. package/dist/ghidra/GhidraProviderCapabilities.js +13 -12
  885. package/dist/ghidra/GhidraProviderClient.js +260 -57
  886. package/dist/ghidra/GhidraPspExtension.js +140 -0
  887. package/dist/ghidra/GhidraPspProfile.js +59 -0
  888. package/dist/ghidra/GhidraRawBinaryLanguage.js +40 -0
  889. package/dist/ghidra/GhidraRiscvProfile.js +100 -0
  890. package/dist/ghidra/GhidraSessionError.js +155 -11
  891. package/dist/ghidra/GhidraSessionValues.js +66 -0
  892. package/dist/ghidra/GhidraTransport.js +2 -1
  893. package/dist/go/GoBinaryContainer.js +140 -0
  894. package/dist/go/GoBinaryImage.js +210 -0
  895. package/dist/go/GoBinaryProvider.js +151 -0
  896. package/dist/go/GoElfImage.js +211 -0
  897. package/dist/go/GoMachoImage.js +164 -0
  898. package/dist/go/GoModuleText.js +217 -0
  899. package/dist/go/GoPeImage.js +124 -0
  900. package/dist/hopper/BridgeLauncher.js +35 -2
  901. package/dist/hopper/HopperAnalysisProfile.js +21 -11
  902. package/dist/hopper/HopperCleanup.js +15 -3
  903. package/dist/hopper/HopperClient.js +188 -36
  904. package/dist/hopper/HopperMacPublisher.js +29 -0
  905. package/dist/hopper/HopperMachOImage.js +61 -29
  906. package/dist/hopper/HopperProcessDiagnostic.js +27 -0
  907. package/dist/hopper/HopperProvider.js +59 -28
  908. package/dist/hopper/HopperProviderCapabilities.js +7 -3
  909. package/dist/hopper/HopperRequestQueue.js +17 -5
  910. package/dist/hopper/HopperSessionValues.js +10 -1
  911. package/dist/hopper/HopperTargetLease.js +66 -19
  912. package/dist/ida/IdaBusyHealth.js +44 -0
  913. package/dist/ida/IdaCallGraph.js +134 -0
  914. package/dist/ida/IdaConfiguration.js +7 -2
  915. package/dist/ida/IdaDiagnosticRedactor.js +199 -0
  916. package/dist/ida/IdaDiagnosticWriter.js +62 -0
  917. package/dist/ida/IdaDoctor.js +7 -5
  918. package/dist/ida/IdaJsonDiagnostic.js +138 -0
  919. package/dist/ida/IdaMcpConnection.js +297 -27
  920. package/dist/ida/IdaNativeProtocol.js +93 -0
  921. package/dist/ida/IdaOperationRunner.js +246 -43
  922. package/dist/ida/IdaProtocolValues.js +86 -4
  923. package/dist/ida/IdaProvider.js +29 -10
  924. package/dist/ida/IdaProviderCapabilities.js +37 -8
  925. package/dist/ida/IdaSessionClient.js +331 -54
  926. package/dist/ida/IdaWorkspace.js +54 -6
  927. package/dist/inspector/V8InspectorCaptureProjection.js +7 -2
  928. package/dist/inspector/V8InspectorEndpoint.js +15 -13
  929. package/dist/inspector/V8InspectorProvider.js +41 -7
  930. package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +19 -8
  931. package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +103 -29
  932. package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +6 -4
  933. package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +78 -9
  934. package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +15 -5
  935. package/dist/javascript/recovery/RecoveryFiles.js +51 -6
  936. package/dist/javascript/recovery/WakaruExecution.js +19 -11
  937. package/dist/javascript/recovery/WakaruProvider.js +12 -9
  938. package/dist/javascript/recovery/WakaruPublication.js +24 -10
  939. package/dist/javascript/recovery/WakaruRelease.js +1 -1
  940. package/dist/javascript/recovery/WakaruReport.js +3 -2
  941. package/dist/javascript/sourceMaps/DecodedSourceMap.js +2 -16
  942. package/dist/javascript/sourceMaps/SourceMapCommand.js +22 -4
  943. package/dist/javascript/sourceMaps/SourceMapDecoder.js +22 -4
  944. package/dist/javascript/sourceMaps/SourceMapFormat.js +25 -38
  945. package/dist/javascript/sourceMaps/TraceSourceMap.js +34 -6
  946. package/dist/jeb/JebMcpConnection.js +19 -12
  947. package/dist/jeb/JebMcpEndpoint.js +6 -1
  948. package/dist/jeb/JebProvider.js +5 -7
  949. package/dist/logger.js +14 -1
  950. package/dist/main/shutdown.js +3 -0
  951. package/dist/main/transport.js +48 -4
  952. package/dist/main.js +14 -3
  953. package/dist/mcp/AnalysisSnapshotFiles-BAbiJQOc.js +1412 -0
  954. package/dist/mcp/ArtifactProvider-DViCU_rn.js +2183 -0
  955. package/dist/mcp/ArtifactProviderMetadata-b7pOK5_t.js +76 -0
  956. package/dist/mcp/ArtifactReader-OyM03Gjn.js +55 -0
  957. package/dist/mcp/ArtifactResourceScope-P3tq5z8Z.js +162 -0
  958. package/dist/mcp/AsarHeader-WsPgoooH.js +31 -0
  959. package/dist/mcp/BinarySessionStatus-B4P9gf-S.js +212 -0
  960. package/dist/mcp/BinaryTargetResolver-BMaE_0H1.js +1427 -0
  961. package/dist/mcp/BoundedFileBytes-DuczXiQZ.js +68 -0
  962. package/dist/mcp/CdpCaptureDocuments-HDiF2O7k.js +746 -0
  963. package/dist/mcp/CdpCaptureValues-M-j6CIh1.js +90 -0
  964. package/dist/mcp/CdpConnection-BpDfz4MK.js +570 -0
  965. package/dist/mcp/CdpOptionalCommand-BPjRD9Kz.js +120 -0
  966. package/dist/mcp/CdpTargetSession-BsPoKhEU.js +86 -0
  967. package/dist/mcp/DirectAnalysis-DrafbXke.js +409 -0
  968. package/dist/mcp/DirectAnalysisStatus-CjjeDLzW.js +44 -0
  969. package/dist/mcp/ElectronFileScope-BPG_YoyU.js +110 -0
  970. package/dist/mcp/InterfaceBuilderDecodeBudget-5F2AkxJT.js +652 -0
  971. package/dist/mcp/ManagedStaticProvider-BthZbKyZ.js +5028 -0
  972. package/dist/mcp/NativeMacOSProvider-Bh79k8dI.js +4867 -0
  973. package/dist/mcp/NativeMacOSProviderMetadata-N1lPOaY_.js +307 -0
  974. package/dist/mcp/ProcedureAddressResolution-CQpuwm1h.js +19 -0
  975. package/dist/mcp/ProcessOwnership-Bl_3ejLe.js +1502 -0
  976. package/dist/mcp/ProviderDeadline-DskQ94YD.js +932 -0
  977. package/dist/mcp/WorkflowEvidence-umWrB_wm.js +111 -0
  978. package/dist/mcp/analysisErrorCore-DXRTvF_m.js +235 -0
  979. package/dist/mcp/analysisErrorProjection-BN0EPM-3.js +892 -0
  980. package/dist/mcp/artifactOperationError-CkHMMaf7.js +27 -0
  981. package/dist/mcp/artifactToolContracts-Di4qZlEt.js +72 -0
  982. package/dist/mcp/browserObservation-C0s4i8UI.js +4468 -0
  983. package/dist/mcp/browserObservationError-CyLugqX4.js +40 -0
  984. package/dist/mcp/browserObservationSchemas-tgqjH7aA.js +573 -0
  985. package/dist/mcp/browserScenario-CAQ8Fns9.js +2929 -0
  986. package/dist/mcp/browserScenarioCapture-CTNFN-FI.js +479 -0
  987. package/dist/mcp/canonicalDigest-Bi_0_zGi.js +71 -0
  988. package/dist/mcp/digests-BFoWUT_-.js +223 -0
  989. package/dist/mcp/electronActiveObservation-lDvQTMR0.js +226 -0
  990. package/dist/mcp/electronObservation-DFOFEood.js +112 -0
  991. package/dist/mcp/electronObservation-i7LcILQ-.js +562 -0
  992. package/dist/mcp/electronScenario-nCzE6IfJ.js +653 -0
  993. package/dist/mcp/emptyArraySchema-tL6Qymyd.js +140 -0
  994. package/dist/mcp/enhancedInputs-DgdEnzHy.js +56 -0
  995. package/dist/mcp/javascriptRuntimeObservation-61NhCf7H.js +690 -0
  996. package/dist/mcp/javascriptRuntimeObservation-PIUoLfX6.js +121 -0
  997. package/dist/mcp/jsonSerialization-V-wWiFRE.js +152 -0
  998. package/dist/mcp/lipo-Bnkoq_6W.js +502 -0
  999. package/dist/mcp/localPath-AxvW9aPe.js +19 -0
  1000. package/dist/mcp/logger-BQY5ulYv.js +48 -0
  1001. package/dist/mcp/main-kBXHZ8S5.js +69390 -0
  1002. package/dist/mcp/main.js +6 -0
  1003. package/dist/mcp/managedToolContracts-CK--I_s7.js +101 -0
  1004. package/dist/mcp/nativeValueTrace-DR9UE62L.js +3439 -0
  1005. package/dist/mcp/officialToolContracts-B67NJ2tC.js +1413 -0
  1006. package/dist/mcp/pngHeader-DQ-ObyY2.js +147 -0
  1007. package/dist/mcp/propertyListKeys-DD25WsjI.js +553 -0
  1008. package/dist/mcp/providerAdapterError-sDxToNal.js +25 -0
  1009. package/dist/mcp/providerIdentities--ptAh481.js +31 -0
  1010. package/dist/mcp/providerIdentity-BCQ5n5tw.js +16 -0
  1011. package/dist/mcp/providerOperationHealth-CTYa3iLf.js +48 -0
  1012. package/dist/mcp/rolldown-runtime-BjeaiXFo.js +121 -0
  1013. package/dist/mcp/safeJson-NeGfpkrI.js +25 -0
  1014. package/dist/mcp/scanCanonical-CRXSpule.js +3982 -0
  1015. package/dist/mcp/serverIdentity-Cio4iFV3.js +1328 -0
  1016. package/dist/mcp/sourceMapEnvelope-C0uJlrOh.js +94 -0
  1017. package/dist/mcp/toolContracts-BW05wpcr.js +12200 -0
  1018. package/dist/mcp/toolOutputSchemaGroups-ColvNZ1r.js +17533 -0
  1019. package/dist/mcp/unicodeCodePointOrder-BezCbTpg.js +26 -0
  1020. package/dist/mcp/webContentArtifact-Dzjc1z-R.js +284 -0
  1021. package/dist/mcp/webRuntime-K__NYzXm.js +74 -0
  1022. package/dist/mcp/webSourceLocation-DbMAT2J9.js +11130 -0
  1023. package/dist/mcpDoctor.js +93 -70
  1024. package/dist/mcpStartupPolicy.js +3 -0
  1025. package/dist/native/AppleDispatchCoverage.js +57 -17
  1026. package/dist/native/AppleDispatchMetadata.js +6 -2
  1027. package/dist/native/AppleMachoFixups.js +188 -25
  1028. package/dist/native/AppleMachoSelection.js +30 -23
  1029. package/dist/native/AppleObjcCategories.js +1 -2
  1030. package/dist/native/AppleObjcDispatchFacets.js +76 -7
  1031. package/dist/native/CommandRunner.js +142 -32
  1032. package/dist/native/LldbCallTracer.js +5 -3
  1033. package/dist/native/MachoArchitectureSelection.js +50 -0
  1034. package/dist/native/NativeCallObservation.js +2 -1
  1035. package/dist/native/NativeMacOSProvider.js +90 -29
  1036. package/dist/native/NativeMachoInspection.js +136 -76
  1037. package/dist/native/NativeUiObservation.js +2 -2
  1038. package/dist/native/SignatureTargetBinding.js +118 -55
  1039. package/dist/native/parsers/codesign.js +27 -10
  1040. package/dist/native/parsers/demangle.js +7 -1
  1041. package/dist/native/parsers/dyldInfo.js +73 -4
  1042. package/dist/native/parsers/lipo.js +53 -19
  1043. package/dist/native/parsers/machoUuid.js +150 -0
  1044. package/dist/native/parsers/otool.js +232 -29
  1045. package/dist/native/pe/PeResourcesProvider.js +20 -6
  1046. package/dist/native/pwndbg/PwndbgCoreContext.js +20 -20
  1047. package/dist/native/pwntools/PwntoolsDecoder.js +264 -40
  1048. package/dist/native/pwntools/PwntoolsFailures.js +2 -1
  1049. package/dist/native/pwntools/PwntoolsInputLimit.js +27 -0
  1050. package/dist/native/pwntools/PwntoolsRecordedCrashProvider.js +27 -15
  1051. package/dist/native/pwntools/PwntoolsResourceLimits.js +3 -3
  1052. package/dist/native/pwntools/RecordedCrashSourceBindings.js +12 -8
  1053. package/dist/native/pwntools/RecordedCrashStructureBindings.js +3 -1
  1054. package/dist/objdump/ObjdumpCommand.js +21 -0
  1055. package/dist/pcap/PcapCommand.js +146 -0
  1056. package/dist/pcap/PcapConfiguration.js +93 -0
  1057. package/dist/pcap/PcapNativeBound.js +58 -0
  1058. package/dist/pcap/PcapOutput.js +240 -0
  1059. package/dist/pcap/PcapProvider.js +424 -0
  1060. package/dist/pcap/PcapSnapshot.js +171 -0
  1061. package/dist/process/ArtifactAnalysisResources.js +213 -0
  1062. package/dist/process/CurrentEntrypointPath.js +6 -0
  1063. package/dist/process/DarwinProcessRunTokenReader.js +117 -13
  1064. package/dist/process/ExecFileBoundedOutput.js +44 -0
  1065. package/dist/process/ExecFileOutput.js +30 -6
  1066. package/dist/process/JavaScriptWorkerMemoryLimit.js +25 -0
  1067. package/dist/process/LinuxResourceLimits.js +80 -0
  1068. package/dist/process/MacCodeSignature.js +3 -0
  1069. package/dist/process/OwnedCommand.js +37 -13
  1070. package/dist/process/PrivateRuntimeRoot.js +9 -19
  1071. package/dist/process/PrivateRuntimeRootUnavailableError.js +10 -0
  1072. package/dist/process/ProcessOwnership.js +70 -17
  1073. package/dist/process/ProcessOwnershipObservation.js +35 -4
  1074. package/dist/process/ProviderDeadline.js +58 -12
  1075. package/dist/process/ProviderProcess.js +108 -11
  1076. package/dist/process/WindowsAuthority.js +48 -39
  1077. package/dist/process/WindowsBatchCommand.js +46 -0
  1078. package/dist/process/boundedUtf8Text.js +13 -0
  1079. package/dist/process/capture/FilesystemSnapshot.js +60 -9
  1080. package/dist/process/capture/ProcessCaptureClock.js +2 -0
  1081. package/dist/process/capture/ProcessCaptureError.js +22 -3
  1082. package/dist/process/capture/ProcessCaptureJournal.js +2 -1
  1083. package/dist/process/capture/ProcessCaptureLifecycle.js +87 -36
  1084. package/dist/process/capture/ProcessCaptureProgress.js +2 -1
  1085. package/dist/process/capture/ProcessHarness.js +17 -14
  1086. package/dist/process/capture/ProcessNormalization.js +278 -36
  1087. package/dist/process/capture/ProcessSampling.js +3 -2
  1088. package/dist/process/capture/ProcessScenarioRuntimeValidation.js +13 -13
  1089. package/dist/process/capture/TerminalRenderer.js +31 -10
  1090. package/dist/process/ownedDebuggerSession.js +203 -0
  1091. package/dist/reference/ReferenceSourceReader.js +0 -1
  1092. package/dist/reference/ReferenceSourceReaderEntries.js +68 -54
  1093. package/dist/reference/ReferenceSourceReaderErrors.js +5 -1
  1094. package/dist/reference/ReferenceSourceReaderFile.js +0 -1
  1095. package/dist/reference/ReferenceSourceReaderTypes.js +1 -2
  1096. package/dist/reference/ReferenceSourceReaderValidate.js +0 -1
  1097. package/dist/rizin/RizinCommand.js +14 -0
  1098. package/dist/rizin/RizinDebugSessionManager.js +1072 -0
  1099. package/dist/rust/RustAuditableReader.js +309 -0
  1100. package/dist/rust/RustBinaryImage.js +116 -0
  1101. package/dist/rust/RustBinaryProvider.js +162 -0
  1102. package/dist/server/EvidenceMcpServer.js +160 -37
  1103. package/dist/server/admittedToolOperation.js +7 -2
  1104. package/dist/server/contractToolHandler.js +8 -1
  1105. package/dist/server/createServer.js +157 -27
  1106. package/dist/server/externalMutationAdmission.js +50 -0
  1107. package/dist/server/mcpProgress.js +4 -2
  1108. package/dist/server/promptCompletion.js +19 -6
  1109. package/dist/server/providerEnvironment.js +3 -0
  1110. package/dist/server/registerAnalysisViewTool.js +6 -2
  1111. package/dist/server/registerAndroidTools.js +22 -4
  1112. package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +8 -1
  1113. package/dist/server/registerArtifactTools.js +21 -1
  1114. package/dist/server/registerBrowserTools.js +2 -4
  1115. package/dist/server/registerBundleComparisonTool.js +4 -4
  1116. package/dist/server/registerCaptureTools.js +12 -0
  1117. package/dist/server/registerCutterTools.js +33 -0
  1118. package/dist/server/registerElectronTools.js +12 -9
  1119. package/dist/server/registerEnhancedTools.js +7 -6
  1120. package/dist/server/registerEvidenceTools.js +14 -10
  1121. package/dist/server/registerEvmTools.js +22 -4
  1122. package/dist/server/registerFlutterTools.js +17 -0
  1123. package/dist/server/registerFridaTools.js +205 -0
  1124. package/dist/server/registerFunctionComparisonTool.js +29 -9
  1125. package/dist/server/registerGdbTools.js +64 -0
  1126. package/dist/server/registerGoTools.js +9 -0
  1127. package/dist/server/registerInvestigationTools/helpers.js +2 -2
  1128. package/dist/server/registerInvestigationTools.js +12 -8
  1129. package/dist/server/registerJavaScriptRuntimeObservationTools.js +1 -5
  1130. package/dist/server/registerManagedTools.js +11 -1
  1131. package/dist/server/registerNativeTools.js +14 -0
  1132. package/dist/server/registerOfficialTools.js +5 -0
  1133. package/dist/server/registerPcapTools.js +35 -0
  1134. package/dist/server/registerProcessComparisonTool.js +9 -2
  1135. package/dist/server/registerReverseEngineeringTools.js +86 -0
  1136. package/dist/server/registerRizinDebugTools.js +53 -0
  1137. package/dist/server/registerRustTools.js +9 -0
  1138. package/dist/server/registerSessionRecordTools.js +19 -13
  1139. package/dist/server/registerSessionStatusTool.js +22 -4
  1140. package/dist/server/registerSessionTools.js +29 -16
  1141. package/dist/server/registerSignalTools.js +12 -0
  1142. package/dist/server/registerSqliteTools.js +9 -0
  1143. package/dist/server/registerWasmTools.js +46 -0
  1144. package/dist/server/registerWebNetworkCaptureTool.js +24 -10
  1145. package/dist/server/retainedSummaryDelivery.js +28 -0
  1146. package/dist/server/sessionAvailabilityPolicy.js +3 -0
  1147. package/dist/server/toolRegistrationOptions.js +8 -0
  1148. package/dist/server/toolResult.js +52 -19
  1149. package/dist/server/toolResultEncoding.js +36 -3
  1150. package/dist/serverIdentity.js +17 -8
  1151. package/dist/signals/SigrokRecordingProvider.js +339 -0
  1152. package/dist/signals/parseDecoderDiscovery.js +65 -0
  1153. package/dist/sqlite/SqliteDatabaseFailures.js +134 -0
  1154. package/dist/sqlite/SqliteDatabaseInspection.js +421 -0
  1155. package/dist/sqlite/SqliteDatabaseLimits.js +16 -0
  1156. package/dist/sqlite/SqliteDatabaseProvider.js +295 -0
  1157. package/dist/sqlite/SqliteDatabaseSnapshot.js +156 -0
  1158. package/dist/sqlite/SqliteDatabaseWorker.js +46 -0
  1159. package/dist/sqlite/SqliteDatabaseWorkerExecution.js +112 -0
  1160. package/dist/wasm/WabtArtifactProvider.js +336 -0
  1161. package/dist/wasm/WabtFailures.js +101 -0
  1162. package/dist/wasm/WabtInterface.js +309 -0
  1163. package/dist/wasm/WabtOutput.js +60 -0
  1164. package/dist/wasm/WabtRelease.js +12 -0
  1165. package/dist/wasm/WabtString.js +48 -0
  1166. package/dist/wasm/WabtWat.js +147 -0
  1167. package/dist/wasm/WasmGlueAdapter.js +53 -0
  1168. package/dist/wasm/WasmInterfaceBudget.js +11 -0
  1169. package/dist/windows/WindowsNativeLoader.js +37 -7
  1170. package/dist/windows/WindowsOwnedProcess.js +150 -17
  1171. package/dist/windows/WindowsPrivateRuntime.js +22 -1
  1172. package/install.sh +157 -98
  1173. package/licenses/Apache-2.0.txt +202 -0
  1174. package/licenses/GCC-Runtime-Library-Exception-3.1.txt +73 -0
  1175. package/licenses/GPL-3.0.txt +674 -0
  1176. package/licenses/LGPL-2.0.txt +480 -0
  1177. package/licenses/MIT-template.txt +18 -0
  1178. package/licenses/MinGW-w64-runtime.txt +240 -0
  1179. package/licenses/Node-22.19.0-LICENSE.txt +2666 -0
  1180. package/licenses/README.md +68 -0
  1181. package/licenses/cfworker-MIT.txt +21 -0
  1182. package/licenses/dotnet-runtime-MIT.txt +23 -0
  1183. package/licenses/frida-17.23.2-COPYING.txt +50 -0
  1184. package/licenses/ghidra-12.1.4-DISCLAIMER.txt +13 -0
  1185. package/licenses/ghidra-12.1.4-LICENSE.txt +201 -0
  1186. package/licenses/ghidra-12.1.4-NOTICE.txt +49 -0
  1187. package/licenses/npm-dependencies.txt +3612 -0
  1188. package/licenses/npm-runtime-notices.txt +8548 -0
  1189. package/licenses/upstream-sources.json +72 -0
  1190. package/licenses/xterm-MIT.txt +21 -0
  1191. package/native/windows/README.md +92 -11
  1192. package/native/windows/build/manifest.json +2 -2
  1193. package/native/windows/build/rea-windows-x64.node +0 -0
  1194. package/package.json +89 -22
  1195. package/scripts/electron-active-hook.cjs +4 -1
  1196. package/scripts/hopper-demo-x11.py +53 -3
  1197. package/scripts/prepack.mjs +5 -0
  1198. package/scripts/rea-android-workspace-guardian.mjs +46 -0
  1199. package/scripts/rea.mjs +28 -12
  1200. package/scripts/verify-windows-native-artifact.mjs +2 -2
  1201. package/skills/reverse-engineer-anything/SKILL.md +131 -10
  1202. package/skills/reverse-engineer-anything/references/connection-and-recovery.md +10 -10
  1203. package/skills/reverse-engineer-anything/references/evidence-workflows.md +23 -0
  1204. package/skills/reverse-engineer-anything/references/javascript-applications.md +28 -2
  1205. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +125 -15
  1206. package/skills/reverse-engineer-anything/references/runtime-observation.md +57 -7
  1207. package/third_party/README.md +1 -1
  1208. package/third_party/wabt/README.md +24 -0
  1209. package/dist/browser/history/HarCaptureAdapter.js +0 -20
  1210. package/dist/cli/streamedJsonOutput.js +0 -135
  1211. /package/dist/{application/binary → process}/AbortablePromise.js +0 -0
@@ -6,16 +6,21 @@ import { DirectoryArtifactReader } from "./DirectoryArtifactReader.js";
6
6
  import { execFileOutput, execFileOutputFailure, } from "../process/ExecFileOutput.js";
7
7
  import { parseNativeDmgAttachOutput, parseNativeDmgInfo, resolveNativeDmgOwnership, } from "./NativeDmgOwnership.js";
8
8
  const HDIUTIL_COMMAND_TIMEOUT_MS = 120_000;
9
+ const VERIFY_SETTLE_DELAYS_MS = [250, 500];
9
10
  // APFS ejects and busy reporting can lag a detach attempt.
10
11
  const DETACH_SETTLE_DELAYS_MS = [250, 500, 1000];
11
12
  const delay = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));
12
13
  class NativeDmgCommandFailure extends ArtifactReaderFailure {
13
14
  stdout;
14
15
  processNotStarted;
15
- constructor(reason, message, stdout, options) {
16
- super(reason, message, options?.cause === undefined ? undefined : { cause: options.cause });
16
+ verifyDiagnostic;
17
+ exitCode;
18
+ constructor(failure, message, stdout, options) {
19
+ super(failure.reason, message, options?.cause === undefined ? undefined : { cause: options.cause });
17
20
  this.stdout = stdout;
18
21
  this.processNotStarted = options?.processNotStarted ?? false;
22
+ this.verifyDiagnostic = failure.verifyDiagnostic;
23
+ this.exitCode = options?.exitCode ?? null;
19
24
  }
20
25
  }
21
26
  const createSystemHost = (environment) => ({
@@ -33,7 +38,7 @@ const createSystemHost = (environment) => ({
33
38
  catch (cause) {
34
39
  const output = execFileOutputFailure(cause);
35
40
  if (cause instanceof Error && cause.name === "AbortError")
36
- throw new NativeDmgCommandFailure("cancelled", "DMG operation cancelled", output?.stdout ?? "", { cause });
41
+ throw new NativeDmgCommandFailure({ reason: "cancelled" }, "DMG operation cancelled", output?.stdout ?? "", { cause });
37
42
  const exitCode = typeof output?.code === "number" ? output.code : processExitCode(cause);
38
43
  if (exitCode !== undefined)
39
44
  return {
@@ -42,7 +47,7 @@ const createSystemHost = (environment) => ({
42
47
  exitCode,
43
48
  cause,
44
49
  };
45
- throw new NativeDmgCommandFailure(commandFailureReason(cause, arguments_[0]), `hdiutil ${arguments_[0] ?? "operation"} failed: ${describeCommandFailure(cause, arguments_)}`, output?.stdout ?? "", { cause, processNotStarted: processNotStarted(cause) });
50
+ throw new NativeDmgCommandFailure(classifyCommandFailure(cause, arguments_[0]), `hdiutil ${arguments_[0] ?? "operation"} failed: ${describeCommandFailure(cause, arguments_)}`, output?.stdout ?? "", { cause, processNotStarted: processNotStarted(cause) });
46
51
  }
47
52
  },
48
53
  });
@@ -64,25 +69,48 @@ export class NativeDmgArtifactReader {
64
69
  #ownershipUncertainty;
65
70
  #closed = false;
66
71
  #closePromise;
72
+ #activeDirectoryOperations = new Set();
67
73
  constructor(path, environment, host) {
68
74
  this.path = path;
69
75
  if (process.platform !== "darwin" && host === undefined)
70
76
  throw new ArtifactReaderFailure("unavailable", "Native DMG traversal is available only on macOS");
71
77
  this.host = host ?? createSystemHost(environment);
72
78
  }
73
- async *entries(signal) {
79
+ async *entries(signal, options) {
74
80
  await this.#ensureAttached(signal);
75
- if (this.#directory === undefined)
81
+ const directory = this.#directory;
82
+ if (directory === undefined)
76
83
  throw new ArtifactReaderFailure("unavailable", "DMG is not attached");
77
84
  const prefix = basename(this.path);
78
- for await (const entry of this.#directory.entries(signal))
79
- yield { ...entry, path: `${prefix}/${entry.path}` };
85
+ const entries = directory
86
+ .entries(signal, {
87
+ onOmission: (omission) => options?.onOmission?.({
88
+ ...omission,
89
+ path: `${prefix}/${omission.path}`,
90
+ }),
91
+ })[Symbol.asyncIterator]();
92
+ try {
93
+ for (;;) {
94
+ if (this.#closed)
95
+ return;
96
+ const next = await this.#trackDirectoryOperation(() => entries.next());
97
+ if (this.#closed)
98
+ return;
99
+ if (next.done)
100
+ return;
101
+ yield { ...next.value, path: `${prefix}/${next.value.path}` };
102
+ }
103
+ }
104
+ finally {
105
+ await entries.return?.();
106
+ }
80
107
  }
81
108
  async open(entry, signal) {
82
109
  await this.#ensureAttached(signal);
83
- if (this.#directory === undefined)
110
+ const directory = this.#directory;
111
+ if (directory === undefined)
84
112
  throw new ArtifactReaderFailure("unavailable", "DMG is not attached");
85
- return this.#directory.open(entry, signal);
113
+ return this.#trackDirectoryOperation(() => directory.open(entry, signal));
86
114
  }
87
115
  provenance() {
88
116
  return structuredClone(this.#provenance);
@@ -97,6 +125,42 @@ export class NativeDmgArtifactReader {
97
125
  }
98
126
  async #closeOwnedResources() {
99
127
  await this.#initialization?.catch(() => undefined);
128
+ await Promise.allSettled(this.#activeDirectoryOperations);
129
+ await this.#closeMountedDirectory();
130
+ let detachFailure = await this.#detachOwnedDevices();
131
+ if (this.#devices.length === 0 &&
132
+ this.#mountRoot !== undefined &&
133
+ !this.#attachMayHaveMounted)
134
+ await rm(this.#mountRoot, { recursive: true, force: true }).then(() => {
135
+ this.#mountRoot = undefined;
136
+ this.#directory = undefined;
137
+ }, (cause) => {
138
+ detachFailure ??= cause;
139
+ });
140
+ if (this.#attachMayHaveMounted) {
141
+ detachFailure ??= new Error(this.#ownershipUncertainty ??
142
+ "hdiutil attachment ownership remains unknown");
143
+ }
144
+ if (detachFailure !== undefined)
145
+ throw new ArtifactReaderFailure("unavailable", `DMG detach or mount-root cleanup failed for ${JSON.stringify(this.path)}: ${failureMessage(detachFailure)}`, {
146
+ cause: detachFailure,
147
+ cleanup: {
148
+ reason: failureMessage(detachFailure),
149
+ resources: [
150
+ ...this.#devices.map((device) => `DMG device ${device}`),
151
+ ...(this.#attachMayHaveMounted
152
+ ? [
153
+ `DMG attachment ownership unknown at mount root ${this.#mountRoot ?? this.path}`,
154
+ ]
155
+ : []),
156
+ ...(this.#mountRoot === undefined
157
+ ? []
158
+ : [`DMG mount root ${this.#mountRoot}`]),
159
+ ],
160
+ },
161
+ });
162
+ }
163
+ async #detachOwnedDevices() {
100
164
  let detachFailure = await this.#reconcileAttachState();
101
165
  let remainingDevices = [];
102
166
  for (const device of [...this.#devices].reverse()) {
@@ -126,37 +190,26 @@ export class NativeDmgArtifactReader {
126
190
  if (remainingDevices.length === 0)
127
191
  detachFailure = undefined;
128
192
  this.#devices = remainingDevices.reverse();
129
- if (this.#devices.length === 0 &&
130
- this.#mountRoot !== undefined &&
131
- !this.#attachMayHaveMounted)
132
- await rm(this.#mountRoot, { recursive: true, force: true }).then(() => {
133
- this.#mountRoot = undefined;
193
+ return detachFailure;
194
+ }
195
+ async #closeMountedDirectory() {
196
+ if (this.#directory !== undefined) {
197
+ try {
198
+ await this.#directory.close();
134
199
  this.#directory = undefined;
135
- }, (cause) => {
136
- detachFailure ??= cause;
137
- });
138
- if (this.#attachMayHaveMounted) {
139
- detachFailure ??= new Error(this.#ownershipUncertainty ??
140
- "hdiutil attachment ownership remains unknown");
141
- }
142
- if (detachFailure !== undefined)
143
- throw new ArtifactReaderFailure("unavailable", `DMG detach or mount-root cleanup failed for ${JSON.stringify(this.path)}: ${failureMessage(detachFailure)}`, {
144
- cause: detachFailure,
145
- cleanup: {
146
- reason: failureMessage(detachFailure),
200
+ }
201
+ catch (cause) {
202
+ const mountRoot = this.#mountRoot ?? this.path;
203
+ throw ArtifactReaderFailure.withCleanup(cause, {
204
+ reason: `DMG mounted directory remains owned: ${failureMessage(cause)}`,
147
205
  resources: [
206
+ `DMG mounted directory at ${mountRoot}`,
207
+ `DMG mount root ${mountRoot}`,
148
208
  ...this.#devices.map((device) => `DMG device ${device}`),
149
- ...(this.#attachMayHaveMounted
150
- ? [
151
- `DMG attachment ownership unknown at mount root ${this.#mountRoot ?? this.path}`,
152
- ]
153
- : []),
154
- ...(this.#mountRoot === undefined
155
- ? []
156
- : [`DMG mount root ${this.#mountRoot}`]),
157
209
  ],
158
- },
159
- });
210
+ });
211
+ }
212
+ }
160
213
  }
161
214
  /** Detach one device; return the failure only while it remains attached. */
162
215
  async #detach(device) {
@@ -206,9 +259,20 @@ export class NativeDmgArtifactReader {
206
259
  if (this.#closed)
207
260
  throw new ArtifactReaderFailure("unavailable", "DMG reader is closed");
208
261
  }
262
+ async #trackDirectoryOperation(operation) {
263
+ if (this.#closed)
264
+ throw new ArtifactReaderFailure("unavailable", "DMG reader is closed");
265
+ const running = Promise.resolve().then(operation);
266
+ this.#activeDirectoryOperations.add(running);
267
+ try {
268
+ return await running;
269
+ }
270
+ finally {
271
+ this.#activeDirectoryOperations.delete(running);
272
+ }
273
+ }
209
274
  async #attach(signal) {
210
- await runChecked(this.host, ["verify", this.path], signal);
211
- this.#provenance.push(command(["verify", this.path], ["read"]));
275
+ await this.#verify(signal);
212
276
  const baseline = await this.#readInfo();
213
277
  this.#baselineDevices = new Set(baseline.images.flatMap((image) => image["system-entities"].map(({ "dev-entry": device }) => device)));
214
278
  const mountRoot = await realpath(await mkdtemp(join(tmpdir(), "rea-dmg-")));
@@ -268,6 +332,35 @@ export class NativeDmgArtifactReader {
268
332
  throw cause;
269
333
  }
270
334
  }
335
+ async #verify(signal) {
336
+ const arguments_ = ["verify", this.path];
337
+ const deadline = performance.now() + HDIUTIL_COMMAND_TIMEOUT_MS;
338
+ for (let attempt = 0;; attempt += 1) {
339
+ if (signal?.aborted === true)
340
+ throw new NativeDmgCommandFailure({ reason: "cancelled" }, "DMG operation cancelled", "", { cause: signal.reason });
341
+ try {
342
+ await runChecked(this.host, arguments_, signal, {
343
+ timeoutMs: Math.max(1, Math.ceil(deadline - performance.now())),
344
+ });
345
+ this.#provenance.push(command(arguments_, ["read"]));
346
+ return;
347
+ }
348
+ catch (cause) {
349
+ if (!(cause instanceof NativeDmgCommandFailure))
350
+ throw cause;
351
+ this.#provenance.push(command(arguments_, ["read"], cause.exitCode));
352
+ const delayMs = VERIFY_SETTLE_DELAYS_MS[attempt];
353
+ // Retry only the producer's explicit transient diagnostic, before any mount.
354
+ if (cause.verifyDiagnostic !== "Resource temporarily unavailable" ||
355
+ delayMs === undefined ||
356
+ deadline - performance.now() <= delayMs)
357
+ throw cause;
358
+ await (this.host.delay ?? delay)(delayMs);
359
+ if (performance.now() >= deadline)
360
+ throw cause;
361
+ }
362
+ }
363
+ }
271
364
  async #readInfo() {
272
365
  const info = await runChecked(this.host, ["info", "-plist"], undefined, {
273
366
  timeoutMs: HDIUTIL_COMMAND_TIMEOUT_MS,
@@ -328,9 +421,9 @@ const runChecked = async (host, arguments_, signal, options) => {
328
421
  if (cause instanceof ArtifactReaderFailure)
329
422
  throw cause;
330
423
  if (cause instanceof Error && cause.name === "AbortError")
331
- throw new NativeDmgCommandFailure("cancelled", "DMG operation cancelled", execFileOutputFailure(cause)?.stdout ?? "", { cause });
424
+ throw new NativeDmgCommandFailure({ reason: "cancelled" }, "DMG operation cancelled", execFileOutputFailure(cause)?.stdout ?? "", { cause });
332
425
  const output = execFileOutputFailure(cause);
333
- throw new NativeDmgCommandFailure(commandFailureReason(cause, arguments_[0]), `hdiutil ${arguments_[0] ?? "operation"} failed: ${describeCommandFailure(cause, arguments_)}`, output?.stdout ?? "", { cause, processNotStarted: processNotStarted(cause) });
426
+ throw new NativeDmgCommandFailure(classifyCommandFailure(cause, arguments_[0]), `hdiutil ${arguments_[0] ?? "operation"} failed: ${describeCommandFailure(cause, arguments_)}`, output?.stdout ?? "", { cause, processNotStarted: processNotStarted(cause) });
334
427
  }
335
428
  if (result.exitCode !== 0) {
336
429
  const failure = {
@@ -342,12 +435,12 @@ const runChecked = async (host, arguments_, signal, options) => {
342
435
  stdout: result.stdout,
343
436
  ...(result.stderr === undefined ? {} : { stderr: result.stderr }),
344
437
  };
345
- const reason = commandFailureReason(failure, arguments_[0]);
438
+ const classification = classifyCommandFailure(failure, arguments_[0]);
346
439
  const details = describeCommandFailure(failure, arguments_);
347
- const unknownVerifyFailure = arguments_[0] === "verify" && reason === "unavailable";
348
- throw new NativeDmgCommandFailure(reason, unknownVerifyFailure
440
+ const unknownVerifyFailure = arguments_[0] === "verify" && classification.reason === "unavailable";
441
+ throw new NativeDmgCommandFailure(classification, unknownVerifyFailure
349
442
  ? `hdiutil verify failed; captured diagnostics do not establish the failure cause: ${details}`
350
- : `hdiutil ${arguments_[0] ?? "operation"} failed: ${details}`, result.stdout, { cause: result.cause ?? failure });
443
+ : `hdiutil ${arguments_[0] ?? "operation"} failed: ${details}`, result.stdout, { cause: result.cause ?? failure, exitCode: result.exitCode });
351
444
  }
352
445
  return { stdout: result.stdout, exitCode: 0 };
353
446
  };
@@ -395,18 +488,27 @@ const processOutput = (cause, field) => {
395
488
  const value = Reflect.get(cause, field);
396
489
  return typeof value === "string" ? value : "";
397
490
  };
398
- const commandFailureReason = (cause, operation) => {
491
+ const classifyCommandFailure = (cause, operation) => {
399
492
  if (typeof cause !== "object" || cause === null)
400
- return "unavailable";
493
+ return { reason: "unavailable" };
401
494
  const code = Reflect.get(cause, "code");
402
495
  const exitCode = Reflect.get(cause, "exitCode");
403
- if (typeof code === "number" || typeof exitCode === "number")
404
- return operation === "verify" ? verifyFailureReason(cause) : "unavailable";
496
+ if (typeof code === "number" || typeof exitCode === "number") {
497
+ if (operation !== "verify")
498
+ return { reason: "unavailable" };
499
+ const diagnostic = verifyFailureDiagnostic(processOutput(cause, "stdout"), processOutput(cause, "stderr"));
500
+ return {
501
+ reason: verifyFailureReason(diagnostic),
502
+ ...(diagnostic === undefined ? {} : { verifyDiagnostic: diagnostic }),
503
+ };
504
+ }
405
505
  if (code === "ENOENT") {
406
506
  const syscall = Reflect.get(cause, "syscall");
407
- return typeof syscall === "string" && syscall.startsWith("spawn")
408
- ? "unavailable"
409
- : "io";
507
+ return {
508
+ reason: typeof syscall === "string" && syscall.startsWith("spawn")
509
+ ? "unavailable"
510
+ : "io",
511
+ };
410
512
  }
411
513
  if (code === "EACCES" ||
412
514
  code === "EPERM" ||
@@ -417,13 +519,14 @@ const commandFailureReason = (cause, operation) => {
417
519
  code === "EROFS" ||
418
520
  code === "EMFILE" ||
419
521
  code === "ENFILE")
420
- return "io";
421
- return "unavailable";
522
+ return { reason: "io" };
523
+ return { reason: "unavailable" };
422
524
  };
423
- const verifyFailureReason = (cause) => {
424
- const diagnostic = verifyFailureDiagnostic(processOutput(cause, "stdout"), processOutput(cause, "stderr"));
525
+ const verifyFailureReason = (diagnostic) => {
425
526
  switch (diagnostic) {
527
+ // hdiutil follows AppleLanguages, so en-GB and en-AU spell it "recognised".
426
528
  case "image not recognized":
529
+ case "image not recognised":
427
530
  return "format";
428
531
  case "invalid checksum":
429
532
  case "image data corrupted":
@@ -444,11 +547,11 @@ const verifyFailureDiagnostic = (stdout, stderr) => {
444
547
  .find((line) => line.startsWith(prefix))
445
548
  ?.slice(prefix.length);
446
549
  };
447
- const command = (arguments_, effects) => ({
550
+ const command = (arguments_, effects, exitCode = 0) => ({
448
551
  tool: "/usr/bin/hdiutil",
449
552
  arguments: [...arguments_],
450
553
  tool_version: null,
451
554
  executable_sha256: null,
452
- exit_code: 0,
555
+ exit_code: exitCode,
453
556
  effects,
454
557
  });
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Overlap independent reads with an enumeration while consuming their results
3
+ * in enumeration order. `read` returns undefined for items it skips. At most
4
+ * `width` reads are in flight. A failure is reported as a one-at-a-time loop
5
+ * would report it: an earlier item's read or consume failure wins over a
6
+ * later read failure or an enumeration failure. Every started read settles
7
+ * before this returns or throws, and an enumeration left early is closed as
8
+ * `for await` would close it.
9
+ */
10
+ export const consumeWithOrderedReads = async (items, width, read, consume) => {
11
+ const pending = [];
12
+ const consumeNext = async () => {
13
+ const next = pending.shift();
14
+ if (next === undefined)
15
+ return;
16
+ const result = await next.result;
17
+ if (!result.ok)
18
+ throw result.error;
19
+ await consume(next.item, result.value);
20
+ };
21
+ const iterator = items[Symbol.asyncIterator]();
22
+ let iterating = true;
23
+ try {
24
+ while (iterating) {
25
+ let step;
26
+ try {
27
+ step = await iterator.next();
28
+ }
29
+ catch (cause) {
30
+ iterating = false;
31
+ while (pending.length > 0)
32
+ await consumeNext();
33
+ throw cause;
34
+ }
35
+ if (step.done === true) {
36
+ iterating = false;
37
+ break;
38
+ }
39
+ const started = read(step.value);
40
+ if (started === undefined)
41
+ continue;
42
+ pending.push({
43
+ item: step.value,
44
+ result: started.then((value) => ({ ok: true, value }), (error) => ({ ok: false, error })),
45
+ });
46
+ if (pending.length >= width)
47
+ await consumeNext();
48
+ }
49
+ while (pending.length > 0)
50
+ await consumeNext();
51
+ }
52
+ finally {
53
+ if (iterating)
54
+ await iterator.return?.().catch(() => undefined);
55
+ await Promise.all(pending.map(({ result }) => result));
56
+ }
57
+ };
@@ -166,9 +166,11 @@ export class SafeOutputTree {
166
166
  }
167
167
  }
168
168
  /** Sync the owned output tree and prevent further writes through this instance. */
169
- async commit() {
169
+ async commit(signal) {
170
170
  this.#assertWritable();
171
+ abortIfNeeded(signal);
171
172
  await this.#assertOwnedDirectories();
173
+ abortIfNeeded(signal);
172
174
  // Windows has no directory fsync; file contents are already synced in write().
173
175
  if (this.platform === "win32") {
174
176
  this.#published = true;
@@ -182,6 +184,7 @@ export class SafeOutputTree {
182
184
  await assertHandleIdentity(output.handle, this.#requireRootIdentity(), this.#outputRoot);
183
185
  await output.handle.sync();
184
186
  await parent.handle.sync();
187
+ abortIfNeeded(signal);
185
188
  this.#published = true;
186
189
  }
187
190
  catch (cause) {
@@ -196,12 +199,19 @@ export class SafeOutputTree {
196
199
  if (closeFailures.length > 0) {
197
200
  const closeFailure = new AggregateError(closeFailures, "Extraction output directory handles could not be closed");
198
201
  const cleanup = ArtifactReaderFailure.cleanupObservation(closeFailure, this.#outputRoot);
199
- if (sync.kind === "failed")
200
- throw ArtifactReaderFailure.withCleanup(new ArtifactReaderFailure("path", "Could not durably sync extraction output", { cause: sync.cause }), cleanup);
202
+ if (sync.kind === "failed") {
203
+ const primary = isCancellationFailure(sync.cause)
204
+ ? sync.cause
205
+ : new ArtifactReaderFailure("path", "Could not durably sync extraction output", { cause: sync.cause });
206
+ throw ArtifactReaderFailure.withCleanup(primary, cleanup);
207
+ }
201
208
  throw ArtifactReaderFailure.withCleanup(closeFailure, cleanup);
202
209
  }
203
- if (sync.kind === "failed")
210
+ if (sync.kind === "failed") {
211
+ if (isCancellationFailure(sync.cause))
212
+ throw sync.cause;
204
213
  throw new ArtifactReaderFailure("path", "Could not durably sync extraction output", { cause: sync.cause });
214
+ }
205
215
  }
206
216
  /** Remove only this operation's unsealed tree and verify absence. */
207
217
  async rollback() {
@@ -373,14 +383,19 @@ const writeAll = async (handle, chunk) => {
373
383
  };
374
384
  const normalizeDestinationPath = (relativePath, platform) => {
375
385
  const path = normalizeArtifactPath(relativePath);
386
+ if (platform === "win32" && path.includes("\\"))
387
+ throw new ArtifactReaderFailure("path", `Windows destination cannot materialize artifact path: ${JSON.stringify(path)}; backslashes denote path separators.`);
376
388
  if (platform === "win32" && path.includes(":"))
377
389
  throw new ArtifactReaderFailure("path", `Windows destination cannot materialize artifact path as a regular file: ${path}; ':' denotes alternate data stream syntax.`);
390
+ if (platform === "win32" && /[\u0001-\u001f]/u.test(path))
391
+ throw new ArtifactReaderFailure("path", `Windows destination cannot materialize artifact path: ${JSON.stringify(path)}; Windows names cannot contain U+0001-U+001F.`);
378
392
  return path;
379
393
  };
380
394
  const abortIfNeeded = (signal) => {
381
395
  if (signal?.aborted === true)
382
396
  throw new ArtifactReaderFailure("cancelled", "Artifact extraction cancelled");
383
397
  };
398
+ const isCancellationFailure = (cause) => cause instanceof ArtifactReaderFailure && cause.reason === "cancelled";
384
399
  const isAlreadyExists = (cause) => cause instanceof Error && "code" in cause && cause.code === "EEXIST";
385
400
  /** Fail when this directory already holds another spelling of the requested segment. */
386
401
  const throwIfDestinationCaseCollision = async (parentDirectory, logicalPath, cause) => {
@@ -1,9 +1,14 @@
1
1
  import { PassThrough } from "node:stream";
2
2
  import { once } from "node:events";
3
- import { Reader, ZipReader } from "@zip.js/zip.js";
3
+ import { ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_SPLIT_ZIP_FILE, ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_UINT64, Reader, ZipReader, } from "@zip.js/zip.js";
4
4
  import { ArtifactReaderFailure, copyArtifactEntry, sameArtifactEntry, } from "./ArtifactReader.js";
5
+ import { ARTIFACT_DECOMPRESSION_RATIO, artifactDecompressionBudgetBytes, MINIMUM_ARTIFACT_DECOMPRESSION_BYTES, } from "../domain/artifactDecompressionBudget.js";
5
6
  import { OwnedFileHandle } from "../filesystem/OwnedFileHandle.js";
6
7
  import { NonRegularFileReadError, RegularFileAdmissionFailure, openRegularFile, sameRegularFileState, } from "../filesystem/RegularFile.js";
8
+ const ZIP_UTF8_DECODER = new TextDecoder("utf-8", {
9
+ fatal: true,
10
+ ignoreBOM: true,
11
+ });
7
12
  class NodeFileReader extends Reader {
8
13
  path;
9
14
  maximumReadBytes;
@@ -86,19 +91,42 @@ export class ZipArtifactReader {
86
91
  this.#reader = new ZipReader(this.#source, {
87
92
  checkSignature: true,
88
93
  checkOverlappingEntry: true,
94
+ // Unflagged names use the ZIP legacy encoding (CP437); the UTF-8 flag
95
+ // and validated Unicode Path extra fields remain authoritative.
96
+ filenameEncoding: "cp437",
89
97
  // REA applies its own provider-neutral path validation in scanReader and
90
98
  // must preserve that typed failure instead of zip.js rejecting first.
91
99
  filenameValidation: "tolerant",
92
100
  });
93
101
  }
94
102
  async *entries(signal) {
95
- for await (const entry of this.#reader.getEntriesGenerator()) {
103
+ let index = 0;
104
+ // A traversal owns its accounting, including overlapping or repeated passes.
105
+ let declaredFileBytes = 0;
106
+ for await (const entry of typedZipFailures(this.#reader.getEntriesGenerator({ decodeText: decodeZipEntryText }))) {
96
107
  abortIfNeeded(signal);
97
- const metadata = projectZipEntry(entry);
98
- this.#entries.set(entry.filename, {
99
- source: entry,
100
- metadata: copyArtifactEntry(metadata),
101
- });
108
+ // ZIP member identity is its directory occurrence, not its filename.
109
+ // Logical path uniqueness belongs to the artifact inventory boundary.
110
+ const metadata = projectZipEntry(entry, index++);
111
+ // zip.js enforces each member's declared output size, so this sum bounds streamed work.
112
+ if (metadata.kind === "file" &&
113
+ !metadata.encrypted &&
114
+ metadata.declaredSize !== null &&
115
+ Number.isSafeInteger(metadata.declaredSize) &&
116
+ metadata.declaredSize >= 0) {
117
+ declaredFileBytes += metadata.declaredSize;
118
+ const budget = artifactDecompressionBudgetBytes(this.#source.size);
119
+ if (declaredFileBytes > budget)
120
+ throw new ArtifactReaderFailure("limit", `ZIP entries declare ${String(declaredFileBytes)} uncompressed bytes, exceeding this archive's ${String(budget)}-byte decompression budget (${String(MINIMUM_ARTIFACT_DECOMPRESSION_BYTES)}-byte minimum, ${String(ARTIFACT_DECOMPRESSION_RATIO)}x archive size); a small archive cannot expand this far`);
121
+ }
122
+ const stored = this.#entries.get(metadata.adapterKey);
123
+ if (stored !== undefined && !sameArtifactEntry(metadata, stored.metadata))
124
+ throw new ArtifactReaderFailure("integrity", `ZIP member identity changed during enumeration: ${entry.filename}`);
125
+ if (stored === undefined)
126
+ this.#entries.set(metadata.adapterKey, {
127
+ source: entry,
128
+ metadata: copyArtifactEntry(metadata),
129
+ });
102
130
  yield metadata;
103
131
  }
104
132
  }
@@ -123,10 +151,10 @@ export class ZipArtifactReader {
123
151
  return [];
124
152
  }
125
153
  }
126
- const projectZipEntry = (entry) => {
154
+ const projectZipEntry = (entry, index) => {
127
155
  const symlink = isSymlink(entry);
128
156
  return {
129
- path: entry.filename,
157
+ path: zipEntryPath(entry),
130
158
  kind: entry.directory ? "directory" : symlink ? "symlink" : "file",
131
159
  declaredSize: entry.directory ? null : entry.uncompressedSize,
132
160
  compressedSize: entry.directory ? null : entry.compressedSize,
@@ -136,9 +164,43 @@ const projectZipEntry = (entry) => {
136
164
  declaredSha256: null,
137
165
  unpacked: false,
138
166
  limitations: symlink ? ["Archive symlink target was not read."] : [],
139
- adapterKey: entry.filename,
167
+ adapterKey: `zip-entry:${index}`,
140
168
  };
141
169
  };
170
+ const decodeZipEntryText = (bytes, encoding, type) => {
171
+ if (type !== "filename")
172
+ return undefined;
173
+ if (encoding === "utf-8")
174
+ return decodeStrictZipUtf8(bytes, "ZIP filename is not valid UTF-8");
175
+ return encoding === "cp437" ? decodeCp437(bytes) : undefined;
176
+ };
177
+ /** CP437 characters for bytes 0x80-0xFF. */
178
+ const CP437_HIGH_HALF = "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■\u00A0";
179
+ /**
180
+ * Decode a legacy ZIP name with the Unicode CP437 mapping, which Python's
181
+ * zipfile also uses: bytes below 0x80 are ASCII. zip.js shows 0x01-0x1F and
182
+ * 0x7F as IBM PC display glyphs, which turns the macOS folder icon file
183
+ * `Icon\r` into `Icon♪`.
184
+ */
185
+ const decodeCp437 = (bytes) => Array.from(bytes, (byte) => byte < 0x80
186
+ ? String.fromCharCode(byte)
187
+ : CP437_HIGH_HALF.charAt(byte - 0x80)).join("");
188
+ const zipEntryPath = (entry) => {
189
+ const field = entry.extraFieldUnicodePath;
190
+ if (field?.valid !== true)
191
+ return entry.filename;
192
+ return decodeStrictZipUtf8(field.data.subarray(5), "ZIP Unicode Path extra field is not valid UTF-8");
193
+ };
194
+ const decodeStrictZipUtf8 = (bytes, message) => {
195
+ try {
196
+ // Keep the adapter's path semantics aligned with zip.js's default decoder:
197
+ // a leading U+FEFF is part of a member name, not a transport signature.
198
+ return ZIP_UTF8_DECODER.decode(bytes);
199
+ }
200
+ catch (cause) {
201
+ throw new ArtifactReaderFailure("format", message, { cause });
202
+ }
203
+ };
142
204
  const extractStream = (entry, signal) => {
143
205
  const output = new PassThrough();
144
206
  const controller = new AbortController();
@@ -167,7 +229,7 @@ const extractStream = (entry, signal) => {
167
229
  output.end();
168
230
  },
169
231
  abort: (reason) => {
170
- output.destroy(toError(reason));
232
+ output.destroy(toError(typedZipFailure(reason)));
171
233
  },
172
234
  });
173
235
  void entry
@@ -177,9 +239,52 @@ const extractStream = (entry, signal) => {
177
239
  checkOverlappingEntry: true,
178
240
  onprogress: () => abortIfNeeded(signal),
179
241
  })
180
- .catch((cause) => output.destroy(toError(cause)));
242
+ .catch((cause) => output.destroy(toError(typedZipFailure(cause))));
181
243
  return output;
182
244
  };
245
+ /** zip.js reports archive faults as plain errors identified by message. */
246
+ const ZIP_FAILURE_REASONS = new Map([
247
+ ...[
248
+ ERR_AMBIGUOUS_ARCHIVE,
249
+ ERR_BAD_FORMAT,
250
+ ERR_CENTRAL_DIRECTORY_NOT_FOUND,
251
+ ERR_ENTRY_DATA_OUT_OF_BOUNDS,
252
+ ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,
253
+ ERR_EOCDR_NOT_FOUND,
254
+ ERR_EXTRAFIELD_ZIP64_NOT_FOUND,
255
+ ERR_INVALID_COMPRESSED_DATA,
256
+ ERR_INVALID_CRC32,
257
+ ERR_INVALID_UNCOMPRESSED_SIZE,
258
+ ERR_LOCAL_FILE_HEADER_NOT_FOUND,
259
+ ERR_OVERLAPPING_ENTRY,
260
+ ERR_UNSUPPORTED_UINT64,
261
+ ].map((message) => [message, "format"]),
262
+ ...[
263
+ ERR_ENCRYPTED_CENTRAL_DIRECTORY,
264
+ ERR_SPLIT_ZIP_FILE,
265
+ ERR_UNSUPPORTED_COMPRESSION,
266
+ ERR_UNSUPPORTED_ENCRYPTION,
267
+ ].map((message) => [message, "unavailable"]),
268
+ ]);
269
+ /** Type a zip.js archive fault so consumers do not report it as file I/O. */
270
+ const typedZipFailure = (cause) => {
271
+ if (!(cause instanceof Error) || cause instanceof ArtifactReaderFailure)
272
+ return cause;
273
+ const reason = ZIP_FAILURE_REASONS.get(cause.message);
274
+ if (reason === undefined)
275
+ return cause;
276
+ return new ArtifactReaderFailure(reason, reason === "format"
277
+ ? `ZIP archive is malformed: ${cause.message}`
278
+ : `ZIP archive uses an unsupported feature: ${cause.message}`, { cause });
279
+ };
280
+ async function* typedZipFailures(source) {
281
+ try {
282
+ yield* source;
283
+ }
284
+ catch (cause) {
285
+ throw typedZipFailure(cause);
286
+ }
287
+ }
183
288
  const isSymlink = (entry) => entry.unixMode !== undefined && (entry.unixMode & 0o170000) === 0o120000;
184
289
  const abortIfNeeded = (signal) => {
185
290
  if (signal?.aborted === true)