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
@@ -4,7 +4,7 @@ description: Reverse engineer native, managed, Electron/JavaScript, packaged, an
4
4
  metadata:
5
5
  version: "23"
6
6
  tool_count: 114
7
- catalog_digest: "e83a177f5eca63bbad17886a61f5a1a376d44afe862c51c56e5d38339f7d41f8"
7
+ catalog_digest: "3e9ab4e05563ea2609b7cf4db67638a79cd8a74188c292718d99a63451d5b9db"
8
8
  ---
9
9
 
10
10
  # REA
@@ -23,13 +23,14 @@ Choose the first tool from the target the user supplied. Do not call
23
23
  - ASAR or extracted JavaScript/Electron tree:
24
24
  `analyze_javascript_application`.
25
25
  - Archive, application package, ZIP/APK/IPA/MSIX/AppX, or DMG:
26
- `open_binary` with the supplied local path, then `inspect_artifact` or
27
- `inventory_artifact` (both operate on the active target and accept no path).
26
+ `open_binary` with the supplied local path; use `inspect_artifact` when its
27
+ graph and findings help answer the question.
28
28
  - Managed PE/CLI assembly: `inspect_managed_artifact`.
29
29
  - User-owned browser page already open: `list_browser_targets`.
30
30
  - User-owned Electron runtime already open: `list_electron_targets`.
31
31
  - Native executable, library, or analysis database: `open_binary`, then
32
- `binary_overview`.
32
+ use focused analysis tools directly; call `binary_overview` when metadata or
33
+ inventory context is useful.
33
34
 
34
35
  If the app is missing, ask which app to inspect. Resolve a human-readable app
35
36
  name to one clear installed artifact when possible; ask only when matches are
@@ -43,16 +44,48 @@ is unavailable.
43
44
 
44
45
  ## Work summary-first
45
46
 
46
- Start with the default summary projection. Do not repeat an identical tool call.
47
- Do not fetch full Evidence or a full application graph unless a specific claim
48
- requires detail absent from the summary. For JavaScript graphs, follow the
49
- paged resource URIs returned by the summary and fetch only the relevant page.
47
+ Start with the default result and use its inline Evidence and graph context.
48
+ Do not repeat an identical tool call. Make a focused follow-up only when the
49
+ returned result leaves a specific question unanswered.
50
50
 
51
51
  Every conclusion must distinguish observations, inferences, and unknowns. Cite
52
52
  Evidence IDs, preserve limitations and incomplete coverage, and never imply
53
53
  that static analysis observed execution. Ask for approval only where a tool or
54
54
  policy requires it; approval never broadens a different authority boundary.
55
55
 
56
+ ## Plan broader investigations
57
+
58
+ For requests that span multiple features or subsystems, use a staged workflow:
59
+
60
+ 1. Turn the request into a checklist of questions and the evidence each answer
61
+ needs. Resolve target identity and constraints from the conversation and
62
+ workspace before asking for information again.
63
+ 2. Inspect the current REA session, artifact identity, saved analysis database,
64
+ bookmarks, and prior evidence. Reuse matching state; do not open duplicate
65
+ sessions or repeat identical analysis.
66
+ 3. Start with the smallest useful overview or inventory. Follow each question
67
+ from its entry point through relevant data and state changes to its result.
68
+ Batch related operations around a specific hypothesis, then expand only when
69
+ the returned evidence leaves a concrete gap.
70
+ 4. Inspect relevant packaged resources and configuration alongside code when
71
+ they affect the question. Use format-aware inventory and parsers; do not
72
+ infer behavior from filenames, strings, or layout alone.
73
+ 5. Corroborate a conclusion with the evidence type it requires. Use runtime
74
+ observation or controlled replay only when static evidence cannot answer the
75
+ question and the required authority is available.
76
+ 6. Decompose work into independent questions. When parallel workers are
77
+ available and the questions do not depend on one another, assign distinct
78
+ scopes, point workers to existing evidence, and ask them to return sources,
79
+ conclusions, and unresolved gaps. Otherwise, work sequentially.
80
+ 7. Keep a concise finding ledger linking each conclusion to Evidence IDs,
81
+ confidence/evidence type, search boundary, and remaining unknowns. Update
82
+ the shared index or investigation report so later passes can reuse results.
83
+
84
+ Before finishing, revisit the original checklist. Mark each question as
85
+ answered, partially answered, or unresolved based on its evidence; keep
86
+ bounded negative searches bounded, and do not describe a broad investigation
87
+ as complete while required questions remain open.
88
+
56
89
  ## Read only the relevant guide
57
90
 
58
91
  - Native binaries, managed assemblies, archives, and extraction:
@@ -68,9 +101,11 @@ policy requires it; approval never broadens a different authority boundary.
68
101
 
69
102
  ## Readiness and setup
70
103
 
71
- If REA tools are available, use them directly; do not run `doctor` on every
72
- task. If the MCP server is unavailable or registration is reported stale, run
73
- `npx -y rea-agents@latest doctor`. Propose
104
+ The readiness rule is conditional: when REA tools are available and their
105
+ registration is not known to be stale, proceed directly; do not run `doctor`
106
+ before every task. Run `npx -y rea-agents@latest doctor` when the MCP server or
107
+ required provider is unavailable, registration is reported stale, or the user
108
+ asks for an environment diagnosis. Propose
74
109
  `npx -y rea-agents@latest setup` only when doctor identifies an alignment or
75
110
  provider problem. Show the exact plan and obtain approval before setup writes
76
111
  configuration or installs Hopper. Restart the agent after MCP registration
@@ -1,9 +1,11 @@
1
1
  # Evidence, comparison, and verification workflows
2
2
 
3
- REA results are Evidence v2. Cite evidence IDs and preserve authority,
4
- limitations, coverage, and residual unknowns. Read the smallest deterministic
5
- page that answers the question. Continue from a returned next offset while
6
- `has_more` is true only when exhaustive coverage matters.
3
+ REA returns Evidence with each result. Read that result directly, cite its
4
+ Evidence ID when another tool or your explanation needs a stable reference, and
5
+ preserve authority, limitations, coverage, and residual unknowns. If a result
6
+ is incomplete or paginated, continue only when the remaining data matters to
7
+ the task; do not fetch a bundle or resource merely to read a result already
8
+ returned inline.
7
9
 
8
10
  Use `record_unknown` only with explicit approval and name the authority or
9
11
  environment still required. Supply supporting and contradicting evidence IDs.
@@ -1,10 +1,10 @@
1
1
  # JavaScript and Electron application artifacts
2
2
 
3
- Use `analyze_javascript_application` for an operator-supplied ASAR or extracted
4
- tree beneath an approved investigation root. Every call requires `approved:
5
- true`; source-map contents require separate approval. Keep the default summary.
6
- Use its counts, roots, node kinds, top findings, coverage, unknowns, and graph
7
- page URIs before requesting more data.
3
+ Use `analyze_javascript_application` directly on the operator-supplied ASAR or
4
+ extracted tree. The complete result, graph, and Evidence context are returned
5
+ inline. Source-map contents are part of the static analysis. Start from its
6
+ findings, coverage, unknowns, and graph context, then make a focused follow-up
7
+ only when a specific question remains unanswered.
8
8
 
9
9
  BrowserWindow preferences, preload and contextBridge surfaces, IPC
10
10
  registrations, utility processes, and native binding requests are static syntax
@@ -15,8 +15,8 @@ registration, defaults, or policy enforcement from static analysis.
15
15
 
16
16
  Use `trace_application_feature` on existing application Evidence for one
17
17
  literal node ID, route, string, API, IPC channel, module, or native export.
18
- Choose a direction and finite bounds. Link Hopper or Ghidra Evidence only when
19
- the exact artifact digest matches.
18
+ Choose a direction and include the complete application Evidence inline. Include
19
+ Hopper or Ghidra Evidence only when its artifact digest matches exactly.
20
20
 
21
21
  For version comparison, analyze each version once, then call
22
22
  `compare_application_versions`. Accept only its digest, source-map, structural
@@ -27,9 +27,9 @@ opposite-side coverage; otherwise report unknown.
27
27
  When the question asks how one exact exported callable's returned object shape
28
28
  changed, analyze each version once and then call
29
29
  `compare_javascript_export_shapes` with explicit module paths and export names.
30
- Use the Evidence IDs returned by the two analysis calls. Accept variant pairing
31
- only through the tool's unique exact literal discriminant. Cite the comparison
32
- Evidence and report JSON Pointer changes; dynamic values, ambiguous variants,
33
- and incomplete parent-property coverage stay unknown. This is static inference,
34
- not runtime behavior. Use `run_controlled_replay` separately only when the user
35
- needs approved runtime semantics.
30
+ Include the complete Evidence records from both analysis calls. Accept variant
31
+ pairing only through the tool's unique exact literal discriminant. Cite the
32
+ comparison Evidence and report JSON Pointer changes; dynamic values, ambiguous
33
+ variants, and incomplete parent-property coverage stay unknown. This is static
34
+ inference, not runtime behavior. Use `run_controlled_replay` separately only
35
+ when the user needs approved runtime semantics.
@@ -2,8 +2,9 @@
2
2
 
3
3
  ## Native targets
4
4
 
5
- After `open_binary`, use `binary_overview` once and narrow around the requested
6
- feature. Prefer literal search, names, decompilation, callers, callees, and
5
+ After `open_binary`, use focused search, procedure, or function tools directly.
6
+ Use `binary_overview` when target metadata or inventory context helps answer the
7
+ question. Prefer literal search, names, decompilation, callers, callees, and
7
8
  cross-references. Addresses and recovered pseudocode are analysis observations,
8
9
  not original source. Provider unavailability and unsupported metadata remain
9
10
  unknown rather than false.
@@ -23,13 +24,16 @@ parser and must not become an implicit setup dependency.
23
24
 
24
25
  ## Packages and extraction
25
26
 
26
- Call `inventory_artifact` before extraction for application bundles, archives,
27
- ZIP/APK/IPA/MSIX/AppX, ASAR, or DMG inputs. Continue deterministic occurrence
28
- pages from the returned offset only when needed. Cite graph manifest IDs.
27
+ Use `inspect_artifact` for application bundles, archives, ZIP/APK/IPA/MSIX/AppX,
28
+ ASAR, or DMG inputs when the artifact graph and findings help answer the
29
+ question. It returns the complete artifact graph inline. Cite graph manifest
30
+ IDs when using them.
29
31
 
30
- `extract_artifact` requires explicit approval, an absent absolute output root,
31
- and selected occurrence IDs. Never extract every entry implicitly. Symlinks and
32
- encrypted entries are inventory facts, not extractable files.
32
+ Use `extract_artifact` when materialized files are needed. It takes no arguments
33
+ and materializes all regular files into a fresh temporary directory chosen by
34
+ REA. Symlinks and encrypted entries are inventory facts, not extractable files.
35
+ The operation still requires the filesystem-write permission grant; callers do
36
+ not choose the destination.
33
37
 
34
38
  Native DMG traversal is macOS-only, read-only, and requires both operator policy
35
39
  and `native_mount_approved: true`; without both, retain the root-hash-only result.
@@ -1,180 +0,0 @@
1
- import { z } from "zod";
2
- import { compareApplicationVersionsRequestSchema, compareJavaScriptExportShapesRequestSchema, compareSourceToBundleRequestSchema, traceApplicationFeatureRequestSchema, traceJavaScriptSemanticsRequestSchema, } from "../contracts/applicationWorkflowInputContracts.js";
3
- import { AnalysisInputError } from "../domain/errors.js";
4
- import { projectInputIssues } from "../domain/inputIssueProjection.js";
5
- import { compareApplicationVersionsInputSchema } from "../domain/javascriptApplicationVersionComparisonSchemas.js";
6
- import { compareJavaScriptExportShapesInputSchema } from "../domain/javascriptExportShapeComparisonSchemas.js";
7
- import { traceApplicationFeatureInputSchema } from "../domain/javascriptFeatureTraceSchemas.js";
8
- import { traceJavaScriptSemanticsInputSchema } from "../domain/javascriptSemanticTraceSchemas.js";
9
- import { compareSourceToBundleInputSchema } from "../domain/sourceToBundleComparisonSchemas.js";
10
- import { err, ok } from "../domain/result.js";
11
- import { resolveEvidenceReferences, } from "./EvidenceReferenceResolver.js";
12
- const APPLICATION_GRAPH_IDENTITIES = [
13
- {
14
- operation: "analyze_javascript_application",
15
- predicate: "rea.javascript-application-analysis/v1",
16
- },
17
- {
18
- operation: "analyze_javascript_application",
19
- predicate: "rea.javascript-application-analysis/v2",
20
- },
21
- {
22
- operation: "reconcile_javascript_runtime",
23
- predicate: "rea.javascript-runtime-reconciliation/v1",
24
- },
25
- {
26
- operation: "project_managed_application_graph",
27
- predicate: "rea.managed-application-graph/v1",
28
- },
29
- ];
30
- /** Parse and resolve one trace adapter request into its canonical domain input. */
31
- export const resolveTraceApplicationFeatureRequest = (input, lookup) => {
32
- const parsed = traceApplicationFeatureRequestSchema.safeParse(input);
33
- return parsed.success
34
- ? resolveTraceApplicationFeatureRequestValidated(parsed.data, lookup)
35
- : invalid("trace_application_feature", parsed.error, input);
36
- };
37
- /** Resolve a trace request already parsed by the caller-facing contract. */
38
- export const resolveTraceApplicationFeatureRequestValidated = (input, lookup) => {
39
- const application = graphEvidence(input.application, input.application_evidence_id, lookup);
40
- if (!application.ok)
41
- return application;
42
- const native = resolveEvidenceReferences(lookup, input.native_observation_evidence_ids);
43
- if (!native.ok)
44
- return native;
45
- const raw = {
46
- application: application.value,
47
- native_observations: [...input.native_observations, ...native.value],
48
- seed: input.seed,
49
- direction: input.direction,
50
- limits: input.limits,
51
- };
52
- const parsed = traceApplicationFeatureInputSchema.safeParse(raw);
53
- return parsed.success
54
- ? ok(parsed.data)
55
- : invalid("trace_application_feature", parsed.error, raw);
56
- };
57
- /** Parse and resolve one semantic trace adapter request. */
58
- export const resolveTraceJavaScriptSemanticsRequest = (input, lookup) => {
59
- const parsed = traceJavaScriptSemanticsRequestSchema.safeParse(input);
60
- return parsed.success
61
- ? resolveTraceJavaScriptSemanticsRequestValidated(parsed.data, lookup)
62
- : invalid("trace_javascript_semantics", parsed.error, input);
63
- };
64
- /** Resolve a semantic trace request already parsed by its public contract. */
65
- export const resolveTraceJavaScriptSemanticsRequestValidated = (input, lookup) => {
66
- const application = graphEvidence(input.application, input.application_evidence_id, lookup);
67
- if (!application.ok)
68
- return application;
69
- const raw = { application: application.value, query: input.query };
70
- const parsed = traceJavaScriptSemanticsInputSchema.safeParse(raw);
71
- return parsed.success
72
- ? ok(parsed.data)
73
- : invalid("trace_javascript_semantics", parsed.error, raw);
74
- };
75
- /** Parse and resolve one comparison adapter request into canonical input. */
76
- export const resolveCompareApplicationVersionsRequest = (input, lookup) => {
77
- const parsed = compareApplicationVersionsRequestSchema.safeParse(input);
78
- return parsed.success
79
- ? resolveCompareApplicationVersionsRequestValidated(parsed.data, lookup)
80
- : invalid("compare_application_versions", parsed.error, input);
81
- };
82
- /** Resolve a comparison request parsed by the caller-facing contract. */
83
- export const resolveCompareApplicationVersionsRequestValidated = (input, lookup) => {
84
- const left = graphEvidence(input.left, input.left_evidence_id, lookup);
85
- if (!left.ok)
86
- return left;
87
- const right = graphEvidence(input.right, input.right_evidence_id, lookup);
88
- if (!right.ok)
89
- return right;
90
- const leftNative = resolveEvidenceReferences(lookup, input.left_native_observation_evidence_ids);
91
- if (!leftNative.ok)
92
- return leftNative;
93
- const rightNative = resolveEvidenceReferences(lookup, input.right_native_observation_evidence_ids);
94
- if (!rightNative.ok)
95
- return rightNative;
96
- const raw = {
97
- left: left.value,
98
- right: right.value,
99
- left_native_observations: [
100
- ...input.left_native_observations,
101
- ...leftNative.value,
102
- ],
103
- right_native_observations: [
104
- ...input.right_native_observations,
105
- ...rightNative.value,
106
- ],
107
- limits: input.limits,
108
- ...(input.unknown_registry_approved === undefined
109
- ? {}
110
- : { unknown_registry_approved: input.unknown_registry_approved }),
111
- };
112
- const parsed = compareApplicationVersionsInputSchema.safeParse(raw);
113
- return parsed.success
114
- ? ok(parsed.data)
115
- : invalid("compare_application_versions", parsed.error, raw);
116
- };
117
- /** Parse and resolve one historical-source comparison adapter request. */
118
- export const resolveCompareSourceToBundleRequest = (input, lookup) => {
119
- const parsed = compareSourceToBundleRequestSchema.safeParse(input);
120
- return parsed.success
121
- ? resolveCompareSourceToBundleRequestValidated(parsed.data, lookup)
122
- : invalid("compare_source_to_bundle", parsed.error, input);
123
- };
124
- /** Resolve a historical-source comparison request parsed by its public contract. */
125
- export const resolveCompareSourceToBundleRequestValidated = (input, lookup) => {
126
- const application = graphEvidence(input.application, input.application_evidence_id, lookup);
127
- if (!application.ok)
128
- return application;
129
- const raw = {
130
- reference: input.reference,
131
- application: application.value,
132
- limits: input.limits,
133
- ...(input.unknown_registry_approved === undefined
134
- ? {}
135
- : { unknown_registry_approved: input.unknown_registry_approved }),
136
- };
137
- const parsed = compareSourceToBundleInputSchema.safeParse(raw);
138
- return parsed.success
139
- ? ok(parsed.data)
140
- : invalid("compare_source_to_bundle", parsed.error, raw);
141
- };
142
- /** Parse and resolve an export-shape adapter request into canonical input. */
143
- export const resolveCompareJavaScriptExportShapesRequest = (input, lookup) => {
144
- const parsed = compareJavaScriptExportShapesRequestSchema.safeParse(input);
145
- return parsed.success
146
- ? resolveCompareJavaScriptExportShapesRequestValidated(parsed.data, lookup)
147
- : invalid("compare_javascript_export_shapes", parsed.error, input);
148
- };
149
- /** Resolve an export-shape request already parsed by the adapter contract. */
150
- export const resolveCompareJavaScriptExportShapesRequestValidated = (input, lookup) => {
151
- const left = graphEvidence(input.left, input.left_evidence_id, lookup);
152
- if (!left.ok)
153
- return left;
154
- const right = graphEvidence(input.right, input.right_evidence_id, lookup);
155
- if (!right.ok)
156
- return right;
157
- const raw = {
158
- left: left.value,
159
- right: right.value,
160
- left_module_path: input.left_module_path,
161
- left_export_name: input.left_export_name,
162
- right_module_path: input.right_module_path,
163
- right_export_name: input.right_export_name,
164
- limits: input.limits,
165
- ...(input.unknown_registry_approved === undefined
166
- ? {}
167
- : { unknown_registry_approved: input.unknown_registry_approved }),
168
- };
169
- const parsed = compareJavaScriptExportShapesInputSchema.safeParse(raw);
170
- return parsed.success
171
- ? ok(parsed.data)
172
- : invalid("compare_javascript_export_shapes", parsed.error, raw);
173
- };
174
- const graphEvidence = (evidence, evidenceId, lookup) => {
175
- if (evidence !== undefined)
176
- return ok(evidence);
177
- const resolved = resolveEvidenceReferences(lookup, evidenceId === undefined ? [] : [evidenceId], APPLICATION_GRAPH_IDENTITIES);
178
- return resolved.ok ? ok(resolved.value[0]) : resolved;
179
- };
180
- const invalid = (operation, cause, input) => err(new AnalysisInputError(operation, undefined, projectInputIssues(cause.issues, input)));
@@ -1,86 +0,0 @@
1
- import { lstat, readFile, realpath } from "node:fs/promises";
2
- import { basename, dirname, isAbsolute, relative, resolve } from "node:path";
3
- import writeFileAtomic from "write-file-atomic";
4
- import { EvidenceFileError } from "../domain/errors.js";
5
- import { isJsonWithinLimits } from "../domain/jsonLimits.js";
6
- import { err, ok } from "../domain/result.js";
7
- import { canonicalizeConfiguredRoots } from "./ConfiguredRoots.js";
8
- /** Read bounded JSON data from a regular file beneath an approved root. */
9
- export const readBoundedJson = async (path, policy) => {
10
- if (policy.roots.length === 0)
11
- return err(new EvidenceFileError("read", "disabled"));
12
- try {
13
- const canonicalPath = await realpath(resolve(path));
14
- if (!(await isApproved(canonicalPath, policy.roots)))
15
- return err(new EvidenceFileError("read", "outside-root"));
16
- const stats = await lstat(canonicalPath);
17
- if (!stats.isFile())
18
- return err(new EvidenceFileError("read", "not-file"));
19
- if (stats.size > policy.maxBytes)
20
- return err(new EvidenceFileError("read", "too-large"));
21
- const encoded = await readFile(canonicalPath);
22
- if (encoded.byteLength > policy.maxBytes)
23
- return err(new EvidenceFileError("read", "too-large"));
24
- let decoded;
25
- try {
26
- decoded = JSON.parse(encoded.toString("utf8"));
27
- }
28
- catch (cause) {
29
- return err(new EvidenceFileError("read", "invalid-json", { cause }));
30
- }
31
- return isJsonWithinLimits(decoded, policy)
32
- ? ok(decoded)
33
- : err(new EvidenceFileError("read", "too-large"));
34
- }
35
- catch (cause) {
36
- return err(new EvidenceFileError("read", "io", { cause }));
37
- }
38
- };
39
- /** Atomically write bounded text to a regular file beneath an approved root. */
40
- export const writeBoundedText = async (encoded, path, overwrite, policy) => {
41
- if (policy.roots.length === 0)
42
- return err(new EvidenceFileError("write", "disabled"));
43
- const bytes = Buffer.byteLength(encoded, "utf8");
44
- if (bytes > policy.maxBytes)
45
- return err(new EvidenceFileError("write", "too-large"));
46
- try {
47
- const requestedPath = resolve(path);
48
- const canonicalParent = await realpath(dirname(requestedPath));
49
- const destination = resolve(canonicalParent, basename(requestedPath));
50
- if (!(await isApproved(destination, policy.roots)))
51
- return err(new EvidenceFileError("write", "outside-root"));
52
- const existing = await lstat(destination).catch((cause) => {
53
- if (isFileNotFound(cause))
54
- return undefined;
55
- throw cause;
56
- });
57
- if (existing !== undefined) {
58
- if (!overwrite)
59
- return err(new EvidenceFileError("write", "exists"));
60
- if (!existing.isFile() || existing.isSymbolicLink())
61
- return err(new EvidenceFileError("write", "not-file"));
62
- }
63
- await writeFileAtomic(destination, encoded, {
64
- encoding: "utf8",
65
- mode: 0o600,
66
- fsync: true,
67
- });
68
- return ok({ path: requestedPath, bytes });
69
- }
70
- catch (cause) {
71
- return err(new EvidenceFileError("write", "io", { cause }));
72
- }
73
- };
74
- const isApproved = async (candidate, roots) => {
75
- for (const root of await canonicalizeConfiguredRoots(roots.map((configuredRoot) => resolve(configuredRoot)))) {
76
- const relation = relative(root, candidate);
77
- if (relation === "" ||
78
- (!relation.startsWith("..") && !isAbsolute(relation)))
79
- return true;
80
- }
81
- return false;
82
- };
83
- const isFileNotFound = (cause) => typeof cause === "object" &&
84
- cause !== null &&
85
- "code" in cause &&
86
- cause.code === "ENOENT";
@@ -1,128 +0,0 @@
1
- import { ArtifactReaderFailure } from "../artifacts/ArtifactReader.js";
2
- import { createEvidence } from "../domain/evidence.js";
3
- import { AnalysisCancelledError, ArtifactOperationError, } from "../domain/errors.js";
4
- import { jsonValueSchema } from "../domain/jsonValue.js";
5
- import { err, ok } from "../domain/result.js";
6
- import { paginateArtifactInventory, } from "./ArtifactInventory.js";
7
- import { scanAuthorizedArtifactInventory } from "./AuthorizedArtifactInventory.js";
8
- import { ARTIFACT_GRAPH_PROVIDER } from "./InvestigationProviders.js";
9
- export const AUTOMATIC_RUN_LIMITATION = "Automatic cross-version runs compare shipped artifact structure only; they do not execute either version.";
10
- /** Start both independent version scans while preserving left/right identity. */
11
- export const scanVersionInventories = async (options, scanner = scanAuthorizedArtifactInventory) => {
12
- const [left, right] = await Promise.all([
13
- scanner(options.leftPath, options.inputRoots, options.limits, {
14
- signal: options.signal,
15
- integrity: options.integrity,
16
- }),
17
- scanner(options.rightPath, options.inputRoots, options.limits, {
18
- signal: options.signal,
19
- integrity: options.integrity,
20
- }),
21
- ]);
22
- return { left, right };
23
- };
24
- /** Authorize and scan both inputs once under the same bounded traversal policy. */
25
- export const scanVersions = async (input, inputRoots, signal, integrityContinueEnabled = false) => {
26
- try {
27
- if (signal?.aborted === true)
28
- return err(new AnalysisCancelledError("find_changed_behavior"));
29
- const limits = artifactLimits(input.options);
30
- const integrity = {
31
- mode: input.integrity_policy,
32
- approved: input.integrity_continue_approved,
33
- enabled: integrityContinueEnabled,
34
- maxMismatches: input.max_integrity_mismatches,
35
- };
36
- return ok(await scanVersionInventories({
37
- leftPath: input.left_path,
38
- rightPath: input.right_path,
39
- inputRoots,
40
- limits,
41
- ...(signal === undefined ? {} : { signal }),
42
- integrity,
43
- }));
44
- }
45
- catch (cause) {
46
- if (cause instanceof ArtifactReaderFailure)
47
- return err(new ArtifactOperationError("inventory_artifact", cause.reason, cause.details));
48
- return err(new ArtifactOperationError("inventory_artifact", "io"));
49
- }
50
- };
51
- /** Project complete snapshots into bounded, comparable Evidence page sets. */
52
- export const createInventoryEvidencePages = (input, snapshots) => {
53
- const left = inventoryPages(input.left_path, snapshots.left, input);
54
- const right = inventoryPages(input.right_path, snapshots.right, input);
55
- if (left.length > 100 || right.length > 100)
56
- return err(new ArtifactOperationError("inventory_artifact", "limit"));
57
- return ok({ left, right });
58
- };
59
- /** Reduce a snapshot to the content commitments used by run identity. */
60
- export const targetFor = (snapshot) => ({
61
- root_sha256: snapshot.manifest.root_sha256,
62
- graph_sha256: snapshot.manifest.graph_sha256,
63
- manifest_id: snapshot.manifest.manifest_id,
64
- format: snapshot.manifest.root_format,
65
- });
66
- /** Preserve scan and execution limitations in stable order. */
67
- export const runLimitations = (snapshots) => [
68
- ...new Set([
69
- ...snapshots.left.limitations.map((item) => `Left: ${item}`),
70
- ...snapshots.right.limitations.map((item) => `Right: ${item}`),
71
- AUTOMATIC_RUN_LIMITATION,
72
- ]),
73
- ].sort((left, right) => left.localeCompare(right));
74
- const inventoryPages = (path, snapshot, input) => {
75
- const options = input.options;
76
- const count = Math.max(1, Math.ceil(snapshot.nodes.length / options.page_size), Math.ceil(snapshot.occurrences.length / options.page_size), Math.ceil(snapshot.edges.length / options.page_size));
77
- return Array.from({ length: count }, (_, index) => inventoryPage(path, snapshot, input, index * options.page_size));
78
- };
79
- const inventoryPage = (path, snapshot, input, offset) => {
80
- const options = input.options;
81
- const result = paginateArtifactInventory(snapshot, {
82
- nodeOffset: offset,
83
- nodeLimit: options.page_size,
84
- occurrenceOffset: offset,
85
- occurrenceLimit: options.page_size,
86
- edgeOffset: offset,
87
- edgeLimit: options.page_size,
88
- });
89
- return createEvidence({
90
- path,
91
- sha256: snapshot.manifest.root_sha256,
92
- format: snapshot.manifest.root_format,
93
- }, ARTIFACT_GRAPH_PROVIDER, {
94
- operation: "inventory_artifact",
95
- parameters: {
96
- node_offset: offset,
97
- node_limit: options.page_size,
98
- occurrence_offset: offset,
99
- occurrence_limit: options.page_size,
100
- edge_offset: offset,
101
- edge_limit: options.page_size,
102
- max_entries: options.max_entries,
103
- max_total_bytes: options.max_total_bytes,
104
- max_entry_bytes: options.max_entry_bytes,
105
- max_compression_ratio: options.max_compression_ratio,
106
- max_depth: options.max_depth,
107
- max_path_bytes: options.max_path_bytes,
108
- integrity_policy: input.integrity_policy,
109
- integrity_continue_approved: input.integrity_continue_approved,
110
- max_integrity_mismatches: input.max_integrity_mismatches,
111
- },
112
- result: jsonValueSchema.parse(result),
113
- rawResult: null,
114
- limitations: result.limitations,
115
- locations: result.occurrences.items.map(({ logical_path: logicalPath }) => ({
116
- kind: "artifact-path",
117
- path: logicalPath,
118
- })),
119
- });
120
- };
121
- const artifactLimits = (options) => ({
122
- maxEntries: options.max_entries,
123
- maxTotalBytes: options.max_total_bytes,
124
- maxEntryBytes: options.max_entry_bytes,
125
- maxCompressionRatio: options.max_compression_ratio,
126
- maxDepth: options.max_depth,
127
- maxPathBytes: options.max_path_bytes,
128
- });