@ltm-alpha/alpha-cs 1.6.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 (1107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +972 -0
  3. package/dist/bin/command-supervision.d.ts +49 -0
  4. package/dist/bin/command-supervision.d.ts.map +1 -0
  5. package/dist/bin/command-supervision.js +95 -0
  6. package/dist/bin/command-supervision.js.map +1 -0
  7. package/dist/bin/fatal-handler.d.ts +20 -0
  8. package/dist/bin/fatal-handler.d.ts.map +1 -0
  9. package/dist/bin/fatal-handler.js +118 -0
  10. package/dist/bin/fatal-handler.js.map +1 -0
  11. package/dist/bin/ltm-alpha-cs.d.ts +27 -0
  12. package/dist/bin/ltm-alpha-cs.d.ts.map +1 -0
  13. package/dist/bin/ltm-alpha-cs.js +2643 -0
  14. package/dist/bin/ltm-alpha-cs.js.map +1 -0
  15. package/dist/bin/node-version-check.d.ts +37 -0
  16. package/dist/bin/node-version-check.d.ts.map +1 -0
  17. package/dist/bin/node-version-check.js +79 -0
  18. package/dist/bin/node-version-check.js.map +1 -0
  19. package/dist/bin/uninstall.d.ts +14 -0
  20. package/dist/bin/uninstall.d.ts.map +1 -0
  21. package/dist/bin/uninstall.js +36 -0
  22. package/dist/bin/uninstall.js.map +1 -0
  23. package/dist/context/formatter.d.ts +36 -0
  24. package/dist/context/formatter.d.ts.map +1 -0
  25. package/dist/context/formatter.js +269 -0
  26. package/dist/context/formatter.js.map +1 -0
  27. package/dist/context/index.d.ts +131 -0
  28. package/dist/context/index.d.ts.map +1 -0
  29. package/dist/context/index.js +1378 -0
  30. package/dist/context/index.js.map +1 -0
  31. package/dist/context/markers.d.ts +19 -0
  32. package/dist/context/markers.d.ts.map +1 -0
  33. package/dist/context/markers.js +22 -0
  34. package/dist/context/markers.js.map +1 -0
  35. package/dist/db/index.d.ts +385 -0
  36. package/dist/db/index.d.ts.map +1 -0
  37. package/dist/db/index.js +902 -0
  38. package/dist/db/index.js.map +1 -0
  39. package/dist/db/migrations.d.ts +44 -0
  40. package/dist/db/migrations.d.ts.map +1 -0
  41. package/dist/db/migrations.js +236 -0
  42. package/dist/db/migrations.js.map +1 -0
  43. package/dist/db/queries.d.ts +1095 -0
  44. package/dist/db/queries.d.ts.map +1 -0
  45. package/dist/db/queries.js +3285 -0
  46. package/dist/db/queries.js.map +1 -0
  47. package/dist/db/schema.sql +207 -0
  48. package/dist/db/sqlite-adapter.d.ts +55 -0
  49. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  50. package/dist/db/sqlite-adapter.js +135 -0
  51. package/dist/db/sqlite-adapter.js.map +1 -0
  52. package/dist/db/wal-valve.d.ts +139 -0
  53. package/dist/db/wal-valve.d.ts.map +1 -0
  54. package/dist/db/wal-valve.js +333 -0
  55. package/dist/db/wal-valve.js.map +1 -0
  56. package/dist/directory.d.ts +232 -0
  57. package/dist/directory.d.ts.map +1 -0
  58. package/dist/directory.js +877 -0
  59. package/dist/directory.js.map +1 -0
  60. package/dist/errors.d.ts +150 -0
  61. package/dist/errors.d.ts.map +1 -0
  62. package/dist/errors.js +234 -0
  63. package/dist/errors.js.map +1 -0
  64. package/dist/extraction/astro-extractor.d.ts +79 -0
  65. package/dist/extraction/astro-extractor.d.ts.map +1 -0
  66. package/dist/extraction/astro-extractor.js +320 -0
  67. package/dist/extraction/astro-extractor.js.map +1 -0
  68. package/dist/extraction/cfml-extractor.d.ts +107 -0
  69. package/dist/extraction/cfml-extractor.d.ts.map +1 -0
  70. package/dist/extraction/cfml-extractor.js +505 -0
  71. package/dist/extraction/cfml-extractor.js.map +1 -0
  72. package/dist/extraction/dfm-extractor.d.ts +31 -0
  73. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  74. package/dist/extraction/dfm-extractor.js +151 -0
  75. package/dist/extraction/dfm-extractor.js.map +1 -0
  76. package/dist/extraction/extraction-version.d.ts +25 -0
  77. package/dist/extraction/extraction-version.d.ts.map +1 -0
  78. package/dist/extraction/extraction-version.js +28 -0
  79. package/dist/extraction/extraction-version.js.map +1 -0
  80. package/dist/extraction/function-ref.d.ts +118 -0
  81. package/dist/extraction/function-ref.d.ts.map +1 -0
  82. package/dist/extraction/function-ref.js +746 -0
  83. package/dist/extraction/function-ref.js.map +1 -0
  84. package/dist/extraction/generated-detection.d.ts +66 -0
  85. package/dist/extraction/generated-detection.d.ts.map +1 -0
  86. package/dist/extraction/generated-detection.js +248 -0
  87. package/dist/extraction/generated-detection.js.map +1 -0
  88. package/dist/extraction/grammars.d.ts +148 -0
  89. package/dist/extraction/grammars.d.ts.map +1 -0
  90. package/dist/extraction/grammars.js +743 -0
  91. package/dist/extraction/grammars.js.map +1 -0
  92. package/dist/extraction/index.d.ts +455 -0
  93. package/dist/extraction/index.d.ts.map +1 -0
  94. package/dist/extraction/index.js +3208 -0
  95. package/dist/extraction/index.js.map +1 -0
  96. package/dist/extraction/kernel/decode.d.ts +9 -0
  97. package/dist/extraction/kernel/decode.d.ts.map +1 -0
  98. package/dist/extraction/kernel/decode.js +162 -0
  99. package/dist/extraction/kernel/decode.js.map +1 -0
  100. package/dist/extraction/kernel/index.d.ts +64 -0
  101. package/dist/extraction/kernel/index.d.ts.map +1 -0
  102. package/dist/extraction/kernel/index.js +279 -0
  103. package/dist/extraction/kernel/index.js.map +1 -0
  104. package/dist/extraction/kernel/layout.d.ts +101 -0
  105. package/dist/extraction/kernel/layout.d.ts.map +1 -0
  106. package/dist/extraction/kernel/layout.js +104 -0
  107. package/dist/extraction/kernel/layout.js.map +1 -0
  108. package/dist/extraction/kernel/loader.d.ts +103 -0
  109. package/dist/extraction/kernel/loader.d.ts.map +1 -0
  110. package/dist/extraction/kernel/loader.js +146 -0
  111. package/dist/extraction/kernel/loader.js.map +1 -0
  112. package/dist/extraction/languages/arkts.d.ts +3 -0
  113. package/dist/extraction/languages/arkts.d.ts.map +1 -0
  114. package/dist/extraction/languages/arkts.js +127 -0
  115. package/dist/extraction/languages/arkts.js.map +1 -0
  116. package/dist/extraction/languages/c-cpp.d.ts +167 -0
  117. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  118. package/dist/extraction/languages/c-cpp.js +1850 -0
  119. package/dist/extraction/languages/c-cpp.js.map +1 -0
  120. package/dist/extraction/languages/cfquery.d.ts +12 -0
  121. package/dist/extraction/languages/cfquery.d.ts.map +1 -0
  122. package/dist/extraction/languages/cfquery.js +28 -0
  123. package/dist/extraction/languages/cfquery.js.map +1 -0
  124. package/dist/extraction/languages/cfscript.d.ts +3 -0
  125. package/dist/extraction/languages/cfscript.d.ts.map +1 -0
  126. package/dist/extraction/languages/cfscript.js +73 -0
  127. package/dist/extraction/languages/cfscript.js.map +1 -0
  128. package/dist/extraction/languages/cobol.d.ts +33 -0
  129. package/dist/extraction/languages/cobol.d.ts.map +1 -0
  130. package/dist/extraction/languages/cobol.js +499 -0
  131. package/dist/extraction/languages/cobol.js.map +1 -0
  132. package/dist/extraction/languages/csharp.d.ts +25 -0
  133. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  134. package/dist/extraction/languages/csharp.js +175 -0
  135. package/dist/extraction/languages/csharp.js.map +1 -0
  136. package/dist/extraction/languages/dart.d.ts +3 -0
  137. package/dist/extraction/languages/dart.d.ts.map +1 -0
  138. package/dist/extraction/languages/dart.js +374 -0
  139. package/dist/extraction/languages/dart.js.map +1 -0
  140. package/dist/extraction/languages/erlang.d.ts +3 -0
  141. package/dist/extraction/languages/erlang.d.ts.map +1 -0
  142. package/dist/extraction/languages/erlang.js +386 -0
  143. package/dist/extraction/languages/erlang.js.map +1 -0
  144. package/dist/extraction/languages/go.d.ts +3 -0
  145. package/dist/extraction/languages/go.d.ts.map +1 -0
  146. package/dist/extraction/languages/go.js +111 -0
  147. package/dist/extraction/languages/go.js.map +1 -0
  148. package/dist/extraction/languages/index.d.ts +10 -0
  149. package/dist/extraction/languages/index.d.ts.map +1 -0
  150. package/dist/extraction/languages/index.js +71 -0
  151. package/dist/extraction/languages/index.js.map +1 -0
  152. package/dist/extraction/languages/java.d.ts +3 -0
  153. package/dist/extraction/languages/java.d.ts.map +1 -0
  154. package/dist/extraction/languages/java.js +315 -0
  155. package/dist/extraction/languages/java.js.map +1 -0
  156. package/dist/extraction/languages/javascript.d.ts +3 -0
  157. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  158. package/dist/extraction/languages/javascript.js +106 -0
  159. package/dist/extraction/languages/javascript.js.map +1 -0
  160. package/dist/extraction/languages/kotlin.d.ts +3 -0
  161. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  162. package/dist/extraction/languages/kotlin.js +512 -0
  163. package/dist/extraction/languages/kotlin.js.map +1 -0
  164. package/dist/extraction/languages/lua.d.ts +3 -0
  165. package/dist/extraction/languages/lua.d.ts.map +1 -0
  166. package/dist/extraction/languages/lua.js +153 -0
  167. package/dist/extraction/languages/lua.js.map +1 -0
  168. package/dist/extraction/languages/luau.d.ts +3 -0
  169. package/dist/extraction/languages/luau.d.ts.map +1 -0
  170. package/dist/extraction/languages/luau.js +37 -0
  171. package/dist/extraction/languages/luau.js.map +1 -0
  172. package/dist/extraction/languages/nix.d.ts +3 -0
  173. package/dist/extraction/languages/nix.d.ts.map +1 -0
  174. package/dist/extraction/languages/nix.js +294 -0
  175. package/dist/extraction/languages/nix.js.map +1 -0
  176. package/dist/extraction/languages/objc.d.ts +3 -0
  177. package/dist/extraction/languages/objc.d.ts.map +1 -0
  178. package/dist/extraction/languages/objc.js +179 -0
  179. package/dist/extraction/languages/objc.js.map +1 -0
  180. package/dist/extraction/languages/pascal.d.ts +3 -0
  181. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  182. package/dist/extraction/languages/pascal.js +77 -0
  183. package/dist/extraction/languages/pascal.js.map +1 -0
  184. package/dist/extraction/languages/php.d.ts +3 -0
  185. package/dist/extraction/languages/php.d.ts.map +1 -0
  186. package/dist/extraction/languages/php.js +196 -0
  187. package/dist/extraction/languages/php.js.map +1 -0
  188. package/dist/extraction/languages/python.d.ts +3 -0
  189. package/dist/extraction/languages/python.d.ts.map +1 -0
  190. package/dist/extraction/languages/python.js +56 -0
  191. package/dist/extraction/languages/python.js.map +1 -0
  192. package/dist/extraction/languages/r.d.ts +3 -0
  193. package/dist/extraction/languages/r.d.ts.map +1 -0
  194. package/dist/extraction/languages/r.js +314 -0
  195. package/dist/extraction/languages/r.js.map +1 -0
  196. package/dist/extraction/languages/ruby.d.ts +3 -0
  197. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  198. package/dist/extraction/languages/ruby.js +149 -0
  199. package/dist/extraction/languages/ruby.js.map +1 -0
  200. package/dist/extraction/languages/rust.d.ts +23 -0
  201. package/dist/extraction/languages/rust.d.ts.map +1 -0
  202. package/dist/extraction/languages/rust.js +172 -0
  203. package/dist/extraction/languages/rust.js.map +1 -0
  204. package/dist/extraction/languages/scala.d.ts +3 -0
  205. package/dist/extraction/languages/scala.d.ts.map +1 -0
  206. package/dist/extraction/languages/scala.js +219 -0
  207. package/dist/extraction/languages/scala.js.map +1 -0
  208. package/dist/extraction/languages/solidity.d.ts +3 -0
  209. package/dist/extraction/languages/solidity.d.ts.map +1 -0
  210. package/dist/extraction/languages/solidity.js +293 -0
  211. package/dist/extraction/languages/solidity.js.map +1 -0
  212. package/dist/extraction/languages/swift.d.ts +3 -0
  213. package/dist/extraction/languages/swift.d.ts.map +1 -0
  214. package/dist/extraction/languages/swift.js +152 -0
  215. package/dist/extraction/languages/swift.js.map +1 -0
  216. package/dist/extraction/languages/terraform.d.ts +3 -0
  217. package/dist/extraction/languages/terraform.d.ts.map +1 -0
  218. package/dist/extraction/languages/terraform.js +641 -0
  219. package/dist/extraction/languages/terraform.js.map +1 -0
  220. package/dist/extraction/languages/typescript.d.ts +16 -0
  221. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  222. package/dist/extraction/languages/typescript.js +174 -0
  223. package/dist/extraction/languages/typescript.js.map +1 -0
  224. package/dist/extraction/languages/vbnet.d.ts +11 -0
  225. package/dist/extraction/languages/vbnet.d.ts.map +1 -0
  226. package/dist/extraction/languages/vbnet.js +141 -0
  227. package/dist/extraction/languages/vbnet.js.map +1 -0
  228. package/dist/extraction/liquid-extractor.d.ts +59 -0
  229. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  230. package/dist/extraction/liquid-extractor.js +357 -0
  231. package/dist/extraction/liquid-extractor.js.map +1 -0
  232. package/dist/extraction/mybatis-extractor.d.ts +68 -0
  233. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  234. package/dist/extraction/mybatis-extractor.js +300 -0
  235. package/dist/extraction/mybatis-extractor.js.map +1 -0
  236. package/dist/extraction/parse-pool.d.ts +167 -0
  237. package/dist/extraction/parse-pool.d.ts.map +1 -0
  238. package/dist/extraction/parse-pool.js +421 -0
  239. package/dist/extraction/parse-pool.js.map +1 -0
  240. package/dist/extraction/parse-worker.d.ts +8 -0
  241. package/dist/extraction/parse-worker.d.ts.map +1 -0
  242. package/dist/extraction/parse-worker.js +138 -0
  243. package/dist/extraction/parse-worker.js.map +1 -0
  244. package/dist/extraction/razor-extractor.d.ts +42 -0
  245. package/dist/extraction/razor-extractor.d.ts.map +1 -0
  246. package/dist/extraction/razor-extractor.js +285 -0
  247. package/dist/extraction/razor-extractor.js.map +1 -0
  248. package/dist/extraction/store-worker.d.ts +24 -0
  249. package/dist/extraction/store-worker.d.ts.map +1 -0
  250. package/dist/extraction/store-worker.js +139 -0
  251. package/dist/extraction/store-worker.js.map +1 -0
  252. package/dist/extraction/store-writer.d.ts +63 -0
  253. package/dist/extraction/store-writer.d.ts.map +1 -0
  254. package/dist/extraction/store-writer.js +174 -0
  255. package/dist/extraction/store-writer.js.map +1 -0
  256. package/dist/extraction/svelte-extractor.d.ts +56 -0
  257. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  258. package/dist/extraction/svelte-extractor.js +275 -0
  259. package/dist/extraction/svelte-extractor.js.map +1 -0
  260. package/dist/extraction/syntax-tokens.d.ts +103 -0
  261. package/dist/extraction/syntax-tokens.d.ts.map +1 -0
  262. package/dist/extraction/syntax-tokens.js +381 -0
  263. package/dist/extraction/syntax-tokens.js.map +1 -0
  264. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  265. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  266. package/dist/extraction/tree-sitter-helpers.js +153 -0
  267. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  268. package/dist/extraction/tree-sitter-types.d.ts +279 -0
  269. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  270. package/dist/extraction/tree-sitter-types.js +10 -0
  271. package/dist/extraction/tree-sitter-types.js.map +1 -0
  272. package/dist/extraction/tree-sitter.d.ts +766 -0
  273. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  274. package/dist/extraction/tree-sitter.js +7138 -0
  275. package/dist/extraction/tree-sitter.js.map +1 -0
  276. package/dist/extraction/vue-extractor.d.ts +51 -0
  277. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  278. package/dist/extraction/vue-extractor.js +254 -0
  279. package/dist/extraction/vue-extractor.js.map +1 -0
  280. package/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  281. package/dist/extraction/wasm/tree-sitter-c.wasm +0 -0
  282. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  283. package/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  284. package/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  285. package/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  286. package/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  287. package/dist/extraction/wasm/tree-sitter-cpp.wasm +0 -0
  288. package/dist/extraction/wasm/tree-sitter-dart.wasm +0 -0
  289. package/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  290. package/dist/extraction/wasm/tree-sitter-go.wasm +0 -0
  291. package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
  292. package/dist/extraction/wasm/tree-sitter-javascript.wasm +0 -0
  293. package/dist/extraction/wasm/tree-sitter-kotlin.wasm +0 -0
  294. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  295. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  296. package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  297. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  298. package/dist/extraction/wasm/tree-sitter-php.wasm +0 -0
  299. package/dist/extraction/wasm/tree-sitter-python.wasm +0 -0
  300. package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  301. package/dist/extraction/wasm/tree-sitter-ruby.wasm +0 -0
  302. package/dist/extraction/wasm/tree-sitter-rust.wasm +0 -0
  303. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  304. package/dist/extraction/wasm/tree-sitter-swift.wasm +0 -0
  305. package/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  306. package/dist/extraction/wasm/tree-sitter-tsx.wasm +0 -0
  307. package/dist/extraction/wasm/tree-sitter-typescript.wasm +0 -0
  308. package/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  309. package/dist/extraction/wasm-runtime-flags.d.ts +53 -0
  310. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  311. package/dist/extraction/wasm-runtime-flags.js +130 -0
  312. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  313. package/dist/graph/branch-guards.d.ts +248 -0
  314. package/dist/graph/branch-guards.d.ts.map +1 -0
  315. package/dist/graph/branch-guards.js +2231 -0
  316. package/dist/graph/branch-guards.js.map +1 -0
  317. package/dist/graph/dead-code.d.ts +251 -0
  318. package/dist/graph/dead-code.d.ts.map +1 -0
  319. package/dist/graph/dead-code.js +756 -0
  320. package/dist/graph/dead-code.js.map +1 -0
  321. package/dist/graph/dynamic-boundary-report.d.ts +121 -0
  322. package/dist/graph/dynamic-boundary-report.d.ts.map +1 -0
  323. package/dist/graph/dynamic-boundary-report.js +283 -0
  324. package/dist/graph/dynamic-boundary-report.js.map +1 -0
  325. package/dist/graph/index.d.ts +12 -0
  326. package/dist/graph/index.d.ts.map +1 -0
  327. package/dist/graph/index.js +28 -0
  328. package/dist/graph/index.js.map +1 -0
  329. package/dist/graph/named-symbol-flow.d.ts +125 -0
  330. package/dist/graph/named-symbol-flow.d.ts.map +1 -0
  331. package/dist/graph/named-symbol-flow.js +552 -0
  332. package/dist/graph/named-symbol-flow.js.map +1 -0
  333. package/dist/graph/queries.d.ts +106 -0
  334. package/dist/graph/queries.d.ts.map +1 -0
  335. package/dist/graph/queries.js +341 -0
  336. package/dist/graph/queries.js.map +1 -0
  337. package/dist/graph/symbol-lookup.d.ts +83 -0
  338. package/dist/graph/symbol-lookup.d.ts.map +1 -0
  339. package/dist/graph/symbol-lookup.js +181 -0
  340. package/dist/graph/symbol-lookup.js.map +1 -0
  341. package/dist/graph/traversal.d.ts +127 -0
  342. package/dist/graph/traversal.d.ts.map +1 -0
  343. package/dist/graph/traversal.js +599 -0
  344. package/dist/graph/traversal.js.map +1 -0
  345. package/dist/graph/type-hierarchy.d.ts +155 -0
  346. package/dist/graph/type-hierarchy.d.ts.map +1 -0
  347. package/dist/graph/type-hierarchy.js +382 -0
  348. package/dist/graph/type-hierarchy.js.map +1 -0
  349. package/dist/index.d.ts +874 -0
  350. package/dist/index.d.ts.map +1 -0
  351. package/dist/index.js +2005 -0
  352. package/dist/index.js.map +1 -0
  353. package/dist/installer/config-writer.d.ts +28 -0
  354. package/dist/installer/config-writer.d.ts.map +1 -0
  355. package/dist/installer/config-writer.js +91 -0
  356. package/dist/installer/config-writer.js.map +1 -0
  357. package/dist/installer/index.d.ts +143 -0
  358. package/dist/installer/index.d.ts.map +1 -0
  359. package/dist/installer/index.js +621 -0
  360. package/dist/installer/index.js.map +1 -0
  361. package/dist/installer/instructions-template.d.ts +41 -0
  362. package/dist/installer/instructions-template.d.ts.map +1 -0
  363. package/dist/installer/instructions-template.js +53 -0
  364. package/dist/installer/instructions-template.js.map +1 -0
  365. package/dist/installer/targets/antigravity.d.ts +57 -0
  366. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  367. package/dist/installer/targets/antigravity.js +308 -0
  368. package/dist/installer/targets/antigravity.js.map +1 -0
  369. package/dist/installer/targets/claude.d.ts +65 -0
  370. package/dist/installer/targets/claude.d.ts.map +1 -0
  371. package/dist/installer/targets/claude.js +514 -0
  372. package/dist/installer/targets/claude.js.map +1 -0
  373. package/dist/installer/targets/codex.d.ts +33 -0
  374. package/dist/installer/targets/codex.d.ts.map +1 -0
  375. package/dist/installer/targets/codex.js +212 -0
  376. package/dist/installer/targets/codex.js.map +1 -0
  377. package/dist/installer/targets/copilot-cli.d.ts +32 -0
  378. package/dist/installer/targets/copilot-cli.d.ts.map +1 -0
  379. package/dist/installer/targets/copilot-cli.js +215 -0
  380. package/dist/installer/targets/copilot-cli.js.map +1 -0
  381. package/dist/installer/targets/copilot-jetbrains.d.ts +42 -0
  382. package/dist/installer/targets/copilot-jetbrains.d.ts.map +1 -0
  383. package/dist/installer/targets/copilot-jetbrains.js +238 -0
  384. package/dist/installer/targets/copilot-jetbrains.js.map +1 -0
  385. package/dist/installer/targets/copilot-vscode.d.ts +47 -0
  386. package/dist/installer/targets/copilot-vscode.d.ts.map +1 -0
  387. package/dist/installer/targets/copilot-vscode.js +219 -0
  388. package/dist/installer/targets/copilot-vscode.js.map +1 -0
  389. package/dist/installer/targets/cursor.d.ts +35 -0
  390. package/dist/installer/targets/cursor.d.ts.map +1 -0
  391. package/dist/installer/targets/cursor.js +254 -0
  392. package/dist/installer/targets/cursor.js.map +1 -0
  393. package/dist/installer/targets/gemini.d.ts +26 -0
  394. package/dist/installer/targets/gemini.d.ts.map +1 -0
  395. package/dist/installer/targets/gemini.js +165 -0
  396. package/dist/installer/targets/gemini.js.map +1 -0
  397. package/dist/installer/targets/hermes.d.ts +18 -0
  398. package/dist/installer/targets/hermes.d.ts.map +1 -0
  399. package/dist/installer/targets/hermes.js +359 -0
  400. package/dist/installer/targets/hermes.js.map +1 -0
  401. package/dist/installer/targets/kiro.d.ts +27 -0
  402. package/dist/installer/targets/kiro.d.ts.map +1 -0
  403. package/dist/installer/targets/kiro.js +178 -0
  404. package/dist/installer/targets/kiro.js.map +1 -0
  405. package/dist/installer/targets/opencode.d.ts +49 -0
  406. package/dist/installer/targets/opencode.d.ts.map +1 -0
  407. package/dist/installer/targets/opencode.js +339 -0
  408. package/dist/installer/targets/opencode.js.map +1 -0
  409. package/dist/installer/targets/registry.d.ts +35 -0
  410. package/dist/installer/targets/registry.d.ts.map +1 -0
  411. package/dist/installer/targets/registry.js +97 -0
  412. package/dist/installer/targets/registry.js.map +1 -0
  413. package/dist/installer/targets/shared.d.ts +101 -0
  414. package/dist/installer/targets/shared.d.ts.map +1 -0
  415. package/dist/installer/targets/shared.js +264 -0
  416. package/dist/installer/targets/shared.js.map +1 -0
  417. package/dist/installer/targets/toml.d.ts +53 -0
  418. package/dist/installer/targets/toml.d.ts.map +1 -0
  419. package/dist/installer/targets/toml.js +226 -0
  420. package/dist/installer/targets/toml.js.map +1 -0
  421. package/dist/installer/targets/types.d.ts +108 -0
  422. package/dist/installer/targets/types.d.ts.map +1 -0
  423. package/dist/installer/targets/types.js +16 -0
  424. package/dist/installer/targets/types.js.map +1 -0
  425. package/dist/mcp/daemon-manager.d.ts +42 -0
  426. package/dist/mcp/daemon-manager.d.ts.map +1 -0
  427. package/dist/mcp/daemon-manager.js +141 -0
  428. package/dist/mcp/daemon-manager.js.map +1 -0
  429. package/dist/mcp/daemon-paths.d.ts +81 -0
  430. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  431. package/dist/mcp/daemon-paths.js +228 -0
  432. package/dist/mcp/daemon-paths.js.map +1 -0
  433. package/dist/mcp/daemon-registry.d.ts +57 -0
  434. package/dist/mcp/daemon-registry.d.ts.map +1 -0
  435. package/dist/mcp/daemon-registry.js +323 -0
  436. package/dist/mcp/daemon-registry.js.map +1 -0
  437. package/dist/mcp/daemon.d.ts +294 -0
  438. package/dist/mcp/daemon.d.ts.map +1 -0
  439. package/dist/mcp/daemon.js +897 -0
  440. package/dist/mcp/daemon.js.map +1 -0
  441. package/dist/mcp/dynamic-boundaries.d.ts +32 -0
  442. package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  443. package/dist/mcp/dynamic-boundaries.js +323 -0
  444. package/dist/mcp/dynamic-boundaries.js.map +1 -0
  445. package/dist/mcp/early-ppid.d.ts +26 -0
  446. package/dist/mcp/early-ppid.d.ts.map +1 -0
  447. package/dist/mcp/early-ppid.js +29 -0
  448. package/dist/mcp/early-ppid.js.map +1 -0
  449. package/dist/mcp/engine.d.ts +133 -0
  450. package/dist/mcp/engine.d.ts.map +1 -0
  451. package/dist/mcp/engine.js +421 -0
  452. package/dist/mcp/engine.js.map +1 -0
  453. package/dist/mcp/explore-dedup.d.ts +140 -0
  454. package/dist/mcp/explore-dedup.d.ts.map +1 -0
  455. package/dist/mcp/explore-dedup.js +239 -0
  456. package/dist/mcp/explore-dedup.js.map +1 -0
  457. package/dist/mcp/explore-diagnostics.d.ts +289 -0
  458. package/dist/mcp/explore-diagnostics.d.ts.map +1 -0
  459. package/dist/mcp/explore-diagnostics.js +558 -0
  460. package/dist/mcp/explore-diagnostics.js.map +1 -0
  461. package/dist/mcp/explore-session-state.d.ts +217 -0
  462. package/dist/mcp/explore-session-state.d.ts.map +1 -0
  463. package/dist/mcp/explore-session-state.js +322 -0
  464. package/dist/mcp/explore-session-state.js.map +1 -0
  465. package/dist/mcp/index.d.ts +139 -0
  466. package/dist/mcp/index.d.ts.map +1 -0
  467. package/dist/mcp/index.js +636 -0
  468. package/dist/mcp/index.js.map +1 -0
  469. package/dist/mcp/liveness-watchdog.d.ts +35 -0
  470. package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  471. package/dist/mcp/liveness-watchdog.js +269 -0
  472. package/dist/mcp/liveness-watchdog.js.map +1 -0
  473. package/dist/mcp/ppid-watchdog.d.ts +62 -0
  474. package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  475. package/dist/mcp/ppid-watchdog.js +64 -0
  476. package/dist/mcp/ppid-watchdog.js.map +1 -0
  477. package/dist/mcp/proxy.d.ts +87 -0
  478. package/dist/mcp/proxy.d.ts.map +1 -0
  479. package/dist/mcp/proxy.js +672 -0
  480. package/dist/mcp/proxy.js.map +1 -0
  481. package/dist/mcp/query-pool.d.ts +108 -0
  482. package/dist/mcp/query-pool.d.ts.map +1 -0
  483. package/dist/mcp/query-pool.js +315 -0
  484. package/dist/mcp/query-pool.js.map +1 -0
  485. package/dist/mcp/query-worker.d.ts +24 -0
  486. package/dist/mcp/query-worker.d.ts.map +1 -0
  487. package/dist/mcp/query-worker.js +87 -0
  488. package/dist/mcp/query-worker.js.map +1 -0
  489. package/dist/mcp/server-instructions.d.ts +34 -0
  490. package/dist/mcp/server-instructions.d.ts.map +1 -0
  491. package/dist/mcp/server-instructions.js +113 -0
  492. package/dist/mcp/server-instructions.js.map +1 -0
  493. package/dist/mcp/session.d.ts +109 -0
  494. package/dist/mcp/session.d.ts.map +1 -0
  495. package/dist/mcp/session.js +380 -0
  496. package/dist/mcp/session.js.map +1 -0
  497. package/dist/mcp/startup-handshake.d.ts +44 -0
  498. package/dist/mcp/startup-handshake.d.ts.map +1 -0
  499. package/dist/mcp/startup-handshake.js +73 -0
  500. package/dist/mcp/startup-handshake.js.map +1 -0
  501. package/dist/mcp/stdin-teardown.d.ts +27 -0
  502. package/dist/mcp/stdin-teardown.d.ts.map +1 -0
  503. package/dist/mcp/stdin-teardown.js +49 -0
  504. package/dist/mcp/stdin-teardown.js.map +1 -0
  505. package/dist/mcp/tools.d.ts +936 -0
  506. package/dist/mcp/tools.d.ts.map +1 -0
  507. package/dist/mcp/tools.js +6611 -0
  508. package/dist/mcp/tools.js.map +1 -0
  509. package/dist/mcp/transport.d.ts +188 -0
  510. package/dist/mcp/transport.d.ts.map +1 -0
  511. package/dist/mcp/transport.js +377 -0
  512. package/dist/mcp/transport.js.map +1 -0
  513. package/dist/mcp/version.d.ts +19 -0
  514. package/dist/mcp/version.d.ts.map +1 -0
  515. package/dist/mcp/version.js +71 -0
  516. package/dist/mcp/version.js.map +1 -0
  517. package/dist/mcp/writer-lock.d.ts +47 -0
  518. package/dist/mcp/writer-lock.d.ts.map +1 -0
  519. package/dist/mcp/writer-lock.js +218 -0
  520. package/dist/mcp/writer-lock.js.map +1 -0
  521. package/dist/project-config.d.ts +117 -0
  522. package/dist/project-config.d.ts.map +1 -0
  523. package/dist/project-config.js +409 -0
  524. package/dist/project-config.js.map +1 -0
  525. package/dist/resolution/alias-binding.d.ts +56 -0
  526. package/dist/resolution/alias-binding.d.ts.map +1 -0
  527. package/dist/resolution/alias-binding.js +118 -0
  528. package/dist/resolution/alias-binding.js.map +1 -0
  529. package/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
  530. package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
  531. package/dist/resolution/c-fnptr-synthesizer.js +1506 -0
  532. package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
  533. package/dist/resolution/callback-synthesizer.d.ts +78 -0
  534. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  535. package/dist/resolution/callback-synthesizer.js +4105 -0
  536. package/dist/resolution/callback-synthesizer.js.map +1 -0
  537. package/dist/resolution/cooperative-yield.d.ts +40 -0
  538. package/dist/resolution/cooperative-yield.d.ts.map +1 -0
  539. package/dist/resolution/cooperative-yield.js +44 -0
  540. package/dist/resolution/cooperative-yield.js.map +1 -0
  541. package/dist/resolution/expo-router-synthesizer.d.ts +32 -0
  542. package/dist/resolution/expo-router-synthesizer.d.ts.map +1 -0
  543. package/dist/resolution/expo-router-synthesizer.js +189 -0
  544. package/dist/resolution/expo-router-synthesizer.js.map +1 -0
  545. package/dist/resolution/frameworks/astro.d.ts +9 -0
  546. package/dist/resolution/frameworks/astro.d.ts.map +1 -0
  547. package/dist/resolution/frameworks/astro.js +169 -0
  548. package/dist/resolution/frameworks/astro.js.map +1 -0
  549. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  550. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  551. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  552. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  553. package/dist/resolution/frameworks/cics.d.ts +20 -0
  554. package/dist/resolution/frameworks/cics.d.ts.map +1 -0
  555. package/dist/resolution/frameworks/cics.js +90 -0
  556. package/dist/resolution/frameworks/cics.js.map +1 -0
  557. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  558. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  559. package/dist/resolution/frameworks/csharp.js +335 -0
  560. package/dist/resolution/frameworks/csharp.js.map +1 -0
  561. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  562. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  563. package/dist/resolution/frameworks/drupal.js +367 -0
  564. package/dist/resolution/frameworks/drupal.js.map +1 -0
  565. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  566. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  567. package/dist/resolution/frameworks/expo-modules.js +148 -0
  568. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  569. package/dist/resolution/frameworks/expo-router.d.ts +189 -0
  570. package/dist/resolution/frameworks/expo-router.d.ts.map +1 -0
  571. package/dist/resolution/frameworks/expo-router.js +785 -0
  572. package/dist/resolution/frameworks/expo-router.js.map +1 -0
  573. package/dist/resolution/frameworks/express.d.ts +8 -0
  574. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  575. package/dist/resolution/frameworks/express.js +540 -0
  576. package/dist/resolution/frameworks/express.js.map +1 -0
  577. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  578. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  579. package/dist/resolution/frameworks/fabric.js +354 -0
  580. package/dist/resolution/frameworks/fabric.js.map +1 -0
  581. package/dist/resolution/frameworks/go.d.ts +8 -0
  582. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  583. package/dist/resolution/frameworks/go.js +184 -0
  584. package/dist/resolution/frameworks/go.js.map +1 -0
  585. package/dist/resolution/frameworks/goframe.d.ts +41 -0
  586. package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
  587. package/dist/resolution/frameworks/goframe.js +112 -0
  588. package/dist/resolution/frameworks/goframe.js.map +1 -0
  589. package/dist/resolution/frameworks/index.d.ts +55 -0
  590. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  591. package/dist/resolution/frameworks/index.js +203 -0
  592. package/dist/resolution/frameworks/index.js.map +1 -0
  593. package/dist/resolution/frameworks/java.d.ts +8 -0
  594. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  595. package/dist/resolution/frameworks/java.js +539 -0
  596. package/dist/resolution/frameworks/java.js.map +1 -0
  597. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  598. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  599. package/dist/resolution/frameworks/laravel.js +257 -0
  600. package/dist/resolution/frameworks/laravel.js.map +1 -0
  601. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  602. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  603. package/dist/resolution/frameworks/nestjs.js +690 -0
  604. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  605. package/dist/resolution/frameworks/nextjs.d.ts +76 -0
  606. package/dist/resolution/frameworks/nextjs.d.ts.map +1 -0
  607. package/dist/resolution/frameworks/nextjs.js +328 -0
  608. package/dist/resolution/frameworks/nextjs.js.map +1 -0
  609. package/dist/resolution/frameworks/object-literal.d.ts +32 -0
  610. package/dist/resolution/frameworks/object-literal.d.ts.map +1 -0
  611. package/dist/resolution/frameworks/object-literal.js +139 -0
  612. package/dist/resolution/frameworks/object-literal.js.map +1 -0
  613. package/dist/resolution/frameworks/package-deps.d.ts +14 -0
  614. package/dist/resolution/frameworks/package-deps.d.ts.map +1 -0
  615. package/dist/resolution/frameworks/package-deps.js +78 -0
  616. package/dist/resolution/frameworks/package-deps.js.map +1 -0
  617. package/dist/resolution/frameworks/play.d.ts +19 -0
  618. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  619. package/dist/resolution/frameworks/play.js +111 -0
  620. package/dist/resolution/frameworks/play.js.map +1 -0
  621. package/dist/resolution/frameworks/python.d.ts +10 -0
  622. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  623. package/dist/resolution/frameworks/python.js +566 -0
  624. package/dist/resolution/frameworks/python.js.map +1 -0
  625. package/dist/resolution/frameworks/react-native.d.ts +29 -0
  626. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  627. package/dist/resolution/frameworks/react-native.js +549 -0
  628. package/dist/resolution/frameworks/react-native.js.map +1 -0
  629. package/dist/resolution/frameworks/react-router.d.ts +46 -0
  630. package/dist/resolution/frameworks/react-router.d.ts.map +1 -0
  631. package/dist/resolution/frameworks/react-router.js +187 -0
  632. package/dist/resolution/frameworks/react-router.js.map +1 -0
  633. package/dist/resolution/frameworks/react.d.ts +9 -0
  634. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  635. package/dist/resolution/frameworks/react.js +257 -0
  636. package/dist/resolution/frameworks/react.js.map +1 -0
  637. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  638. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  639. package/dist/resolution/frameworks/ruby.js +302 -0
  640. package/dist/resolution/frameworks/ruby.js.map +1 -0
  641. package/dist/resolution/frameworks/rust.d.ts +8 -0
  642. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  643. package/dist/resolution/frameworks/rust.js +304 -0
  644. package/dist/resolution/frameworks/rust.js.map +1 -0
  645. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  646. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  647. package/dist/resolution/frameworks/svelte.js +258 -0
  648. package/dist/resolution/frameworks/svelte.js.map +1 -0
  649. package/dist/resolution/frameworks/sveltekit-router.d.ts +36 -0
  650. package/dist/resolution/frameworks/sveltekit-router.d.ts.map +1 -0
  651. package/dist/resolution/frameworks/sveltekit-router.js +156 -0
  652. package/dist/resolution/frameworks/sveltekit-router.js.map +1 -0
  653. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  654. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  655. package/dist/resolution/frameworks/swift-objc.js +252 -0
  656. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  657. package/dist/resolution/frameworks/swift.d.ts +10 -0
  658. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  659. package/dist/resolution/frameworks/swift.js +410 -0
  660. package/dist/resolution/frameworks/swift.js.map +1 -0
  661. package/dist/resolution/frameworks/tanstack-router.d.ts +84 -0
  662. package/dist/resolution/frameworks/tanstack-router.d.ts.map +1 -0
  663. package/dist/resolution/frameworks/tanstack-router.js +437 -0
  664. package/dist/resolution/frameworks/tanstack-router.js.map +1 -0
  665. package/dist/resolution/frameworks/terraform.d.ts +38 -0
  666. package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  667. package/dist/resolution/frameworks/terraform.js +277 -0
  668. package/dist/resolution/frameworks/terraform.js.map +1 -0
  669. package/dist/resolution/frameworks/vue-router.d.ts +82 -0
  670. package/dist/resolution/frameworks/vue-router.d.ts.map +1 -0
  671. package/dist/resolution/frameworks/vue-router.js +377 -0
  672. package/dist/resolution/frameworks/vue-router.js.map +1 -0
  673. package/dist/resolution/frameworks/vue.d.ts +9 -0
  674. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  675. package/dist/resolution/frameworks/vue.js +303 -0
  676. package/dist/resolution/frameworks/vue.js.map +1 -0
  677. package/dist/resolution/go-module.d.ts +26 -0
  678. package/dist/resolution/go-module.d.ts.map +1 -0
  679. package/dist/resolution/go-module.js +78 -0
  680. package/dist/resolution/go-module.js.map +1 -0
  681. package/dist/resolution/goframe-synthesizer.d.ts +29 -0
  682. package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
  683. package/dist/resolution/goframe-synthesizer.js +163 -0
  684. package/dist/resolution/goframe-synthesizer.js.map +1 -0
  685. package/dist/resolution/import-resolver.d.ts +122 -0
  686. package/dist/resolution/import-resolver.d.ts.map +1 -0
  687. package/dist/resolution/import-resolver.js +2490 -0
  688. package/dist/resolution/import-resolver.js.map +1 -0
  689. package/dist/resolution/index.d.ts +402 -0
  690. package/dist/resolution/index.d.ts.map +1 -0
  691. package/dist/resolution/index.js +2581 -0
  692. package/dist/resolution/index.js.map +1 -0
  693. package/dist/resolution/js-builtins.d.ts +11 -0
  694. package/dist/resolution/js-builtins.d.ts.map +1 -0
  695. package/dist/resolution/js-builtins.js +23 -0
  696. package/dist/resolution/js-builtins.js.map +1 -0
  697. package/dist/resolution/lru-cache.d.ts +24 -0
  698. package/dist/resolution/lru-cache.d.ts.map +1 -0
  699. package/dist/resolution/lru-cache.js +62 -0
  700. package/dist/resolution/lru-cache.js.map +1 -0
  701. package/dist/resolution/memory-budget.d.ts +48 -0
  702. package/dist/resolution/memory-budget.d.ts.map +1 -0
  703. package/dist/resolution/memory-budget.js +162 -0
  704. package/dist/resolution/memory-budget.js.map +1 -0
  705. package/dist/resolution/name-matcher.d.ts +196 -0
  706. package/dist/resolution/name-matcher.d.ts.map +1 -0
  707. package/dist/resolution/name-matcher.js +3484 -0
  708. package/dist/resolution/name-matcher.js.map +1 -0
  709. package/dist/resolution/next-router-synthesizer.d.ts +27 -0
  710. package/dist/resolution/next-router-synthesizer.d.ts.map +1 -0
  711. package/dist/resolution/next-router-synthesizer.js +113 -0
  712. package/dist/resolution/next-router-synthesizer.js.map +1 -0
  713. package/dist/resolution/path-aliases.d.ts +70 -0
  714. package/dist/resolution/path-aliases.d.ts.map +1 -0
  715. package/dist/resolution/path-aliases.js +346 -0
  716. package/dist/resolution/path-aliases.js.map +1 -0
  717. package/dist/resolution/react-router-synthesizer.d.ts +33 -0
  718. package/dist/resolution/react-router-synthesizer.d.ts.map +1 -0
  719. package/dist/resolution/react-router-synthesizer.js +126 -0
  720. package/dist/resolution/react-router-synthesizer.js.map +1 -0
  721. package/dist/resolution/resolver-pool.d.ts +106 -0
  722. package/dist/resolution/resolver-pool.d.ts.map +1 -0
  723. package/dist/resolution/resolver-pool.js +344 -0
  724. package/dist/resolution/resolver-pool.js.map +1 -0
  725. package/dist/resolution/resolver-worker.d.ts +17 -0
  726. package/dist/resolution/resolver-worker.d.ts.map +1 -0
  727. package/dist/resolution/resolver-worker.js +141 -0
  728. package/dist/resolution/resolver-worker.js.map +1 -0
  729. package/dist/resolution/strip-comments.d.ts +33 -0
  730. package/dist/resolution/strip-comments.d.ts.map +1 -0
  731. package/dist/resolution/strip-comments.js +550 -0
  732. package/dist/resolution/strip-comments.js.map +1 -0
  733. package/dist/resolution/sveltekit-synthesizer.d.ts +58 -0
  734. package/dist/resolution/sveltekit-synthesizer.d.ts.map +1 -0
  735. package/dist/resolution/sveltekit-synthesizer.js +173 -0
  736. package/dist/resolution/sveltekit-synthesizer.js.map +1 -0
  737. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  738. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  739. package/dist/resolution/swift-objc-bridge.js +256 -0
  740. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  741. package/dist/resolution/synth-utils.d.ts +26 -0
  742. package/dist/resolution/synth-utils.d.ts.map +1 -0
  743. package/dist/resolution/synth-utils.js +75 -0
  744. package/dist/resolution/synth-utils.js.map +1 -0
  745. package/dist/resolution/tanstack-router-synthesizer.d.ts +31 -0
  746. package/dist/resolution/tanstack-router-synthesizer.d.ts.map +1 -0
  747. package/dist/resolution/tanstack-router-synthesizer.js +114 -0
  748. package/dist/resolution/tanstack-router-synthesizer.js.map +1 -0
  749. package/dist/resolution/tier-synthesizer.d.ts +48 -0
  750. package/dist/resolution/tier-synthesizer.d.ts.map +1 -0
  751. package/dist/resolution/tier-synthesizer.js +907 -0
  752. package/dist/resolution/tier-synthesizer.js.map +1 -0
  753. package/dist/resolution/types.d.ts +323 -0
  754. package/dist/resolution/types.d.ts.map +1 -0
  755. package/dist/resolution/types.js +58 -0
  756. package/dist/resolution/types.js.map +1 -0
  757. package/dist/resolution/vue-router-synthesizer.d.ts +30 -0
  758. package/dist/resolution/vue-router-synthesizer.d.ts.map +1 -0
  759. package/dist/resolution/vue-router-synthesizer.js +115 -0
  760. package/dist/resolution/vue-router-synthesizer.js.map +1 -0
  761. package/dist/resolution/workspace-packages.d.ts +58 -0
  762. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  763. package/dist/resolution/workspace-packages.js +346 -0
  764. package/dist/resolution/workspace-packages.js.map +1 -0
  765. package/dist/search/identifier-segments.d.ts +70 -0
  766. package/dist/search/identifier-segments.d.ts.map +1 -0
  767. package/dist/search/identifier-segments.js +205 -0
  768. package/dist/search/identifier-segments.js.map +1 -0
  769. package/dist/search/query-parser.d.ts +57 -0
  770. package/dist/search/query-parser.d.ts.map +1 -0
  771. package/dist/search/query-parser.js +177 -0
  772. package/dist/search/query-parser.js.map +1 -0
  773. package/dist/search/query-paths.d.ts +57 -0
  774. package/dist/search/query-paths.d.ts.map +1 -0
  775. package/dist/search/query-paths.js +298 -0
  776. package/dist/search/query-paths.js.map +1 -0
  777. package/dist/search/query-utils.d.ts +102 -0
  778. package/dist/search/query-utils.d.ts.map +1 -0
  779. package/dist/search/query-utils.js +487 -0
  780. package/dist/search/query-utils.js.map +1 -0
  781. package/dist/sync/git-hooks.d.ts +45 -0
  782. package/dist/sync/git-hooks.d.ts.map +1 -0
  783. package/dist/sync/git-hooks.js +227 -0
  784. package/dist/sync/git-hooks.js.map +1 -0
  785. package/dist/sync/index.d.ts +19 -0
  786. package/dist/sync/index.d.ts.map +1 -0
  787. package/dist/sync/index.js +35 -0
  788. package/dist/sync/index.js.map +1 -0
  789. package/dist/sync/watch-policy.d.ts +48 -0
  790. package/dist/sync/watch-policy.d.ts.map +1 -0
  791. package/dist/sync/watch-policy.js +124 -0
  792. package/dist/sync/watch-policy.js.map +1 -0
  793. package/dist/sync/watcher.d.ts +402 -0
  794. package/dist/sync/watcher.d.ts.map +1 -0
  795. package/dist/sync/watcher.js +978 -0
  796. package/dist/sync/watcher.js.map +1 -0
  797. package/dist/sync/worktree.d.ts +63 -0
  798. package/dist/sync/worktree.d.ts.map +1 -0
  799. package/dist/sync/worktree.js +182 -0
  800. package/dist/sync/worktree.js.map +1 -0
  801. package/dist/telemetry/index.d.ts +145 -0
  802. package/dist/telemetry/index.d.ts.map +1 -0
  803. package/dist/telemetry/index.js +592 -0
  804. package/dist/telemetry/index.js.map +1 -0
  805. package/dist/types.d.ts +473 -0
  806. package/dist/types.d.ts.map +1 -0
  807. package/dist/types.js +118 -0
  808. package/dist/types.js.map +1 -0
  809. package/dist/ui/color.d.ts +21 -0
  810. package/dist/ui/color.d.ts.map +1 -0
  811. package/dist/ui/color.js +42 -0
  812. package/dist/ui/color.js.map +1 -0
  813. package/dist/ui/glyphs.d.ts +67 -0
  814. package/dist/ui/glyphs.d.ts.map +1 -0
  815. package/dist/ui/glyphs.js +125 -0
  816. package/dist/ui/glyphs.js.map +1 -0
  817. package/dist/ui/shimmer-progress.d.ts +11 -0
  818. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  819. package/dist/ui/shimmer-progress.js +164 -0
  820. package/dist/ui/shimmer-progress.js.map +1 -0
  821. package/dist/ui/shimmer-worker.d.ts +2 -0
  822. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  823. package/dist/ui/shimmer-worker.js +126 -0
  824. package/dist/ui/shimmer-worker.js.map +1 -0
  825. package/dist/ui/types.d.ts +15 -0
  826. package/dist/ui/types.d.ts.map +1 -0
  827. package/dist/ui/types.js +3 -0
  828. package/dist/ui/types.js.map +1 -0
  829. package/dist/ui-server/api/deadcode.d.ts +84 -0
  830. package/dist/ui-server/api/deadcode.d.ts.map +1 -0
  831. package/dist/ui-server/api/deadcode.js +136 -0
  832. package/dist/ui-server/api/deadcode.js.map +1 -0
  833. package/dist/ui-server/api/effects.d.ts +87 -0
  834. package/dist/ui-server/api/effects.d.ts.map +1 -0
  835. package/dist/ui-server/api/effects.js +499 -0
  836. package/dist/ui-server/api/effects.js.map +1 -0
  837. package/dist/ui-server/api/entrypoints.d.ts +86 -0
  838. package/dist/ui-server/api/entrypoints.d.ts.map +1 -0
  839. package/dist/ui-server/api/entrypoints.js +279 -0
  840. package/dist/ui-server/api/entrypoints.js.map +1 -0
  841. package/dist/ui-server/api/events.d.ts +183 -0
  842. package/dist/ui-server/api/events.d.ts.map +1 -0
  843. package/dist/ui-server/api/events.js +430 -0
  844. package/dist/ui-server/api/events.js.map +1 -0
  845. package/dist/ui-server/api/file.d.ts +66 -0
  846. package/dist/ui-server/api/file.d.ts.map +1 -0
  847. package/dist/ui-server/api/file.js +235 -0
  848. package/dist/ui-server/api/file.js.map +1 -0
  849. package/dist/ui-server/api/filecode.d.ts +126 -0
  850. package/dist/ui-server/api/filecode.d.ts.map +1 -0
  851. package/dist/ui-server/api/filecode.js +205 -0
  852. package/dist/ui-server/api/filecode.js.map +1 -0
  853. package/dist/ui-server/api/flow.d.ts +226 -0
  854. package/dist/ui-server/api/flow.d.ts.map +1 -0
  855. package/dist/ui-server/api/flow.js +611 -0
  856. package/dist/ui-server/api/flow.js.map +1 -0
  857. package/dist/ui-server/api/hierarchy.d.ts +81 -0
  858. package/dist/ui-server/api/hierarchy.d.ts.map +1 -0
  859. package/dist/ui-server/api/hierarchy.js +92 -0
  860. package/dist/ui-server/api/hierarchy.js.map +1 -0
  861. package/dist/ui-server/api/index.d.ts +90 -0
  862. package/dist/ui-server/api/index.d.ts.map +1 -0
  863. package/dist/ui-server/api/index.js +332 -0
  864. package/dist/ui-server/api/index.js.map +1 -0
  865. package/dist/ui-server/api/map.d.ts +238 -0
  866. package/dist/ui-server/api/map.d.ts.map +1 -0
  867. package/dist/ui-server/api/map.js +681 -0
  868. package/dist/ui-server/api/map.js.map +1 -0
  869. package/dist/ui-server/api/node.d.ts +81 -0
  870. package/dist/ui-server/api/node.d.ts.map +1 -0
  871. package/dist/ui-server/api/node.js +388 -0
  872. package/dist/ui-server/api/node.js.map +1 -0
  873. package/dist/ui-server/api/nodes.d.ts +25 -0
  874. package/dist/ui-server/api/nodes.d.ts.map +1 -0
  875. package/dist/ui-server/api/nodes.js +45 -0
  876. package/dist/ui-server/api/nodes.js.map +1 -0
  877. package/dist/ui-server/api/program.d.ts +139 -0
  878. package/dist/ui-server/api/program.d.ts.map +1 -0
  879. package/dist/ui-server/api/program.js +315 -0
  880. package/dist/ui-server/api/program.js.map +1 -0
  881. package/dist/ui-server/api/respond.d.ts +76 -0
  882. package/dist/ui-server/api/respond.d.ts.map +1 -0
  883. package/dist/ui-server/api/respond.js +186 -0
  884. package/dist/ui-server/api/respond.js.map +1 -0
  885. package/dist/ui-server/api/route-roots.d.ts +39 -0
  886. package/dist/ui-server/api/route-roots.d.ts.map +1 -0
  887. package/dist/ui-server/api/route-roots.js +96 -0
  888. package/dist/ui-server/api/route-roots.js.map +1 -0
  889. package/dist/ui-server/api/routes.d.ts +59 -0
  890. package/dist/ui-server/api/routes.d.ts.map +1 -0
  891. package/dist/ui-server/api/routes.js +112 -0
  892. package/dist/ui-server/api/routes.js.map +1 -0
  893. package/dist/ui-server/api/screens.d.ts +117 -0
  894. package/dist/ui-server/api/screens.d.ts.map +1 -0
  895. package/dist/ui-server/api/screens.js +611 -0
  896. package/dist/ui-server/api/screens.js.map +1 -0
  897. package/dist/ui-server/api/search.d.ts +29 -0
  898. package/dist/ui-server/api/search.d.ts.map +1 -0
  899. package/dist/ui-server/api/search.js +232 -0
  900. package/dist/ui-server/api/search.js.map +1 -0
  901. package/dist/ui-server/api/session.d.ts +52 -0
  902. package/dist/ui-server/api/session.d.ts.map +1 -0
  903. package/dist/ui-server/api/session.js +199 -0
  904. package/dist/ui-server/api/session.js.map +1 -0
  905. package/dist/ui-server/api/source.d.ts +200 -0
  906. package/dist/ui-server/api/source.d.ts.map +1 -0
  907. package/dist/ui-server/api/source.js +419 -0
  908. package/dist/ui-server/api/source.js.map +1 -0
  909. package/dist/ui-server/api/stats.d.ts +27 -0
  910. package/dist/ui-server/api/stats.d.ts.map +1 -0
  911. package/dist/ui-server/api/stats.js +164 -0
  912. package/dist/ui-server/api/stats.js.map +1 -0
  913. package/dist/ui-server/api/steps.d.ts +274 -0
  914. package/dist/ui-server/api/steps.d.ts.map +1 -0
  915. package/dist/ui-server/api/steps.js +1446 -0
  916. package/dist/ui-server/api/steps.js.map +1 -0
  917. package/dist/ui-server/api/trail-store.d.ts +142 -0
  918. package/dist/ui-server/api/trail-store.d.ts.map +1 -0
  919. package/dist/ui-server/api/trail-store.js +323 -0
  920. package/dist/ui-server/api/trail-store.js.map +1 -0
  921. package/dist/ui-server/api/trails.d.ts +163 -0
  922. package/dist/ui-server/api/trails.d.ts.map +1 -0
  923. package/dist/ui-server/api/trails.js +369 -0
  924. package/dist/ui-server/api/trails.js.map +1 -0
  925. package/dist/ui-server/api/when.d.ts +125 -0
  926. package/dist/ui-server/api/when.d.ts.map +1 -0
  927. package/dist/ui-server/api/when.js +251 -0
  928. package/dist/ui-server/api/when.js.map +1 -0
  929. package/dist/ui-server/api/wire.d.ts +179 -0
  930. package/dist/ui-server/api/wire.d.ts.map +1 -0
  931. package/dist/ui-server/api/wire.js +231 -0
  932. package/dist/ui-server/api/wire.js.map +1 -0
  933. package/dist/ui-server/assets.d.ts +40 -0
  934. package/dist/ui-server/assets.d.ts.map +1 -0
  935. package/dist/ui-server/assets.js +110 -0
  936. package/dist/ui-server/assets.js.map +1 -0
  937. package/dist/ui-server/constants.d.ts +32 -0
  938. package/dist/ui-server/constants.d.ts.map +1 -0
  939. package/dist/ui-server/constants.js +35 -0
  940. package/dist/ui-server/constants.js.map +1 -0
  941. package/dist/ui-server/highlight/index.d.ts +113 -0
  942. package/dist/ui-server/highlight/index.d.ts.map +1 -0
  943. package/dist/ui-server/highlight/index.js +307 -0
  944. package/dist/ui-server/highlight/index.js.map +1 -0
  945. package/dist/ui-server/highlight/languages.d.ts +36 -0
  946. package/dist/ui-server/highlight/languages.d.ts.map +1 -0
  947. package/dist/ui-server/highlight/languages.js +50 -0
  948. package/dist/ui-server/highlight/languages.js.map +1 -0
  949. package/dist/ui-server/index.d.ts +92 -0
  950. package/dist/ui-server/index.d.ts.map +1 -0
  951. package/dist/ui-server/index.js +399 -0
  952. package/dist/ui-server/index.js.map +1 -0
  953. package/dist/ui-server/open-browser.d.ts +31 -0
  954. package/dist/ui-server/open-browser.d.ts.map +1 -0
  955. package/dist/ui-server/open-browser.js +79 -0
  956. package/dist/ui-server/open-browser.js.map +1 -0
  957. package/dist/ui-server/security.d.ts +127 -0
  958. package/dist/ui-server/security.d.ts.map +1 -0
  959. package/dist/ui-server/security.js +332 -0
  960. package/dist/ui-server/security.js.map +1 -0
  961. package/dist/ui-server/static.d.ts +45 -0
  962. package/dist/ui-server/static.d.ts.map +1 -0
  963. package/dist/ui-server/static.js +165 -0
  964. package/dist/ui-server/static.js.map +1 -0
  965. package/dist/upgrade/index.d.ts +164 -0
  966. package/dist/upgrade/index.d.ts.map +1 -0
  967. package/dist/upgrade/index.js +649 -0
  968. package/dist/upgrade/index.js.map +1 -0
  969. package/dist/upgrade/remove-binary.d.ts +87 -0
  970. package/dist/upgrade/remove-binary.d.ts.map +1 -0
  971. package/dist/upgrade/remove-binary.js +289 -0
  972. package/dist/upgrade/remove-binary.js.map +1 -0
  973. package/dist/upgrade/update-check.d.ts +92 -0
  974. package/dist/upgrade/update-check.d.ts.map +1 -0
  975. package/dist/upgrade/update-check.js +258 -0
  976. package/dist/upgrade/update-check.js.map +1 -0
  977. package/dist/utils.d.ts +238 -0
  978. package/dist/utils.d.ts.map +1 -0
  979. package/dist/utils.js +601 -0
  980. package/dist/utils.js.map +1 -0
  981. package/dist/viewer/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2 +0 -0
  982. package/dist/viewer/assets/archivo-latin-wght-normal-E0tuGl4L.woff2 +0 -0
  983. package/dist/viewer/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2 +0 -0
  984. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-2syK4fUT.woff +0 -0
  985. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-CBJ8pzag.woff2 +0 -0
  986. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
  987. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
  988. package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
  989. package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
  990. package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2 +0 -0
  991. package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff +0 -0
  992. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-B4oTjJdl.woff +0 -0
  993. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-CBjNughH.woff2 +0 -0
  994. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
  995. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
  996. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
  997. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
  998. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff +0 -0
  999. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2 +0 -0
  1000. package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-66oory27.woff +0 -0
  1001. package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-BqAiT5Ww.woff2 +0 -0
  1002. package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  1003. package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  1004. package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  1005. package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  1006. package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
  1007. package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
  1008. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-B7_fu1kp.woff2 +0 -0
  1009. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-Bg0ZHwF4.woff +0 -0
  1010. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
  1011. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
  1012. package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
  1013. package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
  1014. package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2 +0 -0
  1015. package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff +0 -0
  1016. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-D6eaYXMU.woff +0 -0
  1017. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-DRuN92E5.woff2 +0 -0
  1018. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
  1019. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
  1020. package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
  1021. package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
  1022. package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2 +0 -0
  1023. package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff +0 -0
  1024. package/dist/viewer/assets/index-2LG7iXtP.js +97 -0
  1025. package/dist/viewer/assets/index-AtMBttuU.css +1 -0
  1026. package/dist/viewer/index.html +16 -0
  1027. package/package.json +69 -0
  1028. package/scripts/add-lang/bench.sh +60 -0
  1029. package/scripts/add-lang/check-grammar.mjs +75 -0
  1030. package/scripts/add-lang/dump-ast.mjs +103 -0
  1031. package/scripts/add-lang/verify-extraction.mjs +70 -0
  1032. package/scripts/agent-eval/ab-adoption.sh +91 -0
  1033. package/scripts/agent-eval/ab-hook.sh +86 -0
  1034. package/scripts/agent-eval/ab-impl.sh +78 -0
  1035. package/scripts/agent-eval/ab-new-vs-baseline.sh +161 -0
  1036. package/scripts/agent-eval/ab-sufficiency.sh +78 -0
  1037. package/scripts/agent-eval/allocation-fixtures.json +344 -0
  1038. package/scripts/agent-eval/arms-F.sh +21 -0
  1039. package/scripts/agent-eval/arms-matrix.sh +37 -0
  1040. package/scripts/agent-eval/audit.sh +68 -0
  1041. package/scripts/agent-eval/bench-readme.sh +48 -0
  1042. package/scripts/agent-eval/bench-why-repo.sh +22 -0
  1043. package/scripts/agent-eval/block-read-hook.sh +19 -0
  1044. package/scripts/agent-eval/compare-arms.mjs +209 -0
  1045. package/scripts/agent-eval/diff-index-drift.mjs +102 -0
  1046. package/scripts/agent-eval/hook-settings.json +15 -0
  1047. package/scripts/agent-eval/itrun.sh +120 -0
  1048. package/scripts/agent-eval/no-cli-shim.sh +96 -0
  1049. package/scripts/agent-eval/offload-eval-3arm.sh +72 -0
  1050. package/scripts/agent-eval/offload-eval-cost.mjs +133 -0
  1051. package/scripts/agent-eval/offload-eval-effort.mjs +108 -0
  1052. package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -0
  1053. package/scripts/agent-eval/offload-eval-frontload.sh +47 -0
  1054. package/scripts/agent-eval/offload-eval-ground-truth.json +18 -0
  1055. package/scripts/agent-eval/offload-eval-hook.mjs +84 -0
  1056. package/scripts/agent-eval/offload-eval-judge.mjs +103 -0
  1057. package/scripts/agent-eval/offload-eval-matrix.sh +20 -0
  1058. package/scripts/agent-eval/offload-eval-metrics.mjs +94 -0
  1059. package/scripts/agent-eval/offload-eval-refs1.sh +50 -0
  1060. package/scripts/agent-eval/offload-eval-setup.sh +24 -0
  1061. package/scripts/agent-eval/offload-eval-styles.sh +72 -0
  1062. package/scripts/agent-eval/offload-eval-summarize.mjs +68 -0
  1063. package/scripts/agent-eval/offload-eval.md +76 -0
  1064. package/scripts/agent-eval/parse-arms.mjs +116 -0
  1065. package/scripts/agent-eval/parse-bench-readme.mjs +238 -0
  1066. package/scripts/agent-eval/parse-run.mjs +1401 -0
  1067. package/scripts/agent-eval/parse-session.mjs +130 -0
  1068. package/scripts/agent-eval/probe-allocation.mjs +335 -0
  1069. package/scripts/agent-eval/probe-context.mjs +21 -0
  1070. package/scripts/agent-eval/probe-decl-only.mjs +198 -0
  1071. package/scripts/agent-eval/probe-explore.mjs +40 -0
  1072. package/scripts/agent-eval/probe-factory-closure.mjs +147 -0
  1073. package/scripts/agent-eval/probe-file-spend.mjs +195 -0
  1074. package/scripts/agent-eval/probe-named-symbol.mjs +163 -0
  1075. package/scripts/agent-eval/probe-node.mjs +20 -0
  1076. package/scripts/agent-eval/probe-suite-envelope.mjs +124 -0
  1077. package/scripts/agent-eval/probe-sweep.mjs +119 -0
  1078. package/scripts/agent-eval/probe-trace.mjs +20 -0
  1079. package/scripts/agent-eval/redirect-read-hook.sh +38 -0
  1080. package/scripts/agent-eval/repro-concurrent-explore.mjs +119 -0
  1081. package/scripts/agent-eval/repro-daemon-clients.mjs +125 -0
  1082. package/scripts/agent-eval/run-agent.sh +34 -0
  1083. package/scripts/agent-eval/run-all.sh +149 -0
  1084. package/scripts/agent-eval/run-arms.sh +56 -0
  1085. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  1086. package/scripts/benchmarks/measure-index.cjs +128 -0
  1087. package/scripts/benchmarks/observe-index.py +91 -0
  1088. package/scripts/build-bundle.sh +154 -0
  1089. package/scripts/build-kernel.sh +87 -0
  1090. package/scripts/check-ui-build.mjs +157 -0
  1091. package/scripts/check-ui-package.mjs +192 -0
  1092. package/scripts/clean-remaining.mjs +243 -0
  1093. package/scripts/count-codegraph.mjs +26 -0
  1094. package/scripts/deep-clean.mjs +66 -0
  1095. package/scripts/dump-graph.mjs +57 -0
  1096. package/scripts/extract-release-notes.mjs +130 -0
  1097. package/scripts/final-codegraph-cleanup.mjs +57 -0
  1098. package/scripts/go-rebrand.mjs +114 -0
  1099. package/scripts/kernel-parity.mjs +283 -0
  1100. package/scripts/local-install.sh +41 -0
  1101. package/scripts/npm-sdk.js +75 -0
  1102. package/scripts/npm-shim.js +279 -0
  1103. package/scripts/pack-npm.sh +123 -0
  1104. package/scripts/prepare-release.mjs +270 -0
  1105. package/scripts/rebrand.mjs +129 -0
  1106. package/scripts/sync-ui-version.mjs +47 -0
  1107. package/scripts/try-repo.sh +112 -0
@@ -0,0 +1,1095 @@
1
+ /**
2
+ * Database Queries
3
+ *
4
+ * Prepared statements for CRUD operations on the knowledge graph.
5
+ */
6
+ import { SqliteDatabase } from './sqlite-adapter';
7
+ import { Node, Edge, FileRecord, UnresolvedReference, NodeKind, EdgeKind, Language, GraphStats, SearchOptions, SearchResult } from '../types';
8
+ /**
9
+ * How much of the exact-name bonus a `deprioritize`d path keeps (#982). Damped
10
+ * rather than zeroed: a query that genuinely targets that tree must still rank
11
+ * it, the same "discount, don't erase" rule the path penalty follows.
12
+ *
13
+ * Derived rather than picked. `nameMatchBonus`'s prefix arm tops out below
14
+ * `10 + 30 = 40`, and a de-prioritized node also takes the -15 path penalty, so
15
+ * `80 * SCALE - 15 > 40` is what stops a damped WHOLE-QUERY exact match from
16
+ * losing to a mere prefix match. 0.75 clears it (45). Measured on a 62k-node
17
+ * django index: at 0.25 that invariant breaks in practice — `child`, `parent`
18
+ * and `method` lose rank 1 to `children`, `all_parents` and `method_decorator`
19
+ * — while crowd-out removal is almost flat between 0.75 and 0.5 (39 vs 40 of 88
20
+ * peripheral top-10 slots cleared), so a deeper discount buys little and costs
21
+ * the invariant. Pinned by a test.
22
+ */
23
+ export declare const DEPRIORITIZED_NAME_BONUS_SCALE = 0.75;
24
+ /**
25
+ * Query builder for the knowledge graph database
26
+ */
27
+ export declare class QueryBuilder {
28
+ private db;
29
+ private projectNameTokens;
30
+ private isDeprioritizedPath;
31
+ private _fts5Available;
32
+ private nodeCache;
33
+ private readonly maxCacheSize;
34
+ private stmts;
35
+ private segmentedNames;
36
+ private static readonly MAX_SEGMENTED_NAMES;
37
+ private batchStmts;
38
+ private static readonly BATCH_SIZES;
39
+ /**
40
+ * Run `rows` through a multi-row `INSERT` built as `head + (tuple,)*n`,
41
+ * decomposed greedily into the cached batch sizes. Preserves row order.
42
+ */
43
+ private runBatched;
44
+ constructor(db: SqliteDatabase);
45
+ /**
46
+ * Swap the underlying connection in place. Used by pool workers'
47
+ * connection recycling (plan §7a.6, writes-under-readers): a long-lived
48
+ * read connection pins WAL checkpoint progress, and the deep WAL that
49
+ * accumulates behind it taxes every main-thread B-tree page operation
50
+ * (deletes measured 42.6s → 118.8s from 0 to 4 attached readers on
51
+ * identical hardware). Workers therefore close and reopen their read-only
52
+ * connection at the pool-idle boundary; everything above the connection —
53
+ * this QueryBuilder, the resolver and its warm caches — survives, and only
54
+ * connection-derived state (prepared statements) resets, re-preparing
55
+ * lazily on next use.
56
+ */
57
+ rebind(db: SqliteDatabase): void;
58
+ /** Set the normalized project-name tokens used to down-weight non-discriminative
59
+ * query words in path scoring (#720). Called once when the project opens. */
60
+ setProjectNameTokens(tokens: Set<string>): void;
61
+ /** The normalized project-name tokens (#720); empty if none were derived. */
62
+ getProjectNameTokens(): Set<string>;
63
+ /**
64
+ * Set the predicate that marks a path as de-prioritized by the project's
65
+ * `codegraph.json` `deprioritize` patterns (#982). Ranking-only: those paths
66
+ * stay indexed and findable, they just stop outranking first-party code.
67
+ * Called once when the project opens; undefined disables the lever.
68
+ */
69
+ setDeprioritizedPathMatcher(matcher: ((filePath: string) => boolean) | undefined): void;
70
+ /** The `deprioritize` predicate (#982), so other rankers apply the same lever. */
71
+ getDeprioritizedPathMatcher(): ((filePath: string) => boolean) | undefined;
72
+ /**
73
+ * Insert a new node
74
+ */
75
+ insertNode(node: Node): void;
76
+ /** Which node kinds contribute their name to the segment vocabulary — the
77
+ * single gate shared by insertNode, updateNode, and the rebuild page query
78
+ * (getDistinctNodeNames), so the write paths can't drift apart. */
79
+ private isSegmentableKind;
80
+ /** Write `name`'s segments into name_segment_vocab (idempotent). */
81
+ private insertNameSegments;
82
+ /**
83
+ * Insert multiple nodes in a transaction
84
+ */
85
+ insertNodes(nodes: Node[]): void;
86
+ /**
87
+ * Store one file's whole extraction bundle — nodes, edges, unresolved refs,
88
+ * and the file record — in a SINGLE transaction. The bulk-index path calls
89
+ * this once per file instead of opening one transaction per table (#1015
90
+ * file-order commit discipline is unchanged: callers still invoke it in file
91
+ * order, and row order within is input order).
92
+ *
93
+ * Edges MUST already be endpoint-filtered by the caller (the store path
94
+ * filters to the file's own inserted node ids), so the per-file existence
95
+ * SELECT that insertEdges() pays is skipped here.
96
+ */
97
+ storeFileBundle(bundle: {
98
+ nodes: Node[];
99
+ edges: Edge[];
100
+ refs: UnresolvedReference[];
101
+ file: FileRecord;
102
+ }): void;
103
+ /**
104
+ * Collect (segment, name) rows for a name, honouring the same session-dedupe
105
+ * semantics as insertNameSegments(). Shared by the bulk write paths.
106
+ */
107
+ private collectNameSegmentRows;
108
+ /**
109
+ * Update an existing node
110
+ */
111
+ updateNode(node: Node): void;
112
+ /**
113
+ * Delete a node by ID
114
+ */
115
+ deleteNode(id: string): void;
116
+ /**
117
+ * Delete all nodes for a file
118
+ */
119
+ deleteNodesByFile(filePath: string): void;
120
+ /** Wipe the segment vocabulary. A full index calls this at its start; the
121
+ * node write path repopulates it as files (re-)index, so the end state is
122
+ * exactly the current names with no orphan rows. */
123
+ clearNameSegmentVocab(): void;
124
+ /** True when the vocab has no rows — an index built before the table existed.
125
+ * `sync` uses this to heal such databases (see rebuildNameSegmentVocabFrom). */
126
+ isNameSegmentVocabEmpty(): boolean;
127
+ /** One page of distinct segmentable node names, for batched vocab rebuilds
128
+ * (file basenames and import specifiers are excluded from the vocab — see
129
+ * insertNode). */
130
+ getDistinctNodeNames(limit: number, offset: number): string[];
131
+ /** Insert segments for a batch of names in one transaction (vocab heal path). */
132
+ insertNameSegmentsBatch(names: string[]): void;
133
+ /**
134
+ * Names whose segments cover at least `minWords` distinct PROMPT WORDS —
135
+ * the co-occurrence probe behind the prompt hook's medium tier: the words
136
+ * "state" and "machine" both being segments of `OrderStateMachine` is strong
137
+ * evidence the prompt names that symbol in prose. Ordered by coverage.
138
+ *
139
+ * Takes (segment variant → original word) pairs and folds variants back to
140
+ * their word INSIDE the SQL: a name matching both `service` and `services`
141
+ * counts ONE word, not two. Counting raw variants let plural-variant pairs
142
+ * of a single word tie with genuine two-word matches and — because ORDER
143
+ * BY/LIMIT run here, before any JS-side re-check — crowd a real match past
144
+ * the LIMIT on vocab-heavy repos (#1146).
145
+ */
146
+ getSegmentCoOccurrence(variants: Array<{
147
+ segment: string;
148
+ word: string;
149
+ }>, minWords: number, limit: number): Array<{
150
+ name: string;
151
+ matches: number;
152
+ }>;
153
+ /** How many distinct names each segment appears in — the rarity signal that
154
+ * separates a discriminative word ("checkout") from a ubiquitous one ("state"). */
155
+ getSegmentNameCounts(segments: string[]): Map<string, number>;
156
+ /** Names containing the given segment (rare-single-word tier). */
157
+ getNamesForSegment(segment: string, limit: number): string[];
158
+ /**
159
+ * Get a node by ID
160
+ */
161
+ getNodeById(id: string): Node | null;
162
+ /**
163
+ * Batch lookup: fetch many nodes by ID in a single SQL round-trip.
164
+ *
165
+ * Replaces the N+1 pattern in graph traversal where every edge would
166
+ * trigger its own `getNodeById` call. For a function with 50 callers
167
+ * this collapses 50 point reads into one IN-list query (~10-50x
168
+ * faster end-to-end).
169
+ *
170
+ * Returns a Map keyed by id so callers can preserve their own ordering
171
+ * (typically the order edges were returned from the graph). Missing IDs
172
+ * are simply absent from the map.
173
+ *
174
+ * Cache-aware: ids already in the LRU cache are served from memory and
175
+ * the SQL query only touches the misses.
176
+ */
177
+ getNodesByIds(ids: readonly string[]): Map<string, Node>;
178
+ private getExistingNodeIds;
179
+ /**
180
+ * Add a node to the cache, evicting oldest if needed
181
+ */
182
+ private cacheNode;
183
+ /**
184
+ * Clear the node cache
185
+ */
186
+ clearCache(): void;
187
+ /**
188
+ * Get all nodes in a file
189
+ */
190
+ getNodesByFile(filePath: string): Node[];
191
+ /**
192
+ * Find the file that holds the densest concentration of the project's
193
+ * internal call graph — the "core" file. Used by context-builder to
194
+ * boost ranking of symbols in that file's directory (so e.g. sinatra
195
+ * queries surface `lib/sinatra/base.rb`'s `route!` instead of
196
+ * `sinatra-contrib/lib/sinatra/multi_route.rb`'s `route` extension).
197
+ *
198
+ * Returns null if no file has a meaningful concentration (e.g. spread
199
+ * evenly across many files, or empty index).
200
+ *
201
+ * "Internal" = source and target are in the same file. Cross-file
202
+ * edges aren't useful here — they don't tell us which file is the
203
+ * functional center.
204
+ *
205
+ * Excludes test/spec files from candidacy via path-pattern. The agent's
206
+ * typical question is "how does X work", not "how is X tested", so
207
+ * boosting a test file's directory would be a misfire.
208
+ */
209
+ getDominantFile(): {
210
+ filePath: string;
211
+ edgeCount: number;
212
+ nextEdgeCount: number;
213
+ } | null;
214
+ /**
215
+ * Find the file that holds the densest concentration of the project's
216
+ * `route` nodes (framework-emitted: Express/Gin/Flask/Rails/Drupal/etc.).
217
+ * Used by handleContext on small repos to inline the project's routing
218
+ * config when the agent's query is about request flow — eliminating the
219
+ * "Glob + Read routes.rb" pattern that beats codegraph on tiny realworld
220
+ * template repos.
221
+ *
222
+ * Excludes test/generated files from candidacy. Returns null if there
223
+ * are fewer than 3 non-test routes total, or if no file holds at least
224
+ * 30% of them (diffuse routing → no single answer file).
225
+ */
226
+ getTopRouteFile(): {
227
+ filePath: string;
228
+ routeCount: number;
229
+ totalRoutes: number;
230
+ } | null;
231
+ /**
232
+ * Build a URL → handler manifest from the index. Each route node's
233
+ * `references` edge points at the function/method that handles the
234
+ * request. We join them in one pass; the agent gets the canonical
235
+ * routing answer ("POST /users/login → AuthController#login") without
236
+ * having to parse the framework's route DSL itself.
237
+ *
238
+ * Also returns the file with the most handler endpoints — used as the
239
+ * "top handler file" to inline source for, so the agent has both the
240
+ * mapping AND the handler implementations.
241
+ */
242
+ getRoutingManifest(limit?: number): {
243
+ entries: Array<{
244
+ url: string;
245
+ handler: string;
246
+ handlerFile: string;
247
+ handlerLine: number;
248
+ handlerKind: string;
249
+ /** The route node itself: where the URL is REGISTERED, not where it is served. */
250
+ routeId: string;
251
+ routeFile: string;
252
+ routeLine: number;
253
+ }>;
254
+ topHandlerFile: string | null;
255
+ topHandlerFileCount: number;
256
+ totalRoutes: number;
257
+ } | null;
258
+ /**
259
+ * Get all nodes of a specific kind
260
+ */
261
+ getNodesByKind(kind: NodeKind): Node[];
262
+ /**
263
+ * Stream every node of a kind one at a time (lazy) instead of materializing
264
+ * them all like {@link getNodesByKind}. For unbounded kinds (`function`,
265
+ * `method`) on a symbol-dense project the full array is gigabytes; the
266
+ * dynamic-edge synthesizers only scan-and-filter, so they iterate to keep
267
+ * memory O(1) in the node count rather than O(nodes) (#610).
268
+ */
269
+ iterateNodesByKind(kind: NodeKind): IterableIterator<Node>;
270
+ /**
271
+ * Get all nodes in the database
272
+ */
273
+ getAllNodes(): Node[];
274
+ /**
275
+ * Stream nodes of one language whose `decorators` JSON array contains
276
+ * `decorator`. The LIKE on the JSON text is a cheap index-free pre-filter
277
+ * (a decorator name can appear as a substring of another), so callers must
278
+ * still exact-check `node.decorators.includes(decorator)`. Exists so the
279
+ * kotlin expect/actual synthesizer never materializes the whole node table
280
+ * the way `getAllNodes().filter(...)` did — that array alone OOM'd Node's
281
+ * default heap on a 2M-node graph (#1212).
282
+ */
283
+ iterateNodesByLanguageWithDecorator(language: Language, decorator: string): IterableIterator<Node>;
284
+ /**
285
+ * Distinct languages present in the files table. One indexed aggregate —
286
+ * lets the dynamic-edge synthesizers skip passes for languages the project
287
+ * doesn't contain at all (a Kotlin pass has no work on a pure-C repo), so
288
+ * their cost is zero rather than a full-graph scan that finds nothing (#1212).
289
+ */
290
+ getDistinctFileLanguages(): Set<string>;
291
+ /**
292
+ * Get nodes by exact name match (uses idx_nodes_name index).
293
+ *
294
+ * This is resolution's candidate list, and the ORDER BY is load-bearing for
295
+ * index correctness, not cosmetic (CG-33). When a reference names a symbol
296
+ * that several files define and nothing disambiguates them, resolution binds
297
+ * to the first candidate — so without an ORDER BY the winner was decided by
298
+ * rowid, i.e. by the order files happened to be WRITTEN. A full index writes
299
+ * them in scan order; an incremental sync appends each file as it changes, so
300
+ * the same tree resolved to different edges depending on how the index was
301
+ * built, and a long-lived synced index drifted away from a rebuild of itself
302
+ * (measured at 4.3% of distinct edges, mostly `calls`).
303
+ *
304
+ * `(file_path, start_line)` is a property of the CODE, so both paths now pick
305
+ * the same candidate. The sort is paid once per distinct name per resolution
306
+ * run — ReferenceResolver memoizes this in its nameCache — and the population
307
+ * is capped by AMBIGUOUS_NAME_CEILING (#999).
308
+ */
309
+ getNodesByName(name: string): Node[];
310
+ /**
311
+ * Nodes whose name starts with `prefix`, by index range scan (a LIKE would
312
+ * skip idx_nodes_name under SQLite's default case-insensitive LIKE).
313
+ */
314
+ getNodesByNamePrefix(prefix: string, limit?: number): Node[];
315
+ /**
316
+ * Get nodes by exact qualified name match (uses idx_nodes_qualified_name index)
317
+ */
318
+ getNodesByQualifiedNameExact(qualifiedName: string): Node[];
319
+ /**
320
+ * Get nodes by name, case-insensitively (seeks the idx_nodes_lower_name
321
+ * expression index).
322
+ *
323
+ * The parameter is lowered in SQL rather than trusted to arrive lowered, so
324
+ * the lookup means the same thing whatever casing a caller hands it. Written
325
+ * as a bare `lower(name) = ?` it silently returned nothing for any input
326
+ * carrying an uppercase letter, and — because SQLite's `lower()` folds ASCII
327
+ * only while JavaScript's `.toLowerCase()` folds Unicode — a caller that
328
+ * pre-lowered in JavaScript could not match a non-ASCII name at all.
329
+ *
330
+ * Note this hardens the query, not its one caller: `matchFuzzy` still lowers
331
+ * in JavaScript before calling, so the non-ASCII gap remains open there.
332
+ */
333
+ getNodesByLowerName(name: string): Node[];
334
+ /**
335
+ * Search nodes by name using FTS with fallback to LIKE for better matching
336
+ *
337
+ * Search strategy:
338
+ * 1. Try FTS5 prefix match (query*) for word-start matching
339
+ * 2. If no results, try LIKE for substring matching (e.g., "signIn" finds "signInWithGoogle")
340
+ * 3. Score results based on match quality
341
+ */
342
+ searchNodes(query: string, options?: SearchOptions): SearchResult[];
343
+ /**
344
+ * Match-everything path used when the user supplied only field
345
+ * filters (`kind:function lang:typescript`) with no text. Returns
346
+ * candidates ordered by name; the caller's filter pass narrows to
347
+ * what was asked for.
348
+ */
349
+ private searchAllByFilters;
350
+ /**
351
+ * Fuzzy fallback: when zero FTS/LIKE hits, try an edit-distance
352
+ * sweep over the distinct symbol-name set. Caps `maxDist` at 2 so
353
+ * `getUssr` finds `getUser` but `process` doesn't match `prosody`.
354
+ * Bounded edit distance keeps each comparison cheap; the per-query
355
+ * scan is O(distinct-name-count) which is far smaller than total
356
+ * node count on any real codebase.
357
+ */
358
+ private searchNodesFuzzy;
359
+ /**
360
+ * FTS5 search with prefix matching
361
+ */
362
+ private searchNodesFTS;
363
+ /**
364
+ * LIKE-based substring search for cases where FTS doesn't match
365
+ * Useful for camelCase matching (e.g., "signIn" finds "signInWithGoogle")
366
+ */
367
+ private searchNodesLike;
368
+ /**
369
+ * Find nodes by exact name match
370
+ *
371
+ * Used for hybrid search - looks up symbols by exact name or case-insensitive match.
372
+ * Returns high-confidence matches for known symbol names extracted from query.
373
+ *
374
+ * @param names - Array of symbol names to look up
375
+ * @param options - Search options (kinds, languages, limit)
376
+ * @returns SearchResult array with exact matches scored at 1.0
377
+ */
378
+ findNodesByExactName(names: string[], options?: SearchOptions): SearchResult[];
379
+ /**
380
+ * Find nodes whose name contains a substring (LIKE-based).
381
+ * Useful for CamelCase-part matching where FTS fails because
382
+ * e.g. "TransportSearchAction" is one FTS token, not matchable by "Search"*.
383
+ *
384
+ * Results are ordered by name length (shorter = more likely to be the core type).
385
+ */
386
+ findNodesByNameSubstring(substring: string, options?: SearchOptions & {
387
+ excludePrefix?: boolean;
388
+ }): SearchResult[];
389
+ /**
390
+ * Insert a new edge
391
+ */
392
+ insertEdge(edge: Edge): void;
393
+ /**
394
+ * Insert multiple edges in a transaction
395
+ */
396
+ insertEdges(edges: Edge[]): void;
397
+ /**
398
+ * Delete all edges from a source node
399
+ */
400
+ deleteEdgesBySource(sourceId: string): void;
401
+ /**
402
+ * Get outgoing edges from a node
403
+ */
404
+ getOutgoingEdges(sourceId: string, kinds?: EdgeKind[], provenance?: string): Edge[];
405
+ /**
406
+ * Get incoming edges to a node
407
+ */
408
+ getIncomingEdges(targetId: string, kinds?: EdgeKind[]): Edge[];
409
+ /**
410
+ * Outgoing edges for MANY source nodes in one query.
411
+ *
412
+ * The batch form of {@link getOutgoingEdges}. Building a nested outline needs
413
+ * the `contains` edges of every container in a file at once; doing that one
414
+ * source at a time is a query per symbol on files that have hundreds.
415
+ */
416
+ getOutgoingEdgesFrom(sourceIds: readonly string[], kinds?: EdgeKind[]): Edge[];
417
+ /**
418
+ * Fan-in (total incoming edge count) for MANY nodes in one query.
419
+ *
420
+ * The per-node alternative — `getIncomingEdges(id).length` — is an indexed
421
+ * lookup each, but a symbol screen rendering a couple of hundred callees
422
+ * would issue a couple of hundred of them. Ids with no incoming edges are
423
+ * absent from the map rather than present as 0, so callers can tell "no
424
+ * edges" from "not asked about".
425
+ */
426
+ countIncomingEdges(ids: readonly string[]): Map<string, number>;
427
+ /**
428
+ * Incoming edges for MANY target nodes in one query — the mirror of
429
+ * {@link getOutgoingEdgesFrom}. Needed wherever a whole file's inbound edges
430
+ * are wanted at once ("which files import anything in this one?").
431
+ */
432
+ getIncomingEdgesTo(targetIds: readonly string[], kinds?: EdgeKind[]): Edge[];
433
+ /**
434
+ * Fan-out (total outgoing edge count) for MANY nodes in one query — the
435
+ * mirror of {@link countIncomingEdges}. Ids with no outgoing edges are absent
436
+ * from the map rather than present as 0.
437
+ */
438
+ countOutgoingEdges(ids: readonly string[]): Map<string, number>;
439
+ /**
440
+ * Symbols nothing in the index points at — the candidate set behind the dead
441
+ * code list (`src/graph/dead-code.ts`).
442
+ *
443
+ * "Points at" is every edge kind EXCEPT `contains`: a class containing a
444
+ * method is structure, not use, and counting it would make every member look
445
+ * reached by its own container. A self-edge is excluded for the same reason
446
+ * a recursive function is not its own caller.
447
+ *
448
+ * One scan, one index probe per candidate. `NOT EXISTS` over
449
+ * `idx_edges_target_kind` is what keeps it that way — the alternative
450
+ * (`LEFT JOIN edges … GROUP BY`) builds a row per edge for the whole table
451
+ * before discarding all but the empty groups. Ordered by position so the
452
+ * answer is stable across runs and groups by file without a second sort.
453
+ *
454
+ * The result is deliberately NOT called dead code: an unreferenced symbol is
455
+ * a symbol with no STATIC reference, and the caller applies the exclusions
456
+ * (tests, generated files, overrides, unresolved names) that turn the
457
+ * candidate set into a claim worth making.
458
+ */
459
+ getUnreferencedNodes(kinds: readonly string[], limit: number): Array<{
460
+ node: Node;
461
+ generated: boolean;
462
+ }>;
463
+ /**
464
+ * Which of `names` the index holds an UNRESOLVED reference to.
465
+ *
466
+ * The point is honesty about our own blind spots. A `failed` row in
467
+ * `unresolved_refs` records that some file referenced a name and the resolver
468
+ * could not decide what it meant — so a symbol with that name cannot be
469
+ * called unreferenced, whatever the edge table says. It is deliberately
470
+ * matched loosely, on the reference name AND on its tail (`util.greet` →
471
+ * `greet`), because the question being asked is "could this name be the one
472
+ * we failed to follow", and a maybe has to count as a yes.
473
+ *
474
+ * Bounded-lookup like {@link getGeneratedPathsAmong}: the caller holds a
475
+ * candidate list, so this is a chunked probe over `idx_unresolved_name`, not
476
+ * a scan of the table.
477
+ */
478
+ getUnresolvedNamesAmong(names: Iterable<string>): Set<string>;
479
+ /**
480
+ * Which of `names` are carried by MORE THAN ONE symbol, at least one of which
481
+ * something points at.
482
+ *
483
+ * The false positive this exists to kill: `AlphaCodeSense.getTopRouteFile` calls
484
+ * `this.queries.getTopRouteFile()`, and the resolver — which prefers a
485
+ * same-name definition in the call site's own file — attaches that edge to
486
+ * the *calling* method. One of the two ends up with a self-edge and the other
487
+ * with nothing at all, and neither is unreferenced. From the edge table the
488
+ * mis-resolution and a genuinely unused twin are the same picture, so the
489
+ * claim is not made about either.
490
+ *
491
+ * Both halves of the condition are load-bearing. **More than one symbol**:
492
+ * a uniquely-named function that only calls itself is genuinely dead, and
493
+ * excluding every recursive function would gut the list. **Self-edges
494
+ * counted**: the self-edge IS the fingerprint of the mis-resolution above, so
495
+ * it has to count as evidence that this name resolves somewhere.
496
+ *
497
+ * Chunked probe over `idx_nodes_name`, bounded by the caller's candidate list.
498
+ */
499
+ getAmbiguousReferencedNames(names: Iterable<string>): Set<string>;
500
+ /**
501
+ * Which of the given languages the index records an EXPORT marker for.
502
+ *
503
+ * A self-measurement, and the honest basis for a whole class of exclusion.
504
+ * The dead code report's strongest filter is "exported symbols may be reached
505
+ * from outside this repository" — and that filter silently does nothing for a
506
+ * language whose exports are not recorded, either because the extractor does
507
+ * not record them (Rust `pub`) or because the language has no such concept at
508
+ * all (Python, C, Ruby: the header or the module IS the surface). Rather than
509
+ * carry a table of which is which, ask the index: if nothing in this language
510
+ * is marked exported, the filter did not run, and no claim about outside
511
+ * reachability can be made for it.
512
+ *
513
+ * `idx_nodes_language` covers the grouping; the caller passes the handful of
514
+ * languages its candidates are actually in.
515
+ */
516
+ getLanguagesWithExports(languages: Iterable<string>): Set<string>;
517
+ /**
518
+ * The nodes with the most DISTINCT dependents, most first.
519
+ *
520
+ * "Distinct" is the difference that matters: a helper called forty times from
521
+ * one function has a fan-in of 40 but exactly one dependent. This counts the
522
+ * second thing — the number a reader means by "N callers" — so the top of
523
+ * this list is the set of symbols a change actually radiates furthest from.
524
+ *
525
+ * `contains` is excluded because it is structure, not dependency: counting it
526
+ * would rank every file and class above the code they hold.
527
+ */
528
+ getTopDependedOn(limit: number): Array<{
529
+ nodeId: string;
530
+ dependents: number;
531
+ }>;
532
+ /**
533
+ * The graph's executable roots — files that RUN something at module level,
534
+ * ranked by how much of the project they set in motion.
535
+ *
536
+ * The engine records a statement at the top level of a file as an edge from
537
+ * the *file* node, so `src/bin/codegraph.ts` calling `program.parse()` at
538
+ * module scope is a `calls` edge out of a `file`. That set is what makes the
539
+ * roots of a dependency graph visible: a library module holds definitions and
540
+ * runs nothing until someone imports it, while a CLI, a worker entry or a
541
+ * build script does its work on the way down the file. `instantiates` counts
542
+ * the same way — `new Server(...)` at module scope is the same act.
543
+ *
544
+ * A call made while initializing a module-level `variable` / `constant` —
545
+ * `const service = new Service()`, `app = FastAPI()` — is attributed to the
546
+ * declared name (#693), not to the file, so the file's own edges alone would
547
+ * miss most of what a real entry point runs. Those names are the file's
548
+ * top-level code too, so `tops` counts them alongside the file node.
549
+ *
550
+ * Ranking multiplies the two things an entry point does: it runs (calls), and
551
+ * it wires the project together (distinct other files its symbols reach). One
552
+ * alone is misleading — a registration table makes hundreds of module-level
553
+ * calls into itself, and a barrel file imports everything and runs nothing.
554
+ * The product puts the file that does both at the top.
555
+ */
556
+ getTopCallingFiles(limit: number): Array<{
557
+ nodeId: string;
558
+ filePath: string;
559
+ calls: number;
560
+ reaches: number;
561
+ score: number;
562
+ }>;
563
+ /**
564
+ * How many OTHER files depend on each of the given files.
565
+ *
566
+ * Counted through the symbols, not the file nodes: an `imports` edge points
567
+ * at the imported symbol, so a file node almost never receives one and
568
+ * counting edges into it would report every file as depended on by nobody.
569
+ * Same-file edges are excluded, which is what makes zero mean "nothing else
570
+ * in the index reaches into this file" — the honest reading of a root.
571
+ */
572
+ getFileDependentCounts(filePaths: string[]): Array<{
573
+ filePath: string;
574
+ dependents: number;
575
+ }>;
576
+ /**
577
+ * How far each of the given files reaches OUT: distinct other files its
578
+ * symbols touch, and how many references that is.
579
+ *
580
+ * The mirror of {@link getFileDependentCounts}, and the same reasoning about
581
+ * `contains` and same-file edges applies. It is driven from `nodes` rather
582
+ * than from `edges` so the work is proportional to the files asked about —
583
+ * the entry-points endpoint asks it about every test file in the index, and
584
+ * an edge-first plan would scan the whole table to answer a question about a
585
+ * tenth of it.
586
+ */
587
+ getFileReachCounts(filePaths: string[]): Array<{
588
+ filePath: string;
589
+ reaches: number;
590
+ refs: number;
591
+ }>;
592
+ /**
593
+ * The `file` nodes for the given paths, in one query.
594
+ *
595
+ * A file's own node is what makes a file row navigable, and looking it up
596
+ * with {@link getNodesInFile} means materialising every symbol in the file to
597
+ * throw all but one away.
598
+ */
599
+ getFileNodes(filePaths: string[]): Node[];
600
+ /**
601
+ * Roll the whole edge table up to module granularity in one pass.
602
+ *
603
+ * The caller decides what a module IS — it hands in a file → module
604
+ * assignment and gets back the cross-module traffic. That split is
605
+ * deliberate: naming modules is a *policy* (top-level directories, a façade
606
+ * file kept separate, a monorepo root) that belongs where the reader lives,
607
+ * while grouping a million edges by it is *mechanics* that must happen in
608
+ * SQLite. Doing the fold in JavaScript instead means materialising every
609
+ * cross-file edge in memory; doing the naming in SQL means a tower of
610
+ * `instr`/`substr` no one can read.
611
+ *
612
+ * The assignment lands in a TEMP table with a primary key, so the join is
613
+ * indexed and the result set is bounded by modules², not by edges. Temp
614
+ * tables live in SQLite's own temp database, so this stays valid against a
615
+ * read-only main.
616
+ *
617
+ * Two result sets, because they need two different groupings over the same
618
+ * join: `links` counts edges per (module, module, kind), and `pairs` names
619
+ * the busiest symbol pairs behind each link (the map's tooltip). `pairs` is
620
+ * ranked and cut inside SQLite — the un-cut grouping is the one thing here
621
+ * that scales with distinct symbol names rather than with modules. Pairs are
622
+ * ranked by `declared` before raw count, so a link's tooltip names the
623
+ * symbols the source actually points at rather than whichever `has`/`get`
624
+ * happened to name-match most often.
625
+ *
626
+ * `declared` is the subset of a link's edges that came from something the
627
+ * source *writes down*: an import, a qualified name, an inheritance clause,
628
+ * or a call through a typed receiver. It exists because bare name matching
629
+ * (`resolvedBy: 'exact-match'`) is what invents cross-module links out of
630
+ * common method names — `run`, `push`, `finish` — and a map that lets those
631
+ * decide the layering puts the storage layer above the CLI.
632
+ */
633
+ aggregateModuleGraph(assignments: ReadonlyArray<{
634
+ filePath: string;
635
+ module: string;
636
+ }>, options: {
637
+ kinds: readonly EdgeKind[];
638
+ minConfidence: number;
639
+ topPairsPerLink: number;
640
+ pairKinds: readonly EdgeKind[];
641
+ }): {
642
+ links: Array<{
643
+ source: string;
644
+ target: string;
645
+ kind: EdgeKind;
646
+ count: number;
647
+ declared: number;
648
+ uncertain: number;
649
+ }>;
650
+ pairs: Array<{
651
+ source: string;
652
+ target: string;
653
+ from: string;
654
+ to: string;
655
+ count: number;
656
+ declared: number;
657
+ }>;
658
+ };
659
+ /**
660
+ * Every ordered pair of files where one reaches into the other, once each.
661
+ *
662
+ * The input a cycle finder wants: file-level circular dependencies are the
663
+ * strongly connected components of this graph. One query instead of the
664
+ * dependency lookup per file that {@link GraphQueryManager.findCircularDependencies}
665
+ * does — which matters because a cycle report is only interesting on a large
666
+ * repo, and that is exactly where a query per file stops being affordable.
667
+ *
668
+ * `contains` is excluded (a file "contains" its own symbols, which is not a
669
+ * dependency), and so are same-file edges and low-confidence name matches:
670
+ * a cycle conjured by a common method name is a false alarm a reader cannot
671
+ * check.
672
+ */
673
+ getCrossFileDependencyPairs(minConfidence: number): Array<{
674
+ source: string;
675
+ target: string;
676
+ }>;
677
+ /**
678
+ * Every unresolved reference recorded in one FILE, ordered by line.
679
+ *
680
+ * The per-symbol form above answers "what does this body reach that the
681
+ * index does not hold". A whole-file reader asks the same question of every
682
+ * line at once, and asking it one symbol at a time is a query per symbol —
683
+ * 153 of them on this repo's largest file. `unresolved_refs.file_path` is
684
+ * indexed, so this is one lookup whatever the file holds.
685
+ *
686
+ * `limit` bounds the answer rather than the work: the caller draws a marker
687
+ * per row, and a generated file with fifty thousand of them would ship
688
+ * megabytes to say something a count already says. Rows come back in line
689
+ * order, so a cap trims the END of the file, which is at least legible.
690
+ */
691
+ getUnresolvedReferencesInFile(filePath: string, limit?: number): UnresolvedReference[];
692
+ /**
693
+ * References recorded against a symbol that never resolved to a node — the
694
+ * calls and type mentions that leave the index (a third-party package, a
695
+ * runtime builtin, a language construct extraction doesn't model).
696
+ *
697
+ * Read-only. It exists so a reader can say "N calls into symbols outside the
698
+ * index" instead of silently showing a callee list shorter than the body's
699
+ * call sites, which reads as "nothing else happens here".
700
+ */
701
+ getUnresolvedReferencesFrom(fromNodeId: string): UnresolvedReference[];
702
+ /**
703
+ * Find all edges where both source and target are in the given node set.
704
+ * Useful for recovering inter-node connectivity after BFS.
705
+ */
706
+ findEdgesBetweenNodes(nodeIds: string[], kinds?: EdgeKind[]): Edge[];
707
+ /**
708
+ * Distinct file paths that DEPEND ON `filePath`: every file containing a
709
+ * symbol with a cross-file edge (any kind except `contains`) into a symbol
710
+ * of this file. This is the file-level projection of the symbol dependency
711
+ * graph and the basis for blast-radius / `affected` test selection.
712
+ *
713
+ * It deliberately does NOT restrict to `imports` edges. In this graph an
714
+ * `imports` edge connects a file to its own local import declarations
715
+ * (it is always same-file), so an imports-only lookup returns zero
716
+ * cross-file dependents for every file. The real cross-file dependency
717
+ * signal is the resolved call/reference graph — calls, references,
718
+ * instantiates, extends, implements, overrides, type_of, returns,
719
+ * decorates — exactly what {@link GraphTraverser.getImpactRadius} traverses.
720
+ * `contains` is excluded: a parent containing a symbol does not *depend* on
721
+ * it. One indexed query (idx_nodes_file_path + idx_edges_target_kind).
722
+ */
723
+ getDependentFilePaths(filePath: string): string[];
724
+ /**
725
+ * Distinct file paths that `filePath` DEPENDS ON — the inverse of
726
+ * {@link getDependentFilePaths}: every file containing a symbol that a
727
+ * symbol of this file has a cross-file edge into. Same edge-kind rules
728
+ * (all kinds except `contains`); same reason imports-only is insufficient.
729
+ */
730
+ getDependencyFilePaths(filePath: string): string[];
731
+ /**
732
+ * Cross-file edges whose TARGET is a node in `filePath` and whose SOURCE is a
733
+ * node in a *different* file, paired with the target node's (name, kind) so a
734
+ * caller can re-resolve the edge to the re-indexed target's new ID (node IDs
735
+ * are `sha256(filePath:kind:name:line)`, so any line shift in the callee file
736
+ * changes target IDs and a naive re-insert by old ID silently drops them).
737
+ * Used by `storeExtractionResult` to preserve incoming edges across a file
738
+ * re-index (issue #899). Same edge-kind rules as
739
+ * {@link getDependentFilePaths}: all kinds except `contains`.
740
+ */
741
+ getCrossFileIncomingEdgesWithTarget(filePath: string): Array<Edge & {
742
+ targetName: string;
743
+ targetKind: NodeKind;
744
+ sourceFilePath: string;
745
+ sourceLanguage: Language;
746
+ }>;
747
+ /**
748
+ * Insert or update a file record
749
+ */
750
+ upsertFile(file: FileRecord): void;
751
+ /**
752
+ * Which of `filePaths` the index flagged as tool-generated (schema v9+).
753
+ *
754
+ * Bounded-lookup by design: every consumer already holds a short candidate
755
+ * list (a ranked file group, an FTS result page, a LIMIT-20 aggregate), so
756
+ * this stays a partial-index probe over a handful of paths — no whole-repo
757
+ * set to materialize, and no cache to invalidate, which means a ranking call
758
+ * can never serve a verdict the last sync already replaced.
759
+ *
760
+ * Returns ONLY the content/index signal; callers union it with
761
+ * {@link isGeneratedFile} so pre-v9 databases (column present, all zeros
762
+ * until a re-index) keep the path-only behavior rather than regressing.
763
+ */
764
+ getGeneratedPathsAmong(filePaths: Iterable<string>): Set<string>;
765
+ /**
766
+ * A reusable `(path) => boolean` over a bounded candidate list, unioning the
767
+ * indexed flag with the path convention. This is the shape every ranking
768
+ * comparator wants: one query up front, then O(1) per comparison.
769
+ */
770
+ generatedPredicateFor(filePaths: Iterable<string>): (filePath: string) => boolean;
771
+ /**
772
+ * Which of `filePaths` are AMBIENT DECLARATION files — they declare nothing
773
+ * but types, and nothing in the index depends on them (CG-28). A hand-written
774
+ * ambient `.d.ts` of global shims, a vendored typings file, module
775
+ * augmentation: reachable only by name, structurally attached to nothing.
776
+ *
777
+ * Structural, not extension-based, so a hand-written `types.ts` and a `.d.ts`
778
+ * are judged by the same rule and a `.d.ts` that does declare a class or a
779
+ * const is (correctly) not caught. Four conditions, all required:
780
+ *
781
+ * 1. it declares at least one symbol — an empty or unparsed file is not a
782
+ * declaration file, it is a file we know nothing about;
783
+ * 2. EVERY declared symbol is a type-level kind (interface / type alias /
784
+ * enum / namespace). The narrowness is deliberate and measured: a rule
785
+ * of "no callables" alone flags 1–18% of a repo, including Kotlin sealed
786
+ * classes, Rust `mod.rs` re-exports and django's locale constant tables —
787
+ * real source that must not be demoted. This rule flags 0–4%;
788
+ * 3. no symbol in it originates a `calls`/`instantiates` edge — the direct
789
+ * evidence that nothing here has a body;
790
+ * 4. NOTHING ELSE IN THE INDEX points at it. This is the condition that
791
+ * separates an ambient shim from a working type module, and it is why
792
+ * the flag is narrow enough to be safe: `displacement-ts`'s pipeline
793
+ * `types.ts` passes 1–3 identically but carries 13 inbound imports and
794
+ * 21 references, so the files that answer a query about the pipeline are
795
+ * typed BY it — it is part of that answer's structure. An ambient
796
+ * `declare global` shim has zero. Deliberately index-wide rather than
797
+ * restricted to the candidate list: the file that imports it is usually
798
+ * not itself a candidate.
799
+ *
800
+ * ### Interface MEMBERS are transparent to all four conditions
801
+ *
802
+ * A `method_signature` / `property_signature` inside an interface enters the
803
+ * graph as a `method` / `property` node (#1638). Read literally that would
804
+ * break every condition here at once: condition 2 sees non-type kinds and
805
+ * stops flagging, and — worse, because it is silent — condition 4 starts
806
+ * seeing inbound `calls` edges the moment a call site through the shim's API
807
+ * finally has a signature to land on. An ambient `.d.ts` would quietly lose
808
+ * its damping precisely BECAUSE the platform API it declares is widely used.
809
+ *
810
+ * So an interface-owned member is treated the way `parameter` already is: it
811
+ * neither qualifies, disqualifies, nor counts as inbound dependency. That is
812
+ * not a new judgement call, it is what keeps the rule measuring what it was
813
+ * measured on — before #1638 these nodes did not exist, so excluding them
814
+ * reproduces the 0–4% flag rate the thresholds above were tuned against. It
815
+ * is also the semantically right answer: a signature with no body is on the
816
+ * same side of the line as the interface that owns it, and a call edge
817
+ * landing on one is still not a file that can answer a flow question.
818
+ *
819
+ * The interface ITSELF is untouched: the `references` edges an importing
820
+ * module aims at `UploadStorage` still disqualify the file under (4), which
821
+ * is what keeps a depended-on `types.ts` out of the flag.
822
+ *
823
+ * Bounded-lookup like {@link getGeneratedPathsAmong}: callers hold a ranked
824
+ * candidate list, so this is a partial-index probe over a handful of paths.
825
+ */
826
+ getAmbientDeclarationPathsAmong(filePaths: Iterable<string>): Set<string>;
827
+ /**
828
+ * A reusable `(path) => boolean` ambient-declaration test over a bounded
829
+ * candidate list — the shape a ranking comparator wants: one query up front,
830
+ * O(1) per comparison.
831
+ */
832
+ ambientDeclarationPredicateFor(filePaths: Iterable<string>): (filePath: string) => boolean;
833
+ /** How many indexed files carry the generated flag. Surfaced by `status`. */
834
+ countGeneratedFiles(): number;
835
+ /**
836
+ * Delete a file record and its nodes
837
+ */
838
+ deleteFile(filePath: string): void;
839
+ /**
840
+ * Get a file record by path
841
+ */
842
+ getFileByPath(filePath: string): FileRecord | null;
843
+ /**
844
+ * Get all tracked files
845
+ */
846
+ getAllFiles(): FileRecord[];
847
+ /**
848
+ * Most recent index timestamp (ms since epoch) across all tracked files, or
849
+ * null when nothing is indexed yet. One indexed aggregate, no per-row scan. (#329)
850
+ */
851
+ getLastIndexedAt(): number | null;
852
+ /**
853
+ * The index's revision marker: how far the last sync got, and how many files
854
+ * it left behind — one query, both numbers.
855
+ *
856
+ * This is the cheapest honest answer to "has the index moved since I last
857
+ * looked". `MAX(indexed_at)` alone is not enough: a sync that only DELETES
858
+ * files (a branch checkout that removed a directory) advances nothing, and
859
+ * the graph the viewer is showing has still changed underneath it. The row
860
+ * count catches exactly that case.
861
+ */
862
+ getIndexRevision(): {
863
+ lastIndexedAt: number | null;
864
+ fileCount: number;
865
+ };
866
+ /**
867
+ * Files re-indexed strictly after `since` (ms since epoch), newest first.
868
+ *
869
+ * `total` is the real count; `paths` is capped at `limit`. Used by the
870
+ * viewer's live channel to name what a sync just picked up. A file the same
871
+ * sync DELETED cannot appear here — it has no row left — which is why the
872
+ * caller compares {@link getIndexRevision} as well rather than treating an
873
+ * empty list as "nothing happened".
874
+ */
875
+ getFilesIndexedSince(since: number, limit: number): {
876
+ paths: string[];
877
+ total: number;
878
+ };
879
+ /**
880
+ * Get files that need re-indexing (hash changed)
881
+ */
882
+ getStaleFiles(currentHashes: Map<string, string>): FileRecord[];
883
+ /**
884
+ * Insert an unresolved reference
885
+ */
886
+ insertUnresolvedRef(ref: UnresolvedReference): void;
887
+ /**
888
+ * Insert multiple unresolved references in a transaction
889
+ */
890
+ insertUnresolvedRefsBatch(refs: UnresolvedReference[]): void;
891
+ /**
892
+ * Delete unresolved references from a node
893
+ */
894
+ deleteUnresolvedByNode(nodeId: string): void;
895
+ /**
896
+ * Get unresolved references by name (for resolution)
897
+ */
898
+ getUnresolvedByName(name: string): UnresolvedReference[];
899
+ /**
900
+ * Get all unresolved references
901
+ */
902
+ getUnresolvedReferences(): UnresolvedReference[];
903
+ /**
904
+ * Get the count of PENDING (never-attempted) references without loading
905
+ * them into memory. Rows marked status='failed' — attempted by a completed
906
+ * pass, no match — are excluded: they are not outstanding work, only retry
907
+ * candidates for the #1240 sweep, so they must not trip the #1187 orphan
908
+ * sweep or the `status` pending-refs warning.
909
+ */
910
+ getUnresolvedReferencesCount(): number;
911
+ /**
912
+ * Get a batch of PENDING unresolved references using LIMIT/OFFSET
913
+ * pagination. Used to process references in bounded memory chunks; failed
914
+ * rows are excluded so the batched drain loop terminates once every row
915
+ * has been attempted.
916
+ */
917
+ getUnresolvedReferencesBatch(offset: number, limit: number): UnresolvedReference[];
918
+ /**
919
+ * Keyset variant of {@link getUnresolvedReferencesBatch} for the batched
920
+ * resolution loop: seek past the last-seen row id instead of OFFSET-walking.
921
+ * OFFSET reads re-scan the accumulated failed-row prefix on every batch —
922
+ * O(failed rows) per read, measured at 54.6s of the kernel-scale batch loop
923
+ * (§7a.2) — while the seek is O(batch) forever. `id` is the rowid alias, so
924
+ * the enumeration order is identical to the OFFSET reader's.
925
+ */
926
+ getUnresolvedReferencesBatchAfter(afterRowId: number, limit: number, prerequisites?: boolean): UnresolvedReference[];
927
+ /**
928
+ * Get all tracked file paths (lightweight — no full FileRecord objects)
929
+ */
930
+ getAllFilePaths(): string[];
931
+ /**
932
+ * Get all distinct node names (lightweight — just name strings for pre-filtering)
933
+ */
934
+ getAllNodeNames(): string[];
935
+ /**
936
+ * Stream the distinct node names one row at a time — the incremental
937
+ * counterpart to {@link getAllNodeNames} for callers that need to yield
938
+ * to the event loop mid-scan (resolver cache warm-up on multi-million-node
939
+ * indexes). Fresh statement per call: the iterator holds an open cursor.
940
+ */
941
+ iterateNodeNames(): IterableIterator<string>;
942
+ /**
943
+ * Get unresolved references scoped to specific file paths.
944
+ * Uses the idx_unresolved_file_path index for efficient lookup.
945
+ */
946
+ getUnresolvedReferencesByFiles(filePaths: string[]): UnresolvedReference[];
947
+ /**
948
+ * Delete all unresolved references (after resolution)
949
+ */
950
+ clearUnresolvedReferences(): void;
951
+ /**
952
+ * Delete resolved references by their IDs
953
+ */
954
+ deleteResolvedReferences(fromNodeIds: string[]): void;
955
+ /**
956
+ * Delete specific resolved references by (fromNodeId, referenceName, referenceKind) tuples.
957
+ * More precise than deleteResolvedReferences — only removes refs that were actually resolved.
958
+ */
959
+ deleteSpecificResolvedReferences(refs: Array<{
960
+ fromNodeId: string;
961
+ referenceName: string;
962
+ referenceKind: string;
963
+ }>): number;
964
+ /**
965
+ * Delete unresolved-ref rows by row id — the precise cleanup for refs a
966
+ * resolution pass actually processed. The key-tuple variant above also
967
+ * deletes SIBLING rows (same caller calling the same callee at other lines)
968
+ * that a later batch hasn't attempted yet, so when a batch boundary split a
969
+ * caller's same-named call sites, the later sites' edges were silently never
970
+ * created (#1269).
971
+ */
972
+ deleteReferencesByRowIds(rowIds: number[]): number;
973
+ /**
974
+ * Mark refs a completed resolution pass could not resolve as status='failed'
975
+ * instead of deleting them (#1240). Failed rows are invisible to the pending
976
+ * count/batch readers (so drain loops and the #1187 orphan sweep still
977
+ * terminate) but stay queryable by name_tail so a later sync can retry them
978
+ * when a changed file introduces a symbol that could satisfy them. name_tail
979
+ * is (re)written here so rows inserted before the v8 migration get their
980
+ * tail the first time they're attempted.
981
+ */
982
+ markReferencesFailed(refs: Array<{
983
+ fromNodeId: string;
984
+ referenceName: string;
985
+ referenceKind: string;
986
+ }>): number;
987
+ /**
988
+ * Park refs as status='failed' by row id — the precise counterpart of
989
+ * markReferencesFailed, for the same reason as deleteReferencesByRowIds:
990
+ * the key-tuple variant also flips same-key sibling rows in later batches
991
+ * to 'failed' before they were ever attempted (#1269). Resolution outcome
992
+ * can differ per call site (receiver-type inference reads the ref's line),
993
+ * so a sibling must not inherit this row's failure.
994
+ */
995
+ markReferencesFailedByRowIds(refs: Array<{
996
+ rowId: number;
997
+ referenceName: string;
998
+ }>): number;
999
+ /**
1000
+ * Failed refs whose name tail matches one of the given symbol names — the
1001
+ * candidates a sync should retry after files carrying those names changed
1002
+ * (#1240). Names matching more than `perNameCeiling` failed refs are
1003
+ * skipped entirely: at that population a name is external/builtin noise
1004
+ * (`get`, `map`, …) that one new definition won't resolve — the same
1005
+ * rationale as resolution's AMBIGUOUS_NAME_CEILING (#999) — and retrying an
1006
+ * arbitrary subset would be both wasted work and incoherent coverage.
1007
+ */
1008
+ getRetryableFailedReferences(names: string[], perNameCeiling?: number): UnresolvedReference[];
1009
+ /**
1010
+ * Resolution edges whose TARGET symbol is named one of `names` — the edges a
1011
+ * sync must re-resolve after `names` gained or lost a definition (CG-33).
1012
+ *
1013
+ * Resolution binds a reference to a node whose name matches the reference's
1014
+ * tail, and it picks among ALL same-named definitions project-wide. So adding
1015
+ * or removing one definition of `pct` changes the answer for every `pct(...)`
1016
+ * reference in the repo — including references in files this sync never
1017
+ * touches, whose edges nothing else revisits. Those edges' current target is,
1018
+ * by that same rule, a node named `pct`, which is why the target's name is a
1019
+ * sufficient (and index-backed, via idx_nodes_name) way to find them without
1020
+ * a schema change or a scan of edge metadata.
1021
+ *
1022
+ * Returns the source file/language alongside each edge so the caller can
1023
+ * resurrect it as its original reference. Excludes `provenance='heuristic'`
1024
+ * (synthesized dispatch edges are not resolution output and carry no refName
1025
+ * stamp to resurrect from — deleting one would be a permanent loss).
1026
+ *
1027
+ * Names matching more than `perNameCeiling` edges are skipped entirely, same
1028
+ * rationale and same default as {@link getRetryableFailedReferences}: at that
1029
+ * population the name is generic (`get`, `clear`, …), one definition changing
1030
+ * won't flip most of them, and rebinding an arbitrary subset is both wasted
1031
+ * work and incoherent coverage.
1032
+ */
1033
+ getResolutionEdgesByTargetName(names: string[], perNameCeiling?: number): Array<Edge & {
1034
+ edgeId: number;
1035
+ sourceFilePath: string;
1036
+ sourceLanguage: Language;
1037
+ }>;
1038
+ /** Delete edges by primary key — the rebind pass's half of a re-resolution. */
1039
+ deleteEdgesByIds(edgeIds: number[]): number;
1040
+ /**
1041
+ * Replace resolution edges with their original unresolved references as one
1042
+ * transaction. If ref insertion fails, the edge deletion is rolled back.
1043
+ */
1044
+ replaceResolutionEdgesWithUnresolvedRefs(edgeIds: number[], refs: UnresolvedReference[]): number;
1045
+ /**
1046
+ * Distinct node names present in the given files — the symbol names a sync
1047
+ * pass uses to look up retryable failed refs after those files changed.
1048
+ */
1049
+ getNodeNamesByFiles(filePaths: string[]): string[];
1050
+ /**
1051
+ * Distinct `file\0name` pairs defined by the given files — the shape sync's
1052
+ * definition delta needs (CG-33).
1053
+ *
1054
+ * Deliberately NOT `getNodeNamesByFiles`: a bare name set is taken over the
1055
+ * WHOLE changed batch, so a name that moves between two files in one commit
1056
+ * (or exists in one changed file and is newly added to another) appears on
1057
+ * both sides and cancels out of the symmetric difference — even though a
1058
+ * definition genuinely appeared or vanished and every reference to that name
1059
+ * repo-wide may now bind elsewhere. Keying by file makes each definition its
1060
+ * own fact, so the move is seen as one removal plus one addition.
1061
+ */
1062
+ getNodeNamePairsByFiles(filePaths: string[]): Set<string>;
1063
+ /**
1064
+ * Lightweight (nodes, edges) count snapshot. Used around an index/sync
1065
+ * run to compute true additions across extraction + resolution +
1066
+ * synthesis — the per-phase counter in the orchestrator only sees
1067
+ * extraction's contribution, which is why the CLI summary under-reported
1068
+ * the edge count (resolution + synthesizer edges were invisible).
1069
+ */
1070
+ getNodeAndEdgeCount(): {
1071
+ nodes: number;
1072
+ edges: number;
1073
+ };
1074
+ /**
1075
+ * Get graph statistics
1076
+ */
1077
+ getStats(): GraphStats;
1078
+ /**
1079
+ * Get a metadata value by key
1080
+ */
1081
+ getMetadata(key: string): string | null;
1082
+ /**
1083
+ * Set a metadata key-value pair (upsert)
1084
+ */
1085
+ setMetadata(key: string, value: string): void;
1086
+ /**
1087
+ * Get all metadata as a key-value record
1088
+ */
1089
+ getAllMetadata(): Record<string, string>;
1090
+ /**
1091
+ * Clear all data from the database
1092
+ */
1093
+ clear(): void;
1094
+ }
1095
+ //# sourceMappingURL=queries.d.ts.map