@lzehrung/codegraph 2.1.1 → 2.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 (494) hide show
  1. package/README.md +2 -2
  2. package/codegraph-skill/codegraph/SKILL.md +25 -7
  3. package/dist/agent/artifact.d.ts.map +1 -1
  4. package/dist/agent/artifact.js +105 -14
  5. package/dist/agent/artifact.js.map +1 -1
  6. package/dist/agent/explain.d.ts +3 -0
  7. package/dist/agent/explain.d.ts.map +1 -1
  8. package/dist/agent/explain.js +8 -0
  9. package/dist/agent/explain.js.map +1 -1
  10. package/dist/agent/explore.d.ts.map +1 -1
  11. package/dist/agent/explore.js +8 -1
  12. package/dist/agent/explore.js.map +1 -1
  13. package/dist/agent/handles.d.ts.map +1 -1
  14. package/dist/agent/handles.js +2 -8
  15. package/dist/agent/handles.js.map +1 -1
  16. package/dist/agent/orient.js +2 -16
  17. package/dist/agent/orient.js.map +1 -1
  18. package/dist/agent/packet.d.ts.map +1 -1
  19. package/dist/agent/packet.js +5 -12
  20. package/dist/agent/packet.js.map +1 -1
  21. package/dist/agent/query-index/content.d.ts +1 -1
  22. package/dist/agent/query-index/content.js +4 -4
  23. package/dist/agent/query-index/content.js.map +1 -1
  24. package/dist/agent/query-index/store.d.ts +5 -4
  25. package/dist/agent/query-index/store.d.ts.map +1 -1
  26. package/dist/agent/query-index/store.js +56 -18
  27. package/dist/agent/query-index/store.js.map +1 -1
  28. package/dist/agent/query-index/update.d.ts.map +1 -1
  29. package/dist/agent/query-index/update.js +24 -9
  30. package/dist/agent/query-index/update.js.map +1 -1
  31. package/dist/agent/renamePreview.d.ts.map +1 -1
  32. package/dist/agent/renamePreview.js +51 -2
  33. package/dist/agent/renamePreview.js.map +1 -1
  34. package/dist/agent/search.d.ts +3 -1
  35. package/dist/agent/search.d.ts.map +1 -1
  36. package/dist/agent/search.js +64 -18
  37. package/dist/agent/search.js.map +1 -1
  38. package/dist/agent/session.d.ts.map +1 -1
  39. package/dist/agent/session.js +4 -4
  40. package/dist/agent/session.js.map +1 -1
  41. package/dist/agent-tools.js +6 -6
  42. package/dist/agent-tools.js.map +1 -1
  43. package/dist/bin/cli.js +9242 -6344
  44. package/dist/bin/queryIndexWorker.js +437 -86
  45. package/dist/bin/rawQueryWorker.js +26 -2
  46. package/dist/chunking/chunkSplit.js +0 -15
  47. package/dist/chunking/chunkSplit.js.map +1 -1
  48. package/dist/cli/callHierarchy.d.ts.map +1 -1
  49. package/dist/cli/callHierarchy.js +9 -2
  50. package/dist/cli/callHierarchy.js.map +1 -1
  51. package/dist/cli/commandCatalog.d.ts.map +1 -1
  52. package/dist/cli/commandCatalog.js +1 -0
  53. package/dist/cli/commandCatalog.js.map +1 -1
  54. package/dist/cli/commandTable.d.ts.map +1 -1
  55. package/dist/cli/commandTable.js +18 -1
  56. package/dist/cli/commandTable.js.map +1 -1
  57. package/dist/cli/compileCache.d.ts +5 -0
  58. package/dist/cli/compileCache.d.ts.map +1 -1
  59. package/dist/cli/compileCache.js +18 -0
  60. package/dist/cli/compileCache.js.map +1 -1
  61. package/dist/cli/context.d.ts.map +1 -1
  62. package/dist/cli/context.js +0 -1
  63. package/dist/cli/context.js.map +1 -1
  64. package/dist/cli/graph.d.ts.map +1 -1
  65. package/dist/cli/graph.js +52 -16
  66. package/dist/cli/graph.js.map +1 -1
  67. package/dist/cli/grep.d.ts +1 -1
  68. package/dist/cli/grep.d.ts.map +1 -1
  69. package/dist/cli/grep.js +14 -4
  70. package/dist/cli/grep.js.map +1 -1
  71. package/dist/cli/help.d.ts +2 -1
  72. package/dist/cli/help.d.ts.map +1 -1
  73. package/dist/cli/help.js +23 -2
  74. package/dist/cli/help.js.map +1 -1
  75. package/dist/cli/indexPolicy.d.ts.map +1 -1
  76. package/dist/cli/indexPolicy.js +1 -0
  77. package/dist/cli/indexPolicy.js.map +1 -1
  78. package/dist/cli/inspect.d.ts.map +1 -1
  79. package/dist/cli/inspect.js +5 -2
  80. package/dist/cli/inspect.js.map +1 -1
  81. package/dist/cli/install.js +1 -1
  82. package/dist/cli/install.js.map +1 -1
  83. package/dist/cli/options.d.ts +1 -1
  84. package/dist/cli/options.d.ts.map +1 -1
  85. package/dist/cli/options.js +54 -5
  86. package/dist/cli/options.js.map +1 -1
  87. package/dist/cli/renamePreview.d.ts.map +1 -1
  88. package/dist/cli/renamePreview.js +7 -1
  89. package/dist/cli/renamePreview.js.map +1 -1
  90. package/dist/cli/rootPolicy.d.ts.map +1 -1
  91. package/dist/cli/rootPolicy.js +36 -3
  92. package/dist/cli/rootPolicy.js.map +1 -1
  93. package/dist/cli/server.d.ts +59 -0
  94. package/dist/cli/server.d.ts.map +1 -0
  95. package/dist/cli/server.js +906 -0
  96. package/dist/cli/server.js.map +1 -0
  97. package/dist/cli/skill.js +1 -1
  98. package/dist/cli/skill.js.map +1 -1
  99. package/dist/cli/sql.js +1 -1
  100. package/dist/cli/symbols.d.ts.map +1 -1
  101. package/dist/cli/symbols.js +4 -2
  102. package/dist/cli/symbols.js.map +1 -1
  103. package/dist/cli.d.ts +1 -1
  104. package/dist/cli.d.ts.map +1 -1
  105. package/dist/cli.js +37 -16
  106. package/dist/cli.js.map +1 -1
  107. package/dist/documentLinks/check.d.ts.map +1 -1
  108. package/dist/documentLinks/check.js +20 -9
  109. package/dist/documentLinks/check.js.map +1 -1
  110. package/dist/documentLinks.d.ts.map +1 -1
  111. package/dist/documentLinks.js +0 -1
  112. package/dist/documentLinks.js.map +1 -1
  113. package/dist/drift/snapshot.js +1 -1
  114. package/dist/drift/snapshot.js.map +1 -1
  115. package/dist/duplicates/scoring.d.ts.map +1 -1
  116. package/dist/duplicates/scoring.js.map +1 -1
  117. package/dist/duplicates/types.d.ts +2 -0
  118. package/dist/duplicates/types.d.ts.map +1 -1
  119. package/dist/duplicates/unitCache.d.ts.map +1 -1
  120. package/dist/duplicates/unitCache.js +1 -1
  121. package/dist/duplicates/unitCache.js.map +1 -1
  122. package/dist/duplicates/units.d.ts.map +1 -1
  123. package/dist/duplicates/units.js +8 -5
  124. package/dist/duplicates/units.js.map +1 -1
  125. package/dist/duplicates.d.ts.map +1 -1
  126. package/dist/duplicates.js +59 -6
  127. package/dist/duplicates.js.map +1 -1
  128. package/dist/graph-edge-collector.d.ts +0 -2
  129. package/dist/graph-edge-collector.d.ts.map +1 -1
  130. package/dist/graph-edge-collector.js +2 -4
  131. package/dist/graph-edge-collector.js.map +1 -1
  132. package/dist/graphs/edgeResolution.d.ts.map +1 -1
  133. package/dist/graphs/specifiers.d.ts +1 -1
  134. package/dist/graphs/specifiers.d.ts.map +1 -1
  135. package/dist/graphs/specifiers.js +1 -1
  136. package/dist/graphs/specifiers.js.map +1 -1
  137. package/dist/graphs/symbol-graph-detailed.d.ts +10 -1
  138. package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
  139. package/dist/graphs/symbol-graph-detailed.js +18 -5
  140. package/dist/graphs/symbol-graph-detailed.js.map +1 -1
  141. package/dist/impact/analyzer.d.ts.map +1 -1
  142. package/dist/impact/analyzer.js +4 -1
  143. package/dist/impact/analyzer.js.map +1 -1
  144. package/dist/impact/budgets.d.ts.map +1 -1
  145. package/dist/impact/budgets.js +5 -3
  146. package/dist/impact/budgets.js.map +1 -1
  147. package/dist/impact/callCompatibility.d.ts +8 -1
  148. package/dist/impact/callCompatibility.d.ts.map +1 -1
  149. package/dist/impact/callCompatibility.js +55 -17
  150. package/dist/impact/callCompatibility.js.map +1 -1
  151. package/dist/impact/context.d.ts.map +1 -1
  152. package/dist/impact/context.js +4 -1
  153. package/dist/impact/context.js.map +1 -1
  154. package/dist/impact/direct.d.ts +1 -1
  155. package/dist/impact/direct.d.ts.map +1 -1
  156. package/dist/impact/parse.d.ts.map +1 -1
  157. package/dist/impact/parse.js +10 -1
  158. package/dist/impact/parse.js.map +1 -1
  159. package/dist/impact/report-suggestions.d.ts.map +1 -1
  160. package/dist/impact/report-suggestions.js +17 -11
  161. package/dist/impact/report-suggestions.js.map +1 -1
  162. package/dist/impact/report.d.ts.map +1 -1
  163. package/dist/impact/report.js +13 -2
  164. package/dist/impact/report.js.map +1 -1
  165. package/dist/impact/reportCompact.d.ts.map +1 -1
  166. package/dist/impact/reportCompact.js +1 -0
  167. package/dist/impact/reportCompact.js.map +1 -1
  168. package/dist/impact/reportFull.d.ts.map +1 -1
  169. package/dist/impact/reportFull.js +1 -0
  170. package/dist/impact/reportFull.js.map +1 -1
  171. package/dist/impact/reportParts.d.ts +9 -0
  172. package/dist/impact/reportParts.d.ts.map +1 -1
  173. package/dist/impact/severity.d.ts +3 -2
  174. package/dist/impact/severity.d.ts.map +1 -1
  175. package/dist/impact/severity.js +16 -5
  176. package/dist/impact/severity.js.map +1 -1
  177. package/dist/impact/streaming.d.ts.map +1 -1
  178. package/dist/impact/streaming.js +5 -5
  179. package/dist/impact/streaming.js.map +1 -1
  180. package/dist/impact/transitive.d.ts.map +1 -1
  181. package/dist/impact/transitive.js +13 -5
  182. package/dist/impact/transitive.js.map +1 -1
  183. package/dist/impact/types.d.ts +14 -0
  184. package/dist/impact/types.d.ts.map +1 -1
  185. package/dist/impact/types.js.map +1 -1
  186. package/dist/index.d.ts +1 -1
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js.map +1 -1
  189. package/dist/indexer/build-cache/manifest.d.ts +5 -3
  190. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  191. package/dist/indexer/build-cache/manifest.js +122 -15
  192. package/dist/indexer/build-cache/manifest.js.map +1 -1
  193. package/dist/indexer/build-cache/module-cache.d.ts +1 -0
  194. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  195. package/dist/indexer/build-cache/module-cache.js +7 -1
  196. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  197. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  198. package/dist/indexer/build-cache/options.js +0 -2
  199. package/dist/indexer/build-cache/options.js.map +1 -1
  200. package/dist/indexer/build-cache/project-snapshot.d.ts +15 -11
  201. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  202. package/dist/indexer/build-cache/project-snapshot.js +167 -79
  203. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  204. package/dist/indexer/build-cache/resolver-environment.d.ts +2 -2
  205. package/dist/indexer/build-cache/resolver-environment.d.ts.map +1 -1
  206. package/dist/indexer/build-cache/resolver-environment.js +33 -6
  207. package/dist/indexer/build-cache/resolver-environment.js.map +1 -1
  208. package/dist/indexer/build-cache.d.ts +2 -2
  209. package/dist/indexer/build-cache.d.ts.map +1 -1
  210. package/dist/indexer/build-cache.js +2 -2
  211. package/dist/indexer/build-cache.js.map +1 -1
  212. package/dist/indexer/build-index.d.ts.map +1 -1
  213. package/dist/indexer/build-index.js +164 -84
  214. package/dist/indexer/build-index.js.map +1 -1
  215. package/dist/indexer/build-manifest.d.ts.map +1 -1
  216. package/dist/indexer/build-manifest.js +3 -0
  217. package/dist/indexer/build-manifest.js.map +1 -1
  218. package/dist/indexer/build-workers.d.ts +30 -3
  219. package/dist/indexer/build-workers.d.ts.map +1 -1
  220. package/dist/indexer/build-workers.js +111 -45
  221. package/dist/indexer/build-workers.js.map +1 -1
  222. package/dist/indexer/call-hierarchy.d.ts.map +1 -1
  223. package/dist/indexer/import-types.d.ts +8 -0
  224. package/dist/indexer/import-types.d.ts.map +1 -1
  225. package/dist/indexer/imports/python.d.ts.map +1 -1
  226. package/dist/indexer/imports/python.js +13 -8
  227. package/dist/indexer/imports/python.js.map +1 -1
  228. package/dist/indexer/imports.d.ts +0 -3
  229. package/dist/indexer/imports.d.ts.map +1 -1
  230. package/dist/indexer/imports.js +1 -1
  231. package/dist/indexer/imports.js.map +1 -1
  232. package/dist/indexer/incremental-plan.d.ts +2 -1
  233. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  234. package/dist/indexer/incremental-plan.js +7 -4
  235. package/dist/indexer/incremental-plan.js.map +1 -1
  236. package/dist/indexer/locals-and-exports.d.ts +2 -2
  237. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  238. package/dist/indexer/locals-and-exports.js +27 -3
  239. package/dist/indexer/locals-and-exports.js.map +1 -1
  240. package/dist/indexer/navigation-local.d.ts +2 -2
  241. package/dist/indexer/navigation-local.d.ts.map +1 -1
  242. package/dist/indexer/navigation-local.js +2 -2
  243. package/dist/indexer/navigation-local.js.map +1 -1
  244. package/dist/indexer/navigation-references.d.ts +1 -2
  245. package/dist/indexer/navigation-references.d.ts.map +1 -1
  246. package/dist/indexer/navigation-references.js +8 -2
  247. package/dist/indexer/navigation-references.js.map +1 -1
  248. package/dist/indexer/navigation.d.ts.map +1 -1
  249. package/dist/indexer/navigation.js +12 -4
  250. package/dist/indexer/navigation.js.map +1 -1
  251. package/dist/indexer/parse-context.d.ts +2 -5
  252. package/dist/indexer/parse-context.d.ts.map +1 -1
  253. package/dist/indexer/parse-context.js +34 -8
  254. package/dist/indexer/parse-context.js.map +1 -1
  255. package/dist/indexer/scope.d.ts +2 -2
  256. package/dist/indexer/scope.d.ts.map +1 -1
  257. package/dist/indexer/scope.js +1 -1
  258. package/dist/indexer/scope.js.map +1 -1
  259. package/dist/indexer/types.d.ts +5 -1
  260. package/dist/indexer/types.d.ts.map +1 -1
  261. package/dist/indexer.d.ts +3 -6
  262. package/dist/indexer.d.ts.map +1 -1
  263. package/dist/indexer.js +5 -8
  264. package/dist/indexer.js.map +1 -1
  265. package/dist/installer/locks.d.ts.map +1 -1
  266. package/dist/installer/locks.js +1 -3
  267. package/dist/installer/locks.js.map +1 -1
  268. package/dist/installer/registry.d.ts.map +1 -1
  269. package/dist/installer/registry.js +63 -32
  270. package/dist/installer/registry.js.map +1 -1
  271. package/dist/languages/definitions/c.d.ts.map +1 -1
  272. package/dist/languages/definitions/c.js +0 -1
  273. package/dist/languages/definitions/c.js.map +1 -1
  274. package/dist/languages/definitions/cFamily.d.ts +0 -1
  275. package/dist/languages/definitions/cFamily.d.ts.map +1 -1
  276. package/dist/languages/definitions/cFamily.js +0 -2
  277. package/dist/languages/definitions/cFamily.js.map +1 -1
  278. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  279. package/dist/languages/definitions/cpp.js +0 -1
  280. package/dist/languages/definitions/cpp.js.map +1 -1
  281. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  282. package/dist/languages/definitions/csharp.js +0 -2
  283. package/dist/languages/definitions/csharp.js.map +1 -1
  284. package/dist/languages/definitions/css.d.ts.map +1 -1
  285. package/dist/languages/definitions/css.js +0 -2
  286. package/dist/languages/definitions/css.js.map +1 -1
  287. package/dist/languages/definitions/go.d.ts.map +1 -1
  288. package/dist/languages/definitions/go.js +0 -2
  289. package/dist/languages/definitions/go.js.map +1 -1
  290. package/dist/languages/definitions/html.d.ts.map +1 -1
  291. package/dist/languages/definitions/html.js +0 -2
  292. package/dist/languages/definitions/html.js.map +1 -1
  293. package/dist/languages/definitions/htmlStub.d.ts.map +1 -1
  294. package/dist/languages/definitions/htmlStub.js +0 -2
  295. package/dist/languages/definitions/htmlStub.js.map +1 -1
  296. package/dist/languages/definitions/java.d.ts.map +1 -1
  297. package/dist/languages/definitions/java.js +0 -2
  298. package/dist/languages/definitions/java.js.map +1 -1
  299. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  300. package/dist/languages/definitions/javascript.js +0 -2
  301. package/dist/languages/definitions/javascript.js.map +1 -1
  302. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  303. package/dist/languages/definitions/kotlin.js +0 -2
  304. package/dist/languages/definitions/kotlin.js.map +1 -1
  305. package/dist/languages/definitions/less.d.ts.map +1 -1
  306. package/dist/languages/definitions/less.js +0 -2
  307. package/dist/languages/definitions/less.js.map +1 -1
  308. package/dist/languages/definitions/php.d.ts.map +1 -1
  309. package/dist/languages/definitions/php.js +0 -2
  310. package/dist/languages/definitions/php.js.map +1 -1
  311. package/dist/languages/definitions/python.d.ts.map +1 -1
  312. package/dist/languages/definitions/python.js +0 -2
  313. package/dist/languages/definitions/python.js.map +1 -1
  314. package/dist/languages/definitions/ruby.d.ts.map +1 -1
  315. package/dist/languages/definitions/ruby.js +0 -2
  316. package/dist/languages/definitions/ruby.js.map +1 -1
  317. package/dist/languages/definitions/rust.d.ts.map +1 -1
  318. package/dist/languages/definitions/rust.js +0 -2
  319. package/dist/languages/definitions/rust.js.map +1 -1
  320. package/dist/languages/definitions/scss.d.ts.map +1 -1
  321. package/dist/languages/definitions/scss.js +0 -2
  322. package/dist/languages/definitions/scss.js.map +1 -1
  323. package/dist/languages/definitions/sql.d.ts.map +1 -1
  324. package/dist/languages/definitions/sql.js +0 -2
  325. package/dist/languages/definitions/sql.js.map +1 -1
  326. package/dist/languages/definitions/svelte.d.ts.map +1 -1
  327. package/dist/languages/definitions/svelte.js +0 -2
  328. package/dist/languages/definitions/svelte.js.map +1 -1
  329. package/dist/languages/definitions/swift.d.ts.map +1 -1
  330. package/dist/languages/definitions/swift.js +0 -2
  331. package/dist/languages/definitions/swift.js.map +1 -1
  332. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  333. package/dist/languages/definitions/typescript.js +0 -3
  334. package/dist/languages/definitions/typescript.js.map +1 -1
  335. package/dist/languages/definitions/vue.d.ts.map +1 -1
  336. package/dist/languages/definitions/vue.js +0 -2
  337. package/dist/languages/definitions/vue.js.map +1 -1
  338. package/dist/languages/definitions/zig.d.ts.map +1 -1
  339. package/dist/languages/definitions/zig.js +0 -2
  340. package/dist/languages/definitions/zig.js.map +1 -1
  341. package/dist/languages/filePrep.d.ts +0 -2
  342. package/dist/languages/filePrep.d.ts.map +1 -1
  343. package/dist/languages/filePrep.js +0 -1
  344. package/dist/languages/filePrep.js.map +1 -1
  345. package/dist/languages/types.d.ts +19 -5
  346. package/dist/languages/types.d.ts.map +1 -1
  347. package/dist/languages.d.ts +1 -3
  348. package/dist/languages.d.ts.map +1 -1
  349. package/dist/languages.js +0 -7
  350. package/dist/languages.js.map +1 -1
  351. package/dist/lifecycle/manifest.d.ts.map +1 -1
  352. package/dist/lifecycle/manifest.js +21 -4
  353. package/dist/lifecycle/manifest.js.map +1 -1
  354. package/dist/mcp/handlers.d.ts +275 -0
  355. package/dist/mcp/handlers.d.ts.map +1 -0
  356. package/dist/mcp/handlers.js +657 -0
  357. package/dist/mcp/handlers.js.map +1 -0
  358. package/dist/mcp/httpTransport.d.ts +14 -0
  359. package/dist/mcp/httpTransport.d.ts.map +1 -0
  360. package/dist/mcp/httpTransport.js +185 -0
  361. package/dist/mcp/httpTransport.js.map +1 -0
  362. package/dist/mcp/legacySessions.d.ts +38 -0
  363. package/dist/mcp/legacySessions.d.ts.map +1 -0
  364. package/dist/mcp/legacySessions.js +264 -0
  365. package/dist/mcp/legacySessions.js.map +1 -0
  366. package/dist/mcp/lifecycleHealth.d.ts +12 -0
  367. package/dist/mcp/lifecycleHealth.d.ts.map +1 -0
  368. package/dist/mcp/lifecycleHealth.js +37 -0
  369. package/dist/mcp/lifecycleHealth.js.map +1 -0
  370. package/dist/mcp/protocol.d.ts +35 -0
  371. package/dist/mcp/protocol.d.ts.map +1 -0
  372. package/dist/mcp/protocol.js +577 -0
  373. package/dist/mcp/protocol.js.map +1 -0
  374. package/dist/mcp/server.d.ts +9 -291
  375. package/dist/mcp/server.d.ts.map +1 -1
  376. package/dist/mcp/server.js +13 -1517
  377. package/dist/mcp/server.js.map +1 -1
  378. package/dist/mcp/tools.d.ts.map +1 -1
  379. package/dist/mcp/tools.js +8 -1
  380. package/dist/mcp/tools.js.map +1 -1
  381. package/dist/native/bindingLoader.d.ts +27 -0
  382. package/dist/native/bindingLoader.d.ts.map +1 -1
  383. package/dist/native/bindingLoader.js +18 -1
  384. package/dist/native/bindingLoader.js.map +1 -1
  385. package/dist/native/contracts.d.ts +59 -12
  386. package/dist/native/contracts.d.ts.map +1 -1
  387. package/dist/native/execution.d.ts +10 -1
  388. package/dist/native/execution.d.ts.map +1 -1
  389. package/dist/native/execution.js +59 -3
  390. package/dist/native/execution.js.map +1 -1
  391. package/dist/native/projectedTree.d.ts +20 -5
  392. package/dist/native/projectedTree.d.ts.map +1 -1
  393. package/dist/native/projectedTree.js +100 -48
  394. package/dist/native/projectedTree.js.map +1 -1
  395. package/dist/native/runtime.d.ts +47 -1
  396. package/dist/native/runtime.d.ts.map +1 -1
  397. package/dist/native/runtime.js +151 -8
  398. package/dist/native/runtime.js.map +1 -1
  399. package/dist/native/runtimeCache.d.ts +92 -0
  400. package/dist/native/runtimeCache.d.ts.map +1 -1
  401. package/dist/native/runtimeCache.js +443 -13
  402. package/dist/native/runtimeCache.js.map +1 -1
  403. package/dist/native/treeShape.d.ts +21 -0
  404. package/dist/native/treeShape.d.ts.map +1 -0
  405. package/dist/native/treeShape.js +28 -0
  406. package/dist/native/treeShape.js.map +1 -0
  407. package/dist/native/treeSitterNative.d.ts +3 -3
  408. package/dist/native/treeSitterNative.d.ts.map +1 -1
  409. package/dist/native/treeSitterNative.js +2 -2
  410. package/dist/native/treeSitterNative.js.map +1 -1
  411. package/dist/presets.d.ts +7 -1
  412. package/dist/presets.d.ts.map +1 -1
  413. package/dist/presets.js +4 -0
  414. package/dist/presets.js.map +1 -1
  415. package/dist/review/candidates.d.ts.map +1 -1
  416. package/dist/review/candidates.js +4 -1
  417. package/dist/review/candidates.js.map +1 -1
  418. package/dist/review/deleted.js +2 -2
  419. package/dist/review/deleted.js.map +1 -1
  420. package/dist/review/summaries.d.ts +5 -0
  421. package/dist/review/summaries.d.ts.map +1 -1
  422. package/dist/review/summaries.js +19 -11
  423. package/dist/review/summaries.js.map +1 -1
  424. package/dist/review/types.d.ts +3 -1
  425. package/dist/review/types.d.ts.map +1 -1
  426. package/dist/review/types.js +8 -1
  427. package/dist/review/types.js.map +1 -1
  428. package/dist/review.d.ts.map +1 -1
  429. package/dist/review.js +7 -3
  430. package/dist/review.js.map +1 -1
  431. package/dist/sql/extractFacts.d.ts.map +1 -1
  432. package/dist/sql/extractFacts.js +1 -1
  433. package/dist/sql/extractFacts.js.map +1 -1
  434. package/dist/sqlite/schema.d.ts +2 -1
  435. package/dist/sqlite/schema.d.ts.map +1 -1
  436. package/dist/sqlite/schema.js +15 -1
  437. package/dist/sqlite/schema.js.map +1 -1
  438. package/dist/sqlite/write.d.ts.map +1 -1
  439. package/dist/sqlite/write.js +15 -0
  440. package/dist/sqlite/write.js.map +1 -1
  441. package/dist/sqlite-driver.d.ts +11 -0
  442. package/dist/sqlite-driver.d.ts.map +1 -1
  443. package/dist/sqlite-driver.js +27 -2
  444. package/dist/sqlite-driver.js.map +1 -1
  445. package/dist/util/concurrency.d.ts +1 -0
  446. package/dist/util/concurrency.d.ts.map +1 -1
  447. package/dist/util/concurrency.js +9 -2
  448. package/dist/util/concurrency.js.map +1 -1
  449. package/dist/util/confinedFile.d.ts +1 -0
  450. package/dist/util/confinedFile.d.ts.map +1 -1
  451. package/dist/util/confinedFile.js +17 -5
  452. package/dist/util/confinedFile.js.map +1 -1
  453. package/dist/util/errors.d.ts +2 -0
  454. package/dist/util/errors.d.ts.map +1 -1
  455. package/dist/util/errors.js +18 -0
  456. package/dist/util/errors.js.map +1 -1
  457. package/dist/util/git.d.ts.map +1 -1
  458. package/dist/util/git.js +72 -7
  459. package/dist/util/git.js.map +1 -1
  460. package/dist/util/lazySymbols.js +1 -1
  461. package/dist/util/lazySymbols.js.map +1 -1
  462. package/dist/util/paths.d.ts.map +1 -1
  463. package/dist/util/paths.js +45 -9
  464. package/dist/util/paths.js.map +1 -1
  465. package/dist/util/resolution/jvm.d.ts.map +1 -1
  466. package/dist/util/resolution/jvm.js +14 -8
  467. package/dist/util/resolution/jvm.js.map +1 -1
  468. package/dist/util/resolution/php.d.ts.map +1 -1
  469. package/dist/util/resolution/php.js +0 -1
  470. package/dist/util/resolution/php.js.map +1 -1
  471. package/dist/util/resolution/tsconfig.d.ts.map +1 -1
  472. package/dist/util/resolution/tsconfig.js +26 -12
  473. package/dist/util/resolution/tsconfig.js.map +1 -1
  474. package/dist/util/resolution.d.ts.map +1 -1
  475. package/dist/util/resolution.js +5 -5
  476. package/dist/util/resolution.js.map +1 -1
  477. package/dist/worker/nativeExtractWorker.d.ts +14 -6
  478. package/dist/worker/nativeExtractWorker.d.ts.map +1 -1
  479. package/dist/worker/nativeExtractWorker.js +67 -14
  480. package/dist/worker/nativeExtractWorker.js.map +1 -1
  481. package/dist/worker/nativeWorkerPool.d.ts +4 -0
  482. package/dist/worker/nativeWorkerPool.d.ts.map +1 -1
  483. package/dist/worker/nativeWorkerPool.js +6 -1
  484. package/dist/worker/nativeWorkerPool.js.map +1 -1
  485. package/docs/mcp.md +22 -6
  486. package/package.json +3 -3
  487. package/dist/languages/definitions/loadLanguage.d.ts +0 -2
  488. package/dist/languages/definitions/loadLanguage.d.ts.map +0 -1
  489. package/dist/languages/definitions/loadLanguage.js +0 -2
  490. package/dist/languages/definitions/loadLanguage.js.map +0 -1
  491. package/dist/parserBackend.d.ts +0 -57
  492. package/dist/parserBackend.d.ts.map +0 -1
  493. package/dist/parserBackend.js +0 -33
  494. package/dist/parserBackend.js.map +0 -1
@@ -1,17 +1,22 @@
1
+ import fs from "node:fs";
1
2
  import path from "node:path";
2
3
  import { createRequire } from "node:module";
3
4
  import { fileURLToPath } from "node:url";
4
5
  import { stringifyUnknown } from "../util/ast.js";
5
- import { loadNativeBinding } from "./bindingLoader.js";
6
+ import { currentNativeTargetSuffix, findLocalNativeBinary, loadNativeBinding, nativeTargetSuffixFor, readPlatformPackage, } from "./bindingLoader.js";
7
+ import { lookupNativeRuntimeCacheEntry, recordNativeRuntimeCacheIdentity } from "./runtimeCache.js";
6
8
  const require = createRequire(import.meta.url);
7
9
  const localNativePackageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../packages/codegraph-native");
8
10
  const NATIVE_REQUIRED_ERROR_PREFIX = "native tree-sitter required by explicit option but unavailable";
9
11
  let bindingState;
10
12
  let loadedRuntimeFingerprint;
11
13
  const disabledRuntimeFingerprints = new Map();
14
+ const cachedRuntimeFingerprints = new Map();
15
+ const cachedRuntimeIdentityValidations = new WeakMap();
12
16
  export function __resetNativeTreeSitterBindingForTests() {
13
17
  bindingState = undefined;
14
18
  loadedRuntimeFingerprint = undefined;
19
+ cachedRuntimeFingerprints.clear();
15
20
  }
16
21
  export function isNativeTreeSitterDisabledByEnv(env = process.env) {
17
22
  const rawValue = env.CODEGRAPH_DISABLE_NATIVE;
@@ -27,6 +32,7 @@ export function normalizeNativeRuntimeMode(mode) {
27
32
  export function loadBinding() {
28
33
  if (bindingState)
29
34
  return bindingState;
35
+ cachedRuntimeFingerprints.clear();
30
36
  const loaded = loadNativeBinding({
31
37
  packageName: "@lzehrung/codegraph-native",
32
38
  localPackageRoot: localNativePackageRoot,
@@ -34,12 +40,31 @@ export function loadBinding() {
34
40
  resolveFn: require.resolve,
35
41
  });
36
42
  if (loaded.binding) {
43
+ const supportedLanguageIds = new Set(loaded.binding.supportedLanguageIds());
37
44
  bindingState = {
38
45
  loaded: true,
39
46
  binding: loaded.binding,
40
- supportedLanguageIds: new Set(loaded.binding.supportedLanguageIds()),
47
+ supportedLanguageIds,
41
48
  origin: loaded.origin,
42
49
  };
50
+ // Now, and only now, every fact a later process needs to skip this work is known: the files
51
+ // were hashed and verified, the addon loaded, and it reported its languages. Recording only
52
+ // a verified load keeps the re-verification TTL honest - a fast-path hit must not renew it.
53
+ if (loaded.cacheEntry?.verified) {
54
+ recordNativeRuntimeCacheIdentity({
55
+ sourcePath: loaded.cacheEntry.sourcePath,
56
+ loadedPath: loaded.cacheEntry.loadedPath,
57
+ cacheKey: loaded.cacheEntry.cacheKey,
58
+ sha256: loaded.cacheEntry.sha256,
59
+ sourceSize: loaded.cacheEntry.sourceSize,
60
+ sourceMtimeMs: loaded.cacheEntry.sourceMtimeMs,
61
+ cachedSize: loaded.cacheEntry.cachedSize,
62
+ cachedMtimeMs: loaded.cacheEntry.cachedMtimeMs,
63
+ verifiedAt: new Date().toISOString(),
64
+ supportedLanguageIds: Array.from(supportedLanguageIds).sort(),
65
+ origin: loaded.origin,
66
+ });
67
+ }
43
68
  return bindingState;
44
69
  }
45
70
  bindingState = {
@@ -65,14 +90,48 @@ export function resolveNativeBindingState(mode, env = process.env) {
65
90
  }
66
91
  return loadBinding();
67
92
  }
68
- function serializeNativeRuntimeFingerprint(requestedMode, envDisabled, state) {
69
- const supportedLanguageIds = state.loaded ? Array.from(state.supportedLanguageIds).sort() : [];
70
- const origin = state.origin;
93
+ function identityFromState(state) {
94
+ return {
95
+ available: state.loaded,
96
+ supportedLanguageIds: state.loaded ? Array.from(state.supportedLanguageIds).sort() : [],
97
+ origin: state.origin,
98
+ };
99
+ }
100
+ function cacheFingerprintFilesMatch(validation) {
101
+ try {
102
+ const sourcePath = fs.realpathSync.native(validation.sourcePath);
103
+ if (sourcePath !== validation.sourcePath)
104
+ return false;
105
+ const sourceStats = fs.statSync(sourcePath);
106
+ if (!sourceStats.isFile() ||
107
+ sourceStats.size !== validation.sourceSize ||
108
+ sourceStats.mtimeMs !== validation.sourceMtimeMs) {
109
+ return false;
110
+ }
111
+ const loadedPath = fs.realpathSync.native(validation.loadedPath);
112
+ if (loadedPath !== validation.loadedPath)
113
+ return false;
114
+ const cachedStats = fs.lstatSync(loadedPath);
115
+ return (cachedStats.isFile() &&
116
+ !cachedStats.isSymbolicLink() &&
117
+ cachedStats.size === validation.cachedSize &&
118
+ cachedStats.mtimeMs === validation.cachedMtimeMs);
119
+ }
120
+ catch {
121
+ return false;
122
+ }
123
+ }
124
+ /**
125
+ * Takes the binding-derived facts rather than a NativeBindingState, because the cache fast path
126
+ * below reconstructs those facts from a recorded identity and has no binding to hand.
127
+ */
128
+ export function serializeNativeRuntimeFingerprint(requestedMode, envDisabled, identity) {
129
+ const { available, supportedLanguageIds, origin } = identity;
71
130
  return JSON.stringify({
72
131
  version: 1,
73
132
  requestedMode,
74
133
  envDisabled,
75
- available: state.loaded,
134
+ available,
76
135
  supportedLanguageIds,
77
136
  ...(origin
78
137
  ? {
@@ -90,6 +149,52 @@ function serializeNativeRuntimeFingerprint(requestedMode, envDisabled, state) {
90
149
  : {}),
91
150
  });
92
151
  }
152
+ export function resolveCachedRuntimeIdentity(options = {}) {
153
+ // A workspace binary wins in loadNativeBinding, so its fingerprint must not be answered from
154
+ // a cache entry describing the installed package.
155
+ if (findLocalNativeBinary(options.localPackageRoot ?? localNativePackageRoot))
156
+ return undefined;
157
+ if ((options.platform ?? process.platform) !== "win32")
158
+ return undefined;
159
+ // currentNativeTargetSuffix reads the real process; when a platform is injected the suffix has
160
+ // to be derived from it, or a Linux test box would look for its own target under a win32 root.
161
+ const target = options.platform
162
+ ? nativeTargetSuffixFor(options.platform, options.arch ?? process.arch)
163
+ : currentNativeTargetSuffix();
164
+ if (!target)
165
+ return undefined;
166
+ try {
167
+ const platformPackage = readPlatformPackage("@lzehrung/codegraph-native", target, options.resolveFn ?? require.resolve);
168
+ const hit = lookupNativeRuntimeCacheEntry({
169
+ sourcePath: platformPackage.sourcePath,
170
+ packageName: `@lzehrung/codegraph-native-${target}`,
171
+ packageVersion: platformPackage.packageVersion,
172
+ target,
173
+ ...(options.cacheRoot !== undefined ? { cacheRoot: options.cacheRoot } : {}),
174
+ ...(options.now !== undefined ? { now: options.now } : {}),
175
+ });
176
+ if (!hit)
177
+ return undefined;
178
+ const identity = {
179
+ available: true,
180
+ supportedLanguageIds: hit.identity.supportedLanguageIds,
181
+ origin: hit.identity.origin,
182
+ cacheIdentityRevalidateAt: hit.revalidateAt,
183
+ };
184
+ cachedRuntimeIdentityValidations.set(identity, {
185
+ sourcePath: hit.identity.sourcePath,
186
+ sourceSize: hit.identity.sourceSize,
187
+ sourceMtimeMs: hit.identity.sourceMtimeMs,
188
+ loadedPath: hit.identity.loadedPath,
189
+ cachedSize: hit.identity.cachedSize,
190
+ cachedMtimeMs: hit.identity.cachedMtimeMs,
191
+ });
192
+ return identity;
193
+ }
194
+ catch {
195
+ return undefined;
196
+ }
197
+ }
93
198
  export function getNativeRuntimeFingerprint(mode, env = process.env) {
94
199
  const requestedMode = normalizeNativeRuntimeMode(mode);
95
200
  const envDisabled = isNativeTreeSitterDisabledByEnv(env);
@@ -99,17 +204,42 @@ export function getNativeRuntimeFingerprint(mode, env = process.env) {
99
204
  const cached = disabledRuntimeFingerprints.get(key);
100
205
  if (cached)
101
206
  return cached;
102
- const fingerprint = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, resolveNativeBindingState(mode, env));
207
+ const fingerprint = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, identityFromState(resolveNativeBindingState(mode, env)));
103
208
  disabledRuntimeFingerprints.set(key, fingerprint);
104
209
  return fingerprint;
105
210
  }
211
+ // A cached identity is valid only while its current source and cache stats match and its
212
+ // re-verification window has not elapsed. Recheck it on every fingerprint request; the probe
213
+ // stays cheap (one directory read and two stats) and avoids extending stat-only trust.
214
+ if (!bindingState) {
215
+ const cacheKey = `${requestedMode}:${envDisabled}`;
216
+ const now = Date.now();
217
+ const memoized = cachedRuntimeFingerprints.get(cacheKey);
218
+ if (memoized && now < memoized.revalidateAt && cacheFingerprintFilesMatch(memoized.validation)) {
219
+ return memoized.value;
220
+ }
221
+ const cachedIdentity = resolveCachedRuntimeIdentity();
222
+ const validation = cachedIdentity ? cachedRuntimeIdentityValidations.get(cachedIdentity) : undefined;
223
+ if (cachedIdentity?.cacheIdentityRevalidateAt !== undefined &&
224
+ validation &&
225
+ cacheFingerprintFilesMatch(validation)) {
226
+ const value = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, cachedIdentity);
227
+ cachedRuntimeFingerprints.set(cacheKey, {
228
+ value,
229
+ revalidateAt: cachedIdentity.cacheIdentityRevalidateAt,
230
+ validation,
231
+ });
232
+ return value;
233
+ }
234
+ cachedRuntimeFingerprints.delete(cacheKey);
235
+ }
106
236
  const state = loadBinding();
107
237
  if (loadedRuntimeFingerprint?.state === state &&
108
238
  loadedRuntimeFingerprint.requestedMode === requestedMode &&
109
239
  loadedRuntimeFingerprint.envDisabled === envDisabled) {
110
240
  return loadedRuntimeFingerprint.value;
111
241
  }
112
- const value = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, state);
242
+ const value = serializeNativeRuntimeFingerprint(requestedMode, envDisabled, identityFromState(state));
113
243
  loadedRuntimeFingerprint = { state, requestedMode, envDisabled, value };
114
244
  return value;
115
245
  }
@@ -126,6 +256,19 @@ export function getNativeBindingOrigin() {
126
256
  export function getCurrentNativeBindingOrigin() {
127
257
  return bindingState?.origin;
128
258
  }
259
+ /**
260
+ * The resolved addon path for a binding this process has already loaded, for handing to worker
261
+ * threads. Undefined unless a load succeeded, so a worker is never pointed at a path that did
262
+ * not work here.
263
+ */
264
+ export function getNativeWorkerBindingHandoff() {
265
+ if (!bindingState?.loaded)
266
+ return undefined;
267
+ const loadedPath = bindingState.origin.loadedPath;
268
+ if (!loadedPath)
269
+ return undefined;
270
+ return { loadedPath, origin: bindingState.origin };
271
+ }
129
272
  export function getNativeTreeSitterSupportedLanguageIds(mode) {
130
273
  const state = resolveNativeBindingState(mode);
131
274
  return state.loaded ? Array.from(state.supportedLanguageIds).sort() : [];
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/native/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/native/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { NativeBindingOrigin } from "./contracts.js";
1
2
  export type NativeCacheManifestV1 = {
2
3
  schemaVersion: 1;
3
4
  packageName: string;
@@ -8,12 +9,57 @@ export type NativeCacheManifestV1 = {
8
9
  sourceSha256: string;
9
10
  cachedAt: string;
10
11
  };
12
+ /**
13
+ * Written as a path-keyed record beside `manifest.json` after a process has successfully
14
+ * loaded the cached binary. `manifest.json` is content-addressed and published once,
15
+ * immutably; these records are mutable (the TTL refreshes them) and carry facts that only exist
16
+ * after the addon loads. One record per source realpath lets projects sharing the binary retain
17
+ * their own origin without invalidating each other's fast path.
18
+ */
19
+ export type NativeCacheIdentityV1 = {
20
+ version: 1;
21
+ /** Size and mtime of the installed source binary at the last full verification. */
22
+ sourceSize: number;
23
+ sourceMtimeMs: number;
24
+ /** Size and mtime of the cached copy that was verified and then loaded. */
25
+ cachedSize: number;
26
+ cachedMtimeMs: number;
27
+ sha256: string;
28
+ cacheKey: string;
29
+ sourcePath: string;
30
+ loadedPath: string;
31
+ verifiedAt: string;
32
+ /**
33
+ * The runtime that proved this file loadable. The stat fields say the bytes are unchanged;
34
+ * they say nothing about whether this Node can still load them. A major Node upgrade changes
35
+ * the ABI, so the same bytes stop loading while every other check still matches, and the fast
36
+ * path would report an addon as available that the build then falls back away from.
37
+ */
38
+ runtime: {
39
+ abi: string;
40
+ platform: string;
41
+ arch: string;
42
+ };
43
+ /**
44
+ * Recorded so a cache-hit command can answer "which languages does the addon support"
45
+ * without loading it. Present only once a load has succeeded for this exact file.
46
+ */
47
+ supportedLanguageIds: string[];
48
+ /**
49
+ * The origin the loading process reported, stored whole rather than rebuilt field by field.
50
+ * The runtime fingerprint embeds this object verbatim, so replaying it is what guarantees a
51
+ * fast-path fingerprint is byte-identical to the one a full load produces.
52
+ */
53
+ origin: NativeBindingOrigin;
54
+ };
11
55
  export type PrepareNativeRuntimeCacheRequest = {
12
56
  sourcePath: string;
13
57
  packageName: string;
14
58
  packageVersion: string;
15
59
  target: string;
16
60
  cacheRoot?: string | undefined;
61
+ /** Injected in tests so the identity TTL branch is reachable without waiting a day. */
62
+ now?: number | undefined;
17
63
  };
18
64
  export type PrepareNativeRuntimeCacheResult = {
19
65
  status: "cached" | "reused";
@@ -21,6 +67,17 @@ export type PrepareNativeRuntimeCacheResult = {
21
67
  loadedPath: string;
22
68
  cacheKey: string;
23
69
  sha256: string;
70
+ /** Verified stat snapshots used to reject a source/cache replacement before identity recording. */
71
+ sourceSize: number;
72
+ sourceMtimeMs: number;
73
+ cachedSize: number;
74
+ cachedMtimeMs: number;
75
+ /**
76
+ * True when this call hashed the files rather than trusting a recorded identity. Only a
77
+ * verified result may refresh the identity record, otherwise each fast-path hit would
78
+ * push the re-verification TTL out and the entry would never be hashed again.
79
+ */
80
+ verified: boolean;
24
81
  } | {
25
82
  status: "unavailable";
26
83
  sourcePath: string;
@@ -29,8 +86,43 @@ export type PrepareNativeRuntimeCacheResult = {
29
86
  type FileHash = {
30
87
  sha256: string;
31
88
  size: number;
89
+ mtimeMs: number;
32
90
  };
33
91
  export declare function hashFileStreaming(filePath: string, onChunk?: (bytesRead: number) => void): FileHash;
92
+ export type NativeCacheLookupRequest = {
93
+ sourcePath: string;
94
+ packageName: string;
95
+ packageVersion: string;
96
+ target: string;
97
+ cacheRoot?: string | undefined;
98
+ /** Injected in tests so the TTL branch is reachable without waiting a day. */
99
+ now?: number | undefined;
100
+ };
101
+ export type NativeCacheLookupHit = {
102
+ entryPath: string;
103
+ identity: NativeCacheIdentityV1;
104
+ revalidateAt: number;
105
+ };
106
+ /**
107
+ * Find a cache entry for this (package version, target) whose recorded identity still matches
108
+ * the files on disk, without hashing either of them.
109
+ *
110
+ * The entry directory is named `<packageVersion>-<sha256>`, so locating it the normal way means
111
+ * hashing the source first. Scanning the target directory for the version prefix and comparing
112
+ * the stat fields recorded at the last full verification reaches the same entry with bounded
113
+ * metadata reads. A miss - no entry, no identity file, a stat mismatch, or an expired
114
+ * TTL - returns null, and every caller then does the full hash-and-verify pass.
115
+ */
116
+ export declare function lookupNativeRuntimeCacheEntry(request: NativeCacheLookupRequest): NativeCacheLookupHit | null;
117
+ /**
118
+ * Record what a successful load proved about this entry, so the next process can skip both
119
+ * SHA-256 passes and the addon load itself. Called only after the binary at `loadedPath` has
120
+ * been fully verified and then loaded, so every field describes a state known to work.
121
+ *
122
+ * Replaces any previous record atomically: the TTL refresh rewrites it, unlike the immutable
123
+ * `manifest.json` beside it.
124
+ */
125
+ export declare function recordNativeRuntimeCacheIdentity(identity: Omit<NativeCacheIdentityV1, "version" | "runtime">): void;
34
126
  export declare function prepareNativeRuntimeCache(request: PrepareNativeRuntimeCacheRequest): PrepareNativeRuntimeCacheResult;
35
127
  export {};
36
128
  //# sourceMappingURL=runtimeCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeCache.d.ts","sourceRoot":"","sources":["../../src/native/runtimeCache.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GACvC;IACE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEN,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA8DF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,QAAQ,CA0BnG;AAgGD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gCAAgC,GAAG,+BAA+B,CAoDpH"}
1
+ {"version":3,"file":"runtimeCache.d.ts","sourceRoot":"","sources":["../../src/native/runtimeCache.ts"],"names":[],"mappings":"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"}