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,315 +0,0 @@
1
- import { ResourceNotFoundError, ResourceTemplate, } from "@modelcontextprotocol/server";
2
- import { createHash } from "node:crypto";
3
- import canonicalize from "canonicalize";
4
- import { registerJavaScriptApplicationGraphResource } from "./registerJavaScriptApplicationGraphResource.js";
5
- import { registerReconstructionObligationLedgerResource } from "./registerReconstructionObligationLedgerResource.js";
6
- import { registerReconstructionReadinessResource } from "./registerReconstructionReadinessResource.js";
7
- /** Expose immutable session-owned Evidence v2 records as MCP resources. */
8
- export const registerEvidenceResources = (server, session) => {
9
- registerReconstructionCoverageResource(server, session);
10
- registerInvestigationWorkspaceResource(server, session);
11
- registerSessionEvidenceResource(server, session);
12
- registerEvidenceBundleResource(server, session);
13
- registerAnalysisSnapshotResource(server, session);
14
- registerArtifactPageResource(server, session);
15
- registerFunctionDossierResource(server, session);
16
- registerEvidenceSectionResource(server, session);
17
- registerReconstructionObligationLedgerResource(server, session);
18
- registerReconstructionReadinessResource(server, session);
19
- registerJavaScriptApplicationGraphResource(server, session);
20
- registerResidualUnknownResource(server, session);
21
- session.onAnalysisSnapshotChanged?.(() => {
22
- void server.server
23
- .sendResourceUpdated({ uri: "rea://snapshot/current" })
24
- .catch(() => undefined);
25
- });
26
- };
27
- const registerReconstructionCoverageResource = (server, session) => {
28
- server.registerResource("reconstruction-coverage-revision", new ResourceTemplate("rea://reconstruction-coverage/{workspaceId}/revision/{revision}", {
29
- list: undefined,
30
- }), {
31
- title: "Reconstruction coverage revision",
32
- description: "Canonical CAS-linked surfaces, owners, claims, verifiers, evidence, and completion boundaries.",
33
- mimeType: "application/json",
34
- }, (uri, variables) => {
35
- const workspaceId = stringVariable(variables.workspaceId, uri.href);
36
- const revisionText = stringVariable(variables.revision, uri.href);
37
- if (!/^\d+$/u.test(revisionText))
38
- throw new ResourceNotFoundError(uri.href);
39
- const workspace = session.reconstructionCoverageWorkspace(workspaceId, Number(revisionText));
40
- if (workspace === undefined)
41
- throw new ResourceNotFoundError(uri.href);
42
- return jsonResource(uri.href, workspace);
43
- });
44
- };
45
- const registerInvestigationWorkspaceResource = (server, session) => {
46
- server.registerResource("investigation-workspace-revision", new ResourceTemplate("rea://workspace/{workspaceId}/revision/{revision}", {
47
- list: undefined,
48
- }), {
49
- title: "Investigation workspace revision",
50
- description: "Immutable session-retained workspace with CAS linkage.",
51
- mimeType: "application/json",
52
- }, (uri, variables) => {
53
- const workspaceId = stringVariable(variables.workspaceId, uri.href);
54
- const revisionText = stringVariable(variables.revision, uri.href);
55
- if (!/^\d+$/u.test(revisionText))
56
- throw new ResourceNotFoundError(uri.href);
57
- const workspace = session.investigationWorkspace(workspaceId, Number(revisionText));
58
- if (workspace === undefined)
59
- throw new ResourceNotFoundError(uri.href);
60
- return jsonResource(uri.href, workspace);
61
- });
62
- };
63
- const registerSessionEvidenceResource = (server, session) => {
64
- server.registerResource("session-evidence", new ResourceTemplate("rea://evidence/{evidenceId}", {
65
- list: undefined,
66
- }), {
67
- title: "Session evidence",
68
- description: "Immutable Evidence v2 records owned by this REA session.",
69
- mimeType: "application/json",
70
- }, (uri, variables) => {
71
- const evidenceId = variables.evidenceId;
72
- if (typeof evidenceId !== "string")
73
- throw new ResourceNotFoundError(uri.href);
74
- const evidence = session.evidenceById(evidenceId);
75
- if (evidence === undefined)
76
- throw new ResourceNotFoundError(uri.href);
77
- return {
78
- contents: [
79
- {
80
- uri: uri.href,
81
- mimeType: "application/json",
82
- text: JSON.stringify(evidence, null, 2),
83
- },
84
- ],
85
- };
86
- });
87
- };
88
- const registerEvidenceBundleResource = (server, session) => {
89
- server.registerResource("evidence-bundle", new ResourceTemplate("rea://evidence-bundle/{bundleDigest}", {
90
- list: undefined,
91
- }), {
92
- title: "Evidence bundle",
93
- description: "Immutable session-retained canonical Evidence v2 bundle.",
94
- mimeType: "application/json",
95
- }, (uri, variables) => {
96
- const digest = stringVariable(variables.bundleDigest, uri.href);
97
- if (!/^[a-f0-9]{64}$/u.test(digest))
98
- throw new ResourceNotFoundError(uri.href);
99
- const text = session.retainedEvidenceBundle(digest);
100
- if (text === undefined)
101
- throw new ResourceNotFoundError(uri.href);
102
- return {
103
- contents: [
104
- {
105
- uri: uri.href,
106
- mimeType: "application/json",
107
- text,
108
- },
109
- ],
110
- };
111
- });
112
- };
113
- const registerAnalysisSnapshotResource = (server, session) => {
114
- server.registerResource("analysis-snapshot", "rea://snapshot/current", {
115
- title: "Analysis snapshot",
116
- description: "Mutable provider-neutral analysis snapshot for the current native target.",
117
- mimeType: "application/json",
118
- }, (uri) => {
119
- const snapshot = session.exportAnalysisSnapshot();
120
- if (!snapshot.ok)
121
- return jsonResource(uri.href, {
122
- state: "unavailable",
123
- reason: snapshot.error.message,
124
- remediation: "Open a native target with a concrete analysis profile. After metadata mutation, call open_binary again for the current target to begin a fresh cache.",
125
- });
126
- return jsonResource(uri.href, {
127
- state: "available",
128
- target: snapshot.value.target,
129
- profile: snapshot.value.binding,
130
- content_digest: contentDigest(snapshot.value),
131
- entry_count: snapshot.value.entries.length,
132
- snapshot: snapshot.value,
133
- });
134
- });
135
- };
136
- const registerArtifactPageResource = (server, session) => {
137
- server.registerResource("artifact-page", new ResourceTemplate("rea://artifact/{manifestId}/{collection}", {
138
- list: undefined,
139
- complete: {
140
- collection: (prefix) => ["nodes", "occurrences", "edges"].filter((value) => value.startsWith(prefix)),
141
- },
142
- }), {
143
- title: "Artifact graph page",
144
- description: "Deterministically paged artifact graph collection.",
145
- mimeType: "application/json",
146
- }, (uri, variables) => {
147
- const manifestId = stringVariable(variables.manifestId, uri.href);
148
- const collection = stringVariable(variables.collection, uri.href);
149
- if (!ARTIFACT_COLLECTIONS.has(collection))
150
- throw new ResourceNotFoundError(uri.href);
151
- const evidence = session
152
- .exportEvidenceBundle()
153
- .records.find((record) => artifactManifestId(record.normalized_result) === manifestId);
154
- if (evidence === undefined)
155
- throw new ResourceNotFoundError(uri.href);
156
- const result = objectValue(evidence.normalized_result);
157
- const page = result?.[collection];
158
- if (page === undefined)
159
- throw new ResourceNotFoundError(uri.href);
160
- return jsonResource(uri.href, {
161
- evidence_id: evidence.evidence_id,
162
- manifest_id: manifestId,
163
- collection,
164
- page,
165
- provider: evidence.provider,
166
- limitations: evidence.limitations,
167
- });
168
- });
169
- };
170
- const registerFunctionDossierResource = (server, session) => {
171
- server.registerResource("function-dossier", new ResourceTemplate("rea://function/{targetSha256}/{address}", {
172
- list: undefined,
173
- }), {
174
- title: "Function dossier",
175
- description: "Session-owned analyze_function dossier with provenance.",
176
- mimeType: "application/json",
177
- }, (uri, variables) => {
178
- const targetSha256 = stringVariable(variables.targetSha256, uri.href);
179
- const address = stringVariable(variables.address, uri.href);
180
- const evidence = session
181
- .exportEvidenceBundle()
182
- .records.find((record) => record.operation === "analyze_function" &&
183
- record.subject?.digest.sha256 === targetSha256 &&
184
- functionAddress(record.normalized_result) === address);
185
- if (evidence === undefined)
186
- throw new ResourceNotFoundError(uri.href);
187
- return jsonResource(uri.href, evidence);
188
- });
189
- };
190
- const registerEvidenceSectionResource = (server, session) => {
191
- server.registerResource("evidence-section", new ResourceTemplate("rea://evidence/{evidenceId}/section/{section}", {
192
- list: undefined,
193
- complete: {
194
- section: (prefix) => EVIDENCE_SECTIONS.filter((section) => section.startsWith(prefix)),
195
- },
196
- }), {
197
- title: "Evidence section",
198
- description: "One independently useful bounded section of session Evidence v2.",
199
- mimeType: "application/json",
200
- }, (uri, variables) => {
201
- const evidenceId = stringVariable(variables.evidenceId, uri.href);
202
- const section = stringVariable(variables.section, uri.href);
203
- const evidence = session.evidenceById(evidenceId);
204
- if (evidence === undefined)
205
- throw new ResourceNotFoundError(uri.href);
206
- const value = evidenceSection(evidence.normalized_result, section);
207
- if (value === undefined)
208
- throw new ResourceNotFoundError(uri.href);
209
- return jsonResource(uri.href, {
210
- evidence_id: evidence.evidence_id,
211
- operation: evidence.operation,
212
- authority: evidence.authority,
213
- confidence: evidence.confidence,
214
- provider: evidence.provider,
215
- limitations: evidence.limitations,
216
- section,
217
- value,
218
- });
219
- });
220
- };
221
- const registerResidualUnknownResource = (server, session) => {
222
- server.registerResource("residual-unknown", new ResourceTemplate("rea://unknown/{unknownId}", {
223
- list: undefined,
224
- }), {
225
- title: "Residual unknown",
226
- description: "Current session-owned residual unknown head.",
227
- mimeType: "application/json",
228
- }, (uri, variables) => {
229
- const unknownId = stringVariable(variables.unknownId, uri.href);
230
- const unknown = session
231
- .listUnknowns()
232
- .find(({ unknown_id }) => unknown_id === unknownId);
233
- if (unknown === undefined)
234
- throw new ResourceNotFoundError(uri.href);
235
- const history = session
236
- .exportEvidenceBundle()
237
- .unknowns.filter(({ unknown_id }) => unknown_id === unknownId);
238
- return jsonResource(uri.href, { current: unknown, history });
239
- });
240
- };
241
- const EVIDENCE_SECTIONS = [
242
- "result",
243
- "terminal",
244
- "filesystem",
245
- "process",
246
- "protocol",
247
- "nodes",
248
- "occurrences",
249
- "edges",
250
- ];
251
- const stringVariable = (value, uri) => {
252
- if (typeof value !== "string")
253
- throw new ResourceNotFoundError(uri);
254
- return value;
255
- };
256
- const evidenceSection = (result, section) => {
257
- if (section === "result")
258
- return result;
259
- if (typeof result !== "object" || result === null || Array.isArray(result))
260
- return undefined;
261
- if (section === "terminal")
262
- return pick(result, ["frames", "rendered_frames", "interaction_events"]);
263
- if (section === "filesystem")
264
- return pick(result, [
265
- "filesystem_checkpoints",
266
- "filesystem_effects",
267
- "files_before",
268
- "files_after",
269
- ]);
270
- if (section === "process")
271
- return pick(result, ["process_samples", "exit", "settlement", "cleanup"]);
272
- if (section === "protocol")
273
- return pick(result, [
274
- "protocol_events",
275
- "replay_transitions",
276
- "shim_events",
277
- ]);
278
- const value = result[section];
279
- return value === undefined ? undefined : value;
280
- };
281
- const pick = (result, names) => {
282
- const entries = names.flatMap((name) => result[name] === undefined ? [] : [[name, result[name]]]);
283
- return entries.length === 0 ? undefined : Object.fromEntries(entries);
284
- };
285
- const jsonResource = (uri, value) => ({
286
- contents: [
287
- {
288
- uri,
289
- mimeType: "application/json",
290
- text: JSON.stringify(value, null, 2),
291
- },
292
- ],
293
- });
294
- const ARTIFACT_COLLECTIONS = new Set(["nodes", "occurrences", "edges"]);
295
- const objectValue = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
296
- ? value
297
- : undefined;
298
- const artifactManifestId = (value) => {
299
- const manifest = objectValue(objectValue(value)?.manifest ?? null);
300
- return typeof manifest?.manifest_id === "string"
301
- ? manifest.manifest_id
302
- : undefined;
303
- };
304
- const functionAddress = (value) => {
305
- const result = objectValue(value);
306
- const procedure = objectValue(result?.procedure ?? null);
307
- const candidate = procedure?.address ?? result?.address;
308
- return typeof candidate === "string" ? candidate : undefined;
309
- };
310
- const contentDigest = (value) => {
311
- const encoded = canonicalize(value);
312
- if (encoded === undefined)
313
- throw new TypeError("Resource is not canonical JSON");
314
- return createHash("sha256").update(encoded).digest("hex");
315
- };
@@ -1,65 +0,0 @@
1
- import { ResourceNotFoundError, ResourceTemplate, } from "@modelcontextprotocol/server";
2
- import { javascriptApplicationAnalysisResultSchema } from "../domain/javascriptApplicationAnalysis.js";
3
- /** Register deterministic pages over one authenticated JavaScript graph. */
4
- export const registerJavaScriptApplicationGraphResource = (server, session) => {
5
- server.registerResource("javascript-application-graph-page", new ResourceTemplate("rea://evidence/{evidenceId}/application-graph/{collection}/offset/{offset}/limit/{limit}", {
6
- list: undefined,
7
- complete: {
8
- collection: (prefix) => ["nodes", "edges"].filter((name) => name.startsWith(prefix)),
9
- },
10
- }), {
11
- title: "JavaScript application graph page",
12
- description: "One deterministic bounded node or edge page from authenticated JavaScript application Evidence.",
13
- mimeType: "application/json",
14
- }, (uri, variables) => {
15
- const evidenceId = stringVariable(variables.evidenceId, uri.href);
16
- const collection = stringVariable(variables.collection, uri.href);
17
- if (collection !== "nodes" && collection !== "edges")
18
- throw new ResourceNotFoundError(uri.href);
19
- const offset = pageInteger(variables.offset, uri.href, 0, 100_000);
20
- const limit = pageInteger(variables.limit, uri.href, 1, 500);
21
- const evidence = session.evidenceById(evidenceId);
22
- if (evidence === undefined ||
23
- evidence.operation !== "analyze_javascript_application")
24
- throw new ResourceNotFoundError(uri.href);
25
- const analysis = javascriptApplicationAnalysisResultSchema.safeParse(evidence.normalized_result);
26
- if (!analysis.success)
27
- throw new ResourceNotFoundError(uri.href);
28
- const values = analysis.data.graph[collection];
29
- const items = values.slice(offset, offset + limit);
30
- const nextOffset = offset + items.length;
31
- return {
32
- contents: [
33
- {
34
- uri: uri.href,
35
- mimeType: "application/json",
36
- text: JSON.stringify({
37
- evidence_id: evidence.evidence_id,
38
- graph_id: analysis.data.graph.graph_id,
39
- collection,
40
- items,
41
- offset,
42
- limit,
43
- total: values.length,
44
- next_offset: nextOffset < values.length ? nextOffset : null,
45
- has_more: nextOffset < values.length,
46
- }, null, 2),
47
- },
48
- ],
49
- };
50
- });
51
- };
52
- const stringVariable = (value, uri) => {
53
- if (typeof value !== "string")
54
- throw new ResourceNotFoundError(uri);
55
- return value;
56
- };
57
- const pageInteger = (value, uri, minimum, maximum) => {
58
- const text = stringVariable(value, uri);
59
- if (!/^\d+$/u.test(text))
60
- throw new ResourceNotFoundError(uri);
61
- const parsed = Number(text);
62
- if (!Number.isSafeInteger(parsed) || parsed < minimum || parsed > maximum)
63
- throw new ResourceNotFoundError(uri);
64
- return parsed;
65
- };
@@ -1,32 +0,0 @@
1
- import { ResourceNotFoundError, ResourceTemplate, } from "@modelcontextprotocol/server";
2
- import { reconstructionObligationLedgerPageSchema } from "../domain/reconstructionObligationLedgerSchemas.js";
3
- /** Expose retained obligation-ledger pages as typed Evidence resources. */
4
- export const registerReconstructionObligationLedgerResource = (server, session) => {
5
- server.registerResource("reconstruction-obligation-ledger-page", new ResourceTemplate("rea://evidence/{evidenceId}/reconstruction-obligation-ledger", {
6
- list: undefined,
7
- }), {
8
- title: "Reconstruction obligation ledger page",
9
- description: "One deterministic Evidence v2-backed obligation page with full-ledger closure digest and summaries.",
10
- mimeType: "application/json",
11
- }, (uri, variables) => {
12
- const evidenceId = variables.evidenceId;
13
- if (typeof evidenceId !== "string")
14
- throw new ResourceNotFoundError(uri.href);
15
- const evidence = session.evidenceById(evidenceId);
16
- if (evidence === undefined ||
17
- evidence.predicate_type !== "rea.reconstruction-obligation-ledger/v1")
18
- throw new ResourceNotFoundError(uri.href);
19
- const page = reconstructionObligationLedgerPageSchema.safeParse(evidence.normalized_result);
20
- if (!page.success)
21
- throw new ResourceNotFoundError(uri.href);
22
- return {
23
- contents: [
24
- {
25
- uri: uri.href,
26
- mimeType: "application/json",
27
- text: JSON.stringify({ evidence_id: evidence.evidence_id, page: page.data }, null, 2),
28
- },
29
- ],
30
- };
31
- });
32
- };
@@ -1,32 +0,0 @@
1
- import { ResourceNotFoundError, ResourceTemplate, } from "@modelcontextprotocol/server";
2
- import { reconstructionReadinessReportSchema } from "../domain/reconstructionReadinessSchemas.js";
3
- /** Expose retained full readiness reports outside compact tool responses. */
4
- export const registerReconstructionReadinessResource = (server, session) => {
5
- server.registerResource("reconstruction-readiness-report", new ResourceTemplate("rea://evidence/{evidenceId}/reconstruction-readiness-report", {
6
- list: undefined,
7
- }), {
8
- title: "Reconstruction readiness report",
9
- description: "Full deterministic nine-stage conformance report and replay identity.",
10
- mimeType: "application/json",
11
- }, (uri, variables) => {
12
- const evidenceId = variables.evidenceId;
13
- if (typeof evidenceId !== "string")
14
- throw new ResourceNotFoundError(uri.href);
15
- const evidence = session.evidenceById(evidenceId);
16
- if (evidence === undefined ||
17
- evidence.predicate_type !== "rea.reconstruction-readiness-report/v1")
18
- throw new ResourceNotFoundError(uri.href);
19
- const report = reconstructionReadinessReportSchema.safeParse(evidence.normalized_result);
20
- if (!report.success)
21
- throw new ResourceNotFoundError(uri.href);
22
- return {
23
- contents: [
24
- {
25
- uri: uri.href,
26
- mimeType: "application/json",
27
- text: JSON.stringify({ evidence_id: evidence.evidence_id, report: report.data }, null, 2),
28
- },
29
- ],
30
- };
31
- });
32
- };
@@ -1,77 +0,0 @@
1
- import { z } from "zod";
2
- import { AnalysisInputError, } from "../domain/errors.js";
3
- import { projectInputIssues } from "../domain/inputIssueProjection.js";
4
- import { err, ok } from "../domain/result.js";
5
- import { closeObjectSchemas } from "./toolRegistrationOptions.js";
6
- /** Parse one MCP request exactly once and retain only schema-owned correction data. */
7
- export const safeParseToolInput = (schema, input, operation) => {
8
- const unknownIssues = unknownArgumentIssues(schema, input);
9
- if (unknownIssues.length > 0)
10
- return err(new AnalysisInputError(operation, undefined, unknownIssues));
11
- const parsed = schema.safeParse(input);
12
- return parsed.success
13
- ? ok(parsed.data)
14
- : err(new AnalysisInputError(operation, undefined, projectInputIssues(parsed.error.issues, input)));
15
- };
16
- const schemaCache = new WeakMap();
17
- const unknownArgumentIssues = (schema, input) => {
18
- let jsonSchema = schemaCache.get(schema);
19
- if (jsonSchema === undefined) {
20
- const converter = schema["~standard"].jsonSchema?.input;
21
- if (converter === undefined)
22
- throw new TypeError("Tool input schema does not expose Standard JSON Schema");
23
- jsonSchema = closeObjectSchemas(converter({ target: "draft-2020-12" }));
24
- schemaCache.set(schema, jsonSchema);
25
- }
26
- return scanUnknownArguments(input, jsonSchema, jsonSchema, []);
27
- };
28
- const scanUnknownArguments = (value, schema, root, path) => {
29
- const resolved = resolveSchema(schema, root);
30
- if (Array.isArray(value)) {
31
- const items = objectValue(resolved.items);
32
- return items === undefined
33
- ? []
34
- : value.flatMap((item, index) => scanUnknownArguments(item, items, root, [...path, index]));
35
- }
36
- if (!isObject(value))
37
- return [];
38
- const variants = schemaVariants(resolved, root);
39
- const properties = Object.fromEntries(variants.flatMap((variant) => Object.entries(objectValue(variant.properties) ?? {})));
40
- const closed = variants.length > 0 &&
41
- variants.every((variant) => variant.additionalProperties !== true &&
42
- !isObject(variant.additionalProperties));
43
- const issues = [];
44
- for (const [key, child] of Object.entries(value)) {
45
- const propertySchema = objectValue(properties[key]);
46
- if (propertySchema === undefined) {
47
- if (closed)
48
- issues.push({ path: [...path, key], reason: "unknown_argument" });
49
- continue;
50
- }
51
- issues.push(...scanUnknownArguments(child, propertySchema, root, [...path, key]));
52
- }
53
- return issues;
54
- };
55
- const schemaVariants = (schema, root) => {
56
- const resolved = resolveSchema(schema, root);
57
- const variants = [resolved.oneOf, resolved.anyOf, resolved.allOf]
58
- .flatMap((value) => (Array.isArray(value) ? value : []))
59
- .flatMap((value) => {
60
- const object = objectValue(value);
61
- return object === undefined ? [] : schemaVariants(object, root);
62
- });
63
- if (variants.length > 0)
64
- return variants;
65
- return resolved.type === "object" || isObject(resolved.properties)
66
- ? [resolved]
67
- : [];
68
- };
69
- const resolveSchema = (schema, root) => {
70
- const reference = schema.$ref;
71
- if (typeof reference !== "string" || !reference.startsWith("#/$defs/"))
72
- return schema;
73
- const definition = objectValue(objectValue(root.$defs)?.[reference.slice(8)]);
74
- return definition === undefined ? schema : definition;
75
- };
76
- const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
77
- const objectValue = (value) => isObject(value) ? value : undefined;
@@ -1,72 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import { resolve } from "node:path";
3
-
4
- const BOOTSTRAP_MARKER = "REA_PACKAGE_RUNNER_BOOTSTRAPPED";
5
-
6
- /**
7
- * Plan a current-release setup bootstrap when bare npx selected a project-local
8
- * package. Explicit `npm exec --package=<name>@<version>` rollbacks bypass it.
9
- */
10
- export function packageRunnerSetupPlan(input) {
11
- if (input.args[0] !== "setup") return undefined;
12
- if (input.environment[BOOTSTRAP_MARKER] === "1") return undefined;
13
- if (input.environment.npm_lifecycle_event !== "npx") return undefined;
14
-
15
- const localPrefix = input.environment.npm_config_local_prefix;
16
- if (localPrefix === undefined || localPrefix.length === 0) return undefined;
17
- if (
18
- !isPackageBelowLocalPrefix(
19
- input.packageRoot,
20
- localPrefix,
21
- input.packageName,
22
- )
23
- )
24
- return undefined;
25
-
26
- const requestedPackage = input.environment.npm_config_package;
27
- if (
28
- requestedPackage !== undefined &&
29
- isExactPackageVersion(requestedPackage, input.packageName)
30
- )
31
- return undefined;
32
-
33
- return {
34
- command: "npm",
35
- args: [
36
- "exec",
37
- "--yes",
38
- `--package=${input.packageName}@latest`,
39
- "--",
40
- "rea",
41
- ...input.args,
42
- ],
43
- };
44
- }
45
-
46
- /** Execute a planned package-runner bootstrap and return its exit status. */
47
- export async function runPackageRunnerSetupBootstrap(input) {
48
- const plan = packageRunnerSetupPlan(input);
49
- if (plan === undefined) return undefined;
50
-
51
- return await new Promise((resolveExitCode) => {
52
- const child = spawn(plan.command, plan.args, {
53
- stdio: "inherit",
54
- env: { ...input.environment, [BOOTSTRAP_MARKER]: "1" },
55
- });
56
- child.once("error", () => resolveExitCode(1));
57
- child.once("exit", (code) => resolveExitCode(code ?? 1));
58
- });
59
- }
60
-
61
- function isPackageBelowLocalPrefix(packageRoot, localPrefix, packageName) {
62
- const expectedRoot = resolve(localPrefix, "node_modules", packageName);
63
- return resolve(packageRoot) === expectedRoot;
64
- }
65
-
66
- function isExactPackageVersion(packageSpecifier, packageName) {
67
- const version = packageSpecifier.slice(`${packageName}@`.length);
68
- return (
69
- packageSpecifier.startsWith(`${packageName}@`) &&
70
- /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(version)
71
- );
72
- }