kirograph 0.12.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 (434) hide show
  1. package/README.md +1171 -0
  2. package/dist/architecture/index.d.ts +11 -0
  3. package/dist/architecture/index.d.ts.map +1 -0
  4. package/dist/architecture/index.js +207 -0
  5. package/dist/architecture/index.js.map +7 -0
  6. package/dist/architecture/layers/csharp.d.ts +6 -0
  7. package/dist/architecture/layers/csharp.d.ts.map +1 -0
  8. package/dist/architecture/layers/csharp.js +100 -0
  9. package/dist/architecture/layers/csharp.js.map +7 -0
  10. package/dist/architecture/layers/elixir.js +116 -0
  11. package/dist/architecture/layers/elixir.js.map +7 -0
  12. package/dist/architecture/layers/go.d.ts +7 -0
  13. package/dist/architecture/layers/go.d.ts.map +1 -0
  14. package/dist/architecture/layers/go.js +117 -0
  15. package/dist/architecture/layers/go.js.map +7 -0
  16. package/dist/architecture/layers/index.d.ts +30 -0
  17. package/dist/architecture/layers/index.d.ts.map +1 -0
  18. package/dist/architecture/layers/index.js +100 -0
  19. package/dist/architecture/layers/index.js.map +7 -0
  20. package/dist/architecture/layers/java.d.ts +7 -0
  21. package/dist/architecture/layers/java.d.ts.map +1 -0
  22. package/dist/architecture/layers/java.js +119 -0
  23. package/dist/architecture/layers/java.js.map +7 -0
  24. package/dist/architecture/layers/python.d.ts +7 -0
  25. package/dist/architecture/layers/python.d.ts.map +1 -0
  26. package/dist/architecture/layers/python.js +111 -0
  27. package/dist/architecture/layers/python.js.map +7 -0
  28. package/dist/architecture/layers/ruby.d.ts +6 -0
  29. package/dist/architecture/layers/ruby.d.ts.map +1 -0
  30. package/dist/architecture/layers/ruby.js +95 -0
  31. package/dist/architecture/layers/ruby.js.map +7 -0
  32. package/dist/architecture/layers/rust.d.ts +6 -0
  33. package/dist/architecture/layers/rust.d.ts.map +1 -0
  34. package/dist/architecture/layers/rust.js +98 -0
  35. package/dist/architecture/layers/rust.js.map +7 -0
  36. package/dist/architecture/layers/types.d.ts +2 -0
  37. package/dist/architecture/layers/types.d.ts.map +1 -0
  38. package/dist/architecture/layers/types.js +17 -0
  39. package/dist/architecture/layers/types.js.map +7 -0
  40. package/dist/architecture/layers/typescript.d.ts +9 -0
  41. package/dist/architecture/layers/typescript.d.ts.map +1 -0
  42. package/dist/architecture/layers/typescript.js +143 -0
  43. package/dist/architecture/layers/typescript.js.map +7 -0
  44. package/dist/architecture/manifest/cargo.d.ts +3 -0
  45. package/dist/architecture/manifest/cargo.d.ts.map +1 -0
  46. package/dist/architecture/manifest/cargo.js +94 -0
  47. package/dist/architecture/manifest/cargo.js.map +7 -0
  48. package/dist/architecture/manifest/csproj.d.ts +3 -0
  49. package/dist/architecture/manifest/csproj.d.ts.map +1 -0
  50. package/dist/architecture/manifest/csproj.js +75 -0
  51. package/dist/architecture/manifest/csproj.js.map +7 -0
  52. package/dist/architecture/manifest/go.d.ts +3 -0
  53. package/dist/architecture/manifest/go.d.ts.map +1 -0
  54. package/dist/architecture/manifest/go.js +85 -0
  55. package/dist/architecture/manifest/go.js.map +7 -0
  56. package/dist/architecture/manifest/gradle.d.ts +3 -0
  57. package/dist/architecture/manifest/gradle.d.ts.map +1 -0
  58. package/dist/architecture/manifest/gradle.js +80 -0
  59. package/dist/architecture/manifest/gradle.js.map +7 -0
  60. package/dist/architecture/manifest/index.d.ts +12 -0
  61. package/dist/architecture/manifest/index.d.ts.map +1 -0
  62. package/dist/architecture/manifest/index.js +130 -0
  63. package/dist/architecture/manifest/index.js.map +7 -0
  64. package/dist/architecture/manifest/maven.d.ts +3 -0
  65. package/dist/architecture/manifest/maven.d.ts.map +1 -0
  66. package/dist/architecture/manifest/maven.js +76 -0
  67. package/dist/architecture/manifest/maven.js.map +7 -0
  68. package/dist/architecture/manifest/npm.d.ts +3 -0
  69. package/dist/architecture/manifest/npm.d.ts.map +1 -0
  70. package/dist/architecture/manifest/npm.js +103 -0
  71. package/dist/architecture/manifest/npm.js.map +7 -0
  72. package/dist/architecture/manifest/python.d.ts +3 -0
  73. package/dist/architecture/manifest/python.d.ts.map +1 -0
  74. package/dist/architecture/manifest/python.js +105 -0
  75. package/dist/architecture/manifest/python.js.map +7 -0
  76. package/dist/architecture/manifest/types.d.ts +2 -0
  77. package/dist/architecture/manifest/types.d.ts.map +1 -0
  78. package/dist/architecture/manifest/types.js +17 -0
  79. package/dist/architecture/manifest/types.js.map +7 -0
  80. package/dist/architecture/types.d.ts +91 -0
  81. package/dist/architecture/types.d.ts.map +1 -0
  82. package/dist/architecture/types.js +17 -0
  83. package/dist/architecture/types.js.map +7 -0
  84. package/dist/assets/logo.png +0 -0
  85. package/dist/banner.d.ts +6 -0
  86. package/dist/banner.d.ts.map +1 -0
  87. package/dist/banner.js +67 -0
  88. package/dist/banner.js.map +1 -0
  89. package/dist/bin/banner.d.ts +6 -0
  90. package/dist/bin/banner.d.ts.map +1 -0
  91. package/dist/bin/banner.js +88 -0
  92. package/dist/bin/banner.js.map +7 -0
  93. package/dist/bin/commands/affected.d.ts +3 -0
  94. package/dist/bin/commands/affected.d.ts.map +1 -0
  95. package/dist/bin/commands/affected.js +78 -0
  96. package/dist/bin/commands/affected.js.map +7 -0
  97. package/dist/bin/commands/architecture.d.ts +3 -0
  98. package/dist/bin/commands/architecture.d.ts.map +1 -0
  99. package/dist/bin/commands/architecture.js +125 -0
  100. package/dist/bin/commands/architecture.js.map +7 -0
  101. package/dist/bin/commands/caveman.js +136 -0
  102. package/dist/bin/commands/caveman.js.map +7 -0
  103. package/dist/bin/commands/context.d.ts +3 -0
  104. package/dist/bin/commands/context.d.ts.map +1 -0
  105. package/dist/bin/commands/context.js +81 -0
  106. package/dist/bin/commands/context.js.map +7 -0
  107. package/dist/bin/commands/coupling.d.ts +3 -0
  108. package/dist/bin/commands/coupling.d.ts.map +1 -0
  109. package/dist/bin/commands/coupling.js +164 -0
  110. package/dist/bin/commands/coupling.js.map +7 -0
  111. package/dist/bin/commands/dashboard.d.ts +3 -0
  112. package/dist/bin/commands/dashboard.d.ts.map +1 -0
  113. package/dist/bin/commands/dashboard.js +209 -0
  114. package/dist/bin/commands/dashboard.js.map +7 -0
  115. package/dist/bin/commands/dead-code.js +77 -0
  116. package/dist/bin/commands/dead-code.js.map +7 -0
  117. package/dist/bin/commands/export.js +2620 -0
  118. package/dist/bin/commands/export.js.map +7 -0
  119. package/dist/bin/commands/files.d.ts +3 -0
  120. package/dist/bin/commands/files.d.ts.map +1 -0
  121. package/dist/bin/commands/files.js +104 -0
  122. package/dist/bin/commands/files.js.map +7 -0
  123. package/dist/bin/commands/help.d.ts +4 -0
  124. package/dist/bin/commands/help.d.ts.map +1 -0
  125. package/dist/bin/commands/help.js +212 -0
  126. package/dist/bin/commands/help.js.map +7 -0
  127. package/dist/bin/commands/hotspots.js +77 -0
  128. package/dist/bin/commands/hotspots.js.map +7 -0
  129. package/dist/bin/commands/index.d.ts +3 -0
  130. package/dist/bin/commands/index.d.ts.map +1 -0
  131. package/dist/bin/commands/index.js +58 -0
  132. package/dist/bin/commands/index.js.map +7 -0
  133. package/dist/bin/commands/init.d.ts +3 -0
  134. package/dist/bin/commands/init.d.ts.map +1 -0
  135. package/dist/bin/commands/init.js +68 -0
  136. package/dist/bin/commands/init.js.map +7 -0
  137. package/dist/bin/commands/install.d.ts +3 -0
  138. package/dist/bin/commands/install.d.ts.map +1 -0
  139. package/dist/bin/commands/install.js +34 -0
  140. package/dist/bin/commands/install.js.map +7 -0
  141. package/dist/bin/commands/mark-dirty.d.ts +3 -0
  142. package/dist/bin/commands/mark-dirty.d.ts.map +1 -0
  143. package/dist/bin/commands/mark-dirty.js +51 -0
  144. package/dist/bin/commands/mark-dirty.js.map +7 -0
  145. package/dist/bin/commands/package.d.ts +3 -0
  146. package/dist/bin/commands/package.d.ts.map +1 -0
  147. package/dist/bin/commands/package.js +139 -0
  148. package/dist/bin/commands/package.js.map +7 -0
  149. package/dist/bin/commands/path.js +93 -0
  150. package/dist/bin/commands/path.js.map +7 -0
  151. package/dist/bin/commands/qdrant.d.ts +3 -0
  152. package/dist/bin/commands/qdrant.d.ts.map +1 -0
  153. package/dist/bin/commands/qdrant.js +159 -0
  154. package/dist/bin/commands/qdrant.js.map +1 -0
  155. package/dist/bin/commands/query.d.ts +3 -0
  156. package/dist/bin/commands/query.d.ts.map +1 -0
  157. package/dist/bin/commands/query.js +47 -0
  158. package/dist/bin/commands/query.js.map +7 -0
  159. package/dist/bin/commands/serve.d.ts +3 -0
  160. package/dist/bin/commands/serve.d.ts.map +1 -0
  161. package/dist/bin/commands/serve.js +59 -0
  162. package/dist/bin/commands/serve.js.map +7 -0
  163. package/dist/bin/commands/snapshot.js +122 -0
  164. package/dist/bin/commands/snapshot.js.map +7 -0
  165. package/dist/bin/commands/status.d.ts +3 -0
  166. package/dist/bin/commands/status.d.ts.map +1 -0
  167. package/dist/bin/commands/status.js +107 -0
  168. package/dist/bin/commands/status.js.map +7 -0
  169. package/dist/bin/commands/stop.d.ts +3 -0
  170. package/dist/bin/commands/stop.d.ts.map +1 -0
  171. package/dist/bin/commands/stop.js +81 -0
  172. package/dist/bin/commands/stop.js.map +1 -0
  173. package/dist/bin/commands/surprising.js +79 -0
  174. package/dist/bin/commands/surprising.js.map +7 -0
  175. package/dist/bin/commands/sync-if-dirty.d.ts +3 -0
  176. package/dist/bin/commands/sync-if-dirty.d.ts.map +1 -0
  177. package/dist/bin/commands/sync-if-dirty.js +67 -0
  178. package/dist/bin/commands/sync-if-dirty.js.map +7 -0
  179. package/dist/bin/commands/sync.d.ts +3 -0
  180. package/dist/bin/commands/sync.d.ts.map +1 -0
  181. package/dist/bin/commands/sync.js +81 -0
  182. package/dist/bin/commands/sync.js.map +7 -0
  183. package/dist/bin/commands/typesense.d.ts +3 -0
  184. package/dist/bin/commands/typesense.d.ts.map +1 -0
  185. package/dist/bin/commands/typesense.js +126 -0
  186. package/dist/bin/commands/typesense.js.map +1 -0
  187. package/dist/bin/commands/uninit.d.ts +4 -0
  188. package/dist/bin/commands/uninit.d.ts.map +1 -0
  189. package/dist/bin/commands/uninit.js +123 -0
  190. package/dist/bin/commands/uninit.js.map +7 -0
  191. package/dist/bin/commands/unlock.d.ts +3 -0
  192. package/dist/bin/commands/unlock.d.ts.map +1 -0
  193. package/dist/bin/commands/unlock.js +53 -0
  194. package/dist/bin/commands/unlock.js.map +7 -0
  195. package/dist/bin/commands/utils.d.ts +12 -0
  196. package/dist/bin/commands/utils.d.ts.map +1 -0
  197. package/dist/bin/commands/utils.js +56 -0
  198. package/dist/bin/commands/utils.js.map +7 -0
  199. package/dist/bin/installer/archive.js +230 -0
  200. package/dist/bin/installer/archive.js.map +7 -0
  201. package/dist/bin/installer/caveman.js +57 -0
  202. package/dist/bin/installer/caveman.js.map +7 -0
  203. package/dist/bin/installer/cli-agent.d.ts +15 -0
  204. package/dist/bin/installer/cli-agent.d.ts.map +1 -0
  205. package/dist/bin/installer/cli-agent.js +89 -0
  206. package/dist/bin/installer/cli-agent.js.map +7 -0
  207. package/dist/bin/installer/config-prompt.d.ts +13 -0
  208. package/dist/bin/installer/config-prompt.d.ts.map +1 -0
  209. package/dist/bin/installer/config-prompt.js +158 -0
  210. package/dist/bin/installer/config-prompt.js.map +7 -0
  211. package/dist/bin/installer/dashboard.d.ts +3 -0
  212. package/dist/bin/installer/dashboard.d.ts.map +1 -0
  213. package/dist/bin/installer/dashboard.js +149 -0
  214. package/dist/bin/installer/dashboard.js.map +7 -0
  215. package/dist/bin/installer/hooks.d.ts +5 -0
  216. package/dist/bin/installer/hooks.d.ts.map +1 -0
  217. package/dist/bin/installer/hooks.js +155 -0
  218. package/dist/bin/installer/hooks.js.map +7 -0
  219. package/dist/bin/installer/index.d.ts +11 -0
  220. package/dist/bin/installer/index.d.ts.map +1 -0
  221. package/dist/bin/installer/index.js +228 -0
  222. package/dist/bin/installer/index.js.map +7 -0
  223. package/dist/bin/installer/mcp.d.ts +5 -0
  224. package/dist/bin/installer/mcp.d.ts.map +1 -0
  225. package/dist/bin/installer/mcp.js +80 -0
  226. package/dist/bin/installer/mcp.js.map +7 -0
  227. package/dist/bin/installer/prompts.d.ts +28 -0
  228. package/dist/bin/installer/prompts.d.ts.map +1 -0
  229. package/dist/bin/installer/prompts.js +134 -0
  230. package/dist/bin/installer/prompts.js.map +7 -0
  231. package/dist/bin/installer/qdrant-dashboard.d.ts +4 -0
  232. package/dist/bin/installer/qdrant-dashboard.d.ts.map +1 -0
  233. package/dist/bin/installer/qdrant-dashboard.js +115 -0
  234. package/dist/bin/installer/qdrant-dashboard.js.map +7 -0
  235. package/dist/bin/installer/steering.d.ts +5 -0
  236. package/dist/bin/installer/steering.d.ts.map +1 -0
  237. package/dist/bin/installer/steering.js +283 -0
  238. package/dist/bin/installer/steering.js.map +7 -0
  239. package/dist/bin/kirograph.d.ts +6 -0
  240. package/dist/bin/kirograph.d.ts.map +1 -0
  241. package/dist/bin/kirograph.js +95 -0
  242. package/dist/bin/kirograph.js.map +7 -0
  243. package/dist/bin/progress.d.ts +14 -0
  244. package/dist/bin/progress.d.ts.map +1 -0
  245. package/dist/bin/progress.js +201 -0
  246. package/dist/bin/progress.js.map +7 -0
  247. package/dist/bin/ui.d.ts +11 -0
  248. package/dist/bin/ui.d.ts.map +1 -0
  249. package/dist/bin/ui.js +71 -0
  250. package/dist/bin/ui.js.map +7 -0
  251. package/dist/config.d.ts +48 -0
  252. package/dist/config.d.ts.map +1 -0
  253. package/dist/config.js +273 -0
  254. package/dist/config.js.map +7 -0
  255. package/dist/context/index.d.ts +61 -0
  256. package/dist/context/index.d.ts.map +1 -0
  257. package/dist/context/index.js +224 -0
  258. package/dist/context/index.js.map +7 -0
  259. package/dist/core/file-tree.d.ts +15 -0
  260. package/dist/core/file-tree.d.ts.map +1 -0
  261. package/dist/core/file-tree.js +69 -0
  262. package/dist/core/file-tree.js.map +7 -0
  263. package/dist/core/lock-manager.d.ts +20 -0
  264. package/dist/core/lock-manager.d.ts.map +1 -0
  265. package/dist/core/lock-manager.js +120 -0
  266. package/dist/core/lock-manager.js.map +7 -0
  267. package/dist/core/pipeline.d.ts +37 -0
  268. package/dist/core/pipeline.d.ts.map +1 -0
  269. package/dist/core/pipeline.js +375 -0
  270. package/dist/core/pipeline.js.map +7 -0
  271. package/dist/core/snapshot.js +141 -0
  272. package/dist/core/snapshot.js.map +7 -0
  273. package/dist/db/database.d.ts +133 -0
  274. package/dist/db/database.d.ts.map +1 -0
  275. package/dist/db/database.js +929 -0
  276. package/dist/db/database.js.map +7 -0
  277. package/dist/db/schema.sql +174 -0
  278. package/dist/errors.d.ts +49 -0
  279. package/dist/errors.d.ts.map +1 -0
  280. package/dist/errors.js +160 -0
  281. package/dist/errors.js.map +7 -0
  282. package/dist/extraction/extractor.d.ts +29 -0
  283. package/dist/extraction/extractor.d.ts.map +1 -0
  284. package/dist/extraction/extractor.js +764 -0
  285. package/dist/extraction/extractor.js.map +7 -0
  286. package/dist/extraction/grammars.d.ts +48 -0
  287. package/dist/extraction/grammars.d.ts.map +1 -0
  288. package/dist/extraction/grammars.js +166 -0
  289. package/dist/extraction/grammars.js.map +7 -0
  290. package/dist/extraction/languages.d.ts +9 -0
  291. package/dist/extraction/languages.d.ts.map +1 -0
  292. package/dist/extraction/languages.js +103 -0
  293. package/dist/extraction/languages.js.map +7 -0
  294. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  295. package/dist/frameworks/csharp.d.ts +8 -0
  296. package/dist/frameworks/csharp.d.ts.map +1 -0
  297. package/dist/frameworks/csharp.js +93 -0
  298. package/dist/frameworks/csharp.js.map +7 -0
  299. package/dist/frameworks/elixir.js +142 -0
  300. package/dist/frameworks/elixir.js.map +7 -0
  301. package/dist/frameworks/express.d.ts +8 -0
  302. package/dist/frameworks/express.d.ts.map +1 -0
  303. package/dist/frameworks/express.js +143 -0
  304. package/dist/frameworks/express.js.map +7 -0
  305. package/dist/frameworks/go.d.ts +8 -0
  306. package/dist/frameworks/go.d.ts.map +1 -0
  307. package/dist/frameworks/go.js +85 -0
  308. package/dist/frameworks/go.js.map +7 -0
  309. package/dist/frameworks/index.d.ts +30 -0
  310. package/dist/frameworks/index.d.ts.map +1 -0
  311. package/dist/frameworks/index.js +243 -0
  312. package/dist/frameworks/index.js.map +7 -0
  313. package/dist/frameworks/java.d.ts +8 -0
  314. package/dist/frameworks/java.d.ts.map +1 -0
  315. package/dist/frameworks/java.js +87 -0
  316. package/dist/frameworks/java.js.map +7 -0
  317. package/dist/frameworks/laravel.d.ts +9 -0
  318. package/dist/frameworks/laravel.d.ts.map +1 -0
  319. package/dist/frameworks/laravel.js +115 -0
  320. package/dist/frameworks/laravel.js.map +7 -0
  321. package/dist/frameworks/python.d.ts +10 -0
  322. package/dist/frameworks/python.d.ts.map +1 -0
  323. package/dist/frameworks/python.js +158 -0
  324. package/dist/frameworks/python.js.map +7 -0
  325. package/dist/frameworks/react.d.ts +9 -0
  326. package/dist/frameworks/react.d.ts.map +1 -0
  327. package/dist/frameworks/react.js +230 -0
  328. package/dist/frameworks/react.js.map +7 -0
  329. package/dist/frameworks/ruby.d.ts +8 -0
  330. package/dist/frameworks/ruby.d.ts.map +1 -0
  331. package/dist/frameworks/ruby.js +136 -0
  332. package/dist/frameworks/ruby.js.map +7 -0
  333. package/dist/frameworks/rust.d.ts +8 -0
  334. package/dist/frameworks/rust.d.ts.map +1 -0
  335. package/dist/frameworks/rust.js +82 -0
  336. package/dist/frameworks/rust.js.map +7 -0
  337. package/dist/frameworks/svelte.d.ts +8 -0
  338. package/dist/frameworks/svelte.d.ts.map +1 -0
  339. package/dist/frameworks/svelte.js +174 -0
  340. package/dist/frameworks/svelte.js.map +7 -0
  341. package/dist/frameworks/swift.d.ts +10 -0
  342. package/dist/frameworks/swift.d.ts.map +1 -0
  343. package/dist/frameworks/swift.js +151 -0
  344. package/dist/frameworks/swift.js.map +7 -0
  345. package/dist/frameworks/types.d.ts +37 -0
  346. package/dist/frameworks/types.d.ts.map +1 -0
  347. package/dist/frameworks/types.js +17 -0
  348. package/dist/frameworks/types.js.map +7 -0
  349. package/dist/graph/queries.d.ts +53 -0
  350. package/dist/graph/queries.d.ts.map +1 -0
  351. package/dist/graph/queries.js +224 -0
  352. package/dist/graph/queries.js.map +7 -0
  353. package/dist/graph/traversal.d.ts +35 -0
  354. package/dist/graph/traversal.d.ts.map +1 -0
  355. package/dist/graph/traversal.js +148 -0
  356. package/dist/graph/traversal.js.map +7 -0
  357. package/dist/index.d.ts +102 -0
  358. package/dist/index.d.ts.map +1 -0
  359. package/dist/index.js +303 -0
  360. package/dist/index.js.map +7 -0
  361. package/dist/installer/index.d.ts +10 -0
  362. package/dist/installer/index.d.ts.map +1 -0
  363. package/dist/installer/index.js +526 -0
  364. package/dist/installer/index.js.map +1 -0
  365. package/dist/mcp/server.d.ts +16 -0
  366. package/dist/mcp/server.d.ts.map +1 -0
  367. package/dist/mcp/server.js +116 -0
  368. package/dist/mcp/server.js.map +7 -0
  369. package/dist/mcp/tools.d.ts +37 -0
  370. package/dist/mcp/tools.d.ts.map +1 -0
  371. package/dist/mcp/tools.js +779 -0
  372. package/dist/mcp/tools.js.map +7 -0
  373. package/dist/mcp/transport.d.ts +29 -0
  374. package/dist/mcp/transport.d.ts.map +1 -0
  375. package/dist/mcp/transport.js +70 -0
  376. package/dist/mcp/transport.js.map +7 -0
  377. package/dist/resolution/index.d.ts +56 -0
  378. package/dist/resolution/index.d.ts.map +1 -0
  379. package/dist/resolution/index.js +384 -0
  380. package/dist/resolution/index.js.map +7 -0
  381. package/dist/resolution/name-matcher.d.ts +25 -0
  382. package/dist/resolution/name-matcher.d.ts.map +1 -0
  383. package/dist/resolution/name-matcher.js +60 -0
  384. package/dist/resolution/name-matcher.js.map +7 -0
  385. package/dist/scripts/postinstall.js +64 -0
  386. package/dist/search/query-utils.d.ts +21 -0
  387. package/dist/search/query-utils.d.ts.map +1 -0
  388. package/dist/search/query-utils.js +219 -0
  389. package/dist/search/query-utils.js.map +7 -0
  390. package/dist/search/searcher.d.ts +15 -0
  391. package/dist/search/searcher.d.ts.map +1 -0
  392. package/dist/search/searcher.js +49 -0
  393. package/dist/search/searcher.js.map +7 -0
  394. package/dist/sync/index.d.ts +33 -0
  395. package/dist/sync/index.d.ts.map +1 -0
  396. package/dist/sync/index.js +200 -0
  397. package/dist/sync/index.js.map +7 -0
  398. package/dist/types.d.ts +131 -0
  399. package/dist/types.d.ts.map +1 -0
  400. package/dist/types.js +37 -0
  401. package/dist/types.js.map +7 -0
  402. package/dist/utils.d.ts +52 -0
  403. package/dist/utils.d.ts.map +1 -0
  404. package/dist/utils.js +254 -0
  405. package/dist/utils.js.map +7 -0
  406. package/dist/vectors/index.d.ts +71 -0
  407. package/dist/vectors/index.d.ts.map +1 -0
  408. package/dist/vectors/index.js +480 -0
  409. package/dist/vectors/index.js.map +7 -0
  410. package/dist/vectors/lancedb-index.d.ts +50 -0
  411. package/dist/vectors/lancedb-index.d.ts.map +1 -0
  412. package/dist/vectors/lancedb-index.js +153 -0
  413. package/dist/vectors/lancedb-index.js.map +7 -0
  414. package/dist/vectors/orama-index.d.ts +54 -0
  415. package/dist/vectors/orama-index.d.ts.map +1 -0
  416. package/dist/vectors/orama-index.js +213 -0
  417. package/dist/vectors/orama-index.js.map +7 -0
  418. package/dist/vectors/pglite-index.d.ts +53 -0
  419. package/dist/vectors/pglite-index.d.ts.map +1 -0
  420. package/dist/vectors/pglite-index.js +194 -0
  421. package/dist/vectors/pglite-index.js.map +7 -0
  422. package/dist/vectors/qdrant-index.d.ts +70 -0
  423. package/dist/vectors/qdrant-index.d.ts.map +1 -0
  424. package/dist/vectors/qdrant-index.js +364 -0
  425. package/dist/vectors/qdrant-index.js.map +7 -0
  426. package/dist/vectors/typesense-index.d.ts +75 -0
  427. package/dist/vectors/typesense-index.d.ts.map +1 -0
  428. package/dist/vectors/typesense-index.js +453 -0
  429. package/dist/vectors/typesense-index.js.map +7 -0
  430. package/dist/vectors/vec-index.d.ts +52 -0
  431. package/dist/vectors/vec-index.d.ts.map +1 -0
  432. package/dist/vectors/vec-index.js +198 -0
  433. package/dist/vectors/vec-index.js.map +7 -0
  434. package/package.json +67 -0
@@ -0,0 +1,59 @@
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 serve_exports = {};
30
+ __export(serve_exports, {
31
+ register: () => register
32
+ });
33
+ module.exports = __toCommonJS(serve_exports);
34
+ var path = __toESM(require("path"));
35
+ var import_ui = require("../ui");
36
+ function register(program) {
37
+ program.command("serve").description("Start the MCP server").option("--mcp", "Run as MCP stdio server").option("--path <path>", "Project path").action(async (opts) => {
38
+ if (!opts.mcp) {
39
+ console.log(`
40
+ ${import_ui.dim}Start the KiroGraph MCP server for Kiro.${import_ui.reset}`);
41
+ console.log(`
42
+ ${import_ui.dim}Usage:${import_ui.reset} ${import_ui.violet}${import_ui.bold}kirograph serve --mcp${import_ui.reset}`);
43
+ console.log(`
44
+ ${import_ui.dim}Add to${import_ui.reset} ${import_ui.violet}${import_ui.bold}.kiro/settings/mcp.json${import_ui.reset}${import_ui.dim}:${import_ui.reset}
45
+ `);
46
+ console.log(` ${import_ui.dim}${JSON.stringify({ mcpServers: { kirograph: { command: "kirograph", args: ["serve", "--mcp"] } } }, null, 2).split("\n").join("\n ")}${import_ui.reset}
47
+ `);
48
+ return;
49
+ }
50
+ const { MCPServer } = await Promise.resolve().then(() => require("../../mcp/server.js"));
51
+ const server = new MCPServer(opts.path ? path.resolve(opts.path) : process.cwd());
52
+ await server.start();
53
+ });
54
+ }
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ register
58
+ });
59
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/bin/commands/serve.ts"],
4
+ "sourcesContent": ["import { Command } from 'commander';\nimport * as path from 'path';\nimport { dim, reset, violet, bold } from '../ui';\n\nexport function register(program: Command): void {\n program\n .command('serve')\n .description('Start the MCP server')\n .option('--mcp', 'Run as MCP stdio server')\n .option('--path <path>', 'Project path')\n .action(async (opts: { mcp?: boolean; path?: string }) => {\n if (!opts.mcp) {\n console.log(`\\n ${dim}Start the KiroGraph MCP server for Kiro.${reset}`);\n console.log(`\\n ${dim}Usage:${reset} ${violet}${bold}kirograph serve --mcp${reset}`);\n console.log(`\\n ${dim}Add to${reset} ${violet}${bold}.kiro/settings/mcp.json${reset}${dim}:${reset}\\n`);\n console.log(` ${dim}${JSON.stringify({ mcpServers: { kirograph: { command: 'kirograph', args: ['serve', '--mcp'] } } }, null, 2).split('\\n').join('\\n ')}${reset}\\n`);\n return;\n }\n const { MCPServer } = await Promise.resolve().then(() => require('../../mcp/server.js'));\n const server = new MCPServer(opts.path ? path.resolve(opts.path) : process.cwd());\n await server.start();\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,WAAsB;AACtB,gBAAyC;AAElC,SAAS,SAAS,SAAwB;AAC/C,UACG,QAAQ,OAAO,EACf,YAAY,sBAAsB,EAClC,OAAO,SAAS,yBAAyB,EACzC,OAAO,iBAAiB,cAAc,EACtC,OAAO,OAAO,SAA2C;AACxD,QAAI,CAAC,KAAK,KAAK;AACb,cAAQ,IAAI;AAAA,IAAO,aAAG,2CAA2C,eAAK,EAAE;AACxE,cAAQ,IAAI;AAAA,IAAO,aAAG,SAAS,eAAK,KAAK,gBAAM,GAAG,cAAI,wBAAwB,eAAK,EAAE;AACrF,cAAQ,IAAI;AAAA,IAAO,aAAG,SAAS,eAAK,IAAI,gBAAM,GAAG,cAAI,0BAA0B,eAAK,GAAG,aAAG,IAAI,eAAK;AAAA,CAAI;AACvG,cAAQ,IAAI,KAAK,aAAG,GAAG,KAAK,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,aAAa,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC,GAAG,eAAK;AAAA,CAAI;AACtK;AAAA,IACF;AACA,UAAM,EAAE,UAAU,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AACvF,UAAM,SAAS,IAAI,UAAU,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,IAAI,QAAQ,IAAI,CAAC;AAChF,UAAM,OAAO,MAAM;AAAA,EACrB,CAAC;AACL;",
6
+ "names": []
7
+ }
@@ -0,0 +1,122 @@
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 snapshot_exports = {};
30
+ __export(snapshot_exports, {
31
+ register: () => register
32
+ });
33
+ module.exports = __toCommonJS(snapshot_exports);
34
+ var path = __toESM(require("path"));
35
+ var import_ui = require("../ui");
36
+ function register(program) {
37
+ const snapshotCmd = program.command("snapshot").description("Save or list graph snapshots for later diffing");
38
+ snapshotCmd.command("save [label]").description("Save a snapshot of the current graph state").option("--path <p>", "Project root path").action(async (label, opts) => {
39
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
40
+ const target = path.resolve(opts.path ?? process.cwd());
41
+ const cg = await KiroGraph.open(target);
42
+ const sm = cg.createSnapshotManager();
43
+ const snapshot = sm.save(label);
44
+ cg.close();
45
+ console.log();
46
+ console.log(` ${import_ui.green}\u2713${import_ui.reset} Snapshot saved: ${import_ui.violet}${import_ui.bold}${snapshot.label}${import_ui.reset}`);
47
+ console.log(` ${import_ui.dim}${snapshot.nodeCount} symbols, ${snapshot.edgeCount} edges${import_ui.reset}`);
48
+ console.log();
49
+ });
50
+ snapshotCmd.command("list").description("List saved snapshots").option("--path <p>", "Project root path").action(async (opts) => {
51
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
52
+ const target = path.resolve(opts.path ?? process.cwd());
53
+ const cg = await KiroGraph.open(target);
54
+ const sm = cg.createSnapshotManager();
55
+ const snapshots = sm.list();
56
+ cg.close();
57
+ if (snapshots.length === 0) {
58
+ console.log(`
59
+ ${import_ui.dim}No snapshots yet. Run \`kirograph snapshot save\` first.${import_ui.reset}
60
+ `);
61
+ return;
62
+ }
63
+ console.log();
64
+ console.log(` ${import_ui.violet}${import_ui.bold}Snapshots${import_ui.reset}
65
+ `);
66
+ for (const s of snapshots) {
67
+ const date = new Date(s.timestamp).toISOString().slice(0, 19).replace("T", " ");
68
+ console.log(` ${import_ui.violet}${import_ui.bold}${s.label}${import_ui.reset} ${import_ui.dim}${date} ${s.nodeCount} symbols, ${s.edgeCount} edges${import_ui.reset}`);
69
+ }
70
+ console.log();
71
+ });
72
+ snapshotCmd.command("diff [label]").description("Diff current graph vs a saved snapshot (defaults to latest)").option("--path <p>", "Project root path").option("--format <fmt>", "Output format: summary | full | json", "summary").action(async (label, opts) => {
73
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
74
+ const target = path.resolve(opts.path ?? process.cwd());
75
+ const cg = await KiroGraph.open(target);
76
+ const sm = cg.createSnapshotManager();
77
+ const snapshot = label ? sm.load(label) : sm.loadLatest();
78
+ if (!snapshot) {
79
+ console.log(`
80
+ ${import_ui.dim}${label ? `Snapshot "${label}" not found.` : "No snapshots found. Run `kirograph snapshot save` first."} ${import_ui.reset}
81
+ `);
82
+ cg.close();
83
+ return;
84
+ }
85
+ const diff = sm.diff(snapshot, sm.currentSnapshot());
86
+ cg.close();
87
+ if (opts.format === "json") {
88
+ console.log(JSON.stringify(diff, null, 2));
89
+ return;
90
+ }
91
+ const fromDate = new Date(diff.from.timestamp).toISOString().slice(0, 19).replace("T", " ");
92
+ console.log();
93
+ console.log(` ${import_ui.violet}${import_ui.bold}Graph Diff${import_ui.reset} ${import_ui.dim}"${diff.from.label}" (${fromDate}) \u2192 current${import_ui.reset}
94
+ `);
95
+ console.log(` ${import_ui.green}+${import_ui.reset} ${import_ui.bold}${diff.addedNodes.length}${import_ui.reset}${import_ui.dim} symbols added${import_ui.reset} ${import_ui.dim}-${import_ui.reset} ${import_ui.bold}${diff.removedNodes.length}${import_ui.reset}${import_ui.dim} symbols removed${import_ui.reset}`);
96
+ console.log(` ${import_ui.green}+${import_ui.reset} ${import_ui.bold}${diff.addedEdges.length}${import_ui.reset}${import_ui.dim} edges added${import_ui.reset} ${import_ui.dim}-${import_ui.reset} ${import_ui.bold}${diff.removedEdges.length}${import_ui.reset}${import_ui.dim} edges removed${import_ui.reset}`);
97
+ if (opts.format === "full") {
98
+ if (diff.addedNodes.length > 0) {
99
+ console.log(`
100
+ ${import_ui.dim}Added symbols:${import_ui.reset}`);
101
+ for (const n of diff.addedNodes.slice(0, 50)) {
102
+ console.log(` ${import_ui.green}+${import_ui.reset} ${import_ui.violet}${n.name}${import_ui.reset} ${import_ui.dim}${n.kind} ${n.filePath}${import_ui.reset}`);
103
+ }
104
+ if (diff.addedNodes.length > 50) console.log(` ${import_ui.dim}\u2026and ${diff.addedNodes.length - 50} more${import_ui.reset}`);
105
+ }
106
+ if (diff.removedNodes.length > 0) {
107
+ console.log(`
108
+ ${import_ui.dim}Removed symbols:${import_ui.reset}`);
109
+ for (const n of diff.removedNodes.slice(0, 50)) {
110
+ console.log(` ${import_ui.dim}- ${n.name} ${n.kind} ${n.filePath}${import_ui.reset}`);
111
+ }
112
+ if (diff.removedNodes.length > 50) console.log(` ${import_ui.dim}\u2026and ${diff.removedNodes.length - 50} more${import_ui.reset}`);
113
+ }
114
+ }
115
+ console.log();
116
+ });
117
+ }
118
+ // Annotate the CommonJS export names for ESM import in node:
119
+ 0 && (module.exports = {
120
+ register
121
+ });
122
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/bin/commands/snapshot.ts"],
4
+ "sourcesContent": ["import * as path from 'path';\nimport { Command } from 'commander';\nimport { bold, dim, green, reset, violet } from '../ui';\n\nexport function register(program: Command): void {\n const snapshotCmd = program\n .command('snapshot')\n .description('Save or list graph snapshots for later diffing');\n\n // kirograph snapshot save [label] [projectPath]\n snapshotCmd\n .command('save [label]')\n .description('Save a snapshot of the current graph state')\n .option('--path <p>', 'Project root path')\n .action(async (label: string | undefined, opts: { path?: string }) => {\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const target = path.resolve(opts.path ?? process.cwd());\n const cg = await KiroGraph.open(target);\n const sm = cg.createSnapshotManager();\n const snapshot = sm.save(label);\n cg.close();\n console.log();\n console.log(` ${green}\u2713${reset} Snapshot saved: ${violet}${bold}${snapshot.label}${reset}`);\n console.log(` ${dim}${snapshot.nodeCount} symbols, ${snapshot.edgeCount} edges${reset}`);\n console.log();\n });\n\n // kirograph snapshot list [projectPath]\n snapshotCmd\n .command('list')\n .description('List saved snapshots')\n .option('--path <p>', 'Project root path')\n .action(async (opts: { path?: string }) => {\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const target = path.resolve(opts.path ?? process.cwd());\n const cg = await KiroGraph.open(target);\n const sm = cg.createSnapshotManager();\n const snapshots = sm.list();\n cg.close();\n\n if (snapshots.length === 0) {\n console.log(`\\n ${dim}No snapshots yet. Run \\`kirograph snapshot save\\` first.${reset}\\n`);\n return;\n }\n\n console.log();\n console.log(` ${violet}${bold}Snapshots${reset}\\n`);\n for (const s of snapshots) {\n const date = new Date(s.timestamp).toISOString().slice(0, 19).replace('T', ' ');\n console.log(` ${violet}${bold}${s.label}${reset} ${dim}${date} ${s.nodeCount} symbols, ${s.edgeCount} edges${reset}`);\n }\n console.log();\n });\n\n // kirograph snapshot diff [label] [projectPath]\n snapshotCmd\n .command('diff [label]')\n .description('Diff current graph vs a saved snapshot (defaults to latest)')\n .option('--path <p>', 'Project root path')\n .option('--format <fmt>', 'Output format: summary | full | json', 'summary')\n .action(async (label: string | undefined, opts: { path?: string; format: string }) => {\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const target = path.resolve(opts.path ?? process.cwd());\n const cg = await KiroGraph.open(target);\n const sm = cg.createSnapshotManager();\n\n const snapshot = label ? sm.load(label) : sm.loadLatest();\n if (!snapshot) {\n console.log(`\\n ${dim}${label ? `Snapshot \"${label}\" not found.` : 'No snapshots found. Run `kirograph snapshot save` first.'} ${reset}\\n`);\n cg.close();\n return;\n }\n\n const diff = sm.diff(snapshot, sm.currentSnapshot());\n cg.close();\n\n if (opts.format === 'json') {\n console.log(JSON.stringify(diff, null, 2));\n return;\n }\n\n const fromDate = new Date(diff.from.timestamp).toISOString().slice(0, 19).replace('T', ' ');\n console.log();\n console.log(` ${violet}${bold}Graph Diff${reset} ${dim}\"${diff.from.label}\" (${fromDate}) \u2192 current${reset}\\n`);\n console.log(` ${green}+${reset} ${bold}${diff.addedNodes.length}${reset}${dim} symbols added${reset} ${dim}-${reset} ${bold}${diff.removedNodes.length}${reset}${dim} symbols removed${reset}`);\n console.log(` ${green}+${reset} ${bold}${diff.addedEdges.length}${reset}${dim} edges added${reset} ${dim}-${reset} ${bold}${diff.removedEdges.length}${reset}${dim} edges removed${reset}`);\n\n if (opts.format === 'full') {\n if (diff.addedNodes.length > 0) {\n console.log(`\\n ${dim}Added symbols:${reset}`);\n for (const n of diff.addedNodes.slice(0, 50)) {\n console.log(` ${green}+${reset} ${violet}${n.name}${reset} ${dim}${n.kind} ${n.filePath}${reset}`);\n }\n if (diff.addedNodes.length > 50) console.log(` ${dim}\u2026and ${diff.addedNodes.length - 50} more${reset}`);\n }\n if (diff.removedNodes.length > 0) {\n console.log(`\\n ${dim}Removed symbols:${reset}`);\n for (const n of diff.removedNodes.slice(0, 50)) {\n console.log(` ${dim}- ${n.name} ${n.kind} ${n.filePath}${reset}`);\n }\n if (diff.removedNodes.length > 50) console.log(` ${dim}\u2026and ${diff.removedNodes.length - 50} more${reset}`);\n }\n }\n\n console.log();\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAsB;AAEtB,gBAAgD;AAEzC,SAAS,SAAS,SAAwB;AAC/C,QAAM,cAAc,QACjB,QAAQ,UAAU,EAClB,YAAY,gDAAgD;AAG/D,cACG,QAAQ,cAAc,EACtB,YAAY,4CAA4C,EACxD,OAAO,cAAc,mBAAmB,EACxC,OAAO,OAAO,OAA2B,SAA4B;AACpE,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAClF,UAAM,SAAS,KAAK,QAAQ,KAAK,QAAQ,QAAQ,IAAI,CAAC;AACtD,UAAM,KAAK,MAAM,UAAU,KAAK,MAAM;AACtC,UAAM,KAAK,GAAG,sBAAsB;AACpC,UAAM,WAAW,GAAG,KAAK,KAAK;AAC9B,OAAG,MAAM;AACT,YAAQ,IAAI;AACZ,YAAQ,IAAI,KAAK,eAAK,SAAI,eAAK,oBAAoB,gBAAM,GAAG,cAAI,GAAG,SAAS,KAAK,GAAG,eAAK,EAAE;AAC3F,YAAQ,IAAI,KAAK,aAAG,GAAG,SAAS,SAAS,aAAa,SAAS,SAAS,SAAS,eAAK,EAAE;AACxF,YAAQ,IAAI;AAAA,EACd,CAAC;AAGH,cACG,QAAQ,MAAM,EACd,YAAY,sBAAsB,EAClC,OAAO,cAAc,mBAAmB,EACxC,OAAO,OAAO,SAA4B;AACzC,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAClF,UAAM,SAAS,KAAK,QAAQ,KAAK,QAAQ,QAAQ,IAAI,CAAC;AACtD,UAAM,KAAK,MAAM,UAAU,KAAK,MAAM;AACtC,UAAM,KAAK,GAAG,sBAAsB;AACpC,UAAM,YAAY,GAAG,KAAK;AAC1B,OAAG,MAAM;AAET,QAAI,UAAU,WAAW,GAAG;AAC1B,cAAQ,IAAI;AAAA,IAAO,aAAG,2DAA2D,eAAK;AAAA,CAAI;AAC1F;AAAA,IACF;AAEA,YAAQ,IAAI;AACZ,YAAQ,IAAI,KAAK,gBAAM,GAAG,cAAI,YAAY,eAAK;AAAA,CAAI;AACnD,eAAW,KAAK,WAAW;AACzB,YAAM,OAAO,IAAI,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAC9E,cAAQ,IAAI,KAAK,gBAAM,GAAG,cAAI,GAAG,EAAE,KAAK,GAAG,eAAK,KAAK,aAAG,GAAG,IAAI,KAAK,EAAE,SAAS,aAAa,EAAE,SAAS,SAAS,eAAK,EAAE;AAAA,IACzH;AACA,YAAQ,IAAI;AAAA,EACd,CAAC;AAGH,cACG,QAAQ,cAAc,EACtB,YAAY,6DAA6D,EACzE,OAAO,cAAc,mBAAmB,EACxC,OAAO,kBAAkB,wCAAwC,SAAS,EAC1E,OAAO,OAAO,OAA2B,SAA4C;AACpF,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAClF,UAAM,SAAS,KAAK,QAAQ,KAAK,QAAQ,QAAQ,IAAI,CAAC;AACtD,UAAM,KAAK,MAAM,UAAU,KAAK,MAAM;AACtC,UAAM,KAAK,GAAG,sBAAsB;AAEpC,UAAM,WAAW,QAAQ,GAAG,KAAK,KAAK,IAAI,GAAG,WAAW;AACxD,QAAI,CAAC,UAAU;AACb,cAAQ,IAAI;AAAA,IAAO,aAAG,GAAG,QAAQ,aAAa,KAAK,iBAAiB,0DAA0D,IAAI,eAAK;AAAA,CAAI;AAC3I,SAAG,MAAM;AACT;AAAA,IACF;AAEA,UAAM,OAAO,GAAG,KAAK,UAAU,GAAG,gBAAgB,CAAC;AACnD,OAAG,MAAM;AAET,QAAI,KAAK,WAAW,QAAQ;AAC1B,cAAQ,IAAI,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;AACzC;AAAA,IACF;AAEA,UAAM,WAAW,IAAI,KAAK,KAAK,KAAK,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAC1F,YAAQ,IAAI;AACZ,YAAQ,IAAI,KAAK,gBAAM,GAAG,cAAI,aAAa,eAAK,KAAK,aAAG,IAAI,KAAK,KAAK,KAAK,MAAM,QAAQ,mBAAc,eAAK;AAAA,CAAI;AAChH,YAAQ,IAAI,KAAK,eAAK,IAAI,eAAK,IAAI,cAAI,GAAG,KAAK,WAAW,MAAM,GAAG,eAAK,GAAG,aAAG,iBAAiB,eAAK,OAAO,aAAG,IAAI,eAAK,IAAI,cAAI,GAAG,KAAK,aAAa,MAAM,GAAG,eAAK,GAAG,aAAG,mBAAmB,eAAK,EAAE;AAClM,YAAQ,IAAI,KAAK,eAAK,IAAI,eAAK,IAAI,cAAI,GAAG,KAAK,WAAW,MAAM,GAAG,eAAK,GAAG,aAAG,eAAe,eAAK,SAAS,aAAG,IAAI,eAAK,IAAI,cAAI,GAAG,KAAK,aAAa,MAAM,GAAG,eAAK,GAAG,aAAG,iBAAiB,eAAK,EAAE;AAEhM,QAAI,KAAK,WAAW,QAAQ;AAC1B,UAAI,KAAK,WAAW,SAAS,GAAG;AAC9B,gBAAQ,IAAI;AAAA,IAAO,aAAG,iBAAiB,eAAK,EAAE;AAC9C,mBAAW,KAAK,KAAK,WAAW,MAAM,GAAG,EAAE,GAAG;AAC5C,kBAAQ,IAAI,OAAO,eAAK,IAAI,eAAK,IAAI,gBAAM,GAAG,EAAE,IAAI,GAAG,eAAK,KAAK,aAAG,GAAG,EAAE,IAAI,KAAK,EAAE,QAAQ,GAAG,eAAK,EAAE;AAAA,QACxG;AACA,YAAI,KAAK,WAAW,SAAS,GAAI,SAAQ,IAAI,OAAO,aAAG,aAAQ,KAAK,WAAW,SAAS,EAAE,QAAQ,eAAK,EAAE;AAAA,MAC3G;AACA,UAAI,KAAK,aAAa,SAAS,GAAG;AAChC,gBAAQ,IAAI;AAAA,IAAO,aAAG,mBAAmB,eAAK,EAAE;AAChD,mBAAW,KAAK,KAAK,aAAa,MAAM,GAAG,EAAE,GAAG;AAC9C,kBAAQ,IAAI,OAAO,aAAG,KAAK,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE,QAAQ,GAAG,eAAK,EAAE;AAAA,QACvE;AACA,YAAI,KAAK,aAAa,SAAS,GAAI,SAAQ,IAAI,OAAO,aAAG,aAAQ,KAAK,aAAa,SAAS,EAAE,QAAQ,eAAK,EAAE;AAAA,MAC/G;AAAA,IACF;AAEA,YAAQ,IAAI;AAAA,EACd,CAAC;AACL;",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function register(program: Command): void;
3
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4D/C"}
@@ -0,0 +1,107 @@
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 status_exports = {};
30
+ __export(status_exports, {
31
+ register: () => register
32
+ });
33
+ module.exports = __toCommonJS(status_exports);
34
+ var path = __toESM(require("path"));
35
+ var import_ui = require("../ui");
36
+ function register(program) {
37
+ program.command("status [projectPath]").description("Show index statistics").action(async (projectPath) => {
38
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
39
+ const target = path.resolve(projectPath ?? process.cwd());
40
+ const cg = await KiroGraph.open(target);
41
+ const stats = await cg.getStats();
42
+ console.log();
43
+ console.log((0, import_ui.section)(" Graph"));
44
+ console.log(` ${(0, import_ui.label)("Files")} ${(0, import_ui.value)(String(stats.files))}`);
45
+ console.log(` ${(0, import_ui.label)("Symbols")} ${(0, import_ui.value)(String(stats.nodes))}`);
46
+ console.log(` ${(0, import_ui.label)("Edges")} ${(0, import_ui.value)(String(stats.edges))}`);
47
+ if (stats.frameworks.length > 0) {
48
+ console.log(` ${(0, import_ui.label)("Frameworks")} ${(0, import_ui.value)(stats.frameworks.join(", "))}`);
49
+ }
50
+ const kindEntries = Object.entries(stats.nodesByKind).sort((a, b) => b[1] - a[1]);
51
+ if (kindEntries.length > 0) {
52
+ console.log(`
53
+ ${(0, import_ui.label)("By kind")}`);
54
+ console.log((0, import_ui.renderTable)(kindEntries.map(([k, v]) => [k, String(v)])));
55
+ }
56
+ const langEntries = Object.entries(stats.filesByLanguage ?? {}).sort((a, b) => b[1] - a[1]);
57
+ if (langEntries.length > 0) {
58
+ console.log(`
59
+ ${(0, import_ui.label)("By language")}`);
60
+ console.log((0, import_ui.renderTable)(langEntries.map(([k, v]) => [k, String(v)])));
61
+ }
62
+ const threshold = stats.syncWarningThreshold ?? 10;
63
+ const pendingFiles = stats.pendingFiles ?? 0;
64
+ const syncRunning = stats.syncRunning ?? false;
65
+ console.log();
66
+ console.log((0, import_ui.section)(" Sync"));
67
+ if (syncRunning) {
68
+ console.log(` ${"\x1B[33m"}\u26A0 Sync is currently running in the background.${import_ui.reset}`);
69
+ } else {
70
+ console.log(` ${(0, import_ui.label)("Status")} ${import_ui.dim}idle${import_ui.reset}`);
71
+ }
72
+ if (pendingFiles > 0) {
73
+ const warn = threshold > 0 && pendingFiles >= threshold;
74
+ const pendingLabel = warn ? `${"\x1B[33m"}${pendingFiles} files pending${import_ui.reset}` : `${import_ui.dim}${pendingFiles} files pending${import_ui.reset}`;
75
+ console.log(` ${(0, import_ui.label)("Pending")} ${pendingLabel}`);
76
+ if (warn) {
77
+ console.log(` ${"\x1B[33m"}\u26A0 Index may be stale. Run \`kirograph sync\` to update.${import_ui.reset}`);
78
+ }
79
+ } else {
80
+ console.log(` ${(0, import_ui.label)("Pending")} ${import_ui.green}up to date${import_ui.reset}`);
81
+ }
82
+ console.log();
83
+ console.log((0, import_ui.section)(" Semantic Search"));
84
+ if (stats.embeddingsEnabled) {
85
+ const engineLabel = stats.semanticEngine === "sqlite-vec" ? `sqlite-vec ${import_ui.dim}(${stats.vecIndexCount} entries in ANN index)${import_ui.reset}` : stats.semanticEngine === "orama" ? `orama ${import_ui.dim}(hybrid \u2014 ${stats.vecIndexCount} docs in index)${import_ui.reset}` : stats.semanticEngine === "pglite" ? `pglite+pgvector ${import_ui.dim}(hybrid \u2014 ${stats.vecIndexCount} rows in DB)${import_ui.reset}` : stats.semanticEngine === "lancedb" ? `lancedb ${import_ui.dim}(${stats.vecIndexCount} entries in ANN index)${import_ui.reset}` : stats.semanticEngine === "qdrant" ? `qdrant ${import_ui.dim}(${stats.vecIndexCount} points in collection)${import_ui.reset}` : stats.semanticEngine === "typesense" ? `typesense ${import_ui.dim}(${stats.vecIndexCount} documents in collection)${import_ui.reset}` : `in-process cosine`;
86
+ const total = stats.embeddableNodeCount > 0 ? stats.embeddableNodeCount : stats.nodes;
87
+ const displayed = Math.min(stats.embeddingCount, total);
88
+ const coverage = total > 0 ? Math.min(100, Math.round(stats.embeddingCount / total * 100)) : 0;
89
+ console.log(` ${(0, import_ui.label)("Status")} ${import_ui.green}${import_ui.bold}enabled${import_ui.reset}`);
90
+ console.log(` ${(0, import_ui.label)("Model")} ${(0, import_ui.value)(stats.embeddingModel)}`);
91
+ console.log(` ${(0, import_ui.label)("Engine")} ${import_ui.violet}${engineLabel}${import_ui.reset}`);
92
+ if (stats.engineFallback) {
93
+ console.log(` ${"\x1B[33m"}\u26A0 engine fallback: ${stats.engineFallback}${import_ui.reset}`);
94
+ }
95
+ console.log(` ${(0, import_ui.label)("Indexed")} ${(0, import_ui.value)(`${displayed} / ${total}`)} ${import_ui.dim}(${coverage}%)${import_ui.reset}`);
96
+ } else {
97
+ console.log(` ${(0, import_ui.label)("Status")} ${import_ui.dim}disabled${import_ui.reset}`);
98
+ }
99
+ console.log();
100
+ cg.close();
101
+ });
102
+ }
103
+ // Annotate the CommonJS export names for ESM import in node:
104
+ 0 && (module.exports = {
105
+ register
106
+ });
107
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/bin/commands/status.ts"],
4
+ "sourcesContent": ["import { Command } from 'commander';\nimport * as path from 'path';\nimport { dim, reset, violet, bold, green, label, value, section, renderTable } from '../ui';\n\nexport function register(program: Command): void {\n program\n .command('status [projectPath]')\n .description('Show index statistics')\n .action(async (projectPath: string | undefined) => {\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const target = path.resolve(projectPath ?? process.cwd());\n const cg = await KiroGraph.open(target);\n const stats = await cg.getStats();\n\n console.log();\n console.log(section(' Graph'));\n console.log(` ${label('Files')} ${value(String(stats.files))}`);\n console.log(` ${label('Symbols')} ${value(String(stats.nodes))}`);\n console.log(` ${label('Edges')} ${value(String(stats.edges))}`);\n\n if (stats.frameworks.length > 0) {\n console.log(` ${label('Frameworks')} ${value(stats.frameworks.join(', '))}`);\n }\n\n const kindEntries = Object.entries(stats.nodesByKind).sort((a, b) => b[1] - a[1]);\n if (kindEntries.length > 0) {\n console.log(`\\n ${label('By kind')}`);\n console.log(renderTable(kindEntries.map(([k, v]) => [k, String(v)])));\n }\n\n const langEntries = Object.entries(stats.filesByLanguage ?? {}).sort((a, b) => b[1] - a[1]);\n if (langEntries.length > 0) {\n console.log(`\\n ${label('By language')}`);\n console.log(renderTable(langEntries.map(([k, v]) => [k, String(v)])));\n }\n\n // Sync state\n const threshold = stats.syncWarningThreshold ?? 10;\n const pendingFiles: number = stats.pendingFiles ?? 0;\n const syncRunning: boolean = stats.syncRunning ?? false;\n console.log();\n console.log(section(' Sync'));\n if (syncRunning) {\n console.log(` ${'\\x1b[33m'}\u26A0 Sync is currently running in the background.${reset}`);\n } else {\n console.log(` ${label('Status')} ${dim}idle${reset}`);\n }\n if (pendingFiles > 0) {\n const warn = threshold > 0 && pendingFiles >= threshold;\n const pendingLabel = warn ? `${'\\x1b[33m'}${pendingFiles} files pending${reset}` : `${dim}${pendingFiles} files pending${reset}`;\n console.log(` ${label('Pending')} ${pendingLabel}`);\n if (warn) {\n console.log(` ${'\\x1b[33m'}\u26A0 Index may be stale. Run \\`kirograph sync\\` to update.${reset}`);\n }\n } else {\n console.log(` ${label('Pending')} ${green}up to date${reset}`);\n }\n\n console.log();\n console.log(section(' Semantic Search'));\n if (stats.embeddingsEnabled) {\n const engineLabel =\n stats.semanticEngine === 'sqlite-vec' ? `sqlite-vec ${dim}(${stats.vecIndexCount} entries in ANN index)${reset}` :\n stats.semanticEngine === 'orama' ? `orama ${dim}(hybrid \u2014 ${stats.vecIndexCount} docs in index)${reset}` :\n stats.semanticEngine === 'pglite' ? `pglite+pgvector ${dim}(hybrid \u2014 ${stats.vecIndexCount} rows in DB)${reset}` :\n stats.semanticEngine === 'lancedb' ? `lancedb ${dim}(${stats.vecIndexCount} entries in ANN index)${reset}` :\n stats.semanticEngine === 'qdrant' ? `qdrant ${dim}(${stats.vecIndexCount} points in collection)${reset}` :\n stats.semanticEngine === 'typesense' ? `typesense ${dim}(${stats.vecIndexCount} documents in collection)${reset}` :\n `in-process cosine`;\n const total = stats.embeddableNodeCount > 0 ? stats.embeddableNodeCount : stats.nodes;\n const displayed = Math.min(stats.embeddingCount, total);\n const coverage = total > 0 ? Math.min(100, Math.round((stats.embeddingCount / total) * 100)) : 0;\n console.log(` ${label('Status')} ${green}${bold}enabled${reset}`);\n console.log(` ${label('Model')} ${value(stats.embeddingModel)}`);\n console.log(` ${label('Engine')} ${violet}${engineLabel}${reset}`);\n if (stats.engineFallback) {\n console.log(` ${'\\x1b[33m'}\u26A0 engine fallback: ${stats.engineFallback}${reset}`);\n }\n console.log(` ${label('Indexed')} ${value(`${displayed} / ${total}`)} ${dim}(${coverage}%)${reset}`);\n } else {\n console.log(` ${label('Status')} ${dim}disabled${reset}`);\n }\n\n console.log();\n cg.close();\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function register(program: Command): void;
3
+ //# sourceMappingURL=stop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyC/C"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.register = register;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs"));
39
+ const ui_1 = require("../ui");
40
+ const SERVER_STATE_FILE = 'typesense-server.json';
41
+ function register(program) {
42
+ program
43
+ .command('stop [projectPath]')
44
+ .description('Stop background engine processes (e.g. Typesense)')
45
+ .action(async (projectPath) => {
46
+ const target = path.resolve(projectPath ?? process.cwd());
47
+ const stateFile = path.join(target, '.kirograph', SERVER_STATE_FILE);
48
+ if (!fs.existsSync(stateFile)) {
49
+ console.log(`\n ${ui_1.dim}No background engine processes found.${ui_1.reset}\n`);
50
+ return;
51
+ }
52
+ let state;
53
+ try {
54
+ state = JSON.parse(fs.readFileSync(stateFile, 'utf8'));
55
+ }
56
+ catch {
57
+ fs.unlinkSync(stateFile);
58
+ console.log(`\n ${ui_1.dim}State file was corrupt — cleaned up.${ui_1.reset}\n`);
59
+ return;
60
+ }
61
+ console.log();
62
+ let killed = false;
63
+ try {
64
+ process.kill(state.pid, 0); // throws if not alive
65
+ process.kill(state.pid, 'SIGTERM');
66
+ killed = true;
67
+ }
68
+ catch {
69
+ // Process already gone
70
+ }
71
+ fs.unlinkSync(stateFile);
72
+ if (killed) {
73
+ console.log(` ${ui_1.green}✓${ui_1.reset} Stopped Typesense server ${ui_1.dim}(pid ${state.pid}, port ${state.apiPort})${ui_1.reset}`);
74
+ }
75
+ else {
76
+ console.log(` ${ui_1.dim}Typesense server (pid ${state.pid}) was not running — state file cleaned up.${ui_1.reset}`);
77
+ }
78
+ console.log();
79
+ });
80
+ }
81
+ //# sourceMappingURL=stop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/bin/commands/stop.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4BAyCC;AAjDD,2CAA6B;AAC7B,uCAAyB;AACzB,8BAAwD;AAExD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAIlD,SAAgB,QAAQ,CAAC,OAAgB;IACvC,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAErE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,QAAG,wCAAwC,UAAK,IAAI,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,KAAkB,CAAC;QACvB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,OAAO,QAAG,uCAAuC,UAAK,IAAI,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB;YAClD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACnC,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEzB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,UAAK,IAAI,UAAK,8BAA8B,QAAG,QAAQ,KAAK,CAAC,GAAG,UAAU,KAAK,CAAC,OAAO,IAAI,UAAK,EAAE,CAAC,CAAC;QACvH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,QAAG,yBAAyB,KAAK,CAAC,GAAG,6CAA6C,UAAK,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,79 @@
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 surprising_exports = {};
30
+ __export(surprising_exports, {
31
+ register: () => register
32
+ });
33
+ module.exports = __toCommonJS(surprising_exports);
34
+ var path = __toESM(require("path"));
35
+ var import_ui = require("../ui");
36
+ function register(program) {
37
+ program.command("surprising [projectPath]").description("Find non-obvious cross-file connections between distant symbols").option("--limit <n>", "Max results (default: 20)", "20").option("--format <fmt>", "Output format: table | json", "table").action(async (projectPath, opts) => {
38
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
39
+ const target = path.resolve(projectPath ?? process.cwd());
40
+ const cg = await KiroGraph.open(target);
41
+ const limit = Math.max(1, Math.min(100, parseInt(opts.limit) || 20));
42
+ const connections = cg.findSurprisingConnections(limit);
43
+ cg.close();
44
+ if (connections.length === 0) {
45
+ console.log(`
46
+ ${import_ui.dim}No surprising cross-file connections found.${import_ui.reset}
47
+ `);
48
+ return;
49
+ }
50
+ if (opts.format === "json") {
51
+ console.log(JSON.stringify(connections.map((c) => ({
52
+ source: { name: c.source.name, kind: c.source.kind, file: c.source.filePath },
53
+ target: { name: c.target.name, kind: c.target.kind, file: c.target.filePath },
54
+ kind: c.kind,
55
+ score: c.score
56
+ })), null, 2));
57
+ return;
58
+ }
59
+ console.log();
60
+ console.log(` ${import_ui.violet}${import_ui.bold}Surprising Connections${import_ui.reset} ${import_ui.dim}non-obvious cross-file links${import_ui.reset}
61
+ `);
62
+ for (let i = 0; i < connections.length; i++) {
63
+ const c = connections[i];
64
+ const rank = String(i + 1).padStart(2);
65
+ const score = c.score.toFixed(2);
66
+ console.log(` ${import_ui.dim}${rank}.${import_ui.reset} ${import_ui.violet}${import_ui.bold}${c.source.name}${import_ui.reset} ${import_ui.dim}${c.source.kind}${import_ui.reset} ${import_ui.dim}\u2500[${c.kind}]\u2192${import_ui.reset} ${import_ui.violet}${import_ui.bold}${c.target.name}${import_ui.reset} ${import_ui.dim}${c.target.kind}${import_ui.reset} ${import_ui.dim}score: ${score}${import_ui.reset}`);
67
+ console.log(` ${import_ui.dim}${c.source.filePath}${import_ui.reset}`);
68
+ console.log(` ${import_ui.dim}${c.target.filePath}${import_ui.reset}`);
69
+ }
70
+ console.log(`
71
+ ${import_ui.dim}${connections.length} result(s) \u2014 score = path distance \xD7 edge weight${import_ui.reset}
72
+ `);
73
+ });
74
+ }
75
+ // Annotate the CommonJS export names for ESM import in node:
76
+ 0 && (module.exports = {
77
+ register
78
+ });
79
+ //# sourceMappingURL=surprising.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/bin/commands/surprising.ts"],
4
+ "sourcesContent": ["import * as path from 'path';\nimport { Command } from 'commander';\nimport { bold, dim, reset, violet } from '../ui';\n\nexport function register(program: Command): void {\n program\n .command('surprising [projectPath]')\n .description('Find non-obvious cross-file connections between distant symbols')\n .option('--limit <n>', 'Max results (default: 20)', '20')\n .option('--format <fmt>', 'Output format: table | json', 'table')\n .action(async (projectPath: string | undefined, opts: { limit: string; format: string }) => {\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const target = path.resolve(projectPath ?? process.cwd());\n const cg = await KiroGraph.open(target);\n const limit = Math.max(1, Math.min(100, parseInt(opts.limit) || 20));\n const connections = cg.findSurprisingConnections(limit);\n cg.close();\n\n if (connections.length === 0) {\n console.log(`\\n ${dim}No surprising cross-file connections found.${reset}\\n`);\n return;\n }\n\n if (opts.format === 'json') {\n console.log(JSON.stringify(connections.map(c => ({\n source: { name: c.source.name, kind: c.source.kind, file: c.source.filePath },\n target: { name: c.target.name, kind: c.target.kind, file: c.target.filePath },\n kind: c.kind,\n score: c.score,\n })), null, 2));\n return;\n }\n\n console.log();\n console.log(` ${violet}${bold}Surprising Connections${reset} ${dim}non-obvious cross-file links${reset}\\n`);\n\n for (let i = 0; i < connections.length; i++) {\n const c = connections[i];\n const rank = String(i + 1).padStart(2);\n const score = c.score.toFixed(2);\n console.log(` ${dim}${rank}.${reset} ${violet}${bold}${c.source.name}${reset} ${dim}${c.source.kind}${reset} ${dim}\u2500[${c.kind}]\u2192${reset} ${violet}${bold}${c.target.name}${reset} ${dim}${c.target.kind}${reset} ${dim}score: ${score}${reset}`);\n console.log(` ${dim}${c.source.filePath}${reset}`);\n console.log(` ${dim}${c.target.filePath}${reset}`);\n }\n\n console.log(`\\n ${dim}${connections.length} result(s) \u2014 score = path distance \u00D7 edge weight${reset}\\n`);\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAsB;AAEtB,gBAAyC;AAElC,SAAS,SAAS,SAAwB;AAC/C,UACG,QAAQ,0BAA0B,EAClC,YAAY,iEAAiE,EAC7E,OAAO,eAAe,6BAA6B,IAAI,EACvD,OAAO,kBAAkB,+BAA+B,OAAO,EAC/D,OAAO,OAAO,aAAiC,SAA4C;AAC1F,UAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,gBAAgB,CAAC,GAAG;AAClF,UAAM,SAAS,KAAK,QAAQ,eAAe,QAAQ,IAAI,CAAC;AACxD,UAAM,KAAK,MAAM,UAAU,KAAK,MAAM;AACtC,UAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK,EAAE,CAAC;AACnE,UAAM,cAAc,GAAG,0BAA0B,KAAK;AACtD,OAAG,MAAM;AAET,QAAI,YAAY,WAAW,GAAG;AAC5B,cAAQ,IAAI;AAAA,IAAO,aAAG,8CAA8C,eAAK;AAAA,CAAI;AAC7E;AAAA,IACF;AAEA,QAAI,KAAK,WAAW,QAAQ;AAC1B,cAAQ,IAAI,KAAK,UAAU,YAAY,IAAI,QAAM;AAAA,QAC/C,QAAQ,EAAE,MAAM,EAAE,OAAO,MAAM,MAAM,EAAE,OAAO,MAAM,MAAM,EAAE,OAAO,SAAS;AAAA,QAC5E,QAAQ,EAAE,MAAM,EAAE,OAAO,MAAM,MAAM,EAAE,OAAO,MAAM,MAAM,EAAE,OAAO,SAAS;AAAA,QAC5E,MAAM,EAAE;AAAA,QACR,OAAO,EAAE;AAAA,MACX,EAAE,GAAG,MAAM,CAAC,CAAC;AACb;AAAA,IACF;AAEA,YAAQ,IAAI;AACZ,YAAQ,IAAI,KAAK,gBAAM,GAAG,cAAI,yBAAyB,eAAK,KAAK,aAAG,+BAA+B,eAAK;AAAA,CAAI;AAE5G,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,YAAM,IAAI,YAAY,CAAC;AACvB,YAAM,OAAO,OAAO,IAAI,CAAC,EAAE,SAAS,CAAC;AACrC,YAAM,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC/B,cAAQ,IAAI,KAAK,aAAG,GAAG,IAAI,IAAI,eAAK,IAAI,gBAAM,GAAG,cAAI,GAAG,EAAE,OAAO,IAAI,GAAG,eAAK,KAAK,aAAG,GAAG,EAAE,OAAO,IAAI,GAAG,eAAK,KAAK,aAAG,UAAK,EAAE,IAAI,UAAK,eAAK,KAAK,gBAAM,GAAG,cAAI,GAAG,EAAE,OAAO,IAAI,GAAG,eAAK,KAAK,aAAG,GAAG,EAAE,OAAO,IAAI,GAAG,eAAK,KAAK,aAAG,UAAU,KAAK,GAAG,eAAK,EAAE;AACrP,cAAQ,IAAI,SAAS,aAAG,GAAG,EAAE,OAAO,QAAQ,GAAG,eAAK,EAAE;AACtD,cAAQ,IAAI,SAAS,aAAG,GAAG,EAAE,OAAO,QAAQ,GAAG,eAAK,EAAE;AAAA,IACxD;AAEA,YAAQ,IAAI;AAAA,IAAO,aAAG,GAAG,YAAY,MAAM,2DAAmD,eAAK;AAAA,CAAI;AAAA,EACzG,CAAC;AACL;",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function register(program: Command): void;
3
+ //# sourceMappingURL=sync-if-dirty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-if-dirty.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/sync-if-dirty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2B/C"}
@@ -0,0 +1,67 @@
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 sync_if_dirty_exports = {};
30
+ __export(sync_if_dirty_exports, {
31
+ register: () => register
32
+ });
33
+ module.exports = __toCommonJS(sync_if_dirty_exports);
34
+ var path = __toESM(require("path"));
35
+ var import_ui = require("../ui");
36
+ var import_utils = require("./utils");
37
+ function register(program) {
38
+ program.command("sync-if-dirty [projectPath]").description("Sync only if a dirty marker is present").option("-q, --quiet", "Suppress output").action(async (projectPath, opts) => {
39
+ const KiroGraph = (await Promise.resolve().then(() => require("../../index.js"))).default;
40
+ const target = path.resolve(projectPath ?? process.cwd());
41
+ if (!KiroGraph.isInitialized(target)) {
42
+ process.exit(0);
43
+ }
44
+ const cg = await KiroGraph.open(target);
45
+ const result = await cg.syncIfDirty();
46
+ if (!opts.quiet) {
47
+ if (result) {
48
+ const changed = result.added.length + result.modified.length + result.removed.length;
49
+ if (changed === 0) {
50
+ console.log(` ${import_ui.dim}Index up to date.${import_ui.reset}`);
51
+ } else {
52
+ console.log((0, import_utils.formatSyncCounts)(result));
53
+ }
54
+ if (result.errors.length) console.warn(` \x1B[33m\u26A0 ${result.errors.length} warning(s)\x1B[0m`);
55
+ (0, import_utils.warnFallback)(cg.getEngineFallback());
56
+ } else {
57
+ console.log(` ${import_ui.dim}Not dirty, skipped.${import_ui.reset}`);
58
+ }
59
+ }
60
+ cg.close();
61
+ });
62
+ }
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ register
66
+ });
67
+ //# sourceMappingURL=sync-if-dirty.js.map