@selvakumaresra/specship 0.1.2 → 0.1.3

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 (576) hide show
  1. package/package.json +8 -3
  2. package/scripts/sync-shim-version.mjs +64 -0
  3. package/dist/bin/node-version-check.d.ts +0 -37
  4. package/dist/bin/node-version-check.d.ts.map +0 -1
  5. package/dist/bin/node-version-check.js +0 -79
  6. package/dist/bin/node-version-check.js.map +0 -1
  7. package/dist/bin/specship.d.ts +0 -25
  8. package/dist/bin/specship.d.ts.map +0 -1
  9. package/dist/bin/specship.js +0 -2018
  10. package/dist/bin/specship.js.map +0 -1
  11. package/dist/bin/uninstall.d.ts +0 -13
  12. package/dist/bin/uninstall.d.ts.map +0 -1
  13. package/dist/bin/uninstall.js +0 -35
  14. package/dist/bin/uninstall.js.map +0 -1
  15. package/dist/context/formatter.d.ts +0 -30
  16. package/dist/context/formatter.d.ts.map +0 -1
  17. package/dist/context/formatter.js +0 -263
  18. package/dist/context/formatter.js.map +0 -1
  19. package/dist/context/index.d.ts +0 -119
  20. package/dist/context/index.d.ts.map +0 -1
  21. package/dist/context/index.js +0 -1289
  22. package/dist/context/index.js.map +0 -1
  23. package/dist/context/markers.d.ts +0 -19
  24. package/dist/context/markers.d.ts.map +0 -1
  25. package/dist/context/markers.js +0 -22
  26. package/dist/context/markers.js.map +0 -1
  27. package/dist/db/index.d.ts +0 -101
  28. package/dist/db/index.d.ts.map +0 -1
  29. package/dist/db/index.js +0 -276
  30. package/dist/db/index.js.map +0 -1
  31. package/dist/db/migrations.d.ts +0 -44
  32. package/dist/db/migrations.d.ts.map +0 -1
  33. package/dist/db/migrations.js +0 -427
  34. package/dist/db/migrations.js.map +0 -1
  35. package/dist/db/queries.d.ts +0 -357
  36. package/dist/db/queries.d.ts.map +0 -1
  37. package/dist/db/queries.js +0 -1504
  38. package/dist/db/queries.js.map +0 -1
  39. package/dist/db/schema.sql +0 -410
  40. package/dist/db/spec-queries.d.ts +0 -101
  41. package/dist/db/spec-queries.d.ts.map +0 -1
  42. package/dist/db/spec-queries.js +0 -675
  43. package/dist/db/spec-queries.js.map +0 -1
  44. package/dist/db/sqlite-adapter.d.ts +0 -65
  45. package/dist/db/sqlite-adapter.d.ts.map +0 -1
  46. package/dist/db/sqlite-adapter.js +0 -214
  47. package/dist/db/sqlite-adapter.js.map +0 -1
  48. package/dist/directory.d.ts +0 -57
  49. package/dist/directory.d.ts.map +0 -1
  50. package/dist/directory.js +0 -253
  51. package/dist/directory.js.map +0 -1
  52. package/dist/errors.d.ts +0 -136
  53. package/dist/errors.d.ts.map +0 -1
  54. package/dist/errors.js +0 -219
  55. package/dist/errors.js.map +0 -1
  56. package/dist/extraction/dfm-extractor.d.ts +0 -31
  57. package/dist/extraction/dfm-extractor.d.ts.map +0 -1
  58. package/dist/extraction/dfm-extractor.js +0 -151
  59. package/dist/extraction/dfm-extractor.js.map +0 -1
  60. package/dist/extraction/generated-detection.d.ts +0 -30
  61. package/dist/extraction/generated-detection.d.ts.map +0 -1
  62. package/dist/extraction/generated-detection.js +0 -80
  63. package/dist/extraction/generated-detection.js.map +0 -1
  64. package/dist/extraction/grammars.d.ts +0 -100
  65. package/dist/extraction/grammars.d.ts.map +0 -1
  66. package/dist/extraction/grammars.js +0 -426
  67. package/dist/extraction/grammars.js.map +0 -1
  68. package/dist/extraction/index.d.ts +0 -138
  69. package/dist/extraction/index.d.ts.map +0 -1
  70. package/dist/extraction/index.js +0 -1394
  71. package/dist/extraction/index.js.map +0 -1
  72. package/dist/extraction/languages/c-cpp.d.ts +0 -4
  73. package/dist/extraction/languages/c-cpp.d.ts.map +0 -1
  74. package/dist/extraction/languages/c-cpp.js +0 -171
  75. package/dist/extraction/languages/c-cpp.js.map +0 -1
  76. package/dist/extraction/languages/csharp.d.ts +0 -3
  77. package/dist/extraction/languages/csharp.d.ts.map +0 -1
  78. package/dist/extraction/languages/csharp.js +0 -73
  79. package/dist/extraction/languages/csharp.js.map +0 -1
  80. package/dist/extraction/languages/dart.d.ts +0 -3
  81. package/dist/extraction/languages/dart.d.ts.map +0 -1
  82. package/dist/extraction/languages/dart.js +0 -192
  83. package/dist/extraction/languages/dart.js.map +0 -1
  84. package/dist/extraction/languages/go.d.ts +0 -3
  85. package/dist/extraction/languages/go.d.ts.map +0 -1
  86. package/dist/extraction/languages/go.js +0 -74
  87. package/dist/extraction/languages/go.js.map +0 -1
  88. package/dist/extraction/languages/index.d.ts +0 -10
  89. package/dist/extraction/languages/index.d.ts.map +0 -1
  90. package/dist/extraction/languages/index.js +0 -51
  91. package/dist/extraction/languages/index.js.map +0 -1
  92. package/dist/extraction/languages/java.d.ts +0 -3
  93. package/dist/extraction/languages/java.d.ts.map +0 -1
  94. package/dist/extraction/languages/java.js +0 -70
  95. package/dist/extraction/languages/java.js.map +0 -1
  96. package/dist/extraction/languages/javascript.d.ts +0 -3
  97. package/dist/extraction/languages/javascript.d.ts.map +0 -1
  98. package/dist/extraction/languages/javascript.js +0 -90
  99. package/dist/extraction/languages/javascript.js.map +0 -1
  100. package/dist/extraction/languages/kotlin.d.ts +0 -3
  101. package/dist/extraction/languages/kotlin.d.ts.map +0 -1
  102. package/dist/extraction/languages/kotlin.js +0 -259
  103. package/dist/extraction/languages/kotlin.js.map +0 -1
  104. package/dist/extraction/languages/lua.d.ts +0 -3
  105. package/dist/extraction/languages/lua.d.ts.map +0 -1
  106. package/dist/extraction/languages/lua.js +0 -150
  107. package/dist/extraction/languages/lua.js.map +0 -1
  108. package/dist/extraction/languages/luau.d.ts +0 -3
  109. package/dist/extraction/languages/luau.d.ts.map +0 -1
  110. package/dist/extraction/languages/luau.js +0 -37
  111. package/dist/extraction/languages/luau.js.map +0 -1
  112. package/dist/extraction/languages/objc.d.ts +0 -3
  113. package/dist/extraction/languages/objc.d.ts.map +0 -1
  114. package/dist/extraction/languages/objc.js +0 -133
  115. package/dist/extraction/languages/objc.js.map +0 -1
  116. package/dist/extraction/languages/pascal.d.ts +0 -3
  117. package/dist/extraction/languages/pascal.d.ts.map +0 -1
  118. package/dist/extraction/languages/pascal.js +0 -66
  119. package/dist/extraction/languages/pascal.js.map +0 -1
  120. package/dist/extraction/languages/php.d.ts +0 -3
  121. package/dist/extraction/languages/php.d.ts.map +0 -1
  122. package/dist/extraction/languages/php.js +0 -107
  123. package/dist/extraction/languages/php.js.map +0 -1
  124. package/dist/extraction/languages/python.d.ts +0 -3
  125. package/dist/extraction/languages/python.d.ts.map +0 -1
  126. package/dist/extraction/languages/python.js +0 -56
  127. package/dist/extraction/languages/python.js.map +0 -1
  128. package/dist/extraction/languages/ruby.d.ts +0 -3
  129. package/dist/extraction/languages/ruby.d.ts.map +0 -1
  130. package/dist/extraction/languages/ruby.js +0 -114
  131. package/dist/extraction/languages/ruby.js.map +0 -1
  132. package/dist/extraction/languages/rust.d.ts +0 -3
  133. package/dist/extraction/languages/rust.d.ts.map +0 -1
  134. package/dist/extraction/languages/rust.js +0 -109
  135. package/dist/extraction/languages/rust.js.map +0 -1
  136. package/dist/extraction/languages/scala.d.ts +0 -3
  137. package/dist/extraction/languages/scala.d.ts.map +0 -1
  138. package/dist/extraction/languages/scala.js +0 -139
  139. package/dist/extraction/languages/scala.js.map +0 -1
  140. package/dist/extraction/languages/swift.d.ts +0 -3
  141. package/dist/extraction/languages/swift.d.ts.map +0 -1
  142. package/dist/extraction/languages/swift.js +0 -91
  143. package/dist/extraction/languages/swift.js.map +0 -1
  144. package/dist/extraction/languages/typescript.d.ts +0 -3
  145. package/dist/extraction/languages/typescript.d.ts.map +0 -1
  146. package/dist/extraction/languages/typescript.js +0 -129
  147. package/dist/extraction/languages/typescript.js.map +0 -1
  148. package/dist/extraction/liquid-extractor.d.ts +0 -52
  149. package/dist/extraction/liquid-extractor.d.ts.map +0 -1
  150. package/dist/extraction/liquid-extractor.js +0 -313
  151. package/dist/extraction/liquid-extractor.js.map +0 -1
  152. package/dist/extraction/mybatis-extractor.d.ts +0 -48
  153. package/dist/extraction/mybatis-extractor.d.ts.map +0 -1
  154. package/dist/extraction/mybatis-extractor.js +0 -198
  155. package/dist/extraction/mybatis-extractor.js.map +0 -1
  156. package/dist/extraction/parse-worker.d.ts +0 -8
  157. package/dist/extraction/parse-worker.d.ts.map +0 -1
  158. package/dist/extraction/parse-worker.js +0 -94
  159. package/dist/extraction/parse-worker.js.map +0 -1
  160. package/dist/extraction/specs/markdown-spec-extractor.d.ts +0 -59
  161. package/dist/extraction/specs/markdown-spec-extractor.d.ts.map +0 -1
  162. package/dist/extraction/specs/markdown-spec-extractor.js +0 -327
  163. package/dist/extraction/specs/markdown-spec-extractor.js.map +0 -1
  164. package/dist/extraction/specs/types.d.ts +0 -39
  165. package/dist/extraction/specs/types.d.ts.map +0 -1
  166. package/dist/extraction/specs/types.js +0 -8
  167. package/dist/extraction/specs/types.js.map +0 -1
  168. package/dist/extraction/svelte-extractor.d.ts +0 -56
  169. package/dist/extraction/svelte-extractor.d.ts.map +0 -1
  170. package/dist/extraction/svelte-extractor.js +0 -272
  171. package/dist/extraction/svelte-extractor.js.map +0 -1
  172. package/dist/extraction/tree-sitter-helpers.d.ts +0 -28
  173. package/dist/extraction/tree-sitter-helpers.d.ts.map +0 -1
  174. package/dist/extraction/tree-sitter-helpers.js +0 -103
  175. package/dist/extraction/tree-sitter-helpers.js.map +0 -1
  176. package/dist/extraction/tree-sitter-types.d.ts +0 -193
  177. package/dist/extraction/tree-sitter-types.d.ts.map +0 -1
  178. package/dist/extraction/tree-sitter-types.js +0 -10
  179. package/dist/extraction/tree-sitter-types.js.map +0 -1
  180. package/dist/extraction/tree-sitter.d.ts +0 -317
  181. package/dist/extraction/tree-sitter.d.ts.map +0 -1
  182. package/dist/extraction/tree-sitter.js +0 -3092
  183. package/dist/extraction/tree-sitter.js.map +0 -1
  184. package/dist/extraction/vue-extractor.d.ts +0 -51
  185. package/dist/extraction/vue-extractor.d.ts.map +0 -1
  186. package/dist/extraction/vue-extractor.js +0 -251
  187. package/dist/extraction/vue-extractor.js.map +0 -1
  188. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  189. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  190. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  191. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  192. package/dist/extraction/wasm-runtime-flags.d.ts +0 -38
  193. package/dist/extraction/wasm-runtime-flags.d.ts.map +0 -1
  194. package/dist/extraction/wasm-runtime-flags.js +0 -106
  195. package/dist/extraction/wasm-runtime-flags.js.map +0 -1
  196. package/dist/graph/index.d.ts +0 -8
  197. package/dist/graph/index.d.ts.map +0 -1
  198. package/dist/graph/index.js +0 -13
  199. package/dist/graph/index.js.map +0 -1
  200. package/dist/graph/queries.d.ts +0 -106
  201. package/dist/graph/queries.d.ts.map +0 -1
  202. package/dist/graph/queries.js +0 -366
  203. package/dist/graph/queries.js.map +0 -1
  204. package/dist/graph/traversal.d.ts +0 -127
  205. package/dist/graph/traversal.d.ts.map +0 -1
  206. package/dist/graph/traversal.js +0 -531
  207. package/dist/graph/traversal.js.map +0 -1
  208. package/dist/index.d.ts +0 -551
  209. package/dist/index.d.ts.map +0 -1
  210. package/dist/index.js +0 -1165
  211. package/dist/index.js.map +0 -1
  212. package/dist/installer/config-writer.d.ts +0 -28
  213. package/dist/installer/config-writer.d.ts.map +0 -1
  214. package/dist/installer/config-writer.js +0 -91
  215. package/dist/installer/config-writer.js.map +0 -1
  216. package/dist/installer/index.d.ts +0 -87
  217. package/dist/installer/index.d.ts.map +0 -1
  218. package/dist/installer/index.js +0 -409
  219. package/dist/installer/index.js.map +0 -1
  220. package/dist/installer/instructions-template.d.ts +0 -18
  221. package/dist/installer/instructions-template.d.ts.map +0 -1
  222. package/dist/installer/instructions-template.js +0 -21
  223. package/dist/installer/instructions-template.js.map +0 -1
  224. package/dist/installer/targets/claude.d.ts +0 -88
  225. package/dist/installer/targets/claude.d.ts.map +0 -1
  226. package/dist/installer/targets/claude.js +0 -582
  227. package/dist/installer/targets/claude.js.map +0 -1
  228. package/dist/installer/targets/registry.d.ts +0 -19
  229. package/dist/installer/targets/registry.d.ts.map +0 -1
  230. package/dist/installer/targets/registry.js +0 -31
  231. package/dist/installer/targets/registry.js.map +0 -1
  232. package/dist/installer/targets/shared.d.ts +0 -62
  233. package/dist/installer/targets/shared.d.ts.map +0 -1
  234. package/dist/installer/targets/shared.js +0 -207
  235. package/dist/installer/targets/shared.js.map +0 -1
  236. package/dist/installer/targets/types.d.ts +0 -76
  237. package/dist/installer/targets/types.d.ts.map +0 -1
  238. package/dist/installer/targets/types.js +0 -12
  239. package/dist/installer/targets/types.js.map +0 -1
  240. package/dist/isolation/worktree.d.ts +0 -65
  241. package/dist/isolation/worktree.d.ts.map +0 -1
  242. package/dist/isolation/worktree.js +0 -231
  243. package/dist/isolation/worktree.js.map +0 -1
  244. package/dist/mcp/daemon-paths.d.ts +0 -46
  245. package/dist/mcp/daemon-paths.d.ts.map +0 -1
  246. package/dist/mcp/daemon-paths.js +0 -125
  247. package/dist/mcp/daemon-paths.js.map +0 -1
  248. package/dist/mcp/daemon.d.ts +0 -161
  249. package/dist/mcp/daemon.d.ts.map +0 -1
  250. package/dist/mcp/daemon.js +0 -403
  251. package/dist/mcp/daemon.js.map +0 -1
  252. package/dist/mcp/engine.d.ts +0 -105
  253. package/dist/mcp/engine.d.ts.map +0 -1
  254. package/dist/mcp/engine.js +0 -270
  255. package/dist/mcp/engine.js.map +0 -1
  256. package/dist/mcp/index.d.ts +0 -112
  257. package/dist/mcp/index.d.ts.map +0 -1
  258. package/dist/mcp/index.js +0 -477
  259. package/dist/mcp/index.js.map +0 -1
  260. package/dist/mcp/proxy.d.ts +0 -81
  261. package/dist/mcp/proxy.d.ts.map +0 -1
  262. package/dist/mcp/proxy.js +0 -510
  263. package/dist/mcp/proxy.js.map +0 -1
  264. package/dist/mcp/server-instructions.d.ts +0 -18
  265. package/dist/mcp/server-instructions.d.ts.map +0 -1
  266. package/dist/mcp/server-instructions.js +0 -77
  267. package/dist/mcp/server-instructions.js.map +0 -1
  268. package/dist/mcp/session.d.ts +0 -77
  269. package/dist/mcp/session.d.ts.map +0 -1
  270. package/dist/mcp/session.js +0 -294
  271. package/dist/mcp/session.js.map +0 -1
  272. package/dist/mcp/spec-tools.d.ts +0 -39
  273. package/dist/mcp/spec-tools.d.ts.map +0 -1
  274. package/dist/mcp/spec-tools.js +0 -326
  275. package/dist/mcp/spec-tools.js.map +0 -1
  276. package/dist/mcp/tools.d.ts +0 -404
  277. package/dist/mcp/tools.d.ts.map +0 -1
  278. package/dist/mcp/tools.js +0 -3066
  279. package/dist/mcp/tools.js.map +0 -1
  280. package/dist/mcp/transport.d.ts +0 -188
  281. package/dist/mcp/transport.d.ts.map +0 -1
  282. package/dist/mcp/transport.js +0 -343
  283. package/dist/mcp/transport.js.map +0 -1
  284. package/dist/mcp/version.d.ts +0 -19
  285. package/dist/mcp/version.d.ts.map +0 -1
  286. package/dist/mcp/version.js +0 -71
  287. package/dist/mcp/version.js.map +0 -1
  288. package/dist/resolution/callback-synthesizer.d.ts +0 -10
  289. package/dist/resolution/callback-synthesizer.d.ts.map +0 -1
  290. package/dist/resolution/callback-synthesizer.js +0 -1300
  291. package/dist/resolution/callback-synthesizer.js.map +0 -1
  292. package/dist/resolution/frameworks/cargo-workspace.d.ts +0 -18
  293. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +0 -1
  294. package/dist/resolution/frameworks/cargo-workspace.js +0 -225
  295. package/dist/resolution/frameworks/cargo-workspace.js.map +0 -1
  296. package/dist/resolution/frameworks/csharp.d.ts +0 -8
  297. package/dist/resolution/frameworks/csharp.d.ts.map +0 -1
  298. package/dist/resolution/frameworks/csharp.js +0 -241
  299. package/dist/resolution/frameworks/csharp.js.map +0 -1
  300. package/dist/resolution/frameworks/drupal.d.ts +0 -51
  301. package/dist/resolution/frameworks/drupal.d.ts.map +0 -1
  302. package/dist/resolution/frameworks/drupal.js +0 -367
  303. package/dist/resolution/frameworks/drupal.js.map +0 -1
  304. package/dist/resolution/frameworks/expo-modules.d.ts +0 -3
  305. package/dist/resolution/frameworks/expo-modules.d.ts.map +0 -1
  306. package/dist/resolution/frameworks/expo-modules.js +0 -143
  307. package/dist/resolution/frameworks/expo-modules.js.map +0 -1
  308. package/dist/resolution/frameworks/express.d.ts +0 -8
  309. package/dist/resolution/frameworks/express.d.ts.map +0 -1
  310. package/dist/resolution/frameworks/express.js +0 -308
  311. package/dist/resolution/frameworks/express.js.map +0 -1
  312. package/dist/resolution/frameworks/fabric.d.ts +0 -3
  313. package/dist/resolution/frameworks/fabric.d.ts.map +0 -1
  314. package/dist/resolution/frameworks/fabric.js +0 -354
  315. package/dist/resolution/frameworks/fabric.js.map +0 -1
  316. package/dist/resolution/frameworks/go.d.ts +0 -8
  317. package/dist/resolution/frameworks/go.d.ts.map +0 -1
  318. package/dist/resolution/frameworks/go.js +0 -161
  319. package/dist/resolution/frameworks/go.js.map +0 -1
  320. package/dist/resolution/frameworks/index.d.ts +0 -48
  321. package/dist/resolution/frameworks/index.d.ts.map +0 -1
  322. package/dist/resolution/frameworks/index.js +0 -161
  323. package/dist/resolution/frameworks/index.js.map +0 -1
  324. package/dist/resolution/frameworks/java.d.ts +0 -8
  325. package/dist/resolution/frameworks/java.d.ts.map +0 -1
  326. package/dist/resolution/frameworks/java.js +0 -504
  327. package/dist/resolution/frameworks/java.js.map +0 -1
  328. package/dist/resolution/frameworks/laravel.d.ts +0 -13
  329. package/dist/resolution/frameworks/laravel.d.ts.map +0 -1
  330. package/dist/resolution/frameworks/laravel.js +0 -257
  331. package/dist/resolution/frameworks/laravel.js.map +0 -1
  332. package/dist/resolution/frameworks/nestjs.d.ts +0 -26
  333. package/dist/resolution/frameworks/nestjs.d.ts.map +0 -1
  334. package/dist/resolution/frameworks/nestjs.js +0 -698
  335. package/dist/resolution/frameworks/nestjs.js.map +0 -1
  336. package/dist/resolution/frameworks/play.d.ts +0 -19
  337. package/dist/resolution/frameworks/play.d.ts.map +0 -1
  338. package/dist/resolution/frameworks/play.js +0 -111
  339. package/dist/resolution/frameworks/play.js.map +0 -1
  340. package/dist/resolution/frameworks/python.d.ts +0 -10
  341. package/dist/resolution/frameworks/python.d.ts.map +0 -1
  342. package/dist/resolution/frameworks/python.js +0 -396
  343. package/dist/resolution/frameworks/python.js.map +0 -1
  344. package/dist/resolution/frameworks/react-native.d.ts +0 -3
  345. package/dist/resolution/frameworks/react-native.d.ts.map +0 -1
  346. package/dist/resolution/frameworks/react-native.js +0 -360
  347. package/dist/resolution/frameworks/react-native.js.map +0 -1
  348. package/dist/resolution/frameworks/react.d.ts +0 -8
  349. package/dist/resolution/frameworks/react.d.ts.map +0 -1
  350. package/dist/resolution/frameworks/react.js +0 -365
  351. package/dist/resolution/frameworks/react.js.map +0 -1
  352. package/dist/resolution/frameworks/ruby.d.ts +0 -8
  353. package/dist/resolution/frameworks/ruby.d.ts.map +0 -1
  354. package/dist/resolution/frameworks/ruby.js +0 -302
  355. package/dist/resolution/frameworks/ruby.js.map +0 -1
  356. package/dist/resolution/frameworks/rust.d.ts +0 -8
  357. package/dist/resolution/frameworks/rust.d.ts.map +0 -1
  358. package/dist/resolution/frameworks/rust.js +0 -304
  359. package/dist/resolution/frameworks/rust.js.map +0 -1
  360. package/dist/resolution/frameworks/svelte.d.ts +0 -9
  361. package/dist/resolution/frameworks/svelte.d.ts.map +0 -1
  362. package/dist/resolution/frameworks/svelte.js +0 -249
  363. package/dist/resolution/frameworks/svelte.js.map +0 -1
  364. package/dist/resolution/frameworks/swift-objc.d.ts +0 -37
  365. package/dist/resolution/frameworks/swift-objc.d.ts.map +0 -1
  366. package/dist/resolution/frameworks/swift-objc.js +0 -252
  367. package/dist/resolution/frameworks/swift-objc.js.map +0 -1
  368. package/dist/resolution/frameworks/swift.d.ts +0 -10
  369. package/dist/resolution/frameworks/swift.d.ts.map +0 -1
  370. package/dist/resolution/frameworks/swift.js +0 -400
  371. package/dist/resolution/frameworks/swift.js.map +0 -1
  372. package/dist/resolution/frameworks/vue.d.ts +0 -9
  373. package/dist/resolution/frameworks/vue.d.ts.map +0 -1
  374. package/dist/resolution/frameworks/vue.js +0 -306
  375. package/dist/resolution/frameworks/vue.js.map +0 -1
  376. package/dist/resolution/go-module.d.ts +0 -26
  377. package/dist/resolution/go-module.d.ts.map +0 -1
  378. package/dist/resolution/go-module.js +0 -78
  379. package/dist/resolution/go-module.js.map +0 -1
  380. package/dist/resolution/import-resolver.d.ts +0 -68
  381. package/dist/resolution/import-resolver.d.ts.map +0 -1
  382. package/dist/resolution/import-resolver.js +0 -1275
  383. package/dist/resolution/import-resolver.js.map +0 -1
  384. package/dist/resolution/index.d.ts +0 -117
  385. package/dist/resolution/index.d.ts.map +0 -1
  386. package/dist/resolution/index.js +0 -895
  387. package/dist/resolution/index.js.map +0 -1
  388. package/dist/resolution/lru-cache.d.ts +0 -24
  389. package/dist/resolution/lru-cache.d.ts.map +0 -1
  390. package/dist/resolution/lru-cache.js +0 -62
  391. package/dist/resolution/lru-cache.js.map +0 -1
  392. package/dist/resolution/name-matcher.d.ts +0 -32
  393. package/dist/resolution/name-matcher.d.ts.map +0 -1
  394. package/dist/resolution/name-matcher.js +0 -596
  395. package/dist/resolution/name-matcher.js.map +0 -1
  396. package/dist/resolution/path-aliases.d.ts +0 -68
  397. package/dist/resolution/path-aliases.d.ts.map +0 -1
  398. package/dist/resolution/path-aliases.js +0 -238
  399. package/dist/resolution/path-aliases.js.map +0 -1
  400. package/dist/resolution/spec-link-resolver.d.ts +0 -103
  401. package/dist/resolution/spec-link-resolver.d.ts.map +0 -1
  402. package/dist/resolution/spec-link-resolver.js +0 -259
  403. package/dist/resolution/spec-link-resolver.js.map +0 -1
  404. package/dist/resolution/strip-comments.d.ts +0 -27
  405. package/dist/resolution/strip-comments.d.ts.map +0 -1
  406. package/dist/resolution/strip-comments.js +0 -441
  407. package/dist/resolution/strip-comments.js.map +0 -1
  408. package/dist/resolution/swift-objc-bridge.d.ts +0 -134
  409. package/dist/resolution/swift-objc-bridge.d.ts.map +0 -1
  410. package/dist/resolution/swift-objc-bridge.js +0 -256
  411. package/dist/resolution/swift-objc-bridge.js.map +0 -1
  412. package/dist/resolution/types.d.ts +0 -216
  413. package/dist/resolution/types.d.ts.map +0 -1
  414. package/dist/resolution/types.js +0 -8
  415. package/dist/resolution/types.js.map +0 -1
  416. package/dist/resolution/workspace-packages.d.ts +0 -48
  417. package/dist/resolution/workspace-packages.d.ts.map +0 -1
  418. package/dist/resolution/workspace-packages.js +0 -208
  419. package/dist/resolution/workspace-packages.js.map +0 -1
  420. package/dist/search/query-parser.d.ts +0 -57
  421. package/dist/search/query-parser.d.ts.map +0 -1
  422. package/dist/search/query-parser.js +0 -177
  423. package/dist/search/query-parser.js.map +0 -1
  424. package/dist/search/query-utils.d.ts +0 -71
  425. package/dist/search/query-utils.d.ts.map +0 -1
  426. package/dist/search/query-utils.js +0 -380
  427. package/dist/search/query-utils.js.map +0 -1
  428. package/dist/server/cli.js +0 -152
  429. package/dist/server/index.js +0 -12
  430. package/dist/server/ingest/index.js +0 -18
  431. package/dist/server/ingest/ingestor.js +0 -406
  432. package/dist/server/ingest/parser.js +0 -104
  433. package/dist/server/ingest/pricing.js +0 -78
  434. package/dist/server/ingest/types.js +0 -9
  435. package/dist/server/ingest/watcher.js +0 -77
  436. package/dist/server/package.json +0 -3
  437. package/dist/server/project-registry.js +0 -101
  438. package/dist/server/routes/claude.js +0 -480
  439. package/dist/server/routes/graph.js +0 -149
  440. package/dist/server/routes/memory.js +0 -272
  441. package/dist/server/routes/projects.js +0 -197
  442. package/dist/server/routes/spec.js +0 -105
  443. package/dist/server/routes/status.js +0 -35
  444. package/dist/server/routes/workflow.js +0 -184
  445. package/dist/server/server.js +0 -206
  446. package/dist/server/static-handler.js +0 -87
  447. package/dist/sync/git-hooks.d.ts +0 -45
  448. package/dist/sync/git-hooks.d.ts.map +0 -1
  449. package/dist/sync/git-hooks.js +0 -225
  450. package/dist/sync/git-hooks.js.map +0 -1
  451. package/dist/sync/index.d.ts +0 -19
  452. package/dist/sync/index.d.ts.map +0 -1
  453. package/dist/sync/index.js +0 -35
  454. package/dist/sync/index.js.map +0 -1
  455. package/dist/sync/watch-policy.d.ts +0 -48
  456. package/dist/sync/watch-policy.d.ts.map +0 -1
  457. package/dist/sync/watch-policy.js +0 -124
  458. package/dist/sync/watch-policy.js.map +0 -1
  459. package/dist/sync/watcher.d.ts +0 -283
  460. package/dist/sync/watcher.d.ts.map +0 -1
  461. package/dist/sync/watcher.js +0 -606
  462. package/dist/sync/watcher.js.map +0 -1
  463. package/dist/sync/worktree.d.ts +0 -54
  464. package/dist/sync/worktree.d.ts.map +0 -1
  465. package/dist/sync/worktree.js +0 -137
  466. package/dist/sync/worktree.js.map +0 -1
  467. package/dist/types.d.ts +0 -623
  468. package/dist/types.d.ts.map +0 -1
  469. package/dist/types.js +0 -108
  470. package/dist/types.js.map +0 -1
  471. package/dist/ui/glyphs.d.ts +0 -42
  472. package/dist/ui/glyphs.d.ts.map +0 -1
  473. package/dist/ui/glyphs.js +0 -78
  474. package/dist/ui/glyphs.js.map +0 -1
  475. package/dist/ui/shimmer-progress.d.ts +0 -11
  476. package/dist/ui/shimmer-progress.d.ts.map +0 -1
  477. package/dist/ui/shimmer-progress.js +0 -90
  478. package/dist/ui/shimmer-progress.js.map +0 -1
  479. package/dist/ui/shimmer-worker.d.ts +0 -2
  480. package/dist/ui/shimmer-worker.d.ts.map +0 -1
  481. package/dist/ui/shimmer-worker.js +0 -118
  482. package/dist/ui/shimmer-worker.js.map +0 -1
  483. package/dist/ui/types.d.ts +0 -17
  484. package/dist/ui/types.d.ts.map +0 -1
  485. package/dist/ui/types.js +0 -3
  486. package/dist/ui/types.js.map +0 -1
  487. package/dist/utils.d.ts +0 -205
  488. package/dist/utils.d.ts.map +0 -1
  489. package/dist/utils.js +0 -549
  490. package/dist/utils.js.map +0 -1
  491. package/dist/web/chunk-2YZXEHZ2.js +0 -1
  492. package/dist/web/chunk-3GIC555L.js +0 -18
  493. package/dist/web/chunk-3IIIGRMT.js +0 -1
  494. package/dist/web/chunk-47QYKLE5.js +0 -1
  495. package/dist/web/chunk-4LHBWWP7.js +0 -1
  496. package/dist/web/chunk-4OAZLD5W.js +0 -1
  497. package/dist/web/chunk-5OQKAJAE.js +0 -1
  498. package/dist/web/chunk-7B525GKQ.js +0 -1
  499. package/dist/web/chunk-BPDXCOOZ.js +0 -1
  500. package/dist/web/chunk-DT37HTZB.js +0 -1
  501. package/dist/web/chunk-EIMUHJND.js +0 -1
  502. package/dist/web/chunk-FTESTUEO.js +0 -1
  503. package/dist/web/chunk-GLJZV6MU.js +0 -1
  504. package/dist/web/chunk-I7LS67U5.js +0 -1
  505. package/dist/web/chunk-L4TVIPSR.js +0 -1
  506. package/dist/web/chunk-MASCULC2.js +0 -1
  507. package/dist/web/chunk-MW7ICSRM.js +0 -1
  508. package/dist/web/chunk-OI5VP2A3.js +0 -1
  509. package/dist/web/chunk-RA6EBF6I.js +0 -1
  510. package/dist/web/chunk-RP3WU5Y6.js +0 -1
  511. package/dist/web/chunk-RQDRMTXN.js +0 -1
  512. package/dist/web/chunk-TQMT6UDU.js +0 -1
  513. package/dist/web/chunk-U7IYOV7T.js +0 -1
  514. package/dist/web/chunk-UE227MWF.js +0 -1
  515. package/dist/web/chunk-WV573J4K.js +0 -1
  516. package/dist/web/chunk-WVCKOJZL.js +0 -4
  517. package/dist/web/chunk-XZKLVPHE.js +0 -1
  518. package/dist/web/chunk-ZABKKHJ3.js +0 -1
  519. package/dist/web/favicon-16.png +0 -0
  520. package/dist/web/favicon-180.png +0 -0
  521. package/dist/web/favicon-32.png +0 -0
  522. package/dist/web/favicon-512.png +0 -0
  523. package/dist/web/favicon-small.svg +0 -15
  524. package/dist/web/favicon.ico +0 -0
  525. package/dist/web/favicon.svg +0 -20
  526. package/dist/web/index.html +0 -145
  527. package/dist/web/main-RI5CO5Z4.js +0 -1
  528. package/dist/web/styles-CYN7IKT4.css +0 -1
  529. package/dist/workflows/condition-evaluator.d.ts +0 -75
  530. package/dist/workflows/condition-evaluator.d.ts.map +0 -1
  531. package/dist/workflows/condition-evaluator.js +0 -282
  532. package/dist/workflows/condition-evaluator.js.map +0 -1
  533. package/dist/workflows/defaults/index.d.ts +0 -26
  534. package/dist/workflows/defaults/index.d.ts.map +0 -1
  535. package/dist/workflows/defaults/index.js +0 -94
  536. package/dist/workflows/defaults/index.js.map +0 -1
  537. package/dist/workflows/defaults/spec-fix.yaml +0 -110
  538. package/dist/workflows/defaults/spec-implement.yaml +0 -150
  539. package/dist/workflows/defaults/spec-relink.yaml +0 -81
  540. package/dist/workflows/defaults/spec-verify.yaml +0 -51
  541. package/dist/workflows/discovery.d.ts +0 -46
  542. package/dist/workflows/discovery.d.ts.map +0 -1
  543. package/dist/workflows/discovery.js +0 -193
  544. package/dist/workflows/discovery.js.map +0 -1
  545. package/dist/workflows/executor.d.ts +0 -83
  546. package/dist/workflows/executor.d.ts.map +0 -1
  547. package/dist/workflows/executor.js +0 -623
  548. package/dist/workflows/executor.js.map +0 -1
  549. package/dist/workflows/runners/approval.d.ts +0 -18
  550. package/dist/workflows/runners/approval.d.ts.map +0 -1
  551. package/dist/workflows/runners/approval.js +0 -34
  552. package/dist/workflows/runners/approval.js.map +0 -1
  553. package/dist/workflows/runners/bash.d.ts +0 -13
  554. package/dist/workflows/runners/bash.d.ts.map +0 -1
  555. package/dist/workflows/runners/bash.js +0 -143
  556. package/dist/workflows/runners/bash.js.map +0 -1
  557. package/dist/workflows/runners/cancel.d.ts +0 -10
  558. package/dist/workflows/runners/cancel.d.ts.map +0 -1
  559. package/dist/workflows/runners/cancel.js +0 -19
  560. package/dist/workflows/runners/cancel.js.map +0 -1
  561. package/dist/workflows/runners/prompt.d.ts +0 -28
  562. package/dist/workflows/runners/prompt.d.ts.map +0 -1
  563. package/dist/workflows/runners/prompt.js +0 -212
  564. package/dist/workflows/runners/prompt.js.map +0 -1
  565. package/dist/workflows/runners/script.d.ts +0 -17
  566. package/dist/workflows/runners/script.d.ts.map +0 -1
  567. package/dist/workflows/runners/script.js +0 -155
  568. package/dist/workflows/runners/script.js.map +0 -1
  569. package/dist/workflows/runners/types.d.ts +0 -51
  570. package/dist/workflows/runners/types.d.ts.map +0 -1
  571. package/dist/workflows/runners/types.js +0 -13
  572. package/dist/workflows/runners/types.js.map +0 -1
  573. package/dist/workflows/schemas/workflow.d.ts +0 -166
  574. package/dist/workflows/schemas/workflow.d.ts.map +0 -1
  575. package/dist/workflows/schemas/workflow.js +0 -437
  576. package/dist/workflows/schemas/workflow.js.map +0 -1
@@ -1,127 +0,0 @@
1
- /**
2
- * Graph Traversal Algorithms
3
- *
4
- * BFS and DFS traversal for the code knowledge graph.
5
- */
6
- import { Node, Edge, Subgraph, TraversalOptions, EdgeKind } from '../types';
7
- import { QueryBuilder } from '../db/queries';
8
- /**
9
- * Graph traverser for BFS and DFS traversal
10
- */
11
- export declare class GraphTraverser {
12
- private queries;
13
- constructor(queries: QueryBuilder);
14
- /**
15
- * Traverse the graph using breadth-first search
16
- *
17
- * @param startId - Starting node ID
18
- * @param options - Traversal options
19
- * @returns Subgraph containing traversed nodes and edges
20
- */
21
- traverseBFS(startId: string, options?: TraversalOptions): Subgraph;
22
- /**
23
- * Traverse the graph using depth-first search
24
- *
25
- * @param startId - Starting node ID
26
- * @param options - Traversal options
27
- * @returns Subgraph containing traversed nodes and edges
28
- */
29
- traverseDFS(startId: string, options?: TraversalOptions): Subgraph;
30
- /**
31
- * Recursive DFS helper
32
- */
33
- private dfsRecursive;
34
- /**
35
- * Get adjacent edges based on direction
36
- */
37
- private getAdjacentEdges;
38
- /**
39
- * Find all callers of a function/method
40
- *
41
- * @param nodeId - ID of the function/method node
42
- * @param maxDepth - Maximum depth to traverse (default: 1)
43
- * @returns Array of nodes that call this function
44
- */
45
- getCallers(nodeId: string, maxDepth?: number): Array<{
46
- node: Node;
47
- edge: Edge;
48
- }>;
49
- private getCallersRecursive;
50
- /**
51
- * Find all functions/methods called by a function
52
- *
53
- * @param nodeId - ID of the function/method node
54
- * @param maxDepth - Maximum depth to traverse (default: 1)
55
- * @returns Array of nodes called by this function
56
- */
57
- getCallees(nodeId: string, maxDepth?: number): Array<{
58
- node: Node;
59
- edge: Edge;
60
- }>;
61
- private getCalleesRecursive;
62
- /**
63
- * Get the call graph for a function (both callers and callees)
64
- *
65
- * @param nodeId - ID of the function/method node
66
- * @param depth - Maximum depth in each direction (default: 2)
67
- * @returns Subgraph containing the call graph
68
- */
69
- getCallGraph(nodeId: string, depth?: number): Subgraph;
70
- /**
71
- * Get the type hierarchy for a class/interface
72
- *
73
- * @param nodeId - ID of the class/interface node
74
- * @returns Subgraph containing the type hierarchy
75
- */
76
- getTypeHierarchy(nodeId: string): Subgraph;
77
- private getTypeAncestors;
78
- private getTypeDescendants;
79
- /**
80
- * Find all usages of a symbol
81
- *
82
- * @param nodeId - ID of the symbol node
83
- * @returns Array of nodes and edges that reference this symbol
84
- */
85
- findUsages(nodeId: string): Array<{
86
- node: Node;
87
- edge: Edge;
88
- }>;
89
- /**
90
- * Calculate the impact radius of a node
91
- *
92
- * Returns all nodes that could be affected by changes to this node.
93
- *
94
- * @param nodeId - ID of the node
95
- * @param maxDepth - Maximum depth to traverse (default: 3)
96
- * @returns Subgraph containing potentially impacted nodes
97
- */
98
- getImpactRadius(nodeId: string, maxDepth?: number): Subgraph;
99
- private getImpactRecursive;
100
- /**
101
- * Find the shortest path between two nodes
102
- *
103
- * @param fromId - Starting node ID
104
- * @param toId - Target node ID
105
- * @param edgeKinds - Edge types to consider (all if empty)
106
- * @returns Array of nodes and edges forming the path, or null if no path exists
107
- */
108
- findPath(fromId: string, toId: string, edgeKinds?: EdgeKind[]): Array<{
109
- node: Node;
110
- edge: Edge | null;
111
- }> | null;
112
- /**
113
- * Get the containment hierarchy for a node (ancestors)
114
- *
115
- * @param nodeId - ID of the node
116
- * @returns Array of ancestor nodes from immediate parent to root
117
- */
118
- getAncestors(nodeId: string): Node[];
119
- /**
120
- * Get immediate children of a node
121
- *
122
- * @param nodeId - ID of the node
123
- * @returns Array of child nodes
124
- */
125
- getChildren(nodeId: string): Node[];
126
- }
127
- //# sourceMappingURL=traversal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traversal.d.ts","sourceRoot":"","sources":["../../src/graph/traversal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAuB7C;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,YAAY;IAIjC;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,QAAQ;IA0EtE;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,QAAQ;IAyBtE;;OAEG;IACH,OAAO,CAAC,YAAY;IA4CpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IASnF,OAAO,CAAC,mBAAmB;IA6B3B;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IASnF,OAAO,CAAC,mBAAmB;IA4B3B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,QAAQ;IAiCzD;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IA0B1C,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,kBAAkB;IAyB1B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IAiB7D;;;;;;;;OAQG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,QAAQ;IAuB/D,OAAO,CAAC,kBAAkB;IAqD1B;;;;;;;OAOG;IACH,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,QAAQ,EAAO,GACzB,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC,GAAG,IAAI;IAuDlD;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;IAgCpC;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;CAapC"}
@@ -1,531 +0,0 @@
1
- "use strict";
2
- /**
3
- * Graph Traversal Algorithms
4
- *
5
- * BFS and DFS traversal for the code knowledge graph.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.GraphTraverser = void 0;
9
- /**
10
- * Default traversal options
11
- */
12
- const DEFAULT_OPTIONS = {
13
- maxDepth: Infinity,
14
- edgeKinds: [],
15
- nodeKinds: [],
16
- direction: 'outgoing',
17
- limit: 1000,
18
- includeStart: true,
19
- };
20
- /**
21
- * Graph traverser for BFS and DFS traversal
22
- */
23
- class GraphTraverser {
24
- queries;
25
- constructor(queries) {
26
- this.queries = queries;
27
- }
28
- /**
29
- * Traverse the graph using breadth-first search
30
- *
31
- * @param startId - Starting node ID
32
- * @param options - Traversal options
33
- * @returns Subgraph containing traversed nodes and edges
34
- */
35
- traverseBFS(startId, options = {}) {
36
- const opts = { ...DEFAULT_OPTIONS, ...options };
37
- const startNode = this.queries.getNodeById(startId);
38
- if (!startNode) {
39
- return { nodes: new Map(), edges: [], roots: [] };
40
- }
41
- const nodes = new Map();
42
- const edges = [];
43
- const visited = new Set();
44
- const queue = [{ node: startNode, edge: null, depth: 0 }];
45
- if (opts.includeStart) {
46
- nodes.set(startNode.id, startNode);
47
- }
48
- while (queue.length > 0 && nodes.size < opts.limit) {
49
- const step = queue.shift();
50
- const { node, edge, depth } = step;
51
- if (visited.has(node.id)) {
52
- continue;
53
- }
54
- visited.add(node.id);
55
- // Add edge to result
56
- if (edge) {
57
- edges.push(edge);
58
- }
59
- // Check depth limit
60
- if (depth >= opts.maxDepth) {
61
- continue;
62
- }
63
- // Get adjacent edges, prioritizing structural edges (contains, calls)
64
- // over reference edges so BFS discovers internal structure before
65
- // fanning out to external references (e.g., component usages in templates).
66
- const adjacentEdges = this.getAdjacentEdges(node.id, opts.direction, opts.edgeKinds);
67
- adjacentEdges.sort((a, b) => {
68
- const priority = (e) => e.kind === 'contains' ? 0 : e.kind === 'calls' ? 1 : 2;
69
- return priority(a) - priority(b);
70
- });
71
- // Batch-fetch the unvisited neighbors in one query (was N+1 per BFS step).
72
- const wantIds = adjacentEdges
73
- .map((e) => (e.source === node.id ? e.target : e.source))
74
- .filter((id) => !visited.has(id));
75
- const neighborNodes = wantIds.length > 0 ? this.queries.getNodesByIds(wantIds) : new Map();
76
- for (const adjEdge of adjacentEdges) {
77
- const nextNodeId = adjEdge.source === node.id ? adjEdge.target : adjEdge.source;
78
- if (visited.has(nextNodeId))
79
- continue;
80
- const nextNode = neighborNodes.get(nextNodeId);
81
- if (!nextNode)
82
- continue;
83
- if (opts.nodeKinds && opts.nodeKinds.length > 0 && !opts.nodeKinds.includes(nextNode.kind)) {
84
- continue;
85
- }
86
- nodes.set(nextNode.id, nextNode);
87
- queue.push({ node: nextNode, edge: adjEdge, depth: depth + 1 });
88
- }
89
- }
90
- return {
91
- nodes,
92
- edges,
93
- roots: [startId],
94
- };
95
- }
96
- /**
97
- * Traverse the graph using depth-first search
98
- *
99
- * @param startId - Starting node ID
100
- * @param options - Traversal options
101
- * @returns Subgraph containing traversed nodes and edges
102
- */
103
- traverseDFS(startId, options = {}) {
104
- const opts = { ...DEFAULT_OPTIONS, ...options };
105
- const startNode = this.queries.getNodeById(startId);
106
- if (!startNode) {
107
- return { nodes: new Map(), edges: [], roots: [] };
108
- }
109
- const nodes = new Map();
110
- const edges = [];
111
- const visited = new Set();
112
- if (opts.includeStart) {
113
- nodes.set(startNode.id, startNode);
114
- }
115
- this.dfsRecursive(startNode, 0, opts, nodes, edges, visited);
116
- return {
117
- nodes,
118
- edges,
119
- roots: [startId],
120
- };
121
- }
122
- /**
123
- * Recursive DFS helper
124
- */
125
- dfsRecursive(node, depth, opts, nodes, edges, visited) {
126
- if (visited.has(node.id) || nodes.size >= opts.limit || depth >= opts.maxDepth) {
127
- return;
128
- }
129
- visited.add(node.id);
130
- // Get adjacent edges
131
- const adjacentEdges = this.getAdjacentEdges(node.id, opts.direction, opts.edgeKinds);
132
- // Batch-fetch unvisited neighbors (was N+1 per DFS step).
133
- const wantIds = adjacentEdges
134
- .map((e) => (e.source === node.id ? e.target : e.source))
135
- .filter((id) => !visited.has(id));
136
- const neighborNodes = wantIds.length > 0 ? this.queries.getNodesByIds(wantIds) : new Map();
137
- for (const edge of adjacentEdges) {
138
- const nextNodeId = edge.source === node.id ? edge.target : edge.source;
139
- if (visited.has(nextNodeId))
140
- continue;
141
- const nextNode = neighborNodes.get(nextNodeId);
142
- if (!nextNode)
143
- continue;
144
- // Apply node kind filter
145
- if (opts.nodeKinds && opts.nodeKinds.length > 0 && !opts.nodeKinds.includes(nextNode.kind)) {
146
- continue;
147
- }
148
- // Add node and edge to result
149
- nodes.set(nextNode.id, nextNode);
150
- edges.push(edge);
151
- // Recurse
152
- this.dfsRecursive(nextNode, depth + 1, opts, nodes, edges, visited);
153
- }
154
- }
155
- /**
156
- * Get adjacent edges based on direction
157
- */
158
- getAdjacentEdges(nodeId, direction, edgeKinds) {
159
- const kinds = edgeKinds && edgeKinds.length > 0 ? edgeKinds : undefined;
160
- if (direction === 'outgoing') {
161
- return this.queries.getOutgoingEdges(nodeId, kinds);
162
- }
163
- else if (direction === 'incoming') {
164
- return this.queries.getIncomingEdges(nodeId, kinds);
165
- }
166
- else {
167
- // Both directions
168
- const outgoing = this.queries.getOutgoingEdges(nodeId, kinds);
169
- const incoming = this.queries.getIncomingEdges(nodeId, kinds);
170
- return [...outgoing, ...incoming];
171
- }
172
- }
173
- /**
174
- * Find all callers of a function/method
175
- *
176
- * @param nodeId - ID of the function/method node
177
- * @param maxDepth - Maximum depth to traverse (default: 1)
178
- * @returns Array of nodes that call this function
179
- */
180
- getCallers(nodeId, maxDepth = 1) {
181
- const result = [];
182
- const visited = new Set();
183
- this.getCallersRecursive(nodeId, maxDepth, 0, result, visited);
184
- return result;
185
- }
186
- getCallersRecursive(nodeId, maxDepth, currentDepth, result, visited) {
187
- if (currentDepth >= maxDepth || visited.has(nodeId)) {
188
- return;
189
- }
190
- visited.add(nodeId);
191
- const incomingEdges = this.queries.getIncomingEdges(nodeId, ['calls', 'references', 'imports']);
192
- if (incomingEdges.length === 0)
193
- return;
194
- // Batch-fetch all caller nodes in one round-trip instead of one
195
- // getNodeById per edge (was N+1 — meaningful on functions with many callers).
196
- const sourceIds = incomingEdges.map((e) => e.source);
197
- const callerNodes = this.queries.getNodesByIds(sourceIds);
198
- for (const edge of incomingEdges) {
199
- const callerNode = callerNodes.get(edge.source);
200
- if (callerNode && !visited.has(callerNode.id)) {
201
- result.push({ node: callerNode, edge });
202
- this.getCallersRecursive(callerNode.id, maxDepth, currentDepth + 1, result, visited);
203
- }
204
- }
205
- }
206
- /**
207
- * Find all functions/methods called by a function
208
- *
209
- * @param nodeId - ID of the function/method node
210
- * @param maxDepth - Maximum depth to traverse (default: 1)
211
- * @returns Array of nodes called by this function
212
- */
213
- getCallees(nodeId, maxDepth = 1) {
214
- const result = [];
215
- const visited = new Set();
216
- this.getCalleesRecursive(nodeId, maxDepth, 0, result, visited);
217
- return result;
218
- }
219
- getCalleesRecursive(nodeId, maxDepth, currentDepth, result, visited) {
220
- if (currentDepth >= maxDepth || visited.has(nodeId)) {
221
- return;
222
- }
223
- visited.add(nodeId);
224
- const outgoingEdges = this.queries.getOutgoingEdges(nodeId, ['calls', 'references', 'imports']);
225
- if (outgoingEdges.length === 0)
226
- return;
227
- // Batch-fetch callee nodes (was N+1 — see getCallersRecursive note).
228
- const targetIds = outgoingEdges.map((e) => e.target);
229
- const calleeNodes = this.queries.getNodesByIds(targetIds);
230
- for (const edge of outgoingEdges) {
231
- const calleeNode = calleeNodes.get(edge.target);
232
- if (calleeNode && !visited.has(calleeNode.id)) {
233
- result.push({ node: calleeNode, edge });
234
- this.getCalleesRecursive(calleeNode.id, maxDepth, currentDepth + 1, result, visited);
235
- }
236
- }
237
- }
238
- /**
239
- * Get the call graph for a function (both callers and callees)
240
- *
241
- * @param nodeId - ID of the function/method node
242
- * @param depth - Maximum depth in each direction (default: 2)
243
- * @returns Subgraph containing the call graph
244
- */
245
- getCallGraph(nodeId, depth = 2) {
246
- const focalNode = this.queries.getNodeById(nodeId);
247
- if (!focalNode) {
248
- return { nodes: new Map(), edges: [], roots: [] };
249
- }
250
- const nodes = new Map();
251
- const edges = [];
252
- // Add focal node
253
- nodes.set(focalNode.id, focalNode);
254
- // Get callers
255
- const callers = this.getCallers(nodeId, depth);
256
- for (const { node, edge } of callers) {
257
- nodes.set(node.id, node);
258
- edges.push(edge);
259
- }
260
- // Get callees
261
- const callees = this.getCallees(nodeId, depth);
262
- for (const { node, edge } of callees) {
263
- nodes.set(node.id, node);
264
- edges.push(edge);
265
- }
266
- return {
267
- nodes,
268
- edges,
269
- roots: [nodeId],
270
- };
271
- }
272
- /**
273
- * Get the type hierarchy for a class/interface
274
- *
275
- * @param nodeId - ID of the class/interface node
276
- * @returns Subgraph containing the type hierarchy
277
- */
278
- getTypeHierarchy(nodeId) {
279
- const focalNode = this.queries.getNodeById(nodeId);
280
- if (!focalNode) {
281
- return { nodes: new Map(), edges: [], roots: [] };
282
- }
283
- const nodes = new Map();
284
- const edges = [];
285
- const visited = new Set();
286
- // Add focal node
287
- nodes.set(focalNode.id, focalNode);
288
- // Get ancestors (what this extends/implements)
289
- this.getTypeAncestors(nodeId, nodes, edges, visited);
290
- // Get descendants (what extends/implements this)
291
- this.getTypeDescendants(nodeId, nodes, edges, visited);
292
- return {
293
- nodes,
294
- edges,
295
- roots: [nodeId],
296
- };
297
- }
298
- getTypeAncestors(nodeId, nodes, edges, visited) {
299
- if (visited.has(nodeId)) {
300
- return;
301
- }
302
- visited.add(nodeId);
303
- const outgoingEdges = this.queries.getOutgoingEdges(nodeId, ['extends', 'implements']);
304
- if (outgoingEdges.length === 0)
305
- return;
306
- const parents = this.queries.getNodesByIds(outgoingEdges.map((e) => e.target));
307
- for (const edge of outgoingEdges) {
308
- const parentNode = parents.get(edge.target);
309
- if (parentNode && !nodes.has(parentNode.id)) {
310
- nodes.set(parentNode.id, parentNode);
311
- edges.push(edge);
312
- this.getTypeAncestors(parentNode.id, nodes, edges, visited);
313
- }
314
- }
315
- }
316
- getTypeDescendants(nodeId, nodes, edges, visited) {
317
- if (visited.has(nodeId)) {
318
- return;
319
- }
320
- visited.add(nodeId);
321
- const incomingEdges = this.queries.getIncomingEdges(nodeId, ['extends', 'implements']);
322
- if (incomingEdges.length === 0)
323
- return;
324
- const children = this.queries.getNodesByIds(incomingEdges.map((e) => e.source));
325
- for (const edge of incomingEdges) {
326
- const childNode = children.get(edge.source);
327
- if (childNode && !nodes.has(childNode.id)) {
328
- nodes.set(childNode.id, childNode);
329
- edges.push(edge);
330
- this.getTypeDescendants(childNode.id, nodes, edges, visited);
331
- }
332
- }
333
- }
334
- /**
335
- * Find all usages of a symbol
336
- *
337
- * @param nodeId - ID of the symbol node
338
- * @returns Array of nodes and edges that reference this symbol
339
- */
340
- findUsages(nodeId) {
341
- const result = [];
342
- // Get all incoming edges (references, calls, type_of, etc.)
343
- const incomingEdges = this.queries.getIncomingEdges(nodeId);
344
- if (incomingEdges.length === 0)
345
- return result;
346
- // Batch-fetch source nodes (was N+1).
347
- const sources = this.queries.getNodesByIds(incomingEdges.map((e) => e.source));
348
- for (const edge of incomingEdges) {
349
- const sourceNode = sources.get(edge.source);
350
- if (sourceNode)
351
- result.push({ node: sourceNode, edge });
352
- }
353
- return result;
354
- }
355
- /**
356
- * Calculate the impact radius of a node
357
- *
358
- * Returns all nodes that could be affected by changes to this node.
359
- *
360
- * @param nodeId - ID of the node
361
- * @param maxDepth - Maximum depth to traverse (default: 3)
362
- * @returns Subgraph containing potentially impacted nodes
363
- */
364
- getImpactRadius(nodeId, maxDepth = 3) {
365
- const focalNode = this.queries.getNodeById(nodeId);
366
- if (!focalNode) {
367
- return { nodes: new Map(), edges: [], roots: [] };
368
- }
369
- const nodes = new Map();
370
- const edges = [];
371
- const visited = new Set();
372
- // Add focal node
373
- nodes.set(focalNode.id, focalNode);
374
- // Traverse incoming edges to find all dependents
375
- this.getImpactRecursive(nodeId, maxDepth, 0, nodes, edges, visited);
376
- return {
377
- nodes,
378
- edges,
379
- roots: [nodeId],
380
- };
381
- }
382
- getImpactRecursive(nodeId, maxDepth, currentDepth, nodes, edges, visited) {
383
- if (currentDepth >= maxDepth || visited.has(nodeId)) {
384
- return;
385
- }
386
- visited.add(nodeId);
387
- // For container nodes (classes, interfaces, structs, etc.), also traverse
388
- // into their children so that callers of contained methods appear in impact
389
- const focalNode = this.queries.getNodeById(nodeId);
390
- if (focalNode) {
391
- const containerKinds = new Set(['class', 'interface', 'struct', 'trait', 'protocol', 'module', 'enum']);
392
- if (containerKinds.has(focalNode.kind)) {
393
- const containsEdges = this.queries.getOutgoingEdges(nodeId, ['contains']);
394
- if (containsEdges.length > 0) {
395
- const children = this.queries.getNodesByIds(containsEdges.map((e) => e.target));
396
- for (const edge of containsEdges) {
397
- const childNode = children.get(edge.target);
398
- if (childNode && !visited.has(childNode.id)) {
399
- nodes.set(childNode.id, childNode);
400
- edges.push(edge);
401
- // Recurse into children at the same depth (they're part of the same symbol)
402
- this.getImpactRecursive(childNode.id, maxDepth, currentDepth, nodes, edges, visited);
403
- }
404
- }
405
- }
406
- }
407
- }
408
- // Get all incoming edges (things that depend on this node). Exclude
409
- // `contains`: a container "contains" its members but does not *depend* on
410
- // them, so following it upward would climb to the parent class and then
411
- // re-expand every sibling member — exploding impact for a leaf symbol. (#536)
412
- const incomingEdges = this.queries.getIncomingEdges(nodeId).filter((e) => e.kind !== 'contains');
413
- if (incomingEdges.length === 0)
414
- return;
415
- const sources = this.queries.getNodesByIds(incomingEdges.map((e) => e.source));
416
- for (const edge of incomingEdges) {
417
- const sourceNode = sources.get(edge.source);
418
- if (sourceNode && !nodes.has(sourceNode.id)) {
419
- nodes.set(sourceNode.id, sourceNode);
420
- edges.push(edge);
421
- this.getImpactRecursive(sourceNode.id, maxDepth, currentDepth + 1, nodes, edges, visited);
422
- }
423
- }
424
- }
425
- /**
426
- * Find the shortest path between two nodes
427
- *
428
- * @param fromId - Starting node ID
429
- * @param toId - Target node ID
430
- * @param edgeKinds - Edge types to consider (all if empty)
431
- * @returns Array of nodes and edges forming the path, or null if no path exists
432
- */
433
- findPath(fromId, toId, edgeKinds = []) {
434
- const fromNode = this.queries.getNodeById(fromId);
435
- const toNode = this.queries.getNodeById(toId);
436
- if (!fromNode || !toNode) {
437
- return null;
438
- }
439
- // BFS to find shortest path
440
- const visited = new Set();
441
- const queue = [
442
- { nodeId: fromId, path: [{ node: fromNode, edge: null }] },
443
- ];
444
- while (queue.length > 0) {
445
- const { nodeId, path } = queue.shift();
446
- if (nodeId === toId) {
447
- return path;
448
- }
449
- if (visited.has(nodeId)) {
450
- continue;
451
- }
452
- visited.add(nodeId);
453
- // Get outgoing edges
454
- const outgoingEdges = this.queries.getOutgoingEdges(nodeId, edgeKinds.length > 0 ? edgeKinds : undefined);
455
- if (outgoingEdges.length === 0)
456
- continue;
457
- // Batch-fetch only the unvisited targets (was N+1 per BFS frontier).
458
- const wantIds = outgoingEdges
459
- .map((e) => e.target)
460
- .filter((id) => !visited.has(id));
461
- const nextNodes = wantIds.length > 0 ? this.queries.getNodesByIds(wantIds) : new Map();
462
- for (const edge of outgoingEdges) {
463
- if (!visited.has(edge.target)) {
464
- const nextNode = nextNodes.get(edge.target);
465
- if (nextNode) {
466
- queue.push({
467
- nodeId: edge.target,
468
- path: [...path, { node: nextNode, edge }],
469
- });
470
- }
471
- }
472
- }
473
- }
474
- return null; // No path found
475
- }
476
- /**
477
- * Get the containment hierarchy for a node (ancestors)
478
- *
479
- * @param nodeId - ID of the node
480
- * @returns Array of ancestor nodes from immediate parent to root
481
- */
482
- getAncestors(nodeId) {
483
- const ancestors = [];
484
- const visited = new Set();
485
- let currentId = nodeId;
486
- while (true) {
487
- if (visited.has(currentId)) {
488
- break;
489
- }
490
- visited.add(currentId);
491
- // Look for 'contains' edges pointing to this node
492
- const containingEdges = this.queries.getIncomingEdges(currentId, ['contains']);
493
- const firstEdge = containingEdges[0];
494
- if (!firstEdge) {
495
- break;
496
- }
497
- // Typically there should be at most one containing parent
498
- const parentNode = this.queries.getNodeById(firstEdge.source);
499
- if (parentNode) {
500
- ancestors.push(parentNode);
501
- currentId = parentNode.id;
502
- }
503
- else {
504
- break;
505
- }
506
- }
507
- return ancestors;
508
- }
509
- /**
510
- * Get immediate children of a node
511
- *
512
- * @param nodeId - ID of the node
513
- * @returns Array of child nodes
514
- */
515
- getChildren(nodeId) {
516
- const containsEdges = this.queries.getOutgoingEdges(nodeId, ['contains']);
517
- if (containsEdges.length === 0)
518
- return [];
519
- // Batch-fetch (was N+1).
520
- const childNodes = this.queries.getNodesByIds(containsEdges.map((e) => e.target));
521
- const children = [];
522
- for (const edge of containsEdges) {
523
- const childNode = childNodes.get(edge.target);
524
- if (childNode)
525
- children.push(childNode);
526
- }
527
- return children;
528
- }
529
- }
530
- exports.GraphTraverser = GraphTraverser;
531
- //# sourceMappingURL=traversal.js.map