rea-agents 3.1.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (590) hide show
  1. package/README.md +72 -95
  2. package/bridge/ghidra/ReaGhidraBridge.java +609 -841
  3. package/bridge/hopper_bridge.py +99 -344
  4. package/dist/application/AbortablePromise.js +6 -3
  5. package/dist/application/AnalysisSnapshotCache.js +0 -1
  6. package/dist/application/AnalysisSnapshotFiles.js +7 -7
  7. package/dist/application/AndroidApplicationService.js +1 -1
  8. package/dist/application/AppleApplicationService.js +1 -1
  9. package/dist/application/ArtifactExtraction.js +35 -54
  10. package/dist/application/ArtifactExtractionDestination.js +17 -0
  11. package/dist/application/ArtifactGraphConstruction.js +2 -17
  12. package/dist/application/ArtifactInventory/classify.js +2 -6
  13. package/dist/application/ArtifactInventory/hash.js +2 -20
  14. package/dist/application/ArtifactInventory/scanCanonical.js +8 -12
  15. package/dist/application/ArtifactInventory/scanReader.js +69 -51
  16. package/dist/application/ArtifactInventory.js +6 -14
  17. package/dist/application/AuthorizedArtifactInventory.js +3 -13
  18. package/dist/application/BinarySession.js +41 -13
  19. package/dist/application/BinarySessionComposition.js +0 -11
  20. package/dist/application/BinarySessionOpen.js +2 -1
  21. package/dist/application/BinarySessionRecords.js +5 -93
  22. package/dist/application/BinarySessionStatus.js +5 -16
  23. package/dist/application/BinaryTargetResolver.js +216 -0
  24. package/dist/application/BrowserEvidence.js +42 -58
  25. package/dist/application/BrowserObservationService.js +3 -6
  26. package/dist/application/BrowserScenarioCaptureService.js +3 -6
  27. package/dist/application/BrowserScenarioEvidence.js +3 -3
  28. package/dist/application/CallPathTracing.js +2 -36
  29. package/dist/application/CapabilityInventory.js +10 -15
  30. package/dist/application/ClientConfigurationDocument.js +27 -0
  31. package/dist/application/ClientRegistrationStatus.js +16 -13
  32. package/dist/application/CommandShimReplay.js +14 -1
  33. package/dist/application/DirectAnalysis.js +22 -46
  34. package/dist/application/DirectAnalysisStatus.js +5 -61
  35. package/dist/application/Doctor.js +11 -32
  36. package/dist/application/DoctorDiagnostics.js +1 -2
  37. package/dist/application/DoctorScope.js +1 -1
  38. package/dist/application/ElectronActiveEvidence.js +3 -8
  39. package/dist/application/ElectronActiveObservationService.js +3 -6
  40. package/dist/application/ElectronBoundaryAnalysis.js +7 -8
  41. package/dist/application/ElectronBoundaryGraphContext.js +1 -1
  42. package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
  43. package/dist/application/ElectronBoundaryGraphNative.js +1 -2
  44. package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
  45. package/dist/application/ElectronEvidence.js +4 -7
  46. package/dist/application/ElectronObservationService.js +5 -9
  47. package/dist/application/EnhancedLiteralTracing.js +42 -65
  48. package/dist/application/EnhancedTools.js +76 -44
  49. package/dist/application/EvidenceBundleCommands.js +11 -11
  50. package/dist/application/EvidenceBundleFiles.js +9 -15
  51. package/dist/application/EvidenceLedger.js +6 -41
  52. package/dist/application/FilesystemSnapshot.js +2 -3
  53. package/dist/application/InterfaceBuilderAnalysis.js +266 -0
  54. package/dist/application/InventoryProjectionEvidence.js +4 -2
  55. package/dist/application/InvestigationProviders.js +1 -1
  56. package/dist/application/JavaScriptApplicationEvidence.js +2 -5
  57. package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
  58. package/dist/application/JavaScriptApplicationService.js +6 -29
  59. package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
  60. package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
  61. package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
  62. package/dist/application/JavaScriptArtifactFiles.js +67 -107
  63. package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
  64. package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
  65. package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
  66. package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
  67. package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
  68. package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
  69. package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
  70. package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
  71. package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
  72. package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
  73. package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
  74. package/dist/application/JavaScriptJsonModules.js +2 -2
  75. package/dist/application/JavaScriptModuleRelationships.js +22 -27
  76. package/dist/application/JavaScriptReplayPlanning.js +9 -3
  77. package/dist/application/JavaScriptReplayService.js +6 -32
  78. package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
  79. package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
  80. package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
  81. package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
  82. package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
  83. package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
  84. package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
  85. package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
  86. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
  87. package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
  88. package/dist/application/JavaScriptSemanticTraceService.js +1 -10
  89. package/dist/application/JsonFiles.js +79 -0
  90. package/dist/application/LinuxHopper.js +11 -9
  91. package/dist/application/LoopbackReplay.js +26 -23
  92. package/dist/application/LoopbackReplayRecorder.js +29 -1
  93. package/dist/application/ManagedApplicationGraphService.js +1 -2
  94. package/dist/application/ManagedMemberComparisonService.js +11 -41
  95. package/dist/application/ManagedNativeVerificationService.js +1 -2
  96. package/dist/application/ManagedReconstructionService.js +1 -1
  97. package/dist/application/ManagedRuntimeCorrelationService.js +5 -8
  98. package/dist/application/NativeApiInspection.js +2 -7
  99. package/dist/application/NativeUiActionTrace.js +394 -0
  100. package/dist/application/NodeRuntimeCharacterizationService.js +3 -7
  101. package/dist/application/PermissionAuthority.js +15 -7
  102. package/dist/application/PermissionFailure.js +5 -0
  103. package/dist/application/ProcessCaptureAuthority.js +5 -7
  104. package/dist/application/ProcessCaptureJournal.js +3 -2
  105. package/dist/application/ProcessCaptureLifecycle.js +5 -12
  106. package/dist/application/ProcessCheckpoints.js +29 -11
  107. package/dist/application/ProcessCli.js +6 -16
  108. package/dist/application/ProcessEvidence.js +5 -7
  109. package/dist/application/ProcessHarness.js +52 -17
  110. package/dist/application/ProcessReactiveCoordinator.js +2 -4
  111. package/dist/application/ProcessReactiveEffects.js +9 -3
  112. package/dist/application/ProcessReactiveHarness.js +13 -7
  113. package/dist/application/ProcessSampling.js +2 -4
  114. package/dist/application/ProcessTimer.js +39 -0
  115. package/dist/application/ProjectPermissionStore.js +39 -96
  116. package/dist/application/RealHopperAssertions.js +20 -66
  117. package/dist/application/ReconstructionCoverageService.js +12 -58
  118. package/dist/application/ReconstructionObligationAuthority.js +2 -2
  119. package/dist/application/ReconstructionObligationCandidates.js +4 -4
  120. package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
  121. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
  122. package/dist/application/ReconstructionObligationLedgerService.js +19 -38
  123. package/dist/application/ReferenceSourceImport.js +19 -45
  124. package/dist/application/ReferenceSourceImportEntries.js +2 -4
  125. package/dist/application/ReferenceSourceImportPolicy.js +5 -32
  126. package/dist/application/ReferenceSourceImportTypes.js +0 -16
  127. package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
  128. package/dist/application/SessionProviderRouter.js +2 -2
  129. package/dist/application/Setup.js +1 -3
  130. package/dist/application/SetupClientConfiguration.js +22 -93
  131. package/dist/application/SetupRegistrationEnvironment.js +0 -7
  132. package/dist/application/StoreFileLock.js +119 -0
  133. package/dist/application/TerminalRenderer.js +2 -3
  134. package/dist/application/Uninstall.js +9 -14
  135. package/dist/application/UnknownEvidence.js +1 -1
  136. package/dist/artifacts/ArtifactPaths.js +2 -5
  137. package/dist/artifacts/ArtifactProvider.js +36 -58
  138. package/dist/artifacts/DirectoryArtifactReader.js +13 -8
  139. package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
  140. package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
  141. package/dist/artifacts/NibArchive.js +269 -0
  142. package/dist/artifacts/SafeOutputTree.js +15 -24
  143. package/dist/browser/BrowserProcessStartup.js +1 -2
  144. package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
  145. package/dist/browser/CdpBrowserProvider.js +3 -13
  146. package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
  147. package/dist/browser/CdpCaptureDocuments.js +28 -76
  148. package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
  149. package/dist/browser/CdpCaptureEventHandlers.js +22 -87
  150. package/dist/browser/CdpCaptureEvents.js +2 -8
  151. package/dist/browser/CdpCaptureStorage.js +9 -20
  152. package/dist/browser/CdpCaptureStorageFingerprints.js +85 -98
  153. package/dist/browser/CdpCaptureValues.js +21 -21
  154. package/dist/browser/CdpConnection.js +10 -25
  155. package/dist/browser/CdpElectronInspection.js +26 -50
  156. package/dist/browser/CdpElectronProvider.js +10 -35
  157. package/dist/browser/CdpElectronScriptEvents.js +8 -16
  158. package/dist/browser/CdpElectronScripts.js +6 -35
  159. package/dist/browser/CdpElectronWorkers.js +6 -10
  160. package/dist/browser/CdpEndpoint.js +25 -41
  161. package/dist/browser/CdpObservationSession.js +14 -26
  162. package/dist/browser/CdpPageCapture.js +34 -48
  163. package/dist/browser/CdpPageCaptureScripts.js +1 -19
  164. package/dist/browser/CdpPageCaptureWorkers.js +6 -10
  165. package/dist/browser/CdpSafeMetadata.js +19 -22
  166. package/dist/browser/CdpScreenshot.js +3 -5
  167. package/dist/browser/CdpTargetSession.js +1 -2
  168. package/dist/browser/CdpWebMcpDiscovery.js +13 -22
  169. package/dist/browser/ElectronFileScope.js +8 -19
  170. package/dist/browser/JavaScriptRuntimeScope.js +9 -14
  171. package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
  172. package/dist/browser/PlaywrightElectronActiveActions.js +54 -69
  173. package/dist/browser/PlaywrightElectronActiveProvider.js +14 -34
  174. package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
  175. package/dist/browser/PlaywrightScenarioActions.js +3 -7
  176. package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
  177. package/dist/browser/PlaywrightScenarioBrowser.js +3 -5
  178. package/dist/browser/PlaywrightScenarioEvents.js +45 -94
  179. package/dist/browser/PlaywrightScenarioSession.js +14 -30
  180. package/dist/browser/PngVisualDiff.js +22 -14
  181. package/dist/browser/SensitiveTextCapture.js +0 -17
  182. package/dist/browser/V8InspectorCaptureProjection.js +7 -8
  183. package/dist/browser/V8InspectorEndpoint.js +12 -14
  184. package/dist/browser/V8InspectorProvider.js +20 -61
  185. package/dist/browser/WebSourceMapFetcher.js +56 -176
  186. package/dist/catalogIdentity.js +0 -54
  187. package/dist/cli/artifactCommands.js +49 -77
  188. package/dist/cli/coreAnalysisCommands.js +83 -133
  189. package/dist/cli/javascriptApplicationAnalysis.js +1 -9
  190. package/dist/cli/managedCommands.js +5 -270
  191. package/dist/cli/setupCommands.js +3 -12
  192. package/dist/cli/utilityCommands.js +7 -41
  193. package/dist/cli.js +0 -2
  194. package/dist/cliApplicationCommands.js +42 -112
  195. package/dist/cliBrowserAdvancedCommands.js +10 -106
  196. package/dist/cliBrowserCommands.js +15 -127
  197. package/dist/cliBrowserContext.js +30 -0
  198. package/dist/cliCommandNames.js +4 -5
  199. package/dist/cliElectronCommands.js +8 -72
  200. package/dist/cliEvidenceCommands.js +8 -77
  201. package/dist/cliJavaScriptRuntimeCommands.js +9 -91
  202. package/dist/cliJsonInput.js +4 -14
  203. package/dist/cliObservationOptions.js +11 -96
  204. package/dist/cliPolicyCommands.js +2 -17
  205. package/dist/cliProcessCommands.js +3 -3
  206. package/dist/cliSetup.js +0 -13
  207. package/dist/config/browserScenario.js +2 -2
  208. package/dist/config/environment.js +0 -9
  209. package/dist/config/parseConfig.js +1 -33
  210. package/dist/config/parsers.js +6 -27
  211. package/dist/config/passiveObservation.js +7 -77
  212. package/dist/config/permissions.js +0 -7
  213. package/dist/contracts/analysisSearchContract.js +2 -5
  214. package/dist/contracts/applicationToolContracts.js +56 -109
  215. package/dist/contracts/applicationWorkflowInputContracts.js +27 -102
  216. package/dist/contracts/artifactComparisonExample.js +58 -60
  217. package/dist/contracts/artifactToolContracts.js +20 -67
  218. package/dist/contracts/browserScenarioToolContracts.js +6 -51
  219. package/dist/contracts/browserToolContracts.js +8 -73
  220. package/dist/contracts/electronToolContracts.js +8 -108
  221. package/dist/contracts/enhancedInputs.js +23 -54
  222. package/dist/contracts/errorSchemas.js +0 -1
  223. package/dist/contracts/functionComparisonExample.js +10 -24
  224. package/dist/contracts/functionInstructionContract.js +1 -3
  225. package/dist/contracts/functionWorkflowToolContracts.js +2 -2
  226. package/dist/contracts/hopperMemoryContracts.js +3 -3
  227. package/dist/contracts/investigationExamples.js +14 -11
  228. package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
  229. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
  230. package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
  231. package/dist/contracts/managedToolContracts.js +6 -95
  232. package/dist/contracts/managedWorkflowExamples.js +77 -128
  233. package/dist/contracts/managedWorkflowToolContracts.js +51 -77
  234. package/dist/contracts/nativeToolContracts.js +7 -11
  235. package/dist/contracts/processCaptureExample.js +2 -69
  236. package/dist/contracts/promptContracts.js +49 -67
  237. package/dist/contracts/providerSelection.js +0 -1
  238. package/dist/contracts/reconstructionReadinessExample.js +1 -6
  239. package/dist/contracts/sessionStatusContract.js +1 -17
  240. package/dist/contracts/sessionToolSchemas.js +6 -15
  241. package/dist/contracts/toolContractExamples.js +11 -11
  242. package/dist/contracts/toolContractHelpers.js +0 -4
  243. package/dist/contracts/toolContracts.js +60 -71
  244. package/dist/contracts/toolEffects.js +5 -13
  245. package/dist/contracts/toolOutputSchemaGroups.js +37 -91
  246. package/dist/contracts/toolOutputSchemaPrimitives.js +16 -56
  247. package/dist/contracts/toolSchemaMetadata.js +8 -19
  248. package/dist/contracts/unknownContractExamples.js +0 -2
  249. package/dist/domain/analysisErrorPresentation.js +46 -54
  250. package/dist/domain/analysisErrorProjection.js +28 -37
  251. package/dist/domain/analysisProfile.js +3 -31
  252. package/dist/domain/analysisSnapshot.js +3 -12
  253. package/dist/domain/androidApplication.js +15 -54
  254. package/dist/domain/appleApplication.js +24 -67
  255. package/dist/domain/artifactComparison.js +11 -29
  256. package/dist/domain/artifactGraph.js +14 -44
  257. package/dist/domain/artifactInspection.js +38 -69
  258. package/dist/domain/artifactInventoryEvidence.js +27 -21
  259. package/dist/domain/binaryTarget.js +2 -221
  260. package/dist/domain/browserCaptureComparison.js +47 -24
  261. package/dist/domain/browserObservation.js +28 -193
  262. package/dist/domain/browserObservationSchemas.js +5 -23
  263. package/dist/domain/browserScenario.js +11 -14
  264. package/dist/domain/browserScenarioCapture.js +11 -12
  265. package/dist/domain/browserScenarioCaptureValues.js +146 -84
  266. package/dist/domain/browserScenarioDiff.js +2 -59
  267. package/dist/domain/browserScenarioDiffEvidence.js +51 -0
  268. package/dist/domain/browserScenarioDiffValues.js +21 -38
  269. package/dist/domain/browserScenarioValues.js +80 -109
  270. package/dist/domain/browserSession.js +4 -7
  271. package/dist/domain/bundleComparison.js +6 -32
  272. package/dist/domain/bytecodeProvider.js +20 -19
  273. package/dist/domain/callPath.js +47 -167
  274. package/dist/domain/callPathSchemas.js +79 -0
  275. package/dist/domain/changedBehavior.js +34 -60
  276. package/dist/domain/completionLedgerGeneration.js +8 -14
  277. package/dist/domain/conformancePackage.js +126 -97
  278. package/dist/domain/conformanceReplay.js +36 -8
  279. package/dist/domain/conformanceTrustGate.js +23 -14
  280. package/dist/domain/customProtocolCapture.js +1 -1
  281. package/dist/domain/electronActiveObservation.js +70 -103
  282. package/dist/domain/electronObservation.js +14 -80
  283. package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
  284. package/dist/domain/electronStaticAnalysisIpc.js +38 -14
  285. package/dist/domain/electronStaticAnalysisNative.js +1 -8
  286. package/dist/domain/electronStaticAnalysisValues.js +10 -17
  287. package/dist/domain/errors.js +33 -54
  288. package/dist/domain/eventProcessTree.js +20 -12
  289. package/dist/domain/evidence.js +2 -10
  290. package/dist/domain/evidenceBundle.js +3 -5
  291. package/dist/domain/evidenceCompletionLedger.js +6 -8
  292. package/dist/domain/functionComparison.js +4 -14
  293. package/dist/domain/functionComparisonNormalization.js +4 -11
  294. package/dist/domain/functionComparisonResults.js +25 -15
  295. package/dist/domain/functionComparisonSchemas.js +49 -33
  296. package/dist/domain/functionDossierEvidence.js +31 -156
  297. package/dist/domain/hopperStartupFailure.js +1 -1
  298. package/dist/domain/hopperValues.js +15 -136
  299. package/dist/domain/interfaceBuilderGraph.js +654 -0
  300. package/dist/domain/javascriptApplicationAnalysis.js +8 -112
  301. package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
  302. package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
  303. package/dist/domain/javascriptApplicationGraph.js +3 -13
  304. package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
  305. package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
  306. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
  307. package/dist/domain/javascriptApplicationVersionItems.js +120 -53
  308. package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
  309. package/dist/domain/javascriptAstFingerprint.js +25 -58
  310. package/dist/domain/javascriptAstValues.js +9 -0
  311. package/dist/domain/javascriptExportInstrumentation.js +2 -4
  312. package/dist/domain/javascriptExportShapeComparison.js +6 -7
  313. package/dist/domain/javascriptExportShapeComparisonSchemas.js +68 -75
  314. package/dist/domain/javascriptExportShapeSelection.js +17 -19
  315. package/dist/domain/javascriptFeatureSeed.js +20 -12
  316. package/dist/domain/javascriptFeatureTrace.js +13 -67
  317. package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
  318. package/dist/domain/javascriptFeatureTraversal.js +1 -44
  319. package/dist/domain/javascriptNativeHandoff.js +1 -1
  320. package/dist/domain/javascriptReplay.js +24 -41
  321. package/dist/domain/javascriptRuntimeLoadState.js +3 -8
  322. package/dist/domain/javascriptRuntimeObservation.js +42 -103
  323. package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
  324. package/dist/domain/javascriptRuntimeReconciliationActive.js +8 -17
  325. package/dist/domain/javascriptRuntimeReconciliationGraph.js +10 -23
  326. package/dist/domain/javascriptRuntimeReconciliationMatching.js +18 -12
  327. package/dist/domain/javascriptRuntimeReconciliationParsing.js +16 -45
  328. package/dist/domain/javascriptRuntimeReconciliationResult.js +4 -5
  329. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
  330. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +33 -48
  331. package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
  332. package/dist/domain/javascriptSemanticAnalysis.js +12 -45
  333. package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
  334. package/dist/domain/javascriptSemanticCallResolution.js +6 -16
  335. package/dist/domain/javascriptSemanticCalls.js +5 -32
  336. package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
  337. package/dist/domain/javascriptSemanticCoverage.js +11 -0
  338. package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
  339. package/dist/domain/javascriptSemanticDataEffects.js +1 -11
  340. package/dist/domain/javascriptSemanticFingerprints.js +3 -5
  341. package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
  342. package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
  343. package/dist/domain/javascriptSemanticIr.js +1 -29
  344. package/dist/domain/javascriptSemanticObjects.js +1 -5
  345. package/dist/domain/javascriptSemanticPrimitives.js +2 -9
  346. package/dist/domain/javascriptSemanticProjection.js +0 -18
  347. package/dist/domain/javascriptSemanticPromises.js +9 -16
  348. package/dist/domain/javascriptSemanticProvenance.js +16 -19
  349. package/dist/domain/javascriptSemanticQuery.js +17 -139
  350. package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
  351. package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
  352. package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
  353. package/dist/domain/javascriptSemanticResources.js +1 -6
  354. package/dist/domain/javascriptSemanticReturns.js +10 -27
  355. package/dist/domain/javascriptSemanticValueTypes.js +1 -0
  356. package/dist/domain/javascriptSemanticValues.js +44 -62
  357. package/dist/domain/javascriptStaticAnalysis.js +21 -43
  358. package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
  359. package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
  360. package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
  361. package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
  362. package/dist/domain/javascriptStaticAnalysisState.js +1 -5
  363. package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
  364. package/dist/domain/jsonShape.js +7 -33
  365. package/dist/domain/localPath.js +7 -0
  366. package/dist/domain/managedApplicationGraph.js +9 -41
  367. package/dist/domain/managedApplicationGraphCoverage.js +24 -156
  368. package/dist/domain/managedApplicationGraphNodes.js +10 -13
  369. package/dist/domain/managedArtifact.js +14 -27
  370. package/dist/domain/managedMemberComparison.js +90 -92
  371. package/dist/domain/managedMemberComparisonCoverage.js +11 -33
  372. package/dist/domain/managedMemberComparisonItems.js +221 -0
  373. package/dist/domain/managedMemberComparisonMatch.js +8 -208
  374. package/dist/domain/managedNativeVerification.js +3 -6
  375. package/dist/domain/managedNativeVerificationMatch.js +55 -59
  376. package/dist/domain/managedNativeVerificationSchemas.js +83 -47
  377. package/dist/domain/managedReconstruction.js +19 -23
  378. package/dist/domain/managedRuntimeCorrelation.js +6 -9
  379. package/dist/domain/nativeApiBoundary.js +2 -7
  380. package/dist/domain/nativeInspection.js +0 -2
  381. package/dist/domain/nativeInvestigationGraph.js +351 -0
  382. package/dist/domain/nativeValueFlow.js +61 -0
  383. package/dist/domain/nodeRuntimeCharacterization.js +1 -5
  384. package/dist/domain/objcSwiftMetadata.js +254 -0
  385. package/dist/domain/peInspection.js +1 -1
  386. package/dist/domain/permissionPolicy.js +13 -0
  387. package/dist/domain/processCapture.js +76 -113
  388. package/dist/domain/processCaptureExample.js +68 -0
  389. package/dist/domain/processCaptureParsing.js +21 -0
  390. package/dist/domain/processCaptureReactiveSchema.js +68 -0
  391. package/dist/domain/processCaptureValidation.js +1 -7
  392. package/dist/domain/processComparison.js +3 -12
  393. package/dist/domain/processReactiveMatching.js +29 -50
  394. package/dist/domain/processReactiveRuntime.js +4 -8
  395. package/dist/domain/processReactiveScenario.js +28 -94
  396. package/dist/domain/processReactiveScenarioPreflight.js +5 -30
  397. package/dist/domain/processReactiveTransition.js +33 -18
  398. package/dist/domain/processScenario.js +56 -90
  399. package/dist/domain/processTraceComparison.js +0 -8
  400. package/dist/domain/processTraceEvaluation.js +14 -4
  401. package/dist/domain/processTraceSpecification.js +11 -17
  402. package/dist/domain/protocolCapture.js +3 -3
  403. package/dist/domain/reconstructionCoverage.js +62 -129
  404. package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
  405. package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
  406. package/dist/domain/reconstructionReadiness.js +1 -2
  407. package/dist/domain/reconstructionReadinessSchemas.js +36 -38
  408. package/dist/domain/reconstructionUnknowns.js +3 -3
  409. package/dist/domain/reconstructionVerification.js +13 -47
  410. package/dist/domain/reconstructionVerificationSchemas.js +50 -38
  411. package/dist/domain/referenceSourceGraph.js +53 -61
  412. package/dist/domain/referenceSourceImportParsing.js +1 -5
  413. package/dist/domain/replayMachine.js +19 -31
  414. package/dist/domain/replayMachineRun.js +15 -63
  415. package/dist/domain/replayMachineRuntime.js +41 -41
  416. package/dist/domain/replayMachineValues.js +84 -0
  417. package/dist/domain/residualUnknown.js +25 -30
  418. package/dist/domain/runtimeCharacterization.js +15 -16
  419. package/dist/domain/runtimeIdentification.js +48 -47
  420. package/dist/domain/sourceToBundleComparison.js +9 -85
  421. package/dist/domain/sourceToBundleComparisonSchemas.js +17 -42
  422. package/dist/domain/sourceToBundleSignals.js +4 -15
  423. package/dist/domain/staticRuntimeCorrelation.js +37 -49
  424. package/dist/domain/symbolAnalysis.js +10 -19
  425. package/dist/domain/unicodeCodePointOrder.js +12 -0
  426. package/dist/domain/webBundleAnalysis.js +70 -99
  427. package/dist/domain/webBundleAnalyzer.js +2 -4
  428. package/dist/domain/webBundleAnalyzerAst.js +0 -13
  429. package/dist/domain/webBundleAnalyzerInspection.js +26 -52
  430. package/dist/domain/webBundleAnalyzerResult.js +7 -24
  431. package/dist/domain/webCaptureDiff.js +33 -73
  432. package/dist/domain/webCaptureDiffSchemas.js +86 -0
  433. package/dist/domain/webContentArtifact.js +1 -10
  434. package/dist/domain/webMcpDiscovery.js +3 -14
  435. package/dist/domain/webScreenshot.js +58 -34
  436. package/dist/domain/zipPackageFormat.js +7 -0
  437. package/dist/dotnet/ManagedArtifactInspector.js +17 -50
  438. package/dist/dotnet/ManagedMemberInspector.js +27 -58
  439. package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
  440. package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
  441. package/dist/dotnet/ManagedMemberRows.js +16 -16
  442. package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
  443. package/dist/dotnet/ManagedMetadataInventory.js +21 -30
  444. package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
  445. package/dist/dotnet/ManagedMetadataLayout.js +3 -5
  446. package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
  447. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
  448. package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -41
  449. package/dist/dotnet/ManagedPeReader.js +2 -2
  450. package/dist/dotnet/ManagedStaticProvider.js +13 -71
  451. package/dist/generatedMcpToolCatalog.js +1 -1
  452. package/dist/generatedPackageMetadata.js +1 -1
  453. package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
  454. package/dist/ghidra/GhidraClient.js +4 -12
  455. package/dist/ghidra/GhidraClientWire.js +9 -5
  456. package/dist/ghidra/GhidraDefaults.js +0 -18
  457. package/dist/ghidra/GhidraDiagnostics.js +0 -2
  458. package/dist/ghidra/GhidraDoctor.js +16 -12
  459. package/dist/ghidra/GhidraFunctionValues.js +65 -108
  460. package/dist/ghidra/GhidraInstallation.js +98 -42
  461. package/dist/ghidra/GhidraInventoryValues.js +16 -85
  462. package/dist/ghidra/GhidraLauncher.js +0 -8
  463. package/dist/ghidra/GhidraProvider.js +15 -22
  464. package/dist/ghidra/GhidraProviderCapabilities.js +6 -47
  465. package/dist/ghidra/GhidraRequestQueue.js +6 -30
  466. package/dist/ghidra/GhidraResponseBuffer.js +1 -7
  467. package/dist/ghidra/GhidraSessionValues.js +0 -2
  468. package/dist/ghidra/GhidraTransport.js +4 -7
  469. package/dist/ghidra/protocol.js +2 -2
  470. package/dist/hopper/BridgeLauncher.js +112 -36
  471. package/dist/hopper/HopperAnalysisProfile.js +1 -1
  472. package/dist/hopper/HopperCleanup.js +6 -3
  473. package/dist/hopper/HopperClient.js +4 -7
  474. package/dist/hopper/HopperProcessDiagnostic.js +2 -2
  475. package/dist/hopper/HopperProvider.js +0 -16
  476. package/dist/hopper/HopperRequestQueue.js +21 -40
  477. package/dist/hopper/HopperResponseStream.js +1 -9
  478. package/dist/hopper/HopperSessionValues.js +3 -2
  479. package/dist/hopper/HopperTargetLease.js +119 -0
  480. package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
  481. package/dist/hopper/LinuxPrivateDisplayProbe.js +5 -16
  482. package/dist/hopper/protocol.js +6 -4
  483. package/dist/main/reload.js +0 -3
  484. package/dist/main/shutdown.js +1 -1
  485. package/dist/main/state.js +0 -9
  486. package/dist/main/transport.js +0 -5
  487. package/dist/mcpDoctor.js +25 -45
  488. package/dist/native/CommandRunner.js +18 -25
  489. package/dist/native/NativeMacOSProvider.js +13 -38
  490. package/dist/native/NativeMachoInspection.js +1 -1
  491. package/dist/process/BoundedFileBytes.js +17 -0
  492. package/dist/process/ExecFileOutput.js +11 -0
  493. package/dist/process/PendingOperations.js +8 -6
  494. package/dist/process/ProcessOwnership.js +3 -2
  495. package/dist/process/ProcessOwnershipObservation.js +0 -1
  496. package/dist/process/ProviderProcess.js +7 -28
  497. package/dist/reference/ReferenceSourceReader.js +8 -24
  498. package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
  499. package/dist/reference/ReferenceSourceReaderFile.js +13 -31
  500. package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
  501. package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
  502. package/dist/replay/JavaScriptReplayWorker.js +3 -5
  503. package/dist/replay/LinuxJavaScriptReplayRunner.js +33 -29
  504. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
  505. package/dist/replay/LinuxRuntimeClosure.js +1 -3
  506. package/dist/replay/ReplayOutcome.js +1 -3
  507. package/dist/replay/ReplayProcessLifecycle.js +32 -7
  508. package/dist/replay/ReplaySeccompFile.js +29 -0
  509. package/dist/replay/ReplayWorkerProtocol.js +0 -2
  510. package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
  511. package/dist/server/ProcessCaptureElicitation.js +4 -8
  512. package/dist/server/createServer.js +6 -44
  513. package/dist/server/promptCompletion.js +37 -61
  514. package/dist/server/recordDerivedEvidence.js +1 -1
  515. package/dist/server/registerApplicationTools/characterization.js +4 -8
  516. package/dist/server/registerApplicationTools/compareExportShapes.js +5 -10
  517. package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -10
  518. package/dist/server/registerApplicationTools/compareVersions.js +5 -10
  519. package/dist/server/registerApplicationTools/controlledReplay.js +3 -5
  520. package/dist/server/registerApplicationTools/coverage.js +6 -71
  521. package/dist/server/registerApplicationTools/helpers.js +1 -13
  522. package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
  523. package/dist/server/registerApplicationTools/traceFeature.js +5 -9
  524. package/dist/server/registerApplicationTools/traceSemantics.js +5 -8
  525. package/dist/server/registerApplicationTools.js +0 -2
  526. package/dist/server/registerArtifactComparisonTool.js +23 -27
  527. package/dist/server/registerBrowserScenarioTool.js +4 -4
  528. package/dist/server/registerBrowserTools.js +5 -8
  529. package/dist/server/registerBundleComparisonTool.js +5 -7
  530. package/dist/server/registerCloseLifecycleTool.js +2 -16
  531. package/dist/server/registerElectronTools.js +10 -29
  532. package/dist/server/registerEnhancedTools.js +10 -11
  533. package/dist/server/registerEvidenceTools.js +15 -22
  534. package/dist/server/registerFunctionComparisonTool.js +30 -25
  535. package/dist/server/registerInvestigationTools/helpers.js +3 -32
  536. package/dist/server/registerInvestigationTools.js +20 -116
  537. package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -4
  538. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +15 -17
  539. package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
  540. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -8
  541. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +3 -8
  542. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +10 -14
  543. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +9 -15
  544. package/dist/server/registerOfficialTools.js +1 -43
  545. package/dist/server/registerProcessComparisonTool.js +33 -23
  546. package/dist/server/registerPrompts.js +19 -17
  547. package/dist/server/registerSessionRecordTools.js +10 -156
  548. package/dist/server/registerSessionStatusTool.js +6 -69
  549. package/dist/server/registerSessionTools.js +10 -51
  550. package/dist/server/sessionAvailabilityPolicy.js +0 -2
  551. package/dist/server/sessionEvidence.js +9 -15
  552. package/dist/server/sessionToolPolicies.js +0 -8
  553. package/dist/server/toolResult.js +14 -50
  554. package/dist/serverIdentity.js +0 -20
  555. package/install.sh +1 -1
  556. package/package.json +11 -7
  557. package/scripts/electron-active-hook.cjs +23 -55
  558. package/scripts/hopper-demo-x11.py +13 -32
  559. package/skills/reverse-engineer-anything/SKILL.md +47 -12
  560. package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
  561. package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
  562. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
  563. package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -188
  564. package/dist/application/BoundedJsonFiles.js +0 -86
  565. package/dist/application/CrossVersionInventory.js +0 -129
  566. package/dist/application/CrossVersionInvestigation.js +0 -301
  567. package/dist/application/CrossVersionInvestigationCollections.js +0 -23
  568. package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
  569. package/dist/application/CrossVersionInvestigationReplay.js +0 -170
  570. package/dist/application/DeferredFileAuthorization.js +0 -61
  571. package/dist/application/DoctorProjection.js +0 -43
  572. package/dist/application/EnhancedToolPagination.js +0 -22
  573. package/dist/application/EvidenceReferenceResolver.js +0 -26
  574. package/dist/application/InvestigationWorkspaceStore.js +0 -204
  575. package/dist/application/ProcessPairedExperiment.js +0 -72
  576. package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
  577. package/dist/application/ReconstructionReadinessService.js +0 -48
  578. package/dist/cliInvestigationCommands.js +0 -173
  579. package/dist/domain/boundedCartesianProjection.js +0 -15
  580. package/dist/domain/investigationWorkspace.js +0 -347
  581. package/dist/domain/jsonLimits.js +0 -26
  582. package/dist/domain/knownPageCoverage.js +0 -29
  583. package/dist/domain/processPairedExperiment.js +0 -128
  584. package/dist/server/javascriptApplicationResult.js +0 -106
  585. package/dist/server/permissionFailure.js +0 -12
  586. package/dist/server/registerApplicationTools/readiness.js +0 -50
  587. package/dist/server/registerEvidenceResources.js +0 -315
  588. package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
  589. package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
  590. package/dist/server/registerReconstructionReadinessResource.js +0 -32
@@ -1,50 +0,0 @@
1
- import { evaluateReconstructionReadinessValidated, resolveReconstructionReadinessRequest, } from "../../application/ReconstructionReadinessService.js";
2
- import { applicationToolContract } from "../../contracts/applicationToolContracts.js";
3
- import { reconstructionReadinessReportSchema } from "../../domain/reconstructionReadinessSchemas.js";
4
- import { logToolExecution } from "../toolLogging.js";
5
- import { toolRegistrationOptions } from "../toolRegistrationOptions.js";
6
- import { toCallToolResult } from "../toolResult.js";
7
- import { recordSources } from "./helpers.js";
8
- const contract = applicationToolContract("evaluate_reconstruction_readiness");
9
- /** Register deterministic public-contract reconstruction conformance. */
10
- export const registerReconstructionReadinessTool = (server, options) => {
11
- server.registerTool(contract.name, toolRegistrationOptions(contract), async (input) => {
12
- const resolved = resolveReconstructionReadinessRequest(input);
13
- if (!resolved.ok)
14
- return toCallToolResult(resolved, contract);
15
- const result = await logToolExecution(options.logger, contract.name, () => Promise.resolve(evaluateReconstructionReadinessValidated(resolved.value)));
16
- if (!result.ok)
17
- return toCallToolResult(result, contract);
18
- const recorded = recordSources(options.recordEvidence, resolved.value.evidence_bundle.records);
19
- if (!recorded.ok)
20
- return toCallToolResult(recorded, contract);
21
- const recordedResult = options.recordEvidence?.(result.value);
22
- if (recordedResult !== undefined && !recordedResult.ok)
23
- return toCallToolResult(recordedResult, contract);
24
- const report = reconstructionReadinessReportSchema.parse(result.value.normalized_result);
25
- const reportUri = `rea://evidence/${result.value.evidence_id}/reconstruction-readiness-report`;
26
- const projection = {
27
- schema: report.schema,
28
- schema_version: report.schema_version,
29
- report_id: report.report_id,
30
- source_digest: report.source_digest,
31
- report_digest: report.report_digest,
32
- status: report.status,
33
- summary: report.summary,
34
- metrics: report.metrics,
35
- report_resource_uri: reportUri,
36
- };
37
- return toCallToolResult({ ok: true, value: result.value }, contract, {
38
- evidenceResourcesAvailable: recordedResult !== undefined,
39
- evidenceResultProjection: projection,
40
- evidenceTextProjection: projection,
41
- resourceLinks: [
42
- {
43
- uri: reportUri,
44
- name: report.report_id,
45
- description: "Full deterministic reconstruction readiness report",
46
- },
47
- ],
48
- });
49
- });
50
- };
@@ -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
- };