@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
@@ -9,7 +9,6 @@ export default class EpicProject extends PMOCommand {
9
9
  static flags: {
10
10
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
11
  'with-tickets': import("@oclif/core/interfaces").BooleanFlag<boolean>;
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
  execute(): Promise<void>;
@@ -24,6 +24,8 @@ export default class EpicProject extends PMOCommand {
24
24
  static flags = {
25
25
  ...pmoBaseFlags,
26
26
  json: Flags.boolean({
27
+ char: 'm',
28
+ aliases: ['machine'],
27
29
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
28
30
  default: false,
29
31
  }),
@@ -15,7 +15,6 @@ export default class EpicReorder extends PMOCommand {
15
15
  after: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
16
  before: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
17
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
18
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
19
  };
21
20
  execute(): Promise<void>;
@@ -39,6 +39,8 @@ export default class EpicReorder extends PMOCommand {
39
39
  exclusive: ['first', 'last', 'after'],
40
40
  }),
41
41
  json: Flags.boolean({
42
+ char: 'm',
43
+ aliases: ['machine'],
42
44
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
43
45
  default: false,
44
46
  }),
@@ -9,7 +9,6 @@ export default class EpicSpec extends PMOCommand {
9
9
  static flags: {
10
10
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
11
  unlink: import("@oclif/core/interfaces").BooleanFlag<boolean>;
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
  execute(): Promise<void>;
@@ -24,6 +24,8 @@ export default class EpicSpec extends PMOCommand {
24
24
  static flags = {
25
25
  ...pmoBaseFlags,
26
26
  json: Flags.boolean({
27
+ char: 'm',
28
+ aliases: ['machine'],
27
29
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
28
30
  default: false,
29
31
  }),
@@ -12,7 +12,6 @@ export default class EpicTicket extends PMOCommand {
12
12
  unlink: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
13
  spec: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
14
  'unlink-spec': import("@oclif/core/interfaces").BooleanFlag<boolean>;
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>;
@@ -27,6 +27,8 @@ export default class EpicTicket extends PMOCommand {
27
27
  static flags = {
28
28
  ...pmoBaseFlags,
29
29
  json: Flags.boolean({
30
+ char: 'm',
31
+ aliases: ['machine'],
30
32
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
31
33
  default: false,
32
34
  }),
@@ -7,7 +7,6 @@ export default class EpicView 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>;
@@ -23,6 +23,8 @@ export default class EpicView 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
  }),
@@ -7,7 +7,6 @@ export default class ExecutionConfig extends PMOCommand {
7
7
  set: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
8
  list: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
9
  setting: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
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
  protected getPMOOptions(): {
@@ -21,6 +21,8 @@ export default class ExecutionConfig extends PMOCommand {
21
21
  static flags = {
22
22
  ...pmoBaseFlags,
23
23
  json: Flags.boolean({
24
+ char: 'm',
25
+ aliases: ['machine'],
24
26
  description: 'Output configuration as JSON (for AI agents/scripts)',
25
27
  default: false,
26
28
  }),
@@ -348,6 +350,28 @@ export default class ExecutionConfig extends PMOCommand {
348
350
  }
349
351
  setConfigValue(db, key, value, jsonMode) {
350
352
  const normalizedKey = key.toLowerCase();
353
+ // Define valid values for each config key
354
+ const VALID_VALUES = {
355
+ defaultenvironment: ['host', 'devcontainer', 'docker', 'vm'],
356
+ outputmode: ['interactive', 'print'],
357
+ sandboxed: ['true', 'false'],
358
+ 'terminal.app': ['Terminal', 'iTerm', 'Alacritty', 'Ghostty', 'Kitty', 'tmux', 'Warp', 'WezTerm'],
359
+ 'terminal.openinbackground': ['true', 'false'],
360
+ shell: ['bash', 'zsh', 'fish'],
361
+ 'tmux.controlmode': ['true', 'false'],
362
+ };
363
+ // Validate value against allowed options
364
+ const validValues = VALID_VALUES[normalizedKey];
365
+ if (validValues && !validValues.includes(value)) {
366
+ const errorMsg = `Invalid value "${value}" for ${key}. Valid options: ${validValues.join(', ')}`;
367
+ if (jsonMode) {
368
+ outputErrorAsJson('INVALID_VALUE', errorMsg, createMetadata('execution config', {}));
369
+ }
370
+ else {
371
+ this.error(errorMsg);
372
+ }
373
+ return;
374
+ }
351
375
  switch (normalizedKey) {
352
376
  case 'defaultenvironment':
353
377
  saveExecutionSetting(db, 'defaultMode', value);
@@ -4,7 +4,6 @@ export default class Execution 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(): {
@@ -12,6 +12,8 @@ export default class Execution 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
  }),
@@ -21,7 +23,7 @@ export default class Execution extends PMOCommand {
21
23
  }
22
24
  async execute() {
23
25
  const { flags } = await this.parse(Execution);
24
- const jsonModeConfig = (flags.json || flags.machine) ? { flags, commandName: 'execution' } : null;
26
+ const jsonModeConfig = flags.json ? { flags, commandName: 'execution' } : null;
25
27
  const { action } = await this.prompt([
26
28
  {
27
29
  type: 'list',
@@ -5,5 +5,8 @@ import ExecutionStop from './stop.js';
5
5
  */
6
6
  export default class ExecutionKill extends ExecutionStop {
7
7
  static description: string;
8
+ static args: {
9
+ id: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
10
+ };
8
11
  static examples: string[];
9
12
  }
@@ -5,6 +5,7 @@ import ExecutionStop from './stop.js';
5
5
  */
6
6
  export default class ExecutionKill extends ExecutionStop {
7
7
  static description = 'Stop running execution(s) (alias for "execution stop")';
8
+ static args = ExecutionStop.args;
8
9
  static examples = [
9
10
  '<%= config.bin %> <%= command.id %> WORK-001',
10
11
  '<%= config.bin %> <%= command.id %> WORK-001 --force',
@@ -6,7 +6,6 @@ export default class ExecutionList extends PMOCommand {
6
6
  status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
7
  agent: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
8
  limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
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
  };
@@ -28,6 +28,7 @@ export default class ExecutionList extends PMOCommand {
28
28
  char: 'l',
29
29
  description: 'Number of results',
30
30
  default: 20,
31
+ min: 1,
31
32
  }),
32
33
  };
33
34
  getPMOOptions() {
@@ -61,10 +62,10 @@ export default class ExecutionList extends PMOCommand {
61
62
  this.log('');
62
63
  this.log(styles.header('🚀 Agent Work'));
63
64
  this.log('═'.repeat(100));
64
- this.log(styles.muted(padEnd('ID', 11) +
65
+ this.log(styles.muted(padEnd('ID', 14) +
65
66
  padEnd('Ticket', 9) +
66
67
  padEnd('Agent', 10) +
67
- padEnd('Env', 12) +
68
+ padEnd('Env', 13) +
68
69
  padEnd('Display', 11) +
69
70
  padEnd('Perms', 8) +
70
71
  padEnd('Status', 10) +
@@ -78,10 +79,10 @@ export default class ExecutionList extends PMOCommand {
78
79
  const envStr = `${envIcon} ${exec.environment}`;
79
80
  const permsStr = exec.sandboxed ? 'safe' : 'danger';
80
81
  const permsColor = exec.sandboxed ? styles.success : styles.warning;
81
- this.log(padEnd(exec.id, 11) +
82
+ this.log(padEnd(exec.id, 14) +
82
83
  padEnd(exec.ticketId, 9) +
83
84
  padEnd(exec.agentName, 10) +
84
- padEnd(envStr, 12) +
85
+ padEnd(envStr, 13) +
85
86
  padEnd(exec.displayMode, 11) +
86
87
  permsColor(padEnd(permsStr, 8)) +
87
88
  statusColor(padEnd(exec.status, 10)) +
@@ -9,7 +9,6 @@ export default class ExecutionLogs extends PMOCommand {
9
9
  follow: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  tail: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
11
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
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(): {
@@ -32,8 +32,11 @@ export default class ExecutionLogs extends PMOCommand {
32
32
  tail: Flags.integer({
33
33
  char: 'n',
34
34
  description: 'Show last n lines',
35
+ min: 1,
35
36
  }),
36
37
  json: Flags.boolean({
38
+ char: 'm',
39
+ aliases: ['machine'],
37
40
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
38
41
  default: false,
39
42
  }),
@@ -69,7 +72,7 @@ export default class ExecutionLogs extends PMOCommand {
69
72
  }
70
73
  this.error('No executions found.');
71
74
  }
72
- const jsonModeConfig = (flags.json || flags.machine) ? { flags, commandName: 'execution logs' } : null;
75
+ const jsonModeConfig = flags.json ? { flags, commandName: 'execution logs' } : null;
73
76
  const { selectedId } = await this.prompt([
74
77
  {
75
78
  type: 'list',
@@ -10,7 +10,6 @@ export default class ExecutionStop extends PMOCommand {
10
10
  all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
11
  agent: 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
  protected getPMOOptions(): {
@@ -39,6 +39,8 @@ export default class ExecutionStop extends PMOCommand {
39
39
  description: 'Stop all executions for a specific agent',
40
40
  }),
41
41
  json: Flags.boolean({
42
+ char: 'm',
43
+ aliases: ['machine'],
42
44
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
43
45
  default: false,
44
46
  }),
@@ -137,7 +139,7 @@ export default class ExecutionStop extends PMOCommand {
137
139
  this.log(styles.muted('\nNo running executions found.\n'));
138
140
  return;
139
141
  }
140
- const jsonModeConfig = (flags.json || flags.machine) ? { flags: flags, commandName: 'execution stop' } : null;
142
+ const jsonModeConfig = flags.json ? { flags: flags, commandName: 'execution stop' } : null;
141
143
  const { selectedId } = await this.prompt([
142
144
  {
143
145
  type: 'list',
@@ -7,7 +7,6 @@ export default class ExecutionView 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
  protected getPMOOptions(): {
@@ -22,6 +22,8 @@ export default class ExecutionView extends PMOCommand {
22
22
  static flags = {
23
23
  ...pmoBaseFlags,
24
24
  json: Flags.boolean({
25
+ char: 'm',
26
+ aliases: ['machine'],
25
27
  description: 'Output execution details as JSON',
26
28
  default: false,
27
29
  }),
@@ -67,7 +69,7 @@ export default class ExecutionView extends PMOCommand {
67
69
  this.log(styles.muted('\nNo executions found.\n'));
68
70
  return;
69
71
  }
70
- const jsonModeConfig = (flags.json || flags.machine) ? { flags, commandName: 'execution view' } : null;
72
+ const jsonModeConfig = flags.json ? { flags, commandName: 'execution view' } : null;
71
73
  const { selectedId } = await this.prompt([
72
74
  {
73
75
  type: 'list',
@@ -3,7 +3,6 @@ export default class GH extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
6
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
7
  };
9
8
  run(): Promise<void>;
@@ -3,7 +3,6 @@ export default class GHLogin extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
6
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
7
  };
9
8
  run(): Promise<void>;
@@ -3,7 +3,6 @@ export default class GHStatus extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
6
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
7
  };
9
8
  run(): Promise<void>;
@@ -3,7 +3,6 @@ export default class GHToken extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
6
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
7
  };
9
8
  run(): Promise<void>;
@@ -17,6 +17,8 @@ export default class Init extends Command {
17
17
  ];
18
18
  static flags = {
19
19
  json: Flags.boolean({
20
+ char: 'm',
21
+ aliases: ['machine'],
20
22
  description: 'Agent mode: use flags instead of prompts, output JSON',
21
23
  default: false,
22
24
  }),
@@ -11,7 +11,6 @@ export default class PhaseCreate extends PMOCommand {
11
11
  description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
12
  default: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
13
  interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
14
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
15
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
16
  };
@@ -71,7 +71,6 @@ export default class PhaseCreate extends PMOCommand {
71
71
  color: flags.color,
72
72
  description: flags.description,
73
73
  default: flags.default,
74
- machine: flags.machine,
75
74
  json: flags.json,
76
75
  },
77
76
  });
@@ -83,7 +82,7 @@ export default class PhaseCreate extends PMOCommand {
83
82
  flagName: 'name',
84
83
  type: 'input',
85
84
  message: 'Phase name:',
86
- validate: (value) => value.length > 0 || 'Name is required',
85
+ validate: (value) => value.trim() ? true : 'Name cannot be empty',
87
86
  context: {
88
87
  hint: 'Provide name with: prlt phase create "Phase Name" --category <category>',
89
88
  example: 'prlt phase create "In Review" --category started',
@@ -7,7 +7,6 @@ export default class PhaseDelete 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
  };
@@ -48,7 +48,7 @@ export default class PhaseDelete extends PMOCommand {
48
48
  commandName: 'phase delete',
49
49
  baseCommand: `prlt phase delete ${args.id}`,
50
50
  jsonMode,
51
- flags: { machine: flags.machine, json: flags.json },
51
+ flags: { json: flags.json },
52
52
  });
53
53
  resolver.addPrompt({
54
54
  flagName: 'confirmed',
@@ -4,7 +4,6 @@ export default class PhaseList extends PMOCommand {
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  category: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
7
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
8
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
9
  };
@@ -7,7 +7,6 @@ export default class PhaseMove extends PMOCommand {
7
7
  };
8
8
  static flags: {
9
9
  position: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
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
  };
@@ -50,7 +50,7 @@ export default class PhaseMove extends PMOCommand {
50
50
  commandName: 'phase move',
51
51
  baseCommand: 'prlt phase move',
52
52
  jsonMode,
53
- flags: { machine: flags.machine, json: flags.json },
53
+ flags: { json: flags.json },
54
54
  });
55
55
  idResolver.addPrompt({
56
56
  flagName: 'phaseId',
@@ -83,7 +83,7 @@ export default class PhaseMove extends PMOCommand {
83
83
  commandName: 'phase move',
84
84
  baseCommand: `prlt phase move ${phaseId}`,
85
85
  jsonMode,
86
- flags: { machine: flags.machine, json: flags.json },
86
+ flags: { json: flags.json },
87
87
  });
88
88
  posResolver.addPrompt({
89
89
  flagName: 'position',
@@ -101,9 +101,17 @@ export default class PhaseMove extends PMOCommand {
101
101
  }
102
102
  newPosition = parseInt(resolved.position, 10);
103
103
  }
104
+ // Get phases in same category for validation
105
+ const allPhases = await this.storage.listPhases();
106
+ const categoryPhases = allPhases.filter(p => p.category === phase.category);
107
+ const maxPosition = categoryPhases.length - 1;
104
108
  if (newPosition < 0) {
105
109
  this.error('Position must be >= 0');
106
110
  }
111
+ if (newPosition > maxPosition) {
112
+ this.warn(`Position ${newPosition} exceeds max (${maxPosition}). Clamping to ${maxPosition}.`);
113
+ newPosition = maxPosition;
114
+ }
107
115
  const updated = await this.storage.reorderPhase(phaseId, newPosition);
108
116
  if (phase.position === updated.position) {
109
117
  this.log(styles.muted(`Phase "${updated.name}" is already at position ${updated.position}`));
@@ -8,7 +8,6 @@ export default class PhaseTemplateApply extends PMOCommand {
8
8
  static flags: {
9
9
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  json: 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(): {
@@ -24,6 +24,8 @@ export default class PhaseTemplateApply extends PMOCommand {
24
24
  default: false,
25
25
  }),
26
26
  json: Flags.boolean({
27
+ char: 'm',
28
+ aliases: ['machine'],
27
29
  description: 'Output prompt configuration as JSON (for AI agents/scripts)',
28
30
  default: false,
29
31
  }),
@@ -48,7 +50,7 @@ export default class PhaseTemplateApply extends PMOCommand {
48
50
  if (!templateId) {
49
51
  const templates = await this.storage.listPhaseTemplates();
50
52
  if (templates.length === 0) {
51
- return handleError('NO_TEMPLATES', `No phase templates found.\nCreate one with: prlt phase template create "Template Name"`);
53
+ return handleError('NO_TEMPLATES', `No phase templates found.\nCreate one with: prlt template phase create "Template Name"`);
52
54
  }
53
55
  const { selectedTemplate } = await inquirer.prompt([{
54
56
  type: 'list',
@@ -64,7 +66,7 @@ export default class PhaseTemplateApply extends PMOCommand {
64
66
  // Verify template exists
65
67
  const template = await this.storage.getPhaseTemplate(templateId);
66
68
  if (!template) {
67
- return handleError('TEMPLATE_NOT_FOUND', `Phase template not found: ${templateId}. Run 'prlt phase template list' to see available templates.`);
69
+ return handleError('TEMPLATE_NOT_FOUND', `Phase template not found: ${templateId}. Run 'prlt template phase list' to see available templates.`);
68
70
  }
69
71
  // Check if workspace has existing phases
70
72
  const existingPhases = await this.storage.listPhases();
@@ -7,7 +7,6 @@ export default class PhaseTemplateCreate extends PMOCommand {
7
7
  };
8
8
  static flags: {
9
9
  description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
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
  };
@@ -32,8 +32,8 @@ export default class PhaseTemplateCreate extends PMOCommand {
32
32
  const jsonMode = shouldOutputJson(flags);
33
33
  // Build base command with positional arg if name provided
34
34
  const baseCmd = args.name
35
- ? `prlt phase template create "${args.name}"`
36
- : 'prlt phase template create';
35
+ ? `prlt template phase create "${args.name}"`
36
+ : 'prlt template phase create';
37
37
  // Use FlagResolver for unified JSON mode and interactive handling
38
38
  const resolver = new FlagResolver({
39
39
  commandName: 'phase template create',
@@ -41,7 +41,6 @@ export default class PhaseTemplateCreate extends PMOCommand {
41
41
  jsonMode,
42
42
  flags: {
43
43
  description: flags.description,
44
- machine: flags.machine,
45
44
  json: flags.json,
46
45
  },
47
46
  args: { name: args.name },
@@ -54,11 +53,11 @@ export default class PhaseTemplateCreate extends PMOCommand {
54
53
  message: 'Template name:',
55
54
  validate: (value) => value.length > 0 || 'Name is required',
56
55
  context: {
57
- hint: 'Provide name with: prlt phase template create "Template Name"',
58
- example: 'prlt phase template create "My Phases" --description "Custom phases"',
56
+ hint: 'Provide name with: prlt template phase create "Template Name"',
57
+ example: 'prlt template phase create "My Phases" --description "Custom phases"',
59
58
  },
60
59
  // For input prompts, the agent will re-run with the positional arg
61
- getCommand: (value) => `prlt phase template create "${value}" --json`,
60
+ getCommand: (value) => `prlt template phase create "${value}" --json`,
62
61
  });
63
62
  }
64
63
  // Description prompt - optional (only in interactive mode without --json)
@@ -75,7 +74,7 @@ export default class PhaseTemplateCreate extends PMOCommand {
75
74
  const templateName = args.name || resolved.name;
76
75
  // Validate required fields
77
76
  if (!templateName) {
78
- this.error('Name is required. Provide as positional argument: prlt phase template create "Template Name"');
77
+ this.error('Name is required. Provide as positional argument: prlt template phase create "Template Name"');
79
78
  }
80
79
  // Get description from flags or resolved
81
80
  const description = flags.description ?? resolved.description ?? undefined;
@@ -8,7 +8,6 @@ export default class PhaseTemplateDelete extends PMOCommand {
8
8
  static flags: {
9
9
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  json: 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(): {
@@ -23,6 +23,8 @@ export default class PhaseTemplateDelete extends PMOCommand {
23
23
  default: false,
24
24
  }),
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
  }),
@@ -5,7 +5,6 @@ export default class PhaseTemplateMenu 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(): {
@@ -11,6 +11,8 @@ export default class PhaseTemplateMenu 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
  }),
@@ -6,7 +6,6 @@ export default class PhaseTemplateList 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(): {