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
@@ -1,7 +1,7 @@
1
1
  import * as t from "@babel/types";
2
2
  import { semanticStaticPropertyName } from "./javascriptSemanticProjection.js";
3
3
  import { resolveSemanticBindingState, semanticResolutionBlocked, } from "./javascriptSemanticState.js";
4
- import { builtinDataEffectMethod as builtinMethod, containsSemanticNode as containsNode, dataEffectArgumentBindingId as argumentBindingId, dataEffectLimitReached as limitReached, dataEffectLiteralString as literalString, dataEffectMemberCallee as memberCallee, dataEffectMemberObject as memberObject, dataEffectPrimitive as primitiveValue, isSemanticProcessObject as isProcessObject, outerDataEffectBinding as outerAssignedBinding, traverseDataEffects as traverseWithContext, } from "./javascriptSemanticDataEffectHelpers.js";
4
+ import { builtinDataEffectMethod as builtinMethod, containsSemanticNode as containsNode, dataEffectArgumentBindingId as argumentBindingId, dataEffectLiteralString as literalString, dataEffectMemberCallee as memberCallee, dataEffectMemberObject as memberObject, dataEffectPrimitive as primitiveValue, isSemanticProcessObject as isProcessObject, outerDataEffectBinding as outerAssignedBinding, traverseDataEffects as traverseWithContext, } from "./javascriptSemanticDataEffectHelpers.js";
5
5
  import { compareCodePoints, propertyName, range, } from "./javascriptStaticAnalysisHelpers.js";
6
6
  /** Recover configuration, request, and boundary candidates from inert syntax. */
7
7
  export const collectJavaScriptSemanticDataEffects = (program, state, callables) => {
@@ -31,8 +31,6 @@ const collectConfigurations = (program, context) => {
31
31
  const details = configurationDetails(node, parent, context);
32
32
  if (details === null)
33
33
  return;
34
- if (limitReached(output.length, context.state.limits.maxConfigurationOperations, "maxConfigurationOperations", context.state))
35
- return;
36
34
  const operation = {
37
35
  configId: `config:${details.kind}:${String(node.start ?? -1)}:${String(node.end ?? -1)}`,
38
36
  kind: details.kind,
@@ -94,8 +92,6 @@ const collectDefaults = (program, context, configurations) => {
94
92
  const sources = configurations.filter(({ node: source }) => containsNode(node.left, source));
95
93
  if (sources.length !== 1 || sources[0] === undefined)
96
94
  return;
97
- if (limitReached(configurations.length + output.length, context.state.limits.maxConfigurationOperations, "maxConfigurationOperations", context.state))
98
- return;
99
95
  output.push({
100
96
  configId: `config:default:${String(node.start ?? -1)}:${String(node.end ?? -1)}`,
101
97
  kind: "default",
@@ -120,8 +116,6 @@ const collectRequests = (program, context) => {
120
116
  const method = requestMethod(node, context.state);
121
117
  if (method === null)
122
118
  return;
123
- if (limitReached(output.length, context.state.limits.maxRequestOperations, "maxRequestOperations", context.state))
124
- return;
125
119
  const endpoint = requestEndpoint(node);
126
120
  output.push({
127
121
  node,
@@ -167,8 +161,6 @@ const collectResponseConsumers = (program, context, requests) => {
167
161
  : (requestsByBinding.get(binding.bindingId) ?? []);
168
162
  if (linked.length === 0)
169
163
  return;
170
- if (limitReached(requests.length + output.length, context.state.limits.maxRequestOperations, "maxRequestOperations", context.state))
171
- return;
172
164
  output.push({
173
165
  requestId: `response:${String(node.start ?? -1)}:${String(node.end ?? -1)}`,
174
166
  kind: "response-consumer",
@@ -194,8 +186,6 @@ const collectBoundaries = (program, context) => {
194
186
  const details = boundaryDetails(node, context.state);
195
187
  if (details === null)
196
188
  return;
197
- if (limitReached(output.length, context.state.limits.maxBoundaryOperations, "maxBoundaryOperations", context.state))
198
- return;
199
189
  output.push({
200
190
  boundaryId: `boundary:${details.kind}:${String(node.start ?? -1)}:${String(node.end ?? -1)}`,
201
191
  kind: details.kind,
@@ -25,9 +25,7 @@ export const collectJavaScriptSemanticFingerprints = (input) => {
25
25
  return [
26
26
  {
27
27
  callableId: callable.callableId,
28
- status: parserPartial ||
29
- state.limitsReached.size > 0 ||
30
- callable.returnCoverage.status !== "complete"
28
+ status: parserPartial || callable.returnCoverage.status !== "complete"
31
29
  ? "partial"
32
30
  : "complete",
33
31
  components: {
@@ -49,8 +47,8 @@ export const collectJavaScriptSemanticFingerprints = (input) => {
49
47
  ],
50
48
  },
51
49
  limitations: [
52
- "The fingerprint is a bounded static candidate and does not prove behavioral equivalence.",
53
- ...(parserPartial || state.limitsReached.size > 0
50
+ "The fingerprint is a static candidate and does not prove behavioral equivalence.",
51
+ ...(parserPartial
54
52
  ? ["Incomplete semantic recovery makes this fingerprint partial."]
55
53
  : []),
56
54
  ],
@@ -1,9 +1,8 @@
1
1
  import { z } from "zod";
2
2
  import { applicationGraphEvidenceSchema } from "./javascriptApplicationEvidenceSchemas.js";
3
- import { isJsonWithinLimits } from "./jsonLimits.js";
4
3
  import { jsonValueSchema } from "./jsonValue.js";
5
4
  const digestSchema = z.string().regex(/^[a-f0-9]{64}$/u);
6
- const boundedTextSchema = z.string().min(1).max(4_096);
5
+ const boundedTextSchema = z.string().min(1);
7
6
  const semanticNodeIdSchema = z.string().regex(/^jsrg_node_[a-f0-9]{64}$/u);
8
7
  const semanticRelationIdSchema = z
9
8
  .string()
@@ -11,7 +10,7 @@ const semanticRelationIdSchema = z
11
10
  const semanticUnknownIdSchema = z
12
11
  .string()
13
12
  .regex(/^jsrg_unknown_[a-f0-9]{64}$/u);
14
- /** Semantic entity kinds admitted by JavaScript Semantic Relation Graph v1. */
13
+ /** Semantic entity kinds admitted by JavaScript Semantic Relation Graph. */
15
14
  export const JAVASCRIPT_SEMANTIC_NODE_KINDS = [
16
15
  "module",
17
16
  "function",
@@ -53,7 +52,7 @@ export const JAVASCRIPT_SEMANTIC_RELATION_FAMILIES = [
53
52
  "resource-lifecycle",
54
53
  "timer",
55
54
  ];
56
- /** Directed semantic relations admitted by graph v1. */
55
+ /** Directed semantic relations admitted by the graph. */
57
56
  export const JAVASCRIPT_SEMANTIC_RELATIONS = [
58
57
  "acquires",
59
58
  "aggregates",
@@ -150,7 +149,6 @@ export const JAVASCRIPT_SEMANTIC_RELATION_FAMILY = {
150
149
  const relativePathSchema = z
151
150
  .string()
152
151
  .min(1)
153
- .max(4_096)
154
152
  .refine((path) => !path.startsWith("/") &&
155
153
  !path.includes("\\") &&
156
154
  path.split("/").every((part) => !["", ".", ".."].includes(part)), "Expected a normalized relative POSIX path without traversal");
@@ -170,39 +168,20 @@ const sourceRangeSchema = z
170
168
  message: "Source range end must not precede its start",
171
169
  });
172
170
  });
173
- const semanticPropertiesSchema = z
174
- .record(z.string().min(1).max(128), jsonValueSchema)
175
- .superRefine((properties, context) => {
176
- if (Object.keys(properties).length > 64)
177
- context.addIssue({
178
- code: "custom",
179
- message: "Semantic properties exceed 64 keys",
180
- });
181
- if (!isJsonWithinLimits(properties, {
182
- maxDepth: 6,
183
- maxNodes: 512,
184
- maxStringLength: 4_096,
185
- }))
186
- context.addIssue({
187
- code: "custom",
188
- message: "Semantic properties exceed structural limits",
189
- });
190
- });
171
+ const semanticPropertiesSchema = z.record(z.string().min(1), jsonValueSchema);
191
172
  const semanticNodeIdentitySchema = z.strictObject({
192
173
  artifact_sha256: digestSchema,
193
174
  module_path: relativePathSchema,
194
175
  source_range: sourceRangeSchema.nullable(),
195
- role_key: z.string().min(1).max(1_024),
176
+ role_key: z.string().min(1),
196
177
  });
197
178
  /** One semantic entity before its canonical identifier is derived. */
198
179
  export const javaScriptSemanticNodeInputSchema = z.strictObject({
199
180
  kind: z.enum(JAVASCRIPT_SEMANTIC_NODE_KINDS),
200
181
  identity: semanticNodeIdentitySchema,
201
182
  function_node_id: semanticNodeIdSchema.nullable(),
202
- application_node_ids: z
203
- .array(z.string().regex(/^jag_node_[a-f0-9]{64}$/u))
204
- .max(64),
205
- label: z.string().min(1).max(1_024).nullable(),
183
+ application_node_ids: z.array(z.string().regex(/^jag_node_[a-f0-9]{64}$/u)),
184
+ label: z.string().min(1).nullable(),
206
185
  properties: semanticPropertiesSchema,
207
186
  evidence: applicationGraphEvidenceSchema,
208
187
  });
@@ -246,10 +225,10 @@ export const JAVASCRIPT_SEMANTIC_UNKNOWN_REASONS = [
246
225
  export const javaScriptSemanticUnknownInputSchema = z.strictObject({
247
226
  node_id: semanticNodeIdSchema.nullable(),
248
227
  family: z.enum(JAVASCRIPT_SEMANTIC_RELATION_FAMILIES),
249
- relation_kinds: z.array(z.enum(JAVASCRIPT_SEMANTIC_RELATIONS)).min(1).max(45),
228
+ relation_kinds: z.array(z.enum(JAVASCRIPT_SEMANTIC_RELATIONS)).min(1),
250
229
  reason: z.enum(JAVASCRIPT_SEMANTIC_UNKNOWN_REASONS),
251
230
  detail: boundedTextSchema,
252
- candidate_node_ids: z.array(semanticNodeIdSchema).max(1_000),
231
+ candidate_node_ids: z.array(semanticNodeIdSchema),
253
232
  evidence: applicationGraphEvidenceSchema,
254
233
  });
255
234
  /** One canonical unresolved semantic frontier. */
@@ -257,13 +236,12 @@ export const javaScriptSemanticUnknownSchema = javaScriptSemanticUnknownInputSch
257
236
  unknown_id: semanticUnknownIdSchema,
258
237
  });
259
238
  const fingerprintComponentsSchema = z.strictObject({
260
- parameter_arity: z.number().int().min(0).max(10_000),
239
+ parameter_arity: z.number().int().min(0),
261
240
  normalized_ast_sha256: digestSchema,
262
241
  control_flow_sha256: digestSchema,
263
242
  relation_shape_sha256: digestSchema,
264
243
  literal_set_sha256: digestSchema,
265
- effects: z
266
- .array(z.enum([
244
+ effects: z.array(z.enum([
267
245
  "async",
268
246
  "child-process",
269
247
  "event",
@@ -271,16 +249,15 @@ const fingerprintComponentsSchema = z.strictObject({
271
249
  "promise",
272
250
  "resource",
273
251
  "timer",
274
- ]))
275
- .max(7),
252
+ ])),
276
253
  });
277
254
  /** One bounded rename-resistant function fingerprint. */
278
255
  export const javaScriptSemanticFingerprintInputSchema = z.strictObject({
279
256
  function_node_id: semanticNodeIdSchema,
280
- algorithm: z.literal("rea.javascript-semantic-function/v1"),
257
+ algorithm: z.literal("rea.javascript-semantic-function"),
281
258
  status: z.enum(["complete", "partial", "unavailable"]),
282
259
  components: fingerprintComponentsSchema,
283
- limitations: z.array(boundedTextSchema).max(100),
260
+ limitations: z.array(boundedTextSchema),
284
261
  evidence: applicationGraphEvidenceSchema,
285
262
  });
286
263
  /** One canonical function fingerprint record. */
@@ -293,37 +270,34 @@ const familyCoverageSchema = z.strictObject({
293
270
  status: z.enum(["complete", "partial", "unknown", "unsupported"]),
294
271
  retained_relations: z.number().int().min(0),
295
272
  omitted_relations: z.number().int().min(0).nullable(),
296
- unknown_ids: z.array(semanticUnknownIdSchema).max(100_000),
273
+ unknown_ids: z.array(semanticUnknownIdSchema),
297
274
  });
298
275
  const graphCoverageSchema = z.strictObject({
299
276
  status: z.enum(["complete", "partial", "unknown", "unavailable"]),
300
277
  truncated: z.boolean(),
301
278
  omitted_nodes: z.number().int().min(0).nullable(),
302
279
  omitted_relations: z.number().int().min(0).nullable(),
303
- limits: z
304
- .array(z.strictObject({
305
- name: z.string().min(1).max(128),
280
+ limits: z.array(z.strictObject({
281
+ name: z.string().min(1),
306
282
  value: z.number().int().min(0),
307
283
  unit: z.enum(["items", "bytes", "milliseconds", "depth", "other"]),
308
- }))
309
- .max(32),
284
+ })),
310
285
  families: z.array(familyCoverageSchema).length(12),
311
286
  });
312
287
  /** Graph content before its top-level commitment is derived. */
313
288
  export const javaScriptSemanticGraphInputSchema = z.strictObject({
314
289
  schema: z.literal("JavaScriptSemanticRelationGraph"),
315
- schema_version: z.literal(1),
316
290
  root_artifact_sha256: digestSchema,
317
291
  application_graph_id: z.string().regex(/^jag_[a-f0-9]{64}$/u),
318
- root_node_ids: z.array(semanticNodeIdSchema).min(1).max(10_000),
319
- nodes: z.array(javaScriptSemanticNodeSchema).min(1).max(100_000),
320
- relations: z.array(javaScriptSemanticRelationSchema).max(200_000),
321
- fingerprints: z.array(javaScriptSemanticFingerprintSchema).max(20_000),
322
- unknowns: z.array(javaScriptSemanticUnknownSchema).max(100_000),
292
+ root_node_ids: z.array(semanticNodeIdSchema).min(1),
293
+ nodes: z.array(javaScriptSemanticNodeSchema).min(1),
294
+ relations: z.array(javaScriptSemanticRelationSchema),
295
+ fingerprints: z.array(javaScriptSemanticFingerprintSchema),
296
+ unknowns: z.array(javaScriptSemanticUnknownSchema),
323
297
  coverage: graphCoverageSchema,
324
- limitations: z.array(boundedTextSchema).max(1_000),
298
+ limitations: z.array(boundedTextSchema),
325
299
  });
326
- /** Stored JavaScript Semantic Relation Graph v1. */
300
+ /** Stored JavaScript Semantic Relation Graph. */
327
301
  export const javaScriptSemanticGraphRecordSchema = javaScriptSemanticGraphInputSchema.extend({
328
302
  graph_id: z.string().regex(/^jsrg_[a-f0-9]{64}$/u),
329
303
  });
@@ -1,5 +1,4 @@
1
1
  import canonicalize from "canonicalize";
2
- import { z } from "zod";
3
2
  import { javaScriptSemanticGraphSchema, } from "./javascriptSemanticGraph.js";
4
3
  const canonicalJson = (value) => {
5
4
  const encoded = canonicalize(value);
@@ -7,17 +6,7 @@ const canonicalJson = (value) => {
7
6
  throw new TypeError("JavaScript semantic graph could not canonicalize data");
8
7
  return encoded;
9
8
  };
10
- /** Parse a stored semantic graph and reject unsupported versions or stale IDs. */
11
- export const parseJavaScriptSemanticGraph = (input) => {
12
- const envelope = z
13
- .object({ schema: z.string(), schema_version: z.number() })
14
- .passthrough()
15
- .safeParse(input);
16
- if (envelope.success &&
17
- envelope.data.schema === "JavaScriptSemanticRelationGraph" &&
18
- envelope.data.schema_version !== 1)
19
- throw new TypeError(`Unsupported JavaScript Semantic Relation Graph schema version: ${String(envelope.data.schema_version)}`);
20
- return javaScriptSemanticGraphSchema.parse(input);
21
- };
9
+ /** Parse a stored semantic graph and reject stale IDs. */
10
+ export const parseJavaScriptSemanticGraph = (input) => javaScriptSemanticGraphSchema.parse(input);
22
11
  /** Serialize a verified semantic graph as canonical JSON. */
23
12
  export const serializeJavaScriptSemanticGraph = (input) => canonicalJson(parseJavaScriptSemanticGraph(input));
@@ -1,30 +1,3 @@
1
- /** Conservative defaults for one source file. */
2
- export const DEFAULT_JAVASCRIPT_SEMANTIC_LIMITS = {
3
- maxScopes: 4_096,
4
- maxBindings: 20_000,
5
- maxCallables: 20_000,
6
- maxReferences: 100_000,
7
- maxModuleLinks: 20_000,
8
- maxReturnSites: 20_000,
9
- maxCallSites: 20_000,
10
- maxCallArguments: 100_000,
11
- maxArgumentFlows: 100_000,
12
- maxCallReturnFlows: 100_000,
13
- maxClosureCaptures: 100_000,
14
- maxPromiseOperations: 100_000,
15
- maxEventOperations: 100_000,
16
- maxTimerOperations: 100_000,
17
- maxChildProcessOperations: 100_000,
18
- maxConfigurationOperations: 100_000,
19
- maxRequestOperations: 100_000,
20
- maxBoundaryOperations: 100_000,
21
- maxResourceOperations: 100_000,
22
- maxObjectOperations: 100_000,
23
- maxFrontiers: 20_000,
24
- maxValueDepth: 16,
25
- maxUnionValues: 32,
26
- maxObjectProperties: 256,
27
- };
28
1
  /** Find the innermost resolved reference at one source coordinate. */
29
2
  export const semanticReferenceAt = (ir, line, column) => ir.references.find(({ location }) => location.start.line === line && location.start.column === column);
30
3
  /** Read one binding by its deterministic semantic identifier. */
@@ -32,7 +5,6 @@ export const semanticBinding = (ir, bindingId) => ir.bindings.find(({ bindingId:
32
5
  /** Fail-closed result when Babel cannot produce an inert syntax tree. */
33
6
  export const failedJavaScriptSemanticIr = () => ({
34
7
  schema: "JavaScriptSemanticIR",
35
- schemaVersion: 4,
36
8
  scopes: [],
37
9
  bindings: [],
38
10
  callables: [],
@@ -55,7 +27,7 @@ export const failedJavaScriptSemanticIr = () => ({
55
27
  objectOperations: [],
56
28
  functionFingerprints: [],
57
29
  frontiers: [],
58
- coverage: { status: "failed", omittedCount: null, limitsReached: [] },
30
+ coverage: { status: "failed", omittedCount: null },
59
31
  limitations: [
60
32
  "JavaScript parsing failed; no semantic absence claim is available.",
61
33
  "No JavaScript was executed.",
@@ -1,5 +1,5 @@
1
1
  import * as t from "@babel/types";
2
- import { reachSemanticLimit, semanticCallableIdForNode, semanticStaticPropertyName, } from "./javascriptSemanticProjection.js";
2
+ import { semanticCallableIdForNode, semanticStaticPropertyName, } from "./javascriptSemanticProjection.js";
3
3
  import { resolveSemanticBindingState, } from "./javascriptSemanticState.js";
4
4
  import { traverseJavaScriptAst } from "./javascriptSemanticTraversal.js";
5
5
  import { propertyName, range } from "./javascriptStaticAnalysisHelpers.js";
@@ -80,10 +80,6 @@ const collectDestructuring = (node, ownerCallableId, state, output) => {
80
80
  }
81
81
  };
82
82
  const addObjectOperation = (input, state, output) => {
83
- if (output.length >= state.limits.maxObjectOperations) {
84
- reachSemanticLimit(state, "maxObjectOperations");
85
- return;
86
- }
87
83
  output.push({
88
84
  objectOperationId: `object:${input.kind}:${String(input.node.start ?? -1)}:${String(input.node.end ?? -1)}`,
89
85
  kind: input.kind,
@@ -1,18 +1,11 @@
1
1
  import * as t from "@babel/types";
2
- import { reachSemanticValueLimit, semanticPrimitiveKey, } from "./javascriptSemanticProvenance.js";
2
+ import { semanticPrimitiveKey } from "./javascriptSemanticProvenance.js";
3
3
  import { compareCodePoints } from "./javascriptStaticAnalysisHelpers.js";
4
4
  /** Normalize one bounded collection of possible primitive values. */
5
- export const semanticPrimitiveSet = (values, state) => {
5
+ export const semanticPrimitiveSet = (values) => {
6
6
  const unique = [
7
7
  ...new Map(values.map((value) => [semanticPrimitiveKey(value), value])).values(),
8
8
  ].sort((left, right) => compareCodePoints(semanticPrimitiveKey(left), semanticPrimitiveKey(right)));
9
- if (unique.length > state.limits.maxUnionValues) {
10
- reachSemanticValueLimit(state, "maxUnionValues");
11
- return {
12
- status: "limit-reached",
13
- reason: "maxUnionValues reached.",
14
- };
15
- }
16
9
  const only = unique[0];
17
10
  return unique.length === 1 && only !== undefined
18
11
  ? { status: "literal", value: only }
@@ -9,10 +9,6 @@ export const collectSemanticCallable = (input) => {
9
9
  const kind = callableKind(node);
10
10
  if (kind === undefined)
11
11
  return;
12
- if (state.callables.length >= state.limits.maxCallables) {
13
- reachSemanticLimit(state, "maxCallables");
14
- return;
15
- }
16
12
  const callableId = semanticCallableIdForNode(node) ?? "callable:unknown:-1:-1";
17
13
  state.callables.push({
18
14
  callableId,
@@ -28,7 +24,6 @@ export const collectSemanticCallable = (input) => {
28
24
  status: "partial",
29
25
  retainedCount: 0,
30
26
  omittedCount: null,
31
- limitsReached: [],
32
27
  },
33
28
  });
34
29
  state.callableNodesById.set(callableId, node);
@@ -78,10 +73,6 @@ export const collectSemanticReferences = (program, state) => {
78
73
  if (seen.has(key))
79
74
  return;
80
75
  seen.add(key);
81
- if (output.length >= state.limits.maxReferences) {
82
- reachSemanticLimit(state, "maxReferences");
83
- return;
84
- }
85
76
  const binding = resolveSemanticBindingState(state, node, node.name);
86
77
  const blocked = binding === undefined &&
87
78
  semanticResolutionBlocked(state, node, node.name);
@@ -146,11 +137,6 @@ export const semanticModuleOrigin = (node, projection) => {
146
137
  export const semanticStaticPropertyName = (property, computed) => computed && !t.isStringLiteral(property) && !t.isNumericLiteral(property)
147
138
  ? ""
148
139
  : propertyName(property);
149
- /** Record one exact limit hit without inventing the total omitted population. */
150
- export const reachSemanticLimit = (state, limit) => {
151
- state.limitsReached.add(limit);
152
- state.omittedCount += 1;
153
- };
154
140
  const callableKind = (node) => {
155
141
  if (t.isClassMethod(node) ||
156
142
  t.isClassPrivateMethod(node) ||
@@ -281,10 +267,6 @@ const collectCommonJsExport = (node, state) => {
281
267
  });
282
268
  };
283
269
  const addModuleLink = (state, link) => {
284
- if (state.moduleLinks.length >= state.limits.maxModuleLinks) {
285
- reachSemanticLimit(state, "maxModuleLinks");
286
- return;
287
- }
288
270
  state.moduleLinks.push({ ...link, callableId: link.callableId ?? null });
289
271
  };
290
272
  /** Deterministic callable identity shared by collection and return recovery. */
@@ -1,5 +1,5 @@
1
1
  import * as t from "@babel/types";
2
- import { reachSemanticLimit, semanticCallableIdForNode, semanticStaticPropertyName, } from "./javascriptSemanticProjection.js";
2
+ import { semanticCallableIdForNode, semanticStaticPropertyName, } from "./javascriptSemanticProjection.js";
3
3
  import { resolveSemanticBindingState, semanticResolutionBlocked, } from "./javascriptSemanticState.js";
4
4
  import { traverseJavaScriptAst } from "./javascriptSemanticTraversal.js";
5
5
  import { compareCodePoints, range, sourceRangesEqual, } from "./javascriptStaticAnalysisHelpers.js";
@@ -36,16 +36,13 @@ const collectCandidates = (program, state, callables) => {
36
36
  callableStack.push(callableId);
37
37
  const details = promiseCandidateDetails(node, state);
38
38
  if (details !== null) {
39
- if (output.length >= state.limits.maxPromiseOperations)
40
- reachSemanticLimit(state, "maxPromiseOperations");
41
- else
42
- output.push({
43
- node,
44
- ...details,
45
- promiseId: semanticPromiseId(details.kind, node),
46
- ownerCallableId: callableStack.at(-1) ?? null,
47
- ancestors: [...ancestors],
48
- });
39
+ output.push({
40
+ node,
41
+ ...details,
42
+ promiseId: semanticPromiseId(details.kind, node),
43
+ ownerCallableId: callableStack.at(-1) ?? null,
44
+ ancestors: [...ancestors],
45
+ });
49
46
  }
50
47
  ancestors.push(node);
51
48
  },
@@ -224,9 +221,7 @@ const aggregateSources = (candidate, candidateByNode, state) => {
224
221
  return combinePromiseResolutions(resolutions);
225
222
  };
226
223
  const resolvePromiseExpression = (rawNode, context) => {
227
- const { current, candidateByNode, state, seenBindings, depth } = context;
228
- if (depth >= state.limits.maxValueDepth)
229
- return unresolvedPromise();
224
+ const { current, candidateByNode, state, seenBindings } = context;
230
225
  const node = unwrapExpression(rawNode);
231
226
  const direct = candidateByNode.get(node);
232
227
  if (direct !== undefined && direct.promiseId !== current.promiseId)
@@ -247,7 +242,6 @@ const resolvePromiseExpression = (rawNode, context) => {
247
242
  return resolvePromiseExpression(initializer.node, {
248
243
  ...context,
249
244
  seenBindings: nestedSeen,
250
- depth: depth + 1,
251
245
  });
252
246
  };
253
247
  const promiseResolutionContext = (current, candidateByNode, state) => ({
@@ -255,7 +249,6 @@ const promiseResolutionContext = (current, candidateByNode, state) => ({
255
249
  candidateByNode,
256
250
  state,
257
251
  seenBindings: new Set(),
258
- depth: 0,
259
252
  });
260
253
  const unwrapExpression = (node) => {
261
254
  if (t.isParenthesizedExpression(node) ||
@@ -1,29 +1,26 @@
1
1
  import { compareCodePoints } from "./javascriptStaticAnalysisHelpers.js";
2
- /** Construct one immutable semantic provenance value. */
3
- export const semanticProvenance = (status, origins, reason) => ({ status, origins, reason });
4
- /** Normalize bounded exact module origins into one provenance classification. */
5
- export const semanticOriginsProvenance = (origins, state) => {
2
+ /** Construct exact local provenance without inventing module origins. */
3
+ export const semanticLocalProvenance = () => ({
4
+ status: "local",
5
+ origins: [],
6
+ reason: null,
7
+ });
8
+ /** Construct an unresolved provenance outcome with an actionable reason. */
9
+ export const semanticUnresolvedProvenance = (status, reason) => ({ status, origins: [], reason });
10
+ /** Construct ambiguous provenance while retaining every origin. */
11
+ export const semanticAmbiguousProvenance = (origins, reason) => ({ status: "ambiguous", origins, reason });
12
+ /** Normalize exact module origins into one provenance classification. */
13
+ export const semanticOriginsProvenance = (origins) => {
6
14
  const unique = uniqueSemanticOrigins(origins);
7
- if (unique.length > state.limits.maxUnionValues)
8
- return semanticLimitProvenance(state, "maxUnionValues");
9
- return unique.length === 1
10
- ? semanticProvenance("module", unique, null)
11
- : semanticProvenance("ambiguous", unique, "Multiple module origins.");
15
+ const origin = unique[0];
16
+ return unique.length === 1 && origin !== undefined
17
+ ? { status: "module", origins: [origin], reason: null }
18
+ : semanticAmbiguousProvenance(unique, "Multiple module origins.");
12
19
  };
13
20
  /** Deduplicate and canonically order module origins. */
14
21
  export const uniqueSemanticOrigins = (origins) => [
15
22
  ...new Map(origins.map((origin) => [semanticOriginKey(origin), origin])).values(),
16
23
  ].sort((left, right) => compareCodePoints(semanticOriginKey(left), semanticOriginKey(right)));
17
- /** Mark and return an explicit provenance-limit value. */
18
- export const semanticLimitProvenance = (state, limit) => {
19
- reachSemanticValueLimit(state, limit);
20
- return semanticProvenance("limit-reached", [], `${limit} reached.`);
21
- };
22
- /** Record one value-lattice limit against the shared semantic analysis state. */
23
- export const reachSemanticValueLimit = (state, limit) => {
24
- state.limitsReached.add(limit);
25
- state.omittedCount += 1;
26
- };
27
24
  const semanticOriginKey = (origin) => `${origin.specifier}\0${origin.importedPath.join("\0")}`;
28
25
  /** Canonically distinguish primitive values across type boundaries. */
29
26
  export const semanticPrimitiveKey = (value) => `${value === null ? "null" : typeof value}:${JSON.stringify(value)}`;