@proletariat/cli 0.1.4 → 0.3.0

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 (526) hide show
  1. package/README.md +510 -255
  2. package/bin/dev.cmd +3 -0
  3. package/bin/dev.js +5 -0
  4. package/bin/run.cmd +3 -0
  5. package/bin/run.js +23 -0
  6. package/dist/commands/action/create.d.ts +21 -0
  7. package/dist/commands/action/create.js +126 -0
  8. package/dist/commands/action/delete.d.ts +17 -0
  9. package/dist/commands/action/delete.js +78 -0
  10. package/dist/commands/action/index.d.ts +15 -0
  11. package/dist/commands/action/index.js +107 -0
  12. package/dist/commands/action/list.d.ts +14 -0
  13. package/dist/commands/action/list.js +89 -0
  14. package/dist/commands/action/run.d.ts +19 -0
  15. package/dist/commands/action/run.js +179 -0
  16. package/dist/commands/action/show.d.ts +15 -0
  17. package/dist/commands/action/show.js +47 -0
  18. package/dist/commands/action/update.d.ts +22 -0
  19. package/dist/commands/action/update.js +168 -0
  20. package/dist/commands/agent/index.d.ts +13 -0
  21. package/dist/commands/agent/index.js +131 -0
  22. package/dist/commands/agent/list.d.ts +7 -0
  23. package/dist/commands/agent/list.js +126 -0
  24. package/dist/commands/agent/login.d.ts +16 -0
  25. package/dist/commands/agent/login.js +146 -0
  26. package/dist/commands/agent/rebuild.d.ts +18 -0
  27. package/dist/commands/agent/rebuild.js +133 -0
  28. package/dist/commands/agent/restart.d.ts +17 -0
  29. package/dist/commands/agent/restart.js +116 -0
  30. package/dist/commands/agent/shell.d.ts +23 -0
  31. package/dist/commands/agent/shell.js +378 -0
  32. package/dist/commands/agent/staff/add.d.ts +15 -0
  33. package/dist/commands/agent/staff/add.js +281 -0
  34. package/dist/commands/agent/staff/index.d.ts +14 -0
  35. package/dist/commands/agent/staff/index.js +90 -0
  36. package/dist/commands/agent/staff/list.d.ts +7 -0
  37. package/dist/commands/agent/staff/list.js +90 -0
  38. package/dist/commands/agent/staff/remove.d.ts +16 -0
  39. package/dist/commands/agent/staff/remove.js +137 -0
  40. package/dist/commands/agent/status.d.ts +17 -0
  41. package/dist/commands/agent/status.js +139 -0
  42. package/dist/commands/agent/temp/cleanup.d.ts +23 -0
  43. package/dist/commands/agent/temp/cleanup.js +388 -0
  44. package/dist/commands/agent/temp/index.d.ts +14 -0
  45. package/dist/commands/agent/temp/index.js +82 -0
  46. package/dist/commands/agent/temp/list.d.ts +7 -0
  47. package/dist/commands/agent/temp/list.js +108 -0
  48. package/dist/commands/agent/themes/add-names.d.ts +10 -0
  49. package/dist/commands/agent/themes/add-names.js +67 -0
  50. package/dist/commands/agent/themes/create.d.ts +13 -0
  51. package/dist/commands/agent/themes/create.js +66 -0
  52. package/dist/commands/agent/themes/index.d.ts +9 -0
  53. package/dist/commands/agent/themes/index.js +194 -0
  54. package/dist/commands/agent/themes/list.d.ts +6 -0
  55. package/dist/commands/agent/themes/list.js +41 -0
  56. package/dist/commands/agent/themes/set.d.ts +12 -0
  57. package/dist/commands/agent/themes/set.js +77 -0
  58. package/dist/commands/agent/visit.d.ts +16 -0
  59. package/dist/commands/agent/visit.js +88 -0
  60. package/dist/commands/autocomplete/setup.d.ts +14 -0
  61. package/dist/commands/autocomplete/setup.js +154 -0
  62. package/dist/commands/board/index.d.ts +17 -0
  63. package/dist/commands/board/index.js +255 -0
  64. package/dist/commands/board/watch.d.ts +13 -0
  65. package/dist/commands/board/watch.js +52 -0
  66. package/dist/commands/branch/create.d.ts +50 -0
  67. package/dist/commands/branch/create.js +624 -0
  68. package/dist/commands/branch/index.d.ts +13 -0
  69. package/dist/commands/branch/index.js +50 -0
  70. package/dist/commands/branch/list.d.ts +17 -0
  71. package/dist/commands/branch/list.js +120 -0
  72. package/dist/commands/branch/validate.d.ts +15 -0
  73. package/dist/commands/branch/validate.js +73 -0
  74. package/dist/commands/commit.d.ts +71 -0
  75. package/dist/commands/commit.js +499 -0
  76. package/dist/commands/docker/clean.d.ts +13 -0
  77. package/dist/commands/docker/clean.js +224 -0
  78. package/dist/commands/docker/index.d.ts +19 -0
  79. package/dist/commands/docker/index.js +274 -0
  80. package/dist/commands/docker/list.d.ts +16 -0
  81. package/dist/commands/docker/list.js +200 -0
  82. package/dist/commands/docker/logs.d.ts +14 -0
  83. package/dist/commands/docker/logs.js +118 -0
  84. package/dist/commands/docker/prune.d.ts +14 -0
  85. package/dist/commands/docker/prune.js +211 -0
  86. package/dist/commands/docker/restart.d.ts +14 -0
  87. package/dist/commands/docker/restart.js +129 -0
  88. package/dist/commands/docker/shell.d.ts +14 -0
  89. package/dist/commands/docker/shell.js +103 -0
  90. package/dist/commands/docker/start.d.ts +12 -0
  91. package/dist/commands/docker/start.js +92 -0
  92. package/dist/commands/docker/status.d.ts +7 -0
  93. package/dist/commands/docker/status.js +40 -0
  94. package/dist/commands/docker/stop.d.ts +14 -0
  95. package/dist/commands/docker/stop.js +134 -0
  96. package/dist/commands/docker/sync.d.ts +15 -0
  97. package/dist/commands/docker/sync.js +112 -0
  98. package/dist/commands/epic/activate.d.ts +13 -0
  99. package/dist/commands/epic/activate.js +118 -0
  100. package/dist/commands/epic/archive.d.ts +14 -0
  101. package/dist/commands/epic/archive.js +132 -0
  102. package/dist/commands/epic/create.d.ts +15 -0
  103. package/dist/commands/epic/create.js +137 -0
  104. package/dist/commands/epic/index.d.ts +13 -0
  105. package/dist/commands/epic/index.js +88 -0
  106. package/dist/commands/epic/link/block.d.ts +14 -0
  107. package/dist/commands/epic/link/block.js +79 -0
  108. package/dist/commands/epic/link/duplicates.d.ts +14 -0
  109. package/dist/commands/epic/link/duplicates.js +66 -0
  110. package/dist/commands/epic/link/index.d.ts +19 -0
  111. package/dist/commands/epic/link/index.js +242 -0
  112. package/dist/commands/epic/link/relates.d.ts +14 -0
  113. package/dist/commands/epic/link/relates.js +66 -0
  114. package/dist/commands/epic/link/remove.d.ts +16 -0
  115. package/dist/commands/epic/link/remove.js +89 -0
  116. package/dist/commands/epic/list.d.ts +11 -0
  117. package/dist/commands/epic/list.js +87 -0
  118. package/dist/commands/epic/move.d.ts +15 -0
  119. package/dist/commands/epic/move.js +184 -0
  120. package/dist/commands/epic/progress.d.ts +16 -0
  121. package/dist/commands/epic/progress.js +166 -0
  122. package/dist/commands/epic/project.d.ts +15 -0
  123. package/dist/commands/epic/project.js +219 -0
  124. package/dist/commands/epic/reorder.d.ts +21 -0
  125. package/dist/commands/epic/reorder.js +160 -0
  126. package/dist/commands/epic/spec.d.ts +15 -0
  127. package/dist/commands/epic/spec.js +191 -0
  128. package/dist/commands/epic/ticket.d.ts +18 -0
  129. package/dist/commands/epic/ticket.js +291 -0
  130. package/dist/commands/epic/view.d.ts +13 -0
  131. package/dist/commands/epic/view.js +117 -0
  132. package/dist/commands/execution/index.d.ts +13 -0
  133. package/dist/commands/execution/index.js +70 -0
  134. package/dist/commands/execution/list.d.ts +15 -0
  135. package/dist/commands/execution/list.js +144 -0
  136. package/dist/commands/execution/logs.d.ts +18 -0
  137. package/dist/commands/execution/logs.js +161 -0
  138. package/dist/commands/execution/stop.d.ts +22 -0
  139. package/dist/commands/execution/stop.js +248 -0
  140. package/dist/commands/gh/index.d.ts +9 -0
  141. package/dist/commands/gh/index.js +53 -0
  142. package/dist/commands/gh/login.d.ts +6 -0
  143. package/dist/commands/gh/login.js +57 -0
  144. package/dist/commands/gh/status.d.ts +6 -0
  145. package/dist/commands/gh/status.js +48 -0
  146. package/dist/commands/gh/token.d.ts +6 -0
  147. package/dist/commands/gh/token.js +59 -0
  148. package/dist/commands/init.d.ts +26 -0
  149. package/dist/commands/init.js +200 -0
  150. package/dist/commands/phase/create.d.ts +22 -0
  151. package/dist/commands/phase/create.js +123 -0
  152. package/dist/commands/phase/delete.d.ts +17 -0
  153. package/dist/commands/phase/delete.js +73 -0
  154. package/dist/commands/phase/list.d.ts +12 -0
  155. package/dist/commands/phase/list.js +76 -0
  156. package/dist/commands/phase/move.d.ts +17 -0
  157. package/dist/commands/phase/move.js +115 -0
  158. package/dist/commands/phase/template/apply.d.ts +17 -0
  159. package/dist/commands/phase/template/apply.js +106 -0
  160. package/dist/commands/phase/template/create.d.ts +16 -0
  161. package/dist/commands/phase/template/create.js +58 -0
  162. package/dist/commands/phase/template/delete.d.ts +17 -0
  163. package/dist/commands/phase/template/delete.js +98 -0
  164. package/dist/commands/phase/template/index.d.ts +15 -0
  165. package/dist/commands/phase/template/index.js +128 -0
  166. package/dist/commands/phase/template/list.d.ts +16 -0
  167. package/dist/commands/phase/template/list.js +95 -0
  168. package/dist/commands/phase/template/update.d.ts +17 -0
  169. package/dist/commands/phase/template/update.js +89 -0
  170. package/dist/commands/phase/update.d.ts +23 -0
  171. package/dist/commands/phase/update.js +174 -0
  172. package/dist/commands/pmo/init.d.ts +25 -0
  173. package/dist/commands/pmo/init.js +341 -0
  174. package/dist/commands/pr/create.d.ts +17 -0
  175. package/dist/commands/pr/create.js +242 -0
  176. package/dist/commands/pr/index.d.ts +9 -0
  177. package/dist/commands/pr/index.js +68 -0
  178. package/dist/commands/pr/link.d.ts +14 -0
  179. package/dist/commands/pr/link.js +212 -0
  180. package/dist/commands/pr/status.d.ts +12 -0
  181. package/dist/commands/pr/status.js +161 -0
  182. package/dist/commands/project/archive.d.ts +17 -0
  183. package/dist/commands/project/archive.js +83 -0
  184. package/dist/commands/project/create.d.ts +22 -0
  185. package/dist/commands/project/create.js +143 -0
  186. package/dist/commands/project/delete.d.ts +17 -0
  187. package/dist/commands/project/delete.js +128 -0
  188. package/dist/commands/project/index.d.ts +13 -0
  189. package/dist/commands/project/index.js +64 -0
  190. package/dist/commands/project/list.d.ts +14 -0
  191. package/dist/commands/project/list.js +96 -0
  192. package/dist/commands/project/spec.d.ts +18 -0
  193. package/dist/commands/project/spec.js +216 -0
  194. package/dist/commands/project/unarchive.d.ts +15 -0
  195. package/dist/commands/project/unarchive.js +35 -0
  196. package/dist/commands/project/view.d.ts +16 -0
  197. package/dist/commands/project/view.js +94 -0
  198. package/dist/commands/repo/add.d.ts +21 -0
  199. package/dist/commands/repo/add.js +118 -0
  200. package/dist/commands/repo/index.d.ts +13 -0
  201. package/dist/commands/repo/index.js +114 -0
  202. package/dist/commands/repo/list.d.ts +13 -0
  203. package/dist/commands/repo/list.js +96 -0
  204. package/dist/commands/repo/remove.d.ts +23 -0
  205. package/dist/commands/repo/remove.js +217 -0
  206. package/dist/commands/repo/view.d.ts +15 -0
  207. package/dist/commands/repo/view.js +99 -0
  208. package/dist/commands/session/attach.d.ts +40 -0
  209. package/dist/commands/session/attach.js +307 -0
  210. package/dist/commands/session/index.d.ts +13 -0
  211. package/dist/commands/session/index.js +64 -0
  212. package/dist/commands/session/list.d.ts +21 -0
  213. package/dist/commands/session/list.js +181 -0
  214. package/dist/commands/spec/create.d.ts +19 -0
  215. package/dist/commands/spec/create.js +130 -0
  216. package/dist/commands/spec/index.d.ts +13 -0
  217. package/dist/commands/spec/index.js +68 -0
  218. package/dist/commands/spec/link/depends.d.ts +14 -0
  219. package/dist/commands/spec/link/depends.js +64 -0
  220. package/dist/commands/spec/link/duplicates.d.ts +14 -0
  221. package/dist/commands/spec/link/duplicates.js +63 -0
  222. package/dist/commands/spec/link/index.d.ts +19 -0
  223. package/dist/commands/spec/link/index.js +200 -0
  224. package/dist/commands/spec/link/relates.d.ts +14 -0
  225. package/dist/commands/spec/link/relates.js +63 -0
  226. package/dist/commands/spec/link/remove.d.ts +16 -0
  227. package/dist/commands/spec/link/remove.js +94 -0
  228. package/dist/commands/spec/list.d.ts +12 -0
  229. package/dist/commands/spec/list.js +75 -0
  230. package/dist/commands/spec/plan.d.ts +15 -0
  231. package/dist/commands/spec/plan.js +108 -0
  232. package/dist/commands/spec/ticket.d.ts +18 -0
  233. package/dist/commands/spec/ticket.js +160 -0
  234. package/dist/commands/spec/view.d.ts +15 -0
  235. package/dist/commands/spec/view.js +163 -0
  236. package/dist/commands/status/create.d.ts +21 -0
  237. package/dist/commands/status/create.js +140 -0
  238. package/dist/commands/status/delete.d.ts +13 -0
  239. package/dist/commands/status/delete.js +77 -0
  240. package/dist/commands/status/index.d.ts +14 -0
  241. package/dist/commands/status/index.js +91 -0
  242. package/dist/commands/status/list.d.ts +12 -0
  243. package/dist/commands/status/list.js +93 -0
  244. package/dist/commands/status/move.d.ts +14 -0
  245. package/dist/commands/status/move.js +120 -0
  246. package/dist/commands/status/update.d.ts +20 -0
  247. package/dist/commands/status/update.js +180 -0
  248. package/dist/commands/template/delete.d.ts +15 -0
  249. package/dist/commands/template/delete.js +142 -0
  250. package/dist/commands/template/index.d.ts +10 -0
  251. package/dist/commands/template/index.js +64 -0
  252. package/dist/commands/template/list.d.ts +18 -0
  253. package/dist/commands/template/list.js +157 -0
  254. package/dist/commands/template/phase/apply.d.ts +14 -0
  255. package/dist/commands/template/phase/apply.js +41 -0
  256. package/dist/commands/template/phase/create.d.ts +12 -0
  257. package/dist/commands/template/phase/create.js +29 -0
  258. package/dist/commands/template/phase/delete.d.ts +13 -0
  259. package/dist/commands/template/phase/delete.js +34 -0
  260. package/dist/commands/template/phase/index.d.ts +10 -0
  261. package/dist/commands/template/phase/index.js +62 -0
  262. package/dist/commands/template/phase/list.d.ts +11 -0
  263. package/dist/commands/template/phase/list.js +34 -0
  264. package/dist/commands/template/phase/update.d.ts +13 -0
  265. package/dist/commands/template/phase/update.js +35 -0
  266. package/dist/commands/template/ticket/apply.d.ts +17 -0
  267. package/dist/commands/template/ticket/apply.js +58 -0
  268. package/dist/commands/template/ticket/delete.d.ts +13 -0
  269. package/dist/commands/template/ticket/delete.js +34 -0
  270. package/dist/commands/template/ticket/index.d.ts +10 -0
  271. package/dist/commands/template/ticket/index.js +62 -0
  272. package/dist/commands/template/ticket/list.d.ts +11 -0
  273. package/dist/commands/template/ticket/list.js +34 -0
  274. package/dist/commands/template/ticket/save.d.ts +13 -0
  275. package/dist/commands/template/ticket/save.js +35 -0
  276. package/dist/commands/ticket/bulk.d.ts +13 -0
  277. package/dist/commands/ticket/bulk.js +145 -0
  278. package/dist/commands/ticket/complete.d.ts +16 -0
  279. package/dist/commands/ticket/complete.js +170 -0
  280. package/dist/commands/ticket/create.d.ts +22 -0
  281. package/dist/commands/ticket/create.js +390 -0
  282. package/dist/commands/ticket/delete.d.ts +16 -0
  283. package/dist/commands/ticket/delete.js +178 -0
  284. package/dist/commands/ticket/edit.d.ts +27 -0
  285. package/dist/commands/ticket/edit.js +322 -0
  286. package/dist/commands/ticket/epic.d.ts +20 -0
  287. package/dist/commands/ticket/epic.js +333 -0
  288. package/dist/commands/ticket/index.d.ts +13 -0
  289. package/dist/commands/ticket/index.js +103 -0
  290. package/dist/commands/ticket/link/block.d.ts +14 -0
  291. package/dist/commands/ticket/link/block.js +94 -0
  292. package/dist/commands/ticket/link/duplicates.d.ts +14 -0
  293. package/dist/commands/ticket/link/duplicates.js +93 -0
  294. package/dist/commands/ticket/link/index.d.ts +19 -0
  295. package/dist/commands/ticket/link/index.js +239 -0
  296. package/dist/commands/ticket/link/relates.d.ts +14 -0
  297. package/dist/commands/ticket/link/relates.js +93 -0
  298. package/dist/commands/ticket/link/remove.d.ts +16 -0
  299. package/dist/commands/ticket/link/remove.js +128 -0
  300. package/dist/commands/ticket/list.d.ts +24 -0
  301. package/dist/commands/ticket/list.js +431 -0
  302. package/dist/commands/ticket/move.d.ts +18 -0
  303. package/dist/commands/ticket/move.js +212 -0
  304. package/dist/commands/ticket/project.d.ts +18 -0
  305. package/dist/commands/ticket/project.js +254 -0
  306. package/dist/commands/ticket/reassign.d.ts +19 -0
  307. package/dist/commands/ticket/reassign.js +279 -0
  308. package/dist/commands/ticket/spec.d.ts +18 -0
  309. package/dist/commands/ticket/spec.js +259 -0
  310. package/dist/commands/ticket/status.d.ts +13 -0
  311. package/dist/commands/ticket/status.js +87 -0
  312. package/dist/commands/ticket/template/apply.d.ts +25 -0
  313. package/dist/commands/ticket/template/apply.js +249 -0
  314. package/dist/commands/ticket/template/create.d.ts +19 -0
  315. package/dist/commands/ticket/template/create.js +210 -0
  316. package/dist/commands/ticket/template/delete.d.ts +17 -0
  317. package/dist/commands/ticket/template/delete.js +92 -0
  318. package/dist/commands/ticket/template/index.d.ts +15 -0
  319. package/dist/commands/ticket/template/index.js +118 -0
  320. package/dist/commands/ticket/template/list.d.ts +16 -0
  321. package/dist/commands/ticket/template/list.js +110 -0
  322. package/dist/commands/ticket/template/save.d.ts +14 -0
  323. package/dist/commands/ticket/template/save.js +110 -0
  324. package/dist/commands/ticket/update.d.ts +18 -0
  325. package/dist/commands/ticket/update.js +325 -0
  326. package/dist/commands/ticket/view.d.ts +13 -0
  327. package/dist/commands/ticket/view.js +80 -0
  328. package/dist/commands/whoami.d.ts +9 -0
  329. package/dist/commands/whoami.js +103 -0
  330. package/dist/commands/work/complete.d.ts +13 -0
  331. package/dist/commands/work/complete.js +121 -0
  332. package/dist/commands/work/index.d.ts +13 -0
  333. package/dist/commands/work/index.js +70 -0
  334. package/dist/commands/work/ready.d.ts +24 -0
  335. package/dist/commands/work/ready.js +290 -0
  336. package/dist/commands/work/revise.d.ts +19 -0
  337. package/dist/commands/work/revise.js +377 -0
  338. package/dist/commands/work/spawn-all.d.ts +17 -0
  339. package/dist/commands/work/spawn-all.js +58 -0
  340. package/dist/commands/work/spawn.d.ts +29 -0
  341. package/dist/commands/work/spawn.js +728 -0
  342. package/dist/commands/work/start.d.ts +39 -0
  343. package/dist/commands/work/start.js +1393 -0
  344. package/dist/commands/work/watch.d.ts +31 -0
  345. package/dist/commands/work/watch.js +359 -0
  346. package/dist/commands/workflow/create.d.ts +18 -0
  347. package/dist/commands/workflow/create.js +119 -0
  348. package/dist/commands/workflow/delete.d.ts +17 -0
  349. package/dist/commands/workflow/delete.js +119 -0
  350. package/dist/commands/workflow/index.d.ts +15 -0
  351. package/dist/commands/workflow/index.js +75 -0
  352. package/dist/commands/workflow/list.d.ts +15 -0
  353. package/dist/commands/workflow/list.js +75 -0
  354. package/dist/commands/workflow/switch.d.ts +13 -0
  355. package/dist/commands/workflow/switch.js +117 -0
  356. package/dist/commands/workflow/view.d.ts +16 -0
  357. package/dist/commands/workflow/view.js +114 -0
  358. package/dist/commands/workspace/add.d.ts +12 -0
  359. package/dist/commands/workspace/add.js +74 -0
  360. package/dist/commands/workspace/list.d.ts +9 -0
  361. package/dist/commands/workspace/list.js +153 -0
  362. package/dist/commands/workspace/remove.d.ts +13 -0
  363. package/dist/commands/workspace/remove.js +98 -0
  364. package/dist/commands/workspace/use.d.ts +12 -0
  365. package/dist/commands/workspace/use.js +111 -0
  366. package/dist/hooks/init.d.ts +11 -0
  367. package/dist/hooks/init.js +57 -0
  368. package/dist/index.d.ts +1 -0
  369. package/dist/index.js +1 -0
  370. package/dist/lib/agents/commands.d.ts +189 -0
  371. package/dist/lib/agents/commands.js +893 -0
  372. package/dist/lib/agents/index.d.ts +54 -0
  373. package/dist/lib/agents/index.js +382 -0
  374. package/dist/lib/branch/index.d.ts +120 -0
  375. package/dist/lib/branch/index.js +334 -0
  376. package/dist/lib/colors.d.ts +94 -0
  377. package/dist/lib/colors.js +68 -0
  378. package/dist/lib/commands/docker-command.d.ts +21 -0
  379. package/dist/lib/commands/docker-command.js +27 -0
  380. package/dist/lib/database/index.d.ts +176 -0
  381. package/dist/lib/database/index.js +581 -0
  382. package/dist/lib/docker/resolve.d.ts +38 -0
  383. package/dist/lib/docker/resolve.js +175 -0
  384. package/dist/lib/execution/config.d.ts +150 -0
  385. package/dist/lib/execution/config.js +541 -0
  386. package/dist/lib/execution/devcontainer.d.ts +85 -0
  387. package/dist/lib/execution/devcontainer.js +594 -0
  388. package/dist/lib/execution/index.d.ts +10 -0
  389. package/dist/lib/execution/index.js +10 -0
  390. package/dist/lib/execution/runners.d.ts +53 -0
  391. package/dist/lib/execution/runners.js +1182 -0
  392. package/dist/lib/execution/spawner.d.ts +85 -0
  393. package/dist/lib/execution/spawner.js +548 -0
  394. package/dist/lib/execution/storage.d.ts +159 -0
  395. package/dist/lib/execution/storage.js +425 -0
  396. package/dist/lib/execution/types.d.ts +145 -0
  397. package/dist/lib/execution/types.js +157 -0
  398. package/dist/lib/init/index.d.ts +75 -0
  399. package/dist/lib/init/index.js +355 -0
  400. package/dist/lib/machine-config.d.ts +170 -0
  401. package/dist/lib/machine-config.js +386 -0
  402. package/dist/lib/pmo/base-command.d.ts +195 -0
  403. package/dist/lib/pmo/base-command.js +319 -0
  404. package/dist/lib/pmo/create-spec-folders.d.ts +43 -0
  405. package/dist/lib/pmo/create-spec-folders.js +64 -0
  406. package/dist/lib/pmo/epic-files.d.ts +56 -0
  407. package/dist/lib/pmo/epic-files.js +195 -0
  408. package/dist/lib/pmo/find-pmo.d.ts +14 -0
  409. package/dist/lib/pmo/find-pmo.js +172 -0
  410. package/dist/lib/pmo/index.d.ts +109 -0
  411. package/dist/lib/pmo/index.js +501 -0
  412. package/dist/lib/pmo/markdown.d.ts +31 -0
  413. package/dist/lib/pmo/markdown.js +245 -0
  414. package/dist/lib/pmo/pmo-context.d.ts +27 -0
  415. package/dist/lib/pmo/pmo-context.js +44 -0
  416. package/dist/lib/pmo/schema.d.ts +82 -0
  417. package/dist/lib/pmo/schema.js +531 -0
  418. package/dist/lib/pmo/spec-parser.d.ts +25 -0
  419. package/dist/lib/pmo/spec-parser.js +205 -0
  420. package/dist/lib/pmo/spec-types.d.ts +43 -0
  421. package/dist/lib/pmo/spec-types.js +7 -0
  422. package/dist/lib/pmo/storage/actions.d.ts +34 -0
  423. package/dist/lib/pmo/storage/actions.js +177 -0
  424. package/dist/lib/pmo/storage/base.d.ts +47 -0
  425. package/dist/lib/pmo/storage/base.js +858 -0
  426. package/dist/lib/pmo/storage/dependencies.d.ts +61 -0
  427. package/dist/lib/pmo/storage/dependencies.js +267 -0
  428. package/dist/lib/pmo/storage/epics.d.ts +46 -0
  429. package/dist/lib/pmo/storage/epics.js +243 -0
  430. package/dist/lib/pmo/storage/helpers.d.ts +33 -0
  431. package/dist/lib/pmo/storage/helpers.js +148 -0
  432. package/dist/lib/pmo/storage/index.d.ts +186 -0
  433. package/dist/lib/pmo/storage/index.js +689 -0
  434. package/dist/lib/pmo/storage/phases.d.ts +65 -0
  435. package/dist/lib/pmo/storage/phases.js +392 -0
  436. package/dist/lib/pmo/storage/projects.d.ts +79 -0
  437. package/dist/lib/pmo/storage/projects.js +303 -0
  438. package/dist/lib/pmo/storage/specs.d.ts +77 -0
  439. package/dist/lib/pmo/storage/specs.js +389 -0
  440. package/dist/lib/pmo/storage/statuses.d.ts +63 -0
  441. package/dist/lib/pmo/storage/statuses.js +404 -0
  442. package/dist/lib/pmo/storage/subtasks.d.ts +37 -0
  443. package/dist/lib/pmo/storage/subtasks.js +184 -0
  444. package/dist/lib/pmo/storage/templates.d.ts +40 -0
  445. package/dist/lib/pmo/storage/templates.js +210 -0
  446. package/dist/lib/pmo/storage/tickets.d.ts +57 -0
  447. package/dist/lib/pmo/storage/tickets.js +453 -0
  448. package/dist/lib/pmo/storage/types.d.ts +200 -0
  449. package/dist/lib/pmo/storage/types.js +5 -0
  450. package/dist/lib/pmo/storage/views.d.ts +44 -0
  451. package/dist/lib/pmo/storage/views.js +355 -0
  452. package/dist/lib/pmo/storage-sqlite.d.ts +7 -0
  453. package/dist/lib/pmo/storage-sqlite.js +7 -0
  454. package/dist/lib/pmo/sync-manager.d.ts +92 -0
  455. package/dist/lib/pmo/sync-manager.js +229 -0
  456. package/dist/lib/pmo/types.d.ts +710 -0
  457. package/dist/lib/pmo/types.js +108 -0
  458. package/dist/lib/pmo/utils.d.ts +122 -0
  459. package/dist/lib/pmo/utils.js +174 -0
  460. package/dist/lib/pmo/watcher.d.ts +43 -0
  461. package/dist/lib/pmo/watcher.js +208 -0
  462. package/dist/lib/pr/index.d.ts +150 -0
  463. package/dist/lib/pr/index.js +483 -0
  464. package/dist/lib/prompt-json.d.ts +231 -0
  465. package/dist/lib/prompt-json.js +213 -0
  466. package/dist/lib/repos/index.d.ts +81 -0
  467. package/dist/lib/repos/index.js +679 -0
  468. package/dist/lib/styles.d.ts +98 -0
  469. package/dist/lib/styles.js +195 -0
  470. package/dist/lib/themes.d.ts +128 -0
  471. package/dist/lib/themes.js +301 -0
  472. package/dist/lib/ui/BoardUI.d.ts +21 -0
  473. package/dist/lib/ui/BoardUI.js +85 -0
  474. package/dist/lib/ui/ClaimTicketUI.d.ts +17 -0
  475. package/dist/lib/ui/ClaimTicketUI.js +64 -0
  476. package/dist/lib/ui/CreateTicketUI.d.ts +13 -0
  477. package/dist/lib/ui/CreateTicketUI.js +101 -0
  478. package/dist/lib/workspace.d.ts +66 -0
  479. package/dist/lib/workspace.js +204 -0
  480. package/oclif.manifest.json +10593 -0
  481. package/package.json +104 -52
  482. package/LICENSE +0 -21
  483. package/dist/bin/prlt.d.ts +0 -11
  484. package/dist/bin/prlt.d.ts.map +0 -1
  485. package/dist/bin/prlt.js +0 -144
  486. package/dist/bin/prlt.js.map +0 -1
  487. package/dist/lib/config/index.d.ts +0 -14
  488. package/dist/lib/config/index.d.ts.map +0 -1
  489. package/dist/lib/config/index.js +0 -139
  490. package/dist/lib/config/index.js.map +0 -1
  491. package/dist/lib/config/upgrade.d.ts +0 -2
  492. package/dist/lib/config/upgrade.d.ts.map +0 -1
  493. package/dist/lib/config/upgrade.js +0 -173
  494. package/dist/lib/config/upgrade.js.map +0 -1
  495. package/dist/lib/themes/index.d.ts +0 -8
  496. package/dist/lib/themes/index.d.ts.map +0 -1
  497. package/dist/lib/themes/index.js +0 -80
  498. package/dist/lib/themes/index.js.map +0 -1
  499. package/dist/lib/utils/helpers.d.ts +0 -4
  500. package/dist/lib/utils/helpers.d.ts.map +0 -1
  501. package/dist/lib/utils/helpers.js +0 -39
  502. package/dist/lib/utils/helpers.js.map +0 -1
  503. package/dist/lib/utils/logger.d.ts +0 -4
  504. package/dist/lib/utils/logger.d.ts.map +0 -1
  505. package/dist/lib/utils/logger.js +0 -28
  506. package/dist/lib/utils/logger.js.map +0 -1
  507. package/dist/lib/workspace/index.d.ts +0 -13
  508. package/dist/lib/workspace/index.d.ts.map +0 -1
  509. package/dist/lib/workspace/index.js +0 -116
  510. package/dist/lib/workspace/index.js.map +0 -1
  511. package/dist/lib/worktree/index.d.ts +0 -7
  512. package/dist/lib/worktree/index.d.ts.map +0 -1
  513. package/dist/lib/worktree/index.js +0 -362
  514. package/dist/lib/worktree/index.js.map +0 -1
  515. package/dist/lib/worktree/migrate.d.ts +0 -2
  516. package/dist/lib/worktree/migrate.d.ts.map +0 -1
  517. package/dist/lib/worktree/migrate.js +0 -212
  518. package/dist/lib/worktree/migrate.js.map +0 -1
  519. package/dist/lib/worktree/repair.d.ts +0 -3
  520. package/dist/lib/worktree/repair.d.ts.map +0 -1
  521. package/dist/lib/worktree/repair.js +0 -140
  522. package/dist/lib/worktree/repair.js.map +0 -1
  523. package/dist/types/index.d.ts +0 -57
  524. package/dist/types/index.d.ts.map +0 -1
  525. package/dist/types/index.js +0 -3
  526. package/dist/types/index.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ export interface HQConfig {
2
+ type: 'hq';
3
+ created: string;
4
+ workspaceName: string;
5
+ hasPMO: boolean;
6
+ agents: string[];
7
+ repos: string[];
8
+ }
9
+ /**
10
+ * Detect the current agent name from environment or directory structure.
11
+ * Returns null if not running in an agent context.
12
+ */
13
+ export declare function detectAgentName(): string | null;
14
+ /**
15
+ * Find the HQ root directory by looking for .proletariat/workspace.db
16
+ * @deprecated Use findHQRoot from '../workspace.js' instead for PRLT_HQ_PATH support
17
+ */
18
+ export { findHQRoot } from '../workspace.js';
19
+ /**
20
+ * Prompt user to enter agent names
21
+ */
22
+ export declare function promptAgentNames(existingAgents?: string[]): Promise<string[]>;
23
+ export interface CreateAgentOptions {
24
+ skipDevcontainer?: boolean;
25
+ }
26
+ /**
27
+ * Create agent worktrees (shared between HQ and workspace-only modes)
28
+ */
29
+ export declare function createAgentWorktrees(workspacePath: string, agents: string[], hqPath?: string, options?: CreateAgentOptions): Promise<void>;
30
+ /**
31
+ * Result from agent prompt including optional theme info
32
+ */
33
+ export interface AgentPromptResult {
34
+ agents: string[];
35
+ themeId?: string;
36
+ customTheme?: {
37
+ name: string;
38
+ displayName: string;
39
+ names: string[];
40
+ };
41
+ }
42
+ /**
43
+ * Prompt user for agent selection with theme options
44
+ */
45
+ export declare function promptForAgents(): Promise<string[]>;
46
+ /**
47
+ * Prompt user for agent selection with theme options (returns full result)
48
+ * Simplified flow: pick theme -> auto-create 5 random agents
49
+ */
50
+ export declare function promptForAgentsWithTheme(): Promise<AgentPromptResult>;
51
+ /**
52
+ * Add agents to HQ (used by both init and agent add commands)
53
+ */
54
+ export declare function addAgentsToHQ(hqPath: string, agents: string[]): Promise<void>;
@@ -0,0 +1,382 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ import inquirer from 'inquirer';
5
+ import chalk from 'chalk';
6
+ import { isValidAgentName, getSuggestedAgentNames, BUILTIN_THEMES, getThemePersistentDir } from '../themes.js';
7
+ import { getWorkspaceRepositories, getActiveTheme } from '../database/index.js';
8
+ import { styles } from '../styles.js';
9
+ import { createDevcontainerConfig } from '../execution/devcontainer.js';
10
+ /**
11
+ * Detect the current agent name from environment or directory structure.
12
+ * Returns null if not running in an agent context.
13
+ */
14
+ export function detectAgentName() {
15
+ // Check environment variable first (set in devcontainer)
16
+ if (process.env.PRLT_AGENT_NAME) {
17
+ return process.env.PRLT_AGENT_NAME;
18
+ }
19
+ // Try to detect from directory structure
20
+ const cwd = process.cwd();
21
+ // Devcontainer pattern: /workspace/proletariat-{agent}
22
+ const workspaceMatch = cwd.match(/\/workspace\/[^/]+-(\w+)/);
23
+ if (workspaceMatch) {
24
+ return workspaceMatch[1];
25
+ }
26
+ // Host pattern: agents/staff/{agent}
27
+ const staffMatch = cwd.match(/agents\/staff\/(\w+)/);
28
+ if (staffMatch) {
29
+ return staffMatch[1];
30
+ }
31
+ // Try git branch pattern: agent-{name}
32
+ try {
33
+ const branch = execSync('git branch --show-current', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
34
+ const agentBranchMatch = branch.match(/^agent-(\w+)$/);
35
+ if (agentBranchMatch) {
36
+ return agentBranchMatch[1];
37
+ }
38
+ }
39
+ catch {
40
+ // Ignore git errors
41
+ }
42
+ return null;
43
+ }
44
+ /**
45
+ * Find the HQ root directory by looking for .proletariat/workspace.db
46
+ * @deprecated Use findHQRoot from '../workspace.js' instead for PRLT_HQ_PATH support
47
+ */
48
+ export { findHQRoot } from '../workspace.js';
49
+ /**
50
+ * Prompt user to enter agent names
51
+ */
52
+ export async function promptAgentNames(existingAgents = []) {
53
+ const suggestions = getSuggestedAgentNames().filter(n => !existingAgents.includes(n));
54
+ const { agentNames } = await inquirer.prompt([{
55
+ type: 'input',
56
+ name: 'agentNames',
57
+ message: `Enter agent names (space-separated, e.g., "${suggestions.slice(0, 2).join(' ')}"):`,
58
+ validate: (input) => {
59
+ if (!input.trim()) {
60
+ return 'Please enter at least one agent name';
61
+ }
62
+ const names = input.trim().split(/\s+/);
63
+ const invalid = names.filter(n => !isValidAgentName(n));
64
+ if (invalid.length > 0) {
65
+ return `Invalid agent names: ${invalid.join(', ')}. Names must be lowercase alphanumeric with optional hyphens/underscores.`;
66
+ }
67
+ const duplicates = names.filter(n => existingAgents.includes(n));
68
+ if (duplicates.length > 0) {
69
+ return `These agents already exist: ${duplicates.join(', ')}`;
70
+ }
71
+ return true;
72
+ },
73
+ }]);
74
+ return agentNames.trim().split(/\s+/).filter(Boolean);
75
+ }
76
+ /**
77
+ * Create agent worktrees (shared between HQ and workspace-only modes)
78
+ */
79
+ export async function createAgentWorktrees(workspacePath, agents, hqPath, options) {
80
+ if (hqPath) {
81
+ // HQ mode - create worktrees for all repos in repos/ directory
82
+ const reposDir = path.join(hqPath, 'repos');
83
+ // Get repositories from database instead of JSON config
84
+ const repos = getWorkspaceRepositories(hqPath);
85
+ if (repos.length > 0) {
86
+ // Create worktrees for each agent across all repositories
87
+ for (const agent of agents) {
88
+ const agentDir = path.join(workspacePath, agent);
89
+ console.log(chalk.blue(`Creating agent: ${agent}...`));
90
+ try {
91
+ // Create agent directory
92
+ fs.mkdirSync(agentDir, { recursive: true });
93
+ // Track which repos successfully had worktrees created
94
+ const createdWorktrees = [];
95
+ // Create worktrees for all repositories
96
+ for (const repo of repos) {
97
+ const sourceRepo = path.join(reposDir, repo.name);
98
+ // Worktree directory is just the repo name (the agent name is already in the parent path)
99
+ const worktreeDir = path.join(agentDir, repo.name);
100
+ if (fs.existsSync(sourceRepo)) {
101
+ // Check if repo is empty (no commits)
102
+ let isEmptyRepo = false;
103
+ try {
104
+ execSync('git rev-parse HEAD', { cwd: sourceRepo, stdio: 'pipe' });
105
+ }
106
+ catch {
107
+ isEmptyRepo = true;
108
+ }
109
+ if (isEmptyRepo) {
110
+ console.log(chalk.yellow(` Skipping ${repo.name} (empty repository with no commits)`));
111
+ continue;
112
+ }
113
+ console.log(styles.muted(` Creating worktree for ${repo.name}...`));
114
+ // Fetch latest from origin to ensure we have up-to-date main
115
+ try {
116
+ execSync(`git fetch origin main`, {
117
+ cwd: sourceRepo,
118
+ stdio: 'pipe'
119
+ });
120
+ }
121
+ catch {
122
+ // Ignore fetch errors (might be offline)
123
+ console.log(chalk.yellow(` Warning: Could not fetch origin/main, using local state`));
124
+ }
125
+ // Determine the base ref to use (origin/main, main, or HEAD)
126
+ let baseRef = 'origin/main';
127
+ try {
128
+ execSync(`git rev-parse ${baseRef}`, { cwd: sourceRepo, stdio: 'pipe' });
129
+ }
130
+ catch {
131
+ // origin/main doesn't exist, try local main
132
+ try {
133
+ execSync('git rev-parse main', { cwd: sourceRepo, stdio: 'pipe' });
134
+ baseRef = 'main';
135
+ }
136
+ catch {
137
+ // No main branch, use HEAD
138
+ baseRef = 'HEAD';
139
+ }
140
+ }
141
+ // Create git worktree for the agent
142
+ const branchName = `agent-${agent}`;
143
+ try {
144
+ execSync(`git worktree add "${worktreeDir}" -b ${branchName} ${baseRef}`, {
145
+ cwd: sourceRepo,
146
+ stdio: 'inherit'
147
+ });
148
+ createdWorktrees.push(repo.name);
149
+ }
150
+ catch {
151
+ // Branch might already exist, try to use it or clean up
152
+ console.log(chalk.yellow(` Branch ${branchName} already exists, attempting to reuse or clean up...`));
153
+ try {
154
+ // Try without creating a new branch (use existing)
155
+ execSync(`git worktree add "${worktreeDir}" ${branchName}`, {
156
+ cwd: sourceRepo,
157
+ stdio: 'inherit'
158
+ });
159
+ createdWorktrees.push(repo.name);
160
+ }
161
+ catch {
162
+ // If that fails too, clean up the orphaned branch and try again
163
+ try {
164
+ execSync(`git branch -D ${branchName}`, {
165
+ cwd: sourceRepo,
166
+ stdio: 'pipe'
167
+ });
168
+ execSync(`git worktree add "${worktreeDir}" -b ${branchName} ${baseRef}`, {
169
+ cwd: sourceRepo,
170
+ stdio: 'inherit'
171
+ });
172
+ createdWorktrees.push(repo.name);
173
+ }
174
+ catch (finalError) {
175
+ throw new Error(`Failed to create worktree after cleanup: ${finalError}`);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ // Create devcontainer config for sandboxed execution (only for repos with worktrees)
182
+ // Note: Agent metadata is stored in SQLite (agents table), not in config files
183
+ if (!options?.skipDevcontainer && createdWorktrees.length > 0) {
184
+ console.log(styles.muted(` Creating devcontainer config...`));
185
+ createDevcontainerConfig({
186
+ agentName: agent,
187
+ agentDir,
188
+ repoWorktrees: createdWorktrees,
189
+ });
190
+ }
191
+ console.log(chalk.green(`āœ… Agent ${agent} created with ${createdWorktrees.length} worktree(s)`));
192
+ }
193
+ catch (error) {
194
+ console.log(chalk.red(`Failed to create agent ${agent}: ${error}`));
195
+ }
196
+ }
197
+ }
198
+ else {
199
+ console.log(chalk.yellow('No repositories found in HQ. Creating placeholder agent directories.'));
200
+ // Create placeholder directories for now
201
+ for (const agent of agents) {
202
+ const agentDir = path.join(workspacePath, agent);
203
+ fs.mkdirSync(agentDir, { recursive: true });
204
+ console.log(chalk.green(`āœ… Placeholder agent ${agent} created`));
205
+ }
206
+ }
207
+ }
208
+ else {
209
+ // Workspace-only mode - use current repo
210
+ const sourceRepo = process.cwd();
211
+ const repoName = path.basename(sourceRepo);
212
+ for (const agent of agents) {
213
+ const agentDir = path.join(workspacePath, agent);
214
+ // Worktree directory is just the repo name (the agent name is already in the parent path)
215
+ const worktreeDir = path.join(agentDir, repoName);
216
+ console.log(chalk.blue(`Creating agent: ${agent}...`));
217
+ try {
218
+ // Check if repo is empty (no commits)
219
+ let isEmptyRepo = false;
220
+ try {
221
+ execSync('git rev-parse HEAD', { cwd: sourceRepo, stdio: 'pipe' });
222
+ }
223
+ catch {
224
+ isEmptyRepo = true;
225
+ }
226
+ if (isEmptyRepo) {
227
+ console.log(chalk.yellow(` Skipping (empty repository with no commits)`));
228
+ continue;
229
+ }
230
+ // Create agent directory
231
+ fs.mkdirSync(agentDir, { recursive: true });
232
+ // Fetch latest from origin to ensure we have up-to-date main
233
+ try {
234
+ execSync(`git fetch origin main`, {
235
+ cwd: sourceRepo,
236
+ stdio: 'pipe'
237
+ });
238
+ }
239
+ catch {
240
+ // Ignore fetch errors (might be offline)
241
+ console.log(chalk.yellow(` Warning: Could not fetch origin/main, using local state`));
242
+ }
243
+ // Determine the base ref to use (origin/main, main, or HEAD)
244
+ let baseRef = 'origin/main';
245
+ try {
246
+ execSync(`git rev-parse ${baseRef}`, { cwd: sourceRepo, stdio: 'pipe' });
247
+ }
248
+ catch {
249
+ // origin/main doesn't exist, try local main
250
+ try {
251
+ execSync('git rev-parse main', { cwd: sourceRepo, stdio: 'pipe' });
252
+ baseRef = 'main';
253
+ }
254
+ catch {
255
+ // No main branch, use HEAD
256
+ baseRef = 'HEAD';
257
+ }
258
+ }
259
+ // Create git worktree for the agent
260
+ const branchName = `agent-${agent}`;
261
+ try {
262
+ execSync(`git worktree add "${worktreeDir}" -b ${branchName} ${baseRef}`, {
263
+ cwd: sourceRepo,
264
+ stdio: 'inherit'
265
+ });
266
+ }
267
+ catch {
268
+ // Branch might already exist, try to use it or clean up
269
+ console.log(chalk.yellow(` Branch ${branchName} already exists, attempting to reuse or clean up...`));
270
+ try {
271
+ // Try without creating a new branch (use existing)
272
+ execSync(`git worktree add "${worktreeDir}" ${branchName}`, {
273
+ cwd: sourceRepo,
274
+ stdio: 'inherit'
275
+ });
276
+ }
277
+ catch {
278
+ // If that fails too, clean up the orphaned branch and try again
279
+ try {
280
+ execSync(`git branch -D ${branchName}`, {
281
+ cwd: sourceRepo,
282
+ stdio: 'pipe'
283
+ });
284
+ execSync(`git worktree add "${worktreeDir}" -b ${branchName} ${baseRef}`, {
285
+ cwd: sourceRepo,
286
+ stdio: 'inherit'
287
+ });
288
+ }
289
+ catch (finalError) {
290
+ throw new Error(`Failed to create worktree after cleanup: ${finalError}`);
291
+ }
292
+ }
293
+ }
294
+ // Create devcontainer config for sandboxed execution
295
+ // Note: Agent metadata is stored in SQLite (agents table), not in config files
296
+ if (!options?.skipDevcontainer) {
297
+ console.log(styles.muted(` Creating devcontainer config...`));
298
+ createDevcontainerConfig({
299
+ agentName: agent,
300
+ agentDir,
301
+ repoWorktrees: [repoName],
302
+ });
303
+ }
304
+ console.log(chalk.green(`āœ… Agent ${agent} created with worktree`));
305
+ }
306
+ catch (error) {
307
+ console.log(chalk.red(`Failed to create agent ${agent}: ${error}`));
308
+ }
309
+ }
310
+ }
311
+ }
312
+ /**
313
+ * Prompt user for agent selection with theme options
314
+ */
315
+ export async function promptForAgents() {
316
+ const result = await promptForAgentsWithTheme();
317
+ return result.agents;
318
+ }
319
+ /**
320
+ * Prompt user for agent selection with theme options (returns full result)
321
+ * Simplified flow: pick theme -> auto-create 5 random agents
322
+ */
323
+ export async function promptForAgentsWithTheme() {
324
+ // Build theme choices with preview of names
325
+ const themeChoices = BUILTIN_THEMES.map(t => ({
326
+ name: `${t.displayName} (${t.names.slice(0, 4).join(', ')}...)`,
327
+ value: t.id
328
+ }));
329
+ const { selectedTheme } = await inquirer.prompt([{
330
+ type: 'list',
331
+ name: 'selectedTheme',
332
+ message: 'Agent naming theme:',
333
+ choices: [
334
+ ...themeChoices,
335
+ new inquirer.Separator(),
336
+ { name: 'Skip (add agents later)', value: 'skip' }
337
+ ]
338
+ }]);
339
+ if (selectedTheme === 'skip') {
340
+ return { agents: [] };
341
+ }
342
+ // Get the theme
343
+ const theme = BUILTIN_THEMES.find(t => t.id === selectedTheme);
344
+ if (!theme) {
345
+ return { agents: [] };
346
+ }
347
+ // Randomly select 10 agents from the theme
348
+ const shuffled = [...theme.names].sort(() => Math.random() - 0.5);
349
+ const selected = shuffled.slice(0, 10);
350
+ console.log(chalk.blue(`\nCreating 10 staff agents: ${selected.join(', ')}`));
351
+ return { agents: selected, themeId: selectedTheme };
352
+ }
353
+ /**
354
+ * Add agents to HQ (used by both init and agent add commands)
355
+ */
356
+ export async function addAgentsToHQ(hqPath, agents) {
357
+ // Import database functions for getting/adding agents
358
+ const { getWorkspaceAgents, addAgentsToDatabase } = await import('../database/index.js');
359
+ // Get existing agents from database
360
+ const existingAgents = getWorkspaceAgents(hqPath);
361
+ const existingAgentNames = new Set(existingAgents.map(a => a.name));
362
+ // Filter out already existing agents
363
+ const newAgents = agents.filter(name => {
364
+ if (existingAgentNames.has(name)) {
365
+ console.log(chalk.yellow(`Agent ${name} already exists`));
366
+ return false;
367
+ }
368
+ return true;
369
+ });
370
+ if (newAgents.length === 0) {
371
+ console.log(chalk.yellow('No new agents to add.'));
372
+ return;
373
+ }
374
+ // Create worktrees (use theme-specific directory)
375
+ const activeTheme = getActiveTheme(hqPath);
376
+ const persistentDir = getThemePersistentDir(activeTheme?.id);
377
+ const workspacePath = path.join(hqPath, 'agents', persistentDir);
378
+ await createAgentWorktrees(workspacePath, newAgents, hqPath);
379
+ // Add agents to database
380
+ addAgentsToDatabase(hqPath, newAgents);
381
+ console.log(chalk.green(`\nšŸŽ‰ Added ${newAgents.length} agent(s) successfully!`));
382
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Branch Utilities
3
+ *
4
+ * Utilities for creating and validating conventional branch names.
5
+ * Format: {type}/{coder}/{description} or {type}/{description}
6
+ */
7
+ export declare const BRANCH_TYPES: {
8
+ readonly feat: "New feature";
9
+ readonly fix: "Bug fix";
10
+ readonly rfct: "Refactoring (no functional change)";
11
+ readonly docs: "Documentation only";
12
+ readonly test: "Test additions or corrections";
13
+ readonly chore: "Maintenance tasks, no production code";
14
+ readonly perf: "Performance improvement";
15
+ readonly ci: "CI/CD configuration changes";
16
+ readonly build: "Build system or external dependency changes";
17
+ readonly sec: "Security fixes or improvements";
18
+ readonly db: "Database migrations or schema changes";
19
+ readonly rel: "Release preparation";
20
+ readonly ship: "Shipping, deployment, and launch";
21
+ readonly grow: "Growth and marketing initiatives";
22
+ readonly cx: "Customer experience and support";
23
+ readonly strat: "Strategy and planning";
24
+ readonly ops: "Business operations";
25
+ };
26
+ export type BranchType = keyof typeof BRANCH_TYPES;
27
+ export declare const CONVENTIONAL_TYPES: BranchType[];
28
+ export declare const EXTENDED_TYPES: BranchType[];
29
+ export declare const FOUNDER_TYPES: BranchType[];
30
+ export declare const DEVELOPMENT_TYPES: BranchType[];
31
+ export declare const BUSINESS_TYPES: BranchType[];
32
+ export declare function isKebabCase(str: string): boolean;
33
+ export declare function isValidBranchType(type: string): type is BranchType;
34
+ export interface BranchParts {
35
+ ticketId?: string;
36
+ type: BranchType;
37
+ owner?: string;
38
+ agent?: string;
39
+ description: string;
40
+ }
41
+ export interface ValidationResult {
42
+ valid: boolean;
43
+ parts?: BranchParts;
44
+ error?: string;
45
+ }
46
+ /**
47
+ * Check if a string looks like a ticket ID.
48
+ */
49
+ export declare function isTicketId(str: string): boolean;
50
+ /**
51
+ * Parse and validate a branch name against conventional format.
52
+ *
53
+ * Supported formats:
54
+ * - {ticketId}/{type}/{owner}/{agent}/{description} - full format with ticket
55
+ * - {ticketId}/{type}/{owner}/{description} - ticket format without agent (manual)
56
+ * - {type}/{owner}/{description} - legacy format without ticket
57
+ * - {type}/{description} - minimal format
58
+ */
59
+ export declare function validateBranchName(name: string): ValidationResult;
60
+ /**
61
+ * Build a branch name from parts.
62
+ *
63
+ * Formats:
64
+ * - With ticket + agent: {ticketId}/{type}/{owner}/{agent}/{description}
65
+ * - With ticket (manual): {ticketId}/{type}/{owner}/{description}
66
+ * - Without ticket: {type}/{owner}/{description}
67
+ * - Minimal: {type}/{description}
68
+ */
69
+ export declare function buildBranchName(type: BranchType, description: string, options?: {
70
+ ticketId?: string;
71
+ owner?: string;
72
+ agent?: string;
73
+ }): string;
74
+ /**
75
+ * Convert a string to kebab-case.
76
+ */
77
+ export declare function toKebabCase(str: string): string;
78
+ export interface BranchInfo {
79
+ name: string;
80
+ current: boolean;
81
+ ticketId?: string;
82
+ type?: BranchType;
83
+ owner?: string;
84
+ agent?: string;
85
+ description?: string;
86
+ tracking?: string;
87
+ }
88
+ /**
89
+ * Get current branch name.
90
+ */
91
+ export declare function getCurrentBranch(cwd?: string): string | null;
92
+ /**
93
+ * List all branches with parsed info.
94
+ */
95
+ export declare function listBranches(cwd?: string, includeRemote?: boolean): BranchInfo[];
96
+ /**
97
+ * Check if a branch exists.
98
+ */
99
+ export declare function branchExists(name: string, cwd?: string): boolean;
100
+ /**
101
+ * Create a new branch.
102
+ * @param startPoint - Optional starting point (e.g., 'origin/main')
103
+ */
104
+ export declare function createBranch(name: string, cwd?: string, checkout?: boolean, startPoint?: string): void;
105
+ /**
106
+ * Fetch from origin.
107
+ */
108
+ export declare function fetchOrigin(ref?: string, cwd?: string): boolean;
109
+ /**
110
+ * Switch to an existing branch.
111
+ */
112
+ export declare function checkoutBranch(name: string, cwd?: string): void;
113
+ /**
114
+ * Create an empty commit.
115
+ */
116
+ export declare function createEmptyCommit(message: string, cwd?: string): void;
117
+ /**
118
+ * Check if in a git repository.
119
+ */
120
+ export declare function isGitRepo(cwd?: string): boolean;