@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,326 @@
1
+ /**
2
+ * Init Command
3
+ *
4
+ * Initializes SpecForge for a project by creating config files
5
+ * and linking to a SpecForge project and specification.
6
+ */
7
+ import inquirer from 'inquirer';
8
+ import ora from 'ora';
9
+ import fs from 'node:fs';
10
+ import { resolveConfig, saveProjectConfig, saveMcpConfig, addToGitignore, getConfigPaths, } from '../config/index.js';
11
+ import { withErrorHandler, CliError, NetworkError, ValidationError } from '../middleware/error-handler.js';
12
+ import { printSuccess, printWarning, printBlank, printHeader, printField, printHint, } from '../ui/output.js';
13
+ import { colors } from '../ui/colors.js';
14
+ import { ApiClient } from '../../client/api-client.js';
15
+ import { FORMAT_CHOICES, DEFAULT_FORMAT, } from './init.types.js';
16
+ /**
17
+ * Fetch user's projects from API
18
+ */
19
+ async function fetchProjects(client) {
20
+ const response = await client.call('list_projects', {});
21
+ return response.projects || [];
22
+ }
23
+ /**
24
+ * Fetch specifications for a project
25
+ */
26
+ async function fetchSpecifications(client, projectId) {
27
+ const response = await client.call('list_specifications', { projectId });
28
+ return response.specifications || [];
29
+ }
30
+ /**
31
+ * Check if config files already exist
32
+ */
33
+ function checkExistingFiles() {
34
+ const paths = getConfigPaths();
35
+ const mcpConfig = fs.existsSync(paths.mcpConfig);
36
+ const projectConfig = fs.existsSync(paths.projectConfig);
37
+ return {
38
+ mcpConfig,
39
+ projectConfig,
40
+ anyExists: mcpConfig || projectConfig,
41
+ };
42
+ }
43
+ /**
44
+ * Build project choices for inquirer
45
+ */
46
+ function buildProjectChoices(projects) {
47
+ return projects.map((p) => ({
48
+ name: `${p.name}${p.specificationCount ? ` (${p.specificationCount} specs)` : ''}`,
49
+ value: p.id,
50
+ short: p.name,
51
+ }));
52
+ }
53
+ /**
54
+ * Build specification choices for inquirer
55
+ */
56
+ function buildSpecificationChoices(specs) {
57
+ const choices = specs.map((s) => {
58
+ const ticketInfo = s.ticketCount
59
+ ? ` - ${s.completedTicketCount || 0}/${s.ticketCount} tickets`
60
+ : '';
61
+ return {
62
+ name: `${s.title} [${s.status}]${ticketInfo}`,
63
+ value: s.id,
64
+ short: s.title,
65
+ };
66
+ });
67
+ // Add "none" option
68
+ choices.push({
69
+ name: colors.muted('(skip - select later)'),
70
+ value: undefined,
71
+ });
72
+ return choices;
73
+ }
74
+ /**
75
+ * Prompt user to select a project
76
+ */
77
+ async function promptForProject(projects) {
78
+ const choices = buildProjectChoices(projects);
79
+ const { projectId } = await inquirer.prompt([
80
+ {
81
+ type: 'list',
82
+ name: 'projectId',
83
+ message: 'Select project for this directory:',
84
+ choices,
85
+ pageSize: 10,
86
+ },
87
+ ]);
88
+ const selected = projects.find((p) => p.id === projectId);
89
+ if (!selected) {
90
+ throw new CliError('Project selection failed');
91
+ }
92
+ return selected;
93
+ }
94
+ /**
95
+ * Prompt user to select a specification
96
+ */
97
+ async function promptForSpecification(specs) {
98
+ if (specs.length === 0) {
99
+ return undefined;
100
+ }
101
+ const choices = buildSpecificationChoices(specs);
102
+ const { specificationId } = await inquirer.prompt([
103
+ {
104
+ type: 'list',
105
+ name: 'specificationId',
106
+ message: 'Select default specification (optional):',
107
+ choices,
108
+ pageSize: 10,
109
+ },
110
+ ]);
111
+ if (!specificationId) {
112
+ return undefined;
113
+ }
114
+ return specs.find((s) => s.id === specificationId);
115
+ }
116
+ /**
117
+ * Prompt user to select output format
118
+ */
119
+ async function promptForFormat() {
120
+ const { format } = await inquirer.prompt([
121
+ {
122
+ type: 'list',
123
+ name: 'format',
124
+ message: 'Default output format:',
125
+ choices: FORMAT_CHOICES,
126
+ default: DEFAULT_FORMAT,
127
+ },
128
+ ]);
129
+ return format;
130
+ }
131
+ /**
132
+ * Validate project ID exists
133
+ */
134
+ function validateProjectId(projectId, projects) {
135
+ const project = projects.find((p) => p.id === projectId);
136
+ if (!project) {
137
+ const available = projects.map((p) => ` - ${p.id}: ${p.name}`).join('\n');
138
+ throw new ValidationError(`Project not found: ${projectId}`, `Available projects:\n${available}`);
139
+ }
140
+ return project;
141
+ }
142
+ /**
143
+ * Validate specification ID exists
144
+ */
145
+ function validateSpecificationId(specId, specs) {
146
+ const spec = specs.find((s) => s.id === specId);
147
+ if (!spec) {
148
+ const available = specs.map((s) => ` - ${s.id}: ${s.title}`).join('\n');
149
+ throw new ValidationError(`Specification not found: ${specId}`, `Available specifications:\n${available}`);
150
+ }
151
+ return spec;
152
+ }
153
+ /**
154
+ * Init command implementation
155
+ */
156
+ export async function initAction(options) {
157
+ // Check authentication
158
+ const config = resolveConfig();
159
+ if (!config.apiKey) {
160
+ throw new CliError('Not authenticated', 1, 'Run `specforge-mcp login` to authenticate first');
161
+ }
162
+ // Header
163
+ printBlank();
164
+ printHeader('SpecForge Project Setup');
165
+ console.log(colors.muted(`Using API key from ${config.sources.apiKey === 'env' ? 'environment' : '~/.specforge/config.json'}`));
166
+ printBlank();
167
+ // Check for existing files
168
+ const existing = checkExistingFiles();
169
+ if (existing.anyExists && !options.force) {
170
+ printWarning('Configuration files already exist:');
171
+ if (existing.mcpConfig) {
172
+ console.log(` ${colors.muted('•')} .mcp.json`);
173
+ }
174
+ if (existing.projectConfig) {
175
+ console.log(` ${colors.muted('•')} .specforge.json`);
176
+ }
177
+ printBlank();
178
+ console.log(`Use ${colors.primary('--force')} to overwrite existing files.`);
179
+ printBlank();
180
+ return;
181
+ }
182
+ // Create API client
183
+ const client = new ApiClient({
184
+ apiKey: config.apiKey,
185
+ apiUrl: config.apiUrl,
186
+ debug: config.debug,
187
+ });
188
+ // Fetch projects
189
+ const spinner = ora({
190
+ text: 'Connecting to SpecForge...',
191
+ color: 'cyan',
192
+ }).start();
193
+ let projects;
194
+ try {
195
+ projects = await fetchProjects(client);
196
+ spinner.succeed('Connected to SpecForge');
197
+ }
198
+ catch (error) {
199
+ spinner.fail('Connection failed');
200
+ const message = error instanceof Error ? error.message : String(error);
201
+ if (message.includes('401') || message.includes('Unauthorized')) {
202
+ throw new CliError('Authentication failed', 1, 'Your API key may be invalid. Run `specforge-mcp login` to re-authenticate');
203
+ }
204
+ throw new NetworkError(`Failed to fetch projects: ${message}`);
205
+ }
206
+ // Handle no projects
207
+ if (projects.length === 0) {
208
+ printBlank();
209
+ printWarning('No projects found in your account.');
210
+ console.log(`Create a project at ${colors.primary.underline('https://specforge.com.br')} first.`);
211
+ printBlank();
212
+ return;
213
+ }
214
+ // Select project
215
+ let selectedProject;
216
+ if (options.project) {
217
+ selectedProject = validateProjectId(options.project, projects);
218
+ console.log(colors.muted(`Using project: ${selectedProject.name}`));
219
+ }
220
+ else {
221
+ selectedProject = await promptForProject(projects);
222
+ }
223
+ // Fetch specifications for selected project
224
+ const specsSpinner = ora({
225
+ text: 'Fetching specifications...',
226
+ color: 'cyan',
227
+ }).start();
228
+ let specs;
229
+ try {
230
+ specs = await fetchSpecifications(client, selectedProject.id);
231
+ specsSpinner.succeed(`Found ${specs.length} specification(s)`);
232
+ }
233
+ catch (error) {
234
+ specsSpinner.fail('Failed to fetch specifications');
235
+ throw new NetworkError(`Failed to fetch specifications: ${error instanceof Error ? error.message : String(error)}`);
236
+ }
237
+ // Select specification
238
+ let selectedSpec;
239
+ if (options.spec) {
240
+ if (specs.length === 0) {
241
+ printWarning(`No specifications found. Ignoring --spec flag.`);
242
+ }
243
+ else {
244
+ selectedSpec = validateSpecificationId(options.spec, specs);
245
+ console.log(colors.muted(`Using specification: ${selectedSpec.title}`));
246
+ }
247
+ }
248
+ else if (specs.length > 0) {
249
+ selectedSpec = await promptForSpecification(specs);
250
+ }
251
+ // Select format
252
+ let selectedFormat;
253
+ if (options.format) {
254
+ if (options.format !== 'json' && options.format !== 'toon') {
255
+ throw new ValidationError(`Invalid format: ${options.format}`, 'Valid formats are: json, toon');
256
+ }
257
+ selectedFormat = options.format;
258
+ console.log(colors.muted(`Using format: ${selectedFormat}`));
259
+ }
260
+ else {
261
+ selectedFormat = await promptForFormat();
262
+ }
263
+ // Generate and save config files
264
+ printBlank();
265
+ // Save .mcp.json
266
+ saveMcpConfig();
267
+ printSuccess('Created .mcp.json');
268
+ // Save .specforge.json
269
+ saveProjectConfig({
270
+ projectId: selectedProject.id,
271
+ specificationId: selectedSpec?.id,
272
+ format: selectedFormat,
273
+ autoSetContext: true,
274
+ });
275
+ printSuccess('Created .specforge.json');
276
+ // Add to .gitignore
277
+ const addedToGitignore = addToGitignore('.specforge.json');
278
+ if (addedToGitignore) {
279
+ printSuccess('Added .specforge.json to .gitignore');
280
+ }
281
+ // Success summary
282
+ printBlank();
283
+ printHeader('Configuration Complete');
284
+ printBlank();
285
+ printField('Project', selectedProject.name);
286
+ if (selectedSpec) {
287
+ printField('Specification', selectedSpec.title);
288
+ }
289
+ printField('Format', selectedFormat);
290
+ printField('Auto-context', 'enabled');
291
+ printBlank();
292
+ console.log(colors.warning('Restart Claude Code to activate SpecForge MCP.'));
293
+ printBlank();
294
+ // Next steps
295
+ console.log(colors.bold('Next steps:'));
296
+ printHint('specforge-mcp status', 'verify your configuration');
297
+ printHint('specforge-mcp tickets', 'view tickets for this specification');
298
+ printBlank();
299
+ }
300
+ /**
301
+ * Register init command with Commander
302
+ */
303
+ export function registerInitCommand(program) {
304
+ program
305
+ .command('init')
306
+ .description('Initialize SpecForge for this project')
307
+ .option('--project <id>', 'Project ID (non-interactive)')
308
+ .option('--spec <id>', 'Specification ID (non-interactive)')
309
+ .option('--format <format>', 'Output format: json or toon (default: toon)')
310
+ .option('-f, --force', 'Overwrite existing configuration files')
311
+ .addHelpText('after', `
312
+ Examples:
313
+ $ specforge-mcp init # Interactive setup
314
+ $ specforge-mcp init --project proj_abc123 # Set project non-interactively
315
+ $ specforge-mcp init --project proj_abc --spec spec_xyz --format toon
316
+ $ specforge-mcp init --force # Overwrite existing config
317
+
318
+ This command creates:
319
+ .mcp.json - Claude Code MCP server configuration
320
+ .specforge.json - Project-specific SpecForge settings
321
+
322
+ After running init, restart Claude Code to activate the MCP server.
323
+ `)
324
+ .action(withErrorHandler(initAction));
325
+ }
326
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Init Command Types
3
+ *
4
+ * Type definitions for the init command including options,
5
+ * API responses, and selection interfaces.
6
+ */
7
+ /**
8
+ * Command line options for init command
9
+ */
10
+ export interface InitOptions {
11
+ /** Project ID for non-interactive mode */
12
+ project?: string;
13
+ /** Specification ID for non-interactive mode */
14
+ spec?: string;
15
+ /** Output format preference */
16
+ format?: 'json' | 'toon';
17
+ /** Force overwrite existing config files */
18
+ force?: boolean;
19
+ }
20
+ /**
21
+ * Project returned from list_projects API call
22
+ */
23
+ export interface Project {
24
+ /** Unique project identifier */
25
+ id: string;
26
+ /** Human-readable project name */
27
+ name: string;
28
+ /** Optional description */
29
+ description?: string;
30
+ /** Number of specifications in this project */
31
+ specificationCount?: number;
32
+ /** Creation timestamp */
33
+ createdAt?: string;
34
+ /** Last update timestamp */
35
+ updatedAt?: string;
36
+ }
37
+ /**
38
+ * Specification returned from list_specifications API call
39
+ */
40
+ export interface Specification {
41
+ /** Unique specification identifier */
42
+ id: string;
43
+ /** Specification title */
44
+ title: string;
45
+ /** Current status (draft, ready, in_progress, completed) */
46
+ status: SpecificationStatus;
47
+ /** Number of tickets in this specification */
48
+ ticketCount?: number;
49
+ /** Number of completed tickets */
50
+ completedTicketCount?: number;
51
+ /** Optional description */
52
+ description?: string;
53
+ /** Creation timestamp */
54
+ createdAt?: string;
55
+ /** Last update timestamp */
56
+ updatedAt?: string;
57
+ }
58
+ /**
59
+ * Specification status values
60
+ */
61
+ export type SpecificationStatus = 'draft' | 'ready' | 'in_progress' | 'completed' | 'archived';
62
+ /**
63
+ * API response for list_projects call
64
+ */
65
+ export interface ListProjectsResponse {
66
+ /** List of user's projects */
67
+ projects: Project[];
68
+ /** Total count (for pagination) */
69
+ total?: number;
70
+ }
71
+ /**
72
+ * API response for list_specifications call
73
+ */
74
+ export interface ListSpecificationsResponse {
75
+ /** List of specifications for the project */
76
+ specifications: Specification[];
77
+ /** Total count (for pagination) */
78
+ total?: number;
79
+ }
80
+ /**
81
+ * User's selections during init flow
82
+ */
83
+ export interface InitSelections {
84
+ /** Selected project */
85
+ project: Project;
86
+ /** Selected specification (optional) */
87
+ specification?: Specification;
88
+ /** Selected output format */
89
+ format: 'json' | 'toon';
90
+ }
91
+ /**
92
+ * Result of checking existing config files
93
+ */
94
+ export interface ExistingFilesCheck {
95
+ /** Whether .mcp.json exists */
96
+ mcpConfig: boolean;
97
+ /** Whether .specforge.json exists */
98
+ projectConfig: boolean;
99
+ /** Whether any file exists */
100
+ anyExists: boolean;
101
+ }
102
+ /**
103
+ * Inquirer choice format for project selection
104
+ */
105
+ export interface ProjectChoice {
106
+ /** Display name */
107
+ name: string;
108
+ /** Project ID value */
109
+ value: string;
110
+ /** Short name (optional) */
111
+ short?: string;
112
+ }
113
+ /**
114
+ * Inquirer choice format for specification selection
115
+ */
116
+ export interface SpecificationChoice {
117
+ /** Display name */
118
+ name: string;
119
+ /** Specification ID value (undefined for "none" option) */
120
+ value: string | undefined;
121
+ /** Short name (optional) */
122
+ short?: string;
123
+ }
124
+ /**
125
+ * Inquirer choice format for format selection
126
+ */
127
+ export interface FormatChoice {
128
+ /** Display name */
129
+ name: string;
130
+ /** Format value */
131
+ value: 'json' | 'toon';
132
+ }
133
+ /**
134
+ * Format display names with descriptions
135
+ */
136
+ export declare const FORMAT_CHOICES: FormatChoice[];
137
+ /**
138
+ * Default format selection
139
+ */
140
+ export declare const DEFAULT_FORMAT: 'json' | 'toon';
141
+ //# sourceMappingURL=init.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Init Command Types
3
+ *
4
+ * Type definitions for the init command including options,
5
+ * API responses, and selection interfaces.
6
+ */
7
+ /**
8
+ * Format display names with descriptions
9
+ */
10
+ export const FORMAT_CHOICES = [
11
+ {
12
+ name: 'toon (recommended - 44% fewer tokens)',
13
+ value: 'toon',
14
+ },
15
+ {
16
+ name: 'json (standard JSON format)',
17
+ value: 'json',
18
+ },
19
+ ];
20
+ /**
21
+ * Default format selection
22
+ */
23
+ export const DEFAULT_FORMAT = 'toon';
24
+ //# sourceMappingURL=init.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.types.js","sourceRoot":"","sources":["../../../src/cli/commands/init.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0KH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C;QACE,IAAI,EAAE,uCAAuC;QAC7C,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,MAAM;KACd;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB,MAAM,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Login Command
3
+ *
4
+ * Authenticates users with their SpecForge API key.
5
+ * Supports both interactive (masked input) and non-interactive (--api-key flag) modes.
6
+ */
7
+ import { Command } from 'commander';
8
+ /**
9
+ * Login command options
10
+ */
11
+ export interface LoginOptions {
12
+ /** API key provided via --api-key flag */
13
+ apiKey?: string;
14
+ /** Force re-authentication even if already logged in */
15
+ force?: boolean;
16
+ }
17
+ /**
18
+ * User information returned from API validation
19
+ */
20
+ export interface UserInfo {
21
+ /** User's email address */
22
+ email: string;
23
+ /** User's display name */
24
+ name?: string;
25
+ /** User ID */
26
+ userId?: string;
27
+ }
28
+ /**
29
+ * Login command implementation
30
+ *
31
+ * @param options - Command options
32
+ */
33
+ export declare function loginAction(options: LoginOptions): Promise<void>;
34
+ /**
35
+ * Register login command with Commander
36
+ *
37
+ * @param program - Commander program instance
38
+ */
39
+ export declare function registerLoginCommand(program: Command): void;
40
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAuGD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEtE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB3D"}