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,29 +1,30 @@
1
+ import { recordSessionEvidenceSources } from "../sessionEvidence.js";
1
2
  import { compareManagedMembersEvidenceValidated } from "../../application/ManagedMemberComparisonService.js";
2
3
  import { managedMemberComparisonResultSchema } from "../../domain/managedMemberComparison.js";
3
4
  import { logToolExecution } from "../toolLogging.js";
4
5
  import { toolRegistrationOptions } from "../toolRegistrationOptions.js";
5
6
  import { toCallToolResult } from "../toolResult.js";
6
7
  import { managedWorkflowContract } from "./contract.js";
7
- import { recordManagedSources, resolveManagedEvidence } from "./evidence.js";
8
+ import { resolveManagedEvidence } from "./evidence.js";
8
9
  const compareContract = managedWorkflowContract("compare_managed_members");
9
10
  /** Register the managed member comparison workflow tool. */
10
11
  export const registerCompareManagedMembers = (server, options) => {
11
12
  server.registerTool(compareContract.name, toolRegistrationOptions(compareContract), async (input) => {
12
- const resolved = resolveManagedEvidence(options.session, [
13
- input.left_evidence_id,
14
- input.right_evidence_id,
15
- ]);
16
- if (!resolved.ok)
17
- return toCallToolResult(resolved, compareContract);
18
- const [left, right] = resolved.value;
13
+ const leftResolved = resolveManagedEvidence(input.left);
14
+ const rightResolved = resolveManagedEvidence(input.right);
15
+ if (!leftResolved.ok)
16
+ return toCallToolResult(leftResolved, compareContract);
17
+ if (!rightResolved.ok)
18
+ return toCallToolResult(rightResolved, compareContract);
19
+ const [left] = leftResolved.value;
20
+ const [right] = rightResolved.value;
19
21
  if (left === undefined || right === undefined)
20
22
  throw new TypeError("Managed comparison Evidence resolution failed");
21
- const { left_evidence_id: _leftEvidenceId, right_evidence_id: _rightEvidenceId, ...referencedInput } = input;
22
- const parsed = { ...referencedInput, left, right };
23
+ const parsed = { left, right };
23
24
  const result = await logToolExecution(options.logger, compareContract.name, () => Promise.resolve(compareManagedMembersEvidenceValidated(parsed)));
24
25
  if (!result.ok)
25
26
  return toCallToolResult(result, compareContract);
26
- const recorded = recordManagedSources(options.recordEvidence, [
27
+ const recorded = recordSessionEvidenceSources(options.recordEvidence, [
27
28
  parsed.left,
28
29
  parsed.right,
29
30
  ]);
@@ -31,9 +32,8 @@ export const registerCompareManagedMembers = (server, options) => {
31
32
  return toCallToolResult(recorded, compareContract);
32
33
  const comparison = managedMemberComparisonResultSchema.parse(result.value.normalized_result);
33
34
  const unknown = comparison.summary.unknown > 0;
34
- const output = parsed.unknown_registry_approved === true && unknown
35
+ const output = unknown
35
36
  ? options.recordEvidenceWithUnknown?.(result.value, {
36
- approved: true,
37
37
  question: "Which managed members remain unmatched or ambiguous across these versions?",
38
38
  severity: "medium",
39
39
  domain: "managed-member-comparison",
@@ -45,7 +45,7 @@ export const registerCompareManagedMembers = (server, options) => {
45
45
  recommended_probes: [
46
46
  {
47
47
  operation: "inspect_managed_members",
48
- rationale: "Repeat static member inspection with complete pages and method bodies.",
48
+ rationale: "Review the inspection Evidence coverage and limit diagnostics; this operation has no page override, so unresolved members must remain unknown.",
49
49
  },
50
50
  ],
51
51
  relationships: [],
@@ -53,8 +53,6 @@ export const registerCompareManagedMembers = (server, options) => {
53
53
  : options.recordEvidence?.(result.value);
54
54
  if (output !== undefined && !output.ok)
55
55
  return toCallToolResult(output, compareContract);
56
- return toCallToolResult({ ok: true, value: result.value }, compareContract, {
57
- evidenceResourcesAvailable: output !== undefined,
58
- });
56
+ return toCallToolResult({ ok: true, value: result.value }, compareContract);
59
57
  });
60
58
  };
@@ -1,40 +1,24 @@
1
- import { resolveSessionEvidenceIds } from "../sessionEvidence.js";
2
- export const resolveManagedEvidence = (session, evidenceIds) => resolveSessionEvidenceIds(session, evidenceIds, {
3
- operation: "inspect_managed_members",
4
- predicate: "rea.analysis/v2",
5
- });
6
- export const resolveManagedArtifactEvidence = (session, evidenceId) => resolveSessionEvidenceIds(session, [evidenceId], {
7
- operation: "inspect_managed_artifact",
8
- predicate: "rea.analysis/v2",
9
- });
10
- export const resolveManagedBoundaryEvidence = (session, evidenceId) => resolveSessionEvidenceIds(session, [evidenceId], {
11
- operation: "inspect_managed_native_boundaries",
12
- predicate: "rea.analysis/v2",
13
- });
14
- export const resolveNativeEvidence = (session, evidenceIds) => {
15
- const records = [];
16
- for (const evidenceId of evidenceIds) {
17
- const operation = session.evidenceById(evidenceId)?.operation;
18
- const expectedOperation = operation === "inspect_macho" || operation === "analyze_function"
19
- ? operation
20
- : "inspect_macho or analyze_function";
21
- const resolved = resolveSessionEvidenceIds(session, [evidenceId], {
22
- operation: expectedOperation,
23
- predicate: "rea.analysis/v2",
24
- });
25
- if (!resolved.ok)
26
- return resolved;
27
- records.push(...resolved.value);
1
+ import { parseEvidence } from "../../domain/evidence.js";
2
+ import { EvidenceIntegrityError } from "../../domain/errors.js";
3
+ import { err, ok } from "../../domain/result.js";
4
+ const parseExpectedEvidence = (rawEvidence, expectedOperations) => {
5
+ try {
6
+ const evidence = rawEvidence.map(parseEvidence);
7
+ for (const record of evidence)
8
+ if (!expectedOperations.includes(record.operation) ||
9
+ record.predicate_type !== "rea.analysis")
10
+ throw new TypeError(`Expected ${expectedOperations.join(" or ")} Evidence, received ${record.operation}`);
11
+ return ok(evidence);
28
12
  }
29
- return { ok: true, value: records };
30
- };
31
- export const recordManagedSources = (recordEvidence, sources) => {
32
- for (const source of sources) {
33
- const recorded = recordEvidence?.(source);
34
- if (recorded !== undefined && !recorded.ok)
35
- return recorded;
13
+ catch (cause) {
14
+ return err(new EvidenceIntegrityError(cause instanceof Error ? cause.message : "Invalid Evidence"));
36
15
  }
37
- return { ok: true, value: null };
16
+ };
17
+ export const resolveManagedEvidence = (evidence) => parseExpectedEvidence([evidence], ["inspect_managed_members"]);
18
+ export const resolveManagedArtifactEvidence = (evidence) => parseExpectedEvidence([evidence], ["inspect_managed_artifact"]);
19
+ export const resolveManagedBoundaryEvidence = (evidence) => parseExpectedEvidence([evidence], ["inspect_managed_native_boundaries"]);
20
+ export const resolveNativeEvidence = (evidence) => {
21
+ return parseExpectedEvidence(evidence, ["inspect_macho", "analyze_function"]);
38
22
  };
39
23
  export const sourceEvidence = (input) => [
40
24
  input.managed_artifact,
@@ -8,16 +8,13 @@ const reconstructionContract = managedWorkflowContract("import_managed_reconstru
8
8
  /** Register the managed reconstruction import workflow tool. */
9
9
  export const registerImportManagedReconstruction = (server, options) => {
10
10
  server.registerTool(reconstructionContract.name, toolRegistrationOptions(reconstructionContract), async (input) => {
11
- const resolved = resolveManagedEvidence(options.session, [
12
- input.static_members_evidence_id,
13
- ]);
11
+ const resolved = resolveManagedEvidence(input.static_members);
14
12
  if (!resolved.ok)
15
13
  return toCallToolResult(resolved, reconstructionContract);
16
14
  const staticMembers = resolved.value[0];
17
15
  if (staticMembers === undefined)
18
16
  throw new TypeError("Managed reconstruction Evidence resolution failed");
19
- const { static_members_evidence_id: _staticMembersEvidenceId, ...referencedInput } = input;
20
- const parsed = { ...referencedInput, static_members: staticMembers };
17
+ const parsed = { ...input, static_members: staticMembers };
21
18
  const result = await logToolExecution(options.logger, reconstructionContract.name, () => Promise.resolve(importManagedReconstructionEvidenceValidated(parsed)));
22
19
  if (!result.ok)
23
20
  return toCallToolResult(result, reconstructionContract);
@@ -27,8 +24,6 @@ export const registerImportManagedReconstruction = (server, options) => {
27
24
  const recorded = options.recordEvidence?.(result.value);
28
25
  if (recorded !== undefined && !recorded.ok)
29
26
  return toCallToolResult(recorded, reconstructionContract);
30
- return toCallToolResult(result, reconstructionContract, {
31
- evidenceResourcesAvailable: recorded !== undefined,
32
- });
27
+ return toCallToolResult(result, reconstructionContract);
33
28
  });
34
29
  };
@@ -8,16 +8,13 @@ const runtimeContract = managedWorkflowContract("plan_managed_runtime_correlatio
8
8
  /** Register the managed runtime correlation planning workflow tool. */
9
9
  export const registerPlanManagedRuntimeCorrelation = (server, options) => {
10
10
  server.registerTool(runtimeContract.name, toolRegistrationOptions(runtimeContract), async (input) => {
11
- const resolved = resolveManagedEvidence(options.session, [
12
- input.static_members_evidence_id,
13
- ]);
11
+ const resolved = resolveManagedEvidence(input.static_members);
14
12
  if (!resolved.ok)
15
13
  return toCallToolResult(resolved, runtimeContract);
16
14
  const staticMembers = resolved.value[0];
17
15
  if (staticMembers === undefined)
18
16
  throw new TypeError("Managed runtime Evidence resolution failed");
19
- const { static_members_evidence_id: _staticMembersEvidenceId, ...referencedInput } = input;
20
- const parsed = { ...referencedInput, static_members: staticMembers };
17
+ const parsed = { ...input, static_members: staticMembers };
21
18
  const result = await logToolExecution(options.logger, runtimeContract.name, () => Promise.resolve(planManagedRuntimeCorrelationEvidenceValidated(options.runtime, parsed)));
22
19
  if (!result.ok)
23
20
  return toCallToolResult(result, runtimeContract);
@@ -27,8 +24,6 @@ export const registerPlanManagedRuntimeCorrelation = (server, options) => {
27
24
  const recorded = options.recordEvidence?.(result.value);
28
25
  if (recorded !== undefined && !recorded.ok)
29
26
  return toCallToolResult(recorded, runtimeContract);
30
- return toCallToolResult(result, runtimeContract, {
31
- evidenceResourcesAvailable: recorded !== undefined,
32
- });
27
+ return toCallToolResult(result, runtimeContract);
33
28
  });
34
29
  };
@@ -1,32 +1,30 @@
1
+ import { recordSessionEvidenceSources } from "../sessionEvidence.js";
1
2
  import { projectManagedApplicationGraphEvidence } from "../../application/ManagedApplicationGraphService.js";
2
3
  import { logToolExecution } from "../toolLogging.js";
3
4
  import { toolRegistrationOptions } from "../toolRegistrationOptions.js";
4
5
  import { toCallToolResult } from "../toolResult.js";
5
6
  import { managedWorkflowContract } from "./contract.js";
6
- import { recordManagedSources, resolveManagedArtifactEvidence, resolveManagedBoundaryEvidence, resolveManagedEvidence, sourceEvidence, } from "./evidence.js";
7
+ import { resolveManagedArtifactEvidence, resolveManagedBoundaryEvidence, resolveManagedEvidence, sourceEvidence, } from "./evidence.js";
7
8
  const graphContract = managedWorkflowContract("project_managed_application_graph");
8
9
  /** Register the managed application graph projection workflow tool. */
9
10
  export const registerProjectManagedApplicationGraph = (server, options) => {
10
11
  server.registerTool(graphContract.name, toolRegistrationOptions(graphContract), async (input) => {
11
- const managedArtifact = input.managed_artifact_evidence_id === undefined
12
+ const managedArtifact = input.managed_artifact === undefined
12
13
  ? undefined
13
- : resolveManagedArtifactEvidence(options.session, input.managed_artifact_evidence_id);
14
+ : resolveManagedArtifactEvidence(input.managed_artifact);
14
15
  if (managedArtifact !== undefined && !managedArtifact.ok)
15
16
  return toCallToolResult(managedArtifact, graphContract);
16
- const managedMembers = input.managed_members_evidence_id === undefined
17
+ const managedMembers = input.managed_members === undefined
17
18
  ? undefined
18
- : resolveManagedEvidence(options.session, [
19
- input.managed_members_evidence_id,
20
- ]);
19
+ : resolveManagedEvidence(input.managed_members);
21
20
  if (managedMembers !== undefined && !managedMembers.ok)
22
21
  return toCallToolResult(managedMembers, graphContract);
23
- const managedBoundaries = input.managed_native_boundaries_evidence_id === undefined
22
+ const managedBoundaries = input.managed_native_boundaries === undefined
24
23
  ? undefined
25
- : resolveManagedBoundaryEvidence(options.session, input.managed_native_boundaries_evidence_id);
24
+ : resolveManagedBoundaryEvidence(input.managed_native_boundaries);
26
25
  if (managedBoundaries !== undefined && !managedBoundaries.ok)
27
26
  return toCallToolResult(managedBoundaries, graphContract);
28
27
  const parsed = {
29
- limits: input.limits,
30
28
  managed_artifact: managedArtifact?.value[0],
31
29
  managed_members: managedMembers?.value[0],
32
30
  managed_native_boundaries: managedBoundaries?.value[0],
@@ -34,14 +32,12 @@ export const registerProjectManagedApplicationGraph = (server, options) => {
34
32
  const result = await logToolExecution(options.logger, graphContract.name, () => Promise.resolve(projectManagedApplicationGraphEvidence(parsed)));
35
33
  if (!result.ok)
36
34
  return toCallToolResult(result, graphContract);
37
- const recordedSources = recordManagedSources(options.recordEvidence, sourceEvidence(parsed));
35
+ const recordedSources = recordSessionEvidenceSources(options.recordEvidence, sourceEvidence(parsed));
38
36
  if (!recordedSources.ok)
39
37
  return toCallToolResult(recordedSources, graphContract);
40
38
  const recorded = options.recordEvidence?.(result.value);
41
39
  if (recorded !== undefined && !recorded.ok)
42
40
  return toCallToolResult(recorded, graphContract);
43
- return toCallToolResult(result, graphContract, {
44
- evidenceResourcesAvailable: recorded !== undefined,
45
- });
41
+ return toCallToolResult(result, graphContract);
46
42
  });
47
43
  };
@@ -1,45 +1,41 @@
1
+ import { recordSessionEvidenceSources } from "../sessionEvidence.js";
1
2
  import { verifyManagedNativeBoundariesEvidence } from "../../application/ManagedNativeVerificationService.js";
2
3
  import { managedNativeVerificationResultSchema } from "../../domain/managedNativeVerification.js";
3
4
  import { logToolExecution } from "../toolLogging.js";
4
5
  import { toolRegistrationOptions } from "../toolRegistrationOptions.js";
5
6
  import { toCallToolResult } from "../toolResult.js";
6
7
  import { managedWorkflowContract } from "./contract.js";
7
- import { recordManagedSources, resolveManagedBoundaryEvidence, resolveNativeEvidence, } from "./evidence.js";
8
+ import { resolveManagedBoundaryEvidence, resolveNativeEvidence, } from "./evidence.js";
8
9
  const nativeVerificationContract = managedWorkflowContract("verify_managed_native_boundaries");
9
10
  /** Register the managed/native boundary verification workflow tool. */
10
11
  export const registerVerifyManagedNativeBoundaries = (server, options) => {
11
12
  server.registerTool(nativeVerificationContract.name, toolRegistrationOptions(nativeVerificationContract), async (input) => {
12
- const managedBoundaries = resolveManagedBoundaryEvidence(options.session, input.managed_boundaries_evidence_id);
13
+ const managedBoundaries = resolveManagedBoundaryEvidence(input.managed_boundaries);
13
14
  if (!managedBoundaries.ok)
14
15
  return toCallToolResult(managedBoundaries, nativeVerificationContract);
15
- const nativeObservations = resolveNativeEvidence(options.session, input.native_observation_evidence_ids);
16
+ const nativeObservations = resolveNativeEvidence(input.native_observations);
16
17
  if (!nativeObservations.ok)
17
18
  return toCallToolResult(nativeObservations, nativeVerificationContract);
18
19
  const managedBoundary = managedBoundaries.value[0];
19
20
  if (managedBoundary === undefined)
20
21
  throw new TypeError("Managed boundary Evidence resolution failed");
21
- const { managed_boundaries_evidence_id: _managedBoundariesEvidenceId, native_observation_evidence_ids: _nativeObservationEvidenceIds, ...referencedInput } = input;
22
22
  const parsed = {
23
- ...referencedInput,
23
+ ...input,
24
24
  managed_boundaries: managedBoundary,
25
25
  native_observations: nativeObservations.value,
26
26
  };
27
27
  const result = await logToolExecution(options.logger, nativeVerificationContract.name, () => Promise.resolve(verifyManagedNativeBoundariesEvidence(parsed)));
28
28
  if (!result.ok)
29
29
  return toCallToolResult(result, nativeVerificationContract);
30
- const recordedSources = recordManagedSources(options.recordEvidence, [
31
- parsed.managed_boundaries,
32
- ...parsed.native_observations,
33
- ]);
30
+ const recordedSources = recordSessionEvidenceSources(options.recordEvidence, [parsed.managed_boundaries, ...parsed.native_observations]);
34
31
  if (!recordedSources.ok)
35
32
  return toCallToolResult(recordedSources, nativeVerificationContract);
36
33
  const verification = managedNativeVerificationResultSchema.parse(result.value.normalized_result);
37
34
  const unknown = verification.summary.unresolved > 0 ||
38
35
  verification.summary.contradicted > 0 ||
39
36
  verification.summary.native_body_unresolved > 0;
40
- const output = parsed.unknown_registry_approved === true && unknown
37
+ const output = unknown
41
38
  ? options.recordEvidenceWithUnknown?.(result.value, {
42
- approved: true,
43
39
  question: "Which managed/native boundaries remain unresolved or contradicted by the supplied native Evidence?",
44
40
  severity: "medium",
45
41
  domain: "managed-native-verification",
@@ -51,7 +47,7 @@ export const registerVerifyManagedNativeBoundaries = (server, options) => {
51
47
  recommended_probes: [
52
48
  {
53
49
  operation: "inspect_managed_native_boundaries",
54
- rationale: "Repeat managed boundary inspection with complete ModuleRef, ImplMap, and native implementation pages.",
50
+ rationale: "Review the inspection Evidence coverage and limit diagnostics; this operation has no page override, so unresolved declarations must remain unknown.",
55
51
  },
56
52
  {
57
53
  operation: "analyze_function",
@@ -63,8 +59,6 @@ export const registerVerifyManagedNativeBoundaries = (server, options) => {
63
59
  : options.recordEvidence?.(result.value);
64
60
  if (output !== undefined && !output.ok)
65
61
  return toCallToolResult(output, nativeVerificationContract);
66
- return toCallToolResult(result, nativeVerificationContract, {
67
- evidenceResourcesAvailable: output !== undefined,
68
- });
62
+ return toCallToolResult(result, nativeVerificationContract);
69
63
  });
70
64
  };
@@ -1,6 +1,5 @@
1
1
  import { z } from "zod";
2
2
  import { OFFICIAL_TOOL_CONTRACTS } from "../contracts/toolContracts.js";
3
- import { AnalysisCapabilityUnavailableError, UnknownRegistryError, } from "../domain/errors.js";
4
3
  import { createEvidence } from "../domain/evidence.js";
5
4
  import { jsonObjectSchema, jsonValueSchema, } from "../domain/jsonValue.js";
6
5
  import { mcpProgressReporter } from "./mcpProgress.js";
@@ -14,7 +13,6 @@ export const registerOfficialTools = (server, analysis, options) => {
14
13
  logger: options.logger,
15
14
  activeTarget: options.activeTarget,
16
15
  recordEvidence: options.recordEvidence,
17
- recordUnknown: options.recordUnknown,
18
16
  });
19
17
  }
20
18
  };
@@ -28,9 +26,6 @@ const registerOfficialTool = (server, analysis, contract, registration) => {
28
26
  progress,
29
27
  });
30
28
  if (!result.ok) {
31
- const unknownError = recordOfficialUnknown(input, result.error, contract, registration.recordUnknown);
32
- if (unknownError !== undefined)
33
- return toCallToolResult(unknownError, contract);
34
29
  return toCallToolResult(result, contract);
35
30
  }
36
31
  const evidence = createEvidence(result.value.subject ?? registration.activeTarget?.(), result.value.provider, {
@@ -47,9 +42,7 @@ const registerOfficialTool = (server, analysis, contract, registration) => {
47
42
  const recorded = registration.recordEvidence?.(evidence);
48
43
  if (recorded !== undefined && !recorded.ok)
49
44
  return toCallToolResult(recorded, contract);
50
- return toCallToolResult({ ok: true, value: evidence }, contract, {
51
- evidenceResourcesAvailable: recorded !== undefined,
52
- });
45
+ return toCallToolResult({ ok: true, value: evidence }, contract);
53
46
  });
54
47
  };
55
48
  const runOfficialOperation = async (analysis, contract, arguments_, execution) => {
@@ -72,48 +65,13 @@ const runOfficialOperation = async (analysis, contract, arguments_, execution) =
72
65
  });
73
66
  return result;
74
67
  };
75
- const recordOfficialUnknown = (input, error, contract, recordUnknown) => {
76
- if (!(error instanceof AnalysisCapabilityUnavailableError) ||
77
- !approvedUnknownTracking(input) ||
78
- recordUnknown === undefined)
79
- return undefined;
80
- const unknown = recordUnknown({
81
- approved: true,
82
- question: "The requested analysis is unavailable for the current target.",
83
- severity: "medium",
84
- domain: "analysis-capability",
85
- supporting_evidence_ids: [],
86
- contradicting_evidence_ids: [],
87
- required_authority: "shipped-artifact",
88
- required_confidence: "observed",
89
- required_environment: null,
90
- recommended_probes: [
91
- {
92
- operation: contract.name,
93
- rationale: "Choose another analysis or target that can answer this question.",
94
- },
95
- ],
96
- relationships: [],
97
- });
98
- if (!unknown.ok &&
99
- !(unknown.error instanceof UnknownRegistryError &&
100
- unknown.error.reason === "already-exists"))
101
- return unknown;
102
- return undefined;
103
- };
104
68
  const projectOfficialArguments = (contract, input) => {
105
69
  const parsed = jsonObjectSchema.parse(input);
106
70
  if (!(contract.inputSchema instanceof z.ZodObject))
107
71
  throw new TypeError("Official tool input contract must be an object schema");
108
72
  const projected = {};
109
73
  for (const key of Object.keys(contract.inputSchema.shape)) {
110
- if (key === "unknown_registry_approved")
111
- continue;
112
74
  projected[key] = jsonValueSchema.parse(parsed[key] ?? null);
113
75
  }
114
76
  return projected;
115
77
  };
116
- const approvedUnknownTracking = (input) => typeof input === "object" &&
117
- input !== null &&
118
- "unknown_registry_approved" in input &&
119
- input.unknown_registry_approved === true;
@@ -1,35 +1,43 @@
1
1
  import { SESSION_TOOL_CONTRACTS } from "../contracts/toolContracts.js";
2
2
  import { EvidenceIntegrityError } from "../domain/errors.js";
3
- import { createEvidence } from "../domain/evidence.js";
3
+ import { createEvidence, parseEvidence, } from "../domain/evidence.js";
4
4
  import { jsonValueSchema } from "../domain/jsonValue.js";
5
5
  import { compareProcessCaptures, parseProcessCapture, } from "../domain/processCapture.js";
6
6
  import { err } from "../domain/result.js";
7
7
  import { recordDerivedEvidence } from "./recordDerivedEvidence.js";
8
+ import { recordSessionEvidenceSources } from "./sessionEvidence.js";
8
9
  import { runDerivedOperation } from "./runDerivedOperation.js";
9
- import { resolveSessionEvidenceIds } from "./sessionEvidence.js";
10
10
  import { PROCESS_PROVIDER } from "./sessionToolPolicies.js";
11
11
  import { toolRegistrationOptions } from "./toolRegistrationOptions.js";
12
12
  import { toCallToolResult } from "./toolResult.js";
13
13
  const PROCESS_CAPTURE_EVIDENCE = {
14
14
  operation: "capture_process_scenario",
15
- predicate: "rea.process-capture/v4",
15
+ predicate: "rea.process-capture",
16
16
  };
17
17
  const sourceLocations = (left, right) => [...(left ?? []), ...(right ?? [])];
18
18
  /** Register deterministic process-capture comparison and contradiction tracking. */
19
19
  export const registerProcessComparisonTool = (server, session, contract, now = Date.now) => {
20
20
  server.registerTool(contract.name, toolRegistrationOptions(contract), async (input, context) => {
21
- const leftRecord = resolveSessionEvidenceIds(session, [input.left_evidence_id], PROCESS_CAPTURE_EVIDENCE);
22
- if (!leftRecord.ok)
23
- return toCallToolResult(leftRecord, contract);
24
- const rightRecord = resolveSessionEvidenceIds(session, [input.right_evidence_id], PROCESS_CAPTURE_EVIDENCE);
25
- if (!rightRecord.ok)
26
- return toCallToolResult(rightRecord, contract);
21
+ let leftRecord;
22
+ let rightRecord;
23
+ try {
24
+ leftRecord = parseEvidence(input.left);
25
+ rightRecord = parseEvidence(input.right);
26
+ if (leftRecord.operation !== PROCESS_CAPTURE_EVIDENCE.operation ||
27
+ rightRecord.operation !== PROCESS_CAPTURE_EVIDENCE.operation ||
28
+ leftRecord.predicate_type !== PROCESS_CAPTURE_EVIDENCE.predicate ||
29
+ rightRecord.predicate_type !== PROCESS_CAPTURE_EVIDENCE.predicate)
30
+ throw new TypeError("Expected process capture Evidence");
31
+ }
32
+ catch (cause) {
33
+ return toCallToolResult(err(new EvidenceIntegrityError(cause instanceof Error ? cause.message : "Invalid Evidence")), contract);
34
+ }
27
35
  let comparison;
28
36
  let leftCapture;
29
37
  let rightCapture;
30
38
  try {
31
- leftCapture = parseProcessCapture(leftRecord.value[0]?.normalized_result);
32
- rightCapture = parseProcessCapture(rightRecord.value[0]?.normalized_result);
39
+ leftCapture = parseProcessCapture(leftRecord.normalized_result);
40
+ rightCapture = parseProcessCapture(rightRecord.normalized_result);
33
41
  const computed = await runDerivedOperation(context, contract.name, () => compareProcessCaptures(leftCapture, rightCapture, {
34
42
  ...(input.max_capture_age_ms === undefined
35
43
  ? {}
@@ -46,16 +54,14 @@ export const registerProcessComparisonTool = (server, session, contract, now = D
46
54
  catch (cause) {
47
55
  return toCallToolResult(err(new EvidenceIntegrityError(cause instanceof Error
48
56
  ? cause.message
49
- : "Invalid Process Capture v4")), contract);
57
+ : "Invalid process capture")), contract);
50
58
  }
51
59
  const evidence = createEvidence(undefined, PROCESS_PROVIDER, {
52
- predicateType: input.trace_spec === undefined
53
- ? "rea.process-comparison/v3"
54
- : "rea.process-comparison/v4",
60
+ predicateType: "rea.process-comparison",
55
61
  operation: contract.name,
56
62
  parameters: {
57
- left_evidence_id: input.left_evidence_id,
58
- right_evidence_id: input.right_evidence_id,
63
+ left_evidence_id: leftRecord.evidence_id,
64
+ right_evidence_id: rightRecord.evidence_id,
59
65
  left_normalization: leftCapture.normalization,
60
66
  right_normalization: rightCapture.normalization,
61
67
  ...(input.trace_spec === undefined
@@ -66,15 +72,20 @@ export const registerProcessComparisonTool = (server, session, contract, now = D
66
72
  confidence: "derived",
67
73
  authority: "analyst-inference",
68
74
  limitations: comparison.limitations,
69
- locations: sourceLocations(leftRecord.value[0]?.locations, rightRecord.value[0]?.locations),
70
- evidenceLinks: [input.left_evidence_id, input.right_evidence_id],
75
+ locations: sourceLocations(leftRecord.locations, rightRecord.locations),
76
+ evidenceLinks: [leftRecord.evidence_id, rightRecord.evidence_id],
71
77
  });
72
- return toCallToolResult(recordDerivedEvidence(session, evidence, comparisonUnknownInput(input, comparison)), contract);
78
+ const recordedSources = recordSessionEvidenceSources((evidence) => session.recordEvidence(evidence), [leftRecord, rightRecord]);
79
+ if (!recordedSources.ok)
80
+ return toCallToolResult(recordedSources, contract);
81
+ return toCallToolResult(recordDerivedEvidence(session, evidence, comparisonUnknownInput({
82
+ left_evidence_id: leftRecord.evidence_id,
83
+ right_evidence_id: rightRecord.evidence_id,
84
+ }, comparison)), contract);
73
85
  });
74
86
  };
75
87
  const comparisonUnknownInput = (parsed, comparison) => {
76
- if (parsed.unknown_registry_approved !== true ||
77
- comparison.status === "unchanged")
88
+ if (comparison.status === "unchanged")
78
89
  return undefined;
79
90
  const differingScopes = [
80
91
  ["terminal", comparison.terminal],
@@ -89,7 +100,6 @@ const comparisonUnknownInput = (parsed, comparison) => {
89
100
  .map(([scope]) => scope)
90
101
  .join(", ");
91
102
  return {
92
- approved: true,
93
103
  question: `Process captures disagree across: ${differingScopes}`,
94
104
  severity: "high",
95
105
  domain: "process-comparison",
@@ -39,12 +39,7 @@ const promptArgumentsSchema = (contract, completion) => {
39
39
  return z.object(shape);
40
40
  };
41
41
  const argumentSchema = (argument, completion) => {
42
- const value = z
43
- .string()
44
- .trim()
45
- .min(1)
46
- .max(4_096)
47
- .describe(argument.description);
42
+ const value = z.string().trim().min(1).describe(argument.description);
48
43
  const kind = argument.completion;
49
44
  const completed = kind === undefined
50
45
  ? value
@@ -53,15 +48,22 @@ const argumentSchema = (argument, completion) => {
53
48
  ]);
54
49
  return argument.required ? completed : completed.optional();
55
50
  };
56
- const promptResult = (contract, arguments_) => ({
57
- description: contract.description,
58
- messages: [
59
- {
60
- role: "user",
61
- content: {
62
- type: "text",
63
- text: renderGuidedPrompt(contract, promptValuesSchema.parse(arguments_)),
51
+ const promptResult = (contract, arguments_) => {
52
+ const values = promptValuesSchema.parse(arguments_);
53
+ for (const [name, argument] of Object.entries(contract.arguments))
54
+ if (argument.required &&
55
+ (values[name] === undefined || values[name]?.trim().length === 0))
56
+ throw new TypeError(`Invalid arguments: ${name} must not be empty`);
57
+ return {
58
+ description: contract.description,
59
+ messages: [
60
+ {
61
+ role: "user",
62
+ content: {
63
+ type: "text",
64
+ text: renderGuidedPrompt(contract, values),
65
+ },
64
66
  },
65
- },
66
- ],
67
- });
67
+ ],
68
+ };
69
+ };