@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,675 +0,0 @@
1
- "use strict";
2
- /**
3
- * Spec & Workflow Database Queries
4
- *
5
- * Prepared statements for CRUD on the v5 spec + workflow tables.
6
- * Mirrors the pattern used by `QueryBuilder` in `./queries.ts`: lazy
7
- * prepared statements cached per instance.
8
- *
9
- * Kept separate from QueryBuilder to avoid bloating that class —
10
- * it's already ~1900 lines.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.SpecQueries = void 0;
14
- const utils_1 = require("../utils");
15
- // =============================================================================
16
- // Row → object converters
17
- // =============================================================================
18
- function rowToSpec(row) {
19
- return {
20
- id: row.id,
21
- kind: row.kind,
22
- title: row.title,
23
- body: row.body,
24
- format: row.format,
25
- sourcePath: row.source_path,
26
- startLine: row.start_line ?? undefined,
27
- endLine: row.end_line ?? undefined,
28
- parentId: row.parent_id ?? undefined,
29
- contentHash: row.content_hash,
30
- version: row.version ?? undefined,
31
- supersededBy: row.superseded_by ?? undefined,
32
- owner: row.owner ?? undefined,
33
- priority: row.priority ?? undefined,
34
- metadata: row.metadata ? (0, utils_1.safeJsonParse)(row.metadata, undefined) : undefined,
35
- createdAt: row.created_at,
36
- updatedAt: row.updated_at,
37
- };
38
- }
39
- function rowToSpecFile(row) {
40
- return {
41
- path: row.path,
42
- contentHash: row.content_hash,
43
- format: row.format,
44
- size: row.size,
45
- modifiedAt: row.modified_at,
46
- indexedAt: row.indexed_at,
47
- specCount: row.spec_count,
48
- errors: row.errors ? (0, utils_1.safeJsonParse)(row.errors, undefined) : undefined,
49
- };
50
- }
51
- function rowToSpecLink(row) {
52
- return {
53
- id: row.id,
54
- specId: row.spec_id,
55
- targetFilePath: row.target_file_path,
56
- targetQualifiedName: row.target_qualified_name,
57
- targetNodeKind: row.target_node_kind,
58
- resolvedNodeId: row.resolved_node_id ?? undefined,
59
- kind: row.kind,
60
- state: row.state,
61
- driftAxis: row.drift_axis ?? null,
62
- specHashAtLink: row.spec_hash_at_link,
63
- nodeSigAtLink: row.node_sig_at_link ?? undefined,
64
- provenance: row.provenance,
65
- confidence: row.confidence ?? undefined,
66
- metadata: row.metadata ? (0, utils_1.safeJsonParse)(row.metadata, undefined) : undefined,
67
- createdAt: row.created_at,
68
- updatedAt: row.updated_at,
69
- };
70
- }
71
- function rowToWorkflowRun(row) {
72
- return {
73
- id: row.id,
74
- workflowName: row.workflow_name,
75
- status: row.status,
76
- inputs: row.inputs ? (0, utils_1.safeJsonParse)(row.inputs, undefined) : undefined,
77
- isolationEnvId: row.isolation_env_id ?? undefined,
78
- startedAt: row.started_at ?? undefined,
79
- completedAt: row.completed_at ?? undefined,
80
- lastActivityAt: row.last_activity_at,
81
- errorMessage: row.error_message ?? undefined,
82
- metadata: row.metadata ? (0, utils_1.safeJsonParse)(row.metadata, undefined) : undefined,
83
- createdAt: row.created_at,
84
- };
85
- }
86
- function rowToWorkflowEvent(row) {
87
- return {
88
- id: row.id,
89
- workflowRunId: row.workflow_run_id,
90
- eventType: row.event_type,
91
- stepId: row.step_id ?? undefined,
92
- stepKind: row.step_kind ?? undefined,
93
- data: row.data ? (0, utils_1.safeJsonParse)(row.data, undefined) : undefined,
94
- createdAt: row.created_at,
95
- };
96
- }
97
- function rowToIsolationEnv(row) {
98
- return {
99
- id: row.id,
100
- workflowRunId: row.workflow_run_id ?? undefined,
101
- workflowName: row.workflow_name,
102
- workingPath: row.working_path,
103
- branchName: row.branch_name,
104
- status: row.status,
105
- createdAt: row.created_at,
106
- destroyedAt: row.destroyed_at ?? undefined,
107
- metadata: row.metadata ? (0, utils_1.safeJsonParse)(row.metadata, undefined) : undefined,
108
- };
109
- }
110
- // =============================================================================
111
- // SpecQueries — CRUD for specs, spec_files, spec_links, workflow_*
112
- // =============================================================================
113
- class SpecQueries {
114
- db;
115
- stmts = {};
116
- constructor(db) {
117
- this.db = db;
118
- }
119
- // ===========================================================================
120
- // Specs
121
- // ===========================================================================
122
- /**
123
- * Insert or replace a spec row. Also inserts a virtual node projection
124
- * into `nodes` with kind='spec' so graph traversal sees the spec.
125
- *
126
- * The virtual node's `id` is `spec:${spec.id}` (kind:hash convention from
127
- * tree-sitter-helpers, but hand-built — specs don't go through tree-sitter).
128
- * `qualified_name = spec.id` so SpecLinkResolver and specship_explore can
129
- * find specs by their stable ID.
130
- */
131
- insertSpec(spec) {
132
- if (!this.stmts.insertSpec) {
133
- this.stmts.insertSpec = this.db.prepare(`
134
- INSERT OR REPLACE INTO specs (
135
- id, kind, title, body, format, source_path, start_line, end_line,
136
- parent_id, content_hash, version, superseded_by, owner, priority,
137
- metadata, created_at, updated_at
138
- ) VALUES (
139
- @id, @kind, @title, @body, @format, @sourcePath, @startLine, @endLine,
140
- @parentId, @contentHash, @version, @supersededBy, @owner, @priority,
141
- @metadata, @createdAt, @updatedAt
142
- )
143
- `);
144
- }
145
- this.stmts.insertSpec.run({
146
- id: spec.id,
147
- kind: spec.kind,
148
- title: spec.title,
149
- body: spec.body,
150
- format: spec.format,
151
- sourcePath: spec.sourcePath,
152
- startLine: spec.startLine ?? null,
153
- endLine: spec.endLine ?? null,
154
- parentId: spec.parentId ?? null,
155
- contentHash: spec.contentHash,
156
- version: spec.version ?? 1,
157
- supersededBy: spec.supersededBy ?? null,
158
- owner: spec.owner ?? null,
159
- priority: spec.priority ?? null,
160
- metadata: spec.metadata ? JSON.stringify(spec.metadata) : null,
161
- createdAt: spec.createdAt,
162
- updatedAt: spec.updatedAt,
163
- });
164
- // Project a thin row into `nodes` so the spec participates in graph
165
- // traversal (specship_explore, specship_node).
166
- this.db
167
- .prepare(`
168
- INSERT OR REPLACE INTO nodes (
169
- id, kind, name, qualified_name, file_path, language,
170
- start_line, end_line, start_column, end_column,
171
- docstring, signature, visibility,
172
- is_exported, is_async, is_static, is_abstract,
173
- decorators, type_parameters, updated_at
174
- ) VALUES (
175
- @id, 'spec', @name, @qualifiedName, @filePath, 'unknown',
176
- @startLine, @endLine, 0, 0,
177
- NULL, @signature, NULL,
178
- 0, 0, 0, 0,
179
- NULL, NULL, @updatedAt
180
- )
181
- `)
182
- .run({
183
- id: `spec:${spec.id}`,
184
- name: spec.title,
185
- qualifiedName: spec.id,
186
- filePath: spec.sourcePath,
187
- startLine: spec.startLine ?? 0,
188
- endLine: spec.endLine ?? 0,
189
- signature: spec.kind,
190
- updatedAt: spec.updatedAt,
191
- });
192
- }
193
- /**
194
- * Batch-insert specs in a transaction.
195
- */
196
- insertSpecsBatch(specs) {
197
- if (specs.length === 0)
198
- return;
199
- this.db.transaction(() => {
200
- for (const spec of specs)
201
- this.insertSpec(spec);
202
- })();
203
- }
204
- /**
205
- * Delete all specs for a given source file. CASCADE removes children
206
- * (parent_id FK) and any spec_links to those specs.
207
- */
208
- deleteSpecsByFile(sourcePath) {
209
- if (!this.stmts.deleteSpecsByFile) {
210
- this.stmts.deleteSpecsByFile = this.db.prepare('DELETE FROM specs WHERE source_path = ?');
211
- }
212
- this.db.transaction(() => {
213
- // Also drop the virtual node projections for these specs.
214
- this.db
215
- .prepare(`DELETE FROM nodes WHERE kind = 'spec' AND file_path = ?`)
216
- .run(sourcePath);
217
- this.stmts.deleteSpecsByFile.run(sourcePath);
218
- })();
219
- }
220
- /** Look up a spec by its embedded ID. */
221
- getSpecById(id) {
222
- if (!this.stmts.getSpecById) {
223
- this.stmts.getSpecById = this.db.prepare('SELECT * FROM specs WHERE id = ?');
224
- }
225
- const row = this.stmts.getSpecById.get(id);
226
- return row ? rowToSpec(row) : null;
227
- }
228
- /** All specs from a given source file, sorted by start_line. */
229
- getSpecsByFile(sourcePath) {
230
- if (!this.stmts.getSpecsByFile) {
231
- this.stmts.getSpecsByFile = this.db.prepare(`SELECT * FROM specs WHERE source_path = ? ORDER BY start_line`);
232
- }
233
- const rows = this.stmts.getSpecsByFile.all(sourcePath);
234
- return rows.map(rowToSpec);
235
- }
236
- /** Child specs of a given parent (requirements under a document, etc.). */
237
- getSpecsByParent(parentId) {
238
- if (!this.stmts.getSpecsByParent) {
239
- this.stmts.getSpecsByParent = this.db.prepare(`SELECT * FROM specs WHERE parent_id = ? ORDER BY start_line`);
240
- }
241
- const rows = this.stmts.getSpecsByParent.all(parentId);
242
- return rows.map(rowToSpec);
243
- }
244
- /** All specs (small projects only; large repos should filter). */
245
- getAllSpecs() {
246
- if (!this.stmts.getAllSpecs) {
247
- this.stmts.getAllSpecs = this.db.prepare(`SELECT * FROM specs ORDER BY source_path, start_line`);
248
- }
249
- const rows = this.stmts.getAllSpecs.all();
250
- return rows.map(rowToSpec);
251
- }
252
- // ===========================================================================
253
- // Spec files
254
- // ===========================================================================
255
- upsertSpecFile(file) {
256
- if (!this.stmts.upsertSpecFile) {
257
- this.stmts.upsertSpecFile = this.db.prepare(`
258
- INSERT INTO spec_files (path, content_hash, format, size, modified_at, indexed_at, spec_count, errors)
259
- VALUES (@path, @contentHash, @format, @size, @modifiedAt, @indexedAt, @specCount, @errors)
260
- ON CONFLICT(path) DO UPDATE SET
261
- content_hash = @contentHash,
262
- format = @format,
263
- size = @size,
264
- modified_at = @modifiedAt,
265
- indexed_at = @indexedAt,
266
- spec_count = @specCount,
267
- errors = @errors
268
- `);
269
- }
270
- this.stmts.upsertSpecFile.run({
271
- path: file.path,
272
- contentHash: file.contentHash,
273
- format: file.format,
274
- size: file.size,
275
- modifiedAt: file.modifiedAt,
276
- indexedAt: file.indexedAt,
277
- specCount: file.specCount,
278
- errors: file.errors ? JSON.stringify(file.errors) : null,
279
- });
280
- }
281
- deleteSpecFile(path) {
282
- this.db.transaction(() => {
283
- this.deleteSpecsByFile(path);
284
- if (!this.stmts.deleteSpecFile) {
285
- this.stmts.deleteSpecFile = this.db.prepare('DELETE FROM spec_files WHERE path = ?');
286
- }
287
- this.stmts.deleteSpecFile.run(path);
288
- })();
289
- }
290
- getSpecFileByPath(path) {
291
- if (!this.stmts.getSpecFileByPath) {
292
- this.stmts.getSpecFileByPath = this.db.prepare('SELECT * FROM spec_files WHERE path = ?');
293
- }
294
- const row = this.stmts.getSpecFileByPath.get(path);
295
- return row ? rowToSpecFile(row) : null;
296
- }
297
- getAllSpecFiles() {
298
- if (!this.stmts.getAllSpecFiles) {
299
- this.stmts.getAllSpecFiles = this.db.prepare('SELECT * FROM spec_files ORDER BY path');
300
- }
301
- const rows = this.stmts.getAllSpecFiles.all();
302
- return rows.map(rowToSpecFile);
303
- }
304
- // ===========================================================================
305
- // Spec links — the spec ↔ code join with state
306
- // ===========================================================================
307
- /**
308
- * Insert a fresh link. Most callers want `upsertSpecLink` (idempotent).
309
- */
310
- insertSpecLink(link) {
311
- if (!this.stmts.insertSpecLink) {
312
- this.stmts.insertSpecLink = this.db.prepare(`
313
- INSERT INTO spec_links (
314
- spec_id, target_file_path, target_qualified_name, target_node_kind,
315
- resolved_node_id, kind, state, drift_axis,
316
- spec_hash_at_link, node_sig_at_link,
317
- provenance, confidence, metadata, created_at, updated_at
318
- ) VALUES (
319
- @specId, @targetFilePath, @targetQualifiedName, @targetNodeKind,
320
- @resolvedNodeId, @kind, @state, @driftAxis,
321
- @specHashAtLink, @nodeSigAtLink,
322
- @provenance, @confidence, @metadata, @createdAt, @updatedAt
323
- )
324
- `);
325
- }
326
- const result = this.stmts.insertSpecLink.run({
327
- specId: link.specId,
328
- targetFilePath: link.targetFilePath,
329
- targetQualifiedName: link.targetQualifiedName,
330
- targetNodeKind: link.targetNodeKind,
331
- resolvedNodeId: link.resolvedNodeId ?? null,
332
- kind: link.kind,
333
- state: link.state,
334
- driftAxis: link.driftAxis ?? null,
335
- specHashAtLink: link.specHashAtLink,
336
- nodeSigAtLink: link.nodeSigAtLink ?? null,
337
- provenance: link.provenance,
338
- confidence: link.confidence ?? 1.0,
339
- metadata: link.metadata ? JSON.stringify(link.metadata) : null,
340
- createdAt: link.createdAt,
341
- updatedAt: link.updatedAt,
342
- });
343
- return Number(result.lastInsertRowid);
344
- }
345
- /**
346
- * Idempotent upsert keyed on logical identity
347
- * (spec_id, target_file_path, target_qualified_name, kind). If a link
348
- * with the same logical key exists, update it; otherwise insert. Higher
349
- * provenance/confidence wins (agent-asserted overrides code-comment, etc.).
350
- *
351
- * Returns the link row's id.
352
- */
353
- upsertSpecLink(link) {
354
- const existing = this.findLogicalLink(link.specId, link.targetFilePath, link.targetQualifiedName, link.kind);
355
- const now = link.updatedAt;
356
- if (existing) {
357
- // Only overwrite if new signal has equal or higher confidence.
358
- const newConfidence = link.confidence ?? 1.0;
359
- const existingConfidence = existing.confidence ?? 1.0;
360
- if (newConfidence < existingConfidence) {
361
- return existing.id;
362
- }
363
- this.db
364
- .prepare(`
365
- UPDATE spec_links
366
- SET resolved_node_id = @resolvedNodeId,
367
- state = @state,
368
- drift_axis = @driftAxis,
369
- spec_hash_at_link = @specHashAtLink,
370
- node_sig_at_link = @nodeSigAtLink,
371
- provenance = @provenance,
372
- confidence = @confidence,
373
- metadata = @metadata,
374
- updated_at = @updatedAt
375
- WHERE id = @id
376
- `)
377
- .run({
378
- id: existing.id,
379
- resolvedNodeId: link.resolvedNodeId ?? null,
380
- state: link.state,
381
- driftAxis: link.driftAxis ?? null,
382
- specHashAtLink: link.specHashAtLink,
383
- nodeSigAtLink: link.nodeSigAtLink ?? null,
384
- provenance: link.provenance,
385
- confidence: link.confidence ?? 1.0,
386
- metadata: link.metadata ? JSON.stringify(link.metadata) : null,
387
- updatedAt: now,
388
- });
389
- return existing.id;
390
- }
391
- return this.insertSpecLink(link);
392
- }
393
- /** Find a link by its logical identity (no node_id involved). */
394
- findLogicalLink(specId, targetFilePath, targetQualifiedName, kind) {
395
- const row = this.db
396
- .prepare(`
397
- SELECT * FROM spec_links
398
- WHERE spec_id = ? AND target_file_path = ? AND target_qualified_name = ? AND kind = ?
399
- LIMIT 1
400
- `)
401
- .get(specId, targetFilePath, targetQualifiedName, kind);
402
- return row ? rowToSpecLink(row) : null;
403
- }
404
- deleteSpecLink(id) {
405
- if (!this.stmts.deleteSpecLink) {
406
- this.stmts.deleteSpecLink = this.db.prepare('DELETE FROM spec_links WHERE id = ?');
407
- }
408
- this.stmts.deleteSpecLink.run(id);
409
- }
410
- updateSpecLinkState(id, state, driftAxis = null, updatedAt = Date.now()) {
411
- if (!this.stmts.updateSpecLinkState) {
412
- this.stmts.updateSpecLinkState = this.db.prepare(`UPDATE spec_links SET state = ?, drift_axis = ?, updated_at = ? WHERE id = ?`);
413
- }
414
- this.stmts.updateSpecLinkState.run(state, driftAxis, updatedAt, id);
415
- }
416
- /**
417
- * Update the resolved_node_id cache. Called by SpecLinkResolver after
418
- * each sync. NULL means the logical target doesn't currently exist
419
- * (caller should set state='orphaned' separately).
420
- */
421
- updateSpecLinkResolution(id, resolvedNodeId, updatedAt = Date.now()) {
422
- if (!this.stmts.updateSpecLinkResolution) {
423
- this.stmts.updateSpecLinkResolution = this.db.prepare(`UPDATE spec_links SET resolved_node_id = ?, updated_at = ? WHERE id = ?`);
424
- }
425
- this.stmts.updateSpecLinkResolution.run(resolvedNodeId, updatedAt, id);
426
- }
427
- getLinkById(id) {
428
- if (!this.stmts.getLinkById) {
429
- this.stmts.getLinkById = this.db.prepare('SELECT * FROM spec_links WHERE id = ?');
430
- }
431
- const row = this.stmts.getLinkById.get(id);
432
- return row ? rowToSpecLink(row) : null;
433
- }
434
- /** All links for a spec (e.g., for specship_spec response). */
435
- getLinksBySpec(specId) {
436
- if (!this.stmts.getLinksBySpec) {
437
- this.stmts.getLinksBySpec = this.db.prepare(`SELECT * FROM spec_links WHERE spec_id = ? ORDER BY updated_at DESC`);
438
- }
439
- const rows = this.stmts.getLinksBySpec.all(specId);
440
- return rows.map(rowToSpecLink);
441
- }
442
- /** All links pointing at a given resolved node (e.g., for specship_node response). */
443
- getLinksByNode(nodeId) {
444
- if (!this.stmts.getLinksByNode) {
445
- this.stmts.getLinksByNode = this.db.prepare(`SELECT * FROM spec_links WHERE resolved_node_id = ? ORDER BY updated_at DESC`);
446
- }
447
- const rows = this.stmts.getLinksByNode.all(nodeId);
448
- return rows.map(rowToSpecLink);
449
- }
450
- /**
451
- * Links whose logical target lives in a particular file. Used by
452
- * SpecLinkResolver after a file is re-extracted to know which links
453
- * need re-resolution.
454
- */
455
- getLinksByTargetFile(filePath) {
456
- if (!this.stmts.getLinksByTargetFile) {
457
- this.stmts.getLinksByTargetFile = this.db.prepare(`SELECT * FROM spec_links WHERE target_file_path = ?`);
458
- }
459
- const rows = this.stmts.getLinksByTargetFile.all(filePath);
460
- return rows.map(rowToSpecLink);
461
- }
462
- /** Links by logical target identity (file + qualified_name). */
463
- getLinksByLogicalTarget(filePath, qualifiedName) {
464
- if (!this.stmts.getLinksByLogicalTarget) {
465
- this.stmts.getLinksByLogicalTarget = this.db.prepare(`SELECT * FROM spec_links WHERE target_file_path = ? AND target_qualified_name = ?`);
466
- }
467
- const rows = this.stmts.getLinksByLogicalTarget.all(filePath, qualifiedName);
468
- return rows.map(rowToSpecLink);
469
- }
470
- /** Links in one or more states — drives specship_drifted. */
471
- getLinksByState(states) {
472
- if (states.length === 0)
473
- return [];
474
- const placeholders = states.map(() => '?').join(',');
475
- const rows = this.db
476
- .prepare(`SELECT * FROM spec_links WHERE state IN (${placeholders}) ORDER BY updated_at DESC`)
477
- .all(...states);
478
- return rows.map(rowToSpecLink);
479
- }
480
- getAllLinks() {
481
- if (!this.stmts.getAllLinks) {
482
- this.stmts.getAllLinks = this.db.prepare(`SELECT * FROM spec_links ORDER BY updated_at DESC`);
483
- }
484
- const rows = this.stmts.getAllLinks.all();
485
- return rows.map(rowToSpecLink);
486
- }
487
- // ===========================================================================
488
- // Workflow runs
489
- // ===========================================================================
490
- insertWorkflowRun(run) {
491
- if (!this.stmts.insertWorkflowRun) {
492
- this.stmts.insertWorkflowRun = this.db.prepare(`
493
- INSERT INTO workflow_runs (
494
- id, workflow_name, status, inputs, isolation_env_id,
495
- started_at, completed_at, last_activity_at,
496
- error_message, metadata, created_at
497
- ) VALUES (
498
- @id, @workflowName, @status, @inputs, @isolationEnvId,
499
- @startedAt, @completedAt, @lastActivityAt,
500
- @errorMessage, @metadata, @createdAt
501
- )
502
- `);
503
- }
504
- this.stmts.insertWorkflowRun.run({
505
- id: run.id,
506
- workflowName: run.workflowName,
507
- status: run.status,
508
- inputs: run.inputs ? JSON.stringify(run.inputs) : null,
509
- isolationEnvId: run.isolationEnvId ?? null,
510
- startedAt: run.startedAt ?? null,
511
- completedAt: run.completedAt ?? null,
512
- lastActivityAt: run.lastActivityAt,
513
- errorMessage: run.errorMessage ?? null,
514
- metadata: run.metadata ? JSON.stringify(run.metadata) : null,
515
- createdAt: run.createdAt,
516
- });
517
- }
518
- updateWorkflowRun(run) {
519
- if (!this.stmts.updateWorkflowRun) {
520
- this.stmts.updateWorkflowRun = this.db.prepare(`
521
- UPDATE workflow_runs SET
522
- status = @status,
523
- inputs = @inputs,
524
- isolation_env_id = @isolationEnvId,
525
- started_at = @startedAt,
526
- completed_at = @completedAt,
527
- last_activity_at = @lastActivityAt,
528
- error_message = @errorMessage,
529
- metadata = @metadata
530
- WHERE id = @id
531
- `);
532
- }
533
- this.stmts.updateWorkflowRun.run({
534
- id: run.id,
535
- status: run.status,
536
- inputs: run.inputs ? JSON.stringify(run.inputs) : null,
537
- isolationEnvId: run.isolationEnvId ?? null,
538
- startedAt: run.startedAt ?? null,
539
- completedAt: run.completedAt ?? null,
540
- lastActivityAt: run.lastActivityAt,
541
- errorMessage: run.errorMessage ?? null,
542
- metadata: run.metadata ? JSON.stringify(run.metadata) : null,
543
- });
544
- }
545
- getWorkflowRunById(id) {
546
- if (!this.stmts.getWorkflowRunById) {
547
- this.stmts.getWorkflowRunById = this.db.prepare('SELECT * FROM workflow_runs WHERE id = ?');
548
- }
549
- const row = this.stmts.getWorkflowRunById.get(id);
550
- return row ? rowToWorkflowRun(row) : null;
551
- }
552
- getWorkflowRunsByStatus(statuses) {
553
- if (statuses.length === 0)
554
- return [];
555
- const placeholders = statuses.map(() => '?').join(',');
556
- const rows = this.db
557
- .prepare(`SELECT * FROM workflow_runs WHERE status IN (${placeholders}) ORDER BY last_activity_at DESC`)
558
- .all(...statuses);
559
- return rows.map(rowToWorkflowRun);
560
- }
561
- getWorkflowRunsByName(workflowName) {
562
- if (!this.stmts.getWorkflowRunsByName) {
563
- this.stmts.getWorkflowRunsByName = this.db.prepare(`SELECT * FROM workflow_runs WHERE workflow_name = ? ORDER BY last_activity_at DESC`);
564
- }
565
- const rows = this.stmts.getWorkflowRunsByName.all(workflowName);
566
- return rows.map(rowToWorkflowRun);
567
- }
568
- getAllWorkflowRuns(limit = 50) {
569
- const rows = this.db
570
- .prepare(`SELECT * FROM workflow_runs ORDER BY last_activity_at DESC LIMIT ?`)
571
- .all(limit);
572
- return rows.map(rowToWorkflowRun);
573
- }
574
- // ===========================================================================
575
- // Workflow events (fire-and-forget log)
576
- // ===========================================================================
577
- insertWorkflowEvent(event) {
578
- if (!this.stmts.insertWorkflowEvent) {
579
- this.stmts.insertWorkflowEvent = this.db.prepare(`
580
- INSERT INTO workflow_events (
581
- workflow_run_id, event_type, step_id, step_kind, data, created_at
582
- ) VALUES (@workflowRunId, @eventType, @stepId, @stepKind, @data, @createdAt)
583
- `);
584
- }
585
- try {
586
- this.stmts.insertWorkflowEvent.run({
587
- workflowRunId: event.workflowRunId,
588
- eventType: event.eventType,
589
- stepId: event.stepId ?? null,
590
- stepKind: event.stepKind ?? null,
591
- data: event.data ? JSON.stringify(event.data) : null,
592
- createdAt: event.createdAt,
593
- });
594
- }
595
- catch {
596
- // Fire-and-forget: never let event log failures break the executor.
597
- }
598
- }
599
- getEventsByRun(workflowRunId, limit = 1000) {
600
- if (!this.stmts.getEventsByRun) {
601
- this.stmts.getEventsByRun = this.db.prepare(`SELECT * FROM workflow_events WHERE workflow_run_id = ? ORDER BY created_at ASC LIMIT ?`);
602
- }
603
- const rows = this.stmts.getEventsByRun.all(workflowRunId, limit);
604
- return rows.map(rowToWorkflowEvent);
605
- }
606
- // ===========================================================================
607
- // Isolation environments (git worktrees)
608
- // ===========================================================================
609
- insertIsolationEnv(env) {
610
- if (!this.stmts.insertIsolationEnv) {
611
- this.stmts.insertIsolationEnv = this.db.prepare(`
612
- INSERT INTO isolation_environments (
613
- id, workflow_run_id, workflow_name, working_path, branch_name,
614
- status, created_at, destroyed_at, metadata
615
- ) VALUES (
616
- @id, @workflowRunId, @workflowName, @workingPath, @branchName,
617
- @status, @createdAt, @destroyedAt, @metadata
618
- )
619
- `);
620
- }
621
- this.stmts.insertIsolationEnv.run({
622
- id: env.id,
623
- workflowRunId: env.workflowRunId ?? null,
624
- workflowName: env.workflowName,
625
- workingPath: env.workingPath,
626
- branchName: env.branchName,
627
- status: env.status,
628
- createdAt: env.createdAt,
629
- destroyedAt: env.destroyedAt ?? null,
630
- metadata: env.metadata ? JSON.stringify(env.metadata) : null,
631
- });
632
- }
633
- updateIsolationEnv(env) {
634
- if (!this.stmts.updateIsolationEnv) {
635
- this.stmts.updateIsolationEnv = this.db.prepare(`
636
- UPDATE isolation_environments SET
637
- workflow_run_id = @workflowRunId,
638
- status = @status,
639
- destroyed_at = @destroyedAt,
640
- metadata = @metadata
641
- WHERE id = @id
642
- `);
643
- }
644
- this.stmts.updateIsolationEnv.run({
645
- id: env.id,
646
- workflowRunId: env.workflowRunId ?? null,
647
- status: env.status,
648
- destroyedAt: env.destroyedAt ?? null,
649
- metadata: env.metadata ? JSON.stringify(env.metadata) : null,
650
- });
651
- }
652
- getIsolationEnvById(id) {
653
- if (!this.stmts.getIsolationEnvById) {
654
- this.stmts.getIsolationEnvById = this.db.prepare('SELECT * FROM isolation_environments WHERE id = ?');
655
- }
656
- const row = this.stmts.getIsolationEnvById.get(id);
657
- return row ? rowToIsolationEnv(row) : null;
658
- }
659
- getActiveIsolationEnvByRun(workflowRunId) {
660
- if (!this.stmts.getActiveIsolationEnvByRun) {
661
- this.stmts.getActiveIsolationEnvByRun = this.db.prepare(`SELECT * FROM isolation_environments WHERE workflow_run_id = ? AND status = 'active' LIMIT 1`);
662
- }
663
- const row = this.stmts.getActiveIsolationEnvByRun.get(workflowRunId);
664
- return row ? rowToIsolationEnv(row) : null;
665
- }
666
- getAllActiveIsolationEnvs() {
667
- if (!this.stmts.getAllActiveIsolationEnvs) {
668
- this.stmts.getAllActiveIsolationEnvs = this.db.prepare(`SELECT * FROM isolation_environments WHERE status = 'active'`);
669
- }
670
- const rows = this.stmts.getAllActiveIsolationEnvs.all();
671
- return rows.map(rowToIsolationEnv);
672
- }
673
- }
674
- exports.SpecQueries = SpecQueries;
675
- //# sourceMappingURL=spec-queries.js.map