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,89 +1,28 @@
1
- import { z } from "zod";
2
1
  import { toolContractMetadata } from "./toolEffects.js";
3
2
  import { evidenceResultOf } from "./toolOutputSchemas.js";
4
3
  import { electronPageInspectionSchema, electronTargetListSchema, inspectElectronPageInputSchema, listElectronTargetsInputSchema, } from "../domain/electronObservation.js";
5
- import { analyzeJavaScriptApplicationInputSchema, javaScriptApplicationAnalysisResultV1Schema, javascriptApplicationAnalysisResultSchema, } from "../domain/javascriptApplicationAnalysis.js";
6
- import { JAVASCRIPT_APPLICATION_NODE_KINDS } from "../domain/javascriptApplicationGraphSchemas.js";
7
- import { applicationCoverageSchema } from "../domain/javascriptApplicationEvidenceSchemas.js";
4
+ import { electronActiveObservationInputSchema, electronActiveObservationResultSchema, } from "../domain/electronActiveObservation.js";
5
+ import { analyzeJavaScriptApplicationInputSchema, javascriptApplicationAnalysisResultSchema, } from "../domain/javascriptApplicationAnalysis.js";
8
6
  import { javascriptRuntimeReconciliationResultSchema, reconcileJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeReconciliationSchemas.js";
9
7
  import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "./javascriptRuntimeReconciliationExample.js";
10
8
  const listOutputSchema = evidenceResultOf(electronTargetListSchema);
11
9
  const inspectionOutputSchema = evidenceResultOf(electronPageInspectionSchema);
12
- /** MCP-only response selection; analysis identity does not depend on projection. */
13
- export const analyzeJavaScriptApplicationToolInputSchema = analyzeJavaScriptApplicationInputSchema.extend({
14
- detail: z
15
- .enum(["summary", "full"])
16
- .default("summary")
17
- .describe("summary returns bounded findings and paged graph resource URIs; full returns the complete graph only when explicitly required"),
18
- });
19
- /** Bounded default projection for agent-facing JavaScript application analysis. */
20
- const applicationGraphSummarySchema = z.strictObject({
21
- graph_id: z.string().regex(/^jag_[a-f0-9]{64}$/u),
22
- node_count: z.number().int().min(0),
23
- edge_count: z.number().int().min(0),
24
- roots: z.strictObject({
25
- items: z.array(z.string().regex(/^jag_node_[a-f0-9]{64}$/u)),
26
- total: z.number().int().min(0),
27
- truncated: z.boolean(),
28
- }),
29
- node_kinds: z.array(z.strictObject({
30
- kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
31
- count: z.number().int().min(1),
32
- })),
33
- top_findings: z.array(z.strictObject({
34
- node_id: z.string().regex(/^jag_node_[a-f0-9]{64}$/u),
35
- kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
36
- label: z.string().nullable(),
37
- authority: z.string(),
38
- state: z.string(),
39
- confidence: z.string(),
40
- location: z.json(),
41
- })),
42
- coverage: applicationCoverageSchema,
43
- limitations: z.array(z.string()),
44
- pages: z.strictObject({
45
- nodes: z.string().startsWith("rea://evidence/"),
46
- edges: z.string().startsWith("rea://evidence/"),
47
- page_limit: z.number().int().min(1).max(500),
48
- }),
49
- });
50
- const semanticGraphSummarySchema = z.strictObject({
51
- graph_id: z.string().regex(/^jsrg_[a-f0-9]{64}$/u),
52
- nodes: z.number().int().min(0),
53
- relations: z.number().int().min(0),
54
- unknown_frontiers: z.number().int().min(0),
55
- fingerprints: z.number().int().min(0),
56
- coverage: z.enum(["complete", "partial", "unknown", "unavailable"]),
57
- query_tool: z.literal("trace_javascript_semantics"),
58
- });
59
- const summaryFields = {
60
- unknowns: z.array(z.string().min(1).max(4_096)).max(1_000),
61
- graph: applicationGraphSummarySchema,
62
- };
63
- /** Bounded default projection for agent-facing JavaScript application analysis. */
64
- export const javascriptApplicationAnalysisSummarySchema = z.discriminatedUnion("schema_version", [
65
- javaScriptApplicationAnalysisResultV1Schema
66
- .omit({ graph: true })
67
- .extend(summaryFields),
68
- javaScriptApplicationAnalysisResultV1Schema.omit({ graph: true }).extend({
69
- schema_version: z.literal(2),
70
- ...summaryFields,
71
- semantic_graph: semanticGraphSummarySchema,
72
- }),
73
- ]);
74
- const applicationOutputSchema = evidenceResultOf(z.union([
75
- javascriptApplicationAnalysisSummarySchema,
76
- javascriptApplicationAnalysisResultSchema,
77
- ]));
10
+ const applicationOutputSchema = evidenceResultOf(javascriptApplicationAnalysisResultSchema);
78
11
  const reconciliationOutputSchema = evidenceResultOf(javascriptRuntimeReconciliationResultSchema);
79
12
  const endpoint = "http://127.0.0.1:9223";
80
- const root = "/Applications/Example.app/Contents/Resources";
13
+ const activeExample = {
14
+ executable_path: "/Applications/Electron.app/Contents/MacOS/Electron",
15
+ application_path: "/Applications/Example.app/Contents/Resources/main.js",
16
+ application_root: "/Applications/Example.app/Contents/Resources",
17
+ args: [],
18
+ actions: [{ step_id: "exercise-ipc", kind: "click", selector: "#run" }],
19
+ };
81
20
  /** Root-confined Electron file-page discovery and inspection contracts. */
82
21
  export const ELECTRON_TOOL_CONTRACTS = [
83
22
  {
84
23
  name: "list_electron_targets",
85
24
  ...toolContractMetadata("list_electron_targets"),
86
- description: "List Electron file:// page targets from an approved user-owned loopback CDP endpoint. Every path is canonicalized and must remain contained by an approved filesystem root, including after symlink resolution.",
25
+ description: "List every Electron file:// page target from an approved user-owned loopback CDP endpoint. Every path is canonicalized and must remain contained by an approved filesystem root, including after symlink resolution.",
87
26
  kind: "electron-provider",
88
27
  inputSchema: listElectronTargetsInputSchema,
89
28
  outputSchema: listOutputSchema,
@@ -92,10 +31,6 @@ export const ELECTRON_TOOL_CONTRACTS = [
92
31
  title: "List approved Electron file pages",
93
32
  input: {
94
33
  cdp_endpoint: endpoint,
95
- allowed_file_roots: [root],
96
- approved: true,
97
- offset: 0,
98
- limit: 100,
99
34
  },
100
35
  },
101
36
  ],
@@ -103,7 +38,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
103
38
  {
104
39
  name: "inspect_electron_page",
105
40
  ...toolContractMetadata("inspect_electron_page"),
106
- description: "Passively inspect one approved Electron file page through CDP. Returns root-confined frames, DOM structure, resource paths, and scripts without evaluating renderer JavaScript or invoking Electron APIs; script contents require separate approval.",
41
+ description: "Passively inspect one Electron file page by supplying its loopback CDP endpoint and target ID. The provider rechecks that the target currently exists at that endpoint and is a local file page. Returns frames, DOM structure, resource paths, and scripts without evaluating renderer JavaScript or invoking Electron APIs. The selected endpoint exposes every local file page and its metadata to this tool.",
107
42
  kind: "electron-provider",
108
43
  inputSchema: inspectElectronPageInputSchema,
109
44
  outputSchema: inspectionOutputSchema,
@@ -112,21 +47,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
112
47
  title: "Inspect an approved Electron page",
113
48
  input: {
114
49
  cdp_endpoint: endpoint,
115
- allowed_file_roots: [root],
116
50
  target_id: "TARGET_ID_FROM_LIST_ELECTRON_TARGETS",
117
- approved: true,
118
- observation_ms: 100,
119
- include_script_sources: false,
120
- source_capture_approved: false,
121
- limits: {
122
- max_frames: 200,
123
- max_dom_nodes: 2_000,
124
- max_scripts: 500,
125
- max_resources: 2_000,
126
- max_workers: 500,
127
- max_script_source_bytes: 1_048_576,
128
- max_total_script_source_bytes: 4_194_304,
129
- },
130
51
  },
131
52
  },
132
53
  ],
@@ -134,19 +55,16 @@ export const ELECTRON_TOOL_CONTRACTS = [
134
55
  {
135
56
  name: "analyze_javascript_application",
136
57
  ...toolContractMetadata("analyze_javascript_application"),
137
- description: "Statically reconstruct one approved local ASAR or extracted JavaScript application without executing it. The default summary returns architecture/security counts, top evidence-backed findings, unknowns, and paged graph resource URIs; request detail=full only when the complete graph must be returned immediately. Identical inputs are deterministic, so do not repeat the call or reread full Evidence without a specific missing detail.",
58
+ description: "Reconstruct one local ASAR or extracted JavaScript application as an inline application graph without executing it. Returns all recovered graph nodes, edges, semantic relations, limitations, and coverage.",
138
59
  kind: "electron-provider",
139
- inputSchema: analyzeJavaScriptApplicationToolInputSchema,
60
+ inputSchema: analyzeJavaScriptApplicationInputSchema,
140
61
  outputSchema: applicationOutputSchema,
141
62
  examples: [
142
63
  {
143
- title: "Analyze one approved local Electron application",
64
+ title: "Analyze one local JavaScript application",
144
65
  input: {
145
66
  input_path: "/Applications/Example.app/Contents/Resources/app.asar",
146
67
  format: "auto",
147
- approved: true,
148
- source_map_read_approved: false,
149
- detail: "summary",
150
68
  },
151
69
  },
152
70
  ],
@@ -154,7 +72,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
154
72
  {
155
73
  name: "reconcile_javascript_runtime",
156
74
  ...toolContractMetadata("reconcile_javascript_runtime"),
157
- description: "Reconcile verified static JavaScript application graphs with existing passive web or Electron CDP Evidence. Exact captured-source digests take priority over caller-declared file/URL mappings; target, frame, script, and worker ambiguity remains explicit, and source-map authority stays separate.",
75
+ description: "Reconcile verified static JavaScript application graphs with existing passive web/Electron CDP, passive V8 Inspector, or provider-owned active Electron Evidence. Active Electron captures contribute an explicitly partial target-only runtime record; they never invent renderer scripts, frames, workers, or execution claims. Exact captured-source digests take priority over caller-declared file/URL mappings; target, frame, script, and worker ambiguity remains explicit, and source-map authority stays separate.",
158
76
  kind: "electron-provider",
159
77
  inputSchema: reconcileJavaScriptRuntimeInputSchema,
160
78
  outputSchema: reconciliationOutputSchema,
@@ -165,4 +83,15 @@ export const ELECTRON_TOOL_CONTRACTS = [
165
83
  },
166
84
  ],
167
85
  },
86
+ {
87
+ name: "capture_electron_scenario",
88
+ ...toolContractMetadata("capture_electron_scenario"),
89
+ description: "Use this for an explicitly approved, provider-owned Electron run when passive CDP or Inspector observation cannot exercise application behavior. REA owns startup and teardown, accepts caller-defined click/wait actions plus window-targeted renderer reload/crash and synthetic open-url/second-instance delivery, and returns correlated window/WebContents/process/preload/session/navigation/shell/IPC evidence without retaining payload values. Results identify observed and unavailable event families, coverage status, action targets, and truncation. External shell, navigation, permission, download, popup, updater, and OS-integration effects are blocked and recorded. Use passive Electron tools for observation-only work.",
90
+ kind: "electron-provider",
91
+ inputSchema: electronActiveObservationInputSchema,
92
+ outputSchema: evidenceResultOf(electronActiveObservationResultSchema),
93
+ examples: [
94
+ { title: "Exercise an owned Electron application", input: activeExample },
95
+ ],
96
+ },
168
97
  ];
@@ -1,106 +1,59 @@
1
1
  import { z } from "zod";
2
- const traceLiteralInputSchema = z.object({
2
+ const traceLiteralInputSchema = z.strictObject({
3
3
  query: z.string().min(1),
4
4
  case_sensitive: z.boolean().default(false),
5
- limit: z.number().int().min(1).max(100).default(20),
6
- max_operations: z.number().int().min(1).max(100).default(20),
7
- unknown_registry_approved: z
8
- .literal(true)
9
- .optional()
10
- .describe("Explicit approval to record bounded residuals durably"),
11
5
  });
12
6
  /** Input schemas shared by MCP registration and enhanced application dispatch. */
13
7
  export const enhancedInputSchemas = {
14
- swift_classes: z.object({ pattern: z.string().default("") }),
15
- get_objc_classes: z.object({ pattern: z.string().default("") }),
16
- get_objc_protocols: z.object({}),
17
- batch_decompile: z.object({
8
+ inspect_native_dispatch_metadata: z.strictObject({
9
+ max_records: z.number().int().min(1).max(20_000).default(5_000),
10
+ }),
11
+ get_objc_classes: z.strictObject({ pattern: z.string().default("") }),
12
+ get_objc_protocols: z.strictObject({}),
13
+ batch_decompile: z.strictObject({
18
14
  addresses: z
19
15
  .array(z.string().describe("A provider-normalized procedure address"))
20
- .max(20)
21
16
  .default([]),
22
17
  }),
23
- get_call_graph: z.object({
18
+ get_call_graph: z.strictObject({
24
19
  address: z.string().describe("A provider-normalized procedure address"),
25
20
  direction: z.enum(["forward", "backward"]).default("forward"),
26
- depth: z.number().int().min(1).max(5).default(2),
27
21
  }),
28
- analyze_swift_types: z.object({}),
29
- find_xrefs_to_name: z.object({ name: z.string() }),
30
- binary_overview: z.object({
31
- detail: z.enum(["concise", "detailed"]).default("concise"),
32
- limit: z.number().int().min(1).max(50).default(10),
22
+ analyze_swift_types: z.strictObject({
23
+ category: z
24
+ .enum(["classes", "structs", "enums", "protocols", "extensions", "other"])
25
+ .optional()
26
+ .describe("Limit results to one Swift symbol category."),
27
+ pattern: z
28
+ .string()
29
+ .optional()
30
+ .describe("Case-sensitive literal filter applied to mangled symbol names."),
33
31
  }),
34
- analyze_function: z.object({
32
+ find_xrefs_to_name: z.strictObject({ name: z.string() }),
33
+ binary_overview: z.strictObject({}),
34
+ analyze_function: z.strictObject({
35
35
  procedure: z.string().describe("A procedure name or address"),
36
- include_assembly: z.boolean().default(false),
37
- limit: z.number().int().min(1).max(500).default(100),
38
- max_pseudocode_chars: z.number().int().min(1).max(100_000).default(20_000),
39
- max_instructions: z.number().int().min(1).max(5_000).default(500),
40
- pseudocode_offset: z.number().int().min(0).default(0),
41
- assembly_offset: z.number().int().min(0).default(0),
42
- collection_offset: z
43
- .object({
44
- comments: z.number().int().min(0).default(0),
45
- callers: z.number().int().min(0).default(0),
46
- callees: z.number().int().min(0).default(0),
47
- incoming_references: z.number().int().min(0).default(0),
48
- outgoing_references: z.number().int().min(0).default(0),
49
- referenced_strings: z.number().int().min(0).default(0),
50
- referenced_names: z.number().int().min(0).default(0),
51
- basic_blocks: z.number().int().min(0).default(0),
52
- })
53
- .default({
54
- comments: 0,
55
- callers: 0,
56
- callees: 0,
57
- incoming_references: 0,
58
- outgoing_references: 0,
59
- referenced_strings: 0,
60
- referenced_names: 0,
61
- basic_blocks: 0,
62
- }),
63
36
  }),
64
- inspect_native_api: z.object({
37
+ inspect_native_api: z.strictObject({
65
38
  procedure: z.string().describe("A procedure name or address"),
66
- max_pseudocode_chars: z.number().int().min(1).max(100_000).default(20_000),
67
- max_instructions: z.number().int().min(1).max(5_000).default(500),
68
- unknown_registry_approved: z
69
- .literal(true)
70
- .optional()
71
- .describe("Explicit approval to record unsupported native API branches durably"),
72
39
  }),
73
40
  trace_feature: traceLiteralInputSchema,
74
41
  find_code_for_string: traceLiteralInputSchema,
75
- trace_call_path: z.object({
42
+ trace_call_path: z.strictObject({
76
43
  start: z.string().describe("A provider-normalized procedure address"),
77
44
  goal: z
78
45
  .string()
79
46
  .describe("An optional provider-normalized destination address")
80
47
  .optional(),
81
48
  direction: z.enum(["forward", "backward"]).default("forward"),
82
- max_depth: z.number().int().min(1).max(10).default(5),
83
- max_nodes: z.number().int().min(1).max(500).default(100),
84
- max_operations: z.number().int().min(1).max(500).default(100),
85
- unknown_registry_approved: z
86
- .literal(true)
87
- .optional()
88
- .describe("Explicit approval to record bounded residuals durably"),
49
+ }),
50
+ trace_native_ui_action: z.strictObject({
51
+ action: z
52
+ .string()
53
+ .min(1)
54
+ .describe("A unique compiled UI action selector or interface object ID"),
55
+ max_depth: z.number().int().min(0).max(32).default(8),
56
+ max_nodes: z.number().int().min(1).max(2_000).default(250),
57
+ max_edges: z.number().int().min(1).max(5_000).default(500),
89
58
  }),
90
59
  };
91
- /** Runtime parser for dispatching only the closed enhanced names. */
92
- export const enhancedToolNameSchema = z.enum([
93
- "swift_classes",
94
- "get_objc_classes",
95
- "get_objc_protocols",
96
- "batch_decompile",
97
- "get_call_graph",
98
- "analyze_swift_types",
99
- "find_xrefs_to_name",
100
- "binary_overview",
101
- "analyze_function",
102
- "inspect_native_api",
103
- "trace_feature",
104
- "find_code_for_string",
105
- "trace_call_path",
106
- ]);
@@ -91,7 +91,6 @@ export const analysisErrorProjectionSchema = z.discriminatedUnion("code", [
91
91
  generic("process_capture_failed"),
92
92
  generic("cleanup_incomplete"),
93
93
  generic("revision_conflict"),
94
- generic("outside_approved_root"),
95
94
  generic("configuration_invalid"),
96
95
  generic("target_unavailable"),
97
96
  generic("execution_failure"),
@@ -1,13 +1,6 @@
1
1
  import { enhancedInputSchemas } from "./enhancedInputs.js";
2
2
  import { createEvidence } from "../domain/evidence.js";
3
3
  import { jsonValueSchema } from "../domain/jsonValue.js";
4
- const bounded = (items) => ({
5
- items,
6
- total: items.length,
7
- returned: items.length,
8
- truncated: false,
9
- next_offset: null,
10
- });
11
4
  const dossier = (text) => jsonValueSchema.parse({
12
5
  procedure: {
13
6
  address: "0x1000",
@@ -15,23 +8,16 @@ const dossier = (text) => jsonValueSchema.parse({
15
8
  signature: "int main(void)",
16
9
  locals: [],
17
10
  },
18
- pseudocode: {
19
- text,
20
- total_chars: [...text].length,
21
- returned_chars: [...text].length,
22
- truncated: false,
23
- next_offset: null,
24
- },
25
- assembly: bounded([]),
26
- comments: bounded([]),
27
- callers: bounded([]),
28
- callees: bounded([]),
29
- incoming_references: bounded([]),
30
- outgoing_references: bounded([]),
31
- referenced_strings: bounded([]),
32
- referenced_names: bounded([]),
33
- basic_blocks: bounded([{ start: "0x1000", end: "0x1001", successors: [] }]),
34
- instruction_scan: { scanned: 1, truncated: false },
11
+ pseudocode: text,
12
+ assembly: [],
13
+ comments: [],
14
+ callers: [],
15
+ callees: [],
16
+ incoming_references: [],
17
+ outgoing_references: [],
18
+ referenced_strings: [],
19
+ referenced_names: [],
20
+ basic_blocks: [{ start: "0x1000", end: "0x1001", successors: [] }],
35
21
  });
36
22
  const observe = (digit, text) => createEvidence({
37
23
  path: `/tmp/function-${digit}`,
@@ -1,8 +1,6 @@
1
1
  import { z } from "zod";
2
- /** Provider-neutral input for one bounded raw function-instruction window. */
2
+ /** Provider-neutral input for a function's complete raw instruction list. */
3
3
  export const functionInstructionInputSchema = z.object({
4
4
  procedure: z.string().describe("The procedure name or address"),
5
- offset: z.number().int().min(0).max(100_000).default(0),
6
- limit: z.number().int().min(1).max(500).default(64),
7
5
  document: z.string().optional().describe("The document name"),
8
6
  });
@@ -3,11 +3,10 @@ import { enhancedInputSchemas } from "./enhancedInputs.js";
3
3
  import { TOOL_EXAMPLE_OVERRIDES } from "./toolContractExamples.js";
4
4
  import { toolContractMetadata } from "./toolEffects.js";
5
5
  import { enhancedOutputSchemas } from "./toolOutputSchemas.js";
6
+ import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js";
6
7
  const functionWorkflow = (name, description) => {
7
8
  const inputSchema = enhancedInputSchemas[name];
8
- const outputSchema = enhancedOutputSchemas[name];
9
- if (outputSchema === undefined)
10
- throw new Error(`Missing function workflow output schema for ${name}`);
9
+ const outputSchema = requireOutputSchema(enhancedOutputSchemas, name);
11
10
  return {
12
11
  name,
13
12
  ...toolContractMetadata(name),
@@ -25,6 +24,6 @@ const functionWorkflow = (name, description) => {
25
24
  };
26
25
  /** Function dossier and native API reconstruction workflow contracts. */
27
26
  export const FUNCTION_WORKFLOW_TOOL_CONTRACTS = [
28
- functionWorkflow("analyze_function", "Preferred bounded analysis for one procedure symbol or address. Returns identity, provider-specific pseudocode, optional assembly, comments, calls, typed-or-explicitly-unavailable references, referenced strings/names, and local CFG blocks with exact truncation metadata. Providers with a structured decompiler model also expose native API boundary types, confidence, evidence, jump-table data/target addresses, and explicit decompiler-artifact labels."),
29
- functionWorkflow("inspect_native_api", "Reconstruct one native function boundary through inspectable substeps. Returns structured inferred return/parameter types with confidence and evidence, jump-table dispatch/data/target mappings, explicit decompiler-artifact labels, unsupported branches, and residual unknowns."),
27
+ functionWorkflow("analyze_function", "Build a dossier for one native function identified by symbol or provider-returned address. Returns identity, provider-specific pseudocode and assembly, comments, calls, references, referenced strings/names, local CFG blocks, and available native API boundary observations."),
28
+ functionWorkflow("inspect_native_api", "Analyze a native API boundary in one function identified by symbol or provider-returned address. Returns confidence, evidence, jump-table dispatch/data/target mappings, unsupported branches, and residual unknowns."),
30
29
  ];
@@ -3,14 +3,14 @@ const document = z.string().optional().describe("The document name");
3
3
  const address = z
4
4
  .string()
5
5
  .describe("A provider-normalized address; default memory uses 0x-prefixed hexadecimal");
6
- /** Bounded Hopper memory and file-mapping contracts. */
6
+ /** Hopper memory and file-mapping contracts. */
7
7
  export const HOPPER_MEMORY_TOOL_DEFINITIONS = [
8
8
  {
9
9
  name: "read_bytes",
10
- description: "Read at most 4,096 analyzed bytes from one provider-normalized virtual address. The hexadecimal payload reports the exact returned length; incomplete reads remain explicit and unsupported provider APIs return typed capability unavailability.",
10
+ description: "Read analyzed bytes from one provider-normalized virtual address. The hexadecimal payload reports the exact returned length; incomplete reads remain explicit and unsupported provider APIs return typed capability unavailability.",
11
11
  inputSchema: z.object({
12
12
  address,
13
- length: z.number().int().min(1).max(4_096).default(256),
13
+ length: z.number().int().min(1).default(256),
14
14
  document,
15
15
  }),
16
16
  },
@@ -1,22 +1,20 @@
1
1
  import { compareFunctions } from "../domain/functionComparison.js";
2
2
  import { createEvidence } from "../domain/evidence.js";
3
3
  import { jsonValueSchema } from "../domain/jsonValue.js";
4
- import { compareProcessCaptures, processCaptureSchema, } from "../domain/processCapture.js";
4
+ import { compareProcessCaptures, parseProcessCapture, } from "../domain/processCapture.js";
5
5
  import { FUNCTION_COMPARISON_EXAMPLE } from "./functionComparisonExample.js";
6
6
  import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js";
7
- const comparison = compareFunctions(FUNCTION_COMPARISON_EXAMPLE.left, FUNCTION_COMPARISON_EXAMPLE.right, 0, 100);
7
+ const comparison = compareFunctions(FUNCTION_COMPARISON_EXAMPLE.left, FUNCTION_COMPARISON_EXAMPLE.right);
8
8
  export const FUNCTION_COMPARISON_EVIDENCE = createEvidence(undefined, {
9
9
  id: "rea-function-comparison",
10
10
  name: "REA function comparison",
11
11
  version: "1",
12
12
  }, {
13
- predicateType: "rea.function-comparison/v1",
13
+ predicateType: "rea.function-comparison",
14
14
  operation: "compare_functions",
15
15
  parameters: {
16
- left_evidence_ids: [FUNCTION_COMPARISON_EXAMPLE.left.evidence_id],
17
- right_evidence_ids: [FUNCTION_COMPARISON_EXAMPLE.right.evidence_id],
18
- offset: 0,
19
- limit: 100,
16
+ left_evidence_id: FUNCTION_COMPARISON_EXAMPLE.left.evidence_id,
17
+ right_evidence_id: FUNCTION_COMPARISON_EXAMPLE.right.evidence_id,
20
18
  },
21
19
  result: jsonValueSchema.parse(comparison),
22
20
  confidence: "derived",
@@ -31,9 +29,9 @@ const PROCESS_PROVIDER = {
31
29
  name: "REA deterministic process harness",
32
30
  version: "3",
33
31
  };
34
- const capture = processCaptureSchema.parse(EMPTY_PROCESS_CAPTURE_EXAMPLE);
32
+ const capture = parseProcessCapture(EMPTY_PROCESS_CAPTURE_EXAMPLE);
35
33
  const captureEvidence = (scenario) => createEvidence(undefined, PROCESS_PROVIDER, {
36
- predicateType: "rea.process-capture/v4",
34
+ predicateType: "rea.process-capture",
37
35
  operation: "capture_process_scenario",
38
36
  parameters: { scenario },
39
37
  result: jsonValueSchema.parse(capture),
@@ -49,7 +47,7 @@ const captureEvidence = (scenario) => createEvidence(undefined, PROCESS_PROVIDER
49
47
  export const PROCESS_CAPTURE_REFERENCE = captureEvidence("reference");
50
48
  export const PROCESS_CAPTURE_RECONSTRUCTION = captureEvidence("reconstruction");
51
49
  export const PROCESS_COMPARISON_EVIDENCE = createEvidence(undefined, PROCESS_PROVIDER, {
52
- predicateType: "rea.process-comparison/v3",
50
+ predicateType: "rea.process-comparison",
53
51
  operation: "compare_process_captures",
54
52
  parameters: {
55
53
  left_evidence_id: PROCESS_CAPTURE_REFERENCE.evidence_id,
@@ -67,6 +65,12 @@ export const PROCESS_COMPARISON_EVIDENCE = createEvidence(undefined, PROCESS_PRO
67
65
  });
68
66
  /** Canonical inputs for comparison-composed investigation contracts. */
69
67
  export const INVESTIGATION_EXAMPLES = {
68
+ compare_process_captures: {
69
+ input: {
70
+ left: PROCESS_CAPTURE_REFERENCE,
71
+ right: PROCESS_CAPTURE_RECONSTRUCTION,
72
+ },
73
+ },
70
74
  find_changed_behavior: { comparisons: [FUNCTION_COMPARISON_EVIDENCE] },
71
75
  build_call_path: {
72
76
  functions: [FUNCTION_COMPARISON_EXAMPLE.left],
@@ -96,7 +100,6 @@ export const INVESTIGATION_EXAMPLES = {
96
100
  },
97
101
  verify_reconstruction: {
98
102
  specification: {
99
- schema_version: 1,
100
103
  name: "Terminal compatibility",
101
104
  claims: [
102
105
  {
@@ -8,7 +8,7 @@ const reconciliationEvidence = createEvidence(undefined, {
8
8
  name: "REA JavaScript runtime reconciliation",
9
9
  version: "1",
10
10
  }, {
11
- predicateType: "rea.javascript-runtime-reconciliation/v1",
11
+ predicateType: "rea.javascript-runtime-reconciliation",
12
12
  operation: "reconcile_javascript_runtime",
13
13
  parameters: {
14
14
  static_layers: JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE.static_layers.map(({ role, analysis }) => ({
@@ -17,11 +17,6 @@ const reconciliationEvidence = createEvidence(undefined, {
17
17
  runtime_mappings: [],
18
18
  })),
19
19
  runtime_evidence_ids: JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE.runtime_observations.map(({ evidence_id: id }) => id),
20
- limits: {
21
- max_runtime_entities: 10_000,
22
- max_reconciliation_items: 20_000,
23
- max_static_load_states: 20_000,
24
- },
25
20
  },
26
21
  result: reconciliation,
27
22
  confidence: "inferred",
@@ -29,29 +24,27 @@ const reconciliationEvidence = createEvidence(undefined, {
29
24
  limitations: reconciliation.limitations,
30
25
  evidenceLinks: reconciliation.evidence_links,
31
26
  });
32
- const EXAMPLE_EVIDENCE_ID = `ev_${"0".repeat(64)}`;
33
- const SECOND_EXAMPLE_EVIDENCE_ID = `ev_${"1".repeat(64)}`;
34
27
  const TRACE_SEED = {
35
28
  kind: "module",
36
29
  value: "renderer.js",
37
30
  match: "exact",
38
31
  case_sensitive: false,
39
32
  };
40
- /** Natural trace request using the Evidence ID returned by its producer. */
33
+ /** Natural trace request with the producer's complete Evidence inline. */
41
34
  export const JAVASCRIPT_FEATURE_TRACE_EXAMPLE = {
42
- application_evidence_id: EXAMPLE_EVIDENCE_ID,
35
+ application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
43
36
  seed: TRACE_SEED,
44
37
  direction: "both",
45
38
  };
46
- /** Natural version comparison using two producer-returned Evidence IDs. */
39
+ /** Natural version comparison with both Evidence records inline. */
47
40
  export const JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE = {
48
- left_evidence_id: EXAMPLE_EVIDENCE_ID,
49
- right_evidence_id: SECOND_EXAMPLE_EVIDENCE_ID,
41
+ left: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
42
+ right: reconciliationEvidence,
50
43
  };
51
- /** Historical source inventory compared with one producer-returned graph ID. */
44
+ /** Historical source inventory compared with inline application Evidence. */
52
45
  export const SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = {
53
46
  reference: createHistoricalSourceGraph({
54
- schema: "HistoricalSourceGraph/v1",
47
+ schema: "HistoricalSourceGraph",
55
48
  authority: "historical-reference",
56
49
  root_alias: "$REFERENCE_ROOT",
57
50
  inventory_state: "complete",
@@ -87,12 +80,12 @@ export const SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = {
87
80
  },
88
81
  limitations: [],
89
82
  }),
90
- application_evidence_id: EXAMPLE_EVIDENCE_ID,
83
+ application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
91
84
  };
92
- /** Exact static return-shape comparison using producer-returned Evidence IDs. */
85
+ /** Exact static return-shape comparison with both Evidence records inline. */
93
86
  export const JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE = {
94
- left_evidence_id: EXAMPLE_EVIDENCE_ID,
95
- right_evidence_id: SECOND_EXAMPLE_EVIDENCE_ID,
87
+ left: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE,
88
+ right: reconciliationEvidence,
96
89
  left_module_path: "parser.mjs",
97
90
  left_export_name: "default",
98
91
  right_module_path: "parser.mjs",
@@ -1,14 +1,13 @@
1
1
  import { toolContractMetadata } from "./toolEffects.js";
2
2
  import { evidenceResultOf } from "./toolOutputSchemas.js";
3
3
  import { javascriptRuntimeObservationSchema, javascriptRuntimeTargetListSchema, listJavaScriptRuntimeTargetsInputSchema, observeJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeObservation.js";
4
- const root = "/opt/example-app";
5
4
  const endpoint = "http://127.0.0.1:9229";
6
5
  /** Passive Node/Electron V8 Inspector discovery and observation contracts. */
7
6
  export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
8
7
  {
9
8
  name: "list_javascript_runtime_targets",
10
9
  ...toolContractMetadata("list_javascript_runtime_targets"),
11
- description: "List attachable Node/Electron V8 Inspector targets from one approved literal-loopback endpoint. Only targets inside exact canonical file roots or exact HTTP(S) origins are retained; excluded target locations never enter Evidence.",
10
+ description: "List every attachable Node/Electron V8 Inspector target from an explicit literal-loopback endpoint. Every returned target and script location exposed by that Inspector endpoint is eligible for Evidence.",
12
11
  kind: "runtime-provider",
13
12
  inputSchema: listJavaScriptRuntimeTargetsInputSchema,
14
13
  outputSchema: evidenceResultOf(javascriptRuntimeTargetListSchema),
@@ -17,11 +16,6 @@ export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
17
16
  title: "List approved Node Inspector targets",
18
17
  input: {
19
18
  inspector_endpoint: endpoint,
20
- allowed_file_roots: [root],
21
- allowed_origins: [],
22
- approved: true,
23
- offset: 0,
24
- limit: 100,
25
19
  },
26
20
  },
27
21
  ],
@@ -29,7 +23,7 @@ export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
29
23
  {
30
24
  name: "observe_javascript_runtime",
31
25
  ...toolContractMetadata("observe_javascript_runtime"),
32
- description: "Attach passively to one exact approved Node/Electron V8 Inspector target and capture bounded Debugger.scriptParsed plus Runtime execution-context events. REA sends only Runtime.enable and Debugger.enable: it never evaluates, pauses, resumes, reads source, or instruments the target. require/import edges, EventEmitter activity, and Electron IPC remain explicit unknowns; reconcile the returned Evidence with static Application Graph Evidence using reconcile_javascript_runtime.",
26
+ description: "Attach passively to one Node/Electron V8 Inspector target by supplying its loopback Inspector endpoint and target ID. The provider rechecks that the target currently exists at that endpoint and is an attachable file or URL target. Captures Debugger.scriptParsed and Runtime execution-context events. REA never evaluates, pauses, resumes, reads source, or instruments the target; require/import edges, EventEmitter activity, and Electron IPC remain explicit unknowns. Reconcile the result with static Application Graph Evidence using reconcile_javascript_runtime. The selected endpoint exposes every target it serves to this tool.",
33
27
  kind: "runtime-provider",
34
28
  inputSchema: observeJavaScriptRuntimeInputSchema,
35
29
  outputSchema: evidenceResultOf(javascriptRuntimeObservationSchema),
@@ -38,19 +32,7 @@ export const JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS = [
38
32
  title: "Observe one approved Node runtime",
39
33
  input: {
40
34
  inspector_endpoint: endpoint,
41
- allowed_file_roots: [root],
42
- allowed_origins: [],
43
35
  target_id: "TARGET_ID_FROM_LIST_JAVASCRIPT_RUNTIME_TARGETS",
44
- runtime_kind: "node",
45
- approved: true,
46
- observation_ms: 100,
47
- limits: {
48
- max_events: 10_000,
49
- max_scripts: 2_000,
50
- max_execution_contexts: 1_000,
51
- max_location_bytes: 16_384,
52
- max_total_metadata_bytes: 4_194_304,
53
- },
54
36
  },
55
37
  },
56
38
  ],