@selvakumaresra/specship 0.1.2 → 0.3.0

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 (216) hide show
  1. package/README.md +2 -2
  2. package/commands/ss-design-implement.md +79 -0
  3. package/commands/{cg-drifted.md → ss-drifted.md} +2 -2
  4. package/commands/{cg-fix.md → ss-fix.md} +1 -1
  5. package/commands/{cg-implement.md → ss-implement.md} +1 -1
  6. package/commands/ss-spec-author.md +43 -0
  7. package/commands/ss-spec-review.md +48 -0
  8. package/dist/bin/specship.js +6 -5
  9. package/dist/bin/specship.js.map +1 -1
  10. package/dist/db/index.d.ts +3 -1
  11. package/dist/db/index.d.ts.map +1 -1
  12. package/dist/db/index.js +5 -2
  13. package/dist/db/index.js.map +1 -1
  14. package/dist/db/migrations.d.ts +1 -1
  15. package/dist/db/migrations.d.ts.map +1 -1
  16. package/dist/db/migrations.js +36 -1
  17. package/dist/db/migrations.js.map +1 -1
  18. package/dist/db/schema.sql +9 -0
  19. package/dist/directory.d.ts +13 -3
  20. package/dist/directory.d.ts.map +1 -1
  21. package/dist/directory.js +17 -3
  22. package/dist/directory.js.map +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/installer/index.d.ts.map +1 -1
  27. package/dist/installer/index.js +16 -10
  28. package/dist/installer/index.js.map +1 -1
  29. package/dist/installer/targets/claude.d.ts +11 -1
  30. package/dist/installer/targets/claude.d.ts.map +1 -1
  31. package/dist/installer/targets/claude.js +59 -2
  32. package/dist/installer/targets/claude.js.map +1 -1
  33. package/dist/server/ingest/ingestor.js +117 -17
  34. package/dist/server/routes/claude.js +394 -6
  35. package/dist/server/routes/graph.js +62 -0
  36. package/dist/server/routes/spec.js +161 -1
  37. package/dist/server/routes/status.js +77 -0
  38. package/dist/server/routes/workflow.js +31 -3
  39. package/dist/web/chunk-2AJCHB7P.js +1 -0
  40. package/dist/web/chunk-2CPLUFCH.js +2 -0
  41. package/dist/web/chunk-2DHIGIOI.js +1 -0
  42. package/dist/web/chunk-2GBEK2GM.js +1 -0
  43. package/dist/web/chunk-2I7L37NS.js +1 -0
  44. package/dist/web/chunk-2NAWAJB5.js +1 -0
  45. package/dist/web/chunk-2OJBIPE4.js +1 -0
  46. package/dist/web/chunk-2OKMB4KX.js +2 -0
  47. package/dist/web/chunk-3E2WB6D5.js +1 -0
  48. package/dist/web/chunk-3EBFYSCH.js +2 -0
  49. package/dist/web/chunk-3QCQ4BXS.js +1 -0
  50. package/dist/web/chunk-3SEJX2BK.js +1 -0
  51. package/dist/web/chunk-42XVAQ6I.js +1 -0
  52. package/dist/web/chunk-4IMMPEYM.js +1 -0
  53. package/dist/web/chunk-4N5DWG46.js +1 -0
  54. package/dist/web/chunk-4TJQJPCZ.js +1 -0
  55. package/dist/web/chunk-4WZIHTPC.js +1 -0
  56. package/dist/web/chunk-4YVSYOSD.js +1 -0
  57. package/dist/web/chunk-5BQIOYKW.js +1 -0
  58. package/dist/web/chunk-5HGWHUJA.js +1 -0
  59. package/dist/web/chunk-5Y244R4G.js +1 -0
  60. package/dist/web/chunk-6RRDPT5Z.js +1 -0
  61. package/dist/web/chunk-6VKB2ZWM.js +1 -0
  62. package/dist/web/chunk-7DMFVTU4.js +1 -0
  63. package/dist/web/chunk-7RNS77UP.js +1 -0
  64. package/dist/web/chunk-7SMPKVEP.js +1 -0
  65. package/dist/web/chunk-AZJVTPLU.js +1 -0
  66. package/dist/web/chunk-BCZM5AXU.js +1 -0
  67. package/dist/web/chunk-BLBRMCN2.js +1 -0
  68. package/dist/web/chunk-BMIAXD2V.js +2 -0
  69. package/dist/web/chunk-BPECIDVO.js +1 -0
  70. package/dist/web/chunk-BUXWEHIY.js +1 -0
  71. package/dist/web/chunk-BYZFQSM6.js +1 -0
  72. package/dist/web/chunk-DA6SNNAF.js +1 -0
  73. package/dist/web/chunk-DLQPZWSI.css +1 -0
  74. package/dist/web/chunk-DTRN7FZR.js +1 -0
  75. package/dist/web/chunk-DYRFLPJA.js +1 -0
  76. package/dist/web/chunk-E3J3CXR5.js +1 -0
  77. package/dist/web/chunk-E44X4RH2.js +1 -0
  78. package/dist/web/chunk-E73OX2P7.js +1 -0
  79. package/dist/web/chunk-EAXRKDLV.js +1 -0
  80. package/dist/web/chunk-EBKKDHYI.js +1 -0
  81. package/dist/web/chunk-EE7V7Q5P.js +1 -0
  82. package/dist/web/chunk-EKY2FUHU.js +1 -0
  83. package/dist/web/chunk-EMGMOEVR.js +1 -0
  84. package/dist/web/chunk-EP6XOPXH.js +1 -0
  85. package/dist/web/chunk-ESGDLJOJ.js +1 -0
  86. package/dist/web/chunk-ETJG7NCY.js +1 -0
  87. package/dist/web/chunk-EUUEFEDI.js +1 -0
  88. package/dist/web/chunk-FGNZDHTL.js +11 -0
  89. package/dist/web/chunk-FIJW2UNJ.js +1 -0
  90. package/dist/web/chunk-FMV5PXRC.js +5 -0
  91. package/dist/web/chunk-G7VZT5KB.js +3 -0
  92. package/dist/web/chunk-GRZYXPSO.js +7 -0
  93. package/dist/web/chunk-GYGPS3AN.js +1 -0
  94. package/dist/web/chunk-H7AF7YS4.js +1 -0
  95. package/dist/web/chunk-HDZDQILN.js +1 -0
  96. package/dist/web/chunk-HMK6UO6N.js +1 -0
  97. package/dist/web/chunk-HZA6NEAB.js +1 -0
  98. package/dist/web/chunk-IHEE5NYJ.js +1 -0
  99. package/dist/web/chunk-ISNEBICW.js +1 -0
  100. package/dist/web/chunk-J2GZVLHH.js +1 -0
  101. package/dist/web/chunk-JFYVCXK3.js +1 -0
  102. package/dist/web/chunk-JN6W7HCN.js +17 -0
  103. package/dist/web/chunk-JT7P3DEK.js +6 -0
  104. package/dist/web/chunk-JTFXTIPE.js +903 -0
  105. package/dist/web/chunk-L37MTFSG.js +3 -0
  106. package/dist/web/chunk-LB6JPLX2.js +1 -0
  107. package/dist/web/chunk-LNSVDHCI.js +1 -0
  108. package/dist/web/chunk-LV4G6QFG.js +2 -0
  109. package/dist/web/chunk-LVGIY3SO.js +1 -0
  110. package/dist/web/chunk-LXLHIHEN.js +1 -0
  111. package/dist/web/chunk-MC4DFIHG.js +1 -0
  112. package/dist/web/chunk-MVOMVPYB.js +1 -0
  113. package/dist/web/chunk-N6SS4G6S.js +1 -0
  114. package/dist/web/chunk-NTBJG6SJ.js +1 -0
  115. package/dist/web/chunk-NUDB3Q2Y.js +3 -0
  116. package/dist/web/chunk-OXEF5E3E.js +1 -0
  117. package/dist/web/chunk-PDN6QYGJ.js +4 -0
  118. package/dist/web/chunk-PGGJPDJG.js +1 -0
  119. package/dist/web/chunk-PUYSJNJR.js +1 -0
  120. package/dist/web/chunk-Q2RVFS45.js +1 -0
  121. package/dist/web/chunk-Q7L6LLAK.js +1 -0
  122. package/dist/web/chunk-QCMKJIWY.js +1 -0
  123. package/dist/web/chunk-QH6CF3M3.js +1 -0
  124. package/dist/web/chunk-QQ5LD7PI.js +1 -0
  125. package/dist/web/chunk-QR6L3KAC.js +1 -0
  126. package/dist/web/chunk-R2DLK4HO.js +1 -0
  127. package/dist/web/chunk-R5W2MDZN.js +1 -0
  128. package/dist/web/chunk-RAAMPHPJ.js +1 -0
  129. package/dist/web/chunk-RD6TVPOT.js +1 -0
  130. package/dist/web/chunk-RKY4EJYJ.js +1 -0
  131. package/dist/web/chunk-RONYWVY7.js +1 -0
  132. package/dist/web/chunk-RXKXYF2C.js +1 -0
  133. package/dist/web/chunk-SBWU7JFC.js +1 -0
  134. package/dist/web/chunk-SEXBRGYK.js +1 -0
  135. package/dist/web/chunk-SHPTC4RL.js +1 -0
  136. package/dist/web/chunk-SUZYBYDW.js +1 -0
  137. package/dist/web/chunk-SWKJRNYY.js +1 -0
  138. package/dist/web/chunk-T66XVKGB.js +1 -0
  139. package/dist/web/chunk-T7AZ65JP.js +1 -0
  140. package/dist/web/chunk-TCZDVOHD.js +1 -0
  141. package/dist/web/chunk-TPTITA3V.js +1 -0
  142. package/dist/web/chunk-TR335633.js +1 -0
  143. package/dist/web/chunk-TWXZK6XM.js +1 -0
  144. package/dist/web/chunk-UR5KDXPX.js +1 -0
  145. package/dist/web/chunk-UR6O2GEH.js +1 -0
  146. package/dist/web/chunk-UTNMGWTP.js +1 -0
  147. package/dist/web/chunk-UYC52MBC.js +1 -0
  148. package/dist/web/chunk-VECWMHJP.js +1 -0
  149. package/dist/web/chunk-VUACT35R.js +3 -0
  150. package/dist/web/chunk-VZI7H4SZ.js +1 -0
  151. package/dist/web/chunk-WAI2JMZP.js +1 -0
  152. package/dist/web/chunk-WB6YHOD4.js +1 -0
  153. package/dist/web/chunk-WBT64AWV.js +1 -0
  154. package/dist/web/chunk-WDU3WICG.js +1 -0
  155. package/dist/web/chunk-WFXJIXZE.js +4 -0
  156. package/dist/web/chunk-WTGYRH3Z.js +298 -0
  157. package/dist/web/chunk-WXTCVDTP.js +1 -0
  158. package/dist/web/chunk-X2HTISHL.js +1 -0
  159. package/dist/web/chunk-XCDHWLVH.js +1 -0
  160. package/dist/web/chunk-Y3H6FFUZ.js +1 -0
  161. package/dist/web/chunk-Y4F5ULGJ.js +1 -0
  162. package/dist/web/chunk-YAWCRPHV.js +1 -0
  163. package/dist/web/chunk-YEGKAAEE.js +1 -0
  164. package/dist/web/chunk-YM2KU57F.js +1 -0
  165. package/dist/web/chunk-YRERBP6T.js +1 -0
  166. package/dist/web/chunk-ZLV4VCDG.js +3 -0
  167. package/dist/web/chunk-ZTVI5KFF.js +1 -0
  168. package/dist/web/index.html +3 -3
  169. package/dist/web/main-ESADRXN2.css +1 -0
  170. package/dist/web/main-WVI3YTDU.js +1 -0
  171. package/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
  172. package/dist/web/styles-KSOPUVDA.css +1 -0
  173. package/dist/workflows/defaults/claude-design-implement.yaml +247 -0
  174. package/dist/workflows/defaults/spec-author.yaml +214 -0
  175. package/dist/workflows/executor.d.ts.map +1 -1
  176. package/dist/workflows/executor.js +4 -3
  177. package/dist/workflows/executor.js.map +1 -1
  178. package/package.json +8 -3
  179. package/scripts/offline-install.sh +19 -6
  180. package/scripts/sync-shim-version.mjs +64 -0
  181. package/dist/web/chunk-2YZXEHZ2.js +0 -1
  182. package/dist/web/chunk-3GIC555L.js +0 -18
  183. package/dist/web/chunk-3IIIGRMT.js +0 -1
  184. package/dist/web/chunk-47QYKLE5.js +0 -1
  185. package/dist/web/chunk-4LHBWWP7.js +0 -1
  186. package/dist/web/chunk-4OAZLD5W.js +0 -1
  187. package/dist/web/chunk-5OQKAJAE.js +0 -1
  188. package/dist/web/chunk-7B525GKQ.js +0 -1
  189. package/dist/web/chunk-BPDXCOOZ.js +0 -1
  190. package/dist/web/chunk-DT37HTZB.js +0 -1
  191. package/dist/web/chunk-EIMUHJND.js +0 -1
  192. package/dist/web/chunk-FTESTUEO.js +0 -1
  193. package/dist/web/chunk-GLJZV6MU.js +0 -1
  194. package/dist/web/chunk-I7LS67U5.js +0 -1
  195. package/dist/web/chunk-L4TVIPSR.js +0 -1
  196. package/dist/web/chunk-MASCULC2.js +0 -1
  197. package/dist/web/chunk-MW7ICSRM.js +0 -1
  198. package/dist/web/chunk-OI5VP2A3.js +0 -1
  199. package/dist/web/chunk-RA6EBF6I.js +0 -1
  200. package/dist/web/chunk-RP3WU5Y6.js +0 -1
  201. package/dist/web/chunk-RQDRMTXN.js +0 -1
  202. package/dist/web/chunk-TQMT6UDU.js +0 -1
  203. package/dist/web/chunk-U7IYOV7T.js +0 -1
  204. package/dist/web/chunk-UE227MWF.js +0 -1
  205. package/dist/web/chunk-WV573J4K.js +0 -1
  206. package/dist/web/chunk-WVCKOJZL.js +0 -4
  207. package/dist/web/chunk-XZKLVPHE.js +0 -1
  208. package/dist/web/chunk-ZABKKHJ3.js +0 -1
  209. package/dist/web/main-RI5CO5Z4.js +0 -1
  210. package/dist/web/styles-CYN7IKT4.css +0 -1
  211. /package/commands/{cg-explore.md → ss-explore.md} +0 -0
  212. /package/commands/{cg-impact.md → ss-impact.md} +0 -0
  213. /package/commands/{cg-relink.md → ss-relink.md} +0 -0
  214. /package/commands/{cg-spec.md → ss-spec.md} +0 -0
  215. /package/commands/{cg-sync.md → ss-sync.md} +0 -0
  216. /package/commands/{cg-trace.md → ss-trace.md} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EACL,WAAW,EAGX,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAC;AA+PjB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAsBzE;AAgHD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAE/E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAoBjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAInF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CA+B3E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAExE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAEzE;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAEvE;AAsBD,eAAO,MAAM,YAAY,EAAE,WAAoC,CAAC"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EACL,WAAW,EAGX,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAC;AAsSjB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAsBzE;AAgHD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAE/E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAoBjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAInF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CA+B3E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAOhF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAEzE;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAEvE;AAsBD,eAAO,MAAM,YAAY,EAAE,WAAoC,CAAC"}
@@ -59,6 +59,7 @@ exports.writePermissionsEntry = writePermissionsEntry;
59
59
  exports.removeInstructionsEntry = removeInstructionsEntry;
60
60
  exports.writeHooksEntry = writeHooksEntry;
61
61
  exports.writeCommandsEntries = writeCommandsEntries;
62
+ exports.cleanupLegacyCommandsEntries = cleanupLegacyCommandsEntries;
62
63
  exports.writeAgentsEntries = writeAgentsEntries;
63
64
  exports.removeCommandsEntries = removeCommandsEntries;
64
65
  exports.removeAgentsEntries = removeAgentsEntries;
@@ -113,16 +114,44 @@ function packageAssetPath(...segments) {
113
114
  }
114
115
  /** Slash commands the installer copies into Claude's commands dir. */
115
116
  const SHIPPED_COMMANDS = [
117
+ 'ss-sync.md',
118
+ 'ss-trace.md',
119
+ 'ss-explore.md',
120
+ 'ss-impact.md',
121
+ // Spec-layer commands:
122
+ 'ss-spec.md',
123
+ 'ss-implement.md',
124
+ 'ss-drifted.md',
125
+ 'ss-fix.md',
126
+ 'ss-relink.md',
127
+ // Spec-authoring commands (v0.2):
128
+ 'ss-spec-author.md',
129
+ 'ss-spec-review.md',
130
+ // Design-import workflow (v0.2):
131
+ 'ss-design-implement.md',
132
+ ];
133
+ /**
134
+ * Slash commands the installer used to ship under the legacy `cg-`
135
+ * prefix (historical from when SpecShip was called "code graph").
136
+ * Renamed to `ss-` in v0.2 so the prefix clearly ties to SpecShip.
137
+ *
138
+ * Listed so the installer can self-heal on upgrade: install removes any
139
+ * of these that an earlier installer wrote, so users don't end up with
140
+ * both prefixes side-by-side cluttering their slash-command autocomplete.
141
+ * Uninstall strips them too.
142
+ */
143
+ const LEGACY_SHIPPED_COMMANDS = [
116
144
  'cg-sync.md',
117
145
  'cg-trace.md',
118
146
  'cg-explore.md',
119
147
  'cg-impact.md',
120
- // Spec-layer commands (v5):
121
148
  'cg-spec.md',
122
149
  'cg-implement.md',
123
150
  'cg-drifted.md',
124
151
  'cg-fix.md',
125
152
  'cg-relink.md',
153
+ 'cg-spec-author.md',
154
+ 'cg-spec-review.md',
126
155
  ];
127
156
  /** Subagents the installer copies into Claude's agents dir. */
128
157
  const SHIPPED_AGENTS = ['specship-explorer.md'];
@@ -205,6 +234,12 @@ class ClaudeCodeTarget {
205
234
  // autoAllow — these only execute when the user / agent invokes them
206
235
  // explicitly. Copies the same .md files that ship for the plugin
207
236
  // install path, so the two flows can't drift apart.
237
+ //
238
+ // 4a. Strip any legacy `cg-*.md` slash commands the pre-v0.2
239
+ // installer wrote. Self-heals on upgrade so the user's autocomplete
240
+ // doesn't carry both prefixes side-by-side.
241
+ for (const f of cleanupLegacyCommandsEntries(loc))
242
+ files.push(f);
208
243
  for (const f of writeCommandsEntries(loc))
209
244
  files.push(f);
210
245
  for (const f of writeAgentsEntries(loc))
@@ -272,6 +307,11 @@ class ClaudeCodeTarget {
272
307
  files.push(removeInstructionsEntry(loc));
273
308
  // 4. Slash commands + subagent — remove our shipped files; sibling
274
309
  // user-written .md files in the same dir are left untouched.
310
+ // Includes legacy `cg-*.md` from pre-v0.2 installers so uninstall
311
+ // leaves the commands dir clean regardless of which prefix was
312
+ // installed.
313
+ for (const f of cleanupLegacyCommandsEntries(loc))
314
+ files.push(f);
275
315
  for (const f of removeCommandsEntries(loc))
276
316
  files.push(f);
277
317
  for (const f of removeAgentsEntries(loc))
@@ -529,7 +569,7 @@ function writeHooksEntry(loc) {
529
569
  return { path: file, action: created ? 'created' : 'updated' };
530
570
  }
531
571
  /**
532
- * Copy our shipped slash commands (commands/cg-*.md) into the user's
572
+ * Copy our shipped slash commands (commands/ss-*.md) into the user's
533
573
  * commands dir (~/.claude/commands/ globally, ./.claude/commands/
534
574
  * locally). Per-file idempotent: a destination with identical bytes is
535
575
  * reported `unchanged`. Sibling user-written .md files in the same dir
@@ -538,6 +578,23 @@ function writeHooksEntry(loc) {
538
578
  function writeCommandsEntries(loc) {
539
579
  return SHIPPED_COMMANDS.map((name) => copyAsset(packageAssetPath('commands', name), path.join(commandsDir(loc), name)));
540
580
  }
581
+ /**
582
+ * Remove legacy `cg-*.md` slash commands left behind by a pre-v0.2
583
+ * installer. Called from `install()` so an upgrade self-heals (the user
584
+ * doesn't end up with both prefixes side-by-side cluttering their
585
+ * autocomplete) and from `uninstall()` so the legacy files don't
586
+ * persist after specship is removed. Sibling user-written .md files
587
+ * in the same dir are never touched — only the exact filenames in
588
+ * LEGACY_SHIPPED_COMMANDS are candidates.
589
+ */
590
+ function cleanupLegacyCommandsEntries(loc) {
591
+ return LEGACY_SHIPPED_COMMANDS
592
+ .map((name) => removeFile(path.join(commandsDir(loc), name)))
593
+ // Only surface files that actually existed and got removed — keeps
594
+ // the install/uninstall log quiet for users who never had the
595
+ // legacy `cg-*` prefix on disk.
596
+ .filter((entry) => entry.action === 'removed');
597
+ }
541
598
  /**
542
599
  * Copy our shipped subagent (agents/specship-explorer.md) into the
543
600
  * user's agents dir. Same idempotency contract as writeCommandsEntries.
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"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"}
@@ -286,17 +286,60 @@ function processLines(db, filePath, projectPath, completeLines, pricing) {
286
286
  cost_usd = excluded.cost_usd
287
287
  `);
288
288
  const insToolCall = db.prepare(`
289
- INSERT INTO claude_tool_calls (prompt_id, session_id, assistant_uuid, tool_use_id, tool_name, input_summary, result_length, ts)
290
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
289
+ INSERT INTO claude_tool_calls (prompt_id, session_id, assistant_uuid, tool_use_id, tool_name, input_summary, input_json, result_length, ts)
290
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
291
+ `);
292
+ /**
293
+ * Append the assistant's text + thinking blocks from one assistant turn
294
+ * onto the prompt row. A single user prompt can span multiple assistant
295
+ * turns (model re-renders / continues after a tool round-trip), so we
296
+ * concatenate with `||` instead of overwriting. Empty contributions
297
+ * (e.g. an assistant turn that's all tool_use) leave the column NULL
298
+ * if nothing was previously accumulated — kept as NULL so the UI can
299
+ * cleanly hide the section.
300
+ */
301
+ const appendPromptText = db.prepare(`
302
+ UPDATE claude_prompts SET
303
+ assistant_text = CASE
304
+ WHEN ? = '' THEN assistant_text
305
+ WHEN assistant_text IS NULL THEN ?
306
+ ELSE assistant_text || ?
307
+ END,
308
+ thinking_text = CASE
309
+ WHEN ? = '' THEN thinking_text
310
+ WHEN thinking_text IS NULL THEN ?
311
+ ELSE thinking_text || ?
312
+ END
313
+ WHERE id = ?
291
314
  `);
292
315
  let lastSessionId = null;
293
316
  let promptsInserted = 0;
294
317
  let toolCallsInserted = 0;
295
- // Track active prompt context (promptId picks up from user entries; the
296
- // following assistant entries belong to it). When no promptId is known
297
- // (rare happens at the start of a session before any user entry), use
298
- // the assistant's uuid as a stable proxy.
318
+ // Dedupe state for "user entries that share a promptId with one we
319
+ // already inserted." `insertedPromptIds` covers the in-batch case
320
+ // (sequential tool_results inside the same JSONL chunk); the prepared
321
+ // `existsPromptStmt` covers the cross-batch case (tool_results that
322
+ // arrive after the original prompt landed in a previous batch).
323
+ const insertedPromptIds = new Set();
324
+ const existsPromptStmt = db.prepare(`SELECT 1 FROM claude_prompts WHERE id = ?`);
325
+ // Track active prompt context. Only user entries carry a `promptId` in the
326
+ // JSONL — assistant entries belong to whichever prompt the most-recent user
327
+ // entry started. When we resume from a saved offset, the first lines in the
328
+ // batch are typically assistant turns answering a prompt whose user entry
329
+ // landed in an earlier batch, so `activePromptId` starts null and we must
330
+ // recover it from the DB; otherwise tool_use blocks queue with a fabricated
331
+ // promptId and the eventual tool_result insert violates the prompt_id FK,
332
+ // rolling back the whole batch transaction and stalling the file forever.
299
333
  let activePromptId = null;
334
+ const lookupLatestPrompt = db.prepare(`SELECT id FROM claude_prompts WHERE session_id = ? ORDER BY ts DESC LIMIT 1`);
335
+ const resolveActivePromptId = (sessionId) => {
336
+ if (activePromptId)
337
+ return activePromptId;
338
+ const row = lookupLatestPrompt.get(sessionId);
339
+ if (row?.id)
340
+ activePromptId = row.id;
341
+ return activePromptId;
342
+ };
300
343
  const pendingTools = new Map();
301
344
  for (const raw of completeLines) {
302
345
  const entry = parseLine(raw);
@@ -315,11 +358,25 @@ function processLines(db, filePath, projectPath, completeLines, pricing) {
315
358
  const isSidechain = entry.isSidechain ? 1 : 0;
316
359
  if (promptId) {
317
360
  activePromptId = promptId;
318
- // Initial insert with zero usage; usage fills in when assistant turns land.
319
- insPrompt.run(promptId, sessionId, text || null, ts, entry.leafUuid ?? null, null, 0, 0, 0, 0, 0, isSidechain);
320
- promptsInserted++;
321
- // Bump session prompt count immediately (cost accrues later).
322
- incSessionAggregates.run(1, 0, 0, 0, 0, 0, sessionId);
361
+ // Claude Code emits MULTIPLE user-type entries per logical prompt:
362
+ // the initial user message + one entry per tool_result the assistant
363
+ // requested. All share the same `promptId`. The original ingestor
364
+ // ran insPrompt + bumped prompt_count for every one of them — so a
365
+ // 50-prompt session with ~15 tool calls each landed in the DB as
366
+ // 800+ "prompts" and the per-prompt token columns were repeatedly
367
+ // reset to 0 via the ON CONFLICT DO UPDATE clause. Detect follow-up
368
+ // tool_result entries by checking whether the prompt row already
369
+ // exists (in this batch or persisted from an earlier batch) and
370
+ // skip both the upsert and the aggregate bump for them.
371
+ const isFollowUp = insertedPromptIds.has(promptId) ||
372
+ !!existsPromptStmt.get(promptId);
373
+ if (!isFollowUp) {
374
+ // First time we've seen this promptId — INSERT, count it, mark seen.
375
+ insPrompt.run(promptId, sessionId, text || null, ts, entry.leafUuid ?? null, null, 0, 0, 0, 0, 0, isSidechain);
376
+ promptsInserted++;
377
+ insertedPromptIds.add(promptId);
378
+ incSessionAggregates.run(1, 0, 0, 0, 0, 0, sessionId);
379
+ }
323
380
  }
324
381
  // Handle tool_result blocks: scan content for tool_result entries and
325
382
  // update the matching pending tool_call row's result_length.
@@ -330,7 +387,7 @@ function processLines(db, filePath, projectPath, completeLines, pricing) {
330
387
  const len = toolResultLength(block);
331
388
  const pending = pendingTools.get(block.tool_use_id);
332
389
  if (pending) {
333
- insToolCall.run(pending.promptId, pending.sessionId, pending.assistantUuid, block.tool_use_id, pending.toolName, pending.summary, len, pending.ts);
390
+ insToolCall.run(pending.promptId, pending.sessionId, pending.assistantUuid, block.tool_use_id, pending.toolName, pending.summary, pending.inputJson, len, pending.ts);
334
391
  toolCallsInserted++;
335
392
  pendingTools.delete(block.tool_use_id);
336
393
  }
@@ -341,7 +398,11 @@ function processLines(db, filePath, projectPath, completeLines, pricing) {
341
398
  else if (entry.type === 'assistant') {
342
399
  // Make sure session row exists.
343
400
  insSession.run(sessionId, projectPath, filePath, ts, ts, entry.message?.model ?? null);
344
- const promptId = activePromptId ?? entry.uuid ?? null;
401
+ // Resolve the prompt this assistant turn belongs to. Never fall back to
402
+ // `entry.uuid` — that's the assistant's per-message id, not a row in
403
+ // claude_prompts, and using it would re-introduce the FK violation that
404
+ // caused this entire path to stall.
405
+ const promptId = resolveActivePromptId(sessionId);
345
406
  if (!promptId)
346
407
  continue;
347
408
  const usage = entry.message?.usage;
@@ -367,23 +428,62 @@ function processLines(db, filePath, projectPath, completeLines, pricing) {
367
428
  // Session aggregates: only token totals + cost. prompt_count was bumped
368
429
  // when the user entry landed.
369
430
  incSessionAggregates.run(0, inputTok, outputTok, cacheCreate, cacheRead, cost, sessionId);
370
- // Scan content for tool_use blocks queue as pending.
431
+ // Scan content for tool_use, text, and thinking blocks. tool_use →
432
+ // queued for a later tool_result match; text + thinking → appended
433
+ // onto the prompt row so the dashboard can show the assistant's
434
+ // actual response, not just token counts. One pass over the array
435
+ // so we don't iterate twice on what can be a large list.
371
436
  const content = entry.message?.content;
372
437
  const assistantUuid = entry.uuid ?? '';
373
- if (Array.isArray(content) && assistantUuid) {
438
+ let assistantTextChunk = '';
439
+ let thinkingTextChunk = '';
440
+ if (Array.isArray(content)) {
374
441
  for (const block of content) {
375
- if (block && block.type === 'tool_use' && block.id && block.name) {
442
+ if (!block)
443
+ continue;
444
+ if (block.type === 'tool_use' && block.id && block.name && assistantUuid) {
445
+ // JSON-stringify the full input. Schema column is TEXT;
446
+ // large inputs (e.g. Bash with long heredocs) are fine as-is.
447
+ // Falsy / undefined / circular inputs degrade to a quiet null
448
+ // rather than throwing — the summary column still captures
449
+ // a display value.
450
+ let inputJson = null;
451
+ try {
452
+ inputJson = JSON.stringify(block.input ?? null);
453
+ }
454
+ catch {
455
+ inputJson = null;
456
+ }
376
457
  pendingTools.set(block.id, {
377
458
  promptId,
378
459
  sessionId,
379
460
  assistantUuid,
380
461
  toolName: block.name,
381
462
  summary: summarizeToolInput(block.name, block.input),
463
+ inputJson,
382
464
  ts,
383
465
  });
384
466
  }
467
+ else if (block.type === 'text' && typeof block.text === 'string') {
468
+ // The assistant's prose response. Concatenated with the
469
+ // existing assistant_text via the appendPromptText UPDATE
470
+ // below — one prompt can span multiple assistant turns.
471
+ assistantTextChunk += block.text;
472
+ }
473
+ else if (block.type === 'thinking' && typeof block.text === 'string') {
474
+ // Extended thinking. Same accumulation pattern as text.
475
+ thinkingTextChunk += block.text;
476
+ }
385
477
  }
386
478
  }
479
+ if (assistantTextChunk || thinkingTextChunk) {
480
+ // Separate consecutive turn contributions with a blank line so
481
+ // multi-turn responses render with paragraph breaks instead of
482
+ // collapsing into a single run-on block.
483
+ const at = assistantTextChunk ? assistantTextChunk + '\n\n' : '';
484
+ const tt = thinkingTextChunk ? thinkingTextChunk + '\n\n' : '';
485
+ appendPromptText.run(at, at, at, tt, tt, tt, promptId);
486
+ }
387
487
  }
388
488
  // attachment / queue-operation / last-prompt entries are ignored for v1.
389
489
  }
@@ -392,7 +492,7 @@ function processLines(db, filePath, projectPath, completeLines, pricing) {
392
492
  // result_length=0 so the tool call still shows up in analytics (better to
393
493
  // show "0 tokens returned" than to omit the call).
394
494
  for (const [toolUseId, pending] of pendingTools) {
395
- insToolCall.run(pending.promptId, pending.sessionId, pending.assistantUuid, toolUseId, pending.toolName, pending.summary, 0, pending.ts);
495
+ insToolCall.run(pending.promptId, pending.sessionId, pending.assistantUuid, toolUseId, pending.toolName, pending.summary, pending.inputJson, 0, pending.ts);
396
496
  toolCallsInserted++;
397
497
  }
398
498
  return {