kirograph 0.27.2 → 0.28.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 (788) hide show
  1. package/README.md +14 -7
  2. package/dist/bin/commands/annotations.js +56 -0
  3. package/dist/bin/commands/annotations.js.map +7 -0
  4. package/dist/bin/commands/ast-rewrite.js +55 -0
  5. package/dist/bin/commands/ast-rewrite.js.map +7 -0
  6. package/dist/bin/commands/bench.js +103 -0
  7. package/dist/bin/commands/bench.js.map +7 -0
  8. package/dist/bin/commands/branch.js +133 -0
  9. package/dist/bin/commands/branch.js.map +7 -0
  10. package/dist/bin/commands/changelog.js +55 -0
  11. package/dist/bin/commands/changelog.js.map +7 -0
  12. package/dist/bin/commands/commit-context.js +55 -0
  13. package/dist/bin/commands/commit-context.js.map +7 -0
  14. package/dist/bin/commands/complexity.js +60 -0
  15. package/dist/bin/commands/complexity.js.map +7 -0
  16. package/dist/bin/commands/cost.js +146 -0
  17. package/dist/bin/commands/cost.js.map +7 -0
  18. package/dist/bin/commands/dependency-depth.js +55 -0
  19. package/dist/bin/commands/dependency-depth.js.map +7 -0
  20. package/dist/bin/commands/diff-context.js +55 -0
  21. package/dist/bin/commands/diff-context.js.map +7 -0
  22. package/dist/bin/commands/distribution.js +56 -0
  23. package/dist/bin/commands/distribution.js.map +7 -0
  24. package/dist/bin/commands/doc-coverage.js +56 -0
  25. package/dist/bin/commands/doc-coverage.js.map +7 -0
  26. package/dist/bin/commands/doctor.js +202 -0
  27. package/dist/bin/commands/doctor.js.map +7 -0
  28. package/dist/bin/commands/dsm.js +56 -0
  29. package/dist/bin/commands/dsm.js.map +7 -0
  30. package/dist/bin/commands/gini.js +55 -0
  31. package/dist/bin/commands/gini.js.map +7 -0
  32. package/dist/bin/commands/god-class.js +56 -0
  33. package/dist/bin/commands/god-class.js.map +7 -0
  34. package/dist/bin/commands/health.js +55 -0
  35. package/dist/bin/commands/health.js.map +7 -0
  36. package/dist/bin/commands/help.js +224 -45
  37. package/dist/bin/commands/help.js.map +2 -2
  38. package/dist/bin/commands/inheritance-depth.js +56 -0
  39. package/dist/bin/commands/inheritance-depth.js.map +7 -0
  40. package/dist/bin/commands/insert-at.js +55 -0
  41. package/dist/bin/commands/insert-at.js.map +7 -0
  42. package/dist/bin/commands/largest.js +56 -0
  43. package/dist/bin/commands/largest.js.map +7 -0
  44. package/dist/bin/commands/manifest.js +158 -0
  45. package/dist/bin/commands/manifest.js.map +7 -0
  46. package/dist/bin/commands/module-api.js +57 -0
  47. package/dist/bin/commands/module-api.js.map +7 -0
  48. package/dist/bin/commands/monitor.js +91 -0
  49. package/dist/bin/commands/monitor.js.map +7 -0
  50. package/dist/bin/commands/multi-replace.js +66 -0
  51. package/dist/bin/commands/multi-replace.js.map +7 -0
  52. package/dist/bin/commands/pr-context.js +55 -0
  53. package/dist/bin/commands/pr-context.js.map +7 -0
  54. package/dist/bin/commands/query.js +19 -1
  55. package/dist/bin/commands/query.js.map +3 -3
  56. package/dist/bin/commands/rank.js +56 -0
  57. package/dist/bin/commands/rank.js.map +7 -0
  58. package/dist/bin/commands/read.js +1 -1
  59. package/dist/bin/commands/read.js.map +2 -2
  60. package/dist/bin/commands/recursion.js +56 -0
  61. package/dist/bin/commands/recursion.js.map +7 -0
  62. package/dist/bin/commands/rename-preview.js +56 -0
  63. package/dist/bin/commands/rename-preview.js.map +7 -0
  64. package/dist/bin/commands/session.js +60 -0
  65. package/dist/bin/commands/session.js.map +7 -0
  66. package/dist/bin/commands/simplify-scan.js +56 -0
  67. package/dist/bin/commands/simplify-scan.js.map +7 -0
  68. package/dist/bin/commands/str-replace.js +55 -0
  69. package/dist/bin/commands/str-replace.js.map +7 -0
  70. package/dist/bin/commands/test-coverage.js +59 -0
  71. package/dist/bin/commands/test-coverage.js.map +7 -0
  72. package/dist/bin/commands/test-map.js +56 -0
  73. package/dist/bin/commands/test-map.js.map +7 -0
  74. package/dist/bin/commands/test-risk.js +59 -0
  75. package/dist/bin/commands/test-risk.js.map +7 -0
  76. package/dist/bin/commands/unused-imports.js +55 -0
  77. package/dist/bin/commands/unused-imports.js.map +7 -0
  78. package/dist/bin/commands/upgrade.js +78 -0
  79. package/dist/bin/commands/upgrade.js.map +7 -0
  80. package/dist/bin/installer/common.js +5 -1
  81. package/dist/bin/installer/common.js.map +2 -2
  82. package/dist/bin/installer/config-prompt.js +239 -93
  83. package/dist/bin/installer/config-prompt.js.map +3 -3
  84. package/dist/bin/installer/index.js +38 -6
  85. package/dist/bin/installer/index.js.map +2 -2
  86. package/dist/bin/installer/instructions.js +7 -11
  87. package/dist/bin/installer/instructions.js.map +2 -2
  88. package/dist/bin/installer/mcp.js.map +2 -2
  89. package/dist/bin/installer/steering.js +531 -100
  90. package/dist/bin/installer/steering.js.map +2 -2
  91. package/dist/bin/installer/targets/kiro.js +7 -3
  92. package/dist/bin/installer/targets/kiro.js.map +2 -2
  93. package/dist/bin/kirograph.js +73 -1
  94. package/dist/bin/kirograph.js.map +3 -3
  95. package/dist/config.js +26 -8
  96. package/dist/config.js.map +2 -2
  97. package/dist/core/branch-manager.js +111 -0
  98. package/dist/core/branch-manager.js.map +7 -0
  99. package/dist/core/pipeline.js +3 -3
  100. package/dist/core/pipeline.js.map +2 -2
  101. package/dist/db/database.js +34 -7
  102. package/dist/db/database.js.map +2 -2
  103. package/dist/db/schema.sql +7 -1
  104. package/dist/extraction/complexity.js +116 -0
  105. package/dist/extraction/complexity.js.map +7 -0
  106. package/dist/extraction/extractor.js +52 -1
  107. package/dist/extraction/extractor.js.map +2 -2
  108. package/dist/graph/git-context.js +229 -0
  109. package/dist/graph/git-context.js.map +7 -0
  110. package/dist/index.js +4 -2
  111. package/dist/index.js.map +2 -2
  112. package/dist/mcp/handler.js +446 -0
  113. package/dist/mcp/handler.js.map +7 -0
  114. package/dist/mcp/handlers/architecture.js +297 -0
  115. package/dist/mcp/handlers/architecture.js.map +7 -0
  116. package/dist/mcp/handlers/branch.js +175 -0
  117. package/dist/mcp/handlers/branch.js.map +7 -0
  118. package/dist/mcp/handlers/code-health.js +563 -0
  119. package/dist/mcp/handlers/code-health.js.map +7 -0
  120. package/dist/mcp/handlers/complexity.js +267 -0
  121. package/dist/mcp/handlers/complexity.js.map +7 -0
  122. package/dist/mcp/handlers/core.js +611 -0
  123. package/dist/mcp/handlers/core.js.map +7 -0
  124. package/dist/mcp/handlers/data.js +337 -0
  125. package/dist/mcp/handlers/data.js.map +7 -0
  126. package/dist/mcp/handlers/docs.js +159 -0
  127. package/dist/mcp/handlers/docs.js.map +7 -0
  128. package/dist/mcp/handlers/edit-primitives.js +200 -0
  129. package/dist/mcp/handlers/edit-primitives.js.map +7 -0
  130. package/dist/mcp/handlers/git-context.js +286 -0
  131. package/dist/mcp/handlers/git-context.js.map +7 -0
  132. package/dist/mcp/handlers/memory.js +363 -0
  133. package/dist/mcp/handlers/memory.js.map +7 -0
  134. package/dist/mcp/handlers/patterns.js +310 -0
  135. package/dist/mcp/handlers/patterns.js.map +7 -0
  136. package/dist/mcp/handlers/security.js +699 -0
  137. package/dist/mcp/handlers/security.js.map +7 -0
  138. package/dist/mcp/handlers/utils.js +97 -0
  139. package/dist/mcp/handlers/utils.js.map +7 -0
  140. package/dist/mcp/handlers/watchmen.js +104 -0
  141. package/dist/mcp/handlers/watchmen.js.map +7 -0
  142. package/dist/mcp/handlers/wiki.js +242 -0
  143. package/dist/mcp/handlers/wiki.js.map +7 -0
  144. package/dist/mcp/server.js +72 -3
  145. package/dist/mcp/server.js.map +2 -2
  146. package/dist/mcp/tool-names.js +94 -7
  147. package/dist/mcp/tool-names.js.map +2 -2
  148. package/dist/mcp/tools.js +445 -3210
  149. package/dist/mcp/tools.js.map +3 -3
  150. package/dist/types.js.map +2 -2
  151. package/package.json +36 -10
  152. package/dist/architecture/index.d.ts +0 -11
  153. package/dist/architecture/index.d.ts.map +0 -1
  154. package/dist/architecture/layers/csharp.d.ts +0 -6
  155. package/dist/architecture/layers/csharp.d.ts.map +0 -1
  156. package/dist/architecture/layers/dart.d.ts +0 -10
  157. package/dist/architecture/layers/dart.d.ts.map +0 -1
  158. package/dist/architecture/layers/elixir.d.ts +0 -6
  159. package/dist/architecture/layers/elixir.d.ts.map +0 -1
  160. package/dist/architecture/layers/go.d.ts +0 -7
  161. package/dist/architecture/layers/go.d.ts.map +0 -1
  162. package/dist/architecture/layers/index.d.ts +0 -30
  163. package/dist/architecture/layers/index.d.ts.map +0 -1
  164. package/dist/architecture/layers/java.d.ts +0 -7
  165. package/dist/architecture/layers/java.d.ts.map +0 -1
  166. package/dist/architecture/layers/ocaml.d.ts +0 -6
  167. package/dist/architecture/layers/ocaml.d.ts.map +0 -1
  168. package/dist/architecture/layers/python.d.ts +0 -7
  169. package/dist/architecture/layers/python.d.ts.map +0 -1
  170. package/dist/architecture/layers/ruby.d.ts +0 -6
  171. package/dist/architecture/layers/ruby.d.ts.map +0 -1
  172. package/dist/architecture/layers/rust.d.ts +0 -6
  173. package/dist/architecture/layers/rust.d.ts.map +0 -1
  174. package/dist/architecture/layers/scala.d.ts +0 -6
  175. package/dist/architecture/layers/scala.d.ts.map +0 -1
  176. package/dist/architecture/layers/solidity.d.ts +0 -6
  177. package/dist/architecture/layers/solidity.d.ts.map +0 -1
  178. package/dist/architecture/layers/types.d.ts +0 -2
  179. package/dist/architecture/layers/types.d.ts.map +0 -1
  180. package/dist/architecture/layers/typescript.d.ts +0 -9
  181. package/dist/architecture/layers/typescript.d.ts.map +0 -1
  182. package/dist/architecture/layers/vue.d.ts +0 -6
  183. package/dist/architecture/layers/vue.d.ts.map +0 -1
  184. package/dist/architecture/manifest/cargo.d.ts +0 -3
  185. package/dist/architecture/manifest/cargo.d.ts.map +0 -1
  186. package/dist/architecture/manifest/csproj.d.ts +0 -3
  187. package/dist/architecture/manifest/csproj.d.ts.map +0 -1
  188. package/dist/architecture/manifest/elm.d.ts +0 -3
  189. package/dist/architecture/manifest/elm.d.ts.map +0 -1
  190. package/dist/architecture/manifest/go.d.ts +0 -3
  191. package/dist/architecture/manifest/go.d.ts.map +0 -1
  192. package/dist/architecture/manifest/gradle.d.ts +0 -3
  193. package/dist/architecture/manifest/gradle.d.ts.map +0 -1
  194. package/dist/architecture/manifest/index.d.ts +0 -12
  195. package/dist/architecture/manifest/index.d.ts.map +0 -1
  196. package/dist/architecture/manifest/maven.d.ts +0 -3
  197. package/dist/architecture/manifest/maven.d.ts.map +0 -1
  198. package/dist/architecture/manifest/npm.d.ts +0 -3
  199. package/dist/architecture/manifest/npm.d.ts.map +0 -1
  200. package/dist/architecture/manifest/ocaml.d.ts +0 -3
  201. package/dist/architecture/manifest/ocaml.d.ts.map +0 -1
  202. package/dist/architecture/manifest/python.d.ts +0 -3
  203. package/dist/architecture/manifest/python.d.ts.map +0 -1
  204. package/dist/architecture/manifest/scala.d.ts +0 -3
  205. package/dist/architecture/manifest/scala.d.ts.map +0 -1
  206. package/dist/architecture/manifest/types.d.ts +0 -2
  207. package/dist/architecture/manifest/types.d.ts.map +0 -1
  208. package/dist/architecture/types.d.ts +0 -91
  209. package/dist/architecture/types.d.ts.map +0 -1
  210. package/dist/banner.d.ts +0 -6
  211. package/dist/banner.d.ts.map +0 -1
  212. package/dist/banner.js +0 -67
  213. package/dist/banner.js.map +0 -1
  214. package/dist/bin/banner.d.ts +0 -6
  215. package/dist/bin/banner.d.ts.map +0 -1
  216. package/dist/bin/commands/affected.d.ts +0 -3
  217. package/dist/bin/commands/affected.d.ts.map +0 -1
  218. package/dist/bin/commands/architecture.d.ts +0 -3
  219. package/dist/bin/commands/architecture.d.ts.map +0 -1
  220. package/dist/bin/commands/attack-surface.d.ts +0 -3
  221. package/dist/bin/commands/attack-surface.d.ts.map +0 -1
  222. package/dist/bin/commands/benchmark.d.ts +0 -9
  223. package/dist/bin/commands/benchmark.d.ts.map +0 -1
  224. package/dist/bin/commands/budget.d.ts +0 -6
  225. package/dist/bin/commands/budget.d.ts.map +0 -1
  226. package/dist/bin/commands/caveman.d.ts +0 -7
  227. package/dist/bin/commands/caveman.d.ts.map +0 -1
  228. package/dist/bin/commands/communities.d.ts +0 -3
  229. package/dist/bin/commands/communities.d.ts.map +0 -1
  230. package/dist/bin/commands/compression.d.ts +0 -7
  231. package/dist/bin/commands/compression.d.ts.map +0 -1
  232. package/dist/bin/commands/configure-mcp.js +0 -104
  233. package/dist/bin/commands/configure-mcp.js.map +0 -7
  234. package/dist/bin/commands/context.d.ts +0 -3
  235. package/dist/bin/commands/context.d.ts.map +0 -1
  236. package/dist/bin/commands/coupling.d.ts +0 -3
  237. package/dist/bin/commands/coupling.d.ts.map +0 -1
  238. package/dist/bin/commands/dashboard.d.ts +0 -3
  239. package/dist/bin/commands/dashboard.d.ts.map +0 -1
  240. package/dist/bin/commands/data.d.ts +0 -3
  241. package/dist/bin/commands/data.d.ts.map +0 -1
  242. package/dist/bin/commands/dead-code.d.ts +0 -3
  243. package/dist/bin/commands/dead-code.d.ts.map +0 -1
  244. package/dist/bin/commands/dep-confusion.d.ts +0 -3
  245. package/dist/bin/commands/dep-confusion.d.ts.map +0 -1
  246. package/dist/bin/commands/docs.d.ts +0 -3
  247. package/dist/bin/commands/docs.d.ts.map +0 -1
  248. package/dist/bin/commands/exec.d.ts +0 -11
  249. package/dist/bin/commands/exec.d.ts.map +0 -1
  250. package/dist/bin/commands/export.d.ts +0 -3
  251. package/dist/bin/commands/export.d.ts.map +0 -1
  252. package/dist/bin/commands/files.d.ts +0 -3
  253. package/dist/bin/commands/files.d.ts.map +0 -1
  254. package/dist/bin/commands/flows.d.ts +0 -3
  255. package/dist/bin/commands/flows.d.ts.map +0 -1
  256. package/dist/bin/commands/gain.d.ts +0 -6
  257. package/dist/bin/commands/gain.d.ts.map +0 -1
  258. package/dist/bin/commands/help.d.ts +0 -11
  259. package/dist/bin/commands/help.d.ts.map +0 -1
  260. package/dist/bin/commands/hotspots.d.ts +0 -3
  261. package/dist/bin/commands/hotspots.d.ts.map +0 -1
  262. package/dist/bin/commands/index.d.ts +0 -3
  263. package/dist/bin/commands/index.d.ts.map +0 -1
  264. package/dist/bin/commands/init.d.ts +0 -3
  265. package/dist/bin/commands/init.d.ts.map +0 -1
  266. package/dist/bin/commands/install.d.ts +0 -3
  267. package/dist/bin/commands/install.d.ts.map +0 -1
  268. package/dist/bin/commands/licenses.d.ts +0 -3
  269. package/dist/bin/commands/licenses.d.ts.map +0 -1
  270. package/dist/bin/commands/mark-dirty.d.ts +0 -3
  271. package/dist/bin/commands/mark-dirty.d.ts.map +0 -1
  272. package/dist/bin/commands/memory.d.ts +0 -16
  273. package/dist/bin/commands/memory.d.ts.map +0 -1
  274. package/dist/bin/commands/package.d.ts +0 -3
  275. package/dist/bin/commands/package.d.ts.map +0 -1
  276. package/dist/bin/commands/path.d.ts +0 -3
  277. package/dist/bin/commands/path.d.ts.map +0 -1
  278. package/dist/bin/commands/pattern.d.ts +0 -3
  279. package/dist/bin/commands/pattern.d.ts.map +0 -1
  280. package/dist/bin/commands/qdrant.d.ts +0 -3
  281. package/dist/bin/commands/qdrant.d.ts.map +0 -1
  282. package/dist/bin/commands/qdrant.js +0 -159
  283. package/dist/bin/commands/qdrant.js.map +0 -1
  284. package/dist/bin/commands/query.d.ts +0 -3
  285. package/dist/bin/commands/query.d.ts.map +0 -1
  286. package/dist/bin/commands/reachability.d.ts +0 -3
  287. package/dist/bin/commands/reachability.d.ts.map +0 -1
  288. package/dist/bin/commands/read.d.ts +0 -6
  289. package/dist/bin/commands/read.d.ts.map +0 -1
  290. package/dist/bin/commands/refactor.d.ts +0 -3
  291. package/dist/bin/commands/refactor.d.ts.map +0 -1
  292. package/dist/bin/commands/remediation.d.ts +0 -3
  293. package/dist/bin/commands/remediation.d.ts.map +0 -1
  294. package/dist/bin/commands/sbom.d.ts +0 -3
  295. package/dist/bin/commands/sbom.d.ts.map +0 -1
  296. package/dist/bin/commands/security-ci-report.d.ts +0 -9
  297. package/dist/bin/commands/security-ci-report.d.ts.map +0 -1
  298. package/dist/bin/commands/security-export.d.ts +0 -2
  299. package/dist/bin/commands/security-export.d.ts.map +0 -1
  300. package/dist/bin/commands/security-flows.d.ts +0 -3
  301. package/dist/bin/commands/security-flows.d.ts.map +0 -1
  302. package/dist/bin/commands/security-secrets.d.ts +0 -3
  303. package/dist/bin/commands/security-secrets.d.ts.map +0 -1
  304. package/dist/bin/commands/security.d.ts +0 -3
  305. package/dist/bin/commands/security.d.ts.map +0 -1
  306. package/dist/bin/commands/serve.d.ts +0 -3
  307. package/dist/bin/commands/serve.d.ts.map +0 -1
  308. package/dist/bin/commands/snapshot.d.ts +0 -3
  309. package/dist/bin/commands/snapshot.d.ts.map +0 -1
  310. package/dist/bin/commands/staleness.d.ts +0 -3
  311. package/dist/bin/commands/staleness.d.ts.map +0 -1
  312. package/dist/bin/commands/status.d.ts +0 -3
  313. package/dist/bin/commands/status.d.ts.map +0 -1
  314. package/dist/bin/commands/stop.d.ts +0 -3
  315. package/dist/bin/commands/stop.d.ts.map +0 -1
  316. package/dist/bin/commands/stop.js +0 -81
  317. package/dist/bin/commands/stop.js.map +0 -1
  318. package/dist/bin/commands/supply-chain.d.ts +0 -3
  319. package/dist/bin/commands/supply-chain.d.ts.map +0 -1
  320. package/dist/bin/commands/surprising.d.ts +0 -3
  321. package/dist/bin/commands/surprising.d.ts.map +0 -1
  322. package/dist/bin/commands/sync-if-dirty.d.ts +0 -3
  323. package/dist/bin/commands/sync-if-dirty.d.ts.map +0 -1
  324. package/dist/bin/commands/sync.d.ts +0 -3
  325. package/dist/bin/commands/sync.d.ts.map +0 -1
  326. package/dist/bin/commands/typesense.d.ts +0 -3
  327. package/dist/bin/commands/typesense.d.ts.map +0 -1
  328. package/dist/bin/commands/typesense.js +0 -126
  329. package/dist/bin/commands/typesense.js.map +0 -1
  330. package/dist/bin/commands/uninit.d.ts +0 -4
  331. package/dist/bin/commands/uninit.d.ts.map +0 -1
  332. package/dist/bin/commands/unlock.d.ts +0 -3
  333. package/dist/bin/commands/unlock.d.ts.map +0 -1
  334. package/dist/bin/commands/utils.d.ts +0 -17
  335. package/dist/bin/commands/utils.d.ts.map +0 -1
  336. package/dist/bin/commands/vex.d.ts +0 -3
  337. package/dist/bin/commands/vex.d.ts.map +0 -1
  338. package/dist/bin/commands/vuln-suppress.d.ts +0 -3
  339. package/dist/bin/commands/vuln-suppress.d.ts.map +0 -1
  340. package/dist/bin/commands/vulns.d.ts +0 -3
  341. package/dist/bin/commands/vulns.d.ts.map +0 -1
  342. package/dist/bin/installer/archive.d.ts +0 -47
  343. package/dist/bin/installer/archive.d.ts.map +0 -1
  344. package/dist/bin/installer/auto-detect.d.ts +0 -16
  345. package/dist/bin/installer/auto-detect.d.ts.map +0 -1
  346. package/dist/bin/installer/caveman.d.ts +0 -12
  347. package/dist/bin/installer/caveman.d.ts.map +0 -1
  348. package/dist/bin/installer/cli-agent.d.ts +0 -20
  349. package/dist/bin/installer/cli-agent.d.ts.map +0 -1
  350. package/dist/bin/installer/common.d.ts +0 -36
  351. package/dist/bin/installer/common.d.ts.map +0 -1
  352. package/dist/bin/installer/config-prompt.d.ts +0 -13
  353. package/dist/bin/installer/config-prompt.d.ts.map +0 -1
  354. package/dist/bin/installer/dashboard.d.ts +0 -3
  355. package/dist/bin/installer/dashboard.d.ts.map +0 -1
  356. package/dist/bin/installer/detect.d.ts +0 -30
  357. package/dist/bin/installer/detect.d.ts.map +0 -1
  358. package/dist/bin/installer/hooks.d.ts +0 -8
  359. package/dist/bin/installer/hooks.d.ts.map +0 -1
  360. package/dist/bin/installer/index.d.ts +0 -12
  361. package/dist/bin/installer/index.d.ts.map +0 -1
  362. package/dist/bin/installer/instructions.d.ts +0 -14
  363. package/dist/bin/installer/instructions.d.ts.map +0 -1
  364. package/dist/bin/installer/mcp.d.ts +0 -5
  365. package/dist/bin/installer/mcp.d.ts.map +0 -1
  366. package/dist/bin/installer/prompts.d.ts +0 -45
  367. package/dist/bin/installer/prompts.d.ts.map +0 -1
  368. package/dist/bin/installer/qdrant-dashboard.d.ts +0 -4
  369. package/dist/bin/installer/qdrant-dashboard.d.ts.map +0 -1
  370. package/dist/bin/installer/steering.d.ts +0 -17
  371. package/dist/bin/installer/steering.d.ts.map +0 -1
  372. package/dist/bin/installer/targets/aider.d.ts +0 -6
  373. package/dist/bin/installer/targets/aider.d.ts.map +0 -1
  374. package/dist/bin/installer/targets/amp.d.ts +0 -6
  375. package/dist/bin/installer/targets/amp.d.ts.map +0 -1
  376. package/dist/bin/installer/targets/antigravity.d.ts +0 -13
  377. package/dist/bin/installer/targets/antigravity.d.ts.map +0 -1
  378. package/dist/bin/installer/targets/augment.d.ts +0 -6
  379. package/dist/bin/installer/targets/augment.d.ts.map +0 -1
  380. package/dist/bin/installer/targets/claude.d.ts +0 -6
  381. package/dist/bin/installer/targets/claude.d.ts.map +0 -1
  382. package/dist/bin/installer/targets/cline.d.ts +0 -13
  383. package/dist/bin/installer/targets/cline.d.ts.map +0 -1
  384. package/dist/bin/installer/targets/codex.d.ts +0 -6
  385. package/dist/bin/installer/targets/codex.d.ts.map +0 -1
  386. package/dist/bin/installer/targets/continue.d.ts +0 -12
  387. package/dist/bin/installer/targets/continue.d.ts.map +0 -1
  388. package/dist/bin/installer/targets/copilot-cli.d.ts +0 -12
  389. package/dist/bin/installer/targets/copilot-cli.d.ts.map +0 -1
  390. package/dist/bin/installer/targets/copilot.d.ts +0 -6
  391. package/dist/bin/installer/targets/copilot.d.ts.map +0 -1
  392. package/dist/bin/installer/targets/cursor.d.ts +0 -6
  393. package/dist/bin/installer/targets/cursor.d.ts.map +0 -1
  394. package/dist/bin/installer/targets/devin.d.ts +0 -13
  395. package/dist/bin/installer/targets/devin.d.ts.map +0 -1
  396. package/dist/bin/installer/targets/gemini-cli.d.ts +0 -16
  397. package/dist/bin/installer/targets/gemini-cli.d.ts.map +0 -1
  398. package/dist/bin/installer/targets/generic.d.ts +0 -59
  399. package/dist/bin/installer/targets/generic.d.ts.map +0 -1
  400. package/dist/bin/installer/targets/goose.d.ts +0 -6
  401. package/dist/bin/installer/targets/goose.d.ts.map +0 -1
  402. package/dist/bin/installer/targets/index.d.ts +0 -11
  403. package/dist/bin/installer/targets/index.d.ts.map +0 -1
  404. package/dist/bin/installer/targets/junie.d.ts +0 -13
  405. package/dist/bin/installer/targets/junie.d.ts.map +0 -1
  406. package/dist/bin/installer/targets/kilo.d.ts +0 -12
  407. package/dist/bin/installer/targets/kilo.d.ts.map +0 -1
  408. package/dist/bin/installer/targets/kiro.d.ts +0 -5
  409. package/dist/bin/installer/targets/kiro.d.ts.map +0 -1
  410. package/dist/bin/installer/targets/opencode.d.ts +0 -13
  411. package/dist/bin/installer/targets/opencode.d.ts.map +0 -1
  412. package/dist/bin/installer/targets/openhands.d.ts +0 -6
  413. package/dist/bin/installer/targets/openhands.d.ts.map +0 -1
  414. package/dist/bin/installer/targets/qoder.d.ts +0 -12
  415. package/dist/bin/installer/targets/qoder.d.ts.map +0 -1
  416. package/dist/bin/installer/targets/qwen.d.ts +0 -12
  417. package/dist/bin/installer/targets/qwen.d.ts.map +0 -1
  418. package/dist/bin/installer/targets/replit.d.ts +0 -6
  419. package/dist/bin/installer/targets/replit.d.ts.map +0 -1
  420. package/dist/bin/installer/targets/roo.d.ts +0 -13
  421. package/dist/bin/installer/targets/roo.d.ts.map +0 -1
  422. package/dist/bin/installer/targets/tabnine.d.ts +0 -6
  423. package/dist/bin/installer/targets/tabnine.d.ts.map +0 -1
  424. package/dist/bin/installer/targets/trae.d.ts +0 -6
  425. package/dist/bin/installer/targets/trae.d.ts.map +0 -1
  426. package/dist/bin/installer/targets/warp.d.ts +0 -12
  427. package/dist/bin/installer/targets/warp.d.ts.map +0 -1
  428. package/dist/bin/installer/targets/windsurf.d.ts +0 -13
  429. package/dist/bin/installer/targets/windsurf.d.ts.map +0 -1
  430. package/dist/bin/kirograph.d.ts +0 -6
  431. package/dist/bin/kirograph.d.ts.map +0 -1
  432. package/dist/bin/progress.d.ts +0 -29
  433. package/dist/bin/progress.d.ts.map +0 -1
  434. package/dist/bin/ui.d.ts +0 -11
  435. package/dist/bin/ui.d.ts.map +0 -1
  436. package/dist/compression/filters/aws.d.ts +0 -9
  437. package/dist/compression/filters/aws.d.ts.map +0 -1
  438. package/dist/compression/filters/docker.d.ts +0 -6
  439. package/dist/compression/filters/docker.d.ts.map +0 -1
  440. package/dist/compression/filters/files.d.ts +0 -6
  441. package/dist/compression/filters/files.d.ts.map +0 -1
  442. package/dist/compression/filters/generic.d.ts +0 -7
  443. package/dist/compression/filters/generic.d.ts.map +0 -1
  444. package/dist/compression/filters/git.d.ts +0 -6
  445. package/dist/compression/filters/git.d.ts.map +0 -1
  446. package/dist/compression/filters/github.d.ts +0 -6
  447. package/dist/compression/filters/github.d.ts.map +0 -1
  448. package/dist/compression/filters/lint.d.ts +0 -6
  449. package/dist/compression/filters/lint.d.ts.map +0 -1
  450. package/dist/compression/filters/misc.d.ts +0 -6
  451. package/dist/compression/filters/misc.d.ts.map +0 -1
  452. package/dist/compression/filters/package.d.ts +0 -6
  453. package/dist/compression/filters/package.d.ts.map +0 -1
  454. package/dist/compression/filters/test.d.ts +0 -6
  455. package/dist/compression/filters/test.d.ts.map +0 -1
  456. package/dist/compression/index.d.ts +0 -29
  457. package/dist/compression/index.d.ts.map +0 -1
  458. package/dist/compression/naive-cost.d.ts +0 -26
  459. package/dist/compression/naive-cost.d.ts.map +0 -1
  460. package/dist/compression/tracker.d.ts +0 -155
  461. package/dist/compression/tracker.d.ts.map +0 -1
  462. package/dist/compression/types.d.ts +0 -49
  463. package/dist/compression/types.d.ts.map +0 -1
  464. package/dist/config.d.ts +0 -138
  465. package/dist/config.d.ts.map +0 -1
  466. package/dist/context/index.d.ts +0 -61
  467. package/dist/context/index.d.ts.map +0 -1
  468. package/dist/core/file-tree.d.ts +0 -15
  469. package/dist/core/file-tree.d.ts.map +0 -1
  470. package/dist/core/lock-manager.d.ts +0 -22
  471. package/dist/core/lock-manager.d.ts.map +0 -1
  472. package/dist/core/pipeline.d.ts +0 -40
  473. package/dist/core/pipeline.d.ts.map +0 -1
  474. package/dist/core/snapshot.d.ts +0 -58
  475. package/dist/core/snapshot.d.ts.map +0 -1
  476. package/dist/data/filters.d.ts +0 -23
  477. package/dist/data/filters.d.ts.map +0 -1
  478. package/dist/data/indexer.d.ts +0 -25
  479. package/dist/data/indexer.d.ts.map +0 -1
  480. package/dist/data/linker.d.ts +0 -37
  481. package/dist/data/linker.d.ts.map +0 -1
  482. package/dist/data/linker.test.js +0 -60
  483. package/dist/data/linker.test.js.map +0 -7
  484. package/dist/data/lint.d.ts +0 -27
  485. package/dist/data/lint.d.ts.map +0 -1
  486. package/dist/data/parsers/__fixtures__/pdf-inspector-stub.js +0 -41
  487. package/dist/data/parsers/__fixtures__/pdf-inspector-stub.js.map +0 -7
  488. package/dist/data/parsers/csv.d.ts +0 -11
  489. package/dist/data/parsers/csv.d.ts.map +0 -1
  490. package/dist/data/parsers/excel.d.ts +0 -10
  491. package/dist/data/parsers/excel.d.ts.map +0 -1
  492. package/dist/data/parsers/index.d.ts +0 -28
  493. package/dist/data/parsers/index.d.ts.map +0 -1
  494. package/dist/data/parsers/json-array.d.ts +0 -9
  495. package/dist/data/parsers/json-array.d.ts.map +0 -1
  496. package/dist/data/parsers/jsonl.d.ts +0 -9
  497. package/dist/data/parsers/jsonl.d.ts.map +0 -1
  498. package/dist/data/parsers/parquet.d.ts +0 -10
  499. package/dist/data/parsers/parquet.d.ts.map +0 -1
  500. package/dist/data/parsers/pdf.test.js +0 -125
  501. package/dist/data/parsers/pdf.test.js.map +0 -7
  502. package/dist/data/profiler.d.ts +0 -29
  503. package/dist/data/profiler.d.ts.map +0 -1
  504. package/dist/data/queries.d.ts +0 -95
  505. package/dist/data/queries.d.ts.map +0 -1
  506. package/dist/data/types.d.ts +0 -103
  507. package/dist/data/types.d.ts.map +0 -1
  508. package/dist/db/database.d.ts +0 -190
  509. package/dist/db/database.d.ts.map +0 -1
  510. package/dist/docs/formats/asciidoc.d.ts +0 -9
  511. package/dist/docs/formats/asciidoc.d.ts.map +0 -1
  512. package/dist/docs/formats/html.d.ts +0 -10
  513. package/dist/docs/formats/html.d.ts.map +0 -1
  514. package/dist/docs/formats/index.d.ts +0 -31
  515. package/dist/docs/formats/index.d.ts.map +0 -1
  516. package/dist/docs/formats/markdown.d.ts +0 -11
  517. package/dist/docs/formats/markdown.d.ts.map +0 -1
  518. package/dist/docs/formats/openapi.d.ts +0 -17
  519. package/dist/docs/formats/openapi.d.ts.map +0 -1
  520. package/dist/docs/formats/org.d.ts +0 -9
  521. package/dist/docs/formats/org.d.ts.map +0 -1
  522. package/dist/docs/formats/plaintext.d.ts +0 -11
  523. package/dist/docs/formats/plaintext.d.ts.map +0 -1
  524. package/dist/docs/formats/rdoc.d.ts +0 -10
  525. package/dist/docs/formats/rdoc.d.ts.map +0 -1
  526. package/dist/docs/formats/rst.d.ts +0 -11
  527. package/dist/docs/formats/rst.d.ts.map +0 -1
  528. package/dist/docs/indexer.d.ts +0 -49
  529. package/dist/docs/indexer.d.ts.map +0 -1
  530. package/dist/docs/linker.d.ts +0 -30
  531. package/dist/docs/linker.d.ts.map +0 -1
  532. package/dist/docs/lint.d.ts +0 -27
  533. package/dist/docs/lint.d.ts.map +0 -1
  534. package/dist/docs/queries.d.ts +0 -78
  535. package/dist/docs/queries.d.ts.map +0 -1
  536. package/dist/docs/section-id.d.ts +0 -48
  537. package/dist/docs/section-id.d.ts.map +0 -1
  538. package/dist/docs/summarizer.d.ts +0 -13
  539. package/dist/docs/summarizer.d.ts.map +0 -1
  540. package/dist/docs/types.d.ts +0 -71
  541. package/dist/docs/types.d.ts.map +0 -1
  542. package/dist/docs/vectors.d.ts +0 -54
  543. package/dist/docs/vectors.d.ts.map +0 -1
  544. package/dist/errors.d.ts +0 -49
  545. package/dist/errors.d.ts.map +0 -1
  546. package/dist/extraction/extractor.d.ts +0 -29
  547. package/dist/extraction/extractor.d.ts.map +0 -1
  548. package/dist/extraction/grammars.d.ts +0 -54
  549. package/dist/extraction/grammars.d.ts.map +0 -1
  550. package/dist/extraction/languages.d.ts +0 -9
  551. package/dist/extraction/languages.d.ts.map +0 -1
  552. package/dist/extraction/notebook.d.ts +0 -14
  553. package/dist/extraction/notebook.d.ts.map +0 -1
  554. package/dist/frameworks/amplify.d.ts +0 -9
  555. package/dist/frameworks/amplify.d.ts.map +0 -1
  556. package/dist/frameworks/angular.d.ts +0 -9
  557. package/dist/frameworks/angular.d.ts.map +0 -1
  558. package/dist/frameworks/ansible.d.ts +0 -8
  559. package/dist/frameworks/ansible.d.ts.map +0 -1
  560. package/dist/frameworks/cloudformation.d.ts +0 -9
  561. package/dist/frameworks/cloudformation.d.ts.map +0 -1
  562. package/dist/frameworks/csharp.d.ts +0 -8
  563. package/dist/frameworks/csharp.d.ts.map +0 -1
  564. package/dist/frameworks/docker.d.ts +0 -9
  565. package/dist/frameworks/docker.d.ts.map +0 -1
  566. package/dist/frameworks/elixir.d.ts +0 -6
  567. package/dist/frameworks/elixir.d.ts.map +0 -1
  568. package/dist/frameworks/express.d.ts +0 -8
  569. package/dist/frameworks/express.d.ts.map +0 -1
  570. package/dist/frameworks/flutter.d.ts +0 -12
  571. package/dist/frameworks/flutter.d.ts.map +0 -1
  572. package/dist/frameworks/go.d.ts +0 -8
  573. package/dist/frameworks/go.d.ts.map +0 -1
  574. package/dist/frameworks/iac.d.ts +0 -10
  575. package/dist/frameworks/iac.d.ts.map +0 -1
  576. package/dist/frameworks/index.d.ts +0 -44
  577. package/dist/frameworks/index.d.ts.map +0 -1
  578. package/dist/frameworks/java.d.ts +0 -8
  579. package/dist/frameworks/java.d.ts.map +0 -1
  580. package/dist/frameworks/kubernetes.d.ts +0 -9
  581. package/dist/frameworks/kubernetes.d.ts.map +0 -1
  582. package/dist/frameworks/laravel.d.ts +0 -9
  583. package/dist/frameworks/laravel.d.ts.map +0 -1
  584. package/dist/frameworks/pulumi.d.ts +0 -9
  585. package/dist/frameworks/pulumi.d.ts.map +0 -1
  586. package/dist/frameworks/python.d.ts +0 -10
  587. package/dist/frameworks/python.d.ts.map +0 -1
  588. package/dist/frameworks/react.d.ts +0 -9
  589. package/dist/frameworks/react.d.ts.map +0 -1
  590. package/dist/frameworks/ruby.d.ts +0 -8
  591. package/dist/frameworks/ruby.d.ts.map +0 -1
  592. package/dist/frameworks/rust.d.ts +0 -8
  593. package/dist/frameworks/rust.d.ts.map +0 -1
  594. package/dist/frameworks/scala.d.ts +0 -6
  595. package/dist/frameworks/scala.d.ts.map +0 -1
  596. package/dist/frameworks/solidity.d.ts +0 -6
  597. package/dist/frameworks/solidity.d.ts.map +0 -1
  598. package/dist/frameworks/svelte.d.ts +0 -8
  599. package/dist/frameworks/svelte.d.ts.map +0 -1
  600. package/dist/frameworks/swift.d.ts +0 -10
  601. package/dist/frameworks/swift.d.ts.map +0 -1
  602. package/dist/frameworks/terraform.d.ts +0 -14
  603. package/dist/frameworks/terraform.d.ts.map +0 -1
  604. package/dist/frameworks/types.d.ts +0 -37
  605. package/dist/frameworks/types.d.ts.map +0 -1
  606. package/dist/frameworks/vue.d.ts +0 -7
  607. package/dist/frameworks/vue.d.ts.map +0 -1
  608. package/dist/graph/communities.d.ts +0 -43
  609. package/dist/graph/communities.d.ts.map +0 -1
  610. package/dist/graph/flows.d.ts +0 -55
  611. package/dist/graph/flows.d.ts.map +0 -1
  612. package/dist/graph/queries.d.ts +0 -53
  613. package/dist/graph/queries.d.ts.map +0 -1
  614. package/dist/graph/refactor.d.ts +0 -43
  615. package/dist/graph/refactor.d.ts.map +0 -1
  616. package/dist/graph/traversal.d.ts +0 -35
  617. package/dist/graph/traversal.d.ts.map +0 -1
  618. package/dist/index.d.ts +0 -134
  619. package/dist/index.d.ts.map +0 -1
  620. package/dist/installer/index.d.ts +0 -10
  621. package/dist/installer/index.d.ts.map +0 -1
  622. package/dist/installer/index.js +0 -526
  623. package/dist/installer/index.js.map +0 -1
  624. package/dist/mcp/cache.d.ts +0 -69
  625. package/dist/mcp/cache.d.ts.map +0 -1
  626. package/dist/mcp/read-modes.d.ts +0 -31
  627. package/dist/mcp/read-modes.d.ts.map +0 -1
  628. package/dist/mcp/server.d.ts +0 -17
  629. package/dist/mcp/server.d.ts.map +0 -1
  630. package/dist/mcp/tool-names.d.ts +0 -2
  631. package/dist/mcp/tool-names.d.ts.map +0 -1
  632. package/dist/mcp/tools.d.ts +0 -49
  633. package/dist/mcp/tools.d.ts.map +0 -1
  634. package/dist/mcp/transport.d.ts +0 -29
  635. package/dist/mcp/transport.d.ts.map +0 -1
  636. package/dist/memory/compress.d.ts +0 -19
  637. package/dist/memory/compress.d.ts.map +0 -1
  638. package/dist/memory/database.d.ts +0 -92
  639. package/dist/memory/database.d.ts.map +0 -1
  640. package/dist/memory/index.d.ts +0 -71
  641. package/dist/memory/index.d.ts.map +0 -1
  642. package/dist/memory/symbols.d.ts +0 -21
  643. package/dist/memory/symbols.d.ts.map +0 -1
  644. package/dist/memory/types.d.ts +0 -78
  645. package/dist/memory/types.d.ts.map +0 -1
  646. package/dist/memory/vectors.d.ts +0 -43
  647. package/dist/memory/vectors.d.ts.map +0 -1
  648. package/dist/patterns/graph.d.ts +0 -16
  649. package/dist/patterns/graph.d.ts.map +0 -1
  650. package/dist/patterns/index.d.ts +0 -4
  651. package/dist/patterns/index.d.ts.map +0 -1
  652. package/dist/patterns/indexer.d.ts +0 -15
  653. package/dist/patterns/indexer.d.ts.map +0 -1
  654. package/dist/patterns/loader.d.ts +0 -18
  655. package/dist/patterns/loader.d.ts.map +0 -1
  656. package/dist/patterns/runner.d.ts +0 -42
  657. package/dist/patterns/runner.d.ts.map +0 -1
  658. package/dist/patterns/types.d.ts +0 -27
  659. package/dist/patterns/types.d.ts.map +0 -1
  660. package/dist/resolution/bridges/android-rn.d.ts +0 -13
  661. package/dist/resolution/bridges/android-rn.d.ts.map +0 -1
  662. package/dist/resolution/bridges/expo-modules.d.ts +0 -10
  663. package/dist/resolution/bridges/expo-modules.d.ts.map +0 -1
  664. package/dist/resolution/bridges/flutter-channel.d.ts +0 -14
  665. package/dist/resolution/bridges/flutter-channel.d.ts.map +0 -1
  666. package/dist/resolution/bridges/index.d.ts +0 -40
  667. package/dist/resolution/bridges/index.d.ts.map +0 -1
  668. package/dist/resolution/bridges/native-events.d.ts +0 -10
  669. package/dist/resolution/bridges/native-events.d.ts.map +0 -1
  670. package/dist/resolution/bridges/native-views.d.ts +0 -13
  671. package/dist/resolution/bridges/native-views.d.ts.map +0 -1
  672. package/dist/resolution/bridges/react-native.d.ts +0 -9
  673. package/dist/resolution/bridges/react-native.d.ts.map +0 -1
  674. package/dist/resolution/bridges/swift-objc.d.ts +0 -14
  675. package/dist/resolution/bridges/swift-objc.d.ts.map +0 -1
  676. package/dist/resolution/bridges/turbomodules.d.ts +0 -10
  677. package/dist/resolution/bridges/turbomodules.d.ts.map +0 -1
  678. package/dist/resolution/index.d.ts +0 -81
  679. package/dist/resolution/index.d.ts.map +0 -1
  680. package/dist/resolution/name-matcher.d.ts +0 -25
  681. package/dist/resolution/name-matcher.d.ts.map +0 -1
  682. package/dist/scripts/postinstall.js +0 -64
  683. package/dist/search/query-utils.d.ts +0 -21
  684. package/dist/search/query-utils.d.ts.map +0 -1
  685. package/dist/search/searcher.d.ts +0 -15
  686. package/dist/search/searcher.d.ts.map +0 -1
  687. package/dist/security/attack-surface.d.ts +0 -46
  688. package/dist/security/attack-surface.d.ts.map +0 -1
  689. package/dist/security/context-warnings.d.ts +0 -40
  690. package/dist/security/context-warnings.d.ts.map +0 -1
  691. package/dist/security/data-flows.d.ts +0 -33
  692. package/dist/security/data-flows.d.ts.map +0 -1
  693. package/dist/security/dep-confusion.d.ts +0 -23
  694. package/dist/security/dep-confusion.d.ts.map +0 -1
  695. package/dist/security/errors.d.ts +0 -16
  696. package/dist/security/errors.d.ts.map +0 -1
  697. package/dist/security/export/fix-suggestions.d.ts +0 -21
  698. package/dist/security/export/fix-suggestions.d.ts.map +0 -1
  699. package/dist/security/export/sbom.d.ts +0 -33
  700. package/dist/security/export/sbom.d.ts.map +0 -1
  701. package/dist/security/export/serialization.d.ts +0 -62
  702. package/dist/security/export/serialization.d.ts.map +0 -1
  703. package/dist/security/export/vex.d.ts +0 -58
  704. package/dist/security/export/vex.d.ts.map +0 -1
  705. package/dist/security/index.d.ts +0 -21
  706. package/dist/security/index.d.ts.map +0 -1
  707. package/dist/security/integrator.d.ts +0 -63
  708. package/dist/security/integrator.d.ts.map +0 -1
  709. package/dist/security/license.d.ts +0 -33
  710. package/dist/security/license.d.ts.map +0 -1
  711. package/dist/security/manifest/adapter.d.ts +0 -92
  712. package/dist/security/manifest/adapter.d.ts.map +0 -1
  713. package/dist/security/manifest/parser.d.ts +0 -73
  714. package/dist/security/manifest/parser.d.ts.map +0 -1
  715. package/dist/security/manifest/plugins/cargo.d.ts +0 -11
  716. package/dist/security/manifest/plugins/cargo.d.ts.map +0 -1
  717. package/dist/security/manifest/plugins/composer.d.ts +0 -11
  718. package/dist/security/manifest/plugins/composer.d.ts.map +0 -1
  719. package/dist/security/manifest/plugins/go.d.ts +0 -12
  720. package/dist/security/manifest/plugins/go.d.ts.map +0 -1
  721. package/dist/security/manifest/plugins/gradle.d.ts +0 -12
  722. package/dist/security/manifest/plugins/gradle.d.ts.map +0 -1
  723. package/dist/security/manifest/plugins/hex.d.ts +0 -11
  724. package/dist/security/manifest/plugins/hex.d.ts.map +0 -1
  725. package/dist/security/manifest/plugins/maven.d.ts +0 -11
  726. package/dist/security/manifest/plugins/maven.d.ts.map +0 -1
  727. package/dist/security/manifest/plugins/npm.d.ts +0 -11
  728. package/dist/security/manifest/plugins/npm.d.ts.map +0 -1
  729. package/dist/security/manifest/plugins/nuget.d.ts +0 -12
  730. package/dist/security/manifest/plugins/nuget.d.ts.map +0 -1
  731. package/dist/security/manifest/plugins/pip.d.ts +0 -11
  732. package/dist/security/manifest/plugins/pip.d.ts.map +0 -1
  733. package/dist/security/manifest/plugins/pubspec.d.ts +0 -11
  734. package/dist/security/manifest/plugins/pubspec.d.ts.map +0 -1
  735. package/dist/security/manifest/plugins/pyproject.d.ts +0 -3
  736. package/dist/security/manifest/plugins/pyproject.d.ts.map +0 -1
  737. package/dist/security/manifest/plugins/rubygems.d.ts +0 -11
  738. package/dist/security/manifest/plugins/rubygems.d.ts.map +0 -1
  739. package/dist/security/manifest/plugins/swift.d.ts +0 -11
  740. package/dist/security/manifest/plugins/swift.d.ts.map +0 -1
  741. package/dist/security/owasp.d.ts +0 -16
  742. package/dist/security/owasp.d.ts.map +0 -1
  743. package/dist/security/pipeline.d.ts +0 -37
  744. package/dist/security/pipeline.d.ts.map +0 -1
  745. package/dist/security/reachability.d.ts +0 -67
  746. package/dist/security/reachability.d.ts.map +0 -1
  747. package/dist/security/remediation.d.ts +0 -51
  748. package/dist/security/remediation.d.ts.map +0 -1
  749. package/dist/security/secrets.d.ts +0 -38
  750. package/dist/security/secrets.d.ts.map +0 -1
  751. package/dist/security/staleness.d.ts +0 -43
  752. package/dist/security/staleness.d.ts.map +0 -1
  753. package/dist/security/supply-chain.d.ts +0 -34
  754. package/dist/security/supply-chain.d.ts.map +0 -1
  755. package/dist/security/suppressions.d.ts +0 -18
  756. package/dist/security/suppressions.d.ts.map +0 -1
  757. package/dist/security/types.d.ts +0 -144
  758. package/dist/security/types.d.ts.map +0 -1
  759. package/dist/security/vuln/client.d.ts +0 -90
  760. package/dist/security/vuln/client.d.ts.map +0 -1
  761. package/dist/security/vuln/epss-client.d.ts +0 -26
  762. package/dist/security/vuln/epss-client.d.ts.map +0 -1
  763. package/dist/security/vuln/index.d.ts +0 -6
  764. package/dist/security/vuln/index.d.ts.map +0 -1
  765. package/dist/security/vuln/osv-adapter.d.ts +0 -58
  766. package/dist/security/vuln/osv-adapter.d.ts.map +0 -1
  767. package/dist/security/vuln/types.d.ts +0 -29
  768. package/dist/security/vuln/types.d.ts.map +0 -1
  769. package/dist/sync/index.d.ts +0 -35
  770. package/dist/sync/index.d.ts.map +0 -1
  771. package/dist/types.d.ts +0 -137
  772. package/dist/types.d.ts.map +0 -1
  773. package/dist/utils.d.ts +0 -52
  774. package/dist/utils.d.ts.map +0 -1
  775. package/dist/vectors/index.d.ts +0 -79
  776. package/dist/vectors/index.d.ts.map +0 -1
  777. package/dist/vectors/lancedb-index.d.ts +0 -50
  778. package/dist/vectors/lancedb-index.d.ts.map +0 -1
  779. package/dist/vectors/orama-index.d.ts +0 -54
  780. package/dist/vectors/orama-index.d.ts.map +0 -1
  781. package/dist/vectors/pglite-index.d.ts +0 -53
  782. package/dist/vectors/pglite-index.d.ts.map +0 -1
  783. package/dist/vectors/qdrant-index.d.ts +0 -77
  784. package/dist/vectors/qdrant-index.d.ts.map +0 -1
  785. package/dist/vectors/typesense-index.d.ts +0 -75
  786. package/dist/vectors/typesense-index.d.ts.map +0 -1
  787. package/dist/vectors/vec-index.d.ts +0 -52
  788. package/dist/vectors/vec-index.d.ts.map +0 -1
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var unused_imports_exports = {};
30
+ __export(unused_imports_exports, {
31
+ register: () => register
32
+ });
33
+ module.exports = __toCommonJS(unused_imports_exports);
34
+ var path = __toESM(require("path"));
35
+ async function runTool(target, toolName, args) {
36
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
37
+ const { ToolHandler } = await Promise.resolve().then(() => require("../../mcp/handler.js"));
38
+ const cg = await KiroGraph.open(target);
39
+ const handler = new ToolHandler(cg);
40
+ const result = await handler.handle(toolName, { ...args, projectPath: target });
41
+ cg.close();
42
+ const text = result.content.map((c) => c.text).join("");
43
+ console.log(text);
44
+ }
45
+ function register(program) {
46
+ program.command("unused-imports [projectPath]").description("Find import nodes with zero resolved downstream edges").option("--limit <n>", "Max results (default: 50)", "50").action(async (projectPath, opts) => {
47
+ const target = path.resolve(projectPath ?? process.cwd());
48
+ await runTool(target, "kirograph_unused_imports", { limit: parseInt(opts.limit) });
49
+ });
50
+ }
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ register
54
+ });
55
+ //# sourceMappingURL=unused-imports.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/bin/commands/unused-imports.ts"],
4
+ "sourcesContent": ["import * as path from 'path';\nimport { Command } from 'commander';\n\nasync function runTool(target: string, toolName: string, args: Record<string, unknown>): Promise<void> {\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { ToolHandler } = (await Promise.resolve().then(() => require('../../mcp/handler.js'))) as any;\n const cg = await KiroGraph.open(target);\n const handler = new ToolHandler(cg);\n const result = await handler.handle(toolName, { ...args, projectPath: target });\n cg.close();\n const text: string = result.content.map((c: any) => c.text).join('');\n console.log(text);\n}\n\nexport function register(program: Command): void {\n program\n .command('unused-imports [projectPath]')\n .description('Find import nodes with zero resolved downstream edges')\n .option('--limit <n>', 'Max results (default: 50)', '50')\n .action(async (projectPath: string | undefined, opts: { limit: string }) => {\n const target = path.resolve(projectPath ?? process.cwd());\n await runTool(target, 'kirograph_unused_imports', { limit: parseInt(opts.limit) });\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAsB;AAGtB,eAAe,QAAQ,QAAgB,UAAkB,MAA8C;AACrG,QAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAClF,QAAM,EAAE,YAAY,IAAK,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,sBAAsB,CAAC;AAC3F,QAAM,KAAK,MAAM,UAAU,KAAK,MAAM;AACtC,QAAM,UAAU,IAAI,YAAY,EAAE;AAClC,QAAM,SAAS,MAAM,QAAQ,OAAO,UAAU,EAAE,GAAG,MAAM,aAAa,OAAO,CAAC;AAC9E,KAAG,MAAM;AACT,QAAM,OAAe,OAAO,QAAQ,IAAI,CAAC,MAAW,EAAE,IAAI,EAAE,KAAK,EAAE;AACnE,UAAQ,IAAI,IAAI;AAClB;AAEO,SAAS,SAAS,SAAwB;AAC/C,UACG,QAAQ,8BAA8B,EACtC,YAAY,uDAAuD,EACnE,OAAO,eAAe,6BAA6B,IAAI,EACvD,OAAO,OAAO,aAAiC,SAA4B;AAC1E,UAAM,SAAS,KAAK,QAAQ,eAAe,QAAQ,IAAI,CAAC;AACxD,UAAM,QAAQ,QAAQ,4BAA4B,EAAE,OAAO,SAAS,KAAK,KAAK,EAAE,CAAC;AAAA,EACnF,CAAC;AACL;",
6
+ "names": []
7
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var upgrade_exports = {};
20
+ __export(upgrade_exports, {
21
+ register: () => register
22
+ });
23
+ module.exports = __toCommonJS(upgrade_exports);
24
+ var import_child_process = require("child_process");
25
+ function detectInstaller() {
26
+ try {
27
+ const npmOut = (0, import_child_process.execSync)("npm list -g --depth=0 kirograph 2>/dev/null", { stdio: "pipe" }).toString();
28
+ if (npmOut.includes("kirograph")) return "npm";
29
+ } catch {
30
+ }
31
+ try {
32
+ const bunOut = (0, import_child_process.execSync)("bun pm ls -g 2>/dev/null | grep kirograph", { stdio: "pipe" }).toString();
33
+ if (bunOut.includes("kirograph")) return "bun";
34
+ } catch {
35
+ }
36
+ try {
37
+ const pnpmOut = (0, import_child_process.execSync)("pnpm list -g --depth=0 kirograph 2>/dev/null", { stdio: "pipe" }).toString();
38
+ if (pnpmOut.includes("kirograph")) return "pnpm";
39
+ } catch {
40
+ }
41
+ return "unknown";
42
+ }
43
+ function register(program) {
44
+ program.command("upgrade").description("Update KiroGraph to the latest version").option("--dry-run", "Show what would be run without executing").action((opts) => {
45
+ const installer = detectInstaller();
46
+ const commands = {
47
+ npm: "npm update -g kirograph",
48
+ bun: "bun update -g kirograph",
49
+ pnpm: "pnpm update -g kirograph",
50
+ yarn: "yarn global upgrade kirograph"
51
+ };
52
+ if (installer === "unknown") {
53
+ console.log(" Could not detect package manager. Try one of:");
54
+ for (const [mgr, cmd2] of Object.entries(commands)) {
55
+ console.log(" " + mgr + ": " + cmd2);
56
+ }
57
+ return;
58
+ }
59
+ const cmd = commands[installer];
60
+ console.log(" Detected installer: " + installer);
61
+ console.log(" Running: " + cmd);
62
+ if (opts.dryRun) {
63
+ console.log(" (dry run \u2014 not executing)");
64
+ return;
65
+ }
66
+ const result = (0, import_child_process.spawnSync)(cmd.split(" ")[0], cmd.split(" ").slice(1), { stdio: "inherit" });
67
+ if (result.status !== 0) {
68
+ console.error(" Upgrade failed (exit " + result.status + ")");
69
+ process.exit(result.status ?? 1);
70
+ }
71
+ console.log(" Done.");
72
+ });
73
+ }
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ register
77
+ });
78
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/bin/commands/upgrade.ts"],
4
+ "sourcesContent": ["import { execSync, spawnSync } from 'child_process';\nimport { Command } from 'commander';\n\nfunction detectInstaller(): 'npm' | 'bun' | 'pnpm' | 'yarn' | 'unknown' {\n try {\n const npmOut = execSync('npm list -g --depth=0 kirograph 2>/dev/null', { stdio: 'pipe' }).toString();\n if (npmOut.includes('kirograph')) return 'npm';\n } catch { /* */ }\n try {\n const bunOut = execSync('bun pm ls -g 2>/dev/null | grep kirograph', { stdio: 'pipe' }).toString();\n if (bunOut.includes('kirograph')) return 'bun';\n } catch { /* */ }\n try {\n const pnpmOut = execSync('pnpm list -g --depth=0 kirograph 2>/dev/null', { stdio: 'pipe' }).toString();\n if (pnpmOut.includes('kirograph')) return 'pnpm';\n } catch { /* */ }\n return 'unknown';\n}\n\nexport function register(program: Command): void {\n program.command('upgrade')\n .description('Update KiroGraph to the latest version')\n .option('--dry-run', 'Show what would be run without executing')\n .action((opts: { dryRun?: boolean }) => {\n const installer = detectInstaller();\n const commands: Record<string, string> = {\n npm: 'npm update -g kirograph',\n bun: 'bun update -g kirograph',\n pnpm: 'pnpm update -g kirograph',\n yarn: 'yarn global upgrade kirograph',\n };\n\n if (installer === 'unknown') {\n console.log(' Could not detect package manager. Try one of:');\n for (const [mgr, cmd] of Object.entries(commands)) {\n console.log(' ' + mgr + ': ' + cmd);\n }\n return;\n }\n\n const cmd = commands[installer];\n console.log(' Detected installer: ' + installer);\n console.log(' Running: ' + cmd);\n\n if (opts.dryRun) {\n console.log(' (dry run \u2014 not executing)');\n return;\n }\n\n const result = spawnSync(cmd.split(' ')[0], cmd.split(' ').slice(1), { stdio: 'inherit' });\n if (result.status !== 0) {\n console.error(' Upgrade failed (exit ' + result.status + ')');\n process.exit(result.status ?? 1);\n }\n console.log(' Done.');\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAoC;AAGpC,SAAS,kBAA+D;AACtE,MAAI;AACF,UAAM,aAAS,+BAAS,+CAA+C,EAAE,OAAO,OAAO,CAAC,EAAE,SAAS;AACnG,QAAI,OAAO,SAAS,WAAW,EAAG,QAAO;AAAA,EAC3C,QAAQ;AAAA,EAAQ;AAChB,MAAI;AACF,UAAM,aAAS,+BAAS,6CAA6C,EAAE,OAAO,OAAO,CAAC,EAAE,SAAS;AACjG,QAAI,OAAO,SAAS,WAAW,EAAG,QAAO;AAAA,EAC3C,QAAQ;AAAA,EAAQ;AAChB,MAAI;AACF,UAAM,cAAU,+BAAS,gDAAgD,EAAE,OAAO,OAAO,CAAC,EAAE,SAAS;AACrG,QAAI,QAAQ,SAAS,WAAW,EAAG,QAAO;AAAA,EAC5C,QAAQ;AAAA,EAAQ;AAChB,SAAO;AACT;AAEO,SAAS,SAAS,SAAwB;AAC/C,UAAQ,QAAQ,SAAS,EACtB,YAAY,wCAAwC,EACpD,OAAO,aAAa,0CAA0C,EAC9D,OAAO,CAAC,SAA+B;AACtC,UAAM,YAAY,gBAAgB;AAClC,UAAM,WAAmC;AAAA,MACvC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAEA,QAAI,cAAc,WAAW;AAC3B,cAAQ,IAAI,iDAAiD;AAC7D,iBAAW,CAAC,KAAKA,IAAG,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACjD,gBAAQ,IAAI,SAAS,MAAM,OAAOA,IAAG;AAAA,MACvC;AACA;AAAA,IACF;AAEA,UAAM,MAAM,SAAS,SAAS;AAC9B,YAAQ,IAAI,2BAA2B,SAAS;AAChD,YAAQ,IAAI,gBAAgB,GAAG;AAE/B,QAAI,KAAK,QAAQ;AACf,cAAQ,IAAI,kCAA6B;AACzC;AAAA,IACF;AAEA,UAAM,aAAS,gCAAU,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,MAAM,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,UAAU,CAAC;AACzF,QAAI,OAAO,WAAW,GAAG;AACvB,cAAQ,MAAM,4BAA4B,OAAO,SAAS,GAAG;AAC7D,cAAQ,KAAK,OAAO,UAAU,CAAC;AAAA,IACjC;AACA,YAAQ,IAAI,SAAS;AAAA,EACvB,CAAC;AACL;",
6
+ "names": ["cmd"]
7
+ }
@@ -160,7 +160,11 @@ function buildInstructionOpts(opts, hasHooks) {
160
160
  enablePatterns: opts.enablePatterns ?? false,
161
161
  enableWiki: opts.enableWiki ?? false,
162
162
  enableCodeHealth: opts.enableCodeHealth ?? false,
163
- enableAdvancedAnalysis: opts.enableAdvancedAnalysis ?? false,
163
+ enableNavigation: opts.enableNavigation ?? false,
164
+ enableComplexity: opts.enableComplexity ?? false,
165
+ enableGitContext: opts.enableGitContext ?? false,
166
+ enableEditPrimitives: opts.enableEditPrimitives ?? false,
167
+ enableBranch: opts.enableBranch ?? false,
164
168
  enableAgentUtils: opts.enableAgentUtils ?? false,
165
169
  enableGeneralCompression: opts.enableGeneralCompression ?? false,
166
170
  trackCallSites: opts.trackCallSites ?? false,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bin/installer/common.ts"],
4
- "sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { KIROGRAPH_TOOL_NAMES } from '../../mcp/tool-names';\nimport type { InstructionOptions } from './instructions';\nimport type { CavemanMode } from './caveman';\n\n/** Single options object passed to every target's installLate(). */\nexport interface LateInstallOptions {\n cavemanMode?: CavemanMode | 'off';\n shellCompressionLevel?: string;\n enableMemory?: boolean;\n enableDocs?: boolean;\n enableData?: boolean;\n enableSecurity?: boolean;\n enableArchitecture?: boolean;\n enablePatterns?: boolean;\n enableWatchmen?: boolean;\n watchmenSynthesisMode?: 'local' | 'agent';\n enableWiki?: boolean;\n wikiSynthesisMode?: 'local' | 'agent';\n wikiLocalModel?: string;\n enableCodeHealth?: boolean;\n enableAdvancedAnalysis?: boolean;\n enableAgentUtils?: boolean;\n enableGeneralCompression?: boolean;\n trackCallSites?: boolean;\n kiroHookFormat?: 'v1-legacy' | 'v2';\n}\n\nexport type InstallTarget = 'kiro' | 'claude' | 'codex' | 'cursor' | 'antigravity' | 'opencode' | 'windsurf' | 'cline' | 'copilot' | 'copilot-cli' | 'junie' | 'gemini-cli' | 'continue' | 'roo' | 'warp' | 'aider' | 'trae' | 'augment' | 'kilo' | 'amp' | 'devin' | 'replit' | 'goose' | 'openhands' | 'tabnine' | 'mistral-vibe' | 'ibm-bob' | 'crush' | 'droid-factory' | 'forgecode' | 'iflow' | 'qwen' | 'rovo' | 'qoder';\n\nexport const KIROGRAPH_SERVER_NAME = 'kirograph';\nexport const KIROGRAPH_COMMAND = 'kirograph';\nexport const KIROGRAPH_MCP_ARGS = ['serve', '--mcp'];\nexport const KIROGRAPH_SYNC_CMD = 'kirograph sync-if-dirty --quiet 2>/dev/null || true';\nexport const KIROGRAPH_TOOLS = KIROGRAPH_TOOL_NAMES;\nexport const KIROGRAPH_SCOPED_TOOLS = KIROGRAPH_TOOL_NAMES.map(name => `@kirograph/${name}`);\n\nexport function ensureDir(p: string): void {\n fs.mkdirSync(p, { recursive: true });\n}\n\nexport function readJson(p: string): any {\n try { return JSON.parse(fs.readFileSync(p, 'utf8')); } catch { return {}; }\n}\n\nexport function writeJson(p: string, data: unknown): void {\n fs.writeFileSync(p, JSON.stringify(data, null, 2) + '\\n');\n}\n\n/**\n * Write MCP server config to a JSON file under the mcpServers key.\n * Returns true if the config was written, false if already configured (idempotent).\n */\nexport function writeMcpServersConfig(configPath: string, serverConfig: object): boolean {\n ensureDir(path.dirname(configPath));\n const existing = readJson(configPath);\n existing.mcpServers = existing.mcpServers ?? {};\n if (existing.mcpServers[KIROGRAPH_SERVER_NAME]) {\n return false; // Already configured\n }\n existing.mcpServers[KIROGRAPH_SERVER_NAME] = serverConfig;\n writeJson(configPath, existing);\n return true;\n}\n\n/**\n * Always write (overwrite) the MCP server config entry, regardless of whether it already exists.\n * Used when the final state is known upfront and idempotency would cause stale data.\n */\nexport function overwriteMcpServersConfig(configPath: string, serverConfig: object): void {\n ensureDir(path.dirname(configPath));\n const existing = readJson(configPath);\n existing.mcpServers = existing.mcpServers ?? {};\n existing.mcpServers[KIROGRAPH_SERVER_NAME] = serverConfig;\n writeJson(configPath, existing);\n}\n\nexport function removeMcpServersConfig(configPath: string): boolean {\n if (!fs.existsSync(configPath)) return false;\n const existing = readJson(configPath);\n if (!existing.mcpServers?.[KIROGRAPH_SERVER_NAME]) return false;\n delete existing.mcpServers[KIROGRAPH_SERVER_NAME];\n writeJson(configPath, existing);\n return true;\n}\n\nexport function appendImportLine(filePath: string, line: string, heading: string): boolean {\n const existing = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf8') : '';\n if (existing.includes(line)) return false;\n\n const prefix = existing.length > 0 && !existing.endsWith('\\n') ? '\\n' : '';\n const separator = existing.trim().length > 0 ? '\\n' : '';\n fs.writeFileSync(filePath, existing + prefix + separator + heading + '\\n' + line + '\\n');\n return true;\n}\n\nexport function removeImportLine(filePath: string, line: string): boolean {\n if (!fs.existsSync(filePath)) return false;\n const original = fs.readFileSync(filePath, 'utf8');\n const next = original\n .split('\\n')\n .filter(l => l.trim() !== line)\n .join('\\n')\n .replace(/\\n{3,}/g, '\\n\\n');\n if (next === original) return false;\n fs.writeFileSync(filePath, next.endsWith('\\n') ? next : next + '\\n');\n return true;\n}\n\nexport function upsertGeneratedBlock(filePath: string, blockId: string, heading: string, content: string): boolean {\n const start = `<!-- kirograph:${blockId}:start -->`;\n const end = `<!-- kirograph:${blockId}:end -->`;\n const block = `${start}\\n${heading}\\n\\n${content.trim()}\\n${end}`;\n const existing = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf8') : '';\n const pattern = new RegExp(`${escapeRegExp(start)}[\\\\s\\\\S]*?${escapeRegExp(end)}`);\n\n if (pattern.test(existing)) {\n const next = existing.replace(pattern, block);\n if (next === existing) return false;\n fs.writeFileSync(filePath, next.endsWith('\\n') ? next : next + '\\n');\n return true;\n }\n\n const prefix = existing.length > 0 && !existing.endsWith('\\n') ? '\\n' : '';\n const separator = existing.trim().length > 0 ? '\\n' : '';\n fs.writeFileSync(filePath, existing + prefix + separator + block + '\\n');\n return true;\n}\n\nexport function removeGeneratedBlock(filePath: string, blockId: string): boolean {\n if (!fs.existsSync(filePath)) return false;\n const start = `<!-- kirograph:${blockId}:start -->`;\n const end = `<!-- kirograph:${blockId}:end -->`;\n const original = fs.readFileSync(filePath, 'utf8');\n const pattern = new RegExp(`\\\\n?${escapeRegExp(start)}[\\\\s\\\\S]*?${escapeRegExp(end)}\\\\n?`);\n const next = original.replace(pattern, '\\n').replace(/\\n{3,}/g, '\\n\\n');\n if (next === original) return false;\n fs.writeFileSync(filePath, next.endsWith('\\n') ? next : next + '\\n');\n return true;\n}\n\nfunction escapeRegExp(s: string): string {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * Build InstructionOptions from the installLate parameters.\n * Used by all targets to pass full feature config to buildAgentInstructions.\n */\nexport function buildInstructionOpts(opts: LateInstallOptions, hasHooks?: boolean): InstructionOptions {\n return {\n cavemanMode: opts.cavemanMode,\n shellCompressionLevel: (opts.shellCompressionLevel as InstructionOptions['shellCompressionLevel']) ?? undefined,\n enableArchitecture: opts.enableArchitecture ?? false,\n enableMemory: opts.enableMemory ?? false,\n enableDocs: opts.enableDocs ?? false,\n enableData: opts.enableData ?? false,\n enableSecurity: opts.enableSecurity ?? false,\n enablePatterns: opts.enablePatterns ?? false,\n enableWiki: opts.enableWiki ?? false,\n enableCodeHealth: opts.enableCodeHealth ?? false,\n enableAdvancedAnalysis: opts.enableAdvancedAnalysis ?? false,\n enableAgentUtils: opts.enableAgentUtils ?? false,\n enableGeneralCompression: opts.enableGeneralCompression ?? false,\n trackCallSites: opts.trackCallSites ?? false,\n hasHooks: hasHooks ?? false,\n };\n}\n\nconst violet = '\\x1b[38;5;99m';\nconst resetAnsi = '\\x1b[0m';\nconst dimAnsi = '\\x1b[2m';\nconst boldAnsi = '\\x1b[1m';\n\n/**\n * Print a highlighted MCP config JSON block for targets that need user-scoped setup.\n */\nexport function printMcpSetup(configPath: string, projectRoot: string): void {\n const escapedPath = projectRoot.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n console.log(`\\n ${dimAnsi}Add the MCP server manually:${resetAnsi}`);\n console.log(` ${dimAnsi}Edit${resetAnsi} ${violet}${boldAnsi}${configPath}${resetAnsi} ${dimAnsi}and add:${resetAnsi}`);\n console.log(` ${violet}{${resetAnsi}`);\n console.log(` ${violet} \"mcpServers\": {${resetAnsi}`);\n console.log(` ${violet} \"kirograph\": {${resetAnsi}`);\n console.log(` ${violet} \"command\": \"kirograph\",${resetAnsi}`);\n console.log(` ${violet} \"args\": [\"serve\", \"--mcp\", \"--path\", \"${escapedPath}\"]${resetAnsi}`);\n console.log(` ${violet} }${resetAnsi}`);\n console.log(` ${violet} }${resetAnsi}`);\n console.log(` ${violet}}${resetAnsi}\\n`);\n}\n\n/**\n * Print a highlighted CLI command for MCP registration.\n */\nexport function printMcpCommand(command: string): void {\n console.log(`\\n ${dimAnsi}Add the MCP server with:${resetAnsi}`);\n console.log(` ${violet}${boldAnsi}${command}${resetAnsi}\\n`);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { KIROGRAPH_TOOL_NAMES } from '../../mcp/tool-names';\nimport type { InstructionOptions } from './instructions';\nimport type { CavemanMode } from './caveman';\n\n/** Single options object passed to every target's installLate(). */\nexport interface LateInstallOptions {\n cavemanMode?: CavemanMode | 'off';\n shellCompressionLevel?: string;\n enableMemory?: boolean;\n enableDocs?: boolean;\n enableData?: boolean;\n enableSecurity?: boolean;\n enableArchitecture?: boolean;\n enablePatterns?: boolean;\n enableWatchmen?: boolean;\n watchmenSynthesisMode?: 'local' | 'agent';\n enableWiki?: boolean;\n wikiSynthesisMode?: 'local' | 'agent';\n wikiLocalModel?: string;\n enableCodeHealth?: boolean;\n enableNavigation?: boolean;\n enableComplexity?: boolean;\n enableGitContext?: boolean;\n enableEditPrimitives?: boolean;\n enableBranch?: boolean;\n enableAgentUtils?: boolean;\n enableGeneralCompression?: boolean;\n trackCallSites?: boolean;\n kiroHookFormat?: 'v1-legacy' | 'v2';\n}\n\nexport type InstallTarget = 'kiro' | 'claude' | 'codex' | 'cursor' | 'antigravity' | 'opencode' | 'windsurf' | 'cline' | 'copilot' | 'copilot-cli' | 'junie' | 'gemini-cli' | 'continue' | 'roo' | 'warp' | 'aider' | 'trae' | 'augment' | 'kilo' | 'amp' | 'devin' | 'replit' | 'goose' | 'openhands' | 'tabnine' | 'mistral-vibe' | 'ibm-bob' | 'crush' | 'droid-factory' | 'forgecode' | 'iflow' | 'qwen' | 'rovo' | 'qoder';\n\nexport const KIROGRAPH_SERVER_NAME = 'kirograph';\nexport const KIROGRAPH_COMMAND = 'kirograph';\nexport const KIROGRAPH_MCP_ARGS = ['serve', '--mcp'];\nexport const KIROGRAPH_SYNC_CMD = 'kirograph sync-if-dirty --quiet 2>/dev/null || true';\nexport const KIROGRAPH_TOOLS = KIROGRAPH_TOOL_NAMES;\nexport const KIROGRAPH_SCOPED_TOOLS = KIROGRAPH_TOOL_NAMES.map(name => `@kirograph/${name}`);\n\nexport function ensureDir(p: string): void {\n fs.mkdirSync(p, { recursive: true });\n}\n\nexport function readJson(p: string): any {\n try { return JSON.parse(fs.readFileSync(p, 'utf8')); } catch { return {}; }\n}\n\nexport function writeJson(p: string, data: unknown): void {\n fs.writeFileSync(p, JSON.stringify(data, null, 2) + '\\n');\n}\n\n/**\n * Write MCP server config to a JSON file under the mcpServers key.\n * Returns true if the config was written, false if already configured (idempotent).\n */\nexport function writeMcpServersConfig(configPath: string, serverConfig: object): boolean {\n ensureDir(path.dirname(configPath));\n const existing = readJson(configPath);\n existing.mcpServers = existing.mcpServers ?? {};\n if (existing.mcpServers[KIROGRAPH_SERVER_NAME]) {\n return false; // Already configured\n }\n existing.mcpServers[KIROGRAPH_SERVER_NAME] = serverConfig;\n writeJson(configPath, existing);\n return true;\n}\n\n/**\n * Always write (overwrite) the MCP server config entry, regardless of whether it already exists.\n * Used when the final state is known upfront and idempotency would cause stale data.\n */\nexport function overwriteMcpServersConfig(configPath: string, serverConfig: object): void {\n ensureDir(path.dirname(configPath));\n const existing = readJson(configPath);\n existing.mcpServers = existing.mcpServers ?? {};\n existing.mcpServers[KIROGRAPH_SERVER_NAME] = serverConfig;\n writeJson(configPath, existing);\n}\n\nexport function removeMcpServersConfig(configPath: string): boolean {\n if (!fs.existsSync(configPath)) return false;\n const existing = readJson(configPath);\n if (!existing.mcpServers?.[KIROGRAPH_SERVER_NAME]) return false;\n delete existing.mcpServers[KIROGRAPH_SERVER_NAME];\n writeJson(configPath, existing);\n return true;\n}\n\nexport function appendImportLine(filePath: string, line: string, heading: string): boolean {\n const existing = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf8') : '';\n if (existing.includes(line)) return false;\n\n const prefix = existing.length > 0 && !existing.endsWith('\\n') ? '\\n' : '';\n const separator = existing.trim().length > 0 ? '\\n' : '';\n fs.writeFileSync(filePath, existing + prefix + separator + heading + '\\n' + line + '\\n');\n return true;\n}\n\nexport function removeImportLine(filePath: string, line: string): boolean {\n if (!fs.existsSync(filePath)) return false;\n const original = fs.readFileSync(filePath, 'utf8');\n const next = original\n .split('\\n')\n .filter(l => l.trim() !== line)\n .join('\\n')\n .replace(/\\n{3,}/g, '\\n\\n');\n if (next === original) return false;\n fs.writeFileSync(filePath, next.endsWith('\\n') ? next : next + '\\n');\n return true;\n}\n\nexport function upsertGeneratedBlock(filePath: string, blockId: string, heading: string, content: string): boolean {\n const start = `<!-- kirograph:${blockId}:start -->`;\n const end = `<!-- kirograph:${blockId}:end -->`;\n const block = `${start}\\n${heading}\\n\\n${content.trim()}\\n${end}`;\n const existing = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf8') : '';\n const pattern = new RegExp(`${escapeRegExp(start)}[\\\\s\\\\S]*?${escapeRegExp(end)}`);\n\n if (pattern.test(existing)) {\n const next = existing.replace(pattern, block);\n if (next === existing) return false;\n fs.writeFileSync(filePath, next.endsWith('\\n') ? next : next + '\\n');\n return true;\n }\n\n const prefix = existing.length > 0 && !existing.endsWith('\\n') ? '\\n' : '';\n const separator = existing.trim().length > 0 ? '\\n' : '';\n fs.writeFileSync(filePath, existing + prefix + separator + block + '\\n');\n return true;\n}\n\nexport function removeGeneratedBlock(filePath: string, blockId: string): boolean {\n if (!fs.existsSync(filePath)) return false;\n const start = `<!-- kirograph:${blockId}:start -->`;\n const end = `<!-- kirograph:${blockId}:end -->`;\n const original = fs.readFileSync(filePath, 'utf8');\n const pattern = new RegExp(`\\\\n?${escapeRegExp(start)}[\\\\s\\\\S]*?${escapeRegExp(end)}\\\\n?`);\n const next = original.replace(pattern, '\\n').replace(/\\n{3,}/g, '\\n\\n');\n if (next === original) return false;\n fs.writeFileSync(filePath, next.endsWith('\\n') ? next : next + '\\n');\n return true;\n}\n\nfunction escapeRegExp(s: string): string {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * Build InstructionOptions from the installLate parameters.\n * Used by all targets to pass full feature config to buildAgentInstructions.\n */\nexport function buildInstructionOpts(opts: LateInstallOptions, hasHooks?: boolean): InstructionOptions {\n return {\n cavemanMode: opts.cavemanMode,\n shellCompressionLevel: (opts.shellCompressionLevel as InstructionOptions['shellCompressionLevel']) ?? undefined,\n enableArchitecture: opts.enableArchitecture ?? false,\n enableMemory: opts.enableMemory ?? false,\n enableDocs: opts.enableDocs ?? false,\n enableData: opts.enableData ?? false,\n enableSecurity: opts.enableSecurity ?? false,\n enablePatterns: opts.enablePatterns ?? false,\n enableWiki: opts.enableWiki ?? false,\n enableCodeHealth: opts.enableCodeHealth ?? false,\n enableNavigation: opts.enableNavigation ?? false,\n enableComplexity: opts.enableComplexity ?? false,\n enableGitContext: opts.enableGitContext ?? false,\n enableEditPrimitives: opts.enableEditPrimitives ?? false,\n enableBranch: opts.enableBranch ?? false,\n enableAgentUtils: opts.enableAgentUtils ?? false,\n enableGeneralCompression: opts.enableGeneralCompression ?? false,\n trackCallSites: opts.trackCallSites ?? false,\n hasHooks: hasHooks ?? false,\n };\n}\n\nconst violet = '\\x1b[38;5;99m';\nconst resetAnsi = '\\x1b[0m';\nconst dimAnsi = '\\x1b[2m';\nconst boldAnsi = '\\x1b[1m';\n\n/**\n * Print a highlighted MCP config JSON block for targets that need user-scoped setup.\n */\nexport function printMcpSetup(configPath: string, projectRoot: string): void {\n const escapedPath = projectRoot.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n console.log(`\\n ${dimAnsi}Add the MCP server manually:${resetAnsi}`);\n console.log(` ${dimAnsi}Edit${resetAnsi} ${violet}${boldAnsi}${configPath}${resetAnsi} ${dimAnsi}and add:${resetAnsi}`);\n console.log(` ${violet}{${resetAnsi}`);\n console.log(` ${violet} \"mcpServers\": {${resetAnsi}`);\n console.log(` ${violet} \"kirograph\": {${resetAnsi}`);\n console.log(` ${violet} \"command\": \"kirograph\",${resetAnsi}`);\n console.log(` ${violet} \"args\": [\"serve\", \"--mcp\", \"--path\", \"${escapedPath}\"]${resetAnsi}`);\n console.log(` ${violet} }${resetAnsi}`);\n console.log(` ${violet} }${resetAnsi}`);\n console.log(` ${violet}}${resetAnsi}\\n`);\n}\n\n/**\n * Print a highlighted CLI command for MCP registration.\n */\nexport function printMcpCommand(command: string): void {\n console.log(`\\n ${dimAnsi}Add the MCP server with:${resetAnsi}`);\n console.log(` ${violet}${boldAnsi}${command}${resetAnsi}\\n`);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -24,6 +24,33 @@ __export(config_prompt_exports, {
24
24
  module.exports = __toCommonJS(config_prompt_exports);
25
25
  var import_prompts = require("./prompts");
26
26
  var import_import_prompt = require("../../hooks/import-prompt");
27
+ const PROFILES = {
28
+ developer: {
29
+ label: "Developer",
30
+ description: "Code health, navigation, complexity, call-site tracking",
31
+ patch: { enableCodeHealth: true, enableNavigation: true, enableComplexity: true, trackCallSites: true }
32
+ },
33
+ team: {
34
+ label: "Team",
35
+ description: "Developer + architecture, git context, wiki",
36
+ patch: { enableCodeHealth: true, enableNavigation: true, enableComplexity: true, trackCallSites: true, enableArchitecture: true, enableGitContext: true, enableWiki: true, wikiSynthesisMode: "agent" }
37
+ },
38
+ security: {
39
+ label: "Security",
40
+ description: "Security analysis, patterns, architecture, code health",
41
+ patch: { enableSecurity: true, enableArchitecture: true, enablePatterns: true, enableCodeHealth: true }
42
+ },
43
+ data: {
44
+ label: "Data & Docs",
45
+ description: "Tabular data indexing and documentation navigation",
46
+ patch: { enableData: true, enableDocs: true }
47
+ },
48
+ ai: {
49
+ label: "AI / LLM Agent",
50
+ description: "Memory, watchmen, agent utils, wiki, general compression",
51
+ patch: { enableMemory: true, enableWatchmen: true, enableAgentUtils: true, enableWiki: true, wikiSynthesisMode: "agent", enableGeneralCompression: true }
52
+ }
53
+ };
27
54
  const DEFAULT_EMBEDDING_MODEL = "nomic-ai/nomic-embed-text-v1.5";
28
55
  const PRESET_MODELS = [
29
56
  {
@@ -57,102 +84,205 @@ const PRESET_MODELS = [
57
84
  description: "Enter a custom HuggingFace model ID and embedding dimension"
58
85
  }
59
86
  ];
60
- async function promptConfigOptions(rl, opts = {}) {
87
+ async function promptEmbeddings(rl) {
61
88
  (0, import_prompts.printSection)("\u{1F50D}", "Semantic Search");
62
89
  const enableEmbeddings = await (0, import_prompts.askToggle)(
63
90
  rl,
64
91
  "Semantic embeddings (similarity search):",
65
92
  "Enables natural-language code search via vector embeddings. A local model (~130MB) is downloaded on first use."
66
93
  );
67
- const patch = { enableEmbeddings, useVecIndex: false, semanticEngine: "cosine", turboquantMemDocs: false, turboquantBits: 3, turbovecMemDocs: false, turbovecBits: 4, typesenseDashboard: false, qdrantDashboard: false, extractDocstrings: false, trackCallSites: false, enableArchitecture: false, cavemanMode: "off", shellCompressionLevel: "normal", enableMemory: false, enableWatchmen: false, watchmenThreshold: 5, watchmenSynthesisMode: "local", watchmenLocalModel: "onnx-community/gemma-4-E4B-it-ONNX", enableDocs: false, docsContextLimit: 0, enableData: false, dataContextLimit: 0, enableSecurity: false, enablePatterns: false, enableWiki: false, wikiSynthesisMode: "agent", wikiLocalModel: "onnx-community/gemma-4-E4B-it-ONNX", enableCodeHealth: false, enableAdvancedAnalysis: false, enableAgentUtils: false, enableGeneralCompression: false };
68
- if (enableEmbeddings) {
69
- const modelChoice = await (0, import_prompts.arrowSelect)(
70
- rl,
71
- "Embedding model:",
72
- PRESET_MODELS.map((m) => ({ value: m.value, label: m.label, description: m.description }))
73
- );
74
- let embeddingModel;
75
- let embeddingDim;
76
- if (modelChoice === "__other__") {
77
- console.log(`
94
+ const patch = {
95
+ enableEmbeddings,
96
+ semanticEngine: "cosine",
97
+ useVecIndex: false,
98
+ turboquantMemDocs: false,
99
+ turboquantBits: 3,
100
+ turbovecMemDocs: false,
101
+ turbovecBits: 4,
102
+ typesenseDashboard: false,
103
+ qdrantDashboard: false
104
+ };
105
+ if (!enableEmbeddings) {
106
+ return patch;
107
+ }
108
+ const modelChoice = await (0, import_prompts.arrowSelect)(
109
+ rl,
110
+ "Embedding model:",
111
+ PRESET_MODELS.map((m) => ({ value: m.value, label: m.label, description: m.description }))
112
+ );
113
+ let embeddingModel;
114
+ let embeddingDim;
115
+ if (modelChoice === "__other__") {
116
+ console.log(`
78
117
  ${import_prompts.dim}Enter a HuggingFace model ID in the format org/model-name.${import_prompts.reset}`);
79
- while (true) {
80
- const raw = (await (0, import_prompts.ask)(rl, ` ${import_prompts.violet}Model identifier:${import_prompts.reset} `)).trim();
81
- if (raw.includes("/")) {
82
- embeddingModel = raw;
83
- break;
84
- }
85
- console.log(` Expected a HuggingFace model ID in the format org/model-name (e.g. nomic-ai/nomic-embed-text-v1.5).`);
118
+ while (true) {
119
+ const raw = (await (0, import_prompts.ask)(rl, ` ${import_prompts.violet}Model identifier:${import_prompts.reset} `)).trim();
120
+ if (raw.includes("/")) {
121
+ embeddingModel = raw;
122
+ break;
86
123
  }
87
- console.log(`
124
+ console.log(` Expected a HuggingFace model ID in the format org/model-name (e.g. nomic-ai/nomic-embed-text-v1.5).`);
125
+ }
126
+ console.log(`
88
127
  ${import_prompts.dim}Enter the embedding output dimension for this model (check the model card on HuggingFace).${import_prompts.reset}`);
89
- while (true) {
90
- const raw = (await (0, import_prompts.ask)(rl, ` ${import_prompts.violet}Embedding dimension (e.g. 768, 384):${import_prompts.reset} `)).trim();
91
- const n = parseInt(raw, 10);
92
- if (!isNaN(n) && n > 0) {
93
- embeddingDim = n;
94
- break;
95
- }
96
- console.log(` Expected a positive integer (e.g. 768, 384, 1536).`);
128
+ while (true) {
129
+ const raw = (await (0, import_prompts.ask)(rl, ` ${import_prompts.violet}Embedding dimension (e.g. 768, 384):${import_prompts.reset} `)).trim();
130
+ const n = parseInt(raw, 10);
131
+ if (!isNaN(n) && n > 0) {
132
+ embeddingDim = n;
133
+ break;
97
134
  }
98
- } else {
99
- const preset = PRESET_MODELS.find((m) => m.value === modelChoice);
100
- embeddingModel = preset.value;
101
- embeddingDim = preset.dim;
135
+ console.log(` Expected a positive integer (e.g. 768, 384, 1536).`);
102
136
  }
103
- patch.embeddingModel = embeddingModel;
104
- patch.embeddingDim = embeddingDim;
105
- const semanticEngine = await (0, import_prompts.arrowSelect)(rl, "Vector search engine:", [
106
- { value: "cosine", label: "cosine", description: "In-process cosine similarity. No extra deps. Best for small/medium projects." },
107
- { value: "turboquant", label: "turboquant", description: "ANN index, zero native deps. Compresses embeddings 20\u201330\xD7 (Google TurboQuant). ANN without native binaries \u2014 ideal for CI, ARM, restricted envs. Optional: npm install turboquant-js." },
108
- { value: "turbovec", label: "turbovec", description: "ANN search via Rust/SIMD (napi-rs). Same TurboQuant algorithm but NEON on ARM and AVX-512BW on x86 \u2014 faster than turboquant-js at the cost of a one-time Rust build. Requires Rust toolchain. Build: cd native/turbovec-node && npm install && npm run build." },
109
- { value: "sqlite-vec", label: "sqlite-vec", description: "ANN index. Sub-linear search. Best for large codebases. Needs: better-sqlite3, sqlite-vec (native)." },
110
- { value: "orama", label: "orama", description: "Hybrid search (full-text + vector). Pure JS. Needs: @orama/orama, @orama/plugin-data-persistence." },
111
- { value: "pglite", label: "pglite", description: "Hybrid search via PostgreSQL + pgvector. Exact results. Pure WASM. Needs: @electric-sql/pglite." },
112
- { value: "lancedb", label: "lancedb", description: "ANN search via LanceDB (Apache Lance columnar format). Pure JS. Needs: @lancedb/lancedb." },
113
- { value: "qdrant", label: "qdrant", description: "ANN search via Qdrant embedded binary (HNSW index, Cosine). Needs: qdrant-local." },
114
- { value: "typesense", label: "typesense", description: "ANN search via Typesense (auto-downloaded binary, HNSW, Cosine). Needs: typesense." }
137
+ } else {
138
+ const preset = PRESET_MODELS.find((m) => m.value === modelChoice);
139
+ embeddingModel = preset.value;
140
+ embeddingDim = preset.dim;
141
+ }
142
+ patch.embeddingModel = embeddingModel;
143
+ patch.embeddingDim = embeddingDim;
144
+ const semanticEngine = await (0, import_prompts.arrowSelect)(rl, "Vector search engine:", [
145
+ { value: "cosine", label: "cosine", description: "In-process cosine similarity. No extra deps. Best for small/medium projects." },
146
+ { value: "turboquant", label: "turboquant", description: "ANN index, zero native deps. Compresses embeddings 20\u201330\xD7 (Google TurboQuant). ANN without native binaries \u2014 ideal for CI, ARM, restricted envs. Optional: npm install turboquant-js." },
147
+ { value: "turbovec", label: "turbovec", description: "ANN search via Rust/SIMD (napi-rs). Same TurboQuant algorithm but NEON on ARM and AVX-512BW on x86 \u2014 faster than turboquant-js at the cost of a one-time Rust build. Requires Rust toolchain. Build: cd native/turbovec-node && npm install && npm run build." },
148
+ { value: "sqlite-vec", label: "sqlite-vec", description: "ANN index. Sub-linear search. Best for large codebases. Needs: better-sqlite3, sqlite-vec (native)." },
149
+ { value: "orama", label: "orama", description: "Hybrid search (full-text + vector). Pure JS. Needs: @orama/orama, @orama/plugin-data-persistence." },
150
+ { value: "pglite", label: "pglite", description: "Hybrid search via PostgreSQL + pgvector. Exact results. Pure WASM. Needs: @electric-sql/pglite." },
151
+ { value: "lancedb", label: "lancedb", description: "ANN search via LanceDB (Apache Lance columnar format). Pure JS. Needs: @lancedb/lancedb." },
152
+ { value: "qdrant", label: "qdrant", description: "ANN search via Qdrant embedded binary (HNSW index, Cosine). Needs: qdrant-local." },
153
+ { value: "typesense", label: "typesense", description: "ANN search via Typesense (auto-downloaded binary, HNSW, Cosine). Needs: typesense." }
154
+ ]);
155
+ patch.semanticEngine = semanticEngine;
156
+ patch.useVecIndex = semanticEngine === "sqlite-vec";
157
+ if (semanticEngine === "turboquant") {
158
+ patch.turboquantMemDocs = await (0, import_prompts.askToggle)(
159
+ rl,
160
+ "TurboQuant for memory & docs search (optional):",
161
+ "Replaces the default linear cosine scan in memory observations and doc sections with a compressed ANN index \u2014 no native deps required. Most useful when you accumulate many observations or large doc sets (1 000+ entries).",
162
+ false
163
+ );
164
+ }
165
+ if (semanticEngine === "turbovec") {
166
+ patch.turbovecBits = await (0, import_prompts.arrowSelect)(rl, "TurboVec bits per coordinate:", [
167
+ { value: 4, label: "4 bits (recommended)", description: "Best quality, ~19\xD7 compression vs raw Float32. Default." },
168
+ { value: 3, label: "3 bits", description: "Balanced \u2014 ~25\xD7 compression, slight quality drop." },
169
+ { value: 2, label: "2 bits", description: "Highest compression (~38\xD7), lowest accuracy." }
115
170
  ]);
116
- patch.semanticEngine = semanticEngine;
117
- patch.useVecIndex = semanticEngine === "sqlite-vec";
118
- if (semanticEngine === "turboquant") {
119
- patch.turboquantMemDocs = await (0, import_prompts.askToggle)(
120
- rl,
121
- "TurboQuant for memory & docs search (optional):",
122
- "Replaces the default linear cosine scan in memory observations and doc sections with a compressed ANN index \u2014 no native deps required. Most useful when you accumulate many observations or large doc sets (1 000+ entries).",
123
- false
124
- );
125
- }
126
- if (semanticEngine === "turbovec") {
127
- patch.turbovecBits = await (0, import_prompts.arrowSelect)(rl, "TurboVec bits per coordinate:", [
128
- { value: 4, label: "4 bits (recommended)", description: "Best quality, ~19\xD7 compression vs raw Float32. Default." },
129
- { value: 3, label: "3 bits", description: "Balanced \u2014 ~25\xD7 compression, slight quality drop." },
130
- { value: 2, label: "2 bits", description: "Highest compression (~38\xD7), lowest accuracy." }
131
- ]);
132
- patch.turbovecMemDocs = await (0, import_prompts.askToggle)(
133
- rl,
134
- "TurboVec for memory & docs search (optional):",
135
- "Replaces the default linear cosine scan in memory observations and doc sections with the TurboVec ANN index. Requires the addon to be built.",
136
- false
137
- );
138
- }
139
- if (semanticEngine === "typesense") {
140
- patch.typesenseDashboard = await (0, import_prompts.askToggle)(
141
- rl,
142
- "Typesense dashboard:",
143
- "Serves the Typesense Dashboard locally and opens it in your browser after indexing completes.",
144
- false
145
- );
146
- }
147
- if (semanticEngine === "qdrant") {
148
- patch.qdrantDashboard = await (0, import_prompts.askToggle)(
149
- rl,
150
- "Qdrant dashboard:",
151
- "Downloads the Qdrant Web UI (first time only) and opens it in your browser after indexing completes.",
152
- false
153
- );
154
- }
171
+ patch.turbovecMemDocs = await (0, import_prompts.askToggle)(
172
+ rl,
173
+ "TurboVec for memory & docs search (optional):",
174
+ "Replaces the default linear cosine scan in memory observations and doc sections with the TurboVec ANN index. Requires the addon to be built.",
175
+ false
176
+ );
177
+ }
178
+ if (semanticEngine === "typesense") {
179
+ patch.typesenseDashboard = await (0, import_prompts.askToggle)(
180
+ rl,
181
+ "Typesense dashboard:",
182
+ "Serves the Typesense Dashboard locally and opens it in your browser after indexing completes.",
183
+ false
184
+ );
185
+ }
186
+ if (semanticEngine === "qdrant") {
187
+ patch.qdrantDashboard = await (0, import_prompts.askToggle)(
188
+ rl,
189
+ "Qdrant dashboard:",
190
+ "Downloads the Qdrant Web UI (first time only) and opens it in your browser after indexing completes.",
191
+ false
192
+ );
193
+ }
194
+ return patch;
195
+ }
196
+ async function promptConfigOptions(rl, opts = {}) {
197
+ const installMode = await (0, import_prompts.arrowSelect)(rl, "Installation mode:", [
198
+ { value: "core", label: "Core only", description: "3 always-on tools (search, context, node) \u2014 ~170 tok. Zero config." },
199
+ { value: "full", label: "Full", description: "Enable every feature with sensible defaults. Best for a fresh project." },
200
+ { value: "profiles", label: "Profiles", description: "Choose a preset bundle (Developer, Team, Security, Data & Docs, AI/LLM)." },
201
+ { value: "custom", label: "Custom", description: "Answer each question individually. Maximum control." }
202
+ ]);
203
+ const basePatch = {
204
+ enableEmbeddings: false,
205
+ useVecIndex: false,
206
+ semanticEngine: "cosine",
207
+ turboquantMemDocs: false,
208
+ turboquantBits: 3,
209
+ turbovecMemDocs: false,
210
+ turbovecBits: 4,
211
+ typesenseDashboard: false,
212
+ qdrantDashboard: false,
213
+ extractDocstrings: false,
214
+ trackCallSites: false,
215
+ enableArchitecture: false,
216
+ cavemanMode: "off",
217
+ shellCompressionLevel: "off",
218
+ enableMemory: false,
219
+ enableWatchmen: false,
220
+ watchmenThreshold: 5,
221
+ watchmenSynthesisMode: "local",
222
+ watchmenLocalModel: "onnx-community/gemma-4-E4B-it-ONNX",
223
+ enableDocs: false,
224
+ docsContextLimit: 0,
225
+ enableData: false,
226
+ dataContextLimit: 0,
227
+ enableSecurity: false,
228
+ enablePatterns: false,
229
+ enableWiki: false,
230
+ wikiSynthesisMode: "agent",
231
+ wikiLocalModel: "onnx-community/gemma-4-E4B-it-ONNX",
232
+ enableCodeHealth: false,
233
+ enableNavigation: false,
234
+ enableComplexity: false,
235
+ enableGitContext: false,
236
+ enableEditPrimitives: false,
237
+ enableBranch: false,
238
+ enableAgentUtils: false,
239
+ enableGeneralCompression: false
240
+ };
241
+ if (installMode === "core") {
242
+ const embeddingPatch2 = await promptEmbeddings(rl);
243
+ return { patch: { ...basePatch, ...embeddingPatch2 }, hooksToImport: null };
244
+ }
245
+ if (installMode === "full") {
246
+ const embeddingPatch2 = await promptEmbeddings(rl);
247
+ const fullPatch = {
248
+ ...basePatch,
249
+ ...embeddingPatch2,
250
+ extractDocstrings: true,
251
+ trackCallSites: true,
252
+ enableArchitecture: true,
253
+ shellCompressionLevel: "normal",
254
+ enableCodeHealth: true,
255
+ enableNavigation: true,
256
+ enableComplexity: true,
257
+ enableGitContext: true,
258
+ enableEditPrimitives: true,
259
+ enableBranch: true,
260
+ enableAgentUtils: true,
261
+ enableGeneralCompression: true,
262
+ enableSecurity: true,
263
+ enablePatterns: true,
264
+ enableDocs: true,
265
+ enableData: true,
266
+ enableMemory: true,
267
+ enableWatchmen: true,
268
+ enableWiki: true,
269
+ wikiSynthesisMode: "agent"
270
+ };
271
+ return { patch: fullPatch, hooksToImport: null };
272
+ }
273
+ if (installMode === "profiles") {
274
+ const profileKey = await (0, import_prompts.arrowSelect)(rl, "Select a profile:", Object.entries(PROFILES).map(([key, p]) => ({
275
+ value: key,
276
+ label: p.label,
277
+ description: p.description
278
+ })));
279
+ const profile = PROFILES[profileKey];
280
+ const embeddingPatch2 = await promptEmbeddings(rl);
281
+ const patch2 = { ...basePatch, ...profile.patch, ...embeddingPatch2 };
282
+ return { patch: patch2, hooksToImport: null };
155
283
  }
284
+ const embeddingPatch = await promptEmbeddings(rl);
285
+ const patch = { ...basePatch, ...embeddingPatch };
156
286
  (0, import_prompts.printSection)("\u{1F4CA}", "Graph Features");
157
287
  patch.extractDocstrings = await (0, import_prompts.askToggle)(
158
288
  rl,
@@ -172,19 +302,35 @@ async function promptConfigOptions(rl, opts = {}) {
172
302
  "Detects packages from manifests and architectural layers. Enables kirograph_architecture, kirograph_coupling, kirograph_package.",
173
303
  false
174
304
  );
175
- if (patch.enableArchitecture) {
176
- patch.enableAdvancedAnalysis = await (0, import_prompts.askToggle)(
177
- rl,
178
- "Advanced graph analysis (type hierarchies, flows, communities, refactor):",
179
- "Enables kirograph_type_hierarchy, kirograph_flows, kirograph_communities, kirograph_refactor. Most useful alongside architecture analysis.",
180
- false
181
- );
182
- }
183
305
  (0, import_prompts.printSection)("\u{1F4CA}", "Graph Tools");
306
+ patch.enableNavigation = await (0, import_prompts.askToggle)(
307
+ rl,
308
+ "Navigation tools (status, files, impact):",
309
+ "Enables kirograph_status, kirograph_files, kirograph_impact.",
310
+ false
311
+ );
184
312
  patch.enableCodeHealth = await (0, import_prompts.askToggle)(
185
313
  rl,
186
- "Code health tools (hotspots, dead code, change tracking):",
187
- "Enables kirograph_hotspots, kirograph_surprising, kirograph_diff, kirograph_dead_code, kirograph_circular_deps.",
314
+ "Code health tools (hotspots, dead code, path analysis, type hierarchy):",
315
+ "Enables kirograph_hotspots, kirograph_surprising, kirograph_diff, kirograph_dead_code, kirograph_circular_deps, kirograph_path, kirograph_affected, kirograph_type_hierarchy.",
316
+ false
317
+ );
318
+ patch.enableComplexity = await (0, import_prompts.askToggle)(
319
+ rl,
320
+ "Complexity metrics tools:",
321
+ "Enables complexity analysis, simplify scan, health score, DSM, test risk.",
322
+ false
323
+ );
324
+ patch.enableGitContext = await (0, import_prompts.askToggle)(
325
+ rl,
326
+ "Git context tools (diff context, commit context, flows):",
327
+ "Enables kirograph_flows, kirograph_diff_context, kirograph_commit_context, kirograph_pr_context, kirograph_changelog, kirograph_test_map, kirograph_test_coverage.",
328
+ false
329
+ );
330
+ patch.enableEditPrimitives = await (0, import_prompts.askToggle)(
331
+ rl,
332
+ "Edit primitive tools (str_replace, insert_at, refactor):",
333
+ "Enables kirograph_refactor, kirograph_str_replace, kirograph_multi_str_replace, kirograph_insert_at, kirograph_ast_grep_rewrite.",
188
334
  false
189
335
  );
190
336
  patch.enableAgentUtils = await (0, import_prompts.askToggle)(