rea-agents 3.1.0 → 3.2.1

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
@@ -1,12 +1,14 @@
1
1
  import { z } from "zod";
2
2
  import { jsonValueSchema } from "../domain/jsonValue.js";
3
- import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/processCapture.js";
4
3
  import { residualUnknownSchema } from "../domain/residualUnknown.js";
4
+ import { evidenceBundleSchema } from "../domain/evidenceBundle.js";
5
+ import { processCaptureComparisonSchema, processCaptureSchema, } from "../domain/processCapture.js";
5
6
  import { functionInstructionWindowSchema, referenceKindSchema, } from "../domain/hopperValues.js";
6
7
  import { nativeApiInspectionResultSchema } from "../domain/nativeApiBoundary.js";
7
8
  import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, } from "../domain/nativeInspection.js";
8
- import { artifactExtractionResultSchema, artifactInventoryResultSchema, } from "../domain/artifactGraph.js";
9
+ import { artifactExtractionResultSchema } from "../domain/artifactGraph.js";
9
10
  import { artifactInspectionResultSchema } from "../domain/artifactInspection.js";
11
+ import { interfaceBuilderAnalysisSchema } from "../domain/interfaceBuilderGraph.js";
10
12
  import { managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, } from "../domain/managedArtifact.js";
11
13
  import { managedMemberComparisonResultSchema } from "../domain/managedMemberComparison.js";
12
14
  import { managedNativeVerificationResultSchema } from "../domain/managedNativeVerification.js";
@@ -22,7 +24,9 @@ import { staticRuntimeCorrelationResultSchema } from "../domain/staticRuntimeCor
22
24
  import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerification.js";
23
25
  import { replayMachineRunOutputSchema } from "../domain/replayMachineRun.js";
24
26
  import { analysisErrorProjectionSchema } from "./errorSchemas.js";
25
- import { addressList, addressedEntry, analysisActivity, bounded, containingProcedureResolution, clientFeatureAvailabilitySchema, functionDossierOutput, graphNode, lifecycleResultOf, nullableText, pageOutput, procedureIdentity, procedureInfoOutput, evidenceResultOf as resultOf, searchPageOutput, segmentOutput, sessionProvider, providerIdentity, toolAvailability, symbolDiscoveryOutput, targetFormatSchema, targetKindSchema, } from "./toolOutputSchemaPrimitives.js";
27
+ import { nativeDispatchMetadataResultSchema } from "../domain/objcSwiftMetadata.js";
28
+ import { nativeInvestigationTraceSchema } from "../domain/nativeInvestigationGraph.js";
29
+ import { addressList, addressedValue, addressedEntry, containingProcedureResolution, functionDossierOutput, graphNode, lifecycleResultOf, nullableText, procedureIdentity, procedureInfoOutput, evidenceResultOf as resultOf, segmentOutput, sessionProvider, symbolDiscoveryOutput, targetFormatSchema, targetKindSchema, } from "./toolOutputSchemaPrimitives.js";
26
30
  const contextFacetSchema = z.discriminatedUnion("state", [
27
31
  z.object({ state: z.literal("available"), value: jsonValueSchema }),
28
32
  z.object({
@@ -39,6 +43,17 @@ const bookmarkFacetSchema = z.discriminatedUnion("state", [
39
43
  remediation: z.string(),
40
44
  }),
41
45
  ]);
46
+ const addressedString = z.object({
47
+ address: z.string(),
48
+ value: z.string(),
49
+ string: z
50
+ .object({
51
+ encoding: z.string().min(1),
52
+ termination: z.enum(["missing", "present_or_not_required"]),
53
+ byte_length: z.number().int().min(0),
54
+ })
55
+ .optional(),
56
+ });
42
57
  /** Exact structured-content schemas shared by direct analysis providers. */
43
58
  export const officialOutputSchemas = {
44
59
  address_name: resultOf(nullableText),
@@ -50,10 +65,10 @@ export const officialOutputSchemas = {
50
65
  inline_comment: resultOf(nullableText),
51
66
  list_bookmarks: resultOf(z.array(addressedEntry)),
52
67
  list_documents: resultOf(z.array(z.string())),
53
- list_names: resultOf(pageOutput),
54
- list_procedures: resultOf(pageOutput),
68
+ list_names: resultOf(z.array(addressedValue)),
69
+ list_procedures: resultOf(z.array(addressedValue)),
55
70
  list_segments: segmentOutput,
56
- list_strings: resultOf(pageOutput),
71
+ list_strings: resultOf(z.array(addressedString)),
57
72
  next_address: resultOf(z.string()),
58
73
  prev_address: resultOf(z.string()),
59
74
  procedure_address: resultOf(z.string()),
@@ -64,8 +79,8 @@ export const officialOutputSchemas = {
64
79
  read_function_instructions: resultOf(functionInstructionWindowSchema),
65
80
  read_bytes: resultOf(z.object({
66
81
  address: z.string(),
67
- requested_bytes: z.number().int().min(1).max(4_096),
68
- returned_bytes: z.number().int().min(0).max(4_096),
82
+ requested_bytes: z.number().int().min(1),
83
+ returned_bytes: z.number().int().min(0),
69
84
  bytes_hex: z.string().regex(/^(?:[a-f0-9]{2})*$/u),
70
85
  complete: z.boolean(),
71
86
  })),
@@ -76,20 +91,18 @@ export const officialOutputSchemas = {
76
91
  procedure_references: resultOf(z.object({
77
92
  procedure: procedureIdentity,
78
93
  direction: z.enum(["incoming", "outgoing"]),
79
- references: bounded(z.object({
94
+ references: z.array(z.object({
80
95
  source_address: z.string(),
81
96
  target_address: z.string(),
82
97
  source_procedure: procedureIdentity.nullable(),
83
98
  target_procedure: procedureIdentity.nullable(),
84
99
  kind: referenceKindSchema,
85
100
  })),
86
- instructions_scanned: z.number().int().min(0),
87
- instruction_scan_truncated: z.boolean(),
88
101
  })),
89
102
  procedure_pseudo_code: resultOf(nullableText),
90
103
  resolve_containing_procedure: resultOf(containingProcedureResolution),
91
- search_procedures: resultOf(searchPageOutput),
92
- search_strings: resultOf(searchPageOutput),
104
+ search_procedures: resultOf(z.array(z.object({ address: z.string(), value: z.string() }))),
105
+ search_strings: resultOf(z.array(z.object({ address: z.string(), value: z.string() }))),
93
106
  set_address_name: resultOf(z.boolean()),
94
107
  set_addresses_names: resultOf(z.record(z.string(), z.boolean())),
95
108
  set_bookmark: resultOf(z.boolean()),
@@ -102,8 +115,6 @@ export const officialOutputSchemas = {
102
115
  const literalTraceOutput = resultOf(z.object({
103
116
  query: z.string(),
104
117
  search_mode: z.literal("literal"),
105
- operations_used: z.number().int().min(0),
106
- operation_budget: z.number().int().min(1),
107
118
  matches: z.array(z.object({
108
119
  type: z.enum(["string", "procedure"]),
109
120
  address: z.string(),
@@ -136,13 +147,8 @@ const callPathTraceOutput = resultOf(z.object({
136
147
  address: z.string(),
137
148
  error: analysisErrorProjectionSchema,
138
149
  })),
139
- frontier: z.array(z.string()),
140
- limits: z.object({
141
- max_depth: z.number().int().min(1),
142
- max_nodes: z.number().int().min(1),
143
- max_operations: z.number().int().min(1),
150
+ traversal: z.object({
144
151
  nodes_visited: z.number().int().min(1),
145
- operations_used: z.number().int().min(0),
146
152
  }),
147
153
  truncated: z.boolean(),
148
154
  residual_unknowns: z.array(z.string()),
@@ -150,7 +156,8 @@ const callPathTraceOutput = resultOf(z.object({
150
156
  }));
151
157
  /** Exact structured-content schemas for composed analysis workflows. */
152
158
  export const enhancedOutputSchemas = {
153
- swift_classes: symbolDiscoveryOutput("classes"),
159
+ inspect_native_dispatch_metadata: resultOf(nativeDispatchMetadataResultSchema),
160
+ trace_native_ui_action: resultOf(nativeInvestigationTraceSchema),
154
161
  get_objc_classes: symbolDiscoveryOutput("classes"),
155
162
  get_objc_protocols: symbolDiscoveryOutput("protocols"),
156
163
  batch_decompile: resultOf(z.object({
@@ -193,12 +200,11 @@ export const enhancedOutputSchemas = {
193
200
  ])),
194
201
  binary_overview: resultOf(z.object({
195
202
  document: z.string(),
196
- detail: z.enum(["concise", "detailed"]),
197
203
  segments: z.array(z.object({
198
204
  name: z.string(),
199
205
  start: z.string(),
200
206
  end: z.string(),
201
- length: z.number().min(0).optional(),
207
+ length: z.number().min(0),
202
208
  })),
203
209
  segment_count: z.number().int().min(0),
204
210
  procedure_count: z.number().int().min(0),
@@ -210,7 +216,7 @@ export const enhancedOutputSchemas = {
210
216
  find_code_for_string: literalTraceOutput,
211
217
  trace_call_path: callPathTraceOutput,
212
218
  };
213
- /** Exact Evidence v2 schemas for provider-neutral native inspection. */
219
+ /** Exact Evidence schemas for provider-neutral native inspection. */
214
220
  export const nativeOutputSchemas = {
215
221
  inspect_macho: resultOf(inspectMachoSchema),
216
222
  inspect_signature: resultOf(inspectSignatureSchema),
@@ -218,19 +224,19 @@ export const nativeOutputSchemas = {
218
224
  list_architectures: resultOf(listArchitecturesSchema),
219
225
  demangle_swift: resultOf(demangleSwiftSchema),
220
226
  };
221
- /** Exact Evidence v2 schemas for provider-neutral artifact graph operations. */
227
+ /** Exact Evidence schemas for provider-neutral artifact graph operations. */
222
228
  export const artifactOutputSchemas = {
223
- inventory_artifact: resultOf(artifactInventoryResultSchema),
224
229
  inspect_artifact: resultOf(artifactInspectionResultSchema),
225
230
  extract_artifact: resultOf(artifactExtractionResultSchema),
231
+ decode_interface_builder: resultOf(interfaceBuilderAnalysisSchema),
226
232
  };
227
- /** Exact Evidence v2 schema for execution-free managed static analysis. */
233
+ /** Exact Evidence schema for execution-free managed static analysis. */
228
234
  export const managedOutputSchemas = {
229
235
  inspect_managed_artifact: resultOf(managedArtifactInspectionSchema),
230
236
  inspect_managed_members: resultOf(managedMemberInspectionSchema),
231
237
  inspect_managed_native_boundaries: resultOf(managedNativeBoundaryInspectionSchema),
232
238
  };
233
- /** Exact Evidence v2 schema for provider-neutral managed workflows. */
239
+ /** Exact Evidence schema for provider-neutral managed workflows. */
234
240
  export const managedWorkflowOutputSchemas = {
235
241
  compare_managed_members: resultOf(managedMemberComparisonResultSchema),
236
242
  verify_managed_native_boundaries: resultOf(managedNativeVerificationResultSchema),
@@ -257,51 +263,11 @@ export const sessionOutputSchemas = {
257
263
  }),
258
264
  ])),
259
265
  binary_session: lifecycleResultOf(z.union([
260
- z.object({
261
- view: z.literal("summary"),
262
- open: z.boolean(),
263
- provider: providerIdentity,
264
- active_provider: providerIdentity.nullable(),
265
- target: z
266
- .object({
267
- path: z.string(),
268
- format: targetFormatSchema,
269
- kind: targetKindSchema,
270
- sha256: z.string().regex(/^[a-f0-9]{64}$/u),
271
- architecture: z.enum(["x86", "x86_64", "arm", "arm64"]).nullable(),
272
- })
273
- .nullable(),
274
- alignment: z.object({
275
- state: z.enum(["aligned", "mcp_server_restart_required", "unknown"]),
276
- reasons: z.array(z.string()),
277
- remediation: z.string().nullable(),
278
- }),
279
- analysis_activity: analysisActivity,
280
- recommended_actions: z.array(z.string()),
281
- }),
282
- z.object({
283
- view: z.literal("capabilities"),
284
- open: z.boolean(),
285
- provider: providerIdentity,
286
- active_provider: providerIdentity.nullable(),
287
- capability_family: z.string().nullable(),
288
- capabilities: z.object({
289
- items: z.array(toolAvailability),
290
- cursor: z.number().int().min(0),
291
- limit: z.number().int().min(1),
292
- total: z.number().int().min(0),
293
- next_cursor: z.number().int().min(0).nullable(),
294
- has_more: z.boolean(),
295
- }),
296
- client_features: clientFeatureAvailabilitySchema,
297
- }),
298
266
  z.union([
299
267
  sessionProvider.extend({
300
- view: z.literal("full"),
301
268
  open: z.literal(false),
302
269
  }),
303
270
  sessionProvider.extend({
304
- view: z.literal("full"),
305
271
  open: z.literal(true),
306
272
  path: z.string(),
307
273
  format: targetFormatSchema,
@@ -317,20 +283,7 @@ export const sessionOutputSchemas = {
317
283
  records: z.number().int().min(0),
318
284
  unknowns: z.number().int().min(0),
319
285
  })),
320
- snapshot_evidence_bundle: lifecycleResultOf(z.object({
321
- bundle_digest: z.string().regex(/^[a-f0-9]{64}$/u),
322
- bundle_version: z.literal(2),
323
- bytes: z.number().int().min(0),
324
- records: z.number().int().min(0),
325
- unknowns: z.number().int().min(0),
326
- scope: z.literal("session"),
327
- survives_session: z.literal(false),
328
- bundle_uri: z.string().regex(/^rea:\/\/evidence-bundle\/[a-f0-9]{64}$/u),
329
- })),
330
- release_evidence_bundle: lifecycleResultOf(z.object({
331
- bundle_digest: z.string().regex(/^[a-f0-9]{64}$/u),
332
- released: z.boolean(),
333
- })),
286
+ get_evidence_bundle: lifecycleResultOf(evidenceBundleSchema),
334
287
  get_navigation_context: lifecycleResultOf(z.object({
335
288
  document: z.string(),
336
289
  address: z.string(),
@@ -360,15 +313,8 @@ export const sessionOutputSchemas = {
360
313
  correlate_static_and_runtime: resultOf(staticRuntimeCorrelationResultSchema),
361
314
  verify_reconstruction: resultOf(reconstructionVerificationResultSchema),
362
315
  list_unknowns: lifecycleResultOf(z.object({
363
- items: z.array(z.object({
364
- unknown: residualUnknownSchema,
365
- uri: z.string().regex(/^rea:\/\/unknown\/unk_[a-f0-9]{64}$/u),
366
- })),
367
- offset: z.number().int().min(0),
368
- limit: z.number().int().min(1).max(500),
316
+ items: z.array(residualUnknownSchema),
369
317
  total: z.number().int().min(0),
370
- next_offset: z.number().int().min(0).nullable(),
371
- has_more: z.boolean(),
372
318
  })),
373
319
  record_unknown: lifecycleResultOf(residualUnknownSchema),
374
320
  update_unknown: lifecycleResultOf(residualUnknownSchema),
@@ -1,13 +1,18 @@
1
1
  import { z } from "zod";
2
2
  import { procedureClassificationSchema, procedureIdentitySchema, localVariableSchema, functionDossierSchema, } from "../domain/hopperValues.js";
3
3
  import { analysisProfileSchema } from "../domain/analysisProfile.js";
4
+ import { evidenceEnvelopeSchema } from "../domain/evidence.js";
5
+ import { jsonValueSchema } from "../domain/jsonValue.js";
4
6
  import { PROVIDER_REJECTION_CODES, } from "./providerSelection.js";
5
7
  import { analysisErrorProjectionSchema } from "./errorSchemas.js";
6
- /** Compact MCP result with an immutable link to complete session Evidence. */
8
+ /** Inline result with its complete Evidence record. */
9
+ export const inlineEvidenceRecordSchema = evidenceEnvelopeSchema.omit({
10
+ normalized_result: true,
11
+ });
7
12
  export const evidenceResultOf = (schema) => z.strictObject({
8
13
  result: schema,
9
14
  evidence_id: z.string().regex(/^ev_[a-f0-9]{64}$/u),
10
- evidence_uri: z.string().regex(/^rea:\/\/evidence\/ev_[a-f0-9]{64}$/u),
15
+ evidence: inlineEvidenceRecordSchema,
11
16
  });
12
17
  const resultOf = evidenceResultOf;
13
18
  export const lifecycleResultOf = (schema) => z.object({ result: schema });
@@ -44,10 +49,6 @@ export const targetKindSchema = z.enum([
44
49
  ]);
45
50
  const providerCapabilityFacts = {
46
51
  operation: z.string(),
47
- input_contract_version: z.number().int().min(1),
48
- output_contract_version: z.number().int().min(1),
49
- pagination: z.enum(["none", "offset", "cursor"]),
50
- exhaustive: z.boolean(),
51
52
  effects: z.object({
52
53
  mutates_artifact: z.boolean(),
53
54
  launches_process: z.boolean(),
@@ -57,11 +58,6 @@ const providerCapabilityFacts = {
57
58
  changes_permissions: z.boolean(),
58
59
  requires_root: z.boolean(),
59
60
  }),
60
- limits: z.object({
61
- max_results: z.number().int().min(0).nullable(),
62
- max_payload_bytes: z.number().int().min(0).nullable(),
63
- timeout_ms: z.number().int().min(0).nullable(),
64
- }),
65
61
  limitations: z.array(z.string()),
66
62
  };
67
63
  export const providerCapability = z.discriminatedUnion("available", [
@@ -97,7 +93,6 @@ const processLineageObservation = z.discriminatedUnion("status", [
97
93
  z.object({
98
94
  status: z.literal("verified"),
99
95
  observed_at: z.iso.datetime(),
100
- schema_version: z.literal(1),
101
96
  ...processCoordinates,
102
97
  launcher_parent_pid: z.number().int().min(0),
103
98
  descendants: z.array(z.object({
@@ -123,7 +118,7 @@ const analysisRun = z
123
118
  })
124
119
  .nullable();
125
120
  export const analysisActivity = z.object({
126
- status: z.enum(["not_observed", "idle", "busy", "timed_out_busy"]),
121
+ status: z.enum(["not_observed", "idle", "busy"]),
127
122
  providers: z.array(z.object({
128
123
  provider: providerIdentity,
129
124
  active: z
@@ -131,15 +126,14 @@ export const analysisActivity = z.object({
131
126
  request_id: z.number().int().min(1),
132
127
  operation: z.string().min(1),
133
128
  elapsed_ms: z.number().int().min(0),
134
- timeout_ms: z.number().int().min(0),
135
- caller_state: z.enum(["waiting", "timed_out", "cancelled"]),
129
+ caller_state: z.enum(["waiting", "cancelled"]),
136
130
  })
137
131
  .nullable(),
138
132
  queued_requests: z.number().int().min(0),
139
133
  })),
140
134
  });
141
135
  const providerRejectionCode = z.enum(PROVIDER_REJECTION_CODES);
142
- const providerDiagnostics = z.record(z.string(), z.json());
136
+ const providerDiagnostics = z.record(z.string(), jsonValueSchema);
143
137
  const providerAvailability = z.discriminatedUnion("status", [
144
138
  z.object({
145
139
  status: z.literal("available"),
@@ -197,7 +191,7 @@ const toolAvailabilityMode = z.discriminatedUnion("available", [
197
191
  z.object({
198
192
  name: z.string(),
199
193
  available: z.literal(true),
200
- missing_operations: z.array(z.string()).max(0),
194
+ missing_operations: z.array(z.string()).length(0),
201
195
  remediation: z.null(),
202
196
  }),
203
197
  z.object({
@@ -258,7 +252,8 @@ export const toolAvailability = z.discriminatedUnion("available", [
258
252
  remediation: z.string().nullable(),
259
253
  }),
260
254
  ]);
261
- export const sessionProvider = z.object({
255
+ export const sessionProvider = z
256
+ .object({
262
257
  provider: providerIdentity,
263
258
  providers: z.array(providerIdentity),
264
259
  capabilities: z.array(providerCapability),
@@ -314,7 +309,6 @@ export const sessionProvider = z.object({
314
309
  protocol_features: z.object({
315
310
  progress: z.boolean(),
316
311
  cancellation: z.boolean(),
317
- evidence_resources: z.boolean(),
318
312
  elicitation: z.boolean(),
319
313
  }),
320
314
  alignment: z.object({
@@ -323,7 +317,8 @@ export const sessionProvider = z.object({
323
317
  remediation: z.string().nullable(),
324
318
  }),
325
319
  }),
326
- });
320
+ })
321
+ .passthrough();
327
322
  export const nullableText = z.string().nullable();
328
323
  export const addressList = z.array(z.string());
329
324
  export const addressedEntry = z.object({
@@ -353,29 +348,9 @@ const availableMemoryPermissions = z.object({
353
348
  available: z.literal(true),
354
349
  source: z.literal("ghidra-memory-block"),
355
350
  });
356
- export const bounded = (item) => {
357
- const facts = {
358
- items: z.array(item),
359
- total: z.number().int().min(0).nullable(),
360
- returned: z.number().int().min(0),
361
- };
362
- return z.discriminatedUnion("truncated", [
363
- z.object({
364
- ...facts,
365
- truncated: z.literal(false),
366
- next_offset: z.null(),
367
- }),
368
- z.object({
369
- ...facts,
370
- truncated: z.literal(true),
371
- next_offset: z.number().int().min(0).nullable(),
372
- }),
373
- ]);
374
- };
375
- const addressedValue = z.object({
351
+ export const addressedValue = z.object({
376
352
  address: z.string(),
377
353
  value: z.string(),
378
- value_truncated: z.boolean().optional(),
379
354
  symbol: z
380
355
  .object({
381
356
  primary: z.boolean(),
@@ -400,21 +375,6 @@ const addressedValue = z.object({
400
375
  })
401
376
  .optional(),
402
377
  });
403
- export const pageOutput = z.object({
404
- items: z.array(addressedValue),
405
- offset: z.number().int().min(0),
406
- limit: z.number().int().min(1),
407
- total: z.number().int().min(0),
408
- next_offset: z.number().int().min(0).nullable(),
409
- has_more: z.boolean(),
410
- });
411
- export const searchPageOutput = pageOutput.extend({
412
- items: z.array(z.object({
413
- address: z.string(),
414
- value: z.string(),
415
- value_truncated: z.boolean(),
416
- })),
417
- });
418
378
  const memoryRegionOutput = z.object({
419
379
  name: z.string(),
420
380
  start: z.string(),
@@ -10,40 +10,33 @@ const PROPERTY_DESCRIPTIONS = {
10
10
  comment: "Exact analyst comment text to write.",
11
11
  comparisons: "Validated comparison Evidence records to aggregate.",
12
12
  coverage: "Exact reconstruction-coverage commitment to verify.",
13
- detail: "Requested response detail level.",
14
13
  direction: "Direction in which to traverse or compare relationships.",
15
14
  document: "Exact provider document or program identity.",
16
15
  error: "Structured, caller-actionable error when the operation fails.",
17
- evidence: "Evidence v2 record produced by this operation.",
18
- evidence_id: "Stable identifier of the recorded Evidence v2 observation.",
19
- evidence_uri: "Session resource URI for the recorded Evidence v2 observation.",
16
+ evidence: "Evidence record produced by this operation.",
17
+ evidence_id: "Stable identifier of the recorded Evidence observation.",
20
18
  executable: "Approved absolute path of the executable to run.",
21
19
  format: "Declared input artifact format.",
22
20
  name: "Exact name used by this operation.",
23
- pattern: "Text or bounded pattern used to filter matching results.",
21
+ pattern: "Literal text or regular expression used to filter matching results.",
24
22
  phase: "Current plan or execution phase of the operation.",
25
23
  plan: "Content-bound execution plan and its approval commitment.",
26
24
  query: "Non-empty feature or text query to investigate.",
27
25
  question: "Concrete unresolved question to retain for later investigation.",
28
26
  result: "Primary structured result returned by this operation.",
29
27
  left: "Left-hand input used for comparison or differential execution.",
30
- limit: "Maximum number of results to return in this page.",
31
- limits: "Bounded resource-consumption and result-size limits for this operation.",
28
+ limits: "Resource budgets that bound execution and retained output for this operation.",
32
29
  mode: "Operation mode that selects the requested behavior.",
33
- offset: "Zero-based index of the first result to return.",
34
30
  overwrite: "Whether an existing destination may be replaced.",
35
31
  path: "Local filesystem path used by this operation.",
36
32
  provider_id: "Exact deep-analysis provider ID, or automatic selection when omitted.",
37
33
  right: "Right-hand input used for comparison or differential execution.",
38
- schema_version: "Version of this structured result schema.",
39
34
  source_evidence: "Evidence records supporting the prepared source transformation.",
40
35
  status: "Current lifecycle or verification status.",
41
36
  summary: "Concise evidence-backed summary of the result.",
42
- symbols: "Ordered bounded Swift symbols to demangle.",
37
+ symbols: "Ordered Swift symbols to demangle.",
43
38
  target_id: "Exact authorized CDP target identifier.",
44
39
  unknown_id: "Exact residual-unknown identifier.",
45
- unknown_registry_approved: "Explicit approval to record bounded residual uncertainty in the session registry.",
46
- workspace_path: "Approved local path of the persistent investigation workspace.",
47
40
  };
48
41
  /** Attach caller guidance to a canonical schema for the SDK wire projection. */
49
42
  export const toolInputSchemaWithMetadata = (contract) => {
@@ -97,10 +90,6 @@ const fallbackPropertyDescription = (property) => {
97
90
  const words = property.replaceAll("_", " ");
98
91
  if (property.endsWith("_approved"))
99
92
  return `Explicit operator approval for ${words.slice(0, -9)}.`;
100
- if (property.endsWith("_offset"))
101
- return `Zero-based index of the first ${words.slice(0, -7)} to return.`;
102
- if (property.endsWith("_limit"))
103
- return `Maximum number of ${words.slice(0, -6)} entries to return.`;
104
93
  if (property.startsWith("max_"))
105
94
  return `Maximum permitted ${words.slice(4)} for this operation.`;
106
95
  if (property.startsWith("include_"))
@@ -110,15 +99,15 @@ const fallbackPropertyDescription = (property) => {
110
99
  if (property.endsWith("_sha256"))
111
100
  return `Exact SHA-256 digest of ${words.slice(0, -7)}.`;
112
101
  if (property.endsWith("_evidence_id"))
113
- return `Exact Evidence v2 identifier for the ${words.slice(0, -12)} observation.`;
102
+ return `Exact Evidence identifier for the ${words.slice(0, -12)} observation.`;
114
103
  if (property.endsWith("_evidence_ids"))
115
- return `Ordered Evidence v2 identifiers for the ${words.slice(0, -13)} observations.`;
104
+ return `Ordered Evidence identifiers for the ${words.slice(0, -13)} observations.`;
116
105
  if (property.endsWith("_path"))
117
106
  return `Local filesystem path for ${words.slice(0, -5)}.`;
118
107
  if (property.endsWith("_uri"))
119
108
  return `Canonical URI for ${words.slice(0, -4)}.`;
120
109
  if (property.endsWith("_bytes"))
121
- return `Bounded byte count for ${words.slice(0, -6)}.`;
110
+ return `Byte count for ${words.slice(0, -6)}.`;
122
111
  if (property.endsWith("_root") || property.endsWith("_roots"))
123
112
  return `Approved canonical filesystem ${words}.`;
124
113
  if (property.startsWith("is_") || property.startsWith("has_"))
@@ -2,7 +2,6 @@
2
2
  export const UNKNOWN_CONTRACT_EXAMPLES = {
3
3
  list_unknowns: {},
4
4
  record_unknown: {
5
- approved: true,
6
5
  question: "Does this branch require an unavailable external service?",
7
6
  severity: "medium",
8
7
  domain: "protocol",
@@ -15,7 +14,6 @@ export const UNKNOWN_CONTRACT_EXAMPLES = {
15
14
  relationships: [],
16
15
  },
17
16
  update_unknown: {
18
- approved: true,
19
17
  unknown_id: `unk_${"0".repeat(64)}`,
20
18
  expected_revision: 1,
21
19
  status: "investigating",