@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,334 @@
1
+ /**
2
+ * Branch Utilities
3
+ *
4
+ * Utilities for creating and validating conventional branch names.
5
+ * Format: {type}/{coder}/{description} or {type}/{description}
6
+ */
7
+ import { execSync } from 'node:child_process';
8
+ // =============================================================================
9
+ // Branch Types
10
+ // =============================================================================
11
+ export const BRANCH_TYPES = {
12
+ // Conventional Commits (standard types)
13
+ feat: 'New feature',
14
+ fix: 'Bug fix',
15
+ rfct: 'Refactoring (no functional change)',
16
+ docs: 'Documentation only',
17
+ test: 'Test additions or corrections',
18
+ chore: 'Maintenance tasks, no production code',
19
+ perf: 'Performance improvement',
20
+ ci: 'CI/CD configuration changes',
21
+ build: 'Build system or external dependency changes',
22
+ // Extended Types (proletariat extras)
23
+ sec: 'Security fixes or improvements',
24
+ db: 'Database migrations or schema changes',
25
+ rel: 'Release preparation',
26
+ // 5Tool Founder Types
27
+ ship: 'Shipping, deployment, and launch',
28
+ grow: 'Growth and marketing initiatives',
29
+ cx: 'Customer experience and support',
30
+ strat: 'Strategy and planning',
31
+ ops: 'Business operations',
32
+ };
33
+ // Conventional Commits (standard types)
34
+ export const CONVENTIONAL_TYPES = [
35
+ 'feat', 'fix', 'rfct', 'docs', 'test', 'chore', 'perf', 'ci', 'build'
36
+ ];
37
+ // Extended Types (proletariat extras)
38
+ export const EXTENDED_TYPES = [
39
+ 'sec', 'db', 'rel'
40
+ ];
41
+ // 5Tool Founder Types
42
+ export const FOUNDER_TYPES = [
43
+ 'ship', 'grow', 'cx', 'strat', 'ops'
44
+ ];
45
+ // Combined for wizard display
46
+ export const DEVELOPMENT_TYPES = [...CONVENTIONAL_TYPES, ...EXTENDED_TYPES];
47
+ export const BUSINESS_TYPES = FOUNDER_TYPES;
48
+ // =============================================================================
49
+ // Validation
50
+ // =============================================================================
51
+ const KEBAB_CASE_REGEX = /^[a-z0-9]+(-[a-z0-9]+)*$/;
52
+ export function isKebabCase(str) {
53
+ return KEBAB_CASE_REGEX.test(str);
54
+ }
55
+ export function isValidBranchType(type) {
56
+ return type in BRANCH_TYPES;
57
+ }
58
+ // Ticket ID pattern (e.g., TKT-001, PROJ-123)
59
+ const TICKET_ID_REGEX = /^[A-Z]+-\d+$/;
60
+ /**
61
+ * Check if a string looks like a ticket ID.
62
+ */
63
+ export function isTicketId(str) {
64
+ return TICKET_ID_REGEX.test(str);
65
+ }
66
+ /**
67
+ * Parse and validate a branch name against conventional format.
68
+ *
69
+ * Supported formats:
70
+ * - {ticketId}/{type}/{owner}/{agent}/{description} - full format with ticket
71
+ * - {ticketId}/{type}/{owner}/{description} - ticket format without agent (manual)
72
+ * - {type}/{owner}/{description} - legacy format without ticket
73
+ * - {type}/{description} - minimal format
74
+ */
75
+ export function validateBranchName(name) {
76
+ const parts = name.split('/');
77
+ if (parts.length < 2 || parts.length > 5) {
78
+ return {
79
+ valid: false,
80
+ error: 'Branch name must have 2-5 parts separated by /',
81
+ };
82
+ }
83
+ // Check if first part is a ticket ID
84
+ const hasTicket = isTicketId(parts[0]);
85
+ if (hasTicket) {
86
+ // Ticket-first format: {ticketId}/{type}/{owner}/{agent?}/{description}
87
+ const ticketId = parts[0];
88
+ const type = parts[1];
89
+ if (!isValidBranchType(type)) {
90
+ return {
91
+ valid: false,
92
+ error: `Unknown branch type: "${type}". Valid types: ${Object.keys(BRANCH_TYPES).join(', ')}`,
93
+ };
94
+ }
95
+ if (parts.length === 3) {
96
+ // {ticketId}/{type}/{description}
97
+ return {
98
+ valid: true,
99
+ parts: { ticketId, type: type, description: parts[2] },
100
+ };
101
+ }
102
+ if (parts.length === 4) {
103
+ // {ticketId}/{type}/{owner}/{description}
104
+ return {
105
+ valid: true,
106
+ parts: { ticketId, type: type, owner: parts[2], description: parts[3] },
107
+ };
108
+ }
109
+ if (parts.length === 5) {
110
+ // {ticketId}/{type}/{owner}/{agent}/{description}
111
+ return {
112
+ valid: true,
113
+ parts: { ticketId, type: type, owner: parts[2], agent: parts[3], description: parts[4] },
114
+ };
115
+ }
116
+ return {
117
+ valid: false,
118
+ error: 'Invalid ticket branch format. Expected: {ticketId}/{type}/{owner}/{description} or {ticketId}/{type}/{owner}/{agent}/{description}',
119
+ };
120
+ }
121
+ // Legacy format without ticket: {type}/{owner?}/{description}
122
+ const type = parts[0];
123
+ if (!isValidBranchType(type)) {
124
+ return {
125
+ valid: false,
126
+ error: `Unknown branch type: "${type}". Valid types: ${Object.keys(BRANCH_TYPES).join(', ')}`,
127
+ };
128
+ }
129
+ if (parts.length === 2) {
130
+ // {type}/{description}
131
+ const description = parts[1];
132
+ if (!isKebabCase(description)) {
133
+ return {
134
+ valid: false,
135
+ error: `Description must be kebab-case: "${description}"`,
136
+ };
137
+ }
138
+ return {
139
+ valid: true,
140
+ parts: { type: type, description },
141
+ };
142
+ }
143
+ // {type}/{owner}/{description}
144
+ const owner = parts[1];
145
+ const description = parts[2];
146
+ if (!isKebabCase(owner)) {
147
+ return {
148
+ valid: false,
149
+ error: `Owner name must be kebab-case: "${owner}"`,
150
+ };
151
+ }
152
+ if (!isKebabCase(description)) {
153
+ return {
154
+ valid: false,
155
+ error: `Description must be kebab-case: "${description}"`,
156
+ };
157
+ }
158
+ return {
159
+ valid: true,
160
+ parts: { type: type, owner, description },
161
+ };
162
+ }
163
+ /**
164
+ * Build a branch name from parts.
165
+ *
166
+ * Formats:
167
+ * - With ticket + agent: {ticketId}/{type}/{owner}/{agent}/{description}
168
+ * - With ticket (manual): {ticketId}/{type}/{owner}/{description}
169
+ * - Without ticket: {type}/{owner}/{description}
170
+ * - Minimal: {type}/{description}
171
+ */
172
+ export function buildBranchName(type, description, options) {
173
+ const { ticketId, owner, agent } = options || {};
174
+ if (ticketId) {
175
+ // Ticket-first format
176
+ if (agent && owner) {
177
+ return `${ticketId}/${type}/${owner}/${agent}/${description}`;
178
+ }
179
+ if (owner) {
180
+ return `${ticketId}/${type}/${owner}/${description}`;
181
+ }
182
+ return `${ticketId}/${type}/${description}`;
183
+ }
184
+ // Legacy format without ticket
185
+ if (owner) {
186
+ return `${type}/${owner}/${description}`;
187
+ }
188
+ return `${type}/${description}`;
189
+ }
190
+ /**
191
+ * Convert a string to kebab-case.
192
+ */
193
+ export function toKebabCase(str) {
194
+ return str
195
+ .toLowerCase()
196
+ .replace(/[^a-z0-9\s-]/g, '')
197
+ .replace(/\s+/g, '-')
198
+ .replace(/-+/g, '-')
199
+ .replace(/^-|-$/g, '');
200
+ }
201
+ /**
202
+ * Get current branch name.
203
+ */
204
+ export function getCurrentBranch(cwd) {
205
+ try {
206
+ return execSync('git rev-parse --abbrev-ref HEAD', {
207
+ cwd,
208
+ encoding: 'utf-8',
209
+ stdio: ['pipe', 'pipe', 'pipe'],
210
+ }).trim();
211
+ }
212
+ catch {
213
+ return null;
214
+ }
215
+ }
216
+ /**
217
+ * List all branches with parsed info.
218
+ */
219
+ export function listBranches(cwd, includeRemote = false) {
220
+ try {
221
+ const args = includeRemote ? '-a' : '';
222
+ const output = execSync(`git branch ${args} --format="%(refname:short)|%(upstream:short)|%(HEAD)"`, {
223
+ cwd,
224
+ encoding: 'utf-8',
225
+ stdio: ['pipe', 'pipe', 'pipe'],
226
+ });
227
+ const branches = [];
228
+ for (const line of output.trim().split('\n')) {
229
+ if (!line)
230
+ continue;
231
+ const [name, tracking, head] = line.split('|');
232
+ const current = head === '*';
233
+ // Parse conventional parts
234
+ const validation = validateBranchName(name);
235
+ branches.push({
236
+ name,
237
+ current,
238
+ ticketId: validation.parts?.ticketId,
239
+ type: validation.parts?.type,
240
+ owner: validation.parts?.owner,
241
+ agent: validation.parts?.agent,
242
+ description: validation.parts?.description,
243
+ tracking: tracking || undefined,
244
+ });
245
+ }
246
+ return branches;
247
+ }
248
+ catch {
249
+ return [];
250
+ }
251
+ }
252
+ /**
253
+ * Check if a branch exists.
254
+ */
255
+ export function branchExists(name, cwd) {
256
+ try {
257
+ execSync(`git rev-parse --verify ${name}`, {
258
+ cwd,
259
+ stdio: ['pipe', 'pipe', 'pipe'],
260
+ });
261
+ return true;
262
+ }
263
+ catch {
264
+ return false;
265
+ }
266
+ }
267
+ /**
268
+ * Create a new branch.
269
+ * @param startPoint - Optional starting point (e.g., 'origin/main')
270
+ */
271
+ export function createBranch(name, cwd, checkout = true, startPoint) {
272
+ const startArg = startPoint ? ` ${startPoint}` : '';
273
+ if (checkout) {
274
+ execSync(`git checkout -b ${name}${startArg}`, {
275
+ cwd,
276
+ stdio: ['pipe', 'pipe', 'pipe'],
277
+ });
278
+ }
279
+ else {
280
+ execSync(`git branch ${name}${startArg}`, {
281
+ cwd,
282
+ stdio: ['pipe', 'pipe', 'pipe'],
283
+ });
284
+ }
285
+ }
286
+ /**
287
+ * Fetch from origin.
288
+ */
289
+ export function fetchOrigin(ref, cwd) {
290
+ try {
291
+ const refArg = ref ? ` ${ref}` : '';
292
+ execSync(`git fetch origin${refArg}`, {
293
+ cwd,
294
+ stdio: ['pipe', 'pipe', 'pipe'],
295
+ });
296
+ return true;
297
+ }
298
+ catch {
299
+ return false;
300
+ }
301
+ }
302
+ /**
303
+ * Switch to an existing branch.
304
+ */
305
+ export function checkoutBranch(name, cwd) {
306
+ execSync(`git checkout ${name}`, {
307
+ cwd,
308
+ stdio: ['pipe', 'pipe', 'pipe'],
309
+ });
310
+ }
311
+ /**
312
+ * Create an empty commit.
313
+ */
314
+ export function createEmptyCommit(message, cwd) {
315
+ execSync(`git commit --allow-empty -m "${message.replace(/"/g, '\\"')}"`, {
316
+ cwd,
317
+ stdio: ['pipe', 'pipe', 'pipe'],
318
+ });
319
+ }
320
+ /**
321
+ * Check if in a git repository.
322
+ */
323
+ export function isGitRepo(cwd) {
324
+ try {
325
+ execSync('git rev-parse --git-dir', {
326
+ cwd,
327
+ stdio: ['pipe', 'pipe', 'pipe'],
328
+ });
329
+ return true;
330
+ }
331
+ catch {
332
+ return false;
333
+ }
334
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Centralized color scheme for consistent, readable output across all commands
3
+ * Optimized for both light and dark terminal backgrounds
4
+ */
5
+ import chalk from 'chalk';
6
+ export declare const colors: {
7
+ primary: chalk.Chalk;
8
+ success: chalk.Chalk;
9
+ error: chalk.Chalk;
10
+ warning: chalk.Chalk;
11
+ text: chalk.Chalk;
12
+ textBold: chalk.Chalk;
13
+ textSecondary: chalk.Chalk;
14
+ textMuted: chalk.Chalk;
15
+ active: chalk.Chalk;
16
+ inactive: chalk.Chalk;
17
+ pending: chalk.Chalk;
18
+ code: chalk.Chalk;
19
+ path: chalk.Chalk;
20
+ command: chalk.Chalk;
21
+ agentName: chalk.Chalk;
22
+ repoClean: chalk.Chalk;
23
+ repoDirty: chalk.Chalk;
24
+ repoMissing: chalk.Chalk;
25
+ commitsAhead: chalk.Chalk;
26
+ selected: chalk.Chalk;
27
+ unselected: chalk.Chalk;
28
+ disabled: chalk.Chalk;
29
+ icon: chalk.Chalk;
30
+ separator: chalk.Chalk;
31
+ highlight: chalk.Chalk;
32
+ attention: chalk.Chalk;
33
+ };
34
+ export declare const format: {
35
+ title: (text: string) => string;
36
+ subtitle: (text: string) => string;
37
+ success: (text: string) => string;
38
+ error: (text: string) => string;
39
+ warning: (text: string) => string;
40
+ info: (text: string) => string;
41
+ agentActive: (name: string) => string;
42
+ agentInactive: (name: string) => string;
43
+ repoStatus: (name: string, status: "clean" | "dirty" | "missing", commits?: number) => string;
44
+ command: (text: string) => string;
45
+ path: (text: string) => string;
46
+ listItem: (text: string, indent?: number) => string;
47
+ listSubItem: (text: string, indent?: number) => string;
48
+ };
49
+ declare const _default: {
50
+ colors: {
51
+ primary: chalk.Chalk;
52
+ success: chalk.Chalk;
53
+ error: chalk.Chalk;
54
+ warning: chalk.Chalk;
55
+ text: chalk.Chalk;
56
+ textBold: chalk.Chalk;
57
+ textSecondary: chalk.Chalk;
58
+ textMuted: chalk.Chalk;
59
+ active: chalk.Chalk;
60
+ inactive: chalk.Chalk;
61
+ pending: chalk.Chalk;
62
+ code: chalk.Chalk;
63
+ path: chalk.Chalk;
64
+ command: chalk.Chalk;
65
+ agentName: chalk.Chalk;
66
+ repoClean: chalk.Chalk;
67
+ repoDirty: chalk.Chalk;
68
+ repoMissing: chalk.Chalk;
69
+ commitsAhead: chalk.Chalk;
70
+ selected: chalk.Chalk;
71
+ unselected: chalk.Chalk;
72
+ disabled: chalk.Chalk;
73
+ icon: chalk.Chalk;
74
+ separator: chalk.Chalk;
75
+ highlight: chalk.Chalk;
76
+ attention: chalk.Chalk;
77
+ };
78
+ format: {
79
+ title: (text: string) => string;
80
+ subtitle: (text: string) => string;
81
+ success: (text: string) => string;
82
+ error: (text: string) => string;
83
+ warning: (text: string) => string;
84
+ info: (text: string) => string;
85
+ agentActive: (name: string) => string;
86
+ agentInactive: (name: string) => string;
87
+ repoStatus: (name: string, status: "clean" | "dirty" | "missing", commits?: number) => string;
88
+ command: (text: string) => string;
89
+ path: (text: string) => string;
90
+ listItem: (text: string, indent?: number) => string;
91
+ listSubItem: (text: string, indent?: number) => string;
92
+ };
93
+ };
94
+ export default _default;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Centralized color scheme for consistent, readable output across all commands
3
+ * Optimized for both light and dark terminal backgrounds
4
+ */
5
+ import chalk from 'chalk';
6
+ export const colors = {
7
+ // Primary colors - highly visible
8
+ primary: chalk.cyan,
9
+ success: chalk.green,
10
+ error: chalk.red,
11
+ warning: chalk.yellow,
12
+ // Text colors - guaranteed readable
13
+ text: chalk.white,
14
+ textBold: chalk.bold.white,
15
+ textSecondary: chalk.cyan,
16
+ textMuted: chalk.dim,
17
+ // Status indicators
18
+ active: chalk.green,
19
+ inactive: chalk.red,
20
+ pending: chalk.yellow,
21
+ // Special elements
22
+ code: chalk.bold.white.bgBlue,
23
+ path: chalk.bold.cyan,
24
+ command: chalk.bold.white,
25
+ // Agent-specific
26
+ agentName: chalk.bold.cyan,
27
+ // Repository status
28
+ repoClean: chalk.green,
29
+ repoDirty: chalk.yellow,
30
+ repoMissing: chalk.red,
31
+ commitsAhead: chalk.blue,
32
+ // Interactive elements
33
+ selected: chalk.bold.cyan,
34
+ unselected: chalk.white,
35
+ disabled: chalk.dim,
36
+ // Icons and decorations
37
+ icon: chalk.white,
38
+ separator: chalk.dim,
39
+ // Background highlights
40
+ highlight: chalk.bgBlue.white,
41
+ attention: chalk.bgYellow.black
42
+ };
43
+ // Utility functions for common patterns
44
+ export const format = {
45
+ title: (text) => colors.primary.bold(`\n${text}\n`),
46
+ subtitle: (text) => colors.textSecondary(`${text}`),
47
+ success: (text) => `${colors.success('✅')} ${colors.text(text)}`,
48
+ error: (text) => `${colors.error('❌')} ${colors.text(text)}`,
49
+ warning: (text) => `${colors.warning('⚠️')} ${colors.text(text)}`,
50
+ info: (text) => `${colors.primary('ℹ️')} ${colors.text(text)}`,
51
+ // Agent-specific formatters
52
+ agentActive: (name) => `${colors.success('🟢')} ${colors.agentName(name)} - ${colors.active('Active')}`,
53
+ agentInactive: (name) => `${colors.error('🔴')} ${colors.agentName(name)} - ${colors.inactive('Inactive')}`,
54
+ // Repository formatters
55
+ repoStatus: (name, status, commits) => {
56
+ const statusColor = status === 'clean' ? colors.repoClean :
57
+ status === 'dirty' ? colors.repoDirty : colors.repoMissing;
58
+ const commitsText = commits ? ` ${colors.commitsAhead(`(+${commits})`)}` : '';
59
+ return `${colors.text(`• ${name}`)} ${statusColor(`(${status})`)}${commitsText}`;
60
+ },
61
+ // Command formatters
62
+ command: (text) => colors.command(` ${text}`),
63
+ path: (text) => colors.path(text),
64
+ // List item formatters
65
+ listItem: (text, indent = 2) => colors.text(`${' '.repeat(indent)}${text}`),
66
+ listSubItem: (text, indent = 4) => colors.textSecondary(`${' '.repeat(indent)}${text}`)
67
+ };
68
+ export default { colors, format };
@@ -0,0 +1,21 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Base command class for commands that require Docker.
4
+ *
5
+ * Automatically checks if Docker daemon is running before the command executes.
6
+ * If Docker is not available, exits with a clear error message.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * import { DockerCommand } from '../../lib/commands/docker-command.js'
11
+ *
12
+ * export default class MyCommand extends DockerCommand {
13
+ * async run() {
14
+ * // Docker is guaranteed to be running here
15
+ * }
16
+ * }
17
+ * ```
18
+ */
19
+ export declare abstract class DockerCommand extends Command {
20
+ init(): Promise<void>;
21
+ }
@@ -0,0 +1,27 @@
1
+ import { Command } from '@oclif/core';
2
+ import { isDockerRunning } from '../execution/runners.js';
3
+ /**
4
+ * Base command class for commands that require Docker.
5
+ *
6
+ * Automatically checks if Docker daemon is running before the command executes.
7
+ * If Docker is not available, exits with a clear error message.
8
+ *
9
+ * Usage:
10
+ * ```typescript
11
+ * import { DockerCommand } from '../../lib/commands/docker-command.js'
12
+ *
13
+ * export default class MyCommand extends DockerCommand {
14
+ * async run() {
15
+ * // Docker is guaranteed to be running here
16
+ * }
17
+ * }
18
+ * ```
19
+ */
20
+ export class DockerCommand extends Command {
21
+ async init() {
22
+ await super.init();
23
+ if (!isDockerRunning()) {
24
+ this.error('Docker is not running. Please start Docker Desktop and try again.');
25
+ }
26
+ }
27
+ }