@proletariat/cli 0.3.81 → 0.3.83

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 (377) 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/drizzle-schema.d.ts +301 -0
  40. package/dist/lib/database/drizzle-schema.js +22 -0
  41. package/dist/lib/database/drizzle-schema.js.map +1 -1
  42. package/dist/lib/database/index.d.ts +3 -0
  43. package/dist/lib/database/index.js +556 -479
  44. package/dist/lib/database/index.js.map +1 -1
  45. package/dist/lib/database/migrations/0006_drop_theme_names_used.d.ts +8 -0
  46. package/dist/lib/database/migrations/0006_drop_theme_names_used.js +30 -0
  47. package/dist/lib/database/migrations/0006_drop_theme_names_used.js.map +1 -0
  48. package/dist/lib/database/migrations/0007_add_worktree_columns.d.ts +8 -0
  49. package/dist/lib/database/migrations/0007_add_worktree_columns.js +24 -0
  50. package/dist/lib/database/migrations/0007_add_worktree_columns.js.map +1 -0
  51. package/dist/lib/database/migrations/0008_add_agent_mount_mode.d.ts +8 -0
  52. package/dist/lib/database/migrations/0008_add_agent_mount_mode.js +18 -0
  53. package/dist/lib/database/migrations/0008_add_agent_mount_mode.js.map +1 -0
  54. package/dist/lib/database/migrations/0009_create_media_items.d.ts +7 -0
  55. package/dist/lib/database/migrations/0009_create_media_items.js +29 -0
  56. package/dist/lib/database/migrations/0009_create_media_items.js.map +1 -0
  57. package/dist/lib/database/migrations/0010_add_ticket_position.d.ts +9 -0
  58. package/dist/lib/database/migrations/0010_add_ticket_position.js +44 -0
  59. package/dist/lib/database/migrations/0010_add_ticket_position.js.map +1 -0
  60. package/dist/lib/database/migrations/index.js +10 -0
  61. package/dist/lib/database/migrations/index.js.map +1 -1
  62. package/dist/lib/events/events.d.ts +2 -1
  63. package/dist/lib/pmo/storage/dependencies.js +45 -21
  64. package/dist/lib/pmo/storage/dependencies.js.map +1 -1
  65. package/dist/lib/pmo/storage/statuses.d.ts +2 -0
  66. package/dist/lib/pmo/storage/statuses.js +209 -150
  67. package/dist/lib/pmo/storage/statuses.js.map +1 -1
  68. package/dist/lib/pr/index.d.ts +14 -0
  69. package/dist/lib/pr/index.js +48 -0
  70. package/dist/lib/pr/index.js.map +1 -1
  71. package/dist/lib/telemetry/analytics.d.ts +5 -5
  72. package/dist/lib/telemetry/analytics.js +87 -21
  73. package/dist/lib/telemetry/analytics.js.map +1 -1
  74. package/dist/lib/update-check.js +1 -1
  75. package/dist/lib/update-check.js.map +1 -1
  76. package/dist/lib/update-prompt.js +1 -1
  77. package/dist/lib/work-lifecycle/events.d.ts +11 -0
  78. package/oclif.manifest.json +4823 -11486
  79. package/package.json +2 -1
  80. package/dist/commands/agents/index.d.ts +0 -11
  81. package/dist/commands/agents/index.js +0 -105
  82. package/dist/commands/agents/index.js.map +0 -1
  83. package/dist/commands/agents/themes/add-names.d.ts +0 -1
  84. package/dist/commands/agents/themes/add-names.js +0 -2
  85. package/dist/commands/agents/themes/add-names.js.map +0 -1
  86. package/dist/commands/agents/themes/create.d.ts +0 -1
  87. package/dist/commands/agents/themes/create.js +0 -2
  88. package/dist/commands/agents/themes/create.js.map +0 -1
  89. package/dist/commands/agents/themes/list.d.ts +0 -1
  90. package/dist/commands/agents/themes/list.js +0 -2
  91. package/dist/commands/agents/themes/list.js.map +0 -1
  92. package/dist/commands/category/create.d.ts +0 -19
  93. package/dist/commands/category/create.js +0 -130
  94. package/dist/commands/category/create.js.map +0 -1
  95. package/dist/commands/category/delete.d.ts +0 -18
  96. package/dist/commands/category/delete.js +0 -124
  97. package/dist/commands/category/delete.js.map +0 -1
  98. package/dist/commands/category/index.d.ts +0 -16
  99. package/dist/commands/category/index.js +0 -88
  100. package/dist/commands/category/index.js.map +0 -1
  101. package/dist/commands/category/list.d.ts +0 -19
  102. package/dist/commands/category/list.js +0 -111
  103. package/dist/commands/category/list.js.map +0 -1
  104. package/dist/commands/category/rename.d.ts +0 -19
  105. package/dist/commands/category/rename.js +0 -160
  106. package/dist/commands/category/rename.js.map +0 -1
  107. package/dist/commands/epic/activate.js +0 -107
  108. package/dist/commands/epic/activate.js.map +0 -1
  109. package/dist/commands/epic/archive.d.ts +0 -15
  110. package/dist/commands/epic/archive.js +0 -118
  111. package/dist/commands/epic/archive.js.map +0 -1
  112. package/dist/commands/epic/create.d.ts +0 -17
  113. package/dist/commands/epic/create.js +0 -179
  114. package/dist/commands/epic/create.js.map +0 -1
  115. package/dist/commands/epic/delete.d.ts +0 -15
  116. package/dist/commands/epic/delete.js +0 -129
  117. package/dist/commands/epic/delete.js.map +0 -1
  118. package/dist/commands/epic/index.d.ts +0 -14
  119. package/dist/commands/epic/index.js +0 -88
  120. package/dist/commands/epic/index.js.map +0 -1
  121. package/dist/commands/epic/list.d.ts +0 -13
  122. package/dist/commands/epic/list.js +0 -103
  123. package/dist/commands/epic/list.js.map +0 -1
  124. package/dist/commands/epic/move.d.ts +0 -16
  125. package/dist/commands/epic/move.js +0 -162
  126. package/dist/commands/epic/move.js.map +0 -1
  127. package/dist/commands/epic/progress.d.ts +0 -17
  128. package/dist/commands/epic/progress.js +0 -170
  129. package/dist/commands/epic/progress.js.map +0 -1
  130. package/dist/commands/epic/project.d.ts +0 -16
  131. package/dist/commands/epic/project.js +0 -199
  132. package/dist/commands/epic/project.js.map +0 -1
  133. package/dist/commands/epic/reorder.d.ts +0 -22
  134. package/dist/commands/epic/reorder.js +0 -152
  135. package/dist/commands/epic/reorder.js.map +0 -1
  136. package/dist/commands/epic/show.d.ts +0 -13
  137. package/dist/commands/epic/show.js +0 -17
  138. package/dist/commands/epic/show.js.map +0 -1
  139. package/dist/commands/epic/spec.d.ts +0 -17
  140. package/dist/commands/epic/spec.js +0 -189
  141. package/dist/commands/epic/spec.js.map +0 -1
  142. package/dist/commands/epic/ticket.d.ts +0 -21
  143. package/dist/commands/epic/ticket.js +0 -300
  144. package/dist/commands/epic/ticket.js.map +0 -1
  145. package/dist/commands/epic/view.d.ts +0 -14
  146. package/dist/commands/epic/view.js +0 -141
  147. package/dist/commands/epic/view.js.map +0 -1
  148. package/dist/commands/execution/kill.d.ts +0 -12
  149. package/dist/commands/execution/kill.js +0 -18
  150. package/dist/commands/execution/kill.js.map +0 -1
  151. package/dist/commands/label/create.d.ts +0 -20
  152. package/dist/commands/label/create.js +0 -58
  153. package/dist/commands/label/create.js.map +0 -1
  154. package/dist/commands/label/delete.d.ts +0 -17
  155. package/dist/commands/label/delete.js +0 -33
  156. package/dist/commands/label/delete.js.map +0 -1
  157. package/dist/commands/label/group/create.d.ts +0 -20
  158. package/dist/commands/label/group/create.js +0 -56
  159. package/dist/commands/label/group/create.js.map +0 -1
  160. package/dist/commands/label/group/list.d.ts +0 -14
  161. package/dist/commands/label/group/list.js +0 -53
  162. package/dist/commands/label/group/list.js.map +0 -1
  163. package/dist/commands/label/index.d.ts +0 -15
  164. package/dist/commands/label/index.js +0 -59
  165. package/dist/commands/label/index.js.map +0 -1
  166. package/dist/commands/label/list.d.ts +0 -16
  167. package/dist/commands/label/list.js +0 -84
  168. package/dist/commands/label/list.js.map +0 -1
  169. package/dist/commands/link/create.d.ts +0 -16
  170. package/dist/commands/link/create.js +0 -136
  171. package/dist/commands/link/create.js.map +0 -1
  172. package/dist/commands/link/index.d.ts +0 -14
  173. package/dist/commands/link/index.js +0 -82
  174. package/dist/commands/link/index.js.map +0 -1
  175. package/dist/commands/link/list.d.ts +0 -18
  176. package/dist/commands/link/list.js +0 -178
  177. package/dist/commands/link/list.js.map +0 -1
  178. package/dist/commands/link/remove.d.ts +0 -16
  179. package/dist/commands/link/remove.js +0 -115
  180. package/dist/commands/link/remove.js.map +0 -1
  181. package/dist/commands/media/add.d.ts +0 -19
  182. package/dist/commands/media/add.js +0 -98
  183. package/dist/commands/media/add.js.map +0 -1
  184. package/dist/commands/media/index.d.ts +0 -14
  185. package/dist/commands/media/index.js +0 -93
  186. package/dist/commands/media/index.js.map +0 -1
  187. package/dist/commands/media/list.d.ts +0 -15
  188. package/dist/commands/media/list.js +0 -94
  189. package/dist/commands/media/list.js.map +0 -1
  190. package/dist/commands/media/preprocess.d.ts +0 -19
  191. package/dist/commands/media/preprocess.js +0 -91
  192. package/dist/commands/media/preprocess.js.map +0 -1
  193. package/dist/commands/media/remove.d.ts +0 -18
  194. package/dist/commands/media/remove.js +0 -105
  195. package/dist/commands/media/remove.js.map +0 -1
  196. package/dist/commands/media/show.d.ts +0 -17
  197. package/dist/commands/media/show.js +0 -122
  198. package/dist/commands/media/show.js.map +0 -1
  199. package/dist/commands/phase/create.d.ts +0 -22
  200. package/dist/commands/phase/create.js +0 -165
  201. package/dist/commands/phase/create.js.map +0 -1
  202. package/dist/commands/phase/delete.d.ts +0 -18
  203. package/dist/commands/phase/delete.js +0 -75
  204. package/dist/commands/phase/delete.js.map +0 -1
  205. package/dist/commands/phase/list.d.ts +0 -13
  206. package/dist/commands/phase/list.js +0 -75
  207. package/dist/commands/phase/list.js.map +0 -1
  208. package/dist/commands/phase/move.d.ts +0 -18
  209. package/dist/commands/phase/move.js +0 -124
  210. package/dist/commands/phase/move.js.map +0 -1
  211. package/dist/commands/phase/template/apply.d.ts +0 -26
  212. package/dist/commands/phase/template/apply.js +0 -15
  213. package/dist/commands/phase/template/apply.js.map +0 -1
  214. package/dist/commands/phase/template/create.d.ts +0 -23
  215. package/dist/commands/phase/template/create.js +0 -15
  216. package/dist/commands/phase/template/create.js.map +0 -1
  217. package/dist/commands/phase/template/delete.d.ts +0 -18
  218. package/dist/commands/phase/template/delete.js +0 -63
  219. package/dist/commands/phase/template/delete.js.map +0 -1
  220. package/dist/commands/phase/template/list.d.ts +0 -17
  221. package/dist/commands/phase/template/list.js +0 -90
  222. package/dist/commands/phase/template/list.js.map +0 -1
  223. package/dist/commands/phase/template/update.d.ts +0 -1
  224. package/dist/commands/phase/template/update.js +0 -2
  225. package/dist/commands/phase/template/update.js.map +0 -1
  226. package/dist/commands/phase/update.d.ts +0 -23
  227. package/dist/commands/phase/update.js +0 -209
  228. package/dist/commands/phase/update.js.map +0 -1
  229. package/dist/commands/priority/add.d.ts +0 -16
  230. package/dist/commands/priority/add.js +0 -71
  231. package/dist/commands/priority/add.js.map +0 -1
  232. package/dist/commands/priority/list.d.ts +0 -11
  233. package/dist/commands/priority/list.js +0 -35
  234. package/dist/commands/priority/list.js.map +0 -1
  235. package/dist/commands/priority/remove.d.ts +0 -14
  236. package/dist/commands/priority/remove.js +0 -55
  237. package/dist/commands/priority/remove.js.map +0 -1
  238. package/dist/commands/priority/set.d.ts +0 -15
  239. package/dist/commands/priority/set.js +0 -61
  240. package/dist/commands/priority/set.js.map +0 -1
  241. package/dist/commands/roadmap/add-project.d.ts +0 -19
  242. package/dist/commands/roadmap/add-project.js +0 -119
  243. package/dist/commands/roadmap/add-project.js.map +0 -1
  244. package/dist/commands/roadmap/create.d.ts +0 -22
  245. package/dist/commands/roadmap/create.js +0 -168
  246. package/dist/commands/roadmap/create.js.map +0 -1
  247. package/dist/commands/roadmap/delete.d.ts +0 -18
  248. package/dist/commands/roadmap/delete.js +0 -96
  249. package/dist/commands/roadmap/delete.js.map +0 -1
  250. package/dist/commands/roadmap/generate.d.ts +0 -24
  251. package/dist/commands/roadmap/generate.js +0 -201
  252. package/dist/commands/roadmap/generate.js.map +0 -1
  253. package/dist/commands/roadmap/index.d.ts +0 -14
  254. package/dist/commands/roadmap/index.js +0 -57
  255. package/dist/commands/roadmap/index.js.map +0 -1
  256. package/dist/commands/roadmap/list.d.ts +0 -14
  257. package/dist/commands/roadmap/list.js +0 -58
  258. package/dist/commands/roadmap/list.js.map +0 -1
  259. package/dist/commands/roadmap/remove-project.d.ts +0 -19
  260. package/dist/commands/roadmap/remove-project.js +0 -124
  261. package/dist/commands/roadmap/remove-project.js.map +0 -1
  262. package/dist/commands/roadmap/reorder.d.ts +0 -18
  263. package/dist/commands/roadmap/reorder.js +0 -147
  264. package/dist/commands/roadmap/reorder.js.map +0 -1
  265. package/dist/commands/roadmap/update.d.ts +0 -20
  266. package/dist/commands/roadmap/update.js +0 -134
  267. package/dist/commands/roadmap/update.js.map +0 -1
  268. package/dist/commands/roadmap/view.d.ts +0 -17
  269. package/dist/commands/roadmap/view.js +0 -93
  270. package/dist/commands/roadmap/view.js.map +0 -1
  271. package/dist/commands/staff/add.d.ts +0 -17
  272. package/dist/commands/staff/add.js +0 -275
  273. package/dist/commands/staff/add.js.map +0 -1
  274. package/dist/commands/staff/index.d.ts +0 -15
  275. package/dist/commands/staff/index.js +0 -88
  276. package/dist/commands/staff/index.js.map +0 -1
  277. package/dist/commands/staff/list.d.ts +0 -10
  278. package/dist/commands/staff/list.js +0 -104
  279. package/dist/commands/staff/list.js.map +0 -1
  280. package/dist/commands/staff/remove.d.ts +0 -18
  281. package/dist/commands/staff/remove.js +0 -144
  282. package/dist/commands/staff/remove.js.map +0 -1
  283. package/dist/commands/status/category.d.ts +0 -15
  284. package/dist/commands/status/category.js +0 -64
  285. package/dist/commands/status/category.js.map +0 -1
  286. package/dist/commands/status/create.d.ts +0 -21
  287. package/dist/commands/status/create.js +0 -161
  288. package/dist/commands/status/create.js.map +0 -1
  289. package/dist/commands/status/delete.d.ts +0 -14
  290. package/dist/commands/status/delete.js +0 -86
  291. package/dist/commands/status/delete.js.map +0 -1
  292. package/dist/commands/status/index.d.ts +0 -15
  293. package/dist/commands/status/index.js +0 -98
  294. package/dist/commands/status/index.js.map +0 -1
  295. package/dist/commands/status/list.d.ts +0 -13
  296. package/dist/commands/status/list.js +0 -97
  297. package/dist/commands/status/list.js.map +0 -1
  298. package/dist/commands/status/move.d.ts +0 -15
  299. package/dist/commands/status/move.js +0 -126
  300. package/dist/commands/status/move.js.map +0 -1
  301. package/dist/commands/status/update.d.ts +0 -20
  302. package/dist/commands/status/update.js +0 -214
  303. package/dist/commands/status/update.js.map +0 -1
  304. package/dist/commands/template/apply.d.ts +0 -28
  305. package/dist/commands/template/apply.js +0 -258
  306. package/dist/commands/template/apply.js.map +0 -1
  307. package/dist/commands/template/create.d.ts +0 -28
  308. package/dist/commands/template/create.js +0 -238
  309. package/dist/commands/template/create.js.map +0 -1
  310. package/dist/commands/template/delete.d.ts +0 -16
  311. package/dist/commands/template/delete.js +0 -141
  312. package/dist/commands/template/delete.js.map +0 -1
  313. package/dist/commands/template/index.d.ts +0 -11
  314. package/dist/commands/template/index.js +0 -65
  315. package/dist/commands/template/index.js.map +0 -1
  316. package/dist/commands/template/list.d.ts +0 -19
  317. package/dist/commands/template/list.js +0 -155
  318. package/dist/commands/template/list.js.map +0 -1
  319. package/dist/commands/template/save.d.ts +0 -17
  320. package/dist/commands/template/save.js +0 -101
  321. package/dist/commands/template/save.js.map +0 -1
  322. package/dist/commands/template/update.d.ts +0 -19
  323. package/dist/commands/template/update.js +0 -94
  324. package/dist/commands/template/update.js.map +0 -1
  325. package/dist/commands/ticket/template/apply.d.ts +0 -26
  326. package/dist/commands/ticket/template/apply.js +0 -15
  327. package/dist/commands/ticket/template/apply.js.map +0 -1
  328. package/dist/commands/ticket/template/delete.d.ts +0 -18
  329. package/dist/commands/ticket/template/delete.js +0 -63
  330. package/dist/commands/ticket/template/delete.js.map +0 -1
  331. package/dist/commands/ticket/template/list.d.ts +0 -17
  332. package/dist/commands/ticket/template/list.js +0 -79
  333. package/dist/commands/ticket/template/list.js.map +0 -1
  334. package/dist/commands/ticket/template/save.d.ts +0 -17
  335. package/dist/commands/ticket/template/save.js +0 -99
  336. package/dist/commands/ticket/template/save.js.map +0 -1
  337. package/dist/commands/work/spawn-all.d.ts +0 -19
  338. package/dist/commands/work/spawn-all.js +0 -64
  339. package/dist/commands/work/spawn-all.js.map +0 -1
  340. package/dist/commands/workflow/create.d.ts +0 -19
  341. package/dist/commands/workflow/create.js +0 -118
  342. package/dist/commands/workflow/create.js.map +0 -1
  343. package/dist/commands/workflow/delete.d.ts +0 -18
  344. package/dist/commands/workflow/delete.js +0 -108
  345. package/dist/commands/workflow/delete.js.map +0 -1
  346. package/dist/commands/workflow/index.d.ts +0 -16
  347. package/dist/commands/workflow/index.js +0 -73
  348. package/dist/commands/workflow/index.js.map +0 -1
  349. package/dist/commands/workflow/list.d.ts +0 -16
  350. package/dist/commands/workflow/list.js +0 -73
  351. package/dist/commands/workflow/list.js.map +0 -1
  352. package/dist/commands/workflow/setup.d.ts +0 -24
  353. package/dist/commands/workflow/setup.js +0 -351
  354. package/dist/commands/workflow/setup.js.map +0 -1
  355. package/dist/commands/workflow/show.d.ts +0 -13
  356. package/dist/commands/workflow/show.js +0 -17
  357. package/dist/commands/workflow/show.js.map +0 -1
  358. package/dist/commands/workflow/switch.js +0 -144
  359. package/dist/commands/workflow/switch.js.map +0 -1
  360. package/dist/commands/workflow/view.d.ts +0 -17
  361. package/dist/commands/workflow/view.js +0 -106
  362. package/dist/commands/workflow/view.js.map +0 -1
  363. package/dist/commands/workflow-rule/create.d.ts +0 -19
  364. package/dist/commands/workflow-rule/create.js +0 -141
  365. package/dist/commands/workflow-rule/create.js.map +0 -1
  366. package/dist/commands/workflow-rule/delete.d.ts +0 -18
  367. package/dist/commands/workflow-rule/delete.js +0 -72
  368. package/dist/commands/workflow-rule/delete.js.map +0 -1
  369. package/dist/commands/workflow-rule/index.d.ts +0 -16
  370. package/dist/commands/workflow-rule/index.js +0 -83
  371. package/dist/commands/workflow-rule/index.js.map +0 -1
  372. package/dist/commands/workflow-rule/list.d.ts +0 -17
  373. package/dist/commands/workflow-rule/list.js +0 -72
  374. package/dist/commands/workflow-rule/list.js.map +0 -1
  375. package/dist/commands/workflow-rule/update.d.ts +0 -22
  376. package/dist/commands/workflow-rule/update.js +0 -84
  377. 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":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,sBAAsB,EACtB,cAAc,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,aAAa;IAC5C,MAAM,CAAC,WAAW,GAAG,iCAAiC,CAAC;IAEvD,MAAM,CAAC,QAAQ,GAAG;QAChB,0CAA0C;QAC1C,qDAAqD;QACrD,0DAA0D;QAC1D,6DAA6D;KAC9D,CAAC;IAEF,MAAM,CAAC,IAAI,GAAG;QACZ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;YAC5B,WAAW,EAAE,iEAAiE;YAC9E,OAAO,EAAE,KAAK;SACf,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,+EAA+E;SAC7F,CAAC;QACF,GAAG,kBAAkB;QACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,mFAAmF;YAChG,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,6BAA6B;IAEpD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9C,sCAAsC;QACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YAEzC,IAAI,UAAU,GAAG,IAAgB,CAAC;YAClC,IAAI,OAA2B,CAAC;YAEhC,yCAAyC;YACzC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,oCAAoC;gBACpC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAExC,wBAAwB;gBACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7D,IAAI,QAAQ,EAAE,CAAC;wBACb,iBAAiB,CAAC,iBAAiB,EAAE,UAAU,KAAK,CAAC,KAAK,2BAA2B,SAAS,EAAE,EAAE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;wBACtI,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,2BAA2B,SAAS,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBAED,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;gBAEnB,iCAAiC;gBACjC,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChC,IAAI,QAAQ,EAAE,CAAC;wBACb,iBAAiB,CAAC,oBAAoB,EAAE,gCAAgC,KAAK,CAAC,YAAY,0BAA0B,EAAE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;wBAC1J,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,gCAAgC,KAAK,CAAC,YAAY,0BAA0B,CAAC,CAAC;gBAC3F,CAAC;gBAED,8DAA8D;gBAC9D,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxE,MAAM,aAAa,GAAG,2BAA2B,KAAK,CAAC,YAAY,GAAG,CAAC;gBAEvE,oDAAoD;gBACpD,IAAI,QAAQ,EAAE,CAAC;oBACb,kBAAkB,CAChB,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAClE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CACnC,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,mCAAmC;gBACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAyB,CAAC;wBAC9D,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,aAAa;wBACtB,OAAO,EAAE,WAAW;wBACpB,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAE,KAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,iCAAiC;qBAClG,CAAC,EAAE,IAAI,CAAC,CAAC;gBAEV,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;YACD,6DAA6D;iBACxD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,oCAAoC;gBACpC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAExC,yCAAyC;gBACzC,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAEvD,IAAI,WAAW,EAAE,CAAC;oBAChB,sDAAsD;oBACtD,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC;oBACzB,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;oBAElF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAChC,IAAI,QAAQ,EAAE,CAAC;4BACb,iBAAiB,CAAC,oBAAoB,EAAE,yBAAyB,WAAW,CAAC,YAAY,yBAAyB,EAAE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;4BACxJ,OAAO;wBACT,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,WAAW,CAAC,YAAY,yBAAyB,CAAC,CAAC,CAAC;wBACnG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC,CAAC;wBAC7F,OAAO;oBACT,CAAC;oBAED,8DAA8D;oBAC9D,MAAM,WAAW,GAAG;wBAClB,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACtD,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,EAAE;qBACzD,CAAC;oBACF,MAAM,aAAa,GAAG,sBAAsB,WAAW,CAAC,YAAY,GAAG,CAAC;oBAExE,oDAAoD;oBACpD,IAAI,QAAQ,EAAE,CAAC;wBACb,kBAAkB,CAChB,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAClE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CACnC,CAAC;wBACF,OAAO;oBACT,CAAC;oBAED,0DAA0D;oBAC1D,MAAM,OAAO,GAAG;wBACd,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,IAAI,QAAQ,CAAC,SAAS,EAAE;wBACxB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;qBACjH,CAAC;oBAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAyB,CAAC;4BAC9D,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE,aAAa;4BACtB,OAAO;4BACP,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAE,KAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,iCAAiC;yBAClG,CAAC,EAAE,IAAI,CAAC,CAAC;oBAEV,+BAA+B;oBAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAClD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;oBAE5E,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAA0B,CAAC;gCAClE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,aAAa;gCACnB,OAAO,EAAE,6CAA6C;gCACtD,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE;oCAC3B,IAAI,CAAE,KAAgB,CAAC,IAAI,EAAE;wCAAE,OAAO,gCAAgC,CAAC;oCACvE,OAAO,IAAI,CAAC;gCACd,CAAC;6BACF,CAAC,EAAE,IAAI,CAAC,CAAC;wBACV,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5H,UAAU,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;oBACvC,CAAC;oBAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,UAAU,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,6DAA6D;oBAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC7C,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACvC,KAAK,EAAE,CAAC;wBACR,cAAc,EAAE,sBAAsB,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;qBACxE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;oBAEtC,8DAA8D;oBAC9D,MAAM,YAAY,GAAG;wBACnB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;4BACrD,IAAI,EAAE,GAAG,KAAK,CAAC,YAAY,KAAK,cAAc,aAAa;4BAC3D,KAAK,EAAE,KAAK,CAAC,EAAE;yBAChB,CAAC,CAAC;wBACH,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE;qBACtD,CAAC;oBACF,MAAM,aAAa,GAAG,qDAAqD,CAAC;oBAE5E,8CAA8C;oBAC9C,IAAI,QAAQ,EAAE,CAAC;wBACb,kBAAkB,CAChB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,EAC/D,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CACnC,CAAC;wBACF,OAAO;oBACT,CAAC;oBAED,iDAAiD;oBACjD,MAAM,kBAAkB,GAAgE;wBACtF,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;4BACxE,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;wBACH,IAAI,QAAQ,CAAC,SAAS,EAAE;wBACxB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;qBACrH,CAAC;oBAEF,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAA4B,CAAC;4BACtE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,aAAa;4BACtB,OAAO,EAAE,kBAAkB;yBAC5B,CAAC,EAAE,IAAI,CAAC,CAAC;oBAEV,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;wBACnC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAA0B,CAAC;gCAClE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,aAAa;gCACnB,OAAO,EAAE,6CAA6C;gCACtD,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE;oCAC3B,IAAI,CAAE,KAAgB,CAAC,IAAI,EAAE;wCAAE,OAAO,gCAAgC,CAAC;oCACvE,OAAO,IAAI,CAAC;gCACd,CAAC;6BACF,CAAC,EAAE,IAAI,CAAC,CAAC;wBACV,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;4BACpD,QAAQ,EAAE,CAAC;4BACX,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;yBAClC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;wBAE5G,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;wBACtH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;4BAC1C,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC;gCAC/C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,QAAQ,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC;4BACxD,CAAC;wBACH,CAAC;wBAED,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACnG,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,aAAa,CAAC;wBACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;wBAC1D,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;wBAEjF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAyB,CAAC;gCAC9D,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,UAAU;gCAChB,OAAO,EAAE,sBAAsB,KAAK,EAAE,YAAY,GAAG;gCACrD,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gCAC5D,QAAQ,EAAE,EAAE;gCACZ,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAE,KAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,iCAAiC;6BAClG,CAAC,EAAE,IAAI,CAAC,CAAC;wBAEV,UAAU,GAAG,QAAQ,CAAC;oBACxB,CAAC;gBACH,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;YACH,CAAC;YAED,iEAAiE;YACjE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+EAA+E,CAAC,CAAC,CAAC;oBACxG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC;YAED,0BAA0B;YAC1B,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE;gBACxE,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC;gBACvC,OAAO;gBACP,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;aAC9C,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,WAAW,CAAC,MAAM,cAAc,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAEzG,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,EAAE,YAAY,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;YAChF,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC"}
@@ -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
- }