rea-agents 3.1.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (590) hide show
  1. package/README.md +72 -95
  2. package/bridge/ghidra/ReaGhidraBridge.java +609 -841
  3. package/bridge/hopper_bridge.py +99 -344
  4. package/dist/application/AbortablePromise.js +6 -3
  5. package/dist/application/AnalysisSnapshotCache.js +0 -1
  6. package/dist/application/AnalysisSnapshotFiles.js +7 -7
  7. package/dist/application/AndroidApplicationService.js +1 -1
  8. package/dist/application/AppleApplicationService.js +1 -1
  9. package/dist/application/ArtifactExtraction.js +35 -54
  10. package/dist/application/ArtifactExtractionDestination.js +17 -0
  11. package/dist/application/ArtifactGraphConstruction.js +2 -17
  12. package/dist/application/ArtifactInventory/classify.js +2 -6
  13. package/dist/application/ArtifactInventory/hash.js +2 -20
  14. package/dist/application/ArtifactInventory/scanCanonical.js +8 -12
  15. package/dist/application/ArtifactInventory/scanReader.js +69 -51
  16. package/dist/application/ArtifactInventory.js +6 -14
  17. package/dist/application/AuthorizedArtifactInventory.js +3 -13
  18. package/dist/application/BinarySession.js +41 -13
  19. package/dist/application/BinarySessionComposition.js +0 -11
  20. package/dist/application/BinarySessionOpen.js +2 -1
  21. package/dist/application/BinarySessionRecords.js +5 -93
  22. package/dist/application/BinarySessionStatus.js +5 -16
  23. package/dist/application/BinaryTargetResolver.js +216 -0
  24. package/dist/application/BrowserEvidence.js +42 -58
  25. package/dist/application/BrowserObservationService.js +3 -6
  26. package/dist/application/BrowserScenarioCaptureService.js +3 -6
  27. package/dist/application/BrowserScenarioEvidence.js +3 -3
  28. package/dist/application/CallPathTracing.js +2 -36
  29. package/dist/application/CapabilityInventory.js +10 -15
  30. package/dist/application/ClientConfigurationDocument.js +27 -0
  31. package/dist/application/ClientRegistrationStatus.js +16 -13
  32. package/dist/application/CommandShimReplay.js +14 -1
  33. package/dist/application/DirectAnalysis.js +22 -46
  34. package/dist/application/DirectAnalysisStatus.js +5 -61
  35. package/dist/application/Doctor.js +11 -32
  36. package/dist/application/DoctorDiagnostics.js +1 -2
  37. package/dist/application/DoctorScope.js +1 -1
  38. package/dist/application/ElectronActiveEvidence.js +3 -8
  39. package/dist/application/ElectronActiveObservationService.js +3 -6
  40. package/dist/application/ElectronBoundaryAnalysis.js +7 -8
  41. package/dist/application/ElectronBoundaryGraphContext.js +1 -1
  42. package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
  43. package/dist/application/ElectronBoundaryGraphNative.js +1 -2
  44. package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
  45. package/dist/application/ElectronEvidence.js +4 -7
  46. package/dist/application/ElectronObservationService.js +5 -9
  47. package/dist/application/EnhancedLiteralTracing.js +42 -65
  48. package/dist/application/EnhancedTools.js +76 -44
  49. package/dist/application/EvidenceBundleCommands.js +11 -11
  50. package/dist/application/EvidenceBundleFiles.js +9 -15
  51. package/dist/application/EvidenceLedger.js +6 -41
  52. package/dist/application/FilesystemSnapshot.js +2 -3
  53. package/dist/application/InterfaceBuilderAnalysis.js +266 -0
  54. package/dist/application/InventoryProjectionEvidence.js +4 -2
  55. package/dist/application/InvestigationProviders.js +1 -1
  56. package/dist/application/JavaScriptApplicationEvidence.js +2 -5
  57. package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
  58. package/dist/application/JavaScriptApplicationService.js +6 -29
  59. package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
  60. package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
  61. package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
  62. package/dist/application/JavaScriptArtifactFiles.js +67 -107
  63. package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
  64. package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
  65. package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
  66. package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
  67. package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
  68. package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
  69. package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
  70. package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
  71. package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
  72. package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
  73. package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
  74. package/dist/application/JavaScriptJsonModules.js +2 -2
  75. package/dist/application/JavaScriptModuleRelationships.js +22 -27
  76. package/dist/application/JavaScriptReplayPlanning.js +9 -3
  77. package/dist/application/JavaScriptReplayService.js +6 -32
  78. package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
  79. package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
  80. package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
  81. package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
  82. package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
  83. package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
  84. package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
  85. package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
  86. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
  87. package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
  88. package/dist/application/JavaScriptSemanticTraceService.js +1 -10
  89. package/dist/application/JsonFiles.js +79 -0
  90. package/dist/application/LinuxHopper.js +11 -9
  91. package/dist/application/LoopbackReplay.js +26 -23
  92. package/dist/application/LoopbackReplayRecorder.js +29 -1
  93. package/dist/application/ManagedApplicationGraphService.js +1 -2
  94. package/dist/application/ManagedMemberComparisonService.js +11 -41
  95. package/dist/application/ManagedNativeVerificationService.js +1 -2
  96. package/dist/application/ManagedReconstructionService.js +1 -1
  97. package/dist/application/ManagedRuntimeCorrelationService.js +5 -8
  98. package/dist/application/NativeApiInspection.js +2 -7
  99. package/dist/application/NativeUiActionTrace.js +394 -0
  100. package/dist/application/NodeRuntimeCharacterizationService.js +3 -7
  101. package/dist/application/PermissionAuthority.js +15 -7
  102. package/dist/application/PermissionFailure.js +5 -0
  103. package/dist/application/ProcessCaptureAuthority.js +5 -7
  104. package/dist/application/ProcessCaptureJournal.js +3 -2
  105. package/dist/application/ProcessCaptureLifecycle.js +5 -12
  106. package/dist/application/ProcessCheckpoints.js +29 -11
  107. package/dist/application/ProcessCli.js +6 -16
  108. package/dist/application/ProcessEvidence.js +5 -7
  109. package/dist/application/ProcessHarness.js +52 -17
  110. package/dist/application/ProcessReactiveCoordinator.js +2 -4
  111. package/dist/application/ProcessReactiveEffects.js +9 -3
  112. package/dist/application/ProcessReactiveHarness.js +13 -7
  113. package/dist/application/ProcessSampling.js +2 -4
  114. package/dist/application/ProcessTimer.js +39 -0
  115. package/dist/application/ProjectPermissionStore.js +39 -96
  116. package/dist/application/RealHopperAssertions.js +20 -66
  117. package/dist/application/ReconstructionCoverageService.js +12 -58
  118. package/dist/application/ReconstructionObligationAuthority.js +2 -2
  119. package/dist/application/ReconstructionObligationCandidates.js +4 -4
  120. package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
  121. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
  122. package/dist/application/ReconstructionObligationLedgerService.js +19 -38
  123. package/dist/application/ReferenceSourceImport.js +19 -45
  124. package/dist/application/ReferenceSourceImportEntries.js +2 -4
  125. package/dist/application/ReferenceSourceImportPolicy.js +5 -32
  126. package/dist/application/ReferenceSourceImportTypes.js +0 -16
  127. package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
  128. package/dist/application/SessionProviderRouter.js +2 -2
  129. package/dist/application/Setup.js +1 -3
  130. package/dist/application/SetupClientConfiguration.js +22 -93
  131. package/dist/application/SetupRegistrationEnvironment.js +0 -7
  132. package/dist/application/StoreFileLock.js +119 -0
  133. package/dist/application/TerminalRenderer.js +2 -3
  134. package/dist/application/Uninstall.js +9 -14
  135. package/dist/application/UnknownEvidence.js +1 -1
  136. package/dist/artifacts/ArtifactPaths.js +2 -5
  137. package/dist/artifacts/ArtifactProvider.js +36 -58
  138. package/dist/artifacts/DirectoryArtifactReader.js +13 -8
  139. package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
  140. package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
  141. package/dist/artifacts/NibArchive.js +269 -0
  142. package/dist/artifacts/SafeOutputTree.js +15 -24
  143. package/dist/browser/BrowserProcessStartup.js +1 -2
  144. package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
  145. package/dist/browser/CdpBrowserProvider.js +3 -13
  146. package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
  147. package/dist/browser/CdpCaptureDocuments.js +28 -76
  148. package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
  149. package/dist/browser/CdpCaptureEventHandlers.js +22 -87
  150. package/dist/browser/CdpCaptureEvents.js +2 -8
  151. package/dist/browser/CdpCaptureStorage.js +9 -20
  152. package/dist/browser/CdpCaptureStorageFingerprints.js +85 -98
  153. package/dist/browser/CdpCaptureValues.js +21 -21
  154. package/dist/browser/CdpConnection.js +10 -25
  155. package/dist/browser/CdpElectronInspection.js +26 -50
  156. package/dist/browser/CdpElectronProvider.js +10 -35
  157. package/dist/browser/CdpElectronScriptEvents.js +8 -16
  158. package/dist/browser/CdpElectronScripts.js +6 -35
  159. package/dist/browser/CdpElectronWorkers.js +6 -10
  160. package/dist/browser/CdpEndpoint.js +25 -41
  161. package/dist/browser/CdpObservationSession.js +14 -26
  162. package/dist/browser/CdpPageCapture.js +34 -48
  163. package/dist/browser/CdpPageCaptureScripts.js +1 -19
  164. package/dist/browser/CdpPageCaptureWorkers.js +6 -10
  165. package/dist/browser/CdpSafeMetadata.js +19 -22
  166. package/dist/browser/CdpScreenshot.js +3 -5
  167. package/dist/browser/CdpTargetSession.js +1 -2
  168. package/dist/browser/CdpWebMcpDiscovery.js +13 -22
  169. package/dist/browser/ElectronFileScope.js +8 -19
  170. package/dist/browser/JavaScriptRuntimeScope.js +9 -14
  171. package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
  172. package/dist/browser/PlaywrightElectronActiveActions.js +54 -69
  173. package/dist/browser/PlaywrightElectronActiveProvider.js +14 -34
  174. package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
  175. package/dist/browser/PlaywrightScenarioActions.js +3 -7
  176. package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
  177. package/dist/browser/PlaywrightScenarioBrowser.js +3 -5
  178. package/dist/browser/PlaywrightScenarioEvents.js +45 -94
  179. package/dist/browser/PlaywrightScenarioSession.js +14 -30
  180. package/dist/browser/PngVisualDiff.js +22 -14
  181. package/dist/browser/SensitiveTextCapture.js +0 -17
  182. package/dist/browser/V8InspectorCaptureProjection.js +7 -8
  183. package/dist/browser/V8InspectorEndpoint.js +12 -14
  184. package/dist/browser/V8InspectorProvider.js +20 -61
  185. package/dist/browser/WebSourceMapFetcher.js +56 -176
  186. package/dist/catalogIdentity.js +0 -54
  187. package/dist/cli/artifactCommands.js +49 -77
  188. package/dist/cli/coreAnalysisCommands.js +83 -133
  189. package/dist/cli/javascriptApplicationAnalysis.js +1 -9
  190. package/dist/cli/managedCommands.js +5 -270
  191. package/dist/cli/setupCommands.js +3 -12
  192. package/dist/cli/utilityCommands.js +7 -41
  193. package/dist/cli.js +0 -2
  194. package/dist/cliApplicationCommands.js +42 -112
  195. package/dist/cliBrowserAdvancedCommands.js +10 -106
  196. package/dist/cliBrowserCommands.js +15 -127
  197. package/dist/cliBrowserContext.js +30 -0
  198. package/dist/cliCommandNames.js +4 -5
  199. package/dist/cliElectronCommands.js +8 -72
  200. package/dist/cliEvidenceCommands.js +8 -77
  201. package/dist/cliJavaScriptRuntimeCommands.js +9 -91
  202. package/dist/cliJsonInput.js +4 -14
  203. package/dist/cliObservationOptions.js +11 -96
  204. package/dist/cliPolicyCommands.js +2 -17
  205. package/dist/cliProcessCommands.js +3 -3
  206. package/dist/cliSetup.js +0 -13
  207. package/dist/config/browserScenario.js +2 -2
  208. package/dist/config/environment.js +0 -9
  209. package/dist/config/parseConfig.js +1 -33
  210. package/dist/config/parsers.js +6 -27
  211. package/dist/config/passiveObservation.js +7 -77
  212. package/dist/config/permissions.js +0 -7
  213. package/dist/contracts/analysisSearchContract.js +2 -5
  214. package/dist/contracts/applicationToolContracts.js +56 -109
  215. package/dist/contracts/applicationWorkflowInputContracts.js +27 -102
  216. package/dist/contracts/artifactComparisonExample.js +58 -60
  217. package/dist/contracts/artifactToolContracts.js +20 -67
  218. package/dist/contracts/browserScenarioToolContracts.js +6 -51
  219. package/dist/contracts/browserToolContracts.js +8 -73
  220. package/dist/contracts/electronToolContracts.js +8 -108
  221. package/dist/contracts/enhancedInputs.js +23 -54
  222. package/dist/contracts/errorSchemas.js +0 -1
  223. package/dist/contracts/functionComparisonExample.js +10 -24
  224. package/dist/contracts/functionInstructionContract.js +1 -3
  225. package/dist/contracts/functionWorkflowToolContracts.js +2 -2
  226. package/dist/contracts/hopperMemoryContracts.js +3 -3
  227. package/dist/contracts/investigationExamples.js +14 -11
  228. package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
  229. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
  230. package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
  231. package/dist/contracts/managedToolContracts.js +6 -95
  232. package/dist/contracts/managedWorkflowExamples.js +77 -128
  233. package/dist/contracts/managedWorkflowToolContracts.js +51 -77
  234. package/dist/contracts/nativeToolContracts.js +7 -11
  235. package/dist/contracts/processCaptureExample.js +2 -69
  236. package/dist/contracts/promptContracts.js +49 -67
  237. package/dist/contracts/providerSelection.js +0 -1
  238. package/dist/contracts/reconstructionReadinessExample.js +1 -6
  239. package/dist/contracts/sessionStatusContract.js +1 -17
  240. package/dist/contracts/sessionToolSchemas.js +6 -15
  241. package/dist/contracts/toolContractExamples.js +11 -11
  242. package/dist/contracts/toolContractHelpers.js +0 -4
  243. package/dist/contracts/toolContracts.js +60 -71
  244. package/dist/contracts/toolEffects.js +5 -13
  245. package/dist/contracts/toolOutputSchemaGroups.js +37 -91
  246. package/dist/contracts/toolOutputSchemaPrimitives.js +16 -56
  247. package/dist/contracts/toolSchemaMetadata.js +8 -19
  248. package/dist/contracts/unknownContractExamples.js +0 -2
  249. package/dist/domain/analysisErrorPresentation.js +46 -54
  250. package/dist/domain/analysisErrorProjection.js +28 -37
  251. package/dist/domain/analysisProfile.js +3 -31
  252. package/dist/domain/analysisSnapshot.js +3 -12
  253. package/dist/domain/androidApplication.js +15 -54
  254. package/dist/domain/appleApplication.js +24 -67
  255. package/dist/domain/artifactComparison.js +11 -29
  256. package/dist/domain/artifactGraph.js +14 -44
  257. package/dist/domain/artifactInspection.js +38 -69
  258. package/dist/domain/artifactInventoryEvidence.js +27 -21
  259. package/dist/domain/binaryTarget.js +2 -221
  260. package/dist/domain/browserCaptureComparison.js +47 -24
  261. package/dist/domain/browserObservation.js +28 -193
  262. package/dist/domain/browserObservationSchemas.js +5 -23
  263. package/dist/domain/browserScenario.js +11 -14
  264. package/dist/domain/browserScenarioCapture.js +11 -12
  265. package/dist/domain/browserScenarioCaptureValues.js +146 -84
  266. package/dist/domain/browserScenarioDiff.js +2 -59
  267. package/dist/domain/browserScenarioDiffEvidence.js +51 -0
  268. package/dist/domain/browserScenarioDiffValues.js +21 -38
  269. package/dist/domain/browserScenarioValues.js +80 -109
  270. package/dist/domain/browserSession.js +4 -7
  271. package/dist/domain/bundleComparison.js +6 -32
  272. package/dist/domain/bytecodeProvider.js +20 -19
  273. package/dist/domain/callPath.js +47 -167
  274. package/dist/domain/callPathSchemas.js +79 -0
  275. package/dist/domain/changedBehavior.js +34 -60
  276. package/dist/domain/completionLedgerGeneration.js +8 -14
  277. package/dist/domain/conformancePackage.js +126 -97
  278. package/dist/domain/conformanceReplay.js +36 -8
  279. package/dist/domain/conformanceTrustGate.js +23 -14
  280. package/dist/domain/customProtocolCapture.js +1 -1
  281. package/dist/domain/electronActiveObservation.js +70 -103
  282. package/dist/domain/electronObservation.js +14 -80
  283. package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
  284. package/dist/domain/electronStaticAnalysisIpc.js +38 -14
  285. package/dist/domain/electronStaticAnalysisNative.js +1 -8
  286. package/dist/domain/electronStaticAnalysisValues.js +10 -17
  287. package/dist/domain/errors.js +33 -54
  288. package/dist/domain/eventProcessTree.js +20 -12
  289. package/dist/domain/evidence.js +2 -10
  290. package/dist/domain/evidenceBundle.js +3 -5
  291. package/dist/domain/evidenceCompletionLedger.js +6 -8
  292. package/dist/domain/functionComparison.js +4 -14
  293. package/dist/domain/functionComparisonNormalization.js +4 -11
  294. package/dist/domain/functionComparisonResults.js +25 -15
  295. package/dist/domain/functionComparisonSchemas.js +49 -33
  296. package/dist/domain/functionDossierEvidence.js +31 -156
  297. package/dist/domain/hopperStartupFailure.js +1 -1
  298. package/dist/domain/hopperValues.js +15 -136
  299. package/dist/domain/interfaceBuilderGraph.js +654 -0
  300. package/dist/domain/javascriptApplicationAnalysis.js +8 -112
  301. package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
  302. package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
  303. package/dist/domain/javascriptApplicationGraph.js +3 -13
  304. package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
  305. package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
  306. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
  307. package/dist/domain/javascriptApplicationVersionItems.js +120 -53
  308. package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
  309. package/dist/domain/javascriptAstFingerprint.js +25 -58
  310. package/dist/domain/javascriptAstValues.js +9 -0
  311. package/dist/domain/javascriptExportInstrumentation.js +2 -4
  312. package/dist/domain/javascriptExportShapeComparison.js +6 -7
  313. package/dist/domain/javascriptExportShapeComparisonSchemas.js +68 -75
  314. package/dist/domain/javascriptExportShapeSelection.js +17 -19
  315. package/dist/domain/javascriptFeatureSeed.js +20 -12
  316. package/dist/domain/javascriptFeatureTrace.js +13 -67
  317. package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
  318. package/dist/domain/javascriptFeatureTraversal.js +1 -44
  319. package/dist/domain/javascriptNativeHandoff.js +1 -1
  320. package/dist/domain/javascriptReplay.js +24 -41
  321. package/dist/domain/javascriptRuntimeLoadState.js +3 -8
  322. package/dist/domain/javascriptRuntimeObservation.js +42 -103
  323. package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
  324. package/dist/domain/javascriptRuntimeReconciliationActive.js +8 -17
  325. package/dist/domain/javascriptRuntimeReconciliationGraph.js +10 -23
  326. package/dist/domain/javascriptRuntimeReconciliationMatching.js +18 -12
  327. package/dist/domain/javascriptRuntimeReconciliationParsing.js +16 -45
  328. package/dist/domain/javascriptRuntimeReconciliationResult.js +4 -5
  329. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
  330. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +33 -48
  331. package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
  332. package/dist/domain/javascriptSemanticAnalysis.js +12 -45
  333. package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
  334. package/dist/domain/javascriptSemanticCallResolution.js +6 -16
  335. package/dist/domain/javascriptSemanticCalls.js +5 -32
  336. package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
  337. package/dist/domain/javascriptSemanticCoverage.js +11 -0
  338. package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
  339. package/dist/domain/javascriptSemanticDataEffects.js +1 -11
  340. package/dist/domain/javascriptSemanticFingerprints.js +3 -5
  341. package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
  342. package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
  343. package/dist/domain/javascriptSemanticIr.js +1 -29
  344. package/dist/domain/javascriptSemanticObjects.js +1 -5
  345. package/dist/domain/javascriptSemanticPrimitives.js +2 -9
  346. package/dist/domain/javascriptSemanticProjection.js +0 -18
  347. package/dist/domain/javascriptSemanticPromises.js +9 -16
  348. package/dist/domain/javascriptSemanticProvenance.js +16 -19
  349. package/dist/domain/javascriptSemanticQuery.js +17 -139
  350. package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
  351. package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
  352. package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
  353. package/dist/domain/javascriptSemanticResources.js +1 -6
  354. package/dist/domain/javascriptSemanticReturns.js +10 -27
  355. package/dist/domain/javascriptSemanticValueTypes.js +1 -0
  356. package/dist/domain/javascriptSemanticValues.js +44 -62
  357. package/dist/domain/javascriptStaticAnalysis.js +21 -43
  358. package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
  359. package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
  360. package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
  361. package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
  362. package/dist/domain/javascriptStaticAnalysisState.js +1 -5
  363. package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
  364. package/dist/domain/jsonShape.js +7 -33
  365. package/dist/domain/localPath.js +7 -0
  366. package/dist/domain/managedApplicationGraph.js +9 -41
  367. package/dist/domain/managedApplicationGraphCoverage.js +24 -156
  368. package/dist/domain/managedApplicationGraphNodes.js +10 -13
  369. package/dist/domain/managedArtifact.js +14 -27
  370. package/dist/domain/managedMemberComparison.js +90 -92
  371. package/dist/domain/managedMemberComparisonCoverage.js +11 -33
  372. package/dist/domain/managedMemberComparisonItems.js +221 -0
  373. package/dist/domain/managedMemberComparisonMatch.js +8 -208
  374. package/dist/domain/managedNativeVerification.js +3 -6
  375. package/dist/domain/managedNativeVerificationMatch.js +55 -59
  376. package/dist/domain/managedNativeVerificationSchemas.js +83 -47
  377. package/dist/domain/managedReconstruction.js +19 -23
  378. package/dist/domain/managedRuntimeCorrelation.js +6 -9
  379. package/dist/domain/nativeApiBoundary.js +2 -7
  380. package/dist/domain/nativeInspection.js +0 -2
  381. package/dist/domain/nativeInvestigationGraph.js +351 -0
  382. package/dist/domain/nativeValueFlow.js +61 -0
  383. package/dist/domain/nodeRuntimeCharacterization.js +1 -5
  384. package/dist/domain/objcSwiftMetadata.js +254 -0
  385. package/dist/domain/peInspection.js +1 -1
  386. package/dist/domain/permissionPolicy.js +13 -0
  387. package/dist/domain/processCapture.js +76 -113
  388. package/dist/domain/processCaptureExample.js +68 -0
  389. package/dist/domain/processCaptureParsing.js +21 -0
  390. package/dist/domain/processCaptureReactiveSchema.js +68 -0
  391. package/dist/domain/processCaptureValidation.js +1 -7
  392. package/dist/domain/processComparison.js +3 -12
  393. package/dist/domain/processReactiveMatching.js +29 -50
  394. package/dist/domain/processReactiveRuntime.js +4 -8
  395. package/dist/domain/processReactiveScenario.js +28 -94
  396. package/dist/domain/processReactiveScenarioPreflight.js +5 -30
  397. package/dist/domain/processReactiveTransition.js +33 -18
  398. package/dist/domain/processScenario.js +56 -90
  399. package/dist/domain/processTraceComparison.js +0 -8
  400. package/dist/domain/processTraceEvaluation.js +14 -4
  401. package/dist/domain/processTraceSpecification.js +11 -17
  402. package/dist/domain/protocolCapture.js +3 -3
  403. package/dist/domain/reconstructionCoverage.js +62 -129
  404. package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
  405. package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
  406. package/dist/domain/reconstructionReadiness.js +1 -2
  407. package/dist/domain/reconstructionReadinessSchemas.js +36 -38
  408. package/dist/domain/reconstructionUnknowns.js +3 -3
  409. package/dist/domain/reconstructionVerification.js +13 -47
  410. package/dist/domain/reconstructionVerificationSchemas.js +50 -38
  411. package/dist/domain/referenceSourceGraph.js +53 -61
  412. package/dist/domain/referenceSourceImportParsing.js +1 -5
  413. package/dist/domain/replayMachine.js +19 -31
  414. package/dist/domain/replayMachineRun.js +15 -63
  415. package/dist/domain/replayMachineRuntime.js +41 -41
  416. package/dist/domain/replayMachineValues.js +84 -0
  417. package/dist/domain/residualUnknown.js +25 -30
  418. package/dist/domain/runtimeCharacterization.js +15 -16
  419. package/dist/domain/runtimeIdentification.js +48 -47
  420. package/dist/domain/sourceToBundleComparison.js +9 -85
  421. package/dist/domain/sourceToBundleComparisonSchemas.js +17 -42
  422. package/dist/domain/sourceToBundleSignals.js +4 -15
  423. package/dist/domain/staticRuntimeCorrelation.js +37 -49
  424. package/dist/domain/symbolAnalysis.js +10 -19
  425. package/dist/domain/unicodeCodePointOrder.js +12 -0
  426. package/dist/domain/webBundleAnalysis.js +70 -99
  427. package/dist/domain/webBundleAnalyzer.js +2 -4
  428. package/dist/domain/webBundleAnalyzerAst.js +0 -13
  429. package/dist/domain/webBundleAnalyzerInspection.js +26 -52
  430. package/dist/domain/webBundleAnalyzerResult.js +7 -24
  431. package/dist/domain/webCaptureDiff.js +33 -73
  432. package/dist/domain/webCaptureDiffSchemas.js +86 -0
  433. package/dist/domain/webContentArtifact.js +1 -10
  434. package/dist/domain/webMcpDiscovery.js +3 -14
  435. package/dist/domain/webScreenshot.js +58 -34
  436. package/dist/domain/zipPackageFormat.js +7 -0
  437. package/dist/dotnet/ManagedArtifactInspector.js +17 -50
  438. package/dist/dotnet/ManagedMemberInspector.js +27 -58
  439. package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
  440. package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
  441. package/dist/dotnet/ManagedMemberRows.js +16 -16
  442. package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
  443. package/dist/dotnet/ManagedMetadataInventory.js +21 -30
  444. package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
  445. package/dist/dotnet/ManagedMetadataLayout.js +3 -5
  446. package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
  447. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
  448. package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -41
  449. package/dist/dotnet/ManagedPeReader.js +2 -2
  450. package/dist/dotnet/ManagedStaticProvider.js +13 -71
  451. package/dist/generatedMcpToolCatalog.js +1 -1
  452. package/dist/generatedPackageMetadata.js +1 -1
  453. package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
  454. package/dist/ghidra/GhidraClient.js +4 -12
  455. package/dist/ghidra/GhidraClientWire.js +9 -5
  456. package/dist/ghidra/GhidraDefaults.js +0 -18
  457. package/dist/ghidra/GhidraDiagnostics.js +0 -2
  458. package/dist/ghidra/GhidraDoctor.js +16 -12
  459. package/dist/ghidra/GhidraFunctionValues.js +65 -108
  460. package/dist/ghidra/GhidraInstallation.js +98 -42
  461. package/dist/ghidra/GhidraInventoryValues.js +16 -85
  462. package/dist/ghidra/GhidraLauncher.js +0 -8
  463. package/dist/ghidra/GhidraProvider.js +15 -22
  464. package/dist/ghidra/GhidraProviderCapabilities.js +6 -47
  465. package/dist/ghidra/GhidraRequestQueue.js +6 -30
  466. package/dist/ghidra/GhidraResponseBuffer.js +1 -7
  467. package/dist/ghidra/GhidraSessionValues.js +0 -2
  468. package/dist/ghidra/GhidraTransport.js +4 -7
  469. package/dist/ghidra/protocol.js +2 -2
  470. package/dist/hopper/BridgeLauncher.js +112 -36
  471. package/dist/hopper/HopperAnalysisProfile.js +1 -1
  472. package/dist/hopper/HopperCleanup.js +6 -3
  473. package/dist/hopper/HopperClient.js +4 -7
  474. package/dist/hopper/HopperProcessDiagnostic.js +2 -2
  475. package/dist/hopper/HopperProvider.js +0 -16
  476. package/dist/hopper/HopperRequestQueue.js +21 -40
  477. package/dist/hopper/HopperResponseStream.js +1 -9
  478. package/dist/hopper/HopperSessionValues.js +3 -2
  479. package/dist/hopper/HopperTargetLease.js +119 -0
  480. package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
  481. package/dist/hopper/LinuxPrivateDisplayProbe.js +5 -16
  482. package/dist/hopper/protocol.js +6 -4
  483. package/dist/main/reload.js +0 -3
  484. package/dist/main/shutdown.js +1 -1
  485. package/dist/main/state.js +0 -9
  486. package/dist/main/transport.js +0 -5
  487. package/dist/mcpDoctor.js +25 -45
  488. package/dist/native/CommandRunner.js +18 -25
  489. package/dist/native/NativeMacOSProvider.js +13 -38
  490. package/dist/native/NativeMachoInspection.js +1 -1
  491. package/dist/process/BoundedFileBytes.js +17 -0
  492. package/dist/process/ExecFileOutput.js +11 -0
  493. package/dist/process/PendingOperations.js +8 -6
  494. package/dist/process/ProcessOwnership.js +3 -2
  495. package/dist/process/ProcessOwnershipObservation.js +0 -1
  496. package/dist/process/ProviderProcess.js +7 -28
  497. package/dist/reference/ReferenceSourceReader.js +8 -24
  498. package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
  499. package/dist/reference/ReferenceSourceReaderFile.js +13 -31
  500. package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
  501. package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
  502. package/dist/replay/JavaScriptReplayWorker.js +3 -5
  503. package/dist/replay/LinuxJavaScriptReplayRunner.js +33 -29
  504. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
  505. package/dist/replay/LinuxRuntimeClosure.js +1 -3
  506. package/dist/replay/ReplayOutcome.js +1 -3
  507. package/dist/replay/ReplayProcessLifecycle.js +32 -7
  508. package/dist/replay/ReplaySeccompFile.js +29 -0
  509. package/dist/replay/ReplayWorkerProtocol.js +0 -2
  510. package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
  511. package/dist/server/ProcessCaptureElicitation.js +4 -8
  512. package/dist/server/createServer.js +6 -44
  513. package/dist/server/promptCompletion.js +37 -61
  514. package/dist/server/recordDerivedEvidence.js +1 -1
  515. package/dist/server/registerApplicationTools/characterization.js +4 -8
  516. package/dist/server/registerApplicationTools/compareExportShapes.js +5 -10
  517. package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -10
  518. package/dist/server/registerApplicationTools/compareVersions.js +5 -10
  519. package/dist/server/registerApplicationTools/controlledReplay.js +3 -5
  520. package/dist/server/registerApplicationTools/coverage.js +6 -71
  521. package/dist/server/registerApplicationTools/helpers.js +1 -13
  522. package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
  523. package/dist/server/registerApplicationTools/traceFeature.js +5 -9
  524. package/dist/server/registerApplicationTools/traceSemantics.js +5 -8
  525. package/dist/server/registerApplicationTools.js +0 -2
  526. package/dist/server/registerArtifactComparisonTool.js +23 -27
  527. package/dist/server/registerBrowserScenarioTool.js +4 -4
  528. package/dist/server/registerBrowserTools.js +5 -8
  529. package/dist/server/registerBundleComparisonTool.js +5 -7
  530. package/dist/server/registerCloseLifecycleTool.js +2 -16
  531. package/dist/server/registerElectronTools.js +10 -29
  532. package/dist/server/registerEnhancedTools.js +10 -11
  533. package/dist/server/registerEvidenceTools.js +15 -22
  534. package/dist/server/registerFunctionComparisonTool.js +30 -25
  535. package/dist/server/registerInvestigationTools/helpers.js +3 -32
  536. package/dist/server/registerInvestigationTools.js +20 -116
  537. package/dist/server/registerJavaScriptRuntimeObservationTools.js +6 -4
  538. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +15 -17
  539. package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
  540. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -8
  541. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +3 -8
  542. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +10 -14
  543. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +9 -15
  544. package/dist/server/registerOfficialTools.js +1 -43
  545. package/dist/server/registerProcessComparisonTool.js +33 -23
  546. package/dist/server/registerPrompts.js +19 -17
  547. package/dist/server/registerSessionRecordTools.js +10 -156
  548. package/dist/server/registerSessionStatusTool.js +6 -69
  549. package/dist/server/registerSessionTools.js +10 -51
  550. package/dist/server/sessionAvailabilityPolicy.js +0 -2
  551. package/dist/server/sessionEvidence.js +9 -15
  552. package/dist/server/sessionToolPolicies.js +0 -8
  553. package/dist/server/toolResult.js +14 -50
  554. package/dist/serverIdentity.js +0 -20
  555. package/install.sh +1 -1
  556. package/package.json +11 -7
  557. package/scripts/electron-active-hook.cjs +23 -55
  558. package/scripts/hopper-demo-x11.py +13 -32
  559. package/skills/reverse-engineer-anything/SKILL.md +47 -12
  560. package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
  561. package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
  562. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
  563. package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -188
  564. package/dist/application/BoundedJsonFiles.js +0 -86
  565. package/dist/application/CrossVersionInventory.js +0 -129
  566. package/dist/application/CrossVersionInvestigation.js +0 -301
  567. package/dist/application/CrossVersionInvestigationCollections.js +0 -23
  568. package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
  569. package/dist/application/CrossVersionInvestigationReplay.js +0 -170
  570. package/dist/application/DeferredFileAuthorization.js +0 -61
  571. package/dist/application/DoctorProjection.js +0 -43
  572. package/dist/application/EnhancedToolPagination.js +0 -22
  573. package/dist/application/EvidenceReferenceResolver.js +0 -26
  574. package/dist/application/InvestigationWorkspaceStore.js +0 -204
  575. package/dist/application/ProcessPairedExperiment.js +0 -72
  576. package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
  577. package/dist/application/ReconstructionReadinessService.js +0 -48
  578. package/dist/cliInvestigationCommands.js +0 -173
  579. package/dist/domain/boundedCartesianProjection.js +0 -15
  580. package/dist/domain/investigationWorkspace.js +0 -347
  581. package/dist/domain/jsonLimits.js +0 -26
  582. package/dist/domain/knownPageCoverage.js +0 -29
  583. package/dist/domain/processPairedExperiment.js +0 -128
  584. package/dist/server/javascriptApplicationResult.js +0 -106
  585. package/dist/server/permissionFailure.js +0 -12
  586. package/dist/server/registerApplicationTools/readiness.js +0 -50
  587. package/dist/server/registerEvidenceResources.js +0 -315
  588. package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
  589. package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
  590. package/dist/server/registerReconstructionReadinessResource.js +0 -32
@@ -18,15 +18,10 @@ const parseExactOrigin = (value) => {
18
18
  return undefined;
19
19
  return url.origin;
20
20
  };
21
- const MAX_BROWSER_URL_CHARS = 65_536;
22
- const MAX_SANITIZED_BROWSER_URL_CHARS = 131_072;
23
- const MAX_QUERY_PARAMETER_NAMES = 256;
24
- const MAX_QUERY_PARAMETER_NAME_CHARS = 256;
25
21
  /** Exact normalized HTTP(S) authority used for browser observation scope. */
26
22
  export const browserOriginSchema = z
27
23
  .string()
28
24
  .min(1)
29
- .max(2_048)
30
25
  .transform((value, context) => {
31
26
  const origin = parseExactOrigin(value);
32
27
  if (origin === undefined) {
@@ -44,7 +39,6 @@ export const isLiteralLoopbackHostname = (hostname) => hostname === "127.0.0.1"
44
39
  export const browserEndpointSchema = z
45
40
  .string()
46
41
  .min(1)
47
- .max(2_048)
48
42
  .transform((value, context) => {
49
43
  let url;
50
44
  try {
@@ -73,143 +67,33 @@ export const browserEndpointSchema = z
73
67
  export const browserAllowedOriginsSchema = z
74
68
  .array(browserOriginSchema)
75
69
  .min(1)
76
- .max(32)
77
- .transform((origins) => [...new Set(origins)].sort());
78
- const approvedBrowserInput = {
70
+ .transform((origins) => Array.from(new Set(origins)).sort());
71
+ const browserInput = {
79
72
  cdp_endpoint: browserEndpointSchema,
80
73
  allowed_origins: browserAllowedOriginsSchema,
81
- approved: z
82
- .literal(true)
83
- .describe("Explicit approval for browser observation"),
84
74
  };
85
- /** Public input for bounded discovery of allowed page targets. */
75
+ /** Public input for complete discovery of allowed page targets. */
86
76
  export const listBrowserTargetsInputSchema = z.object({
87
- ...approvedBrowserInput,
88
- offset: z.number().int().min(0).default(0),
89
- limit: z.number().int().min(1).max(200).default(100),
77
+ ...browserInput,
90
78
  });
91
- const browserInspectionLimitsSchema = z.object({
92
- max_frames: z.number().int().min(1).max(1_000).default(200),
93
- max_dom_nodes: z.number().int().min(1).max(10_000).default(2_000),
94
- max_ax_nodes: z.number().int().min(1).max(10_000).default(2_000),
95
- max_ax_text_field_bytes: z
96
- .number()
97
- .int()
98
- .min(1)
99
- .max(16 * 1_024)
100
- .default(1_024),
101
- max_total_ax_text_bytes: z
102
- .number()
103
- .int()
104
- .min(1)
105
- .max(1_024 * 1_024)
106
- .default(64 * 1_024),
107
- max_scripts: z.number().int().min(1).max(1_000).default(200),
108
- max_resources: z.number().int().min(1).max(10_000).default(2_000),
109
- max_workers: z.number().int().min(1).max(5_000).default(500),
110
- max_storage_keys: z.number().int().min(1).max(10_000).default(1_000),
111
- max_script_source_bytes: z
112
- .number()
113
- .int()
114
- .min(1)
115
- .max(4 * 1_024 * 1_024)
116
- .default(1_024 * 1_024),
117
- max_total_script_source_bytes: z
118
- .number()
119
- .int()
120
- .min(1)
121
- .max(16 * 1_024 * 1_024)
122
- .default(4 * 1_024 * 1_024),
123
- max_network_events: z.number().int().min(1).max(10_000).default(1_000),
124
- max_console_events: z.number().int().min(1).max(2_000).default(200),
125
- max_console_text_field_bytes: z
126
- .number()
127
- .int()
128
- .min(1)
129
- .max(16 * 1_024)
130
- .default(1_024),
131
- max_total_console_text_bytes: z
132
- .number()
133
- .int()
134
- .min(1)
135
- .max(1_024 * 1_024)
136
- .default(64 * 1_024),
137
- max_json_body_bytes: z
138
- .number()
139
- .int()
140
- .min(1)
141
- .max(4 * 1_024 * 1_024)
142
- .default(1_024 * 1_024),
143
- max_total_json_body_bytes: z
144
- .number()
145
- .int()
146
- .min(1)
147
- .max(16 * 1_024 * 1_024)
148
- .default(4 * 1_024 * 1_024),
149
- max_json_shape_nodes: z.number().int().min(1).max(100_000).default(5_000),
150
- max_json_shape_depth: z.number().int().min(1).max(100).default(20),
151
- max_websocket_events: z.number().int().min(1).max(5_000).default(500),
152
- max_websocket_shape_bytes: z
153
- .number()
154
- .int()
155
- .min(1)
156
- .max(1_024 * 1_024)
157
- .default(64 * 1_024),
158
- max_total_websocket_shape_bytes: z
159
- .number()
160
- .int()
161
- .min(1)
162
- .max(16 * 1_024 * 1_024)
163
- .default(1_024 * 1_024),
164
- });
165
- const DEFAULT_BROWSER_INSPECTION_LIMITS = {
166
- max_frames: 200,
167
- max_dom_nodes: 2_000,
168
- max_ax_nodes: 2_000,
169
- max_ax_text_field_bytes: 1_024,
170
- max_total_ax_text_bytes: 64 * 1_024,
171
- max_scripts: 200,
172
- max_resources: 2_000,
173
- max_workers: 500,
174
- max_storage_keys: 1_000,
175
- max_script_source_bytes: 1_024 * 1_024,
176
- max_total_script_source_bytes: 4 * 1_024 * 1_024,
177
- max_network_events: 1_000,
178
- max_console_events: 200,
179
- max_console_text_field_bytes: 1_024,
180
- max_total_console_text_bytes: 64 * 1_024,
181
- max_json_body_bytes: 1_024 * 1_024,
182
- max_total_json_body_bytes: 4 * 1_024 * 1_024,
183
- max_json_shape_nodes: 5_000,
184
- max_json_shape_depth: 20,
185
- max_websocket_events: 500,
186
- max_websocket_shape_bytes: 64 * 1_024,
187
- max_total_websocket_shape_bytes: 1_024 * 1_024,
188
- };
189
79
  const inspectWebPageInputFacts = {
190
- ...approvedBrowserInput,
191
- target_id: z.string().trim().min(1).max(256),
192
- observation_ms: z.number().int().min(0).max(10_000).default(500),
80
+ ...browserInput,
81
+ target_id: z.string().trim().min(1),
82
+ observation_ms: z.number().int().min(0).default(500),
193
83
  include_accessibility_text: z.boolean().default(false),
194
84
  include_console_text: z.boolean().default(false),
195
- console_text_approved: z.boolean().default(false),
196
85
  include_json_body_shapes: z.boolean().default(false),
197
- json_body_schema_approved: z.boolean().default(false),
198
86
  include_websocket_shapes: z.boolean().default(false),
199
- websocket_shape_approved: z.boolean().default(false),
200
87
  include_storage_keys: z.boolean().default(false),
201
88
  include_storage_fingerprints: z.boolean().default(false),
202
- limits: browserInspectionLimitsSchema.default(DEFAULT_BROWSER_INSPECTION_LIMITS),
203
89
  };
204
90
  const inspectWebPageWithoutSourceSchema = z.strictObject({
205
91
  ...inspectWebPageInputFacts,
206
92
  include_script_sources: z.literal(false).default(false),
207
- source_capture_approved: z.literal(false).default(false),
208
93
  });
209
94
  const inspectWebPageWithSourceShapeSchema = z.strictObject({
210
95
  ...inspectWebPageInputFacts,
211
96
  include_script_sources: z.literal(true).default(true),
212
- source_capture_approved: z.literal(true),
213
97
  });
214
98
  const refineInspectWebPageInput = (input, context) => {
215
99
  if (input.include_storage_fingerprints && !input.include_storage_keys)
@@ -218,83 +102,25 @@ const refineInspectWebPageInput = (input, context) => {
218
102
  path: ["include_storage_fingerprints"],
219
103
  message: "Storage fingerprints require storage key capture",
220
104
  });
221
- if (input.limits.max_script_source_bytes >
222
- input.limits.max_total_script_source_bytes)
223
- context.addIssue({
224
- code: "custom",
225
- path: ["limits", "max_script_source_bytes"],
226
- message: "Per-script source limit cannot exceed the total source limit",
227
- });
228
- for (const [include, approved, path, message] of [
229
- [
230
- input.include_console_text,
231
- input.console_text_approved,
232
- "console_text_approved",
233
- "Console text capture requires separate approval",
234
- ],
235
- [
236
- input.include_json_body_shapes,
237
- input.json_body_schema_approved,
238
- "json_body_schema_approved",
239
- "JSON body schema capture requires separate approval",
240
- ],
241
- [
242
- input.include_websocket_shapes,
243
- input.websocket_shape_approved,
244
- "websocket_shape_approved",
245
- "WebSocket shape capture requires separate approval",
246
- ],
247
- ])
248
- if (include && !approved)
249
- context.addIssue({ code: "custom", path: [path], message });
250
- if (input.limits.max_console_text_field_bytes >
251
- input.limits.max_total_console_text_bytes)
252
- context.addIssue({
253
- code: "custom",
254
- path: ["limits", "max_console_text_field_bytes"],
255
- message: "Per-field console text limit cannot exceed the total text limit",
256
- });
257
- if (input.limits.max_json_body_bytes > input.limits.max_total_json_body_bytes)
258
- context.addIssue({
259
- code: "custom",
260
- path: ["limits", "max_json_body_bytes"],
261
- message: "Per-body JSON limit cannot exceed the total body limit",
262
- });
263
- if (input.limits.max_websocket_shape_bytes >
264
- input.limits.max_total_websocket_shape_bytes)
265
- context.addIssue({
266
- code: "custom",
267
- path: ["limits", "max_websocket_shape_bytes"],
268
- message: "Per-frame WebSocket limit cannot exceed the total frame limit",
269
- });
270
- if (input.limits.max_ax_text_field_bytes > input.limits.max_total_ax_text_bytes)
271
- context.addIssue({
272
- code: "custom",
273
- path: ["limits", "max_ax_text_field_bytes"],
274
- message: "Per-field accessibility text limit cannot exceed the total text limit",
275
- });
276
105
  };
277
- /** Source-capturing inspection input, reusable by static bundle analysis. */
106
+ /** Caller schema for source-capturing inspection and bundle analysis. */
278
107
  export const inspectWebPageWithSourceInputSchema = inspectWebPageWithSourceShapeSchema.superRefine(refineInspectWebPageInput);
279
- /** Public input for one passive, bounded inspection of an existing page. */
108
+ /** Caller-visible schema for one passive inspection. */
280
109
  export const inspectWebPageInputSchema = z.union([
281
110
  inspectWebPageWithoutSourceSchema.superRefine(refineInspectWebPageInput),
282
111
  inspectWebPageWithSourceInputSchema,
283
112
  ]);
284
113
  export const sanitizedBrowserUrlSchema = z.object({
285
- url: z.string().max(MAX_SANITIZED_BROWSER_URL_CHARS),
286
- origin: z.string().max(2_048).nullable(),
287
- query_parameter_names: z
288
- .array(z.string().max(MAX_QUERY_PARAMETER_NAME_CHARS))
289
- .max(MAX_QUERY_PARAMETER_NAMES),
114
+ url: z.string(),
115
+ origin: z.string().nullable(),
116
+ query_parameter_names: z.array(z.string()),
290
117
  redacted: z.boolean(),
291
118
  });
292
119
  /** Remove credentials and query values before a browser URL becomes durable. */
293
120
  export const sanitizeBrowserUrl = (value) => {
294
121
  let parsed;
295
- const wasTruncated = value.length > MAX_BROWSER_URL_CHARS;
296
122
  try {
297
- parsed = new URL(value.slice(0, MAX_BROWSER_URL_CHARS));
123
+ parsed = new URL(value);
298
124
  }
299
125
  catch {
300
126
  return {
@@ -306,11 +132,7 @@ export const sanitizeBrowserUrl = (value) => {
306
132
  }
307
133
  const hadCredentials = parsed.username !== "" || parsed.password !== "";
308
134
  const hadFragment = parsed.hash !== "";
309
- const names = [
310
- ...new Set([...parsed.searchParams.keys()].map((name) => name.slice(0, MAX_QUERY_PARAMETER_NAME_CHARS))),
311
- ]
312
- .sort()
313
- .slice(0, MAX_QUERY_PARAMETER_NAMES);
135
+ const names = [...new Set(parsed.searchParams.keys())].sort();
314
136
  parsed.username = "";
315
137
  parsed.password = "";
316
138
  parsed.hash = "";
@@ -321,6 +143,19 @@ export const sanitizeBrowserUrl = (value) => {
321
143
  url: parsed.href,
322
144
  origin: parsed.origin === "null" ? null : parsed.origin,
323
145
  query_parameter_names: names,
324
- redacted: wasTruncated || hadCredentials || hadFragment || names.length > 0,
146
+ redacted: hadCredentials || hadFragment || names.length > 0,
325
147
  };
326
148
  };
149
+ /** Remove credentials, fragments, and query values from endpoint candidates. */
150
+ export const sanitizeEndpointCandidate = (value) => {
151
+ try {
152
+ const parsed = new URL(value, "https://rea.invalid");
153
+ const sanitized = sanitizeBrowserUrl(parsed.href).url;
154
+ return parsed.origin === "https://rea.invalid"
155
+ ? sanitized.replace("https://rea.invalid", "")
156
+ : sanitized;
157
+ }
158
+ catch {
159
+ return value.split("#", 1)[0]?.split("?", 1)[0] ?? "";
160
+ }
161
+ };
@@ -17,18 +17,10 @@ const browserTargetSchema = z.object({
17
17
  origin: z.string(),
18
18
  attached: z.boolean(),
19
19
  });
20
- /** Bounded and policy-filtered browser target discovery result. */
20
+ /** Complete policy-filtered browser target discovery result. */
21
21
  export const browserTargetListSchema = z.object({
22
- schema_version: z.literal(1),
23
22
  browser: browserVersionSchema,
24
- targets: z.object({
25
- items: z.array(browserTargetSchema),
26
- offset: z.number().int().min(0),
27
- limit: z.number().int().min(1),
28
- total: z.number().int().min(0),
29
- next_offset: z.number().int().min(0).nullable(),
30
- has_more: z.boolean(),
31
- }),
23
+ targets: z.array(browserTargetSchema),
32
24
  excluded: z.object({
33
25
  disallowed_origin: z.number().int().min(0),
34
26
  unsupported_url: z.number().int().min(0),
@@ -119,13 +111,7 @@ const browserNetworkRequestSchema = z.object({
119
111
  column: z.number().int().min(0).nullable(),
120
112
  }),
121
113
  body_shapes: z.object({
122
- status: z.enum([
123
- "not_approved",
124
- "included",
125
- "partial",
126
- "unavailable",
127
- "truncated",
128
- ]),
114
+ status: z.enum(["not_approved", "included", "partial", "unavailable"]),
129
115
  request: jsonShapeSchema.nullable(),
130
116
  response: jsonShapeSchema.nullable(),
131
117
  }),
@@ -138,14 +124,13 @@ const browserConsoleEventSchema = z.object({
138
124
  line: z.number().int().min(0).nullable(),
139
125
  column: z.number().int().min(0).nullable(),
140
126
  text_capture: z.object({
141
- status: z.enum(["not_approved", "included", "truncated"]),
127
+ status: z.enum(["not_approved", "included"]),
142
128
  values: z.array(z.object({
143
129
  argument_index: z.number().int().min(0),
144
130
  type: z.string(),
145
131
  text: z.string(),
146
132
  })),
147
133
  retained_bytes: z.number().int().min(0),
148
- truncated_values: z.number().int().min(0),
149
134
  }),
150
135
  });
151
136
  const browserWebSocketEventSchema = z.object({
@@ -157,7 +142,6 @@ const browserWebSocketEventSchema = z.object({
157
142
  .object({
158
143
  format: z.enum(["json", "text", "binary"]),
159
144
  json_shape: jsonShapeSchema.nullable(),
160
- truncated: z.boolean(),
161
145
  })
162
146
  .nullable(),
163
147
  });
@@ -236,7 +220,6 @@ const browserSafeMetadataSchema = z.object({
236
220
  });
237
221
  /** Provider-neutral normalized result for one passive web-page observation. */
238
222
  export const webPageInspectionSchema = z.object({
239
- schema_version: z.literal(2),
240
223
  browser: browserVersionSchema,
241
224
  target: browserTargetSchema,
242
225
  capture_window: z.object({
@@ -253,10 +236,9 @@ export const webPageInspectionSchema = z.object({
253
236
  accessibility: z.object({
254
237
  total_nodes: z.number().int().min(0),
255
238
  text_capture: z.object({
256
- status: z.enum(["not_approved", "included", "truncated", "unavailable"]),
239
+ status: z.enum(["not_approved", "included", "unavailable"]),
257
240
  retained_bytes: z.number().int().min(0),
258
241
  excluded_fields: z.number().int().min(0),
259
- truncated_fields: z.number().int().min(0),
260
242
  }),
261
243
  nodes: z.array(browserAxNodeSchema),
262
244
  }),
@@ -1,26 +1,23 @@
1
1
  import { z } from "zod";
2
- import { BROWSER_SCENARIO_LIMITS, browserScenarioActionSchema, browserScenarioAllowedOriginsSchema, browserScenarioBrowserSchema, browserScenarioCaptureLimitsSchema, browserScenarioCaptureSchema, browserScenarioEnvironmentSchema, browserScenarioRedactionSchema, browserScenarioRequestReplaySchema, browserScenarioSecretSchema, browserScenarioStorageSchema, browserScenarioUrlSchema, } from "./browserScenarioValues.js";
3
- export { BROWSER_SCENARIO_LIMITS, browserScenarioActionSchema, browserScenarioUrlSchema, browserScenarioValueSchema, } from "./browserScenarioValues.js";
4
- const scenarioShapeSchema = z.strictObject({
5
- schema_version: z.literal(1),
6
- browser: browserScenarioBrowserSchema,
7
- start_url: browserScenarioUrlSchema,
8
- allowed_origins: browserScenarioAllowedOriginsSchema,
2
+ import { browserScenarioActionSchema, browserScenarioAllowedOriginsSchema, browserScenarioBrowserSchema, browserScenarioCaptureSchema, browserScenarioEnvironmentSchema, browserScenarioRedactionSchema, browserScenarioRequestReplaySchema, browserScenarioSecretSchema, browserScenarioStorageSchema, browserScenarioUrlSchema, } from "./browserScenarioValues.js";
3
+ export { browserScenarioActionSchema, browserScenarioUrlSchema, browserScenarioValueSchema, } from "./browserScenarioValues.js";
4
+ export const browserScenarioInputSchema = z.strictObject({
5
+ browser: browserScenarioBrowserSchema.describe("Required launch/connect authority. Launch uses the approved executable and an owned temporary profile; connect uses one approved loopback CDP endpoint and target."),
6
+ start_url: browserScenarioUrlSchema.describe("Required initial HTTP(S) URL. Query values must be declared separately as public literals or secret references."),
7
+ allowed_origins: browserScenarioAllowedOriginsSchema.describe("Required exact HTTP(S) origins for the start URL and every later navigation, storage seed, and replay route."),
9
8
  environment: browserScenarioEnvironmentSchema,
10
9
  actions: z
11
10
  .array(browserScenarioActionSchema)
12
11
  .min(1)
13
- .max(BROWSER_SCENARIO_LIMITS.actions),
12
+ .describe("Required sequence of explicit browser actions."),
14
13
  storage: browserScenarioStorageSchema,
15
14
  request_replay: browserScenarioRequestReplaySchema,
16
15
  secrets: z
17
16
  .array(browserScenarioSecretSchema)
18
- .max(BROWSER_SCENARIO_LIMITS.secrets)
19
- .default([]),
17
+ .default([])
18
+ .describe("Optional references to approved environment variables. Secret values are never supplied inline; declarations are required only when an action, URL, storage value, or replay route references a secret."),
20
19
  redaction: browserScenarioRedactionSchema,
21
20
  capture: browserScenarioCaptureSchema,
22
- limits: browserScenarioCaptureLimitsSchema,
23
- approved: z.literal(true),
24
21
  });
25
22
  const addIssue = (context, path, message) => context.addIssue({ code: "custom", path, message });
26
23
  const assertUnique = (values, path, label, context) => {
@@ -161,5 +158,5 @@ const validateBrowserScenario = (scenario, context) => {
161
158
  validateSecretReferences(scenario, references, context);
162
159
  validateRedactionCoverage(scenario, context);
163
160
  };
164
- /** Strict provider-neutral contract for one bounded browser capture scenario. */
165
- export const browserScenarioSchema = scenarioShapeSchema.superRefine(validateBrowserScenario);
161
+ /** Strict provider-neutral contract for one controlled browser scenario. */
162
+ export const browserScenarioSchema = browserScenarioInputSchema.superRefine(validateBrowserScenario);
@@ -1,32 +1,31 @@
1
1
  import { z } from "zod";
2
2
  import { browserScenarioCompletenessSchema, browserScenarioEventSchema, browserScenarioStepSchema, } from "./browserScenarioCaptureValues.js";
3
- export { browserScenarioCompletenessSchema, browserScenarioEventSchema, browserScenarioStepSchema, browserStepArtifactsSchema, captureStateSchema, } from "./browserScenarioCaptureValues.js";
4
- /** Step-indexed, explicitly bounded browser scenario observation. */
3
+ export { classifyBrowserScenarioCompleteness, browserScenarioCompletenessSchema, browserScenarioEventSchema, browserScenarioStepSchema, browserStepArtifactsSchema, captureStateSchema, } from "./browserScenarioCaptureValues.js";
4
+ /** Step-indexed browser scenario observation. */
5
5
  export const browserScenarioCaptureSchema = z
6
6
  .strictObject({
7
- schema_version: z.literal(1),
8
7
  browser: z.strictObject({
9
8
  mode: z.enum(["launch", "connect"]),
10
9
  process_ownership: z.enum(["provider-owned", "external"]),
11
10
  cleanup: z.enum(["terminated-owned-process", "disconnected-external"]),
12
- product: z.string().min(1).max(1_024),
13
- version: z.string().min(1).max(256),
11
+ product: z.string().min(1),
12
+ version: z.string().min(1),
14
13
  }),
15
14
  scenario: z.strictObject({
16
- start_origin: z.string().min(1).max(2_048),
17
- allowed_origins: z.array(z.string().min(1).max(2_048)).min(1).max(32),
18
- action_count: z.number().int().min(1).max(128),
19
- secret_references: z.array(z.string().min(1).max(64)).max(64),
15
+ start_origin: z.string().min(1),
16
+ allowed_origins: z.array(z.string().min(1)).min(1),
17
+ action_count: z.number().int().min(1),
18
+ secret_references: z.array(z.string().min(1)),
20
19
  }),
21
20
  duration_ms: z.number().int().min(0),
22
- steps: z.array(browserScenarioStepSchema).min(1).max(129),
21
+ steps: z.array(browserScenarioStepSchema).min(1),
23
22
  events: z.strictObject({
24
23
  retained: z.number().int().min(0),
25
24
  dropped: z.number().int().min(0),
26
- items: z.array(browserScenarioEventSchema).max(100_000),
25
+ items: z.array(browserScenarioEventSchema),
27
26
  }),
28
27
  completeness: browserScenarioCompletenessSchema,
29
- limitations: z.array(z.string().min(1).max(2_048)).max(64),
28
+ limitations: z.array(z.string().min(1)),
30
29
  })
31
30
  .superRefine((capture, context) => {
32
31
  if (capture.events.retained !== capture.events.items.length)