@proletariat/cli 0.3.80 → 0.3.82

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 (373) hide show
  1. package/README.md +2 -46
  2. package/dist/commands/action/run.js +2 -2
  3. package/dist/commands/action/run.js.map +1 -1
  4. package/dist/commands/agent/staff/add.d.ts +17 -1
  5. package/dist/commands/agent/staff/add.js +274 -1
  6. package/dist/commands/agent/staff/add.js.map +1 -1
  7. package/dist/commands/agent/staff/list.d.ts +10 -1
  8. package/dist/commands/agent/staff/list.js +103 -1
  9. package/dist/commands/agent/staff/list.js.map +1 -1
  10. package/dist/commands/agent/staff/remove.d.ts +18 -1
  11. package/dist/commands/agent/staff/remove.js +143 -1
  12. package/dist/commands/agent/staff/remove.js.map +1 -1
  13. package/dist/commands/{epic/activate.d.ts → pr/close.d.ts} +8 -2
  14. package/dist/commands/pr/close.js +157 -0
  15. package/dist/commands/pr/close.js.map +1 -0
  16. package/dist/commands/pr/index.js +6 -2
  17. package/dist/commands/pr/index.js.map +1 -1
  18. package/dist/commands/pr/list.d.ts +1 -0
  19. package/dist/commands/pr/list.js +37 -3
  20. package/dist/commands/pr/list.js.map +1 -1
  21. package/dist/commands/pr/merge.js +1 -1
  22. package/dist/commands/pr/merge.js.map +1 -1
  23. package/dist/commands/pr/status.js +33 -1
  24. package/dist/commands/pr/status.js.map +1 -1
  25. package/dist/commands/self-update.d.ts +7 -14
  26. package/dist/commands/self-update.js +11 -179
  27. package/dist/commands/self-update.js.map +1 -1
  28. package/dist/commands/{workflow/switch.d.ts → ticket/cancel.d.ts} +4 -2
  29. package/dist/commands/ticket/cancel.js +204 -0
  30. package/dist/commands/ticket/cancel.js.map +1 -0
  31. package/dist/commands/ticket/create.d.ts +7 -2
  32. package/dist/commands/ticket/create.js +45 -29
  33. package/dist/commands/ticket/create.js.map +1 -1
  34. package/dist/commands/ticket/link/index.js +0 -12
  35. package/dist/commands/ticket/link/index.js.map +1 -1
  36. package/dist/commands/ticket/move.d.ts +1 -0
  37. package/dist/commands/ticket/move.js +10 -3
  38. package/dist/commands/ticket/move.js.map +1 -1
  39. package/dist/commands/update.d.ts +18 -0
  40. package/dist/commands/update.js +184 -0
  41. package/dist/commands/update.js.map +1 -0
  42. package/dist/lib/database/index.js +0 -134
  43. package/dist/lib/database/index.js.map +1 -1
  44. package/dist/lib/database/migrations/0006_drop_theme_names_used.d.ts +8 -0
  45. package/dist/lib/database/migrations/0006_drop_theme_names_used.js +30 -0
  46. package/dist/lib/database/migrations/0006_drop_theme_names_used.js.map +1 -0
  47. package/dist/lib/database/migrations/0007_add_worktree_columns.d.ts +8 -0
  48. package/dist/lib/database/migrations/0007_add_worktree_columns.js +24 -0
  49. package/dist/lib/database/migrations/0007_add_worktree_columns.js.map +1 -0
  50. package/dist/lib/database/migrations/0008_add_agent_mount_mode.d.ts +8 -0
  51. package/dist/lib/database/migrations/0008_add_agent_mount_mode.js +18 -0
  52. package/dist/lib/database/migrations/0008_add_agent_mount_mode.js.map +1 -0
  53. package/dist/lib/database/migrations/0009_create_media_items.d.ts +7 -0
  54. package/dist/lib/database/migrations/0009_create_media_items.js +29 -0
  55. package/dist/lib/database/migrations/0009_create_media_items.js.map +1 -0
  56. package/dist/lib/database/migrations/0010_add_ticket_position.d.ts +9 -0
  57. package/dist/lib/database/migrations/0010_add_ticket_position.js +44 -0
  58. package/dist/lib/database/migrations/0010_add_ticket_position.js.map +1 -0
  59. package/dist/lib/database/migrations/index.js +10 -0
  60. package/dist/lib/database/migrations/index.js.map +1 -1
  61. package/dist/lib/events/events.d.ts +2 -1
  62. package/dist/lib/pmo/storage/dependencies.js +45 -21
  63. package/dist/lib/pmo/storage/dependencies.js.map +1 -1
  64. package/dist/lib/pmo/storage/statuses.d.ts +2 -0
  65. package/dist/lib/pmo/storage/statuses.js +209 -150
  66. package/dist/lib/pmo/storage/statuses.js.map +1 -1
  67. package/dist/lib/pr/index.d.ts +14 -0
  68. package/dist/lib/pr/index.js +48 -0
  69. package/dist/lib/pr/index.js.map +1 -1
  70. package/dist/lib/update-check.js +1 -1
  71. package/dist/lib/update-check.js.map +1 -1
  72. package/dist/lib/update-prompt.js +1 -1
  73. package/dist/lib/work-lifecycle/events.d.ts +11 -0
  74. package/oclif.manifest.json +5060 -11723
  75. package/package.json +1 -1
  76. package/dist/commands/agents/index.d.ts +0 -11
  77. package/dist/commands/agents/index.js +0 -105
  78. package/dist/commands/agents/index.js.map +0 -1
  79. package/dist/commands/agents/themes/add-names.d.ts +0 -1
  80. package/dist/commands/agents/themes/add-names.js +0 -2
  81. package/dist/commands/agents/themes/add-names.js.map +0 -1
  82. package/dist/commands/agents/themes/create.d.ts +0 -1
  83. package/dist/commands/agents/themes/create.js +0 -2
  84. package/dist/commands/agents/themes/create.js.map +0 -1
  85. package/dist/commands/agents/themes/list.d.ts +0 -1
  86. package/dist/commands/agents/themes/list.js +0 -2
  87. package/dist/commands/agents/themes/list.js.map +0 -1
  88. package/dist/commands/category/create.d.ts +0 -19
  89. package/dist/commands/category/create.js +0 -130
  90. package/dist/commands/category/create.js.map +0 -1
  91. package/dist/commands/category/delete.d.ts +0 -18
  92. package/dist/commands/category/delete.js +0 -124
  93. package/dist/commands/category/delete.js.map +0 -1
  94. package/dist/commands/category/index.d.ts +0 -16
  95. package/dist/commands/category/index.js +0 -88
  96. package/dist/commands/category/index.js.map +0 -1
  97. package/dist/commands/category/list.d.ts +0 -19
  98. package/dist/commands/category/list.js +0 -111
  99. package/dist/commands/category/list.js.map +0 -1
  100. package/dist/commands/category/rename.d.ts +0 -19
  101. package/dist/commands/category/rename.js +0 -160
  102. package/dist/commands/category/rename.js.map +0 -1
  103. package/dist/commands/epic/activate.js +0 -107
  104. package/dist/commands/epic/activate.js.map +0 -1
  105. package/dist/commands/epic/archive.d.ts +0 -15
  106. package/dist/commands/epic/archive.js +0 -118
  107. package/dist/commands/epic/archive.js.map +0 -1
  108. package/dist/commands/epic/create.d.ts +0 -17
  109. package/dist/commands/epic/create.js +0 -179
  110. package/dist/commands/epic/create.js.map +0 -1
  111. package/dist/commands/epic/delete.d.ts +0 -15
  112. package/dist/commands/epic/delete.js +0 -129
  113. package/dist/commands/epic/delete.js.map +0 -1
  114. package/dist/commands/epic/index.d.ts +0 -14
  115. package/dist/commands/epic/index.js +0 -88
  116. package/dist/commands/epic/index.js.map +0 -1
  117. package/dist/commands/epic/list.d.ts +0 -13
  118. package/dist/commands/epic/list.js +0 -103
  119. package/dist/commands/epic/list.js.map +0 -1
  120. package/dist/commands/epic/move.d.ts +0 -16
  121. package/dist/commands/epic/move.js +0 -162
  122. package/dist/commands/epic/move.js.map +0 -1
  123. package/dist/commands/epic/progress.d.ts +0 -17
  124. package/dist/commands/epic/progress.js +0 -170
  125. package/dist/commands/epic/progress.js.map +0 -1
  126. package/dist/commands/epic/project.d.ts +0 -16
  127. package/dist/commands/epic/project.js +0 -199
  128. package/dist/commands/epic/project.js.map +0 -1
  129. package/dist/commands/epic/reorder.d.ts +0 -22
  130. package/dist/commands/epic/reorder.js +0 -152
  131. package/dist/commands/epic/reorder.js.map +0 -1
  132. package/dist/commands/epic/show.d.ts +0 -13
  133. package/dist/commands/epic/show.js +0 -17
  134. package/dist/commands/epic/show.js.map +0 -1
  135. package/dist/commands/epic/spec.d.ts +0 -17
  136. package/dist/commands/epic/spec.js +0 -189
  137. package/dist/commands/epic/spec.js.map +0 -1
  138. package/dist/commands/epic/ticket.d.ts +0 -21
  139. package/dist/commands/epic/ticket.js +0 -300
  140. package/dist/commands/epic/ticket.js.map +0 -1
  141. package/dist/commands/epic/view.d.ts +0 -14
  142. package/dist/commands/epic/view.js +0 -141
  143. package/dist/commands/epic/view.js.map +0 -1
  144. package/dist/commands/execution/kill.d.ts +0 -12
  145. package/dist/commands/execution/kill.js +0 -18
  146. package/dist/commands/execution/kill.js.map +0 -1
  147. package/dist/commands/label/create.d.ts +0 -20
  148. package/dist/commands/label/create.js +0 -58
  149. package/dist/commands/label/create.js.map +0 -1
  150. package/dist/commands/label/delete.d.ts +0 -17
  151. package/dist/commands/label/delete.js +0 -33
  152. package/dist/commands/label/delete.js.map +0 -1
  153. package/dist/commands/label/group/create.d.ts +0 -20
  154. package/dist/commands/label/group/create.js +0 -56
  155. package/dist/commands/label/group/create.js.map +0 -1
  156. package/dist/commands/label/group/list.d.ts +0 -14
  157. package/dist/commands/label/group/list.js +0 -53
  158. package/dist/commands/label/group/list.js.map +0 -1
  159. package/dist/commands/label/index.d.ts +0 -15
  160. package/dist/commands/label/index.js +0 -59
  161. package/dist/commands/label/index.js.map +0 -1
  162. package/dist/commands/label/list.d.ts +0 -16
  163. package/dist/commands/label/list.js +0 -84
  164. package/dist/commands/label/list.js.map +0 -1
  165. package/dist/commands/link/create.d.ts +0 -16
  166. package/dist/commands/link/create.js +0 -136
  167. package/dist/commands/link/create.js.map +0 -1
  168. package/dist/commands/link/index.d.ts +0 -14
  169. package/dist/commands/link/index.js +0 -82
  170. package/dist/commands/link/index.js.map +0 -1
  171. package/dist/commands/link/list.d.ts +0 -18
  172. package/dist/commands/link/list.js +0 -178
  173. package/dist/commands/link/list.js.map +0 -1
  174. package/dist/commands/link/remove.d.ts +0 -16
  175. package/dist/commands/link/remove.js +0 -115
  176. package/dist/commands/link/remove.js.map +0 -1
  177. package/dist/commands/media/add.d.ts +0 -19
  178. package/dist/commands/media/add.js +0 -98
  179. package/dist/commands/media/add.js.map +0 -1
  180. package/dist/commands/media/index.d.ts +0 -14
  181. package/dist/commands/media/index.js +0 -93
  182. package/dist/commands/media/index.js.map +0 -1
  183. package/dist/commands/media/list.d.ts +0 -15
  184. package/dist/commands/media/list.js +0 -94
  185. package/dist/commands/media/list.js.map +0 -1
  186. package/dist/commands/media/preprocess.d.ts +0 -19
  187. package/dist/commands/media/preprocess.js +0 -91
  188. package/dist/commands/media/preprocess.js.map +0 -1
  189. package/dist/commands/media/remove.d.ts +0 -18
  190. package/dist/commands/media/remove.js +0 -105
  191. package/dist/commands/media/remove.js.map +0 -1
  192. package/dist/commands/media/show.d.ts +0 -17
  193. package/dist/commands/media/show.js +0 -122
  194. package/dist/commands/media/show.js.map +0 -1
  195. package/dist/commands/phase/create.d.ts +0 -22
  196. package/dist/commands/phase/create.js +0 -165
  197. package/dist/commands/phase/create.js.map +0 -1
  198. package/dist/commands/phase/delete.d.ts +0 -18
  199. package/dist/commands/phase/delete.js +0 -75
  200. package/dist/commands/phase/delete.js.map +0 -1
  201. package/dist/commands/phase/list.d.ts +0 -13
  202. package/dist/commands/phase/list.js +0 -75
  203. package/dist/commands/phase/list.js.map +0 -1
  204. package/dist/commands/phase/move.d.ts +0 -18
  205. package/dist/commands/phase/move.js +0 -124
  206. package/dist/commands/phase/move.js.map +0 -1
  207. package/dist/commands/phase/template/apply.d.ts +0 -26
  208. package/dist/commands/phase/template/apply.js +0 -15
  209. package/dist/commands/phase/template/apply.js.map +0 -1
  210. package/dist/commands/phase/template/create.d.ts +0 -23
  211. package/dist/commands/phase/template/create.js +0 -15
  212. package/dist/commands/phase/template/create.js.map +0 -1
  213. package/dist/commands/phase/template/delete.d.ts +0 -18
  214. package/dist/commands/phase/template/delete.js +0 -63
  215. package/dist/commands/phase/template/delete.js.map +0 -1
  216. package/dist/commands/phase/template/list.d.ts +0 -17
  217. package/dist/commands/phase/template/list.js +0 -90
  218. package/dist/commands/phase/template/list.js.map +0 -1
  219. package/dist/commands/phase/template/update.d.ts +0 -1
  220. package/dist/commands/phase/template/update.js +0 -2
  221. package/dist/commands/phase/template/update.js.map +0 -1
  222. package/dist/commands/phase/update.d.ts +0 -23
  223. package/dist/commands/phase/update.js +0 -209
  224. package/dist/commands/phase/update.js.map +0 -1
  225. package/dist/commands/priority/add.d.ts +0 -16
  226. package/dist/commands/priority/add.js +0 -71
  227. package/dist/commands/priority/add.js.map +0 -1
  228. package/dist/commands/priority/list.d.ts +0 -11
  229. package/dist/commands/priority/list.js +0 -35
  230. package/dist/commands/priority/list.js.map +0 -1
  231. package/dist/commands/priority/remove.d.ts +0 -14
  232. package/dist/commands/priority/remove.js +0 -55
  233. package/dist/commands/priority/remove.js.map +0 -1
  234. package/dist/commands/priority/set.d.ts +0 -15
  235. package/dist/commands/priority/set.js +0 -61
  236. package/dist/commands/priority/set.js.map +0 -1
  237. package/dist/commands/roadmap/add-project.d.ts +0 -19
  238. package/dist/commands/roadmap/add-project.js +0 -119
  239. package/dist/commands/roadmap/add-project.js.map +0 -1
  240. package/dist/commands/roadmap/create.d.ts +0 -22
  241. package/dist/commands/roadmap/create.js +0 -168
  242. package/dist/commands/roadmap/create.js.map +0 -1
  243. package/dist/commands/roadmap/delete.d.ts +0 -18
  244. package/dist/commands/roadmap/delete.js +0 -96
  245. package/dist/commands/roadmap/delete.js.map +0 -1
  246. package/dist/commands/roadmap/generate.d.ts +0 -24
  247. package/dist/commands/roadmap/generate.js +0 -201
  248. package/dist/commands/roadmap/generate.js.map +0 -1
  249. package/dist/commands/roadmap/index.d.ts +0 -14
  250. package/dist/commands/roadmap/index.js +0 -57
  251. package/dist/commands/roadmap/index.js.map +0 -1
  252. package/dist/commands/roadmap/list.d.ts +0 -14
  253. package/dist/commands/roadmap/list.js +0 -58
  254. package/dist/commands/roadmap/list.js.map +0 -1
  255. package/dist/commands/roadmap/remove-project.d.ts +0 -19
  256. package/dist/commands/roadmap/remove-project.js +0 -124
  257. package/dist/commands/roadmap/remove-project.js.map +0 -1
  258. package/dist/commands/roadmap/reorder.d.ts +0 -18
  259. package/dist/commands/roadmap/reorder.js +0 -147
  260. package/dist/commands/roadmap/reorder.js.map +0 -1
  261. package/dist/commands/roadmap/update.d.ts +0 -20
  262. package/dist/commands/roadmap/update.js +0 -134
  263. package/dist/commands/roadmap/update.js.map +0 -1
  264. package/dist/commands/roadmap/view.d.ts +0 -17
  265. package/dist/commands/roadmap/view.js +0 -93
  266. package/dist/commands/roadmap/view.js.map +0 -1
  267. package/dist/commands/staff/add.d.ts +0 -17
  268. package/dist/commands/staff/add.js +0 -275
  269. package/dist/commands/staff/add.js.map +0 -1
  270. package/dist/commands/staff/index.d.ts +0 -15
  271. package/dist/commands/staff/index.js +0 -88
  272. package/dist/commands/staff/index.js.map +0 -1
  273. package/dist/commands/staff/list.d.ts +0 -10
  274. package/dist/commands/staff/list.js +0 -104
  275. package/dist/commands/staff/list.js.map +0 -1
  276. package/dist/commands/staff/remove.d.ts +0 -18
  277. package/dist/commands/staff/remove.js +0 -144
  278. package/dist/commands/staff/remove.js.map +0 -1
  279. package/dist/commands/status/category.d.ts +0 -15
  280. package/dist/commands/status/category.js +0 -64
  281. package/dist/commands/status/category.js.map +0 -1
  282. package/dist/commands/status/create.d.ts +0 -21
  283. package/dist/commands/status/create.js +0 -161
  284. package/dist/commands/status/create.js.map +0 -1
  285. package/dist/commands/status/delete.d.ts +0 -14
  286. package/dist/commands/status/delete.js +0 -86
  287. package/dist/commands/status/delete.js.map +0 -1
  288. package/dist/commands/status/index.d.ts +0 -15
  289. package/dist/commands/status/index.js +0 -98
  290. package/dist/commands/status/index.js.map +0 -1
  291. package/dist/commands/status/list.d.ts +0 -13
  292. package/dist/commands/status/list.js +0 -97
  293. package/dist/commands/status/list.js.map +0 -1
  294. package/dist/commands/status/move.d.ts +0 -15
  295. package/dist/commands/status/move.js +0 -126
  296. package/dist/commands/status/move.js.map +0 -1
  297. package/dist/commands/status/update.d.ts +0 -20
  298. package/dist/commands/status/update.js +0 -214
  299. package/dist/commands/status/update.js.map +0 -1
  300. package/dist/commands/template/apply.d.ts +0 -28
  301. package/dist/commands/template/apply.js +0 -258
  302. package/dist/commands/template/apply.js.map +0 -1
  303. package/dist/commands/template/create.d.ts +0 -28
  304. package/dist/commands/template/create.js +0 -238
  305. package/dist/commands/template/create.js.map +0 -1
  306. package/dist/commands/template/delete.d.ts +0 -16
  307. package/dist/commands/template/delete.js +0 -141
  308. package/dist/commands/template/delete.js.map +0 -1
  309. package/dist/commands/template/index.d.ts +0 -11
  310. package/dist/commands/template/index.js +0 -65
  311. package/dist/commands/template/index.js.map +0 -1
  312. package/dist/commands/template/list.d.ts +0 -19
  313. package/dist/commands/template/list.js +0 -155
  314. package/dist/commands/template/list.js.map +0 -1
  315. package/dist/commands/template/save.d.ts +0 -17
  316. package/dist/commands/template/save.js +0 -101
  317. package/dist/commands/template/save.js.map +0 -1
  318. package/dist/commands/template/update.d.ts +0 -19
  319. package/dist/commands/template/update.js +0 -94
  320. package/dist/commands/template/update.js.map +0 -1
  321. package/dist/commands/ticket/template/apply.d.ts +0 -26
  322. package/dist/commands/ticket/template/apply.js +0 -15
  323. package/dist/commands/ticket/template/apply.js.map +0 -1
  324. package/dist/commands/ticket/template/delete.d.ts +0 -18
  325. package/dist/commands/ticket/template/delete.js +0 -63
  326. package/dist/commands/ticket/template/delete.js.map +0 -1
  327. package/dist/commands/ticket/template/list.d.ts +0 -17
  328. package/dist/commands/ticket/template/list.js +0 -79
  329. package/dist/commands/ticket/template/list.js.map +0 -1
  330. package/dist/commands/ticket/template/save.d.ts +0 -17
  331. package/dist/commands/ticket/template/save.js +0 -99
  332. package/dist/commands/ticket/template/save.js.map +0 -1
  333. package/dist/commands/work/spawn-all.d.ts +0 -19
  334. package/dist/commands/work/spawn-all.js +0 -64
  335. package/dist/commands/work/spawn-all.js.map +0 -1
  336. package/dist/commands/workflow/create.d.ts +0 -19
  337. package/dist/commands/workflow/create.js +0 -118
  338. package/dist/commands/workflow/create.js.map +0 -1
  339. package/dist/commands/workflow/delete.d.ts +0 -18
  340. package/dist/commands/workflow/delete.js +0 -108
  341. package/dist/commands/workflow/delete.js.map +0 -1
  342. package/dist/commands/workflow/index.d.ts +0 -16
  343. package/dist/commands/workflow/index.js +0 -73
  344. package/dist/commands/workflow/index.js.map +0 -1
  345. package/dist/commands/workflow/list.d.ts +0 -16
  346. package/dist/commands/workflow/list.js +0 -73
  347. package/dist/commands/workflow/list.js.map +0 -1
  348. package/dist/commands/workflow/setup.d.ts +0 -24
  349. package/dist/commands/workflow/setup.js +0 -351
  350. package/dist/commands/workflow/setup.js.map +0 -1
  351. package/dist/commands/workflow/show.d.ts +0 -13
  352. package/dist/commands/workflow/show.js +0 -17
  353. package/dist/commands/workflow/show.js.map +0 -1
  354. package/dist/commands/workflow/switch.js +0 -144
  355. package/dist/commands/workflow/switch.js.map +0 -1
  356. package/dist/commands/workflow/view.d.ts +0 -17
  357. package/dist/commands/workflow/view.js +0 -106
  358. package/dist/commands/workflow/view.js.map +0 -1
  359. package/dist/commands/workflow-rule/create.d.ts +0 -19
  360. package/dist/commands/workflow-rule/create.js +0 -141
  361. package/dist/commands/workflow-rule/create.js.map +0 -1
  362. package/dist/commands/workflow-rule/delete.d.ts +0 -18
  363. package/dist/commands/workflow-rule/delete.js +0 -72
  364. package/dist/commands/workflow-rule/delete.js.map +0 -1
  365. package/dist/commands/workflow-rule/index.d.ts +0 -16
  366. package/dist/commands/workflow-rule/index.js +0 -83
  367. package/dist/commands/workflow-rule/index.js.map +0 -1
  368. package/dist/commands/workflow-rule/list.d.ts +0 -17
  369. package/dist/commands/workflow-rule/list.js +0 -72
  370. package/dist/commands/workflow-rule/list.js.map +0 -1
  371. package/dist/commands/workflow-rule/update.d.ts +0 -22
  372. package/dist/commands/workflow-rule/update.js +0 -84
  373. package/dist/commands/workflow-rule/update.js.map +0 -1
@@ -1,275 +0,0 @@
1
- import { Args, Flags } from '@oclif/core';
2
- import chalk from 'chalk';
3
- import inquirer from 'inquirer';
4
- import { PromptCommand } from '../../lib/prompt-command.js';
5
- import { machineOutputFlags } from '../../lib/pmo/index.js';
6
- import { getWorkspaceInfo, validateAgentNames, addAgentsToWorkspace } from '../../lib/agents/commands.js';
7
- import { ensureBuiltinThemes, BUILTIN_THEMES, isValidAgentName, normalizeAgentName } from '../../lib/themes.js';
8
- import { getTheme, getThemes, getAvailableThemeNames, getActiveTheme } from '../../lib/database/index.js';
9
- import { shouldOutputJson, outputPromptAsJson, outputErrorAsJson, createMetadata, buildPromptConfig, } from '../../lib/prompt-json.js';
10
- export default class Add extends PromptCommand {
11
- static description = 'Add new agents to the workspace';
12
- static examples = [
13
- '<%= config.bin %> <%= command.id %> zeus',
14
- '<%= config.bin %> <%= command.id %> agent-1 agent-2',
15
- '<%= config.bin %> <%= command.id %> --theme billionaires',
16
- '<%= config.bin %> <%= command.id %> my-agent --no-container',
17
- ];
18
- static args = {
19
- names: Args.string({
20
- description: 'Agent names to add (space-separated)',
21
- required: false,
22
- }),
23
- };
24
- static flags = {
25
- 'no-container': Flags.boolean({
26
- description: 'Skip devcontainer setup (not recommended for autonomous agents)',
27
- default: false,
28
- }),
29
- theme: Flags.string({
30
- char: 't',
31
- description: 'Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)',
32
- }),
33
- ...machineOutputFlags,
34
- clone: Flags.boolean({
35
- description: 'Use independent git clone instead of worktree (more isolation, no real-time sync)',
36
- default: false,
37
- }),
38
- };
39
- static strict = false; // Allow multiple agent names
40
- async run() {
41
- const { argv, flags } = await this.parse(Add);
42
- // Check if JSON output mode is active
43
- const jsonMode = shouldOutputJson(flags);
44
- try {
45
- // Get workspace information
46
- const workspaceInfo = getWorkspaceInfo();
47
- let agentNames = argv;
48
- let themeId;
49
- // Theme mode: pick from a specific theme
50
- if (flags.theme) {
51
- // Ensure built-in themes are seeded
52
- ensureBuiltinThemes(workspaceInfo.path);
53
- // Validate theme exists
54
- const theme = getTheme(workspaceInfo.path, flags.theme);
55
- if (!theme) {
56
- const available = BUILTIN_THEMES.map(t => t.name).join(', ');
57
- if (jsonMode) {
58
- outputErrorAsJson('THEME_NOT_FOUND', `Theme "${flags.theme}" not found. Available: ${available}`, createMetadata('staff add', flags));
59
- return;
60
- }
61
- this.error(`Theme "${flags.theme}" not found. Available: ${available}`);
62
- }
63
- themeId = theme.id;
64
- // Get available names from theme
65
- const availableNames = getAvailableThemeNames(workspaceInfo.path, themeId);
66
- if (availableNames.length === 0) {
67
- if (jsonMode) {
68
- outputErrorAsJson('NO_AVAILABLE_NAMES', `No available names in theme "${theme.display_name}". All names are in use.`, createMetadata('staff add', flags));
69
- return;
70
- }
71
- this.error(`No available names in theme "${theme.display_name}". All names are in use.`);
72
- }
73
- // Build choices once, use for both JSON and interactive modes
74
- const nameChoices = availableNames.map(name => ({ name, value: name }));
75
- const selectMessage = `Select agent names from ${theme.display_name}:`;
76
- // In JSON mode, output theme names selection prompt
77
- if (jsonMode) {
78
- outputPromptAsJson(buildPromptConfig('checkbox', 'names', selectMessage, nameChoices), createMetadata('staff add', flags));
79
- return;
80
- }
81
- // Interactive selection from theme
82
- const { selected } = await this.prompt([{
83
- type: 'checkbox',
84
- name: 'selected',
85
- message: selectMessage,
86
- choices: nameChoices,
87
- validate: (input) => input.length > 0 || 'Please select at least one name'
88
- }], null);
89
- agentNames = selected;
90
- }
91
- // Interactive mode: show names from workspace's active theme
92
- else if (agentNames.length === 0) {
93
- // Ensure built-in themes are seeded
94
- ensureBuiltinThemes(workspaceInfo.path);
95
- // Check if workspace has an active theme
96
- const activeTheme = getActiveTheme(workspaceInfo.path);
97
- if (activeTheme) {
98
- // Workspace has a theme - show names from it directly
99
- themeId = activeTheme.id;
100
- const availableNames = getAvailableThemeNames(workspaceInfo.path, activeTheme.id);
101
- if (availableNames.length === 0) {
102
- if (jsonMode) {
103
- outputErrorAsJson('NO_AVAILABLE_NAMES', `No available names in ${activeTheme.display_name}. All names are in use.`, createMetadata('staff add', flags));
104
- return;
105
- }
106
- this.log(chalk.yellow(`No available names in ${activeTheme.display_name}. All names are in use.`));
107
- this.log(chalk.blue('Use --theme to pick from a different theme, or enter names directly.'));
108
- return;
109
- }
110
- // Build choices once, use for both JSON and interactive modes
111
- const nameChoices = [
112
- ...availableNames.map(name => ({ name, value: name })),
113
- { name: 'Enter custom name(s)...', value: '__custom__' },
114
- ];
115
- const selectMessage = `Select agents from ${activeTheme.display_name}:`;
116
- // In JSON mode, output agent names selection prompt
117
- if (jsonMode) {
118
- outputPromptAsJson(buildPromptConfig('checkbox', 'names', selectMessage, nameChoices), createMetadata('staff add', flags));
119
- return;
120
- }
121
- // Add separator before custom option for interactive mode
122
- const choices = [
123
- ...nameChoices.slice(0, -1),
124
- new inquirer.Separator(),
125
- { name: chalk.blue(nameChoices[nameChoices.length - 1].name), value: nameChoices[nameChoices.length - 1].value }
126
- ];
127
- const { selected } = await this.prompt([{
128
- type: 'checkbox',
129
- name: 'selected',
130
- message: selectMessage,
131
- choices,
132
- pageSize: 20,
133
- validate: (input) => input.length > 0 || 'Please select at least one name'
134
- }], null);
135
- // Check if custom was selected
136
- const hasCustom = selected.includes('__custom__');
137
- const themedSelections = selected.filter((s) => s !== '__custom__');
138
- if (hasCustom) {
139
- const { customNames } = await this.prompt([{
140
- type: 'input',
141
- name: 'customNames',
142
- message: 'Enter custom agent names (space-separated):',
143
- validate: (input) => {
144
- if (!input.trim())
145
- return 'Please enter at least one name';
146
- return true;
147
- }
148
- }], null);
149
- const rawNames = customNames.trim().split(/\s+/);
150
- const normalizedCustom = rawNames.map((n) => normalizeAgentName(n)).filter((n) => n && isValidAgentName(n));
151
- agentNames.push(...normalizedCustom);
152
- }
153
- if (themedSelections.length > 0) {
154
- agentNames.push(...themedSelections);
155
- }
156
- }
157
- else {
158
- // No active theme - prompt to pick one or enter custom names
159
- const themes = getThemes(workspaceInfo.path);
160
- const themesWithNames = themes.map(t => ({
161
- theme: t,
162
- availableCount: getAvailableThemeNames(workspaceInfo.path, t.id).length
163
- })).filter(t => t.availableCount > 0);
164
- // Build choices once, use for both JSON and interactive modes
165
- const themeChoices = [
166
- ...themesWithNames.map(({ theme, availableCount }) => ({
167
- name: `${theme.display_name} (${availableCount} available)`,
168
- value: theme.id
169
- })),
170
- { name: 'Enter custom name(s)', value: '__custom__' },
171
- ];
172
- const selectMessage = 'No theme set. Select a theme or enter custom names:';
173
- // In JSON mode, output theme selection prompt
174
- if (jsonMode) {
175
- outputPromptAsJson(buildPromptConfig('list', 'theme', selectMessage, themeChoices), createMetadata('staff add', flags));
176
- return;
177
- }
178
- // Add separator and styling for interactive mode
179
- const interactiveChoices = [
180
- ...themeChoices.slice(0, -1).map(c => ({
181
- name: c.name.replace(/\((\d+) available\)/, chalk.dim(`($1 available)`)),
182
- value: c.value
183
- })),
184
- new inquirer.Separator(),
185
- { name: chalk.blue(themeChoices[themeChoices.length - 1].name), value: themeChoices[themeChoices.length - 1].value }
186
- ];
187
- const { selectedTheme } = await this.prompt([{
188
- type: 'list',
189
- name: 'selectedTheme',
190
- message: selectMessage,
191
- choices: interactiveChoices
192
- }], null);
193
- if (selectedTheme === '__custom__') {
194
- const { customNames } = await this.prompt([{
195
- type: 'input',
196
- name: 'customNames',
197
- message: 'Enter custom agent names (space-separated):',
198
- validate: (input) => {
199
- if (!input.trim())
200
- return 'Please enter at least one name';
201
- return true;
202
- }
203
- }], null);
204
- const rawNames = customNames.trim().split(/\s+/);
205
- const normalizedCustom = rawNames.map((n) => ({
206
- original: n,
207
- normalized: normalizeAgentName(n)
208
- })).filter((x) => x.normalized && isValidAgentName(x.normalized));
209
- const changed = normalizedCustom.filter((x) => x.original !== x.normalized);
210
- if (changed.length > 0) {
211
- this.log(chalk.blue('Normalized names:'));
212
- for (const { original, normalized } of changed) {
213
- this.log(chalk.dim(` ${original} → ${normalized}`));
214
- }
215
- }
216
- agentNames = normalizedCustom.map((x) => x.normalized);
217
- }
218
- else {
219
- themeId = selectedTheme;
220
- const theme = getTheme(workspaceInfo.path, selectedTheme);
221
- const availableNames = getAvailableThemeNames(workspaceInfo.path, selectedTheme);
222
- const { selected } = await this.prompt([{
223
- type: 'checkbox',
224
- name: 'selected',
225
- message: `Select agents from ${theme?.display_name}:`,
226
- choices: availableNames.map(name => ({ name, value: name })),
227
- pageSize: 20,
228
- validate: (input) => input.length > 0 || 'Please select at least one name'
229
- }], null);
230
- agentNames = selected;
231
- }
232
- }
233
- if (agentNames.length === 0) {
234
- this.log(chalk.yellow('No agents specified.'));
235
- return;
236
- }
237
- }
238
- // Validate agent names (skip for theme mode - already validated)
239
- if (!flags.theme) {
240
- const { valid, invalid } = validateAgentNames(agentNames);
241
- if (invalid.length > 0) {
242
- this.log(chalk.red(`Invalid agent names: ${invalid.join(', ')}`));
243
- this.log(chalk.yellow('Agent names must be lowercase alphanumeric with optional hyphens/underscores.'));
244
- if (valid.length === 0) {
245
- return;
246
- }
247
- this.log(chalk.blue(`Proceeding with valid agents: ${valid.join(', ')}`));
248
- }
249
- agentNames = valid;
250
- }
251
- // Add agents to workspace
252
- const addedAgents = await addAgentsToWorkspace(workspaceInfo, agentNames, {
253
- skipDevcontainer: flags['no-container'],
254
- themeId,
255
- mountMode: flags.clone ? 'clone' : 'worktree',
256
- });
257
- if (addedAgents.length === 0) {
258
- this.log(chalk.yellow('No new agents to add. All specified agents already exist.'));
259
- return;
260
- }
261
- this.log(chalk.green(`\n Successfully added ${addedAgents.length} agent(s): ${addedAgents.join(', ')}`));
262
- if (themeId) {
263
- const theme = getTheme(workspaceInfo.path, themeId);
264
- this.log(chalk.blue(` From theme: ${theme?.display_name || themeId}`));
265
- }
266
- if (!flags['no-container']) {
267
- this.log(chalk.blue(' Devcontainer config created for isolated execution'));
268
- }
269
- }
270
- catch (error) {
271
- this.error(error instanceof Error ? error.message : String(error));
272
- }
273
- }
274
- }
275
- //# sourceMappingURL=add.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/staff/add.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { PMOCommand } from '../../lib/pmo/index.js';
2
- export default class Staff extends PMOCommand {
3
- static description: string;
4
- static examples: string[];
5
- static flags: {
6
- 'no-interactive': import("@oclif/core/interfaces").BooleanFlag<boolean>;
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,88 +0,0 @@
1
- import { Flags } from '@oclif/core';
2
- import inquirer from 'inquirer';
3
- import { colors } from '../../lib/colors.js';
4
- import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
5
- import { shouldOutputJson, outputPromptAsJson, createMetadata, buildPromptConfig, } from '../../lib/prompt-json.js';
6
- export default class Staff extends PMOCommand {
7
- static description = 'Manage staff (persistent) agents';
8
- static examples = [
9
- '<%= config.bin %> <%= command.id %> list',
10
- '<%= config.bin %> <%= command.id %> add',
11
- '<%= config.bin %> <%= command.id %> remove camry',
12
- ];
13
- static flags = {
14
- ...pmoBaseFlags,
15
- 'no-interactive': Flags.boolean({
16
- description: 'Alias for --json flag',
17
- default: false,
18
- }),
19
- };
20
- getPMOOptions() {
21
- return { promptIfMultiple: false };
22
- }
23
- async execute() {
24
- const { flags } = await this.parse(Staff);
25
- // Check if JSON output mode is active
26
- const jsonMode = shouldOutputJson(flags);
27
- // Define choices once, use for both JSON and interactive modes
28
- // Include command field for AI agent navigation
29
- const menuChoices = [
30
- { name: 'List staff agents', value: 'list', command: 'prlt staff list --machine' },
31
- { name: 'Add staff agent', value: 'add', command: 'prlt staff add --machine' },
32
- { name: 'Remove staff agent', value: 'remove', command: 'prlt staff remove --machine' },
33
- { name: 'Cancel', value: 'cancel', command: '' },
34
- ];
35
- const message = 'What would you like to do?';
36
- // In JSON mode, output menu prompt
37
- if (jsonMode) {
38
- outputPromptAsJson(buildPromptConfig('list', 'action', message, menuChoices), createMetadata('staff', flags));
39
- return;
40
- }
41
- this.log(colors.primary('Staff Agents'));
42
- this.log(colors.textMuted('Persistent agents with dedicated worktrees.\n'));
43
- const { action } = await this.prompt([{
44
- type: 'list',
45
- name: 'action',
46
- message,
47
- choices: [
48
- { name: '📋 ' + menuChoices[0].name, value: menuChoices[0].value },
49
- { name: '➕ ' + menuChoices[1].name, value: menuChoices[1].value },
50
- { name: '🗑️ ' + menuChoices[2].name, value: menuChoices[2].value },
51
- new inquirer.Separator(),
52
- { name: '❌ ' + menuChoices[3].name, value: menuChoices[3].value },
53
- ]
54
- }], null);
55
- if (action === 'cancel') {
56
- this.log(colors.textMuted('Operation cancelled.'));
57
- return;
58
- }
59
- try {
60
- switch (action) {
61
- case 'list': {
62
- const { default: ListCommand } = await import('./list.js');
63
- const cmd = new ListCommand([], this.config);
64
- await cmd.run();
65
- break;
66
- }
67
- case 'add': {
68
- const { default: AddCommand } = await import('./add.js');
69
- const cmd = new AddCommand([], this.config);
70
- await cmd.run();
71
- break;
72
- }
73
- case 'remove': {
74
- const { default: RemoveCommand } = await import('./remove.js');
75
- const cmd = new RemoveCommand([], this.config);
76
- await cmd.run();
77
- break;
78
- }
79
- default:
80
- this.error(`Unknown action: ${action}`);
81
- }
82
- }
83
- catch (error) {
84
- this.error(`Failed to execute staff ${action}: ${error instanceof Error ? error.message : String(error)}`);
85
- }
86
- }
87
- }
88
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/staff/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- export default class List extends Command {
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
- };
9
- run(): Promise<void>;
10
- }
@@ -1,104 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- import chalk from 'chalk';
3
- import * as fs from 'node:fs';
4
- import { getWorkspaceInfo, getAllAgentsStatus, resolveAgentDir } from '../../lib/agents/commands.js';
5
- import { shouldOutputJson } from '../../lib/prompt-json.js';
6
- import { machineOutputFlags } from '../../lib/pmo/index.js';
7
- export default class List extends Command {
8
- static description = 'List all staff (persistent) agents and their status';
9
- static examples = [
10
- '<%= config.bin %> <%= command.id %>',
11
- ];
12
- static flags = {
13
- ...machineOutputFlags,
14
- };
15
- async run() {
16
- const { flags } = await this.parse(List);
17
- const jsonMode = shouldOutputJson(flags);
18
- try {
19
- // Get workspace information
20
- const workspaceInfo = getWorkspaceInfo();
21
- // Filter to staff agents only
22
- const staffAgents = workspaceInfo.agents.filter(a => a.type === 'persistent');
23
- if (staffAgents.length === 0) {
24
- if (jsonMode) {
25
- this.log(JSON.stringify([], null, 2));
26
- return;
27
- }
28
- this.log(chalk.yellow('No staff agents found. Add staff agents with "prlt staff add"'));
29
- return;
30
- }
31
- // Get status for all agents and filter to staff
32
- const agentsStatus = getAllAgentsStatus(workspaceInfo);
33
- const staffStatus = agentsStatus.filter(a => staffAgents.some(s => s.name === a.name));
34
- if (jsonMode) {
35
- this.log(JSON.stringify(staffStatus, null, 2));
36
- return;
37
- }
38
- this.log(chalk.bold.cyan('\n Staff Agents:\n'));
39
- for (const agentStatus of staffStatus) {
40
- // Agent info line
41
- const statusIcon = agentStatus.exists ? '🟢' : '🔴';
42
- const status = agentStatus.exists ? chalk.green('Active') : chalk.red('Missing');
43
- this.log(`${statusIcon} ${chalk.bold(agentStatus.name)} - ${status}`);
44
- if (agentStatus.exists) {
45
- // Show branch info
46
- if (agentStatus.branch) {
47
- this.log(chalk.cyan(` Branch: ${agentStatus.branch}`));
48
- }
49
- // Show repository status
50
- if (agentStatus.repositories.length > 0) {
51
- const dirtyRepos = agentStatus.repositories.filter(r => r.status === 'dirty').length;
52
- const reposWithCommits = agentStatus.repositories.filter(r => r.commitsAhead > 0);
53
- let repoStatusText = `${agentStatus.repositories.length} repo(s)`;
54
- if (dirtyRepos > 0) {
55
- repoStatusText += `, ${dirtyRepos} dirty`;
56
- }
57
- if (reposWithCommits.length > 0) {
58
- const commitDetails = reposWithCommits.map(r => `${r.name}(+${r.commitsAhead})`).join(', ');
59
- repoStatusText += `, commits ahead: ${commitDetails}`;
60
- }
61
- this.log(chalk.white(` Repositories: ${repoStatusText}`));
62
- }
63
- // Show ticket info
64
- if (agentStatus.assignedTickets.length > 0) {
65
- this.log(chalk.blue(` Current tickets: ${agentStatus.assignedTickets.join(', ')}`));
66
- }
67
- else {
68
- this.log(chalk.white(' No active tickets'));
69
- }
70
- if (agentStatus.completedTickets.length > 0) {
71
- this.log(chalk.white(` Completed: ${agentStatus.completedTickets.length} ticket(s)`));
72
- }
73
- }
74
- else {
75
- const agentDir = resolveAgentDir(workspaceInfo, agentStatus.name);
76
- const dirExists = fs.existsSync(agentDir);
77
- if (dirExists) {
78
- this.log(chalk.red(` Invalid or broken worktrees`));
79
- this.log(chalk.yellow(' Agent directory exists but worktrees are missing or corrupted'));
80
- }
81
- else {
82
- this.log(chalk.red(` Agent directory not found`));
83
- }
84
- this.log(chalk.white(' Run "prlt staff add" to recreate'));
85
- }
86
- this.log(''); // Empty line between agents
87
- }
88
- // Summary
89
- const activeCount = staffStatus.filter(a => a.exists).length;
90
- const totalAssignedTickets = staffStatus.reduce((sum, a) => sum + a.assignedTickets.length, 0);
91
- this.log(chalk.bold(`Summary:`));
92
- this.log(` Total staff agents: ${staffAgents.length}`);
93
- this.log(` Active: ${activeCount}`);
94
- this.log(` Inactive: ${staffAgents.length - activeCount}`);
95
- if (workspaceInfo.hasPMO) {
96
- this.log(` Tickets assigned: ${totalAssignedTickets}`);
97
- }
98
- }
99
- catch (error) {
100
- this.error(error instanceof Error ? error.message : String(error));
101
- }
102
- }
103
- }
104
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/staff/list.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { PMOCommand } from '../../lib/pmo/index.js';
2
- export default class Remove extends PMOCommand {
3
- static description: string;
4
- static examples: string[];
5
- static args: {
6
- name: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
- };
8
- static flags: {
9
- force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
- project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
- };
14
- protected getPMOOptions(): {
15
- promptIfMultiple: boolean;
16
- };
17
- execute(): Promise<void>;
18
- }