@shapeshift-labs/frontier-lang-compiler 0.2.150 → 0.2.151

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 (276) hide show
  1. package/README.md +315 -9
  2. package/bench/real-repo-corpus-checkout-identity.mjs +134 -0
  3. package/bench/real-repo-corpus-checkout-proof.mjs +263 -0
  4. package/bench/real-repo-corpus-command-execution.mjs +314 -0
  5. package/bench/real-repo-corpus-evidence.mjs +165 -0
  6. package/bench/real-repo-corpus-suite.mjs +273 -0
  7. package/bench/smoke.mjs +109 -7
  8. package/dist/declarations/import-adapter-core.d.ts +4 -3
  9. package/dist/declarations/import-adapter-options-native.d.ts +21 -0
  10. package/dist/declarations/js-ts-project-merge-admission-routes.d.ts +35 -0
  11. package/dist/declarations/js-ts-project-merge-commonjs-interop.d.ts +29 -0
  12. package/dist/declarations/js-ts-project-merge-confidence.d.ts +64 -0
  13. package/dist/declarations/js-ts-project-merge-declaration-emit-parity.d.ts +37 -0
  14. package/dist/declarations/js-ts-project-merge-declarations.d.ts +65 -0
  15. package/dist/declarations/js-ts-project-merge-diagnostics.d.ts +97 -0
  16. package/dist/declarations/js-ts-project-merge-global-augmentation.d.ts +30 -0
  17. package/dist/declarations/js-ts-project-merge-jsx-render-branch.d.ts +48 -0
  18. package/dist/declarations/js-ts-project-merge-proof-levels.d.ts +109 -0
  19. package/dist/declarations/js-ts-project-merge-quality-gates.d.ts +38 -0
  20. package/dist/declarations/js-ts-project-merge-semantic-equivalence-proof.d.ts +45 -0
  21. package/dist/declarations/js-ts-project-merge-tsconfig.d.ts +43 -0
  22. package/dist/declarations/js-ts-safe-merge.d.ts +47 -0
  23. package/dist/declarations/js-ts-safe-project-merge.d.ts +120 -38
  24. package/dist/declarations/native-project-compiler-assignability-oracle.d.ts +41 -0
  25. package/dist/declarations/native-project-compiler-callable-signatures.d.ts +31 -0
  26. package/dist/declarations/native-project-compiler-class-member-runtime-proof.d.ts +87 -0
  27. package/dist/declarations/native-project-compiler-composite-types.d.ts +23 -0
  28. package/dist/declarations/native-project-compiler-enum-proof.d.ts +58 -0
  29. package/dist/declarations/native-project-compiler-index-signature.d.ts +7 -0
  30. package/dist/declarations/native-project-compiler-public-api-source-binding.d.ts +8 -0
  31. package/dist/declarations/native-project-compiler-scope.d.ts +37 -0
  32. package/dist/declarations/native-project-compiler-type-reference-targets.d.ts +38 -0
  33. package/dist/declarations/native-project-css-modules.d.ts +90 -0
  34. package/dist/declarations/native-project-decorator-metadata.d.ts +126 -0
  35. package/dist/declarations/native-project-jsx-graph.d.ts +313 -0
  36. package/dist/declarations/native-project-module-declarations.d.ts +52 -0
  37. package/dist/declarations/native-project-module-resolution.d.ts +76 -1
  38. package/dist/declarations/native-project-runtime-effect-target.d.ts +29 -0
  39. package/dist/declarations/native-project-runtime-executable-effect-evidence.d.ts +107 -0
  40. package/dist/declarations/native-project-runtime-mutation-target.d.ts +33 -0
  41. package/dist/declarations/native-project-runtime-promise-chain.d.ts +30 -0
  42. package/dist/declarations/native-project-runtime-promise-combinator.d.ts +22 -0
  43. package/dist/declarations/native-project-runtime-reachability.d.ts +30 -0
  44. package/dist/declarations/native-project-runtime-resource-management.d.ts +27 -0
  45. package/dist/declarations/native-project-runtime-yield-delegation.d.ts +10 -0
  46. package/dist/declarations/native-project-scope-template-reference.d.ts +13 -0
  47. package/dist/declarations/native-project-source-evidence.d.ts +8 -0
  48. package/dist/declarations/native-project.d.ts +40 -39
  49. package/dist/declarations/semantic-edit-script.d.ts +10 -8
  50. package/dist/declarations/semantic-graph-layers.d.ts +79 -0
  51. package/dist/declarations/semantic-sidecar.d.ts +3 -2
  52. package/dist/declarations/semantic-structural-diff.d.ts +94 -0
  53. package/dist/declarations/source-preservation.d.ts +32 -1
  54. package/dist/declarations/target-adapters.d.ts +22 -2
  55. package/dist/index.d.ts +31 -0
  56. package/dist/index.js +5 -0
  57. package/dist/internal/index-impl/compileNativeSource.js +53 -5
  58. package/dist/internal/index-impl/createLightweightNativeImport.js +58 -4
  59. package/dist/internal/index-impl/createNativeImportFromSyntaxAst.js +17 -1
  60. package/dist/internal/index-impl/createNativeImportFromTypeScriptAst.js +28 -4
  61. package/dist/internal/index-impl/createNativeProjectImportResult.js +31 -27
  62. package/dist/internal/index-impl/createNativeProjectModuleResolutionFromPackageManifests.js +145 -0
  63. package/dist/internal/index-impl/createNativeSourcePreservation.js +34 -7
  64. package/dist/internal/index-impl/createSemanticImportSidecar.js +27 -1
  65. package/dist/internal/index-impl/createTypeScriptCompilerNativeImporterAdapter.js +16 -5
  66. package/dist/internal/index-impl/dynamicImportExpressionMetadata.js +80 -0
  67. package/dist/internal/index-impl/importMetaUrlDependencyMetadata.js +176 -0
  68. package/dist/internal/index-impl/importNativeSource.js +2 -3
  69. package/dist/internal/index-impl/moduleImportAttributeMetadata.js +232 -0
  70. package/dist/internal/index-impl/projectSemanticEditScriptToSource.js +8 -1
  71. package/dist/internal/index-impl/projectSymbolGraphClassStaticBlocks.js +148 -0
  72. package/dist/internal/index-impl/projectSymbolGraphCompilerAdvancedTypeMetadata.js +45 -0
  73. package/dist/internal/index-impl/projectSymbolGraphCompilerCallableSignatureEquivalence.js +107 -0
  74. package/dist/internal/index-impl/projectSymbolGraphCompilerClassPrivateAccessorRuntimeProof.js +280 -0
  75. package/dist/internal/index-impl/projectSymbolGraphCompilerClassShapeEquivalence.js +103 -0
  76. package/dist/internal/index-impl/projectSymbolGraphCompilerConditionalTypeEquivalence.js +242 -0
  77. package/dist/internal/index-impl/projectSymbolGraphCompilerDecoratorRuntimeProof.js +197 -0
  78. package/dist/internal/index-impl/projectSymbolGraphCompilerEnumEquivalence.js +188 -0
  79. package/dist/internal/index-impl/projectSymbolGraphCompilerFacts.js +244 -0
  80. package/dist/internal/index-impl/projectSymbolGraphCompilerIndexSignatureEquivalence.js +58 -0
  81. package/dist/internal/index-impl/projectSymbolGraphCompilerMetadata.js +168 -0
  82. package/dist/internal/index-impl/projectSymbolGraphCompilerTypeEquivalence.js +199 -0
  83. package/dist/internal/index-impl/projectSymbolGraphCompilerTypeEquivalenceProof.js +204 -0
  84. package/dist/internal/index-impl/projectSymbolGraphCompilerTypeReferenceTargetEquivalence.js +99 -0
  85. package/dist/internal/index-impl/projectSymbolGraphCssModuleRecords.js +264 -0
  86. package/dist/internal/index-impl/projectSymbolGraphCssModuleScanners.js +242 -0
  87. package/dist/internal/index-impl/projectSymbolGraphCssModuleUtils.js +152 -0
  88. package/dist/internal/index-impl/projectSymbolGraphCssModules.js +82 -0
  89. package/dist/internal/index-impl/projectSymbolGraphJsxComponentImports.js +170 -0
  90. package/dist/internal/index-impl/projectSymbolGraphJsxComponentProviderLookup.js +167 -0
  91. package/dist/internal/index-impl/projectSymbolGraphJsxComponentWrappers.js +150 -0
  92. package/dist/internal/index-impl/projectSymbolGraphJsxContextTargets.js +71 -0
  93. package/dist/internal/index-impl/projectSymbolGraphJsxContextValues.js +212 -0
  94. package/dist/internal/index-impl/projectSymbolGraphJsxEventHandlers.js +172 -0
  95. package/dist/internal/index-impl/projectSymbolGraphJsxHookEffects.js +124 -0
  96. package/dist/internal/index-impl/projectSymbolGraphJsxHooks.js +281 -0
  97. package/dist/internal/index-impl/projectSymbolGraphJsxMemberComponents.js +139 -0
  98. package/dist/internal/index-impl/projectSymbolGraphJsxPropFlows.js +320 -0
  99. package/dist/internal/index-impl/projectSymbolGraphJsxPropValues.js +145 -0
  100. package/dist/internal/index-impl/projectSymbolGraphJsxProviderFlows.js +133 -0
  101. package/dist/internal/index-impl/projectSymbolGraphJsxRecords.js +315 -0
  102. package/dist/internal/index-impl/projectSymbolGraphJsxRenderCollections.js +155 -0
  103. package/dist/internal/index-impl/projectSymbolGraphJsxRenderReturns.js +291 -0
  104. package/dist/internal/index-impl/projectSymbolGraphJsxRenderRisk.js +279 -0
  105. package/dist/internal/index-impl/projectSymbolGraphModuleDeclarationShapes.js +138 -0
  106. package/dist/internal/index-impl/projectSymbolGraphModuleResolution.js +89 -87
  107. package/dist/internal/index-impl/projectSymbolGraphPackageConditions.js +314 -0
  108. package/dist/internal/index-impl/projectSymbolGraphReExportImportTargets.js +43 -0
  109. package/dist/internal/index-impl/projectSymbolGraphReExports.js +55 -1
  110. package/dist/internal/index-impl/projectSymbolGraphRuntimeRegions.js +108 -0
  111. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefAliases.js +307 -0
  112. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefLexical.js +320 -0
  113. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefOwners.js +50 -0
  114. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefRecordBuilders.js +112 -0
  115. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefRecords.js +238 -0
  116. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefStructural.js +104 -0
  117. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefStructuralNormalize.js +242 -0
  118. package/dist/internal/index-impl/projectSymbolGraphScopeUseDefUseHashes.js +107 -0
  119. package/dist/internal/index-impl/projectSymbolGraphSourceMapGeneratedBoundary.js +111 -0
  120. package/dist/internal/index-impl/projectSymbolGraphSourceRecords.js +268 -0
  121. package/dist/internal/index-impl/projectSymbolGraphSourceRecordsOwnership.js +309 -0
  122. package/dist/internal/index-impl/replaySemanticEditProjection.js +53 -39
  123. package/dist/internal/index-impl/runtimeOrderEvidenceBinding.js +151 -0
  124. package/dist/internal/index-impl/runtimeOrderProofSurfaces.js +253 -0
  125. package/dist/internal/index-impl/semanticEditCallsiteArgumentMerge.js +319 -0
  126. package/dist/internal/index-impl/semanticEditExplicitSourceReplacement.js +7 -2
  127. package/dist/internal/index-impl/semanticEditProjectionRecord.js +8 -0
  128. package/dist/internal/index-impl/semanticEditReplayDiagnostics.js +7 -2
  129. package/dist/internal/index-impl/semanticEditReplayOutputBinding.js +61 -0
  130. package/dist/internal/index-impl/semanticEditReplayRerunRoute.js +27 -0
  131. package/dist/internal/index-impl/semanticEditReplaySourceReplacement.js +6 -1
  132. package/dist/internal/index-impl/semanticEditRuntimeOrderReasons.js +320 -0
  133. package/dist/internal/index-impl/semanticEditScriptClassification.js +90 -5
  134. package/dist/internal/index-impl/semanticEditScripts.js +42 -5
  135. package/dist/internal/index-impl/semanticEditTypeSyntaxReasons.js +134 -0
  136. package/dist/internal/index-impl/semanticIndexFromNativeDeclarations.js +11 -5
  137. package/dist/internal/index-impl/semanticStructuralDiffRecords.js +150 -0
  138. package/dist/internal/index-impl/sourceMapGeneratedBoundaryGate.js +185 -0
  139. package/dist/internal/index-impl/staticMemberLiteral.js +31 -0
  140. package/dist/internal/index-impl/staticOptionalMemberReference.js +22 -0
  141. package/dist/internal/index-impl/syntaxAstSourcePreservation.js +273 -0
  142. package/dist/internal/index-impl/syntaxCommonJsModuleDeclarationEntries.js +297 -0
  143. package/dist/internal/index-impl/syntaxModuleDeclarationEntries.js +56 -132
  144. package/dist/internal/index-impl/syntaxModuleEntryRecords.js +160 -0
  145. package/dist/internal/index-impl/typeScriptCompilerAdvancedTypeShapes.js +160 -0
  146. package/dist/internal/index-impl/typeScriptCompilerAssignabilityOracle.js +97 -0
  147. package/dist/internal/index-impl/typeScriptCompilerClassApi.js +238 -0
  148. package/dist/internal/index-impl/typeScriptCompilerDecoratorMetadata.js +290 -0
  149. package/dist/internal/index-impl/typeScriptCompilerEnumShape.js +279 -0
  150. package/dist/internal/index-impl/typeScriptCompilerFacts.js +294 -0
  151. package/dist/internal/index-impl/typeScriptCompilerInferenceSyntax.js +170 -0
  152. package/dist/internal/index-impl/typeScriptCompilerReferenceGraph.js +186 -0
  153. package/dist/internal/index-impl/typeScriptCompilerSymbolIdentity.js +294 -0
  154. package/dist/internal/index-impl/typeScriptCompilerTypeReferenceTargets.js +142 -0
  155. package/dist/internal/index-impl/typeScriptDeclaration.js +10 -38
  156. package/dist/internal/index-impl/typeScriptModuleDeclarationEntries.js +52 -15
  157. package/dist/internal/index-impl/typeScriptSourceFilePreservation.js +296 -0
  158. package/dist/js-ts-safe-member-class-invariants.js +247 -0
  159. package/dist/js-ts-safe-member-merge-result.js +23 -3
  160. package/dist/js-ts-safe-member-merge.js +28 -4
  161. package/dist/js-ts-safe-merge-binding-patterns.js +170 -0
  162. package/dist/js-ts-safe-merge-jsx-attribute-fallback.js +151 -157
  163. package/dist/js-ts-safe-merge-jsx-attribute-parser.js +277 -0
  164. package/dist/js-ts-safe-merge-jsx-child-expression-fallback.js +161 -0
  165. package/dist/js-ts-safe-merge-jsx-child-expression-merge.js +319 -0
  166. package/dist/js-ts-safe-merge-jsx-child-expression-parser.js +300 -0
  167. package/dist/js-ts-safe-merge-parse-declarations.js +46 -2
  168. package/dist/js-ts-safe-merge-parse-statements.js +8 -0
  169. package/dist/js-ts-safe-merge-semantic-edit-fallback.js +13 -5
  170. package/dist/js-ts-safe-merge-source-shape-fallbacks.js +3 -1
  171. package/dist/js-ts-safe-merge-top-level-rename-fallback.js +31 -5
  172. package/dist/js-ts-safe-merge-top-level-rename-result.js +7 -2
  173. package/dist/js-ts-safe-merge-variable-declarator-fallback.js +124 -6
  174. package/dist/js-ts-safe-merge-variable-declarator-parser.js +34 -4
  175. package/dist/js-ts-safe-merge.js +136 -0
  176. package/dist/js-ts-safe-project-merge-admission-routes.js +216 -0
  177. package/dist/js-ts-safe-project-merge-admission.js +161 -0
  178. package/dist/js-ts-safe-project-merge-ambient.js +110 -0
  179. package/dist/js-ts-safe-project-merge-core.js +85 -0
  180. package/dist/js-ts-safe-project-merge-css-module-conflicts.js +60 -0
  181. package/dist/js-ts-safe-project-merge-declaration-emit-parity.js +186 -0
  182. package/dist/js-ts-safe-project-merge-declarations.js +227 -0
  183. package/dist/js-ts-safe-project-merge-diagnostics-metadata.js +42 -0
  184. package/dist/js-ts-safe-project-merge-diagnostics-ts.js +73 -0
  185. package/dist/js-ts-safe-project-merge-diagnostics.js +283 -0
  186. package/dist/js-ts-safe-project-merge-evidence-routing.js +38 -0
  187. package/dist/js-ts-safe-project-merge-files.js +70 -0
  188. package/dist/js-ts-safe-project-merge-global-augmentation-compatibility.js +99 -0
  189. package/dist/js-ts-safe-project-merge-graph-conflicts.js +90 -2
  190. package/dist/js-ts-safe-project-merge-graph-delta-commonjs-interop.js +108 -0
  191. package/dist/js-ts-safe-project-merge-graph-delta-compiler-conflicts.js +179 -0
  192. package/dist/js-ts-safe-project-merge-graph-delta-compiler-details.js +189 -0
  193. package/dist/js-ts-safe-project-merge-graph-delta-conflicts.js +51 -184
  194. package/dist/js-ts-safe-project-merge-graph-delta-identity-conflicts.js +202 -0
  195. package/dist/js-ts-safe-project-merge-graph-delta-inference-syntax.js +80 -0
  196. package/dist/js-ts-safe-project-merge-graph-delta-module-declarations.js +155 -0
  197. package/dist/js-ts-safe-project-merge-graph-limits.js +16 -1
  198. package/dist/js-ts-safe-project-merge-graph.js +37 -5
  199. package/dist/js-ts-safe-project-merge-import-removal.js +292 -0
  200. package/dist/js-ts-safe-project-merge-jsx-graph-conflict-details.js +235 -0
  201. package/dist/js-ts-safe-project-merge-jsx-graph-conflicts.js +173 -0
  202. package/dist/js-ts-safe-project-merge-jsx-prop-contracts.js +86 -0
  203. package/dist/js-ts-safe-project-merge-jsx-render-branch-proof.js +189 -0
  204. package/dist/js-ts-safe-project-merge-missing-evidence.js +310 -0
  205. package/dist/js-ts-safe-project-merge-move-rename.js +209 -0
  206. package/dist/js-ts-safe-project-merge-proof-conflicts.js +44 -0
  207. package/dist/js-ts-safe-project-merge-proof-levels.js +320 -0
  208. package/dist/js-ts-safe-project-merge-quality-gates.js +140 -0
  209. package/dist/js-ts-safe-project-merge-routing-calibration.js +125 -0
  210. package/dist/js-ts-safe-project-merge-runtime-region-conflicts.js +156 -0
  211. package/dist/js-ts-safe-project-merge-scope-use-def-conflicts.js +292 -0
  212. package/dist/js-ts-safe-project-merge-semantic-equivalence-proof.js +175 -0
  213. package/dist/js-ts-safe-project-merge-semantic-replay-proof.js +311 -0
  214. package/dist/js-ts-safe-project-merge-semantic-replay-routes.js +179 -0
  215. package/dist/js-ts-safe-project-merge-source-span-conflicts.js +310 -0
  216. package/dist/js-ts-safe-project-merge-source-span-roundtrip-proof.js +172 -0
  217. package/dist/js-ts-safe-project-merge-split-merge-admission.js +96 -0
  218. package/dist/js-ts-safe-project-merge-split-merge-records.js +320 -0
  219. package/dist/js-ts-safe-project-merge-split-merge-shapes.js +234 -0
  220. package/dist/js-ts-safe-project-merge-split-merge.js +218 -0
  221. package/dist/js-ts-safe-project-merge-summary.js +320 -0
  222. package/dist/js-ts-safe-project-merge-symbol-move-admission.js +63 -0
  223. package/dist/js-ts-safe-project-merge-symbol-move-default-admission.js +143 -0
  224. package/dist/js-ts-safe-project-merge-symbol-move-risks.js +213 -0
  225. package/dist/js-ts-safe-project-merge-symbol-move.js +316 -0
  226. package/dist/js-ts-safe-project-merge-symbol-rename-admission.js +59 -0
  227. package/dist/js-ts-safe-project-merge-symbol-rename-default-admission.js +111 -0
  228. package/dist/js-ts-safe-project-merge-symbol-rename.js +319 -0
  229. package/dist/js-ts-safe-project-merge-ts-options.js +205 -0
  230. package/dist/js-ts-safe-project-merge-ts-program.js +268 -0
  231. package/dist/js-ts-safe-project-merge-typed-property-rename-rebase-utils.js +69 -0
  232. package/dist/js-ts-safe-project-merge-typed-property-rename-rebase.js +317 -0
  233. package/dist/js-ts-safe-project-merge-unsupported-surfaces.js +319 -0
  234. package/dist/js-ts-safe-project-merge.js +170 -171
  235. package/dist/js-ts-semantic-scope-use-def-bindings.js +287 -0
  236. package/dist/js-ts-semantic-scope-use-def-scan.js +241 -0
  237. package/dist/js-ts-semantic-scope-use-def-utils.js +132 -0
  238. package/dist/js-ts-semantic-scope-use-def.js +217 -0
  239. package/dist/lightweight-dependency-effects.js +28 -4
  240. package/dist/lightweight-dependency-relations.js +13 -7
  241. package/dist/lightweight-dependency-top-level.js +63 -0
  242. package/dist/native-import-language-profiles.js +27 -1
  243. package/dist/native-js-ts-importers.js +9 -5
  244. package/dist/native-parser-ast-format-profiles.js +12 -0
  245. package/dist/native-parser-html-css-format-profiles.js +85 -0
  246. package/dist/native-region-scanner-core.js +5 -3
  247. package/dist/native-region-scanner-js-commonjs.js +155 -0
  248. package/dist/native-region-scanner-js-imports.js +51 -13
  249. package/dist/native-region-scanner-js-reexports.js +79 -0
  250. package/dist/native-region-scanner-js-ts-helpers.js +23 -0
  251. package/dist/native-source-ledger-helpers.js +1 -1
  252. package/dist/native-source-ledger.js +24 -10
  253. package/dist/native-source-maps-ecma426.js +316 -0
  254. package/dist/native-source-maps.js +36 -6
  255. package/dist/native-source-preservation-ownership.js +292 -0
  256. package/dist/native-source-preservation-scanner.js +63 -25
  257. package/dist/native-source-preservation-types.d.ts +3 -0
  258. package/dist/semantic-import-effect-occurrences.js +242 -0
  259. package/dist/semantic-import-effect-regions.js +95 -58
  260. package/dist/semantic-import-graph-layers.js +224 -0
  261. package/dist/semantic-import-runtime-conditional-evidence.js +135 -0
  262. package/dist/semantic-import-runtime-effect-target-evidence.js +145 -0
  263. package/dist/semantic-import-runtime-exit-evidence.js +32 -0
  264. package/dist/semantic-import-runtime-import-meta-evidence.js +33 -0
  265. package/dist/semantic-import-runtime-mutation-evidence.js +155 -0
  266. package/dist/semantic-import-runtime-order-evidence.js +318 -0
  267. package/dist/semantic-import-runtime-promise-chain-evidence.js +103 -0
  268. package/dist/semantic-import-runtime-promise-combinator-evidence.js +166 -0
  269. package/dist/semantic-import-runtime-reachability-evidence.js +269 -0
  270. package/dist/semantic-import-runtime-resource-management-evidence.js +293 -0
  271. package/dist/semantic-import-runtime-switch-evidence.js +304 -0
  272. package/dist/semantic-import-runtime-throw-evidence.js +44 -0
  273. package/dist/semantic-import-runtime-try-finally-evidence.js +172 -0
  274. package/dist/semantic-import-sidecar-entry.js +4 -0
  275. package/dist/semantic-import-source-preservation.js +6 -2
  276. package/package.json +1 -1
@@ -0,0 +1,165 @@
1
+ function createCheckoutEvidenceRows(manifest, checkoutProof, commandExecution = null) {
2
+ const proof = manifest.localBehavior?.checkoutProof ?? {};
3
+ const dependencyInstallExecution = proof.dependencyInstallExecution ?? 'not-run-default-network-free';
4
+ const repositoryCommandExecution = proof.repositoryCommandExecution ?? 'not-run-default-network-free';
5
+ const repositoryCommandProofStatus = proof.repositoryCommandProofStatus ?? repositoryCommandExecution;
6
+ const commandRowsByEntry = new Map((commandExecution?.rows ?? []).map((row) => [row.entryId, row]));
7
+ return checkoutProof.rows.map((row) => {
8
+ const checkoutProofExecution = row.checkoutProofExecution ?? (row.status === 'skipped-missing-checkout' ? 'skipped' : 'executed');
9
+ const commandDryRunPhases = createCommandDryRunPhases(row, checkoutProofExecution, proof);
10
+ const commandRun = commandRowsByEntry.get(row.entryId) ?? createDefaultCommandRunRow(row, commandDryRunPhases);
11
+ const commandDryRunSkippedPhases = commandDryRunPhases.filter((phase) => phase.readinessStatus === 'skipped-missing-checkout').length;
12
+ const commandDryRunReadyPhases = commandDryRunPhases.filter((phase) => phase.readinessStatus === 'ready-local-checkout').length;
13
+ const commandDryRunOptInRequiredPhases = commandDryRunPhases.filter((phase) => phase.executionStatus === 'opt-in-required').length;
14
+ const commandDryRunExecutedPhases = commandDryRunPhases.filter((phase) => phase.executionStatus === 'executed').length;
15
+ const commandDryRunDefaultOffPhases = commandDryRunPhases.filter((phase) => phase.defaultExecution === 'not-run-default-network-free').length;
16
+ const commandDryRunStatus = checkoutProofExecution === 'skipped' ? 'skipped-missing-checkout' : 'ready-local-checkout';
17
+ const commandDryRunExecutionStatus = checkoutProofExecution === 'skipped' ? 'skipped-missing-checkout' : 'opt-in-required';
18
+ return {
19
+ entryId: row.entryId,
20
+ checkoutDir: row.checkoutDir,
21
+ manifestMetadataStatus: manifest.mode ?? 'unknown',
22
+ checkoutProofStatus: row.status,
23
+ checkoutProofExecution,
24
+ checkoutRootMode: checkoutProof.rootMode,
25
+ checkoutRootEnv: proof.rootEnv ?? 'FRONTIER_REAL_REPO_CORPUS_ROOT',
26
+ checkoutRootPresent: checkoutProof.rootPresent,
27
+ checkoutDirPresent: row.checkoutDirPresent ?? checkoutProofExecution === 'executed',
28
+ checkoutPresenceStatus: row.checkoutPresenceStatus ?? (checkoutProofExecution === 'skipped' ? 'checkout-dir-missing' : 'checkout-dir-present'),
29
+ checkoutProofReason: row.checkoutProofReason ?? row.status,
30
+ checkoutIdentityStatus: row.checkoutIdentityStatus ?? (checkoutProofExecution === 'skipped' ? 'skipped-missing-checkout' : 'git-metadata-missing'),
31
+ checkoutIdentityExecution: row.checkoutIdentityExecution ?? checkoutProofExecution,
32
+ gitMetadataPresent: row.gitMetadataPresent ?? false,
33
+ gitMetadataKind: row.gitMetadataKind ?? (checkoutProofExecution === 'skipped' ? 'not-scanned' : 'missing'),
34
+ gitDirPointerPresent: row.gitDirPointerPresent ?? false,
35
+ gitHeadPresent: row.gitHeadPresent ?? false,
36
+ gitConfigPresent: row.gitConfigPresent ?? false,
37
+ gitRemoteOriginUrlPresent: row.gitRemoteOriginUrlPresent ?? false,
38
+ gitRemoteOriginMatchesManifest: row.gitRemoteOriginMatchesManifest ?? null,
39
+ gitRefMatchesManifest: row.gitRefMatchesManifest ?? null,
40
+ dependencyInstallProofStatus: dependencyInstallProofStatus(row, checkoutProofExecution),
41
+ dependencyInstallExecution: commandRun.dependencyInstallExecution ?? dependencyInstallExecution,
42
+ dependencyInstallDefaultOffReason: proof.dependencyInstallDefaultOffReason ?? 'dependency installs require an explicit opt-in after a local checkout is supplied',
43
+ dependencyInstallOptInRequired: (commandRun.dependencyInstallExecution ?? dependencyInstallExecution) !== 'executed',
44
+ repositoryCommandProofStatus: commandRun.repositoryCommandExecution ?? repositoryCommandProofStatus,
45
+ repositoryCommandExecution: commandRun.repositoryCommandExecution ?? repositoryCommandExecution,
46
+ repositoryCommandDefaultOffReason: proof.repositoryCommandDefaultOffReason ?? 'repository build/test commands require explicit opt-in after dependency metadata is reviewed',
47
+ repositoryCommandOptInRequired: (commandRun.repositoryCommandExecution ?? repositoryCommandExecution) !== 'executed',
48
+ commandDryRunStatus,
49
+ commandDryRunExecutionStatus,
50
+ commandDryRunPhaseCount: commandDryRunPhases.length,
51
+ commandDryRunPhases,
52
+ commandDryRunSkippedPhases,
53
+ commandDryRunReadyPhases,
54
+ commandDryRunOptInRequiredPhases,
55
+ commandDryRunExecutedPhases,
56
+ commandDryRunDefaultOffPhases,
57
+ commandRunStatus: commandRun.commandRunStatus,
58
+ commandRunExecutionStatus: commandRun.commandRunExecutionStatus,
59
+ commandRunReason: commandRun.commandRunReason,
60
+ commandRunEnabled: commandRun.commandRunEnabled,
61
+ commandRunPhaseCount: commandRun.commandRunPhaseCount,
62
+ commandRunPhases: commandRun.commandRunPhases,
63
+ commandRunExecutedPhases: commandRun.commandRunExecutedPhases,
64
+ commandRunFailedPhases: commandRun.commandRunFailedPhases,
65
+ commandRunTimedOutPhases: commandRun.commandRunTimedOutPhases,
66
+ commandRunSkippedPhases: commandRun.commandRunSkippedPhases,
67
+ commandRunDefaultOffPhases: commandRun.commandRunDefaultOffPhases,
68
+ commandRunOutputTruncatedPhases: commandRun.commandRunOutputTruncatedPhases,
69
+ networkAccess: proof.networkRequired === true ? 'required' : 'none',
70
+ sourceTextRead: proof.readsSourceText === true,
71
+ installCommandsRun: commandRun.dependencyInstallExecution === 'executed',
72
+ packageManagerLockFilesPresent: row.packageManagerLockFilesPresent ?? 0,
73
+ packageManagerLockFiles: row.packageManagerLockFiles ?? [],
74
+ packageManagersPresent: row.packageManagersPresent ?? [],
75
+ packageManagerCommandMatrixStatus: row.packageManagerCommandMatrixStatus ?? 'metadata-only',
76
+ packageManagerCommandMatrixCommands: row.packageManagerCommandMatrixCommands ?? 0,
77
+ packageManagerInstallCommands: row.packageManagerInstallCommands ?? 0,
78
+ packageManagerBuildCommands: row.packageManagerBuildCommands ?? 0,
79
+ packageManagerTestCommands: row.packageManagerTestCommands ?? 0,
80
+ plannedSampleFiles: row.plannedSampleFiles,
81
+ proofGlobs: row.proofGlobs,
82
+ matchedFiles: row.matchedFiles,
83
+ maxObservedBytesPerFile: row.maxObservedBytesPerFile
84
+ };
85
+ });
86
+ }
87
+
88
+ function createDefaultCommandRunRow(row, phases) {
89
+ const commandRunPhases = phases.map((phase) => ({
90
+ phase: phase.phase,
91
+ executionStatus: 'blocked-opt-in-required',
92
+ reason: 'real-repo-command-opt-in-missing',
93
+ defaultExecution: 'not-run-default-network-free',
94
+ command: null,
95
+ argv: [],
96
+ manager: null,
97
+ commandHash: null,
98
+ stdoutBytes: 0,
99
+ stderrBytes: 0,
100
+ stdoutHash: null,
101
+ stderrHash: null,
102
+ stdoutPreview: '',
103
+ stderrPreview: '',
104
+ stdoutTruncated: false,
105
+ stderrTruncated: false
106
+ }));
107
+ return {
108
+ entryId: row.entryId,
109
+ commandRunEnabled: false,
110
+ commandRunStatus: 'blocked-opt-in-required',
111
+ commandRunExecutionStatus: 'not-run-default-network-free',
112
+ commandRunReason: 'real-repo-command-opt-in-missing',
113
+ commandRunPhaseCount: commandRunPhases.length,
114
+ commandRunPhases,
115
+ commandRunExecutedPhases: 0,
116
+ commandRunFailedPhases: 0,
117
+ commandRunTimedOutPhases: 0,
118
+ commandRunSkippedPhases: 0,
119
+ commandRunDefaultOffPhases: commandRunPhases.length,
120
+ commandRunOutputTruncatedPhases: 0,
121
+ dependencyInstallExecution: 'not-run-default-network-free',
122
+ repositoryCommandExecution: 'not-run-default-network-free'
123
+ };
124
+ }
125
+
126
+ function createCommandDryRunPhases(row, checkoutProofExecution, proof) {
127
+ const dryRun = proof.commandDryRun ?? {};
128
+ const phases = dryRun.phases ?? ['dependency-install', 'build', 'test'];
129
+ const readinessStatus = checkoutProofExecution === 'skipped' ? 'skipped-missing-checkout' : 'ready-local-checkout';
130
+ const executionStatus = checkoutProofExecution === 'skipped' ? 'skipped-missing-checkout' : 'opt-in-required';
131
+ return phases.map((phase) => ({
132
+ phase,
133
+ readinessStatus,
134
+ executionStatus,
135
+ defaultExecution: dryRun.defaultExecution ?? 'not-run-default-network-free',
136
+ optInRequired: executionStatus === 'opt-in-required',
137
+ commandKinds: commandKindsForDryRunPhase(phase),
138
+ commandCount: commandCountForDryRunPhase(row, phase),
139
+ networkAccess: dryRun.networkRequired === true ? 'required' : 'none',
140
+ sourceTextRead: dryRun.readsSourceText === true
141
+ }));
142
+ }
143
+
144
+ function commandKindsForDryRunPhase(phase) {
145
+ if (phase === 'dependency-install') return ['install'];
146
+ if (phase === 'build') return ['build'];
147
+ if (phase === 'test') return ['test'];
148
+ return [phase];
149
+ }
150
+
151
+ function commandCountForDryRunPhase(row, phase) {
152
+ if (phase === 'dependency-install') return row.packageManagerInstallCommands ?? 0;
153
+ if (phase === 'build') return row.packageManagerBuildCommands ?? 0;
154
+ if (phase === 'test') return row.packageManagerTestCommands ?? 0;
155
+ return 0;
156
+ }
157
+
158
+ function dependencyInstallProofStatus(row, execution) {
159
+ if (execution === 'skipped') return 'skipped-missing-checkout';
160
+ return (row.packageManagerLockFilesPresent ?? 0) > 0
161
+ ? 'lockfile-metadata-present'
162
+ : 'lockfile-metadata-missing';
163
+ }
164
+
165
+ export { createCheckoutEvidenceRows };
@@ -0,0 +1,273 @@
1
+ import assert from 'node:assert/strict';
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+ import { performance } from 'node:perf_hooks';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { collectExternalCheckoutProofs } from './real-repo-corpus-checkout-proof.mjs';
7
+ import { collectRealRepoCommandExecution } from './real-repo-corpus-command-execution.mjs';
8
+ import { createCheckoutEvidenceRows } from './real-repo-corpus-evidence.mjs';
9
+
10
+ const realRepoCorpusFixtureCandidates = [
11
+ {
12
+ mode: 'workspace',
13
+ url: new URL('../test/fixtures/js-ts-semantic-merge/corpus.json', import.meta.url)
14
+ },
15
+ {
16
+ mode: 'split-parent-checkout',
17
+ url: new URL('../../../../test/fixtures/js-ts-semantic-merge/corpus.json', import.meta.url)
18
+ }
19
+ ];
20
+
21
+ function measureRealRepoCorpus(options = {}) {
22
+ const start = performance.now();
23
+ const fixture = loadRealRepoCorpusFixture();
24
+ const corpus = fixture.corpus;
25
+ const manifest = corpus.realRepoCorpus ?? {};
26
+ const entries = manifest.entries ?? [];
27
+ const fixturesById = new Map((corpus.fixtures ?? []).map((fixture) => [fixture.id, fixture]));
28
+ const fixtureIds = new Set();
29
+ const mergeSurfaces = new Set();
30
+ const oracleFixtureIds = new Set();
31
+ const oracleSurfaces = new Set();
32
+ const oracleLanguages = new Set();
33
+ const oracleMatrixRows = new Set();
34
+ const gapStatuses = new Set();
35
+ const gapIds = new Set();
36
+ const packageManagers = new Set((manifest.localBehavior?.packageManagerMatrix ?? []).map((row) => row.manager));
37
+ const packageManagerCommands = (manifest.localBehavior?.packageManagerMatrix ?? [])
38
+ .reduce((sum, row) => sum + (row.commands?.length ?? 0), 0);
39
+ const realisticPatternFixtureIds = new Set(['react-tsx-child-additions-shell', 'vite-config-import-shape-addition']);
40
+ const realisticPatternOracleFixtureIds = new Set();
41
+ let sampleFiles = 0;
42
+ let maxBytesPerFile = 0;
43
+ let entriesWithOracleCases = 0;
44
+ let oracleCases = 0;
45
+ let oracleCaseFixturesPresent = 0;
46
+ let oracleAdmissionMatches = 0;
47
+ let oracleAutoMergeCandidates = 0;
48
+ let oracleBlocked = 0;
49
+ let oracleConflicts = 0;
50
+
51
+ for (const gap of manifest.broadSuiteGaps ?? []) {
52
+ gapIds.add(gap.id);
53
+ gapStatuses.add(gap.status);
54
+ }
55
+
56
+ for (const entry of entries) {
57
+ sampleFiles += entry.metrics?.sampleFiles ?? 0;
58
+ maxBytesPerFile = Math.max(maxBytesPerFile, entry.metrics?.maxBytesPerFile ?? 0);
59
+ for (const fixtureId of entry.fixtureIds ?? []) fixtureIds.add(fixtureId);
60
+ for (const surface of entry.metrics?.mergeSurfaces ?? []) mergeSurfaces.add(surface);
61
+ if ((entry.oracleCases ?? []).length > 0) entriesWithOracleCases += 1;
62
+ for (const oracleCase of entry.oracleCases ?? []) {
63
+ oracleCases += 1;
64
+ oracleFixtureIds.add(oracleCase.fixtureId);
65
+ oracleSurfaces.add(oracleCase.surface);
66
+ oracleLanguages.add(oracleCase.language);
67
+ for (const row of matrixRowsForOracleSurface(oracleCase.surface)) oracleMatrixRows.add(row);
68
+ if (realisticPatternFixtureIds.has(oracleCase.fixtureId)) realisticPatternOracleFixtureIds.add(oracleCase.fixtureId);
69
+ if (oracleCase.expectedAdmissionStatus === 'auto-merge-candidate') oracleAutoMergeCandidates += 1;
70
+ if (oracleCase.expectedAdmissionStatus === 'blocked') oracleBlocked += 1;
71
+ if (oracleCase.expectedAdmissionStatus === 'conflict') oracleConflicts += 1;
72
+ const fixture = fixturesById.get(oracleCase.fixtureId);
73
+ if (!fixture) continue;
74
+ oracleCaseFixturesPresent += 1;
75
+ if (fixtureExpectedAdmissionStatus(fixture) === oracleCase.expectedAdmissionStatus) oracleAdmissionMatches += 1;
76
+ }
77
+ }
78
+
79
+ const checkoutProof = collectExternalCheckoutProofs(manifest, entries);
80
+ const commandExecution = collectRealRepoCommandExecution(manifest, checkoutProof, options.realRepoCommandExecution ?? {});
81
+ const checkoutEvidenceRows = createCheckoutEvidenceRows(manifest, checkoutProof, commandExecution);
82
+ const metrics = {
83
+ realRepoCorpusFixtureMode: fixture.mode,
84
+ realRepoCorpusSchema: manifest.schema ?? null,
85
+ realRepoCorpusMode: manifest.mode ?? null,
86
+ realRepoCorpusEntries: entries.length,
87
+ realRepoCorpusFetchCommands: entries.filter((entry) => typeof entry.fetchCommand === 'string').length,
88
+ realRepoCorpusLinkedFixtures: fixtureIds.size,
89
+ realRepoCorpusMergeSurfaces: mergeSurfaces.size,
90
+ realRepoCorpusEntriesWithOracles: entriesWithOracleCases,
91
+ realRepoCorpusOracleCases: oracleCases,
92
+ realRepoCorpusOracleLinkedFixtures: oracleFixtureIds.size,
93
+ realRepoCorpusOracleCaseFixturesPresent: oracleCaseFixturesPresent,
94
+ realRepoCorpusOracleAdmissionMatches: oracleAdmissionMatches,
95
+ realRepoCorpusOracleAutoMergeCandidates: oracleAutoMergeCandidates,
96
+ realRepoCorpusOracleBlocked: oracleBlocked,
97
+ realRepoCorpusOracleConflicts: oracleConflicts,
98
+ realRepoCorpusOracleSurfaces: oracleSurfaces.size,
99
+ realRepoCorpusOracleLanguages: oracleLanguages.size,
100
+ realRepoCorpusOracleMatrixRows: oracleMatrixRows.size,
101
+ realRepoCorpusRealisticPatternOracleFixtures: realisticPatternOracleFixtureIds.size,
102
+ realRepoCorpusHasReactPatternEntry: entries.some((entry) => entry.id === 'react-component-patterns'),
103
+ realRepoCorpusOracleCoverageRatio: entries.length > 0 ? Number((entriesWithOracleCases / entries.length).toFixed(2)) : 0,
104
+ realRepoCorpusBroadSuiteGaps: gapIds.size,
105
+ realRepoCorpusBroadSuiteGapStatuses: gapStatuses.size,
106
+ realRepoCorpusBroadSuiteMissingGaps: [...(manifest.broadSuiteGaps ?? [])].filter((gap) => gap.status === 'missing').length,
107
+ realRepoCorpusBroadSuitePartialGaps: [...(manifest.broadSuiteGaps ?? [])].filter((gap) => gap.status === 'partial').length,
108
+ realRepoCorpusBroadSuiteManualGaps: [...(manifest.broadSuiteGaps ?? [])].filter((gap) => gap.status === 'manual').length,
109
+ realRepoCorpusPackageManagerMatrixEntries: packageManagers.size,
110
+ realRepoCorpusPackageManagerMatrixCommands: packageManagerCommands,
111
+ realRepoCorpusBudgetedSampleFiles: sampleFiles,
112
+ realRepoCorpusMaxBytesPerFile: maxBytesPerFile,
113
+ realRepoCorpusCommittedSourceBytes: manifest.localBehavior?.committedSourceBytes ?? null,
114
+ realRepoCorpusExternalRootPresent: checkoutProof.rootPresent,
115
+ realRepoCorpusLocalBehavior: checkoutProof.checkedOut > 0 ? 'external-checkout-present' : manifest.localBehavior?.missingCheckoutBehavior ?? 'unknown',
116
+ realRepoCorpusCheckoutRootMode: checkoutProof.rootMode,
117
+ realRepoCorpusCheckoutPresenceStatuses: new Set(checkoutEvidenceRows.map((row) => row.checkoutPresenceStatus)).size,
118
+ realRepoCorpusCheckoutProofReasons: new Set(checkoutEvidenceRows.map((row) => row.checkoutProofReason)).size,
119
+ realRepoCorpusCheckoutProofEntries: checkoutProof.rows.length,
120
+ realRepoCorpusCheckoutProofRows: checkoutProof.rows,
121
+ realRepoCorpusCheckoutEvidenceRows: checkoutEvidenceRows,
122
+ realRepoCorpusCheckoutCheckedOut: checkoutProof.checkedOut,
123
+ realRepoCorpusCheckoutSkipped: checkoutProof.skipped,
124
+ realRepoCorpusCheckoutProofExecuted: checkoutProof.proofExecuted,
125
+ realRepoCorpusCheckoutProofSkipped: checkoutProof.proofSkipped,
126
+ realRepoCorpusCheckoutNoProofMatch: checkoutProof.noProofMatch,
127
+ realRepoCorpusCheckoutEvidenceExecuted: checkoutEvidenceRows.filter((row) => row.checkoutProofExecution === 'executed').length,
128
+ realRepoCorpusCheckoutEvidenceSkipped: checkoutEvidenceRows.filter((row) => row.checkoutProofExecution === 'skipped').length,
129
+ realRepoCorpusCheckoutDirPresentRows: checkoutEvidenceRows.filter((row) => row.checkoutDirPresent === true).length,
130
+ realRepoCorpusCheckoutRootMissingRows: checkoutEvidenceRows.filter((row) => row.checkoutPresenceStatus === 'checkout-root-missing').length,
131
+ realRepoCorpusCheckoutRootUnconfiguredRows: checkoutEvidenceRows.filter((row) => row.checkoutPresenceStatus === 'checkout-root-unconfigured').length,
132
+ realRepoCorpusCheckoutDirMissingRows: checkoutEvidenceRows.filter((row) => row.checkoutPresenceStatus === 'checkout-dir-missing').length,
133
+ realRepoCorpusCheckoutDirNotDeclaredRows: checkoutEvidenceRows.filter((row) => row.checkoutPresenceStatus === 'checkout-dir-not-declared').length,
134
+ realRepoCorpusRepositoryCommandsRun: checkoutEvidenceRows.filter((row) => row.repositoryCommandExecution === 'executed').length,
135
+ realRepoCorpusDependencyInstallsRun: checkoutEvidenceRows.filter((row) => row.dependencyInstallExecution === 'executed').length,
136
+ realRepoCorpusCheckoutLockfileMetadataRows: checkoutEvidenceRows.filter((row) => row.packageManagerLockFilesPresent > 0).length,
137
+ realRepoCorpusCheckoutProofMatchedEntries: checkoutProof.proofMatchedEntries,
138
+ realRepoCorpusCheckoutProofMatchedFiles: checkoutProof.matchedFiles,
139
+ realRepoCorpusCheckoutProofMaxBytesPerFile: checkoutProof.maxBytesPerFile,
140
+ realRepoCorpusCheckoutProofStatuses: checkoutProof.statuses.size,
141
+ realRepoCorpusCheckoutIdentityExecuted: checkoutProof.identityExecuted,
142
+ realRepoCorpusCheckoutIdentitySkipped: checkoutProof.identitySkipped,
143
+ realRepoCorpusCheckoutIdentityMetadataPresent: checkoutProof.identityMetadataPresent,
144
+ realRepoCorpusCheckoutIdentityMatched: checkoutProof.identityMatched,
145
+ realRepoCorpusCheckoutIdentityRemoteMatched: checkoutProof.identityRemoteMatched,
146
+ realRepoCorpusCheckoutIdentityRefMatched: checkoutProof.identityRefMatched,
147
+ realRepoCorpusCheckoutGitDirectories: checkoutEvidenceRows.filter((row) => row.gitMetadataKind === 'git-directory').length,
148
+ realRepoCorpusCheckoutGitDirPointers: checkoutEvidenceRows.filter((row) => row.gitDirPointerPresent === true).length,
149
+ realRepoCorpusCheckoutGitConfigsPresent: checkoutEvidenceRows.filter((row) => row.gitConfigPresent === true).length,
150
+ realRepoCorpusCheckoutGitOriginUrlsPresent: checkoutEvidenceRows.filter((row) => row.gitRemoteOriginUrlPresent === true).length,
151
+ realRepoCorpusCommandReadinessRows: checkoutEvidenceRows.length,
152
+ realRepoCorpusDependencyInstallDefaultOffRows: checkoutEvidenceRows.filter((row) => row.dependencyInstallExecution === 'not-run-default-network-free').length,
153
+ realRepoCorpusRepositoryCommandDefaultOffRows: checkoutEvidenceRows.filter((row) => row.repositoryCommandExecution === 'not-run-default-network-free').length,
154
+ realRepoCorpusPackageManagerCommandMatrixRows: checkoutEvidenceRows.filter((row) => row.packageManagerCommandMatrixStatus === 'metadata-only').length,
155
+ realRepoCorpusCommandDryRunPhaseRows: checkoutEvidenceRows.reduce((sum, row) => sum + row.commandDryRunPhases.length, 0),
156
+ realRepoCorpusCommandDryRunPhaseKinds: new Set(checkoutEvidenceRows.flatMap((row) => row.commandDryRunPhases.map((phase) => phase.phase))).size,
157
+ realRepoCorpusCommandDryRunSkippedPhases: checkoutEvidenceRows.reduce((sum, row) => sum + row.commandDryRunSkippedPhases, 0),
158
+ realRepoCorpusCommandDryRunReadyPhases: checkoutEvidenceRows.reduce((sum, row) => sum + row.commandDryRunReadyPhases, 0),
159
+ realRepoCorpusCommandDryRunOptInRequiredPhases: checkoutEvidenceRows.reduce((sum, row) => sum + row.commandDryRunOptInRequiredPhases, 0),
160
+ realRepoCorpusCommandDryRunExecutedPhases: checkoutEvidenceRows.reduce((sum, row) => sum + row.commandDryRunExecutedPhases, 0),
161
+ realRepoCorpusCommandDryRunDefaultOffPhases: checkoutEvidenceRows.reduce((sum, row) => sum + row.commandDryRunDefaultOffPhases, 0),
162
+ realRepoCorpusCommandRunRows: commandExecution.commandRunRows,
163
+ realRepoCorpusCommandRunEnabledRows: commandExecution.commandRunEnabledRows,
164
+ realRepoCorpusCommandRunDefaultOffRows: commandExecution.commandRunDefaultOffRows,
165
+ realRepoCorpusCommandRunOptInRequiredRows: commandExecution.commandRunOptInRequiredRows,
166
+ realRepoCorpusCommandRunSkippedRows: commandExecution.commandRunSkippedRows,
167
+ realRepoCorpusCommandRunBlockedRows: commandExecution.commandRunBlockedRows,
168
+ realRepoCorpusCommandRunExecutedPhases: commandExecution.commandRunExecutedPhases,
169
+ realRepoCorpusCommandRunFailedPhases: commandExecution.commandRunFailedPhases,
170
+ realRepoCorpusCommandRunTimedOutPhases: commandExecution.commandRunTimedOutPhases,
171
+ realRepoCorpusCommandRunSkippedPhases: commandExecution.commandRunSkippedPhases,
172
+ realRepoCorpusCommandRunDefaultOffPhases: commandExecution.commandRunDefaultOffPhases,
173
+ realRepoCorpusCommandRunOutputTruncatedPhases: commandExecution.commandRunOutputTruncatedPhases,
174
+ realRepoCorpusDurationMs: Number((performance.now() - start).toFixed(2))
175
+ };
176
+ assert.equal(metrics.realRepoCorpusRealisticPatternOracleFixtures >= 2, true, 'realistic-pattern oracle fixture coverage');
177
+ assert.equal(metrics.realRepoCorpusHasReactPatternEntry, true, 'React manifest-only pattern entry');
178
+ assert.equal(metrics.realRepoCorpusPackageManagerMatrixEntries >= 3, true, 'package-manager matrix metadata');
179
+ assert.equal(oracleMatrixRows.has('module-export-import'), true, 'module/export/import matrix row covered');
180
+ assert.equal(oracleMatrixRows.has('parser-source-span-trivia'), true, 'parser/source-span/trivia matrix row covered');
181
+ assert.equal(oracleMatrixRows.has('jsx-tsx-element-prop'), true, 'JSX/TSX matrix row covered');
182
+ assert.equal(metrics.realRepoCorpusCheckoutProofEntries, entries.length, 'checkout proof row per real-repo entry');
183
+ assert.equal(
184
+ metrics.realRepoCorpusCheckoutSkipped + metrics.realRepoCorpusCheckoutCheckedOut,
185
+ entries.length,
186
+ 'checkout proof rows distinguish skipped and checked-out entries'
187
+ );
188
+ assert.equal(
189
+ metrics.realRepoCorpusCheckoutProofSkipped + metrics.realRepoCorpusCheckoutProofExecuted,
190
+ entries.length,
191
+ 'checkout proof rows distinguish skipped and executed proof rows'
192
+ );
193
+ assert.equal(metrics.realRepoCorpusCheckoutEvidenceRows.length, entries.length, 'checkout evidence row per real-repo entry');
194
+ assert.equal(
195
+ metrics.realRepoCorpusCheckoutEvidenceSkipped + metrics.realRepoCorpusCheckoutEvidenceExecuted,
196
+ entries.length,
197
+ 'checkout evidence rows distinguish skipped and executed proof rows'
198
+ );
199
+ assert.equal(metrics.realRepoCorpusCheckoutDirPresentRows, metrics.realRepoCorpusCheckoutProofExecuted, 'checkout dir presence rows match executed proof rows');
200
+ assert.equal(
201
+ metrics.realRepoCorpusCheckoutDirPresentRows +
202
+ metrics.realRepoCorpusCheckoutRootMissingRows +
203
+ metrics.realRepoCorpusCheckoutRootUnconfiguredRows +
204
+ metrics.realRepoCorpusCheckoutDirMissingRows +
205
+ metrics.realRepoCorpusCheckoutDirNotDeclaredRows,
206
+ entries.length,
207
+ 'checkout presence rows explain every real-repo entry'
208
+ );
209
+ if (!commandExecution.enabled) {
210
+ assert.equal(metrics.realRepoCorpusRepositoryCommandsRun, 0, 'default real-repo bench must not execute repository commands');
211
+ assert.equal(metrics.realRepoCorpusDependencyInstallDefaultOffRows, entries.length, 'default real-repo bench must keep dependency installs default-off');
212
+ assert.equal(metrics.realRepoCorpusRepositoryCommandDefaultOffRows, entries.length, 'default real-repo bench must keep repository commands default-off');
213
+ assert.equal(metrics.realRepoCorpusCommandDryRunExecutedPhases, 0, 'default real-repo bench must not execute command dry-run phases');
214
+ assert.equal(metrics.realRepoCorpusCommandRunExecutedPhases, 0, 'default real-repo bench must not execute command-run phases');
215
+ assert.equal(metrics.realRepoCorpusCommandRunDefaultOffRows, entries.length, 'default real-repo bench must keep command-run rows default-off');
216
+ }
217
+ return metrics;
218
+ }
219
+
220
+ function loadRealRepoCorpusFixture() {
221
+ for (const candidate of realRepoCorpusFixtureCandidates) {
222
+ if (!existsSync(candidate.url)) continue;
223
+ return {
224
+ mode: candidate.mode,
225
+ path: fileURLToPath(candidate.url),
226
+ corpus: JSON.parse(readFileSync(candidate.url, 'utf8'))
227
+ };
228
+ }
229
+ const searched = realRepoCorpusFixtureCandidates
230
+ .map((candidate) => `${candidate.mode}:${fileURLToPath(candidate.url)}`)
231
+ .join(', ');
232
+ throw new Error(`Unable to find JS/TS semantic merge corpus fixture. Searched ${searched}`);
233
+ }
234
+
235
+ function readRealRepoCorpusFixture() {
236
+ return loadRealRepoCorpusFixture().corpus;
237
+ }
238
+
239
+ function fixtureExpectedAdmissionStatus(fixture) {
240
+ if (fixture.expected?.admissionStatus) return fixture.expected.admissionStatus;
241
+ if (fixture.expected?.safeMergeStatus === 'merged') return 'auto-merge-candidate';
242
+ if (fixture.expected?.safeMergeStatus === 'rejected') return 'blocked';
243
+ return undefined;
244
+ }
245
+
246
+ function matrixRowsForOracleSurface(surface) {
247
+ if ([
248
+ 'imports',
249
+ 'type-only-imports',
250
+ 'value-import-dependencies',
251
+ 'import-specifier-order',
252
+ 'import-shape-additions',
253
+ 'new-import-declarations',
254
+ 'exports'
255
+ ].includes(surface)) return ['module-export-import'];
256
+ if ([
257
+ 'type-aliases',
258
+ 'type-interface-members',
259
+ 'overloads',
260
+ 'exported-types',
261
+ 'dependency-sensitive-edits'
262
+ ].includes(surface)) return ['type-public-api'];
263
+ if (surface.startsWith('tsx-jsx-') || surface === 'jsx-component-prop-contracts') return ['jsx-tsx-element-prop'];
264
+ if (surface === 'control-flow' || surface === 'async-components') return ['control-flow-effect'];
265
+ if (surface === 'comments-trivia' || surface === 'generated-source-map-boundary') return ['parser-source-span-trivia'];
266
+ return [];
267
+ }
268
+
269
+ if (process.argv[1] && fileURLToPath(import.meta.url) === resolve(process.argv[1])) {
270
+ console.log(JSON.stringify(measureRealRepoCorpus()));
271
+ }
272
+
273
+ export { loadRealRepoCorpusFixture, measureRealRepoCorpus, readRealRepoCorpusFixture };
package/bench/smoke.mjs CHANGED
@@ -1,18 +1,46 @@
1
- import { measureFrontierCompile } from './compile-suite.mjs';
2
- import { collectNativeImports } from './native-import-suite.mjs';
3
- import { measureNativeMatrices } from './native-matrix-suite.mjs';
4
- import { measureNativeTransformations } from './native-transform-suite.mjs';
5
- import { measureSourceChangeSuites } from './source-change-suite.mjs';
6
- import { measureUniversalFixtureSuite } from './universal-fixture-suite.mjs';
1
+ import assert from 'node:assert/strict';
2
+ import { existsSync } from 'node:fs';
3
+ import { measureRealRepoCorpus } from './real-repo-corpus-suite.mjs';
4
+
5
+ const splitWorkspaceMode = !existsSync(new URL('../src/index.js', import.meta.url)) &&
6
+ !existsSync(new URL('./compile-suite.mjs', import.meta.url));
7
+
8
+ if (splitWorkspaceMode) {
9
+ const realRepoCorpusMetrics = measureRealRepoCorpus();
10
+ assertRealRepoCorpusSmokeMetrics(realRepoCorpusMetrics);
11
+ console.log(JSON.stringify({
12
+ benchSmokeMode: 'real-repo-corpus-only-split-workspace',
13
+ ...realRepoCorpusMetrics
14
+ }));
15
+ } else {
16
+ const [
17
+ { measureFrontierCompile },
18
+ { collectNativeImports },
19
+ { measureNativeMatrices },
20
+ { measureNativeTransformations },
21
+ { measureSourceChangeSuites },
22
+ { measureUniversalFixtureSuite }
23
+ ] = await Promise.all([
24
+ import('./compile-suite.mjs'),
25
+ import('./native-import-suite.mjs'),
26
+ import('./native-matrix-suite.mjs'),
27
+ import('./native-transform-suite.mjs'),
28
+ import('./source-change-suite.mjs'),
29
+ import('./universal-fixture-suite.mjs')
30
+ ]);
7
31
 
8
32
  const compileMetrics = measureFrontierCompile();
9
33
  const importMetrics = await collectNativeImports();
10
34
  const matrixMetrics = measureNativeMatrices(importMetrics.nativeImportResults, importMetrics.adapters);
11
35
  const transformMetrics = measureNativeTransformations(importMetrics.nativeImportResults);
36
+ const realRepoCorpusMetrics = measureRealRepoCorpus();
12
37
  const sourceChangeMetrics = measureSourceChangeSuites();
13
38
  const universalFixtureMetrics = measureUniversalFixtureSuite(importMetrics.adapters);
14
39
 
40
+ assertRealRepoCorpusSmokeMetrics(realRepoCorpusMetrics);
41
+
15
42
  console.log(JSON.stringify({
43
+ benchSmokeMode: 'full-package',
16
44
  compiles: 250,
17
45
  bytes: compileMetrics.bytes,
18
46
  compileDurationMs: Number(compileMetrics.compileDurationMs.toFixed(2)),
@@ -134,5 +162,79 @@ console.log(JSON.stringify({
134
162
  universalFixtureLossCategories: universalFixtureMetrics.lossCategories,
135
163
  universalFixtureCandidateRecords: universalFixtureMetrics.candidateRecords,
136
164
  universalFixtureBestCandidateSortKey: universalFixtureMetrics.bestCandidateSortKey,
137
- universalFixtureDurationMs: Number(universalFixtureMetrics.durationMs.toFixed(2))
165
+ universalFixtureDurationMs: Number(universalFixtureMetrics.durationMs.toFixed(2)),
166
+ ...realRepoCorpusMetrics
138
167
  }));
168
+ }
169
+
170
+ function assertRealRepoCorpusSmokeMetrics(realRepoCorpusMetrics) {
171
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusRealisticPatternOracleFixtures >= 2, true, 'real-repo realistic-pattern oracle fixtures');
172
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusOracleMatrixRows >= 2, true, 'real-repo matrix row coverage');
173
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCheckoutProofEntries, realRepoCorpusMetrics.realRepoCorpusEntries, 'real-repo checkout proof rows');
174
+ assert.equal(
175
+ realRepoCorpusMetrics.realRepoCorpusCheckoutSkipped + realRepoCorpusMetrics.realRepoCorpusCheckoutCheckedOut,
176
+ realRepoCorpusMetrics.realRepoCorpusEntries,
177
+ 'real-repo checkout proof skipped/checked-out accounting'
178
+ );
179
+ assert.equal(
180
+ realRepoCorpusMetrics.realRepoCorpusCheckoutProofSkipped + realRepoCorpusMetrics.realRepoCorpusCheckoutProofExecuted,
181
+ realRepoCorpusMetrics.realRepoCorpusEntries,
182
+ 'real-repo checkout proof skipped/executed accounting'
183
+ );
184
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCheckoutEvidenceRows.length, realRepoCorpusMetrics.realRepoCorpusEntries, 'real-repo checkout evidence rows');
185
+ assert.equal(
186
+ realRepoCorpusMetrics.realRepoCorpusCheckoutEvidenceSkipped + realRepoCorpusMetrics.realRepoCorpusCheckoutEvidenceExecuted,
187
+ realRepoCorpusMetrics.realRepoCorpusEntries,
188
+ 'real-repo checkout evidence skipped/executed accounting'
189
+ );
190
+ assert.equal(
191
+ realRepoCorpusMetrics.realRepoCorpusCheckoutIdentitySkipped + realRepoCorpusMetrics.realRepoCorpusCheckoutIdentityExecuted,
192
+ realRepoCorpusMetrics.realRepoCorpusEntries,
193
+ 'real-repo checkout identity skipped/executed accounting'
194
+ );
195
+ assert.equal(Number.isInteger(realRepoCorpusMetrics.realRepoCorpusCheckoutGitDirectories), true, 'real-repo git directory proof metric');
196
+ assert.equal(Number.isInteger(realRepoCorpusMetrics.realRepoCorpusCheckoutGitDirPointers), true, 'real-repo gitdir pointer proof metric');
197
+ assert.equal(Number.isInteger(realRepoCorpusMetrics.realRepoCorpusCheckoutGitConfigsPresent), true, 'real-repo git config proof metric');
198
+ assert.equal(Number.isInteger(realRepoCorpusMetrics.realRepoCorpusCheckoutGitOriginUrlsPresent), true, 'real-repo git origin proof metric');
199
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusRepositoryCommandsRun, 0, 'real-repo default bench must not execute repository commands');
200
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusDependencyInstallsRun, 0, 'real-repo default bench must not execute dependency installs');
201
+ assert.equal(
202
+ realRepoCorpusMetrics.realRepoCorpusRepositoryCommandDefaultOffRows,
203
+ realRepoCorpusMetrics.realRepoCorpusEntries,
204
+ 'real-repo repository command default-off rows'
205
+ );
206
+ assert.equal(
207
+ realRepoCorpusMetrics.realRepoCorpusCommandDryRunPhaseRows,
208
+ realRepoCorpusMetrics.realRepoCorpusEntries * 3,
209
+ 'real-repo command dry-run phase rows'
210
+ );
211
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandDryRunPhaseKinds, 3, 'real-repo command dry-run phase kinds');
212
+ assert.equal(
213
+ realRepoCorpusMetrics.realRepoCorpusCommandDryRunSkippedPhases,
214
+ realRepoCorpusMetrics.realRepoCorpusCheckoutEvidenceSkipped * 3,
215
+ 'real-repo command dry-run skipped phase accounting'
216
+ );
217
+ assert.equal(
218
+ realRepoCorpusMetrics.realRepoCorpusCommandDryRunReadyPhases,
219
+ realRepoCorpusMetrics.realRepoCorpusCheckoutEvidenceExecuted * 3,
220
+ 'real-repo command dry-run ready phase accounting'
221
+ );
222
+ assert.equal(
223
+ realRepoCorpusMetrics.realRepoCorpusCommandDryRunOptInRequiredPhases,
224
+ realRepoCorpusMetrics.realRepoCorpusCheckoutEvidenceExecuted * 3,
225
+ 'real-repo command dry-run opt-in phase accounting'
226
+ );
227
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandDryRunExecutedPhases, 0, 'real-repo command dry-run executed phases');
228
+ assert.equal(
229
+ realRepoCorpusMetrics.realRepoCorpusCommandDryRunDefaultOffPhases,
230
+ realRepoCorpusMetrics.realRepoCorpusCommandDryRunPhaseRows,
231
+ 'real-repo command dry-run default-off phases'
232
+ );
233
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandRunRows, realRepoCorpusMetrics.realRepoCorpusEntries, 'real-repo command-run rows');
234
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandRunEnabledRows, 0, 'real-repo default command-run enabled rows');
235
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandRunDefaultOffRows, realRepoCorpusMetrics.realRepoCorpusEntries, 'real-repo default command-run rows');
236
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandRunExecutedPhases, 0, 'real-repo command-run executed phases');
237
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandRunFailedPhases, 0, 'real-repo command-run failed phases');
238
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandRunTimedOutPhases, 0, 'real-repo command-run timed-out phases');
239
+ assert.equal(realRepoCorpusMetrics.realRepoCorpusCommandRunOutputTruncatedPhases, 0, 'real-repo command-run truncated output phases');
240
+ }
@@ -39,14 +39,14 @@ import type { ProjectionTargetLossClass, ProjectionSourceProjectionCoverage, Pro
39
39
  import type { UniversalCapabilityLanguageRow, UniversalCapabilityMatrix, UniversalCapabilityMatrixOptions } from './universal-capability.js';
40
40
  import type { UniversalDialectRegistry, UniversalDialectRegistryInput, UniversalDialectRecordInput, UniversalExternRecordInput } from './universal-dialects.js';
41
41
  import type { NativeImportContractSource, NativeImportSourcePreservationRecordSummary, NativeImportSourcePreservationContract, NativeImportAdapterCoverageRecordSummary, NativeImportAdapterCoverageContract, NativeImportRegionSummary, NativeImportSourceMapSummary, NativeImportReadinessContract, NativeImportResultContract, NativeImportResultContractOptions } from './native-import-contracts.js';
42
- import type { NativeSourceTokenKind, NativeSourcePreservedToken, NativeSourcePreservedDirective, NativeSourcePreservation, CreateNativeSourcePreservationOptions } from './source-preservation.js';
42
+ import type { NativeSourceTokenKind, NativeSourcePreservedToken, NativeSourcePreservedDirective, NativeSourcePreservation, CreateNativeSourcePreservationOptions, ParserTriviaEvidenceInput } from './source-preservation.js';
43
43
  import type { SemanticImportOwnershipRegion, SemanticImportSidecarSymbol, SemanticImportRegionTaxonomySummary, SemanticImportPatchHint, SemanticImportSidecarImportEntry, SemanticImportSidecarSourcePreservationRecord, SemanticImportSidecarUniversalAstLayerSummary, SemanticImportSidecarProofSpecSummary, SemanticImportSidecarParadigmSemanticsSummary, SemanticImportSidecar, SemanticImportSidecarOptions } from './semantic-sidecar.js';
44
44
  import type { NativeSourceChangeKind, NativeSourceChangeProjectionEndpoint, NativeSourceChangeProjectionSourceMapLink, NativeSourceChangeProjectionMetadata, NativeSourceChangeProjectionSummary, NativeSourceChangeSymbol, NativeSourceChangeRegion, NativeSourceChangeSummary, DiffNativeSourceImportsOptions, DiffNativeSourcesOptions, NativeSourceChangeSet } from './native-diff.js';
45
45
  import type { SemanticSliceInput, CreateSemanticSliceOptions, SemanticSliceSourceMapLink, SemanticSliceSourceFile, SemanticSliceExpectedAssertion, SemanticSlice, TestSemanticSliceOptions, SemanticSliceTestAssertion, SemanticSliceTestResult } from './semantic-slice.js';
46
46
  import type { NativeImporterAdapterExactness, NativeImporterAdapterSemanticCoverage, NativeImporterAdapterCoverageSnapshot, NativeImporterAdapterCoverageObserved, NativeImporterAdapterCoverageCapabilityRow, NativeImporterAdapterCoverageCapabilityEvidence, NativeImporterAdapterCoverageSummary, NativeImporterAdapterCoverageInput } from './adapter-coverage.js';
47
47
  import type { JavaScriptNativeImporterAdapterOptions, TypeScriptCompilerNativeImporterAdapterOptions, PythonAstNativeImporterAdapterOptions, RustSynNativeImporterAdapterOptions, ClangAstNativeImporterAdapterOptions, GoAstNativeImporterAdapterOptions } from './import-adapter-options-native.js';
48
48
  import type { JavaAstNativeImporterAdapterOptions, KotlinPsiNativeImporterAdapterOptions, CSharpRoslynNativeImporterAdapterOptions, SwiftSyntaxNativeImporterAdapterOptions, TreeSitterNativeImporterAdapterOptions } from './import-adapter-options-platform.js';
49
- import type { NativeTargetProjectionAdapterCoverageInput, NativeTargetProjectionAdapterSummary, NativeTargetProjectionAdapterInput, NativeTargetProjectionAdapterResult, NativeTargetProjectionAdapter, NativeTargetProjectionAdapterResolverInput, NativeTargetProjectionResult } from './target-adapters.js';
49
+ import type { NativeSourceMapInput, NativeTargetProjectionAdapterCoverageInput, NativeTargetProjectionAdapterSummary, NativeTargetProjectionAdapterInput, NativeTargetProjectionAdapterResult, NativeTargetProjectionAdapter, NativeTargetProjectionAdapterResolverInput, NativeTargetProjectionResult } from './target-adapters.js';
50
50
  import type { NativeProjectSourceInput, ImportNativeProjectOptions, NativeProjectImportResult, NativeSourceProjectionMode, ProjectNativeImportToSourceOptions, NativeSourceProjectionDeclaration, NativeSourceProjectionResult, NativeSourceCompileOutputMode, CompileNativeSourceOptions, NativeSourceCompileResult } from './native-project.js';
51
51
  import type { NativeImportRoundtripReadinessStatus, NativeImportRoundtripReadinessOptions, NativeImportRoundtripReadinessClassification } from './roundtrip.js';
52
52
 
@@ -70,6 +70,7 @@ export interface ImportNativeSourceOptions {
70
70
  readonly sourcePath?: string;
71
71
  readonly sourceHash?: string;
72
72
  readonly sourceText?: string;
73
+ readonly parserTriviaEvidence?: ParserTriviaEvidenceInput;
73
74
  readonly symbol?: string;
74
75
  readonly name?: string;
75
76
  readonly nativeAst?: NativeAstRecord;
@@ -103,7 +104,7 @@ export interface ImportNativeSourceOptions {
103
104
  readonly patchHints?: readonly SemanticImportPatchHint[];
104
105
  readonly semanticPatchHints?: readonly SemanticImportPatchHint[];
105
106
  readonly sourceMapId?: string;
106
- readonly sourceMaps?: readonly SourceMapRecord[];
107
+ readonly sourceMaps?: readonly NativeSourceMapInput[];
107
108
  readonly universalAstId?: string;
108
109
  readonly universalAstMetadata?: Record<string, unknown>;
109
110
  readonly universalDialectRegistry?: UniversalDialectRegistryInput | UniversalDialectRegistry;
@@ -63,6 +63,10 @@ export interface JavaScriptNativeImporterAdapterOptions {
63
63
  readonly babelParser?: { readonly parse: (sourceText: string, options: Record<string, unknown>) => unknown };
64
64
  readonly parserOptions?: Record<string, unknown> | ((input: NativeImporterAdapterParseInput) => Record<string, unknown>);
65
65
  readonly maxNodes?: number;
66
+ readonly includeTokens?: boolean;
67
+ readonly includeTrivia?: boolean;
68
+ readonly maxTokens?: number;
69
+ readonly maxTrivia?: number;
66
70
  }
67
71
 
68
72
  export interface TypeScriptCompilerNativeImporterAdapterOptions {
@@ -79,12 +83,29 @@ export interface TypeScriptCompilerNativeImporterAdapterOptions {
79
83
  readonly program?: { readonly getTypeChecker?: () => unknown } | unknown;
80
84
  readonly typeChecker?: unknown;
81
85
  readonly checker?: unknown;
86
+ readonly computedEnumRuntimeValueProofs?: readonly unknown[] | Record<string, unknown>;
87
+ readonly computedEnumRuntimeValueProof?: unknown;
88
+ readonly computedEnumRuntimeValueTraces?: readonly unknown[] | Record<string, unknown>;
89
+ readonly computedEnumRuntimeValueProofProvider?: (input: {
90
+ readonly sourcePath?: string;
91
+ readonly sourceHash?: string;
92
+ readonly enumName?: string;
93
+ readonly enumRuntimeShapeHash?: string;
94
+ readonly enumComputedMemberCount?: number;
95
+ readonly enumMembers?: readonly unknown[];
96
+ readonly computedMembers?: readonly unknown[];
97
+ readonly proofKind?: string;
98
+ }) => unknown;
99
+ readonly computedEnumRuntimeValueTraceProvider?: TypeScriptCompilerNativeImporterAdapterOptions['computedEnumRuntimeValueProofProvider'];
82
100
  readonly sourceFile?: unknown;
83
101
  readonly createSourceFile?: (input: NativeImporterAdapterParseInput, typescript?: unknown) => unknown;
84
102
  readonly scriptTarget?: unknown;
85
103
  readonly scriptKind?: unknown;
86
104
  readonly maxNodes?: number;
87
105
  readonly includeTokens?: boolean;
106
+ readonly includeTrivia?: boolean;
107
+ readonly maxTokens?: number;
108
+ readonly maxTrivia?: number;
88
109
  }
89
110
 
90
111
  export interface PythonAstNativeImporterAdapterOptions {