@specforge/mcp 2.0.9 → 2.1.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 (433) hide show
  1. package/README.md +324 -0
  2. package/bin/specforge-mcp +19 -1
  3. package/dist/cli/commands/blocked.d.ts +16 -0
  4. package/dist/cli/commands/blocked.d.ts.map +1 -0
  5. package/dist/cli/commands/blocked.js +214 -0
  6. package/dist/cli/commands/blocked.js.map +1 -0
  7. package/dist/cli/commands/configure.d.ts +16 -0
  8. package/dist/cli/commands/configure.d.ts.map +1 -0
  9. package/dist/cli/commands/configure.js +218 -0
  10. package/dist/cli/commands/configure.js.map +1 -0
  11. package/dist/cli/commands/configure.types.d.ts +110 -0
  12. package/dist/cli/commands/configure.types.d.ts.map +1 -0
  13. package/dist/cli/commands/configure.types.js +105 -0
  14. package/dist/cli/commands/configure.types.js.map +1 -0
  15. package/dist/cli/commands/debug/call.d.ts +14 -0
  16. package/dist/cli/commands/debug/call.d.ts.map +1 -0
  17. package/dist/cli/commands/debug/call.js +117 -0
  18. package/dist/cli/commands/debug/call.js.map +1 -0
  19. package/dist/cli/commands/debug/index.d.ts +12 -0
  20. package/dist/cli/commands/debug/index.d.ts.map +1 -0
  21. package/dist/cli/commands/debug/index.js +12 -0
  22. package/dist/cli/commands/debug/index.js.map +1 -0
  23. package/dist/cli/commands/debug/register.d.ts +11 -0
  24. package/dist/cli/commands/debug/register.d.ts.map +1 -0
  25. package/dist/cli/commands/debug/register.js +90 -0
  26. package/dist/cli/commands/debug/register.js.map +1 -0
  27. package/dist/cli/commands/debug/test.d.ts +13 -0
  28. package/dist/cli/commands/debug/test.d.ts.map +1 -0
  29. package/dist/cli/commands/debug/test.js +117 -0
  30. package/dist/cli/commands/debug/test.js.map +1 -0
  31. package/dist/cli/commands/debug/tools.d.ts +13 -0
  32. package/dist/cli/commands/debug/tools.d.ts.map +1 -0
  33. package/dist/cli/commands/debug/tools.js +117 -0
  34. package/dist/cli/commands/debug/tools.js.map +1 -0
  35. package/dist/cli/commands/debug/types.d.ts +117 -0
  36. package/dist/cli/commands/debug/types.d.ts.map +1 -0
  37. package/dist/cli/commands/debug/types.js +43 -0
  38. package/dist/cli/commands/debug/types.js.map +1 -0
  39. package/dist/cli/commands/debug/whoami.d.ts +13 -0
  40. package/dist/cli/commands/debug/whoami.d.ts.map +1 -0
  41. package/dist/cli/commands/debug/whoami.js +161 -0
  42. package/dist/cli/commands/debug/whoami.js.map +1 -0
  43. package/dist/cli/commands/docs/content/api.d.ts +7 -0
  44. package/dist/cli/commands/docs/content/api.d.ts.map +1 -0
  45. package/dist/cli/commands/docs/content/api.js +64 -0
  46. package/dist/cli/commands/docs/content/api.js.map +1 -0
  47. package/dist/cli/commands/docs/content/concepts.d.ts +7 -0
  48. package/dist/cli/commands/docs/content/concepts.d.ts.map +1 -0
  49. package/dist/cli/commands/docs/content/concepts.js +68 -0
  50. package/dist/cli/commands/docs/content/concepts.js.map +1 -0
  51. package/dist/cli/commands/docs/content/examples.d.ts +7 -0
  52. package/dist/cli/commands/docs/content/examples.d.ts.map +1 -0
  53. package/dist/cli/commands/docs/content/examples.js +84 -0
  54. package/dist/cli/commands/docs/content/examples.js.map +1 -0
  55. package/dist/cli/commands/docs/content/index.d.ts +10 -0
  56. package/dist/cli/commands/docs/content/index.d.ts.map +1 -0
  57. package/dist/cli/commands/docs/content/index.js +10 -0
  58. package/dist/cli/commands/docs/content/index.js.map +1 -0
  59. package/dist/cli/commands/docs/content/workflow.d.ts +7 -0
  60. package/dist/cli/commands/docs/content/workflow.d.ts.map +1 -0
  61. package/dist/cli/commands/docs/content/workflow.js +44 -0
  62. package/dist/cli/commands/docs/content/workflow.js.map +1 -0
  63. package/dist/cli/commands/docs/content.d.ts +23 -0
  64. package/dist/cli/commands/docs/content.d.ts.map +1 -0
  65. package/dist/cli/commands/docs/content.js +38 -0
  66. package/dist/cli/commands/docs/content.js.map +1 -0
  67. package/dist/cli/commands/docs/display.d.ts +26 -0
  68. package/dist/cli/commands/docs/display.d.ts.map +1 -0
  69. package/dist/cli/commands/docs/display.js +53 -0
  70. package/dist/cli/commands/docs/display.js.map +1 -0
  71. package/dist/cli/commands/docs/docs.d.ts +19 -0
  72. package/dist/cli/commands/docs/docs.d.ts.map +1 -0
  73. package/dist/cli/commands/docs/docs.js +124 -0
  74. package/dist/cli/commands/docs/docs.js.map +1 -0
  75. package/dist/cli/commands/docs/index.d.ts +13 -0
  76. package/dist/cli/commands/docs/index.d.ts.map +1 -0
  77. package/dist/cli/commands/docs/index.js +13 -0
  78. package/dist/cli/commands/docs/index.js.map +1 -0
  79. package/dist/cli/commands/docs/register.d.ts +23 -0
  80. package/dist/cli/commands/docs/register.d.ts.map +1 -0
  81. package/dist/cli/commands/docs/register.js +64 -0
  82. package/dist/cli/commands/docs/register.js.map +1 -0
  83. package/dist/cli/commands/docs/tool-docs.d.ts +44 -0
  84. package/dist/cli/commands/docs/tool-docs.d.ts.map +1 -0
  85. package/dist/cli/commands/docs/tool-docs.js +182 -0
  86. package/dist/cli/commands/docs/tool-docs.js.map +1 -0
  87. package/dist/cli/commands/docs/tool-examples.d.ts +14 -0
  88. package/dist/cli/commands/docs/tool-examples.d.ts.map +1 -0
  89. package/dist/cli/commands/docs/tool-examples.js +127 -0
  90. package/dist/cli/commands/docs/tool-examples.js.map +1 -0
  91. package/dist/cli/commands/docs/types.d.ts +108 -0
  92. package/dist/cli/commands/docs/types.d.ts.map +1 -0
  93. package/dist/cli/commands/docs/types.js +33 -0
  94. package/dist/cli/commands/docs/types.js.map +1 -0
  95. package/dist/cli/commands/doctor.d.ts +16 -0
  96. package/dist/cli/commands/doctor.d.ts.map +1 -0
  97. package/dist/cli/commands/doctor.js +322 -0
  98. package/dist/cli/commands/doctor.js.map +1 -0
  99. package/dist/cli/commands/doctor.types.d.ts +177 -0
  100. package/dist/cli/commands/doctor.types.d.ts.map +1 -0
  101. package/dist/cli/commands/doctor.types.js +172 -0
  102. package/dist/cli/commands/doctor.types.js.map +1 -0
  103. package/dist/cli/commands/index.d.ts +18 -0
  104. package/dist/cli/commands/index.d.ts.map +1 -0
  105. package/dist/cli/commands/index.js +18 -0
  106. package/dist/cli/commands/index.js.map +1 -0
  107. package/dist/cli/commands/init.d.ts +17 -0
  108. package/dist/cli/commands/init.d.ts.map +1 -0
  109. package/dist/cli/commands/init.js +326 -0
  110. package/dist/cli/commands/init.js.map +1 -0
  111. package/dist/cli/commands/init.types.d.ts +141 -0
  112. package/dist/cli/commands/init.types.d.ts.map +1 -0
  113. package/dist/cli/commands/init.types.js +24 -0
  114. package/dist/cli/commands/init.types.js.map +1 -0
  115. package/dist/cli/commands/login.d.ts +40 -0
  116. package/dist/cli/commands/login.d.ts.map +1 -0
  117. package/dist/cli/commands/login.js +174 -0
  118. package/dist/cli/commands/login.js.map +1 -0
  119. package/dist/cli/commands/next.d.ts +16 -0
  120. package/dist/cli/commands/next.d.ts.map +1 -0
  121. package/dist/cli/commands/next.js +279 -0
  122. package/dist/cli/commands/next.js.map +1 -0
  123. package/dist/cli/commands/next.types.d.ts +191 -0
  124. package/dist/cli/commands/next.types.d.ts.map +1 -0
  125. package/dist/cli/commands/next.types.js +129 -0
  126. package/dist/cli/commands/next.types.js.map +1 -0
  127. package/dist/cli/commands/projects.d.ts +16 -0
  128. package/dist/cli/commands/projects.d.ts.map +1 -0
  129. package/dist/cli/commands/projects.js +149 -0
  130. package/dist/cli/commands/projects.js.map +1 -0
  131. package/dist/cli/commands/projects.types.d.ts +81 -0
  132. package/dist/cli/commands/projects.types.d.ts.map +1 -0
  133. package/dist/cli/commands/projects.types.js +35 -0
  134. package/dist/cli/commands/projects.types.js.map +1 -0
  135. package/dist/cli/commands/review/display.d.ts +33 -0
  136. package/dist/cli/commands/review/display.d.ts.map +1 -0
  137. package/dist/cli/commands/review/display.js +159 -0
  138. package/dist/cli/commands/review/display.js.map +1 -0
  139. package/dist/cli/commands/review/epic-review.d.ts +13 -0
  140. package/dist/cli/commands/review/epic-review.d.ts.map +1 -0
  141. package/dist/cli/commands/review/epic-review.js +69 -0
  142. package/dist/cli/commands/review/epic-review.js.map +1 -0
  143. package/dist/cli/commands/review/index.d.ts +13 -0
  144. package/dist/cli/commands/review/index.d.ts.map +1 -0
  145. package/dist/cli/commands/review/index.js +17 -0
  146. package/dist/cli/commands/review/index.js.map +1 -0
  147. package/dist/cli/commands/review/report.d.ts +31 -0
  148. package/dist/cli/commands/review/report.d.ts.map +1 -0
  149. package/dist/cli/commands/review/report.js +146 -0
  150. package/dist/cli/commands/review/report.js.map +1 -0
  151. package/dist/cli/commands/review/review.d.ts +17 -0
  152. package/dist/cli/commands/review/review.d.ts.map +1 -0
  153. package/dist/cli/commands/review/review.js +129 -0
  154. package/dist/cli/commands/review/review.js.map +1 -0
  155. package/dist/cli/commands/review/spec-review.d.ts +13 -0
  156. package/dist/cli/commands/review/spec-review.d.ts.map +1 -0
  157. package/dist/cli/commands/review/spec-review.js +65 -0
  158. package/dist/cli/commands/review/spec-review.js.map +1 -0
  159. package/dist/cli/commands/review/ticket-review.d.ts +37 -0
  160. package/dist/cli/commands/review/ticket-review.d.ts.map +1 -0
  161. package/dist/cli/commands/review/ticket-review.js +194 -0
  162. package/dist/cli/commands/review/ticket-review.js.map +1 -0
  163. package/dist/cli/commands/review/types.d.ts +232 -0
  164. package/dist/cli/commands/review/types.d.ts.map +1 -0
  165. package/dist/cli/commands/review/types.js +85 -0
  166. package/dist/cli/commands/review/types.js.map +1 -0
  167. package/dist/cli/commands/scaffold/display.d.ts +27 -0
  168. package/dist/cli/commands/scaffold/display.d.ts.map +1 -0
  169. package/dist/cli/commands/scaffold/display.js +90 -0
  170. package/dist/cli/commands/scaffold/display.js.map +1 -0
  171. package/dist/cli/commands/scaffold/index.d.ts +12 -0
  172. package/dist/cli/commands/scaffold/index.d.ts.map +1 -0
  173. package/dist/cli/commands/scaffold/index.js +12 -0
  174. package/dist/cli/commands/scaffold/index.js.map +1 -0
  175. package/dist/cli/commands/scaffold/register.d.ts +11 -0
  176. package/dist/cli/commands/scaffold/register.d.ts.map +1 -0
  177. package/dist/cli/commands/scaffold/register.js +25 -0
  178. package/dist/cli/commands/scaffold/register.js.map +1 -0
  179. package/dist/cli/commands/scaffold/scaffold.d.ts +11 -0
  180. package/dist/cli/commands/scaffold/scaffold.d.ts.map +1 -0
  181. package/dist/cli/commands/scaffold/scaffold.js +111 -0
  182. package/dist/cli/commands/scaffold/scaffold.js.map +1 -0
  183. package/dist/cli/commands/scaffold/targets.d.ts +31 -0
  184. package/dist/cli/commands/scaffold/targets.d.ts.map +1 -0
  185. package/dist/cli/commands/scaffold/targets.js +84 -0
  186. package/dist/cli/commands/scaffold/targets.js.map +1 -0
  187. package/dist/cli/commands/scaffold/types.d.ts +88 -0
  188. package/dist/cli/commands/scaffold/types.d.ts.map +1 -0
  189. package/dist/cli/commands/scaffold/types.js +21 -0
  190. package/dist/cli/commands/scaffold/types.js.map +1 -0
  191. package/dist/cli/commands/scaffold/utils.d.ts +31 -0
  192. package/dist/cli/commands/scaffold/utils.d.ts.map +1 -0
  193. package/dist/cli/commands/scaffold/utils.js +71 -0
  194. package/dist/cli/commands/scaffold/utils.js.map +1 -0
  195. package/dist/cli/commands/session/display.d.ts +40 -0
  196. package/dist/cli/commands/session/display.d.ts.map +1 -0
  197. package/dist/cli/commands/session/display.js +114 -0
  198. package/dist/cli/commands/session/display.js.map +1 -0
  199. package/dist/cli/commands/session/end.d.ts +12 -0
  200. package/dist/cli/commands/session/end.d.ts.map +1 -0
  201. package/dist/cli/commands/session/end.js +165 -0
  202. package/dist/cli/commands/session/end.js.map +1 -0
  203. package/dist/cli/commands/session/index.d.ts +13 -0
  204. package/dist/cli/commands/session/index.d.ts.map +1 -0
  205. package/dist/cli/commands/session/index.js +13 -0
  206. package/dist/cli/commands/session/index.js.map +1 -0
  207. package/dist/cli/commands/session/register.d.ts +12 -0
  208. package/dist/cli/commands/session/register.d.ts.map +1 -0
  209. package/dist/cli/commands/session/register.js +87 -0
  210. package/dist/cli/commands/session/register.js.map +1 -0
  211. package/dist/cli/commands/session/start.d.ts +12 -0
  212. package/dist/cli/commands/session/start.d.ts.map +1 -0
  213. package/dist/cli/commands/session/start.js +189 -0
  214. package/dist/cli/commands/session/start.js.map +1 -0
  215. package/dist/cli/commands/session/status.d.ts +12 -0
  216. package/dist/cli/commands/session/status.d.ts.map +1 -0
  217. package/dist/cli/commands/session/status.js +93 -0
  218. package/dist/cli/commands/session/status.js.map +1 -0
  219. package/dist/cli/commands/session/types.d.ts +179 -0
  220. package/dist/cli/commands/session/types.d.ts.map +1 -0
  221. package/dist/cli/commands/session/types.js +8 -0
  222. package/dist/cli/commands/session/types.js.map +1 -0
  223. package/dist/cli/commands/session/utils.d.ts +24 -0
  224. package/dist/cli/commands/session/utils.d.ts.map +1 -0
  225. package/dist/cli/commands/session/utils.js +72 -0
  226. package/dist/cli/commands/session/utils.js.map +1 -0
  227. package/dist/cli/commands/specs.d.ts +16 -0
  228. package/dist/cli/commands/specs.d.ts.map +1 -0
  229. package/dist/cli/commands/specs.js +212 -0
  230. package/dist/cli/commands/specs.js.map +1 -0
  231. package/dist/cli/commands/specs.types.d.ts +120 -0
  232. package/dist/cli/commands/specs.types.d.ts.map +1 -0
  233. package/dist/cli/commands/specs.types.js +75 -0
  234. package/dist/cli/commands/specs.types.js.map +1 -0
  235. package/dist/cli/commands/status.d.ts +17 -0
  236. package/dist/cli/commands/status.d.ts.map +1 -0
  237. package/dist/cli/commands/status.js +271 -0
  238. package/dist/cli/commands/status.js.map +1 -0
  239. package/dist/cli/commands/status.types.d.ts +382 -0
  240. package/dist/cli/commands/status.types.d.ts.map +1 -0
  241. package/dist/cli/commands/status.types.js +166 -0
  242. package/dist/cli/commands/status.types.js.map +1 -0
  243. package/dist/cli/commands/switch.d.ts +18 -0
  244. package/dist/cli/commands/switch.d.ts.map +1 -0
  245. package/dist/cli/commands/switch.js +181 -0
  246. package/dist/cli/commands/switch.js.map +1 -0
  247. package/dist/cli/commands/switch.types.d.ts +123 -0
  248. package/dist/cli/commands/switch.types.d.ts.map +1 -0
  249. package/dist/cli/commands/switch.types.js +65 -0
  250. package/dist/cli/commands/switch.types.js.map +1 -0
  251. package/dist/cli/commands/ticket/command.d.ts +14 -0
  252. package/dist/cli/commands/ticket/command.d.ts.map +1 -0
  253. package/dist/cli/commands/ticket/command.js +141 -0
  254. package/dist/cli/commands/ticket/command.js.map +1 -0
  255. package/dist/cli/commands/ticket/display.d.ts +56 -0
  256. package/dist/cli/commands/ticket/display.d.ts.map +1 -0
  257. package/dist/cli/commands/ticket/display.js +205 -0
  258. package/dist/cli/commands/ticket/display.js.map +1 -0
  259. package/dist/cli/commands/ticket/index.d.ts +11 -0
  260. package/dist/cli/commands/ticket/index.d.ts.map +1 -0
  261. package/dist/cli/commands/ticket/index.js +11 -0
  262. package/dist/cli/commands/ticket/index.js.map +1 -0
  263. package/dist/cli/commands/ticket/register.d.ts +11 -0
  264. package/dist/cli/commands/ticket/register.d.ts.map +1 -0
  265. package/dist/cli/commands/ticket/register.js +39 -0
  266. package/dist/cli/commands/ticket/register.js.map +1 -0
  267. package/dist/cli/commands/ticket/resolver.d.ts +16 -0
  268. package/dist/cli/commands/ticket/resolver.d.ts.map +1 -0
  269. package/dist/cli/commands/ticket/resolver.js +35 -0
  270. package/dist/cli/commands/ticket/resolver.js.map +1 -0
  271. package/dist/cli/commands/ticket/types.d.ts +157 -0
  272. package/dist/cli/commands/ticket/types.d.ts.map +1 -0
  273. package/dist/cli/commands/ticket/types.js +8 -0
  274. package/dist/cli/commands/ticket/types.js.map +1 -0
  275. package/dist/cli/commands/tickets.d.ts +16 -0
  276. package/dist/cli/commands/tickets.d.ts.map +1 -0
  277. package/dist/cli/commands/tickets.js +271 -0
  278. package/dist/cli/commands/tickets.js.map +1 -0
  279. package/dist/cli/commands/tickets.types.d.ts +202 -0
  280. package/dist/cli/commands/tickets.types.d.ts.map +1 -0
  281. package/dist/cli/commands/tickets.types.js +138 -0
  282. package/dist/cli/commands/tickets.types.js.map +1 -0
  283. package/dist/cli/config/index.d.ts +11 -0
  284. package/dist/cli/config/index.d.ts.map +1 -0
  285. package/dist/cli/config/index.js +11 -0
  286. package/dist/cli/config/index.js.map +1 -0
  287. package/dist/cli/config/loader.d.ts +98 -0
  288. package/dist/cli/config/loader.d.ts.map +1 -0
  289. package/dist/cli/config/loader.js +237 -0
  290. package/dist/cli/config/loader.js.map +1 -0
  291. package/dist/cli/config/paths.d.ts +96 -0
  292. package/dist/cli/config/paths.d.ts.map +1 -0
  293. package/dist/cli/config/paths.js +140 -0
  294. package/dist/cli/config/paths.js.map +1 -0
  295. package/dist/cli/config/types.d.ts +148 -0
  296. package/dist/cli/config/types.d.ts.map +1 -0
  297. package/dist/cli/config/types.js +34 -0
  298. package/dist/cli/config/types.js.map +1 -0
  299. package/dist/cli/config/writer.d.ts +171 -0
  300. package/dist/cli/config/writer.d.ts.map +1 -0
  301. package/dist/cli/config/writer.js +312 -0
  302. package/dist/cli/config/writer.js.map +1 -0
  303. package/dist/cli/index.d.ts +30 -0
  304. package/dist/cli/index.d.ts.map +1 -0
  305. package/dist/cli/index.js +183 -0
  306. package/dist/cli/index.js.map +1 -0
  307. package/dist/cli/middleware/auth-guard.d.ts +107 -0
  308. package/dist/cli/middleware/auth-guard.d.ts.map +1 -0
  309. package/dist/cli/middleware/auth-guard.js +190 -0
  310. package/dist/cli/middleware/auth-guard.js.map +1 -0
  311. package/dist/cli/middleware/error-handler.d.ts +133 -0
  312. package/dist/cli/middleware/error-handler.d.ts.map +1 -0
  313. package/dist/cli/middleware/error-handler.js +209 -0
  314. package/dist/cli/middleware/error-handler.js.map +1 -0
  315. package/dist/cli/middleware/index.d.ts +6 -0
  316. package/dist/cli/middleware/index.d.ts.map +1 -0
  317. package/dist/cli/middleware/index.js +6 -0
  318. package/dist/cli/middleware/index.js.map +1 -0
  319. package/dist/cli/templates/commands.d.ts +20 -0
  320. package/dist/cli/templates/commands.d.ts.map +1 -0
  321. package/dist/cli/templates/commands.js +174 -0
  322. package/dist/cli/templates/commands.js.map +1 -0
  323. package/dist/cli/templates/content/sf-autonomous.d.ts +7 -0
  324. package/dist/cli/templates/content/sf-autonomous.d.ts.map +1 -0
  325. package/dist/cli/templates/content/sf-autonomous.js +78 -0
  326. package/dist/cli/templates/content/sf-autonomous.js.map +1 -0
  327. package/dist/cli/templates/content/sf-blockers.d.ts +7 -0
  328. package/dist/cli/templates/content/sf-blockers.d.ts.map +1 -0
  329. package/dist/cli/templates/content/sf-blockers.js +68 -0
  330. package/dist/cli/templates/content/sf-blockers.js.map +1 -0
  331. package/dist/cli/templates/content/sf-commit.d.ts +7 -0
  332. package/dist/cli/templates/content/sf-commit.d.ts.map +1 -0
  333. package/dist/cli/templates/content/sf-commit.js +78 -0
  334. package/dist/cli/templates/content/sf-commit.js.map +1 -0
  335. package/dist/cli/templates/content/sf-context.d.ts +7 -0
  336. package/dist/cli/templates/content/sf-context.d.ts.map +1 -0
  337. package/dist/cli/templates/content/sf-context.js +64 -0
  338. package/dist/cli/templates/content/sf-context.js.map +1 -0
  339. package/dist/cli/templates/content/sf-create-epics.d.ts +7 -0
  340. package/dist/cli/templates/content/sf-create-epics.d.ts.map +1 -0
  341. package/dist/cli/templates/content/sf-create-epics.js +70 -0
  342. package/dist/cli/templates/content/sf-create-epics.js.map +1 -0
  343. package/dist/cli/templates/content/sf-create-spec.d.ts +7 -0
  344. package/dist/cli/templates/content/sf-create-spec.d.ts.map +1 -0
  345. package/dist/cli/templates/content/sf-create-spec.js +67 -0
  346. package/dist/cli/templates/content/sf-create-spec.js.map +1 -0
  347. package/dist/cli/templates/content/sf-create-tickets.d.ts +7 -0
  348. package/dist/cli/templates/content/sf-create-tickets.d.ts.map +1 -0
  349. package/dist/cli/templates/content/sf-create-tickets.js +76 -0
  350. package/dist/cli/templates/content/sf-create-tickets.js.map +1 -0
  351. package/dist/cli/templates/content/sf-epic.d.ts +7 -0
  352. package/dist/cli/templates/content/sf-epic.d.ts.map +1 -0
  353. package/dist/cli/templates/content/sf-epic.js +69 -0
  354. package/dist/cli/templates/content/sf-epic.js.map +1 -0
  355. package/dist/cli/templates/content/sf-help.d.ts +7 -0
  356. package/dist/cli/templates/content/sf-help.d.ts.map +1 -0
  357. package/dist/cli/templates/content/sf-help.js +61 -0
  358. package/dist/cli/templates/content/sf-help.js.map +1 -0
  359. package/dist/cli/templates/content/sf-import.d.ts +7 -0
  360. package/dist/cli/templates/content/sf-import.d.ts.map +1 -0
  361. package/dist/cli/templates/content/sf-import.js +88 -0
  362. package/dist/cli/templates/content/sf-import.js.map +1 -0
  363. package/dist/cli/templates/content/sf-init.d.ts +7 -0
  364. package/dist/cli/templates/content/sf-init.d.ts.map +1 -0
  365. package/dist/cli/templates/content/sf-init.js +61 -0
  366. package/dist/cli/templates/content/sf-init.js.map +1 -0
  367. package/dist/cli/templates/content/sf-next.d.ts +7 -0
  368. package/dist/cli/templates/content/sf-next.d.ts.map +1 -0
  369. package/dist/cli/templates/content/sf-next.js +67 -0
  370. package/dist/cli/templates/content/sf-next.js.map +1 -0
  371. package/dist/cli/templates/content/sf-reset.d.ts +7 -0
  372. package/dist/cli/templates/content/sf-reset.d.ts.map +1 -0
  373. package/dist/cli/templates/content/sf-reset.js +78 -0
  374. package/dist/cli/templates/content/sf-reset.js.map +1 -0
  375. package/dist/cli/templates/content/sf-review.d.ts +7 -0
  376. package/dist/cli/templates/content/sf-review.d.ts.map +1 -0
  377. package/dist/cli/templates/content/sf-review.js +67 -0
  378. package/dist/cli/templates/content/sf-review.js.map +1 -0
  379. package/dist/cli/templates/content/sf-search.d.ts +7 -0
  380. package/dist/cli/templates/content/sf-search.d.ts.map +1 -0
  381. package/dist/cli/templates/content/sf-search.js +64 -0
  382. package/dist/cli/templates/content/sf-search.js.map +1 -0
  383. package/dist/cli/templates/content/sf-status.d.ts +7 -0
  384. package/dist/cli/templates/content/sf-status.d.ts.map +1 -0
  385. package/dist/cli/templates/content/sf-status.js +67 -0
  386. package/dist/cli/templates/content/sf-status.js.map +1 -0
  387. package/dist/cli/templates/content/sf-ticket.d.ts +7 -0
  388. package/dist/cli/templates/content/sf-ticket.d.ts.map +1 -0
  389. package/dist/cli/templates/content/sf-ticket.js +76 -0
  390. package/dist/cli/templates/content/sf-ticket.js.map +1 -0
  391. package/dist/cli/templates/content/sf-validate.d.ts +7 -0
  392. package/dist/cli/templates/content/sf-validate.d.ts.map +1 -0
  393. package/dist/cli/templates/content/sf-validate.js +78 -0
  394. package/dist/cli/templates/content/sf-validate.js.map +1 -0
  395. package/dist/cli/templates/index.d.ts +7 -0
  396. package/dist/cli/templates/index.d.ts.map +1 -0
  397. package/dist/cli/templates/index.js +7 -0
  398. package/dist/cli/templates/index.js.map +1 -0
  399. package/dist/cli/ui/colors.d.ts +76 -0
  400. package/dist/cli/ui/colors.d.ts.map +1 -0
  401. package/dist/cli/ui/colors.js +81 -0
  402. package/dist/cli/ui/colors.js.map +1 -0
  403. package/dist/cli/ui/dashboard.d.ts +54 -0
  404. package/dist/cli/ui/dashboard.d.ts.map +1 -0
  405. package/dist/cli/ui/dashboard.js +339 -0
  406. package/dist/cli/ui/dashboard.js.map +1 -0
  407. package/dist/cli/ui/index.d.ts +7 -0
  408. package/dist/cli/ui/index.d.ts.map +1 -0
  409. package/dist/cli/ui/index.js +7 -0
  410. package/dist/cli/ui/index.js.map +1 -0
  411. package/dist/cli/ui/output.d.ts +117 -0
  412. package/dist/cli/ui/output.d.ts.map +1 -0
  413. package/dist/cli/ui/output.js +172 -0
  414. package/dist/cli/ui/output.js.map +1 -0
  415. package/dist/cli/ui/spinner.d.ts +105 -0
  416. package/dist/cli/ui/spinner.d.ts.map +1 -0
  417. package/dist/cli/ui/spinner.js +148 -0
  418. package/dist/cli/ui/spinner.js.map +1 -0
  419. package/dist/cli/ui/time.d.ts +54 -0
  420. package/dist/cli/ui/time.d.ts.map +1 -0
  421. package/dist/cli/ui/time.js +173 -0
  422. package/dist/cli/ui/time.js.map +1 -0
  423. package/dist/lib/format.d.ts +4 -4
  424. package/dist/lib/format.js +5 -5
  425. package/dist/server.js +8 -8
  426. package/dist/server.js.map +1 -1
  427. package/dist/tools/core/session.js +6 -6
  428. package/dist/tools/core/session.js.map +1 -1
  429. package/dist/tools/index.js +9 -9
  430. package/dist/tools/index.js.map +1 -1
  431. package/dist/validation/index.js +1 -1
  432. package/dist/validation/index.js.map +1 -1
  433. package/package.json +9 -2
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Status Command
3
+ *
4
+ * Displays the current working context and implementation session status,
5
+ * providing a quick overview of where the user is in their workflow.
6
+ */
7
+ import ora from 'ora';
8
+ import { resolveConfig } from '../config/index.js';
9
+ import { withErrorHandler, CliError, NetworkError } from '../middleware/error-handler.js';
10
+ import { printBlank } from '../ui/output.js';
11
+ import { colors } from '../ui/colors.js';
12
+ import { ApiClient } from '../../client/api-client.js';
13
+ import { formatTicketNumber, formatDuration, hasWorkingContext, transformApiResponse, transformToDashboardData, calculateSessionProgress, } from './status.types.js';
14
+ import { renderDashboard } from '../ui/dashboard.js';
15
+ /**
16
+ * Display working context section
17
+ */
18
+ function displayWorkingContext(context) {
19
+ console.log(colors.bold('Working Context'));
20
+ console.log(colors.muted('───────────────'));
21
+ if (!hasWorkingContext(context)) {
22
+ console.log(colors.muted('No context set'));
23
+ console.log(colors.muted("Run 'specforge-mcp switch <id>' to set context"));
24
+ return;
25
+ }
26
+ if (context.project) {
27
+ console.log(`Project: ${context.project.name}`);
28
+ }
29
+ if (context.specification) {
30
+ console.log(`Specification: ${context.specification.title}`);
31
+ }
32
+ else if (context.project) {
33
+ console.log(`Specification: ${colors.muted('(not set)')}`);
34
+ }
35
+ if (context.epic) {
36
+ const epicNum = context.epic.epicNumber
37
+ ? `E${context.epic.epicNumber.toString().padStart(2, '0')} - `
38
+ : '';
39
+ console.log(`Epic: ${epicNum}${context.epic.title}`);
40
+ }
41
+ if (context.ticket) {
42
+ const ticketNum = formatTicketNumber(context.ticket.ticketNumber);
43
+ console.log(`Ticket: ${ticketNum} - ${context.ticket.title}`);
44
+ }
45
+ }
46
+ /**
47
+ * Display implementation session section
48
+ */
49
+ function displayImplementationSession(session) {
50
+ printBlank();
51
+ console.log(colors.bold('Implementation Session'));
52
+ console.log(colors.muted('──────────────────────'));
53
+ if (!session) {
54
+ console.log(colors.muted('No active session'));
55
+ console.log(colors.muted("Run 'specforge-mcp session start' to begin"));
56
+ return;
57
+ }
58
+ // Status with duration
59
+ const duration = formatDuration(session.startedAt);
60
+ const statusColor = session.status === 'active' ? colors.primary : colors.muted;
61
+ console.log(`Status: ${statusColor(session.status)} (started ${duration})`);
62
+ // Progress if we have total
63
+ if (session.stats.total > 0) {
64
+ const progress = calculateSessionProgress(session);
65
+ console.log(`Progress: ${progress}% (${session.stats.completed + session.stats.failed + session.stats.skipped}/${session.stats.total})`);
66
+ }
67
+ // Stats
68
+ console.log(`Completed: ${colors.success(session.stats.completed.toString())} tickets`);
69
+ const failedDisplay = session.stats.failed > 0
70
+ ? colors.error(session.stats.failed.toString())
71
+ : '0';
72
+ console.log(`Failed: ${failedDisplay} tickets`);
73
+ const skippedDisplay = session.stats.skipped > 0
74
+ ? colors.warning(session.stats.skipped.toString())
75
+ : '0';
76
+ console.log(`Skipped: ${skippedDisplay} tickets`);
77
+ // Current ticket
78
+ if (session.currentTicket) {
79
+ const ticketNum = formatTicketNumber(session.currentTicket.ticketNumber);
80
+ printBlank();
81
+ console.log(`Current: ${ticketNum} - ${session.currentTicket.title}`);
82
+ }
83
+ }
84
+ /**
85
+ * Display next actionable section
86
+ */
87
+ function displayNextActionable(nextActionable) {
88
+ if (!nextActionable) {
89
+ return;
90
+ }
91
+ printBlank();
92
+ console.log(colors.bold('Next Actionable'));
93
+ console.log(colors.muted('───────────────'));
94
+ const ticketNum = formatTicketNumber(nextActionable.ticketNumber);
95
+ const priorityColor = nextActionable.priority === 'high'
96
+ ? colors.error
97
+ : nextActionable.priority === 'medium'
98
+ ? colors.warning
99
+ : colors.muted;
100
+ console.log(`${ticketNum} - ${nextActionable.title} (${priorityColor(nextActionable.priority)} priority)`);
101
+ if (nextActionable.epicTitle) {
102
+ console.log(colors.muted(` in ${nextActionable.epicTitle}`));
103
+ }
104
+ }
105
+ /**
106
+ * Display status in console format
107
+ */
108
+ function displayStatus(status) {
109
+ printBlank();
110
+ displayWorkingContext(status.workingContext);
111
+ displayImplementationSession(status.implementationSession);
112
+ displayNextActionable(status.nextActionable);
113
+ printBlank();
114
+ }
115
+ /**
116
+ * Format status as TOON
117
+ */
118
+ function formatStatusAsToon(status) {
119
+ const lines = ['@status'];
120
+ // Working context
121
+ const ctx = status.workingContext;
122
+ if (ctx.project) {
123
+ lines.push(` project: ${ctx.project.name}`);
124
+ }
125
+ if (ctx.specification) {
126
+ lines.push(` spec: ${ctx.specification.title}`);
127
+ }
128
+ if (ctx.epic) {
129
+ lines.push(` epic: ${ctx.epic.title}`);
130
+ }
131
+ if (ctx.ticket) {
132
+ lines.push(` ticket: ${formatTicketNumber(ctx.ticket.ticketNumber)} ${ctx.ticket.title}`);
133
+ }
134
+ // Session
135
+ if (status.implementationSession) {
136
+ const sess = status.implementationSession;
137
+ lines.push(` session: ${sess.status}`);
138
+ lines.push(` completed: ${sess.stats.completed}`);
139
+ lines.push(` failed: ${sess.stats.failed}`);
140
+ lines.push(` skipped: ${sess.stats.skipped}`);
141
+ if (sess.currentTicket) {
142
+ lines.push(` current: ${formatTicketNumber(sess.currentTicket.ticketNumber)} ${sess.currentTicket.title}`);
143
+ }
144
+ }
145
+ // Next actionable
146
+ if (status.nextActionable) {
147
+ const next = status.nextActionable;
148
+ lines.push(` next: ${formatTicketNumber(next.ticketNumber)} ${next.title} (${next.priority})`);
149
+ }
150
+ return lines.join('\n');
151
+ }
152
+ /**
153
+ * Status command action handler
154
+ */
155
+ export async function statusAction(options) {
156
+ const config = resolveConfig();
157
+ if (!config.apiKey) {
158
+ throw new CliError('Not authenticated', 1, 'Run `specforge-mcp login` to authenticate first');
159
+ }
160
+ const spinner = ora({
161
+ text: 'Fetching status...',
162
+ color: 'cyan',
163
+ }).start();
164
+ try {
165
+ const client = new ApiClient({
166
+ apiKey: config.apiKey,
167
+ apiUrl: config.apiUrl,
168
+ debug: config.debug,
169
+ });
170
+ // Get working context (includes implementation session)
171
+ const contextResponse = await client.call('get_working_context', {});
172
+ // Get next actionable if we have a specification
173
+ let ticketsResponse;
174
+ if (config.specificationId) {
175
+ try {
176
+ ticketsResponse = await client.call('list_tickets', {
177
+ specificationId: config.specificationId,
178
+ status: 'pending',
179
+ limit: 1,
180
+ sortBy: 'priority',
181
+ });
182
+ }
183
+ catch {
184
+ // Ignore - next actionable is optional
185
+ }
186
+ }
187
+ spinner.stop();
188
+ // Dashboard mode
189
+ if (options.dashboard) {
190
+ // Fetch additional dashboard data
191
+ let dashboardResponse = {};
192
+ try {
193
+ dashboardResponse = await client.call('get_report', {
194
+ type: 'dashboard',
195
+ specificationId: config.specificationId,
196
+ });
197
+ }
198
+ catch {
199
+ // Fallback to basic dashboard data from context
200
+ }
201
+ const dashboardData = transformToDashboardData(contextResponse, dashboardResponse);
202
+ if (options.json) {
203
+ console.log(JSON.stringify(dashboardData, null, 2));
204
+ }
205
+ else {
206
+ console.log(renderDashboard(dashboardData));
207
+ }
208
+ return;
209
+ }
210
+ // Transform API response to status
211
+ const status = transformApiResponse(contextResponse, ticketsResponse);
212
+ // Output based on format
213
+ if (options.json) {
214
+ console.log(JSON.stringify(status, null, 2));
215
+ }
216
+ else if (options.toon) {
217
+ console.log(formatStatusAsToon(status));
218
+ }
219
+ else {
220
+ displayStatus(status);
221
+ }
222
+ }
223
+ catch (error) {
224
+ spinner.fail('Failed to fetch status');
225
+ const message = error instanceof Error ? error.message : 'Unknown error';
226
+ if (message.includes('401') || message.includes('Unauthorized')) {
227
+ throw new CliError('Authentication failed', 1, 'Your API key may be invalid. Run `specforge-mcp login` to re-authenticate');
228
+ }
229
+ throw new NetworkError(`Failed to fetch status: ${message}`);
230
+ }
231
+ }
232
+ /**
233
+ * Register status command with Commander
234
+ */
235
+ export function registerStatusCommand(program) {
236
+ program
237
+ .command('status')
238
+ .description('Show current working context and session status')
239
+ .option('-d, --dashboard', 'Show full project dashboard with analytics')
240
+ .option('--json', 'Output as JSON')
241
+ .option('--toon', 'Output as TOON format')
242
+ .addHelpText('after', `
243
+ Examples:
244
+ $ specforge-mcp status # Show current status
245
+ $ specforge-mcp status -d # Show full dashboard with analytics
246
+ $ specforge-mcp status --dashboard # Show full dashboard with analytics
247
+ $ specforge-mcp status --json # Output as JSON
248
+ $ specforge-mcp status --toon # Output as TOON format
249
+
250
+ Displays:
251
+ - Working Context: Current project, specification, epic, and ticket
252
+ - Implementation Session: Active session status and statistics
253
+ - Next Actionable: Suggested next ticket to work on
254
+
255
+ Dashboard View (--dashboard):
256
+ - Overall Progress: Ticket completion with progress bar
257
+ - Time Metrics: Estimated, actual, remaining hours and velocity
258
+ - Specification Breakdown: Progress per specification
259
+ - Epic Status: Progress per epic
260
+ - Priority Distribution: Critical, high, medium, low tickets
261
+ - Complexity Distribution: XS, S, M, L, XL tickets
262
+ - Active Session: Current session details
263
+ - Next Actionable: Top 3 pending tickets
264
+ - Blockers & Alerts: Blocked and failed tickets
265
+
266
+ Use 'specforge-mcp switch <id>' to change your working context.
267
+ Use 'specforge-mcp session start' to begin an implementation session.
268
+ `)
269
+ .action(withErrorHandler(statusAction));
270
+ }
271
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAQL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAuB;IACpD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE7C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU;YACrC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;YAC9D,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,OAA+B;IACnE,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,QAAQ,GAAG,CAAC,CAAC;IAE/E,4BAA4B;IAC5B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IAC5I,CAAC;IAED,QAAQ;IACR,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;IAExF,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/C,CAAC,CAAC,GAAG,CAAC;IACR,OAAO,CAAC,GAAG,CAAC,cAAc,aAAa,UAAU,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClD,CAAC,CAAC,GAAG,CAAC;IACR,OAAO,CAAC,GAAG,CAAC,cAAc,cAAc,UAAU,CAAC,CAAC;IAEpD,iBAAiB;IACjB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACzE,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,cAAiD;IAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,KAAK,MAAM;QACtD,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,cAAc,CAAC,QAAQ,KAAK,QAAQ;YACpC,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAEnB,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,MAAM,cAAc,CAAC,KAAK,KAAK,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE3G,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAsB;IAC3C,UAAU,EAAE,CAAC;IAEb,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC7C,4BAA4B,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC3D,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE7C,UAAU,EAAE,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAsB;IAChD,MAAM,KAAK,GAAa,CAAC,SAAS,CAAC,CAAC;IAEpC,kBAAkB;IAClB,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC;IAClC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,UAAU;IACV,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,WAAW,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAClG,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,CAAC,EACD,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,IAAI,CACvC,qBAAqB,EACrB,EAAE,CACH,CAAC;QAEF,iDAAiD;QACjD,IAAI,eAAmD,CAAC;QACxD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,eAAe,GAAG,MAAM,MAAM,CAAC,IAAI,CACjC,cAAc,EACd;oBACE,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,UAAU;iBACnB,CACF,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,iBAAiB;QACjB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,kCAAkC;YAClC,IAAI,iBAAiB,GAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,iBAAiB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;oBAClD,IAAI,EAAE,WAAW;oBACjB,eAAe,EAAE,MAAM,CAAC,eAAe;iBACxC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;YAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YAEnF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAEtE,yBAAyB;QACzB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAEzE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,QAAQ,CAChB,uBAAuB,EACvB,CAAC,EACD,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,YAAY,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BzB,CAAC;SACG,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,382 @@
1
+ /**
2
+ * Status Command Types
3
+ *
4
+ * Type definitions for the status command working context,
5
+ * implementation session display, and dashboard analytics.
6
+ */
7
+ /**
8
+ * Status command options from Commander
9
+ */
10
+ export interface StatusOptions {
11
+ /** Output as JSON */
12
+ json?: boolean;
13
+ /** Output as TOON format */
14
+ toon?: boolean;
15
+ /** Show full project dashboard with analytics */
16
+ dashboard?: boolean;
17
+ }
18
+ /**
19
+ * Project summary for status display
20
+ */
21
+ export interface ProjectSummary {
22
+ /** Project ID */
23
+ id: string;
24
+ /** Project name */
25
+ name: string;
26
+ }
27
+ /**
28
+ * Specification summary for status display
29
+ */
30
+ export interface SpecificationSummary {
31
+ /** Specification ID */
32
+ id: string;
33
+ /** Specification title */
34
+ title: string;
35
+ /** Specification status */
36
+ status?: string;
37
+ }
38
+ /**
39
+ * Epic summary for status display
40
+ */
41
+ export interface EpicSummary {
42
+ /** Epic ID */
43
+ id: string;
44
+ /** Epic title */
45
+ title: string;
46
+ /** Epic number */
47
+ epicNumber?: number;
48
+ }
49
+ /**
50
+ * Ticket summary for status display
51
+ */
52
+ export interface TicketSummary {
53
+ /** Ticket ID */
54
+ id: string;
55
+ /** Ticket title */
56
+ title: string;
57
+ /** Ticket number */
58
+ ticketNumber: number;
59
+ /** Ticket status */
60
+ status?: string;
61
+ /** Ticket priority */
62
+ priority?: string;
63
+ }
64
+ /**
65
+ * Working context representing current location in hierarchy
66
+ */
67
+ export interface WorkingContext {
68
+ /** Current project */
69
+ project?: ProjectSummary;
70
+ /** Current specification */
71
+ specification?: SpecificationSummary;
72
+ /** Current epic */
73
+ epic?: EpicSummary;
74
+ /** Current ticket */
75
+ ticket?: TicketSummary;
76
+ }
77
+ /**
78
+ * Implementation session statistics
79
+ */
80
+ export interface SessionStats {
81
+ /** Number of completed tickets */
82
+ completed: number;
83
+ /** Number of failed tickets */
84
+ failed: number;
85
+ /** Number of skipped tickets */
86
+ skipped: number;
87
+ /** Total number of tickets in scope */
88
+ total: number;
89
+ }
90
+ /**
91
+ * Implementation session summary
92
+ */
93
+ export interface ImplementationSession {
94
+ /** Session ID */
95
+ id: string;
96
+ /** Session status */
97
+ status: SessionStatus;
98
+ /** When the session was started */
99
+ startedAt: string;
100
+ /** Specification ID this session is for */
101
+ specificationId: string;
102
+ /** Specification title (for display) */
103
+ specificationTitle?: string;
104
+ /** Session statistics */
105
+ stats: SessionStats;
106
+ /** Current ticket being worked on */
107
+ currentTicket?: TicketSummary;
108
+ }
109
+ /**
110
+ * Valid session statuses
111
+ */
112
+ export type SessionStatus = 'active' | 'paused' | 'completed' | 'failed';
113
+ /**
114
+ * Next actionable ticket suggestion
115
+ */
116
+ export interface NextActionable {
117
+ /** Ticket ID */
118
+ id: string;
119
+ /** Ticket title */
120
+ title: string;
121
+ /** Ticket number */
122
+ ticketNumber: number;
123
+ /** Ticket priority */
124
+ priority: string;
125
+ /** Epic this ticket belongs to */
126
+ epicTitle?: string;
127
+ }
128
+ /**
129
+ * Complete status response
130
+ */
131
+ export interface StatusResponse {
132
+ /** Current working context */
133
+ workingContext: WorkingContext;
134
+ /** Active implementation session (if any) */
135
+ implementationSession?: ImplementationSession;
136
+ /** Next suggested ticket to work on */
137
+ nextActionable?: NextActionable;
138
+ /** Timestamp of status fetch */
139
+ timestamp: string;
140
+ }
141
+ /**
142
+ * API response from get_working_context
143
+ */
144
+ export interface WorkingContextApiResponse {
145
+ project?: {
146
+ id: string;
147
+ name: string;
148
+ };
149
+ specification?: {
150
+ id: string;
151
+ title: string;
152
+ status?: string;
153
+ };
154
+ epic?: {
155
+ id: string;
156
+ title: string;
157
+ epicNumber?: number;
158
+ };
159
+ ticket?: {
160
+ id: string;
161
+ title: string;
162
+ ticketNumber: number;
163
+ status?: string;
164
+ };
165
+ implementationSession?: {
166
+ id: string;
167
+ status: string;
168
+ startedAt: string;
169
+ specificationId: string;
170
+ completedTickets?: string[];
171
+ failedTickets?: string[];
172
+ skippedTickets?: string[];
173
+ totalTickets?: number;
174
+ currentTicket?: {
175
+ id: string;
176
+ title: string;
177
+ ticketNumber: number;
178
+ };
179
+ };
180
+ }
181
+ /**
182
+ * API response from list_tickets
183
+ */
184
+ export interface ListTicketsApiResponse {
185
+ tickets: Array<{
186
+ id: string;
187
+ title: string;
188
+ ticketNumber: number;
189
+ priority: string;
190
+ status: string;
191
+ epicTitle?: string;
192
+ }>;
193
+ total: number;
194
+ }
195
+ /**
196
+ * Format a ticket number with padding
197
+ * @param ticketNumber The ticket number
198
+ * @param prefix The prefix (default: "TKT")
199
+ * @param padding The padding length (default: 3)
200
+ */
201
+ export declare function formatTicketNumber(ticketNumber: number, prefix?: string, padding?: number): string;
202
+ /**
203
+ * Format duration from ISO timestamp to human-readable string
204
+ * @param startedAt ISO timestamp string
205
+ */
206
+ export declare function formatDuration(startedAt: string): string;
207
+ /**
208
+ * Check if working context has any data
209
+ */
210
+ export declare function hasWorkingContext(context: WorkingContext): boolean;
211
+ /**
212
+ * Check if session has any activity
213
+ */
214
+ export declare function hasSessionActivity(session: ImplementationSession): boolean;
215
+ /**
216
+ * Calculate session progress percentage
217
+ */
218
+ export declare function calculateSessionProgress(session: ImplementationSession): number;
219
+ /**
220
+ * Transform API response to StatusResponse
221
+ */
222
+ export declare function transformApiResponse(contextResponse: WorkingContextApiResponse, ticketsResponse?: ListTicketsApiResponse): StatusResponse;
223
+ /**
224
+ * Dashboard data for comprehensive project analytics view
225
+ */
226
+ export interface DashboardData {
227
+ project: {
228
+ id: string;
229
+ name: string;
230
+ updatedAt: string;
231
+ };
232
+ specification: {
233
+ id: string;
234
+ title: string;
235
+ status: string;
236
+ };
237
+ /** Overall progress metrics */
238
+ overallProgress: OverallProgress;
239
+ /** Time-related metrics and projections */
240
+ timeMetrics: TimeMetrics;
241
+ /** Breakdown by specification */
242
+ specifications: SpecificationProgress[];
243
+ /** Epic status within current specification */
244
+ epics: EpicProgress[];
245
+ /** Ticket priority distribution */
246
+ priorityDistribution: PriorityDistribution;
247
+ /** Ticket complexity distribution */
248
+ complexityDistribution: ComplexityDistribution;
249
+ /** Active implementation session (if any) */
250
+ session?: DashboardSession;
251
+ /** Next actionable tickets */
252
+ nextActionable: NextActionableTicket[];
253
+ /** Blocked tickets */
254
+ blockers: BlockerInfo[];
255
+ /** Failed tickets */
256
+ failedTickets: FailedTicketInfo[];
257
+ }
258
+ /**
259
+ * Overall progress metrics
260
+ */
261
+ export interface OverallProgress {
262
+ total: number;
263
+ completed: number;
264
+ inProgress: number;
265
+ pending: number;
266
+ failed: number;
267
+ blocked: number;
268
+ percentComplete: number;
269
+ }
270
+ /**
271
+ * Time metrics and projections
272
+ */
273
+ export interface TimeMetrics {
274
+ estimatedHours: number;
275
+ actualHours: number;
276
+ remainingHours: number;
277
+ velocityPerDay: number;
278
+ avgHoursPerTicket: number;
279
+ onTrack: boolean;
280
+ estimatedCompletion: string;
281
+ }
282
+ /**
283
+ * Specification progress summary
284
+ */
285
+ export interface SpecificationProgress {
286
+ id: string;
287
+ title: string;
288
+ completed: number;
289
+ total: number;
290
+ percentComplete: number;
291
+ }
292
+ /**
293
+ * Epic progress summary
294
+ */
295
+ export interface EpicProgress {
296
+ id: string;
297
+ code: string;
298
+ title: string;
299
+ completed: number;
300
+ total: number;
301
+ percentComplete: number;
302
+ }
303
+ /**
304
+ * Ticket priority distribution
305
+ */
306
+ export interface PriorityDistribution {
307
+ critical: number;
308
+ high: number;
309
+ medium: number;
310
+ low: number;
311
+ }
312
+ /**
313
+ * Ticket complexity distribution
314
+ */
315
+ export interface ComplexityDistribution {
316
+ xs: number;
317
+ s: number;
318
+ m: number;
319
+ l: number;
320
+ xl: number;
321
+ }
322
+ /**
323
+ * Dashboard session info
324
+ */
325
+ export interface DashboardSession {
326
+ status: string;
327
+ duration: string;
328
+ mode: string;
329
+ currentTicket?: {
330
+ id: string;
331
+ title: string;
332
+ ticketNumber: number;
333
+ };
334
+ completed: number;
335
+ failed: number;
336
+ skipped: number;
337
+ total: number;
338
+ }
339
+ /**
340
+ * Next actionable ticket in dashboard
341
+ */
342
+ export interface NextActionableTicket {
343
+ id: string;
344
+ ticketNumber: number;
345
+ title: string;
346
+ priority: string;
347
+ complexity: string;
348
+ estimatedHours: number;
349
+ }
350
+ /**
351
+ * Blocker information
352
+ */
353
+ export interface BlockerInfo {
354
+ ticket: {
355
+ id: string;
356
+ ticketNumber: number;
357
+ title: string;
358
+ };
359
+ blockedBy?: {
360
+ id: string;
361
+ ticketNumber: number;
362
+ title: string;
363
+ status: string;
364
+ };
365
+ reason?: string;
366
+ }
367
+ /**
368
+ * Failed ticket information
369
+ */
370
+ export interface FailedTicketInfo {
371
+ ticket: {
372
+ id: string;
373
+ ticketNumber: number;
374
+ title: string;
375
+ };
376
+ reason?: string;
377
+ }
378
+ /**
379
+ * Transform API response to DashboardData
380
+ */
381
+ export declare function transformToDashboardData(contextResponse: WorkingContextApiResponse, dashboardResponse: any): DashboardData;
382
+ //# sourceMappingURL=status.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.types.ts"],"names":[],"mappings":"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"}