rea-agents 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/README.md +83 -108
  2. package/bridge/ghidra/ReaGhidraBridge.java +609 -841
  3. package/bridge/hopper_bridge.py +99 -344
  4. package/dist/application/AbortablePromise.js +6 -3
  5. package/dist/application/AnalysisContextQueries.js +21 -9
  6. package/dist/application/AnalysisSnapshotCache.js +0 -1
  7. package/dist/application/AnalysisSnapshotFiles.js +7 -7
  8. package/dist/application/AndroidApplicationService.js +1 -1
  9. package/dist/application/AppleApplicationService.js +1 -1
  10. package/dist/application/ArtifactExtraction.js +35 -54
  11. package/dist/application/ArtifactExtractionDestination.js +17 -0
  12. package/dist/application/ArtifactGraphConstruction.js +2 -17
  13. package/dist/application/ArtifactInventory/classify.js +2 -6
  14. package/dist/application/ArtifactInventory/hash.js +2 -20
  15. package/dist/application/ArtifactInventory/policy.js +17 -0
  16. package/dist/application/ArtifactInventory/reader.js +1 -4
  17. package/dist/application/ArtifactInventory/scanCanonical.js +8 -15
  18. package/dist/application/ArtifactInventory/scanReader.js +76 -58
  19. package/dist/application/ArtifactInventory/types.js +1 -5
  20. package/dist/application/ArtifactInventory.js +6 -14
  21. package/dist/application/AuthorizedArtifactInventory.js +3 -13
  22. package/dist/application/BinarySession.js +54 -28
  23. package/dist/application/BinarySessionComposition.js +0 -11
  24. package/dist/application/BinarySessionOpen.js +2 -1
  25. package/dist/application/BinarySessionRecords.js +24 -86
  26. package/dist/application/BinarySessionStatus.js +16 -21
  27. package/dist/application/BinaryTargetResolver.js +216 -0
  28. package/dist/application/BrowserEvidence.js +39 -57
  29. package/dist/application/BrowserObservationService.js +3 -6
  30. package/dist/application/BrowserScenarioCaptureService.js +3 -6
  31. package/dist/application/BrowserScenarioEvidence.js +3 -3
  32. package/dist/application/CallPathTracing.js +2 -36
  33. package/dist/application/CapabilityClientRequirements.js +26 -0
  34. package/dist/application/CapabilityInventory.js +143 -77
  35. package/dist/application/ClientConfigurationDocument.js +27 -0
  36. package/dist/application/ClientRegistrationStatus.js +16 -13
  37. package/dist/application/CommandShimReplay.js +14 -1
  38. package/dist/application/DirectAnalysis.js +22 -46
  39. package/dist/application/DirectAnalysisStatus.js +5 -61
  40. package/dist/application/Doctor.js +11 -32
  41. package/dist/application/DoctorDiagnostics.js +1 -2
  42. package/dist/application/DoctorScope.js +1 -1
  43. package/dist/application/ElectronActiveEvidence.js +50 -0
  44. package/dist/application/ElectronActiveObservationPort.js +1 -0
  45. package/dist/application/ElectronActiveObservationService.js +78 -0
  46. package/dist/application/ElectronBoundaryAnalysis.js +7 -8
  47. package/dist/application/ElectronBoundaryGraphContext.js +1 -1
  48. package/dist/application/ElectronBoundaryGraphIpc.js +3 -3
  49. package/dist/application/ElectronBoundaryGraphNative.js +1 -2
  50. package/dist/application/ElectronBoundaryGraphWindows.js +6 -8
  51. package/dist/application/ElectronEvidence.js +4 -7
  52. package/dist/application/ElectronObservationService.js +5 -9
  53. package/dist/application/EnhancedLiteralTracing.js +42 -65
  54. package/dist/application/EnhancedTools.js +98 -64
  55. package/dist/application/EvidenceBundleCommands.js +16 -12
  56. package/dist/application/EvidenceBundleFiles.js +9 -15
  57. package/dist/application/EvidenceLedger.js +14 -42
  58. package/dist/application/FilesystemSnapshot.js +2 -3
  59. package/dist/application/InterfaceBuilderAnalysis.js +266 -0
  60. package/dist/application/InventoryProjectionEvidence.js +4 -2
  61. package/dist/application/InvestigationProviders.js +1 -1
  62. package/dist/application/JavaScriptApplicationEvidence.js +2 -5
  63. package/dist/application/JavaScriptApplicationEvidenceGraph.js +6 -10
  64. package/dist/application/JavaScriptApplicationService.js +6 -29
  65. package/dist/application/JavaScriptApplicationWorkflowEvidence.js +5 -5
  66. package/dist/application/JavaScriptApplicationWorkflowService.js +0 -8
  67. package/dist/application/JavaScriptArtifactAnalysis.js +38 -127
  68. package/dist/application/JavaScriptArtifactFiles.js +67 -107
  69. package/dist/application/JavaScriptArtifactGraphAccumulator.js +0 -7
  70. package/dist/application/JavaScriptArtifactGraphBuilder.js +7 -58
  71. package/dist/application/JavaScriptArtifactGraphBundlers.js +1 -6
  72. package/dist/application/JavaScriptArtifactGraphContext.js +12 -39
  73. package/dist/application/JavaScriptArtifactGraphDocuments.js +4 -11
  74. package/dist/application/JavaScriptArtifactGraphEvidence.js +0 -14
  75. package/dist/application/JavaScriptArtifactGraphFindings.js +3 -3
  76. package/dist/application/JavaScriptArtifactGraphStructure.js +16 -17
  77. package/dist/application/JavaScriptArtifactPathResolution.js +61 -49
  78. package/dist/application/JavaScriptArtifactReconstruction.js +5 -10
  79. package/dist/application/JavaScriptArtifactReconstructionInput.js +2 -14
  80. package/dist/application/JavaScriptJsonModules.js +2 -2
  81. package/dist/application/JavaScriptModuleRelationships.js +22 -27
  82. package/dist/application/JavaScriptReplayPermission.js +1 -1
  83. package/dist/application/JavaScriptReplayPlanning.js +9 -3
  84. package/dist/application/JavaScriptReplayService.js +29 -47
  85. package/dist/application/JavaScriptReturnShapeProjection.js +12 -42
  86. package/dist/application/JavaScriptRuntimeObservationEvidence.js +7 -8
  87. package/dist/application/JavaScriptRuntimeObservationService.js +4 -8
  88. package/dist/application/JavaScriptRuntimeReconciliationEvidence.js +2 -3
  89. package/dist/application/JavaScriptSemanticGraphBuilder.js +11 -41
  90. package/dist/application/JavaScriptSemanticGraphConstruction.js +5 -29
  91. package/dist/application/JavaScriptSemanticGraphEvidence.js +1 -1
  92. package/dist/application/JavaScriptSemanticGraphFingerprintProjection.js +1 -1
  93. package/dist/application/JavaScriptSemanticGraphFlowProjection.js +0 -13
  94. package/dist/application/JavaScriptSemanticGraphProjection.js +1 -3
  95. package/dist/application/JavaScriptSemanticTraceService.js +1 -10
  96. package/dist/application/JsonFiles.js +79 -0
  97. package/dist/application/LinuxHopper.js +11 -9
  98. package/dist/application/LoopbackReplay.js +26 -23
  99. package/dist/application/LoopbackReplayRecorder.js +29 -1
  100. package/dist/application/ManagedApplicationGraphService.js +1 -2
  101. package/dist/application/ManagedMemberComparisonService.js +11 -41
  102. package/dist/application/ManagedNativeVerificationService.js +1 -2
  103. package/dist/application/ManagedReconstructionService.js +1 -1
  104. package/dist/application/ManagedRuntimeCorrelationService.js +14 -13
  105. package/dist/application/NativeApiInspection.js +2 -7
  106. package/dist/application/NativeUiActionTrace.js +394 -0
  107. package/dist/application/NodeRuntimeCharacterizationService.js +11 -16
  108. package/dist/application/PermissionAuthority.js +15 -7
  109. package/dist/application/PermissionFailure.js +5 -0
  110. package/dist/application/ProcessCaptureAuthority.js +5 -7
  111. package/dist/application/ProcessCaptureJournal.js +3 -2
  112. package/dist/application/ProcessCaptureLifecycle.js +10 -12
  113. package/dist/application/ProcessCheckpoints.js +29 -11
  114. package/dist/application/ProcessCli.js +8 -17
  115. package/dist/application/ProcessEvidence.js +5 -7
  116. package/dist/application/ProcessHarness.js +60 -20
  117. package/dist/application/ProcessNormalization.js +2 -1
  118. package/dist/application/ProcessReactiveCoordinator.js +2 -4
  119. package/dist/application/ProcessReactiveEffects.js +9 -3
  120. package/dist/application/ProcessReactiveHarness.js +13 -7
  121. package/dist/application/ProcessSampling.js +2 -4
  122. package/dist/application/ProcessTimer.js +39 -0
  123. package/dist/application/ProjectPermissionStore.js +39 -95
  124. package/dist/application/RealHopperAssertions.js +20 -66
  125. package/dist/application/ReconstructionCoverageService.js +12 -58
  126. package/dist/application/ReconstructionObligationAuthority.js +2 -2
  127. package/dist/application/ReconstructionObligationCandidates.js +4 -4
  128. package/dist/application/ReconstructionObligationLedgerEvaluation.js +8 -15
  129. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -7
  130. package/dist/application/ReconstructionObligationLedgerService.js +19 -38
  131. package/dist/application/ReferenceSourceImport.js +21 -47
  132. package/dist/application/ReferenceSourceImportEntries.js +2 -4
  133. package/dist/application/ReferenceSourceImportPolicy.js +5 -32
  134. package/dist/application/ReferenceSourceImportTypes.js +0 -16
  135. package/dist/application/RuntimeExecutableDiagnostics.js +55 -29
  136. package/dist/application/SessionProviderRouter.js +2 -2
  137. package/dist/application/Setup.js +1 -3
  138. package/dist/application/SetupClientConfiguration.js +22 -88
  139. package/dist/application/SetupRegistrationEnvironment.js +0 -7
  140. package/dist/application/StoreFileLock.js +119 -0
  141. package/dist/application/TerminalRenderer.js +2 -3
  142. package/dist/application/Uninstall.js +9 -14
  143. package/dist/application/UnknownEvidence.js +1 -1
  144. package/dist/application/WindowsCapabilities.js +5 -4
  145. package/dist/artifacts/ArtifactPaths.js +2 -5
  146. package/dist/artifacts/ArtifactProvider.js +43 -67
  147. package/dist/artifacts/DirectoryArtifactReader.js +13 -8
  148. package/dist/artifacts/MachOSliceArtifactReader.js +1 -5
  149. package/dist/artifacts/NativeDmgArtifactReader.js +11 -11
  150. package/dist/artifacts/NibArchive.js +269 -0
  151. package/dist/artifacts/SafeOutputTree.js +21 -31
  152. package/dist/browser/BrowserProcessStartup.js +1 -2
  153. package/dist/browser/CdpAuthorizedMainFrame.js +16 -0
  154. package/dist/browser/CdpBrowserProvider.js +3 -13
  155. package/dist/browser/CdpCanonicalJsonDigest.js +9 -0
  156. package/dist/browser/CdpCaptureDocuments.js +28 -76
  157. package/dist/browser/CdpCaptureEventBodyShapes.js +13 -33
  158. package/dist/browser/CdpCaptureEventHandlers.js +22 -87
  159. package/dist/browser/CdpCaptureEvents.js +2 -8
  160. package/dist/browser/CdpCaptureStorage.js +9 -20
  161. package/dist/browser/CdpCaptureStorageFingerprints.js +85 -95
  162. package/dist/browser/CdpCaptureValues.js +21 -21
  163. package/dist/browser/CdpConnection.js +10 -25
  164. package/dist/browser/CdpElectronInspection.js +29 -51
  165. package/dist/browser/CdpElectronProvider.js +10 -35
  166. package/dist/browser/CdpElectronScriptEvents.js +8 -16
  167. package/dist/browser/CdpElectronScripts.js +6 -35
  168. package/dist/browser/CdpElectronWorkers.js +6 -10
  169. package/dist/browser/CdpEndpoint.js +25 -41
  170. package/dist/browser/CdpObservationSession.js +14 -26
  171. package/dist/browser/CdpPageCapture.js +34 -48
  172. package/dist/browser/CdpPageCaptureScripts.js +1 -19
  173. package/dist/browser/CdpPageCaptureWorkers.js +6 -10
  174. package/dist/browser/CdpSafeMetadata.js +19 -22
  175. package/dist/browser/CdpScreenshot.js +3 -5
  176. package/dist/browser/CdpTargetSession.js +1 -2
  177. package/dist/browser/CdpWebMcpDiscovery.js +13 -22
  178. package/dist/browser/ElectronFileScope.js +8 -19
  179. package/dist/browser/JavaScriptRuntimeScope.js +10 -10
  180. package/dist/browser/PlaywrightBrowserScenarioProvider.js +31 -64
  181. package/dist/browser/PlaywrightElectronActiveActions.js +309 -0
  182. package/dist/browser/PlaywrightElectronActiveProvider.js +274 -0
  183. package/dist/browser/PlaywrightExecutionBoundary.js +16 -5
  184. package/dist/browser/PlaywrightScenarioActions.js +3 -7
  185. package/dist/browser/PlaywrightScenarioArtifacts.js +23 -92
  186. package/dist/browser/PlaywrightScenarioBrowser.js +7 -9
  187. package/dist/browser/PlaywrightScenarioEvents.js +45 -94
  188. package/dist/browser/PlaywrightScenarioSession.js +18 -34
  189. package/dist/browser/PngVisualDiff.js +22 -14
  190. package/dist/browser/SensitiveTextCapture.js +1 -18
  191. package/dist/browser/V8InspectorCaptureProjection.js +7 -7
  192. package/dist/browser/V8InspectorEndpoint.js +12 -14
  193. package/dist/browser/V8InspectorProvider.js +20 -61
  194. package/dist/browser/WebSourceMapFetcher.js +56 -176
  195. package/dist/catalogIdentity.js +12 -60
  196. package/dist/cli/artifactCommands.js +49 -77
  197. package/dist/cli/coreAnalysisCommands.js +83 -133
  198. package/dist/cli/javascriptApplicationAnalysis.js +1 -9
  199. package/dist/cli/managedCommands.js +6 -271
  200. package/dist/cli/setupCommands.js +3 -12
  201. package/dist/cli/utilityCommands.js +7 -41
  202. package/dist/cli.js +0 -2
  203. package/dist/cliApplicationCommands.js +44 -114
  204. package/dist/cliBrowserAdvancedCommands.js +12 -102
  205. package/dist/cliBrowserCommands.js +19 -124
  206. package/dist/cliBrowserContext.js +30 -0
  207. package/dist/cliCommandNames.js +5 -5
  208. package/dist/cliElectronCommands.js +49 -71
  209. package/dist/cliEvidenceCommands.js +8 -77
  210. package/dist/cliJavaScriptRuntimeCommands.js +18 -92
  211. package/dist/cliJsonInput.js +4 -14
  212. package/dist/cliObservationOptions.js +11 -92
  213. package/dist/cliPolicyCommands.js +2 -16
  214. package/dist/cliProcessCommands.js +3 -3
  215. package/dist/cliSetup.js +0 -13
  216. package/dist/config/browserScenario.js +77 -0
  217. package/dist/config/electronAutomation.js +35 -0
  218. package/dist/config/environment.js +6 -9
  219. package/dist/config/javascriptReplay.js +41 -0
  220. package/dist/config/managedRuntime.js +25 -0
  221. package/dist/config/parseConfig.js +56 -232
  222. package/dist/config/parsers.js +16 -28
  223. package/dist/config/passiveObservation.js +87 -0
  224. package/dist/config/permissions.js +0 -7
  225. package/dist/config/processCapture.js +47 -0
  226. package/dist/contracts/analysisSearchContract.js +2 -5
  227. package/dist/contracts/applicationToolContracts.js +58 -114
  228. package/dist/contracts/applicationWorkflowInputContracts.js +29 -114
  229. package/dist/contracts/artifactComparisonExample.js +58 -60
  230. package/dist/contracts/artifactToolContracts.js +37 -91
  231. package/dist/contracts/browserScenarioToolContracts.js +6 -51
  232. package/dist/contracts/browserToolContracts.js +10 -75
  233. package/dist/contracts/electronToolContracts.js +27 -98
  234. package/dist/contracts/enhancedInputs.js +31 -78
  235. package/dist/contracts/errorSchemas.js +0 -1
  236. package/dist/contracts/functionComparisonExample.js +10 -24
  237. package/dist/contracts/functionInstructionContract.js +1 -3
  238. package/dist/contracts/functionWorkflowToolContracts.js +4 -5
  239. package/dist/contracts/hopperMemoryContracts.js +3 -3
  240. package/dist/contracts/investigationExamples.js +14 -11
  241. package/dist/contracts/javascriptApplicationWorkflowExamples.js +12 -19
  242. package/dist/contracts/javascriptRuntimeObservationToolContracts.js +2 -20
  243. package/dist/contracts/javascriptRuntimeReconciliationExample.js +45 -12
  244. package/dist/contracts/managedToolContracts.js +10 -104
  245. package/dist/contracts/managedWorkflowExamples.js +77 -125
  246. package/dist/contracts/managedWorkflowToolContracts.js +51 -74
  247. package/dist/contracts/nativeToolContracts.js +9 -14
  248. package/dist/contracts/processCaptureExample.js +2 -69
  249. package/dist/contracts/promptContracts.js +49 -67
  250. package/dist/contracts/providerSelection.js +0 -1
  251. package/dist/contracts/reconstructionReadinessExample.js +1 -6
  252. package/dist/contracts/sessionStatusContract.js +1 -17
  253. package/dist/contracts/sessionToolSchemas.js +52 -0
  254. package/dist/contracts/toolContractExamples.js +11 -10
  255. package/dist/contracts/toolContractHelpers.js +19 -0
  256. package/dist/contracts/toolContracts.js +60 -143
  257. package/dist/contracts/toolEffects.js +16 -9
  258. package/dist/contracts/toolOutputSchemaGroups.js +47 -86
  259. package/dist/contracts/toolOutputSchemaPrimitives.js +72 -62
  260. package/dist/contracts/toolSchemaMetadata.js +117 -0
  261. package/dist/contracts/unknownContractExamples.js +0 -2
  262. package/dist/doctorRuntime.js +1 -1
  263. package/dist/domain/analysisErrorPresentation.js +46 -54
  264. package/dist/domain/analysisErrorProjection.js +28 -37
  265. package/dist/domain/analysisProfile.js +3 -31
  266. package/dist/domain/analysisSnapshot.js +3 -12
  267. package/dist/domain/androidApplication.js +15 -52
  268. package/dist/domain/appleApplication.js +24 -65
  269. package/dist/domain/artifactComparison.js +11 -29
  270. package/dist/domain/artifactGraph.js +14 -44
  271. package/dist/domain/artifactInspection.js +38 -69
  272. package/dist/domain/artifactInventoryEvidence.js +27 -21
  273. package/dist/domain/binaryTarget.js +2 -219
  274. package/dist/domain/binaryTargetTypes.js +1 -0
  275. package/dist/domain/browserCaptureComparison.js +35 -60
  276. package/dist/domain/browserObservation.js +45 -197
  277. package/dist/domain/browserObservationSchemas.js +5 -23
  278. package/dist/domain/browserScenario.js +11 -14
  279. package/dist/domain/browserScenarioCapture.js +11 -12
  280. package/dist/domain/browserScenarioCaptureValues.js +146 -84
  281. package/dist/domain/browserScenarioDiff.js +2 -59
  282. package/dist/domain/browserScenarioDiffEvidence.js +51 -0
  283. package/dist/domain/browserScenarioDiffValues.js +21 -38
  284. package/dist/domain/browserScenarioValues.js +80 -109
  285. package/dist/domain/browserSession.js +4 -7
  286. package/dist/domain/bundleComparison.js +6 -32
  287. package/dist/domain/bytecodeProvider.js +53 -54
  288. package/dist/domain/callPath.js +50 -169
  289. package/dist/domain/callPathSchemas.js +79 -0
  290. package/dist/domain/changedBehavior.js +34 -60
  291. package/dist/domain/completionLedgerGeneration.js +8 -14
  292. package/dist/domain/conformancePackage.js +126 -97
  293. package/dist/domain/conformanceReplay.js +39 -11
  294. package/dist/domain/conformanceTrustGate.js +174 -30
  295. package/dist/domain/customProtocolCapture.js +4 -4
  296. package/dist/domain/electronActiveObservation.js +244 -0
  297. package/dist/domain/electronObservation.js +21 -83
  298. package/dist/domain/electronStaticAnalysisBrowser.js +36 -46
  299. package/dist/domain/electronStaticAnalysisIpc.js +38 -14
  300. package/dist/domain/electronStaticAnalysisNative.js +1 -8
  301. package/dist/domain/electronStaticAnalysisValues.js +14 -18
  302. package/dist/domain/errors.js +33 -54
  303. package/dist/domain/eventProcessTree.js +101 -90
  304. package/dist/domain/evidence.js +2 -10
  305. package/dist/domain/evidenceBundle.js +3 -5
  306. package/dist/domain/evidenceCompletionLedger.js +6 -8
  307. package/dist/domain/functionComparison.js +4 -14
  308. package/dist/domain/functionComparisonNormalization.js +8 -8
  309. package/dist/domain/functionComparisonResults.js +25 -15
  310. package/dist/domain/functionComparisonSchemas.js +49 -33
  311. package/dist/domain/functionDossierEvidence.js +31 -151
  312. package/dist/domain/hopperStartupFailure.js +1 -1
  313. package/dist/domain/hopperValues.js +17 -141
  314. package/dist/domain/inputIssueProjection.js +4 -1
  315. package/dist/domain/interfaceBuilderGraph.js +654 -0
  316. package/dist/domain/javascriptApplicationAnalysis.js +8 -112
  317. package/dist/domain/javascriptApplicationChangeGraph.js +22 -82
  318. package/dist/domain/javascriptApplicationEvidenceSchemas.js +59 -47
  319. package/dist/domain/javascriptApplicationGraph.js +3 -13
  320. package/dist/domain/javascriptApplicationGraphSchemas.js +12 -34
  321. package/dist/domain/javascriptApplicationVersionComparison.js +26 -30
  322. package/dist/domain/javascriptApplicationVersionComparisonSchemas.js +123 -68
  323. package/dist/domain/javascriptApplicationVersionItems.js +120 -53
  324. package/dist/domain/javascriptApplicationVersionKeys.js +24 -11
  325. package/dist/domain/javascriptAstFingerprint.js +25 -58
  326. package/dist/domain/javascriptAstValues.js +9 -0
  327. package/dist/domain/javascriptExportInstrumentation.js +2 -4
  328. package/dist/domain/javascriptExportShapeComparison.js +6 -7
  329. package/dist/domain/javascriptExportShapeComparisonSchemas.js +70 -77
  330. package/dist/domain/javascriptExportShapeSelection.js +17 -19
  331. package/dist/domain/javascriptFeatureSeed.js +20 -12
  332. package/dist/domain/javascriptFeatureTrace.js +13 -67
  333. package/dist/domain/javascriptFeatureTraceSchemas.js +24 -52
  334. package/dist/domain/javascriptFeatureTraversal.js +1 -44
  335. package/dist/domain/javascriptNativeHandoff.js +1 -1
  336. package/dist/domain/javascriptReplay.js +100 -101
  337. package/dist/domain/javascriptRuntimeLoadState.js +3 -8
  338. package/dist/domain/javascriptRuntimeObservation.js +43 -103
  339. package/dist/domain/javascriptRuntimeReconciliation.js +1 -3
  340. package/dist/domain/javascriptRuntimeReconciliationActive.js +80 -0
  341. package/dist/domain/javascriptRuntimeReconciliationGraph.js +21 -33
  342. package/dist/domain/javascriptRuntimeReconciliationMatching.js +75 -61
  343. package/dist/domain/javascriptRuntimeReconciliationParsing.js +21 -46
  344. package/dist/domain/javascriptRuntimeReconciliationResult.js +25 -19
  345. package/dist/domain/javascriptRuntimeReconciliationRuntime.js +8 -12
  346. package/dist/domain/javascriptRuntimeReconciliationSchemas.js +34 -49
  347. package/dist/domain/javascriptRuntimeStaticCandidates.js +3 -3
  348. package/dist/domain/javascriptSemanticAnalysis.js +12 -45
  349. package/dist/domain/javascriptSemanticAsyncEffects.js +1 -9
  350. package/dist/domain/javascriptSemanticCallResolution.js +6 -16
  351. package/dist/domain/javascriptSemanticCalls.js +5 -32
  352. package/dist/domain/javascriptSemanticChildProcesses.js +1 -11
  353. package/dist/domain/javascriptSemanticCoverage.js +11 -0
  354. package/dist/domain/javascriptSemanticDataEffectHelpers.js +1 -8
  355. package/dist/domain/javascriptSemanticDataEffects.js +1 -11
  356. package/dist/domain/javascriptSemanticFingerprints.js +3 -5
  357. package/dist/domain/javascriptSemanticGraphSchemas.js +25 -51
  358. package/dist/domain/javascriptSemanticGraphSerialization.js +2 -13
  359. package/dist/domain/javascriptSemanticIr.js +1 -29
  360. package/dist/domain/javascriptSemanticObjects.js +1 -5
  361. package/dist/domain/javascriptSemanticPrimitives.js +2 -9
  362. package/dist/domain/javascriptSemanticProjection.js +0 -18
  363. package/dist/domain/javascriptSemanticPromises.js +9 -16
  364. package/dist/domain/javascriptSemanticProvenance.js +16 -19
  365. package/dist/domain/javascriptSemanticQuery.js +17 -139
  366. package/dist/domain/javascriptSemanticQueryAssessment.js +9 -37
  367. package/dist/domain/javascriptSemanticQueryIdentity.js +2 -23
  368. package/dist/domain/javascriptSemanticQuerySchemas.js +14 -107
  369. package/dist/domain/javascriptSemanticResources.js +1 -6
  370. package/dist/domain/javascriptSemanticReturns.js +10 -27
  371. package/dist/domain/javascriptSemanticValueTypes.js +1 -0
  372. package/dist/domain/javascriptSemanticValues.js +44 -62
  373. package/dist/domain/javascriptStaticAnalysis.js +21 -43
  374. package/dist/domain/javascriptStaticAnalysisBundler.js +34 -93
  375. package/dist/domain/javascriptStaticAnalysisCalls.js +17 -16
  376. package/dist/domain/javascriptStaticAnalysisFindings.js +3 -19
  377. package/dist/domain/javascriptStaticAnalysisHelpers.js +47 -88
  378. package/dist/domain/javascriptStaticAnalysisState.js +1 -5
  379. package/dist/domain/javascriptStaticAnalysisTypes.js +1 -0
  380. package/dist/domain/jsonShape.js +7 -33
  381. package/dist/domain/localPath.js +7 -0
  382. package/dist/domain/managedApplicationGraph.js +9 -41
  383. package/dist/domain/managedApplicationGraphCoverage.js +24 -156
  384. package/dist/domain/managedApplicationGraphNodes.js +10 -13
  385. package/dist/domain/managedArtifact.js +14 -27
  386. package/dist/domain/managedMemberComparison.js +90 -92
  387. package/dist/domain/managedMemberComparisonCoverage.js +11 -33
  388. package/dist/domain/managedMemberComparisonItems.js +221 -0
  389. package/dist/domain/managedMemberComparisonMatch.js +8 -208
  390. package/dist/domain/managedNativeVerification.js +3 -6
  391. package/dist/domain/managedNativeVerificationMatch.js +55 -59
  392. package/dist/domain/managedNativeVerificationSchemas.js +83 -47
  393. package/dist/domain/managedReconstruction.js +19 -23
  394. package/dist/domain/managedRuntimeCorrelation.js +6 -9
  395. package/dist/domain/nativeApiBoundary.js +17 -14
  396. package/dist/domain/nativeInspection.js +0 -2
  397. package/dist/domain/nativeInvestigationGraph.js +351 -0
  398. package/dist/domain/nativeValueFlow.js +61 -0
  399. package/dist/domain/nodeRuntimeCharacterization.js +15 -18
  400. package/dist/domain/objcSwiftMetadata.js +254 -0
  401. package/dist/domain/peInspection.js +1 -1
  402. package/dist/domain/permissionPolicy.js +13 -0
  403. package/dist/domain/processCapture.js +76 -113
  404. package/dist/domain/processCaptureExample.js +68 -0
  405. package/dist/domain/processCaptureParsing.js +21 -0
  406. package/dist/domain/processCaptureReactiveSchema.js +68 -0
  407. package/dist/domain/processCaptureReactiveValidation.js +8 -3
  408. package/dist/domain/processCaptureValidation.js +8 -10
  409. package/dist/domain/processComparison.js +12 -16
  410. package/dist/domain/processObservation.js +5 -6
  411. package/dist/domain/processReactiveMatching.js +32 -46
  412. package/dist/domain/processReactiveRuntime.js +4 -8
  413. package/dist/domain/processReactiveScenario.js +28 -94
  414. package/dist/domain/processReactiveScenarioPreflight.js +5 -30
  415. package/dist/domain/processReactiveTransition.js +42 -21
  416. package/dist/domain/processScenario.js +62 -93
  417. package/dist/domain/processTraceComparison.js +0 -7
  418. package/dist/domain/processTraceEvaluation.js +14 -4
  419. package/dist/domain/processTraceSpecification.js +11 -17
  420. package/dist/domain/protocolCapture.js +11 -9
  421. package/dist/domain/reconstructionCoverage.js +62 -129
  422. package/dist/domain/reconstructionCoverageEvaluation.js +17 -17
  423. package/dist/domain/reconstructionObligationLedgerSchemas.js +45 -72
  424. package/dist/domain/reconstructionReadiness.js +1 -2
  425. package/dist/domain/reconstructionReadinessSchemas.js +66 -40
  426. package/dist/domain/reconstructionUnknowns.js +3 -3
  427. package/dist/domain/reconstructionVerification.js +13 -47
  428. package/dist/domain/reconstructionVerificationSchemas.js +50 -38
  429. package/dist/domain/referenceSourceGraph.js +53 -61
  430. package/dist/domain/referenceSourceImportParsing.js +3 -7
  431. package/dist/domain/replayMachine.js +19 -31
  432. package/dist/domain/replayMachineRun.js +15 -63
  433. package/dist/domain/replayMachineRuntime.js +46 -44
  434. package/dist/domain/replayMachineValues.js +84 -0
  435. package/dist/domain/residualUnknown.js +25 -30
  436. package/dist/domain/runtimeCharacterization.js +15 -16
  437. package/dist/domain/runtimeIdentification.js +48 -47
  438. package/dist/domain/sourceToBundleComparison.js +11 -87
  439. package/dist/domain/sourceToBundleComparisonSchemas.js +25 -50
  440. package/dist/domain/sourceToBundleSignals.js +11 -16
  441. package/dist/domain/staticRuntimeCorrelation.js +44 -54
  442. package/dist/domain/symbolAnalysis.js +10 -19
  443. package/dist/domain/unicodeCodePointOrder.js +12 -0
  444. package/dist/domain/webBundleAnalysis.js +70 -99
  445. package/dist/domain/webBundleAnalyzer.js +2 -4
  446. package/dist/domain/webBundleAnalyzerAst.js +0 -13
  447. package/dist/domain/webBundleAnalyzerInspection.js +26 -52
  448. package/dist/domain/webBundleAnalyzerResult.js +7 -24
  449. package/dist/domain/webCaptureDiff.js +48 -85
  450. package/dist/domain/webCaptureDiffSchemas.js +86 -0
  451. package/dist/domain/webContentArtifact.js +1 -10
  452. package/dist/domain/webMcpDiscovery.js +3 -14
  453. package/dist/domain/webScreenshot.js +58 -34
  454. package/dist/domain/zipPackageFormat.js +7 -0
  455. package/dist/dotnet/ManagedArtifactInspector.js +17 -50
  456. package/dist/dotnet/ManagedMemberInspector.js +27 -58
  457. package/dist/dotnet/ManagedMemberInspectorCore.js +14 -51
  458. package/dist/dotnet/ManagedMemberInstructionDecoder.js +2 -2
  459. package/dist/dotnet/ManagedMemberRows.js +16 -16
  460. package/dist/dotnet/ManagedMetadataHeaps.js +26 -8
  461. package/dist/dotnet/ManagedMetadataInventory.js +21 -30
  462. package/dist/dotnet/ManagedMetadataInventoryRows.js +57 -63
  463. package/dist/dotnet/ManagedMetadataLayout.js +3 -5
  464. package/dist/dotnet/ManagedMethodBodyReader.js +5 -30
  465. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +19 -49
  466. package/dist/dotnet/ManagedNativeBoundaryInspector.js +13 -42
  467. package/dist/dotnet/ManagedPeReader.js +2 -2
  468. package/dist/dotnet/ManagedStaticProvider.js +13 -71
  469. package/dist/generatedMcpToolCatalog.js +1 -1
  470. package/dist/generatedPackageMetadata.js +1 -1
  471. package/dist/ghidra/GhidraAnalysisProfile.js +3 -8
  472. package/dist/ghidra/GhidraClient.js +5 -13
  473. package/dist/ghidra/GhidraClientStartup.js +1 -1
  474. package/dist/ghidra/GhidraClientWire.js +9 -5
  475. package/dist/ghidra/GhidraDefaults.js +0 -18
  476. package/dist/ghidra/GhidraDiagnostics.js +0 -2
  477. package/dist/ghidra/GhidraDoctor.js +16 -12
  478. package/dist/ghidra/GhidraFunctionValues.js +67 -108
  479. package/dist/ghidra/GhidraInstallation.js +98 -42
  480. package/dist/ghidra/GhidraInventoryValues.js +18 -77
  481. package/dist/ghidra/GhidraLauncher.js +0 -8
  482. package/dist/ghidra/GhidraProvider.js +32 -31
  483. package/dist/ghidra/GhidraProviderCapabilities.js +11 -48
  484. package/dist/ghidra/GhidraRequestQueue.js +6 -30
  485. package/dist/ghidra/GhidraResponseBuffer.js +1 -7
  486. package/dist/ghidra/GhidraSessionValues.js +0 -2
  487. package/dist/ghidra/GhidraSocketConnection.js +1 -1
  488. package/dist/ghidra/GhidraTransport.js +4 -7
  489. package/dist/ghidra/protocol.js +19 -42
  490. package/dist/hopper/BridgeLauncher.js +115 -37
  491. package/dist/hopper/HopperAnalysisProfile.js +3 -5
  492. package/dist/hopper/HopperCleanup.js +11 -9
  493. package/dist/hopper/HopperClient.js +5 -8
  494. package/dist/hopper/HopperProcessDiagnostic.js +2 -2
  495. package/dist/hopper/HopperProvider.js +0 -30
  496. package/dist/hopper/HopperRequestQueue.js +21 -40
  497. package/dist/hopper/HopperResponseStream.js +1 -9
  498. package/dist/hopper/HopperSessionValues.js +3 -2
  499. package/dist/hopper/HopperTargetLease.js +119 -0
  500. package/dist/hopper/LinuxPrivateDisplayDiagnostic.js +24 -31
  501. package/dist/hopper/LinuxPrivateDisplayProbe.js +21 -26
  502. package/dist/hopper/protocol.js +6 -4
  503. package/dist/main/reload.js +1 -9
  504. package/dist/main/shutdown.js +1 -1
  505. package/dist/main/state.js +0 -23
  506. package/dist/main/transport.js +27 -39
  507. package/dist/main.js +17 -15
  508. package/dist/mcpDoctor.js +27 -69
  509. package/dist/native/CommandRunner.js +18 -25
  510. package/dist/native/NativeMacOSProvider.js +13 -38
  511. package/dist/native/NativeMachoInspection.js +1 -1
  512. package/dist/process/BoundedFileBytes.js +17 -0
  513. package/dist/process/ExecFileOutput.js +11 -0
  514. package/dist/process/PendingOperations.js +8 -6
  515. package/dist/process/PrivateRuntimeRoot.js +17 -0
  516. package/dist/process/ProcessOwnership.js +67 -130
  517. package/dist/process/ProcessOwnershipIdentity.js +13 -0
  518. package/dist/process/ProcessOwnershipObservation.js +87 -0
  519. package/dist/process/ProcessOwnershipProcessTree.js +22 -0
  520. package/dist/process/ProviderDeadline.js +8 -12
  521. package/dist/process/ProviderProcess.js +7 -28
  522. package/dist/process/WindowsAuthority.js +32 -0
  523. package/dist/reference/ReferenceSourceReader.js +8 -24
  524. package/dist/reference/ReferenceSourceReaderEntries.js +11 -39
  525. package/dist/reference/ReferenceSourceReaderFile.js +13 -31
  526. package/dist/reference/ReferenceSourceReaderPaths.js +3 -18
  527. package/dist/reference/ReferenceSourceReaderValidate.js +3 -6
  528. package/dist/replay/JavaScriptReplayWorker.js +95 -13
  529. package/dist/replay/JavaScriptReplayWorkerTypes.js +1 -0
  530. package/dist/replay/LinuxJavaScriptReplayRunner.js +42 -43
  531. package/dist/replay/LinuxJavaScriptReplaySandbox.js +0 -19
  532. package/dist/replay/LinuxRuntimeClosure.js +1 -3
  533. package/dist/replay/ReplayOutcome.js +27 -18
  534. package/dist/replay/ReplayProcessLifecycle.js +32 -7
  535. package/dist/replay/ReplaySeccompFile.js +29 -0
  536. package/dist/replay/ReplayWorkerProtocol.js +33 -30
  537. package/dist/replay/SystemJavaScriptReplayHost.js +45 -74
  538. package/dist/server/ProcessCaptureElicitation.js +4 -8
  539. package/dist/server/createServer.js +145 -119
  540. package/dist/server/mcpClientMetadata.js +32 -0
  541. package/dist/server/promptCompletion.js +37 -61
  542. package/dist/server/recordDerivedEvidence.js +1 -1
  543. package/dist/server/registerApplicationTools/characterization.js +10 -21
  544. package/dist/server/registerApplicationTools/compareExportShapes.js +6 -16
  545. package/dist/server/registerApplicationTools/compareSourceToBundle.js +6 -15
  546. package/dist/server/registerApplicationTools/compareVersions.js +6 -16
  547. package/dist/server/registerApplicationTools/controlledReplay.js +8 -15
  548. package/dist/server/registerApplicationTools/coverage.js +7 -78
  549. package/dist/server/registerApplicationTools/helpers.js +1 -13
  550. package/dist/server/registerApplicationTools/obligationLedger.js +4 -8
  551. package/dist/server/registerApplicationTools/traceFeature.js +6 -15
  552. package/dist/server/registerApplicationTools/traceSemantics.js +5 -13
  553. package/dist/server/registerApplicationTools.js +0 -2
  554. package/dist/server/registerArtifactComparisonTool.js +27 -35
  555. package/dist/server/registerBrowserScenarioTool.js +3 -8
  556. package/dist/server/registerBrowserTools.js +36 -81
  557. package/dist/server/registerBundleComparisonTool.js +10 -16
  558. package/dist/server/registerCloseLifecycleTool.js +5 -27
  559. package/dist/server/registerElectronTools.js +29 -65
  560. package/dist/server/registerEnhancedTools.js +118 -127
  561. package/dist/server/registerEvidenceTools.js +19 -30
  562. package/dist/server/registerFunctionComparisonTool.js +35 -34
  563. package/dist/server/registerInvestigationTools/helpers.js +3 -32
  564. package/dist/server/registerInvestigationTools.js +36 -148
  565. package/dist/server/registerJavaScriptRuntimeObservationTools.js +15 -27
  566. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +16 -23
  567. package/dist/server/registerManagedWorkflowTools/contract.js +2 -3
  568. package/dist/server/registerManagedWorkflowTools/evidence.js +19 -35
  569. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +4 -14
  570. package/dist/server/registerManagedWorkflowTools/planManagedRuntimeCorrelation.js +4 -14
  571. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +11 -20
  572. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +10 -21
  573. package/dist/server/registerOfficialTools.js +8 -51
  574. package/dist/server/registerProcessComparisonTool.js +43 -38
  575. package/dist/server/registerPrompts.js +19 -17
  576. package/dist/server/registerReplayMachineTool.js +4 -10
  577. package/dist/server/registerSessionRecordTools.js +36 -153
  578. package/dist/server/registerSessionStatusTool.js +18 -96
  579. package/dist/server/registerSessionTools.js +34 -91
  580. package/dist/server/sessionAvailabilityPolicy.js +2 -3
  581. package/dist/server/sessionEvidence.js +9 -15
  582. package/dist/server/sessionToolPolicies.js +1 -13
  583. package/dist/server/toolRegistrationOptions.js +4 -192
  584. package/dist/server/toolResult.js +15 -67
  585. package/dist/serverIdentity.js +0 -20
  586. package/install.sh +1 -1
  587. package/package.json +27 -15
  588. package/scripts/electron-active-hook-boundaries.cjs +394 -0
  589. package/scripts/electron-active-hook.cjs +469 -0
  590. package/scripts/hopper-demo-x11.py +13 -32
  591. package/scripts/rea.mjs +1 -11
  592. package/skills/reverse-engineer-anything/SKILL.md +46 -11
  593. package/skills/reverse-engineer-anything/references/evidence-workflows.md +6 -4
  594. package/skills/reverse-engineer-anything/references/javascript-applications.md +13 -13
  595. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +12 -8
  596. package/dist/application/ApplicationWorkflowEvidenceResolver.js +0 -180
  597. package/dist/application/BoundedJsonFiles.js +0 -86
  598. package/dist/application/CrossVersionInventory.js +0 -128
  599. package/dist/application/CrossVersionInvestigation.js +0 -301
  600. package/dist/application/CrossVersionInvestigationCollections.js +0 -23
  601. package/dist/application/CrossVersionInvestigationEvidence.js +0 -64
  602. package/dist/application/CrossVersionInvestigationReplay.js +0 -170
  603. package/dist/application/DeferredFileAuthorization.js +0 -61
  604. package/dist/application/DoctorProjection.js +0 -43
  605. package/dist/application/EnhancedToolPagination.js +0 -22
  606. package/dist/application/EvidenceReferenceResolver.js +0 -26
  607. package/dist/application/InvestigationWorkspaceStore.js +0 -204
  608. package/dist/application/ProcessPairedExperiment.js +0 -72
  609. package/dist/application/ReconstructionCoverageWorkspaceStore.js +0 -31
  610. package/dist/application/ReconstructionReadinessService.js +0 -48
  611. package/dist/cliInvestigationCommands.js +0 -173
  612. package/dist/domain/boundedCartesianProjection.js +0 -15
  613. package/dist/domain/investigationWorkspace.js +0 -346
  614. package/dist/domain/jsonLimits.js +0 -26
  615. package/dist/domain/knownPageCoverage.js +0 -21
  616. package/dist/domain/processPairedExperiment.js +0 -128
  617. package/dist/server/DynamicToolAvailability.js +0 -70
  618. package/dist/server/LazyToolCatalog.js +0 -134
  619. package/dist/server/hydrateServerTools.js +0 -191
  620. package/dist/server/javascriptApplicationResult.js +0 -106
  621. package/dist/server/permissionFailure.js +0 -12
  622. package/dist/server/registerApplicationTools/readiness.js +0 -55
  623. package/dist/server/registerEvidenceResources.js +0 -315
  624. package/dist/server/registerJavaScriptApplicationGraphResource.js +0 -65
  625. package/dist/server/registerReconstructionObligationLedgerResource.js +0 -32
  626. package/dist/server/registerReconstructionReadinessResource.js +0 -32
  627. package/dist/server/toolInputValidation.js +0 -77
  628. package/scripts/package-runner-bootstrap.mjs +0 -72
@@ -1,5 +1,4 @@
1
1
  import { applicationVersionComparisonResultSchema } from "../domain/javascriptApplicationVersionComparisonSchemas.js";
2
- import { z } from "zod";
3
2
  import { applicationFeatureTraceResultSchema } from "../domain/javascriptFeatureTraceSchemas.js";
4
3
  import { javaScriptSemanticTraceResultSchema } from "../domain/javascriptSemanticTraceSchemas.js";
5
4
  import { javaScriptExportShapeComparisonResultSchema } from "../domain/javascriptExportShapeComparisonSchemas.js";
@@ -7,44 +6,25 @@ import { sourceToBundleComparisonResultSchema } from "../domain/sourceToBundleCo
7
6
  import { compareApplicationVersionsRequestSchema, compareJavaScriptExportShapesRequestSchema, compareSourceToBundleRequestSchema, traceApplicationFeatureRequestSchema, traceJavaScriptSemanticsRequestSchema, } from "./applicationWorkflowInputContracts.js";
8
7
  import { controlledReplayInputSchema, controlledReplayOutputSchema, } from "../domain/javascriptReplay.js";
9
8
  import { nodeCharacterizationExecutionInputSchema, nodeCharacterizationExecutionOutputSchema, nodeCharacterizationPreparationInputSchema, nodeCharacterizationPreparationOutputSchema, } from "../domain/nodeRuntimeCharacterization.js";
10
- import { reconstructionCoverageCommitInputSchema, reconstructionCoverageCommitOutputSchema, reconstructionCoverageQueryInputSchema, } from "../application/ReconstructionCoverageService.js";
9
+ import { reconstructionCoverageEvaluationInputSchema } from "../application/ReconstructionCoverageService.js";
11
10
  import { reconstructionClosureResultSchema } from "../domain/reconstructionCoverage.js";
12
- import { reconstructionObligationLedgerInputSchema, reconstructionObligationLedgerPageSchema, } from "../domain/reconstructionObligationLedgerSchemas.js";
13
- import { reconstructionReadinessInputSchema, reconstructionReadinessReportSchema, } from "../domain/reconstructionReadinessSchemas.js";
11
+ import { reconstructionObligationLedgerInputSchema, reconstructionObligationLedgerSchema, } from "../domain/reconstructionObligationLedgerSchemas.js";
14
12
  import { jsonObjectSchema } from "../domain/jsonValue.js";
15
13
  import { toolContractMetadata } from "./toolEffects.js";
16
14
  import { evidenceResultOf } from "./toolOutputSchemas.js";
17
15
  import { JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE, JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE, JAVASCRIPT_FEATURE_TRACE_EXAMPLE, SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE, } from "./javascriptApplicationWorkflowExamples.js";
18
- import { RECONSTRUCTION_READINESS_EXAMPLE } from "./reconstructionReadinessExample.js";
19
16
  const traceOutputSchema = evidenceResultOf(applicationFeatureTraceResultSchema);
20
17
  const semanticTraceOutputSchema = evidenceResultOf(javaScriptSemanticTraceResultSchema);
21
18
  const comparisonOutputSchema = evidenceResultOf(applicationVersionComparisonResultSchema);
22
19
  const sourceToBundleOutputSchema = evidenceResultOf(sourceToBundleComparisonResultSchema);
23
20
  const exportShapeComparisonOutputSchema = evidenceResultOf(javaScriptExportShapeComparisonResultSchema);
24
- const reconstructionObligationLedgerOutputSchema = evidenceResultOf(reconstructionObligationLedgerPageSchema);
25
- const reconstructionReadinessOutputSchema = evidenceResultOf(reconstructionReadinessReportSchema
26
- .pick({
27
- schema: true,
28
- schema_version: true,
29
- report_id: true,
30
- source_digest: true,
31
- report_digest: true,
32
- status: true,
33
- summary: true,
34
- metrics: true,
35
- })
36
- .extend({
37
- report_resource_uri: z
38
- .string()
39
- .regex(/^rea:\/\/evidence\/ev_[a-f0-9]{64}\/reconstruction-readiness-report$/u),
40
- }));
21
+ const reconstructionObligationLedgerOutputSchema = evidenceResultOf(reconstructionObligationLedgerSchema);
41
22
  const HASH = "0".repeat(64);
42
23
  const NODE_PREPARATION_EXAMPLE = jsonObjectSchema.parse({
43
- preparation_approved: true,
44
24
  selected_alias: "bundle",
45
25
  expected_effect: "pure",
46
26
  instrumentation: {
47
- artifact_path: "/approved/bundle.js",
27
+ artifact_path: "/tmp/example/bundle.js",
48
28
  artifact_sha256: HASH,
49
29
  selection: {
50
30
  byte_start: 100,
@@ -59,7 +39,7 @@ const NODE_PREPARATION_EXAMPLE = jsonObjectSchema.parse({
59
39
  modules: [
60
40
  {
61
41
  alias: "bundle",
62
- path: "/approved/bundle.js",
42
+ path: "/tmp/example/bundle.js",
63
43
  format: "commonjs-factory",
64
44
  role: "module",
65
45
  dependencies: {},
@@ -69,43 +49,14 @@ const NODE_PREPARATION_EXAMPLE = jsonObjectSchema.parse({
69
49
  entry_export: "selected",
70
50
  },
71
51
  cases: [{ case_id: "empty", arguments: [""] }],
72
- approved: false,
73
52
  },
74
53
  });
75
- const COVERAGE_WORKSPACE_EXAMPLE = jsonObjectSchema.parse({
76
- schema_version: 1,
77
- workspace_id: `rcw_${HASH}`,
78
- name: "replacement",
79
- revision: 1,
80
- previous_revision_sha256: null,
81
- revision_sha256: HASH,
82
- evidence_bundle: {
83
- bundle_version: 2,
84
- artifacts: [],
85
- providers: [],
86
- environments: [],
87
- scenarios: [],
88
- captures: [],
89
- unknowns: [],
90
- records: [],
91
- },
92
- artifacts: [],
93
- surfaces: [],
94
- owners: [],
95
- claims: [],
96
- verifier_contracts: [],
97
- verifier_results: [],
98
- residual_unknown_ids: [],
99
- contradictions: [],
100
- package_proofs: [],
101
- boundaries: [],
102
- });
103
54
  /** Provider-neutral graph workflow contracts shared by MCP and CLI adapters. */
104
55
  export const APPLICATION_TOOL_CONTRACTS = [
105
56
  {
106
57
  name: "trace_application_feature",
107
58
  ...toolContractMetadata("trace_application_feature"),
108
- description: "Trace a typed literal seed through an authenticated JavaScript Application Graph supplied as full Evidence or an Evidence ID returned earlier in this session. Explicit direction, depth, node, edge, and path bounds apply. Original static, native, passive-runtime, inferred, and unknown authorities remain distinct; native addon handoffs never open a provider or execute the application.",
59
+ description: "Trace a typed literal seed through every reachable part of an authenticated JavaScript Application Graph supplied as inline Evidence. Original static, native, passive-runtime, inferred, and unknown authorities remain distinct; native addon handoffs never open a provider or execute the application.",
109
60
  kind: "application",
110
61
  inputSchema: traceApplicationFeatureRequestSchema,
111
62
  outputSchema: traceOutputSchema,
@@ -119,7 +70,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
119
70
  {
120
71
  name: "trace_javascript_semantics",
121
72
  ...toolContractMetadata("trace_javascript_semantics"),
122
- description: "Trace bounded static JavaScript data-flow, direct call/return, and closure relations from authenticated analyze_javascript_application v2 Evidence. Queries declare direction and exact node, relation, depth, function, module, and page limits. Dynamic or unsupported semantics remain explicit unknowns; static reachability never claims runtime execution.",
73
+ description: "Trace static JavaScript data-flow, direct call/return, and closure relations from inline application Evidence. Dynamic or unsupported semantics remain explicit unknowns; static reachability never claims runtime execution.",
123
74
  kind: "application",
124
75
  inputSchema: traceJavaScriptSemanticsRequestSchema,
125
76
  outputSchema: semanticTraceOutputSchema,
@@ -127,7 +78,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
127
78
  {
128
79
  title: "Trace backward provenance from one semantic node",
129
80
  input: {
130
- application_evidence_id: `ev_${HASH}`,
81
+ application: JAVASCRIPT_FEATURE_TRACE_EXAMPLE.application,
131
82
  query: {
132
83
  seed: { kind: "semantic-node", node_id: `jsrg_node_${HASH}` },
133
84
  direction: "backward-provenance",
@@ -140,7 +91,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
140
91
  {
141
92
  name: "compare_application_versions",
142
93
  ...toolContractMetadata("compare_application_versions"),
143
- description: "Compare two authenticated JavaScript Application Graph versions supplied as full Evidence or Evidence IDs returned earlier in this session. Uses unique-only exact digest, module source digest, source-map identity, structural fingerprint, and non-module semantic-key tiers. Reports added, removed, changed, ambiguous, and unknown entities plus a bounded changed_from graph without fuzzy or module-ordinal pairing.",
94
+ description: "Compare two authenticated JavaScript Application Graph versions supplied as inline Evidence. Uses unique-only exact digest, module source digest, source-map identity, structural fingerprint, and non-module semantic-key tiers. Reports added, removed, changed, ambiguous, and unknown entities plus the complete matching changed_from graph without fuzzy or module-ordinal pairing.",
144
95
  kind: "application",
145
96
  inputSchema: compareApplicationVersionsRequestSchema,
146
97
  outputSchema: comparisonOutputSchema,
@@ -154,7 +105,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
154
105
  {
155
106
  name: "compare_source_to_bundle",
156
107
  ...toolContractMetadata("compare_source_to_bundle"),
157
- description: "Compare a cryptographically committed HistoricalSourceGraph/v1 with authenticated JavaScript Application Graph Evidence supplied directly or by session Evidence ID. Uses explicit exact-digest, source-map path, current-path, suffix, and basename signals with stable weights. Classifies unchanged, modified, removed, split, merged, duplicated, and unknown; incomplete coverage and ambiguous weak signals never become absence or forced matches.",
108
+ description: "Compare a cryptographically committed HistoricalSourceGraph with inline authenticated JavaScript Application Graph Evidence. Uses explicit exact-digest, source-map path, current-path, suffix, and basename signals with stable weights. Classifies unchanged, modified, removed, split, merged, duplicated, and unknown; incomplete coverage and ambiguous weak signals never become absence or forced matches.",
158
109
  kind: "application",
159
110
  inputSchema: compareSourceToBundleRequestSchema,
160
111
  outputSchema: sourceToBundleOutputSchema,
@@ -168,7 +119,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
168
119
  {
169
120
  name: "compare_javascript_export_shapes",
170
121
  ...toolContractMetadata("compare_javascript_export_shapes"),
171
- description: "Compare bounded static return shapes for one exact module/export selector on each authenticated JavaScript Application Graph, supplied as full Evidence or session Evidence IDs. Variants pair only by reciprocal unique literal discriminants; dynamic values, incomplete properties, and ambiguous variants remain unknown. Reports JSON Pointer changes and recommends controlled replay separately without executing JavaScript.",
122
+ description: "Compare static return shapes for one exact module/export selector on each authenticated JavaScript Application Graph supplied as inline Evidence. Variants pair only by reciprocal unique literal discriminants; dynamic values, incomplete properties, and ambiguous variants remain unknown. Reports JSON Pointer changes and recommends controlled replay separately without executing JavaScript.",
172
123
  kind: "application",
173
124
  inputSchema: compareJavaScriptExportShapesRequestSchema,
174
125
  outputSchema: exportShapeComparisonOutputSchema,
@@ -182,7 +133,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
182
133
  {
183
134
  name: "run_controlled_replay",
184
135
  ...toolContractMetadata("run_controlled_replay"),
185
- description: "Plan or execute a content-bound extracted-module JavaScript replay inside the Linux Bubblewrap, seccomp, and cgroup boundary. Execution requires approved: true and the exact plan digest. Supports deterministic boundary cases and optional left/right differential comparison; observations have controlled-replay authority and do not claim real application runtime behavior.",
136
+ description: "Plan or execute a content-bound extracted-module JavaScript replay inside the Linux Bubblewrap, seccomp, and cgroup boundary. Execution requires the exact plan digest. Supports deterministic boundary cases and optional left/right differential comparison; observations have controlled-replay authority and do not claim real application runtime behavior.",
186
137
  kind: "application",
187
138
  inputSchema: controlledReplayInputSchema,
188
139
  outputSchema: controlledReplayOutputSchema,
@@ -195,7 +146,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
195
146
  modules: [
196
147
  {
197
148
  alias: "parser",
198
- path: "/approved/parser.mjs",
149
+ path: "/tmp/example/parser.mjs",
199
150
  format: "esm",
200
151
  role: "module",
201
152
  dependencies: {},
@@ -226,7 +177,6 @@ export const APPLICATION_TOOL_CONTRACTS = [
226
177
  result_depth: 16,
227
178
  result_nodes: 10000,
228
179
  },
229
- approved: false,
230
180
  },
231
181
  },
232
182
  ],
@@ -234,7 +184,7 @@ export const APPLICATION_TOOL_CONTRACTS = [
234
184
  {
235
185
  name: "prepare_node_characterization",
236
186
  ...toolContractMetadata("prepare_node_characterization"),
237
- description: "Prepare a hash-bound Node/JavaScript characterization plan and deterministic reversible export transformation without executing target code. The exact source, selected byte range, runtime closure, sandbox profile, cases, and limits are committed for separate execution approval.",
187
+ description: "Prepare a hash-bound Node/JavaScript characterization plan and deterministic reversible export transformation without executing target code. The exact source, selected byte range, runtime closure, sandbox profile, cases, and limits are committed for later execution.",
238
188
  kind: "application",
239
189
  inputSchema: nodeCharacterizationPreparationInputSchema,
240
190
  outputSchema: nodeCharacterizationPreparationOutputSchema,
@@ -248,15 +198,14 @@ export const APPLICATION_TOOL_CONTRACTS = [
248
198
  {
249
199
  name: "execute_node_characterization",
250
200
  ...toolContractMetadata("execute_node_characterization"),
251
- description: "Recompute and execute one separately approved exact Node characterization plan in the owned controlled-replay boundary. Returns transformation, replay, cleanup, and provider-neutral characterization Evidence v2; stale plans fail before execution.",
201
+ description: "Recompute and execute one exact Node characterization plan in the owned controlled-replay boundary. Returns transformation, replay, cleanup, and provider-neutral characterization Evidence; stale plans fail before execution.",
252
202
  kind: "application",
253
203
  inputSchema: nodeCharacterizationExecutionInputSchema,
254
204
  outputSchema: nodeCharacterizationExecutionOutputSchema,
255
205
  examples: [
256
206
  {
257
- title: "Execute one approved exact characterization plan",
207
+ title: "Execute one exact characterization plan",
258
208
  input: {
259
- execution_approved: true,
260
209
  approved_plan_sha256: HASH,
261
210
  preparation: NODE_PREPARATION_EXAMPLE,
262
211
  },
@@ -266,16 +215,15 @@ export const APPLICATION_TOOL_CONTRACTS = [
266
215
  {
267
216
  name: "build_reconstruction_obligation_ledger",
268
217
  ...toolContractMetadata("build_reconstruction_obligation_ledger"),
269
- description: "Generate one deterministic page of a ReconstructionObligationLedger/v1 from an authenticated Evidence v2 bundle, reviewed obligations, and an explicit reconstruction manifest. Static candidates remain candidates; duplicate ownership, missing original or reconstruction cases, missing parser/type, weak verifier authority, unenumerated claims, contradictions, dependencies, and residual unknowns fail closed. Every page carries the same full-ledger closure digest and typed per-obligation diagnostics.",
218
+ description: "Generate the complete deterministic ReconstructionObligationLedger from an authenticated Evidence bundle, reviewed obligations, and an explicit reconstruction manifest. Static candidates remain candidates; duplicate ownership, missing original or reconstruction cases, missing parser/type, weak verifier authority, unenumerated claims, contradictions, dependencies, and residual unknowns fail closed. The inline result carries the full-ledger closure digest and typed per-obligation diagnostics.",
270
219
  kind: "application",
271
220
  inputSchema: reconstructionObligationLedgerInputSchema,
272
221
  outputSchema: reconstructionObligationLedgerOutputSchema,
273
222
  examples: [
274
223
  {
275
- title: "Generate the first obligation-ledger page",
224
+ title: "Generate the complete obligation ledger",
276
225
  input: {
277
226
  evidence_bundle: {
278
- bundle_version: 2,
279
227
  artifacts: [],
280
228
  providers: [],
281
229
  environments: [],
@@ -286,71 +234,67 @@ export const APPLICATION_TOOL_CONTRACTS = [
286
234
  },
287
235
  reviewed_obligations: [],
288
236
  manifest: {
289
- schema_version: 1,
290
237
  bindings: [],
291
238
  contradictions: [],
292
239
  },
293
- limits: { max_obligations: 1_000 },
294
- page: { offset: 0, limit: 50 },
295
- },
296
- },
297
- ],
298
- },
299
- {
300
- name: "evaluate_reconstruction_readiness",
301
- ...toolContractMetadata("evaluate_reconstruction_readiness"),
302
- description: "Evaluate the fixed nine-stage public reconstruction journey into a deterministic ReconstructionReadinessReport/v1. Exact capability limits, provider routing, CLI/MCP status parity, bounded authority, partial-order comparison, contradictions, obligation closure, cleanup, and replay digests fail closed. Aggregate pass is emitted only when every required stage and check passes with attributable Evidence.",
303
- kind: "application",
304
- inputSchema: reconstructionReadinessInputSchema,
305
- outputSchema: reconstructionReadinessOutputSchema,
306
- examples: [
307
- {
308
- title: "Evaluate the complete synthetic reconstruction journey",
309
- input: RECONSTRUCTION_READINESS_EXAMPLE,
310
- },
311
- ],
312
- },
313
- {
314
- name: "commit_reconstruction_coverage",
315
- ...toolContractMetadata("commit_reconstruction_coverage"),
316
- description: "Atomically commit one canonical evidence-backed reconstruction coverage workspace revision under an approved root. CAS revisions reject lost updates; every Evidence and residual-unknown reference must resolve in the embedded canonical bundle.",
317
- kind: "application",
318
- inputSchema: reconstructionCoverageCommitInputSchema,
319
- outputSchema: reconstructionCoverageCommitOutputSchema,
320
- examples: [
321
- {
322
- title: "Commit the first canonical coverage revision",
323
- input: {
324
- approved: true,
325
- workspace_path: "/approved/coverage.json",
326
- expected_revision: null,
327
- workspace: COVERAGE_WORKSPACE_EXAMPLE,
328
240
  },
329
241
  },
330
242
  ],
331
243
  },
332
244
  {
333
- name: "query_reconstruction_coverage",
334
- ...toolContractMetadata("query_reconstruction_coverage"),
335
- description: "Evaluate one named reconstruction boundary from a canonical coverage workspace. Missing ownership or inventory is partial; stale, weak, truncated, skipped, or unresolved proof is unknown; contradictions, failed proof, missing owners, and authority routing fail closed.",
245
+ name: "evaluate_reconstruction_coverage",
246
+ ...toolContractMetadata("evaluate_reconstruction_coverage"),
247
+ description: "Evaluate inline evidence-backed reconstruction coverage against one named boundary. Missing ownership or inventory is partial; stale, weak, truncated, skipped, or unresolved proof is unknown; contradictions, failed proof, missing owners, and authority routing fail closed.",
336
248
  kind: "application",
337
- inputSchema: reconstructionCoverageQueryInputSchema,
249
+ inputSchema: reconstructionCoverageEvaluationInputSchema,
338
250
  outputSchema: reconstructionClosureResultSchema,
339
251
  examples: [
340
252
  {
341
253
  title: "Evaluate one replacement boundary",
342
254
  input: {
343
- workspace_path: "/approved/coverage.json",
255
+ coverage: {
256
+ evidence_bundle: {
257
+ artifacts: [],
258
+ providers: [],
259
+ environments: [],
260
+ scenarios: [],
261
+ captures: [],
262
+ unknowns: [],
263
+ records: [],
264
+ },
265
+ artifacts: [],
266
+ surfaces: [],
267
+ owners: [],
268
+ claims: [],
269
+ verifier_contracts: [],
270
+ verifier_results: [],
271
+ residual_unknown_ids: [],
272
+ contradictions: [],
273
+ package_proofs: [],
274
+ boundaries: [
275
+ {
276
+ boundary_id: "replacement.cli",
277
+ title: "CLI replacement",
278
+ required_surface_ids: ["cli.help"],
279
+ required_claim_ids: ["claim.cli.help"],
280
+ required_package_proof_kinds: [
281
+ "clean-install",
282
+ "authority-independence",
283
+ ],
284
+ allowed_dispositions: [],
285
+ allowed_unknown_ids: [],
286
+ },
287
+ ],
288
+ },
344
289
  boundary_id: "replacement.cli",
345
290
  },
346
291
  },
347
292
  ],
348
293
  },
349
294
  ];
350
- /** Resolve one named application contract without relying on array position. */
351
- export const applicationToolContract = (name) => {
295
+ export function applicationToolContract(name) {
352
296
  const contract = APPLICATION_TOOL_CONTRACTS.find(({ name: candidate }) => candidate === name);
353
297
  if (contract === undefined)
354
298
  throw new Error(`Missing application tool contract: ${name}`);
355
299
  return contract;
356
- };
300
+ }
@@ -5,133 +5,48 @@ import { compareJavaScriptExportShapesInputSchema } from "../domain/javascriptEx
5
5
  import { traceApplicationFeatureInputSchema } from "../domain/javascriptFeatureTraceSchemas.js";
6
6
  import { javaScriptSemanticQueryInputSchema } from "../domain/javascriptSemanticQuerySchemas.js";
7
7
  import { compareSourceToBundleInputSchema } from "../domain/sourceToBundleComparisonSchemas.js";
8
- const evidenceIdSchema = z
9
- .string()
10
- .regex(/^ev_[a-f0-9]{64}$/u)
11
- .describe("Evidence ID returned earlier in this session");
12
- const requireExactlyOne = (context, fields) => {
13
- const [leftName, left, rightName, right] = fields;
14
- if ((left === undefined) !== (right === undefined))
15
- return;
16
- context.addIssue({
17
- code: "custom",
18
- path: [left === undefined ? leftName : rightName],
19
- message: `Supply exactly one of ${leftName} or ${rightName}`,
20
- });
21
- };
22
- /** MCP/CLI trace request accepting full Evidence or a ledger reference. */
23
- export const traceApplicationFeatureRequestSchema = z
24
- .strictObject({
25
- application: evidenceSchema.optional(),
26
- application_evidence_id: evidenceIdSchema.optional(),
8
+ const traceApplicationFeatureFacts = {
27
9
  native_observations: traceApplicationFeatureInputSchema.shape.native_observations,
28
- native_observation_evidence_ids: z
29
- .array(evidenceIdSchema)
30
- .max(64)
31
- .default([]),
32
10
  seed: traceApplicationFeatureInputSchema.shape.seed,
33
11
  direction: traceApplicationFeatureInputSchema.shape.direction,
34
- limits: traceApplicationFeatureInputSchema.shape.limits,
35
- })
36
- .superRefine((input, context) => {
37
- requireExactlyOne(context, [
38
- "application",
39
- input.application,
40
- "application_evidence_id",
41
- input.application_evidence_id,
42
- ]);
12
+ };
13
+ /** MCP/CLI trace request carrying all Evidence inline. */
14
+ export const traceApplicationFeatureRequestSchema = z.strictObject({
15
+ ...traceApplicationFeatureFacts,
16
+ application: evidenceSchema,
43
17
  });
44
- /** MCP/CLI semantic trace request accepting full Evidence or a ledger reference. */
45
- export const traceJavaScriptSemanticsRequestSchema = z
46
- .strictObject({
47
- application: evidenceSchema.optional(),
48
- application_evidence_id: evidenceIdSchema.optional(),
18
+ /** MCP/CLI semantic trace request carrying Evidence inline. */
19
+ export const traceJavaScriptSemanticsRequestSchema = z.strictObject({
20
+ application: evidenceSchema,
49
21
  query: javaScriptSemanticQueryInputSchema,
50
- })
51
- .superRefine((input, context) => {
52
- requireExactlyOne(context, [
53
- "application",
54
- input.application,
55
- "application_evidence_id",
56
- input.application_evidence_id,
57
- ]);
58
22
  });
59
- /** MCP/CLI comparison request accepting full Evidence or ledger references. */
60
- export const compareApplicationVersionsRequestSchema = z
61
- .strictObject({
62
- left: evidenceSchema.optional(),
63
- left_evidence_id: evidenceIdSchema.optional(),
64
- right: evidenceSchema.optional(),
65
- right_evidence_id: evidenceIdSchema.optional(),
23
+ const compareApplicationVersionsFacts = {
66
24
  left_native_observations: compareApplicationVersionsInputSchema.shape.left_native_observations,
67
- left_native_observation_evidence_ids: z
68
- .array(evidenceIdSchema)
69
- .max(64)
70
- .default([]),
71
25
  right_native_observations: compareApplicationVersionsInputSchema.shape.right_native_observations,
72
- right_native_observation_evidence_ids: z
73
- .array(evidenceIdSchema)
74
- .max(64)
75
- .default([]),
76
- limits: compareApplicationVersionsInputSchema.shape.limits,
77
- unknown_registry_approved: compareApplicationVersionsInputSchema.shape.unknown_registry_approved,
78
- })
79
- .superRefine((input, context) => {
80
- requireExactlyOne(context, [
81
- "left",
82
- input.left,
83
- "left_evidence_id",
84
- input.left_evidence_id,
85
- ]);
86
- requireExactlyOne(context, [
87
- "right",
88
- input.right,
89
- "right_evidence_id",
90
- input.right_evidence_id,
91
- ]);
26
+ };
27
+ /** MCP/CLI comparison request carrying all Evidence inline. */
28
+ export const compareApplicationVersionsRequestSchema = z.strictObject({
29
+ ...compareApplicationVersionsFacts,
30
+ left: evidenceSchema,
31
+ right: evidenceSchema,
92
32
  });
93
- /** Historical-source comparison accepting full application Evidence or a ledger reference. */
94
- export const compareSourceToBundleRequestSchema = z
95
- .strictObject({
33
+ const compareSourceToBundleFacts = {
96
34
  reference: compareSourceToBundleInputSchema.shape.reference,
97
- application: evidenceSchema.optional(),
98
- application_evidence_id: evidenceIdSchema.optional(),
99
- limits: compareSourceToBundleInputSchema.shape.limits,
100
- unknown_registry_approved: compareSourceToBundleInputSchema.shape.unknown_registry_approved,
101
- })
102
- .superRefine((input, context) => {
103
- requireExactlyOne(context, [
104
- "application",
105
- input.application,
106
- "application_evidence_id",
107
- input.application_evidence_id,
108
- ]);
35
+ };
36
+ /** Historical-source comparison carrying application Evidence inline. */
37
+ export const compareSourceToBundleRequestSchema = z.strictObject({
38
+ ...compareSourceToBundleFacts,
39
+ application: evidenceSchema,
109
40
  });
110
- /** MCP/CLI export-shape request accepting full Evidence or ledger references. */
111
- export const compareJavaScriptExportShapesRequestSchema = z
112
- .strictObject({
113
- left: evidenceSchema.optional(),
114
- left_evidence_id: evidenceIdSchema.optional(),
115
- right: evidenceSchema.optional(),
116
- right_evidence_id: evidenceIdSchema.optional(),
41
+ const compareJavaScriptExportShapesFacts = {
117
42
  left_module_path: compareJavaScriptExportShapesInputSchema.shape.left_module_path,
118
43
  left_export_name: compareJavaScriptExportShapesInputSchema.shape.left_export_name,
119
44
  right_module_path: compareJavaScriptExportShapesInputSchema.shape.right_module_path,
120
45
  right_export_name: compareJavaScriptExportShapesInputSchema.shape.right_export_name,
121
- limits: compareJavaScriptExportShapesInputSchema.shape.limits,
122
- unknown_registry_approved: compareJavaScriptExportShapesInputSchema.shape.unknown_registry_approved,
123
- })
124
- .superRefine((input, context) => {
125
- requireExactlyOne(context, [
126
- "left",
127
- input.left,
128
- "left_evidence_id",
129
- input.left_evidence_id,
130
- ]);
131
- requireExactlyOne(context, [
132
- "right",
133
- input.right,
134
- "right_evidence_id",
135
- input.right_evidence_id,
136
- ]);
46
+ };
47
+ /** MCP/CLI export-shape request carrying application Evidence inline. */
48
+ export const compareJavaScriptExportShapesRequestSchema = z.strictObject({
49
+ ...compareJavaScriptExportShapesFacts,
50
+ left: evidenceSchema,
51
+ right: evidenceSchema,
137
52
  });
@@ -1,76 +1,74 @@
1
+ import { createHash } from "node:crypto";
2
+ import canonicalize from "canonicalize";
1
3
  import { createEvidence } from "../domain/evidence.js";
2
4
  import { jsonValueSchema } from "../domain/jsonValue.js";
3
5
  const inventory = (digit) => {
4
6
  const sha = digit.repeat(64);
5
- const artifactId = `art_${sha}`;
6
- const occurrenceId = `occ_${sha}`;
7
+ const artifactId = `art_${digestCanonical({ sha256: sha })}`;
8
+ const occurrenceId = `occ_${digestCanonical({ root: artifactId })}`;
9
+ const nodes = [
10
+ {
11
+ artifact_id: artifactId,
12
+ kind: "resource",
13
+ format: "file",
14
+ sha256: sha,
15
+ size: 1,
16
+ media_type: null,
17
+ architecture: null,
18
+ executable: false,
19
+ content_state: "materialized",
20
+ limitations: [],
21
+ },
22
+ ];
23
+ const occurrences = [
24
+ {
25
+ occurrence_id: occurrenceId,
26
+ artifact_id: artifactId,
27
+ parent_occurrence_id: null,
28
+ logical_path: ".",
29
+ entry_kind: "file",
30
+ declared_size: 1,
31
+ compressed_size: null,
32
+ executable: false,
33
+ encrypted: false,
34
+ hash_status: "verified",
35
+ source_location: null,
36
+ limitations: [],
37
+ },
38
+ ];
39
+ const graphSha256 = digestCanonical({
40
+ nodes,
41
+ occurrences,
42
+ edges: [],
43
+ integrity_contradictions: [],
44
+ });
7
45
  return jsonValueSchema.parse({
8
46
  manifest: {
9
- schema_version: 1,
10
- manifest_id: `agm_${sha}`,
47
+ manifest_id: `agm_${digestCanonical({
48
+ root_artifact_id: artifactId,
49
+ graph_sha256: graphSha256,
50
+ })}`,
11
51
  root_artifact_id: artifactId,
12
52
  root_sha256: sha,
13
53
  root_format: "file",
14
- graph_sha256: sha,
15
- node_count: 1,
16
- occurrence_count: 1,
54
+ graph_sha256: graphSha256,
55
+ node_count: nodes.length,
56
+ occurrence_count: occurrences.length,
17
57
  edge_count: 0,
18
58
  },
19
- nodes: {
20
- items: [
21
- {
22
- artifact_id: artifactId,
23
- kind: "resource",
24
- format: "file",
25
- sha256: sha,
26
- size: 1,
27
- media_type: null,
28
- architecture: null,
29
- executable: false,
30
- content_state: "materialized",
31
- limitations: [],
32
- },
33
- ],
34
- offset: 0,
35
- limit: 100,
36
- total: 1,
37
- next_offset: null,
38
- },
39
- occurrences: {
40
- items: [
41
- {
42
- occurrence_id: occurrenceId,
43
- artifact_id: artifactId,
44
- parent_occurrence_id: null,
45
- logical_path: ".",
46
- entry_kind: "file",
47
- declared_size: 1,
48
- compressed_size: null,
49
- executable: false,
50
- encrypted: false,
51
- hash_status: "verified",
52
- source_location: null,
53
- limitations: [],
54
- },
55
- ],
56
- offset: 0,
57
- limit: 100,
58
- total: 1,
59
- next_offset: null,
60
- },
61
- edges: { items: [], offset: 0, limit: 100, total: 0, next_offset: null },
62
- limits: {
63
- max_entries: 100,
64
- max_total_bytes: 1024,
65
- max_entry_bytes: 1024,
66
- max_compression_ratio: 10,
67
- max_depth: 10,
68
- max_path_bytes: 256,
69
- },
59
+ nodes,
60
+ occurrences,
61
+ edges: [],
70
62
  provenance: [],
71
63
  limitations: [],
72
64
  });
73
65
  };
66
+ const digestCanonical = (value) => {
67
+ const encoded = canonicalize(value);
68
+ if (encoded === undefined)
69
+ throw new TypeError("Artifact example is not canonical JSON");
70
+ return createHash("sha256").update(encoded).digest("hex");
71
+ };
74
72
  const provider = {
75
73
  id: "rea-artifact",
76
74
  name: "REA artifact graph",
@@ -78,14 +76,14 @@ const provider = {
78
76
  };
79
77
  /** Canonical complete inputs used to advertise artifact comparison. */
80
78
  export const ARTIFACT_COMPARISON_EXAMPLE = {
81
- left: createEvidence(undefined, provider, {
79
+ left: createEvidence({ path: "fixture-left", sha256: "0".repeat(64), format: "file" }, provider, {
82
80
  operation: "inventory_artifact",
83
81
  parameters: {},
84
82
  result: inventory("0"),
85
83
  confidence: "observed",
86
84
  authority: "shipped-artifact",
87
85
  }),
88
- right: createEvidence(undefined, provider, {
86
+ right: createEvidence({ path: "fixture-right", sha256: "1".repeat(64), format: "file" }, provider, {
89
87
  operation: "inventory_artifact",
90
88
  parameters: {},
91
89
  result: inventory("1"),