@proletariat/cli 0.3.20 → 0.3.22

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 (352) hide show
  1. package/dist/commands/action/create.d.ts +0 -1
  2. package/dist/commands/action/delete.d.ts +0 -1
  3. package/dist/commands/action/index.d.ts +0 -1
  4. package/dist/commands/action/list.d.ts +0 -1
  5. package/dist/commands/action/list.js +2 -0
  6. package/dist/commands/action/run.d.ts +0 -1
  7. package/dist/commands/action/show.d.ts +0 -1
  8. package/dist/commands/action/update.d.ts +0 -1
  9. package/dist/commands/agent/auth.d.ts +0 -1
  10. package/dist/commands/agent/auth.js +3 -7
  11. package/dist/commands/agent/discover.d.ts +0 -1
  12. package/dist/commands/agent/discover.js +3 -7
  13. package/dist/commands/agent/index.d.ts +0 -1
  14. package/dist/commands/agent/index.js +2 -0
  15. package/dist/commands/agent/list.d.ts +0 -1
  16. package/dist/commands/agent/list.js +30 -1
  17. package/dist/commands/agent/login.d.ts +0 -1
  18. package/dist/commands/agent/login.js +4 -2
  19. package/dist/commands/agent/rebuild.d.ts +0 -1
  20. package/dist/commands/agent/rebuild.js +2 -0
  21. package/dist/commands/agent/remove.d.ts +1 -1
  22. package/dist/commands/agent/remove.js +38 -28
  23. package/dist/commands/agent/restart.d.ts +0 -1
  24. package/dist/commands/agent/restart.js +2 -0
  25. package/dist/commands/agent/shell.d.ts +0 -1
  26. package/dist/commands/agent/shell.js +4 -2
  27. package/dist/commands/agent/staff/add.d.ts +0 -1
  28. package/dist/commands/agent/staff/add.js +3 -7
  29. package/dist/commands/agent/staff/index.d.ts +0 -1
  30. package/dist/commands/agent/staff/index.js +2 -0
  31. package/dist/commands/agent/staff/remove.d.ts +0 -1
  32. package/dist/commands/agent/staff/remove.js +4 -2
  33. package/dist/commands/agent/status.d.ts +0 -1
  34. package/dist/commands/agent/status.js +4 -2
  35. package/dist/commands/agent/temp/cleanup.d.ts +0 -1
  36. package/dist/commands/agent/temp/cleanup.js +2 -0
  37. package/dist/commands/agent/temp/index.d.ts +0 -1
  38. package/dist/commands/agent/temp/index.js +2 -0
  39. package/dist/commands/agent/themes/add-names.d.ts +1 -0
  40. package/dist/commands/agent/themes/add-names.js +5 -1
  41. package/dist/commands/agent/themes/index.d.ts +0 -1
  42. package/dist/commands/agent/themes/index.js +3 -7
  43. package/dist/commands/agent/themes/set.d.ts +0 -1
  44. package/dist/commands/agent/themes/set.js +3 -7
  45. package/dist/commands/agent/visit.d.ts +0 -1
  46. package/dist/commands/agent/visit.js +4 -2
  47. package/dist/commands/autocomplete/setup.d.ts +0 -1
  48. package/dist/commands/board/index.d.ts +0 -1
  49. package/dist/commands/board/view.d.ts +0 -1
  50. package/dist/commands/board/watch.d.ts +0 -1
  51. package/dist/commands/branch/create.d.ts +0 -1
  52. package/dist/commands/branch/create.js +2 -0
  53. package/dist/commands/branch/index.d.ts +0 -1
  54. package/dist/commands/branch/index.js +2 -0
  55. package/dist/commands/branch/list.d.ts +0 -1
  56. package/dist/commands/branch/validate.d.ts +0 -1
  57. package/dist/commands/branch/where.d.ts +0 -1
  58. package/dist/commands/branch/where.js +2 -0
  59. package/dist/commands/category/create.d.ts +18 -0
  60. package/dist/commands/category/create.js +108 -0
  61. package/dist/commands/category/delete.d.ts +17 -0
  62. package/dist/commands/category/delete.js +103 -0
  63. package/dist/commands/category/index.d.ts +15 -0
  64. package/dist/commands/category/index.js +87 -0
  65. package/dist/commands/category/list.d.ts +17 -0
  66. package/dist/commands/category/list.js +85 -0
  67. package/dist/commands/category/rename.d.ts +18 -0
  68. package/dist/commands/category/rename.js +127 -0
  69. package/dist/commands/claude.js +2 -0
  70. package/dist/commands/commit.js +2 -0
  71. package/dist/commands/config/index.js +2 -0
  72. package/dist/commands/docker/clean.d.ts +0 -1
  73. package/dist/commands/docker/index.d.ts +0 -1
  74. package/dist/commands/docker/prune.d.ts +0 -1
  75. package/dist/commands/docker/restart.d.ts +0 -1
  76. package/dist/commands/docker/stop.d.ts +0 -1
  77. package/dist/commands/epic/activate.d.ts +0 -1
  78. package/dist/commands/epic/activate.js +2 -0
  79. package/dist/commands/epic/archive.d.ts +0 -1
  80. package/dist/commands/epic/archive.js +2 -0
  81. package/dist/commands/epic/create.d.ts +0 -1
  82. package/dist/commands/epic/create.js +3 -1
  83. package/dist/commands/epic/delete.d.ts +14 -0
  84. package/dist/commands/epic/delete.js +129 -0
  85. package/dist/commands/epic/index.d.ts +0 -1
  86. package/dist/commands/epic/index.js +6 -0
  87. package/dist/commands/epic/link/block.d.ts +0 -1
  88. package/dist/commands/epic/link/block.js +2 -0
  89. package/dist/commands/epic/link/duplicates.d.ts +0 -1
  90. package/dist/commands/epic/link/duplicates.js +2 -0
  91. package/dist/commands/epic/link/index.d.ts +0 -1
  92. package/dist/commands/epic/link/index.js +19 -0
  93. package/dist/commands/epic/link/relates.d.ts +0 -1
  94. package/dist/commands/epic/link/relates.js +2 -0
  95. package/dist/commands/epic/link/remove.d.ts +0 -1
  96. package/dist/commands/epic/link/remove.js +2 -0
  97. package/dist/commands/epic/list.d.ts +0 -1
  98. package/dist/commands/epic/move.d.ts +0 -1
  99. package/dist/commands/epic/move.js +2 -0
  100. package/dist/commands/epic/progress.d.ts +0 -1
  101. package/dist/commands/epic/progress.js +2 -0
  102. package/dist/commands/epic/project.d.ts +0 -1
  103. package/dist/commands/epic/project.js +2 -0
  104. package/dist/commands/epic/reorder.d.ts +0 -1
  105. package/dist/commands/epic/reorder.js +2 -0
  106. package/dist/commands/epic/spec.d.ts +0 -1
  107. package/dist/commands/epic/spec.js +2 -0
  108. package/dist/commands/epic/ticket.d.ts +0 -1
  109. package/dist/commands/epic/ticket.js +2 -0
  110. package/dist/commands/epic/view.d.ts +0 -1
  111. package/dist/commands/epic/view.js +2 -0
  112. package/dist/commands/execution/config.d.ts +0 -1
  113. package/dist/commands/execution/config.js +24 -0
  114. package/dist/commands/execution/index.d.ts +0 -1
  115. package/dist/commands/execution/index.js +3 -1
  116. package/dist/commands/execution/kill.d.ts +3 -0
  117. package/dist/commands/execution/kill.js +1 -0
  118. package/dist/commands/execution/list.d.ts +0 -1
  119. package/dist/commands/execution/list.js +5 -4
  120. package/dist/commands/execution/logs.d.ts +0 -1
  121. package/dist/commands/execution/logs.js +4 -1
  122. package/dist/commands/execution/stop.d.ts +0 -1
  123. package/dist/commands/execution/stop.js +3 -1
  124. package/dist/commands/execution/view.d.ts +0 -1
  125. package/dist/commands/execution/view.js +3 -1
  126. package/dist/commands/gh/index.d.ts +0 -1
  127. package/dist/commands/gh/login.d.ts +0 -1
  128. package/dist/commands/gh/status.d.ts +0 -1
  129. package/dist/commands/gh/token.d.ts +0 -1
  130. package/dist/commands/init.js +2 -0
  131. package/dist/commands/phase/create.d.ts +0 -1
  132. package/dist/commands/phase/create.js +1 -2
  133. package/dist/commands/phase/delete.d.ts +0 -1
  134. package/dist/commands/phase/delete.js +1 -1
  135. package/dist/commands/phase/list.d.ts +0 -1
  136. package/dist/commands/phase/move.d.ts +0 -1
  137. package/dist/commands/phase/move.js +10 -2
  138. package/dist/commands/phase/template/apply.d.ts +0 -1
  139. package/dist/commands/phase/template/apply.js +4 -2
  140. package/dist/commands/phase/template/create.d.ts +0 -1
  141. package/dist/commands/phase/template/create.js +6 -7
  142. package/dist/commands/phase/template/delete.d.ts +0 -1
  143. package/dist/commands/phase/template/delete.js +2 -0
  144. package/dist/commands/phase/template/index.d.ts +0 -1
  145. package/dist/commands/phase/template/index.js +2 -0
  146. package/dist/commands/phase/template/list.d.ts +0 -1
  147. package/dist/commands/phase/template/list.js +3 -1
  148. package/dist/commands/phase/template/update.d.ts +0 -1
  149. package/dist/commands/phase/update.d.ts +0 -1
  150. package/dist/commands/phase/update.js +2 -2
  151. package/dist/commands/pmo/init.js +2 -0
  152. package/dist/commands/pr/create.d.ts +0 -1
  153. package/dist/commands/pr/index.d.ts +0 -1
  154. package/dist/commands/pr/link.d.ts +0 -1
  155. package/dist/commands/pr/list.d.ts +0 -1
  156. package/dist/commands/pr/status.d.ts +0 -1
  157. package/dist/commands/project/archive.d.ts +0 -1
  158. package/dist/commands/project/create.d.ts +0 -1
  159. package/dist/commands/project/delete.d.ts +0 -1
  160. package/dist/commands/project/index.d.ts +0 -1
  161. package/dist/commands/project/list.d.ts +0 -1
  162. package/dist/commands/project/spec.d.ts +0 -1
  163. package/dist/commands/project/unarchive.d.ts +0 -1
  164. package/dist/commands/project/update.d.ts +0 -1
  165. package/dist/commands/project/view.d.ts +0 -1
  166. package/dist/commands/repo/add.d.ts +0 -1
  167. package/dist/commands/repo/add.js +2 -0
  168. package/dist/commands/repo/index.d.ts +0 -1
  169. package/dist/commands/repo/list.d.ts +0 -1
  170. package/dist/commands/repo/remove.d.ts +0 -1
  171. package/dist/commands/repo/view.d.ts +0 -1
  172. package/dist/commands/roadmap/add-project.d.ts +0 -1
  173. package/dist/commands/roadmap/add-project.js +2 -0
  174. package/dist/commands/roadmap/create.d.ts +0 -1
  175. package/dist/commands/roadmap/create.js +2 -0
  176. package/dist/commands/roadmap/delete.d.ts +0 -1
  177. package/dist/commands/roadmap/delete.js +12 -1
  178. package/dist/commands/roadmap/generate.d.ts +0 -1
  179. package/dist/commands/roadmap/generate.js +2 -0
  180. package/dist/commands/roadmap/index.d.ts +0 -1
  181. package/dist/commands/roadmap/index.js +2 -0
  182. package/dist/commands/roadmap/list.d.ts +0 -1
  183. package/dist/commands/roadmap/remove-project.d.ts +0 -1
  184. package/dist/commands/roadmap/remove-project.js +2 -0
  185. package/dist/commands/roadmap/reorder.d.ts +0 -1
  186. package/dist/commands/roadmap/reorder.js +2 -0
  187. package/dist/commands/roadmap/update.d.ts +0 -1
  188. package/dist/commands/roadmap/update.js +2 -0
  189. package/dist/commands/roadmap/view.d.ts +0 -1
  190. package/dist/commands/roadmap/view.js +2 -0
  191. package/dist/commands/session/attach.d.ts +0 -1
  192. package/dist/commands/session/attach.js +9 -0
  193. package/dist/commands/session/index.d.ts +0 -1
  194. package/dist/commands/session/index.js +2 -0
  195. package/dist/commands/session/list.d.ts +0 -1
  196. package/dist/commands/spec/create.d.ts +0 -1
  197. package/dist/commands/spec/create.js +1 -1
  198. package/dist/commands/spec/delete.d.ts +0 -1
  199. package/dist/commands/spec/edit.d.ts +0 -1
  200. package/dist/commands/spec/index.d.ts +0 -1
  201. package/dist/commands/spec/link/depends.d.ts +0 -1
  202. package/dist/commands/spec/link/duplicates.d.ts +0 -1
  203. package/dist/commands/spec/link/index.d.ts +0 -1
  204. package/dist/commands/spec/link/relates.d.ts +0 -1
  205. package/dist/commands/spec/link/remove.d.ts +0 -1
  206. package/dist/commands/spec/list.d.ts +0 -1
  207. package/dist/commands/spec/plan.d.ts +0 -1
  208. package/dist/commands/spec/ticket.d.ts +0 -3
  209. package/dist/commands/spec/ticket.js +7 -38
  210. package/dist/commands/spec/view.d.ts +0 -1
  211. package/dist/commands/status/category.d.ts +14 -0
  212. package/dist/commands/status/category.js +63 -0
  213. package/dist/commands/status/create.d.ts +0 -1
  214. package/dist/commands/status/create.js +1 -1
  215. package/dist/commands/status/delete.d.ts +0 -1
  216. package/dist/commands/status/index.d.ts +0 -1
  217. package/dist/commands/status/list.d.ts +0 -1
  218. package/dist/commands/status/list.js +5 -3
  219. package/dist/commands/status/move.d.ts +0 -1
  220. package/dist/commands/status/update.d.ts +0 -1
  221. package/dist/commands/template/delete.d.ts +0 -1
  222. package/dist/commands/template/delete.js +2 -0
  223. package/dist/commands/template/index.d.ts +0 -1
  224. package/dist/commands/template/list.d.ts +0 -1
  225. package/dist/commands/template/list.js +2 -0
  226. package/dist/commands/template/phase/apply.js +2 -0
  227. package/dist/commands/template/phase/create.d.ts +0 -1
  228. package/dist/commands/template/phase/create.js +3 -9
  229. package/dist/commands/template/phase/delete.js +2 -0
  230. package/dist/commands/template/phase/index.d.ts +0 -1
  231. package/dist/commands/template/phase/index.js +4 -4
  232. package/dist/commands/template/phase/list.js +2 -0
  233. package/dist/commands/template/phase/update.js +2 -0
  234. package/dist/commands/template/ticket/apply.js +2 -0
  235. package/dist/commands/template/ticket/create.js +2 -0
  236. package/dist/commands/template/ticket/delete.d.ts +1 -1
  237. package/dist/commands/template/ticket/delete.js +6 -2
  238. package/dist/commands/template/ticket/index.d.ts +0 -1
  239. package/dist/commands/template/ticket/list.js +2 -0
  240. package/dist/commands/template/ticket/save.d.ts +0 -1
  241. package/dist/commands/template/ticket/save.js +0 -6
  242. package/dist/commands/terminal/title.d.ts +0 -1
  243. package/dist/commands/ticket/bulk.d.ts +0 -1
  244. package/dist/commands/ticket/bulk.js +2 -0
  245. package/dist/commands/ticket/category.d.ts +14 -0
  246. package/dist/commands/ticket/category.js +63 -0
  247. package/dist/commands/ticket/complete.d.ts +0 -1
  248. package/dist/commands/ticket/complete.js +2 -0
  249. package/dist/commands/ticket/create.d.ts +0 -1
  250. package/dist/commands/ticket/create.js +7 -5
  251. package/dist/commands/ticket/delete.d.ts +0 -1
  252. package/dist/commands/ticket/delete.js +2 -0
  253. package/dist/commands/ticket/edit.d.ts +0 -1
  254. package/dist/commands/ticket/edit.js +5 -3
  255. package/dist/commands/ticket/epic.d.ts +0 -1
  256. package/dist/commands/ticket/epic.js +2 -0
  257. package/dist/commands/ticket/index.d.ts +0 -1
  258. package/dist/commands/ticket/index.js +2 -0
  259. package/dist/commands/ticket/link/block.d.ts +0 -1
  260. package/dist/commands/ticket/link/block.js +2 -0
  261. package/dist/commands/ticket/link/duplicates.d.ts +0 -1
  262. package/dist/commands/ticket/link/duplicates.js +2 -0
  263. package/dist/commands/ticket/link/index.d.ts +0 -1
  264. package/dist/commands/ticket/link/index.js +2 -0
  265. package/dist/commands/ticket/link/relates.d.ts +0 -1
  266. package/dist/commands/ticket/link/relates.js +2 -0
  267. package/dist/commands/ticket/link/remove.d.ts +0 -1
  268. package/dist/commands/ticket/link/remove.js +2 -0
  269. package/dist/commands/ticket/list.d.ts +2 -1
  270. package/dist/commands/ticket/list.js +39 -2
  271. package/dist/commands/ticket/move.d.ts +0 -1
  272. package/dist/commands/ticket/move.js +2 -0
  273. package/dist/commands/ticket/project.d.ts +0 -1
  274. package/dist/commands/ticket/project.js +2 -0
  275. package/dist/commands/ticket/reassign.d.ts +0 -1
  276. package/dist/commands/ticket/reassign.js +29 -0
  277. package/dist/commands/ticket/spec.d.ts +0 -1
  278. package/dist/commands/ticket/spec.js +2 -0
  279. package/dist/commands/ticket/status.d.ts +0 -1
  280. package/dist/commands/ticket/status.js +2 -0
  281. package/dist/commands/ticket/template/apply.d.ts +0 -1
  282. package/dist/commands/ticket/template/apply.js +2 -0
  283. package/dist/commands/ticket/template/create.d.ts +0 -1
  284. package/dist/commands/ticket/template/create.js +4 -2
  285. package/dist/commands/ticket/template/delete.d.ts +0 -1
  286. package/dist/commands/ticket/template/delete.js +2 -0
  287. package/dist/commands/ticket/template/index.d.ts +0 -1
  288. package/dist/commands/ticket/template/index.js +2 -0
  289. package/dist/commands/ticket/template/list.d.ts +0 -1
  290. package/dist/commands/ticket/template/list.js +2 -0
  291. package/dist/commands/ticket/template/save.d.ts +0 -1
  292. package/dist/commands/ticket/template/save.js +2 -0
  293. package/dist/commands/ticket/update.d.ts +0 -1
  294. package/dist/commands/ticket/update.js +4 -2
  295. package/dist/commands/ticket/view.d.ts +0 -1
  296. package/dist/commands/ticket/view.js +2 -0
  297. package/dist/commands/work/complete.d.ts +0 -1
  298. package/dist/commands/work/complete.js +2 -0
  299. package/dist/commands/work/index.d.ts +0 -1
  300. package/dist/commands/work/index.js +2 -0
  301. package/dist/commands/work/ready.d.ts +1 -2
  302. package/dist/commands/work/ready.js +11 -5
  303. package/dist/commands/work/revise.d.ts +0 -1
  304. package/dist/commands/work/revise.js +3 -1
  305. package/dist/commands/work/spawn-all.d.ts +0 -1
  306. package/dist/commands/work/spawn-all.js +2 -0
  307. package/dist/commands/work/spawn.d.ts +0 -1
  308. package/dist/commands/work/spawn.js +34 -8
  309. package/dist/commands/work/start.d.ts +0 -1
  310. package/dist/commands/work/start.js +6 -0
  311. package/dist/commands/work/watch.d.ts +0 -1
  312. package/dist/commands/work/watch.js +5 -1
  313. package/dist/commands/workflow/create.d.ts +0 -1
  314. package/dist/commands/workflow/delete.d.ts +0 -1
  315. package/dist/commands/workflow/index.d.ts +0 -1
  316. package/dist/commands/workflow/index.js +2 -0
  317. package/dist/commands/workflow/list.d.ts +0 -1
  318. package/dist/commands/workflow/switch.d.ts +0 -1
  319. package/dist/commands/workflow/view.d.ts +0 -1
  320. package/dist/commands/workspace/list.js +2 -0
  321. package/dist/commands/workspace/prune.d.ts +13 -0
  322. package/dist/commands/workspace/prune.js +186 -0
  323. package/dist/commands/workspace/remove.js +2 -0
  324. package/dist/commands/workspace/use.js +2 -0
  325. package/dist/lib/agents/commands.d.ts +7 -0
  326. package/dist/lib/agents/commands.js +11 -0
  327. package/dist/lib/execution/runners.js +1 -2
  328. package/dist/lib/pmo/base-command.d.ts +2 -4
  329. package/dist/lib/pmo/base-command.js +8 -10
  330. package/dist/lib/pmo/schema.d.ts +2 -0
  331. package/dist/lib/pmo/schema.js +17 -0
  332. package/dist/lib/pmo/storage/base.d.ts +4 -0
  333. package/dist/lib/pmo/storage/base.js +31 -0
  334. package/dist/lib/pmo/storage/categories.d.ts +50 -0
  335. package/dist/lib/pmo/storage/categories.js +205 -0
  336. package/dist/lib/pmo/storage/epics.js +20 -10
  337. package/dist/lib/pmo/storage/helpers.d.ts +10 -0
  338. package/dist/lib/pmo/storage/helpers.js +59 -1
  339. package/dist/lib/pmo/storage/index.d.ts +14 -1
  340. package/dist/lib/pmo/storage/index.js +35 -1
  341. package/dist/lib/pmo/storage/projects.js +20 -8
  342. package/dist/lib/pmo/storage/specs.js +23 -13
  343. package/dist/lib/pmo/storage/statuses.js +39 -18
  344. package/dist/lib/pmo/storage/subtasks.js +19 -8
  345. package/dist/lib/pmo/storage/tickets.d.ts +5 -0
  346. package/dist/lib/pmo/storage/tickets.js +57 -17
  347. package/dist/lib/pmo/storage/types.d.ts +10 -0
  348. package/dist/lib/pmo/types.d.ts +25 -0
  349. package/dist/lib/prompt-json.d.ts +10 -16
  350. package/dist/lib/prompt-json.js +8 -16
  351. package/oclif.manifest.json +3831 -3864
  352. package/package.json +1 -1
@@ -55,6 +55,8 @@ export default class TicketTemplateCreate extends PMOCommand {
55
55
  multiple: true,
56
56
  }),
57
57
  json: Flags.boolean({
58
+ char: 'm',
59
+ aliases: ['machine'],
58
60
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
59
61
  default: false,
60
62
  }),
@@ -183,7 +185,7 @@ export default class TicketTemplateCreate extends PMOCommand {
183
185
  type: 'input',
184
186
  name: 'templateName',
185
187
  message: 'Template name:',
186
- validate: (input) => input.length > 0 || 'Name is required',
188
+ validate: (input) => input.trim() ? true : 'Name cannot be empty',
187
189
  }]);
188
190
  name = templateName;
189
191
  }
@@ -277,7 +279,7 @@ export default class TicketTemplateCreate extends PMOCommand {
277
279
  type: 'input',
278
280
  name: 'subtaskTitle',
279
281
  message: 'Subtask title:',
280
- validate: (input) => input.length > 0 || 'Title is required',
282
+ validate: (input) => input.trim() ? true : 'Title cannot be empty',
281
283
  }]);
282
284
  subtasks.push(subtaskTitle);
283
285
  // eslint-disable-next-line no-await-in-loop -- Interactive loop continuation
@@ -8,7 +8,6 @@ export default class TicketTemplateDelete extends PMOCommand {
8
8
  static flags: {
9
9
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
11
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
12
  };
14
13
  protected getPMOOptions(): {
@@ -18,6 +18,8 @@ export default class TicketTemplateDelete extends PMOCommand {
18
18
  static flags = {
19
19
  ...pmoBaseFlags,
20
20
  json: Flags.boolean({
21
+ char: 'm',
22
+ aliases: ['machine'],
21
23
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
22
24
  default: false,
23
25
  }),
@@ -5,7 +5,6 @@ export default class TicketTemplateIndex extends PMOCommand {
5
5
  static examples: string[];
6
6
  static flags: {
7
7
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
8
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
9
  };
11
10
  protected getPMOOptions(): {
@@ -12,6 +12,8 @@ export default class TicketTemplateIndex extends PMOCommand {
12
12
  static flags = {
13
13
  ...pmoBaseFlags,
14
14
  json: Flags.boolean({
15
+ char: 'm',
16
+ aliases: ['machine'],
15
17
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
16
18
  default: false,
17
19
  }),
@@ -6,7 +6,6 @@ export default class TicketTemplateList extends PMOCommand {
6
6
  builtin: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
7
  custom: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
8
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
9
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
10
  };
12
11
  protected getPMOOptions(): {
@@ -20,6 +20,8 @@ export default class TicketTemplateList extends PMOCommand {
20
20
  exclusive: ['builtin'],
21
21
  }),
22
22
  json: Flags.boolean({
23
+ char: 'm',
24
+ aliases: ['machine'],
23
25
  description: 'Output as JSON',
24
26
  default: false,
25
27
  }),
@@ -10,7 +10,6 @@ export default class TicketTemplateSave extends PMOCommand {
10
10
  'template-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
11
  description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
12
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
13
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
14
  };
16
15
  execute(): Promise<void>;
@@ -30,6 +30,8 @@ export default class TicketTemplateSave extends PMOCommand {
30
30
  description: 'Template description',
31
31
  }),
32
32
  json: Flags.boolean({
33
+ char: 'm',
34
+ aliases: ['machine'],
33
35
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
34
36
  default: false,
35
37
  }),
@@ -11,7 +11,6 @@ export default class TicketUpdate extends PMOCommand {
11
11
  category: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
12
  bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
13
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
14
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
15
  };
17
16
  execute(): Promise<void>;
@@ -7,10 +7,10 @@ import { shouldOutputJson, outputErrorAsJson, createMetadata, } from '../../lib/
7
7
  export default class TicketUpdate extends PMOCommand {
8
8
  static description = 'Update priority/category for ticket(s)';
9
9
  static examples = [
10
- '<%= config.bin %> <%= command.id %> TKT-001 --priority HIGH',
10
+ '<%= config.bin %> <%= command.id %> TKT-001 --priority P1',
11
11
  '<%= config.bin %> <%= command.id %> TKT-001 --category bug',
12
12
  '<%= config.bin %> <%= command.id %> --bulk',
13
- '<%= config.bin %> <%= command.id %> --bulk --priority HIGH',
13
+ '<%= config.bin %> <%= command.id %> --bulk --priority P1',
14
14
  '<%= config.bin %> <%= command.id %> --json # Output choices as JSON',
15
15
  ];
16
16
  static args = {
@@ -22,6 +22,8 @@ export default class TicketUpdate extends PMOCommand {
22
22
  static flags = {
23
23
  ...pmoBaseFlags,
24
24
  json: Flags.boolean({
25
+ char: 'm',
26
+ aliases: ['machine'],
25
27
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
26
28
  default: false,
27
29
  }),
@@ -4,7 +4,6 @@ export default class TicketView extends PMOCommand {
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
7
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
8
  };
10
9
  static args: {
@@ -11,6 +11,8 @@ export default class TicketView extends PMOCommand {
11
11
  static flags = {
12
12
  ...pmoBaseFlags,
13
13
  json: Flags.boolean({
14
+ char: 'm',
15
+ aliases: ['machine'],
14
16
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
15
17
  default: false,
16
18
  }),
@@ -7,7 +7,6 @@ export default class WorkComplete extends PMOCommand {
7
7
  };
8
8
  static flags: {
9
9
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
10
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
11
  };
13
12
  execute(): Promise<void>;
@@ -22,6 +22,8 @@ export default class WorkComplete extends PMOCommand {
22
22
  static flags = {
23
23
  ...pmoBaseFlags,
24
24
  json: Flags.boolean({
25
+ char: 'm',
26
+ aliases: ['machine'],
25
27
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
26
28
  default: false,
27
29
  }),
@@ -4,7 +4,6 @@ export default class Work extends PMOCommand {
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
7
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
8
  };
10
9
  protected getPMOOptions(): {
@@ -9,6 +9,8 @@ export default class Work extends PMOCommand {
9
9
  static flags = {
10
10
  ...pmoBaseFlags,
11
11
  json: Flags.boolean({
12
+ char: 'm',
13
+ aliases: ['machine'],
12
14
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
13
15
  default: false,
14
16
  }),
@@ -8,9 +8,8 @@ export default class WorkReady extends PMOCommand {
8
8
  static flags: {
9
9
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  pr: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- draft: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ 'draft-pr': import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
12
  'no-pr': import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
13
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
14
  };
16
15
  execute(): Promise<void>;
@@ -16,7 +16,7 @@ export default class WorkReady extends PMOCommand {
16
16
  '<%= config.bin %> <%= command.id %>',
17
17
  '<%= config.bin %> <%= command.id %> TKT-001',
18
18
  '<%= config.bin %> <%= command.id %> --pr',
19
- '<%= config.bin %> <%= command.id %> TKT-001 --pr --draft',
19
+ '<%= config.bin %> <%= command.id %> TKT-001 --draft-pr',
20
20
  '<%= config.bin %> <%= command.id %> --json # Output choices as JSON',
21
21
  ];
22
22
  static args = {
@@ -28,6 +28,8 @@ export default class WorkReady extends PMOCommand {
28
28
  static flags = {
29
29
  ...pmoBaseFlags,
30
30
  json: Flags.boolean({
31
+ char: 'm',
32
+ aliases: ['machine'],
31
33
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
32
34
  default: false,
33
35
  }),
@@ -35,8 +37,8 @@ export default class WorkReady extends PMOCommand {
35
37
  description: 'Create a pull request for this work',
36
38
  default: false,
37
39
  }),
38
- draft: Flags.boolean({
39
- description: 'Create PR as draft (only with --pr)',
40
+ 'draft-pr': Flags.boolean({
41
+ description: 'Create a draft pull request (implies --pr)',
40
42
  default: false,
41
43
  }),
42
44
  'no-pr': Flags.boolean({
@@ -47,6 +49,10 @@ export default class WorkReady extends PMOCommand {
47
49
  async execute() {
48
50
  const { args, flags } = await this.parse(WorkReady);
49
51
  const projectId = flags.project;
52
+ // Check for conflicting PR flags
53
+ if (flags.pr && flags['no-pr']) {
54
+ this.error('--pr and --no-pr are mutually exclusive');
55
+ }
50
56
  // Check if JSON output mode is active
51
57
  const jsonMode = shouldOutputJson(flags);
52
58
  // Helper to handle errors in JSON mode
@@ -128,7 +134,7 @@ export default class WorkReady extends PMOCommand {
128
134
  }
129
135
  // Handle PR creation
130
136
  let prUrl;
131
- const shouldCreatePR = flags.pr || (!flags['no-pr'] && await this.shouldOfferPRCreation());
137
+ const shouldCreatePR = flags.pr || flags['draft-pr'] || (!flags['no-pr'] && await this.shouldOfferPRCreation());
132
138
  if (shouldCreatePR) {
133
139
  // Get branch and worktree path from the execution record
134
140
  const branch = runningExecution?.branch;
@@ -157,7 +163,7 @@ export default class WorkReady extends PMOCommand {
157
163
  }
158
164
  }
159
165
  }
160
- prUrl = await this.handlePRCreation(ticket, flags.draft, branch, worktreePath);
166
+ prUrl = await this.handlePRCreation(ticket, flags['draft-pr'], branch, worktreePath);
161
167
  if (prUrl) {
162
168
  // Store PR URL in ticket metadata
163
169
  await this.storage.updateTicket(ticketId, {
@@ -12,7 +12,6 @@ export default class WorkRevise extends PMOCommand {
12
12
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
13
  'run-on-host': import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
14
  session: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
15
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
16
  };
18
17
  execute(): Promise<void>;
@@ -32,11 +32,13 @@ export default class WorkRevise extends PMOCommand {
32
32
  static flags = {
33
33
  ...pmoBaseFlags,
34
34
  json: Flags.boolean({
35
+ char: 'm',
36
+ aliases: ['machine'],
35
37
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
36
38
  default: false,
37
39
  }),
38
40
  mode: Flags.string({
39
- char: 'm',
41
+ char: 'd',
40
42
  description: 'Runtime mode',
41
43
  options: ['foreground', 'background', 'tmux', 'terminal', 'devcontainer'],
42
44
  }),
@@ -9,7 +9,6 @@ export default class WorkSpawnAll extends PMOCommand {
9
9
  'skip-permissions': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  'create-pr': import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
11
  executor: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
12
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
13
  };
15
14
  protected getPMOOptions(): {
@@ -11,6 +11,8 @@ export default class WorkSpawnAll extends PMOCommand {
11
11
  static flags = {
12
12
  ...pmoBaseFlags,
13
13
  json: Flags.boolean({
14
+ char: 'm',
15
+ aliases: ['machine'],
14
16
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
15
17
  default: false,
16
18
  }),
@@ -25,7 +25,6 @@ export default class WorkSpawn extends PMOCommand {
25
25
  session: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
26
26
  focus: import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
27
  clone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
28
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
29
  };
31
30
  execute(): Promise<void>;
@@ -23,6 +23,8 @@ export default class WorkSpawn extends PMOCommand {
23
23
  static flags = {
24
24
  ...pmoBaseFlags,
25
25
  json: Flags.boolean({
26
+ char: 'm',
27
+ aliases: ['machine'],
26
28
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
27
29
  default: false,
28
30
  }),
@@ -119,14 +121,6 @@ export default class WorkSpawn extends PMOCommand {
119
121
  const { flags, argv } = await this.parse(WorkSpawn);
120
122
  // Check if JSON output mode is active
121
123
  const jsonMode = shouldOutputJson(flags);
122
- // This command requires project context (pass JSON mode config for AI agents)
123
- const projectId = await this.requireProject({
124
- jsonMode: {
125
- flags,
126
- commandName: 'work spawn',
127
- baseCommand: 'prlt work spawn',
128
- },
129
- });
130
124
  // Helper to handle errors in JSON mode
131
125
  const handleError = (code, message) => {
132
126
  if (jsonMode) {
@@ -137,6 +131,38 @@ export default class WorkSpawn extends PMOCommand {
137
131
  };
138
132
  // Parse ticket IDs from args (everything after flags)
139
133
  const ticketIdArgs = argv;
134
+ // Try to infer project from ticket IDs if provided
135
+ let projectId;
136
+ if (ticketIdArgs.length > 0) {
137
+ // Look up tickets to get their project IDs
138
+ const projectIds = new Set();
139
+ for (const ticketId of ticketIdArgs) {
140
+ // eslint-disable-next-line no-await-in-loop
141
+ const ticket = await this.storage.getTicket(ticketId);
142
+ if (ticket?.projectId) {
143
+ projectIds.add(ticket.projectId);
144
+ }
145
+ }
146
+ if (projectIds.size === 1) {
147
+ // All tickets from same project - use that project
148
+ projectId = [...projectIds][0];
149
+ }
150
+ else if (projectIds.size > 1) {
151
+ // Tickets from multiple projects - warn and require prompt
152
+ this.warn('Tickets are from multiple projects. Please specify --project.');
153
+ }
154
+ // If size === 0, tickets not found - will be handled later in validation
155
+ }
156
+ // Only call requireProject() if we couldn't infer from tickets
157
+ if (!projectId) {
158
+ projectId = await this.requireProject({
159
+ jsonMode: {
160
+ flags,
161
+ commandName: 'work spawn',
162
+ baseCommand: 'prlt work spawn',
163
+ },
164
+ });
165
+ }
140
166
  // Note: Docker check is handled by work:start command when spawning each ticket
141
167
  // This allows for the interactive devcontainer/host selection with retry loop
142
168
  // Get workspace info (for agent worktree paths)
@@ -27,7 +27,6 @@ export default class WorkStart extends PMOCommand {
27
27
  ephemeral: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
28
  focus: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
29
  clone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
30
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
32
31
  };
33
32
  execute(): Promise<void>;
@@ -86,6 +86,8 @@ export default class WorkStart extends PMOCommand {
86
86
  static flags = {
87
87
  ...pmoBaseFlags,
88
88
  json: Flags.boolean({
89
+ char: 'm',
90
+ aliases: ['machine'],
89
91
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
90
92
  default: false,
91
93
  }),
@@ -179,6 +181,10 @@ export default class WorkStart extends PMOCommand {
179
181
  async execute() {
180
182
  const { args, flags } = await this.parse(WorkStart);
181
183
  const projectId = flags.project;
184
+ // Check for conflicting PR flags
185
+ if (flags['create-pr'] && flags['no-pr']) {
186
+ this.error('--create-pr and --no-pr are mutually exclusive');
187
+ }
182
188
  // Handle --skip-permissions flag (alias for --permission-mode danger)
183
189
  // Check for conflicting flags first
184
190
  if (flags['skip-permissions'] && flags['permission-mode']) {
@@ -13,7 +13,6 @@ export default class WorkWatch extends PMOCommand {
13
13
  mode: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
14
  'skip-permissions': import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
15
  'create-pr': import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
16
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
17
  };
19
18
  private isRunning;
@@ -22,6 +22,8 @@ export default class WorkWatch extends PMOCommand {
22
22
  static flags = {
23
23
  ...pmoBaseFlags,
24
24
  json: Flags.boolean({
25
+ char: 'm',
26
+ aliases: ['machine'],
25
27
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
26
28
  default: false,
27
29
  }),
@@ -42,18 +44,20 @@ export default class WorkWatch extends PMOCommand {
42
44
  limit: Flags.integer({
43
45
  char: 'l',
44
46
  description: 'Maximum concurrent executions',
47
+ min: 1,
45
48
  }),
46
49
  interval: Flags.integer({
47
50
  char: 'i',
48
51
  description: 'Polling interval in seconds',
49
52
  default: 5,
53
+ min: 1,
50
54
  }),
51
55
  once: Flags.boolean({
52
56
  description: 'Check once and exit (no continuous watching)',
53
57
  default: false,
54
58
  }),
55
59
  mode: Flags.string({
56
- char: 'm',
60
+ char: 'd',
57
61
  description: 'Display mode for agent output',
58
62
  options: ['terminal', 'background'],
59
63
  }),
@@ -8,7 +8,6 @@ export default class WorkflowCreate extends PMOCommand {
8
8
  static flags: {
9
9
  description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
10
  statuses: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
11
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
12
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
13
  };
@@ -7,7 +7,6 @@ export default class WorkflowDelete extends PMOCommand {
7
7
  };
8
8
  static flags: {
9
9
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
10
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
11
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
12
  };
@@ -6,7 +6,6 @@ export default class Workflow extends PMOCommand {
6
6
  builtin: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
7
  custom: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
8
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
9
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
10
  };
12
11
  protected getPMOOptions(): {
@@ -19,6 +19,8 @@ export default class Workflow extends PMOCommand {
19
19
  default: false,
20
20
  }),
21
21
  json: Flags.boolean({
22
+ char: 'm',
23
+ aliases: ['machine'],
22
24
  description: 'Output as JSON',
23
25
  default: false,
24
26
  }),
@@ -5,7 +5,6 @@ export default class WorkflowList extends PMOCommand {
5
5
  static flags: {
6
6
  builtin: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
7
  custom: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
8
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
9
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
10
  };
@@ -7,7 +7,6 @@ export default class WorkflowSwitch extends PMOCommand {
7
7
  };
8
8
  static flags: {
9
9
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
10
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
11
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
12
  };
@@ -6,7 +6,6 @@ export default class WorkflowView extends PMOCommand {
6
6
  id: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
7
  };
8
8
  static flags: {
9
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
9
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
10
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
11
  };
@@ -12,6 +12,8 @@ export default class WorkspaceList extends Command {
12
12
  ];
13
13
  static flags = {
14
14
  json: Flags.boolean({
15
+ char: 'm',
16
+ aliases: ['machine'],
15
17
  description: 'Output as JSON for machine-readable format',
16
18
  default: false,
17
19
  }),
@@ -0,0 +1,13 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class WorkspacePrune extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ private findStaleWorkspaces;
11
+ private findStaleAgents;
12
+ private performPrune;
13
+ }