@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,877 @@
1
+ "use strict";
2
+ /**
3
+ * Directory Management
4
+ *
5
+ * Manages the .alpha-cs/ directory structure for Alpha Code Sense data.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.PROMPT_HOOK_INJECTION_MAX = exports.CLAUDE_CODE_INLINE_HOOK_OUTPUT_LIMIT = exports.CODEGRAPH_DIR = void 0;
42
+ exports.alphaCsDirName = alphaCsDirName;
43
+ exports.isAlphaCsDataDir = isAlphaCsDataDir;
44
+ exports.getAlphaCsDir = getAlphaCsDir;
45
+ exports.isInitialized = isInitialized;
46
+ exports.unsafeIndexRootReason = unsafeIndexRootReason;
47
+ exports.findNearestAlphaCsRoot = findNearestAlphaCsRoot;
48
+ exports.findIndexedSubprojectRoots = findIndexedSubprojectRoots;
49
+ exports.resolveServerRoot = resolveServerRoot;
50
+ exports.hasStructuralKeyword = hasStructuralKeyword;
51
+ exports.extractCodeTokens = extractCodeTokens;
52
+ exports.isStructuralPrompt = isStructuralPrompt;
53
+ exports.capPromptHookInjection = capPromptHookInjection;
54
+ exports.planFrontload = planFrontload;
55
+ exports.createDirectory = createDirectory;
56
+ exports.removeDirectory = removeDirectory;
57
+ exports.listDirectoryContents = listDirectoryContents;
58
+ exports.getDirectorySize = getDirectorySize;
59
+ exports.ensureSubdirectory = ensureSubdirectory;
60
+ exports.validateDirectory = validateDirectory;
61
+ const fs = __importStar(require("fs"));
62
+ const os = __importStar(require("os"));
63
+ const path = __importStar(require("path"));
64
+ /** The default per-project data directory name. */
65
+ const DEFAULT_ALPHA_CS_DIR = '.alpha-cs';
66
+ let warnedBadDirName = false;
67
+ /**
68
+ * Resolve the per-project data directory name, honoring the `CODEGRAPH_DIR`
69
+ * environment override (default `.codegraph`). The override is a single path
70
+ * segment that lives in the project root.
71
+ *
72
+ * Why this exists: two environments that share one working tree must NOT share
73
+ * one `.alpha-cs/` — most concretely Windows-native and WSL (issue #636). The
74
+ * daemon lockfile (`.alpha-cs/daemon.pid`) records a platform-specific pid and
75
+ * socket path (a Windows named pipe vs a WSL Unix socket), and SQLite file
76
+ * locking across the WSL2 ↔ Windows filesystem boundary is unreliable, so two
77
+ * daemons sharing one index risks corruption. Setting `CODEGRAPH_DIR=.codegraph-win`
78
+ * on one side gives each environment its own index in the same tree.
79
+ *
80
+ * Read live (not captured at load) so it is both process-accurate and testable.
81
+ * An override that isn't a plain directory name — empty, containing a path
82
+ * separator, `.`, `..`/traversal, or absolute — is ignored (we keep the
83
+ * default) rather than risk writing the index outside the project or into the
84
+ * project root itself; we warn once to stderr so the misconfiguration is seen.
85
+ */
86
+ function alphaCsDirName() {
87
+ const raw = process.env.CODEGRAPH_DIR?.trim();
88
+ if (!raw)
89
+ return DEFAULT_ALPHA_CS_DIR;
90
+ const invalid = raw === '.' ||
91
+ raw.includes('..') ||
92
+ raw.includes('/') ||
93
+ raw.includes('\\') ||
94
+ path.isAbsolute(raw);
95
+ if (invalid) {
96
+ if (!warnedBadDirName) {
97
+ warnedBadDirName = true;
98
+ // stderr only — stdout is the MCP protocol channel.
99
+ console.warn(`[codegraph] Ignoring invalid CODEGRAPH_DIR="${raw}" — it must be a plain ` +
100
+ `directory name (no path separators, no "..", not absolute). Using "${DEFAULT_ALPHA_CS_DIR}".`);
101
+ }
102
+ return DEFAULT_ALPHA_CS_DIR;
103
+ }
104
+ return raw;
105
+ }
106
+ /**
107
+ * Alpha Code Sense directory name — a load-time snapshot of {@link alphaCsDirName}.
108
+ * A running process's environment is fixed, so this equals the live value;
109
+ * it's kept as a stable string export for backward compatibility. Internal code
110
+ * resolves the name through {@link alphaCsDirName} / {@link getAlphaCsDir}
111
+ * so the `CODEGRAPH_DIR` override always applies.
112
+ */
113
+ exports.CODEGRAPH_DIR = alphaCsDirName();
114
+ /**
115
+ * Is `name` (a single path segment) a Alpha Code Sense data directory? Matches the
116
+ * default `.codegraph`, the active `CODEGRAPH_DIR` override, and any
117
+ * `.codegraph-*` sibling. File-watching and the indexer skip ALL of these, so
118
+ * when two environments share one working tree (Windows + WSL, issue #636)
119
+ * neither indexes or watches the other's index directory.
120
+ */
121
+ function isAlphaCsDataDir(name) {
122
+ return (name === DEFAULT_ALPHA_CS_DIR ||
123
+ name === alphaCsDirName() ||
124
+ name.startsWith(DEFAULT_ALPHA_CS_DIR + '-'));
125
+ }
126
+ /**
127
+ * Get the .codegraph directory path for a project
128
+ */
129
+ function getAlphaCsDir(projectRoot) {
130
+ return path.join(projectRoot, alphaCsDirName());
131
+ }
132
+ /**
133
+ * Check if a project has been initialized with Alpha Code Sense
134
+ * Requires both .alpha-cs/ directory AND codegraph.db to exist
135
+ */
136
+ function isInitialized(projectRoot) {
137
+ const codegraphDir = getAlphaCsDir(projectRoot);
138
+ if (!fs.existsSync(codegraphDir) || !fs.statSync(codegraphDir).isDirectory()) {
139
+ return false;
140
+ }
141
+ // Must have codegraph.db, not just .codegraph folder
142
+ const dbPath = path.join(codegraphDir, 'codegraph.db');
143
+ return fs.existsSync(dbPath);
144
+ }
145
+ /**
146
+ * Find the nearest parent directory containing .alpha-cs/
147
+ *
148
+ * Walks up from the given path to find an Alpha Code Sense-initialized project,
149
+ * similar to how git finds .git/ directories.
150
+ *
151
+ * @param startPath - Directory to start searching from
152
+ * @returns The project root containing .alpha-cs/, or null if not found
153
+ */
154
+ /**
155
+ * Reason a directory is unsafe to use as an index ROOT, or null when it's fine.
156
+ *
157
+ * Indexing your home directory or a filesystem root drags in caches, `Library`,
158
+ * every other project, etc. — a multi-GB index, constant file-watcher churn, and
159
+ * (pre-1.0 on macOS) a file-descriptor blowup that exhausted `kern.maxfiles` and
160
+ * took unrelated apps / the whole machine down (#845). The classic trigger:
161
+ * running the installer or `codegraph init` from `$HOME`, which auto-indexes the
162
+ * current directory. These are never intended project roots, so the installer
163
+ * and `init`/`index` refuse them (overridable with `--force`).
164
+ *
165
+ * Pure-ish (reads only `os.homedir()` + realpath) so it's easy to unit-test.
166
+ * The returned string is a human phrase that slots into "… looks like {reason}".
167
+ */
168
+ function unsafeIndexRootReason(projectRoot) {
169
+ const resolve = (p) => {
170
+ try {
171
+ return fs.realpathSync(path.resolve(p));
172
+ }
173
+ catch {
174
+ return path.resolve(p);
175
+ }
176
+ };
177
+ const resolved = resolve(projectRoot);
178
+ // Filesystem root: `/` on POSIX, a drive root like `C:\` on Windows.
179
+ if (path.parse(resolved).root === resolved) {
180
+ return 'the filesystem root';
181
+ }
182
+ const home = resolve(os.homedir());
183
+ // Case-insensitive on macOS/Windows (case-preserving but case-insensitive FS).
184
+ const norm = (p) => process.platform === 'darwin' || process.platform === 'win32' ? p.toLowerCase() : p;
185
+ const r = norm(resolved);
186
+ const h = norm(home);
187
+ if (r === h) {
188
+ return 'your home directory';
189
+ }
190
+ // An ancestor of home (e.g. `/Users`, `/home`) — even broader than home.
191
+ if (h.startsWith(r + path.sep)) {
192
+ return 'a parent of your home directory';
193
+ }
194
+ return null;
195
+ }
196
+ function findNearestAlphaCsRoot(startPath) {
197
+ let current = path.resolve(startPath);
198
+ const root = path.parse(current).root;
199
+ while (current !== root) {
200
+ if (isInitialized(current)) {
201
+ return current;
202
+ }
203
+ const parent = path.dirname(current);
204
+ if (parent === current)
205
+ break; // Reached filesystem root
206
+ current = parent;
207
+ }
208
+ // Check root as well
209
+ if (isInitialized(current)) {
210
+ return current;
211
+ }
212
+ return null;
213
+ }
214
+ /** Heavy/irrelevant directory names the sub-project scan never descends into. */
215
+ const SUBPROJECT_SCAN_SKIP = new Set([
216
+ 'node_modules', '.git', '.svn', '.hg', 'dist', 'build', 'out', 'target',
217
+ 'vendor', 'bin', 'obj', '.next', '.nuxt', '.svelte-kit', '.cache', 'coverage',
218
+ '.venv', 'venv', '__pycache__', '.turbo', '.idea', '.vscode', 'tmp', 'temp',
219
+ ]);
220
+ /** Manifests that mark a directory as a project/workspace root. The down-scan
221
+ * is gated on one of these so a non-project cwd (e.g. `$HOME`) is a cheap
222
+ * no-op instead of a deep filesystem crawl. */
223
+ const WORKSPACE_ROOT_MANIFESTS = [
224
+ 'package.json', 'pnpm-workspace.yaml', 'lerna.json', 'nx.json', 'turbo.json',
225
+ 'go.work', 'go.mod', 'Cargo.toml', 'pom.xml', 'build.gradle', 'build.gradle.kts',
226
+ 'settings.gradle', 'pyproject.toml', 'composer.json', 'Gemfile', 'rush.json',
227
+ 'WORKSPACE', 'WORKSPACE.bazel',
228
+ ];
229
+ function looksLikeProjectRoot(dir) {
230
+ return WORKSPACE_ROOT_MANIFESTS.some((m) => fs.existsSync(path.join(dir, m)));
231
+ }
232
+ function escapeRegExp(s) {
233
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
234
+ }
235
+ /**
236
+ * Indexed sub-project roots beneath `root` (bounded breadth-first scan). For
237
+ * the monorepo case behind #964: the index lives in a CHILD
238
+ * (`packages/x/.alpha-cs/`), not at the workspace root the agent's cwd points
239
+ * at. Descent stops at the first indexed directory on a branch (a project's
240
+ * own sub-dirs aren't separate projects) and is bounded by depth + count so it
241
+ * never turns into a full-tree crawl on a large repo.
242
+ */
243
+ function findIndexedSubprojectRoots(root, opts = {}) {
244
+ // A stray workspace manifest must not enable scanning home or broader roots (#1454).
245
+ if (unsafeIndexRootReason(root) !== null)
246
+ return [];
247
+ const maxDepth = opts.maxDepth ?? 4;
248
+ const max = opts.max ?? 64;
249
+ const out = [];
250
+ const walk = (dir, depth) => {
251
+ if (out.length >= max || depth > maxDepth)
252
+ return;
253
+ let entries;
254
+ try {
255
+ entries = fs.readdirSync(dir, { withFileTypes: true });
256
+ }
257
+ catch {
258
+ return;
259
+ }
260
+ for (const e of entries) {
261
+ if (out.length >= max)
262
+ return;
263
+ if (!e.isDirectory())
264
+ continue;
265
+ if (e.name.startsWith('.') || SUBPROJECT_SCAN_SKIP.has(e.name))
266
+ continue;
267
+ const child = path.join(dir, e.name);
268
+ if (isInitialized(child)) {
269
+ out.push(child);
270
+ continue;
271
+ } // don't descend into an indexed project
272
+ walk(child, depth + 1);
273
+ }
274
+ };
275
+ walk(root, 1);
276
+ return out;
277
+ }
278
+ /**
279
+ * Whether `base` is a plausible workspace root for the sub-project down-scan.
280
+ * Mirrors `planFrontload`'s manifest gate, widened to accept a bare `.git`
281
+ * entry — the #1606 shape is a workspace container holding only agent config
282
+ * and a `.git`, with every build manifest living in the indexed children. The
283
+ * user's home directory and the filesystem root are never eligible: a stray
284
+ * manifest there must not turn server startup into a scan that could adopt an
285
+ * unrelated project (#1454 documents that failure mode for the prompt-hook).
286
+ */
287
+ function eligibleForSubprojectScan(base) {
288
+ if (base === path.parse(base).root)
289
+ return false;
290
+ let home = null;
291
+ try {
292
+ home = os.homedir();
293
+ }
294
+ catch {
295
+ home = null;
296
+ }
297
+ if (home && (base === home || base === path.resolve(home)))
298
+ return false;
299
+ if (looksLikeProjectRoot(base))
300
+ return true;
301
+ return fs.existsSync(path.join(base, '.git'));
302
+ }
303
+ /**
304
+ * Resolve the project root an MCP server should serve as its DEFAULT project
305
+ * (#1606). Up-walk first (`findNearestAlphaCsRoot` — the common case, and
306
+ * cheap). When nothing is indexed at or above `searchFrom`, run the bounded
307
+ * sub-project down-scan `planFrontload` already uses, behind the workspace
308
+ * gate above: EXACTLY ONE indexed sub-project is unambiguous and is adopted
309
+ * as the root; zero or several yield no root, with the candidates carried so
310
+ * the caller can name them instead of failing silently (#1607).
311
+ *
312
+ * `opts.subprojectScan: false` skips the down-scan entirely (the per-tool-call
313
+ * retry path throttles it; the up-walk always runs).
314
+ */
315
+ function resolveServerRoot(searchFrom, opts = {}) {
316
+ const up = findNearestAlphaCsRoot(searchFrom);
317
+ if (up)
318
+ return { root: up, viaSubScan: false, candidates: [] };
319
+ if (opts.subprojectScan === false)
320
+ return { root: null, viaSubScan: false, candidates: [] };
321
+ const base = path.resolve(searchFrom);
322
+ if (!eligibleForSubprojectScan(base))
323
+ return { root: null, viaSubScan: false, candidates: [] };
324
+ const subs = findIndexedSubprojectRoots(base);
325
+ if (subs.length === 1)
326
+ return { root: subs[0], viaSubScan: true, candidates: subs };
327
+ return { root: null, viaSubScan: false, candidates: subs };
328
+ }
329
+ /**
330
+ * Unicode-aware word-boundary emulation for the keyword lists below. JS's `\b`
331
+ * is ASCII-only — it fires only at `[A-Za-z0-9_]` edges — so it can never bound
332
+ * a keyword whose first or last character is accented or non-Latin: `/\boù\b/`
333
+ * NEVER matches "où est …" (ù isn't an ASCII word char, so no boundary exists
334
+ * next to it). That is the #994 CJK mechanism resurfaced for Latin scripts and
335
+ * Cyrillic (#1126). A lookaround — "not flanked by a letter, digit, or
336
+ * underscore" — is the script-independent equivalent.
337
+ */
338
+ const NOT_WORD_BEFORE = /(?<![\p{L}\p{N}_])/u.source;
339
+ const NOT_WORD_AFTER = /(?![\p{L}\p{N}_])/u.source;
340
+ /**
341
+ * Structural keywords matched as EXACT words (boundary on both sides): short
342
+ * or ambiguous tokens where prefix matching would false-positive ("flow" in
343
+ * "flower", "path" in "pathological"). Grouped by language; a term appears once
344
+ * even when several languages share it ("como" is Portuguese for how AND
345
+ * unaccented-typed Spanish "cómo").
346
+ */
347
+ const STRUCTURAL_WORDS = [
348
+ // English — the pre-#1126 list minus what moved to STRUCTURAL_STEMS: the
349
+ // bare-stem entries never matched their own derived forms (`\barchitect\b`
350
+ // can't match "architecture"), and "what calls" is subsumed by the "call" stem.
351
+ 'how', 'where', 'tracing', 'flows?', 'paths?', 'reach(?:es|ed)?', 'wired?', 'breaks?', 'why does',
352
+ // French (où=where, flux=flow, chemin=path, casse=breaks)
353
+ 'comment', 'où', 'flux', 'chemins?', 'casse',
354
+ // Spanish (cómo/como=how, dónde/donde=where, flujo=flow, ruta/camino=path,
355
+ // rompe=breaks, llaman / quién llama = call(s) — bare "llama" is excluded:
356
+ // it's also the animal/model name in English prompts)
357
+ 'cómo', 'dónde', 'donde', 'flujos?', 'rutas?', 'caminos?', 'rompe', 'llaman', 'quién llama', 'quien llama',
358
+ // Portuguese (como=how — also covers unaccented Spanish; onde=where,
359
+ // fluxo=flow, caminho=path)
360
+ 'como', 'onde', 'fluxos?', 'caminhos?',
361
+ // German (wie=how, wo/woher/wohin=where, Pfad=path, Fluss/Ablauf=flow,
362
+ // bricht/kaputt=breaks, ruft=calls, hängt=depends — "hängt … von X ab"
363
+ // splits the separable verb "abhängen", so the "abhäng" stem can't catch it)
364
+ 'wie', 'wo', 'woher', 'wohin', 'pfade?', 'fluss', 'ablauf', 'bricht', 'kaputt', 'ruft', 'hängt',
365
+ // Italian (dove=where, flusso=flow, percorso/i=path)
366
+ 'dove', 'flusso', 'percors[oi]',
367
+ // Russian (как=how, где=where, путь/пути=path, работает=works)
368
+ 'как', 'где', 'путь', 'пути', 'работает',
369
+ // Ukrainian (як=how, де=where, потік=flow — обліque cases reuse the RU
370
+ // "поток" stem; працює=works)
371
+ 'як', 'де', 'потік', 'працює',
372
+ // Dutch (hoe=how, waar=where, roept=calls, werkt=works, aangeroepen=called —
373
+ // the ge- participle escapes the "aanroep" stem)
374
+ 'hoe', 'waar', 'roept', 'werkt', 'aangeroepen',
375
+ // Polish + Czech (jak=how — shared; gdzie/kde=where, cesta=path)
376
+ 'jak', 'gdzie', 'kde', 'cesta',
377
+ // Romanian (cum=how, unde=where; flux is shared with French)
378
+ 'cum', 'unde',
379
+ // Hungarian (hogyan=how, hol=where)
380
+ 'hogyan', 'hol',
381
+ // Turkish (nasıl=how, mimari=architecture, takip=trace/follow)
382
+ 'nasıl', 'mimari', 'takip',
383
+ // Indonesian/Malay (bagaimana=how, di mana/dimana=where, alur=flow, jalur=path)
384
+ 'bagaimana', 'di mana', 'dimana', 'alur', 'jalur',
385
+ // Vietnamese — spaced Latin with heavy diacritics, the exact class ASCII `\b`
386
+ // breaks (làm sao/thế nào=how, ở đâu=where, gọi=call, phụ thuộc=depend,
387
+ // ảnh hưởng=affect, kiến trúc=architecture, cấu trúc=structure, luồng=flow,
388
+ // đường dẫn=path, hoạt động=works, giải thích=explain, theo dõi=trace)
389
+ 'làm sao', 'thế nào', 'ở đâu', 'gọi', 'phụ thuộc', 'ảnh hưởng', 'kiến trúc',
390
+ 'cấu trúc', 'luồng', 'đường dẫn', 'hoạt động', 'giải thích', 'theo dõi',
391
+ // Swedish / Danish / Norwegian (hur/hvordan=how, hvor=where, beror=depends,
392
+ // flöde=flow)
393
+ 'hur', 'hvordan', 'hvor', 'beror', 'flöde',
394
+ // Finnish (miten=how, missä=where, toimii=works)
395
+ 'miten', 'missä', 'toimii',
396
+ // Greek (πώς=how, πού=where — accented forms only: unaccented πως/που are
397
+ // ubiquitous conjunctions; καλεί=calls, δομή=structure, ροή=flow)
398
+ 'πώς', 'πού', 'καλεί', 'δομή', 'ροή',
399
+ // Hindi (कैसे=how, कहाँ/कहां=where, कॉल=call, निर्भर=depends,
400
+ // संरचना=structure, प्रवाह=flow)
401
+ 'कैसे', 'कहाँ', 'कहां', 'कॉल', 'निर्भर', 'संरचना', 'प्रवाह',
402
+ ];
403
+ /**
404
+ * Structural keyword STEMS matched as word PREFIXES (boundary on the left
405
+ * only), so derived forms match without enumerating each: "architect" fires on
406
+ * architecture/architectural, "depend" on depends/dependency/dependencies,
407
+ * "вызыва" on вызывает/вызывается. Mid-word occurrences stay excluded —
408
+ * "restructure"/"independent" don't fire — so precision stays close to the
409
+ * exact-word class. Add a stem only when every plausible completion is still a
410
+ * structural word; a stem with ordinary-English completions must instead
411
+ * enumerate its structural suffixes and re-assert the right boundary (see the
412
+ * four bounded English entries below, #1138).
413
+ */
414
+ const STRUCTURAL_STEMS = [
415
+ // English + the Latin-script languages that share the spelling (French
416
+ // architecture/structure/trace/impact, Spanish depende/implementa/impacto, …).
417
+ // call/trace/affect/connect are NOT safe as open prefixes — callus,
418
+ // calligraphy, Connecticut, connective, affectionate, Tracey are ordinary
419
+ // words that would false-fire the full-explore tier (#1138) — so they carry
420
+ // an enumerated suffix set + right boundary. "tracing" lives in
421
+ // STRUCTURAL_WORDS (the e is dropped, so no trace-prefix form matches it).
422
+ 'architect', 'structur', 'depend', 'implement', 'impact', 'explain',
423
+ `call(?:s|ing|ed|ers?|backs?|able|sites?)?${NOT_WORD_AFTER}`,
424
+ `trace(?:s|d|rs?)?${NOT_WORD_AFTER}`,
425
+ `affect(?:s|ed|ing)?${NOT_WORD_AFTER}`,
426
+ `connect(?:s|ed|ing|ions?|ors?|ivity)?${NOT_WORD_AFTER}`,
427
+ // French (appel(le)=call, dépend=depends, implément(e)=implement,
428
+ // connex(ion)=connection, expliqu(e)=explain, fonctionn(e/ement)=works)
429
+ 'appel', 'dépend', 'implément', 'connex', 'expliqu', 'fonctionn',
430
+ // Spanish (llamad(a)=call, afect(a)=affect, conect(a)/conexi(ón)=connect,
431
+ // arquitec(tura)=architecture, estructur(a)=structure, funcion(a)=works,
432
+ // traza(r)=trace, explica=explain)
433
+ 'llamad', 'afect', 'conect', 'conexi', 'arquitec', 'estructur', 'funcion', 'traza', 'explica',
434
+ // Portuguese (chama(da)=call, afeta=affect, arquitet(ura)=architecture,
435
+ // estrutur(a)=structure, quebra(do)=breaks)
436
+ 'chama', 'afeta', 'arquitet', 'estrutur', 'quebra',
437
+ // German (abhäng(t)=depend, Auswirkung=impact, beeinfluss(t)=affect,
438
+ // verbind(et)=connect, Architektur, Struktur, funktionier(t)=works,
439
+ // Aufruf/aufgerufen=call, erklär(t)=explain, verfolg(en)=trace)
440
+ 'abhäng', 'auswirkung', 'beeinfluss', 'verbind', 'architekt', 'struktur', 'funktionier', 'aufruf', 'aufgerufen', 'erklär', 'verfolg',
441
+ // Italian (chiam(a/ata)=call, dipend(e/enza)=depend, impatt(o)=impact,
442
+ // connett(e)/conness(ione)=connect, architett(ura), struttur(a),
443
+ // funzion(a/amento)=works, tracci(a)=trace, spiega(mi)=explain)
444
+ 'chiam', 'dipend', 'impatt', 'connett', 'conness', 'architett', 'struttur', 'funzion', 'tracci', 'spiega',
445
+ // Russian (вызыва(ет)=calls, завис(ит)=depends, влия(ет)=affects,
446
+ // реализ(ация)=implementation, структур(а), архитектур(а),
447
+ // трассир(овка)=trace, лома(ет)=breaks, объясн(и)=explain, поток=flow)
448
+ 'вызыва', 'завис', 'влия', 'реализ', 'структур', 'архитектур', 'трассир', 'лома', 'объясн', 'поток',
449
+ // Ukrainian — і/и spellings diverge from Russian (виклика(є)=calls,
450
+ // залеж(ить)=depends, вплива(є)=affects, архітектур(а), реаліз(ація),
451
+ // поясн(и)=explain, шлях(у)=path; структур(а) is shared with Russian)
452
+ 'виклика', 'залеж', 'вплива', 'архітектур', 'реаліз', 'поясн', 'шлях',
453
+ // Dutch (aanroep(en)=call, afhankelijk(heid)=depends, beïnvloed(t)=affects,
454
+ // structuur — "structur" can't reach the uu; uitleg(gen)=explain)
455
+ 'aanroep', 'afhankelijk', 'beïnvloed', 'structuur', 'uitleg',
456
+ // Polish (wywoł(uje)=calls, zależ(y)=depends, wpływ(a)=affects/impact,
457
+ // przepływ=flow, ścieżk(a)=path, działa(nie)=works, wyjaśni(j)=explain,
458
+ // śledz(enie)=trace; architektura/struktura fire via the German stems)
459
+ 'wywoł', 'zależ', 'wpływ', 'przepływ', 'ścieżk', 'działa', 'wyjaśni', 'śledz',
460
+ // Czech (volá(ní)=calls, závis(í)=depends, ovlivň(uje)=affects,
461
+ // funguj(e)=works, vysvětl(i)=explain)
462
+ 'volá', 'závis', 'ovlivň', 'funguj', 'vysvětl',
463
+ // Romanian (apel(ează)=calls, depind(e)=depends — i not e, so "depend" misses
464
+ // it; arhitectur(a) — no c; funcțion(ează)=works, explică=explain)
465
+ 'apel', 'depind', 'arhitectur', 'funcțion', 'explică',
466
+ // Hungarian (hív(ja)=calls, függ(őség)=depends, működ(ik)=works,
467
+ // struktúr(a) — ú escapes "struktur"; magyaráz(d)=explain;
468
+ // architektúra fires via the German stem)
469
+ 'hív', 'függ', 'működ', 'struktúr', 'magyaráz',
470
+ // Turkish — agglutinative, so stems beat exact words (nere(de/ye/den)=where,
471
+ // çağır/çağrı=call, bağıml(ı)=depends, bağlant(ı)=connection, akış(ı)=flow,
472
+ // etkile(r)/etkisi=affects/impact)
473
+ 'nere', 'çağır', 'çağrı', 'bağıml', 'bağlant', 'akış', 'etkile', 'etkisi',
474
+ // Indonesian/Malay — me-/di-/ber- prefixes block a bare stem, so affixed
475
+ // forms are listed too (panggil(an)/memanggil/dipanggil=call,
476
+ // bergantung/tergantung=depends, pengaruh/mempengaruhi/memengaruhi=affect,
477
+ // arsitektur=architecture, fungsi/berfungsi=works,
478
+ // jelaskan/menjelaskan=explain)
479
+ 'panggil', 'memanggil', 'dipanggil', 'bergantung', 'tergantung', 'pengaruh',
480
+ 'mempengaruhi', 'memengaruhi', 'arsitektur', 'fungsi', 'berfungsi', 'jelaskan', 'menjelaskan',
481
+ // Swedish / Danish / Norwegian (anrop(ar)=calls, påverk(ar)/påvirk(er)=affects,
482
+ // afhæng(er)/avheng(er)=depends, förklar(a)/forklar=explain,
483
+ // arkitektur — k not ch; funger(ar/er)=works)
484
+ 'anrop', 'påverk', 'påvirk', 'afhæng', 'avheng', 'förklar', 'forklar', 'arkitektur', 'funger',
485
+ // Finnish (kutsu(u)=calls, riippu(u)=depends, arkkitehtuur(i),
486
+ // rakente(en)=structure, selit(ä)=explain)
487
+ 'kutsu', 'riippu', 'arkkitehtuur', 'rakente', 'selit',
488
+ // Greek — accented and unaccented stem spellings both occur
489
+ // (εξαρτ(άται)=depends, επηρε(άζει)=affects, αρχιτεκτονικ(ή),
490
+ // διαδρομ(ή)=path, εξηγ/εξήγ(ησε)=explain)
491
+ 'εξαρτ', 'επηρε', 'αρχιτεκτονικ', 'διαδρομ', 'εξηγ', 'εξήγ',
492
+ // Hindi (समझा(ओ/इए)=explain, आर्किटेक्चर=architecture)
493
+ 'समझा', 'आर्किटेक्चर',
494
+ ];
495
+ const STRUCTURAL_WORDS_RE = new RegExp(`${NOT_WORD_BEFORE}(?:${STRUCTURAL_WORDS.join('|')})${NOT_WORD_AFTER}`, 'iu');
496
+ const STRUCTURAL_STEMS_RE = new RegExp(`${NOT_WORD_BEFORE}(?:${STRUCTURAL_STEMS.join('|')})`, 'iu');
497
+ /**
498
+ * Structural keywords matched as bare SUBSTRINGS, for languages where a
499
+ * boundary can't be relied on: scripts with no word separators (Chinese —
500
+ * simplified AND traditional; the original #994 set was simplified-only —
501
+ * Japanese, Thai), Korean (spaced, but particles attach directly to the noun:
502
+ * 구조가/구조를), and Arabic / Farsi / Hebrew (spaced, but proclitics attach to
503
+ * the word: وكيف "and-how", והמבנה "and-the-structure"). JS's `\b` can never
504
+ * fire between Han characters, which was issue #994: the English-only gate
505
+ * silently no-op'd every Chinese prompt, so non-English users got no front-load
506
+ * nudge and no error to explain why. The sets mirror the English intent
507
+ * (如何/怎么/怎麼/どうやって/どのように/어떻게/كيف/چگونه/چطور/איך/อย่างไร/ยังไง=how,
508
+ * 在哪/哪里/哪裡/어디/أين/كجا/איפה/ที่ไหน=where, 流程/流向/流れ/흐름/تدفق/זרימה=flow,
509
+ * 路径/路徑/経路/경로/مسار/مسیر/נתיב/เส้นทาง=path,
510
+ * 调用/調用/呼び出/호출/يستدعي/استدعاء/فراخوان/קורא/เรียกใช้=call,
511
+ * 依赖/依賴/依存/의존/يعتمد/تعتمد/وابسته/תלוי/ขึ้นอยู่กับ=depend,
512
+ * 影响/影響/영향/يؤثر/تأثير/تأثیر/משפיע/ผลกระทบ=impact/affect,
513
+ * 实现/實現/実装/구현=implement,
514
+ * 架构/架構/アーキテクチャ/아키텍처/معماري/معماری/ארכיטקטור/สถาปัตยกรรม=architecture,
515
+ * 结构/結構/構造/구조/بنية/هيكل/ساختار/מבנה/โครงสร้าง=structure,
516
+ * 追踪/跟踪/追蹤/追跡/トレース/추적/تتبع/ติดตาม=trace,
517
+ * يعمل/تعمل/ทำงาน=works) plus structural-overview words with no single clean
518
+ * English equivalent (介绍/介紹/解析/分析/原理/机制/機制/仕組み/説明/설명/動作/동작/작동/
519
+ * اشرح/شرح/توضیح/הסבר/อธิบาย=explain).
520
+ *
521
+ * KNOWN, ACCEPTED false-positive class (#1140): substring matching cannot see
522
+ * homograph compounds — Korean 구조 (structure) also fires inside 구조대
523
+ * (rescue squad). Verified unfixable at this layer: ICU word segmentation
524
+ * (Intl.Segmenter) returns 구조대 and the particle form 구조가 (which the gate
525
+ * MUST keep matching) as equally opaque single segments, and a 구조대 denylist
526
+ * would break 구조대로 ("according to the structure" — 구조 + the 대로
527
+ * particle), a legitimate structural prompt. The miss rate this design avoids
528
+ * (silently no-op'ing every prompt in these languages, #994) outweighs the
529
+ * occasional off-domain fire.
530
+ */
531
+ const STRUCTURAL_UNSEGMENTED = /如何|怎么|怎麼|在哪|哪里|哪裡|追踪|跟踪|追蹤|追跡|トレース|流程|流向|流れ|路径|路徑|経路|调用|調用|呼び出|依赖|依賴|依存|影响|影響|实现|實現|実装|架构|架構|アーキテクチャ|结构|結構|構造|介绍|介紹|解析|分析|原理|机制|機制|仕組み|説明|動作|どうやって|どのように|어떻게|어디|호출|흐름|경로|의존|영향|구현|구조|아키텍처|추적|동작|작동|설명|كيف|أين|اين|يستدعي|استدعاء|يعتمد|تعتمد|يؤثر|تأثير|معماري|بنية|هيكل|تدفق|مسار|تتبع|يعمل|تعمل|اشرح|شرح|چگونه|چطور|کجا|فراخوان|وابسته|تأثیر|معماری|ساختار|مسیر|توضیح|איך|איפה|קורא|תלוי|משפיע|ארכיטקטור|מבנה|זרימה|נתיב|הסבר|อย่างไร|ยังไง|ที่ไหน|เรียกใช้|ขึ้นอยู่กับ|ผลกระทบ|สถาปัตยกรรม|โครงสร้าง|เส้นทาง|ติดตาม|ทำงาน|อธิบาย/;
532
+ /** Doc/data/asset file extensions — a `name.ext` of this kind is a file
533
+ * reference, not a code symbol, so it must not trip the member-access signal. */
534
+ const DOC_DATA_EXT = /\.(md|markdown|txt|rst|json|ya?ml|toml|lock|csv|tsv|log|ini|cfg|conf|env|xml|html?|png|jpe?g|gif|svg|pdf)$/i;
535
+ /**
536
+ * Does `prompt` contain an explicit structural keyword? A keyword is a strong,
537
+ * self-contained signal, so the front-load hook fires on it directly — no graph
538
+ * check needed. (A *code-token* match, by contrast, is only a candidate the
539
+ * hook verifies against the graph first; see {@link extractCodeTokens}.)
540
+ * Coverage is multilingual (#994, #1126): the ~29 languages with the largest
541
+ * developer populations, across Latin, Cyrillic, Greek, CJK, Hangul, Arabic,
542
+ * Hebrew, Thai, and Devanagari scripts. Languages beyond the keyword table
543
+ * still fire through the language-agnostic code-token path.
544
+ */
545
+ function hasStructuralKeyword(prompt) {
546
+ return (!!prompt &&
547
+ (STRUCTURAL_WORDS_RE.test(prompt) || STRUCTURAL_STEMS_RE.test(prompt) || STRUCTURAL_UNSEGMENTED.test(prompt)));
548
+ }
549
+ /**
550
+ * Identifier-shaped tokens in `prompt` — camelCase / PascalCase-with-inner-cap,
551
+ * snake_case, a `name(` call, or the two sides of an `a.b` member access. Naming
552
+ * a symbol is a code question whatever the surrounding human language, and these
553
+ * shapes almost never occur in ordinary prose, so they catch the common
554
+ * "<symbol> 的调用链?" / "where is <symbol> 定義" prompts no keyword list would.
555
+ *
556
+ * These are *candidates*, not a verdict: a tech brand like `JavaScript` or
557
+ * `GitHub` is identifier-shaped too, so the front-load hook checks each token
558
+ * against the actual index ({@link getNodesByName}) and only fires when one is a
559
+ * real symbol here — otherwise a brand-name prompt would inject ~16KB of
560
+ * low-relevance context (issue #994 follow-up). A doc/data filename ("README.md")
561
+ * is excluded from the member-access form since it's a file reference, not a symbol.
562
+ */
563
+ function extractCodeTokens(prompt) {
564
+ if (!prompt)
565
+ return [];
566
+ const out = new Set();
567
+ // camelCase / PascalCase-with-inner-cap (getUserId, parseToken, UserService) or
568
+ // snake_case (article_publish, get_user) — a whole identifier run that has an
569
+ // inner lower→upper transition or an underscore flanked by alphanumerics.
570
+ for (const m of prompt.matchAll(/[A-Za-z_$][\w$]*/g)) {
571
+ const w = m[0];
572
+ if (/[a-z][A-Z]/.test(w) || /[A-Za-z0-9]_[A-Za-z0-9]/.test(w))
573
+ out.add(w);
574
+ }
575
+ // call form: an identifier directly before '(' — parseToken(, render(). No
576
+ // whitespace before '(' so prose like "the function (entry point)" doesn't trip it.
577
+ for (const m of prompt.matchAll(/([A-Za-z_$][\w$]*)\(/g))
578
+ out.add(m[1]);
579
+ // member access on identifiers (user.login) — but not a doc/data filename.
580
+ for (const m of prompt.matchAll(/([A-Za-z_$][\w$]*)\.([A-Za-z_$][\w$]*)/g)) {
581
+ if (!DOC_DATA_EXT.test(m[0])) {
582
+ out.add(m[1]);
583
+ out.add(m[2]);
584
+ }
585
+ }
586
+ return [...out];
587
+ }
588
+ /**
589
+ * Cheap, graph-free candidate gate for the front-load hook: could `prompt` be a
590
+ * structural / flow / impact / "where-how" question worth front-loading context
591
+ * for? True on an explicit keyword in any covered language (#994, #1126) OR an
592
+ * identifier-shaped token. A keyword is sufficient to fire on its own; a
593
+ * token-only match is only a candidate the hook then verifies against the graph
594
+ * (a brand name like `JavaScript` is token-shaped but isn't a symbol). Every
595
+ * non-candidate prompt ("fix this typo", in any language) stays a zero-cost no-op.
596
+ */
597
+ function isStructuralPrompt(prompt) {
598
+ return hasStructuralKeyword(prompt) || extractCodeTokens(prompt).length > 0;
599
+ }
600
+ /**
601
+ * Claude Code persists `UserPromptSubmit` hook stdout above this many
602
+ * characters to a file and shows the model a ~2 KB preview instead (#1694).
603
+ * Measured on Claude Code 2.1.261; documented in the hooks reference as a
604
+ * 10,000-character cap on hook output strings.
605
+ */
606
+ exports.CLAUDE_CODE_INLINE_HOOK_OUTPUT_LIMIT = 10_000;
607
+ /**
608
+ * Max characters of explore text injected by `codegraph prompt-hook` before
609
+ * truncation. Must stay under {@link CLAUDE_CODE_INLINE_HOOK_OUTPUT_LIMIT} so
610
+ * the host delivers the payload inline. 9,000 leaves ~1k for the
611
+ * `<codegraph_context>` wrapper and the `projectPath` nudge lines appended
612
+ * after the cap is applied.
613
+ */
614
+ exports.PROMPT_HOOK_INJECTION_MAX = 9_000;
615
+ /**
616
+ * Cap explore text for the prompt-hook injection, preserving the existing
617
+ * "call codegraph_explore for the rest" notice when truncated.
618
+ */
619
+ function capPromptHookInjection(text, max = exports.PROMPT_HOOK_INJECTION_MAX) {
620
+ return text.length > max
621
+ ? `${text.slice(0, max)}\n…(truncated; call codegraph_explore for the rest)`
622
+ : text;
623
+ }
624
+ /**
625
+ * Decide what the front-load hook injects for a `prompt` issued from `cwd`,
626
+ * shaped by where the `.alpha-cs/` index(es) actually are:
627
+ * 1. **cwd (or an ancestor) is indexed** → front-load that project. The
628
+ * normal single-project / nested-file case.
629
+ * 2. **cwd isn't indexed but looks like a workspace root** → the indexes live
630
+ * in sub-projects (the monorepo case behind #964). One indexed
631
+ * sub-project → front-load it; several → front-load the one the prompt
632
+ * names (by relative path like `packages/api`, or package directory name)
633
+ * and nudge about the rest; several with no match → nudge the full list so
634
+ * the agent passes `projectPath`, rather than guessing wrong.
635
+ * 3. **nothing indexed reachable** → do nothing (the agent's own tools apply).
636
+ */
637
+ function planFrontload(cwd, prompt) {
638
+ const none = { exploreRoot: null, nudgeProjects: [], viaSubScan: false };
639
+ // 1. up-walk — nearest indexed ancestor (incl. cwd). Cheap; covers the common
640
+ // single-project case without a down-scan.
641
+ let dir = path.resolve(cwd);
642
+ for (let i = 0; i < 6; i++) {
643
+ if (isInitialized(dir))
644
+ return { exploreRoot: dir, nudgeProjects: [], viaSubScan: false };
645
+ const parent = path.dirname(dir);
646
+ if (parent === dir)
647
+ break;
648
+ dir = parent;
649
+ }
650
+ // 2. down-scan — only from something that looks like a workspace root, so a
651
+ // non-project cwd (e.g. $HOME) is a cheap no-op, not a deep crawl.
652
+ const base = path.resolve(cwd);
653
+ if (!looksLikeProjectRoot(base))
654
+ return none;
655
+ const subs = findIndexedSubprojectRoots(base);
656
+ if (subs.length === 0)
657
+ return none;
658
+ if (subs.length === 1)
659
+ return { exploreRoot: subs[0], nudgeProjects: [], viaSubScan: true };
660
+ // Several indexed sub-projects — pick the one the prompt points at, if any.
661
+ const p = prompt.toLowerCase();
662
+ let best = null;
663
+ for (const s of subs) {
664
+ const rel = path.relative(base, s);
665
+ const relLc = rel.split(path.sep).join('/').toLowerCase();
666
+ const name = path.basename(s).toLowerCase();
667
+ let score = 0;
668
+ if (relLc && p.includes(relLc))
669
+ score = 10; // "packages/api"
670
+ else if (name.length >= 3 && new RegExp(`\\b${escapeRegExp(name)}\\b`).test(p))
671
+ score = 5; // "api"
672
+ if (score > 0 && (!best || score > best.score || (score === best.score && rel.length < best.relLen))) {
673
+ best = { root: s, score, relLen: rel.length };
674
+ }
675
+ }
676
+ if (best) {
677
+ return { exploreRoot: best.root, nudgeProjects: subs.filter((s) => s !== best.root), viaSubScan: true };
678
+ }
679
+ // No clear match — nudge the full list rather than front-load a guess.
680
+ return { exploreRoot: null, nudgeProjects: subs, viaSubScan: true };
681
+ }
682
+ /**
683
+ * Contents of `.alpha-cs/.gitignore`. A single wildcard ignore keeps every
684
+ * transient file in the index dir — the database, `daemon.pid`, the socket,
685
+ * logs, cache, and anything future versions add — out of git, without having
686
+ * to enumerate each name (issues #788, #492, #484). Older versions wrote an
687
+ * explicit allowlist that never listed `daemon.pid` or the socket, so those
688
+ * runtime files were silently committed.
689
+ */
690
+ const GITIGNORE_CONTENT = `# Alpha Code Sense data files — local to each machine, not for committing.
691
+ # Ignore everything in .alpha-cs/ except this file itself, so transient
692
+ # files (the database, daemon.pid, sockets, logs) never show up in git.
693
+ *
694
+ !.gitignore
695
+ `;
696
+ /** Header line that prefixes every .gitignore Alpha Code Sense has auto-generated. */
697
+ const GITIGNORE_MARKER = '# Alpha Code Sense data files';
698
+ /**
699
+ * Is `content` a stale Alpha Code Sense-generated `.gitignore` that should be
700
+ * regenerated in place? True when it carries our header but predates the
701
+ * wildcard ignore (it has no bare `*` line) — i.e. one of the old explicit
702
+ * allowlists (`*.db`, `cache/`, `.dirty`, …) that never ignored `daemon.pid`
703
+ * or the socket (issue #788). A file WITHOUT our header is user-authored and
704
+ * is left untouched; one that already has the wildcard is current. Matching
705
+ * on the header (not a byte-exact list of past defaults) heals every old
706
+ * variant — v0.7.x through 0.9.9 — and is idempotent once upgraded.
707
+ */
708
+ function isStaleDefaultGitignore(content) {
709
+ if (!content.trimStart().startsWith(GITIGNORE_MARKER))
710
+ return false;
711
+ return !content.split('\n').some((line) => line.trim() === '*');
712
+ }
713
+ /**
714
+ * Write `.alpha-cs/.gitignore` if it's absent, or upgrade a stale
715
+ * Alpha Code Sense-generated default in place; a user-customized file is left alone.
716
+ * Best-effort — returns `false` only if a needed write failed.
717
+ */
718
+ function ensureGitignore(gitignorePath) {
719
+ let existing;
720
+ try {
721
+ existing = fs.readFileSync(gitignorePath, 'utf-8');
722
+ }
723
+ catch {
724
+ existing = null; // absent (ENOENT) or unreadable — (re)create below
725
+ }
726
+ // Current default or a user-authored file: nothing to do.
727
+ if (existing !== null && !isStaleDefaultGitignore(existing))
728
+ return true;
729
+ try {
730
+ fs.writeFileSync(gitignorePath, GITIGNORE_CONTENT, 'utf-8');
731
+ return true;
732
+ }
733
+ catch {
734
+ return false;
735
+ }
736
+ }
737
+ /**
738
+ * Create the .codegraph directory structure
739
+ * Note: Only throws if codegraph.db already exists, not just if .alpha-cs/ exists.
740
+ */
741
+ function createDirectory(projectRoot) {
742
+ const codegraphDir = getAlphaCsDir(projectRoot);
743
+ const dbPath = path.join(codegraphDir, 'codegraph.db');
744
+ // Only throw if Alpha Code Sense is actually initialized (db exists)
745
+ // .alpha-cs/ folder alone is fine
746
+ if (fs.existsSync(dbPath)) {
747
+ throw new Error(`Alpha Code Sense already initialized in ${projectRoot}`);
748
+ }
749
+ // Create main directory (if it doesn't exist)
750
+ fs.mkdirSync(codegraphDir, { recursive: true });
751
+ // Write .gitignore inside .codegraph (create if absent, upgrade a stale
752
+ // pre-wildcard default left by an older version — issue #788).
753
+ ensureGitignore(path.join(codegraphDir, '.gitignore'));
754
+ }
755
+ /**
756
+ * Remove the .codegraph directory
757
+ */
758
+ function removeDirectory(projectRoot) {
759
+ const codegraphDir = getAlphaCsDir(projectRoot);
760
+ if (!fs.existsSync(codegraphDir)) {
761
+ return;
762
+ }
763
+ // Verify .codegraph is a real directory, not a symlink pointing elsewhere
764
+ const lstat = fs.lstatSync(codegraphDir);
765
+ if (lstat.isSymbolicLink()) {
766
+ // Only remove the symlink itself, never follow it for recursive delete
767
+ fs.unlinkSync(codegraphDir);
768
+ return;
769
+ }
770
+ if (!lstat.isDirectory()) {
771
+ // Not a directory - remove the single file
772
+ fs.unlinkSync(codegraphDir);
773
+ return;
774
+ }
775
+ // Recursively remove directory
776
+ fs.rmSync(codegraphDir, { recursive: true, force: true });
777
+ }
778
+ /**
779
+ * Get all files in the .codegraph directory
780
+ */
781
+ function listDirectoryContents(projectRoot) {
782
+ const codegraphDir = getAlphaCsDir(projectRoot);
783
+ if (!fs.existsSync(codegraphDir)) {
784
+ return [];
785
+ }
786
+ const files = [];
787
+ function walkDir(dir, prefix = '') {
788
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
789
+ for (const entry of entries) {
790
+ const relativePath = prefix ? `${prefix}/${entry.name}` : entry.name;
791
+ // Skip symlinks to prevent following links outside .codegraph
792
+ if (entry.isSymbolicLink()) {
793
+ continue;
794
+ }
795
+ if (entry.isDirectory()) {
796
+ walkDir(path.join(dir, entry.name), relativePath);
797
+ }
798
+ else {
799
+ files.push(relativePath);
800
+ }
801
+ }
802
+ }
803
+ walkDir(codegraphDir);
804
+ return files;
805
+ }
806
+ /**
807
+ * Get the total size of the .codegraph directory in bytes
808
+ */
809
+ function getDirectorySize(projectRoot) {
810
+ const codegraphDir = getAlphaCsDir(projectRoot);
811
+ if (!fs.existsSync(codegraphDir)) {
812
+ return 0;
813
+ }
814
+ let totalSize = 0;
815
+ function walkDir(dir) {
816
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
817
+ for (const entry of entries) {
818
+ // Skip symlinks to prevent following links outside .codegraph
819
+ if (entry.isSymbolicLink()) {
820
+ continue;
821
+ }
822
+ const fullPath = path.join(dir, entry.name);
823
+ if (entry.isDirectory()) {
824
+ walkDir(fullPath);
825
+ }
826
+ else {
827
+ const stats = fs.statSync(fullPath);
828
+ totalSize += stats.size;
829
+ }
830
+ }
831
+ }
832
+ walkDir(codegraphDir);
833
+ return totalSize;
834
+ }
835
+ /**
836
+ * Ensure a subdirectory exists within .codegraph
837
+ */
838
+ function ensureSubdirectory(projectRoot, subdirName) {
839
+ if (subdirName.includes('..') || subdirName.includes(path.sep) || subdirName.includes('/')) {
840
+ throw new Error(`Invalid subdirectory name: ${subdirName}`);
841
+ }
842
+ const subdirPath = path.join(getAlphaCsDir(projectRoot), subdirName);
843
+ if (!fs.existsSync(subdirPath)) {
844
+ fs.mkdirSync(subdirPath, { recursive: true });
845
+ }
846
+ return subdirPath;
847
+ }
848
+ /**
849
+ * Check if the .codegraph directory has valid structure
850
+ */
851
+ function validateDirectory(projectRoot) {
852
+ const errors = [];
853
+ const codegraphDir = getAlphaCsDir(projectRoot);
854
+ if (!fs.existsSync(codegraphDir)) {
855
+ errors.push('Alpha Code Sense directory does not exist');
856
+ return { valid: false, errors };
857
+ }
858
+ if (!fs.statSync(codegraphDir).isDirectory()) {
859
+ errors.push('.codegraph exists but is not a directory');
860
+ return { valid: false, errors };
861
+ }
862
+ // Auto-repair / upgrade .gitignore (non-critical file). A missing one is
863
+ // recreated; a stale pre-wildcard default that never ignored daemon.pid is
864
+ // regenerated in place (issue #788); a user-authored file is left alone.
865
+ const gitignorePath = path.join(codegraphDir, '.gitignore');
866
+ const existedBefore = fs.existsSync(gitignorePath);
867
+ if (!ensureGitignore(gitignorePath) && !existedBefore) {
868
+ // Only a missing-and-uncreatable file is surfaced; a failed in-place
869
+ // upgrade of an existing file is non-fatal — the index still works.
870
+ errors.push('.gitignore missing in .codegraph directory and could not be created');
871
+ }
872
+ return {
873
+ valid: errors.length === 0,
874
+ errors,
875
+ };
876
+ }
877
+ //# sourceMappingURL=directory.js.map