rea-agents 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/README.md +83 -108
  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/AnalysisContextQueries.js +21 -9
  6. package/dist/application/AnalysisSnapshotCache.js +0 -1
  7. package/dist/application/AnalysisSnapshotFiles.js +7 -7
  8. package/dist/application/AndroidApplicationService.js +1 -1
  9. package/dist/application/AppleApplicationService.js +1 -1
  10. package/dist/application/ArtifactExtraction.js +35 -54
  11. package/dist/application/ArtifactExtractionDestination.js +17 -0
  12. package/dist/application/ArtifactGraphConstruction.js +2 -17
  13. package/dist/application/ArtifactInventory/classify.js +2 -6
  14. package/dist/application/ArtifactInventory/hash.js +2 -20
  15. package/dist/application/ArtifactInventory/policy.js +17 -0
  16. package/dist/application/ArtifactInventory/reader.js +1 -4
  17. package/dist/application/ArtifactInventory/scanCanonical.js +8 -15
  18. package/dist/application/ArtifactInventory/scanReader.js +76 -58
  19. package/dist/application/ArtifactInventory/types.js +1 -5
  20. package/dist/application/ArtifactInventory.js +6 -14
  21. package/dist/application/AuthorizedArtifactInventory.js +3 -13
  22. package/dist/application/BinarySession.js +54 -28
  23. package/dist/application/BinarySessionComposition.js +0 -11
  24. package/dist/application/BinarySessionOpen.js +2 -1
  25. package/dist/application/BinarySessionRecords.js +24 -86
  26. package/dist/application/BinarySessionStatus.js +16 -21
  27. package/dist/application/BinaryTargetResolver.js +216 -0
  28. package/dist/application/BrowserEvidence.js +39 -57
  29. package/dist/application/BrowserObservationService.js +3 -6
  30. package/dist/application/BrowserScenarioCaptureService.js +3 -6
  31. package/dist/application/BrowserScenarioEvidence.js +3 -3
  32. package/dist/application/CallPathTracing.js +2 -36
  33. package/dist/application/CapabilityClientRequirements.js +26 -0
  34. package/dist/application/CapabilityInventory.js +143 -77
  35. package/dist/application/ClientConfigurationDocument.js +27 -0
  36. package/dist/application/ClientRegistrationStatus.js +16 -13
  37. package/dist/application/CommandShimReplay.js +14 -1
  38. package/dist/application/DirectAnalysis.js +22 -46
  39. package/dist/application/DirectAnalysisStatus.js +5 -61
  40. package/dist/application/Doctor.js +11 -32
  41. package/dist/application/DoctorDiagnostics.js +1 -2
  42. package/dist/application/DoctorScope.js +1 -1
  43. package/dist/application/ElectronActiveEvidence.js +50 -0
  44. package/dist/application/ElectronActiveObservationPort.js +1 -0
  45. package/dist/application/ElectronActiveObservationService.js +78 -0
  46. package/dist/application/ElectronBoundaryAnalysis.js +7 -8
  47. package/dist/application/ElectronBoundaryGraphContext.js +1 -1
  48. package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
  49. package/dist/application/ElectronBoundaryGraphNative.js +1 -2
  50. package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
  51. package/dist/application/ElectronEvidence.js +4 -7
  52. package/dist/application/ElectronObservationService.js +5 -9
  53. package/dist/application/EnhancedLiteralTracing.js +42 -65
  54. package/dist/application/EnhancedTools.js +98 -64
  55. package/dist/application/EvidenceBundleCommands.js +16 -12
  56. package/dist/application/EvidenceBundleFiles.js +9 -15
  57. package/dist/application/EvidenceLedger.js +14 -42
  58. package/dist/application/FilesystemSnapshot.js +2 -3
  59. package/dist/application/InterfaceBuilderAnalysis.js +266 -0
  60. package/dist/application/InventoryProjectionEvidence.js +4 -2
  61. package/dist/application/InvestigationProviders.js +1 -1
  62. package/dist/application/JavaScriptApplicationEvidence.js +2 -5
  63. package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
  64. package/dist/application/JavaScriptApplicationService.js +6 -29
  65. package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
  66. package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
  67. package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
  68. package/dist/application/JavaScriptArtifactFiles.js +67 -107
  69. package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
  70. package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
  71. package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
  72. package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
  73. package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
  74. package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
  75. package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
  76. package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
  77. package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
  78. package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
  79. package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
  80. package/dist/application/JavaScriptJsonModules.js +2 -2
  81. package/dist/application/JavaScriptModuleRelationships.js +22 -27
  82. package/dist/application/JavaScriptReplayPermission.js +1 -1
  83. package/dist/application/JavaScriptReplayPlanning.js +9 -3
  84. package/dist/application/JavaScriptReplayService.js +29 -47
  85. package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
  86. package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
  87. package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
  88. package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
  89. package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
  90. package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
  91. package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
  92. package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
  93. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
  94. package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
  95. package/dist/application/JavaScriptSemanticTraceService.js +1 -10
  96. package/dist/application/JsonFiles.js +79 -0
  97. package/dist/application/LinuxHopper.js +11 -9
  98. package/dist/application/LoopbackReplay.js +26 -23
  99. package/dist/application/LoopbackReplayRecorder.js +29 -1
  100. package/dist/application/ManagedApplicationGraphService.js +1 -2
  101. package/dist/application/ManagedMemberComparisonService.js +11 -41
  102. package/dist/application/ManagedNativeVerificationService.js +1 -2
  103. package/dist/application/ManagedReconstructionService.js +1 -1
  104. package/dist/application/ManagedRuntimeCorrelationService.js +14 -13
  105. package/dist/application/NativeApiInspection.js +2 -7
  106. package/dist/application/NativeUiActionTrace.js +394 -0
  107. package/dist/application/NodeRuntimeCharacterizationService.js +11 -16
  108. package/dist/application/PermissionAuthority.js +15 -7
  109. package/dist/application/PermissionFailure.js +5 -0
  110. package/dist/application/ProcessCaptureAuthority.js +5 -7
  111. package/dist/application/ProcessCaptureJournal.js +3 -2
  112. package/dist/application/ProcessCaptureLifecycle.js +10 -12
  113. package/dist/application/ProcessCheckpoints.js +29 -11
  114. package/dist/application/ProcessCli.js +8 -17
  115. package/dist/application/ProcessEvidence.js +5 -7
  116. package/dist/application/ProcessHarness.js +60 -20
  117. package/dist/application/ProcessNormalization.js +2 -1
  118. package/dist/application/ProcessReactiveCoordinator.js +2 -4
  119. package/dist/application/ProcessReactiveEffects.js +9 -3
  120. package/dist/application/ProcessReactiveHarness.js +13 -7
  121. package/dist/application/ProcessSampling.js +2 -4
  122. package/dist/application/ProcessTimer.js +39 -0
  123. package/dist/application/ProjectPermissionStore.js +39 -95
  124. package/dist/application/RealHopperAssertions.js +20 -66
  125. package/dist/application/ReconstructionCoverageService.js +12 -58
  126. package/dist/application/ReconstructionObligationAuthority.js +2 -2
  127. package/dist/application/ReconstructionObligationCandidates.js +4 -4
  128. package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
  129. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
  130. package/dist/application/ReconstructionObligationLedgerService.js +19 -38
  131. package/dist/application/ReferenceSourceImport.js +21 -47
  132. package/dist/application/ReferenceSourceImportEntries.js +2 -4
  133. package/dist/application/ReferenceSourceImportPolicy.js +5 -32
  134. package/dist/application/ReferenceSourceImportTypes.js +0 -16
  135. package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
  136. package/dist/application/SessionProviderRouter.js +2 -2
  137. package/dist/application/Setup.js +1 -3
  138. package/dist/application/SetupClientConfiguration.js +22 -88
  139. package/dist/application/SetupRegistrationEnvironment.js +0 -7
  140. package/dist/application/StoreFileLock.js +119 -0
  141. package/dist/application/TerminalRenderer.js +2 -3
  142. package/dist/application/Uninstall.js +9 -14
  143. package/dist/application/UnknownEvidence.js +1 -1
  144. package/dist/application/WindowsCapabilities.js +5 -4
  145. package/dist/artifacts/ArtifactPaths.js +2 -5
  146. package/dist/artifacts/ArtifactProvider.js +43 -67
  147. package/dist/artifacts/DirectoryArtifactReader.js +13 -8
  148. package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
  149. package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
  150. package/dist/artifacts/NibArchive.js +269 -0
  151. package/dist/artifacts/SafeOutputTree.js +21 -31
  152. package/dist/browser/BrowserProcessStartup.js +1 -2
  153. package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
  154. package/dist/browser/CdpBrowserProvider.js +3 -13
  155. package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
  156. package/dist/browser/CdpCaptureDocuments.js +28 -76
  157. package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
  158. package/dist/browser/CdpCaptureEventHandlers.js +22 -87
  159. package/dist/browser/CdpCaptureEvents.js +2 -8
  160. package/dist/browser/CdpCaptureStorage.js +9 -20
  161. package/dist/browser/CdpCaptureStorageFingerprints.js +85 -95
  162. package/dist/browser/CdpCaptureValues.js +21 -21
  163. package/dist/browser/CdpConnection.js +10 -25
  164. package/dist/browser/CdpElectronInspection.js +29 -51
  165. package/dist/browser/CdpElectronProvider.js +10 -35
  166. package/dist/browser/CdpElectronScriptEvents.js +8 -16
  167. package/dist/browser/CdpElectronScripts.js +6 -35
  168. package/dist/browser/CdpElectronWorkers.js +6 -10
  169. package/dist/browser/CdpEndpoint.js +25 -41
  170. package/dist/browser/CdpObservationSession.js +14 -26
  171. package/dist/browser/CdpPageCapture.js +34 -48
  172. package/dist/browser/CdpPageCaptureScripts.js +1 -19
  173. package/dist/browser/CdpPageCaptureWorkers.js +6 -10
  174. package/dist/browser/CdpSafeMetadata.js +19 -22
  175. package/dist/browser/CdpScreenshot.js +3 -5
  176. package/dist/browser/CdpTargetSession.js +1 -2
  177. package/dist/browser/CdpWebMcpDiscovery.js +13 -22
  178. package/dist/browser/ElectronFileScope.js +8 -19
  179. package/dist/browser/JavaScriptRuntimeScope.js +10 -10
  180. package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
  181. package/dist/browser/PlaywrightElectronActiveActions.js +309 -0
  182. package/dist/browser/PlaywrightElectronActiveProvider.js +274 -0
  183. package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
  184. package/dist/browser/PlaywrightScenarioActions.js +3 -7
  185. package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
  186. package/dist/browser/PlaywrightScenarioBrowser.js +7 -9
  187. package/dist/browser/PlaywrightScenarioEvents.js +45 -94
  188. package/dist/browser/PlaywrightScenarioSession.js +18 -34
  189. package/dist/browser/PngVisualDiff.js +22 -14
  190. package/dist/browser/SensitiveTextCapture.js +1 -18
  191. package/dist/browser/V8InspectorCaptureProjection.js +7 -7
  192. package/dist/browser/V8InspectorEndpoint.js +12 -14
  193. package/dist/browser/V8InspectorProvider.js +20 -61
  194. package/dist/browser/WebSourceMapFetcher.js +56 -176
  195. package/dist/catalogIdentity.js +12 -60
  196. package/dist/cli/artifactCommands.js +49 -77
  197. package/dist/cli/coreAnalysisCommands.js +83 -133
  198. package/dist/cli/javascriptApplicationAnalysis.js +1 -9
  199. package/dist/cli/managedCommands.js +6 -271
  200. package/dist/cli/setupCommands.js +3 -12
  201. package/dist/cli/utilityCommands.js +7 -41
  202. package/dist/cli.js +0 -2
  203. package/dist/cliApplicationCommands.js +44 -114
  204. package/dist/cliBrowserAdvancedCommands.js +12 -102
  205. package/dist/cliBrowserCommands.js +19 -124
  206. package/dist/cliBrowserContext.js +30 -0
  207. package/dist/cliCommandNames.js +5 -5
  208. package/dist/cliElectronCommands.js +49 -71
  209. package/dist/cliEvidenceCommands.js +8 -77
  210. package/dist/cliJavaScriptRuntimeCommands.js +18 -92
  211. package/dist/cliJsonInput.js +4 -14
  212. package/dist/cliObservationOptions.js +11 -92
  213. package/dist/cliPolicyCommands.js +2 -16
  214. package/dist/cliProcessCommands.js +3 -3
  215. package/dist/cliSetup.js +0 -13
  216. package/dist/config/browserScenario.js +77 -0
  217. package/dist/config/electronAutomation.js +35 -0
  218. package/dist/config/environment.js +6 -9
  219. package/dist/config/javascriptReplay.js +41 -0
  220. package/dist/config/managedRuntime.js +25 -0
  221. package/dist/config/parseConfig.js +56 -232
  222. package/dist/config/parsers.js +16 -28
  223. package/dist/config/passiveObservation.js +87 -0
  224. package/dist/config/permissions.js +0 -7
  225. package/dist/config/processCapture.js +47 -0
  226. package/dist/contracts/analysisSearchContract.js +2 -5
  227. package/dist/contracts/applicationToolContracts.js +58 -114
  228. package/dist/contracts/applicationWorkflowInputContracts.js +29 -114
  229. package/dist/contracts/artifactComparisonExample.js +58 -60
  230. package/dist/contracts/artifactToolContracts.js +37 -91
  231. package/dist/contracts/browserScenarioToolContracts.js +6 -51
  232. package/dist/contracts/browserToolContracts.js +10 -75
  233. package/dist/contracts/electronToolContracts.js +27 -98
  234. package/dist/contracts/enhancedInputs.js +31 -78
  235. package/dist/contracts/errorSchemas.js +0 -1
  236. package/dist/contracts/functionComparisonExample.js +10 -24
  237. package/dist/contracts/functionInstructionContract.js +1 -3
  238. package/dist/contracts/functionWorkflowToolContracts.js +4 -5
  239. package/dist/contracts/hopperMemoryContracts.js +3 -3
  240. package/dist/contracts/investigationExamples.js +14 -11
  241. package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
  242. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
  243. package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
  244. package/dist/contracts/managedToolContracts.js +10 -104
  245. package/dist/contracts/managedWorkflowExamples.js +77 -125
  246. package/dist/contracts/managedWorkflowToolContracts.js +51 -74
  247. package/dist/contracts/nativeToolContracts.js +9 -14
  248. package/dist/contracts/processCaptureExample.js +2 -69
  249. package/dist/contracts/promptContracts.js +49 -67
  250. package/dist/contracts/providerSelection.js +0 -1
  251. package/dist/contracts/reconstructionReadinessExample.js +1 -6
  252. package/dist/contracts/sessionStatusContract.js +1 -17
  253. package/dist/contracts/sessionToolSchemas.js +52 -0
  254. package/dist/contracts/toolContractExamples.js +11 -10
  255. package/dist/contracts/toolContractHelpers.js +19 -0
  256. package/dist/contracts/toolContracts.js +60 -143
  257. package/dist/contracts/toolEffects.js +16 -9
  258. package/dist/contracts/toolOutputSchemaGroups.js +47 -86
  259. package/dist/contracts/toolOutputSchemaPrimitives.js +72 -62
  260. package/dist/contracts/toolSchemaMetadata.js +117 -0
  261. package/dist/contracts/unknownContractExamples.js +0 -2
  262. package/dist/doctorRuntime.js +1 -1
  263. package/dist/domain/analysisErrorPresentation.js +46 -54
  264. package/dist/domain/analysisErrorProjection.js +28 -37
  265. package/dist/domain/analysisProfile.js +3 -31
  266. package/dist/domain/analysisSnapshot.js +3 -12
  267. package/dist/domain/androidApplication.js +15 -52
  268. package/dist/domain/appleApplication.js +24 -65
  269. package/dist/domain/artifactComparison.js +11 -29
  270. package/dist/domain/artifactGraph.js +14 -44
  271. package/dist/domain/artifactInspection.js +38 -69
  272. package/dist/domain/artifactInventoryEvidence.js +27 -21
  273. package/dist/domain/binaryTarget.js +2 -219
  274. package/dist/domain/binaryTargetTypes.js +1 -0
  275. package/dist/domain/browserCaptureComparison.js +35 -60
  276. package/dist/domain/browserObservation.js +45 -197
  277. package/dist/domain/browserObservationSchemas.js +5 -23
  278. package/dist/domain/browserScenario.js +11 -14
  279. package/dist/domain/browserScenarioCapture.js +11 -12
  280. package/dist/domain/browserScenarioCaptureValues.js +146 -84
  281. package/dist/domain/browserScenarioDiff.js +2 -59
  282. package/dist/domain/browserScenarioDiffEvidence.js +51 -0
  283. package/dist/domain/browserScenarioDiffValues.js +21 -38
  284. package/dist/domain/browserScenarioValues.js +80 -109
  285. package/dist/domain/browserSession.js +4 -7
  286. package/dist/domain/bundleComparison.js +6 -32
  287. package/dist/domain/bytecodeProvider.js +53 -54
  288. package/dist/domain/callPath.js +50 -169
  289. package/dist/domain/callPathSchemas.js +79 -0
  290. package/dist/domain/changedBehavior.js +34 -60
  291. package/dist/domain/completionLedgerGeneration.js +8 -14
  292. package/dist/domain/conformancePackage.js +126 -97
  293. package/dist/domain/conformanceReplay.js +39 -11
  294. package/dist/domain/conformanceTrustGate.js +174 -30
  295. package/dist/domain/customProtocolCapture.js +4 -4
  296. package/dist/domain/electronActiveObservation.js +244 -0
  297. package/dist/domain/electronObservation.js +21 -83
  298. package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
  299. package/dist/domain/electronStaticAnalysisIpc.js +38 -14
  300. package/dist/domain/electronStaticAnalysisNative.js +1 -8
  301. package/dist/domain/electronStaticAnalysisValues.js +14 -18
  302. package/dist/domain/errors.js +33 -54
  303. package/dist/domain/eventProcessTree.js +101 -90
  304. package/dist/domain/evidence.js +2 -10
  305. package/dist/domain/evidenceBundle.js +3 -5
  306. package/dist/domain/evidenceCompletionLedger.js +6 -8
  307. package/dist/domain/functionComparison.js +4 -14
  308. package/dist/domain/functionComparisonNormalization.js +8 -8
  309. package/dist/domain/functionComparisonResults.js +25 -15
  310. package/dist/domain/functionComparisonSchemas.js +49 -33
  311. package/dist/domain/functionDossierEvidence.js +31 -151
  312. package/dist/domain/hopperStartupFailure.js +1 -1
  313. package/dist/domain/hopperValues.js +17 -141
  314. package/dist/domain/inputIssueProjection.js +4 -1
  315. package/dist/domain/interfaceBuilderGraph.js +654 -0
  316. package/dist/domain/javascriptApplicationAnalysis.js +8 -112
  317. package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
  318. package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
  319. package/dist/domain/javascriptApplicationGraph.js +3 -13
  320. package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
  321. package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
  322. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
  323. package/dist/domain/javascriptApplicationVersionItems.js +120 -53
  324. package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
  325. package/dist/domain/javascriptAstFingerprint.js +25 -58
  326. package/dist/domain/javascriptAstValues.js +9 -0
  327. package/dist/domain/javascriptExportInstrumentation.js +2 -4
  328. package/dist/domain/javascriptExportShapeComparison.js +6 -7
  329. package/dist/domain/javascriptExportShapeComparisonSchemas.js +70 -77
  330. package/dist/domain/javascriptExportShapeSelection.js +17 -19
  331. package/dist/domain/javascriptFeatureSeed.js +20 -12
  332. package/dist/domain/javascriptFeatureTrace.js +13 -67
  333. package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
  334. package/dist/domain/javascriptFeatureTraversal.js +1 -44
  335. package/dist/domain/javascriptNativeHandoff.js +1 -1
  336. package/dist/domain/javascriptReplay.js +100 -101
  337. package/dist/domain/javascriptRuntimeLoadState.js +3 -8
  338. package/dist/domain/javascriptRuntimeObservation.js +43 -103
  339. package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
  340. package/dist/domain/javascriptRuntimeReconciliationActive.js +80 -0
  341. package/dist/domain/javascriptRuntimeReconciliationGraph.js +21 -33
  342. package/dist/domain/javascriptRuntimeReconciliationMatching.js +75 -61
  343. package/dist/domain/javascriptRuntimeReconciliationParsing.js +21 -46
  344. package/dist/domain/javascriptRuntimeReconciliationResult.js +25 -19
  345. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
  346. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +34 -49
  347. package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
  348. package/dist/domain/javascriptSemanticAnalysis.js +12 -45
  349. package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
  350. package/dist/domain/javascriptSemanticCallResolution.js +6 -16
  351. package/dist/domain/javascriptSemanticCalls.js +5 -32
  352. package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
  353. package/dist/domain/javascriptSemanticCoverage.js +11 -0
  354. package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
  355. package/dist/domain/javascriptSemanticDataEffects.js +1 -11
  356. package/dist/domain/javascriptSemanticFingerprints.js +3 -5
  357. package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
  358. package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
  359. package/dist/domain/javascriptSemanticIr.js +1 -29
  360. package/dist/domain/javascriptSemanticObjects.js +1 -5
  361. package/dist/domain/javascriptSemanticPrimitives.js +2 -9
  362. package/dist/domain/javascriptSemanticProjection.js +0 -18
  363. package/dist/domain/javascriptSemanticPromises.js +9 -16
  364. package/dist/domain/javascriptSemanticProvenance.js +16 -19
  365. package/dist/domain/javascriptSemanticQuery.js +17 -139
  366. package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
  367. package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
  368. package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
  369. package/dist/domain/javascriptSemanticResources.js +1 -6
  370. package/dist/domain/javascriptSemanticReturns.js +10 -27
  371. package/dist/domain/javascriptSemanticValueTypes.js +1 -0
  372. package/dist/domain/javascriptSemanticValues.js +44 -62
  373. package/dist/domain/javascriptStaticAnalysis.js +21 -43
  374. package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
  375. package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
  376. package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
  377. package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
  378. package/dist/domain/javascriptStaticAnalysisState.js +1 -5
  379. package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
  380. package/dist/domain/jsonShape.js +7 -33
  381. package/dist/domain/localPath.js +7 -0
  382. package/dist/domain/managedApplicationGraph.js +9 -41
  383. package/dist/domain/managedApplicationGraphCoverage.js +24 -156
  384. package/dist/domain/managedApplicationGraphNodes.js +10 -13
  385. package/dist/domain/managedArtifact.js +14 -27
  386. package/dist/domain/managedMemberComparison.js +90 -92
  387. package/dist/domain/managedMemberComparisonCoverage.js +11 -33
  388. package/dist/domain/managedMemberComparisonItems.js +221 -0
  389. package/dist/domain/managedMemberComparisonMatch.js +8 -208
  390. package/dist/domain/managedNativeVerification.js +3 -6
  391. package/dist/domain/managedNativeVerificationMatch.js +55 -59
  392. package/dist/domain/managedNativeVerificationSchemas.js +83 -47
  393. package/dist/domain/managedReconstruction.js +19 -23
  394. package/dist/domain/managedRuntimeCorrelation.js +6 -9
  395. package/dist/domain/nativeApiBoundary.js +17 -14
  396. package/dist/domain/nativeInspection.js +0 -2
  397. package/dist/domain/nativeInvestigationGraph.js +351 -0
  398. package/dist/domain/nativeValueFlow.js +61 -0
  399. package/dist/domain/nodeRuntimeCharacterization.js +15 -18
  400. package/dist/domain/objcSwiftMetadata.js +254 -0
  401. package/dist/domain/peInspection.js +1 -1
  402. package/dist/domain/permissionPolicy.js +13 -0
  403. package/dist/domain/processCapture.js +76 -113
  404. package/dist/domain/processCaptureExample.js +68 -0
  405. package/dist/domain/processCaptureParsing.js +21 -0
  406. package/dist/domain/processCaptureReactiveSchema.js +68 -0
  407. package/dist/domain/processCaptureReactiveValidation.js +8 -3
  408. package/dist/domain/processCaptureValidation.js +8 -10
  409. package/dist/domain/processComparison.js +12 -16
  410. package/dist/domain/processObservation.js +5 -6
  411. package/dist/domain/processReactiveMatching.js +32 -46
  412. package/dist/domain/processReactiveRuntime.js +4 -8
  413. package/dist/domain/processReactiveScenario.js +28 -94
  414. package/dist/domain/processReactiveScenarioPreflight.js +5 -30
  415. package/dist/domain/processReactiveTransition.js +42 -21
  416. package/dist/domain/processScenario.js +62 -93
  417. package/dist/domain/processTraceComparison.js +0 -7
  418. package/dist/domain/processTraceEvaluation.js +14 -4
  419. package/dist/domain/processTraceSpecification.js +11 -17
  420. package/dist/domain/protocolCapture.js +11 -9
  421. package/dist/domain/reconstructionCoverage.js +62 -129
  422. package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
  423. package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
  424. package/dist/domain/reconstructionReadiness.js +1 -2
  425. package/dist/domain/reconstructionReadinessSchemas.js +66 -40
  426. package/dist/domain/reconstructionUnknowns.js +3 -3
  427. package/dist/domain/reconstructionVerification.js +13 -47
  428. package/dist/domain/reconstructionVerificationSchemas.js +50 -38
  429. package/dist/domain/referenceSourceGraph.js +53 -61
  430. package/dist/domain/referenceSourceImportParsing.js +3 -7
  431. package/dist/domain/replayMachine.js +19 -31
  432. package/dist/domain/replayMachineRun.js +15 -63
  433. package/dist/domain/replayMachineRuntime.js +46 -44
  434. package/dist/domain/replayMachineValues.js +84 -0
  435. package/dist/domain/residualUnknown.js +25 -30
  436. package/dist/domain/runtimeCharacterization.js +15 -16
  437. package/dist/domain/runtimeIdentification.js +48 -47
  438. package/dist/domain/sourceToBundleComparison.js +11 -87
  439. package/dist/domain/sourceToBundleComparisonSchemas.js +25 -50
  440. package/dist/domain/sourceToBundleSignals.js +11 -16
  441. package/dist/domain/staticRuntimeCorrelation.js +44 -54
  442. package/dist/domain/symbolAnalysis.js +10 -19
  443. package/dist/domain/unicodeCodePointOrder.js +12 -0
  444. package/dist/domain/webBundleAnalysis.js +70 -99
  445. package/dist/domain/webBundleAnalyzer.js +2 -4
  446. package/dist/domain/webBundleAnalyzerAst.js +0 -13
  447. package/dist/domain/webBundleAnalyzerInspection.js +26 -52
  448. package/dist/domain/webBundleAnalyzerResult.js +7 -24
  449. package/dist/domain/webCaptureDiff.js +48 -85
  450. package/dist/domain/webCaptureDiffSchemas.js +86 -0
  451. package/dist/domain/webContentArtifact.js +1 -10
  452. package/dist/domain/webMcpDiscovery.js +3 -14
  453. package/dist/domain/webScreenshot.js +58 -34
  454. package/dist/domain/zipPackageFormat.js +7 -0
  455. package/dist/dotnet/ManagedArtifactInspector.js +17 -50
  456. package/dist/dotnet/ManagedMemberInspector.js +27 -58
  457. package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
  458. package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
  459. package/dist/dotnet/ManagedMemberRows.js +16 -16
  460. package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
  461. package/dist/dotnet/ManagedMetadataInventory.js +21 -30
  462. package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
  463. package/dist/dotnet/ManagedMetadataLayout.js +3 -5
  464. package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
  465. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
  466. package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -42
  467. package/dist/dotnet/ManagedPeReader.js +2 -2
  468. package/dist/dotnet/ManagedStaticProvider.js +13 -71
  469. package/dist/generatedMcpToolCatalog.js +1 -1
  470. package/dist/generatedPackageMetadata.js +1 -1
  471. package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
  472. package/dist/ghidra/GhidraClient.js +5 -13
  473. package/dist/ghidra/GhidraClientStartup.js +1 -1
  474. package/dist/ghidra/GhidraClientWire.js +9 -5
  475. package/dist/ghidra/GhidraDefaults.js +0 -18
  476. package/dist/ghidra/GhidraDiagnostics.js +0 -2
  477. package/dist/ghidra/GhidraDoctor.js +16 -12
  478. package/dist/ghidra/GhidraFunctionValues.js +67 -108
  479. package/dist/ghidra/GhidraInstallation.js +98 -42
  480. package/dist/ghidra/GhidraInventoryValues.js +18 -77
  481. package/dist/ghidra/GhidraLauncher.js +0 -8
  482. package/dist/ghidra/GhidraProvider.js +32 -31
  483. package/dist/ghidra/GhidraProviderCapabilities.js +11 -48
  484. package/dist/ghidra/GhidraRequestQueue.js +6 -30
  485. package/dist/ghidra/GhidraResponseBuffer.js +1 -7
  486. package/dist/ghidra/GhidraSessionValues.js +0 -2
  487. package/dist/ghidra/GhidraSocketConnection.js +1 -1
  488. package/dist/ghidra/GhidraTransport.js +4 -7
  489. package/dist/ghidra/protocol.js +19 -42
  490. package/dist/hopper/BridgeLauncher.js +115 -37
  491. package/dist/hopper/HopperAnalysisProfile.js +3 -5
  492. package/dist/hopper/HopperCleanup.js +11 -9
  493. package/dist/hopper/HopperClient.js +5 -8
  494. package/dist/hopper/HopperProcessDiagnostic.js +2 -2
  495. package/dist/hopper/HopperProvider.js +0 -30
  496. package/dist/hopper/HopperRequestQueue.js +21 -40
  497. package/dist/hopper/HopperResponseStream.js +1 -9
  498. package/dist/hopper/HopperSessionValues.js +3 -2
  499. package/dist/hopper/HopperTargetLease.js +119 -0
  500. package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
  501. package/dist/hopper/LinuxPrivateDisplayProbe.js +21 -26
  502. package/dist/hopper/protocol.js +6 -4
  503. package/dist/main/reload.js +1 -9
  504. package/dist/main/shutdown.js +1 -1
  505. package/dist/main/state.js +0 -23
  506. package/dist/main/transport.js +27 -39
  507. package/dist/main.js +17 -15
  508. package/dist/mcpDoctor.js +27 -69
  509. package/dist/native/CommandRunner.js +18 -25
  510. package/dist/native/NativeMacOSProvider.js +13 -38
  511. package/dist/native/NativeMachoInspection.js +1 -1
  512. package/dist/process/BoundedFileBytes.js +17 -0
  513. package/dist/process/ExecFileOutput.js +11 -0
  514. package/dist/process/PendingOperations.js +8 -6
  515. package/dist/process/PrivateRuntimeRoot.js +17 -0
  516. package/dist/process/ProcessOwnership.js +67 -130
  517. package/dist/process/ProcessOwnershipIdentity.js +13 -0
  518. package/dist/process/ProcessOwnershipObservation.js +87 -0
  519. package/dist/process/ProcessOwnershipProcessTree.js +22 -0
  520. package/dist/process/ProviderDeadline.js +8 -12
  521. package/dist/process/ProviderProcess.js +7 -28
  522. package/dist/process/WindowsAuthority.js +32 -0
  523. package/dist/reference/ReferenceSourceReader.js +8 -24
  524. package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
  525. package/dist/reference/ReferenceSourceReaderFile.js +13 -31
  526. package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
  527. package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
  528. package/dist/replay/JavaScriptReplayWorker.js +95 -13
  529. package/dist/replay/JavaScriptReplayWorkerTypes.js +1 -0
  530. package/dist/replay/LinuxJavaScriptReplayRunner.js +42 -43
  531. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
  532. package/dist/replay/LinuxRuntimeClosure.js +1 -3
  533. package/dist/replay/ReplayOutcome.js +27 -18
  534. package/dist/replay/ReplayProcessLifecycle.js +32 -7
  535. package/dist/replay/ReplaySeccompFile.js +29 -0
  536. package/dist/replay/ReplayWorkerProtocol.js +33 -30
  537. package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
  538. package/dist/server/ProcessCaptureElicitation.js +4 -8
  539. package/dist/server/createServer.js +145 -119
  540. package/dist/server/mcpClientMetadata.js +32 -0
  541. package/dist/server/promptCompletion.js +37 -61
  542. package/dist/server/recordDerivedEvidence.js +1 -1
  543. package/dist/server/registerApplicationTools/characterization.js +10 -21
  544. package/dist/server/registerApplicationTools/compareExportShapes.js +6 -16
  545. package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -15
  546. package/dist/server/registerApplicationTools/compareVersions.js +6 -16
  547. package/dist/server/registerApplicationTools/controlledReplay.js +8 -15
  548. package/dist/server/registerApplicationTools/coverage.js +7 -78
  549. package/dist/server/registerApplicationTools/helpers.js +1 -13
  550. package/dist/server/registerApplicationTools/obligationLedger.js +4 -8
  551. package/dist/server/registerApplicationTools/traceFeature.js +6 -15
  552. package/dist/server/registerApplicationTools/traceSemantics.js +5 -13
  553. package/dist/server/registerApplicationTools.js +0 -2
  554. package/dist/server/registerArtifactComparisonTool.js +27 -35
  555. package/dist/server/registerBrowserScenarioTool.js +3 -8
  556. package/dist/server/registerBrowserTools.js +36 -81
  557. package/dist/server/registerBundleComparisonTool.js +10 -16
  558. package/dist/server/registerCloseLifecycleTool.js +5 -27
  559. package/dist/server/registerElectronTools.js +29 -65
  560. package/dist/server/registerEnhancedTools.js +118 -127
  561. package/dist/server/registerEvidenceTools.js +19 -30
  562. package/dist/server/registerFunctionComparisonTool.js +35 -34
  563. package/dist/server/registerInvestigationTools/helpers.js +3 -32
  564. package/dist/server/registerInvestigationTools.js +36 -148
  565. package/dist/server/registerJavaScriptRuntimeObservationTools.js +15 -27
  566. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +16 -23
  567. package/dist/server/registerManagedWorkflowTools/contract.js +2 -3
  568. package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
  569. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +4 -14
  570. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +4 -14
  571. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +11 -20
  572. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +10 -21
  573. package/dist/server/registerOfficialTools.js +8 -51
  574. package/dist/server/registerProcessComparisonTool.js +43 -38
  575. package/dist/server/registerPrompts.js +19 -17
  576. package/dist/server/registerReplayMachineTool.js +4 -10
  577. package/dist/server/registerSessionRecordTools.js +36 -153
  578. package/dist/server/registerSessionStatusTool.js +18 -96
  579. package/dist/server/registerSessionTools.js +34 -91
  580. package/dist/server/sessionAvailabilityPolicy.js +2 -3
  581. package/dist/server/sessionEvidence.js +9 -15
  582. package/dist/server/sessionToolPolicies.js +1 -13
  583. package/dist/server/toolRegistrationOptions.js +4 -192
  584. package/dist/server/toolResult.js +15 -67
  585. package/dist/serverIdentity.js +0 -20
  586. package/install.sh +1 -1
  587. package/package.json +27 -15
  588. package/scripts/electron-active-hook-boundaries.cjs +394 -0
  589. package/scripts/electron-active-hook.cjs +469 -0
  590. package/scripts/hopper-demo-x11.py +13 -32
  591. package/scripts/rea.mjs +1 -11
  592. package/skills/reverse-engineer-anything/SKILL.md +46 -11
  593. package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
  594. package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
  595. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
  596. package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -180
  597. package/dist/application/BoundedJsonFiles.js +0 -86
  598. package/dist/application/CrossVersionInventory.js +0 -128
  599. package/dist/application/CrossVersionInvestigation.js +0 -301
  600. package/dist/application/CrossVersionInvestigationCollections.js +0 -23
  601. package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
  602. package/dist/application/CrossVersionInvestigationReplay.js +0 -170
  603. package/dist/application/DeferredFileAuthorization.js +0 -61
  604. package/dist/application/DoctorProjection.js +0 -43
  605. package/dist/application/EnhancedToolPagination.js +0 -22
  606. package/dist/application/EvidenceReferenceResolver.js +0 -26
  607. package/dist/application/InvestigationWorkspaceStore.js +0 -204
  608. package/dist/application/ProcessPairedExperiment.js +0 -72
  609. package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
  610. package/dist/application/ReconstructionReadinessService.js +0 -48
  611. package/dist/cliInvestigationCommands.js +0 -173
  612. package/dist/domain/boundedCartesianProjection.js +0 -15
  613. package/dist/domain/investigationWorkspace.js +0 -346
  614. package/dist/domain/jsonLimits.js +0 -26
  615. package/dist/domain/knownPageCoverage.js +0 -21
  616. package/dist/domain/processPairedExperiment.js +0 -128
  617. package/dist/server/DynamicToolAvailability.js +0 -70
  618. package/dist/server/LazyToolCatalog.js +0 -134
  619. package/dist/server/hydrateServerTools.js +0 -191
  620. package/dist/server/javascriptApplicationResult.js +0 -106
  621. package/dist/server/permissionFailure.js +0 -12
  622. package/dist/server/registerApplicationTools/readiness.js +0 -55
  623. package/dist/server/registerEvidenceResources.js +0 -315
  624. package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
  625. package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
  626. package/dist/server/registerReconstructionReadinessResource.js +0 -32
  627. package/dist/server/toolInputValidation.js +0 -77
  628. package/scripts/package-runner-bootstrap.mjs +0 -72
@@ -1,58 +1,37 @@
1
- import { runCrossVersionInvestigationValidated } from "../application/CrossVersionInvestigation.js";
2
- import { toolRegistrationOptions } from "./toolRegistrationOptions.js";
3
- import { safeParseToolInput } from "./toolInputValidation.js";
4
- import { buildCallPath, callPathInputSchema } from "../domain/callPath.js";
5
- import { correlateStaticAndRuntime, staticRuntimeCorrelationInputSchema, } from "../domain/staticRuntimeCorrelation.js";
6
- import { reconstructionVerificationInputSchema, verifyReconstruction, } from "../domain/reconstructionVerification.js";
7
- import { changedBehaviorResultSchema, changedBehaviorInputSchema, findChangedBehavior, } from "../domain/changedBehavior.js";
1
+ import { SESSION_TOOL_CONTRACTS } from "../contracts/toolContracts.js";
2
+ import { buildCallPath } from "../domain/callPath.js";
3
+ import { findChangedBehavior } from "../domain/changedBehavior.js";
8
4
  import { createEvidence } from "../domain/evidence.js";
9
- import {} from "../domain/errors.js";
10
5
  import { jsonValueSchema } from "../domain/jsonValue.js";
6
+ import { verifyReconstruction } from "../domain/reconstructionVerification.js";
7
+ import { correlateStaticAndRuntime } from "../domain/staticRuntimeCorrelation.js";
8
+ import { comparisonClosure, evidenceClosure, functionEvidenceIds, isIncomplete, recordWorkflowEvidence, } from "./registerInvestigationTools/helpers.js";
9
+ import { runDerivedOperation } from "./runDerivedOperation.js";
11
10
  import { CALL_PATH_PROVIDER, CHANGED_BEHAVIOR_PROVIDER, RECONSTRUCTION_PROVIDER, STATIC_RUNTIME_PROVIDER, } from "./sessionToolPolicies.js";
11
+ import { toolRegistrationOptions } from "./toolRegistrationOptions.js";
12
12
  import { toCallToolResult } from "./toolResult.js";
13
- import { mcpProgressReporter } from "./mcpProgress.js";
14
- import { runDerivedOperation, } from "./runDerivedOperation.js";
15
- import { authorizeFileReadWithDeferredWrite, authorizeRootPermission, } from "../application/DeferredFileAuthorization.js";
16
- import { comparisonClosure, evidenceClosure, functionEvidenceIds, investigationContext, isIncomplete, recordWorkflowEvidence, verifyCoverageReadiness, } from "./registerInvestigationTools/helpers.js";
17
13
  /** Register Evidence-composed differential investigation workflows. */
18
- export const registerInvestigationTools = (server, session, contracts, policies) => {
19
- registerChangedBehavior(server, session, contracts[0], policies);
14
+ export const registerInvestigationTools = (server, session, contracts) => {
15
+ registerChangedBehavior(server, session, contracts[0]);
20
16
  registerCallPath(server, session, contracts[1]);
21
17
  registerStaticRuntime(server, session, contracts[2]);
22
18
  registerReconstruction(server, session, contracts[3]);
23
19
  };
24
- const registerChangedBehavior = (server, session, contract, policies) => {
25
- server.registerTool(contract.name, contractOptions(contract), async (input, context) => {
26
- const parsedInput = safeParseToolInput(changedBehaviorInputSchema, input, contract.name);
27
- if (!parsedInput.ok)
28
- return toCallToolResult(parsedInput, contract);
29
- const parsed = parsedInput.value;
30
- const investigationRun = parsed.investigation_run;
31
- if (investigationRun !== undefined)
32
- return runAutomaticInvestigation({
33
- server,
34
- session,
35
- contract,
36
- policies,
37
- investigationRun,
38
- unknownRegistryApproved: parsed.unknown_registry_approved,
39
- context,
40
- });
41
- const closure = evidenceClosure(session, comparisonClosure(parsed.comparisons));
20
+ const registerChangedBehavior = (server, session, contract) => {
21
+ server.registerTool(contract.name, toolRegistrationOptions(contract), async (input, context) => {
22
+ const closure = evidenceClosure(session, comparisonClosure(input.comparisons));
42
23
  if (!closure.ok)
43
24
  return toCallToolResult(closure, contract);
44
25
  const links = closure.value;
45
- const computed = await runDerivedOperation(context, contract.name, () => findChangedBehavior(parsed.comparisons, parsed.offset, parsed.limit));
26
+ const computed = await runDerivedOperation(context, contract.name, () => findChangedBehavior(input.comparisons));
46
27
  if (!computed.ok)
47
28
  return toCallToolResult(computed, contract);
48
29
  const result = computed.value;
49
30
  const evidence = createEvidence(undefined, CHANGED_BEHAVIOR_PROVIDER, {
50
- predicateType: "rea.changed-behavior/v1",
31
+ predicateType: "rea.changed-behavior",
51
32
  operation: contract.name,
52
33
  parameters: {
53
- comparison_evidence_ids: parsed.comparisons.map(({ evidence_id: id }) => id),
54
- offset: parsed.offset,
55
- limit: parsed.limit,
34
+ comparison_evidence_ids: input.comparisons.map(({ evidence_id: id }) => id),
56
35
  },
57
36
  result: jsonValueSchema.parse(result),
58
37
  confidence: "derived",
@@ -60,7 +39,7 @@ const registerChangedBehavior = (server, session, contract, policies) => {
60
39
  limitations: result.limitations,
61
40
  evidenceLinks: links,
62
41
  });
63
- const recorded = recordWorkflowEvidence(session, evidence, parsed.unknown_registry_approved, isIncomplete(result.behavior_status), {
42
+ const recorded = recordWorkflowEvidence(session, evidence, isIncomplete(result.behavior_status), {
64
43
  question: "Did both versions behave the same under a complete controlled replay?",
65
44
  domain: "changed-behavior",
66
45
  requiredAuthority: "controlled-replay",
@@ -75,97 +54,22 @@ const registerChangedBehavior = (server, session, contract, policies) => {
75
54
  return toCallToolResult(recorded, contract);
76
55
  });
77
56
  };
78
- const runAutomaticInvestigation = async (input) => {
79
- const { policies, investigationRun, contract, session } = input;
80
- const progress = mcpProgressReporter(input.context);
81
- let workspaceAuthorization;
82
- let authorizeInputRead;
83
- if (policies.permissionAuthority !== undefined) {
84
- const authority = policies.permissionAuthority;
85
- const authorizedWorkspace = await authorizeFileReadWithDeferredWrite(authority, {
86
- path: investigationRun.workspace_path,
87
- readCapability: "investigation_workspace_read",
88
- writeCapability: "investigation_workspace_write",
89
- operation: contract.name,
90
- });
91
- if (!authorizedWorkspace.ok)
92
- return toCallToolResult(authorizedWorkspace, contract);
93
- workspaceAuthorization = authorizedWorkspace.value;
94
- authorizeInputRead = () => authorizeRootPermission(authority, {
95
- capability: "investigation_input",
96
- roots: [investigationRun.left_path, investigationRun.right_path],
97
- access: "read",
98
- operation: contract.name,
99
- });
100
- }
101
- const investigated = await runCrossVersionInvestigationValidated(investigationRun, policies.evidenceFiles, {
102
- ...investigationContext({
103
- session,
104
- signal: input.context.mcpReq.signal,
105
- inputRoots: policies.inputRoots,
106
- integrityContinueEnabled: policies.integrityContinueEnabled?.() ?? false,
107
- progress,
108
- }),
109
- ...(workspaceAuthorization === undefined
110
- ? {}
111
- : { authorizeWorkspaceWrite: workspaceAuthorization.authorizeWrite }),
112
- ...(authorizeInputRead === undefined ? {} : { authorizeInputRead }),
113
- });
114
- if (!investigated.ok)
115
- return toCallToolResult(investigated, contract);
116
- const workspace = investigated.value.workspace;
117
- session.retainInvestigationWorkspace(workspace);
118
- const result = changedBehaviorResultSchema.parse(investigated.value.evidence.normalized_result);
119
- const toolResult = toCallToolResult(recordWorkflowEvidence(session, investigated.value.evidence, input.unknownRegistryApproved, isIncomplete(result.behavior_status), {
120
- question: `Automatic changed behavior run ${result.investigation_run?.run_id ?? "unknown"} remains ${result.behavior_status}`,
121
- domain: "changed-behavior",
122
- requiredAuthority: "controlled-replay",
123
- requiredConfidence: "observed",
124
- probes: [
125
- {
126
- operation: "capture_process_scenario",
127
- rationale: "Capture both versions under the same bounded scenario and environment.",
128
- },
129
- ],
130
- }), contract);
131
- return {
132
- ...toolResult,
133
- content: [
134
- ...toolResult.content,
135
- {
136
- type: "resource_link",
137
- uri: `rea://workspace/${workspace.workspace_id}/revision/${String(workspace.revision)}`,
138
- name: `${workspace.workspace_id} revision ${String(workspace.revision)}`,
139
- description: "Immutable CAS-linked investigation workspace revision",
140
- mimeType: "application/json",
141
- },
142
- ],
143
- };
144
- };
145
57
  const registerCallPath = (server, session, contract) => {
146
- server.registerTool(contract.name, contractOptions(contract), async (input, context) => {
147
- const parsedInput = safeParseToolInput(callPathInputSchema, input, contract.name);
148
- if (!parsedInput.ok)
149
- return toCallToolResult(parsedInput, contract);
150
- const parsed = parsedInput.value;
151
- const closure = evidenceClosure(session, functionEvidenceIds(parsed.functions));
58
+ server.registerTool(contract.name, toolRegistrationOptions(contract), async (input, context) => {
59
+ const closure = evidenceClosure(session, functionEvidenceIds(input.functions));
152
60
  if (!closure.ok)
153
61
  return toCallToolResult(closure, contract);
154
62
  const links = closure.value;
155
- const computed = await runDerivedOperation(context, contract.name, () => buildCallPath(parsed));
63
+ const computed = await runDerivedOperation(context, contract.name, () => buildCallPath(input));
156
64
  if (!computed.ok)
157
65
  return toCallToolResult(computed, contract);
158
66
  const result = computed.value;
159
67
  const evidence = createEvidence(undefined, CALL_PATH_PROVIDER, {
160
- predicateType: "rea.call-path/v1",
68
+ predicateType: "rea.call-path",
161
69
  operation: contract.name,
162
70
  parameters: {
163
- start: parsed.start.address,
164
- goal: parsed.goal.address,
165
- max_depth: parsed.max_depth,
166
- max_paths: parsed.max_paths,
167
- offset: parsed.offset,
168
- limit: parsed.limit,
71
+ start: input.start.address,
72
+ goal: input.goal.address,
169
73
  },
170
74
  result: jsonValueSchema.parse(result),
171
75
  confidence: "derived",
@@ -173,7 +77,7 @@ const registerCallPath = (server, session, contract) => {
173
77
  limitations: result.limitations,
174
78
  evidenceLinks: links,
175
79
  });
176
- const recorded = recordWorkflowEvidence(session, evidence, parsed.unknown_registry_approved, result.status === "unknown" || result.status === "truncated", {
80
+ const recorded = recordWorkflowEvidence(session, evidence, result.status === "unknown", {
177
81
  question: "Can the requested call path be established from complete analysis?",
178
82
  domain: "call-path",
179
83
  requiredAuthority: "shipped-artifact",
@@ -189,29 +93,23 @@ const registerCallPath = (server, session, contract) => {
189
93
  });
190
94
  };
191
95
  const registerStaticRuntime = (server, session, contract) => {
192
- server.registerTool(contract.name, contractOptions(contract), async (input, context) => {
193
- const parsedInput = safeParseToolInput(staticRuntimeCorrelationInputSchema, input, contract.name);
194
- if (!parsedInput.ok)
195
- return toCallToolResult(parsedInput, contract);
196
- const parsed = parsedInput.value;
96
+ server.registerTool(contract.name, toolRegistrationOptions(contract), async (input, context) => {
197
97
  const closure = evidenceClosure(session, comparisonClosure([
198
- ...parsed.static_comparisons,
199
- ...parsed.runtime_comparisons,
98
+ ...input.static_comparisons,
99
+ ...input.runtime_comparisons,
200
100
  ]));
201
101
  if (!closure.ok)
202
102
  return toCallToolResult(closure, contract);
203
103
  const links = closure.value;
204
- const computed = await runDerivedOperation(context, contract.name, () => correlateStaticAndRuntime(parsed));
104
+ const computed = await runDerivedOperation(context, contract.name, () => correlateStaticAndRuntime(input));
205
105
  if (!computed.ok)
206
106
  return toCallToolResult(computed, contract);
207
107
  const result = computed.value;
208
108
  const evidence = createEvidence(undefined, STATIC_RUNTIME_PROVIDER, {
209
- predicateType: "rea.static-runtime-correlation/v1",
109
+ predicateType: "rea.static-runtime-correlation",
210
110
  operation: contract.name,
211
111
  parameters: {
212
- mapping_count: parsed.mappings.length,
213
- offset: parsed.offset,
214
- limit: parsed.limit,
112
+ mapping_count: input.mappings.length,
215
113
  },
216
114
  result: jsonValueSchema.parse(result),
217
115
  confidence: "inferred",
@@ -219,7 +117,7 @@ const registerStaticRuntime = (server, session, contract) => {
219
117
  limitations: result.limitations,
220
118
  evidenceLinks: links,
221
119
  });
222
- return toCallToolResult(recordWorkflowEvidence(session, evidence, parsed.unknown_registry_approved, result.status === "unknown" || result.status === "truncated", {
120
+ return toCallToolResult(recordWorkflowEvidence(session, evidence, result.status === "unknown" || result.status === "truncated", {
223
121
  question: "Does runtime behavior match the available static analysis?",
224
122
  domain: "static-runtime-correlation",
225
123
  requiredAuthority: null,
@@ -234,16 +132,9 @@ const registerStaticRuntime = (server, session, contract) => {
234
132
  });
235
133
  };
236
134
  const registerReconstruction = (server, session, contract) => {
237
- server.registerTool(contract.name, contractOptions(contract), async (input, context) => {
238
- const parsedInput = safeParseToolInput(reconstructionVerificationInputSchema, input, contract.name);
239
- if (!parsedInput.ok)
240
- return toCallToolResult(parsedInput, contract);
241
- const parsed = parsedInput.value;
242
- const coverage = verifyCoverageReadiness(session, parsed.coverage);
243
- if (!coverage.ok)
244
- return toCallToolResult(coverage, contract);
135
+ server.registerTool(contract.name, toolRegistrationOptions(contract), async (input, context) => {
245
136
  const owned = session.exportEvidenceBundle();
246
- const computed = await runDerivedOperation(context, contract.name, () => verifyReconstruction(parsed.specification, owned, parsed.offset, parsed.limit));
137
+ const computed = await runDerivedOperation(context, contract.name, () => verifyReconstruction(input.specification, owned));
247
138
  if (!computed.ok)
248
139
  return toCallToolResult(computed, contract);
249
140
  const result = computed.value;
@@ -252,13 +143,11 @@ const registerReconstruction = (server, session, contract) => {
252
143
  return toCallToolResult(closure, contract);
253
144
  const links = closure.value;
254
145
  const evidence = createEvidence(undefined, RECONSTRUCTION_PROVIDER, {
255
- predicateType: "rea.reconstruction-verification/v1",
146
+ predicateType: "rea.reconstruction-verification",
256
147
  operation: contract.name,
257
148
  parameters: {
258
149
  specification_sha256: result.specification_sha256,
259
- claim_ids: parsed.specification.claims.map(({ claim_id: id }) => id),
260
- offset: parsed.offset,
261
- limit: parsed.limit,
150
+ claim_ids: input.specification.claims.map(({ claim_id: id }) => id),
262
151
  },
263
152
  result: jsonValueSchema.parse(result),
264
153
  confidence: "derived",
@@ -266,7 +155,7 @@ const registerReconstruction = (server, session, contract) => {
266
155
  limitations: result.limitations,
267
156
  evidenceLinks: links,
268
157
  });
269
- return toCallToolResult(recordWorkflowEvidence(session, evidence, parsed.unknown_registry_approved, result.status === "unknown", {
158
+ return toCallToolResult(recordWorkflowEvidence(session, evidence, result.status === "unknown", {
270
159
  question: "Does the reconstruction satisfy every declared claim?",
271
160
  domain: "reconstruction-verification",
272
161
  requiredAuthority: null,
@@ -278,4 +167,3 @@ const registerReconstruction = (server, session, contract) => {
278
167
  }), contract);
279
168
  });
280
169
  };
281
- const contractOptions = toolRegistrationOptions;
@@ -1,37 +1,25 @@
1
1
  import { listJavaScriptRuntimeTargets, observeJavaScriptRuntime, } from "../application/JavaScriptRuntimeObservationService.js";
2
2
  import { JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS } from "../contracts/javascriptRuntimeObservationToolContracts.js";
3
- import { listJavaScriptRuntimeTargetsInputSchema, observeJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeObservation.js";
3
+ import { observeJavaScriptRuntimeInputSchema } from "../domain/javascriptRuntimeObservation.js";
4
4
  import { logToolExecution } from "./toolLogging.js";
5
- import { safeParseToolInput } from "./toolInputValidation.js";
6
5
  import { toolRegistrationOptions } from "./toolRegistrationOptions.js";
7
6
  import { toCallToolResult } from "./toolResult.js";
8
7
  /** Register passive Inspector tools even when policy keeps them unavailable. */
9
8
  export const registerJavaScriptRuntimeObservationTools = (server, options) => {
10
9
  const [listContract, observeContract] = JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS;
11
- registerRuntimeTool(server, options, {
12
- contract: listContract,
13
- schema: listJavaScriptRuntimeTargetsInputSchema,
14
- execute: (parsed, signal) => listJavaScriptRuntimeTargets(options.runtime, options.permissionAuthority, parsed, { signal }),
15
- });
16
- registerRuntimeTool(server, options, {
17
- contract: observeContract,
18
- schema: observeJavaScriptRuntimeInputSchema,
19
- execute: (parsed, signal) => observeJavaScriptRuntime(options.runtime, options.permissionAuthority, parsed, { signal }),
20
- });
10
+ server.registerTool(listContract.name, toolRegistrationOptions(listContract), (input, context) => runRuntimeTool(options, listContract, { input, context }, (parsed, signal) => listJavaScriptRuntimeTargets(options.runtime, options.permissionAuthority, parsed, { signal })));
11
+ server.registerTool(observeContract.name, toolRegistrationOptions(observeContract), (input, context) => runRuntimeTool(options, observeContract, { input, context }, async (parsed, signal) => {
12
+ const request = observeJavaScriptRuntimeInputSchema.parse(parsed);
13
+ return observeJavaScriptRuntime(options.runtime, options.permissionAuthority, request, { signal });
14
+ }));
21
15
  };
22
- const registerRuntimeTool = (server, options, spec) => {
23
- server.registerTool(spec.contract.name, toolRegistrationOptions(spec.contract), async (input, context) => {
24
- const parsed = safeParseToolInput(spec.schema, input, spec.contract.name);
25
- if (!parsed.ok)
26
- return toCallToolResult(parsed, spec.contract);
27
- const result = await logToolExecution(options.logger, spec.contract.name, () => spec.execute(parsed.value, context.mcpReq.signal));
28
- if (!result.ok)
29
- return toCallToolResult(result, spec.contract);
30
- const recorded = options.recordEvidence?.(result.value);
31
- return recorded !== undefined && !recorded.ok
32
- ? toCallToolResult(recorded, spec.contract)
33
- : toCallToolResult({ ok: true, value: result.value }, spec.contract, {
34
- evidenceResourcesAvailable: recorded !== undefined,
35
- });
36
- });
16
+ const runRuntimeTool = async (options, contract, request, execute) => {
17
+ const { input, context } = request;
18
+ const result = await logToolExecution(options.logger, contract.name, () => execute(input, context.mcpReq.signal));
19
+ if (!result.ok)
20
+ return toCallToolResult(result, contract);
21
+ const recorded = options.recordEvidence?.(result.value);
22
+ return recorded !== undefined && !recorded.ok
23
+ ? toCallToolResult(recorded, contract)
24
+ : toCallToolResult({ ok: true, value: result.value }, contract);
37
25
  };
@@ -1,34 +1,30 @@
1
+ import { recordSessionEvidenceSources } from "../sessionEvidence.js";
1
2
  import { compareManagedMembersEvidenceValidated } from "../../application/ManagedMemberComparisonService.js";
2
- import { compareManagedMembersReferenceInputSchema } from "../../contracts/managedWorkflowToolContracts.js";
3
3
  import { managedMemberComparisonResultSchema } from "../../domain/managedMemberComparison.js";
4
4
  import { logToolExecution } from "../toolLogging.js";
5
- import { toCallToolResult } from "../toolResult.js";
6
5
  import { toolRegistrationOptions } from "../toolRegistrationOptions.js";
7
- import { safeParseToolInput } from "../toolInputValidation.js";
6
+ import { toCallToolResult } from "../toolResult.js";
8
7
  import { managedWorkflowContract } from "./contract.js";
9
- import { recordManagedSources, resolveManagedEvidence } from "./evidence.js";
8
+ import { resolveManagedEvidence } from "./evidence.js";
10
9
  const compareContract = managedWorkflowContract("compare_managed_members");
11
10
  /** Register the managed member comparison workflow tool. */
12
11
  export const registerCompareManagedMembers = (server, options) => {
13
12
  server.registerTool(compareContract.name, toolRegistrationOptions(compareContract), async (input) => {
14
- const parsedInput = safeParseToolInput(compareManagedMembersReferenceInputSchema, input, compareContract.name);
15
- if (!parsedInput.ok)
16
- return toCallToolResult(parsedInput, compareContract);
17
- const resolved = resolveManagedEvidence(options.session, [
18
- parsedInput.value.left_evidence_id,
19
- parsedInput.value.right_evidence_id,
20
- ]);
21
- if (!resolved.ok)
22
- return toCallToolResult(resolved, compareContract);
23
- 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;
24
21
  if (left === undefined || right === undefined)
25
22
  throw new TypeError("Managed comparison Evidence resolution failed");
26
- const { left_evidence_id: _leftEvidenceId, right_evidence_id: _rightEvidenceId, ...referencedInput } = parsedInput.value;
27
- const parsed = { ...referencedInput, left, right };
23
+ const parsed = { left, right };
28
24
  const result = await logToolExecution(options.logger, compareContract.name, () => Promise.resolve(compareManagedMembersEvidenceValidated(parsed)));
29
25
  if (!result.ok)
30
26
  return toCallToolResult(result, compareContract);
31
- const recorded = recordManagedSources(options.recordEvidence, [
27
+ const recorded = recordSessionEvidenceSources(options.recordEvidence, [
32
28
  parsed.left,
33
29
  parsed.right,
34
30
  ]);
@@ -36,9 +32,8 @@ export const registerCompareManagedMembers = (server, options) => {
36
32
  return toCallToolResult(recorded, compareContract);
37
33
  const comparison = managedMemberComparisonResultSchema.parse(result.value.normalized_result);
38
34
  const unknown = comparison.summary.unknown > 0;
39
- const output = parsed.unknown_registry_approved === true && unknown
35
+ const output = unknown
40
36
  ? options.recordEvidenceWithUnknown?.(result.value, {
41
- approved: true,
42
37
  question: "Which managed members remain unmatched or ambiguous across these versions?",
43
38
  severity: "medium",
44
39
  domain: "managed-member-comparison",
@@ -50,7 +45,7 @@ export const registerCompareManagedMembers = (server, options) => {
50
45
  recommended_probes: [
51
46
  {
52
47
  operation: "inspect_managed_members",
53
- 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.",
54
49
  },
55
50
  ],
56
51
  relationships: [],
@@ -58,8 +53,6 @@ export const registerCompareManagedMembers = (server, options) => {
58
53
  : options.recordEvidence?.(result.value);
59
54
  if (output !== undefined && !output.ok)
60
55
  return toCallToolResult(output, compareContract);
61
- return toCallToolResult({ ok: true, value: result.value }, compareContract, {
62
- evidenceResourcesAvailable: output !== undefined,
63
- });
56
+ return toCallToolResult({ ok: true, value: result.value }, compareContract);
64
57
  });
65
58
  };
@@ -1,8 +1,7 @@
1
1
  import { MANAGED_WORKFLOW_TOOL_CONTRACTS } from "../../contracts/managedWorkflowToolContracts.js";
2
- /** Locate one managed workflow tool contract by exact name. */
3
- export const managedWorkflowContract = (name) => {
2
+ export function managedWorkflowContract(name) {
4
3
  const found = MANAGED_WORKFLOW_TOOL_CONTRACTS.find((candidate) => candidate.name === name);
5
4
  if (found === undefined)
6
5
  throw new Error(`Missing ${name} contract`);
7
6
  return found;
8
- };
7
+ }
@@ -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,
@@ -1,28 +1,20 @@
1
1
  import { importManagedReconstructionEvidenceValidated } from "../../application/ManagedReconstructionService.js";
2
- import { managedReconstructionReferenceInputSchema } from "../../contracts/managedWorkflowToolContracts.js";
3
2
  import { logToolExecution } from "../toolLogging.js";
4
- import { toCallToolResult } from "../toolResult.js";
5
3
  import { toolRegistrationOptions } from "../toolRegistrationOptions.js";
6
- import { safeParseToolInput } from "../toolInputValidation.js";
4
+ import { toCallToolResult } from "../toolResult.js";
7
5
  import { managedWorkflowContract } from "./contract.js";
8
6
  import { resolveManagedEvidence } from "./evidence.js";
9
7
  const reconstructionContract = managedWorkflowContract("import_managed_reconstruction");
10
8
  /** Register the managed reconstruction import workflow tool. */
11
9
  export const registerImportManagedReconstruction = (server, options) => {
12
10
  server.registerTool(reconstructionContract.name, toolRegistrationOptions(reconstructionContract), async (input) => {
13
- const parsedInput = safeParseToolInput(managedReconstructionReferenceInputSchema, input, reconstructionContract.name);
14
- if (!parsedInput.ok)
15
- return toCallToolResult(parsedInput, reconstructionContract);
16
- const resolved = resolveManagedEvidence(options.session, [
17
- parsedInput.value.static_members_evidence_id,
18
- ]);
11
+ const resolved = resolveManagedEvidence(input.static_members);
19
12
  if (!resolved.ok)
20
13
  return toCallToolResult(resolved, reconstructionContract);
21
14
  const staticMembers = resolved.value[0];
22
15
  if (staticMembers === undefined)
23
16
  throw new TypeError("Managed reconstruction Evidence resolution failed");
24
- const { static_members_evidence_id: _staticMembersEvidenceId, ...referencedInput } = parsedInput.value;
25
- const parsed = { ...referencedInput, static_members: staticMembers };
17
+ const parsed = { ...input, static_members: staticMembers };
26
18
  const result = await logToolExecution(options.logger, reconstructionContract.name, () => Promise.resolve(importManagedReconstructionEvidenceValidated(parsed)));
27
19
  if (!result.ok)
28
20
  return toCallToolResult(result, reconstructionContract);
@@ -32,8 +24,6 @@ export const registerImportManagedReconstruction = (server, options) => {
32
24
  const recorded = options.recordEvidence?.(result.value);
33
25
  if (recorded !== undefined && !recorded.ok)
34
26
  return toCallToolResult(recorded, reconstructionContract);
35
- return toCallToolResult(result, reconstructionContract, {
36
- evidenceResourcesAvailable: recorded !== undefined,
37
- });
27
+ return toCallToolResult(result, reconstructionContract);
38
28
  });
39
29
  };
@@ -1,28 +1,20 @@
1
1
  import { planManagedRuntimeCorrelationEvidenceValidated } from "../../application/ManagedRuntimeCorrelationService.js";
2
- import { managedRuntimeCorrelationReferenceInputSchema } from "../../contracts/managedWorkflowToolContracts.js";
3
2
  import { logToolExecution } from "../toolLogging.js";
4
- import { toCallToolResult } from "../toolResult.js";
5
3
  import { toolRegistrationOptions } from "../toolRegistrationOptions.js";
6
- import { safeParseToolInput } from "../toolInputValidation.js";
4
+ import { toCallToolResult } from "../toolResult.js";
7
5
  import { managedWorkflowContract } from "./contract.js";
8
6
  import { resolveManagedEvidence } from "./evidence.js";
9
7
  const runtimeContract = managedWorkflowContract("plan_managed_runtime_correlation");
10
8
  /** Register the managed runtime correlation planning workflow tool. */
11
9
  export const registerPlanManagedRuntimeCorrelation = (server, options) => {
12
10
  server.registerTool(runtimeContract.name, toolRegistrationOptions(runtimeContract), async (input) => {
13
- const parsedInput = safeParseToolInput(managedRuntimeCorrelationReferenceInputSchema, input, runtimeContract.name);
14
- if (!parsedInput.ok)
15
- return toCallToolResult(parsedInput, runtimeContract);
16
- const resolved = resolveManagedEvidence(options.session, [
17
- parsedInput.value.static_members_evidence_id,
18
- ]);
11
+ const resolved = resolveManagedEvidence(input.static_members);
19
12
  if (!resolved.ok)
20
13
  return toCallToolResult(resolved, runtimeContract);
21
14
  const staticMembers = resolved.value[0];
22
15
  if (staticMembers === undefined)
23
16
  throw new TypeError("Managed runtime Evidence resolution failed");
24
- const { static_members_evidence_id: _staticMembersEvidenceId, ...referencedInput } = parsedInput.value;
25
- const parsed = { ...referencedInput, static_members: staticMembers };
17
+ const parsed = { ...input, static_members: staticMembers };
26
18
  const result = await logToolExecution(options.logger, runtimeContract.name, () => Promise.resolve(planManagedRuntimeCorrelationEvidenceValidated(options.runtime, parsed)));
27
19
  if (!result.ok)
28
20
  return toCallToolResult(result, runtimeContract);
@@ -32,8 +24,6 @@ export const registerPlanManagedRuntimeCorrelation = (server, options) => {
32
24
  const recorded = options.recordEvidence?.(result.value);
33
25
  if (recorded !== undefined && !recorded.ok)
34
26
  return toCallToolResult(recorded, runtimeContract);
35
- return toCallToolResult(result, runtimeContract, {
36
- evidenceResourcesAvailable: recorded !== undefined,
37
- });
27
+ return toCallToolResult(result, runtimeContract);
38
28
  });
39
29
  };