@saluzi/codegraph 0.1.0 → 0.2.1

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 (712) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +885 -0
  3. package/dist/bin/codegraph.d.ts +2 -1
  4. package/dist/bin/codegraph.d.ts.map +1 -0
  5. package/dist/bin/codegraph.js +2248 -0
  6. package/dist/bin/codegraph.js.map +1 -0
  7. package/dist/bin/command-supervision.d.ts +49 -0
  8. package/dist/bin/command-supervision.d.ts.map +1 -0
  9. package/dist/bin/command-supervision.js +95 -0
  10. package/dist/bin/command-supervision.js.map +1 -0
  11. package/dist/bin/fatal-handler.d.ts +20 -0
  12. package/dist/bin/fatal-handler.d.ts.map +1 -0
  13. package/dist/bin/fatal-handler.js +118 -0
  14. package/dist/bin/fatal-handler.js.map +1 -0
  15. package/dist/bin/node-version-check.d.ts.map +1 -0
  16. package/dist/bin/node-version-check.js +79 -0
  17. package/dist/bin/node-version-check.js.map +1 -0
  18. package/dist/bin/uninstall.d.ts.map +1 -0
  19. package/dist/bin/uninstall.js +36 -0
  20. package/dist/bin/uninstall.js.map +1 -0
  21. package/dist/context/formatter.d.ts +6 -9
  22. package/dist/context/formatter.d.ts.map +1 -0
  23. package/dist/context/formatter.js +25 -6
  24. package/dist/context/formatter.js.map +1 -0
  25. package/dist/context/index.d.ts +102 -100
  26. package/dist/context/index.d.ts.map +1 -0
  27. package/dist/context/index.js +252 -6
  28. package/dist/context/index.js.map +1 -0
  29. package/dist/context/markers.d.ts +19 -0
  30. package/dist/context/markers.d.ts.map +1 -0
  31. package/dist/context/markers.js +22 -0
  32. package/dist/context/markers.js.map +1 -0
  33. package/dist/db/index.d.ts +185 -85
  34. package/dist/db/index.d.ts.map +1 -0
  35. package/dist/db/index.js +257 -14
  36. package/dist/db/index.js.map +1 -0
  37. package/dist/db/migrations.d.ts +15 -18
  38. package/dist/db/migrations.d.ts.map +1 -0
  39. package/dist/db/migrations.js +82 -1
  40. package/dist/db/migrations.js.map +1 -0
  41. package/dist/db/queries.d.ts +503 -281
  42. package/dist/db/queries.d.ts.map +1 -0
  43. package/dist/db/queries.js +644 -107
  44. package/dist/db/queries.js.map +1 -0
  45. package/dist/db/schema.sql +69 -26
  46. package/dist/db/sqlite-adapter.d.ts +26 -22
  47. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  48. package/dist/db/sqlite-adapter.js +11 -35
  49. package/dist/db/sqlite-adapter.js.map +1 -0
  50. package/dist/db/wal-valve.d.ts +106 -0
  51. package/dist/db/wal-valve.d.ts.map +1 -0
  52. package/dist/db/wal-valve.js +208 -0
  53. package/dist/db/wal-valve.js.map +1 -0
  54. package/dist/directory.d.ts +140 -19
  55. package/dist/directory.d.ts.map +1 -0
  56. package/dist/directory.js +568 -35
  57. package/dist/directory.js.map +1 -0
  58. package/dist/errors.d.ts +32 -45
  59. package/dist/errors.d.ts.map +1 -0
  60. package/dist/errors.js.map +1 -0
  61. package/dist/extraction/astro-extractor.d.ts +79 -0
  62. package/dist/extraction/astro-extractor.d.ts.map +1 -0
  63. package/dist/extraction/astro-extractor.js +320 -0
  64. package/dist/extraction/astro-extractor.js.map +1 -0
  65. package/dist/extraction/cfml-extractor.d.ts +107 -0
  66. package/dist/extraction/cfml-extractor.d.ts.map +1 -0
  67. package/dist/extraction/cfml-extractor.js +494 -0
  68. package/dist/extraction/cfml-extractor.js.map +1 -0
  69. package/dist/extraction/dfm-extractor.d.ts +17 -17
  70. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  71. package/dist/extraction/dfm-extractor.js.map +1 -0
  72. package/dist/extraction/extraction-version.d.ts +25 -0
  73. package/dist/extraction/extraction-version.d.ts.map +1 -0
  74. package/dist/extraction/extraction-version.js +28 -0
  75. package/dist/extraction/extraction-version.js.map +1 -0
  76. package/dist/extraction/function-ref.d.ts +118 -0
  77. package/dist/extraction/function-ref.d.ts.map +1 -0
  78. package/dist/extraction/function-ref.js +727 -0
  79. package/dist/extraction/function-ref.js.map +1 -0
  80. package/dist/extraction/generated-detection.d.ts +30 -0
  81. package/dist/extraction/generated-detection.d.ts.map +1 -0
  82. package/dist/extraction/generated-detection.js +83 -0
  83. package/dist/extraction/generated-detection.js.map +1 -0
  84. package/dist/extraction/grammars.d.ts +74 -30
  85. package/dist/extraction/grammars.d.ts.map +1 -0
  86. package/dist/extraction/grammars.js +289 -15
  87. package/dist/extraction/grammars.js.map +1 -0
  88. package/dist/extraction/index.d.ts +193 -109
  89. package/dist/extraction/index.d.ts.map +1 -0
  90. package/dist/extraction/index.js +1485 -362
  91. package/dist/extraction/index.js.map +1 -0
  92. package/dist/extraction/languages/arkts.d.ts +3 -0
  93. package/dist/extraction/languages/arkts.d.ts.map +1 -0
  94. package/dist/extraction/languages/arkts.js +127 -0
  95. package/dist/extraction/languages/arkts.js.map +1 -0
  96. package/dist/extraction/languages/c-cpp.d.ts +110 -4
  97. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  98. package/dist/extraction/languages/c-cpp.js +713 -2
  99. package/dist/extraction/languages/c-cpp.js.map +1 -0
  100. package/dist/extraction/languages/cfquery.d.ts +12 -0
  101. package/dist/extraction/languages/cfquery.d.ts.map +1 -0
  102. package/dist/extraction/languages/cfquery.js +28 -0
  103. package/dist/extraction/languages/cfquery.js.map +1 -0
  104. package/dist/extraction/languages/cfscript.d.ts +3 -0
  105. package/dist/extraction/languages/cfscript.d.ts.map +1 -0
  106. package/dist/extraction/languages/cfscript.js +73 -0
  107. package/dist/extraction/languages/cfscript.js.map +1 -0
  108. package/dist/extraction/languages/cobol.d.ts +33 -0
  109. package/dist/extraction/languages/cobol.d.ts.map +1 -0
  110. package/dist/extraction/languages/cobol.js +499 -0
  111. package/dist/extraction/languages/cobol.js.map +1 -0
  112. package/dist/extraction/languages/csharp.d.ts +25 -3
  113. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  114. package/dist/extraction/languages/csharp.js +106 -3
  115. package/dist/extraction/languages/csharp.js.map +1 -0
  116. package/dist/extraction/languages/dart.d.ts +3 -3
  117. package/dist/extraction/languages/dart.d.ts.map +1 -0
  118. package/dist/extraction/languages/dart.js +183 -1
  119. package/dist/extraction/languages/dart.js.map +1 -0
  120. package/dist/extraction/languages/erlang.d.ts +3 -0
  121. package/dist/extraction/languages/erlang.d.ts.map +1 -0
  122. package/dist/extraction/languages/erlang.js +350 -0
  123. package/dist/extraction/languages/erlang.js.map +1 -0
  124. package/dist/extraction/languages/go.d.ts +3 -3
  125. package/dist/extraction/languages/go.d.ts.map +1 -0
  126. package/dist/extraction/languages/go.js +55 -2
  127. package/dist/extraction/languages/go.js.map +1 -0
  128. package/dist/extraction/languages/index.d.ts +4 -4
  129. package/dist/extraction/languages/index.d.ts.map +1 -0
  130. package/dist/extraction/languages/index.js +22 -0
  131. package/dist/extraction/languages/index.js.map +1 -0
  132. package/dist/extraction/languages/java.d.ts +3 -3
  133. package/dist/extraction/languages/java.d.ts.map +1 -0
  134. package/dist/extraction/languages/java.js +252 -1
  135. package/dist/extraction/languages/java.js.map +1 -0
  136. package/dist/extraction/languages/javascript.d.ts +3 -3
  137. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  138. package/dist/extraction/languages/javascript.js +16 -0
  139. package/dist/extraction/languages/javascript.js.map +1 -0
  140. package/dist/extraction/languages/kotlin.d.ts +3 -3
  141. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  142. package/dist/extraction/languages/kotlin.js +126 -0
  143. package/dist/extraction/languages/kotlin.js.map +1 -0
  144. package/dist/extraction/languages/lua.d.ts +3 -3
  145. package/dist/extraction/languages/lua.d.ts.map +1 -0
  146. package/dist/extraction/languages/lua.js.map +1 -0
  147. package/dist/extraction/languages/luau.d.ts +3 -3
  148. package/dist/extraction/languages/luau.d.ts.map +1 -0
  149. package/dist/extraction/languages/luau.js.map +1 -0
  150. package/dist/extraction/languages/nix.d.ts +3 -0
  151. package/dist/extraction/languages/nix.d.ts.map +1 -0
  152. package/dist/extraction/languages/nix.js +294 -0
  153. package/dist/extraction/languages/nix.js.map +1 -0
  154. package/dist/extraction/languages/objc.d.ts +3 -0
  155. package/dist/extraction/languages/objc.d.ts.map +1 -0
  156. package/dist/extraction/languages/objc.js +175 -0
  157. package/dist/extraction/languages/objc.js.map +1 -0
  158. package/dist/extraction/languages/pascal.d.ts +3 -3
  159. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  160. package/dist/extraction/languages/pascal.js +11 -0
  161. package/dist/extraction/languages/pascal.js.map +1 -0
  162. package/dist/extraction/languages/php.d.ts +3 -3
  163. package/dist/extraction/languages/php.d.ts.map +1 -0
  164. package/dist/extraction/languages/php.js +90 -1
  165. package/dist/extraction/languages/php.js.map +1 -0
  166. package/dist/extraction/languages/python.d.ts +3 -3
  167. package/dist/extraction/languages/python.d.ts.map +1 -0
  168. package/dist/extraction/languages/python.js.map +1 -0
  169. package/dist/extraction/languages/r.d.ts +3 -0
  170. package/dist/extraction/languages/r.d.ts.map +1 -0
  171. package/dist/extraction/languages/r.js +314 -0
  172. package/dist/extraction/languages/r.js.map +1 -0
  173. package/dist/extraction/languages/ruby.d.ts +3 -3
  174. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  175. package/dist/extraction/languages/ruby.js +35 -0
  176. package/dist/extraction/languages/ruby.js.map +1 -0
  177. package/dist/extraction/languages/rust.d.ts +3 -3
  178. package/dist/extraction/languages/rust.d.ts.map +1 -0
  179. package/dist/extraction/languages/rust.js +35 -2
  180. package/dist/extraction/languages/rust.js.map +1 -0
  181. package/dist/extraction/languages/scala.d.ts +3 -3
  182. package/dist/extraction/languages/scala.d.ts.map +1 -0
  183. package/dist/extraction/languages/scala.js +80 -10
  184. package/dist/extraction/languages/scala.js.map +1 -0
  185. package/dist/extraction/languages/solidity.d.ts +3 -0
  186. package/dist/extraction/languages/solidity.d.ts.map +1 -0
  187. package/dist/extraction/languages/solidity.js +293 -0
  188. package/dist/extraction/languages/solidity.js.map +1 -0
  189. package/dist/extraction/languages/swift.d.ts +3 -3
  190. package/dist/extraction/languages/swift.d.ts.map +1 -0
  191. package/dist/extraction/languages/swift.js +61 -0
  192. package/dist/extraction/languages/swift.js.map +1 -0
  193. package/dist/extraction/languages/terraform.d.ts +3 -0
  194. package/dist/extraction/languages/terraform.d.ts.map +1 -0
  195. package/dist/extraction/languages/terraform.js +641 -0
  196. package/dist/extraction/languages/terraform.js.map +1 -0
  197. package/dist/extraction/languages/typescript.d.ts +16 -3
  198. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  199. package/dist/extraction/languages/typescript.js +38 -0
  200. package/dist/extraction/languages/typescript.js.map +1 -0
  201. package/dist/extraction/languages/vbnet.d.ts +11 -0
  202. package/dist/extraction/languages/vbnet.d.ts.map +1 -0
  203. package/dist/extraction/languages/vbnet.js +141 -0
  204. package/dist/extraction/languages/vbnet.js.map +1 -0
  205. package/dist/extraction/liquid-extractor.d.ts +48 -41
  206. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  207. package/dist/extraction/liquid-extractor.js +53 -9
  208. package/dist/extraction/liquid-extractor.js.map +1 -0
  209. package/dist/extraction/mybatis-extractor.d.ts +68 -0
  210. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  211. package/dist/extraction/mybatis-extractor.js +300 -0
  212. package/dist/extraction/mybatis-extractor.js.map +1 -0
  213. package/dist/extraction/parse-pool.d.ts +152 -0
  214. package/dist/extraction/parse-pool.d.ts.map +1 -0
  215. package/dist/extraction/parse-pool.js +387 -0
  216. package/dist/extraction/parse-pool.js.map +1 -0
  217. package/dist/extraction/parse-worker.d.ts +2 -2
  218. package/dist/extraction/parse-worker.d.ts.map +1 -0
  219. package/dist/extraction/parse-worker.js +13 -3
  220. package/dist/extraction/parse-worker.js.map +1 -0
  221. package/dist/extraction/razor-extractor.d.ts +42 -0
  222. package/dist/extraction/razor-extractor.d.ts.map +1 -0
  223. package/dist/extraction/razor-extractor.js +285 -0
  224. package/dist/extraction/razor-extractor.js.map +1 -0
  225. package/dist/extraction/svelte-extractor.d.ts +42 -42
  226. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  227. package/dist/extraction/svelte-extractor.js +6 -3
  228. package/dist/extraction/svelte-extractor.js.map +1 -0
  229. package/dist/extraction/tree-sitter-helpers.d.ts +7 -18
  230. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  231. package/dist/extraction/tree-sitter-helpers.js +60 -10
  232. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  233. package/dist/extraction/tree-sitter-types.d.ts +224 -157
  234. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  235. package/dist/extraction/tree-sitter-types.js.map +1 -0
  236. package/dist/extraction/tree-sitter.d.ts +689 -221
  237. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  238. package/dist/extraction/tree-sitter.js +4193 -117
  239. package/dist/extraction/tree-sitter.js.map +1 -0
  240. package/dist/extraction/vue-extractor.d.ts +40 -25
  241. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  242. package/dist/extraction/vue-extractor.js +94 -3
  243. package/dist/extraction/vue-extractor.js.map +1 -0
  244. package/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  245. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  246. package/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  247. package/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  248. package/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  249. package/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  250. package/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  251. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  252. package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  253. package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  254. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  255. package/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  256. package/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  257. package/dist/extraction/wasm-runtime-flags.d.ts +6 -14
  258. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  259. package/dist/extraction/wasm-runtime-flags.js +1 -0
  260. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  261. package/dist/graph/index.d.ts +3 -3
  262. package/dist/graph/index.d.ts.map +1 -0
  263. package/dist/graph/index.js.map +1 -0
  264. package/dist/graph/queries.d.ts +96 -99
  265. package/dist/graph/queries.d.ts.map +1 -0
  266. package/dist/graph/queries.js +13 -40
  267. package/dist/graph/queries.js.map +1 -0
  268. package/dist/graph/traversal.d.ts +117 -127
  269. package/dist/graph/traversal.d.ts.map +1 -0
  270. package/dist/graph/traversal.js +92 -21
  271. package/dist/graph/traversal.js.map +1 -0
  272. package/dist/index.d.ts +615 -481
  273. package/dist/index.d.ts.map +1 -0
  274. package/dist/index.js +709 -18
  275. package/dist/index.js.map +1 -0
  276. package/dist/installer/config-writer.d.ts +13 -14
  277. package/dist/installer/config-writer.d.ts.map +1 -0
  278. package/dist/installer/config-writer.js +91 -0
  279. package/dist/installer/config-writer.js.map +1 -0
  280. package/dist/installer/index.d.ts +84 -82
  281. package/dist/installer/index.d.ts.map +1 -0
  282. package/dist/installer/index.js +619 -0
  283. package/dist/installer/index.js.map +1 -0
  284. package/dist/installer/instructions-template.d.ts +35 -24
  285. package/dist/installer/instructions-template.d.ts.map +1 -0
  286. package/dist/installer/instructions-template.js +53 -0
  287. package/dist/installer/instructions-template.js.map +1 -0
  288. package/dist/installer/targets/antigravity.d.ts +57 -0
  289. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  290. package/dist/installer/targets/antigravity.js +308 -0
  291. package/dist/installer/targets/antigravity.js.map +1 -0
  292. package/dist/installer/targets/claude.d.ts +34 -27
  293. package/dist/installer/targets/claude.d.ts.map +1 -0
  294. package/dist/installer/targets/claude.js +454 -0
  295. package/dist/installer/targets/claude.js.map +1 -0
  296. package/dist/installer/targets/codex.d.ts +3 -3
  297. package/dist/installer/targets/codex.d.ts.map +1 -0
  298. package/dist/installer/targets/codex.js +185 -0
  299. package/dist/installer/targets/codex.js.map +1 -0
  300. package/dist/installer/targets/cursor.d.ts +3 -3
  301. package/dist/installer/targets/cursor.d.ts.map +1 -0
  302. package/dist/installer/targets/cursor.js +254 -0
  303. package/dist/installer/targets/cursor.js.map +1 -0
  304. package/dist/installer/targets/gemini.d.ts +26 -0
  305. package/dist/installer/targets/gemini.d.ts.map +1 -0
  306. package/dist/installer/targets/gemini.js +165 -0
  307. package/dist/installer/targets/gemini.js.map +1 -0
  308. package/dist/installer/targets/hermes.d.ts +3 -3
  309. package/dist/installer/targets/hermes.d.ts.map +1 -0
  310. package/dist/installer/targets/hermes.js +359 -0
  311. package/dist/installer/targets/hermes.js.map +1 -0
  312. package/dist/installer/targets/kiro.d.ts +27 -0
  313. package/dist/installer/targets/kiro.d.ts.map +1 -0
  314. package/dist/installer/targets/kiro.js +178 -0
  315. package/dist/installer/targets/kiro.js.map +1 -0
  316. package/dist/installer/targets/opencode.d.ts +12 -4
  317. package/dist/installer/targets/opencode.d.ts.map +1 -0
  318. package/dist/installer/targets/opencode.js +288 -0
  319. package/dist/installer/targets/opencode.js.map +1 -0
  320. package/dist/installer/targets/registry.d.ts +9 -12
  321. package/dist/installer/targets/registry.d.ts.map +1 -0
  322. package/dist/installer/targets/registry.js +91 -0
  323. package/dist/installer/targets/registry.js.map +1 -0
  324. package/dist/installer/targets/shared.d.ts +38 -29
  325. package/dist/installer/targets/shared.d.ts.map +1 -0
  326. package/dist/installer/targets/shared.js +264 -0
  327. package/dist/installer/targets/shared.js.map +1 -0
  328. package/dist/installer/targets/toml.d.ts +11 -23
  329. package/dist/installer/targets/toml.d.ts.map +1 -0
  330. package/dist/installer/targets/toml.js +147 -0
  331. package/dist/installer/targets/toml.js.map +1 -0
  332. package/dist/installer/targets/types.d.ts +62 -76
  333. package/dist/installer/targets/types.d.ts.map +1 -0
  334. package/dist/installer/targets/types.js +16 -0
  335. package/dist/installer/targets/types.js.map +1 -0
  336. package/dist/mcp/daemon-manager.d.ts +42 -0
  337. package/dist/mcp/daemon-manager.d.ts.map +1 -0
  338. package/dist/mcp/daemon-manager.js +129 -0
  339. package/dist/mcp/daemon-manager.js.map +1 -0
  340. package/dist/mcp/daemon-paths.d.ts +73 -0
  341. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  342. package/dist/mcp/daemon-paths.js +165 -0
  343. package/dist/mcp/daemon-paths.js.map +1 -0
  344. package/dist/mcp/daemon-registry.d.ts +47 -0
  345. package/dist/mcp/daemon-registry.d.ts.map +1 -0
  346. package/dist/mcp/daemon-registry.js +233 -0
  347. package/dist/mcp/daemon-registry.js.map +1 -0
  348. package/dist/mcp/daemon.d.ts +290 -0
  349. package/dist/mcp/daemon.d.ts.map +1 -0
  350. package/dist/mcp/daemon.js +862 -0
  351. package/dist/mcp/daemon.js.map +1 -0
  352. package/dist/mcp/dynamic-boundaries.d.ts +41 -0
  353. package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  354. package/dist/mcp/dynamic-boundaries.js +360 -0
  355. package/dist/mcp/dynamic-boundaries.js.map +1 -0
  356. package/dist/mcp/early-ppid.d.ts +26 -0
  357. package/dist/mcp/early-ppid.d.ts.map +1 -0
  358. package/dist/mcp/early-ppid.js +29 -0
  359. package/dist/mcp/early-ppid.js.map +1 -0
  360. package/dist/mcp/engine.d.ts +122 -0
  361. package/dist/mcp/engine.d.ts.map +1 -0
  362. package/dist/mcp/engine.js +350 -0
  363. package/dist/mcp/engine.js.map +1 -0
  364. package/dist/mcp/index.d.ts +89 -74
  365. package/dist/mcp/index.d.ts.map +1 -0
  366. package/dist/mcp/index.js +506 -0
  367. package/dist/mcp/index.js.map +1 -0
  368. package/dist/mcp/liveness-watchdog.d.ts +35 -0
  369. package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  370. package/dist/mcp/liveness-watchdog.js +267 -0
  371. package/dist/mcp/liveness-watchdog.js.map +1 -0
  372. package/dist/mcp/ppid-watchdog.d.ts +62 -0
  373. package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  374. package/dist/mcp/ppid-watchdog.js +64 -0
  375. package/dist/mcp/ppid-watchdog.js.map +1 -0
  376. package/dist/mcp/proxy.d.ts +87 -0
  377. package/dist/mcp/proxy.d.ts.map +1 -0
  378. package/dist/mcp/proxy.js +667 -0
  379. package/dist/mcp/proxy.js.map +1 -0
  380. package/dist/mcp/query-pool.d.ts +108 -0
  381. package/dist/mcp/query-pool.d.ts.map +1 -0
  382. package/dist/mcp/query-pool.js +315 -0
  383. package/dist/mcp/query-pool.js.map +1 -0
  384. package/dist/mcp/query-worker.d.ts +24 -0
  385. package/dist/mcp/query-worker.d.ts.map +1 -0
  386. package/dist/mcp/query-worker.js +87 -0
  387. package/dist/mcp/query-worker.js.map +1 -0
  388. package/dist/mcp/server-instructions.d.ts +22 -8
  389. package/dist/mcp/server-instructions.d.ts.map +1 -0
  390. package/dist/mcp/server-instructions.js +106 -0
  391. package/dist/mcp/server-instructions.js.map +1 -0
  392. package/dist/mcp/session.d.ts +93 -0
  393. package/dist/mcp/session.d.ts.map +1 -0
  394. package/dist/mcp/session.js +357 -0
  395. package/dist/mcp/session.js.map +1 -0
  396. package/dist/mcp/startup-handshake.d.ts +44 -0
  397. package/dist/mcp/startup-handshake.d.ts.map +1 -0
  398. package/dist/mcp/startup-handshake.js +73 -0
  399. package/dist/mcp/startup-handshake.js.map +1 -0
  400. package/dist/mcp/stdin-teardown.d.ts +27 -0
  401. package/dist/mcp/stdin-teardown.d.ts.map +1 -0
  402. package/dist/mcp/stdin-teardown.js +49 -0
  403. package/dist/mcp/stdin-teardown.js.map +1 -0
  404. package/dist/mcp/tools.d.ts +557 -213
  405. package/dist/mcp/tools.d.ts.map +1 -0
  406. package/dist/mcp/tools.js +4477 -0
  407. package/dist/mcp/tools.js.map +1 -0
  408. package/dist/mcp/transport.d.ts +158 -87
  409. package/dist/mcp/transport.d.ts.map +1 -0
  410. package/dist/mcp/transport.js +377 -0
  411. package/dist/mcp/transport.js.map +1 -0
  412. package/dist/mcp/version.d.ts +19 -0
  413. package/dist/mcp/version.d.ts.map +1 -0
  414. package/dist/mcp/version.js +71 -0
  415. package/dist/mcp/version.js.map +1 -0
  416. package/dist/project-config.d.ts +94 -0
  417. package/dist/project-config.d.ts.map +1 -0
  418. package/dist/project-config.js +374 -0
  419. package/dist/project-config.js.map +1 -0
  420. package/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
  421. package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
  422. package/dist/resolution/c-fnptr-synthesizer.js +1062 -0
  423. package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
  424. package/dist/resolution/callback-synthesizer.d.ts +15 -0
  425. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  426. package/dist/resolution/callback-synthesizer.js +3938 -0
  427. package/dist/resolution/callback-synthesizer.js.map +1 -0
  428. package/dist/resolution/cooperative-yield.d.ts +32 -0
  429. package/dist/resolution/cooperative-yield.d.ts.map +1 -0
  430. package/dist/resolution/cooperative-yield.js +42 -0
  431. package/dist/resolution/cooperative-yield.js.map +1 -0
  432. package/dist/resolution/frameworks/astro.d.ts +9 -0
  433. package/dist/resolution/frameworks/astro.d.ts.map +1 -0
  434. package/dist/resolution/frameworks/astro.js +169 -0
  435. package/dist/resolution/frameworks/astro.js.map +1 -0
  436. package/dist/resolution/frameworks/cargo-workspace.d.ts +3 -5
  437. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  438. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  439. package/dist/resolution/frameworks/cics.d.ts +20 -0
  440. package/dist/resolution/frameworks/cics.d.ts.map +1 -0
  441. package/dist/resolution/frameworks/cics.js +90 -0
  442. package/dist/resolution/frameworks/cics.js.map +1 -0
  443. package/dist/resolution/frameworks/csharp.d.ts +3 -3
  444. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  445. package/dist/resolution/frameworks/csharp.js +36 -8
  446. package/dist/resolution/frameworks/csharp.js.map +1 -0
  447. package/dist/resolution/frameworks/drupal.d.ts +3 -3
  448. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  449. package/dist/resolution/frameworks/drupal.js +44 -12
  450. package/dist/resolution/frameworks/drupal.js.map +1 -0
  451. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  452. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  453. package/dist/resolution/frameworks/expo-modules.js +148 -0
  454. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  455. package/dist/resolution/frameworks/express.d.ts +3 -3
  456. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  457. package/dist/resolution/frameworks/express.js +102 -19
  458. package/dist/resolution/frameworks/express.js.map +1 -0
  459. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  460. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  461. package/dist/resolution/frameworks/fabric.js +354 -0
  462. package/dist/resolution/frameworks/fabric.js.map +1 -0
  463. package/dist/resolution/frameworks/go.d.ts +3 -3
  464. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  465. package/dist/resolution/frameworks/go.js +6 -3
  466. package/dist/resolution/frameworks/go.js.map +1 -0
  467. package/dist/resolution/frameworks/goframe.d.ts +41 -0
  468. package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
  469. package/dist/resolution/frameworks/goframe.js +112 -0
  470. package/dist/resolution/frameworks/goframe.js.map +1 -0
  471. package/dist/resolution/frameworks/index.d.ts +29 -31
  472. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  473. package/dist/resolution/frameworks/index.js +39 -1
  474. package/dist/resolution/frameworks/index.js.map +1 -0
  475. package/dist/resolution/frameworks/java.d.ts +3 -3
  476. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  477. package/dist/resolution/frameworks/java.js +352 -12
  478. package/dist/resolution/frameworks/java.js.map +1 -0
  479. package/dist/resolution/frameworks/laravel.d.ts +4 -4
  480. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  481. package/dist/resolution/frameworks/laravel.js +17 -8
  482. package/dist/resolution/frameworks/laravel.js.map +1 -0
  483. package/dist/resolution/frameworks/nestjs.d.ts +3 -3
  484. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  485. package/dist/resolution/frameworks/nestjs.js +324 -0
  486. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  487. package/dist/resolution/frameworks/play.d.ts +19 -0
  488. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  489. package/dist/resolution/frameworks/play.js +111 -0
  490. package/dist/resolution/frameworks/play.js.map +1 -0
  491. package/dist/resolution/frameworks/python.d.ts +5 -5
  492. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  493. package/dist/resolution/frameworks/python.js +138 -16
  494. package/dist/resolution/frameworks/python.js.map +1 -0
  495. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  496. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  497. package/dist/resolution/frameworks/react-native.js +410 -0
  498. package/dist/resolution/frameworks/react-native.js.map +1 -0
  499. package/dist/resolution/frameworks/react.d.ts +3 -3
  500. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  501. package/dist/resolution/frameworks/react.js +122 -60
  502. package/dist/resolution/frameworks/react.js.map +1 -0
  503. package/dist/resolution/frameworks/ruby.d.ts +3 -3
  504. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  505. package/dist/resolution/frameworks/ruby.js +106 -2
  506. package/dist/resolution/frameworks/ruby.js.map +1 -0
  507. package/dist/resolution/frameworks/rust.d.ts +3 -3
  508. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  509. package/dist/resolution/frameworks/rust.js +102 -5
  510. package/dist/resolution/frameworks/rust.js.map +1 -0
  511. package/dist/resolution/frameworks/svelte.d.ts +3 -3
  512. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  513. package/dist/resolution/frameworks/svelte.js +5 -1
  514. package/dist/resolution/frameworks/svelte.js.map +1 -0
  515. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  516. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  517. package/dist/resolution/frameworks/swift-objc.js +252 -0
  518. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  519. package/dist/resolution/frameworks/swift.d.ts +5 -5
  520. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  521. package/dist/resolution/frameworks/swift.js +30 -6
  522. package/dist/resolution/frameworks/swift.js.map +1 -0
  523. package/dist/resolution/frameworks/terraform.d.ts +38 -0
  524. package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  525. package/dist/resolution/frameworks/terraform.js +277 -0
  526. package/dist/resolution/frameworks/terraform.js.map +1 -0
  527. package/dist/resolution/frameworks/vue.d.ts +3 -3
  528. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  529. package/dist/resolution/frameworks/vue.js +24 -27
  530. package/dist/resolution/frameworks/vue.js.map +1 -0
  531. package/dist/resolution/go-module.d.ts +26 -0
  532. package/dist/resolution/go-module.d.ts.map +1 -0
  533. package/dist/resolution/go-module.js +78 -0
  534. package/dist/resolution/go-module.js.map +1 -0
  535. package/dist/resolution/goframe-synthesizer.d.ts +29 -0
  536. package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
  537. package/dist/resolution/goframe-synthesizer.js +163 -0
  538. package/dist/resolution/goframe-synthesizer.js.map +1 -0
  539. package/dist/resolution/import-resolver.d.ts +53 -29
  540. package/dist/resolution/import-resolver.d.ts.map +1 -0
  541. package/dist/resolution/import-resolver.js +1319 -8
  542. package/dist/resolution/import-resolver.js.map +1 -0
  543. package/dist/resolution/index.d.ts +243 -103
  544. package/dist/resolution/index.d.ts.map +1 -0
  545. package/dist/resolution/index.js +1055 -53
  546. package/dist/resolution/index.js.map +1 -0
  547. package/dist/resolution/lru-cache.d.ts +9 -9
  548. package/dist/resolution/lru-cache.d.ts.map +1 -0
  549. package/dist/resolution/lru-cache.js.map +1 -0
  550. package/dist/resolution/name-matcher.d.ts +91 -29
  551. package/dist/resolution/name-matcher.d.ts.map +1 -0
  552. package/dist/resolution/name-matcher.js +1478 -32
  553. package/dist/resolution/name-matcher.js.map +1 -0
  554. package/dist/resolution/path-aliases.d.ts +23 -27
  555. package/dist/resolution/path-aliases.d.ts.map +1 -0
  556. package/dist/resolution/path-aliases.js.map +1 -0
  557. package/dist/resolution/strip-comments.d.ts +3 -16
  558. package/dist/resolution/strip-comments.d.ts.map +1 -0
  559. package/dist/resolution/strip-comments.js +51 -0
  560. package/dist/resolution/strip-comments.js.map +1 -0
  561. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  562. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  563. package/dist/resolution/swift-objc-bridge.js +256 -0
  564. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  565. package/dist/resolution/types.d.ts +217 -136
  566. package/dist/resolution/types.d.ts.map +1 -0
  567. package/dist/resolution/types.js.map +1 -0
  568. package/dist/resolution/workspace-packages.d.ts +58 -0
  569. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  570. package/dist/resolution/workspace-packages.js +346 -0
  571. package/dist/resolution/workspace-packages.js.map +1 -0
  572. package/dist/search/identifier-segments.d.ts +60 -0
  573. package/dist/search/identifier-segments.d.ts.map +1 -0
  574. package/dist/search/identifier-segments.js +176 -0
  575. package/dist/search/identifier-segments.js.map +1 -0
  576. package/dist/search/query-parser.d.ts +14 -18
  577. package/dist/search/query-parser.d.ts.map +1 -0
  578. package/dist/search/query-parser.js.map +1 -0
  579. package/dist/search/query-utils.d.ts +45 -17
  580. package/dist/search/query-utils.d.ts.map +1 -0
  581. package/dist/search/query-utils.js +113 -47
  582. package/dist/search/query-utils.js.map +1 -0
  583. package/dist/sync/git-hooks.d.ts +13 -22
  584. package/dist/sync/git-hooks.d.ts.map +1 -0
  585. package/dist/sync/git-hooks.js +4 -0
  586. package/dist/sync/git-hooks.js.map +1 -0
  587. package/dist/sync/index.d.ts +6 -12
  588. package/dist/sync/index.d.ts.map +1 -0
  589. package/dist/sync/index.js +8 -1
  590. package/dist/sync/index.js.map +1 -0
  591. package/dist/sync/watch-policy.d.ts +8 -11
  592. package/dist/sync/watch-policy.d.ts.map +1 -0
  593. package/dist/sync/watch-policy.js.map +1 -0
  594. package/dist/sync/watcher.d.ts +335 -63
  595. package/dist/sync/watcher.d.ts.map +1 -0
  596. package/dist/sync/watcher.js +709 -53
  597. package/dist/sync/watcher.js.map +1 -0
  598. package/dist/sync/worktree.d.ts +63 -0
  599. package/dist/sync/worktree.d.ts.map +1 -0
  600. package/dist/sync/worktree.js +182 -0
  601. package/dist/sync/worktree.js.map +1 -0
  602. package/dist/telemetry/index.d.ts +143 -0
  603. package/dist/telemetry/index.d.ts.map +1 -0
  604. package/dist/telemetry/index.js +541 -0
  605. package/dist/telemetry/index.js.map +1 -0
  606. package/dist/types.d.ts +308 -326
  607. package/dist/types.d.ts.map +1 -0
  608. package/dist/types.js +16 -0
  609. package/dist/types.js.map +1 -0
  610. package/dist/ui/glyphs.d.ts +20 -20
  611. package/dist/ui/glyphs.d.ts.map +1 -0
  612. package/dist/ui/glyphs.js +78 -0
  613. package/dist/ui/glyphs.js.map +1 -0
  614. package/dist/ui/shimmer-progress.d.ts +7 -7
  615. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  616. package/dist/ui/shimmer-progress.js +90 -0
  617. package/dist/ui/shimmer-progress.js.map +1 -0
  618. package/dist/ui/shimmer-worker.d.ts +2 -2
  619. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  620. package/dist/ui/shimmer-worker.js +118 -0
  621. package/dist/ui/shimmer-worker.js.map +1 -0
  622. package/dist/ui/types.d.ts +14 -17
  623. package/dist/ui/types.d.ts.map +1 -0
  624. package/dist/ui/types.js +3 -0
  625. package/dist/ui/types.js.map +1 -0
  626. package/dist/upgrade/index.d.ts +164 -0
  627. package/dist/upgrade/index.d.ts.map +1 -0
  628. package/dist/upgrade/index.js +646 -0
  629. package/dist/upgrade/index.js.map +1 -0
  630. package/dist/upgrade/remove-binary.d.ts +87 -0
  631. package/dist/upgrade/remove-binary.d.ts.map +1 -0
  632. package/dist/upgrade/remove-binary.js +289 -0
  633. package/dist/upgrade/remove-binary.js.map +1 -0
  634. package/dist/upgrade/update-check.d.ts +92 -0
  635. package/dist/upgrade/update-check.d.ts.map +1 -0
  636. package/dist/upgrade/update-check.js +258 -0
  637. package/dist/upgrade/update-check.js.map +1 -0
  638. package/dist/utils.d.ts +116 -123
  639. package/dist/utils.d.ts.map +1 -0
  640. package/dist/utils.js +83 -49
  641. package/dist/utils.js.map +1 -0
  642. package/package.json +42 -10
  643. package/scripts/add-lang/bench.sh +60 -0
  644. package/scripts/add-lang/check-grammar.mjs +75 -0
  645. package/scripts/add-lang/dump-ast.mjs +103 -0
  646. package/scripts/add-lang/verify-extraction.mjs +70 -0
  647. package/scripts/agent-eval/ab-adoption.sh +91 -0
  648. package/scripts/agent-eval/ab-hook.sh +86 -0
  649. package/scripts/agent-eval/ab-impl.sh +78 -0
  650. package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -0
  651. package/scripts/agent-eval/ab-sufficiency.sh +78 -0
  652. package/scripts/agent-eval/arms-F.sh +21 -0
  653. package/scripts/agent-eval/arms-matrix.sh +37 -0
  654. package/scripts/agent-eval/audit.sh +68 -0
  655. package/scripts/agent-eval/bench-readme.sh +28 -0
  656. package/scripts/agent-eval/bench-why-repo.sh +22 -0
  657. package/scripts/agent-eval/block-read-hook.sh +19 -0
  658. package/scripts/agent-eval/hook-settings.json +15 -0
  659. package/scripts/agent-eval/itrun.sh +120 -0
  660. package/scripts/agent-eval/offload-eval-3arm.sh +72 -0
  661. package/scripts/agent-eval/offload-eval-cost.mjs +133 -0
  662. package/scripts/agent-eval/offload-eval-effort.mjs +108 -0
  663. package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -0
  664. package/scripts/agent-eval/offload-eval-frontload.sh +47 -0
  665. package/scripts/agent-eval/offload-eval-ground-truth.json +18 -0
  666. package/scripts/agent-eval/offload-eval-hook.mjs +84 -0
  667. package/scripts/agent-eval/offload-eval-judge.mjs +103 -0
  668. package/scripts/agent-eval/offload-eval-matrix.sh +20 -0
  669. package/scripts/agent-eval/offload-eval-metrics.mjs +94 -0
  670. package/scripts/agent-eval/offload-eval-refs1.sh +50 -0
  671. package/scripts/agent-eval/offload-eval-setup.sh +24 -0
  672. package/scripts/agent-eval/offload-eval-styles.sh +72 -0
  673. package/scripts/agent-eval/offload-eval-summarize.mjs +68 -0
  674. package/scripts/agent-eval/offload-eval.md +76 -0
  675. package/scripts/agent-eval/parse-arms.mjs +116 -0
  676. package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
  677. package/scripts/agent-eval/parse-run.mjs +45 -0
  678. package/scripts/agent-eval/parse-session.mjs +93 -0
  679. package/scripts/agent-eval/probe-context.mjs +21 -0
  680. package/scripts/agent-eval/probe-explore.mjs +40 -0
  681. package/scripts/agent-eval/probe-node.mjs +20 -0
  682. package/scripts/agent-eval/probe-sweep.mjs +119 -0
  683. package/scripts/agent-eval/probe-trace.mjs +20 -0
  684. package/scripts/agent-eval/redirect-read-hook.sh +38 -0
  685. package/scripts/agent-eval/repro-concurrent-explore.mjs +119 -0
  686. package/scripts/agent-eval/repro-daemon-clients.mjs +125 -0
  687. package/scripts/agent-eval/run-agent.sh +34 -0
  688. package/scripts/agent-eval/run-all.sh +75 -0
  689. package/scripts/agent-eval/run-arms.sh +56 -0
  690. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  691. package/scripts/build-bundle.sh +123 -0
  692. package/scripts/extract-release-notes.mjs +130 -0
  693. package/scripts/local-install.sh +41 -0
  694. package/scripts/npm-sdk.js +75 -0
  695. package/scripts/npm-shim.js +275 -0
  696. package/scripts/pack-npm.sh +119 -0
  697. package/scripts/prepare-release.mjs +270 -0
  698. package/dist/extraction/wasm/tree-sitter-c.wasm +0 -0
  699. package/dist/extraction/wasm/tree-sitter-cpp.wasm +0 -0
  700. package/dist/extraction/wasm/tree-sitter-dart.wasm +0 -0
  701. package/dist/extraction/wasm/tree-sitter-go.wasm +0 -0
  702. package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
  703. package/dist/extraction/wasm/tree-sitter-javascript.wasm +0 -0
  704. package/dist/extraction/wasm/tree-sitter-kotlin.wasm +0 -0
  705. package/dist/extraction/wasm/tree-sitter-php.wasm +0 -0
  706. package/dist/extraction/wasm/tree-sitter-python.wasm +0 -0
  707. package/dist/extraction/wasm/tree-sitter-ruby.wasm +0 -0
  708. package/dist/extraction/wasm/tree-sitter-rust.wasm +0 -0
  709. package/dist/extraction/wasm/tree-sitter-swift.wasm +0 -0
  710. package/dist/extraction/wasm/tree-sitter-tsx.wasm +0 -0
  711. package/dist/extraction/wasm/tree-sitter-typescript.wasm +0 -0
  712. package/dist/installer/claude-md-template.d.ts +0 -19
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ /**
3
+ * Helpers shared across `AgentTarget` implementations.
4
+ *
5
+ * Lifted from the original `config-writer.ts` so each target can
6
+ * compose them without inheritance. Kept deliberately small — the
7
+ * targets are different enough (JSON vs TOML vs Markdown, varying
8
+ * idempotency markers) that a base class would force the awkward
9
+ * shape onto everyone.
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.getMcpServerConfig = getMcpServerConfig;
46
+ exports.getCodeGraphPermissions = getCodeGraphPermissions;
47
+ exports.readJsonFile = readJsonFile;
48
+ exports.atomicWriteFileSync = atomicWriteFileSync;
49
+ exports.writeJsonFile = writeJsonFile;
50
+ exports.jsonDeepEqual = jsonDeepEqual;
51
+ exports.replaceOrAppendMarkedSection = replaceOrAppendMarkedSection;
52
+ exports.upsertInstructionsEntry = upsertInstructionsEntry;
53
+ exports.removeMarkedSection = removeMarkedSection;
54
+ const fs = __importStar(require("fs"));
55
+ const path = __importStar(require("path"));
56
+ const instructions_template_1 = require("../instructions-template");
57
+ /**
58
+ * The MCP-server config block codegraph injects. Same shape across
59
+ * all JSON-shaped agent configs (Claude, Cursor, opencode), only the
60
+ * surrounding wrapper differs. Codex (TOML) builds its own block.
61
+ */
62
+ function getMcpServerConfig() {
63
+ return {
64
+ type: 'stdio',
65
+ command: 'codegraph',
66
+ args: ['serve', '--mcp'],
67
+ };
68
+ }
69
+ /**
70
+ * Permissions list for Claude `settings.json`. Other targets that
71
+ * have a permissions concept can compose this list directly.
72
+ *
73
+ * One server-scoped wildcard rather than a per-tool list. By default only
74
+ * `codegraph_explore` is even LISTED to the agent (see DEFAULT_MCP_TOOLS in
75
+ * mcp/tools.ts), so in practice explore is the only tool this auto-approves —
76
+ * but the wildcard means that if a user re-enables another tool via
77
+ * CODEGRAPH_MCP_TOOLS, it's already pre-approved (no permission prompt, no
78
+ * hand-editing settings.json), and future tools are covered too. Claude only
79
+ * honors globs after a literal `mcp__<server>__` prefix, so this exact string
80
+ * is the way to allow-all for one server; a bare `mcp__codegraph` or `*` is
81
+ * ignored. The allowlist gates PROMPTING, not visibility, so a superset here
82
+ * never makes a hidden tool appear.
83
+ */
84
+ function getCodeGraphPermissions() {
85
+ return ['mcp__codegraph__*'];
86
+ }
87
+ /**
88
+ * Read a JSON file, returning `{}` when missing or unparseable.
89
+ *
90
+ * Unparseable files are backed up to `<path>.backup` BEFORE we return
91
+ * `{}` — so an idempotent re-run never silently deletes a user's
92
+ * existing config that happened to break JSON parse temporarily.
93
+ */
94
+ function readJsonFile(filePath) {
95
+ if (!fs.existsSync(filePath)) {
96
+ return {};
97
+ }
98
+ try {
99
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
100
+ }
101
+ catch (err) {
102
+ const msg = err instanceof Error ? err.message : String(err);
103
+ console.warn(` Warning: Could not parse ${path.basename(filePath)}: ${msg}`);
104
+ console.warn(` A backup will be created before overwriting.`);
105
+ try {
106
+ fs.copyFileSync(filePath, filePath + '.backup');
107
+ }
108
+ catch { /* ignore backup failure */ }
109
+ return {};
110
+ }
111
+ }
112
+ /**
113
+ * Write a file atomically: write to `<path>.tmp.<pid>`, then rename.
114
+ *
115
+ * Prevents corruption if the process crashes mid-write. The temp
116
+ * file is cleaned up on rename failure.
117
+ */
118
+ function atomicWriteFileSync(filePath, content) {
119
+ const dir = path.dirname(filePath);
120
+ if (!fs.existsSync(dir)) {
121
+ fs.mkdirSync(dir, { recursive: true });
122
+ }
123
+ const tmpPath = filePath + '.tmp.' + process.pid;
124
+ try {
125
+ fs.writeFileSync(tmpPath, content);
126
+ fs.renameSync(tmpPath, filePath);
127
+ }
128
+ catch (err) {
129
+ try {
130
+ fs.unlinkSync(tmpPath);
131
+ }
132
+ catch { /* ignore */ }
133
+ throw err;
134
+ }
135
+ }
136
+ /**
137
+ * Atomic JSON write. Trailing newline matches the convention every
138
+ * existing target had — preserves diff-friendly file shape.
139
+ */
140
+ function writeJsonFile(filePath, data) {
141
+ atomicWriteFileSync(filePath, JSON.stringify(data, null, 2) + '\n');
142
+ }
143
+ /**
144
+ * Compare two JSON values for deep equality, ignoring key order.
145
+ *
146
+ * Used for idempotency: when the on-disk config already exactly
147
+ * matches what we'd write, return action=`unchanged` instead of
148
+ * re-writing (and emitting a confusing "Updated" log line).
149
+ */
150
+ function jsonDeepEqual(a, b) {
151
+ if (a === b)
152
+ return true;
153
+ if (typeof a !== typeof b)
154
+ return false;
155
+ if (a === null || b === null)
156
+ return a === b;
157
+ if (typeof a !== 'object')
158
+ return false;
159
+ if (Array.isArray(a) !== Array.isArray(b))
160
+ return false;
161
+ if (Array.isArray(a) && Array.isArray(b)) {
162
+ if (a.length !== b.length)
163
+ return false;
164
+ return a.every((v, i) => jsonDeepEqual(v, b[i]));
165
+ }
166
+ const ao = a;
167
+ const bo = b;
168
+ const ak = Object.keys(ao).sort();
169
+ const bk = Object.keys(bo).sort();
170
+ if (ak.length !== bk.length)
171
+ return false;
172
+ if (!ak.every((k, i) => k === bk[i]))
173
+ return false;
174
+ return ak.every((k) => jsonDeepEqual(ao[k], bo[k]));
175
+ }
176
+ /**
177
+ * Replace or append a marker-delimited section in a markdown-ish file.
178
+ *
179
+ * Used by Claude / Codex for the `<!-- CODEGRAPH_START --> ... <!--
180
+ * CODEGRAPH_END -->` block. Preserves all content outside the
181
+ * markers verbatim.
182
+ *
183
+ * Returns `created` when the file didn't exist; `updated` when
184
+ * markers were found and content swapped; `appended` when markers
185
+ * weren't found and section was added at end. `unchanged` when the
186
+ * existing block already matches `body`.
187
+ */
188
+ function replaceOrAppendMarkedSection(filePath, body, startMarker, endMarker) {
189
+ if (!fs.existsSync(filePath)) {
190
+ atomicWriteFileSync(filePath, body + '\n');
191
+ return 'created';
192
+ }
193
+ const content = fs.readFileSync(filePath, 'utf-8');
194
+ const startIdx = content.indexOf(startMarker);
195
+ const endIdx = content.indexOf(endMarker);
196
+ if (startIdx !== -1 && endIdx > startIdx) {
197
+ const existingBlock = content.substring(startIdx, endIdx + endMarker.length);
198
+ if (existingBlock === body) {
199
+ return 'unchanged';
200
+ }
201
+ const before = content.substring(0, startIdx);
202
+ const after = content.substring(endIdx + endMarker.length);
203
+ atomicWriteFileSync(filePath, before + body + after);
204
+ return 'updated';
205
+ }
206
+ // No markers — append. Preserve existing content with a separating
207
+ // blank line.
208
+ const trimmed = content.trimEnd();
209
+ const sep = trimmed.length > 0 ? '\n\n' : '';
210
+ atomicWriteFileSync(filePath, trimmed + sep + body + '\n');
211
+ return 'appended';
212
+ }
213
+ /**
214
+ * Upsert the CodeGraph instructions block into an agent instructions
215
+ * file (CLAUDE.md / AGENTS.md / GEMINI.md). The one write shared by
216
+ * every target: self-heals a stale pre-#529 long block (markers match →
217
+ * replaced by the current short one), appends after existing user
218
+ * content otherwise, and reports `unchanged` on byte-equal re-runs so
219
+ * install stays idempotent. See `instructions-template.ts` for why this
220
+ * block exists (#704: subagents + non-MCP harnesses never see the MCP
221
+ * initialize instructions).
222
+ */
223
+ function upsertInstructionsEntry(file) {
224
+ const action = replaceOrAppendMarkedSection(file, instructions_template_1.CODEGRAPH_INSTRUCTIONS_BLOCK, instructions_template_1.CODEGRAPH_SECTION_START, instructions_template_1.CODEGRAPH_SECTION_END);
225
+ return { path: file, action: action === 'appended' ? 'updated' : action };
226
+ }
227
+ /**
228
+ * Inverse of `replaceOrAppendMarkedSection`. Strips the marker
229
+ * block from `filePath` if present. If the file becomes empty after
230
+ * removal, deletes the file entirely (matches the existing Claude
231
+ * uninstall behavior).
232
+ *
233
+ * Returns `removed` when content was stripped, `not-found` when
234
+ * the markers weren't present, `kept` when the file didn't exist.
235
+ */
236
+ function removeMarkedSection(filePath, startMarker, endMarker) {
237
+ if (!fs.existsSync(filePath))
238
+ return 'kept';
239
+ let content;
240
+ try {
241
+ content = fs.readFileSync(filePath, 'utf-8');
242
+ }
243
+ catch {
244
+ return 'kept';
245
+ }
246
+ const startIdx = content.indexOf(startMarker);
247
+ const endIdx = content.indexOf(endMarker);
248
+ if (startIdx === -1 || endIdx <= startIdx)
249
+ return 'not-found';
250
+ const before = content.substring(0, startIdx).trimEnd();
251
+ const after = content.substring(endIdx + endMarker.length).trimStart();
252
+ const joined = before + (before && after ? '\n\n' : '') + after;
253
+ if (joined.trim() === '') {
254
+ try {
255
+ fs.unlinkSync(filePath);
256
+ }
257
+ catch { /* ignore */ }
258
+ }
259
+ else {
260
+ atomicWriteFileSync(filePath, joined.trim() + '\n');
261
+ }
262
+ return 'removed';
263
+ }
264
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/installer/targets/shared.ts"],"names":[],"mappings":"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"}
@@ -23,17 +23,12 @@
23
23
  * supported: string, string[]. Other types throw — the codex MCP
24
24
  * config only needs these two.
25
25
  */
26
- export declare function serializeTomlTableBody(
27
- values: Record<string, string | string[]>,
28
- ): string
26
+ export declare function serializeTomlTableBody(values: Record<string, string | string[]>): string;
29
27
  /**
30
28
  * Build a full table block: header line + body. Suitable for direct
31
29
  * insertion into a TOML file.
32
30
  */
33
- export declare function buildTomlTable(
34
- header: string,
35
- values: Record<string, string | string[]>,
36
- ): string
31
+ export declare function buildTomlTable(header: string, values: Record<string, string | string[]>): string;
37
32
  /**
38
33
  * Insert or replace a top-level dotted-key TOML table block in the
39
34
  * given file content. Preserves all other content verbatim.
@@ -42,23 +37,16 @@ export declare function buildTomlTable(
42
37
  * when an existing one was rewritten, `'unchanged'` when the
43
38
  * existing block already matches `block` byte-for-byte.
44
39
  */
45
- export declare function upsertTomlTable(
46
- fileContent: string,
47
- header: string,
48
- block: string,
49
- ): {
50
- content: string
51
- action: 'inserted' | 'replaced' | 'unchanged'
52
- }
40
+ export declare function upsertTomlTable(fileContent: string, header: string, block: string): {
41
+ content: string;
42
+ action: 'inserted' | 'replaced' | 'unchanged';
43
+ };
53
44
  /**
54
45
  * Remove a top-level dotted-key TOML table block. Returns the
55
46
  * possibly-empty new content + an action flag.
56
47
  */
57
- export declare function removeTomlTable(
58
- fileContent: string,
59
- header: string,
60
- ): {
61
- content: string
62
- action: 'removed' | 'not-found'
63
- }
64
- //# sourceMappingURL=toml.d.ts.map
48
+ export declare function removeTomlTable(fileContent: string, header: string): {
49
+ content: string;
50
+ action: 'removed' | 'not-found';
51
+ };
52
+ //# sourceMappingURL=toml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/toml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAaxF;AAQD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAEhG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,CAAA;CAAE,CAkCpE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAA;CAAE,CAUtD"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ /**
3
+ * Tiny TOML helpers — just enough to inject / replace / remove a
4
+ * single dotted-key table block (`[mcp_servers.codegraph]`) inside an
5
+ * existing `~/.codex/config.toml`. We deliberately do NOT try to be a
6
+ * general TOML parser/serializer; that would mean pulling in a
7
+ * dependency (~50KB) for ~6 lines of output.
8
+ *
9
+ * Strategy: treat the file as text. Find the `[mcp_servers.codegraph]`
10
+ * header line, splice it (and the lines that follow it until the next
11
+ * `[...]` header or EOF) in or out. Everything outside that block is
12
+ * preserved verbatim, byte-for-byte.
13
+ *
14
+ * Limitations (acceptable for our narrow use):
15
+ * - Only handles top-level table headers; not array-of-tables or
16
+ * subtables nested inside `[mcp_servers]` itself (we always write
17
+ * the full dotted key `[mcp_servers.codegraph]`).
18
+ * - Doesn't validate sibling TOML — if the file is malformed
19
+ * elsewhere, our injection won't fix it but won't make it worse.
20
+ * - Quotes string values with double quotes; escapes `\` and `"`.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.serializeTomlTableBody = serializeTomlTableBody;
24
+ exports.buildTomlTable = buildTomlTable;
25
+ exports.upsertTomlTable = upsertTomlTable;
26
+ exports.removeTomlTable = removeTomlTable;
27
+ /**
28
+ * Serialize a record into the body lines of a TOML table. Values
29
+ * supported: string, string[]. Other types throw — the codex MCP
30
+ * config only needs these two.
31
+ */
32
+ function serializeTomlTableBody(values) {
33
+ const lines = [];
34
+ for (const [key, value] of Object.entries(values)) {
35
+ if (typeof value === 'string') {
36
+ lines.push(`${key} = ${quoteString(value)}`);
37
+ }
38
+ else if (Array.isArray(value) && value.every((v) => typeof v === 'string')) {
39
+ const parts = value.map(quoteString).join(', ');
40
+ lines.push(`${key} = [${parts}]`);
41
+ }
42
+ else {
43
+ throw new Error(`Unsupported TOML value type for key "${key}"`);
44
+ }
45
+ }
46
+ return lines.join('\n');
47
+ }
48
+ function quoteString(s) {
49
+ // TOML basic strings: backslash and double-quote escapes; control
50
+ // chars not expected in our payload (paths/args).
51
+ return '"' + s.replace(/\\/g, '\\\\').replace(/"/g, '\\"') + '"';
52
+ }
53
+ /**
54
+ * Build a full table block: header line + body. Suitable for direct
55
+ * insertion into a TOML file.
56
+ */
57
+ function buildTomlTable(header, values) {
58
+ return `[${header}]\n${serializeTomlTableBody(values)}`;
59
+ }
60
+ /**
61
+ * Insert or replace a top-level dotted-key TOML table block in the
62
+ * given file content. Preserves all other content verbatim.
63
+ *
64
+ * Returns `'inserted'` when the table was newly added, `'replaced'`
65
+ * when an existing one was rewritten, `'unchanged'` when the
66
+ * existing block already matches `block` byte-for-byte.
67
+ */
68
+ function upsertTomlTable(fileContent, header, block) {
69
+ const headerLine = `[${header}]`;
70
+ const headerIdx = findHeaderIndex(fileContent, headerLine);
71
+ if (headerIdx === -1) {
72
+ // Insert at end with separating blank line if there's existing content.
73
+ const trimmed = fileContent.trimEnd();
74
+ const sep = trimmed.length > 0 ? '\n\n' : '';
75
+ return {
76
+ content: trimmed + sep + block + '\n',
77
+ action: 'inserted',
78
+ };
79
+ }
80
+ // Find the end of this block: next `[...]` header (at line start) or EOF.
81
+ const blockEnd = findNextTableHeader(fileContent, headerIdx + headerLine.length);
82
+ const existingBlock = fileContent.substring(headerIdx, blockEnd).replace(/\n+$/, '');
83
+ if (existingBlock === block) {
84
+ return { content: fileContent, action: 'unchanged' };
85
+ }
86
+ const before = fileContent.substring(0, headerIdx);
87
+ const after = fileContent.substring(blockEnd);
88
+ // Trim trailing blank lines from `before` (we'll re-add one) and
89
+ // leading blank lines from `after` so the file shape stays clean.
90
+ const beforeClean = before.replace(/\n+$/, '');
91
+ const afterClean = after.replace(/^\n+/, '');
92
+ const sepBefore = beforeClean.length > 0 ? '\n\n' : '';
93
+ const sepAfter = afterClean.length > 0 ? '\n\n' : '\n';
94
+ return {
95
+ content: beforeClean + sepBefore + block + sepAfter + afterClean,
96
+ action: 'replaced',
97
+ };
98
+ }
99
+ /**
100
+ * Remove a top-level dotted-key TOML table block. Returns the
101
+ * possibly-empty new content + an action flag.
102
+ */
103
+ function removeTomlTable(fileContent, header) {
104
+ const headerLine = `[${header}]`;
105
+ const headerIdx = findHeaderIndex(fileContent, headerLine);
106
+ if (headerIdx === -1)
107
+ return { content: fileContent, action: 'not-found' };
108
+ const blockEnd = findNextTableHeader(fileContent, headerIdx + headerLine.length);
109
+ const before = fileContent.substring(0, headerIdx).replace(/\n+$/, '');
110
+ const after = fileContent.substring(blockEnd).replace(/^\n+/, '');
111
+ const joined = before + (before && after ? '\n\n' : '') + after;
112
+ return { content: joined, action: 'removed' };
113
+ }
114
+ /**
115
+ * Locate the byte index of a header line (`[foo.bar]`) when it
116
+ * appears at the start of a line. Returns -1 if not found.
117
+ */
118
+ function findHeaderIndex(content, headerLine) {
119
+ // Search BOL or right after a newline.
120
+ if (content.startsWith(headerLine))
121
+ return 0;
122
+ const needle = '\n' + headerLine;
123
+ const idx = content.indexOf(needle);
124
+ return idx === -1 ? -1 : idx + 1;
125
+ }
126
+ /**
127
+ * Find the byte index of the next top-level `[...]` table header
128
+ * (excluding array-of-tables `[[...]]`) starting from `from`, or
129
+ * return content length when none.
130
+ */
131
+ function findNextTableHeader(content, from) {
132
+ // Look for "\n[" but skip "\n[[" (array of tables).
133
+ let i = from;
134
+ while (i < content.length) {
135
+ const nlIdx = content.indexOf('\n[', i);
136
+ if (nlIdx === -1)
137
+ return content.length;
138
+ if (content[nlIdx + 2] === '[') {
139
+ // [[...]] — keep searching past it.
140
+ i = nlIdx + 2;
141
+ continue;
142
+ }
143
+ return nlIdx + 1;
144
+ }
145
+ return content.length;
146
+ }
147
+ //# sourceMappingURL=toml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml.js","sourceRoot":"","sources":["../../../src/installer/targets/toml.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,13 @@
11
11
  * runtime MCP server is already agent-agnostic; this brings the
12
12
  * installer to the same surface.
13
13
  */
14
- export type Location = 'global' | 'local'
14
+ export type Location = 'global' | 'local';
15
15
  /**
16
16
  * Stable string id used in the `--target` CLI flag and the registry
17
17
  * lookup. New targets add a value here when they're added to the
18
18
  * registry. Keep these short and lowercase.
19
19
  */
20
- export type TargetId = 'claude' | 'cursor' | 'codex' | 'opencode' | 'hermes'
20
+ export type TargetId = 'claude' | 'cursor' | 'codex' | 'opencode' | 'hermes' | 'gemini' | 'antigravity' | 'kiro';
21
21
  /**
22
22
  * Result of `target.detect(location)`.
23
23
  *
@@ -32,10 +32,10 @@ export type TargetId = 'claude' | 'cursor' | 'codex' | 'opencode' | 'hermes'
32
32
  * "Updated"-vs-"Added" log line and lets `--check` exit 0/1.
33
33
  */
34
34
  export interface DetectionResult {
35
- installed: boolean
36
- alreadyConfigured: boolean
37
- /** Path inspected; surfaced in diagnostic / dry-run output. */
38
- configPath?: string
35
+ installed: boolean;
36
+ alreadyConfigured: boolean;
37
+ /** Path inspected; surfaced in diagnostic / dry-run output. */
38
+ configPath?: string;
39
39
  }
40
40
  /**
41
41
  * What `target.install(location)` actually changed on disk. The
@@ -45,78 +45,64 @@ export interface DetectionResult {
45
45
  * what we'd write — used for byte-identical idempotent re-runs.
46
46
  */
47
47
  export interface WriteResult {
48
- files: Array<{
49
- path: string
50
- action:
51
- | 'created'
52
- | 'updated'
53
- | 'unchanged'
54
- | 'removed'
55
- | 'not-found'
56
- | 'kept'
57
- }>
58
- /**
59
- * Optional one-line notes the orchestrator surfaces verbatim — e.g.
60
- * "Restart Cursor to apply." Keep these short; multi-line goes in
61
- * the README.
62
- */
63
- notes?: string[]
48
+ files: Array<{
49
+ path: string;
50
+ action: 'created' | 'updated' | 'unchanged' | 'removed' | 'not-found' | 'kept';
51
+ }>;
52
+ /**
53
+ * Optional one-line notes the orchestrator surfaces verbatim — e.g.
54
+ * "Restart Cursor to apply." Keep these short; multi-line goes in
55
+ * the README.
56
+ */
57
+ notes?: string[];
64
58
  }
65
59
  export interface InstallOptions {
66
- /**
67
- * Whether to write the agent's permissions / auto-allow surface
68
- * (Claude `settings.json`, others where applicable). When the
69
- * target has no permissions concept this option is a no-op.
70
- */
71
- autoAllow: boolean
60
+ /**
61
+ * Whether to write the agent's permissions / auto-allow surface
62
+ * (Claude `settings.json`, others where applicable). When the
63
+ * target has no permissions concept this option is a no-op.
64
+ */
65
+ autoAllow: boolean;
66
+ /**
67
+ * Front-load prompt hook (Claude `UserPromptSubmit`) that injects
68
+ * codegraph_explore context for structural prompts. `true` installs it,
69
+ * `false` removes any prior install (so opt-out round-trips), `undefined`
70
+ * leaves it untouched. Targets without a prompt-hook concept ignore it.
71
+ */
72
+ promptHook?: boolean;
72
73
  }
73
74
  export interface AgentTarget {
74
- /** Stable id; matches the `TargetId` union. */
75
- readonly id: TargetId
76
- /** Human-readable name shown in clack prompts and log lines. */
77
- readonly displayName: string
78
- /** Optional URL for "where do I learn more about this agent." */
79
- readonly docsUrl?: string
80
- /**
81
- * Whether this target supports the given install location.
82
- *
83
- * Some agents (Codex CLI as of 2026-05) have no project-local
84
- * config concept — only a single `~/.codex/` dir. Returning false
85
- * for an unsupported (target, location) pair lets the orchestrator
86
- * skip cleanly with a clear message.
87
- */
88
- supportsLocation(loc: Location): boolean
89
- detect(loc: Location): DetectionResult
90
- install(loc: Location, opts: InstallOptions): WriteResult
91
- /**
92
- * Inverse of install. Removes only what install would have written;
93
- * preserves sibling MCP servers, sibling permissions, and unrelated
94
- * markdown sections. Must be safe to call when nothing was ever
95
- * installed (returns `not-found` actions).
96
- */
97
- uninstall(loc: Location): WriteResult
98
- /**
99
- * Print the MCP-server snippet a user would paste manually for this
100
- * target. Used by `codegraph install --print-config <id>` and by
101
- * the README. Must NOT touch the filesystem.
102
- */
103
- printConfig(loc: Location): string
104
- /** Filesystem paths this target would write to at this location. */
105
- describePaths(loc: Location): string[]
106
- /**
107
- * Optional. Write any project-local surfaces this target needs in
108
- * order to work fully when its MCP config is configured globally.
109
- * Called by `codegraph init` to bootstrap new projects without
110
- * forcing the user to re-run `codegraph install` per project.
111
- *
112
- * Most targets need nothing here — their global config is complete.
113
- * Cursor is the notable exception: its rules system
114
- * (`.cursor/rules/*.mdc`) is project-scoped only, and is what makes
115
- * Cursor's agent prefer codegraph over its built-in grep.
116
- *
117
- * Must be idempotent. Targets that have nothing project-local omit
118
- * the method entirely.
119
- */
120
- wireProjectSurfaces?(): WriteResult
75
+ /** Stable id; matches the `TargetId` union. */
76
+ readonly id: TargetId;
77
+ /** Human-readable name shown in clack prompts and log lines. */
78
+ readonly displayName: string;
79
+ /** Optional URL for "where do I learn more about this agent." */
80
+ readonly docsUrl?: string;
81
+ /**
82
+ * Whether this target supports the given install location.
83
+ *
84
+ * Some agents (Codex CLI as of 2026-05) have no project-local
85
+ * config concept — only a single `~/.codex/` dir. Returning false
86
+ * for an unsupported (target, location) pair lets the orchestrator
87
+ * skip cleanly with a clear message.
88
+ */
89
+ supportsLocation(loc: Location): boolean;
90
+ detect(loc: Location): DetectionResult;
91
+ install(loc: Location, opts: InstallOptions): WriteResult;
92
+ /**
93
+ * Inverse of install. Removes only what install would have written;
94
+ * preserves sibling MCP servers, sibling permissions, and unrelated
95
+ * markdown sections. Must be safe to call when nothing was ever
96
+ * installed (returns `not-found` actions).
97
+ */
98
+ uninstall(loc: Location): WriteResult;
99
+ /**
100
+ * Print the MCP-server snippet a user would paste manually for this
101
+ * target. Used by `codegraph install --print-config <id>` and by
102
+ * the README. Must NOT touch the filesystem.
103
+ */
104
+ printConfig(loc: Location): string;
105
+ /** Filesystem paths this target would write to at this location. */
106
+ describePaths(loc: Location): string[];
121
107
  }
122
- //# sourceMappingURL=types.d.ts.map
108
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;AAEjH;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;KAChF,CAAC,CAAC;IACH;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzC,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,CAAC;IACvC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,GAAG,WAAW,CAAC;IAC1D;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,oEAAoE;IACpE,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC;CACxC"}