rea-agents 3.2.1 → 4.0.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 (434) hide show
  1. package/README.md +183 -332
  2. package/bridge/ghidra/ReaGhidraBridge.java +561 -74
  3. package/bridge/hopper_bridge.py +70 -27
  4. package/bridge/native/ReaNativeUI.swift +157 -0
  5. package/dist/application/AnalysisContextQueries.js +19 -5
  6. package/dist/application/AnalysisSnapshotCache.js +30 -11
  7. package/dist/application/AppleAssetCatalogAnalysis.js +171 -0
  8. package/dist/application/ArtifactExtractionDestination.js +0 -12
  9. package/dist/application/ArtifactGraphConstruction.js +44 -11
  10. package/dist/application/ArtifactInventory/classify.js +7 -15
  11. package/dist/application/ArtifactInventory/hash.js +4 -2
  12. package/dist/application/ArtifactInventory/policy.js +2 -17
  13. package/dist/application/ArtifactInventory/reader.js +3 -3
  14. package/dist/application/ArtifactInventory/scanCanonical.js +2 -2
  15. package/dist/application/ArtifactInventory/scanReader.js +12 -4
  16. package/dist/application/ArtifactInventory/types.js +0 -3
  17. package/dist/application/BinarySession.js +28 -43
  18. package/dist/application/BinarySessionExecution.js +37 -1
  19. package/dist/application/BinaryTargetResolver.js +50 -4
  20. package/dist/application/BrowserEvidence.js +36 -7
  21. package/dist/application/BrowserObservationService.js +17 -44
  22. package/dist/application/BrowserScenarioCaptureService.js +2 -35
  23. package/dist/application/BrowserScenarioEvidence.js +13 -9
  24. package/dist/application/CapabilityClientRequirements.js +2 -11
  25. package/dist/application/CapabilityInventory.js +21 -35
  26. package/dist/application/ClientConfigurationDocument.js +84 -7
  27. package/dist/application/ClientRegistrationIdentity.js +32 -0
  28. package/dist/application/ClientRegistrationStatus.js +59 -6
  29. package/dist/application/DirectAnalysis.js +37 -58
  30. package/dist/application/DirectAnalysisStatus.js +4 -4
  31. package/dist/application/Doctor.js +89 -80
  32. package/dist/application/DoctorDiagnostics.js +2 -26
  33. package/dist/application/DoctorScope.js +8 -14
  34. package/dist/application/ElectronActiveEvidence.js +10 -27
  35. package/dist/application/ElectronActiveObservationService.js +9 -36
  36. package/dist/application/ElectronBoundaryAnalysis.js +2 -0
  37. package/dist/application/ElectronBoundaryGraphNative.js +1 -1
  38. package/dist/application/ElectronEvidence.js +8 -3
  39. package/dist/application/ElectronObservationService.js +9 -25
  40. package/dist/application/EnhancedLiteralTracing.js +4 -8
  41. package/dist/application/EnhancedTools.js +15 -35
  42. package/dist/application/FilesystemSnapshot.js +7 -8
  43. package/dist/application/JavaScriptApplicationEvidenceGraph.js +2 -1
  44. package/dist/application/JavaScriptApplicationWorkflowService.js +31 -7
  45. package/dist/application/JavaScriptArtifactAnalysis.js +6 -4
  46. package/dist/application/JavaScriptArtifactFiles.js +5 -0
  47. package/dist/application/JavaScriptArtifactPathResolution.js +179 -47
  48. package/dist/application/JavaScriptRuntimeObservationEvidence.js +6 -3
  49. package/dist/application/JavaScriptRuntimeObservationService.js +9 -25
  50. package/dist/application/JavaScriptRuntimeReconciliationService.js +45 -4
  51. package/dist/application/JavaScriptSemanticGraphAsyncProjection.js +11 -0
  52. package/dist/application/JavaScriptSemanticGraphChildProcessProjection.js +11 -0
  53. package/dist/application/JavaScriptSemanticGraphDataProjection.js +11 -0
  54. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +14 -5
  55. package/dist/application/JsonFiles.js +1 -1
  56. package/dist/application/LazyAnalysisProvider.js +27 -6
  57. package/dist/application/ManagedMemberComparisonService.js +19 -6
  58. package/dist/application/NativeApiInspection.js +2 -0
  59. package/dist/application/NativeCallRoutes.js +72 -0
  60. package/dist/application/NativeDispatchMetadataInspection.js +33 -0
  61. package/dist/application/NativeUiActionTrace.js +73 -49
  62. package/dist/application/NativeValueTrace.js +320 -0
  63. package/dist/application/ProcessCaptureCapability.js +32 -5
  64. package/dist/application/ProcessCaptureEnvironment.js +9 -26
  65. package/dist/application/ProcessCaptureError.js +1 -5
  66. package/dist/application/ProcessCaptureJournal.js +3 -40
  67. package/dist/application/ProcessCaptureLifecycle.js +102 -111
  68. package/dist/application/ProcessCli.js +18 -25
  69. package/dist/application/ProcessEvidence.js +5 -7
  70. package/dist/application/ProcessFilesystemEffects.js +36 -0
  71. package/dist/application/ProcessHarness.js +41 -120
  72. package/dist/application/ProcessNormalization.js +2 -17
  73. package/dist/application/ProcessScenarioRuntimeValidation.js +76 -0
  74. package/dist/application/ReferenceSourceImport.js +3 -4
  75. package/dist/application/Setup.js +236 -84
  76. package/dist/application/SetupClientConfiguration.js +14 -9
  77. package/dist/application/SetupPlan.js +138 -86
  78. package/dist/application/SetupSkill.js +0 -1
  79. package/dist/application/SupportedClients.js +102 -21
  80. package/dist/application/Uninstall.js +31 -20
  81. package/dist/application/Update.js +93 -0
  82. package/dist/application/UpdateMaintenance.js +108 -0
  83. package/dist/application/UpdateRuntime.js +126 -0
  84. package/dist/application/runtime.js +13 -2
  85. package/dist/artifacts/ArtifactPaths.js +6 -8
  86. package/dist/artifacts/ArtifactProvider.js +94 -41
  87. package/dist/artifacts/AsarArtifactReader.js +19 -4
  88. package/dist/artifacts/KeyedArchiveReader.js +110 -0
  89. package/dist/artifacts/MachOSliceArtifactReader.js +53 -5
  90. package/dist/artifacts/ZipArtifactReader.js +18 -1
  91. package/dist/browser/BrowserScenarioSecrets.js +28 -1
  92. package/dist/browser/CdpBrowserProvider.js +36 -15
  93. package/dist/browser/CdpCaptureDocuments.js +22 -8
  94. package/dist/browser/CdpCaptureEventHandlers.js +14 -5
  95. package/dist/browser/CdpCaptureEventHelpers.js +13 -0
  96. package/dist/browser/CdpCaptureEvents.js +10 -1
  97. package/dist/browser/CdpElectronInspection.js +5 -10
  98. package/dist/browser/CdpElectronProvider.js +1 -5
  99. package/dist/browser/CdpElectronScripts.js +1 -1
  100. package/dist/browser/CdpEndpoint.js +3 -2
  101. package/dist/browser/CdpObservationSession.js +14 -10
  102. package/dist/browser/CdpPageCapture.js +1 -1
  103. package/dist/browser/CdpPageCaptureScripts.js +1 -1
  104. package/dist/browser/CdpSafeMetadata.js +5 -4
  105. package/dist/browser/CdpScreenshot.js +16 -5
  106. package/dist/browser/CdpTargetSession.js +25 -4
  107. package/dist/browser/CdpWebMcpDiscovery.js +93 -20
  108. package/dist/browser/JavaScriptRuntimeScope.js +28 -2
  109. package/dist/browser/PlaywrightBrowserScenarioProvider.js +9 -8
  110. package/dist/browser/PlaywrightElectronActiveActions.js +3 -10
  111. package/dist/browser/PlaywrightElectronActiveProvider.js +5 -5
  112. package/dist/browser/PlaywrightScenarioActions.js +1 -1
  113. package/dist/browser/PlaywrightScenarioArtifacts.js +13 -25
  114. package/dist/browser/PlaywrightScenarioBrowser.js +28 -25
  115. package/dist/browser/PlaywrightScenarioEvents.js +82 -93
  116. package/dist/browser/PlaywrightScenarioSession.js +27 -123
  117. package/dist/browser/PngVisualDiff.js +22 -3
  118. package/dist/browser/V8InspectorCaptureProjection.js +7 -1
  119. package/dist/browser/V8InspectorProvider.js +60 -7
  120. package/dist/browser/WebSourceMapFetcher.js +99 -53
  121. package/dist/cli/artifactCommands.js +56 -12
  122. package/dist/cli/coreAnalysisCommands.js +110 -0
  123. package/dist/cli/managedCommands.js +1 -31
  124. package/dist/cli/setupCommands.js +16 -14
  125. package/dist/cli/utilityCommands.js +61 -4
  126. package/dist/cli.js +5 -7
  127. package/dist/cliApplicationCommands.js +0 -83
  128. package/dist/cliBrowserAdvancedCommands.js +7 -11
  129. package/dist/cliBrowserCommands.js +15 -23
  130. package/dist/cliBrowserContext.js +3 -24
  131. package/dist/cliBrowserScenarioCommands.js +2 -10
  132. package/dist/cliCommandNames.js +82 -7
  133. package/dist/cliElectronCommands.js +10 -36
  134. package/dist/cliJavaScriptRuntimeCommands.js +6 -30
  135. package/dist/cliJsonInput.js +4 -2
  136. package/dist/cliLogging.js +16 -7
  137. package/dist/cliObservationOptions.js +1 -1
  138. package/dist/cliOutput.js +2 -4
  139. package/dist/cliProcessCommands.js +6 -33
  140. package/dist/cliSetup.js +90 -160
  141. package/dist/config/environment.js +2 -78
  142. package/dist/config/parseConfig.js +18 -109
  143. package/dist/config/parsers.js +0 -23
  144. package/dist/contracts/applicationToolContracts.js +1 -118
  145. package/dist/contracts/artifactToolContracts.js +11 -19
  146. package/dist/contracts/browserScenarioToolContracts.js +1 -5
  147. package/dist/contracts/browserToolContracts.js +9 -16
  148. package/dist/contracts/electronToolContracts.js +5 -6
  149. package/dist/contracts/enhancedInputs.js +3 -2
  150. package/dist/contracts/errorSchemas.js +16 -40
  151. package/dist/contracts/functionWorkflowToolContracts.js +2 -2
  152. package/dist/contracts/javascriptApplicationWorkflowExamples.js +2 -2
  153. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +4 -4
  154. package/dist/contracts/javascriptRuntimeReconciliationExample.js +1 -1
  155. package/dist/contracts/managedToolContracts.js +7 -4
  156. package/dist/contracts/managedWorkflowExamples.js +0 -22
  157. package/dist/contracts/managedWorkflowToolContracts.js +16 -31
  158. package/dist/contracts/nativeToolContracts.js +9 -0
  159. package/dist/contracts/promptContracts.js +6 -6
  160. package/dist/contracts/sessionToolSchemas.js +3 -3
  161. package/dist/contracts/toolContractExamples.js +4 -3
  162. package/dist/contracts/toolContracts.js +18 -7
  163. package/dist/contracts/toolEffects.js +34 -21
  164. package/dist/contracts/toolOutputSchemaGroups.js +18 -5
  165. package/dist/contracts/toolOutputSchemaPrimitives.js +9 -6
  166. package/dist/contracts/toolSchemaMetadata.js +5 -8
  167. package/dist/doctorRuntime.js +0 -41
  168. package/dist/domain/analysisErrorPresentation.js +4 -28
  169. package/dist/domain/analysisErrorProjection.js +33 -50
  170. package/dist/domain/analysisProfile.js +1 -1
  171. package/dist/domain/analysisSnapshot.js +77 -3
  172. package/dist/domain/androidApplication.js +5 -4
  173. package/dist/domain/appleApplication.js +5 -4
  174. package/dist/domain/appleAssetCatalog.js +127 -0
  175. package/dist/domain/artifactComparison.js +7 -11
  176. package/dist/domain/artifactGraph.js +8 -6
  177. package/dist/domain/artifactInspection.js +13 -12
  178. package/dist/domain/binaryTarget.js +23 -9
  179. package/dist/domain/browserObservation.js +43 -24
  180. package/dist/domain/browserObservationSchemas.js +2 -1
  181. package/dist/domain/browserScenario.js +7 -107
  182. package/dist/domain/browserScenarioCapture.js +0 -1
  183. package/dist/domain/browserScenarioCaptureValues.js +5 -4
  184. package/dist/domain/browserScenarioDiff.js +1 -3
  185. package/dist/domain/browserScenarioValues.js +16 -107
  186. package/dist/domain/bundleComparison.js +18 -17
  187. package/dist/domain/callPathSchemas.js +17 -7
  188. package/dist/domain/changedBehavior.js +2 -3
  189. package/dist/domain/comparisonSemantics.js +19 -0
  190. package/dist/domain/completionLedgerGeneration.js +3 -2
  191. package/dist/domain/conformancePackage.js +2 -1
  192. package/dist/domain/conformanceTrustGate.js +3 -5
  193. package/dist/domain/customProtocolCapture.js +2 -2
  194. package/dist/domain/digests.js +30 -0
  195. package/dist/domain/dosMz.js +83 -0
  196. package/dist/domain/electronActiveObservation.js +7 -5
  197. package/dist/domain/electronObservation.js +3 -2
  198. package/dist/domain/electronStaticAnalysisNative.js +15 -6
  199. package/dist/domain/emptyArraySchema.js +3 -0
  200. package/dist/domain/errors.js +10 -28
  201. package/dist/domain/evidence.js +5 -3
  202. package/dist/domain/evidenceCompletionLedger.js +3 -2
  203. package/dist/domain/functionComparisonNormalization.js +24 -18
  204. package/dist/domain/functionComparisonResults.js +3 -7
  205. package/dist/domain/functionComparisonSchemas.js +3 -2
  206. package/dist/domain/hopperValues.js +108 -8
  207. package/dist/domain/javascriptApplicationAnalysis.js +4 -7
  208. package/dist/domain/javascriptApplicationEvidenceSchemas.js +4 -3
  209. package/dist/domain/javascriptApplicationGraphSchemas.js +8 -7
  210. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +9 -7
  211. package/dist/domain/javascriptApplicationVersionItems.js +12 -18
  212. package/dist/domain/javascriptAstValues.js +4 -0
  213. package/dist/domain/javascriptExportShapeComparison.js +1 -6
  214. package/dist/domain/javascriptExportShapeComparisonSchemas.js +6 -10
  215. package/dist/domain/javascriptExportShapeVariants.js +15 -2
  216. package/dist/domain/javascriptFeatureTraceSchemas.js +8 -7
  217. package/dist/domain/javascriptRuntimeObservation.js +14 -2
  218. package/dist/domain/javascriptRuntimeReconciliationMatching.js +8 -0
  219. package/dist/domain/javascriptRuntimeReconciliationParsing.js +4 -2
  220. package/dist/domain/javascriptRuntimeReconciliationResult.js +6 -4
  221. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +15 -4
  222. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +19 -18
  223. package/dist/domain/javascriptRuntimeStaticCandidates.js +18 -6
  224. package/dist/domain/javascriptSemanticAnalysis.js +57 -19
  225. package/dist/domain/javascriptSemanticAsyncEffects.js +39 -40
  226. package/dist/domain/javascriptSemanticCalls.js +46 -27
  227. package/dist/domain/javascriptSemanticChildProcesses.js +43 -50
  228. package/dist/domain/javascriptSemanticDataEffectHelpers.js +91 -18
  229. package/dist/domain/javascriptSemanticDataEffects.js +22 -10
  230. package/dist/domain/javascriptSemanticGraphSchemas.js +8 -6
  231. package/dist/domain/javascriptSemanticObjects.js +13 -3
  232. package/dist/domain/javascriptSemanticProjection.js +144 -38
  233. package/dist/domain/javascriptSemanticPromises.js +14 -27
  234. package/dist/domain/javascriptSemanticQuerySchemas.js +6 -9
  235. package/dist/domain/javascriptSemanticResources.js +2 -5
  236. package/dist/domain/javascriptSemanticState.js +4 -0
  237. package/dist/domain/javascriptSemanticTraceSchemas.js +2 -1
  238. package/dist/domain/javascriptSemanticTraversal.js +13 -5
  239. package/dist/domain/javascriptSemanticValues.js +10 -9
  240. package/dist/domain/javascriptSourceParser.js +5 -1
  241. package/dist/domain/javascriptStaticAnalysisCalls.js +8 -5
  242. package/dist/domain/javascriptStaticAnalysisHelpers.js +16 -7
  243. package/dist/domain/keyedArchive.js +181 -0
  244. package/dist/domain/managedApplicationGraph.js +4 -3
  245. package/dist/domain/managedArtifact.js +2 -1
  246. package/dist/domain/managedMemberComparison.js +18 -13
  247. package/dist/domain/managedMemberComparisonCoverage.js +2 -1
  248. package/dist/domain/managedMemberComparisonItems.js +27 -7
  249. package/dist/domain/managedMemberComparisonMatch.js +22 -6
  250. package/dist/domain/managedNativeVerificationMatch.js +2 -2
  251. package/dist/domain/managedNativeVerificationSchemas.js +7 -5
  252. package/dist/domain/managedReconstruction.js +6 -5
  253. package/dist/domain/nativeApiBoundary.js +7 -0
  254. package/dist/domain/nativeDataType.js +51 -0
  255. package/dist/domain/nativeInspection.js +0 -1
  256. package/dist/domain/nativeInstruction.js +82 -0
  257. package/dist/domain/nativeInvestigationGraph.js +9 -5
  258. package/dist/domain/nativeUiObservation.js +123 -0
  259. package/dist/domain/nativeValueFlow.js +17 -0
  260. package/dist/domain/nativeValueTrace.js +64 -0
  261. package/dist/domain/objcSwiftMetadata.js +39 -0
  262. package/dist/domain/peInspection.js +1 -0
  263. package/dist/domain/processCapture.js +5 -55
  264. package/dist/domain/processCaptureExample.js +0 -9
  265. package/dist/domain/processCaptureValidation.js +13 -144
  266. package/dist/domain/processComparison.js +3 -25
  267. package/dist/domain/processObservation.js +0 -29
  268. package/dist/domain/processScenario.js +28 -228
  269. package/dist/domain/processTraceDimensionProjection.js +0 -15
  270. package/dist/domain/processTraceEvaluation.js +0 -6
  271. package/dist/domain/protocolCapture.js +8 -36
  272. package/dist/domain/reconstructionCoverage.js +3 -2
  273. package/dist/domain/reconstructionObligationLedgerSchemas.js +4 -12
  274. package/dist/domain/reconstructionReadinessSchemas.js +4 -3
  275. package/dist/domain/reconstructionVerification.js +2 -1
  276. package/dist/domain/reconstructionVerificationSchemas.js +6 -13
  277. package/dist/domain/referenceSourceClassification.js +0 -110
  278. package/dist/domain/referenceSourceGraph.js +15 -5
  279. package/dist/domain/residualUnknown.js +3 -2
  280. package/dist/domain/runtimeIdentification.js +6 -5
  281. package/dist/domain/sourceMapContents.js +5 -0
  282. package/dist/domain/sourceToBundleComparison.js +3 -10
  283. package/dist/domain/sourceToBundleComparisonSchemas.js +7 -6
  284. package/dist/domain/sourceToBundleSignals.js +9 -3
  285. package/dist/domain/staticRuntimeCorrelation.js +5 -11
  286. package/dist/domain/webBundleAnalysis.js +17 -9
  287. package/dist/domain/webBundleAnalyzer.js +1 -1
  288. package/dist/domain/webCaptureDiff.js +5 -11
  289. package/dist/domain/webCaptureDiffSchemas.js +2 -1
  290. package/dist/domain/webMcpDiscovery.js +2 -1
  291. package/dist/dotnet/ManagedMemberInspectorCore.js +15 -7
  292. package/dist/dotnet/ManagedMemberInstructionDecoder.js +57 -40
  293. package/dist/dotnet/ManagedMemberRows.js +2 -0
  294. package/dist/dotnet/ManagedMethodBodyReader.js +15 -8
  295. package/dist/dotnet/ManagedPeReader.js +2 -0
  296. package/dist/generatedMcpToolCatalog.js +1 -1
  297. package/dist/generatedPackageMetadata.js +2 -2
  298. package/dist/ghidra/GhidraAnalysisProfile.js +15 -5
  299. package/dist/ghidra/GhidraClient.js +38 -8
  300. package/dist/ghidra/GhidraFunctionValues.js +56 -20
  301. package/dist/ghidra/GhidraInstallation.js +7 -4
  302. package/dist/ghidra/GhidraInventoryValues.js +44 -9
  303. package/dist/ghidra/GhidraLauncher.js +18 -3
  304. package/dist/ghidra/GhidraProvider.js +23 -2
  305. package/dist/ghidra/GhidraRequestQueue.js +45 -4
  306. package/dist/ghidra/GhidraSessionValues.js +5 -0
  307. package/dist/hopper/HopperAnalysisProfile.js +2 -0
  308. package/dist/hopper/HopperProvider.js +29 -6
  309. package/dist/hopper/HopperTargetLease.js +18 -4
  310. package/dist/logger.js +0 -13
  311. package/dist/main/messages.js +0 -1
  312. package/dist/main/reload.js +3 -32
  313. package/dist/main/shutdown.js +1 -2
  314. package/dist/main/transport.js +0 -17
  315. package/dist/main.js +0 -10
  316. package/dist/native/AppleDispatchMetadata.js +582 -0
  317. package/dist/native/AppleObjcProtocols.js +88 -0
  318. package/dist/native/AppleSwiftVtables.js +86 -0
  319. package/dist/native/CommandRunner.js +1 -1
  320. package/dist/native/NativeHostCapabilities.js +23 -0
  321. package/dist/native/NativeMacOSProvider.js +61 -9
  322. package/dist/native/NativeMachoInspection.js +39 -6
  323. package/dist/native/NativeUiHelperRuntime.js +42 -0
  324. package/dist/native/NativeUiObservation.js +174 -0
  325. package/dist/native/parsers/codesign.js +4 -1
  326. package/dist/native/parsers/dyldInfo.js +51 -25
  327. package/dist/native/parsers/lipo.js +13 -4
  328. package/dist/native/parsers/otool.js +84 -39
  329. package/dist/native/parsers/plist.js +2 -1
  330. package/dist/process/ExecFileOutput.js +5 -1
  331. package/dist/process/ProcessOwnership.js +69 -33
  332. package/dist/process/ProcessOwnershipObservation.js +31 -12
  333. package/dist/process/ProviderProcess.js +4 -2
  334. package/dist/reference/ReferenceSourceReaderEntries.js +48 -31
  335. package/dist/reference/ReferenceSourceReaderErrors.js +24 -0
  336. package/dist/reference/ReferenceSourceReaderFile.js +11 -5
  337. package/dist/reference/ReferenceSourceReaderValidate.js +22 -8
  338. package/dist/server/createServer.js +7 -62
  339. package/dist/server/registerApplicationTools/helpers.js +2 -9
  340. package/dist/server/registerApplicationTools.js +0 -4
  341. package/dist/server/registerArtifactComparisonTool.js +1 -1
  342. package/dist/server/registerBrowserScenarioTool.js +4 -2
  343. package/dist/server/registerBrowserTools.js +7 -7
  344. package/dist/server/registerBundleComparisonTool.js +1 -1
  345. package/dist/server/registerCloseLifecycleTool.js +1 -1
  346. package/dist/server/registerElectronTools.js +10 -4
  347. package/dist/server/registerEnhancedTools.js +20 -12
  348. package/dist/server/registerEvidenceTools.js +4 -28
  349. package/dist/server/registerFunctionComparisonTool.js +1 -1
  350. package/dist/server/registerInvestigationTools.js +6 -6
  351. package/dist/server/registerJavaScriptRuntimeObservationTools.js +2 -2
  352. package/dist/server/registerManagedTools.js +28 -14
  353. package/dist/server/registerManagedWorkflowTools.js +0 -2
  354. package/dist/server/registerProcessComparisonTool.js +1 -3
  355. package/dist/server/registerSessionRecordTools.js +9 -9
  356. package/dist/server/registerSessionStatusTool.js +1 -1
  357. package/dist/server/registerSessionTools.js +28 -57
  358. package/dist/server/sessionAvailabilityPolicy.js +2 -3
  359. package/dist/server/sessionToolPolicies.js +0 -4
  360. package/dist/server/toolResult.js +8 -10
  361. package/package.json +32 -22
  362. package/skills/reverse-engineer-anything/SKILL.md +15 -11
  363. package/skills/reverse-engineer-anything/references/evidence-workflows.md +3 -2
  364. package/skills/reverse-engineer-anything/references/javascript-applications.md +3 -2
  365. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +8 -6
  366. package/skills/reverse-engineer-anything/references/runtime-observation.md +15 -11
  367. package/dist/application/CommandShimReplay.js +0 -152
  368. package/dist/application/ConfiguredRoots.js +0 -19
  369. package/dist/application/InstrumentedJavaScriptReplayHost.js +0 -36
  370. package/dist/application/JavaScriptReplayPermission.js +0 -16
  371. package/dist/application/JavaScriptReplayPlanning.js +0 -207
  372. package/dist/application/JavaScriptReplayService.js +0 -274
  373. package/dist/application/LoopbackReplay.js +0 -389
  374. package/dist/application/LoopbackReplayRecorder.js +0 -129
  375. package/dist/application/ManagedRuntimeCorrelationService.js +0 -104
  376. package/dist/application/NodeRuntimeCharacterizationService.js +0 -191
  377. package/dist/application/PermissionAuthority.js +0 -268
  378. package/dist/application/PermissionConfiguration.js +0 -26
  379. package/dist/application/PermissionFailure.js +0 -5
  380. package/dist/application/ProcessCaptureAuthority.js +0 -24
  381. package/dist/application/ProcessCapturePermission.js +0 -13
  382. package/dist/application/ProcessCheckpoints.js +0 -178
  383. package/dist/application/ProcessReactiveCoordinator.js +0 -223
  384. package/dist/application/ProcessReactiveEffects.js +0 -153
  385. package/dist/application/ProcessReactiveHarness.js +0 -106
  386. package/dist/application/ProcessReactiveObservations.js +0 -105
  387. package/dist/application/ProjectPermissionStore.js +0 -199
  388. package/dist/application/RuntimeExecutableDiagnostics.js +0 -198
  389. package/dist/application/Upgrade.js +0 -134
  390. package/dist/browser/SensitiveTextCapture.js +0 -8
  391. package/dist/cliPolicyCommands.js +0 -185
  392. package/dist/config/browserScenario.js +0 -77
  393. package/dist/config/electronAutomation.js +0 -35
  394. package/dist/config/javascriptReplay.js +0 -41
  395. package/dist/config/managedRuntime.js +0 -25
  396. package/dist/config/passiveObservation.js +0 -87
  397. package/dist/config/permissions.js +0 -23
  398. package/dist/config/processCapture.js +0 -47
  399. package/dist/contracts/replayMachineExample.js +0 -37
  400. package/dist/domain/javascriptExportInstrumentation.js +0 -95
  401. package/dist/domain/javascriptReplay.js +0 -360
  402. package/dist/domain/managedRuntimeCorrelation.js +0 -181
  403. package/dist/domain/nodeRuntimeCharacterization.js +0 -63
  404. package/dist/domain/permissionPolicy.js +0 -176
  405. package/dist/domain/processCaptureReactiveSchema.js +0 -68
  406. package/dist/domain/processCaptureReactiveValidation.js +0 -180
  407. package/dist/domain/processReactiveCheckpointDataflow.js +0 -32
  408. package/dist/domain/processReactiveMatching.js +0 -196
  409. package/dist/domain/processReactiveRuntime.js +0 -116
  410. package/dist/domain/processReactiveScenario.js +0 -296
  411. package/dist/domain/processReactiveScenarioPreflight.js +0 -95
  412. package/dist/domain/processReactiveTransition.js +0 -187
  413. package/dist/domain/replayMachine.js +0 -320
  414. package/dist/domain/replayMachineRun.js +0 -168
  415. package/dist/domain/replayMachineRuntime.js +0 -296
  416. package/dist/domain/replayMachineValues.js +0 -84
  417. package/dist/domain/runtimeCharacterization.js +0 -84
  418. package/dist/replay/JavaScriptReplayWorker.js +0 -382
  419. package/dist/replay/JavaScriptReplayWorkerTypes.js +0 -1
  420. package/dist/replay/LinuxJavaScriptReplayRunner.js +0 -216
  421. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -121
  422. package/dist/replay/LinuxRuntimeClosure.js +0 -44
  423. package/dist/replay/LinuxSeccompPolicy.js +0 -40
  424. package/dist/replay/ReplayOutcome.js +0 -104
  425. package/dist/replay/ReplayProcessLifecycle.js +0 -96
  426. package/dist/replay/ReplaySeccompFile.js +0 -29
  427. package/dist/replay/ReplayWorkerProtocol.js +0 -58
  428. package/dist/replay/SystemJavaScriptReplayHost.js +0 -153
  429. package/dist/server/ProcessCaptureElicitation.js +0 -153
  430. package/dist/server/registerApplicationTools/characterization.js +0 -46
  431. package/dist/server/registerApplicationTools/controlledReplay.js +0 -31
  432. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +0 -29
  433. package/dist/server/registerReplayMachineTool.js +0 -14
  434. package/skills/reverse-engineer-anything/references/controlled-replay.md +0 -12
@@ -8,8 +8,6 @@ const normalization = {
8
8
  };
9
9
  const scenario = { executable_sha256: "0".repeat(64) };
10
10
  const comparisonContract = {};
11
- const shimPlan = [];
12
- const replayPlan = {};
13
11
  /** Minimal valid process capture retained as a public contract example. */
14
12
  export const EMPTY_PROCESS_CAPTURE_EXAMPLE = {
15
13
  manifest: {
@@ -22,14 +20,10 @@ export const EMPTY_PROCESS_CAPTURE_EXAMPLE = {
22
20
  completed_at: "2026-01-01T00:00:00.001Z",
23
21
  scenario,
24
22
  comparison_contract: comparisonContract,
25
- shim_plan: shimPlan,
26
- replay_plan: replayPlan,
27
23
  full_scenario_sha256: digestProcessCommitment(scenario),
28
24
  comparison_contract_sha256: digestProcessCommitment(comparisonContract),
29
25
  executable_sha256: "0".repeat(64),
30
26
  normalization_sha256: digestProcessCommitment(normalization),
31
- shim_plan_sha256: digestProcessCommitment(shimPlan),
32
- replay_plan_sha256: digestProcessCommitment(replayPlan),
33
27
  },
34
28
  normalization,
35
29
  frames: [],
@@ -52,9 +46,6 @@ export const EMPTY_PROCESS_CAPTURE_EXAMPLE = {
52
46
  truncated: false,
53
47
  },
54
48
  ],
55
- shim_events: [],
56
- protocol_events: [],
57
- replay_transitions: [],
58
49
  files_before: [],
59
50
  files_after: [],
60
51
  filesystem_effects: [],
@@ -1,11 +1,8 @@
1
- import { validateProcessCaptureReactiveRun } from "./processCaptureReactiveValidation.js";
2
- import { replayMachineSchema } from "./replayMachine.js";
3
1
  import { digestProcessCommitment } from "./processScenario.js";
4
2
  const orderedTimestamps = (values) => values.every((value, index) => {
5
3
  const previous = values[index - 1];
6
4
  return previous === undefined || value.at_ms >= previous.at_ms;
7
5
  });
8
- const transitionsAreContiguous = (previous, current) => previous !== undefined && previous.state_after === current.state_before;
9
6
  const validateCommitments = (capture, require) => {
10
7
  const { manifest } = capture;
11
8
  require(manifest.scenario.executable_sha256 ===
@@ -14,8 +11,6 @@ const validateCommitments = (capture, require) => {
14
11
  ["full_scenario_sha256", manifest.scenario],
15
12
  ["comparison_contract_sha256", manifest.comparison_contract],
16
13
  ["normalization_sha256", capture.normalization],
17
- ["shim_plan_sha256", manifest.shim_plan],
18
- ["replay_plan_sha256", manifest.replay_plan],
19
14
  ])
20
15
  require(manifest[field] ===
21
16
  digestProcessCommitment(value), `manifest.${field}`, "commitment does not match its canonical value");
@@ -27,38 +22,27 @@ const validateOrdering = (capture, require) => {
27
22
  ["frames", capture.frames],
28
23
  ["rendered_frames", capture.rendered_frames],
29
24
  ["interaction_events", capture.interaction_events],
30
- ["shim_events", capture.shim_events],
31
- ["protocol_events", capture.protocol_events],
32
- ["replay_transitions", capture.replay_transitions],
33
25
  ])
34
26
  require(values.every(({ sequence }, index) => sequence === index), name, "sequence values must be contiguous from zero");
35
27
  for (const [name, values] of [
36
28
  ["frames", capture.frames],
37
29
  ["rendered_frames", capture.rendered_frames],
38
30
  ["process_samples", capture.process_samples],
39
- ["filesystem_checkpoints", capture.filesystem_checkpoints],
40
- ["shim_events", capture.shim_events],
41
- ["protocol_events", capture.protocol_events],
42
- ["replay_transitions", capture.replay_transitions],
43
31
  ])
44
32
  require(orderedTimestamps(values), name, "timestamps must be ordered");
45
33
  };
46
- const journalCollectionSizes = (capture) => ({
47
- frames: capture.frames.length,
48
- rendered_frames: capture.rendered_frames.length,
49
- interaction_events: capture.interaction_events.length,
50
- lifecycle: 2,
51
- process_samples: capture.process_samples.length,
52
- filesystem_checkpoints: capture.filesystem_checkpoints.length,
53
- shim_events: capture.shim_events.length,
54
- protocol_events: capture.protocol_events.length,
55
- replay_transitions: capture.replay_transitions.length,
56
- });
57
34
  const validateEventJournal = (capture, require) => {
58
35
  const journal = capture.event_journal ?? [];
59
36
  if (journal.length === 0)
60
37
  return;
61
- const sizes = journalCollectionSizes(capture);
38
+ const sizes = {
39
+ frames: capture.frames.length,
40
+ rendered_frames: capture.rendered_frames.length,
41
+ interaction_events: capture.interaction_events.length,
42
+ lifecycle: 2,
43
+ process_samples: capture.process_samples.length,
44
+ filesystem_checkpoints: capture.filesystem_checkpoints.length,
45
+ };
62
46
  const references = new Set();
63
47
  for (const [position, entry] of journal.entries()) {
64
48
  require(entry.capture_order ===
@@ -74,128 +58,16 @@ const validateEventJournal = (capture, require) => {
74
58
  expectedSize, "event_journal", "nonempty journal must reference every captured observation");
75
59
  };
76
60
  const validateLifecycle = (capture, require) => {
77
- const checkpointNames = capture.filesystem_checkpoints.map(({ name }) => name);
78
- require(new Set(checkpointNames).size ===
79
- checkpointNames.length, "filesystem_checkpoints", "checkpoint names must be unique");
80
- require(checkpointNames[0] ===
81
- "before", "filesystem_checkpoints", "first checkpoint must be before");
82
- require(checkpointNames.at(-1) ===
83
- "after_settlement", "filesystem_checkpoints", "last checkpoint must be after_settlement");
61
+ require(capture.filesystem_checkpoints.map(({ name }) => name).join(",") ===
62
+ "before,after_settlement", "filesystem_checkpoints", "capture must include initial and final filesystem snapshots");
63
+ require(orderedTimestamps(capture.filesystem_checkpoints), "filesystem_checkpoints", "filesystem snapshot times must be ordered");
84
64
  require(!capture.filesystem_checkpoints.some(({ truncated }) => truncated) ||
85
- capture.truncated, "truncated", "checkpoint truncation must propagate to the capture");
65
+ capture.truncated, "truncated", "filesystem snapshot truncation must propagate to the capture");
86
66
  require(capture.exit.reason === "exited" ||
87
67
  capture.exit.code ===
88
68
  null, "exit", "deadline termination cannot declare a normal exit code");
89
69
  };
90
- const shimPlans = (capture) => capture.manifest.shim_plan.flatMap((shim) => typeof shim === "object" &&
91
- shim !== null &&
92
- "name" in shim &&
93
- "routes" in shim &&
94
- typeof shim.name === "string" &&
95
- Array.isArray(shim.routes)
96
- ? shim.routes.map((route, routeIndex) => ({
97
- command: shim.name,
98
- route,
99
- routeIndex,
100
- }))
101
- : []);
102
- const validateShimEvents = (capture, require) => {
103
- const plans = shimPlans(capture);
104
- for (const event of capture.shim_events) {
105
- const declared = plans.some(({ command, routeIndex }) => command === event.command && routeIndex === event.route_index);
106
- require(event.outcome === "unmatched"
107
- ? event.route_index === null
108
- : declared, "shim_events", "shim event has no declared route");
109
- }
110
- for (const plan of plans) {
111
- const maximum = typeof plan.route === "object" &&
112
- plan.route !== null &&
113
- "max_calls" in plan.route &&
114
- typeof plan.route.max_calls === "number"
115
- ? plan.route.max_calls
116
- : 0;
117
- const matches = capture.shim_events.filter((event) => event.command === plan.command &&
118
- event.route_index === plan.routeIndex &&
119
- event.outcome === "matched").length;
120
- require(matches <=
121
- maximum, "shim_events", "matched shim events exceed the declared route max_calls");
122
- }
123
- };
124
- const isRecord = (value) => typeof value === "object" && value !== null;
125
- const machinePlan = (replayPlan) => {
126
- const parsed = replayMachineSchema.safeParse(replayPlan["machine"]);
127
- return parsed.success ? parsed.data : undefined;
128
- };
129
- const matchesHttpPlan = (value, event) => {
130
- if (!isRecord(value))
131
- return false;
132
- const route = isRecord(value["trigger"]) ? value["trigger"] : value;
133
- return ((route["protocol"] === undefined || route["protocol"] === "http") &&
134
- route["method"] === event.method &&
135
- route["path"] === event.path);
136
- };
137
- const validateMatchedHttpEvents = (capture, plans, require) => {
138
- for (const event of capture.protocol_events) {
139
- if (event.protocol !== "http" ||
140
- event.direction !== "request" ||
141
- event.outcome !== "matched")
142
- continue;
143
- require(plans.some((plan) => matchesHttpPlan(plan, event)), "protocol_events", "matched HTTP event has no declared replay route");
144
- }
145
- };
146
- const validateReplayEvents = (capture, require) => {
147
- const replayPlan = capture.manifest.replay_plan;
148
- const routes = Array.isArray(replayPlan["http"]) ? replayPlan["http"] : [];
149
- const machine = machinePlan(replayPlan);
150
- require(replayPlan["machine"] === undefined ||
151
- replayPlan["machine"] === null ||
152
- machine !==
153
- undefined, "manifest.replay_plan.machine", "replay machine does not satisfy its declared schema");
154
- validateMatchedHttpEvents(capture, [...routes, ...(machine?.transitions ?? [])], require);
155
- const plans = new Map((machine?.transitions ?? []).map((transition) => [
156
- transition.id,
157
- transition,
158
- ]));
159
- const transitionUses = new Map();
160
- const stateVisits = new Map();
161
- if (machine !== undefined)
162
- stateVisits.set(machine.initial_state, 1);
163
- require(machine === undefined ||
164
- capture.replay_transitions.length <=
165
- machine.max_transitions, "replay_transitions", "replay transition journal exceeds the declared machine limit");
166
- for (const [index, transition] of capture.replay_transitions.entries()) {
167
- const plan = plans.get(transition.transition_id);
168
- require(plan !==
169
- undefined, "replay_transitions", "replay transition has no declared machine transition");
170
- if (plan === undefined)
171
- continue;
172
- require(transition.state_before === plan.from &&
173
- transition.state_after ===
174
- plan.to, "replay_transitions", "replay transition states do not match the declared transition");
175
- require(JSON.stringify(transition.sensitive_aliases) ===
176
- JSON.stringify(plan.captures
177
- .filter(({ sensitive }) => sensitive)
178
- .map(({ variable }) => variable)
179
- .sort()), "replay_transitions", "replay transition sensitive aliases do not match the declared captures");
180
- const uses = (transitionUses.get(plan.id) ?? 0) + 1;
181
- transitionUses.set(plan.id, uses);
182
- require(uses <=
183
- plan.max_uses, "replay_transitions", "replay transition journal exceeds the transition use limit");
184
- const visits = (stateVisits.get(transition.state_after) ?? 0) + 1;
185
- stateVisits.set(transition.state_after, visits);
186
- const state = machine?.states.find(({ name }) => name === transition.state_after);
187
- require(state === undefined ||
188
- visits <=
189
- state.max_visits, "replay_transitions", "replay transition journal exceeds the state visit limit");
190
- if (index === 0)
191
- require(transition.state_before ===
192
- machine?.initial_state, "replay_transitions", "first replay transition does not start at the declared initial state");
193
- const previous = capture.replay_transitions[index - 1];
194
- if (index > 0)
195
- require(transitionsAreContiguous(previous, transition), "replay_transitions", "replay transition states are not contiguous");
196
- }
197
- };
198
- /** Recompute v4 commitments and cross-field invariants without side effects. */
70
+ /** Recompute commitments and cross-field invariants without side effects. */
199
71
  export const collectProcessCaptureIssues = (capture) => {
200
72
  const issues = [];
201
73
  const require = (condition, path, message) => {
@@ -206,8 +78,5 @@ export const collectProcessCaptureIssues = (capture) => {
206
78
  validateOrdering(capture, require);
207
79
  validateEventJournal(capture, require);
208
80
  validateLifecycle(capture, require);
209
- validateShimEvents(capture, require);
210
- validateReplayEvents(capture, require);
211
- validateProcessCaptureReactiveRun(capture, require);
212
81
  return issues;
213
82
  };
@@ -19,9 +19,7 @@ export const PROCESS_COMPARISON_DIMENSIONS = [
19
19
  "interaction",
20
20
  "exit",
21
21
  "filesystem",
22
- "protocol",
23
22
  "process",
24
- "shim",
25
23
  ];
26
24
  /** Derive the overall comparison status from every process dimension. */
27
25
  export const deriveProcessComparisonStatus = (dimensions) => {
@@ -39,9 +37,7 @@ export const processCaptureComparisonSchema = z
39
37
  interaction: comparisonStatusSchema,
40
38
  exit: comparisonStatusSchema,
41
39
  filesystem: comparisonStatusSchema,
42
- protocol: comparisonStatusSchema,
43
40
  process: comparisonStatusSchema,
44
- shim: comparisonStatusSchema,
45
41
  first_divergence: z.discriminatedUnion("status", [
46
42
  z.object({ status: z.literal("none") }),
47
43
  z.object({ status: z.literal("unknown"), reason: z.string() }),
@@ -52,9 +48,7 @@ export const processCaptureComparisonSchema = z
52
48
  "interaction",
53
49
  "exit",
54
50
  "filesystem",
55
- "protocol",
56
51
  "process",
57
- "shim",
58
52
  ]),
59
53
  index: z.number().int().nonnegative(),
60
54
  left_at_ms: z.number().int().nonnegative().nullable(),
@@ -89,14 +83,7 @@ const terminalObservations = (capture) => [
89
83
  return left.kind === "raw" ? -1 : 1;
90
84
  return left.sequence - right.sequence;
91
85
  });
92
- const filesystemObservations = (capture) => [
93
- ...capture.filesystem_checkpoints,
94
- {
95
- name: "final",
96
- files: capture.files_after,
97
- effects: capture.filesystem_effects,
98
- },
99
- ];
86
+ const filesystemObservations = (capture) => capture.filesystem_checkpoints;
100
87
  const sameJsonValue = (left, right) => {
101
88
  const encodedLeft = canonicalize(left);
102
89
  return encodedLeft !== undefined && encodedLeft === canonicalize(right);
@@ -112,12 +99,8 @@ export const processDimensionObservations = (capture, dimension) => {
112
99
  return [{ ...capture.exit, settlement: capture.settlement }];
113
100
  case "filesystem":
114
101
  return filesystemObservations(capture);
115
- case "protocol":
116
- return [...capture.protocol_events, ...capture.replay_transitions];
117
102
  case "process":
118
103
  return capture.process_samples;
119
- case "shim":
120
- return capture.shim_events;
121
104
  }
122
105
  };
123
106
  const classifyCollection = (left, right) => {
@@ -184,9 +167,7 @@ const truncatedComparison = () => ({
184
167
  interaction: "truncated",
185
168
  exit: "truncated",
186
169
  filesystem: "truncated",
187
- protocol: "truncated",
188
170
  process: "truncated",
189
- shim: "truncated",
190
171
  first_divergence: {
191
172
  status: "unknown",
192
173
  reason: "At least one capture is truncated.",
@@ -222,9 +203,7 @@ const applyTraceVerdict = (dimensions, specification, trace, captures) => {
222
203
  interaction: statusFor("interaction"),
223
204
  exit: statusFor("exit"),
224
205
  filesystem: statusFor("filesystem"),
225
- protocol: statusFor("protocol"),
226
206
  process: statusFor("process"),
227
- shim: statusFor("shim"),
228
207
  };
229
208
  };
230
209
  const compareDimensions = (left, right, sameNormalization) => {
@@ -240,9 +219,7 @@ const compareDimensions = (left, right, sameNormalization) => {
240
219
  ? "unchanged"
241
220
  : "changed",
242
221
  filesystem: classify("filesystem", filesystemObservations(left), filesystemObservations(right)),
243
- protocol: classify("protocol", [...left.protocol_events, ...left.replay_transitions], [...right.protocol_events, ...right.replay_transitions]),
244
222
  process: classify("process", left.process_samples, right.process_samples),
245
- shim: classify("shim", left.shim_events, right.shim_events),
246
223
  };
247
224
  };
248
225
  /**
@@ -292,8 +269,9 @@ export const compareProcessCaptures = (left, right, options = {}) => {
292
269
  reason: "Residual unknowns prevent proving that no divergence occurred.",
293
270
  }
294
271
  : observedFirstDivergence;
272
+ const observedStatus = deriveProcessComparisonStatus(PROCESS_COMPARISON_DIMENSIONS.map((dimension) => dimensions[dimension]));
295
273
  return {
296
- status: deriveProcessComparisonStatus(PROCESS_COMPARISON_DIMENSIONS.map((dimension) => dimensions[dimension])),
274
+ status: observedStatus,
297
275
  ...dimensions,
298
276
  first_divergence: firstDivergence,
299
277
  ...(trace === undefined ? {} : { trace }),
@@ -8,10 +8,6 @@ export const processObservationSourceSchema = z.enum([
8
8
  "lifecycle",
9
9
  "process",
10
10
  "filesystem",
11
- "http",
12
- "websocket",
13
- "shim",
14
- "replay_transition",
15
11
  ]);
16
12
  /** Stable raw-record location within one Process Capture observation journal. */
17
13
  export const processObservationLocationSchema = z.strictObject({
@@ -22,9 +18,6 @@ export const processObservationLocationSchema = z.strictObject({
22
18
  "lifecycle",
23
19
  "process_samples",
24
20
  "filesystem_checkpoints",
25
- "shim_events",
26
- "protocol_events",
27
- "replay_transitions",
28
21
  ]),
29
22
  index: z.number().int().nonnegative(),
30
23
  capture_order: z.number().int().nonnegative(),
@@ -69,12 +62,6 @@ export const processObservationSubject = (source, value) => {
69
62
  "name" in value &&
70
63
  typeof value.name === "string")
71
64
  return `checkpoint:${value.name}`;
72
- if (source === "shim" &&
73
- "command" in value &&
74
- typeof value.command === "string")
75
- return "route_index" in value && typeof value.route_index === "number"
76
- ? `shim:${value.command}:route:${String(value.route_index)}`
77
- : `shim:${value.command}:unmatched`;
78
65
  return null;
79
66
  };
80
67
  const projectedRecord = (capture, location) => {
@@ -117,22 +104,6 @@ const projectedRecord = (capture, location) => {
117
104
  source: "filesystem",
118
105
  value: capture.filesystem_checkpoints[location.index],
119
106
  };
120
- case "shim_events":
121
- return {
122
- source: "shim",
123
- value: capture.shim_events[location.index],
124
- };
125
- case "protocol_events": {
126
- const event = capture.protocol_events[location.index];
127
- return event === undefined
128
- ? null
129
- : { source: event.protocol, value: event };
130
- }
131
- case "replay_transitions":
132
- return {
133
- source: "replay_transition",
134
- value: capture.replay_transitions[location.index],
135
- };
136
107
  }
137
108
  })();
138
109
  if (projected === null || projected.value === undefined)