rea-agents 3.1.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 (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,107 +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
4
  import { electronActiveObservationInputSchema, electronActiveObservationResultSchema, } from "../domain/electronActiveObservation.js";
6
- import { analyzeJavaScriptApplicationInputSchema, javaScriptApplicationAnalysisResultV1Schema, javascriptApplicationAnalysisResultSchema, } from "../domain/javascriptApplicationAnalysis.js";
7
- import { JAVASCRIPT_APPLICATION_NODE_KINDS } from "../domain/javascriptApplicationGraphSchemas.js";
8
- import { applicationCoverageSchema } from "../domain/javascriptApplicationEvidenceSchemas.js";
5
+ import { analyzeJavaScriptApplicationInputSchema, javascriptApplicationAnalysisResultSchema, } from "../domain/javascriptApplicationAnalysis.js";
9
6
  import { javascriptRuntimeReconciliationResultSchema, reconcileJavaScriptRuntimeInputSchema, } from "../domain/javascriptRuntimeReconciliationSchemas.js";
10
7
  import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "./javascriptRuntimeReconciliationExample.js";
11
8
  const listOutputSchema = evidenceResultOf(electronTargetListSchema);
12
9
  const inspectionOutputSchema = evidenceResultOf(electronPageInspectionSchema);
13
- /** MCP-only response selection; analysis identity does not depend on projection. */
14
- export const analyzeJavaScriptApplicationToolInputSchema = analyzeJavaScriptApplicationInputSchema.extend({
15
- detail: z
16
- .enum(["summary", "full"])
17
- .default("summary")
18
- .describe("summary returns bounded findings and paged graph resource URIs; full returns the complete graph only when explicitly required"),
19
- });
20
- /** Bounded default projection for agent-facing JavaScript application analysis. */
21
- const applicationGraphSummarySchema = z.strictObject({
22
- graph_id: z.string().regex(/^jag_[a-f0-9]{64}$/u),
23
- node_count: z.number().int().min(0),
24
- edge_count: z.number().int().min(0),
25
- roots: z.strictObject({
26
- items: z.array(z.string().regex(/^jag_node_[a-f0-9]{64}$/u)),
27
- total: z.number().int().min(0),
28
- truncated: z.boolean(),
29
- }),
30
- node_kinds: z.array(z.strictObject({
31
- kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
32
- count: z.number().int().min(1),
33
- })),
34
- top_findings: z.array(z.strictObject({
35
- node_id: z.string().regex(/^jag_node_[a-f0-9]{64}$/u),
36
- kind: z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS),
37
- label: z.string().nullable(),
38
- authority: z.string(),
39
- state: z.string(),
40
- confidence: z.string(),
41
- location: z.json(),
42
- })),
43
- coverage: applicationCoverageSchema,
44
- limitations: z.array(z.string()),
45
- pages: z.strictObject({
46
- nodes: z.string().startsWith("rea://evidence/"),
47
- edges: z.string().startsWith("rea://evidence/"),
48
- page_limit: z.number().int().min(1).max(500),
49
- }),
50
- });
51
- const semanticGraphSummarySchema = z.strictObject({
52
- graph_id: z.string().regex(/^jsrg_[a-f0-9]{64}$/u),
53
- nodes: z.number().int().min(0),
54
- relations: z.number().int().min(0),
55
- unknown_frontiers: z.number().int().min(0),
56
- fingerprints: z.number().int().min(0),
57
- coverage: z.enum(["complete", "partial", "unknown", "unavailable"]),
58
- query_tool: z.literal("trace_javascript_semantics"),
59
- });
60
- const summaryFields = {
61
- unknowns: z.array(z.string().min(1).max(4_096)).max(1_000),
62
- graph: applicationGraphSummarySchema,
63
- };
64
- /** Bounded default projection for agent-facing JavaScript application analysis. */
65
- export const javascriptApplicationAnalysisSummarySchema = z.discriminatedUnion("schema_version", [
66
- javaScriptApplicationAnalysisResultV1Schema
67
- .omit({ graph: true })
68
- .extend(summaryFields),
69
- javaScriptApplicationAnalysisResultV1Schema.omit({ graph: true }).extend({
70
- schema_version: z.literal(2),
71
- ...summaryFields,
72
- semantic_graph: semanticGraphSummarySchema,
73
- }),
74
- ]);
75
- const applicationOutputSchema = evidenceResultOf(z.union([
76
- javascriptApplicationAnalysisSummarySchema,
77
- javascriptApplicationAnalysisResultSchema,
78
- ]));
10
+ const applicationOutputSchema = evidenceResultOf(javascriptApplicationAnalysisResultSchema);
79
11
  const reconciliationOutputSchema = evidenceResultOf(javascriptRuntimeReconciliationResultSchema);
80
12
  const endpoint = "http://127.0.0.1:9223";
81
- const root = "/Applications/Example.app/Contents/Resources";
82
13
  const activeExample = {
83
- schema_version: 1,
84
14
  executable_path: "/Applications/Electron.app/Contents/MacOS/Electron",
85
15
  application_path: "/Applications/Example.app/Contents/Resources/main.js",
86
16
  application_root: "/Applications/Example.app/Contents/Resources",
87
17
  args: [],
88
18
  actions: [{ step_id: "exercise-ipc", kind: "click", selector: "#run" }],
89
- limits: {
90
- max_duration_ms: 60_000,
91
- action_timeout_ms: 5_000,
92
- max_actions: 20,
93
- max_ipc_events: 2_000,
94
- max_processes: 32,
95
- max_windows: 32,
96
- },
97
- approved: true,
98
19
  };
99
20
  /** Root-confined Electron file-page discovery and inspection contracts. */
100
21
  export const ELECTRON_TOOL_CONTRACTS = [
101
22
  {
102
23
  name: "list_electron_targets",
103
24
  ...toolContractMetadata("list_electron_targets"),
104
- 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.",
105
26
  kind: "electron-provider",
106
27
  inputSchema: listElectronTargetsInputSchema,
107
28
  outputSchema: listOutputSchema,
@@ -110,10 +31,6 @@ export const ELECTRON_TOOL_CONTRACTS = [
110
31
  title: "List approved Electron file pages",
111
32
  input: {
112
33
  cdp_endpoint: endpoint,
113
- allowed_file_roots: [root],
114
- approved: true,
115
- offset: 0,
116
- limit: 100,
117
34
  },
118
35
  },
119
36
  ],
@@ -121,7 +38,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
121
38
  {
122
39
  name: "inspect_electron_page",
123
40
  ...toolContractMetadata("inspect_electron_page"),
124
- 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.",
125
42
  kind: "electron-provider",
126
43
  inputSchema: inspectElectronPageInputSchema,
127
44
  outputSchema: inspectionOutputSchema,
@@ -130,21 +47,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
130
47
  title: "Inspect an approved Electron page",
131
48
  input: {
132
49
  cdp_endpoint: endpoint,
133
- allowed_file_roots: [root],
134
50
  target_id: "TARGET_ID_FROM_LIST_ELECTRON_TARGETS",
135
- approved: true,
136
- observation_ms: 100,
137
- include_script_sources: false,
138
- source_capture_approved: false,
139
- limits: {
140
- max_frames: 200,
141
- max_dom_nodes: 2_000,
142
- max_scripts: 500,
143
- max_resources: 2_000,
144
- max_workers: 500,
145
- max_script_source_bytes: 1_048_576,
146
- max_total_script_source_bytes: 4_194_304,
147
- },
148
51
  },
149
52
  },
150
53
  ],
@@ -152,19 +55,16 @@ export const ELECTRON_TOOL_CONTRACTS = [
152
55
  {
153
56
  name: "analyze_javascript_application",
154
57
  ...toolContractMetadata("analyze_javascript_application"),
155
- 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.",
156
59
  kind: "electron-provider",
157
- inputSchema: analyzeJavaScriptApplicationToolInputSchema,
60
+ inputSchema: analyzeJavaScriptApplicationInputSchema,
158
61
  outputSchema: applicationOutputSchema,
159
62
  examples: [
160
63
  {
161
- title: "Analyze one approved local Electron application",
64
+ title: "Analyze one local JavaScript application",
162
65
  input: {
163
66
  input_path: "/Applications/Example.app/Contents/Resources/app.asar",
164
67
  format: "auto",
165
- approved: true,
166
- source_map_read_approved: false,
167
- detail: "summary",
168
68
  },
169
69
  },
170
70
  ],
@@ -186,7 +86,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
186
86
  {
187
87
  name: "capture_electron_scenario",
188
88
  ...toolContractMetadata("capture_electron_scenario"),
189
- 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 bounded 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.",
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.",
190
90
  kind: "electron-provider",
191
91
  inputSchema: electronActiveObservationInputSchema,
192
92
  outputSchema: evidenceResultOf(electronActiveObservationResultSchema),
@@ -2,73 +2,40 @@ import { z } from "zod";
2
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.strictObject({ pattern: z.string().default("") }),
8
+ inspect_native_dispatch_metadata: z.strictObject({
9
+ max_records: z.number().int().min(1).max(20_000).default(5_000),
10
+ }),
15
11
  get_objc_classes: z.strictObject({ pattern: z.string().default("") }),
16
12
  get_objc_protocols: z.strictObject({}),
17
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
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.strictObject({}),
29
- find_xrefs_to_name: z.strictObject({ name: z.string() }),
30
- binary_overview: z.strictObject({
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
  }),
32
+ find_xrefs_to_name: z.strictObject({ name: z.string() }),
33
+ binary_overview: z.strictObject({}),
34
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
- .strictObject({
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
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,
@@ -79,12 +46,14 @@ export const enhancedInputSchemas = {
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,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
  });
@@ -24,6 +24,6 @@ const functionWorkflow = (name, description) => {
24
24
  };
25
25
  /** Function dossier and native API reconstruction workflow contracts. */
26
26
  export const FUNCTION_WORKFLOW_TOOL_CONTRACTS = [
27
- 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."),
28
- 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."),
29
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
  ],