@proletariat/cli 0.3.93 → 0.3.94

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 (374) hide show
  1. package/dist/commands/action/create.d.ts +1 -1
  2. package/dist/commands/action/delete.d.ts +1 -1
  3. package/dist/commands/action/index.d.ts +1 -1
  4. package/dist/commands/action/list.d.ts +1 -1
  5. package/dist/commands/action/run.d.ts +1 -1
  6. package/dist/commands/action/show.d.ts +1 -1
  7. package/dist/commands/action/update.d.ts +1 -1
  8. package/dist/commands/agent/cleanup.d.ts +1 -1
  9. package/dist/commands/agent/gc.d.ts +1 -1
  10. package/dist/commands/agent/index.d.ts +1 -1
  11. package/dist/commands/agent/list.d.ts +1 -1
  12. package/dist/commands/agent/login.d.ts +1 -1
  13. package/dist/commands/agent/rebuild.d.ts +1 -1
  14. package/dist/commands/agent/remove.d.ts +1 -1
  15. package/dist/commands/agent/restart.d.ts +1 -1
  16. package/dist/commands/agent/shell.d.ts +1 -1
  17. package/dist/commands/agent/staff/index.d.ts +1 -1
  18. package/dist/commands/agent/staff/remove.d.ts +1 -1
  19. package/dist/commands/agent/status.d.ts +1 -1
  20. package/dist/commands/agent/visit.d.ts +1 -1
  21. package/dist/commands/asana/import.d.ts +1 -1
  22. package/dist/commands/branch/create.d.ts +1 -1
  23. package/dist/commands/branch/index.d.ts +1 -1
  24. package/dist/commands/branch/list.d.ts +1 -1
  25. package/dist/commands/branch/validate.d.ts +1 -1
  26. package/dist/commands/branch/where.d.ts +1 -1
  27. package/dist/commands/config/index.js +2 -2
  28. package/dist/commands/config/index.js.map +1 -1
  29. package/dist/commands/diet.d.ts +1 -1
  30. package/dist/commands/docker/index.js +2 -0
  31. package/dist/commands/docker/index.js.map +1 -1
  32. package/dist/commands/docker/rebuild-cache.d.ts +12 -0
  33. package/dist/commands/docker/rebuild-cache.js +144 -0
  34. package/dist/commands/docker/rebuild-cache.js.map +1 -0
  35. package/dist/commands/execution/config.d.ts +1 -1
  36. package/dist/commands/execution/index.d.ts +1 -1
  37. package/dist/commands/execution/list.d.ts +1 -1
  38. package/dist/commands/execution/logs.d.ts +1 -1
  39. package/dist/commands/execution/stop.d.ts +1 -1
  40. package/dist/commands/execution/view.d.ts +1 -1
  41. package/dist/commands/hook/export.d.ts +1 -1
  42. package/dist/commands/hook/fire.d.ts +1 -1
  43. package/dist/commands/hook/index.d.ts +1 -1
  44. package/dist/commands/hook/list.d.ts +1 -1
  45. package/dist/commands/hook/preset.d.ts +1 -1
  46. package/dist/commands/linear/auth.d.ts +1 -1
  47. package/dist/commands/linear/connect.d.ts +1 -1
  48. package/dist/commands/linear/import.d.ts +1 -1
  49. package/dist/commands/linear/status.d.ts +1 -1
  50. package/dist/commands/linear/sync.d.ts +1 -1
  51. package/dist/commands/mcp-server.d.ts +8 -2
  52. package/dist/commands/mcp-server.js +15 -28
  53. package/dist/commands/mcp-server.js.map +1 -1
  54. package/dist/commands/monday/connect.d.ts +1 -1
  55. package/dist/commands/monday/sync.d.ts +1 -1
  56. package/dist/commands/orchestrate/index.d.ts +1 -1
  57. package/dist/commands/orchestrator/index.d.ts +1 -1
  58. package/dist/commands/orchestrator/start.d.ts +3 -3
  59. package/dist/commands/orchestrator/start.js +38 -40
  60. package/dist/commands/orchestrator/start.js.map +1 -1
  61. package/dist/commands/pr/checks.d.ts +1 -1
  62. package/dist/commands/pr/close.d.ts +1 -1
  63. package/dist/commands/pr/create.d.ts +1 -1
  64. package/dist/commands/pr/index.d.ts +1 -1
  65. package/dist/commands/pr/link.d.ts +1 -1
  66. package/dist/commands/pr/list.d.ts +1 -1
  67. package/dist/commands/pr/merge.d.ts +1 -1
  68. package/dist/commands/pr/status.d.ts +1 -1
  69. package/dist/commands/pull.d.ts +1 -1
  70. package/dist/commands/repo/add.d.ts +1 -1
  71. package/dist/commands/repo/create.d.ts +1 -1
  72. package/dist/commands/repo/fix-remotes.d.ts +1 -1
  73. package/dist/commands/repo/index.d.ts +1 -1
  74. package/dist/commands/repo/list.d.ts +1 -1
  75. package/dist/commands/repo/remove.d.ts +1 -1
  76. package/dist/commands/repo/view.d.ts +1 -1
  77. package/dist/commands/session/attach.d.ts +1 -1
  78. package/dist/commands/session/cleanup.d.ts +1 -1
  79. package/dist/commands/session/create.d.ts +1 -1
  80. package/dist/commands/session/exec.d.ts +1 -1
  81. package/dist/commands/session/health.d.ts +1 -1
  82. package/dist/commands/session/index.d.ts +1 -1
  83. package/dist/commands/session/inspect.d.ts +1 -1
  84. package/dist/commands/session/list.d.ts +1 -1
  85. package/dist/commands/session/peek.d.ts +1 -1
  86. package/dist/commands/session/prune.d.ts +1 -1
  87. package/dist/commands/session/report.d.ts +1 -1
  88. package/dist/commands/session/restart.d.ts +1 -1
  89. package/dist/commands/shortcut/connect.d.ts +1 -1
  90. package/dist/commands/support/logs.d.ts +1 -1
  91. package/dist/commands/ticket/create.d.ts +1 -1
  92. package/dist/commands/ticket/delete.d.ts +1 -1
  93. package/dist/commands/ticket/edit.d.ts +1 -1
  94. package/dist/commands/ticket/index.d.ts +1 -1
  95. package/dist/commands/ticket/index.js +6 -36
  96. package/dist/commands/ticket/index.js.map +1 -1
  97. package/dist/commands/ticket/list.d.ts +1 -1
  98. package/dist/commands/ticket/move.d.ts +1 -1
  99. package/dist/commands/ticket/show.d.ts +8 -7
  100. package/dist/commands/ticket/show.js +101 -8
  101. package/dist/commands/ticket/show.js.map +1 -1
  102. package/dist/commands/ticket/update.d.ts +1 -1
  103. package/dist/commands/trello/configure.d.ts +1 -1
  104. package/dist/commands/trello/import.d.ts +1 -1
  105. package/dist/commands/trello/sync.d.ts +1 -1
  106. package/dist/commands/work/asana.d.ts +1 -1
  107. package/dist/commands/work/complete.d.ts +1 -1
  108. package/dist/commands/work/groom.d.ts +1 -1
  109. package/dist/commands/work/hooks/add.d.ts +1 -1
  110. package/dist/commands/work/hooks/index.d.ts +1 -1
  111. package/dist/commands/work/hooks/list.d.ts +1 -1
  112. package/dist/commands/work/hooks/remove.d.ts +1 -1
  113. package/dist/commands/work/hooks/toggle.d.ts +1 -1
  114. package/dist/commands/work/implement.d.ts +1 -1
  115. package/dist/commands/work/index.d.ts +1 -1
  116. package/dist/commands/work/jira.d.ts +1 -1
  117. package/dist/commands/work/linear.d.ts +1 -1
  118. package/dist/commands/work/peek.d.ts +1 -1
  119. package/dist/commands/work/ready.d.ts +1 -1
  120. package/dist/commands/work/rebase.d.ts +1 -1
  121. package/dist/commands/work/resolve.d.ts +1 -1
  122. package/dist/commands/work/review.d.ts +1 -1
  123. package/dist/commands/work/ship.d.ts +1 -1
  124. package/dist/commands/work/shortcut.d.ts +1 -1
  125. package/dist/commands/work/source/set.d.ts +1 -1
  126. package/dist/commands/work/source.d.ts +1 -1
  127. package/dist/commands/work/spawn.d.ts +1 -1
  128. package/dist/commands/work/start.d.ts +1 -1
  129. package/dist/commands/work/status.d.ts +1 -1
  130. package/dist/commands/work/stop.d.ts +1 -1
  131. package/dist/commands/work/watch.d.ts +1 -1
  132. package/dist/hooks/init.js +1 -1
  133. package/dist/hooks/init.js.map +1 -1
  134. package/dist/lib/asana/config.js +13 -7
  135. package/dist/lib/asana/config.js.map +1 -1
  136. package/dist/lib/clickup/client.d.ts +92 -0
  137. package/dist/lib/clickup/client.js +150 -0
  138. package/dist/lib/clickup/client.js.map +1 -0
  139. package/dist/lib/clickup/config.d.ts +41 -0
  140. package/dist/lib/clickup/config.js +104 -0
  141. package/dist/lib/clickup/config.js.map +1 -0
  142. package/dist/lib/clickup/index.d.ts +4 -0
  143. package/dist/lib/clickup/index.js +4 -0
  144. package/dist/lib/clickup/index.js.map +1 -0
  145. package/dist/lib/clickup/types.d.ts +104 -0
  146. package/dist/lib/clickup/types.js +34 -0
  147. package/dist/lib/clickup/types.js.map +1 -0
  148. package/dist/lib/database/credential-store.d.ts +64 -0
  149. package/dist/lib/database/credential-store.js +306 -0
  150. package/dist/lib/database/credential-store.js.map +1 -0
  151. package/dist/lib/database/index.d.ts +1 -0
  152. package/dist/lib/database/index.js +2 -0
  153. package/dist/lib/database/index.js.map +1 -1
  154. package/dist/lib/database/pmo-bootstrap.d.ts +7 -0
  155. package/dist/lib/database/pmo-bootstrap.js +45 -20
  156. package/dist/lib/database/pmo-bootstrap.js.map +1 -1
  157. package/dist/lib/database/workspace.js +4 -0
  158. package/dist/lib/database/workspace.js.map +1 -1
  159. package/dist/lib/execution/devcontainer.js +51 -0
  160. package/dist/lib/execution/devcontainer.js.map +1 -1
  161. package/dist/lib/execution/runners/docker-management.d.ts +23 -0
  162. package/dist/lib/execution/runners/docker-management.js +99 -7
  163. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  164. package/dist/lib/execution/session-utils.d.ts +4 -0
  165. package/dist/lib/execution/session-utils.js +34 -24
  166. package/dist/lib/execution/session-utils.js.map +1 -1
  167. package/dist/lib/execution/types.js +1 -1
  168. package/dist/lib/external-issues/types.d.ts +3 -3
  169. package/dist/lib/external-issues/types.js +1 -1
  170. package/dist/lib/external-issues/types.js.map +1 -1
  171. package/dist/lib/jira/config.js +10 -4
  172. package/dist/lib/jira/config.js.map +1 -1
  173. package/dist/lib/linear/config.js +13 -8
  174. package/dist/lib/linear/config.js.map +1 -1
  175. package/dist/lib/mcp/generator.d.ts +26 -0
  176. package/dist/lib/mcp/generator.js +219 -0
  177. package/dist/lib/mcp/generator.js.map +1 -0
  178. package/dist/lib/mcp/index.d.ts +1 -0
  179. package/dist/lib/mcp/index.js +1 -0
  180. package/dist/lib/mcp/index.js.map +1 -1
  181. package/dist/lib/mcp/tools/index.d.ts +0 -11
  182. package/dist/lib/mcp/tools/index.js +0 -11
  183. package/dist/lib/mcp/tools/index.js.map +1 -1
  184. package/dist/lib/mcp/tools/overrides/index.d.ts +23 -0
  185. package/dist/lib/mcp/tools/overrides/index.js +30 -0
  186. package/dist/lib/mcp/tools/overrides/index.js.map +1 -0
  187. package/dist/lib/mcp/tools/overrides/tmux.d.ts +11 -0
  188. package/dist/lib/mcp/tools/overrides/tmux.js +184 -0
  189. package/dist/lib/mcp/tools/overrides/tmux.js.map +1 -0
  190. package/dist/lib/mcp/tools/overrides/work-start.d.ts +12 -0
  191. package/dist/lib/mcp/tools/overrides/work-start.js +108 -0
  192. package/dist/lib/mcp/tools/overrides/work-start.js.map +1 -0
  193. package/dist/lib/mcp/tools/ticket.js +10 -48
  194. package/dist/lib/mcp/tools/ticket.js.map +1 -1
  195. package/dist/lib/monday/config.js +11 -5
  196. package/dist/lib/monday/config.js.map +1 -1
  197. package/dist/lib/pmo/base-command.d.ts +20 -152
  198. package/dist/lib/pmo/base-command.js +32 -198
  199. package/dist/lib/pmo/base-command.js.map +1 -1
  200. package/dist/lib/pmo/index.d.ts +1 -0
  201. package/dist/lib/pmo/index.js +3 -0
  202. package/dist/lib/pmo/index.js.map +1 -1
  203. package/dist/lib/pmo/storage/base.d.ts +0 -18
  204. package/dist/lib/pmo/storage/base.js +0 -231
  205. package/dist/lib/pmo/storage/base.js.map +1 -1
  206. package/dist/lib/pmo/storage/index.d.ts +1 -76
  207. package/dist/lib/pmo/storage/index.js +1 -215
  208. package/dist/lib/pmo/storage/index.js.map +1 -1
  209. package/dist/lib/pmo/storage/tickets.d.ts +2 -2
  210. package/dist/lib/pmo/storage/tickets.js +4 -34
  211. package/dist/lib/pmo/storage/tickets.js.map +1 -1
  212. package/dist/lib/pmo/types.d.ts +0 -37
  213. package/dist/lib/providers/clickup-provider.d.ts +28 -0
  214. package/dist/lib/providers/clickup-provider.js +353 -0
  215. package/dist/lib/providers/clickup-provider.js.map +1 -0
  216. package/dist/lib/providers/resolver.d.ts +1 -1
  217. package/dist/lib/providers/resolver.js +16 -5
  218. package/dist/lib/providers/resolver.js.map +1 -1
  219. package/dist/lib/providers/types.d.ts +1 -1
  220. package/dist/lib/runners/claude-code-runner.js +13 -4
  221. package/dist/lib/runners/claude-code-runner.js.map +1 -1
  222. package/dist/lib/runtime-command.d.ts +219 -0
  223. package/dist/lib/runtime-command.js +320 -0
  224. package/dist/lib/runtime-command.js.map +1 -0
  225. package/dist/lib/shortcut/config.js +13 -7
  226. package/dist/lib/shortcut/config.js.map +1 -1
  227. package/dist/lib/trello/config.js +17 -12
  228. package/dist/lib/trello/config.js.map +1 -1
  229. package/dist/lib/work-lifecycle/events.d.ts +1 -1
  230. package/dist/lib/work-source/config.d.ts +1 -1
  231. package/dist/lib/work-source/config.js +11 -1
  232. package/dist/lib/work-source/config.js.map +1 -1
  233. package/dist/lib/work-source/provider-sources.js +6 -1
  234. package/dist/lib/work-source/provider-sources.js.map +1 -1
  235. package/oclif.manifest.json +3015 -4827
  236. package/package.json +1 -1
  237. package/dist/commands/board/index.d.ts +0 -21
  238. package/dist/commands/board/index.js +0 -263
  239. package/dist/commands/board/index.js.map +0 -1
  240. package/dist/commands/board/view.d.ts +0 -15
  241. package/dist/commands/board/view.js +0 -137
  242. package/dist/commands/board/view.js.map +0 -1
  243. package/dist/commands/board/watch.d.ts +0 -15
  244. package/dist/commands/board/watch.js +0 -59
  245. package/dist/commands/board/watch.js.map +0 -1
  246. package/dist/commands/dashboard/index.d.ts +0 -14
  247. package/dist/commands/dashboard/index.js +0 -117
  248. package/dist/commands/dashboard/index.js.map +0 -1
  249. package/dist/commands/dashboard.d.ts +0 -38
  250. package/dist/commands/dashboard.js +0 -353
  251. package/dist/commands/dashboard.js.map +0 -1
  252. package/dist/commands/pmo/init.d.ts +0 -28
  253. package/dist/commands/pmo/init.js +0 -410
  254. package/dist/commands/pmo/init.js.map +0 -1
  255. package/dist/commands/project/archive.d.ts +0 -18
  256. package/dist/commands/project/archive.js +0 -79
  257. package/dist/commands/project/archive.js.map +0 -1
  258. package/dist/commands/project/create.d.ts +0 -24
  259. package/dist/commands/project/create.js +0 -191
  260. package/dist/commands/project/create.js.map +0 -1
  261. package/dist/commands/project/delete.d.ts +0 -18
  262. package/dist/commands/project/delete.js +0 -115
  263. package/dist/commands/project/delete.js.map +0 -1
  264. package/dist/commands/project/index.d.ts +0 -14
  265. package/dist/commands/project/index.js +0 -60
  266. package/dist/commands/project/index.js.map +0 -1
  267. package/dist/commands/project/list.d.ts +0 -16
  268. package/dist/commands/project/list.js +0 -115
  269. package/dist/commands/project/list.js.map +0 -1
  270. package/dist/commands/project/spec.d.ts +0 -19
  271. package/dist/commands/project/spec.js +0 -218
  272. package/dist/commands/project/spec.js.map +0 -1
  273. package/dist/commands/project/unarchive.d.ts +0 -17
  274. package/dist/commands/project/unarchive.js +0 -55
  275. package/dist/commands/project/unarchive.js.map +0 -1
  276. package/dist/commands/project/update.d.ts +0 -19
  277. package/dist/commands/project/update.js +0 -161
  278. package/dist/commands/project/update.js.map +0 -1
  279. package/dist/commands/project/view.d.ts +0 -17
  280. package/dist/commands/project/view.js +0 -107
  281. package/dist/commands/project/view.js.map +0 -1
  282. package/dist/commands/ticket/bulk.d.ts +0 -14
  283. package/dist/commands/ticket/bulk.js +0 -141
  284. package/dist/commands/ticket/bulk.js.map +0 -1
  285. package/dist/commands/ticket/cancel.d.ts +0 -17
  286. package/dist/commands/ticket/cancel.js +0 -206
  287. package/dist/commands/ticket/cancel.js.map +0 -1
  288. package/dist/commands/ticket/category.d.ts +0 -15
  289. package/dist/commands/ticket/category.js +0 -64
  290. package/dist/commands/ticket/category.js.map +0 -1
  291. package/dist/commands/ticket/complete.d.ts +0 -17
  292. package/dist/commands/ticket/complete.js +0 -193
  293. package/dist/commands/ticket/complete.js.map +0 -1
  294. package/dist/commands/ticket/epic.d.ts +0 -21
  295. package/dist/commands/ticket/epic.js +0 -306
  296. package/dist/commands/ticket/epic.js.map +0 -1
  297. package/dist/commands/ticket/link/block.d.ts +0 -15
  298. package/dist/commands/ticket/link/block.js +0 -96
  299. package/dist/commands/ticket/link/block.js.map +0 -1
  300. package/dist/commands/ticket/link/duplicates.d.ts +0 -15
  301. package/dist/commands/ticket/link/duplicates.js +0 -96
  302. package/dist/commands/ticket/link/duplicates.js.map +0 -1
  303. package/dist/commands/ticket/link/index.d.ts +0 -14
  304. package/dist/commands/ticket/link/index.js +0 -99
  305. package/dist/commands/ticket/link/index.js.map +0 -1
  306. package/dist/commands/ticket/link/relates.d.ts +0 -15
  307. package/dist/commands/ticket/link/relates.js +0 -96
  308. package/dist/commands/ticket/link/relates.js.map +0 -1
  309. package/dist/commands/ticket/project.d.ts +0 -19
  310. package/dist/commands/ticket/project.js +0 -257
  311. package/dist/commands/ticket/project.js.map +0 -1
  312. package/dist/commands/ticket/reassign.d.ts +0 -20
  313. package/dist/commands/ticket/reassign.js +0 -340
  314. package/dist/commands/ticket/reassign.js.map +0 -1
  315. package/dist/commands/ticket/resolve.d.ts +0 -68
  316. package/dist/commands/ticket/resolve.js +0 -306
  317. package/dist/commands/ticket/resolve.js.map +0 -1
  318. package/dist/commands/ticket/spec.d.ts +0 -19
  319. package/dist/commands/ticket/spec.js +0 -260
  320. package/dist/commands/ticket/spec.js.map +0 -1
  321. package/dist/commands/ticket/status.d.ts +0 -14
  322. package/dist/commands/ticket/status.js +0 -84
  323. package/dist/commands/ticket/status.js.map +0 -1
  324. package/dist/commands/ticket/view.d.ts +0 -14
  325. package/dist/commands/ticket/view.js +0 -113
  326. package/dist/commands/ticket/view.js.map +0 -1
  327. package/dist/lib/mcp/tools/board.d.ts +0 -6
  328. package/dist/lib/mcp/tools/board.js +0 -190
  329. package/dist/lib/mcp/tools/board.js.map +0 -1
  330. package/dist/lib/mcp/tools/category.d.ts +0 -6
  331. package/dist/lib/mcp/tools/category.js +0 -85
  332. package/dist/lib/mcp/tools/category.js.map +0 -1
  333. package/dist/lib/mcp/tools/epic.d.ts +0 -6
  334. package/dist/lib/mcp/tools/epic.js +0 -184
  335. package/dist/lib/mcp/tools/epic.js.map +0 -1
  336. package/dist/lib/mcp/tools/label.d.ts +0 -6
  337. package/dist/lib/mcp/tools/label.js +0 -339
  338. package/dist/lib/mcp/tools/label.js.map +0 -1
  339. package/dist/lib/mcp/tools/phase.d.ts +0 -6
  340. package/dist/lib/mcp/tools/phase.js +0 -132
  341. package/dist/lib/mcp/tools/phase.js.map +0 -1
  342. package/dist/lib/mcp/tools/project.d.ts +0 -6
  343. package/dist/lib/mcp/tools/project.js +0 -197
  344. package/dist/lib/mcp/tools/project.js.map +0 -1
  345. package/dist/lib/mcp/tools/roadmap.d.ts +0 -6
  346. package/dist/lib/mcp/tools/roadmap.js +0 -124
  347. package/dist/lib/mcp/tools/roadmap.js.map +0 -1
  348. package/dist/lib/mcp/tools/status.d.ts +0 -6
  349. package/dist/lib/mcp/tools/status.js +0 -110
  350. package/dist/lib/mcp/tools/status.js.map +0 -1
  351. package/dist/lib/mcp/tools/template.d.ts +0 -6
  352. package/dist/lib/mcp/tools/template.js +0 -108
  353. package/dist/lib/mcp/tools/template.js.map +0 -1
  354. package/dist/lib/mcp/tools/view.d.ts +0 -6
  355. package/dist/lib/mcp/tools/view.js +0 -77
  356. package/dist/lib/mcp/tools/view.js.map +0 -1
  357. package/dist/lib/mcp/tools/workflow.d.ts +0 -6
  358. package/dist/lib/mcp/tools/workflow.js +0 -96
  359. package/dist/lib/mcp/tools/workflow.js.map +0 -1
  360. package/dist/lib/pmo/storage/categories.d.ts +0 -50
  361. package/dist/lib/pmo/storage/categories.js +0 -206
  362. package/dist/lib/pmo/storage/categories.js.map +0 -1
  363. package/dist/lib/pmo/storage/labels.d.ts +0 -55
  364. package/dist/lib/pmo/storage/labels.js +0 -347
  365. package/dist/lib/pmo/storage/labels.js.map +0 -1
  366. package/dist/lib/pmo/storage/phases.d.ts +0 -65
  367. package/dist/lib/pmo/storage/phases.js +0 -393
  368. package/dist/lib/pmo/storage/phases.js.map +0 -1
  369. package/dist/lib/pmo/storage/roadmaps.d.ts +0 -64
  370. package/dist/lib/pmo/storage/roadmaps.js +0 -373
  371. package/dist/lib/pmo/storage/roadmaps.js.map +0 -1
  372. package/dist/lib/pmo/storage/views.d.ts +0 -57
  373. package/dist/lib/pmo/storage/views.js +0 -456
  374. package/dist/lib/pmo/storage/views.js.map +0 -1
@@ -1,14 +0,0 @@
1
- import { PMOCommand } from '../../lib/pmo/index.js';
2
- export default class TicketBulk extends PMOCommand {
3
- static description: string;
4
- static examples: string[];
5
- static flags: {
6
- json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
- };
10
- protected getPMOOptions(): {
11
- promptIfMultiple: boolean;
12
- };
13
- execute(): Promise<void>;
14
- }
@@ -1,141 +0,0 @@
1
- import inquirer from 'inquirer';
2
- import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
3
- import { styles } from '../../lib/styles.js';
4
- import { shouldOutputJson, outputPromptAsJson, createMetadata, buildPromptConfig, } from '../../lib/prompt-json.js';
5
- export default class TicketBulk extends PMOCommand {
6
- static description = 'Manage tickets in bulk (interactive menu)';
7
- static examples = [
8
- '<%= config.bin %> <%= command.id %>',
9
- ];
10
- static flags = {
11
- ...pmoBaseFlags,
12
- };
13
- getPMOOptions() {
14
- return { promptIfMultiple: false };
15
- }
16
- async execute() {
17
- const { flags } = await this.parse(TicketBulk);
18
- // This command requires project context - store the projectId
19
- const projectId = await this.requireProject();
20
- // Check if JSON output mode is active
21
- const jsonMode = shouldOutputJson(flags);
22
- // Define choices with emojis for interactive mode, plain names for JSON
23
- const menuChoices = [
24
- { name: 'List all tickets', value: 'list', emoji: '📋', command: `prlt ticket list -P ${projectId} --format json` },
25
- { name: 'Move multiple tickets', value: 'move', emoji: '📦', command: `prlt ticket move -P ${projectId} --bulk --json` },
26
- { name: 'Complete multiple tickets', value: 'complete', emoji: '✅', command: `prlt ticket complete -P ${projectId} --bulk --json` },
27
- { name: 'Reassign tickets (change assignee)', value: 'reassign', emoji: '👤', command: `prlt ticket reassign -P ${projectId} --bulk --json` },
28
- { name: 'Link tickets to epic', value: 'epic', emoji: '🔗', command: `prlt ticket epic -P ${projectId} --bulk --json` },
29
- { name: 'Link tickets to spec', value: 'spec', emoji: '📄', command: `prlt ticket spec -P ${projectId} --bulk --json` },
30
- { name: 'Move tickets to project', value: 'project', emoji: '📁', command: `prlt ticket project -P ${projectId} --bulk --json` },
31
- { name: 'Update tickets (priority/category)', value: 'update', emoji: '✏️ ', command: `prlt ticket update -P ${projectId} --bulk --json` },
32
- { name: 'Delete multiple tickets', value: 'delete', emoji: '🗑️ ', command: `prlt ticket delete -P ${projectId} --bulk --json` },
33
- { name: 'Cancel', value: 'cancel', emoji: '', command: '' },
34
- ];
35
- const message = 'Ticket Management (Bulk Operations) - What would you like to do?';
36
- // In JSON mode, output action selection prompt (without emojis)
37
- if (jsonMode) {
38
- outputPromptAsJson(buildPromptConfig('list', 'action', message, menuChoices.map(c => ({ name: c.name, value: c.value, command: c.command }))), createMetadata('ticket bulk', flags));
39
- return;
40
- }
41
- this.log(styles.emphasis('🎫 ' + message.split(' - ')[0]));
42
- this.log('');
43
- // Helper to get choice with emoji by value
44
- const withEmoji = (value) => {
45
- const choice = menuChoices.find(c => c.value === value);
46
- return { name: choice.emoji ? `${choice.emoji} ${choice.name}` : choice.name, value: choice.value };
47
- };
48
- const { action } = await this.prompt([{
49
- type: 'list',
50
- name: 'action',
51
- message: 'What would you like to do?',
52
- choices: [
53
- withEmoji('list'),
54
- withEmoji('move'),
55
- withEmoji('complete'),
56
- new inquirer.Separator(),
57
- withEmoji('reassign'),
58
- withEmoji('epic'),
59
- withEmoji('spec'),
60
- withEmoji('project'),
61
- withEmoji('update'),
62
- new inquirer.Separator(),
63
- withEmoji('delete'),
64
- new inquirer.Separator(),
65
- withEmoji('cancel'),
66
- ]
67
- }], null);
68
- if (action === 'cancel') {
69
- this.log(styles.muted('Operation cancelled.'));
70
- return;
71
- }
72
- // Build args for the sub-command
73
- const projectArgs = ['--project', projectId, '--bulk'];
74
- try {
75
- this.log(styles.muted(`\nExecuting: ticket ${action} --bulk`));
76
- switch (action) {
77
- case 'list': {
78
- // List doesn't need bulk mode
79
- const { default: ListCommand } = await import('./list.js');
80
- const cmd = new ListCommand(['--project', projectId], this.config);
81
- await cmd.run();
82
- break;
83
- }
84
- case 'move': {
85
- const { default: MoveCommand } = await import('./move.js');
86
- const cmd = new MoveCommand(projectArgs, this.config);
87
- await cmd.run();
88
- break;
89
- }
90
- case 'delete': {
91
- const { default: DeleteCommand } = await import('./delete.js');
92
- const cmd = new DeleteCommand(projectArgs, this.config);
93
- await cmd.run();
94
- break;
95
- }
96
- case 'complete': {
97
- const { default: CompleteCommand } = await import('./complete.js');
98
- const cmd = new CompleteCommand(projectArgs, this.config);
99
- await cmd.run();
100
- break;
101
- }
102
- case 'reassign': {
103
- const { default: ReassignCommand } = await import('./reassign.js');
104
- const cmd = new ReassignCommand(projectArgs, this.config);
105
- await cmd.run();
106
- break;
107
- }
108
- case 'epic': {
109
- const { default: EpicCommand } = await import('./epic.js');
110
- const cmd = new EpicCommand(projectArgs, this.config);
111
- await cmd.run();
112
- break;
113
- }
114
- case 'spec': {
115
- const { default: SpecCommand } = await import('./spec.js');
116
- const cmd = new SpecCommand(projectArgs, this.config);
117
- await cmd.run();
118
- break;
119
- }
120
- case 'project': {
121
- const { default: ProjectCommand } = await import('./project.js');
122
- const cmd = new ProjectCommand(projectArgs, this.config);
123
- await cmd.run();
124
- break;
125
- }
126
- case 'update': {
127
- const { default: UpdateCommand } = await import('./update.js');
128
- const cmd = new UpdateCommand(projectArgs, this.config);
129
- await cmd.run();
130
- break;
131
- }
132
- default:
133
- this.error(`Unknown action: ${action}`);
134
- }
135
- }
136
- catch (error) {
137
- this.error(`Failed to execute ticket ${action}: ${error instanceof Error ? error.message : String(error)}`);
138
- }
139
- }
140
- }
141
- //# sourceMappingURL=bulk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../src/commands/ticket/bulk.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { PMOCommand } from '../../lib/pmo/index.js';
2
- export default class TicketCancel extends PMOCommand {
3
- static description: string;
4
- static examples: string[];
5
- static args: {
6
- ticketId: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
- };
8
- static flags: {
9
- bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- };
15
- execute(): Promise<void>;
16
- private executeBulk;
17
- }
@@ -1,206 +0,0 @@
1
- import { Args, Flags } from '@oclif/core';
2
- import { autoExportToBoard, PMOCommand, pmoBaseFlags, } from '../../lib/pmo/index.js';
3
- import { styles } from '../../lib/styles.js';
4
- import { shouldOutputJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
5
- import { formatTicket } from '../../lib/mcp/helpers.js';
6
- export default class TicketCancel extends PMOCommand {
7
- static description = 'Cancel ticket(s) (move to Canceled column)';
8
- static examples = [
9
- '<%= config.bin %> <%= command.id %>',
10
- '<%= config.bin %> <%= command.id %> TKT-001',
11
- '<%= config.bin %> <%= command.id %> --bulk',
12
- ];
13
- static args = {
14
- ticketId: Args.string({
15
- description: 'Ticket ID - prompts with dropdown if not provided',
16
- required: false,
17
- }),
18
- };
19
- static flags = {
20
- ...pmoBaseFlags,
21
- bulk: Flags.boolean({
22
- char: 'b',
23
- description: 'Enable bulk mode to cancel multiple tickets',
24
- default: false,
25
- }),
26
- force: Flags.boolean({
27
- char: 'f',
28
- description: 'Skip confirmation prompt (bulk mode only)',
29
- default: false,
30
- }),
31
- };
32
- async execute() {
33
- const { args, flags } = await this.parse(TicketCancel);
34
- const projectId = flags.project;
35
- // Check if JSON output mode is active
36
- const jsonMode = shouldOutputJson(flags);
37
- // Helper to handle errors in JSON mode
38
- const handleError = (code, message) => {
39
- if (jsonMode) {
40
- outputErrorAsJson(code, message, createMetadata('ticket cancel', flags));
41
- return;
42
- }
43
- this.error(message);
44
- };
45
- // Get all active tickets (not already canceled or done)
46
- const allTickets = await this.storage.listTickets(projectId);
47
- const activeTickets = allTickets.filter(t => t.statusName &&
48
- !t.statusName.toLowerCase().includes('cancel') &&
49
- !t.statusName.toLowerCase().includes('done'));
50
- if (activeTickets.length === 0) {
51
- if (jsonMode) {
52
- outputErrorAsJson('NO_ACTIVE_TICKETS', 'No active tickets found to cancel.', createMetadata('ticket cancel', flags));
53
- return;
54
- }
55
- this.log(styles.info('No active tickets found to cancel.'));
56
- return;
57
- }
58
- // Get board for columns (use the first active ticket's project)
59
- const board = await this.storage.getProjectBoard(activeTickets[0].projectId);
60
- if (!board) {
61
- return handleError('PROJECT_NOT_FOUND', `Project "${activeTickets[0].projectId}" not found. The ticket may belong to an orphaned project.`);
62
- }
63
- // Find the "Canceled" column (case-insensitive, match both "Canceled" and "Cancelled")
64
- const canceledColumn = board.columns.find(col => col.name.toLowerCase().includes('cancel'));
65
- if (!canceledColumn) {
66
- return handleError('NO_CANCELED_COLUMN', 'No "Canceled" column found in board configuration.');
67
- }
68
- // Bulk mode
69
- if (flags.bulk) {
70
- await this.executeBulk(activeTickets, canceledColumn.name, flags);
71
- return;
72
- }
73
- // Single ticket mode
74
- let ticketId = args.ticketId;
75
- if (!ticketId) {
76
- const selected = await this.selectFromList({
77
- message: 'Select ticket to cancel:',
78
- items: activeTickets,
79
- getName: (t) => `${t.id} - ${t.title} (${t.statusName})`,
80
- getValue: (t) => t.id,
81
- getCommand: (t) => `prlt ticket cancel ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
82
- jsonMode: jsonMode ? { flags, commandName: 'ticket cancel' } : null,
83
- });
84
- if (!selected) {
85
- return;
86
- }
87
- ticketId = selected;
88
- }
89
- // Get ticket
90
- const ticket = await this.storage.getTicket(ticketId);
91
- if (!ticket) {
92
- return handleError('TICKET_NOT_FOUND', `Ticket "${ticketId}" not found.`);
93
- }
94
- // Use resolved internal ID for all subsequent operations (external keys like PRLT-xxx resolve to TKT-xxx)
95
- ticketId = ticket.id;
96
- // Move to Canceled column through provider (routes to Linear/Jira/PMO as appropriate)
97
- const provider = await this.resolveTicketProvider(ticketId, ticket.projectId);
98
- const moveResult = await provider.moveTicket(ticketId, canceledColumn.name);
99
- if (!moveResult.success) {
100
- return handleError('CANCEL_FAILED', `Failed to cancel ticket: ${moveResult.error}`);
101
- }
102
- // Refresh ticket to get updated status
103
- const canceled = await this.storage.getTicket(ticketId) || ticket;
104
- // Auto-export to board.md if configured
105
- await autoExportToBoard(this.pmoPath, this.storage, (msg) => this.log(styles.muted(msg)));
106
- // JSON output mode
107
- if (jsonMode) {
108
- this.log(JSON.stringify({
109
- success: true,
110
- ticket: formatTicket(canceled),
111
- provider: moveResult.provider,
112
- }, null, 2));
113
- return;
114
- }
115
- this.log(styles.success(`Canceled ${ticketId}`));
116
- this.log(styles.muted(` Title: ${ticket.title}`));
117
- this.log(styles.muted(` Moved to: ${canceled.statusName}`));
118
- if (moveResult.provider !== 'pmo') {
119
- this.log(styles.muted(` Provider: ${moveResult.provider}`));
120
- }
121
- }
122
- async executeBulk(activeTickets, canceledColumnName, flags) {
123
- // Only show header in interactive mode
124
- if (!shouldOutputJson(flags)) {
125
- this.log(styles.emphasis('Cancel Multiple Tickets\n'));
126
- }
127
- // Agent mode config for prompts
128
- const jsonModeConfig = shouldOutputJson(flags) ? { flags, commandName: 'ticket cancel --bulk' } : null;
129
- // Select tickets to cancel
130
- const { selectedTickets } = await this.prompt([{
131
- type: 'checkbox',
132
- name: 'selectedTickets',
133
- message: 'Select tickets to cancel:',
134
- choices: activeTickets.map(t => ({
135
- name: `${t.id} - ${t.title} (${t.statusName})`,
136
- value: t.id,
137
- command: `prlt ticket cancel ${t.id}${flags.project ? ` -P ${flags.project}` : ''} --json`,
138
- })),
139
- }], jsonModeConfig);
140
- if (selectedTickets.length === 0) {
141
- this.log(styles.muted('No tickets selected.'));
142
- return;
143
- }
144
- // Confirmation
145
- if (!flags.force) {
146
- this.log(styles.warning('\nWill cancel:'));
147
- for (const ticketId of selectedTickets) {
148
- const ticket = activeTickets.find(t => t.id === ticketId);
149
- this.log(styles.primary(` • ${ticketId}: ${ticket?.title}`));
150
- }
151
- this.log(styles.primary(` → Move to: ${canceledColumnName}\n`));
152
- const { confirm } = await this.prompt([{
153
- type: 'list',
154
- name: 'confirm',
155
- message: 'Continue?',
156
- choices: [
157
- { name: 'No, keep tickets', value: 'false', command: '' },
158
- { name: 'Yes, cancel tickets', value: 'true', command: `prlt ticket cancel ${selectedTickets.join(' ')}${flags.project ? ` -P ${flags.project}` : ''} --force --json` }
159
- ],
160
- }], jsonModeConfig);
161
- if (!confirm) {
162
- this.log(styles.muted('Operation cancelled.'));
163
- return;
164
- }
165
- }
166
- this.log('');
167
- // Cancel each ticket
168
- let successCount = 0;
169
- let failCount = 0;
170
- for (const ticketId of selectedTickets) {
171
- try {
172
- const ticket = activeTickets.find(t => t.id === ticketId);
173
- if (!ticket) {
174
- throw new Error('Ticket not found in active tickets list');
175
- }
176
- // eslint-disable-next-line no-await-in-loop
177
- const provider = await this.resolveTicketProvider(ticketId, ticket.projectId);
178
- // eslint-disable-next-line no-await-in-loop
179
- const result = await provider.moveTicket(ticketId, canceledColumnName);
180
- if (result.success) {
181
- this.log(styles.success(`Canceled ${ticketId}`));
182
- successCount++;
183
- }
184
- else {
185
- this.log(styles.error(`Failed to cancel ${ticketId}: ${result.error}`));
186
- failCount++;
187
- }
188
- }
189
- catch (error) {
190
- this.log(styles.error(`Failed to cancel ${ticketId}: ${error instanceof Error ? error.message : String(error)}`));
191
- failCount++;
192
- }
193
- }
194
- // Auto-export to board.md
195
- await autoExportToBoard(this.pmoPath, this.storage, (msg) => this.log(styles.muted(msg)));
196
- // Summary
197
- this.log('');
198
- if (successCount > 0) {
199
- this.log(styles.success(`Canceled ${successCount} ticket(s)`));
200
- }
201
- if (failCount > 0) {
202
- this.log(styles.error(`Failed to cancel ${failCount} ticket(s)`));
203
- }
204
- }
205
- }
206
- //# sourceMappingURL=cancel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../../src/commands/ticket/cancel.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { PMOCommand } from '../../lib/pmo/index.js';
2
- export default class TicketCategory extends PMOCommand {
3
- static description: string;
4
- static aliases: string[];
5
- static examples: string[];
6
- static flags: {
7
- json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
- };
11
- protected getPMOOptions(): {
12
- promptIfMultiple: boolean;
13
- };
14
- execute(): Promise<void>;
15
- }
@@ -1,64 +0,0 @@
1
- import { Flags } from '@oclif/core';
2
- import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
3
- import { shouldOutputJson } from '../../lib/prompt-json.js';
4
- export default class TicketCategory extends PMOCommand {
5
- static description = 'Manage ticket categories (feature, bug, refactor, etc.)';
6
- static aliases = ['ticket:categories'];
7
- static examples = [
8
- '<%= config.bin %> <%= command.id %>',
9
- '<%= config.bin %> <%= command.id %> list',
10
- '<%= config.bin %> <%= command.id %> create spike',
11
- '<%= config.bin %> <%= command.id %> rename spike investigation',
12
- '<%= config.bin %> <%= command.id %> delete spike',
13
- ];
14
- static flags = {
15
- ...pmoBaseFlags,
16
- json: Flags.boolean({
17
- description: 'Output prompt configuration as JSON (for AI agents/scripts)',
18
- default: false,
19
- }),
20
- };
21
- getPMOOptions() {
22
- return { promptIfMultiple: false };
23
- }
24
- async execute() {
25
- const { flags } = await this.parse(TicketCategory);
26
- // Check if JSON output mode is active
27
- const jsonMode = shouldOutputJson(flags);
28
- // Show the action menu for ticket categories
29
- const menuChoices = [
30
- { id: 'list', name: 'List all ticket categories', command: 'prlt category list --type ticket' },
31
- { id: 'create', name: 'Create new ticket category', command: 'prlt category create --type ticket --json' },
32
- { id: 'rename', name: 'Rename ticket category', command: 'prlt category rename --type ticket --json' },
33
- { id: 'delete', name: 'Delete ticket category', command: 'prlt category delete --type ticket --json' },
34
- { id: 'cancel', name: 'Cancel', command: '' },
35
- ];
36
- const action = await this.selectFromList({
37
- message: '🏷️ Ticket Categories - What would you like to do?',
38
- items: menuChoices,
39
- getName: (c) => c.name,
40
- getValue: (c) => c.id,
41
- getCommand: (c) => c.command,
42
- jsonMode: jsonMode ? { flags, commandName: 'ticket category' } : null,
43
- });
44
- if (action === 'cancel' || !action) {
45
- return;
46
- }
47
- // Run the selected subcommand
48
- switch (action) {
49
- case 'list':
50
- await this.config.runCommand('category:list', ['--type', 'ticket']);
51
- break;
52
- case 'create':
53
- await this.config.runCommand('category:create', ['--type', 'ticket']);
54
- break;
55
- case 'rename':
56
- await this.config.runCommand('category:rename', ['--type', 'ticket']);
57
- break;
58
- case 'delete':
59
- await this.config.runCommand('category:delete', ['--type', 'ticket']);
60
- break;
61
- }
62
- }
63
- }
64
- //# sourceMappingURL=category.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"category.js","sourceRoot":"","sources":["../../../src/commands/ticket/category.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { PMOCommand } from '../../lib/pmo/index.js';
2
- export default class TicketComplete extends PMOCommand {
3
- static description: string;
4
- static examples: string[];
5
- static args: {
6
- ticketId: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
- };
8
- static flags: {
9
- bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- };
15
- execute(): Promise<void>;
16
- private executeBulk;
17
- }