@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,77 +0,0 @@
1
- /**
2
- * MCP per-connection session — speaks the JSON-RPC protocol (initialize,
3
- * tools/list, tools/call) over a single {@link JsonRpcTransport}. It owns
4
- * per-client state only (which protocol version the client asked for, whether
5
- * it advertised `roots`, the one-shot roots/list latch); the heavyweight
6
- * resources (SpecShip, watcher, ToolHandler) live in the shared
7
- * {@link MCPEngine} so daemon mode can collapse N inotify sets / DB handles
8
- * to one.
9
- *
10
- * The state-machine itself mirrors what `MCPServer` used to do inline before
11
- * issue #411 split it out — the same regression tests in
12
- * `__tests__/mcp-initialize.test.ts` still drive this code path.
13
- */
14
- import { JsonRpcTransport } from './transport';
15
- import { MCPEngine } from './engine';
16
- /**
17
- * MCP Server Info — kept on the session because some clients log it. The
18
- * version tracks the real package version (was a hard-coded '0.1.0').
19
- */
20
- export declare const SERVER_INFO: {
21
- name: string;
22
- version: string;
23
- };
24
- /** MCP Protocol Version (latest the server claims). */
25
- export declare const PROTOCOL_VERSION = "2024-11-05";
26
- export interface MCPSessionOptions {
27
- /**
28
- * Explicit project path from the `--path` CLI flag. When set, the session
29
- * will not bother asking the client for `roots/list` — we already know
30
- * where the project lives.
31
- */
32
- explicitProjectPath?: string | null;
33
- }
34
- /**
35
- * One MCP client's view of the server. Created fresh per stdio launch
36
- * (direct mode) or per socket connection (daemon mode).
37
- */
38
- export declare class MCPSession {
39
- private transport;
40
- private engine;
41
- private clientSupportsRoots;
42
- private rootsAttempted;
43
- private resolvePromise;
44
- private explicitProjectPath;
45
- constructor(transport: JsonRpcTransport, engine: MCPEngine, opts?: MCPSessionOptions);
46
- /**
47
- * Start handling messages from the transport. Returns immediately — the
48
- * session lives for as long as the transport is open.
49
- */
50
- start(): void;
51
- /**
52
- * Tear down the session. Does NOT touch the engine (the engine may serve
53
- * other sessions) or call `process.exit` (the daemon decides when to exit).
54
- */
55
- stop(): void;
56
- /** Underlying transport — exposed for daemon-side close hooks. */
57
- getTransport(): JsonRpcTransport;
58
- private handleMessage;
59
- private handleInitialize;
60
- private handleToolsList;
61
- private handleToolsCall;
62
- /**
63
- * Lazy default-project resolution. Three layers:
64
- * 1. await the in-flight init kicked off from `handleInitialize` (if any);
65
- * 2. if still uninitialized and we never asked the client for its roots,
66
- * do so now (one-shot); fall back to cwd if the client lacks roots;
67
- * 3. last-resort: re-walk from the best candidate — picks up projects
68
- * that were `specship init`'d *after* the server started.
69
- */
70
- private retryInitIfNeeded;
71
- /**
72
- * Ask the client for its workspace root via `roots/list` and open the
73
- * first one. Falls back to `process.cwd()` on timeout or empty answer.
74
- */
75
- private initFromRoots;
76
- }
77
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAuC,gBAAgB,EAAc,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAKrC;;;GAGG;AAGH,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAmC7C,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,qBAAa,UAAU;IAOnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IAPhB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,mBAAmB,CAAgB;gBAGjC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,SAAS,EACzB,IAAI,GAAE,iBAAsB;IAK9B;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAIZ,kEAAkE;IAClE,YAAY,IAAI,gBAAgB;YAIlB,aAAa;YA0Cb,gBAAgB;YAsChB,eAAe;YAOf,eAAe;IA8B7B;;;;;;;OAOG;YACW,iBAAiB;IAyB/B;;;OAGG;YACW,aAAa;CAgB5B"}
@@ -1,294 +0,0 @@
1
- "use strict";
2
- /**
3
- * MCP per-connection session — speaks the JSON-RPC protocol (initialize,
4
- * tools/list, tools/call) over a single {@link JsonRpcTransport}. It owns
5
- * per-client state only (which protocol version the client asked for, whether
6
- * it advertised `roots`, the one-shot roots/list latch); the heavyweight
7
- * resources (SpecShip, watcher, ToolHandler) live in the shared
8
- * {@link MCPEngine} so daemon mode can collapse N inotify sets / DB handles
9
- * to one.
10
- *
11
- * The state-machine itself mirrors what `MCPServer` used to do inline before
12
- * issue #411 split it out — the same regression tests in
13
- * `__tests__/mcp-initialize.test.ts` still drive this code path.
14
- */
15
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- var desc = Object.getOwnPropertyDescriptor(m, k);
18
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
- desc = { enumerable: true, get: function() { return m[k]; } };
20
- }
21
- Object.defineProperty(o, k2, desc);
22
- }) : (function(o, m, k, k2) {
23
- if (k2 === undefined) k2 = k;
24
- o[k2] = m[k];
25
- }));
26
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
- Object.defineProperty(o, "default", { enumerable: true, value: v });
28
- }) : function(o, v) {
29
- o["default"] = v;
30
- });
31
- var __importStar = (this && this.__importStar) || (function () {
32
- var ownKeys = function(o) {
33
- ownKeys = Object.getOwnPropertyNames || function (o) {
34
- var ar = [];
35
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
- return ar;
37
- };
38
- return ownKeys(o);
39
- };
40
- return function (mod) {
41
- if (mod && mod.__esModule) return mod;
42
- var result = {};
43
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
- __setModuleDefault(result, mod);
45
- return result;
46
- };
47
- })();
48
- Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.MCPSession = exports.PROTOCOL_VERSION = exports.SERVER_INFO = void 0;
50
- const path = __importStar(require("path"));
51
- const transport_1 = require("./transport");
52
- const tools_1 = require("./tools");
53
- const server_instructions_1 = require("./server-instructions");
54
- const version_1 = require("./version");
55
- /**
56
- * MCP Server Info — kept on the session because some clients log it. The
57
- * version tracks the real package version (was a hard-coded '0.1.0').
58
- */
59
- // Exported so the proxy can answer `initialize` locally with the IDENTICAL
60
- // payload the daemon would send — no drift between the two handshake paths.
61
- exports.SERVER_INFO = {
62
- name: 'specship',
63
- version: version_1.SpecShipPackageVersion,
64
- };
65
- /** MCP Protocol Version (latest the server claims). */
66
- exports.PROTOCOL_VERSION = '2024-11-05';
67
- /**
68
- * How long to wait for the client's `roots/list` response before giving up
69
- * and falling back to the process cwd.
70
- */
71
- const ROOTS_LIST_TIMEOUT_MS = 5000;
72
- /**
73
- * Convert a file:// URI to a filesystem path. Handles URL encoding and
74
- * Windows drive letter paths.
75
- */
76
- function fileUriToPath(uri) {
77
- try {
78
- const url = new URL(uri);
79
- let filePath = decodeURIComponent(url.pathname);
80
- if (process.platform === 'win32' && /^\/[a-zA-Z]:/.test(filePath)) {
81
- filePath = filePath.slice(1);
82
- }
83
- return path.resolve(filePath);
84
- }
85
- catch {
86
- return uri.replace(/^file:\/\/\/?/, '');
87
- }
88
- }
89
- /** First usable filesystem path from a `roots/list` result, or null. */
90
- function firstRootPath(result) {
91
- if (!result || typeof result !== 'object')
92
- return null;
93
- const roots = result.roots;
94
- if (!Array.isArray(roots) || roots.length === 0)
95
- return null;
96
- const first = roots[0];
97
- if (typeof first?.uri !== 'string')
98
- return null;
99
- return fileUriToPath(first.uri);
100
- }
101
- /**
102
- * One MCP client's view of the server. Created fresh per stdio launch
103
- * (direct mode) or per socket connection (daemon mode).
104
- */
105
- class MCPSession {
106
- transport;
107
- engine;
108
- clientSupportsRoots = false;
109
- rootsAttempted = false;
110
- resolvePromise = null;
111
- explicitProjectPath;
112
- constructor(transport, engine, opts = {}) {
113
- this.transport = transport;
114
- this.engine = engine;
115
- this.explicitProjectPath = opts.explicitProjectPath ?? null;
116
- }
117
- /**
118
- * Start handling messages from the transport. Returns immediately — the
119
- * session lives for as long as the transport is open.
120
- */
121
- start() {
122
- this.transport.start(this.handleMessage.bind(this));
123
- }
124
- /**
125
- * Tear down the session. Does NOT touch the engine (the engine may serve
126
- * other sessions) or call `process.exit` (the daemon decides when to exit).
127
- */
128
- stop() {
129
- this.transport.stop();
130
- }
131
- /** Underlying transport — exposed for daemon-side close hooks. */
132
- getTransport() {
133
- return this.transport;
134
- }
135
- async handleMessage(message) {
136
- const isRequest = 'id' in message;
137
- switch (message.method) {
138
- case 'initialize':
139
- if (isRequest)
140
- await this.handleInitialize(message);
141
- break;
142
- case 'initialized':
143
- // Notification that client has finished initialization — no action needed.
144
- break;
145
- case 'tools/list':
146
- if (isRequest)
147
- await this.handleToolsList(message);
148
- break;
149
- case 'tools/call':
150
- if (isRequest)
151
- await this.handleToolsCall(message);
152
- break;
153
- case 'ping':
154
- if (isRequest)
155
- this.transport.sendResult(message.id, {});
156
- break;
157
- case 'resources/list':
158
- // We expose no MCP resources, but some clients (opencode, Codex) probe
159
- // for them on connect; reply with an empty list instead of a
160
- // MethodNotFound error that surfaces as a scary `-32601` log line. (#621)
161
- if (isRequest)
162
- this.transport.sendResult(message.id, { resources: [] });
163
- break;
164
- case 'resources/templates/list':
165
- if (isRequest)
166
- this.transport.sendResult(message.id, { resourceTemplates: [] });
167
- break;
168
- case 'prompts/list':
169
- // Likewise — no prompts exposed, but answer the probe cleanly. (#621)
170
- if (isRequest)
171
- this.transport.sendResult(message.id, { prompts: [] });
172
- break;
173
- default:
174
- if (isRequest) {
175
- this.transport.sendError(message.id, transport_1.ErrorCodes.MethodNotFound, `Method not found: ${message.method}`);
176
- }
177
- }
178
- }
179
- async handleInitialize(request) {
180
- const params = request.params;
181
- this.clientSupportsRoots = !!params?.capabilities?.roots;
182
- // Explicit project signal, strongest first: client-provided rootUri /
183
- // workspaceFolders (LSP-style), else the --path the server was launched
184
- // with. cwd is NOT used here — we defer it so a roots/list answer can
185
- // win over it. See issue #196.
186
- let explicitPath = null;
187
- if (params?.rootUri) {
188
- explicitPath = fileUriToPath(params.rootUri);
189
- }
190
- else if (params?.workspaceFolders?.[0]?.uri) {
191
- explicitPath = fileUriToPath(params.workspaceFolders[0].uri);
192
- }
193
- else if (this.explicitProjectPath) {
194
- explicitPath = this.explicitProjectPath;
195
- }
196
- // Respond to the handshake BEFORE doing any heavy init — see issue #172.
197
- this.transport.sendResult(request.id, {
198
- protocolVersion: exports.PROTOCOL_VERSION,
199
- capabilities: { tools: {} },
200
- serverInfo: exports.SERVER_INFO,
201
- instructions: server_instructions_1.SERVER_INSTRUCTIONS,
202
- });
203
- if (explicitPath) {
204
- // Kick off engine init in the background. If another session in the
205
- // same daemon already opened the project, `ensureInitialized` is a
206
- // ~free no-op — N concurrent clients pay exactly one open.
207
- this.resolvePromise = this.engine.ensureInitialized(explicitPath);
208
- }
209
- }
210
- async handleToolsList(request) {
211
- await this.retryInitIfNeeded();
212
- this.transport.sendResult(request.id, {
213
- tools: this.engine.getToolHandler().getTools(),
214
- });
215
- }
216
- async handleToolsCall(request) {
217
- const params = request.params;
218
- if (!params || !params.name) {
219
- this.transport.sendError(request.id, transport_1.ErrorCodes.InvalidParams, 'Missing tool name');
220
- return;
221
- }
222
- const toolName = params.name;
223
- const toolArgs = params.arguments || {};
224
- const tool = tools_1.tools.find((t) => t.name === toolName);
225
- if (!tool) {
226
- this.transport.sendError(request.id, transport_1.ErrorCodes.InvalidParams, `Unknown tool: ${toolName}`);
227
- return;
228
- }
229
- await this.retryInitIfNeeded();
230
- const result = await this.engine.getToolHandler().execute(toolName, toolArgs);
231
- this.transport.sendResult(request.id, result);
232
- }
233
- /**
234
- * Lazy default-project resolution. Three layers:
235
- * 1. await the in-flight init kicked off from `handleInitialize` (if any);
236
- * 2. if still uninitialized and we never asked the client for its roots,
237
- * do so now (one-shot); fall back to cwd if the client lacks roots;
238
- * 3. last-resort: re-walk from the best candidate — picks up projects
239
- * that were `specship init`'d *after* the server started.
240
- */
241
- async retryInitIfNeeded() {
242
- if (this.resolvePromise) {
243
- try {
244
- await this.resolvePromise;
245
- }
246
- catch { /* fall through to retry */ }
247
- this.resolvePromise = null;
248
- }
249
- if (this.engine.hasDefaultSpecShip())
250
- return;
251
- const hint = this.explicitProjectPath ?? this.engine.getProjectPath();
252
- if (!hint && !this.rootsAttempted) {
253
- this.rootsAttempted = true;
254
- this.resolvePromise = this.clientSupportsRoots
255
- ? this.initFromRoots()
256
- : this.engine.ensureInitialized(process.cwd());
257
- try {
258
- await this.resolvePromise;
259
- }
260
- catch { /* fall through */ }
261
- this.resolvePromise = null;
262
- if (this.engine.hasDefaultSpecShip())
263
- return;
264
- }
265
- // Last resort: walk from the best candidate (sync open). Picks up
266
- // projects that appeared after the server started.
267
- const candidate = hint ?? process.cwd();
268
- this.engine.retryInitializeSync(candidate);
269
- }
270
- /**
271
- * Ask the client for its workspace root via `roots/list` and open the
272
- * first one. Falls back to `process.cwd()` on timeout or empty answer.
273
- */
274
- async initFromRoots() {
275
- let target = process.cwd();
276
- try {
277
- const result = await this.transport.request('roots/list', undefined, ROOTS_LIST_TIMEOUT_MS);
278
- const rootPath = firstRootPath(result);
279
- if (rootPath) {
280
- target = rootPath;
281
- }
282
- else {
283
- process.stderr.write('[SpecShip MCP] Client returned no workspace roots; falling back to process cwd.\n');
284
- }
285
- }
286
- catch (err) {
287
- const msg = err instanceof Error ? err.message : String(err);
288
- process.stderr.write(`[SpecShip MCP] roots/list request failed (${msg}); falling back to process cwd.\n`);
289
- }
290
- await this.engine.ensureInitialized(target);
291
- }
292
- }
293
- exports.MCPSession = MCPSession;
294
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Spec & link MCP tools.
3
- *
4
- * Adds four new tool surfaces:
5
- * - `specship_spec` — fetch a spec by ID (body, children, linked code, state)
6
- * - `specship_link_assert` — agent declares a spec→code link after editing
7
- * - `specship_link_verify` — agent reports the outcome of running verification
8
- * - `specship_drifted` — list drifted / orphaned / broken links (review queue)
9
- *
10
- * Definitions are kept here so `tools.ts` doesn't grow further; handlers are
11
- * also here as free functions taking the SpecShip instance + args. The
12
- * ToolHandler in `tools.ts` calls these via thin wrappers.
13
- */
14
- import type SpecShip from '../index';
15
- import type { SpecLinkState, SpecLinkKind } from '../types';
16
- import type { ToolDefinition, ToolResult } from './tools';
17
- export declare const SPEC_LINK_STATES: SpecLinkState[];
18
- export declare const SPEC_LINK_KINDS: SpecLinkKind[];
19
- /**
20
- * Tool definitions. Append these to the main `tools` array.
21
- *
22
- * Tool guidance follows the CLAUDE.md "adapt to the agent" rule: the
23
- * descriptions point the agent at `specship_spec` *first* when a user
24
- * mentions a spec ID, and at `specship_link_assert` immediately after an
25
- * edit. These low-salience hints are reinforced by the bundled workflow
26
- * harness (a separate v1 surface) which enforces the call via tool restriction.
27
- */
28
- export declare const specToolDefinitions: ToolDefinition[];
29
- export declare function handleSpecshipSpec(cg: SpecShip, args: Record<string, unknown>): Promise<ToolResult>;
30
- export declare function handleSpecshipLinkAssert(cg: SpecShip, args: Record<string, unknown>): Promise<ToolResult>;
31
- export declare function handleSpecshipLinkVerify(cg: SpecShip, args: Record<string, unknown>): Promise<ToolResult>;
32
- export declare function handleSpecshipDrifted(cg: SpecShip, args: Record<string, unknown>): Promise<ToolResult>;
33
- /**
34
- * Render the "Linked specs" section appended to `specship_node` output.
35
- * Returns empty string when the node has no linked specs (so the caller
36
- * doesn't emit a header for nothing).
37
- */
38
- export declare function renderLinkedSpecsForNode(cg: SpecShip, nodeId: string): string;
39
- //# sourceMappingURL=spec-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/spec-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAY,aAAa,EAAE,YAAY,EAAY,MAAM,UAAU,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQ1D,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAQ3C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,YAAY,EAMzC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAiG/C,CAAC;AAuBF,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CA0CrB;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CA8DrB;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CA0BrB;AAED,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAa7E"}