@selvakumaresra/specship 0.1.1 → 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 (575) hide show
  1. package/package.json +8 -7
  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 -202
  446. package/dist/sync/git-hooks.d.ts +0 -45
  447. package/dist/sync/git-hooks.d.ts.map +0 -1
  448. package/dist/sync/git-hooks.js +0 -225
  449. package/dist/sync/git-hooks.js.map +0 -1
  450. package/dist/sync/index.d.ts +0 -19
  451. package/dist/sync/index.d.ts.map +0 -1
  452. package/dist/sync/index.js +0 -35
  453. package/dist/sync/index.js.map +0 -1
  454. package/dist/sync/watch-policy.d.ts +0 -48
  455. package/dist/sync/watch-policy.d.ts.map +0 -1
  456. package/dist/sync/watch-policy.js +0 -124
  457. package/dist/sync/watch-policy.js.map +0 -1
  458. package/dist/sync/watcher.d.ts +0 -283
  459. package/dist/sync/watcher.d.ts.map +0 -1
  460. package/dist/sync/watcher.js +0 -606
  461. package/dist/sync/watcher.js.map +0 -1
  462. package/dist/sync/worktree.d.ts +0 -54
  463. package/dist/sync/worktree.d.ts.map +0 -1
  464. package/dist/sync/worktree.js +0 -137
  465. package/dist/sync/worktree.js.map +0 -1
  466. package/dist/types.d.ts +0 -623
  467. package/dist/types.d.ts.map +0 -1
  468. package/dist/types.js +0 -108
  469. package/dist/types.js.map +0 -1
  470. package/dist/ui/glyphs.d.ts +0 -42
  471. package/dist/ui/glyphs.d.ts.map +0 -1
  472. package/dist/ui/glyphs.js +0 -78
  473. package/dist/ui/glyphs.js.map +0 -1
  474. package/dist/ui/shimmer-progress.d.ts +0 -11
  475. package/dist/ui/shimmer-progress.d.ts.map +0 -1
  476. package/dist/ui/shimmer-progress.js +0 -90
  477. package/dist/ui/shimmer-progress.js.map +0 -1
  478. package/dist/ui/shimmer-worker.d.ts +0 -2
  479. package/dist/ui/shimmer-worker.d.ts.map +0 -1
  480. package/dist/ui/shimmer-worker.js +0 -118
  481. package/dist/ui/shimmer-worker.js.map +0 -1
  482. package/dist/ui/types.d.ts +0 -17
  483. package/dist/ui/types.d.ts.map +0 -1
  484. package/dist/ui/types.js +0 -3
  485. package/dist/ui/types.js.map +0 -1
  486. package/dist/utils.d.ts +0 -205
  487. package/dist/utils.d.ts.map +0 -1
  488. package/dist/utils.js +0 -549
  489. package/dist/utils.js.map +0 -1
  490. package/dist/web/chunk-2YZXEHZ2.js +0 -1
  491. package/dist/web/chunk-3GIC555L.js +0 -18
  492. package/dist/web/chunk-3IIIGRMT.js +0 -1
  493. package/dist/web/chunk-47QYKLE5.js +0 -1
  494. package/dist/web/chunk-4LHBWWP7.js +0 -1
  495. package/dist/web/chunk-4OAZLD5W.js +0 -1
  496. package/dist/web/chunk-5OQKAJAE.js +0 -1
  497. package/dist/web/chunk-7B525GKQ.js +0 -1
  498. package/dist/web/chunk-BPDXCOOZ.js +0 -1
  499. package/dist/web/chunk-DT37HTZB.js +0 -1
  500. package/dist/web/chunk-EIMUHJND.js +0 -1
  501. package/dist/web/chunk-FTESTUEO.js +0 -1
  502. package/dist/web/chunk-GLJZV6MU.js +0 -1
  503. package/dist/web/chunk-I7LS67U5.js +0 -1
  504. package/dist/web/chunk-L4TVIPSR.js +0 -1
  505. package/dist/web/chunk-MASCULC2.js +0 -1
  506. package/dist/web/chunk-MW7ICSRM.js +0 -1
  507. package/dist/web/chunk-OI5VP2A3.js +0 -1
  508. package/dist/web/chunk-RA6EBF6I.js +0 -1
  509. package/dist/web/chunk-RP3WU5Y6.js +0 -1
  510. package/dist/web/chunk-RQDRMTXN.js +0 -1
  511. package/dist/web/chunk-TQMT6UDU.js +0 -1
  512. package/dist/web/chunk-U7IYOV7T.js +0 -1
  513. package/dist/web/chunk-UE227MWF.js +0 -1
  514. package/dist/web/chunk-WV573J4K.js +0 -1
  515. package/dist/web/chunk-WVCKOJZL.js +0 -4
  516. package/dist/web/chunk-XZKLVPHE.js +0 -1
  517. package/dist/web/chunk-ZABKKHJ3.js +0 -1
  518. package/dist/web/favicon-16.png +0 -0
  519. package/dist/web/favicon-180.png +0 -0
  520. package/dist/web/favicon-32.png +0 -0
  521. package/dist/web/favicon-512.png +0 -0
  522. package/dist/web/favicon-small.svg +0 -15
  523. package/dist/web/favicon.ico +0 -0
  524. package/dist/web/favicon.svg +0 -20
  525. package/dist/web/index.html +0 -145
  526. package/dist/web/main-RI5CO5Z4.js +0 -1
  527. package/dist/web/styles-CYN7IKT4.css +0 -1
  528. package/dist/workflows/condition-evaluator.d.ts +0 -75
  529. package/dist/workflows/condition-evaluator.d.ts.map +0 -1
  530. package/dist/workflows/condition-evaluator.js +0 -282
  531. package/dist/workflows/condition-evaluator.js.map +0 -1
  532. package/dist/workflows/defaults/index.d.ts +0 -26
  533. package/dist/workflows/defaults/index.d.ts.map +0 -1
  534. package/dist/workflows/defaults/index.js +0 -94
  535. package/dist/workflows/defaults/index.js.map +0 -1
  536. package/dist/workflows/defaults/spec-fix.yaml +0 -110
  537. package/dist/workflows/defaults/spec-implement.yaml +0 -150
  538. package/dist/workflows/defaults/spec-relink.yaml +0 -81
  539. package/dist/workflows/defaults/spec-verify.yaml +0 -51
  540. package/dist/workflows/discovery.d.ts +0 -46
  541. package/dist/workflows/discovery.d.ts.map +0 -1
  542. package/dist/workflows/discovery.js +0 -193
  543. package/dist/workflows/discovery.js.map +0 -1
  544. package/dist/workflows/executor.d.ts +0 -83
  545. package/dist/workflows/executor.d.ts.map +0 -1
  546. package/dist/workflows/executor.js +0 -623
  547. package/dist/workflows/executor.js.map +0 -1
  548. package/dist/workflows/runners/approval.d.ts +0 -18
  549. package/dist/workflows/runners/approval.d.ts.map +0 -1
  550. package/dist/workflows/runners/approval.js +0 -34
  551. package/dist/workflows/runners/approval.js.map +0 -1
  552. package/dist/workflows/runners/bash.d.ts +0 -13
  553. package/dist/workflows/runners/bash.d.ts.map +0 -1
  554. package/dist/workflows/runners/bash.js +0 -143
  555. package/dist/workflows/runners/bash.js.map +0 -1
  556. package/dist/workflows/runners/cancel.d.ts +0 -10
  557. package/dist/workflows/runners/cancel.d.ts.map +0 -1
  558. package/dist/workflows/runners/cancel.js +0 -19
  559. package/dist/workflows/runners/cancel.js.map +0 -1
  560. package/dist/workflows/runners/prompt.d.ts +0 -28
  561. package/dist/workflows/runners/prompt.d.ts.map +0 -1
  562. package/dist/workflows/runners/prompt.js +0 -212
  563. package/dist/workflows/runners/prompt.js.map +0 -1
  564. package/dist/workflows/runners/script.d.ts +0 -17
  565. package/dist/workflows/runners/script.d.ts.map +0 -1
  566. package/dist/workflows/runners/script.js +0 -155
  567. package/dist/workflows/runners/script.js.map +0 -1
  568. package/dist/workflows/runners/types.d.ts +0 -51
  569. package/dist/workflows/runners/types.d.ts.map +0 -1
  570. package/dist/workflows/runners/types.js +0 -13
  571. package/dist/workflows/runners/types.js.map +0 -1
  572. package/dist/workflows/schemas/workflow.d.ts +0 -166
  573. package/dist/workflows/schemas/workflow.d.ts.map +0 -1
  574. package/dist/workflows/schemas/workflow.js +0 -437
  575. package/dist/workflows/schemas/workflow.js.map +0 -1
@@ -1,302 +0,0 @@
1
- "use strict";
2
- /**
3
- * Ruby Framework Resolver
4
- *
5
- * Handles Ruby on Rails patterns.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.railsResolver = void 0;
9
- const strip_comments_1 = require("../strip-comments");
10
- exports.railsResolver = {
11
- name: 'rails',
12
- languages: ['ruby'],
13
- // `controller#action` route refs name no declared symbol, so resolveOne's
14
- // pre-filter would drop them before resolve() runs. Claim them (like the django
15
- // `_iterable_class` hook) so they reach Pattern 0.
16
- claimsReference(name) {
17
- return /^[\w/]+#\w+$/.test(name);
18
- },
19
- detect(context) {
20
- // Check for Gemfile with rails
21
- const gemfile = context.readFile('Gemfile');
22
- if (gemfile && gemfile.includes("'rails'")) {
23
- return true;
24
- }
25
- // Check for config/application.rb (Rails signature)
26
- if (context.fileExists('config/application.rb')) {
27
- return true;
28
- }
29
- // Check for typical Rails directory structure
30
- return (context.fileExists('app/controllers/application_controller.rb') ||
31
- context.fileExists('config/routes.rb'));
32
- },
33
- resolve(ref, context) {
34
- // Pattern 0: route action `controller#action` (from RESTful `resources` or an
35
- // explicit route) → the action method in that controller. Precise — avoids the
36
- // bare-`action` ambiguity (every controller has an `index`/`show`).
37
- const ca = ref.referenceName.match(/^([\w/]+)#(\w+)$/);
38
- if (ca) {
39
- const result = resolveControllerAction(ca[1], ca[2], context);
40
- if (result) {
41
- return { original: ref, targetNodeId: result, confidence: 0.85, resolvedBy: 'framework' };
42
- }
43
- return null;
44
- }
45
- // Pattern 1: Model references (ActiveRecord)
46
- if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
47
- const result = resolveModel(ref.referenceName, context);
48
- if (result) {
49
- return {
50
- original: ref,
51
- targetNodeId: result,
52
- confidence: 0.8,
53
- resolvedBy: 'framework',
54
- };
55
- }
56
- }
57
- // Pattern 2: Controller references
58
- if (ref.referenceName.endsWith('Controller')) {
59
- const result = resolveController(ref.referenceName, context);
60
- if (result) {
61
- return {
62
- original: ref,
63
- targetNodeId: result,
64
- confidence: 0.85,
65
- resolvedBy: 'framework',
66
- };
67
- }
68
- }
69
- // Pattern 3: Helper references
70
- if (ref.referenceName.endsWith('Helper')) {
71
- const result = resolveHelper(ref.referenceName, context);
72
- if (result) {
73
- return {
74
- original: ref,
75
- targetNodeId: result,
76
- confidence: 0.8,
77
- resolvedBy: 'framework',
78
- };
79
- }
80
- }
81
- // Pattern 4: Service/Job references
82
- if (ref.referenceName.endsWith('Service') || ref.referenceName.endsWith('Job')) {
83
- const result = resolveService(ref.referenceName, context);
84
- if (result) {
85
- return {
86
- original: ref,
87
- targetNodeId: result,
88
- confidence: 0.8,
89
- resolvedBy: 'framework',
90
- };
91
- }
92
- }
93
- return null;
94
- },
95
- extract(filePath, content) {
96
- if (!filePath.endsWith('.rb'))
97
- return { nodes: [], references: [] };
98
- const nodes = [];
99
- const references = [];
100
- const now = Date.now();
101
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'ruby');
102
- // get/post/put/patch/delete/match '/path', to: 'controller#action'
103
- // Also: get '/path' => 'controller#action'
104
- const routeRegex = /\b(get|post|put|patch|delete|match)\s+['"]([^'"]+)['"]\s*(?:,\s*to:\s*|=>\s*)['"]([^#'"]+)#([^'"]+)['"]/g;
105
- let match;
106
- while ((match = routeRegex.exec(safe)) !== null) {
107
- const [, method, routePath, ctrl, action] = match;
108
- const line = safe.slice(0, match.index).split('\n').length;
109
- const upper = method.toUpperCase();
110
- const routeNode = {
111
- id: `route:${filePath}:${line}:${upper}:${routePath}`,
112
- kind: 'route',
113
- name: `${upper} ${routePath}`,
114
- qualifiedName: `${filePath}::route:${routePath}`,
115
- filePath,
116
- startLine: line,
117
- endLine: line,
118
- startColumn: 0,
119
- endColumn: match[0].length,
120
- language: 'ruby',
121
- updatedAt: now,
122
- };
123
- nodes.push(routeNode);
124
- references.push({
125
- fromNodeId: routeNode.id,
126
- referenceName: `${ctrl}#${action}`, // precise controller#action, not bare action
127
- referenceKind: 'references',
128
- line,
129
- column: 0,
130
- filePath,
131
- language: 'ruby',
132
- });
133
- }
134
- // RESTful resources: `resources :articles` / `resource :user` (the dominant
135
- // Rails routing) generate a controller action per REST verb. The old resolver
136
- // only saw explicit `get '/x' => 'c#a'` routes, so resource-routed apps had
137
- // ZERO route nodes. Expand each into its actions → `controller#action` refs.
138
- const resRegex = /\b(resources?)\s+:(\w+)([^\n]*)/g;
139
- while ((match = resRegex.exec(safe)) !== null) {
140
- const plural = match[1] === 'resources';
141
- const resName = match[2];
142
- const tail = match[3] || '';
143
- let actions = plural ? PLURAL_ACTIONS : SINGULAR_ACTIONS;
144
- const only = tail.match(/only:\s*\[([^\]]*)\]/);
145
- const except = tail.match(/except:\s*\[([^\]]*)\]/);
146
- const symList = (s) => new Set(s.split(',').map((x) => x.trim().replace(/^:/, '')));
147
- if (only) {
148
- const s = symList(only[1]);
149
- actions = actions.filter((a) => s.has(a));
150
- }
151
- else if (except) {
152
- const s = symList(except[1]);
153
- actions = actions.filter((a) => !s.has(a));
154
- }
155
- // `resources :articles` → ArticlesController; `resource :user` → UsersController.
156
- const ctrl = plural ? resName : pluralize(resName);
157
- const line = safe.slice(0, match.index).split('\n').length;
158
- for (const action of actions) {
159
- const spec = RESTFUL_ROUTES[action];
160
- const path = spec.path(resName);
161
- const routeNode = {
162
- id: `route:${filePath}:${line}:${spec.method}:${ctrl}#${action}`,
163
- kind: 'route',
164
- name: `${spec.method} ${path}`,
165
- qualifiedName: `${filePath}::route:${ctrl}#${action}`,
166
- filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length,
167
- language: 'ruby', updatedAt: now,
168
- };
169
- nodes.push(routeNode);
170
- references.push({
171
- fromNodeId: routeNode.id,
172
- referenceName: `${ctrl}#${action}`,
173
- referenceKind: 'references',
174
- line, column: 0, filePath, language: 'ruby',
175
- });
176
- }
177
- }
178
- return { nodes, references };
179
- },
180
- };
181
- // Helper functions
182
- // RESTful action → HTTP verb + path. `resources` gets all seven; a singular
183
- // `resource` omits `index`.
184
- const RESTFUL_ROUTES = {
185
- index: { method: 'GET', path: (r) => `/${r}` },
186
- create: { method: 'POST', path: (r) => `/${r}` },
187
- new: { method: 'GET', path: (r) => `/${r}/new` },
188
- show: { method: 'GET', path: (r) => `/${r}/:id` },
189
- edit: { method: 'GET', path: (r) => `/${r}/:id/edit` },
190
- update: { method: 'PATCH', path: (r) => `/${r}/:id` },
191
- destroy: { method: 'DELETE', path: (r) => `/${r}/:id` },
192
- };
193
- const PLURAL_ACTIONS = ['index', 'create', 'new', 'show', 'edit', 'update', 'destroy'];
194
- const SINGULAR_ACTIONS = ['create', 'new', 'show', 'edit', 'update', 'destroy'];
195
- /** Naive ActiveSupport-style pluralize — covers the common resource names. */
196
- function pluralize(w) {
197
- if (/[^aeiou]y$/.test(w))
198
- return w.slice(0, -1) + 'ies';
199
- if (/(s|x|z|ch|sh)$/.test(w))
200
- return w + 'es';
201
- return w + 's';
202
- }
203
- /** snake_case → CamelCase (`user_profiles` → `UserProfiles`). */
204
- function camelize(s) {
205
- return s.split('_').map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join('');
206
- }
207
- /** Resolve a `controller#action` route ref to the action method in that controller. */
208
- function resolveControllerAction(ctrlPath, action, context) {
209
- // Rails convention: `articles` → app/controllers/articles_controller.rb.
210
- const direct = `app/controllers/${ctrlPath}_controller.rb`;
211
- if (context.fileExists(direct)) {
212
- const m = context.getNodesInFile(direct).find((n) => (n.kind === 'method' || n.kind === 'function') && n.name === action);
213
- if (m)
214
- return m.id;
215
- }
216
- // Fall back: controller class by name, then the action method in its file.
217
- const cls = camelize(ctrlPath.split('/').pop()) + 'Controller';
218
- for (const ctrl of context.getNodesByName(cls).filter((n) => n.kind === 'class')) {
219
- const m = context.getNodesInFile(ctrl.filePath).find((n) => (n.kind === 'method' || n.kind === 'function') && n.name === action);
220
- if (m)
221
- return m.id;
222
- }
223
- return null;
224
- }
225
- function resolveModel(name, context) {
226
- // Try direct file path lookup first (Rails convention: CamelCase -> snake_case.rb)
227
- const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
228
- const possiblePaths = [
229
- `app/models/${snakeName}.rb`,
230
- `app/models/concerns/${snakeName}.rb`,
231
- ];
232
- for (const modelPath of possiblePaths) {
233
- if (context.fileExists(modelPath)) {
234
- const nodes = context.getNodesInFile(modelPath);
235
- const modelNode = nodes.find((n) => n.kind === 'class' && n.name === name);
236
- if (modelNode) {
237
- return modelNode.id;
238
- }
239
- }
240
- }
241
- // Fall back to name-based lookup
242
- const candidates = context.getNodesByName(name);
243
- const modelNode = candidates.find((n) => n.kind === 'class' && n.filePath.includes('app/models/'));
244
- if (modelNode)
245
- return modelNode.id;
246
- return null;
247
- }
248
- function resolveController(name, context) {
249
- // Try direct file path lookup first
250
- const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
251
- const possiblePaths = [
252
- `app/controllers/${snakeName}.rb`,
253
- `app/controllers/api/${snakeName}.rb`,
254
- `app/controllers/api/v1/${snakeName}.rb`,
255
- ];
256
- for (const controllerPath of possiblePaths) {
257
- if (context.fileExists(controllerPath)) {
258
- const nodes = context.getNodesInFile(controllerPath);
259
- const controllerNode = nodes.find((n) => n.kind === 'class' && n.name === name);
260
- if (controllerNode) {
261
- return controllerNode.id;
262
- }
263
- }
264
- }
265
- // Fall back to name-based lookup
266
- const candidates = context.getNodesByName(name);
267
- const controllerNode = candidates.find((n) => n.kind === 'class' && n.filePath.includes('controllers/'));
268
- if (controllerNode)
269
- return controllerNode.id;
270
- return null;
271
- }
272
- function resolveHelper(name, context) {
273
- const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
274
- const helperPath = `app/helpers/${snakeName}.rb`;
275
- if (context.fileExists(helperPath)) {
276
- const nodes = context.getNodesInFile(helperPath);
277
- const helperNode = nodes.find((n) => n.kind === 'module' && n.name === name);
278
- if (helperNode) {
279
- return helperNode.id;
280
- }
281
- }
282
- return null;
283
- }
284
- function resolveService(name, context) {
285
- const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
286
- const possiblePaths = [
287
- `app/services/${snakeName}.rb`,
288
- `app/jobs/${snakeName}.rb`,
289
- `app/workers/${snakeName}.rb`,
290
- ];
291
- for (const servicePath of possiblePaths) {
292
- if (context.fileExists(servicePath)) {
293
- const nodes = context.getNodesInFile(servicePath);
294
- const serviceNode = nodes.find((n) => n.kind === 'class' && n.name === name);
295
- if (serviceNode) {
296
- return serviceNode.id;
297
- }
298
- }
299
- }
300
- return null;
301
- }
302
- //# sourceMappingURL=ruby.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/ruby.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Rust Framework Resolver
3
- *
4
- * Handles Actix-web, Rocket, Axum, and common Rust patterns.
5
- */
6
- import { FrameworkResolver } from '../types';
7
- export declare const rustResolver: FrameworkResolver;
8
- //# sourceMappingURL=rust.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAc5F,eAAO,MAAM,YAAY,EAAE,iBA0O1B,CAAC"}
@@ -1,304 +0,0 @@
1
- "use strict";
2
- /**
3
- * Rust Framework Resolver
4
- *
5
- * Handles Actix-web, Rocket, Axum, and common Rust patterns.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.rustResolver = void 0;
9
- const strip_comments_1 = require("../strip-comments");
10
- const cargo_workspace_1 = require("./cargo-workspace");
11
- const cargoWorkspaceMapCache = new WeakMap();
12
- function getCachedCargoWorkspaceCrateMap(context) {
13
- const cached = cargoWorkspaceMapCache.get(context);
14
- if (cached)
15
- return cached;
16
- const map = (0, cargo_workspace_1.getCargoWorkspaceCrateMap)(context);
17
- cargoWorkspaceMapCache.set(context, map);
18
- return map;
19
- }
20
- exports.rustResolver = {
21
- name: 'rust',
22
- languages: ['rust'],
23
- detect(context) {
24
- // Check for Cargo.toml (Rust project signature)
25
- return context.fileExists('Cargo.toml');
26
- },
27
- resolve(ref, context) {
28
- // Pattern 1: Handler references
29
- if (ref.referenceName.endsWith('_handler') || ref.referenceName.startsWith('handle_')) {
30
- const result = resolveByNameAndKind(ref.referenceName, FUNCTION_KINDS, HANDLER_DIRS, context);
31
- if (result) {
32
- return {
33
- original: ref,
34
- targetNodeId: result,
35
- confidence: 0.8,
36
- resolvedBy: 'framework',
37
- };
38
- }
39
- }
40
- // Pattern 2: Service/Repository trait implementations
41
- if (ref.referenceName.endsWith('Service') || ref.referenceName.endsWith('Repository')) {
42
- const result = resolveByNameAndKind(ref.referenceName, SERVICE_KINDS, SERVICE_DIRS, context);
43
- if (result) {
44
- return {
45
- original: ref,
46
- targetNodeId: result,
47
- confidence: 0.8,
48
- resolvedBy: 'framework',
49
- };
50
- }
51
- }
52
- // Pattern 3: Struct references (PascalCase)
53
- if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
54
- const result = resolveByNameAndKind(ref.referenceName, STRUCT_KINDS, MODEL_DIRS, context);
55
- if (result) {
56
- return {
57
- original: ref,
58
- targetNodeId: result,
59
- confidence: 0.7,
60
- resolvedBy: 'framework',
61
- };
62
- }
63
- }
64
- // Pattern 4: Module references
65
- if (/^[a-z_]+$/.test(ref.referenceName)) {
66
- const result = resolveModule(ref.referenceName, context);
67
- if (result) {
68
- // Workspace-manifest hits are an exact crate-name -> crate-root
69
- // mapping straight from Cargo.toml, so we trust them above
70
- // name-matcher self-file matches (which otherwise win at 0.7
71
- // because every file containing `use foo::...` has its own
72
- // import node named `foo`).
73
- return {
74
- original: ref,
75
- targetNodeId: result.targetId,
76
- confidence: result.fromWorkspace ? 0.95 : 0.6,
77
- resolvedBy: 'framework',
78
- };
79
- }
80
- }
81
- return null;
82
- },
83
- extract(filePath, content) {
84
- if (!filePath.endsWith('.rs'))
85
- return { nodes: [], references: [] };
86
- const nodes = [];
87
- const references = [];
88
- const now = Date.now();
89
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'rust');
90
- // Actix-web / Rocket attribute: #[get("/path")] fn handler(..)
91
- // Capture the method, path, and the fn identifier that follows.
92
- const attrRegex = /#\[(get|post|put|patch|delete|head|options)\s*\(\s*["']([^"']+)["'][^\]]*\)\]/g;
93
- let match;
94
- while ((match = attrRegex.exec(safe)) !== null) {
95
- const [, method, routePath] = match;
96
- const line = safe.slice(0, match.index).split('\n').length;
97
- const upper = method.toUpperCase();
98
- const routeNode = {
99
- id: `route:${filePath}:${line}:${upper}:${routePath}`,
100
- kind: 'route',
101
- name: `${upper} ${routePath}`,
102
- qualifiedName: `${filePath}::route:${routePath}`,
103
- filePath,
104
- startLine: line,
105
- endLine: line,
106
- startColumn: 0,
107
- endColumn: match[0].length,
108
- language: 'rust',
109
- updatedAt: now,
110
- };
111
- nodes.push(routeNode);
112
- const tail = safe.slice(match.index + match[0].length);
113
- const fnMatch = tail.match(/\n\s*(?:pub\s+)?(?:async\s+)?fn\s+(\w+)/);
114
- if (fnMatch) {
115
- references.push({
116
- fromNodeId: routeNode.id,
117
- referenceName: fnMatch[1],
118
- referenceKind: 'references',
119
- line,
120
- column: 0,
121
- filePath,
122
- language: 'rust',
123
- });
124
- }
125
- }
126
- // Axum: .route("/path", get(h1).post(h2)…) — balanced-paren scan the route
127
- // call, then emit one route node per chained method. Handlers may be
128
- // namespaced (`get(module::handler)`, `get(self::list)`); take the last
129
- // path segment so the ref names the fn, not the module.
130
- const routeOpenRegex = /\.route\s*\(/g;
131
- while ((match = routeOpenRegex.exec(safe)) !== null) {
132
- const openIdx = safe.indexOf('(', match.index);
133
- if (openIdx < 0)
134
- continue;
135
- const closeIdx = findMatchingParen(safe, openIdx);
136
- if (closeIdx < 0)
137
- continue;
138
- const args = safe.slice(openIdx + 1, closeIdx);
139
- const pathMatch = args.match(/^\s*"([^"]+)"\s*,/);
140
- if (!pathMatch)
141
- continue;
142
- const routePath = pathMatch[1];
143
- const line = safe.slice(0, match.index).split('\n').length;
144
- const methodBody = args.slice(pathMatch[0].length);
145
- const methodHandlerRegex = /\b(get|post|put|patch|delete|head|options|trace)\s*\(\s*([A-Za-z_][\w:]*)/g;
146
- let mh;
147
- while ((mh = methodHandlerRegex.exec(methodBody)) !== null) {
148
- const upper = mh[1].toUpperCase();
149
- const handler = mh[2].split('::').filter(Boolean).pop();
150
- if (!handler)
151
- continue;
152
- const routeNode = {
153
- id: `route:${filePath}:${line}:${upper}:${routePath}`,
154
- kind: 'route',
155
- name: `${upper} ${routePath}`,
156
- qualifiedName: `${filePath}::route:${routePath}`,
157
- filePath,
158
- startLine: line,
159
- endLine: line,
160
- startColumn: 0,
161
- endColumn: 0,
162
- language: 'rust',
163
- updatedAt: now,
164
- };
165
- nodes.push(routeNode);
166
- references.push({
167
- fromNodeId: routeNode.id,
168
- referenceName: handler,
169
- referenceKind: 'references',
170
- line,
171
- column: 0,
172
- filePath,
173
- language: 'rust',
174
- });
175
- }
176
- }
177
- // Actix-web builder API (the dominant actix routing style; attribute macros
178
- // are handled above). The handler lives in `.to(handler)`, not `get(handler)`.
179
- const pushActixRoute = (routePath, method, handlerExpr, line) => {
180
- const handler = handlerExpr.split('::').filter(Boolean).pop();
181
- if (!handler)
182
- return;
183
- const upper = method.toUpperCase();
184
- const routeNode = {
185
- id: `route:${filePath}:${line}:${upper}:${routePath}`,
186
- kind: 'route',
187
- name: `${upper} ${routePath}`,
188
- qualifiedName: `${filePath}::route:${routePath}`,
189
- filePath,
190
- startLine: line,
191
- endLine: line,
192
- startColumn: 0,
193
- endColumn: 0,
194
- language: 'rust',
195
- updatedAt: now,
196
- };
197
- nodes.push(routeNode);
198
- references.push({
199
- fromNodeId: routeNode.id,
200
- referenceName: handler,
201
- referenceKind: 'references',
202
- line,
203
- column: 0,
204
- filePath,
205
- language: 'rust',
206
- });
207
- };
208
- // web::resource("/path") { .route(web::METHOD().to(h)) | .to(h) } — possibly chained.
209
- const resourceRegex = /web::resource\s*\(\s*"([^"]+)"\s*\)/g;
210
- while ((match = resourceRegex.exec(safe)) !== null) {
211
- const routePath = match[1];
212
- const startLine = safe.slice(0, match.index).split('\n').length;
213
- const after = match.index + match[0].length;
214
- // Bound the resource's method chain at the next resource() to avoid bleed.
215
- const nextRes = safe.indexOf('web::resource', after);
216
- const end = Math.min(after + 500, nextRes === -1 ? safe.length : nextRes);
217
- const chain = safe.slice(after, end);
218
- const methodTo = /web::(get|post|put|patch|delete|head)\s*\(\s*\)\s*\.to\s*\(\s*([A-Za-z_][\w:]*)/g;
219
- let m2;
220
- let found = false;
221
- while ((m2 = methodTo.exec(chain)) !== null) {
222
- const mLine = startLine + chain.slice(0, m2.index).split('\n').length - 1;
223
- pushActixRoute(routePath, m2[1], m2[2], mLine);
224
- found = true;
225
- }
226
- // Direct `.resource("/x").to(handler)` (all methods) when no explicit verb route.
227
- if (!found) {
228
- const direct = chain.match(/^\s*\.to\s*\(\s*([A-Za-z_][\w:]*)/);
229
- if (direct)
230
- pushActixRoute(routePath, 'ANY', direct[1], startLine);
231
- }
232
- }
233
- // App-level: .route("/path", web::METHOD().to(handler)).
234
- const appRouteRegex = /\.route\s*\(\s*"([^"]+)"\s*,\s*web::(get|post|put|patch|delete|head)\s*\(\s*\)\s*\.to\s*\(\s*([A-Za-z_][\w:]*)/g;
235
- while ((match = appRouteRegex.exec(safe)) !== null) {
236
- const line = safe.slice(0, match.index).split('\n').length;
237
- pushActixRoute(match[1], match[2], match[3], line);
238
- }
239
- return { nodes, references };
240
- },
241
- };
242
- // Directory patterns
243
- const HANDLER_DIRS = ['/handlers/', '/handler/', '/api/', '/routes/', '/controllers/'];
244
- const SERVICE_DIRS = ['/services/', '/service/', '/repository/', '/domain/'];
245
- const MODEL_DIRS = ['/models/', '/model/', '/entities/', '/entity/', '/domain/', '/types/'];
246
- const FUNCTION_KINDS = new Set(['function']);
247
- const SERVICE_KINDS = new Set(['struct', 'trait']);
248
- const STRUCT_KINDS = new Set(['struct']);
249
- /** Index of the ')' that matches the '(' at openIdx, or -1 if unbalanced. */
250
- function findMatchingParen(s, openIdx) {
251
- let depth = 0;
252
- for (let i = openIdx; i < s.length; i++) {
253
- if (s[i] === '(')
254
- depth++;
255
- else if (s[i] === ')') {
256
- depth--;
257
- if (depth === 0)
258
- return i;
259
- }
260
- }
261
- return -1;
262
- }
263
- /**
264
- * Resolve a symbol by name using indexed queries instead of scanning all files.
265
- */
266
- function resolveByNameAndKind(name, kinds, preferredDirPatterns, context) {
267
- const candidates = context.getNodesByName(name);
268
- if (candidates.length === 0)
269
- return null;
270
- const kindFiltered = candidates.filter((n) => kinds.has(n.kind));
271
- if (kindFiltered.length === 0)
272
- return null;
273
- // Prefer candidates in framework-conventional directories
274
- const preferred = kindFiltered.filter((n) => preferredDirPatterns.some((d) => n.filePath.includes(d)));
275
- if (preferred.length > 0)
276
- return preferred[0].id;
277
- // Fall back to any match
278
- return kindFiltered[0].id;
279
- }
280
- function resolveModule(name, context) {
281
- // Rust modules can be either mod.rs in a directory or name.rs
282
- const localPaths = [`src/${name}.rs`, `src/${name}/mod.rs`];
283
- const workspaceCrates = getCachedCargoWorkspaceCrateMap(context);
284
- const cratePath = workspaceCrates.get(name);
285
- const workspacePaths = cratePath
286
- ? [`${cratePath}/src/lib.rs`, `${cratePath}/src/main.rs`]
287
- : [];
288
- const candidates = [
289
- ...localPaths.map((path) => ({ path, fromWorkspace: false })),
290
- ...workspacePaths.map((path) => ({ path, fromWorkspace: true })),
291
- ];
292
- for (const { path: modPath, fromWorkspace } of candidates) {
293
- if (!context.fileExists(modPath))
294
- continue;
295
- const nodes = context.getNodesInFile(modPath);
296
- const modNode = nodes.find((n) => n.kind === 'module');
297
- if (modNode)
298
- return { targetId: modNode.id, fromWorkspace };
299
- if (nodes.length > 0)
300
- return { targetId: nodes[0].id, fromWorkspace };
301
- }
302
- return null;
303
- }
304
- //# sourceMappingURL=rust.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"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"}