rea-agents 3.1.0 → 3.2.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 (590) hide show
  1. package/README.md +72 -95
  2. package/bridge/ghidra/ReaGhidraBridge.java +609 -841
  3. package/bridge/hopper_bridge.py +99 -344
  4. package/dist/application/AbortablePromise.js +6 -3
  5. package/dist/application/AnalysisSnapshotCache.js +0 -1
  6. package/dist/application/AnalysisSnapshotFiles.js +7 -7
  7. package/dist/application/AndroidApplicationService.js +1 -1
  8. package/dist/application/AppleApplicationService.js +1 -1
  9. package/dist/application/ArtifactExtraction.js +35 -54
  10. package/dist/application/ArtifactExtractionDestination.js +17 -0
  11. package/dist/application/ArtifactGraphConstruction.js +2 -17
  12. package/dist/application/ArtifactInventory/classify.js +2 -6
  13. package/dist/application/ArtifactInventory/hash.js +2 -20
  14. package/dist/application/ArtifactInventory/scanCanonical.js +8 -12
  15. package/dist/application/ArtifactInventory/scanReader.js +69 -51
  16. package/dist/application/ArtifactInventory.js +6 -14
  17. package/dist/application/AuthorizedArtifactInventory.js +3 -13
  18. package/dist/application/BinarySession.js +41 -13
  19. package/dist/application/BinarySessionComposition.js +0 -11
  20. package/dist/application/BinarySessionOpen.js +2 -1
  21. package/dist/application/BinarySessionRecords.js +5 -93
  22. package/dist/application/BinarySessionStatus.js +5 -16
  23. package/dist/application/BinaryTargetResolver.js +216 -0
  24. package/dist/application/BrowserEvidence.js +42 -58
  25. package/dist/application/BrowserObservationService.js +3 -6
  26. package/dist/application/BrowserScenarioCaptureService.js +3 -6
  27. package/dist/application/BrowserScenarioEvidence.js +3 -3
  28. package/dist/application/CallPathTracing.js +2 -36
  29. package/dist/application/CapabilityInventory.js +10 -15
  30. package/dist/application/ClientConfigurationDocument.js +27 -0
  31. package/dist/application/ClientRegistrationStatus.js +16 -13
  32. package/dist/application/CommandShimReplay.js +14 -1
  33. package/dist/application/DirectAnalysis.js +22 -46
  34. package/dist/application/DirectAnalysisStatus.js +5 -61
  35. package/dist/application/Doctor.js +11 -32
  36. package/dist/application/DoctorDiagnostics.js +1 -2
  37. package/dist/application/DoctorScope.js +1 -1
  38. package/dist/application/ElectronActiveEvidence.js +3 -8
  39. package/dist/application/ElectronActiveObservationService.js +3 -6
  40. package/dist/application/ElectronBoundaryAnalysis.js +7 -8
  41. package/dist/application/ElectronBoundaryGraphContext.js +1 -1
  42. package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
  43. package/dist/application/ElectronBoundaryGraphNative.js +1 -2
  44. package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
  45. package/dist/application/ElectronEvidence.js +4 -7
  46. package/dist/application/ElectronObservationService.js +5 -9
  47. package/dist/application/EnhancedLiteralTracing.js +42 -65
  48. package/dist/application/EnhancedTools.js +76 -44
  49. package/dist/application/EvidenceBundleCommands.js +11 -11
  50. package/dist/application/EvidenceBundleFiles.js +9 -15
  51. package/dist/application/EvidenceLedger.js +6 -41
  52. package/dist/application/FilesystemSnapshot.js +2 -3
  53. package/dist/application/InterfaceBuilderAnalysis.js +266 -0
  54. package/dist/application/InventoryProjectionEvidence.js +4 -2
  55. package/dist/application/InvestigationProviders.js +1 -1
  56. package/dist/application/JavaScriptApplicationEvidence.js +2 -5
  57. package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
  58. package/dist/application/JavaScriptApplicationService.js +6 -29
  59. package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
  60. package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
  61. package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
  62. package/dist/application/JavaScriptArtifactFiles.js +67 -107
  63. package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
  64. package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
  65. package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
  66. package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
  67. package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
  68. package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
  69. package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
  70. package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
  71. package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
  72. package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
  73. package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
  74. package/dist/application/JavaScriptJsonModules.js +2 -2
  75. package/dist/application/JavaScriptModuleRelationships.js +22 -27
  76. package/dist/application/JavaScriptReplayPlanning.js +9 -3
  77. package/dist/application/JavaScriptReplayService.js +6 -32
  78. package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
  79. package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
  80. package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
  81. package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
  82. package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
  83. package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
  84. package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
  85. package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
  86. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
  87. package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
  88. package/dist/application/JavaScriptSemanticTraceService.js +1 -10
  89. package/dist/application/JsonFiles.js +79 -0
  90. package/dist/application/LinuxHopper.js +11 -9
  91. package/dist/application/LoopbackReplay.js +26 -23
  92. package/dist/application/LoopbackReplayRecorder.js +29 -1
  93. package/dist/application/ManagedApplicationGraphService.js +1 -2
  94. package/dist/application/ManagedMemberComparisonService.js +11 -41
  95. package/dist/application/ManagedNativeVerificationService.js +1 -2
  96. package/dist/application/ManagedReconstructionService.js +1 -1
  97. package/dist/application/ManagedRuntimeCorrelationService.js +5 -8
  98. package/dist/application/NativeApiInspection.js +2 -7
  99. package/dist/application/NativeUiActionTrace.js +394 -0
  100. package/dist/application/NodeRuntimeCharacterizationService.js +3 -7
  101. package/dist/application/PermissionAuthority.js +15 -7
  102. package/dist/application/PermissionFailure.js +5 -0
  103. package/dist/application/ProcessCaptureAuthority.js +5 -7
  104. package/dist/application/ProcessCaptureJournal.js +3 -2
  105. package/dist/application/ProcessCaptureLifecycle.js +5 -12
  106. package/dist/application/ProcessCheckpoints.js +29 -11
  107. package/dist/application/ProcessCli.js +6 -16
  108. package/dist/application/ProcessEvidence.js +5 -7
  109. package/dist/application/ProcessHarness.js +52 -17
  110. package/dist/application/ProcessReactiveCoordinator.js +2 -4
  111. package/dist/application/ProcessReactiveEffects.js +9 -3
  112. package/dist/application/ProcessReactiveHarness.js +13 -7
  113. package/dist/application/ProcessSampling.js +2 -4
  114. package/dist/application/ProcessTimer.js +39 -0
  115. package/dist/application/ProjectPermissionStore.js +39 -96
  116. package/dist/application/RealHopperAssertions.js +20 -66
  117. package/dist/application/ReconstructionCoverageService.js +12 -58
  118. package/dist/application/ReconstructionObligationAuthority.js +2 -2
  119. package/dist/application/ReconstructionObligationCandidates.js +4 -4
  120. package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
  121. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
  122. package/dist/application/ReconstructionObligationLedgerService.js +19 -38
  123. package/dist/application/ReferenceSourceImport.js +19 -45
  124. package/dist/application/ReferenceSourceImportEntries.js +2 -4
  125. package/dist/application/ReferenceSourceImportPolicy.js +5 -32
  126. package/dist/application/ReferenceSourceImportTypes.js +0 -16
  127. package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
  128. package/dist/application/SessionProviderRouter.js +2 -2
  129. package/dist/application/Setup.js +1 -3
  130. package/dist/application/SetupClientConfiguration.js +22 -93
  131. package/dist/application/SetupRegistrationEnvironment.js +0 -7
  132. package/dist/application/StoreFileLock.js +119 -0
  133. package/dist/application/TerminalRenderer.js +2 -3
  134. package/dist/application/Uninstall.js +9 -14
  135. package/dist/application/UnknownEvidence.js +1 -1
  136. package/dist/artifacts/ArtifactPaths.js +2 -5
  137. package/dist/artifacts/ArtifactProvider.js +36 -58
  138. package/dist/artifacts/DirectoryArtifactReader.js +13 -8
  139. package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
  140. package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
  141. package/dist/artifacts/NibArchive.js +269 -0
  142. package/dist/artifacts/SafeOutputTree.js +15 -24
  143. package/dist/browser/BrowserProcessStartup.js +1 -2
  144. package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
  145. package/dist/browser/CdpBrowserProvider.js +3 -13
  146. package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
  147. package/dist/browser/CdpCaptureDocuments.js +28 -76
  148. package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
  149. package/dist/browser/CdpCaptureEventHandlers.js +22 -87
  150. package/dist/browser/CdpCaptureEvents.js +2 -8
  151. package/dist/browser/CdpCaptureStorage.js +9 -20
  152. package/dist/browser/CdpCaptureStorageFingerprints.js +85 -98
  153. package/dist/browser/CdpCaptureValues.js +21 -21
  154. package/dist/browser/CdpConnection.js +10 -25
  155. package/dist/browser/CdpElectronInspection.js +26 -50
  156. package/dist/browser/CdpElectronProvider.js +10 -35
  157. package/dist/browser/CdpElectronScriptEvents.js +8 -16
  158. package/dist/browser/CdpElectronScripts.js +6 -35
  159. package/dist/browser/CdpElectronWorkers.js +6 -10
  160. package/dist/browser/CdpEndpoint.js +25 -41
  161. package/dist/browser/CdpObservationSession.js +14 -26
  162. package/dist/browser/CdpPageCapture.js +34 -48
  163. package/dist/browser/CdpPageCaptureScripts.js +1 -19
  164. package/dist/browser/CdpPageCaptureWorkers.js +6 -10
  165. package/dist/browser/CdpSafeMetadata.js +19 -22
  166. package/dist/browser/CdpScreenshot.js +3 -5
  167. package/dist/browser/CdpTargetSession.js +1 -2
  168. package/dist/browser/CdpWebMcpDiscovery.js +13 -22
  169. package/dist/browser/ElectronFileScope.js +8 -19
  170. package/dist/browser/JavaScriptRuntimeScope.js +9 -14
  171. package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
  172. package/dist/browser/PlaywrightElectronActiveActions.js +54 -69
  173. package/dist/browser/PlaywrightElectronActiveProvider.js +14 -34
  174. package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
  175. package/dist/browser/PlaywrightScenarioActions.js +3 -7
  176. package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
  177. package/dist/browser/PlaywrightScenarioBrowser.js +3 -5
  178. package/dist/browser/PlaywrightScenarioEvents.js +45 -94
  179. package/dist/browser/PlaywrightScenarioSession.js +14 -30
  180. package/dist/browser/PngVisualDiff.js +22 -14
  181. package/dist/browser/SensitiveTextCapture.js +0 -17
  182. package/dist/browser/V8InspectorCaptureProjection.js +7 -8
  183. package/dist/browser/V8InspectorEndpoint.js +12 -14
  184. package/dist/browser/V8InspectorProvider.js +20 -61
  185. package/dist/browser/WebSourceMapFetcher.js +56 -176
  186. package/dist/catalogIdentity.js +0 -54
  187. package/dist/cli/artifactCommands.js +49 -77
  188. package/dist/cli/coreAnalysisCommands.js +83 -133
  189. package/dist/cli/javascriptApplicationAnalysis.js +1 -9
  190. package/dist/cli/managedCommands.js +5 -270
  191. package/dist/cli/setupCommands.js +3 -12
  192. package/dist/cli/utilityCommands.js +7 -41
  193. package/dist/cli.js +0 -2
  194. package/dist/cliApplicationCommands.js +42 -112
  195. package/dist/cliBrowserAdvancedCommands.js +10 -106
  196. package/dist/cliBrowserCommands.js +15 -127
  197. package/dist/cliBrowserContext.js +30 -0
  198. package/dist/cliCommandNames.js +4 -5
  199. package/dist/cliElectronCommands.js +8 -72
  200. package/dist/cliEvidenceCommands.js +8 -77
  201. package/dist/cliJavaScriptRuntimeCommands.js +9 -91
  202. package/dist/cliJsonInput.js +4 -14
  203. package/dist/cliObservationOptions.js +11 -96
  204. package/dist/cliPolicyCommands.js +2 -17
  205. package/dist/cliProcessCommands.js +3 -3
  206. package/dist/cliSetup.js +0 -13
  207. package/dist/config/browserScenario.js +2 -2
  208. package/dist/config/environment.js +0 -9
  209. package/dist/config/parseConfig.js +1 -33
  210. package/dist/config/parsers.js +6 -27
  211. package/dist/config/passiveObservation.js +7 -77
  212. package/dist/config/permissions.js +0 -7
  213. package/dist/contracts/analysisSearchContract.js +2 -5
  214. package/dist/contracts/applicationToolContracts.js +56 -109
  215. package/dist/contracts/applicationWorkflowInputContracts.js +27 -102
  216. package/dist/contracts/artifactComparisonExample.js +58 -60
  217. package/dist/contracts/artifactToolContracts.js +20 -67
  218. package/dist/contracts/browserScenarioToolContracts.js +6 -51
  219. package/dist/contracts/browserToolContracts.js +8 -73
  220. package/dist/contracts/electronToolContracts.js +8 -108
  221. package/dist/contracts/enhancedInputs.js +23 -54
  222. package/dist/contracts/errorSchemas.js +0 -1
  223. package/dist/contracts/functionComparisonExample.js +10 -24
  224. package/dist/contracts/functionInstructionContract.js +1 -3
  225. package/dist/contracts/functionWorkflowToolContracts.js +2 -2
  226. package/dist/contracts/hopperMemoryContracts.js +3 -3
  227. package/dist/contracts/investigationExamples.js +14 -11
  228. package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
  229. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
  230. package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
  231. package/dist/contracts/managedToolContracts.js +6 -95
  232. package/dist/contracts/managedWorkflowExamples.js +77 -128
  233. package/dist/contracts/managedWorkflowToolContracts.js +51 -77
  234. package/dist/contracts/nativeToolContracts.js +7 -11
  235. package/dist/contracts/processCaptureExample.js +2 -69
  236. package/dist/contracts/promptContracts.js +49 -67
  237. package/dist/contracts/providerSelection.js +0 -1
  238. package/dist/contracts/reconstructionReadinessExample.js +1 -6
  239. package/dist/contracts/sessionStatusContract.js +1 -17
  240. package/dist/contracts/sessionToolSchemas.js +6 -15
  241. package/dist/contracts/toolContractExamples.js +11 -11
  242. package/dist/contracts/toolContractHelpers.js +0 -4
  243. package/dist/contracts/toolContracts.js +60 -71
  244. package/dist/contracts/toolEffects.js +5 -13
  245. package/dist/contracts/toolOutputSchemaGroups.js +37 -91
  246. package/dist/contracts/toolOutputSchemaPrimitives.js +16 -56
  247. package/dist/contracts/toolSchemaMetadata.js +8 -19
  248. package/dist/contracts/unknownContractExamples.js +0 -2
  249. package/dist/domain/analysisErrorPresentation.js +46 -54
  250. package/dist/domain/analysisErrorProjection.js +28 -37
  251. package/dist/domain/analysisProfile.js +3 -31
  252. package/dist/domain/analysisSnapshot.js +3 -12
  253. package/dist/domain/androidApplication.js +15 -54
  254. package/dist/domain/appleApplication.js +24 -67
  255. package/dist/domain/artifactComparison.js +11 -29
  256. package/dist/domain/artifactGraph.js +14 -44
  257. package/dist/domain/artifactInspection.js +38 -69
  258. package/dist/domain/artifactInventoryEvidence.js +27 -21
  259. package/dist/domain/binaryTarget.js +2 -221
  260. package/dist/domain/browserCaptureComparison.js +47 -24
  261. package/dist/domain/browserObservation.js +28 -193
  262. package/dist/domain/browserObservationSchemas.js +5 -23
  263. package/dist/domain/browserScenario.js +11 -14
  264. package/dist/domain/browserScenarioCapture.js +11 -12
  265. package/dist/domain/browserScenarioCaptureValues.js +146 -84
  266. package/dist/domain/browserScenarioDiff.js +2 -59
  267. package/dist/domain/browserScenarioDiffEvidence.js +51 -0
  268. package/dist/domain/browserScenarioDiffValues.js +21 -38
  269. package/dist/domain/browserScenarioValues.js +80 -109
  270. package/dist/domain/browserSession.js +4 -7
  271. package/dist/domain/bundleComparison.js +6 -32
  272. package/dist/domain/bytecodeProvider.js +20 -19
  273. package/dist/domain/callPath.js +47 -167
  274. package/dist/domain/callPathSchemas.js +79 -0
  275. package/dist/domain/changedBehavior.js +34 -60
  276. package/dist/domain/completionLedgerGeneration.js +8 -14
  277. package/dist/domain/conformancePackage.js +126 -97
  278. package/dist/domain/conformanceReplay.js +36 -8
  279. package/dist/domain/conformanceTrustGate.js +23 -14
  280. package/dist/domain/customProtocolCapture.js +1 -1
  281. package/dist/domain/electronActiveObservation.js +70 -103
  282. package/dist/domain/electronObservation.js +14 -80
  283. package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
  284. package/dist/domain/electronStaticAnalysisIpc.js +38 -14
  285. package/dist/domain/electronStaticAnalysisNative.js +1 -8
  286. package/dist/domain/electronStaticAnalysisValues.js +10 -17
  287. package/dist/domain/errors.js +33 -54
  288. package/dist/domain/eventProcessTree.js +20 -12
  289. package/dist/domain/evidence.js +2 -10
  290. package/dist/domain/evidenceBundle.js +3 -5
  291. package/dist/domain/evidenceCompletionLedger.js +6 -8
  292. package/dist/domain/functionComparison.js +4 -14
  293. package/dist/domain/functionComparisonNormalization.js +4 -11
  294. package/dist/domain/functionComparisonResults.js +25 -15
  295. package/dist/domain/functionComparisonSchemas.js +49 -33
  296. package/dist/domain/functionDossierEvidence.js +31 -156
  297. package/dist/domain/hopperStartupFailure.js +1 -1
  298. package/dist/domain/hopperValues.js +15 -136
  299. package/dist/domain/interfaceBuilderGraph.js +654 -0
  300. package/dist/domain/javascriptApplicationAnalysis.js +8 -112
  301. package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
  302. package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
  303. package/dist/domain/javascriptApplicationGraph.js +3 -13
  304. package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
  305. package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
  306. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
  307. package/dist/domain/javascriptApplicationVersionItems.js +120 -53
  308. package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
  309. package/dist/domain/javascriptAstFingerprint.js +25 -58
  310. package/dist/domain/javascriptAstValues.js +9 -0
  311. package/dist/domain/javascriptExportInstrumentation.js +2 -4
  312. package/dist/domain/javascriptExportShapeComparison.js +6 -7
  313. package/dist/domain/javascriptExportShapeComparisonSchemas.js +68 -75
  314. package/dist/domain/javascriptExportShapeSelection.js +17 -19
  315. package/dist/domain/javascriptFeatureSeed.js +20 -12
  316. package/dist/domain/javascriptFeatureTrace.js +13 -67
  317. package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
  318. package/dist/domain/javascriptFeatureTraversal.js +1 -44
  319. package/dist/domain/javascriptNativeHandoff.js +1 -1
  320. package/dist/domain/javascriptReplay.js +24 -41
  321. package/dist/domain/javascriptRuntimeLoadState.js +3 -8
  322. package/dist/domain/javascriptRuntimeObservation.js +42 -103
  323. package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
  324. package/dist/domain/javascriptRuntimeReconciliationActive.js +8 -17
  325. package/dist/domain/javascriptRuntimeReconciliationGraph.js +10 -23
  326. package/dist/domain/javascriptRuntimeReconciliationMatching.js +18 -12
  327. package/dist/domain/javascriptRuntimeReconciliationParsing.js +16 -45
  328. package/dist/domain/javascriptRuntimeReconciliationResult.js +4 -5
  329. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
  330. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +33 -48
  331. package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
  332. package/dist/domain/javascriptSemanticAnalysis.js +12 -45
  333. package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
  334. package/dist/domain/javascriptSemanticCallResolution.js +6 -16
  335. package/dist/domain/javascriptSemanticCalls.js +5 -32
  336. package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
  337. package/dist/domain/javascriptSemanticCoverage.js +11 -0
  338. package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
  339. package/dist/domain/javascriptSemanticDataEffects.js +1 -11
  340. package/dist/domain/javascriptSemanticFingerprints.js +3 -5
  341. package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
  342. package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
  343. package/dist/domain/javascriptSemanticIr.js +1 -29
  344. package/dist/domain/javascriptSemanticObjects.js +1 -5
  345. package/dist/domain/javascriptSemanticPrimitives.js +2 -9
  346. package/dist/domain/javascriptSemanticProjection.js +0 -18
  347. package/dist/domain/javascriptSemanticPromises.js +9 -16
  348. package/dist/domain/javascriptSemanticProvenance.js +16 -19
  349. package/dist/domain/javascriptSemanticQuery.js +17 -139
  350. package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
  351. package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
  352. package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
  353. package/dist/domain/javascriptSemanticResources.js +1 -6
  354. package/dist/domain/javascriptSemanticReturns.js +10 -27
  355. package/dist/domain/javascriptSemanticValueTypes.js +1 -0
  356. package/dist/domain/javascriptSemanticValues.js +44 -62
  357. package/dist/domain/javascriptStaticAnalysis.js +21 -43
  358. package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
  359. package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
  360. package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
  361. package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
  362. package/dist/domain/javascriptStaticAnalysisState.js +1 -5
  363. package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
  364. package/dist/domain/jsonShape.js +7 -33
  365. package/dist/domain/localPath.js +7 -0
  366. package/dist/domain/managedApplicationGraph.js +9 -41
  367. package/dist/domain/managedApplicationGraphCoverage.js +24 -156
  368. package/dist/domain/managedApplicationGraphNodes.js +10 -13
  369. package/dist/domain/managedArtifact.js +14 -27
  370. package/dist/domain/managedMemberComparison.js +90 -92
  371. package/dist/domain/managedMemberComparisonCoverage.js +11 -33
  372. package/dist/domain/managedMemberComparisonItems.js +221 -0
  373. package/dist/domain/managedMemberComparisonMatch.js +8 -208
  374. package/dist/domain/managedNativeVerification.js +3 -6
  375. package/dist/domain/managedNativeVerificationMatch.js +55 -59
  376. package/dist/domain/managedNativeVerificationSchemas.js +83 -47
  377. package/dist/domain/managedReconstruction.js +19 -23
  378. package/dist/domain/managedRuntimeCorrelation.js +6 -9
  379. package/dist/domain/nativeApiBoundary.js +2 -7
  380. package/dist/domain/nativeInspection.js +0 -2
  381. package/dist/domain/nativeInvestigationGraph.js +351 -0
  382. package/dist/domain/nativeValueFlow.js +61 -0
  383. package/dist/domain/nodeRuntimeCharacterization.js +1 -5
  384. package/dist/domain/objcSwiftMetadata.js +254 -0
  385. package/dist/domain/peInspection.js +1 -1
  386. package/dist/domain/permissionPolicy.js +13 -0
  387. package/dist/domain/processCapture.js +76 -113
  388. package/dist/domain/processCaptureExample.js +68 -0
  389. package/dist/domain/processCaptureParsing.js +21 -0
  390. package/dist/domain/processCaptureReactiveSchema.js +68 -0
  391. package/dist/domain/processCaptureValidation.js +1 -7
  392. package/dist/domain/processComparison.js +3 -12
  393. package/dist/domain/processReactiveMatching.js +29 -50
  394. package/dist/domain/processReactiveRuntime.js +4 -8
  395. package/dist/domain/processReactiveScenario.js +28 -94
  396. package/dist/domain/processReactiveScenarioPreflight.js +5 -30
  397. package/dist/domain/processReactiveTransition.js +33 -18
  398. package/dist/domain/processScenario.js +56 -90
  399. package/dist/domain/processTraceComparison.js +0 -8
  400. package/dist/domain/processTraceEvaluation.js +14 -4
  401. package/dist/domain/processTraceSpecification.js +11 -17
  402. package/dist/domain/protocolCapture.js +3 -3
  403. package/dist/domain/reconstructionCoverage.js +62 -129
  404. package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
  405. package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
  406. package/dist/domain/reconstructionReadiness.js +1 -2
  407. package/dist/domain/reconstructionReadinessSchemas.js +36 -38
  408. package/dist/domain/reconstructionUnknowns.js +3 -3
  409. package/dist/domain/reconstructionVerification.js +13 -47
  410. package/dist/domain/reconstructionVerificationSchemas.js +50 -38
  411. package/dist/domain/referenceSourceGraph.js +53 -61
  412. package/dist/domain/referenceSourceImportParsing.js +1 -5
  413. package/dist/domain/replayMachine.js +19 -31
  414. package/dist/domain/replayMachineRun.js +15 -63
  415. package/dist/domain/replayMachineRuntime.js +41 -41
  416. package/dist/domain/replayMachineValues.js +84 -0
  417. package/dist/domain/residualUnknown.js +25 -30
  418. package/dist/domain/runtimeCharacterization.js +15 -16
  419. package/dist/domain/runtimeIdentification.js +48 -47
  420. package/dist/domain/sourceToBundleComparison.js +9 -85
  421. package/dist/domain/sourceToBundleComparisonSchemas.js +17 -42
  422. package/dist/domain/sourceToBundleSignals.js +4 -15
  423. package/dist/domain/staticRuntimeCorrelation.js +37 -49
  424. package/dist/domain/symbolAnalysis.js +10 -19
  425. package/dist/domain/unicodeCodePointOrder.js +12 -0
  426. package/dist/domain/webBundleAnalysis.js +70 -99
  427. package/dist/domain/webBundleAnalyzer.js +2 -4
  428. package/dist/domain/webBundleAnalyzerAst.js +0 -13
  429. package/dist/domain/webBundleAnalyzerInspection.js +26 -52
  430. package/dist/domain/webBundleAnalyzerResult.js +7 -24
  431. package/dist/domain/webCaptureDiff.js +33 -73
  432. package/dist/domain/webCaptureDiffSchemas.js +86 -0
  433. package/dist/domain/webContentArtifact.js +1 -10
  434. package/dist/domain/webMcpDiscovery.js +3 -14
  435. package/dist/domain/webScreenshot.js +58 -34
  436. package/dist/domain/zipPackageFormat.js +7 -0
  437. package/dist/dotnet/ManagedArtifactInspector.js +17 -50
  438. package/dist/dotnet/ManagedMemberInspector.js +27 -58
  439. package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
  440. package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
  441. package/dist/dotnet/ManagedMemberRows.js +16 -16
  442. package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
  443. package/dist/dotnet/ManagedMetadataInventory.js +21 -30
  444. package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
  445. package/dist/dotnet/ManagedMetadataLayout.js +3 -5
  446. package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
  447. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
  448. package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -41
  449. package/dist/dotnet/ManagedPeReader.js +2 -2
  450. package/dist/dotnet/ManagedStaticProvider.js +13 -71
  451. package/dist/generatedMcpToolCatalog.js +1 -1
  452. package/dist/generatedPackageMetadata.js +1 -1
  453. package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
  454. package/dist/ghidra/GhidraClient.js +4 -12
  455. package/dist/ghidra/GhidraClientWire.js +9 -5
  456. package/dist/ghidra/GhidraDefaults.js +0 -18
  457. package/dist/ghidra/GhidraDiagnostics.js +0 -2
  458. package/dist/ghidra/GhidraDoctor.js +16 -12
  459. package/dist/ghidra/GhidraFunctionValues.js +65 -108
  460. package/dist/ghidra/GhidraInstallation.js +98 -42
  461. package/dist/ghidra/GhidraInventoryValues.js +16 -85
  462. package/dist/ghidra/GhidraLauncher.js +0 -8
  463. package/dist/ghidra/GhidraProvider.js +15 -22
  464. package/dist/ghidra/GhidraProviderCapabilities.js +6 -47
  465. package/dist/ghidra/GhidraRequestQueue.js +6 -30
  466. package/dist/ghidra/GhidraResponseBuffer.js +1 -7
  467. package/dist/ghidra/GhidraSessionValues.js +0 -2
  468. package/dist/ghidra/GhidraTransport.js +4 -7
  469. package/dist/ghidra/protocol.js +2 -2
  470. package/dist/hopper/BridgeLauncher.js +112 -36
  471. package/dist/hopper/HopperAnalysisProfile.js +1 -1
  472. package/dist/hopper/HopperCleanup.js +6 -3
  473. package/dist/hopper/HopperClient.js +4 -7
  474. package/dist/hopper/HopperProcessDiagnostic.js +2 -2
  475. package/dist/hopper/HopperProvider.js +0 -16
  476. package/dist/hopper/HopperRequestQueue.js +21 -40
  477. package/dist/hopper/HopperResponseStream.js +1 -9
  478. package/dist/hopper/HopperSessionValues.js +3 -2
  479. package/dist/hopper/HopperTargetLease.js +119 -0
  480. package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
  481. package/dist/hopper/LinuxPrivateDisplayProbe.js +5 -16
  482. package/dist/hopper/protocol.js +6 -4
  483. package/dist/main/reload.js +0 -3
  484. package/dist/main/shutdown.js +1 -1
  485. package/dist/main/state.js +0 -9
  486. package/dist/main/transport.js +0 -5
  487. package/dist/mcpDoctor.js +25 -45
  488. package/dist/native/CommandRunner.js +18 -25
  489. package/dist/native/NativeMacOSProvider.js +13 -38
  490. package/dist/native/NativeMachoInspection.js +1 -1
  491. package/dist/process/BoundedFileBytes.js +17 -0
  492. package/dist/process/ExecFileOutput.js +11 -0
  493. package/dist/process/PendingOperations.js +8 -6
  494. package/dist/process/ProcessOwnership.js +3 -2
  495. package/dist/process/ProcessOwnershipObservation.js +0 -1
  496. package/dist/process/ProviderProcess.js +7 -28
  497. package/dist/reference/ReferenceSourceReader.js +8 -24
  498. package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
  499. package/dist/reference/ReferenceSourceReaderFile.js +13 -31
  500. package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
  501. package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
  502. package/dist/replay/JavaScriptReplayWorker.js +3 -5
  503. package/dist/replay/LinuxJavaScriptReplayRunner.js +33 -29
  504. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
  505. package/dist/replay/LinuxRuntimeClosure.js +1 -3
  506. package/dist/replay/ReplayOutcome.js +1 -3
  507. package/dist/replay/ReplayProcessLifecycle.js +32 -7
  508. package/dist/replay/ReplaySeccompFile.js +29 -0
  509. package/dist/replay/ReplayWorkerProtocol.js +0 -2
  510. package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
  511. package/dist/server/ProcessCaptureElicitation.js +4 -8
  512. package/dist/server/createServer.js +6 -44
  513. package/dist/server/promptCompletion.js +37 -61
  514. package/dist/server/recordDerivedEvidence.js +1 -1
  515. package/dist/server/registerApplicationTools/characterization.js +4 -8
  516. package/dist/server/registerApplicationTools/compareExportShapes.js +5 -10
  517. package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -10
  518. package/dist/server/registerApplicationTools/compareVersions.js +5 -10
  519. package/dist/server/registerApplicationTools/controlledReplay.js +3 -5
  520. package/dist/server/registerApplicationTools/coverage.js +6 -71
  521. package/dist/server/registerApplicationTools/helpers.js +1 -13
  522. package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
  523. package/dist/server/registerApplicationTools/traceFeature.js +5 -9
  524. package/dist/server/registerApplicationTools/traceSemantics.js +5 -8
  525. package/dist/server/registerApplicationTools.js +0 -2
  526. package/dist/server/registerArtifactComparisonTool.js +23 -27
  527. package/dist/server/registerBrowserScenarioTool.js +4 -4
  528. package/dist/server/registerBrowserTools.js +5 -8
  529. package/dist/server/registerBundleComparisonTool.js +5 -7
  530. package/dist/server/registerCloseLifecycleTool.js +2 -16
  531. package/dist/server/registerElectronTools.js +10 -29
  532. package/dist/server/registerEnhancedTools.js +10 -11
  533. package/dist/server/registerEvidenceTools.js +15 -22
  534. package/dist/server/registerFunctionComparisonTool.js +30 -25
  535. package/dist/server/registerInvestigationTools/helpers.js +3 -32
  536. package/dist/server/registerInvestigationTools.js +20 -116
  537. package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -4
  538. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +15 -17
  539. package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
  540. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -8
  541. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +3 -8
  542. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +10 -14
  543. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +9 -15
  544. package/dist/server/registerOfficialTools.js +1 -43
  545. package/dist/server/registerProcessComparisonTool.js +33 -23
  546. package/dist/server/registerPrompts.js +19 -17
  547. package/dist/server/registerSessionRecordTools.js +10 -156
  548. package/dist/server/registerSessionStatusTool.js +6 -69
  549. package/dist/server/registerSessionTools.js +10 -51
  550. package/dist/server/sessionAvailabilityPolicy.js +0 -2
  551. package/dist/server/sessionEvidence.js +9 -15
  552. package/dist/server/sessionToolPolicies.js +0 -8
  553. package/dist/server/toolResult.js +14 -50
  554. package/dist/serverIdentity.js +0 -20
  555. package/install.sh +1 -1
  556. package/package.json +11 -7
  557. package/scripts/electron-active-hook.cjs +23 -55
  558. package/scripts/hopper-demo-x11.py +13 -32
  559. package/skills/reverse-engineer-anything/SKILL.md +47 -12
  560. package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
  561. package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
  562. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
  563. package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -188
  564. package/dist/application/BoundedJsonFiles.js +0 -86
  565. package/dist/application/CrossVersionInventory.js +0 -129
  566. package/dist/application/CrossVersionInvestigation.js +0 -301
  567. package/dist/application/CrossVersionInvestigationCollections.js +0 -23
  568. package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
  569. package/dist/application/CrossVersionInvestigationReplay.js +0 -170
  570. package/dist/application/DeferredFileAuthorization.js +0 -61
  571. package/dist/application/DoctorProjection.js +0 -43
  572. package/dist/application/EnhancedToolPagination.js +0 -22
  573. package/dist/application/EvidenceReferenceResolver.js +0 -26
  574. package/dist/application/InvestigationWorkspaceStore.js +0 -204
  575. package/dist/application/ProcessPairedExperiment.js +0 -72
  576. package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
  577. package/dist/application/ReconstructionReadinessService.js +0 -48
  578. package/dist/cliInvestigationCommands.js +0 -173
  579. package/dist/domain/boundedCartesianProjection.js +0 -15
  580. package/dist/domain/investigationWorkspace.js +0 -347
  581. package/dist/domain/jsonLimits.js +0 -26
  582. package/dist/domain/knownPageCoverage.js +0 -29
  583. package/dist/domain/processPairedExperiment.js +0 -128
  584. package/dist/server/javascriptApplicationResult.js +0 -106
  585. package/dist/server/permissionFailure.js +0 -12
  586. package/dist/server/registerApplicationTools/readiness.js +0 -50
  587. package/dist/server/registerEvidenceResources.js +0 -315
  588. package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
  589. package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
  590. package/dist/server/registerReconstructionReadinessResource.js +0 -32
@@ -14,20 +14,83 @@ export const registerCoreAnalysisCommands = (cli, logger) => {
14
14
  registerSearchCommand(cli, logger);
15
15
  registerXrefsCommand(cli, logger);
16
16
  registerTraceCommand(cli, logger);
17
+ registerNativeUiActionCommand(cli, logger);
18
+ registerNativeDispatchMetadataCommand(cli, logger);
19
+ };
20
+ const registerNativeDispatchMetadataCommand = (cli, logger) => {
21
+ cli.command(CLI_COMMANDS.inspectNativeDispatchMetadata, {
22
+ description: "Inspect typed Objective-C and Swift dispatch metadata",
23
+ args: z.object({
24
+ path: z.string().describe("Target path used to bind the result evidence"),
25
+ }),
26
+ options: z.object({
27
+ maxRecords: z
28
+ .number()
29
+ .int()
30
+ .min(1)
31
+ .max(20_000)
32
+ .default(5_000)
33
+ .describe("Maximum symbol records to inspect"),
34
+ snapshot: z
35
+ .string()
36
+ .min(1)
37
+ .optional()
38
+ .describe("Load or update the local analysis snapshot"),
39
+ provider: providerSelectionOption,
40
+ }),
41
+ alias: { maxRecords: "max-records" },
42
+ run: async ({ args, options }) => logCliCommand(logger, "inspect-native-dispatch-metadata", () => runDirectAnalysis(args.path, "inspect_native_dispatch_metadata", { max_records: options.maxRecords }, directAnalysisOptions(logger, options.snapshot, options.provider))),
43
+ });
44
+ };
45
+ const registerNativeUiActionCommand = (cli, logger) => {
46
+ cli.command(CLI_COMMANDS.traceNativeUiAction, {
47
+ description: "Trace a compiled UI action selector to its native handler and direct callees",
48
+ args: z.object({
49
+ path: z.string().describe("Target path used to bind the result evidence"),
50
+ action: z
51
+ .string()
52
+ .min(1)
53
+ .describe("A unique compiled UI action selector or interface object ID"),
54
+ }),
55
+ options: z.object({
56
+ maxDepth: z
57
+ .number()
58
+ .int()
59
+ .min(0)
60
+ .max(32)
61
+ .default(8)
62
+ .describe("Maximum relationship depth"),
63
+ maxNodes: z
64
+ .number()
65
+ .int()
66
+ .min(1)
67
+ .max(2_000)
68
+ .default(250)
69
+ .describe("Maximum returned graph nodes"),
70
+ maxEdges: z
71
+ .number()
72
+ .int()
73
+ .min(1)
74
+ .max(5_000)
75
+ .default(500)
76
+ .describe("Maximum returned graph edges"),
77
+ provider: providerSelectionOption,
78
+ }),
79
+ alias: {
80
+ maxDepth: "max-depth",
81
+ maxNodes: "max-nodes",
82
+ maxEdges: "max-edges",
83
+ },
84
+ run: async ({ args, options }) => logCliCommand(logger, "trace-native-ui-action", () => runDirectAnalysis(args.path, "trace_native_ui_action", {
85
+ action: args.action,
86
+ max_depth: options.maxDepth,
87
+ max_nodes: options.maxNodes,
88
+ max_edges: options.maxEdges,
89
+ }, directAnalysisOptions(logger, undefined, options.provider))),
90
+ });
17
91
  };
18
92
  const registerCoreCommands = (cli, logger) => {
19
93
  const overviewOptions = z.object({
20
- detail: z
21
- .enum(["concise", "detailed"])
22
- .default("concise")
23
- .describe("Overview detail level"),
24
- limit: z
25
- .number()
26
- .int()
27
- .min(1)
28
- .max(50)
29
- .default(10)
30
- .describe("Maximum overview items to return"),
31
94
  snapshot: z
32
95
  .string()
33
96
  .min(1)
@@ -35,18 +98,12 @@ const registerCoreCommands = (cli, logger) => {
35
98
  .describe("Load and update a local analysis snapshot"),
36
99
  provider: providerSelectionOption,
37
100
  });
38
- const analyzeOptions = overviewOptions.extend({
39
- approved: z
40
- .boolean()
41
- .default(false)
42
- .describe("Approve static analysis when the path is a JavaScript directory or ASAR"),
43
- });
44
101
  cli.command(CLI_COMMANDS.analyze, {
45
102
  description: "Get an overview of an app",
46
103
  args: z.object({
47
104
  path: z.string().describe("App, program, or analysis database path"),
48
105
  }),
49
- options: analyzeOptions,
106
+ options: overviewOptions,
50
107
  run: ({ args, options }) => logCliCommand(logger, "analyze", () => runRoutedOverview(args.path, options, logger)),
51
108
  });
52
109
  cli.command(CLI_COMMANDS.inspect, {
@@ -55,7 +112,7 @@ const registerCoreCommands = (cli, logger) => {
55
112
  path: z.string().describe("App, program, or analysis database path"),
56
113
  }),
57
114
  options: overviewOptions,
58
- run: ({ args, options }) => logCliCommand(logger, "inspect", () => runDirectAnalysis(args.path, "binary_overview", { detail: options.detail, limit: options.limit }, directAnalysisOptions(logger, options.snapshot, options.provider))),
115
+ run: ({ args, options }) => logCliCommand(logger, "inspect", () => runDirectAnalysis(args.path, "binary_overview", {}, directAnalysisOptions(logger, options.snapshot, options.provider))),
59
116
  });
60
117
  cli.command(CLI_COMMANDS.decompile, {
61
118
  description: "Read one part of an app as code",
@@ -80,9 +137,8 @@ const runRoutedOverview = async (path, options, logger) => {
80
137
  (await isJavaScriptApplicationPath(path)))
81
138
  return runCliJavaScriptApplicationAnalysis({
82
139
  input_path: resolve(path),
83
- approved: options.approved,
84
140
  });
85
- return runDirectAnalysis(path, "binary_overview", { detail: options.detail, limit: options.limit }, directAnalysisOptions(logger, options.snapshot, options.provider));
141
+ return runDirectAnalysis(path, "binary_overview", {}, directAnalysisOptions(logger, options.snapshot, options.provider));
86
142
  };
87
143
  const isJavaScriptApplicationPath = async (path) => {
88
144
  const lower = path.toLowerCase();
@@ -117,7 +173,7 @@ const registerXrefsCommand = (cli, logger) => {
117
173
  };
118
174
  const registerTraceCommand = (cli, logger) => {
119
175
  cli.command(CLI_COMMANDS.trace, {
120
- description: "Trace a bounded literal feature through analyzed references",
176
+ description: "Trace a literal feature through analyzed references",
121
177
  args: z.object({
122
178
  path: z.string().describe("App or program path"),
123
179
  query: z.string().min(1).describe("Literal feature query"),
@@ -127,20 +183,6 @@ const registerTraceCommand = (cli, logger) => {
127
183
  .boolean()
128
184
  .default(false)
129
185
  .describe("Match the query with exact letter case"),
130
- limit: z
131
- .number()
132
- .int()
133
- .min(1)
134
- .max(100)
135
- .default(20)
136
- .describe("Maximum matching roots to examine"),
137
- maxOperations: z
138
- .number()
139
- .int()
140
- .min(1)
141
- .max(100)
142
- .default(20)
143
- .describe("Maximum analysis operations in the trace"),
144
186
  snapshot: z
145
187
  .string()
146
188
  .min(1)
@@ -150,49 +192,21 @@ const registerTraceCommand = (cli, logger) => {
150
192
  }),
151
193
  alias: {
152
194
  caseSensitive: "case-sensitive",
153
- maxOperations: "max-operations",
154
195
  },
155
196
  run: ({ args, options }) => logCliCommand(logger, "trace", () => runDirectAnalysis(args.path, "trace_feature", {
156
197
  query: args.query,
157
198
  case_sensitive: options.caseSensitive,
158
- limit: options.limit,
159
- max_operations: options.maxOperations,
160
199
  }, directAnalysisOptions(logger, options.snapshot, options.provider))),
161
200
  });
162
201
  };
163
202
  const registerFunctionCommand = (cli, logger) => {
164
203
  cli.command(CLI_COMMANDS.function, {
165
- description: "Analyze one bounded function with evidence",
204
+ description: "Analyze one complete function with evidence",
166
205
  args: z.object({
167
206
  path: z.string().describe("App or program path"),
168
207
  address: z.string().describe("Procedure name or address"),
169
208
  }),
170
209
  options: z.object({
171
- includeAssembly: z
172
- .boolean()
173
- .default(false)
174
- .describe("Include bounded assembly instructions"),
175
- limit: z
176
- .number()
177
- .int()
178
- .min(1)
179
- .max(500)
180
- .default(100)
181
- .describe("Maximum referenced items to return"),
182
- maxPseudocodeChars: z
183
- .number()
184
- .int()
185
- .min(1)
186
- .max(100_000)
187
- .default(20_000)
188
- .describe("Maximum pseudocode characters to return"),
189
- maxInstructions: z
190
- .number()
191
- .int()
192
- .min(1)
193
- .max(5_000)
194
- .default(500)
195
- .describe("Maximum assembly instructions to return"),
196
210
  snapshot: z
197
211
  .string()
198
212
  .min(1)
@@ -200,18 +214,7 @@ const registerFunctionCommand = (cli, logger) => {
200
214
  .describe("Load and update a local analysis snapshot"),
201
215
  provider: providerSelectionOption,
202
216
  }),
203
- alias: {
204
- includeAssembly: "include-assembly",
205
- maxPseudocodeChars: "max-pseudocode-chars",
206
- maxInstructions: "max-instructions",
207
- },
208
- run: ({ args, options }) => logCliCommand(logger, "function", () => runDirectAnalysis(args.path, "analyze_function", {
209
- procedure: args.address,
210
- include_assembly: options.includeAssembly,
211
- limit: options.limit,
212
- max_pseudocode_chars: options.maxPseudocodeChars,
213
- max_instructions: options.maxInstructions,
214
- }, directAnalysisOptions(logger, options.snapshot, options.provider))),
217
+ run: ({ args, options }) => logCliCommand(logger, "function", () => runDirectAnalysis(args.path, "analyze_function", { procedure: args.address }, directAnalysisOptions(logger, options.snapshot, options.provider))),
215
218
  });
216
219
  };
217
220
  const registerNativeApiCommand = (cli, logger) => {
@@ -222,20 +225,6 @@ const registerNativeApiCommand = (cli, logger) => {
222
225
  address: z.string().describe("Procedure name or address"),
223
226
  }),
224
227
  options: z.object({
225
- maxPseudocodeChars: z
226
- .number()
227
- .int()
228
- .min(1)
229
- .max(100_000)
230
- .default(20_000)
231
- .describe("Maximum pseudocode characters to inspect"),
232
- maxInstructions: z
233
- .number()
234
- .int()
235
- .min(1)
236
- .max(5_000)
237
- .default(500)
238
- .describe("Maximum assembly instructions to inspect"),
239
228
  snapshot: z
240
229
  .string()
241
230
  .min(1)
@@ -243,39 +232,17 @@ const registerNativeApiCommand = (cli, logger) => {
243
232
  .describe("Load and update a local analysis snapshot"),
244
233
  provider: providerSelectionOption,
245
234
  }),
246
- alias: {
247
- maxPseudocodeChars: "max-pseudocode-chars",
248
- maxInstructions: "max-instructions",
249
- },
250
- run: ({ args, options }) => logCliCommand(logger, "inspect-native-api", () => runDirectAnalysis(args.path, "inspect_native_api", {
251
- procedure: args.address,
252
- max_pseudocode_chars: options.maxPseudocodeChars,
253
- max_instructions: options.maxInstructions,
254
- }, directAnalysisOptions(logger, options.snapshot, options.provider))),
235
+ run: ({ args, options }) => logCliCommand(logger, "inspect-native-api", () => runDirectAnalysis(args.path, "inspect_native_api", { procedure: args.address }, directAnalysisOptions(logger, options.snapshot, options.provider))),
255
236
  });
256
237
  };
257
238
  const registerInstructionsCommand = (cli, logger) => {
258
239
  cli.command(CLI_COMMANDS.instructions, {
259
- description: "Read one bounded raw-instruction window without decompiling",
240
+ description: "Read every raw instruction without decompiling",
260
241
  args: z.object({
261
242
  path: z.string().describe("App or program path"),
262
243
  address: z.string().describe("Procedure name or address"),
263
244
  }),
264
245
  options: z.object({
265
- offset: z
266
- .number()
267
- .int()
268
- .min(0)
269
- .max(100_000)
270
- .default(0)
271
- .describe("Zero-based instruction offset"),
272
- limit: z
273
- .number()
274
- .int()
275
- .min(1)
276
- .max(500)
277
- .default(64)
278
- .describe("Maximum raw instructions to return"),
279
246
  snapshot: z
280
247
  .string()
281
248
  .min(1)
@@ -285,14 +252,12 @@ const registerInstructionsCommand = (cli, logger) => {
285
252
  }),
286
253
  run: ({ args, options }) => logCliCommand(logger, CLI_COMMANDS.instructions, () => runDirectAnalysis(args.path, "read_function_instructions", {
287
254
  procedure: args.address,
288
- offset: options.offset,
289
- limit: options.limit,
290
255
  }, directAnalysisOptions(logger, options.snapshot, options.provider))),
291
256
  });
292
257
  };
293
258
  const registerSearchCommand = (cli, logger) => {
294
259
  cli.command(CLI_COMMANDS.search, {
295
- description: "Search bounded analyzed strings or procedure names",
260
+ description: "Search every analyzed string or procedure name",
296
261
  args: z.object({
297
262
  path: z.string().describe("App or program path"),
298
263
  pattern: z.string().min(1).describe("Literal text or regex pattern"),
@@ -310,19 +275,6 @@ const registerSearchCommand = (cli, logger) => {
310
275
  .boolean()
311
276
  .default(false)
312
277
  .describe("Match the pattern with exact letter case"),
313
- offset: z
314
- .number()
315
- .int()
316
- .min(0)
317
- .default(0)
318
- .describe("Zero-based matching-item offset"),
319
- limit: z
320
- .number()
321
- .int()
322
- .min(1)
323
- .max(100)
324
- .default(100)
325
- .describe("Maximum matching items to return"),
326
278
  snapshot: z
327
279
  .string()
328
280
  .min(1)
@@ -335,8 +287,6 @@ const registerSearchCommand = (cli, logger) => {
335
287
  pattern: args.pattern,
336
288
  mode: options.mode,
337
289
  case_sensitive: options.caseSensitive,
338
- offset: options.offset,
339
- limit: options.limit,
340
290
  }, directAnalysisOptions(logger, options.snapshot, options.provider))),
341
291
  });
342
292
  };
@@ -1,16 +1,8 @@
1
1
  import { analyzeJavaScriptApplication } from "../application/JavaScriptApplicationService.js";
2
- import { loadConfiguredPermissionAuthority } from "../application/PermissionConfiguration.js";
3
- import { parseConfig } from "../config.js";
4
2
  import { projectAnalysisError } from "../domain/errors.js";
5
3
  /** Execute the shared one-shot CLI boundary for static JavaScript analysis. */
6
4
  export const runCliJavaScriptApplicationAnalysis = async (input) => {
7
- const config = parseConfig(process.env);
8
- if (!config.ok)
9
- return cliError(config.error);
10
- const authority = await loadConfiguredPermissionAuthority(config.value);
11
- if (!authority.ok)
12
- return cliError(authority.error);
13
- const result = await analyzeJavaScriptApplication(authority.value, input);
5
+ const result = await analyzeJavaScriptApplication(input);
14
6
  return result.ok ? result.value : cliError(result.error);
15
7
  };
16
8
  const cliError = (error) => ({
@@ -1,5 +1,5 @@
1
1
  import { z } from "incur";
2
- import { compareManagedMemberPaths, } from "../application/ManagedMemberComparisonService.js";
2
+ import { compareManagedMemberPaths } from "../application/ManagedMemberComparisonService.js";
3
3
  import { verifyManagedNativeBoundariesEvidence } from "../application/ManagedNativeVerificationService.js";
4
4
  import { importManagedReconstructionEvidence } from "../application/ManagedReconstructionService.js";
5
5
  import { planManagedRuntimeCorrelationEvidence } from "../application/ManagedRuntimeCorrelationService.js";
@@ -11,44 +11,6 @@ import { projectAnalysisError } from "../domain/errors.js";
11
11
  import { CLI_COMMANDS } from "../cliCommandNames.js";
12
12
  import { logCliCommand } from "../cliLogging.js";
13
13
  import { registerProjectManagedApplicationGraph } from "./managedProjectGraphCommand.js";
14
- const managedOffset = (subject) => z.number().int().min(0).default(0).describe(`Zero-based ${subject} offset`);
15
- const managedLimit = (subject, maximum, fallback) => z
16
- .number()
17
- .int()
18
- .min(1)
19
- .max(maximum)
20
- .default(fallback)
21
- .describe(`Maximum ${subject} to return`);
22
- const managedInspectionLimits = {
23
- maxFileBytes: z
24
- .number()
25
- .int()
26
- .min(4_096)
27
- .max(1_073_741_824)
28
- .default(268_435_456)
29
- .describe("Maximum managed artifact file size accepted for inspection"),
30
- maxMetadataBytes: z
31
- .number()
32
- .int()
33
- .min(256)
34
- .max(268_435_456)
35
- .default(67_108_864)
36
- .describe("Maximum CLI metadata region size accepted for inspection"),
37
- maxTableRows: z
38
- .number()
39
- .int()
40
- .min(1)
41
- .max(1_000_000)
42
- .default(100_000)
43
- .describe("Maximum rows accepted in any CLI metadata table"),
44
- maxHeapItemBytes: z
45
- .number()
46
- .int()
47
- .min(1)
48
- .max(16_777_216)
49
- .default(1_048_576)
50
- .describe("Maximum bytes accepted for one CLI metadata heap item"),
51
- };
52
14
  export const registerManagedCommands = (cli, logger) => {
53
15
  registerInspectManagedArtifact(cli, logger);
54
16
  registerInspectManagedMembers(cli, logger);
@@ -65,39 +27,7 @@ const registerInspectManagedArtifact = (cli, logger) => {
65
27
  args: z.object({
66
28
  path: z.string().describe("Managed PE executable or assembly path"),
67
29
  }),
68
- options: z.object({
69
- referenceOffset: managedOffset("assembly-reference"),
70
- referenceLimit: managedLimit("assembly references", 500, 100),
71
- resourceOffset: managedOffset("manifest-resource"),
72
- resourceLimit: managedLimit("manifest resources", 500, 100),
73
- attributeOffset: managedOffset("assembly-attribute"),
74
- attributeLimit: managedLimit("assembly attributes", 500, 100),
75
- ...managedInspectionLimits,
76
- }),
77
- alias: {
78
- referenceOffset: "reference-offset",
79
- referenceLimit: "reference-limit",
80
- resourceOffset: "resource-offset",
81
- resourceLimit: "resource-limit",
82
- attributeOffset: "attribute-offset",
83
- attributeLimit: "attribute-limit",
84
- maxFileBytes: "max-file-bytes",
85
- maxMetadataBytes: "max-metadata-bytes",
86
- maxTableRows: "max-table-rows",
87
- maxHeapItemBytes: "max-heap-item-bytes",
88
- },
89
- run: ({ args, options }) => logCliCommand(logger, "inspect-managed-artifact", () => runProviderAnalysis(args.path, "inspect_managed_artifact", {
90
- reference_offset: options.referenceOffset,
91
- reference_limit: options.referenceLimit,
92
- resource_offset: options.resourceOffset,
93
- resource_limit: options.resourceLimit,
94
- attribute_offset: options.attributeOffset,
95
- attribute_limit: options.attributeLimit,
96
- max_file_bytes: options.maxFileBytes,
97
- max_metadata_bytes: options.maxMetadataBytes,
98
- max_table_rows: options.maxTableRows,
99
- max_heap_item_bytes: options.maxHeapItemBytes,
100
- }, logger)),
30
+ run: ({ args }) => logCliCommand(logger, "inspect-managed-artifact", () => runProviderAnalysis(args.path, "inspect_managed_artifact", {}, logger)),
101
31
  });
102
32
  };
103
33
  const registerInspectManagedMembers = (cli, logger) => {
@@ -106,78 +36,7 @@ const registerInspectManagedMembers = (cli, logger) => {
106
36
  args: z.object({
107
37
  path: z.string().describe("Managed PE executable or assembly path"),
108
38
  }),
109
- options: z.object({
110
- typeOffset: managedOffset("type definition"),
111
- typeLimit: managedLimit("type definitions", 500, 100),
112
- methodOffset: managedOffset("method definition"),
113
- methodLimit: managedLimit("method definitions", 500, 100),
114
- fieldOffset: managedOffset("field definition"),
115
- fieldLimit: managedLimit("field definitions", 500, 100),
116
- memberRefOffset: managedOffset("member reference"),
117
- memberRefLimit: managedLimit("member references", 500, 100),
118
- edgeOffset: managedOffset("member edge"),
119
- edgeLimit: managedLimit("member edges", 1_000, 250),
120
- instructionAnchorLimit: z
121
- .number()
122
- .int()
123
- .min(0)
124
- .max(500)
125
- .default(100)
126
- .describe("Maximum CIL instruction anchors per method"),
127
- ...managedInspectionLimits,
128
- maxMethodBodyBytes: z
129
- .number()
130
- .int()
131
- .min(1)
132
- .max(16_777_216)
133
- .default(1_048_576)
134
- .describe("Maximum CIL method body size accepted for inspection"),
135
- maxMethodInstructions: z
136
- .number()
137
- .int()
138
- .min(1)
139
- .max(100_000)
140
- .default(10_000)
141
- .describe("Maximum decoded CIL instructions per method"),
142
- }),
143
- alias: {
144
- typeOffset: "type-offset",
145
- typeLimit: "type-limit",
146
- methodOffset: "method-offset",
147
- methodLimit: "method-limit",
148
- fieldOffset: "field-offset",
149
- fieldLimit: "field-limit",
150
- memberRefOffset: "member-ref-offset",
151
- memberRefLimit: "member-ref-limit",
152
- edgeOffset: "edge-offset",
153
- edgeLimit: "edge-limit",
154
- instructionAnchorLimit: "instruction-anchor-limit",
155
- maxFileBytes: "max-file-bytes",
156
- maxMetadataBytes: "max-metadata-bytes",
157
- maxTableRows: "max-table-rows",
158
- maxHeapItemBytes: "max-heap-item-bytes",
159
- maxMethodBodyBytes: "max-method-body-bytes",
160
- maxMethodInstructions: "max-method-instructions",
161
- },
162
- run: ({ args, options }) => logCliCommand(logger, "inspect-managed-members", () => runProviderAnalysis(args.path, "inspect_managed_members", {
163
- type_offset: options.typeOffset,
164
- type_limit: options.typeLimit,
165
- method_offset: options.methodOffset,
166
- method_limit: options.methodLimit,
167
- field_offset: options.fieldOffset,
168
- field_limit: options.fieldLimit,
169
- member_ref_offset: options.memberRefOffset,
170
- member_ref_limit: options.memberRefLimit,
171
- edge_offset: options.edgeOffset,
172
- edge_limit: options.edgeLimit,
173
- instruction_anchor_limit: options.instructionAnchorLimit,
174
- max_file_bytes: options.maxFileBytes,
175
- max_metadata_bytes: options.maxMetadataBytes,
176
- max_table_rows: options.maxTableRows,
177
- max_heap_item_bytes: options.maxHeapItemBytes,
178
- max_method_body_bytes: options.maxMethodBodyBytes,
179
- max_method_instructions: options.maxMethodInstructions,
180
- }, logger)),
39
+ run: ({ args }) => logCliCommand(logger, "inspect-managed-members", () => runProviderAnalysis(args.path, "inspect_managed_members", {}, logger)),
181
40
  });
182
41
  };
183
42
  const registerInspectManagedNativeBoundaries = (cli, logger) => {
@@ -186,39 +45,7 @@ const registerInspectManagedNativeBoundaries = (cli, logger) => {
186
45
  args: z.object({
187
46
  path: z.string().describe("Managed PE executable or assembly path"),
188
47
  }),
189
- options: z.object({
190
- moduleRefOffset: managedOffset("module reference"),
191
- moduleRefLimit: managedLimit("module references", 500, 100),
192
- importOffset: managedOffset("platform import"),
193
- importLimit: managedLimit("platform imports", 500, 100),
194
- implementationOffset: managedOffset("native implementation"),
195
- implementationLimit: managedLimit("native implementations", 500, 100),
196
- ...managedInspectionLimits,
197
- }),
198
- alias: {
199
- moduleRefOffset: "module-ref-offset",
200
- moduleRefLimit: "module-ref-limit",
201
- importOffset: "import-offset",
202
- importLimit: "import-limit",
203
- implementationOffset: "implementation-offset",
204
- implementationLimit: "implementation-limit",
205
- maxFileBytes: "max-file-bytes",
206
- maxMetadataBytes: "max-metadata-bytes",
207
- maxTableRows: "max-table-rows",
208
- maxHeapItemBytes: "max-heap-item-bytes",
209
- },
210
- run: ({ args, options }) => logCliCommand(logger, "inspect-managed-native-boundaries", () => runProviderAnalysis(args.path, "inspect_managed_native_boundaries", {
211
- module_ref_offset: options.moduleRefOffset,
212
- module_ref_limit: options.moduleRefLimit,
213
- import_offset: options.importOffset,
214
- import_limit: options.importLimit,
215
- implementation_offset: options.implementationOffset,
216
- implementation_limit: options.implementationLimit,
217
- max_file_bytes: options.maxFileBytes,
218
- max_metadata_bytes: options.maxMetadataBytes,
219
- max_table_rows: options.maxTableRows,
220
- max_heap_item_bytes: options.maxHeapItemBytes,
221
- }, logger)),
48
+ run: ({ args }) => logCliCommand(logger, "inspect-managed-native-boundaries", () => runProviderAnalysis(args.path, "inspect_managed_native_boundaries", {}, logger)),
222
49
  });
223
50
  };
224
51
  const compareManagedMemberArgs = z.object({
@@ -229,83 +56,10 @@ const registerCompareManagedMembers = (cli, logger) => {
229
56
  cli.command(CLI_COMMANDS.compareManagedMembers, {
230
57
  description: "Compare two managed PE/CLI member inventories without name-based matching",
231
58
  args: compareManagedMemberArgs,
232
- options: z.object({
233
- maxMethodMatches: z
234
- .number()
235
- .int()
236
- .min(1)
237
- .max(50_000)
238
- .default(10_000)
239
- .describe("Maximum exact method matches to return"),
240
- maxFieldMatches: z
241
- .number()
242
- .int()
243
- .min(0)
244
- .max(50_000)
245
- .default(5_000)
246
- .describe("Maximum exact field matches to return"),
247
- maxCandidates: z
248
- .number()
249
- .int()
250
- .min(1)
251
- .max(500)
252
- .default(50)
253
- .describe("Maximum ambiguous candidates per unmatched member"),
254
- typeLimit: managedLimit("type definitions per artifact", 500, 500),
255
- methodLimit: managedLimit("method definitions per artifact", 500, 500),
256
- fieldLimit: managedLimit("field definitions per artifact", 500, 500),
257
- memberRefLimit: managedLimit("member references per artifact", 500, 500),
258
- edgeLimit: managedLimit("member edges per artifact", 1_000, 1_000),
259
- instructionAnchorLimit: z
260
- .number()
261
- .int()
262
- .min(0)
263
- .max(500)
264
- .default(500)
265
- .describe("Maximum CIL instruction anchors per compared method"),
266
- ...managedInspectionLimits,
267
- maxMethodBodyBytes: z
268
- .number()
269
- .int()
270
- .min(1)
271
- .max(16_777_216)
272
- .default(1_048_576)
273
- .describe("Maximum CIL method body size accepted for comparison"),
274
- maxMethodInstructions: z
275
- .number()
276
- .int()
277
- .min(1)
278
- .max(100_000)
279
- .default(100_000)
280
- .describe("Maximum decoded CIL instructions per compared method"),
281
- }),
282
- alias: {
283
- maxMethodMatches: "max-method-matches",
284
- maxFieldMatches: "max-field-matches",
285
- maxCandidates: "max-candidates",
286
- typeLimit: "type-limit",
287
- methodLimit: "method-limit",
288
- fieldLimit: "field-limit",
289
- memberRefLimit: "member-ref-limit",
290
- edgeLimit: "edge-limit",
291
- instructionAnchorLimit: "instruction-anchor-limit",
292
- maxFileBytes: "max-file-bytes",
293
- maxMetadataBytes: "max-metadata-bytes",
294
- maxTableRows: "max-table-rows",
295
- maxHeapItemBytes: "max-heap-item-bytes",
296
- maxMethodBodyBytes: "max-method-body-bytes",
297
- maxMethodInstructions: "max-method-instructions",
298
- },
299
- run: ({ args, options }) => logCliCommand(logger, "compare-managed-members", async () => {
59
+ run: ({ args }) => logCliCommand(logger, "compare-managed-members", async () => {
300
60
  const result = await compareManagedMemberPaths({
301
61
  leftPath: args.leftPath,
302
62
  rightPath: args.rightPath,
303
- comparisonLimits: {
304
- max_method_matches: options.maxMethodMatches,
305
- max_field_matches: options.maxFieldMatches,
306
- max_candidates: options.maxCandidates,
307
- },
308
- memberLimits: buildMemberLimits(options),
309
63
  });
310
64
  return result.ok
311
65
  ? result.value
@@ -316,25 +70,6 @@ const registerCompareManagedMembers = (cli, logger) => {
316
70
  }),
317
71
  });
318
72
  };
319
- const buildMemberLimits = (options) => ({
320
- maxFileBytes: options.maxFileBytes,
321
- typeOffset: 0,
322
- typeLimit: options.typeLimit,
323
- methodOffset: 0,
324
- methodLimit: options.methodLimit,
325
- fieldOffset: 0,
326
- fieldLimit: options.fieldLimit,
327
- memberRefOffset: 0,
328
- memberRefLimit: options.memberRefLimit,
329
- edgeOffset: 0,
330
- edgeLimit: options.edgeLimit,
331
- instructionAnchorLimit: options.instructionAnchorLimit,
332
- maxMetadataBytes: options.maxMetadataBytes,
333
- maxTableRows: options.maxTableRows,
334
- maxHeapItemBytes: options.maxHeapItemBytes,
335
- maxMethodBodyBytes: options.maxMethodBodyBytes,
336
- maxMethodInstructions: options.maxMethodInstructions,
337
- });
338
73
  const registerImportManagedReconstruction = (cli, logger) => {
339
74
  cli.command(CLI_COMMANDS.importManagedReconstruction, {
340
75
  description: "Import decompiler-produced managed reconstruction against exact static member evidence",