@proletariat/cli 0.3.81 → 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 (370) 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/link/index.js +0 -12
  32. package/dist/commands/ticket/link/index.js.map +1 -1
  33. package/dist/commands/ticket/move.d.ts +1 -0
  34. package/dist/commands/ticket/move.js +10 -3
  35. package/dist/commands/ticket/move.js.map +1 -1
  36. package/dist/commands/update.d.ts +18 -0
  37. package/dist/commands/update.js +184 -0
  38. package/dist/commands/update.js.map +1 -0
  39. package/dist/lib/database/index.js +0 -134
  40. package/dist/lib/database/index.js.map +1 -1
  41. package/dist/lib/database/migrations/0006_drop_theme_names_used.d.ts +8 -0
  42. package/dist/lib/database/migrations/0006_drop_theme_names_used.js +30 -0
  43. package/dist/lib/database/migrations/0006_drop_theme_names_used.js.map +1 -0
  44. package/dist/lib/database/migrations/0007_add_worktree_columns.d.ts +8 -0
  45. package/dist/lib/database/migrations/0007_add_worktree_columns.js +24 -0
  46. package/dist/lib/database/migrations/0007_add_worktree_columns.js.map +1 -0
  47. package/dist/lib/database/migrations/0008_add_agent_mount_mode.d.ts +8 -0
  48. package/dist/lib/database/migrations/0008_add_agent_mount_mode.js +18 -0
  49. package/dist/lib/database/migrations/0008_add_agent_mount_mode.js.map +1 -0
  50. package/dist/lib/database/migrations/0009_create_media_items.d.ts +7 -0
  51. package/dist/lib/database/migrations/0009_create_media_items.js +29 -0
  52. package/dist/lib/database/migrations/0009_create_media_items.js.map +1 -0
  53. package/dist/lib/database/migrations/0010_add_ticket_position.d.ts +9 -0
  54. package/dist/lib/database/migrations/0010_add_ticket_position.js +44 -0
  55. package/dist/lib/database/migrations/0010_add_ticket_position.js.map +1 -0
  56. package/dist/lib/database/migrations/index.js +10 -0
  57. package/dist/lib/database/migrations/index.js.map +1 -1
  58. package/dist/lib/events/events.d.ts +2 -1
  59. package/dist/lib/pmo/storage/dependencies.js +45 -21
  60. package/dist/lib/pmo/storage/dependencies.js.map +1 -1
  61. package/dist/lib/pmo/storage/statuses.d.ts +2 -0
  62. package/dist/lib/pmo/storage/statuses.js +209 -150
  63. package/dist/lib/pmo/storage/statuses.js.map +1 -1
  64. package/dist/lib/pr/index.d.ts +14 -0
  65. package/dist/lib/pr/index.js +48 -0
  66. package/dist/lib/pr/index.js.map +1 -1
  67. package/dist/lib/update-check.js +1 -1
  68. package/dist/lib/update-check.js.map +1 -1
  69. package/dist/lib/update-prompt.js +1 -1
  70. package/dist/lib/work-lifecycle/events.d.ts +11 -0
  71. package/oclif.manifest.json +4789 -11452
  72. package/package.json +1 -1
  73. package/dist/commands/agents/index.d.ts +0 -11
  74. package/dist/commands/agents/index.js +0 -105
  75. package/dist/commands/agents/index.js.map +0 -1
  76. package/dist/commands/agents/themes/add-names.d.ts +0 -1
  77. package/dist/commands/agents/themes/add-names.js +0 -2
  78. package/dist/commands/agents/themes/add-names.js.map +0 -1
  79. package/dist/commands/agents/themes/create.d.ts +0 -1
  80. package/dist/commands/agents/themes/create.js +0 -2
  81. package/dist/commands/agents/themes/create.js.map +0 -1
  82. package/dist/commands/agents/themes/list.d.ts +0 -1
  83. package/dist/commands/agents/themes/list.js +0 -2
  84. package/dist/commands/agents/themes/list.js.map +0 -1
  85. package/dist/commands/category/create.d.ts +0 -19
  86. package/dist/commands/category/create.js +0 -130
  87. package/dist/commands/category/create.js.map +0 -1
  88. package/dist/commands/category/delete.d.ts +0 -18
  89. package/dist/commands/category/delete.js +0 -124
  90. package/dist/commands/category/delete.js.map +0 -1
  91. package/dist/commands/category/index.d.ts +0 -16
  92. package/dist/commands/category/index.js +0 -88
  93. package/dist/commands/category/index.js.map +0 -1
  94. package/dist/commands/category/list.d.ts +0 -19
  95. package/dist/commands/category/list.js +0 -111
  96. package/dist/commands/category/list.js.map +0 -1
  97. package/dist/commands/category/rename.d.ts +0 -19
  98. package/dist/commands/category/rename.js +0 -160
  99. package/dist/commands/category/rename.js.map +0 -1
  100. package/dist/commands/epic/activate.js +0 -107
  101. package/dist/commands/epic/activate.js.map +0 -1
  102. package/dist/commands/epic/archive.d.ts +0 -15
  103. package/dist/commands/epic/archive.js +0 -118
  104. package/dist/commands/epic/archive.js.map +0 -1
  105. package/dist/commands/epic/create.d.ts +0 -17
  106. package/dist/commands/epic/create.js +0 -179
  107. package/dist/commands/epic/create.js.map +0 -1
  108. package/dist/commands/epic/delete.d.ts +0 -15
  109. package/dist/commands/epic/delete.js +0 -129
  110. package/dist/commands/epic/delete.js.map +0 -1
  111. package/dist/commands/epic/index.d.ts +0 -14
  112. package/dist/commands/epic/index.js +0 -88
  113. package/dist/commands/epic/index.js.map +0 -1
  114. package/dist/commands/epic/list.d.ts +0 -13
  115. package/dist/commands/epic/list.js +0 -103
  116. package/dist/commands/epic/list.js.map +0 -1
  117. package/dist/commands/epic/move.d.ts +0 -16
  118. package/dist/commands/epic/move.js +0 -162
  119. package/dist/commands/epic/move.js.map +0 -1
  120. package/dist/commands/epic/progress.d.ts +0 -17
  121. package/dist/commands/epic/progress.js +0 -170
  122. package/dist/commands/epic/progress.js.map +0 -1
  123. package/dist/commands/epic/project.d.ts +0 -16
  124. package/dist/commands/epic/project.js +0 -199
  125. package/dist/commands/epic/project.js.map +0 -1
  126. package/dist/commands/epic/reorder.d.ts +0 -22
  127. package/dist/commands/epic/reorder.js +0 -152
  128. package/dist/commands/epic/reorder.js.map +0 -1
  129. package/dist/commands/epic/show.d.ts +0 -13
  130. package/dist/commands/epic/show.js +0 -17
  131. package/dist/commands/epic/show.js.map +0 -1
  132. package/dist/commands/epic/spec.d.ts +0 -17
  133. package/dist/commands/epic/spec.js +0 -189
  134. package/dist/commands/epic/spec.js.map +0 -1
  135. package/dist/commands/epic/ticket.d.ts +0 -21
  136. package/dist/commands/epic/ticket.js +0 -300
  137. package/dist/commands/epic/ticket.js.map +0 -1
  138. package/dist/commands/epic/view.d.ts +0 -14
  139. package/dist/commands/epic/view.js +0 -141
  140. package/dist/commands/epic/view.js.map +0 -1
  141. package/dist/commands/execution/kill.d.ts +0 -12
  142. package/dist/commands/execution/kill.js +0 -18
  143. package/dist/commands/execution/kill.js.map +0 -1
  144. package/dist/commands/label/create.d.ts +0 -20
  145. package/dist/commands/label/create.js +0 -58
  146. package/dist/commands/label/create.js.map +0 -1
  147. package/dist/commands/label/delete.d.ts +0 -17
  148. package/dist/commands/label/delete.js +0 -33
  149. package/dist/commands/label/delete.js.map +0 -1
  150. package/dist/commands/label/group/create.d.ts +0 -20
  151. package/dist/commands/label/group/create.js +0 -56
  152. package/dist/commands/label/group/create.js.map +0 -1
  153. package/dist/commands/label/group/list.d.ts +0 -14
  154. package/dist/commands/label/group/list.js +0 -53
  155. package/dist/commands/label/group/list.js.map +0 -1
  156. package/dist/commands/label/index.d.ts +0 -15
  157. package/dist/commands/label/index.js +0 -59
  158. package/dist/commands/label/index.js.map +0 -1
  159. package/dist/commands/label/list.d.ts +0 -16
  160. package/dist/commands/label/list.js +0 -84
  161. package/dist/commands/label/list.js.map +0 -1
  162. package/dist/commands/link/create.d.ts +0 -16
  163. package/dist/commands/link/create.js +0 -136
  164. package/dist/commands/link/create.js.map +0 -1
  165. package/dist/commands/link/index.d.ts +0 -14
  166. package/dist/commands/link/index.js +0 -82
  167. package/dist/commands/link/index.js.map +0 -1
  168. package/dist/commands/link/list.d.ts +0 -18
  169. package/dist/commands/link/list.js +0 -178
  170. package/dist/commands/link/list.js.map +0 -1
  171. package/dist/commands/link/remove.d.ts +0 -16
  172. package/dist/commands/link/remove.js +0 -115
  173. package/dist/commands/link/remove.js.map +0 -1
  174. package/dist/commands/media/add.d.ts +0 -19
  175. package/dist/commands/media/add.js +0 -98
  176. package/dist/commands/media/add.js.map +0 -1
  177. package/dist/commands/media/index.d.ts +0 -14
  178. package/dist/commands/media/index.js +0 -93
  179. package/dist/commands/media/index.js.map +0 -1
  180. package/dist/commands/media/list.d.ts +0 -15
  181. package/dist/commands/media/list.js +0 -94
  182. package/dist/commands/media/list.js.map +0 -1
  183. package/dist/commands/media/preprocess.d.ts +0 -19
  184. package/dist/commands/media/preprocess.js +0 -91
  185. package/dist/commands/media/preprocess.js.map +0 -1
  186. package/dist/commands/media/remove.d.ts +0 -18
  187. package/dist/commands/media/remove.js +0 -105
  188. package/dist/commands/media/remove.js.map +0 -1
  189. package/dist/commands/media/show.d.ts +0 -17
  190. package/dist/commands/media/show.js +0 -122
  191. package/dist/commands/media/show.js.map +0 -1
  192. package/dist/commands/phase/create.d.ts +0 -22
  193. package/dist/commands/phase/create.js +0 -165
  194. package/dist/commands/phase/create.js.map +0 -1
  195. package/dist/commands/phase/delete.d.ts +0 -18
  196. package/dist/commands/phase/delete.js +0 -75
  197. package/dist/commands/phase/delete.js.map +0 -1
  198. package/dist/commands/phase/list.d.ts +0 -13
  199. package/dist/commands/phase/list.js +0 -75
  200. package/dist/commands/phase/list.js.map +0 -1
  201. package/dist/commands/phase/move.d.ts +0 -18
  202. package/dist/commands/phase/move.js +0 -124
  203. package/dist/commands/phase/move.js.map +0 -1
  204. package/dist/commands/phase/template/apply.d.ts +0 -26
  205. package/dist/commands/phase/template/apply.js +0 -15
  206. package/dist/commands/phase/template/apply.js.map +0 -1
  207. package/dist/commands/phase/template/create.d.ts +0 -23
  208. package/dist/commands/phase/template/create.js +0 -15
  209. package/dist/commands/phase/template/create.js.map +0 -1
  210. package/dist/commands/phase/template/delete.d.ts +0 -18
  211. package/dist/commands/phase/template/delete.js +0 -63
  212. package/dist/commands/phase/template/delete.js.map +0 -1
  213. package/dist/commands/phase/template/list.d.ts +0 -17
  214. package/dist/commands/phase/template/list.js +0 -90
  215. package/dist/commands/phase/template/list.js.map +0 -1
  216. package/dist/commands/phase/template/update.d.ts +0 -1
  217. package/dist/commands/phase/template/update.js +0 -2
  218. package/dist/commands/phase/template/update.js.map +0 -1
  219. package/dist/commands/phase/update.d.ts +0 -23
  220. package/dist/commands/phase/update.js +0 -209
  221. package/dist/commands/phase/update.js.map +0 -1
  222. package/dist/commands/priority/add.d.ts +0 -16
  223. package/dist/commands/priority/add.js +0 -71
  224. package/dist/commands/priority/add.js.map +0 -1
  225. package/dist/commands/priority/list.d.ts +0 -11
  226. package/dist/commands/priority/list.js +0 -35
  227. package/dist/commands/priority/list.js.map +0 -1
  228. package/dist/commands/priority/remove.d.ts +0 -14
  229. package/dist/commands/priority/remove.js +0 -55
  230. package/dist/commands/priority/remove.js.map +0 -1
  231. package/dist/commands/priority/set.d.ts +0 -15
  232. package/dist/commands/priority/set.js +0 -61
  233. package/dist/commands/priority/set.js.map +0 -1
  234. package/dist/commands/roadmap/add-project.d.ts +0 -19
  235. package/dist/commands/roadmap/add-project.js +0 -119
  236. package/dist/commands/roadmap/add-project.js.map +0 -1
  237. package/dist/commands/roadmap/create.d.ts +0 -22
  238. package/dist/commands/roadmap/create.js +0 -168
  239. package/dist/commands/roadmap/create.js.map +0 -1
  240. package/dist/commands/roadmap/delete.d.ts +0 -18
  241. package/dist/commands/roadmap/delete.js +0 -96
  242. package/dist/commands/roadmap/delete.js.map +0 -1
  243. package/dist/commands/roadmap/generate.d.ts +0 -24
  244. package/dist/commands/roadmap/generate.js +0 -201
  245. package/dist/commands/roadmap/generate.js.map +0 -1
  246. package/dist/commands/roadmap/index.d.ts +0 -14
  247. package/dist/commands/roadmap/index.js +0 -57
  248. package/dist/commands/roadmap/index.js.map +0 -1
  249. package/dist/commands/roadmap/list.d.ts +0 -14
  250. package/dist/commands/roadmap/list.js +0 -58
  251. package/dist/commands/roadmap/list.js.map +0 -1
  252. package/dist/commands/roadmap/remove-project.d.ts +0 -19
  253. package/dist/commands/roadmap/remove-project.js +0 -124
  254. package/dist/commands/roadmap/remove-project.js.map +0 -1
  255. package/dist/commands/roadmap/reorder.d.ts +0 -18
  256. package/dist/commands/roadmap/reorder.js +0 -147
  257. package/dist/commands/roadmap/reorder.js.map +0 -1
  258. package/dist/commands/roadmap/update.d.ts +0 -20
  259. package/dist/commands/roadmap/update.js +0 -134
  260. package/dist/commands/roadmap/update.js.map +0 -1
  261. package/dist/commands/roadmap/view.d.ts +0 -17
  262. package/dist/commands/roadmap/view.js +0 -93
  263. package/dist/commands/roadmap/view.js.map +0 -1
  264. package/dist/commands/staff/add.d.ts +0 -17
  265. package/dist/commands/staff/add.js +0 -275
  266. package/dist/commands/staff/add.js.map +0 -1
  267. package/dist/commands/staff/index.d.ts +0 -15
  268. package/dist/commands/staff/index.js +0 -88
  269. package/dist/commands/staff/index.js.map +0 -1
  270. package/dist/commands/staff/list.d.ts +0 -10
  271. package/dist/commands/staff/list.js +0 -104
  272. package/dist/commands/staff/list.js.map +0 -1
  273. package/dist/commands/staff/remove.d.ts +0 -18
  274. package/dist/commands/staff/remove.js +0 -144
  275. package/dist/commands/staff/remove.js.map +0 -1
  276. package/dist/commands/status/category.d.ts +0 -15
  277. package/dist/commands/status/category.js +0 -64
  278. package/dist/commands/status/category.js.map +0 -1
  279. package/dist/commands/status/create.d.ts +0 -21
  280. package/dist/commands/status/create.js +0 -161
  281. package/dist/commands/status/create.js.map +0 -1
  282. package/dist/commands/status/delete.d.ts +0 -14
  283. package/dist/commands/status/delete.js +0 -86
  284. package/dist/commands/status/delete.js.map +0 -1
  285. package/dist/commands/status/index.d.ts +0 -15
  286. package/dist/commands/status/index.js +0 -98
  287. package/dist/commands/status/index.js.map +0 -1
  288. package/dist/commands/status/list.d.ts +0 -13
  289. package/dist/commands/status/list.js +0 -97
  290. package/dist/commands/status/list.js.map +0 -1
  291. package/dist/commands/status/move.d.ts +0 -15
  292. package/dist/commands/status/move.js +0 -126
  293. package/dist/commands/status/move.js.map +0 -1
  294. package/dist/commands/status/update.d.ts +0 -20
  295. package/dist/commands/status/update.js +0 -214
  296. package/dist/commands/status/update.js.map +0 -1
  297. package/dist/commands/template/apply.d.ts +0 -28
  298. package/dist/commands/template/apply.js +0 -258
  299. package/dist/commands/template/apply.js.map +0 -1
  300. package/dist/commands/template/create.d.ts +0 -28
  301. package/dist/commands/template/create.js +0 -238
  302. package/dist/commands/template/create.js.map +0 -1
  303. package/dist/commands/template/delete.d.ts +0 -16
  304. package/dist/commands/template/delete.js +0 -141
  305. package/dist/commands/template/delete.js.map +0 -1
  306. package/dist/commands/template/index.d.ts +0 -11
  307. package/dist/commands/template/index.js +0 -65
  308. package/dist/commands/template/index.js.map +0 -1
  309. package/dist/commands/template/list.d.ts +0 -19
  310. package/dist/commands/template/list.js +0 -155
  311. package/dist/commands/template/list.js.map +0 -1
  312. package/dist/commands/template/save.d.ts +0 -17
  313. package/dist/commands/template/save.js +0 -101
  314. package/dist/commands/template/save.js.map +0 -1
  315. package/dist/commands/template/update.d.ts +0 -19
  316. package/dist/commands/template/update.js +0 -94
  317. package/dist/commands/template/update.js.map +0 -1
  318. package/dist/commands/ticket/template/apply.d.ts +0 -26
  319. package/dist/commands/ticket/template/apply.js +0 -15
  320. package/dist/commands/ticket/template/apply.js.map +0 -1
  321. package/dist/commands/ticket/template/delete.d.ts +0 -18
  322. package/dist/commands/ticket/template/delete.js +0 -63
  323. package/dist/commands/ticket/template/delete.js.map +0 -1
  324. package/dist/commands/ticket/template/list.d.ts +0 -17
  325. package/dist/commands/ticket/template/list.js +0 -79
  326. package/dist/commands/ticket/template/list.js.map +0 -1
  327. package/dist/commands/ticket/template/save.d.ts +0 -17
  328. package/dist/commands/ticket/template/save.js +0 -99
  329. package/dist/commands/ticket/template/save.js.map +0 -1
  330. package/dist/commands/work/spawn-all.d.ts +0 -19
  331. package/dist/commands/work/spawn-all.js +0 -64
  332. package/dist/commands/work/spawn-all.js.map +0 -1
  333. package/dist/commands/workflow/create.d.ts +0 -19
  334. package/dist/commands/workflow/create.js +0 -118
  335. package/dist/commands/workflow/create.js.map +0 -1
  336. package/dist/commands/workflow/delete.d.ts +0 -18
  337. package/dist/commands/workflow/delete.js +0 -108
  338. package/dist/commands/workflow/delete.js.map +0 -1
  339. package/dist/commands/workflow/index.d.ts +0 -16
  340. package/dist/commands/workflow/index.js +0 -73
  341. package/dist/commands/workflow/index.js.map +0 -1
  342. package/dist/commands/workflow/list.d.ts +0 -16
  343. package/dist/commands/workflow/list.js +0 -73
  344. package/dist/commands/workflow/list.js.map +0 -1
  345. package/dist/commands/workflow/setup.d.ts +0 -24
  346. package/dist/commands/workflow/setup.js +0 -351
  347. package/dist/commands/workflow/setup.js.map +0 -1
  348. package/dist/commands/workflow/show.d.ts +0 -13
  349. package/dist/commands/workflow/show.js +0 -17
  350. package/dist/commands/workflow/show.js.map +0 -1
  351. package/dist/commands/workflow/switch.js +0 -144
  352. package/dist/commands/workflow/switch.js.map +0 -1
  353. package/dist/commands/workflow/view.d.ts +0 -17
  354. package/dist/commands/workflow/view.js +0 -106
  355. package/dist/commands/workflow/view.js.map +0 -1
  356. package/dist/commands/workflow-rule/create.d.ts +0 -19
  357. package/dist/commands/workflow-rule/create.js +0 -141
  358. package/dist/commands/workflow-rule/create.js.map +0 -1
  359. package/dist/commands/workflow-rule/delete.d.ts +0 -18
  360. package/dist/commands/workflow-rule/delete.js +0 -72
  361. package/dist/commands/workflow-rule/delete.js.map +0 -1
  362. package/dist/commands/workflow-rule/index.d.ts +0 -16
  363. package/dist/commands/workflow-rule/index.js +0 -83
  364. package/dist/commands/workflow-rule/index.js.map +0 -1
  365. package/dist/commands/workflow-rule/list.d.ts +0 -17
  366. package/dist/commands/workflow-rule/list.js +0 -72
  367. package/dist/commands/workflow-rule/list.js.map +0 -1
  368. package/dist/commands/workflow-rule/update.d.ts +0 -22
  369. package/dist/commands/workflow-rule/update.js +0 -84
  370. 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
- }