@proletariat/cli 0.3.51 → 0.3.53

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 (883) hide show
  1. package/README.md +28 -0
  2. package/bin/run.js +21 -11
  3. package/dist/commands/action/create.js +1 -0
  4. package/dist/commands/action/create.js.map +1 -0
  5. package/dist/commands/action/delete.js +1 -0
  6. package/dist/commands/action/delete.js.map +1 -0
  7. package/dist/commands/action/index.js +1 -0
  8. package/dist/commands/action/index.js.map +1 -0
  9. package/dist/commands/action/list.js +1 -0
  10. package/dist/commands/action/list.js.map +1 -0
  11. package/dist/commands/action/run.js +1 -0
  12. package/dist/commands/action/run.js.map +1 -0
  13. package/dist/commands/action/show.js +1 -0
  14. package/dist/commands/action/show.js.map +1 -0
  15. package/dist/commands/action/update.js +1 -0
  16. package/dist/commands/action/update.js.map +1 -0
  17. package/dist/commands/agent/auth.js +1 -0
  18. package/dist/commands/agent/auth.js.map +1 -0
  19. package/dist/commands/agent/cleanup.js +1 -0
  20. package/dist/commands/agent/cleanup.js.map +1 -0
  21. package/dist/commands/agent/discover.js +1 -0
  22. package/dist/commands/agent/discover.js.map +1 -0
  23. package/dist/commands/agent/index.js +1 -0
  24. package/dist/commands/agent/index.js.map +1 -0
  25. package/dist/commands/agent/list.js +1 -0
  26. package/dist/commands/agent/list.js.map +1 -0
  27. package/dist/commands/agent/login.js +1 -0
  28. package/dist/commands/agent/login.js.map +1 -0
  29. package/dist/commands/agent/rebuild.js +1 -0
  30. package/dist/commands/agent/rebuild.js.map +1 -0
  31. package/dist/commands/agent/remove.js +1 -0
  32. package/dist/commands/agent/remove.js.map +1 -0
  33. package/dist/commands/agent/restart.js +1 -0
  34. package/dist/commands/agent/restart.js.map +1 -0
  35. package/dist/commands/agent/shell.js +5 -1
  36. package/dist/commands/agent/shell.js.map +1 -0
  37. package/dist/commands/agent/staff/add.js +1 -0
  38. package/dist/commands/agent/staff/add.js.map +1 -0
  39. package/dist/commands/agent/staff/index.js +1 -0
  40. package/dist/commands/agent/staff/index.js.map +1 -0
  41. package/dist/commands/agent/staff/list.js +1 -0
  42. package/dist/commands/agent/staff/list.js.map +1 -0
  43. package/dist/commands/agent/staff/remove.js +1 -0
  44. package/dist/commands/agent/staff/remove.js.map +1 -0
  45. package/dist/commands/agent/status.js +2 -0
  46. package/dist/commands/agent/status.js.map +1 -0
  47. package/dist/commands/agent/themes/add-names.js +1 -0
  48. package/dist/commands/agent/themes/add-names.js.map +1 -0
  49. package/dist/commands/agent/themes/create.js +1 -0
  50. package/dist/commands/agent/themes/create.js.map +1 -0
  51. package/dist/commands/agent/themes/index.js +1 -0
  52. package/dist/commands/agent/themes/index.js.map +1 -0
  53. package/dist/commands/agent/themes/list.js +1 -0
  54. package/dist/commands/agent/themes/list.js.map +1 -0
  55. package/dist/commands/agent/themes/set.js +1 -0
  56. package/dist/commands/agent/themes/set.js.map +1 -0
  57. package/dist/commands/agent/visit.js +1 -0
  58. package/dist/commands/agent/visit.js.map +1 -0
  59. package/dist/commands/agents/themes/add-names.js +1 -0
  60. package/dist/commands/agents/themes/add-names.js.map +1 -0
  61. package/dist/commands/agents/themes/create.js +1 -0
  62. package/dist/commands/agents/themes/create.js.map +1 -0
  63. package/dist/commands/agents/themes/list.js +1 -0
  64. package/dist/commands/agents/themes/list.js.map +1 -0
  65. package/dist/commands/asana/connect.d.ts +15 -0
  66. package/dist/commands/asana/connect.js +268 -0
  67. package/dist/commands/asana/connect.js.map +1 -0
  68. package/dist/commands/asana/sync.d.ts +15 -0
  69. package/dist/commands/asana/sync.js +190 -0
  70. package/dist/commands/asana/sync.js.map +1 -0
  71. package/dist/commands/autocomplete/setup.js +1 -0
  72. package/dist/commands/autocomplete/setup.js.map +1 -0
  73. package/dist/commands/board/index.js +1 -0
  74. package/dist/commands/board/index.js.map +1 -0
  75. package/dist/commands/board/view.js +1 -0
  76. package/dist/commands/board/view.js.map +1 -0
  77. package/dist/commands/board/watch.js +1 -0
  78. package/dist/commands/board/watch.js.map +1 -0
  79. package/dist/commands/branch/create.js +1 -0
  80. package/dist/commands/branch/create.js.map +1 -0
  81. package/dist/commands/branch/index.js +1 -0
  82. package/dist/commands/branch/index.js.map +1 -0
  83. package/dist/commands/branch/list.js +1 -0
  84. package/dist/commands/branch/list.js.map +1 -0
  85. package/dist/commands/branch/validate.js +1 -0
  86. package/dist/commands/branch/validate.js.map +1 -0
  87. package/dist/commands/branch/where.js +1 -0
  88. package/dist/commands/branch/where.js.map +1 -0
  89. package/dist/commands/caffeinate/index.js +1 -0
  90. package/dist/commands/caffeinate/index.js.map +1 -0
  91. package/dist/commands/caffeinate/start.js +1 -0
  92. package/dist/commands/caffeinate/start.js.map +1 -0
  93. package/dist/commands/caffeinate/status.js +1 -0
  94. package/dist/commands/caffeinate/status.js.map +1 -0
  95. package/dist/commands/caffeinate/stop.js +1 -0
  96. package/dist/commands/caffeinate/stop.js.map +1 -0
  97. package/dist/commands/category/create.js +1 -0
  98. package/dist/commands/category/create.js.map +1 -0
  99. package/dist/commands/category/delete.js +1 -0
  100. package/dist/commands/category/delete.js.map +1 -0
  101. package/dist/commands/category/index.js +1 -0
  102. package/dist/commands/category/index.js.map +1 -0
  103. package/dist/commands/category/list.js +1 -0
  104. package/dist/commands/category/list.js.map +1 -0
  105. package/dist/commands/category/rename.js +1 -0
  106. package/dist/commands/category/rename.js.map +1 -0
  107. package/dist/commands/claude/index.js +11 -5
  108. package/dist/commands/claude/index.js.map +1 -0
  109. package/dist/commands/claude/open.js +1 -0
  110. package/dist/commands/claude/open.js.map +1 -0
  111. package/dist/commands/commit.js +1 -0
  112. package/dist/commands/commit.js.map +1 -0
  113. package/dist/commands/config/index.js +8 -1
  114. package/dist/commands/config/index.js.map +1 -0
  115. package/dist/commands/diet.js +1 -0
  116. package/dist/commands/diet.js.map +1 -0
  117. package/dist/commands/docker/clean.js +1 -0
  118. package/dist/commands/docker/clean.js.map +1 -0
  119. package/dist/commands/docker/index.js +1 -0
  120. package/dist/commands/docker/index.js.map +1 -0
  121. package/dist/commands/docker/list.js +1 -0
  122. package/dist/commands/docker/list.js.map +1 -0
  123. package/dist/commands/docker/logs.js +4 -1
  124. package/dist/commands/docker/logs.js.map +1 -0
  125. package/dist/commands/docker/prune.js +1 -0
  126. package/dist/commands/docker/prune.js.map +1 -0
  127. package/dist/commands/docker/restart.js +1 -0
  128. package/dist/commands/docker/restart.js.map +1 -0
  129. package/dist/commands/docker/shell.js +4 -1
  130. package/dist/commands/docker/shell.js.map +1 -0
  131. package/dist/commands/docker/start.js +1 -0
  132. package/dist/commands/docker/start.js.map +1 -0
  133. package/dist/commands/docker/status.js +1 -0
  134. package/dist/commands/docker/status.js.map +1 -0
  135. package/dist/commands/docker/stop.js +1 -0
  136. package/dist/commands/docker/stop.js.map +1 -0
  137. package/dist/commands/docker/sync.js +1 -0
  138. package/dist/commands/docker/sync.js.map +1 -0
  139. package/dist/commands/epic/activate.js +1 -0
  140. package/dist/commands/epic/activate.js.map +1 -0
  141. package/dist/commands/epic/archive.js +1 -0
  142. package/dist/commands/epic/archive.js.map +1 -0
  143. package/dist/commands/epic/create.js +1 -0
  144. package/dist/commands/epic/create.js.map +1 -0
  145. package/dist/commands/epic/delete.js +1 -0
  146. package/dist/commands/epic/delete.js.map +1 -0
  147. package/dist/commands/epic/index.js +1 -0
  148. package/dist/commands/epic/index.js.map +1 -0
  149. package/dist/commands/epic/list.js +1 -0
  150. package/dist/commands/epic/list.js.map +1 -0
  151. package/dist/commands/epic/move.js +1 -0
  152. package/dist/commands/epic/move.js.map +1 -0
  153. package/dist/commands/epic/progress.js +1 -0
  154. package/dist/commands/epic/progress.js.map +1 -0
  155. package/dist/commands/epic/project.js +1 -0
  156. package/dist/commands/epic/project.js.map +1 -0
  157. package/dist/commands/epic/reorder.js +1 -0
  158. package/dist/commands/epic/reorder.js.map +1 -0
  159. package/dist/commands/epic/show.js +1 -0
  160. package/dist/commands/epic/show.js.map +1 -0
  161. package/dist/commands/epic/spec.js +1 -0
  162. package/dist/commands/epic/spec.js.map +1 -0
  163. package/dist/commands/epic/ticket.js +1 -0
  164. package/dist/commands/epic/ticket.js.map +1 -0
  165. package/dist/commands/epic/view.js +1 -0
  166. package/dist/commands/epic/view.js.map +1 -0
  167. package/dist/commands/execution/config.js +1 -0
  168. package/dist/commands/execution/config.js.map +1 -0
  169. package/dist/commands/execution/index.js +1 -0
  170. package/dist/commands/execution/index.js.map +1 -0
  171. package/dist/commands/execution/kill.js +1 -0
  172. package/dist/commands/execution/kill.js.map +1 -0
  173. package/dist/commands/execution/list.js +4 -0
  174. package/dist/commands/execution/list.js.map +1 -0
  175. package/dist/commands/execution/logs.js +4 -5
  176. package/dist/commands/execution/logs.js.map +1 -0
  177. package/dist/commands/execution/stop.js +1 -0
  178. package/dist/commands/execution/stop.js.map +1 -0
  179. package/dist/commands/execution/view.js +11 -0
  180. package/dist/commands/execution/view.js.map +1 -0
  181. package/dist/commands/feedback/index.js +1 -0
  182. package/dist/commands/feedback/index.js.map +1 -0
  183. package/dist/commands/feedback/list.js +1 -0
  184. package/dist/commands/feedback/list.js.map +1 -0
  185. package/dist/commands/feedback/submit.js +1 -0
  186. package/dist/commands/feedback/submit.js.map +1 -0
  187. package/dist/commands/feedback/view.js +1 -0
  188. package/dist/commands/feedback/view.js.map +1 -0
  189. package/dist/commands/gh/index.js +1 -0
  190. package/dist/commands/gh/index.js.map +1 -0
  191. package/dist/commands/gh/login.js +4 -1
  192. package/dist/commands/gh/login.js.map +1 -0
  193. package/dist/commands/gh/status.js +1 -0
  194. package/dist/commands/gh/status.js.map +1 -0
  195. package/dist/commands/gh/token.js +1 -0
  196. package/dist/commands/gh/token.js.map +1 -0
  197. package/dist/commands/init.js +1 -0
  198. package/dist/commands/init.js.map +1 -0
  199. package/dist/commands/label/create.js +1 -0
  200. package/dist/commands/label/create.js.map +1 -0
  201. package/dist/commands/label/delete.js +1 -0
  202. package/dist/commands/label/delete.js.map +1 -0
  203. package/dist/commands/label/group/create.js +1 -0
  204. package/dist/commands/label/group/create.js.map +1 -0
  205. package/dist/commands/label/group/list.js +1 -0
  206. package/dist/commands/label/group/list.js.map +1 -0
  207. package/dist/commands/label/index.js +1 -0
  208. package/dist/commands/label/index.js.map +1 -0
  209. package/dist/commands/label/list.js +1 -0
  210. package/dist/commands/label/list.js.map +1 -0
  211. package/dist/commands/linear/auth.d.ts +1 -0
  212. package/dist/commands/linear/auth.js +7 -5
  213. package/dist/commands/linear/auth.js.map +1 -0
  214. package/dist/commands/linear/connect.d.ts +17 -0
  215. package/dist/commands/linear/connect.js +298 -0
  216. package/dist/commands/linear/connect.js.map +1 -0
  217. package/dist/commands/linear/import.js +3 -2
  218. package/dist/commands/linear/import.js.map +1 -0
  219. package/dist/commands/linear/status.js +42 -5
  220. package/dist/commands/linear/status.js.map +1 -0
  221. package/dist/commands/linear/sync.js +3 -2
  222. package/dist/commands/linear/sync.js.map +1 -0
  223. package/dist/commands/link/create.js +1 -0
  224. package/dist/commands/link/create.js.map +1 -0
  225. package/dist/commands/link/index.js +1 -0
  226. package/dist/commands/link/index.js.map +1 -0
  227. package/dist/commands/link/list.js +1 -0
  228. package/dist/commands/link/list.js.map +1 -0
  229. package/dist/commands/link/remove.js +1 -0
  230. package/dist/commands/link/remove.js.map +1 -0
  231. package/dist/commands/mcp-server.js +1 -0
  232. package/dist/commands/mcp-server.js.map +1 -0
  233. package/dist/commands/monday/connect.d.ts +16 -0
  234. package/dist/commands/monday/connect.js +213 -0
  235. package/dist/commands/monday/connect.js.map +1 -0
  236. package/dist/commands/monday/sync.d.ts +14 -0
  237. package/dist/commands/monday/sync.js +179 -0
  238. package/dist/commands/monday/sync.js.map +1 -0
  239. package/dist/commands/orchestrator/attach.js +50 -13
  240. package/dist/commands/orchestrator/attach.js.map +1 -0
  241. package/dist/commands/orchestrator/index.js +1 -0
  242. package/dist/commands/orchestrator/index.js.map +1 -0
  243. package/dist/commands/orchestrator/start.d.ts +15 -0
  244. package/dist/commands/orchestrator/start.js +187 -13
  245. package/dist/commands/orchestrator/start.js.map +1 -0
  246. package/dist/commands/orchestrator/status.js +63 -28
  247. package/dist/commands/orchestrator/status.js.map +1 -0
  248. package/dist/commands/orchestrator/stop.js +65 -17
  249. package/dist/commands/orchestrator/stop.js.map +1 -0
  250. package/dist/commands/phase/create.js +1 -0
  251. package/dist/commands/phase/create.js.map +1 -0
  252. package/dist/commands/phase/delete.js +1 -0
  253. package/dist/commands/phase/delete.js.map +1 -0
  254. package/dist/commands/phase/list.js +1 -0
  255. package/dist/commands/phase/list.js.map +1 -0
  256. package/dist/commands/phase/move.js +1 -0
  257. package/dist/commands/phase/move.js.map +1 -0
  258. package/dist/commands/phase/template/apply.js +1 -0
  259. package/dist/commands/phase/template/apply.js.map +1 -0
  260. package/dist/commands/phase/template/create.js +1 -0
  261. package/dist/commands/phase/template/create.js.map +1 -0
  262. package/dist/commands/phase/template/delete.js +1 -0
  263. package/dist/commands/phase/template/delete.js.map +1 -0
  264. package/dist/commands/phase/template/list.js +1 -0
  265. package/dist/commands/phase/template/list.js.map +1 -0
  266. package/dist/commands/phase/template/update.js +1 -0
  267. package/dist/commands/phase/template/update.js.map +1 -0
  268. package/dist/commands/phase/update.js +1 -0
  269. package/dist/commands/phase/update.js.map +1 -0
  270. package/dist/commands/pmo/init.js +1 -0
  271. package/dist/commands/pmo/init.js.map +1 -0
  272. package/dist/commands/pr/create.js +4 -0
  273. package/dist/commands/pr/create.js.map +1 -0
  274. package/dist/commands/pr/index.js +1 -0
  275. package/dist/commands/pr/index.js.map +1 -0
  276. package/dist/commands/pr/link.js +1 -0
  277. package/dist/commands/pr/link.js.map +1 -0
  278. package/dist/commands/pr/list.js +1 -0
  279. package/dist/commands/pr/list.js.map +1 -0
  280. package/dist/commands/pr/status.js +1 -0
  281. package/dist/commands/pr/status.js.map +1 -0
  282. package/dist/commands/priority/add.js +1 -0
  283. package/dist/commands/priority/add.js.map +1 -0
  284. package/dist/commands/priority/list.js +1 -0
  285. package/dist/commands/priority/list.js.map +1 -0
  286. package/dist/commands/priority/remove.js +1 -0
  287. package/dist/commands/priority/remove.js.map +1 -0
  288. package/dist/commands/priority/set.js +1 -0
  289. package/dist/commands/priority/set.js.map +1 -0
  290. package/dist/commands/project/archive.js +1 -0
  291. package/dist/commands/project/archive.js.map +1 -0
  292. package/dist/commands/project/create.js +1 -0
  293. package/dist/commands/project/create.js.map +1 -0
  294. package/dist/commands/project/delete.js +1 -0
  295. package/dist/commands/project/delete.js.map +1 -0
  296. package/dist/commands/project/index.js +1 -0
  297. package/dist/commands/project/index.js.map +1 -0
  298. package/dist/commands/project/list.js +1 -0
  299. package/dist/commands/project/list.js.map +1 -0
  300. package/dist/commands/project/spec.js +1 -0
  301. package/dist/commands/project/spec.js.map +1 -0
  302. package/dist/commands/project/unarchive.js +1 -0
  303. package/dist/commands/project/unarchive.js.map +1 -0
  304. package/dist/commands/project/update.js +1 -0
  305. package/dist/commands/project/update.js.map +1 -0
  306. package/dist/commands/project/view.js +1 -0
  307. package/dist/commands/project/view.js.map +1 -0
  308. package/dist/commands/pull.js +1 -0
  309. package/dist/commands/pull.js.map +1 -0
  310. package/dist/commands/qa/index.js +11 -5
  311. package/dist/commands/qa/index.js.map +1 -0
  312. package/dist/commands/repo/add.js +1 -0
  313. package/dist/commands/repo/add.js.map +1 -0
  314. package/dist/commands/repo/create.js +1 -0
  315. package/dist/commands/repo/create.js.map +1 -0
  316. package/dist/commands/repo/index.js +1 -0
  317. package/dist/commands/repo/index.js.map +1 -0
  318. package/dist/commands/repo/list.js +1 -0
  319. package/dist/commands/repo/list.js.map +1 -0
  320. package/dist/commands/repo/remove.js +1 -0
  321. package/dist/commands/repo/remove.js.map +1 -0
  322. package/dist/commands/repo/view.js +1 -0
  323. package/dist/commands/repo/view.js.map +1 -0
  324. package/dist/commands/roadmap/add-project.js +1 -0
  325. package/dist/commands/roadmap/add-project.js.map +1 -0
  326. package/dist/commands/roadmap/create.js +1 -0
  327. package/dist/commands/roadmap/create.js.map +1 -0
  328. package/dist/commands/roadmap/delete.js +1 -0
  329. package/dist/commands/roadmap/delete.js.map +1 -0
  330. package/dist/commands/roadmap/generate.js +1 -0
  331. package/dist/commands/roadmap/generate.js.map +1 -0
  332. package/dist/commands/roadmap/index.js +1 -0
  333. package/dist/commands/roadmap/index.js.map +1 -0
  334. package/dist/commands/roadmap/list.js +1 -0
  335. package/dist/commands/roadmap/list.js.map +1 -0
  336. package/dist/commands/roadmap/remove-project.js +1 -0
  337. package/dist/commands/roadmap/remove-project.js.map +1 -0
  338. package/dist/commands/roadmap/reorder.js +1 -0
  339. package/dist/commands/roadmap/reorder.js.map +1 -0
  340. package/dist/commands/roadmap/update.js +1 -0
  341. package/dist/commands/roadmap/update.js.map +1 -0
  342. package/dist/commands/roadmap/view.js +1 -0
  343. package/dist/commands/roadmap/view.js.map +1 -0
  344. package/dist/commands/session/attach.js +1 -0
  345. package/dist/commands/session/attach.js.map +1 -0
  346. package/dist/commands/session/create.js +2 -1
  347. package/dist/commands/session/create.js.map +1 -0
  348. package/dist/commands/session/health.js +5 -7
  349. package/dist/commands/session/health.js.map +1 -0
  350. package/dist/commands/session/index.js +1 -0
  351. package/dist/commands/session/index.js.map +1 -0
  352. package/dist/commands/session/list.js +7 -5
  353. package/dist/commands/session/list.js.map +1 -0
  354. package/dist/commands/session/peek.js +1 -0
  355. package/dist/commands/session/peek.js.map +1 -0
  356. package/dist/commands/session/poke.js +20 -1
  357. package/dist/commands/session/poke.js.map +1 -0
  358. package/dist/commands/spec/create.js +1 -0
  359. package/dist/commands/spec/create.js.map +1 -0
  360. package/dist/commands/spec/delete.js +1 -0
  361. package/dist/commands/spec/delete.js.map +1 -0
  362. package/dist/commands/spec/edit.js +1 -0
  363. package/dist/commands/spec/edit.js.map +1 -0
  364. package/dist/commands/spec/index.js +1 -0
  365. package/dist/commands/spec/index.js.map +1 -0
  366. package/dist/commands/spec/link/depends.js +1 -0
  367. package/dist/commands/spec/link/depends.js.map +1 -0
  368. package/dist/commands/spec/link/index.js +1 -0
  369. package/dist/commands/spec/link/index.js.map +1 -0
  370. package/dist/commands/spec/link/remove.js +1 -0
  371. package/dist/commands/spec/link/remove.js.map +1 -0
  372. package/dist/commands/spec/list.js +1 -0
  373. package/dist/commands/spec/list.js.map +1 -0
  374. package/dist/commands/spec/plan.js +1 -0
  375. package/dist/commands/spec/plan.js.map +1 -0
  376. package/dist/commands/spec/ticket.js +1 -0
  377. package/dist/commands/spec/ticket.js.map +1 -0
  378. package/dist/commands/spec/view.js +1 -0
  379. package/dist/commands/spec/view.js.map +1 -0
  380. package/dist/commands/staff/add.js +1 -0
  381. package/dist/commands/staff/add.js.map +1 -0
  382. package/dist/commands/staff/index.js +1 -0
  383. package/dist/commands/staff/index.js.map +1 -0
  384. package/dist/commands/staff/list.js +1 -0
  385. package/dist/commands/staff/list.js.map +1 -0
  386. package/dist/commands/staff/remove.js +1 -0
  387. package/dist/commands/staff/remove.js.map +1 -0
  388. package/dist/commands/status/category.js +1 -0
  389. package/dist/commands/status/category.js.map +1 -0
  390. package/dist/commands/status/create.js +1 -0
  391. package/dist/commands/status/create.js.map +1 -0
  392. package/dist/commands/status/delete.js +1 -0
  393. package/dist/commands/status/delete.js.map +1 -0
  394. package/dist/commands/status/index.js +1 -0
  395. package/dist/commands/status/index.js.map +1 -0
  396. package/dist/commands/status/list.js +1 -0
  397. package/dist/commands/status/list.js.map +1 -0
  398. package/dist/commands/status/move.js +1 -0
  399. package/dist/commands/status/move.js.map +1 -0
  400. package/dist/commands/status/update.js +1 -0
  401. package/dist/commands/status/update.js.map +1 -0
  402. package/dist/commands/support/book.js +1 -0
  403. package/dist/commands/support/book.js.map +1 -0
  404. package/dist/commands/support/discord.js +1 -0
  405. package/dist/commands/support/discord.js.map +1 -0
  406. package/dist/commands/support/docs.js +1 -0
  407. package/dist/commands/support/docs.js.map +1 -0
  408. package/dist/commands/support/index.js +1 -0
  409. package/dist/commands/support/index.js.map +1 -0
  410. package/dist/commands/support/issues.js +1 -0
  411. package/dist/commands/support/issues.js.map +1 -0
  412. package/dist/commands/support/logs.js +1 -0
  413. package/dist/commands/support/logs.js.map +1 -0
  414. package/dist/commands/telemetry/disable.d.ts +10 -0
  415. package/dist/commands/telemetry/disable.js +27 -0
  416. package/dist/commands/telemetry/disable.js.map +1 -0
  417. package/dist/commands/telemetry/enable.d.ts +10 -0
  418. package/dist/commands/telemetry/enable.js +27 -0
  419. package/dist/commands/telemetry/enable.js.map +1 -0
  420. package/dist/commands/telemetry/index.d.ts +10 -0
  421. package/dist/commands/telemetry/index.js +41 -0
  422. package/dist/commands/telemetry/index.js.map +1 -0
  423. package/dist/commands/telemetry/status.d.ts +10 -0
  424. package/dist/commands/telemetry/status.js +42 -0
  425. package/dist/commands/telemetry/status.js.map +1 -0
  426. package/dist/commands/template/apply.js +1 -0
  427. package/dist/commands/template/apply.js.map +1 -0
  428. package/dist/commands/template/create.js +1 -0
  429. package/dist/commands/template/create.js.map +1 -0
  430. package/dist/commands/template/delete.js +1 -0
  431. package/dist/commands/template/delete.js.map +1 -0
  432. package/dist/commands/template/index.js +1 -0
  433. package/dist/commands/template/index.js.map +1 -0
  434. package/dist/commands/template/list.js +1 -0
  435. package/dist/commands/template/list.js.map +1 -0
  436. package/dist/commands/template/save.js +1 -0
  437. package/dist/commands/template/save.js.map +1 -0
  438. package/dist/commands/template/update.js +1 -0
  439. package/dist/commands/template/update.js.map +1 -0
  440. package/dist/commands/terminal/title.js +1 -0
  441. package/dist/commands/terminal/title.js.map +1 -0
  442. package/dist/commands/theme/add-names.js +1 -0
  443. package/dist/commands/theme/add-names.js.map +1 -0
  444. package/dist/commands/theme/create.js +1 -0
  445. package/dist/commands/theme/create.js.map +1 -0
  446. package/dist/commands/theme/index.js +1 -0
  447. package/dist/commands/theme/index.js.map +1 -0
  448. package/dist/commands/theme/list.js +1 -0
  449. package/dist/commands/theme/list.js.map +1 -0
  450. package/dist/commands/theme/set.js +1 -0
  451. package/dist/commands/theme/set.js.map +1 -0
  452. package/dist/commands/ticket/bulk.js +1 -0
  453. package/dist/commands/ticket/bulk.js.map +1 -0
  454. package/dist/commands/ticket/category.js +1 -0
  455. package/dist/commands/ticket/category.js.map +1 -0
  456. package/dist/commands/ticket/complete.js +1 -0
  457. package/dist/commands/ticket/complete.js.map +1 -0
  458. package/dist/commands/ticket/create.js +1 -0
  459. package/dist/commands/ticket/create.js.map +1 -0
  460. package/dist/commands/ticket/delete.js +1 -0
  461. package/dist/commands/ticket/delete.js.map +1 -0
  462. package/dist/commands/ticket/edit.js +1 -0
  463. package/dist/commands/ticket/edit.js.map +1 -0
  464. package/dist/commands/ticket/epic.js +1 -0
  465. package/dist/commands/ticket/epic.js.map +1 -0
  466. package/dist/commands/ticket/index.js +1 -0
  467. package/dist/commands/ticket/index.js.map +1 -0
  468. package/dist/commands/ticket/link/block.js +1 -0
  469. package/dist/commands/ticket/link/block.js.map +1 -0
  470. package/dist/commands/ticket/link/duplicates.js +1 -0
  471. package/dist/commands/ticket/link/duplicates.js.map +1 -0
  472. package/dist/commands/ticket/link/index.js +1 -0
  473. package/dist/commands/ticket/link/index.js.map +1 -0
  474. package/dist/commands/ticket/link/relates.js +1 -0
  475. package/dist/commands/ticket/link/relates.js.map +1 -0
  476. package/dist/commands/ticket/list.js +1 -0
  477. package/dist/commands/ticket/list.js.map +1 -0
  478. package/dist/commands/ticket/move.js +1 -0
  479. package/dist/commands/ticket/move.js.map +1 -0
  480. package/dist/commands/ticket/project.js +1 -0
  481. package/dist/commands/ticket/project.js.map +1 -0
  482. package/dist/commands/ticket/reassign.js +1 -0
  483. package/dist/commands/ticket/reassign.js.map +1 -0
  484. package/dist/commands/ticket/resolve.js +1 -0
  485. package/dist/commands/ticket/resolve.js.map +1 -0
  486. package/dist/commands/ticket/show.js +1 -0
  487. package/dist/commands/ticket/show.js.map +1 -0
  488. package/dist/commands/ticket/spec.js +1 -0
  489. package/dist/commands/ticket/spec.js.map +1 -0
  490. package/dist/commands/ticket/status.js +1 -0
  491. package/dist/commands/ticket/status.js.map +1 -0
  492. package/dist/commands/ticket/template/apply.js +1 -0
  493. package/dist/commands/ticket/template/apply.js.map +1 -0
  494. package/dist/commands/ticket/template/delete.js +1 -0
  495. package/dist/commands/ticket/template/delete.js.map +1 -0
  496. package/dist/commands/ticket/template/list.js +1 -0
  497. package/dist/commands/ticket/template/list.js.map +1 -0
  498. package/dist/commands/ticket/template/save.js +1 -0
  499. package/dist/commands/ticket/template/save.js.map +1 -0
  500. package/dist/commands/ticket/update.js +1 -0
  501. package/dist/commands/ticket/update.js.map +1 -0
  502. package/dist/commands/ticket/view.js +1 -0
  503. package/dist/commands/ticket/view.js.map +1 -0
  504. package/dist/commands/whoami.js +1 -0
  505. package/dist/commands/whoami.js.map +1 -0
  506. package/dist/commands/work/complete.js +6 -0
  507. package/dist/commands/work/complete.js.map +1 -0
  508. package/dist/commands/work/index.js +8 -0
  509. package/dist/commands/work/index.js.map +1 -0
  510. package/dist/commands/work/jira.d.ts +28 -0
  511. package/dist/commands/work/jira.js +226 -0
  512. package/dist/commands/work/jira.js.map +1 -0
  513. package/dist/commands/work/linear.js +1 -0
  514. package/dist/commands/work/linear.js.map +1 -0
  515. package/dist/commands/work/ready.js +1 -0
  516. package/dist/commands/work/ready.js.map +1 -0
  517. package/dist/commands/work/resolve.js +1 -0
  518. package/dist/commands/work/resolve.js.map +1 -0
  519. package/dist/commands/work/review.js +1 -0
  520. package/dist/commands/work/review.js.map +1 -0
  521. package/dist/commands/work/revise.js +1 -0
  522. package/dist/commands/work/revise.js.map +1 -0
  523. package/dist/commands/work/source/set.d.ts +12 -0
  524. package/dist/commands/work/source/set.js +53 -0
  525. package/dist/commands/work/source/set.js.map +1 -0
  526. package/dist/commands/work/source.d.ts +11 -0
  527. package/dist/commands/work/source.js +54 -0
  528. package/dist/commands/work/source.js.map +1 -0
  529. package/dist/commands/work/spawn-all.js +1 -0
  530. package/dist/commands/work/spawn-all.js.map +1 -0
  531. package/dist/commands/work/spawn.d.ts +6 -0
  532. package/dist/commands/work/spawn.js +344 -34
  533. package/dist/commands/work/spawn.js.map +1 -0
  534. package/dist/commands/work/start.d.ts +9 -0
  535. package/dist/commands/work/start.js +619 -228
  536. package/dist/commands/work/start.js.map +1 -0
  537. package/dist/commands/work/status.js +1 -0
  538. package/dist/commands/work/status.js.map +1 -0
  539. package/dist/commands/work/watch.js +5 -8
  540. package/dist/commands/work/watch.js.map +1 -0
  541. package/dist/commands/workflow/create.js +1 -0
  542. package/dist/commands/workflow/create.js.map +1 -0
  543. package/dist/commands/workflow/delete.js +1 -0
  544. package/dist/commands/workflow/delete.js.map +1 -0
  545. package/dist/commands/workflow/index.js +1 -0
  546. package/dist/commands/workflow/index.js.map +1 -0
  547. package/dist/commands/workflow/list.js +1 -0
  548. package/dist/commands/workflow/list.js.map +1 -0
  549. package/dist/commands/workflow/show.js +1 -0
  550. package/dist/commands/workflow/show.js.map +1 -0
  551. package/dist/commands/workflow/switch.js +1 -0
  552. package/dist/commands/workflow/switch.js.map +1 -0
  553. package/dist/commands/workflow/view.js +1 -0
  554. package/dist/commands/workflow/view.js.map +1 -0
  555. package/dist/commands/workspace/add.js +1 -0
  556. package/dist/commands/workspace/add.js.map +1 -0
  557. package/dist/commands/workspace/list.js +1 -0
  558. package/dist/commands/workspace/list.js.map +1 -0
  559. package/dist/commands/workspace/prune.js +1 -0
  560. package/dist/commands/workspace/prune.js.map +1 -0
  561. package/dist/commands/workspace/remove.js +1 -0
  562. package/dist/commands/workspace/remove.js.map +1 -0
  563. package/dist/commands/workspace/use.js +1 -0
  564. package/dist/commands/workspace/use.js.map +1 -0
  565. package/dist/hooks/init.d.ts +6 -1
  566. package/dist/hooks/init.js +34 -2
  567. package/dist/hooks/init.js.map +1 -0
  568. package/dist/hooks/postrun.d.ts +9 -0
  569. package/dist/hooks/postrun.js +30 -0
  570. package/dist/hooks/postrun.js.map +1 -0
  571. package/dist/index.js +1 -0
  572. package/dist/index.js.map +1 -0
  573. package/dist/lib/agents/commands.js +1 -0
  574. package/dist/lib/agents/commands.js.map +1 -0
  575. package/dist/lib/agents/index.js +1 -0
  576. package/dist/lib/agents/index.js.map +1 -0
  577. package/dist/lib/asana/client.d.ts +15 -0
  578. package/dist/lib/asana/client.js +121 -0
  579. package/dist/lib/asana/client.js.map +1 -0
  580. package/dist/lib/asana/config.d.ts +9 -0
  581. package/dist/lib/asana/config.js +62 -0
  582. package/dist/lib/asana/config.js.map +1 -0
  583. package/dist/lib/asana/index.d.ts +5 -0
  584. package/dist/lib/asana/index.js +5 -0
  585. package/dist/lib/asana/index.js.map +1 -0
  586. package/dist/lib/asana/mapper.d.ts +13 -0
  587. package/dist/lib/asana/mapper.js +71 -0
  588. package/dist/lib/asana/mapper.js.map +1 -0
  589. package/dist/lib/asana/sync.d.ts +13 -0
  590. package/dist/lib/asana/sync.js +37 -0
  591. package/dist/lib/asana/sync.js.map +1 -0
  592. package/dist/lib/asana/types.d.ts +40 -0
  593. package/dist/lib/asana/types.js +2 -0
  594. package/dist/lib/asana/types.js.map +1 -0
  595. package/dist/lib/branch/index.js +1 -0
  596. package/dist/lib/branch/index.js.map +1 -0
  597. package/dist/lib/caffeinate.js +1 -0
  598. package/dist/lib/caffeinate.js.map +1 -0
  599. package/dist/lib/colors.js +1 -0
  600. package/dist/lib/colors.js.map +1 -0
  601. package/dist/lib/commands/docker-command.js +1 -0
  602. package/dist/lib/commands/docker-command.js.map +1 -0
  603. package/dist/lib/database/drizzle-schema.d.ts +393 -0
  604. package/dist/lib/database/drizzle-schema.js +46 -0
  605. package/dist/lib/database/drizzle-schema.js.map +1 -0
  606. package/dist/lib/database/drizzle.js +1 -0
  607. package/dist/lib/database/drizzle.js.map +1 -0
  608. package/dist/lib/database/index.js +1 -0
  609. package/dist/lib/database/index.js.map +1 -0
  610. package/dist/lib/database/native-validation.js +1 -0
  611. package/dist/lib/database/native-validation.js.map +1 -0
  612. package/dist/lib/docker/resolve.js +1 -0
  613. package/dist/lib/docker/resolve.js.map +1 -0
  614. package/dist/lib/execution/codex-adapter.js +1 -0
  615. package/dist/lib/execution/codex-adapter.js.map +1 -0
  616. package/dist/lib/execution/config.d.ts +10 -0
  617. package/dist/lib/execution/config.js +20 -0
  618. package/dist/lib/execution/config.js.map +1 -0
  619. package/dist/lib/execution/context.js +1 -0
  620. package/dist/lib/execution/context.js.map +1 -0
  621. package/dist/lib/execution/devcontainer.js +1 -0
  622. package/dist/lib/execution/devcontainer.js.map +1 -0
  623. package/dist/lib/execution/index.js +1 -0
  624. package/dist/lib/execution/index.js.map +1 -0
  625. package/dist/lib/execution/runners.d.ts +10 -0
  626. package/dist/lib/execution/runners.js +162 -7
  627. package/dist/lib/execution/runners.js.map +1 -0
  628. package/dist/lib/execution/session-utils.js +1 -0
  629. package/dist/lib/execution/session-utils.js.map +1 -0
  630. package/dist/lib/execution/spawner.js +27 -0
  631. package/dist/lib/execution/spawner.js.map +1 -0
  632. package/dist/lib/execution/storage.d.ts +4 -0
  633. package/dist/lib/execution/storage.js +9 -3
  634. package/dist/lib/execution/storage.js.map +1 -0
  635. package/dist/lib/execution/types.d.ts +6 -0
  636. package/dist/lib/execution/types.js +1 -0
  637. package/dist/lib/execution/types.js.map +1 -0
  638. package/dist/lib/external-issues/adapters.d.ts +18 -1
  639. package/dist/lib/external-issues/adapters.js +50 -1
  640. package/dist/lib/external-issues/adapters.js.map +1 -0
  641. package/dist/lib/external-issues/index.d.ts +5 -1
  642. package/dist/lib/external-issues/index.js +8 -0
  643. package/dist/lib/external-issues/index.js.map +1 -0
  644. package/dist/lib/external-issues/jira.d.ts +23 -0
  645. package/dist/lib/external-issues/jira.js +224 -0
  646. package/dist/lib/external-issues/jira.js.map +1 -0
  647. package/dist/lib/external-issues/linear.js +17 -3
  648. package/dist/lib/external-issues/linear.js.map +1 -0
  649. package/dist/lib/external-issues/mapper.d.ts +3 -2
  650. package/dist/lib/external-issues/mapper.js +6 -2
  651. package/dist/lib/external-issues/mapper.js.map +1 -0
  652. package/dist/lib/external-issues/mapping-store.d.ts +12 -0
  653. package/dist/lib/external-issues/mapping-store.js +165 -0
  654. package/dist/lib/external-issues/mapping-store.js.map +1 -0
  655. package/dist/lib/external-issues/redact.d.ts +50 -0
  656. package/dist/lib/external-issues/redact.js +130 -0
  657. package/dist/lib/external-issues/redact.js.map +1 -0
  658. package/dist/lib/external-issues/types.d.ts +35 -1
  659. package/dist/lib/external-issues/types.js +1 -0
  660. package/dist/lib/external-issues/types.js.map +1 -0
  661. package/dist/lib/external-issues/validation.js +12 -0
  662. package/dist/lib/external-issues/validation.js.map +1 -0
  663. package/dist/lib/external-issues/work-start.d.ts +10 -0
  664. package/dist/lib/external-issues/work-start.js +13 -0
  665. package/dist/lib/external-issues/work-start.js.map +1 -0
  666. package/dist/lib/flags/index.js +1 -0
  667. package/dist/lib/flags/index.js.map +1 -0
  668. package/dist/lib/flags/resolver.js +4 -2
  669. package/dist/lib/flags/resolver.js.map +1 -0
  670. package/dist/lib/init/index.js +1 -0
  671. package/dist/lib/init/index.js.map +1 -0
  672. package/dist/lib/jira/config.d.ts +33 -0
  673. package/dist/lib/jira/config.js +97 -0
  674. package/dist/lib/jira/config.js.map +1 -0
  675. package/dist/lib/jira/index.d.ts +7 -0
  676. package/dist/lib/jira/index.js +7 -0
  677. package/dist/lib/jira/index.js.map +1 -0
  678. package/dist/lib/linear/client.js +1 -0
  679. package/dist/lib/linear/client.js.map +1 -0
  680. package/dist/lib/linear/config.js +1 -0
  681. package/dist/lib/linear/config.js.map +1 -0
  682. package/dist/lib/linear/index.js +1 -0
  683. package/dist/lib/linear/index.js.map +1 -0
  684. package/dist/lib/linear/mapper.d.ts +2 -0
  685. package/dist/lib/linear/mapper.js +67 -2
  686. package/dist/lib/linear/mapper.js.map +1 -0
  687. package/dist/lib/linear/sync.js +1 -0
  688. package/dist/lib/linear/sync.js.map +1 -0
  689. package/dist/lib/linear/types.js +1 -0
  690. package/dist/lib/linear/types.js.map +1 -0
  691. package/dist/lib/machine-config.js +1 -0
  692. package/dist/lib/machine-config.js.map +1 -0
  693. package/dist/lib/mcp/helpers.js +1 -0
  694. package/dist/lib/mcp/helpers.js.map +1 -0
  695. package/dist/lib/mcp/index.js +1 -0
  696. package/dist/lib/mcp/index.js.map +1 -0
  697. package/dist/lib/mcp/tools/action.js +1 -0
  698. package/dist/lib/mcp/tools/action.js.map +1 -0
  699. package/dist/lib/mcp/tools/board.js +1 -0
  700. package/dist/lib/mcp/tools/board.js.map +1 -0
  701. package/dist/lib/mcp/tools/category.js +1 -0
  702. package/dist/lib/mcp/tools/category.js.map +1 -0
  703. package/dist/lib/mcp/tools/cli-passthrough.js +1 -0
  704. package/dist/lib/mcp/tools/cli-passthrough.js.map +1 -0
  705. package/dist/lib/mcp/tools/diet.js +1 -0
  706. package/dist/lib/mcp/tools/diet.js.map +1 -0
  707. package/dist/lib/mcp/tools/epic.js +1 -0
  708. package/dist/lib/mcp/tools/epic.js.map +1 -0
  709. package/dist/lib/mcp/tools/index.js +1 -0
  710. package/dist/lib/mcp/tools/index.js.map +1 -0
  711. package/dist/lib/mcp/tools/label.js +1 -0
  712. package/dist/lib/mcp/tools/label.js.map +1 -0
  713. package/dist/lib/mcp/tools/phase.js +1 -0
  714. package/dist/lib/mcp/tools/phase.js.map +1 -0
  715. package/dist/lib/mcp/tools/project.js +1 -0
  716. package/dist/lib/mcp/tools/project.js.map +1 -0
  717. package/dist/lib/mcp/tools/roadmap.js +1 -0
  718. package/dist/lib/mcp/tools/roadmap.js.map +1 -0
  719. package/dist/lib/mcp/tools/spec.js +1 -0
  720. package/dist/lib/mcp/tools/spec.js.map +1 -0
  721. package/dist/lib/mcp/tools/status.js +1 -0
  722. package/dist/lib/mcp/tools/status.js.map +1 -0
  723. package/dist/lib/mcp/tools/template.js +1 -0
  724. package/dist/lib/mcp/tools/template.js.map +1 -0
  725. package/dist/lib/mcp/tools/ticket.js +1 -0
  726. package/dist/lib/mcp/tools/ticket.js.map +1 -0
  727. package/dist/lib/mcp/tools/tmux.js +1 -0
  728. package/dist/lib/mcp/tools/tmux.js.map +1 -0
  729. package/dist/lib/mcp/tools/view.js +1 -0
  730. package/dist/lib/mcp/tools/view.js.map +1 -0
  731. package/dist/lib/mcp/tools/work.js +1 -0
  732. package/dist/lib/mcp/tools/work.js.map +1 -0
  733. package/dist/lib/mcp/tools/workflow.js +1 -0
  734. package/dist/lib/mcp/tools/workflow.js.map +1 -0
  735. package/dist/lib/mcp/types.js +1 -0
  736. package/dist/lib/mcp/types.js.map +1 -0
  737. package/dist/lib/monday/client.d.ts +14 -0
  738. package/dist/lib/monday/client.js +114 -0
  739. package/dist/lib/monday/client.js.map +1 -0
  740. package/dist/lib/monday/config.d.ts +10 -0
  741. package/dist/lib/monday/config.js +65 -0
  742. package/dist/lib/monday/config.js.map +1 -0
  743. package/dist/lib/monday/index.d.ts +5 -0
  744. package/dist/lib/monday/index.js +5 -0
  745. package/dist/lib/monday/index.js.map +1 -0
  746. package/dist/lib/monday/mapper.d.ts +14 -0
  747. package/dist/lib/monday/mapper.js +90 -0
  748. package/dist/lib/monday/mapper.js.map +1 -0
  749. package/dist/lib/monday/sync.d.ts +13 -0
  750. package/dist/lib/monday/sync.js +46 -0
  751. package/dist/lib/monday/sync.js.map +1 -0
  752. package/dist/lib/monday/types.d.ts +38 -0
  753. package/dist/lib/monday/types.js +5 -0
  754. package/dist/lib/monday/types.js.map +1 -0
  755. package/dist/lib/multiline-input.js +1 -0
  756. package/dist/lib/multiline-input.js.map +1 -0
  757. package/dist/lib/pmo/base-command.js +8 -6
  758. package/dist/lib/pmo/base-command.js.map +1 -0
  759. package/dist/lib/pmo/create-spec-folders.js +1 -0
  760. package/dist/lib/pmo/create-spec-folders.js.map +1 -0
  761. package/dist/lib/pmo/diet.js +1 -0
  762. package/dist/lib/pmo/diet.js.map +1 -0
  763. package/dist/lib/pmo/epic-files.js +1 -0
  764. package/dist/lib/pmo/epic-files.js.map +1 -0
  765. package/dist/lib/pmo/find-pmo.js +1 -0
  766. package/dist/lib/pmo/find-pmo.js.map +1 -0
  767. package/dist/lib/pmo/index.js +1 -0
  768. package/dist/lib/pmo/index.js.map +1 -0
  769. package/dist/lib/pmo/markdown.js +1 -0
  770. package/dist/lib/pmo/markdown.js.map +1 -0
  771. package/dist/lib/pmo/pmo-context.js +1 -0
  772. package/dist/lib/pmo/pmo-context.js.map +1 -0
  773. package/dist/lib/pmo/schema.d.ts +10 -1
  774. package/dist/lib/pmo/schema.js +74 -0
  775. package/dist/lib/pmo/schema.js.map +1 -0
  776. package/dist/lib/pmo/spec-parser.js +1 -0
  777. package/dist/lib/pmo/spec-parser.js.map +1 -0
  778. package/dist/lib/pmo/spec-types.js +1 -0
  779. package/dist/lib/pmo/spec-types.js.map +1 -0
  780. package/dist/lib/pmo/storage/actions.js +1 -0
  781. package/dist/lib/pmo/storage/actions.js.map +1 -0
  782. package/dist/lib/pmo/storage/base.js +33 -0
  783. package/dist/lib/pmo/storage/base.js.map +1 -0
  784. package/dist/lib/pmo/storage/categories.js +1 -0
  785. package/dist/lib/pmo/storage/categories.js.map +1 -0
  786. package/dist/lib/pmo/storage/dependencies.js +1 -0
  787. package/dist/lib/pmo/storage/dependencies.js.map +1 -0
  788. package/dist/lib/pmo/storage/epics.js +1 -0
  789. package/dist/lib/pmo/storage/epics.js.map +1 -0
  790. package/dist/lib/pmo/storage/helpers.js +1 -0
  791. package/dist/lib/pmo/storage/helpers.js.map +1 -0
  792. package/dist/lib/pmo/storage/index.js +1 -0
  793. package/dist/lib/pmo/storage/index.js.map +1 -0
  794. package/dist/lib/pmo/storage/labels.js +1 -0
  795. package/dist/lib/pmo/storage/labels.js.map +1 -0
  796. package/dist/lib/pmo/storage/phases.js +1 -0
  797. package/dist/lib/pmo/storage/phases.js.map +1 -0
  798. package/dist/lib/pmo/storage/projects.js +1 -0
  799. package/dist/lib/pmo/storage/projects.js.map +1 -0
  800. package/dist/lib/pmo/storage/roadmaps.js +1 -0
  801. package/dist/lib/pmo/storage/roadmaps.js.map +1 -0
  802. package/dist/lib/pmo/storage/specs.js +1 -0
  803. package/dist/lib/pmo/storage/specs.js.map +1 -0
  804. package/dist/lib/pmo/storage/statuses.js +1 -0
  805. package/dist/lib/pmo/storage/statuses.js.map +1 -0
  806. package/dist/lib/pmo/storage/subtasks.js +1 -0
  807. package/dist/lib/pmo/storage/subtasks.js.map +1 -0
  808. package/dist/lib/pmo/storage/templates.js +1 -0
  809. package/dist/lib/pmo/storage/templates.js.map +1 -0
  810. package/dist/lib/pmo/storage/tickets.js +1 -0
  811. package/dist/lib/pmo/storage/tickets.js.map +1 -0
  812. package/dist/lib/pmo/storage/types.js +1 -0
  813. package/dist/lib/pmo/storage/types.js.map +1 -0
  814. package/dist/lib/pmo/storage/views.js +1 -0
  815. package/dist/lib/pmo/storage/views.js.map +1 -0
  816. package/dist/lib/pmo/storage-sqlite.js +1 -0
  817. package/dist/lib/pmo/storage-sqlite.js.map +1 -0
  818. package/dist/lib/pmo/sync-manager.js +1 -0
  819. package/dist/lib/pmo/sync-manager.js.map +1 -0
  820. package/dist/lib/pmo/templates-builtin.js +1 -0
  821. package/dist/lib/pmo/templates-builtin.js.map +1 -0
  822. package/dist/lib/pmo/types.js +1 -0
  823. package/dist/lib/pmo/types.js.map +1 -0
  824. package/dist/lib/pmo/utils.js +1 -0
  825. package/dist/lib/pmo/utils.js.map +1 -0
  826. package/dist/lib/pmo/watcher.d.ts +1 -1
  827. package/dist/lib/pmo/watcher.js +6 -7
  828. package/dist/lib/pmo/watcher.js.map +1 -0
  829. package/dist/lib/pr/index.js +1 -0
  830. package/dist/lib/pr/index.js.map +1 -0
  831. package/dist/lib/prompt-command.js +4 -2
  832. package/dist/lib/prompt-command.js.map +1 -0
  833. package/dist/lib/prompt-json.d.ts +16 -0
  834. package/dist/lib/prompt-json.js +1 -0
  835. package/dist/lib/prompt-json.js.map +1 -0
  836. package/dist/lib/repos/git.js +1 -0
  837. package/dist/lib/repos/git.js.map +1 -0
  838. package/dist/lib/repos/index.js +1 -0
  839. package/dist/lib/repos/index.js.map +1 -0
  840. package/dist/lib/signal-handler.d.ts +59 -0
  841. package/dist/lib/signal-handler.js +156 -0
  842. package/dist/lib/signal-handler.js.map +1 -0
  843. package/dist/lib/string-utils.js +1 -0
  844. package/dist/lib/string-utils.js.map +1 -0
  845. package/dist/lib/styles.js +1 -0
  846. package/dist/lib/styles.js.map +1 -0
  847. package/dist/lib/telemetry/analytics.d.ts +105 -0
  848. package/dist/lib/telemetry/analytics.js +289 -0
  849. package/dist/lib/telemetry/analytics.js.map +1 -0
  850. package/dist/lib/telemetry/feature-flags.d.ts +53 -0
  851. package/dist/lib/telemetry/feature-flags.js +83 -0
  852. package/dist/lib/telemetry/feature-flags.js.map +1 -0
  853. package/dist/lib/telemetry.d.ts +63 -0
  854. package/dist/lib/telemetry.js +217 -0
  855. package/dist/lib/telemetry.js.map +1 -0
  856. package/dist/lib/terminal.js +1 -0
  857. package/dist/lib/terminal.js.map +1 -0
  858. package/dist/lib/themes.js +1 -0
  859. package/dist/lib/themes.js.map +1 -0
  860. package/dist/lib/ui/BoardUI.js +1 -0
  861. package/dist/lib/ui/BoardUI.js.map +1 -0
  862. package/dist/lib/ui/ClaimTicketUI.js +1 -0
  863. package/dist/lib/ui/ClaimTicketUI.js.map +1 -0
  864. package/dist/lib/ui/CreateTicketUI.js +1 -0
  865. package/dist/lib/ui/CreateTicketUI.js.map +1 -0
  866. package/dist/lib/update-check.d.ts +83 -0
  867. package/dist/lib/update-check.js +275 -0
  868. package/dist/lib/update-check.js.map +1 -0
  869. package/dist/lib/update-prompt.d.ts +47 -0
  870. package/dist/lib/update-prompt.js +163 -0
  871. package/dist/lib/update-prompt.js.map +1 -0
  872. package/dist/lib/work-source/config.d.ts +14 -0
  873. package/dist/lib/work-source/config.js +79 -0
  874. package/dist/lib/work-source/config.js.map +1 -0
  875. package/dist/lib/work-source/index.d.ts +1 -0
  876. package/dist/lib/work-source/index.js +2 -0
  877. package/dist/lib/work-source/index.js.map +1 -0
  878. package/dist/lib/workspace-config.js +1 -0
  879. package/dist/lib/workspace-config.js.map +1 -0
  880. package/dist/lib/workspace.js +1 -0
  881. package/dist/lib/workspace.js.map +1 -0
  882. package/oclif.manifest.json +2164 -1331
  883. package/package.json +9 -9
@@ -1606,6 +1606,150 @@
1606
1606
  "visit.js"
1607
1607
  ]
1608
1608
  },
1609
+ "asana:connect": {
1610
+ "aliases": [],
1611
+ "args": {},
1612
+ "description": "Authenticate with Asana and configure workspace/project defaults",
1613
+ "examples": [
1614
+ "<%= config.bin %> <%= command.id %>",
1615
+ "<%= config.bin %> <%= command.id %> --check",
1616
+ "<%= config.bin %> <%= command.id %> --workspace \"Product Team\" --project \"Roadmap\"",
1617
+ "ASANA_ACCESS_TOKEN=... <%= config.bin %> <%= command.id %>"
1618
+ ],
1619
+ "flags": {
1620
+ "project": {
1621
+ "description": "Default project gid or name",
1622
+ "name": "project",
1623
+ "hasDynamicHelp": false,
1624
+ "multiple": false,
1625
+ "type": "option"
1626
+ },
1627
+ "json": {
1628
+ "description": "Output as JSON for AI agents/scripts",
1629
+ "name": "json",
1630
+ "allowNo": false,
1631
+ "type": "boolean"
1632
+ },
1633
+ "machine": {
1634
+ "char": "m",
1635
+ "description": "Output as JSON for AI agents/scripts",
1636
+ "name": "machine",
1637
+ "allowNo": false,
1638
+ "type": "boolean"
1639
+ },
1640
+ "check": {
1641
+ "description": "Only check if Asana credentials exist (do not prompt)",
1642
+ "name": "check",
1643
+ "allowNo": false,
1644
+ "type": "boolean"
1645
+ },
1646
+ "force": {
1647
+ "description": "Force re-authentication even if credentials exist",
1648
+ "name": "force",
1649
+ "allowNo": false,
1650
+ "type": "boolean"
1651
+ },
1652
+ "disconnect": {
1653
+ "description": "Remove stored Asana credentials",
1654
+ "name": "disconnect",
1655
+ "allowNo": false,
1656
+ "type": "boolean"
1657
+ },
1658
+ "workspace": {
1659
+ "description": "Default workspace gid or name",
1660
+ "name": "workspace",
1661
+ "hasDynamicHelp": false,
1662
+ "multiple": false,
1663
+ "type": "option"
1664
+ }
1665
+ },
1666
+ "hasDynamicHelp": false,
1667
+ "hiddenAliases": [],
1668
+ "id": "asana:connect",
1669
+ "pluginAlias": "@proletariat/cli",
1670
+ "pluginName": "@proletariat/cli",
1671
+ "pluginType": "core",
1672
+ "strict": true,
1673
+ "isESM": true,
1674
+ "relativePath": [
1675
+ "dist",
1676
+ "commands",
1677
+ "asana",
1678
+ "connect.js"
1679
+ ]
1680
+ },
1681
+ "asana:sync": {
1682
+ "aliases": [],
1683
+ "args": {},
1684
+ "description": "Sync PMO tickets to Asana tasks",
1685
+ "examples": [
1686
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 --task 123456789",
1687
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 --create-missing",
1688
+ "<%= config.bin %> <%= command.id %> --dry-run"
1689
+ ],
1690
+ "flags": {
1691
+ "project": {
1692
+ "description": "Asana project gid used with --create-missing",
1693
+ "name": "project",
1694
+ "hasDynamicHelp": false,
1695
+ "multiple": false,
1696
+ "type": "option"
1697
+ },
1698
+ "json": {
1699
+ "description": "Output as JSON for AI agents/scripts",
1700
+ "name": "json",
1701
+ "allowNo": false,
1702
+ "type": "boolean"
1703
+ },
1704
+ "machine": {
1705
+ "char": "m",
1706
+ "description": "Output as JSON for AI agents/scripts",
1707
+ "name": "machine",
1708
+ "allowNo": false,
1709
+ "type": "boolean"
1710
+ },
1711
+ "ticket": {
1712
+ "description": "PMO ticket ID to sync (syncs all mapped tickets if omitted)",
1713
+ "name": "ticket",
1714
+ "hasDynamicHelp": false,
1715
+ "multiple": false,
1716
+ "type": "option"
1717
+ },
1718
+ "task": {
1719
+ "description": "Asana task gid to map to --ticket",
1720
+ "name": "task",
1721
+ "hasDynamicHelp": false,
1722
+ "multiple": false,
1723
+ "type": "option"
1724
+ },
1725
+ "create-missing": {
1726
+ "description": "Create Asana task when no mapping exists (requires project)",
1727
+ "name": "create-missing",
1728
+ "allowNo": false,
1729
+ "type": "boolean"
1730
+ },
1731
+ "dry-run": {
1732
+ "description": "Preview sync operations without making changes",
1733
+ "name": "dry-run",
1734
+ "allowNo": false,
1735
+ "type": "boolean"
1736
+ }
1737
+ },
1738
+ "hasDynamicHelp": false,
1739
+ "hiddenAliases": [],
1740
+ "id": "asana:sync",
1741
+ "pluginAlias": "@proletariat/cli",
1742
+ "pluginName": "@proletariat/cli",
1743
+ "pluginType": "core",
1744
+ "strict": true,
1745
+ "isESM": true,
1746
+ "relativePath": [
1747
+ "dist",
1748
+ "commands",
1749
+ "asana",
1750
+ "sync.js"
1751
+ ]
1752
+ },
1609
1753
  "autocomplete:setup": {
1610
1754
  "aliases": [],
1611
1755
  "args": {},
@@ -2996,28 +3140,40 @@
2996
3140
  "index.js"
2997
3141
  ]
2998
3142
  },
2999
- "epic:activate": {
3143
+ "docker:clean": {
3000
3144
  "aliases": [],
3001
- "args": {
3002
- "id": {
3003
- "description": "Epic ID",
3004
- "name": "id",
3005
- "required": false
3006
- }
3007
- },
3008
- "description": "Activate a draft or archived epic",
3145
+ "args": {},
3146
+ "description": "Remove orphaned containers (containers without running agents)",
3009
3147
  "examples": [
3010
- "<%= config.bin %> <%= command.id %> EPIC-004",
3011
- "<%= config.bin %> <%= command.id %>"
3148
+ "<%= config.bin %> <%= command.id %>",
3149
+ "<%= config.bin %> <%= command.id %> --force",
3150
+ "<%= config.bin %> <%= command.id %> --dry-run"
3012
3151
  ],
3013
3152
  "flags": {
3014
- "project": {
3015
- "char": "P",
3016
- "description": "Project ID (uses first project if only one exists)",
3017
- "name": "project",
3018
- "hasDynamicHelp": false,
3019
- "multiple": false,
3020
- "type": "option"
3153
+ "force": {
3154
+ "aliases": [
3155
+ "yes",
3156
+ "y"
3157
+ ],
3158
+ "char": "f",
3159
+ "description": "Skip confirmation prompt",
3160
+ "name": "force",
3161
+ "allowNo": false,
3162
+ "type": "boolean"
3163
+ },
3164
+ "dry-run": {
3165
+ "char": "d",
3166
+ "description": "Show what would be removed without removing",
3167
+ "name": "dry-run",
3168
+ "allowNo": false,
3169
+ "type": "boolean"
3170
+ },
3171
+ "all": {
3172
+ "char": "a",
3173
+ "description": "Remove all stopped devcontainers (not just orphaned)",
3174
+ "name": "all",
3175
+ "allowNo": false,
3176
+ "type": "boolean"
3021
3177
  },
3022
3178
  "json": {
3023
3179
  "description": "Output as JSON for AI agents/scripts",
@@ -3035,42 +3191,38 @@
3035
3191
  },
3036
3192
  "hasDynamicHelp": false,
3037
3193
  "hiddenAliases": [],
3038
- "id": "epic:activate",
3194
+ "id": "docker:clean",
3039
3195
  "pluginAlias": "@proletariat/cli",
3040
3196
  "pluginName": "@proletariat/cli",
3041
3197
  "pluginType": "core",
3042
3198
  "strict": true,
3199
+ "enableJsonFlag": false,
3043
3200
  "isESM": true,
3044
3201
  "relativePath": [
3045
3202
  "dist",
3046
3203
  "commands",
3047
- "epic",
3048
- "activate.js"
3204
+ "docker",
3205
+ "clean.js"
3049
3206
  ]
3050
3207
  },
3051
- "epic:archive": {
3208
+ "docker": {
3052
3209
  "aliases": [],
3053
- "args": {
3054
- "id": {
3055
- "description": "Epic ID",
3056
- "name": "id",
3057
- "required": false
3058
- }
3059
- },
3060
- "description": "Archive a completed epic",
3210
+ "args": {},
3211
+ "description": "Manage Docker containers used by agents",
3061
3212
  "examples": [
3062
- "<%= config.bin %> <%= command.id %> EPIC-002",
3063
- "<%= config.bin %> <%= command.id %> --force"
3213
+ "<%= config.bin %> <%= command.id %>",
3214
+ "<%= config.bin %> docker status",
3215
+ "<%= config.bin %> docker list",
3216
+ "<%= config.bin %> docker logs WORK-001",
3217
+ "<%= config.bin %> docker start WORK-001",
3218
+ "<%= config.bin %> docker stop kalanick",
3219
+ "<%= config.bin %> docker shell WORK-001",
3220
+ "<%= config.bin %> docker restart abc123",
3221
+ "<%= config.bin %> docker sync",
3222
+ "<%= config.bin %> docker clean",
3223
+ "<%= config.bin %> docker prune"
3064
3224
  ],
3065
3225
  "flags": {
3066
- "project": {
3067
- "char": "P",
3068
- "description": "Project ID (uses first project if only one exists)",
3069
- "name": "project",
3070
- "hasDynamicHelp": false,
3071
- "multiple": false,
3072
- "type": "option"
3073
- },
3074
3226
  "json": {
3075
3227
  "description": "Output as JSON for AI agents/scripts",
3076
3228
  "name": "json",
@@ -3083,18 +3235,11 @@
3083
3235
  "name": "machine",
3084
3236
  "allowNo": false,
3085
3237
  "type": "boolean"
3086
- },
3087
- "force": {
3088
- "char": "f",
3089
- "description": "Skip ticket completion check",
3090
- "name": "force",
3091
- "allowNo": false,
3092
- "type": "boolean"
3093
3238
  }
3094
3239
  },
3095
3240
  "hasDynamicHelp": false,
3096
3241
  "hiddenAliases": [],
3097
- "id": "epic:archive",
3242
+ "id": "docker",
3098
3243
  "pluginAlias": "@proletariat/cli",
3099
3244
  "pluginName": "@proletariat/cli",
3100
3245
  "pluginType": "core",
@@ -3103,30 +3248,20 @@
3103
3248
  "relativePath": [
3104
3249
  "dist",
3105
3250
  "commands",
3106
- "epic",
3107
- "archive.js"
3251
+ "docker",
3252
+ "index.js"
3108
3253
  ]
3109
3254
  },
3110
- "epic:create": {
3255
+ "docker:list": {
3111
3256
  "aliases": [],
3112
3257
  "args": {},
3113
- "description": "Create a new epic",
3258
+ "description": "Show Docker containers from agent_work table with status",
3114
3259
  "examples": [
3115
3260
  "<%= config.bin %> <%= command.id %>",
3116
- "<%= config.bin %> <%= command.id %> --title \"User Authentication System\"",
3117
- "<%= config.bin %> <%= command.id %> -t \"API Design\" --status draft",
3118
- "<%= config.bin %> <%= command.id %> -t \"Implement Auth\" --spec SPEC-001",
3119
- "<%= config.bin %> <%= command.id %> --title \"Test\" -P PROJ-001 --dry-run --json # Validate without creating"
3261
+ "<%= config.bin %> <%= command.id %> --all",
3262
+ "<%= config.bin %> <%= command.id %> --running"
3120
3263
  ],
3121
3264
  "flags": {
3122
- "project": {
3123
- "char": "P",
3124
- "description": "Project ID (uses first project if only one exists)",
3125
- "name": "project",
3126
- "hasDynamicHelp": false,
3127
- "multiple": false,
3128
- "type": "option"
3129
- },
3130
3265
  "json": {
3131
3266
  "description": "Output as JSON for AI agents/scripts",
3132
3267
  "name": "json",
@@ -3140,90 +3275,56 @@
3140
3275
  "allowNo": false,
3141
3276
  "type": "boolean"
3142
3277
  },
3143
- "title": {
3144
- "char": "t",
3145
- "description": "Epic title [required for non-interactive]",
3146
- "name": "title",
3147
- "hasDynamicHelp": false,
3148
- "multiple": false,
3149
- "type": "option"
3278
+ "all": {
3279
+ "char": "a",
3280
+ "description": "Show all containers (including non-devcontainer)",
3281
+ "name": "all",
3282
+ "allowNo": false,
3283
+ "type": "boolean"
3150
3284
  },
3151
- "status": {
3152
- "char": "s",
3153
- "description": "Initial status",
3154
- "name": "status",
3155
- "default": "active",
3156
- "hasDynamicHelp": false,
3157
- "multiple": false,
3158
- "options": [
3159
- "active",
3160
- "draft"
3161
- ],
3162
- "type": "option"
3163
- },
3164
- "description": {
3165
- "char": "d",
3166
- "description": "Epic description",
3167
- "name": "description",
3168
- "hasDynamicHelp": false,
3169
- "multiple": false,
3170
- "type": "option"
3171
- },
3172
- "spec": {
3173
- "description": "Link to spec ID (the design spec that describes this epic)",
3174
- "name": "spec",
3175
- "hasDynamicHelp": false,
3176
- "multiple": false,
3177
- "type": "option"
3178
- },
3179
- "dry-run": {
3180
- "description": "Validate inputs without creating epic (use with --json for structured output)",
3181
- "name": "dry-run",
3285
+ "running": {
3286
+ "char": "r",
3287
+ "description": "Only show running containers",
3288
+ "name": "running",
3182
3289
  "allowNo": false,
3183
3290
  "type": "boolean"
3184
3291
  }
3185
3292
  },
3186
3293
  "hasDynamicHelp": false,
3187
3294
  "hiddenAliases": [],
3188
- "id": "epic:create",
3295
+ "id": "docker:list",
3189
3296
  "pluginAlias": "@proletariat/cli",
3190
3297
  "pluginName": "@proletariat/cli",
3191
3298
  "pluginType": "core",
3192
3299
  "strict": true,
3300
+ "enableJsonFlag": false,
3193
3301
  "isESM": true,
3194
3302
  "relativePath": [
3195
3303
  "dist",
3196
3304
  "commands",
3197
- "epic",
3198
- "create.js"
3305
+ "docker",
3306
+ "list.js"
3199
3307
  ]
3200
3308
  },
3201
- "epic:delete": {
3309
+ "docker:logs": {
3202
3310
  "aliases": [],
3203
3311
  "args": {
3204
- "id": {
3205
- "description": "Epic ID to delete",
3206
- "name": "id",
3207
- "required": false
3312
+ "target": {
3313
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3314
+ "name": "target",
3315
+ "required": true
3208
3316
  }
3209
3317
  },
3210
- "description": "Delete an epic permanently",
3318
+ "description": "View logs from a container (by execution ID, agent name, or container ID)",
3211
3319
  "examples": [
3212
- "<%= config.bin %> <%= command.id %> EPIC-001",
3213
- "<%= config.bin %> <%= command.id %> EPIC-001 --force",
3214
- "<%= config.bin %> <%= command.id %> # Interactive mode"
3320
+ "<%= config.bin %> <%= command.id %> WORK-001",
3321
+ "<%= config.bin %> <%= command.id %> kalanick",
3322
+ "<%= config.bin %> <%= command.id %> abc123 --follow",
3323
+ "<%= config.bin %> <%= command.id %> WORK-001 --tail 100"
3215
3324
  ],
3216
3325
  "flags": {
3217
- "project": {
3218
- "char": "P",
3219
- "description": "Project ID (uses first project if only one exists)",
3220
- "name": "project",
3221
- "hasDynamicHelp": false,
3222
- "multiple": false,
3223
- "type": "option"
3224
- },
3225
3326
  "json": {
3226
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3327
+ "description": "Output as JSON for AI agents/scripts",
3227
3328
  "name": "json",
3228
3329
  "allowNo": false,
3229
3330
  "type": "boolean"
@@ -3235,44 +3336,87 @@
3235
3336
  "allowNo": false,
3236
3337
  "type": "boolean"
3237
3338
  },
3238
- "force": {
3339
+ "follow": {
3239
3340
  "char": "f",
3240
- "description": "Skip confirmation prompt",
3241
- "name": "force",
3341
+ "description": "Follow log output",
3342
+ "name": "follow",
3343
+ "allowNo": false,
3344
+ "type": "boolean"
3345
+ },
3346
+ "tail": {
3347
+ "char": "n",
3348
+ "description": "Number of lines to show from the end",
3349
+ "name": "tail",
3350
+ "default": 100,
3351
+ "hasDynamicHelp": false,
3352
+ "multiple": false,
3353
+ "type": "option"
3354
+ },
3355
+ "timestamps": {
3356
+ "char": "t",
3357
+ "description": "Show timestamps",
3358
+ "name": "timestamps",
3242
3359
  "allowNo": false,
3243
3360
  "type": "boolean"
3244
3361
  }
3245
3362
  },
3246
3363
  "hasDynamicHelp": false,
3247
3364
  "hiddenAliases": [],
3248
- "id": "epic:delete",
3365
+ "id": "docker:logs",
3249
3366
  "pluginAlias": "@proletariat/cli",
3250
3367
  "pluginName": "@proletariat/cli",
3251
3368
  "pluginType": "core",
3252
3369
  "strict": true,
3370
+ "enableJsonFlag": false,
3253
3371
  "isESM": true,
3254
3372
  "relativePath": [
3255
3373
  "dist",
3256
3374
  "commands",
3257
- "epic",
3258
- "delete.js"
3375
+ "docker",
3376
+ "logs.js"
3259
3377
  ]
3260
3378
  },
3261
- "epic": {
3379
+ "docker:prune": {
3262
3380
  "aliases": [],
3263
3381
  "args": {},
3264
- "description": "Interactive menu for epic operations",
3382
+ "description": "Remove unused Docker resources (containers, images, volumes, networks)",
3265
3383
  "examples": [
3266
- "<%= config.bin %> <%= command.id %>"
3384
+ "<%= config.bin %> <%= command.id %>",
3385
+ "<%= config.bin %> <%= command.id %> --all",
3386
+ "<%= config.bin %> <%= command.id %> --volumes",
3387
+ "<%= config.bin %> <%= command.id %> --dry-run"
3267
3388
  ],
3268
3389
  "flags": {
3269
- "project": {
3270
- "char": "P",
3271
- "description": "Project ID (uses first project if only one exists)",
3272
- "name": "project",
3273
- "hasDynamicHelp": false,
3274
- "multiple": false,
3275
- "type": "option"
3390
+ "force": {
3391
+ "aliases": [
3392
+ "yes",
3393
+ "y"
3394
+ ],
3395
+ "char": "f",
3396
+ "description": "Skip confirmation prompt",
3397
+ "name": "force",
3398
+ "allowNo": false,
3399
+ "type": "boolean"
3400
+ },
3401
+ "dry-run": {
3402
+ "char": "d",
3403
+ "description": "Show what would be removed without removing",
3404
+ "name": "dry-run",
3405
+ "allowNo": false,
3406
+ "type": "boolean"
3407
+ },
3408
+ "all": {
3409
+ "char": "a",
3410
+ "description": "Remove all unused images, not just dangling ones",
3411
+ "name": "all",
3412
+ "allowNo": false,
3413
+ "type": "boolean"
3414
+ },
3415
+ "volumes": {
3416
+ "description": "Also prune volumes (dangerous - data loss possible)",
3417
+ "name": "volumes",
3418
+ "allowNo": false,
3419
+ "type": "boolean"
3276
3420
  },
3277
3421
  "json": {
3278
3422
  "description": "Output as JSON for AI agents/scripts",
@@ -3290,32 +3434,52 @@
3290
3434
  },
3291
3435
  "hasDynamicHelp": false,
3292
3436
  "hiddenAliases": [],
3293
- "id": "epic",
3437
+ "id": "docker:prune",
3294
3438
  "pluginAlias": "@proletariat/cli",
3295
3439
  "pluginName": "@proletariat/cli",
3296
3440
  "pluginType": "core",
3297
3441
  "strict": true,
3442
+ "enableJsonFlag": false,
3298
3443
  "isESM": true,
3299
3444
  "relativePath": [
3300
3445
  "dist",
3301
3446
  "commands",
3302
- "epic",
3303
- "index.js"
3447
+ "docker",
3448
+ "prune.js"
3304
3449
  ]
3305
3450
  },
3306
- "epic:list": {
3451
+ "docker:restart": {
3307
3452
  "aliases": [],
3308
- "args": {},
3309
- "description": "List all epics",
3453
+ "args": {
3454
+ "target": {
3455
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3456
+ "name": "target",
3457
+ "required": true
3458
+ }
3459
+ },
3460
+ "description": "Restart a container (by execution ID, agent name, or container ID)",
3310
3461
  "examples": [
3311
- "<%= config.bin %> <%= command.id %>",
3312
- "<%= config.bin %> <%= command.id %> --status active"
3462
+ "<%= config.bin %> <%= command.id %> WORK-001",
3463
+ "<%= config.bin %> <%= command.id %> kalanick",
3464
+ "<%= config.bin %> <%= command.id %> abc123 --force"
3313
3465
  ],
3314
3466
  "flags": {
3315
- "project": {
3316
- "char": "P",
3317
- "description": "Project ID (uses first project if only one exists)",
3318
- "name": "project",
3467
+ "force": {
3468
+ "aliases": [
3469
+ "yes",
3470
+ "y"
3471
+ ],
3472
+ "char": "f",
3473
+ "description": "Skip confirmation prompt",
3474
+ "name": "force",
3475
+ "allowNo": false,
3476
+ "type": "boolean"
3477
+ },
3478
+ "time": {
3479
+ "char": "t",
3480
+ "description": "Seconds to wait before killing the container during stop",
3481
+ "name": "time",
3482
+ "default": 10,
3319
3483
  "hasDynamicHelp": false,
3320
3484
  "multiple": false,
3321
3485
  "type": "option"
@@ -3332,73 +3496,40 @@
3332
3496
  "name": "machine",
3333
3497
  "allowNo": false,
3334
3498
  "type": "boolean"
3335
- },
3336
- "status": {
3337
- "char": "s",
3338
- "description": "Filter by status",
3339
- "name": "status",
3340
- "hasDynamicHelp": false,
3341
- "multiple": false,
3342
- "options": [
3343
- "active",
3344
- "draft",
3345
- "complete",
3346
- "dropped",
3347
- "future"
3348
- ],
3349
- "type": "option"
3350
3499
  }
3351
3500
  },
3352
3501
  "hasDynamicHelp": false,
3353
3502
  "hiddenAliases": [],
3354
- "id": "epic:list",
3503
+ "id": "docker:restart",
3355
3504
  "pluginAlias": "@proletariat/cli",
3356
3505
  "pluginName": "@proletariat/cli",
3357
3506
  "pluginType": "core",
3358
3507
  "strict": true,
3508
+ "enableJsonFlag": false,
3359
3509
  "isESM": true,
3360
3510
  "relativePath": [
3361
3511
  "dist",
3362
3512
  "commands",
3363
- "epic",
3364
- "list.js"
3513
+ "docker",
3514
+ "restart.js"
3365
3515
  ]
3366
3516
  },
3367
- "epic:move": {
3517
+ "docker:shell": {
3368
3518
  "aliases": [],
3369
3519
  "args": {
3370
- "id": {
3371
- "description": "Epic ID",
3372
- "name": "id",
3373
- "required": false
3374
- },
3375
- "status": {
3376
- "description": "Target status",
3377
- "name": "status",
3378
- "options": [
3379
- "active",
3380
- "draft",
3381
- "complete",
3382
- "dropped",
3383
- "future"
3384
- ],
3385
- "required": false
3520
+ "target": {
3521
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3522
+ "name": "target",
3523
+ "required": true
3386
3524
  }
3387
3525
  },
3388
- "description": "Move epic between status folders",
3526
+ "description": "Open a shell in a running container (by execution ID, agent name, or container ID)",
3389
3527
  "examples": [
3390
- "<%= config.bin %> <%= command.id %> EPIC-002 complete",
3391
- "<%= config.bin %> <%= command.id %> --force"
3528
+ "<%= config.bin %> <%= command.id %> WORK-001",
3529
+ "<%= config.bin %> <%= command.id %> kalanick",
3530
+ "<%= config.bin %> <%= command.id %> abc123 --shell /bin/bash"
3392
3531
  ],
3393
3532
  "flags": {
3394
- "project": {
3395
- "char": "P",
3396
- "description": "Project ID (uses first project if only one exists)",
3397
- "name": "project",
3398
- "hasDynamicHelp": false,
3399
- "multiple": false,
3400
- "type": "option"
3401
- },
3402
3533
  "json": {
3403
3534
  "description": "Output as JSON for AI agents/scripts",
3404
3535
  "name": "json",
@@ -3412,52 +3543,64 @@
3412
3543
  "allowNo": false,
3413
3544
  "type": "boolean"
3414
3545
  },
3415
- "force": {
3416
- "char": "f",
3417
- "description": "Skip validation checks",
3418
- "name": "force",
3419
- "allowNo": false,
3420
- "type": "boolean"
3421
- }
3422
- },
3423
- "hasDynamicHelp": false,
3424
- "hiddenAliases": [],
3425
- "id": "epic:move",
3426
- "pluginAlias": "@proletariat/cli",
3427
- "pluginName": "@proletariat/cli",
3428
- "pluginType": "core",
3429
- "strict": true,
3546
+ "shell": {
3547
+ "char": "s",
3548
+ "description": "Shell to use",
3549
+ "name": "shell",
3550
+ "default": "/bin/sh",
3551
+ "hasDynamicHelp": false,
3552
+ "multiple": false,
3553
+ "type": "option"
3554
+ },
3555
+ "user": {
3556
+ "char": "u",
3557
+ "description": "User to run as",
3558
+ "name": "user",
3559
+ "hasDynamicHelp": false,
3560
+ "multiple": false,
3561
+ "type": "option"
3562
+ },
3563
+ "workdir": {
3564
+ "char": "w",
3565
+ "description": "Working directory inside the container",
3566
+ "name": "workdir",
3567
+ "hasDynamicHelp": false,
3568
+ "multiple": false,
3569
+ "type": "option"
3570
+ }
3571
+ },
3572
+ "hasDynamicHelp": false,
3573
+ "hiddenAliases": [],
3574
+ "id": "docker:shell",
3575
+ "pluginAlias": "@proletariat/cli",
3576
+ "pluginName": "@proletariat/cli",
3577
+ "pluginType": "core",
3578
+ "strict": true,
3579
+ "enableJsonFlag": false,
3430
3580
  "isESM": true,
3431
3581
  "relativePath": [
3432
3582
  "dist",
3433
3583
  "commands",
3434
- "epic",
3435
- "move.js"
3584
+ "docker",
3585
+ "shell.js"
3436
3586
  ]
3437
3587
  },
3438
- "epic:progress": {
3588
+ "docker:start": {
3439
3589
  "aliases": [],
3440
3590
  "args": {
3441
- "id": {
3442
- "description": "Epic ID",
3443
- "name": "id",
3444
- "required": false
3591
+ "target": {
3592
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3593
+ "name": "target",
3594
+ "required": true
3445
3595
  }
3446
3596
  },
3447
- "description": "Show epic completion progress",
3597
+ "description": "Start a stopped container (by execution ID, agent name, or container ID)",
3448
3598
  "examples": [
3449
- "<%= config.bin %> <%= command.id %> EPIC-001",
3450
- "<%= config.bin %> <%= command.id %> --all"
3599
+ "<%= config.bin %> <%= command.id %> WORK-001",
3600
+ "<%= config.bin %> <%= command.id %> kalanick",
3601
+ "<%= config.bin %> <%= command.id %> abc123"
3451
3602
  ],
3452
3603
  "flags": {
3453
- "project": {
3454
- "char": "P",
3455
- "description": "Project ID (uses first project if only one exists)",
3456
- "name": "project",
3457
- "hasDynamicHelp": false,
3458
- "multiple": false,
3459
- "type": "option"
3460
- },
3461
3604
  "json": {
3462
3605
  "description": "Output as JSON for AI agents/scripts",
3463
3606
  "name": "json",
@@ -3471,59 +3614,38 @@
3471
3614
  "allowNo": false,
3472
3615
  "type": "boolean"
3473
3616
  },
3474
- "all": {
3617
+ "attach": {
3475
3618
  "char": "a",
3476
- "description": "Show progress for all epics",
3477
- "name": "all",
3619
+ "description": "Attach to container after starting",
3620
+ "name": "attach",
3478
3621
  "allowNo": false,
3479
3622
  "type": "boolean"
3480
3623
  }
3481
3624
  },
3482
3625
  "hasDynamicHelp": false,
3483
3626
  "hiddenAliases": [],
3484
- "id": "epic:progress",
3627
+ "id": "docker:start",
3485
3628
  "pluginAlias": "@proletariat/cli",
3486
3629
  "pluginName": "@proletariat/cli",
3487
3630
  "pluginType": "core",
3488
3631
  "strict": true,
3632
+ "enableJsonFlag": false,
3489
3633
  "isESM": true,
3490
3634
  "relativePath": [
3491
3635
  "dist",
3492
3636
  "commands",
3493
- "epic",
3494
- "progress.js"
3637
+ "docker",
3638
+ "start.js"
3495
3639
  ]
3496
3640
  },
3497
- "epic:project": {
3641
+ "docker:status": {
3498
3642
  "aliases": [],
3499
- "args": {
3500
- "epicId": {
3501
- "description": "Epic ID",
3502
- "name": "epicId",
3503
- "required": false
3504
- },
3505
- "targetProject": {
3506
- "description": "Target project ID",
3507
- "name": "targetProject",
3508
- "required": false
3509
- }
3510
- },
3511
- "description": "Move an epic to a different project (optionally with its tickets)",
3643
+ "args": {},
3644
+ "description": "Check if Docker daemon is running",
3512
3645
  "examples": [
3513
- "<%= config.bin %> <%= command.id %> EPIC-001 new-project",
3514
- "<%= config.bin %> <%= command.id %> EPIC-001 new-project --with-tickets",
3515
- "<%= config.bin %> <%= command.id %> EPIC-001",
3516
3646
  "<%= config.bin %> <%= command.id %>"
3517
3647
  ],
3518
3648
  "flags": {
3519
- "project": {
3520
- "char": "P",
3521
- "description": "Project ID (uses first project if only one exists)",
3522
- "name": "project",
3523
- "hasDynamicHelp": false,
3524
- "multiple": false,
3525
- "type": "option"
3526
- },
3527
3649
  "json": {
3528
3650
  "description": "Output as JSON for AI agents/scripts",
3529
3651
  "name": "json",
@@ -3536,55 +3658,56 @@
3536
3658
  "name": "machine",
3537
3659
  "allowNo": false,
3538
3660
  "type": "boolean"
3539
- },
3540
- "with-tickets": {
3541
- "char": "t",
3542
- "description": "Also move all tickets assigned to this epic",
3543
- "name": "with-tickets",
3544
- "allowNo": false,
3545
- "type": "boolean"
3546
3661
  }
3547
3662
  },
3548
3663
  "hasDynamicHelp": false,
3549
3664
  "hiddenAliases": [],
3550
- "id": "epic:project",
3665
+ "id": "docker:status",
3551
3666
  "pluginAlias": "@proletariat/cli",
3552
3667
  "pluginName": "@proletariat/cli",
3553
3668
  "pluginType": "core",
3554
3669
  "strict": true,
3670
+ "enableJsonFlag": false,
3555
3671
  "isESM": true,
3556
3672
  "relativePath": [
3557
3673
  "dist",
3558
3674
  "commands",
3559
- "epic",
3560
- "project.js"
3675
+ "docker",
3676
+ "status.js"
3561
3677
  ]
3562
3678
  },
3563
- "epic:reorder": {
3679
+ "docker:stop": {
3564
3680
  "aliases": [],
3565
3681
  "args": {
3566
- "id": {
3567
- "description": "Epic ID to reorder",
3568
- "name": "id",
3569
- "required": false
3570
- },
3571
- "position": {
3572
- "description": "New position (1-based rank)",
3573
- "name": "position",
3574
- "required": false
3682
+ "target": {
3683
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3684
+ "name": "target",
3685
+ "required": true
3575
3686
  }
3576
3687
  },
3577
- "description": "Reorder epic priority/rank",
3688
+ "description": "Stop a running container (by execution ID, agent name, or container ID)",
3578
3689
  "examples": [
3579
- "<%= config.bin %> <%= command.id %> EPIC-001 1",
3580
- "<%= config.bin %> <%= command.id %> EPIC-003 --first",
3581
- "<%= config.bin %> <%= command.id %> EPIC-002 --after EPIC-001"
3690
+ "<%= config.bin %> <%= command.id %> WORK-001",
3691
+ "<%= config.bin %> <%= command.id %> kalanick",
3692
+ "<%= config.bin %> <%= command.id %> abc123 --force"
3582
3693
  ],
3583
3694
  "flags": {
3584
- "project": {
3585
- "char": "P",
3586
- "description": "Project ID (uses first project if only one exists)",
3587
- "name": "project",
3695
+ "force": {
3696
+ "aliases": [
3697
+ "yes",
3698
+ "y"
3699
+ ],
3700
+ "char": "f",
3701
+ "description": "Skip confirmation prompt",
3702
+ "name": "force",
3703
+ "allowNo": false,
3704
+ "type": "boolean"
3705
+ },
3706
+ "time": {
3707
+ "char": "t",
3708
+ "description": "Seconds to wait before killing the container",
3709
+ "name": "time",
3710
+ "default": 10,
3588
3711
  "hasDynamicHelp": false,
3589
3712
  "multiple": false,
3590
3713
  "type": "option"
@@ -3601,70 +3724,63 @@
3601
3724
  "name": "machine",
3602
3725
  "allowNo": false,
3603
3726
  "type": "boolean"
3604
- },
3605
- "first": {
3606
- "description": "Move to first position (highest priority)",
3607
- "exclusive": [
3608
- "last",
3609
- "after",
3610
- "before"
3611
- ],
3612
- "name": "first",
3727
+ }
3728
+ },
3729
+ "hasDynamicHelp": false,
3730
+ "hiddenAliases": [],
3731
+ "id": "docker:stop",
3732
+ "pluginAlias": "@proletariat/cli",
3733
+ "pluginName": "@proletariat/cli",
3734
+ "pluginType": "core",
3735
+ "strict": true,
3736
+ "enableJsonFlag": false,
3737
+ "isESM": true,
3738
+ "relativePath": [
3739
+ "dist",
3740
+ "commands",
3741
+ "docker",
3742
+ "stop.js"
3743
+ ]
3744
+ },
3745
+ "docker:sync": {
3746
+ "aliases": [],
3747
+ "args": {},
3748
+ "description": "Sync container status from Docker into the database",
3749
+ "examples": [
3750
+ "<%= config.bin %> <%= command.id %>"
3751
+ ],
3752
+ "flags": {
3753
+ "json": {
3754
+ "description": "Output as JSON for AI agents/scripts",
3755
+ "name": "json",
3613
3756
  "allowNo": false,
3614
3757
  "type": "boolean"
3615
3758
  },
3616
- "last": {
3617
- "description": "Move to last position (lowest priority)",
3618
- "exclusive": [
3619
- "first",
3620
- "after",
3621
- "before"
3622
- ],
3623
- "name": "last",
3759
+ "machine": {
3760
+ "char": "m",
3761
+ "description": "Output as JSON for AI agents/scripts",
3762
+ "name": "machine",
3624
3763
  "allowNo": false,
3625
3764
  "type": "boolean"
3626
- },
3627
- "after": {
3628
- "description": "Move after this epic ID",
3629
- "exclusive": [
3630
- "first",
3631
- "last",
3632
- "before"
3633
- ],
3634
- "name": "after",
3635
- "hasDynamicHelp": false,
3636
- "multiple": false,
3637
- "type": "option"
3638
- },
3639
- "before": {
3640
- "description": "Move before this epic ID",
3641
- "exclusive": [
3642
- "first",
3643
- "last",
3644
- "after"
3645
- ],
3646
- "name": "before",
3647
- "hasDynamicHelp": false,
3648
- "multiple": false,
3649
- "type": "option"
3650
3765
  }
3651
3766
  },
3652
3767
  "hasDynamicHelp": false,
3653
3768
  "hiddenAliases": [],
3654
- "id": "epic:reorder",
3769
+ "id": "docker:sync",
3655
3770
  "pluginAlias": "@proletariat/cli",
3656
3771
  "pluginName": "@proletariat/cli",
3657
3772
  "pluginType": "core",
3658
3773
  "strict": true,
3774
+ "enableJsonFlag": false,
3659
3775
  "isESM": true,
3660
3776
  "relativePath": [
3661
3777
  "dist",
3662
3778
  "commands",
3663
- "epic",
3664
- "reorder.js"
3779
+ "docker",
3780
+ "sync.js"
3665
3781
  ]
3666
3782
  },
3667
- "epic:show": {
3783
+ "epic:activate": {
3668
3784
  "aliases": [],
3669
3785
  "args": {
3670
3786
  "id": {
@@ -3673,9 +3789,9 @@
3673
3789
  "required": false
3674
3790
  }
3675
3791
  },
3676
- "description": "View epic details and linked tickets (alias for epic view)",
3792
+ "description": "Activate a draft or archived epic",
3677
3793
  "examples": [
3678
- "<%= config.bin %> <%= command.id %> EPIC-001",
3794
+ "<%= config.bin %> <%= command.id %> EPIC-004",
3679
3795
  "<%= config.bin %> <%= command.id %>"
3680
3796
  ],
3681
3797
  "flags": {
@@ -3702,40 +3818,33 @@
3702
3818
  }
3703
3819
  },
3704
3820
  "hasDynamicHelp": false,
3705
- "hidden": true,
3706
3821
  "hiddenAliases": [],
3707
- "id": "epic:show",
3822
+ "id": "epic:activate",
3708
3823
  "pluginAlias": "@proletariat/cli",
3709
3824
  "pluginName": "@proletariat/cli",
3710
3825
  "pluginType": "core",
3826
+ "strict": true,
3711
3827
  "isESM": true,
3712
3828
  "relativePath": [
3713
3829
  "dist",
3714
3830
  "commands",
3715
3831
  "epic",
3716
- "show.js"
3832
+ "activate.js"
3717
3833
  ]
3718
3834
  },
3719
- "epic:spec": {
3835
+ "epic:archive": {
3720
3836
  "aliases": [],
3721
3837
  "args": {
3722
- "epicId": {
3838
+ "id": {
3723
3839
  "description": "Epic ID",
3724
- "name": "epicId",
3725
- "required": false
3726
- },
3727
- "specId": {
3728
- "description": "Spec ID to link",
3729
- "name": "specId",
3840
+ "name": "id",
3730
3841
  "required": false
3731
3842
  }
3732
3843
  },
3733
- "description": "Assign a spec to an epic (design document)",
3844
+ "description": "Archive a completed epic",
3734
3845
  "examples": [
3735
- "<%= config.bin %> <%= command.id %> EPIC-001 SPEC-001",
3736
- "<%= config.bin %> <%= command.id %> EPIC-001",
3737
- "<%= config.bin %> <%= command.id %>",
3738
- "<%= config.bin %> <%= command.id %> EPIC-001 --unlink"
3846
+ "<%= config.bin %> <%= command.id %> EPIC-002",
3847
+ "<%= config.bin %> <%= command.id %> --force"
3739
3848
  ],
3740
3849
  "flags": {
3741
3850
  "project": {
@@ -3759,23 +3868,17 @@
3759
3868
  "allowNo": false,
3760
3869
  "type": "boolean"
3761
3870
  },
3762
- "unlink": {
3763
- "char": "u",
3764
- "description": "Remove spec from epic instead of adding",
3765
- "name": "unlink",
3766
- "allowNo": false,
3767
- "type": "boolean"
3768
- },
3769
- "align-tickets": {
3770
- "description": "Also update all tickets in the epic to use the same spec",
3771
- "name": "align-tickets",
3871
+ "force": {
3872
+ "char": "f",
3873
+ "description": "Skip ticket completion check",
3874
+ "name": "force",
3772
3875
  "allowNo": false,
3773
3876
  "type": "boolean"
3774
3877
  }
3775
3878
  },
3776
3879
  "hasDynamicHelp": false,
3777
3880
  "hiddenAliases": [],
3778
- "id": "epic:spec",
3881
+ "id": "epic:archive",
3779
3882
  "pluginAlias": "@proletariat/cli",
3780
3883
  "pluginName": "@proletariat/cli",
3781
3884
  "pluginType": "core",
@@ -3785,30 +3888,19 @@
3785
3888
  "dist",
3786
3889
  "commands",
3787
3890
  "epic",
3788
- "spec.js"
3891
+ "archive.js"
3789
3892
  ]
3790
3893
  },
3791
- "epic:ticket": {
3894
+ "epic:create": {
3792
3895
  "aliases": [],
3793
- "args": {
3794
- "id": {
3795
- "description": "Epic ID",
3796
- "name": "id",
3797
- "required": false
3798
- },
3799
- "tickets": {
3800
- "description": "Ticket IDs to link (space-separated)",
3801
- "name": "tickets",
3802
- "required": false
3803
- }
3804
- },
3805
- "description": "Assign tickets to an epic, or link epic to a spec (parent-child)",
3896
+ "args": {},
3897
+ "description": "Create a new epic",
3806
3898
  "examples": [
3807
- "<%= config.bin %> <%= command.id %> EPIC-001 TKT-001 TKT-002",
3808
- "<%= config.bin %> <%= command.id %> EPIC-001",
3809
3899
  "<%= config.bin %> <%= command.id %>",
3810
- "<%= config.bin %> <%= command.id %> EPIC-001 --unlink TKT-001",
3811
- "<%= config.bin %> <%= command.id %> EPIC-001 --spec SPEC-001"
3900
+ "<%= config.bin %> <%= command.id %> --title \"User Authentication System\"",
3901
+ "<%= config.bin %> <%= command.id %> -t \"API Design\" --status draft",
3902
+ "<%= config.bin %> <%= command.id %> -t \"Implement Auth\" --spec SPEC-001",
3903
+ "<%= config.bin %> <%= command.id %> --title \"Test\" -P PROJ-001 --dry-run --json # Validate without creating"
3812
3904
  ],
3813
3905
  "flags": {
3814
3906
  "project": {
@@ -3832,74 +3924,78 @@
3832
3924
  "allowNo": false,
3833
3925
  "type": "boolean"
3834
3926
  },
3835
- "unlink": {
3836
- "char": "u",
3837
- "description": "Remove tickets from this epic instead of adding",
3838
- "name": "unlink",
3839
- "allowNo": false,
3840
- "type": "boolean"
3927
+ "title": {
3928
+ "char": "t",
3929
+ "description": "Epic title [required for non-interactive]",
3930
+ "name": "title",
3931
+ "hasDynamicHelp": false,
3932
+ "multiple": false,
3933
+ "type": "option"
3841
3934
  },
3842
- "spec": {
3935
+ "status": {
3843
3936
  "char": "s",
3844
- "description": "Link epic to a spec (design document)",
3845
- "name": "spec",
3937
+ "description": "Initial status",
3938
+ "name": "status",
3939
+ "default": "active",
3846
3940
  "hasDynamicHelp": false,
3847
3941
  "multiple": false,
3942
+ "options": [
3943
+ "active",
3944
+ "draft"
3945
+ ],
3848
3946
  "type": "option"
3849
3947
  },
3850
- "unlink-spec": {
3851
- "description": "Remove spec link from epic",
3852
- "name": "unlink-spec",
3853
- "allowNo": false,
3854
- "type": "boolean"
3948
+ "description": {
3949
+ "char": "d",
3950
+ "description": "Epic description",
3951
+ "name": "description",
3952
+ "hasDynamicHelp": false,
3953
+ "multiple": false,
3954
+ "type": "option"
3855
3955
  },
3856
- "reconcile": {
3857
- "description": "How to handle spec mismatch: keep (keep ticket spec), epic (use epic spec), skip",
3858
- "name": "reconcile",
3956
+ "spec": {
3957
+ "description": "Link to spec ID (the design spec that describes this epic)",
3958
+ "name": "spec",
3859
3959
  "hasDynamicHelp": false,
3860
3960
  "multiple": false,
3861
- "options": [
3862
- "keep",
3863
- "epic",
3864
- "skip"
3865
- ],
3866
3961
  "type": "option"
3867
3962
  },
3868
- "inherit-spec": {
3869
- "description": "Inherit spec from epic when ticket has no spec",
3870
- "name": "inherit-spec",
3871
- "allowNo": true,
3963
+ "dry-run": {
3964
+ "description": "Validate inputs without creating epic (use with --json for structured output)",
3965
+ "name": "dry-run",
3966
+ "allowNo": false,
3872
3967
  "type": "boolean"
3873
3968
  }
3874
3969
  },
3875
3970
  "hasDynamicHelp": false,
3876
3971
  "hiddenAliases": [],
3877
- "id": "epic:ticket",
3972
+ "id": "epic:create",
3878
3973
  "pluginAlias": "@proletariat/cli",
3879
3974
  "pluginName": "@proletariat/cli",
3880
3975
  "pluginType": "core",
3881
- "strict": false,
3976
+ "strict": true,
3882
3977
  "isESM": true,
3883
3978
  "relativePath": [
3884
3979
  "dist",
3885
3980
  "commands",
3886
3981
  "epic",
3887
- "ticket.js"
3982
+ "create.js"
3888
3983
  ]
3889
3984
  },
3890
- "epic:view": {
3985
+ "epic:delete": {
3891
3986
  "aliases": [],
3892
3987
  "args": {
3893
3988
  "id": {
3894
- "description": "Epic ID",
3989
+ "description": "Epic ID to delete",
3895
3990
  "name": "id",
3896
3991
  "required": false
3897
3992
  }
3898
3993
  },
3899
- "description": "View epic details and linked tickets",
3994
+ "description": "Delete an epic permanently",
3900
3995
  "examples": [
3901
3996
  "<%= config.bin %> <%= command.id %> EPIC-001",
3902
- "<%= config.bin %> <%= command.id %>"
3997
+ "<%= config.bin %> <%= command.id %> EPIC-001 --force",
3998
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
3903
3999
  ],
3904
4000
  "flags": {
3905
4001
  "project": {
@@ -3911,7 +4007,7 @@
3911
4007
  "type": "option"
3912
4008
  },
3913
4009
  "json": {
3914
- "description": "Output as JSON for AI agents/scripts",
4010
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3915
4011
  "name": "json",
3916
4012
  "allowNo": false,
3917
4013
  "type": "boolean"
@@ -3922,11 +4018,18 @@
3922
4018
  "name": "machine",
3923
4019
  "allowNo": false,
3924
4020
  "type": "boolean"
4021
+ },
4022
+ "force": {
4023
+ "char": "f",
4024
+ "description": "Skip confirmation prompt",
4025
+ "name": "force",
4026
+ "allowNo": false,
4027
+ "type": "boolean"
3925
4028
  }
3926
4029
  },
3927
4030
  "hasDynamicHelp": false,
3928
4031
  "hiddenAliases": [],
3929
- "id": "epic:view",
4032
+ "id": "epic:delete",
3930
4033
  "pluginAlias": "@proletariat/cli",
3931
4034
  "pluginName": "@proletariat/cli",
3932
4035
  "pluginType": "core",
@@ -3936,43 +4039,24 @@
3936
4039
  "dist",
3937
4040
  "commands",
3938
4041
  "epic",
3939
- "view.js"
4042
+ "delete.js"
3940
4043
  ]
3941
4044
  },
3942
- "docker:clean": {
4045
+ "epic": {
3943
4046
  "aliases": [],
3944
4047
  "args": {},
3945
- "description": "Remove orphaned containers (containers without running agents)",
4048
+ "description": "Interactive menu for epic operations",
3946
4049
  "examples": [
3947
- "<%= config.bin %> <%= command.id %>",
3948
- "<%= config.bin %> <%= command.id %> --force",
3949
- "<%= config.bin %> <%= command.id %> --dry-run"
4050
+ "<%= config.bin %> <%= command.id %>"
3950
4051
  ],
3951
4052
  "flags": {
3952
- "force": {
3953
- "aliases": [
3954
- "yes",
3955
- "y"
3956
- ],
3957
- "char": "f",
3958
- "description": "Skip confirmation prompt",
3959
- "name": "force",
3960
- "allowNo": false,
3961
- "type": "boolean"
3962
- },
3963
- "dry-run": {
3964
- "char": "d",
3965
- "description": "Show what would be removed without removing",
3966
- "name": "dry-run",
3967
- "allowNo": false,
3968
- "type": "boolean"
3969
- },
3970
- "all": {
3971
- "char": "a",
3972
- "description": "Remove all stopped devcontainers (not just orphaned)",
3973
- "name": "all",
3974
- "allowNo": false,
3975
- "type": "boolean"
4053
+ "project": {
4054
+ "char": "P",
4055
+ "description": "Project ID (uses first project if only one exists)",
4056
+ "name": "project",
4057
+ "hasDynamicHelp": false,
4058
+ "multiple": false,
4059
+ "type": "option"
3976
4060
  },
3977
4061
  "json": {
3978
4062
  "description": "Output as JSON for AI agents/scripts",
@@ -3990,38 +4074,36 @@
3990
4074
  },
3991
4075
  "hasDynamicHelp": false,
3992
4076
  "hiddenAliases": [],
3993
- "id": "docker:clean",
4077
+ "id": "epic",
3994
4078
  "pluginAlias": "@proletariat/cli",
3995
4079
  "pluginName": "@proletariat/cli",
3996
4080
  "pluginType": "core",
3997
4081
  "strict": true,
3998
- "enableJsonFlag": false,
3999
4082
  "isESM": true,
4000
4083
  "relativePath": [
4001
4084
  "dist",
4002
4085
  "commands",
4003
- "docker",
4004
- "clean.js"
4086
+ "epic",
4087
+ "index.js"
4005
4088
  ]
4006
4089
  },
4007
- "docker": {
4090
+ "epic:list": {
4008
4091
  "aliases": [],
4009
4092
  "args": {},
4010
- "description": "Manage Docker containers used by agents",
4093
+ "description": "List all epics",
4011
4094
  "examples": [
4012
4095
  "<%= config.bin %> <%= command.id %>",
4013
- "<%= config.bin %> docker status",
4014
- "<%= config.bin %> docker list",
4015
- "<%= config.bin %> docker logs WORK-001",
4016
- "<%= config.bin %> docker start WORK-001",
4017
- "<%= config.bin %> docker stop kalanick",
4018
- "<%= config.bin %> docker shell WORK-001",
4019
- "<%= config.bin %> docker restart abc123",
4020
- "<%= config.bin %> docker sync",
4021
- "<%= config.bin %> docker clean",
4022
- "<%= config.bin %> docker prune"
4096
+ "<%= config.bin %> <%= command.id %> --status active"
4023
4097
  ],
4024
4098
  "flags": {
4099
+ "project": {
4100
+ "char": "P",
4101
+ "description": "Project ID (uses first project if only one exists)",
4102
+ "name": "project",
4103
+ "hasDynamicHelp": false,
4104
+ "multiple": false,
4105
+ "type": "option"
4106
+ },
4025
4107
  "json": {
4026
4108
  "description": "Output as JSON for AI agents/scripts",
4027
4109
  "name": "json",
@@ -4034,11 +4116,26 @@
4034
4116
  "name": "machine",
4035
4117
  "allowNo": false,
4036
4118
  "type": "boolean"
4119
+ },
4120
+ "status": {
4121
+ "char": "s",
4122
+ "description": "Filter by status",
4123
+ "name": "status",
4124
+ "hasDynamicHelp": false,
4125
+ "multiple": false,
4126
+ "options": [
4127
+ "active",
4128
+ "draft",
4129
+ "complete",
4130
+ "dropped",
4131
+ "future"
4132
+ ],
4133
+ "type": "option"
4037
4134
  }
4038
4135
  },
4039
4136
  "hasDynamicHelp": false,
4040
4137
  "hiddenAliases": [],
4041
- "id": "docker",
4138
+ "id": "epic:list",
4042
4139
  "pluginAlias": "@proletariat/cli",
4043
4140
  "pluginName": "@proletariat/cli",
4044
4141
  "pluginType": "core",
@@ -4047,81 +4144,45 @@
4047
4144
  "relativePath": [
4048
4145
  "dist",
4049
4146
  "commands",
4050
- "docker",
4051
- "index.js"
4147
+ "epic",
4148
+ "list.js"
4052
4149
  ]
4053
4150
  },
4054
- "docker:list": {
4151
+ "epic:move": {
4055
4152
  "aliases": [],
4056
- "args": {},
4057
- "description": "Show Docker containers from agent_work table with status",
4058
- "examples": [
4059
- "<%= config.bin %> <%= command.id %>",
4060
- "<%= config.bin %> <%= command.id %> --all",
4061
- "<%= config.bin %> <%= command.id %> --running"
4062
- ],
4063
- "flags": {
4064
- "json": {
4065
- "description": "Output as JSON for AI agents/scripts",
4066
- "name": "json",
4067
- "allowNo": false,
4068
- "type": "boolean"
4153
+ "args": {
4154
+ "id": {
4155
+ "description": "Epic ID",
4156
+ "name": "id",
4157
+ "required": false
4069
4158
  },
4070
- "machine": {
4071
- "char": "m",
4072
- "description": "Output as JSON for AI agents/scripts",
4073
- "name": "machine",
4074
- "allowNo": false,
4075
- "type": "boolean"
4076
- },
4077
- "all": {
4078
- "char": "a",
4079
- "description": "Show all containers (including non-devcontainer)",
4080
- "name": "all",
4081
- "allowNo": false,
4082
- "type": "boolean"
4083
- },
4084
- "running": {
4085
- "char": "r",
4086
- "description": "Only show running containers",
4087
- "name": "running",
4088
- "allowNo": false,
4089
- "type": "boolean"
4090
- }
4091
- },
4092
- "hasDynamicHelp": false,
4093
- "hiddenAliases": [],
4094
- "id": "docker:list",
4095
- "pluginAlias": "@proletariat/cli",
4096
- "pluginName": "@proletariat/cli",
4097
- "pluginType": "core",
4098
- "strict": true,
4099
- "enableJsonFlag": false,
4100
- "isESM": true,
4101
- "relativePath": [
4102
- "dist",
4103
- "commands",
4104
- "docker",
4105
- "list.js"
4106
- ]
4107
- },
4108
- "docker:logs": {
4109
- "aliases": [],
4110
- "args": {
4111
- "target": {
4112
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
4113
- "name": "target",
4114
- "required": true
4159
+ "status": {
4160
+ "description": "Target status",
4161
+ "name": "status",
4162
+ "options": [
4163
+ "active",
4164
+ "draft",
4165
+ "complete",
4166
+ "dropped",
4167
+ "future"
4168
+ ],
4169
+ "required": false
4115
4170
  }
4116
4171
  },
4117
- "description": "View logs from a container (by execution ID, agent name, or container ID)",
4172
+ "description": "Move epic between status folders",
4118
4173
  "examples": [
4119
- "<%= config.bin %> <%= command.id %> WORK-001",
4120
- "<%= config.bin %> <%= command.id %> kalanick",
4121
- "<%= config.bin %> <%= command.id %> abc123 --follow",
4122
- "<%= config.bin %> <%= command.id %> WORK-001 --tail 100"
4174
+ "<%= config.bin %> <%= command.id %> EPIC-002 complete",
4175
+ "<%= config.bin %> <%= command.id %> --force"
4123
4176
  ],
4124
4177
  "flags": {
4178
+ "project": {
4179
+ "char": "P",
4180
+ "description": "Project ID (uses first project if only one exists)",
4181
+ "name": "project",
4182
+ "hasDynamicHelp": false,
4183
+ "multiple": false,
4184
+ "type": "option"
4185
+ },
4125
4186
  "json": {
4126
4187
  "description": "Output as JSON for AI agents/scripts",
4127
4188
  "name": "json",
@@ -4135,87 +4196,51 @@
4135
4196
  "allowNo": false,
4136
4197
  "type": "boolean"
4137
4198
  },
4138
- "follow": {
4199
+ "force": {
4139
4200
  "char": "f",
4140
- "description": "Follow log output",
4141
- "name": "follow",
4142
- "allowNo": false,
4143
- "type": "boolean"
4144
- },
4145
- "tail": {
4146
- "char": "n",
4147
- "description": "Number of lines to show from the end",
4148
- "name": "tail",
4149
- "default": 100,
4150
- "hasDynamicHelp": false,
4151
- "multiple": false,
4152
- "type": "option"
4153
- },
4154
- "timestamps": {
4155
- "char": "t",
4156
- "description": "Show timestamps",
4157
- "name": "timestamps",
4201
+ "description": "Skip validation checks",
4202
+ "name": "force",
4158
4203
  "allowNo": false,
4159
4204
  "type": "boolean"
4160
4205
  }
4161
4206
  },
4162
4207
  "hasDynamicHelp": false,
4163
4208
  "hiddenAliases": [],
4164
- "id": "docker:logs",
4209
+ "id": "epic:move",
4165
4210
  "pluginAlias": "@proletariat/cli",
4166
4211
  "pluginName": "@proletariat/cli",
4167
4212
  "pluginType": "core",
4168
4213
  "strict": true,
4169
- "enableJsonFlag": false,
4170
4214
  "isESM": true,
4171
4215
  "relativePath": [
4172
4216
  "dist",
4173
4217
  "commands",
4174
- "docker",
4175
- "logs.js"
4218
+ "epic",
4219
+ "move.js"
4176
4220
  ]
4177
4221
  },
4178
- "docker:prune": {
4222
+ "epic:progress": {
4179
4223
  "aliases": [],
4180
- "args": {},
4181
- "description": "Remove unused Docker resources (containers, images, volumes, networks)",
4224
+ "args": {
4225
+ "id": {
4226
+ "description": "Epic ID",
4227
+ "name": "id",
4228
+ "required": false
4229
+ }
4230
+ },
4231
+ "description": "Show epic completion progress",
4182
4232
  "examples": [
4183
- "<%= config.bin %> <%= command.id %>",
4184
- "<%= config.bin %> <%= command.id %> --all",
4185
- "<%= config.bin %> <%= command.id %> --volumes",
4186
- "<%= config.bin %> <%= command.id %> --dry-run"
4233
+ "<%= config.bin %> <%= command.id %> EPIC-001",
4234
+ "<%= config.bin %> <%= command.id %> --all"
4187
4235
  ],
4188
4236
  "flags": {
4189
- "force": {
4190
- "aliases": [
4191
- "yes",
4192
- "y"
4193
- ],
4194
- "char": "f",
4195
- "description": "Skip confirmation prompt",
4196
- "name": "force",
4197
- "allowNo": false,
4198
- "type": "boolean"
4199
- },
4200
- "dry-run": {
4201
- "char": "d",
4202
- "description": "Show what would be removed without removing",
4203
- "name": "dry-run",
4204
- "allowNo": false,
4205
- "type": "boolean"
4206
- },
4207
- "all": {
4208
- "char": "a",
4209
- "description": "Remove all unused images, not just dangling ones",
4210
- "name": "all",
4211
- "allowNo": false,
4212
- "type": "boolean"
4213
- },
4214
- "volumes": {
4215
- "description": "Also prune volumes (dangerous - data loss possible)",
4216
- "name": "volumes",
4217
- "allowNo": false,
4218
- "type": "boolean"
4237
+ "project": {
4238
+ "char": "P",
4239
+ "description": "Project ID (uses first project if only one exists)",
4240
+ "name": "project",
4241
+ "hasDynamicHelp": false,
4242
+ "multiple": false,
4243
+ "type": "option"
4219
4244
  },
4220
4245
  "json": {
4221
4246
  "description": "Output as JSON for AI agents/scripts",
@@ -4229,56 +4254,56 @@
4229
4254
  "name": "machine",
4230
4255
  "allowNo": false,
4231
4256
  "type": "boolean"
4257
+ },
4258
+ "all": {
4259
+ "char": "a",
4260
+ "description": "Show progress for all epics",
4261
+ "name": "all",
4262
+ "allowNo": false,
4263
+ "type": "boolean"
4232
4264
  }
4233
4265
  },
4234
4266
  "hasDynamicHelp": false,
4235
4267
  "hiddenAliases": [],
4236
- "id": "docker:prune",
4268
+ "id": "epic:progress",
4237
4269
  "pluginAlias": "@proletariat/cli",
4238
4270
  "pluginName": "@proletariat/cli",
4239
4271
  "pluginType": "core",
4240
4272
  "strict": true,
4241
- "enableJsonFlag": false,
4242
4273
  "isESM": true,
4243
4274
  "relativePath": [
4244
4275
  "dist",
4245
4276
  "commands",
4246
- "docker",
4247
- "prune.js"
4277
+ "epic",
4278
+ "progress.js"
4248
4279
  ]
4249
4280
  },
4250
- "docker:restart": {
4281
+ "epic:project": {
4251
4282
  "aliases": [],
4252
4283
  "args": {
4253
- "target": {
4254
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
4255
- "name": "target",
4256
- "required": true
4284
+ "epicId": {
4285
+ "description": "Epic ID",
4286
+ "name": "epicId",
4287
+ "required": false
4288
+ },
4289
+ "targetProject": {
4290
+ "description": "Target project ID",
4291
+ "name": "targetProject",
4292
+ "required": false
4257
4293
  }
4258
4294
  },
4259
- "description": "Restart a container (by execution ID, agent name, or container ID)",
4295
+ "description": "Move an epic to a different project (optionally with its tickets)",
4260
4296
  "examples": [
4261
- "<%= config.bin %> <%= command.id %> WORK-001",
4262
- "<%= config.bin %> <%= command.id %> kalanick",
4263
- "<%= config.bin %> <%= command.id %> abc123 --force"
4297
+ "<%= config.bin %> <%= command.id %> EPIC-001 new-project",
4298
+ "<%= config.bin %> <%= command.id %> EPIC-001 new-project --with-tickets",
4299
+ "<%= config.bin %> <%= command.id %> EPIC-001",
4300
+ "<%= config.bin %> <%= command.id %>"
4264
4301
  ],
4265
4302
  "flags": {
4266
- "force": {
4267
- "aliases": [
4268
- "yes",
4269
- "y"
4270
- ],
4271
- "char": "f",
4272
- "description": "Skip confirmation prompt",
4273
- "name": "force",
4274
- "allowNo": false,
4275
- "type": "boolean"
4276
- },
4277
- "time": {
4278
- "char": "t",
4279
- "description": "Seconds to wait before killing the container during stop",
4280
- "name": "time",
4281
- "default": 10,
4303
+ "project": {
4304
+ "char": "P",
4305
+ "description": "Project ID (uses first project if only one exists)",
4306
+ "name": "project",
4282
4307
  "hasDynamicHelp": false,
4283
4308
  "multiple": false,
4284
4309
  "type": "option"
@@ -4295,40 +4320,59 @@
4295
4320
  "name": "machine",
4296
4321
  "allowNo": false,
4297
4322
  "type": "boolean"
4323
+ },
4324
+ "with-tickets": {
4325
+ "char": "t",
4326
+ "description": "Also move all tickets assigned to this epic",
4327
+ "name": "with-tickets",
4328
+ "allowNo": false,
4329
+ "type": "boolean"
4298
4330
  }
4299
4331
  },
4300
4332
  "hasDynamicHelp": false,
4301
4333
  "hiddenAliases": [],
4302
- "id": "docker:restart",
4334
+ "id": "epic:project",
4303
4335
  "pluginAlias": "@proletariat/cli",
4304
4336
  "pluginName": "@proletariat/cli",
4305
4337
  "pluginType": "core",
4306
4338
  "strict": true,
4307
- "enableJsonFlag": false,
4308
4339
  "isESM": true,
4309
4340
  "relativePath": [
4310
4341
  "dist",
4311
4342
  "commands",
4312
- "docker",
4313
- "restart.js"
4343
+ "epic",
4344
+ "project.js"
4314
4345
  ]
4315
4346
  },
4316
- "docker:shell": {
4347
+ "epic:reorder": {
4317
4348
  "aliases": [],
4318
4349
  "args": {
4319
- "target": {
4320
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
4321
- "name": "target",
4322
- "required": true
4350
+ "id": {
4351
+ "description": "Epic ID to reorder",
4352
+ "name": "id",
4353
+ "required": false
4354
+ },
4355
+ "position": {
4356
+ "description": "New position (1-based rank)",
4357
+ "name": "position",
4358
+ "required": false
4323
4359
  }
4324
4360
  },
4325
- "description": "Open a shell in a running container (by execution ID, agent name, or container ID)",
4361
+ "description": "Reorder epic priority/rank",
4326
4362
  "examples": [
4327
- "<%= config.bin %> <%= command.id %> WORK-001",
4328
- "<%= config.bin %> <%= command.id %> kalanick",
4329
- "<%= config.bin %> <%= command.id %> abc123 --shell /bin/bash"
4363
+ "<%= config.bin %> <%= command.id %> EPIC-001 1",
4364
+ "<%= config.bin %> <%= command.id %> EPIC-003 --first",
4365
+ "<%= config.bin %> <%= command.id %> EPIC-002 --after EPIC-001"
4330
4366
  ],
4331
4367
  "flags": {
4368
+ "project": {
4369
+ "char": "P",
4370
+ "description": "Project ID (uses first project if only one exists)",
4371
+ "name": "project",
4372
+ "hasDynamicHelp": false,
4373
+ "multiple": false,
4374
+ "type": "option"
4375
+ },
4332
4376
  "json": {
4333
4377
  "description": "Output as JSON for AI agents/scripts",
4334
4378
  "name": "json",
@@ -4342,27 +4386,48 @@
4342
4386
  "allowNo": false,
4343
4387
  "type": "boolean"
4344
4388
  },
4345
- "shell": {
4346
- "char": "s",
4347
- "description": "Shell to use",
4348
- "name": "shell",
4349
- "default": "/bin/sh",
4350
- "hasDynamicHelp": false,
4351
- "multiple": false,
4352
- "type": "option"
4389
+ "first": {
4390
+ "description": "Move to first position (highest priority)",
4391
+ "exclusive": [
4392
+ "last",
4393
+ "after",
4394
+ "before"
4395
+ ],
4396
+ "name": "first",
4397
+ "allowNo": false,
4398
+ "type": "boolean"
4353
4399
  },
4354
- "user": {
4355
- "char": "u",
4356
- "description": "User to run as",
4357
- "name": "user",
4400
+ "last": {
4401
+ "description": "Move to last position (lowest priority)",
4402
+ "exclusive": [
4403
+ "first",
4404
+ "after",
4405
+ "before"
4406
+ ],
4407
+ "name": "last",
4408
+ "allowNo": false,
4409
+ "type": "boolean"
4410
+ },
4411
+ "after": {
4412
+ "description": "Move after this epic ID",
4413
+ "exclusive": [
4414
+ "first",
4415
+ "last",
4416
+ "before"
4417
+ ],
4418
+ "name": "after",
4358
4419
  "hasDynamicHelp": false,
4359
4420
  "multiple": false,
4360
4421
  "type": "option"
4361
4422
  },
4362
- "workdir": {
4363
- "char": "w",
4364
- "description": "Working directory inside the container",
4365
- "name": "workdir",
4423
+ "before": {
4424
+ "description": "Move before this epic ID",
4425
+ "exclusive": [
4426
+ "first",
4427
+ "last",
4428
+ "after"
4429
+ ],
4430
+ "name": "before",
4366
4431
  "hasDynamicHelp": false,
4367
4432
  "multiple": false,
4368
4433
  "type": "option"
@@ -4370,36 +4435,42 @@
4370
4435
  },
4371
4436
  "hasDynamicHelp": false,
4372
4437
  "hiddenAliases": [],
4373
- "id": "docker:shell",
4438
+ "id": "epic:reorder",
4374
4439
  "pluginAlias": "@proletariat/cli",
4375
4440
  "pluginName": "@proletariat/cli",
4376
4441
  "pluginType": "core",
4377
4442
  "strict": true,
4378
- "enableJsonFlag": false,
4379
4443
  "isESM": true,
4380
4444
  "relativePath": [
4381
4445
  "dist",
4382
4446
  "commands",
4383
- "docker",
4384
- "shell.js"
4447
+ "epic",
4448
+ "reorder.js"
4385
4449
  ]
4386
4450
  },
4387
- "docker:start": {
4451
+ "epic:show": {
4388
4452
  "aliases": [],
4389
4453
  "args": {
4390
- "target": {
4391
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
4392
- "name": "target",
4393
- "required": true
4454
+ "id": {
4455
+ "description": "Epic ID",
4456
+ "name": "id",
4457
+ "required": false
4394
4458
  }
4395
4459
  },
4396
- "description": "Start a stopped container (by execution ID, agent name, or container ID)",
4460
+ "description": "View epic details and linked tickets (alias for epic view)",
4397
4461
  "examples": [
4398
- "<%= config.bin %> <%= command.id %> WORK-001",
4399
- "<%= config.bin %> <%= command.id %> kalanick",
4400
- "<%= config.bin %> <%= command.id %> abc123"
4462
+ "<%= config.bin %> <%= command.id %> EPIC-001",
4463
+ "<%= config.bin %> <%= command.id %>"
4401
4464
  ],
4402
4465
  "flags": {
4466
+ "project": {
4467
+ "char": "P",
4468
+ "description": "Project ID (uses first project if only one exists)",
4469
+ "name": "project",
4470
+ "hasDynamicHelp": false,
4471
+ "multiple": false,
4472
+ "type": "option"
4473
+ },
4403
4474
  "json": {
4404
4475
  "description": "Output as JSON for AI agents/scripts",
4405
4476
  "name": "json",
@@ -4412,39 +4483,53 @@
4412
4483
  "name": "machine",
4413
4484
  "allowNo": false,
4414
4485
  "type": "boolean"
4415
- },
4416
- "attach": {
4417
- "char": "a",
4418
- "description": "Attach to container after starting",
4419
- "name": "attach",
4420
- "allowNo": false,
4421
- "type": "boolean"
4422
4486
  }
4423
4487
  },
4424
4488
  "hasDynamicHelp": false,
4489
+ "hidden": true,
4425
4490
  "hiddenAliases": [],
4426
- "id": "docker:start",
4491
+ "id": "epic:show",
4427
4492
  "pluginAlias": "@proletariat/cli",
4428
4493
  "pluginName": "@proletariat/cli",
4429
4494
  "pluginType": "core",
4430
- "strict": true,
4431
- "enableJsonFlag": false,
4432
4495
  "isESM": true,
4433
4496
  "relativePath": [
4434
4497
  "dist",
4435
4498
  "commands",
4436
- "docker",
4437
- "start.js"
4499
+ "epic",
4500
+ "show.js"
4438
4501
  ]
4439
4502
  },
4440
- "docker:status": {
4503
+ "epic:spec": {
4441
4504
  "aliases": [],
4442
- "args": {},
4443
- "description": "Check if Docker daemon is running",
4505
+ "args": {
4506
+ "epicId": {
4507
+ "description": "Epic ID",
4508
+ "name": "epicId",
4509
+ "required": false
4510
+ },
4511
+ "specId": {
4512
+ "description": "Spec ID to link",
4513
+ "name": "specId",
4514
+ "required": false
4515
+ }
4516
+ },
4517
+ "description": "Assign a spec to an epic (design document)",
4444
4518
  "examples": [
4445
- "<%= config.bin %> <%= command.id %>"
4519
+ "<%= config.bin %> <%= command.id %> EPIC-001 SPEC-001",
4520
+ "<%= config.bin %> <%= command.id %> EPIC-001",
4521
+ "<%= config.bin %> <%= command.id %>",
4522
+ "<%= config.bin %> <%= command.id %> EPIC-001 --unlink"
4446
4523
  ],
4447
4524
  "flags": {
4525
+ "project": {
4526
+ "char": "P",
4527
+ "description": "Project ID (uses first project if only one exists)",
4528
+ "name": "project",
4529
+ "hasDynamicHelp": false,
4530
+ "multiple": false,
4531
+ "type": "option"
4532
+ },
4448
4533
  "json": {
4449
4534
  "description": "Output as JSON for AI agents/scripts",
4450
4535
  "name": "json",
@@ -4457,56 +4542,63 @@
4457
4542
  "name": "machine",
4458
4543
  "allowNo": false,
4459
4544
  "type": "boolean"
4545
+ },
4546
+ "unlink": {
4547
+ "char": "u",
4548
+ "description": "Remove spec from epic instead of adding",
4549
+ "name": "unlink",
4550
+ "allowNo": false,
4551
+ "type": "boolean"
4552
+ },
4553
+ "align-tickets": {
4554
+ "description": "Also update all tickets in the epic to use the same spec",
4555
+ "name": "align-tickets",
4556
+ "allowNo": false,
4557
+ "type": "boolean"
4460
4558
  }
4461
4559
  },
4462
4560
  "hasDynamicHelp": false,
4463
4561
  "hiddenAliases": [],
4464
- "id": "docker:status",
4562
+ "id": "epic:spec",
4465
4563
  "pluginAlias": "@proletariat/cli",
4466
4564
  "pluginName": "@proletariat/cli",
4467
4565
  "pluginType": "core",
4468
4566
  "strict": true,
4469
- "enableJsonFlag": false,
4470
4567
  "isESM": true,
4471
4568
  "relativePath": [
4472
4569
  "dist",
4473
4570
  "commands",
4474
- "docker",
4475
- "status.js"
4571
+ "epic",
4572
+ "spec.js"
4476
4573
  ]
4477
4574
  },
4478
- "docker:stop": {
4575
+ "epic:ticket": {
4479
4576
  "aliases": [],
4480
4577
  "args": {
4481
- "target": {
4482
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
4483
- "name": "target",
4484
- "required": true
4578
+ "id": {
4579
+ "description": "Epic ID",
4580
+ "name": "id",
4581
+ "required": false
4582
+ },
4583
+ "tickets": {
4584
+ "description": "Ticket IDs to link (space-separated)",
4585
+ "name": "tickets",
4586
+ "required": false
4485
4587
  }
4486
4588
  },
4487
- "description": "Stop a running container (by execution ID, agent name, or container ID)",
4589
+ "description": "Assign tickets to an epic, or link epic to a spec (parent-child)",
4488
4590
  "examples": [
4489
- "<%= config.bin %> <%= command.id %> WORK-001",
4490
- "<%= config.bin %> <%= command.id %> kalanick",
4491
- "<%= config.bin %> <%= command.id %> abc123 --force"
4591
+ "<%= config.bin %> <%= command.id %> EPIC-001 TKT-001 TKT-002",
4592
+ "<%= config.bin %> <%= command.id %> EPIC-001",
4593
+ "<%= config.bin %> <%= command.id %>",
4594
+ "<%= config.bin %> <%= command.id %> EPIC-001 --unlink TKT-001",
4595
+ "<%= config.bin %> <%= command.id %> EPIC-001 --spec SPEC-001"
4492
4596
  ],
4493
4597
  "flags": {
4494
- "force": {
4495
- "aliases": [
4496
- "yes",
4497
- "y"
4498
- ],
4499
- "char": "f",
4500
- "description": "Skip confirmation prompt",
4501
- "name": "force",
4502
- "allowNo": false,
4503
- "type": "boolean"
4504
- },
4505
- "time": {
4506
- "char": "t",
4507
- "description": "Seconds to wait before killing the container",
4508
- "name": "time",
4509
- "default": 10,
4598
+ "project": {
4599
+ "char": "P",
4600
+ "description": "Project ID (uses first project if only one exists)",
4601
+ "name": "project",
4510
4602
  "hasDynamicHelp": false,
4511
4603
  "multiple": false,
4512
4604
  "type": "option"
@@ -4523,32 +4615,85 @@
4523
4615
  "name": "machine",
4524
4616
  "allowNo": false,
4525
4617
  "type": "boolean"
4618
+ },
4619
+ "unlink": {
4620
+ "char": "u",
4621
+ "description": "Remove tickets from this epic instead of adding",
4622
+ "name": "unlink",
4623
+ "allowNo": false,
4624
+ "type": "boolean"
4625
+ },
4626
+ "spec": {
4627
+ "char": "s",
4628
+ "description": "Link epic to a spec (design document)",
4629
+ "name": "spec",
4630
+ "hasDynamicHelp": false,
4631
+ "multiple": false,
4632
+ "type": "option"
4633
+ },
4634
+ "unlink-spec": {
4635
+ "description": "Remove spec link from epic",
4636
+ "name": "unlink-spec",
4637
+ "allowNo": false,
4638
+ "type": "boolean"
4639
+ },
4640
+ "reconcile": {
4641
+ "description": "How to handle spec mismatch: keep (keep ticket spec), epic (use epic spec), skip",
4642
+ "name": "reconcile",
4643
+ "hasDynamicHelp": false,
4644
+ "multiple": false,
4645
+ "options": [
4646
+ "keep",
4647
+ "epic",
4648
+ "skip"
4649
+ ],
4650
+ "type": "option"
4651
+ },
4652
+ "inherit-spec": {
4653
+ "description": "Inherit spec from epic when ticket has no spec",
4654
+ "name": "inherit-spec",
4655
+ "allowNo": true,
4656
+ "type": "boolean"
4526
4657
  }
4527
4658
  },
4528
4659
  "hasDynamicHelp": false,
4529
4660
  "hiddenAliases": [],
4530
- "id": "docker:stop",
4661
+ "id": "epic:ticket",
4531
4662
  "pluginAlias": "@proletariat/cli",
4532
4663
  "pluginName": "@proletariat/cli",
4533
4664
  "pluginType": "core",
4534
- "strict": true,
4535
- "enableJsonFlag": false,
4665
+ "strict": false,
4536
4666
  "isESM": true,
4537
4667
  "relativePath": [
4538
4668
  "dist",
4539
4669
  "commands",
4540
- "docker",
4541
- "stop.js"
4670
+ "epic",
4671
+ "ticket.js"
4542
4672
  ]
4543
4673
  },
4544
- "docker:sync": {
4674
+ "epic:view": {
4545
4675
  "aliases": [],
4546
- "args": {},
4547
- "description": "Sync container status from Docker into the database",
4676
+ "args": {
4677
+ "id": {
4678
+ "description": "Epic ID",
4679
+ "name": "id",
4680
+ "required": false
4681
+ }
4682
+ },
4683
+ "description": "View epic details and linked tickets",
4548
4684
  "examples": [
4685
+ "<%= config.bin %> <%= command.id %> EPIC-001",
4549
4686
  "<%= config.bin %> <%= command.id %>"
4550
4687
  ],
4551
4688
  "flags": {
4689
+ "project": {
4690
+ "char": "P",
4691
+ "description": "Project ID (uses first project if only one exists)",
4692
+ "name": "project",
4693
+ "hasDynamicHelp": false,
4694
+ "multiple": false,
4695
+ "type": "option"
4696
+ },
4552
4697
  "json": {
4553
4698
  "description": "Output as JSON for AI agents/scripts",
4554
4699
  "name": "json",
@@ -4565,18 +4710,17 @@
4565
4710
  },
4566
4711
  "hasDynamicHelp": false,
4567
4712
  "hiddenAliases": [],
4568
- "id": "docker:sync",
4713
+ "id": "epic:view",
4569
4714
  "pluginAlias": "@proletariat/cli",
4570
4715
  "pluginName": "@proletariat/cli",
4571
4716
  "pluginType": "core",
4572
4717
  "strict": true,
4573
- "enableJsonFlag": false,
4574
4718
  "isESM": true,
4575
4719
  "relativePath": [
4576
4720
  "dist",
4577
4721
  "commands",
4578
- "docker",
4579
- "sync.js"
4722
+ "epic",
4723
+ "view.js"
4580
4724
  ]
4581
4725
  },
4582
4726
  "execution:config": {
@@ -5451,20 +5595,15 @@
5451
5595
  "token.js"
5452
5596
  ]
5453
5597
  },
5454
- "label:create": {
5598
+ "linear:auth": {
5455
5599
  "aliases": [],
5456
- "args": {
5457
- "name": {
5458
- "description": "Label name",
5459
- "name": "name",
5460
- "required": true
5461
- }
5462
- },
5463
- "description": "Create a new label",
5600
+ "args": {},
5601
+ "description": "Authenticate with Linear (alias for \"prlt linear connect\")",
5464
5602
  "examples": [
5465
- "<%= config.bin %> <%= command.id %> my-label",
5466
- "<%= config.bin %> <%= command.id %> urgent --color \"#ff0000\" --group type",
5467
- "<%= config.bin %> <%= command.id %> frontend --group area --description \"Frontend work\""
5603
+ "<%= config.bin %> linear connect",
5604
+ "<%= config.bin %> linear connect --check",
5605
+ "<%= config.bin %> linear connect --force",
5606
+ "LINEAR_API_KEY=lin_api_... <%= config.bin %> linear connect"
5468
5607
  ],
5469
5608
  "flags": {
5470
5609
  "project": {
@@ -5488,26 +5627,97 @@
5488
5627
  "allowNo": false,
5489
5628
  "type": "boolean"
5490
5629
  },
5491
- "color": {
5492
- "char": "c",
5493
- "description": "Label color (hex, e.g. #ff0000)",
5494
- "name": "color",
5495
- "hasDynamicHelp": false,
5496
- "multiple": false,
5497
- "type": "option"
5630
+ "check": {
5631
+ "description": "Only check if Linear credentials exist (do not prompt)",
5632
+ "name": "check",
5633
+ "allowNo": false,
5634
+ "type": "boolean"
5498
5635
  },
5499
- "description": {
5500
- "char": "d",
5501
- "description": "Label description",
5502
- "name": "description",
5636
+ "force": {
5637
+ "description": "Force re-authentication even if credentials exist",
5638
+ "name": "force",
5639
+ "allowNo": false,
5640
+ "type": "boolean"
5641
+ },
5642
+ "disconnect": {
5643
+ "description": "Remove stored Linear credentials",
5644
+ "name": "disconnect",
5645
+ "allowNo": false,
5646
+ "type": "boolean"
5647
+ }
5648
+ },
5649
+ "hasDynamicHelp": false,
5650
+ "hidden": true,
5651
+ "hiddenAliases": [],
5652
+ "id": "linear:auth",
5653
+ "pluginAlias": "@proletariat/cli",
5654
+ "pluginName": "@proletariat/cli",
5655
+ "pluginType": "core",
5656
+ "strict": true,
5657
+ "isESM": true,
5658
+ "relativePath": [
5659
+ "dist",
5660
+ "commands",
5661
+ "linear",
5662
+ "auth.js"
5663
+ ]
5664
+ },
5665
+ "linear:connect": {
5666
+ "aliases": [],
5667
+ "args": {},
5668
+ "description": "Connect to Linear workspace and configure authentication",
5669
+ "examples": [
5670
+ "<%= config.bin %> <%= command.id %>",
5671
+ "<%= config.bin %> <%= command.id %> --check",
5672
+ "<%= config.bin %> <%= command.id %> --force",
5673
+ "<%= config.bin %> <%= command.id %> --disconnect",
5674
+ "<%= config.bin %> <%= command.id %> --team ENG",
5675
+ "LINEAR_API_KEY=lin_api_... <%= config.bin %> <%= command.id %>",
5676
+ "<%= config.bin %> <%= command.id %> --json"
5677
+ ],
5678
+ "flags": {
5679
+ "project": {
5680
+ "char": "P",
5681
+ "description": "Project ID (uses first project if only one exists)",
5682
+ "name": "project",
5503
5683
  "hasDynamicHelp": false,
5504
5684
  "multiple": false,
5505
5685
  "type": "option"
5506
5686
  },
5507
- "group": {
5508
- "char": "g",
5509
- "description": "Label group ID to add this label to",
5510
- "name": "group",
5687
+ "json": {
5688
+ "description": "Output as JSON for AI agents/scripts",
5689
+ "name": "json",
5690
+ "allowNo": false,
5691
+ "type": "boolean"
5692
+ },
5693
+ "machine": {
5694
+ "char": "m",
5695
+ "description": "Output as JSON for AI agents/scripts",
5696
+ "name": "machine",
5697
+ "allowNo": false,
5698
+ "type": "boolean"
5699
+ },
5700
+ "check": {
5701
+ "description": "Only check if Linear credentials are valid (do not prompt)",
5702
+ "name": "check",
5703
+ "allowNo": false,
5704
+ "type": "boolean"
5705
+ },
5706
+ "force": {
5707
+ "description": "Force re-authentication even if credentials exist",
5708
+ "name": "force",
5709
+ "allowNo": false,
5710
+ "type": "boolean"
5711
+ },
5712
+ "disconnect": {
5713
+ "description": "Remove stored Linear credentials and configuration",
5714
+ "name": "disconnect",
5715
+ "allowNo": false,
5716
+ "type": "boolean"
5717
+ },
5718
+ "team": {
5719
+ "description": "Default team key (e.g., \"ENG\") for non-interactive setup",
5720
+ "name": "team",
5511
5721
  "hasDynamicHelp": false,
5512
5722
  "multiple": false,
5513
5723
  "type": "option"
@@ -5515,7 +5725,7 @@
5515
5725
  },
5516
5726
  "hasDynamicHelp": false,
5517
5727
  "hiddenAliases": [],
5518
- "id": "label:create",
5728
+ "id": "linear:connect",
5519
5729
  "pluginAlias": "@proletariat/cli",
5520
5730
  "pluginName": "@proletariat/cli",
5521
5731
  "pluginType": "core",
@@ -5524,22 +5734,140 @@
5524
5734
  "relativePath": [
5525
5735
  "dist",
5526
5736
  "commands",
5527
- "label",
5528
- "create.js"
5737
+ "linear",
5738
+ "connect.js"
5529
5739
  ]
5530
5740
  },
5531
- "label:delete": {
5741
+ "linear:import": {
5532
5742
  "aliases": [],
5533
- "args": {
5534
- "id": {
5535
- "description": "Label ID to delete",
5536
- "name": "id",
5537
- "required": true
5743
+ "args": {},
5744
+ "description": "Import Linear issues into PMO as tickets",
5745
+ "examples": [
5746
+ "<%= config.bin %> <%= command.id %> # Interactive: select team and issues",
5747
+ "<%= config.bin %> <%= command.id %> ENG-123 ENG-124 # Import specific issues by identifier",
5748
+ "<%= config.bin %> <%= command.id %> --team ENG # Import from a specific team",
5749
+ "<%= config.bin %> <%= command.id %> --team ENG --state \"In Progress\" # Filter by state",
5750
+ "<%= config.bin %> <%= command.id %> --team ENG --label bug # Filter by label",
5751
+ "<%= config.bin %> <%= command.id %> --limit 20 --json # Import up to 20 issues, JSON output"
5752
+ ],
5753
+ "flags": {
5754
+ "project": {
5755
+ "char": "P",
5756
+ "description": "Project ID (uses first project if only one exists)",
5757
+ "name": "project",
5758
+ "hasDynamicHelp": false,
5759
+ "multiple": false,
5760
+ "type": "option"
5761
+ },
5762
+ "json": {
5763
+ "description": "Output as JSON for AI agents/scripts",
5764
+ "name": "json",
5765
+ "allowNo": false,
5766
+ "type": "boolean"
5767
+ },
5768
+ "machine": {
5769
+ "char": "m",
5770
+ "description": "Output as JSON for AI agents/scripts",
5771
+ "name": "machine",
5772
+ "allowNo": false,
5773
+ "type": "boolean"
5774
+ },
5775
+ "team": {
5776
+ "char": "t",
5777
+ "description": "Linear team key (e.g., ENG)",
5778
+ "name": "team",
5779
+ "hasDynamicHelp": false,
5780
+ "multiple": false,
5781
+ "type": "option"
5782
+ },
5783
+ "state": {
5784
+ "description": "Filter by Linear state name (e.g., \"In Progress\", \"Backlog\")",
5785
+ "name": "state",
5786
+ "hasDynamicHelp": false,
5787
+ "multiple": false,
5788
+ "type": "option"
5789
+ },
5790
+ "state-type": {
5791
+ "description": "Filter by Linear state type",
5792
+ "name": "state-type",
5793
+ "hasDynamicHelp": false,
5794
+ "multiple": false,
5795
+ "options": [
5796
+ "triage",
5797
+ "backlog",
5798
+ "unstarted",
5799
+ "started",
5800
+ "completed",
5801
+ "canceled"
5802
+ ],
5803
+ "type": "option"
5804
+ },
5805
+ "label": {
5806
+ "description": "Filter by Linear label name",
5807
+ "name": "label",
5808
+ "hasDynamicHelp": false,
5809
+ "multiple": false,
5810
+ "type": "option"
5811
+ },
5812
+ "assignee": {
5813
+ "description": "Filter by assignee name or \"me\"",
5814
+ "name": "assignee",
5815
+ "hasDynamicHelp": false,
5816
+ "multiple": false,
5817
+ "type": "option"
5818
+ },
5819
+ "cycle": {
5820
+ "description": "Filter by cycle ID",
5821
+ "name": "cycle",
5822
+ "hasDynamicHelp": false,
5823
+ "multiple": false,
5824
+ "type": "option"
5825
+ },
5826
+ "limit": {
5827
+ "char": "n",
5828
+ "description": "Maximum number of issues to import",
5829
+ "name": "limit",
5830
+ "default": 50,
5831
+ "hasDynamicHelp": false,
5832
+ "multiple": false,
5833
+ "type": "option"
5834
+ },
5835
+ "all": {
5836
+ "char": "a",
5837
+ "description": "Import all matching issues without interactive selection",
5838
+ "name": "all",
5839
+ "allowNo": false,
5840
+ "type": "boolean"
5841
+ },
5842
+ "dry-run": {
5843
+ "description": "Preview issues that would be imported without creating tickets",
5844
+ "name": "dry-run",
5845
+ "allowNo": false,
5846
+ "type": "boolean"
5538
5847
  }
5539
5848
  },
5540
- "description": "Delete a label (removes from all tickets)",
5849
+ "hasDynamicHelp": false,
5850
+ "hiddenAliases": [],
5851
+ "id": "linear:import",
5852
+ "pluginAlias": "@proletariat/cli",
5853
+ "pluginName": "@proletariat/cli",
5854
+ "pluginType": "core",
5855
+ "strict": false,
5856
+ "isESM": true,
5857
+ "relativePath": [
5858
+ "dist",
5859
+ "commands",
5860
+ "linear",
5861
+ "import.js"
5862
+ ]
5863
+ },
5864
+ "linear:status": {
5865
+ "aliases": [],
5866
+ "args": {},
5867
+ "description": "Validate Linear token, team access, and show integration health",
5541
5868
  "examples": [
5542
- "<%= config.bin %> <%= command.id %> my-label"
5869
+ "<%= config.bin %> <%= command.id %>",
5870
+ "<%= config.bin %> <%= command.id %> --json"
5543
5871
  ],
5544
5872
  "flags": {
5545
5873
  "project": {
@@ -5566,7 +5894,7 @@
5566
5894
  },
5567
5895
  "hasDynamicHelp": false,
5568
5896
  "hiddenAliases": [],
5569
- "id": "label:delete",
5897
+ "id": "linear:status",
5570
5898
  "pluginAlias": "@proletariat/cli",
5571
5899
  "pluginName": "@proletariat/cli",
5572
5900
  "pluginType": "core",
@@ -5575,21 +5903,19 @@
5575
5903
  "relativePath": [
5576
5904
  "dist",
5577
5905
  "commands",
5578
- "label",
5579
- "delete.js"
5906
+ "linear",
5907
+ "status.js"
5580
5908
  ]
5581
5909
  },
5582
- "label": {
5583
- "aliases": [
5584
- "labels"
5585
- ],
5910
+ "linear:sync": {
5911
+ "aliases": [],
5586
5912
  "args": {},
5587
- "description": "Manage labels and label groups",
5913
+ "description": "Sync PMO ticket status and PR links back to Linear",
5588
5914
  "examples": [
5589
- "<%= config.bin %> <%= command.id %>",
5590
- "<%= config.bin %> label list",
5591
- "<%= config.bin %> label create my-label",
5592
- "<%= config.bin %> label group list"
5915
+ "<%= config.bin %> <%= command.id %> # Sync all mapped tickets",
5916
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 # Sync a specific ticket",
5917
+ "<%= config.bin %> <%= command.id %> --pr-url https://github.com/... --ticket TKT-001 # Attach PR to Linear issue",
5918
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview what would be synced"
5593
5919
  ],
5594
5920
  "flags": {
5595
5921
  "project": {
@@ -5612,11 +5938,38 @@
5612
5938
  "name": "machine",
5613
5939
  "allowNo": false,
5614
5940
  "type": "boolean"
5941
+ },
5942
+ "ticket": {
5943
+ "description": "PMO ticket ID to sync (syncs all if omitted)",
5944
+ "name": "ticket",
5945
+ "hasDynamicHelp": false,
5946
+ "multiple": false,
5947
+ "type": "option"
5948
+ },
5949
+ "pr-url": {
5950
+ "description": "PR URL to attach to the Linear issue",
5951
+ "name": "pr-url",
5952
+ "hasDynamicHelp": false,
5953
+ "multiple": false,
5954
+ "type": "option"
5955
+ },
5956
+ "pr-title": {
5957
+ "description": "PR title for the attachment (defaults to ticket title)",
5958
+ "name": "pr-title",
5959
+ "hasDynamicHelp": false,
5960
+ "multiple": false,
5961
+ "type": "option"
5962
+ },
5963
+ "dry-run": {
5964
+ "description": "Preview what would be synced without making changes",
5965
+ "name": "dry-run",
5966
+ "allowNo": false,
5967
+ "type": "boolean"
5615
5968
  }
5616
5969
  },
5617
5970
  "hasDynamicHelp": false,
5618
5971
  "hiddenAliases": [],
5619
- "id": "label",
5972
+ "id": "linear:sync",
5620
5973
  "pluginAlias": "@proletariat/cli",
5621
5974
  "pluginName": "@proletariat/cli",
5622
5975
  "pluginType": "core",
@@ -5625,18 +5978,30 @@
5625
5978
  "relativePath": [
5626
5979
  "dist",
5627
5980
  "commands",
5628
- "label",
5629
- "index.js"
5981
+ "linear",
5982
+ "sync.js"
5630
5983
  ]
5631
5984
  },
5632
- "label:list": {
5985
+ "link:create": {
5633
5986
  "aliases": [],
5634
- "args": {},
5635
- "description": "List labels, optionally filtered by group",
5987
+ "args": {
5988
+ "from": {
5989
+ "description": "Source entity ID (TKT-xxx, SPEC-xxx, or EPIC-xxx)",
5990
+ "name": "from",
5991
+ "required": true
5992
+ },
5993
+ "to": {
5994
+ "description": "Target entity ID",
5995
+ "name": "to",
5996
+ "required": true
5997
+ }
5998
+ },
5999
+ "description": "Create a link (dependency) between two entities",
5636
6000
  "examples": [
5637
- "<%= config.bin %> <%= command.id %>",
5638
- "<%= config.bin %> <%= command.id %> --group function",
5639
- "<%= config.bin %> <%= command.id %> --json"
6001
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --type blocks # TKT-001 is blocked by TKT-002",
6002
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --type relates # TKT-001 relates to TKT-002",
6003
+ "<%= config.bin %> <%= command.id %> SPEC-001 SPEC-002 --type depends # SPEC-001 depends on SPEC-002",
6004
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 --type blocks # EPIC-001 is blocked by EPIC-002"
5640
6005
  ],
5641
6006
  "flags": {
5642
6007
  "project": {
@@ -5648,7 +6013,7 @@
5648
6013
  "type": "option"
5649
6014
  },
5650
6015
  "json": {
5651
- "description": "Output as JSON",
6016
+ "description": "Output as JSON for AI agents/scripts",
5652
6017
  "name": "json",
5653
6018
  "allowNo": false,
5654
6019
  "type": "boolean"
@@ -5660,18 +6025,25 @@
5660
6025
  "allowNo": false,
5661
6026
  "type": "boolean"
5662
6027
  },
5663
- "group": {
5664
- "char": "g",
5665
- "description": "Filter by group ID",
5666
- "name": "group",
6028
+ "type": {
6029
+ "char": "t",
6030
+ "description": "Link type",
6031
+ "name": "type",
6032
+ "required": true,
5667
6033
  "hasDynamicHelp": false,
5668
6034
  "multiple": false,
6035
+ "options": [
6036
+ "blocks",
6037
+ "relates",
6038
+ "duplicates",
6039
+ "depends"
6040
+ ],
5669
6041
  "type": "option"
5670
6042
  }
5671
6043
  },
5672
6044
  "hasDynamicHelp": false,
5673
6045
  "hiddenAliases": [],
5674
- "id": "label:list",
6046
+ "id": "link:create",
5675
6047
  "pluginAlias": "@proletariat/cli",
5676
6048
  "pluginName": "@proletariat/cli",
5677
6049
  "pluginType": "core",
@@ -5680,19 +6052,29 @@
5680
6052
  "relativePath": [
5681
6053
  "dist",
5682
6054
  "commands",
5683
- "label",
5684
- "list.js"
6055
+ "link",
6056
+ "create.js"
5685
6057
  ]
5686
6058
  },
5687
- "linear:auth": {
6059
+ "link": {
5688
6060
  "aliases": [],
5689
- "args": {},
5690
- "description": "Authenticate with Linear and configure workspace connection",
6061
+ "args": {
6062
+ "action": {
6063
+ "description": "Action to perform",
6064
+ "name": "action",
6065
+ "options": [
6066
+ "create",
6067
+ "list",
6068
+ "remove"
6069
+ ],
6070
+ "required": false
6071
+ }
6072
+ },
6073
+ "description": "Manage links (dependencies) between entities",
5691
6074
  "examples": [
5692
- "<%= config.bin %> <%= command.id %>",
5693
- "<%= config.bin %> <%= command.id %> --check",
5694
- "<%= config.bin %> <%= command.id %> --force",
5695
- "LINEAR_API_KEY=lin_api_... <%= config.bin %> <%= command.id %>"
6075
+ "<%= config.bin %> <%= command.id %> create TKT-001 TKT-002 --type blocks",
6076
+ "<%= config.bin %> <%= command.id %> list TKT-001",
6077
+ "<%= config.bin %> <%= command.id %> remove TKT-001 TKT-002"
5696
6078
  ],
5697
6079
  "flags": {
5698
6080
  "project": {
@@ -5715,29 +6097,11 @@
5715
6097
  "name": "machine",
5716
6098
  "allowNo": false,
5717
6099
  "type": "boolean"
5718
- },
5719
- "check": {
5720
- "description": "Only check if Linear credentials exist (do not prompt)",
5721
- "name": "check",
5722
- "allowNo": false,
5723
- "type": "boolean"
5724
- },
5725
- "force": {
5726
- "description": "Force re-authentication even if credentials exist",
5727
- "name": "force",
5728
- "allowNo": false,
5729
- "type": "boolean"
5730
- },
5731
- "disconnect": {
5732
- "description": "Remove stored Linear credentials",
5733
- "name": "disconnect",
5734
- "allowNo": false,
5735
- "type": "boolean"
5736
6100
  }
5737
6101
  },
5738
6102
  "hasDynamicHelp": false,
5739
6103
  "hiddenAliases": [],
5740
- "id": "linear:auth",
6104
+ "id": "link",
5741
6105
  "pluginAlias": "@proletariat/cli",
5742
6106
  "pluginName": "@proletariat/cli",
5743
6107
  "pluginType": "core",
@@ -5746,21 +6110,25 @@
5746
6110
  "relativePath": [
5747
6111
  "dist",
5748
6112
  "commands",
5749
- "linear",
5750
- "auth.js"
6113
+ "link",
6114
+ "index.js"
5751
6115
  ]
5752
6116
  },
5753
- "linear:import": {
6117
+ "link:list": {
5754
6118
  "aliases": [],
5755
- "args": {},
5756
- "description": "Import Linear issues into PMO as tickets",
6119
+ "args": {
6120
+ "id": {
6121
+ "description": "Entity ID (TKT-xxx, SPEC-xxx, or EPIC-xxx)",
6122
+ "name": "id",
6123
+ "required": true
6124
+ }
6125
+ },
6126
+ "description": "List all links (dependencies) for an entity",
5757
6127
  "examples": [
5758
- "<%= config.bin %> <%= command.id %> # Interactive: select team and issues",
5759
- "<%= config.bin %> <%= command.id %> ENG-123 ENG-124 # Import specific issues by identifier",
5760
- "<%= config.bin %> <%= command.id %> --team ENG # Import from a specific team",
5761
- "<%= config.bin %> <%= command.id %> --team ENG --state \"In Progress\" # Filter by state",
5762
- "<%= config.bin %> <%= command.id %> --team ENG --label bug # Filter by label",
5763
- "<%= config.bin %> <%= command.id %> --limit 20 --json # Import up to 20 issues, JSON output"
6128
+ "<%= config.bin %> <%= command.id %> TKT-001 # List ticket links",
6129
+ "<%= config.bin %> <%= command.id %> SPEC-001 # List spec links",
6130
+ "<%= config.bin %> <%= command.id %> EPIC-001 # List epic links",
6131
+ "<%= config.bin %> <%= command.id %> TKT-001 --all # Include reverse links"
5764
6132
  ],
5765
6133
  "flags": {
5766
6134
  "project": {
@@ -5784,102 +6152,48 @@
5784
6152
  "allowNo": false,
5785
6153
  "type": "boolean"
5786
6154
  },
5787
- "team": {
5788
- "char": "t",
5789
- "description": "Linear team key (e.g., ENG)",
5790
- "name": "team",
5791
- "hasDynamicHelp": false,
5792
- "multiple": false,
5793
- "type": "option"
5794
- },
5795
- "state": {
5796
- "description": "Filter by Linear state name (e.g., \"In Progress\", \"Backlog\")",
5797
- "name": "state",
5798
- "hasDynamicHelp": false,
5799
- "multiple": false,
5800
- "type": "option"
5801
- },
5802
- "state-type": {
5803
- "description": "Filter by Linear state type",
5804
- "name": "state-type",
5805
- "hasDynamicHelp": false,
5806
- "multiple": false,
5807
- "options": [
5808
- "triage",
5809
- "backlog",
5810
- "unstarted",
5811
- "started",
5812
- "completed",
5813
- "canceled"
5814
- ],
5815
- "type": "option"
5816
- },
5817
- "label": {
5818
- "description": "Filter by Linear label name",
5819
- "name": "label",
5820
- "hasDynamicHelp": false,
5821
- "multiple": false,
5822
- "type": "option"
5823
- },
5824
- "assignee": {
5825
- "description": "Filter by assignee name or \"me\"",
5826
- "name": "assignee",
5827
- "hasDynamicHelp": false,
5828
- "multiple": false,
5829
- "type": "option"
5830
- },
5831
- "cycle": {
5832
- "description": "Filter by cycle ID",
5833
- "name": "cycle",
5834
- "hasDynamicHelp": false,
5835
- "multiple": false,
5836
- "type": "option"
5837
- },
5838
- "limit": {
5839
- "char": "n",
5840
- "description": "Maximum number of issues to import",
5841
- "name": "limit",
5842
- "default": 50,
5843
- "hasDynamicHelp": false,
5844
- "multiple": false,
5845
- "type": "option"
5846
- },
5847
6155
  "all": {
5848
6156
  "char": "a",
5849
- "description": "Import all matching issues without interactive selection",
6157
+ "description": "Show all links including reverse dependencies (what blocks this, what this blocks)",
5850
6158
  "name": "all",
5851
6159
  "allowNo": false,
5852
6160
  "type": "boolean"
5853
- },
5854
- "dry-run": {
5855
- "description": "Preview issues that would be imported without creating tickets",
5856
- "name": "dry-run",
5857
- "allowNo": false,
5858
- "type": "boolean"
5859
6161
  }
5860
6162
  },
5861
6163
  "hasDynamicHelp": false,
5862
6164
  "hiddenAliases": [],
5863
- "id": "linear:import",
6165
+ "id": "link:list",
5864
6166
  "pluginAlias": "@proletariat/cli",
5865
6167
  "pluginName": "@proletariat/cli",
5866
6168
  "pluginType": "core",
5867
- "strict": false,
6169
+ "strict": true,
5868
6170
  "isESM": true,
5869
6171
  "relativePath": [
5870
6172
  "dist",
5871
6173
  "commands",
5872
- "linear",
5873
- "import.js"
6174
+ "link",
6175
+ "list.js"
5874
6176
  ]
5875
6177
  },
5876
- "linear:status": {
6178
+ "link:remove": {
5877
6179
  "aliases": [],
5878
- "args": {},
5879
- "description": "Show Linear integration status and connection info",
6180
+ "args": {
6181
+ "from": {
6182
+ "description": "Source entity ID (TKT-xxx, SPEC-xxx, or EPIC-xxx)",
6183
+ "name": "from",
6184
+ "required": true
6185
+ },
6186
+ "to": {
6187
+ "description": "Target entity ID",
6188
+ "name": "to",
6189
+ "required": true
6190
+ }
6191
+ },
6192
+ "description": "Remove a link (dependency) between two entities",
5880
6193
  "examples": [
5881
- "<%= config.bin %> <%= command.id %>",
5882
- "<%= config.bin %> <%= command.id %> --json"
6194
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 # Remove link between tickets",
6195
+ "<%= config.bin %> <%= command.id %> SPEC-001 SPEC-002 # Remove link between specs",
6196
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 # Remove link between epics"
5883
6197
  ],
5884
6198
  "flags": {
5885
6199
  "project": {
@@ -5902,11 +6216,25 @@
5902
6216
  "name": "machine",
5903
6217
  "allowNo": false,
5904
6218
  "type": "boolean"
6219
+ },
6220
+ "type": {
6221
+ "char": "t",
6222
+ "description": "Link type to remove (if not specified, removes any link)",
6223
+ "name": "type",
6224
+ "hasDynamicHelp": false,
6225
+ "multiple": false,
6226
+ "options": [
6227
+ "blocks",
6228
+ "relates",
6229
+ "duplicates",
6230
+ "depends"
6231
+ ],
6232
+ "type": "option"
5905
6233
  }
5906
6234
  },
5907
6235
  "hasDynamicHelp": false,
5908
6236
  "hiddenAliases": [],
5909
- "id": "linear:status",
6237
+ "id": "link:remove",
5910
6238
  "pluginAlias": "@proletariat/cli",
5911
6239
  "pluginName": "@proletariat/cli",
5912
6240
  "pluginType": "core",
@@ -5915,19 +6243,24 @@
5915
6243
  "relativePath": [
5916
6244
  "dist",
5917
6245
  "commands",
5918
- "linear",
5919
- "status.js"
6246
+ "link",
6247
+ "remove.js"
5920
6248
  ]
5921
6249
  },
5922
- "linear:sync": {
6250
+ "label:create": {
5923
6251
  "aliases": [],
5924
- "args": {},
5925
- "description": "Sync PMO ticket status and PR links back to Linear",
6252
+ "args": {
6253
+ "name": {
6254
+ "description": "Label name",
6255
+ "name": "name",
6256
+ "required": true
6257
+ }
6258
+ },
6259
+ "description": "Create a new label",
5926
6260
  "examples": [
5927
- "<%= config.bin %> <%= command.id %> # Sync all mapped tickets",
5928
- "<%= config.bin %> <%= command.id %> --ticket TKT-001 # Sync a specific ticket",
5929
- "<%= config.bin %> <%= command.id %> --pr-url https://github.com/... --ticket TKT-001 # Attach PR to Linear issue",
5930
- "<%= config.bin %> <%= command.id %> --dry-run # Preview what would be synced"
6261
+ "<%= config.bin %> <%= command.id %> my-label",
6262
+ "<%= config.bin %> <%= command.id %> urgent --color \"#ff0000\" --group type",
6263
+ "<%= config.bin %> <%= command.id %> frontend --group area --description \"Frontend work\""
5931
6264
  ],
5932
6265
  "flags": {
5933
6266
  "project": {
@@ -5951,37 +6284,34 @@
5951
6284
  "allowNo": false,
5952
6285
  "type": "boolean"
5953
6286
  },
5954
- "ticket": {
5955
- "description": "PMO ticket ID to sync (syncs all if omitted)",
5956
- "name": "ticket",
6287
+ "color": {
6288
+ "char": "c",
6289
+ "description": "Label color (hex, e.g. #ff0000)",
6290
+ "name": "color",
5957
6291
  "hasDynamicHelp": false,
5958
6292
  "multiple": false,
5959
6293
  "type": "option"
5960
6294
  },
5961
- "pr-url": {
5962
- "description": "PR URL to attach to the Linear issue",
5963
- "name": "pr-url",
6295
+ "description": {
6296
+ "char": "d",
6297
+ "description": "Label description",
6298
+ "name": "description",
5964
6299
  "hasDynamicHelp": false,
5965
6300
  "multiple": false,
5966
6301
  "type": "option"
5967
6302
  },
5968
- "pr-title": {
5969
- "description": "PR title for the attachment (defaults to ticket title)",
5970
- "name": "pr-title",
6303
+ "group": {
6304
+ "char": "g",
6305
+ "description": "Label group ID to add this label to",
6306
+ "name": "group",
5971
6307
  "hasDynamicHelp": false,
5972
6308
  "multiple": false,
5973
6309
  "type": "option"
5974
- },
5975
- "dry-run": {
5976
- "description": "Preview what would be synced without making changes",
5977
- "name": "dry-run",
5978
- "allowNo": false,
5979
- "type": "boolean"
5980
6310
  }
5981
6311
  },
5982
6312
  "hasDynamicHelp": false,
5983
6313
  "hiddenAliases": [],
5984
- "id": "linear:sync",
6314
+ "id": "label:create",
5985
6315
  "pluginAlias": "@proletariat/cli",
5986
6316
  "pluginName": "@proletariat/cli",
5987
6317
  "pluginType": "core",
@@ -5990,30 +6320,22 @@
5990
6320
  "relativePath": [
5991
6321
  "dist",
5992
6322
  "commands",
5993
- "linear",
5994
- "sync.js"
6323
+ "label",
6324
+ "create.js"
5995
6325
  ]
5996
6326
  },
5997
- "link:create": {
6327
+ "label:delete": {
5998
6328
  "aliases": [],
5999
6329
  "args": {
6000
- "from": {
6001
- "description": "Source entity ID (TKT-xxx, SPEC-xxx, or EPIC-xxx)",
6002
- "name": "from",
6003
- "required": true
6004
- },
6005
- "to": {
6006
- "description": "Target entity ID",
6007
- "name": "to",
6330
+ "id": {
6331
+ "description": "Label ID to delete",
6332
+ "name": "id",
6008
6333
  "required": true
6009
6334
  }
6010
6335
  },
6011
- "description": "Create a link (dependency) between two entities",
6336
+ "description": "Delete a label (removes from all tickets)",
6012
6337
  "examples": [
6013
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --type blocks # TKT-001 is blocked by TKT-002",
6014
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --type relates # TKT-001 relates to TKT-002",
6015
- "<%= config.bin %> <%= command.id %> SPEC-001 SPEC-002 --type depends # SPEC-001 depends on SPEC-002",
6016
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 --type blocks # EPIC-001 is blocked by EPIC-002"
6338
+ "<%= config.bin %> <%= command.id %> my-label"
6017
6339
  ],
6018
6340
  "flags": {
6019
6341
  "project": {
@@ -6036,26 +6358,11 @@
6036
6358
  "name": "machine",
6037
6359
  "allowNo": false,
6038
6360
  "type": "boolean"
6039
- },
6040
- "type": {
6041
- "char": "t",
6042
- "description": "Link type",
6043
- "name": "type",
6044
- "required": true,
6045
- "hasDynamicHelp": false,
6046
- "multiple": false,
6047
- "options": [
6048
- "blocks",
6049
- "relates",
6050
- "duplicates",
6051
- "depends"
6052
- ],
6053
- "type": "option"
6054
6361
  }
6055
6362
  },
6056
6363
  "hasDynamicHelp": false,
6057
6364
  "hiddenAliases": [],
6058
- "id": "link:create",
6365
+ "id": "label:delete",
6059
6366
  "pluginAlias": "@proletariat/cli",
6060
6367
  "pluginName": "@proletariat/cli",
6061
6368
  "pluginType": "core",
@@ -6064,29 +6371,21 @@
6064
6371
  "relativePath": [
6065
6372
  "dist",
6066
6373
  "commands",
6067
- "link",
6068
- "create.js"
6374
+ "label",
6375
+ "delete.js"
6069
6376
  ]
6070
6377
  },
6071
- "link": {
6072
- "aliases": [],
6073
- "args": {
6074
- "action": {
6075
- "description": "Action to perform",
6076
- "name": "action",
6077
- "options": [
6078
- "create",
6079
- "list",
6080
- "remove"
6081
- ],
6082
- "required": false
6083
- }
6084
- },
6085
- "description": "Manage links (dependencies) between entities",
6378
+ "label": {
6379
+ "aliases": [
6380
+ "labels"
6381
+ ],
6382
+ "args": {},
6383
+ "description": "Manage labels and label groups",
6086
6384
  "examples": [
6087
- "<%= config.bin %> <%= command.id %> create TKT-001 TKT-002 --type blocks",
6088
- "<%= config.bin %> <%= command.id %> list TKT-001",
6089
- "<%= config.bin %> <%= command.id %> remove TKT-001 TKT-002"
6385
+ "<%= config.bin %> <%= command.id %>",
6386
+ "<%= config.bin %> label list",
6387
+ "<%= config.bin %> label create my-label",
6388
+ "<%= config.bin %> label group list"
6090
6389
  ],
6091
6390
  "flags": {
6092
6391
  "project": {
@@ -6113,7 +6412,7 @@
6113
6412
  },
6114
6413
  "hasDynamicHelp": false,
6115
6414
  "hiddenAliases": [],
6116
- "id": "link",
6415
+ "id": "label",
6117
6416
  "pluginAlias": "@proletariat/cli",
6118
6417
  "pluginName": "@proletariat/cli",
6119
6418
  "pluginType": "core",
@@ -6122,25 +6421,74 @@
6122
6421
  "relativePath": [
6123
6422
  "dist",
6124
6423
  "commands",
6125
- "link",
6424
+ "label",
6126
6425
  "index.js"
6127
6426
  ]
6128
6427
  },
6129
- "link:list": {
6428
+ "label:list": {
6130
6429
  "aliases": [],
6131
- "args": {
6132
- "id": {
6133
- "description": "Entity ID (TKT-xxx, SPEC-xxx, or EPIC-xxx)",
6134
- "name": "id",
6135
- "required": true
6430
+ "args": {},
6431
+ "description": "List labels, optionally filtered by group",
6432
+ "examples": [
6433
+ "<%= config.bin %> <%= command.id %>",
6434
+ "<%= config.bin %> <%= command.id %> --group function",
6435
+ "<%= config.bin %> <%= command.id %> --json"
6436
+ ],
6437
+ "flags": {
6438
+ "project": {
6439
+ "char": "P",
6440
+ "description": "Project ID (uses first project if only one exists)",
6441
+ "name": "project",
6442
+ "hasDynamicHelp": false,
6443
+ "multiple": false,
6444
+ "type": "option"
6445
+ },
6446
+ "json": {
6447
+ "description": "Output as JSON",
6448
+ "name": "json",
6449
+ "allowNo": false,
6450
+ "type": "boolean"
6451
+ },
6452
+ "machine": {
6453
+ "char": "m",
6454
+ "description": "Output as JSON for AI agents/scripts",
6455
+ "name": "machine",
6456
+ "allowNo": false,
6457
+ "type": "boolean"
6458
+ },
6459
+ "group": {
6460
+ "char": "g",
6461
+ "description": "Filter by group ID",
6462
+ "name": "group",
6463
+ "hasDynamicHelp": false,
6464
+ "multiple": false,
6465
+ "type": "option"
6136
6466
  }
6137
6467
  },
6138
- "description": "List all links (dependencies) for an entity",
6468
+ "hasDynamicHelp": false,
6469
+ "hiddenAliases": [],
6470
+ "id": "label:list",
6471
+ "pluginAlias": "@proletariat/cli",
6472
+ "pluginName": "@proletariat/cli",
6473
+ "pluginType": "core",
6474
+ "strict": true,
6475
+ "isESM": true,
6476
+ "relativePath": [
6477
+ "dist",
6478
+ "commands",
6479
+ "label",
6480
+ "list.js"
6481
+ ]
6482
+ },
6483
+ "monday:connect": {
6484
+ "aliases": [],
6485
+ "args": {},
6486
+ "description": "Connect PRLT to Monday.com and store workspace credentials",
6139
6487
  "examples": [
6140
- "<%= config.bin %> <%= command.id %> TKT-001 # List ticket links",
6141
- "<%= config.bin %> <%= command.id %> SPEC-001 # List spec links",
6142
- "<%= config.bin %> <%= command.id %> EPIC-001 # List epic links",
6143
- "<%= config.bin %> <%= command.id %> TKT-001 --all # Include reverse links"
6488
+ "<%= config.bin %> <%= command.id %>",
6489
+ "<%= config.bin %> <%= command.id %> --board 1234567890",
6490
+ "<%= config.bin %> <%= command.id %> --check",
6491
+ "<%= config.bin %> <%= command.id %> --disconnect"
6144
6492
  ],
6145
6493
  "flags": {
6146
6494
  "project": {
@@ -6164,17 +6512,35 @@
6164
6512
  "allowNo": false,
6165
6513
  "type": "boolean"
6166
6514
  },
6167
- "all": {
6168
- "char": "a",
6169
- "description": "Show all links including reverse dependencies (what blocks this, what this blocks)",
6170
- "name": "all",
6515
+ "board": {
6516
+ "description": "Monday board ID to sync tickets to",
6517
+ "name": "board",
6518
+ "hasDynamicHelp": false,
6519
+ "multiple": false,
6520
+ "type": "option"
6521
+ },
6522
+ "check": {
6523
+ "description": "Only check if Monday configuration is valid",
6524
+ "name": "check",
6525
+ "allowNo": false,
6526
+ "type": "boolean"
6527
+ },
6528
+ "force": {
6529
+ "description": "Force re-authentication even if already configured",
6530
+ "name": "force",
6531
+ "allowNo": false,
6532
+ "type": "boolean"
6533
+ },
6534
+ "disconnect": {
6535
+ "description": "Remove stored Monday credentials",
6536
+ "name": "disconnect",
6171
6537
  "allowNo": false,
6172
6538
  "type": "boolean"
6173
6539
  }
6174
6540
  },
6175
6541
  "hasDynamicHelp": false,
6176
6542
  "hiddenAliases": [],
6177
- "id": "link:list",
6543
+ "id": "monday:connect",
6178
6544
  "pluginAlias": "@proletariat/cli",
6179
6545
  "pluginName": "@proletariat/cli",
6180
6546
  "pluginType": "core",
@@ -6183,29 +6549,18 @@
6183
6549
  "relativePath": [
6184
6550
  "dist",
6185
6551
  "commands",
6186
- "link",
6187
- "list.js"
6552
+ "monday",
6553
+ "connect.js"
6188
6554
  ]
6189
6555
  },
6190
- "link:remove": {
6556
+ "monday:sync": {
6191
6557
  "aliases": [],
6192
- "args": {
6193
- "from": {
6194
- "description": "Source entity ID (TKT-xxx, SPEC-xxx, or EPIC-xxx)",
6195
- "name": "from",
6196
- "required": true
6197
- },
6198
- "to": {
6199
- "description": "Target entity ID",
6200
- "name": "to",
6201
- "required": true
6202
- }
6203
- },
6204
- "description": "Remove a link (dependency) between two entities",
6558
+ "args": {},
6559
+ "description": "Sync PMO tickets to Monday.com board items",
6205
6560
  "examples": [
6206
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 # Remove link between tickets",
6207
- "<%= config.bin %> <%= command.id %> SPEC-001 SPEC-002 # Remove link between specs",
6208
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 # Remove link between epics"
6561
+ "<%= config.bin %> <%= command.id %> # Sync project tickets to Monday board",
6562
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 # Sync one ticket",
6563
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview sync operations"
6209
6564
  ],
6210
6565
  "flags": {
6211
6566
  "project": {
@@ -6229,24 +6584,23 @@
6229
6584
  "allowNo": false,
6230
6585
  "type": "boolean"
6231
6586
  },
6232
- "type": {
6233
- "char": "t",
6234
- "description": "Link type to remove (if not specified, removes any link)",
6235
- "name": "type",
6587
+ "ticket": {
6588
+ "description": "PMO ticket ID to sync",
6589
+ "name": "ticket",
6236
6590
  "hasDynamicHelp": false,
6237
6591
  "multiple": false,
6238
- "options": [
6239
- "blocks",
6240
- "relates",
6241
- "duplicates",
6242
- "depends"
6243
- ],
6244
6592
  "type": "option"
6593
+ },
6594
+ "dry-run": {
6595
+ "description": "Preview what would be synced without writing to Monday",
6596
+ "name": "dry-run",
6597
+ "allowNo": false,
6598
+ "type": "boolean"
6245
6599
  }
6246
6600
  },
6247
6601
  "hasDynamicHelp": false,
6248
6602
  "hiddenAliases": [],
6249
- "id": "link:remove",
6603
+ "id": "monday:sync",
6250
6604
  "pluginAlias": "@proletariat/cli",
6251
6605
  "pluginName": "@proletariat/cli",
6252
6606
  "pluginType": "core",
@@ -6255,8 +6609,8 @@
6255
6609
  "relativePath": [
6256
6610
  "dist",
6257
6611
  "commands",
6258
- "link",
6259
- "remove.js"
6612
+ "monday",
6613
+ "sync.js"
6260
6614
  ]
6261
6615
  },
6262
6616
  "orchestrator:attach": {
@@ -9829,8 +10183,226 @@
9829
10183
  "relativePath": [
9830
10184
  "dist",
9831
10185
  "commands",
9832
- "session",
9833
- "poke.js"
10186
+ "session",
10187
+ "poke.js"
10188
+ ]
10189
+ },
10190
+ "staff:add": {
10191
+ "aliases": [],
10192
+ "args": {
10193
+ "names": {
10194
+ "description": "Agent names to add (space-separated)",
10195
+ "name": "names",
10196
+ "required": false
10197
+ }
10198
+ },
10199
+ "description": "Add new agents to the workspace",
10200
+ "examples": [
10201
+ "<%= config.bin %> <%= command.id %> zeus",
10202
+ "<%= config.bin %> <%= command.id %> agent-1 agent-2",
10203
+ "<%= config.bin %> <%= command.id %> --theme billionaires",
10204
+ "<%= config.bin %> <%= command.id %> my-agent --no-container"
10205
+ ],
10206
+ "flags": {
10207
+ "no-container": {
10208
+ "description": "Skip devcontainer setup (not recommended for autonomous agents)",
10209
+ "name": "no-container",
10210
+ "allowNo": false,
10211
+ "type": "boolean"
10212
+ },
10213
+ "theme": {
10214
+ "char": "t",
10215
+ "description": "Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)",
10216
+ "name": "theme",
10217
+ "hasDynamicHelp": false,
10218
+ "multiple": false,
10219
+ "type": "option"
10220
+ },
10221
+ "json": {
10222
+ "description": "Output as JSON for AI agents/scripts",
10223
+ "name": "json",
10224
+ "allowNo": false,
10225
+ "type": "boolean"
10226
+ },
10227
+ "machine": {
10228
+ "char": "m",
10229
+ "description": "Output as JSON for AI agents/scripts",
10230
+ "name": "machine",
10231
+ "allowNo": false,
10232
+ "type": "boolean"
10233
+ },
10234
+ "clone": {
10235
+ "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
10236
+ "name": "clone",
10237
+ "allowNo": false,
10238
+ "type": "boolean"
10239
+ }
10240
+ },
10241
+ "hasDynamicHelp": false,
10242
+ "hiddenAliases": [],
10243
+ "id": "staff:add",
10244
+ "pluginAlias": "@proletariat/cli",
10245
+ "pluginName": "@proletariat/cli",
10246
+ "pluginType": "core",
10247
+ "strict": false,
10248
+ "isESM": true,
10249
+ "relativePath": [
10250
+ "dist",
10251
+ "commands",
10252
+ "agent",
10253
+ "staff",
10254
+ "add.js"
10255
+ ]
10256
+ },
10257
+ "staff": {
10258
+ "aliases": [],
10259
+ "args": {},
10260
+ "description": "Manage staff (persistent) agents",
10261
+ "examples": [
10262
+ "<%= config.bin %> <%= command.id %> list",
10263
+ "<%= config.bin %> <%= command.id %> add",
10264
+ "<%= config.bin %> <%= command.id %> remove camry"
10265
+ ],
10266
+ "flags": {
10267
+ "project": {
10268
+ "char": "P",
10269
+ "description": "Project ID (uses first project if only one exists)",
10270
+ "name": "project",
10271
+ "hasDynamicHelp": false,
10272
+ "multiple": false,
10273
+ "type": "option"
10274
+ },
10275
+ "json": {
10276
+ "description": "Output as JSON for AI agents/scripts",
10277
+ "name": "json",
10278
+ "allowNo": false,
10279
+ "type": "boolean"
10280
+ },
10281
+ "machine": {
10282
+ "char": "m",
10283
+ "description": "Output as JSON for AI agents/scripts",
10284
+ "name": "machine",
10285
+ "allowNo": false,
10286
+ "type": "boolean"
10287
+ },
10288
+ "no-interactive": {
10289
+ "description": "Alias for --json flag",
10290
+ "name": "no-interactive",
10291
+ "allowNo": false,
10292
+ "type": "boolean"
10293
+ }
10294
+ },
10295
+ "hasDynamicHelp": false,
10296
+ "hiddenAliases": [],
10297
+ "id": "staff",
10298
+ "pluginAlias": "@proletariat/cli",
10299
+ "pluginName": "@proletariat/cli",
10300
+ "pluginType": "core",
10301
+ "strict": true,
10302
+ "isESM": true,
10303
+ "relativePath": [
10304
+ "dist",
10305
+ "commands",
10306
+ "staff",
10307
+ "index.js"
10308
+ ]
10309
+ },
10310
+ "staff:list": {
10311
+ "aliases": [],
10312
+ "args": {},
10313
+ "description": "List all staff (persistent) agents and their status",
10314
+ "examples": [
10315
+ "<%= config.bin %> <%= command.id %>"
10316
+ ],
10317
+ "flags": {
10318
+ "json": {
10319
+ "description": "Output as JSON for AI agents/scripts",
10320
+ "name": "json",
10321
+ "allowNo": false,
10322
+ "type": "boolean"
10323
+ },
10324
+ "machine": {
10325
+ "char": "m",
10326
+ "description": "Output as JSON for AI agents/scripts",
10327
+ "name": "machine",
10328
+ "allowNo": false,
10329
+ "type": "boolean"
10330
+ }
10331
+ },
10332
+ "hasDynamicHelp": false,
10333
+ "hiddenAliases": [],
10334
+ "id": "staff:list",
10335
+ "pluginAlias": "@proletariat/cli",
10336
+ "pluginName": "@proletariat/cli",
10337
+ "pluginType": "core",
10338
+ "strict": true,
10339
+ "enableJsonFlag": false,
10340
+ "isESM": true,
10341
+ "relativePath": [
10342
+ "dist",
10343
+ "commands",
10344
+ "staff",
10345
+ "list.js"
10346
+ ]
10347
+ },
10348
+ "staff:remove": {
10349
+ "aliases": [],
10350
+ "args": {
10351
+ "name": {
10352
+ "description": "Agent name to remove",
10353
+ "name": "name",
10354
+ "required": false
10355
+ }
10356
+ },
10357
+ "description": "Remove a specific agent from the workspace",
10358
+ "examples": [
10359
+ "<%= config.bin %> <%= command.id %> camry",
10360
+ "<%= config.bin %> <%= command.id %>"
10361
+ ],
10362
+ "flags": {
10363
+ "project": {
10364
+ "char": "P",
10365
+ "description": "Project ID (uses first project if only one exists)",
10366
+ "name": "project",
10367
+ "hasDynamicHelp": false,
10368
+ "multiple": false,
10369
+ "type": "option"
10370
+ },
10371
+ "json": {
10372
+ "description": "Output as JSON for AI agents/scripts",
10373
+ "name": "json",
10374
+ "allowNo": false,
10375
+ "type": "boolean"
10376
+ },
10377
+ "machine": {
10378
+ "char": "m",
10379
+ "description": "Output as JSON for AI agents/scripts",
10380
+ "name": "machine",
10381
+ "allowNo": false,
10382
+ "type": "boolean"
10383
+ },
10384
+ "force": {
10385
+ "char": "f",
10386
+ "description": "Skip confirmation prompt (for non-interactive use)",
10387
+ "name": "force",
10388
+ "allowNo": false,
10389
+ "type": "boolean"
10390
+ }
10391
+ },
10392
+ "hasDynamicHelp": false,
10393
+ "hiddenAliases": [],
10394
+ "id": "staff:remove",
10395
+ "pluginAlias": "@proletariat/cli",
10396
+ "pluginName": "@proletariat/cli",
10397
+ "pluginType": "core",
10398
+ "strict": true,
10399
+ "isESM": true,
10400
+ "relativePath": [
10401
+ "dist",
10402
+ "commands",
10403
+ "agent",
10404
+ "staff",
10405
+ "remove.js"
9834
10406
  ]
9835
10407
  },
9836
10408
  "spec:create": {
@@ -10332,261 +10904,21 @@
10332
10904
  "name": "specId",
10333
10905
  "required": false
10334
10906
  }
10335
- },
10336
- "description": "Assign a ticket to a spec document",
10337
- "examples": [
10338
- "<%= config.bin %> <%= command.id %> PRLT-001 user-authentication",
10339
- "<%= config.bin %> <%= command.id %> --ticket PRLT-001 --spec api-design"
10340
- ],
10341
- "flags": {
10342
- "project": {
10343
- "char": "P",
10344
- "description": "Project ID (uses first project if only one exists)",
10345
- "name": "project",
10346
- "hasDynamicHelp": false,
10347
- "multiple": false,
10348
- "type": "option"
10349
- },
10350
- "json": {
10351
- "description": "Output as JSON for AI agents/scripts",
10352
- "name": "json",
10353
- "allowNo": false,
10354
- "type": "boolean"
10355
- },
10356
- "machine": {
10357
- "char": "m",
10358
- "description": "Output as JSON for AI agents/scripts",
10359
- "name": "machine",
10360
- "allowNo": false,
10361
- "type": "boolean"
10362
- },
10363
- "ticket": {
10364
- "char": "t",
10365
- "description": "Ticket ID",
10366
- "name": "ticket",
10367
- "hasDynamicHelp": false,
10368
- "multiple": false,
10369
- "type": "option"
10370
- },
10371
- "spec": {
10372
- "char": "s",
10373
- "description": "Spec ID (filename without .md)",
10374
- "name": "spec",
10375
- "hasDynamicHelp": false,
10376
- "multiple": false,
10377
- "type": "option"
10378
- }
10379
- },
10380
- "hasDynamicHelp": false,
10381
- "hiddenAliases": [],
10382
- "id": "spec:ticket",
10383
- "pluginAlias": "@proletariat/cli",
10384
- "pluginName": "@proletariat/cli",
10385
- "pluginType": "core",
10386
- "strict": true,
10387
- "isESM": true,
10388
- "relativePath": [
10389
- "dist",
10390
- "commands",
10391
- "spec",
10392
- "ticket.js"
10393
- ]
10394
- },
10395
- "spec:view": {
10396
- "aliases": [],
10397
- "args": {
10398
- "spec": {
10399
- "description": "Spec ID",
10400
- "name": "spec",
10401
- "required": false
10402
- }
10403
- },
10404
- "description": "View a spec and its linked tickets",
10405
- "examples": [
10406
- "<%= config.bin %> <%= command.id %> user-authentication",
10407
- "<%= config.bin %> <%= command.id %> --spec api-design"
10408
- ],
10409
- "flags": {
10410
- "project": {
10411
- "char": "P",
10412
- "description": "Project ID (uses first project if only one exists)",
10413
- "name": "project",
10414
- "hasDynamicHelp": false,
10415
- "multiple": false,
10416
- "type": "option"
10417
- },
10418
- "json": {
10419
- "description": "Output as JSON for AI agents/scripts",
10420
- "name": "json",
10421
- "allowNo": false,
10422
- "type": "boolean"
10423
- },
10424
- "machine": {
10425
- "char": "m",
10426
- "description": "Output as JSON for AI agents/scripts",
10427
- "name": "machine",
10428
- "allowNo": false,
10429
- "type": "boolean"
10430
- },
10431
- "spec": {
10432
- "char": "s",
10433
- "description": "Spec ID",
10434
- "name": "spec",
10435
- "hasDynamicHelp": false,
10436
- "multiple": false,
10437
- "type": "option"
10438
- },
10439
- "full": {
10440
- "char": "f",
10441
- "description": "Show all spec sections",
10442
- "name": "full",
10443
- "allowNo": false,
10444
- "type": "boolean"
10445
- }
10446
- },
10447
- "hasDynamicHelp": false,
10448
- "hiddenAliases": [],
10449
- "id": "spec:view",
10450
- "pluginAlias": "@proletariat/cli",
10451
- "pluginName": "@proletariat/cli",
10452
- "pluginType": "core",
10453
- "strict": true,
10454
- "isESM": true,
10455
- "relativePath": [
10456
- "dist",
10457
- "commands",
10458
- "spec",
10459
- "view.js"
10460
- ]
10461
- },
10462
- "staff:add": {
10463
- "aliases": [],
10464
- "args": {
10465
- "names": {
10466
- "description": "Agent names to add (space-separated)",
10467
- "name": "names",
10468
- "required": false
10469
- }
10470
- },
10471
- "description": "Add new agents to the workspace",
10472
- "examples": [
10473
- "<%= config.bin %> <%= command.id %> zeus",
10474
- "<%= config.bin %> <%= command.id %> agent-1 agent-2",
10475
- "<%= config.bin %> <%= command.id %> --theme billionaires",
10476
- "<%= config.bin %> <%= command.id %> my-agent --no-container"
10477
- ],
10478
- "flags": {
10479
- "no-container": {
10480
- "description": "Skip devcontainer setup (not recommended for autonomous agents)",
10481
- "name": "no-container",
10482
- "allowNo": false,
10483
- "type": "boolean"
10484
- },
10485
- "theme": {
10486
- "char": "t",
10487
- "description": "Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)",
10488
- "name": "theme",
10489
- "hasDynamicHelp": false,
10490
- "multiple": false,
10491
- "type": "option"
10492
- },
10493
- "json": {
10494
- "description": "Output as JSON for AI agents/scripts",
10495
- "name": "json",
10496
- "allowNo": false,
10497
- "type": "boolean"
10498
- },
10499
- "machine": {
10500
- "char": "m",
10501
- "description": "Output as JSON for AI agents/scripts",
10502
- "name": "machine",
10503
- "allowNo": false,
10504
- "type": "boolean"
10505
- },
10506
- "clone": {
10507
- "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
10508
- "name": "clone",
10509
- "allowNo": false,
10510
- "type": "boolean"
10511
- }
10512
- },
10513
- "hasDynamicHelp": false,
10514
- "hiddenAliases": [],
10515
- "id": "staff:add",
10516
- "pluginAlias": "@proletariat/cli",
10517
- "pluginName": "@proletariat/cli",
10518
- "pluginType": "core",
10519
- "strict": false,
10520
- "isESM": true,
10521
- "relativePath": [
10522
- "dist",
10523
- "commands",
10524
- "agent",
10525
- "staff",
10526
- "add.js"
10527
- ]
10528
- },
10529
- "staff": {
10530
- "aliases": [],
10531
- "args": {},
10532
- "description": "Manage staff (persistent) agents",
10533
- "examples": [
10534
- "<%= config.bin %> <%= command.id %> list",
10535
- "<%= config.bin %> <%= command.id %> add",
10536
- "<%= config.bin %> <%= command.id %> remove camry"
10537
- ],
10538
- "flags": {
10539
- "project": {
10540
- "char": "P",
10541
- "description": "Project ID (uses first project if only one exists)",
10542
- "name": "project",
10543
- "hasDynamicHelp": false,
10544
- "multiple": false,
10545
- "type": "option"
10546
- },
10547
- "json": {
10548
- "description": "Output as JSON for AI agents/scripts",
10549
- "name": "json",
10550
- "allowNo": false,
10551
- "type": "boolean"
10552
- },
10553
- "machine": {
10554
- "char": "m",
10555
- "description": "Output as JSON for AI agents/scripts",
10556
- "name": "machine",
10557
- "allowNo": false,
10558
- "type": "boolean"
10559
- },
10560
- "no-interactive": {
10561
- "description": "Alias for --json flag",
10562
- "name": "no-interactive",
10563
- "allowNo": false,
10564
- "type": "boolean"
10565
- }
10566
- },
10567
- "hasDynamicHelp": false,
10568
- "hiddenAliases": [],
10569
- "id": "staff",
10570
- "pluginAlias": "@proletariat/cli",
10571
- "pluginName": "@proletariat/cli",
10572
- "pluginType": "core",
10573
- "strict": true,
10574
- "isESM": true,
10575
- "relativePath": [
10576
- "dist",
10577
- "commands",
10578
- "staff",
10579
- "index.js"
10580
- ]
10581
- },
10582
- "staff:list": {
10583
- "aliases": [],
10584
- "args": {},
10585
- "description": "List all staff (persistent) agents and their status",
10907
+ },
10908
+ "description": "Assign a ticket to a spec document",
10586
10909
  "examples": [
10587
- "<%= config.bin %> <%= command.id %>"
10910
+ "<%= config.bin %> <%= command.id %> PRLT-001 user-authentication",
10911
+ "<%= config.bin %> <%= command.id %> --ticket PRLT-001 --spec api-design"
10588
10912
  ],
10589
10913
  "flags": {
10914
+ "project": {
10915
+ "char": "P",
10916
+ "description": "Project ID (uses first project if only one exists)",
10917
+ "name": "project",
10918
+ "hasDynamicHelp": false,
10919
+ "multiple": false,
10920
+ "type": "option"
10921
+ },
10590
10922
  "json": {
10591
10923
  "description": "Output as JSON for AI agents/scripts",
10592
10924
  "name": "json",
@@ -10599,37 +10931,52 @@
10599
10931
  "name": "machine",
10600
10932
  "allowNo": false,
10601
10933
  "type": "boolean"
10934
+ },
10935
+ "ticket": {
10936
+ "char": "t",
10937
+ "description": "Ticket ID",
10938
+ "name": "ticket",
10939
+ "hasDynamicHelp": false,
10940
+ "multiple": false,
10941
+ "type": "option"
10942
+ },
10943
+ "spec": {
10944
+ "char": "s",
10945
+ "description": "Spec ID (filename without .md)",
10946
+ "name": "spec",
10947
+ "hasDynamicHelp": false,
10948
+ "multiple": false,
10949
+ "type": "option"
10602
10950
  }
10603
10951
  },
10604
10952
  "hasDynamicHelp": false,
10605
10953
  "hiddenAliases": [],
10606
- "id": "staff:list",
10954
+ "id": "spec:ticket",
10607
10955
  "pluginAlias": "@proletariat/cli",
10608
10956
  "pluginName": "@proletariat/cli",
10609
10957
  "pluginType": "core",
10610
10958
  "strict": true,
10611
- "enableJsonFlag": false,
10612
10959
  "isESM": true,
10613
10960
  "relativePath": [
10614
10961
  "dist",
10615
10962
  "commands",
10616
- "staff",
10617
- "list.js"
10963
+ "spec",
10964
+ "ticket.js"
10618
10965
  ]
10619
10966
  },
10620
- "staff:remove": {
10967
+ "spec:view": {
10621
10968
  "aliases": [],
10622
10969
  "args": {
10623
- "name": {
10624
- "description": "Agent name to remove",
10625
- "name": "name",
10970
+ "spec": {
10971
+ "description": "Spec ID",
10972
+ "name": "spec",
10626
10973
  "required": false
10627
10974
  }
10628
10975
  },
10629
- "description": "Remove a specific agent from the workspace",
10976
+ "description": "View a spec and its linked tickets",
10630
10977
  "examples": [
10631
- "<%= config.bin %> <%= command.id %> camry",
10632
- "<%= config.bin %> <%= command.id %>"
10978
+ "<%= config.bin %> <%= command.id %> user-authentication",
10979
+ "<%= config.bin %> <%= command.id %> --spec api-design"
10633
10980
  ],
10634
10981
  "flags": {
10635
10982
  "project": {
@@ -10653,17 +11000,25 @@
10653
11000
  "allowNo": false,
10654
11001
  "type": "boolean"
10655
11002
  },
10656
- "force": {
11003
+ "spec": {
11004
+ "char": "s",
11005
+ "description": "Spec ID",
11006
+ "name": "spec",
11007
+ "hasDynamicHelp": false,
11008
+ "multiple": false,
11009
+ "type": "option"
11010
+ },
11011
+ "full": {
10657
11012
  "char": "f",
10658
- "description": "Skip confirmation prompt (for non-interactive use)",
10659
- "name": "force",
11013
+ "description": "Show all spec sections",
11014
+ "name": "full",
10660
11015
  "allowNo": false,
10661
11016
  "type": "boolean"
10662
11017
  }
10663
11018
  },
10664
11019
  "hasDynamicHelp": false,
10665
11020
  "hiddenAliases": [],
10666
- "id": "staff:remove",
11021
+ "id": "spec:view",
10667
11022
  "pluginAlias": "@proletariat/cli",
10668
11023
  "pluginName": "@proletariat/cli",
10669
11024
  "pluginType": "core",
@@ -10672,9 +11027,8 @@
10672
11027
  "relativePath": [
10673
11028
  "dist",
10674
11029
  "commands",
10675
- "agent",
10676
- "staff",
10677
- "remove.js"
11030
+ "spec",
11031
+ "view.js"
10678
11032
  ]
10679
11033
  },
10680
11034
  "status:category": {
@@ -11418,6 +11772,159 @@
11418
11772
  "logs.js"
11419
11773
  ]
11420
11774
  },
11775
+ "telemetry:disable": {
11776
+ "aliases": [],
11777
+ "args": {},
11778
+ "description": "Disable anonymous telemetry",
11779
+ "examples": [
11780
+ "<%= config.bin %> <%= command.id %>"
11781
+ ],
11782
+ "flags": {
11783
+ "json": {
11784
+ "description": "Output as JSON for AI agents/scripts",
11785
+ "name": "json",
11786
+ "allowNo": false,
11787
+ "type": "boolean"
11788
+ },
11789
+ "machine": {
11790
+ "char": "m",
11791
+ "description": "Output as JSON for AI agents/scripts",
11792
+ "name": "machine",
11793
+ "allowNo": false,
11794
+ "type": "boolean"
11795
+ }
11796
+ },
11797
+ "hasDynamicHelp": false,
11798
+ "hiddenAliases": [],
11799
+ "id": "telemetry:disable",
11800
+ "pluginAlias": "@proletariat/cli",
11801
+ "pluginName": "@proletariat/cli",
11802
+ "pluginType": "core",
11803
+ "strict": true,
11804
+ "enableJsonFlag": false,
11805
+ "isESM": true,
11806
+ "relativePath": [
11807
+ "dist",
11808
+ "commands",
11809
+ "telemetry",
11810
+ "disable.js"
11811
+ ]
11812
+ },
11813
+ "telemetry:enable": {
11814
+ "aliases": [],
11815
+ "args": {},
11816
+ "description": "Enable anonymous telemetry",
11817
+ "examples": [
11818
+ "<%= config.bin %> <%= command.id %>"
11819
+ ],
11820
+ "flags": {
11821
+ "json": {
11822
+ "description": "Output as JSON for AI agents/scripts",
11823
+ "name": "json",
11824
+ "allowNo": false,
11825
+ "type": "boolean"
11826
+ },
11827
+ "machine": {
11828
+ "char": "m",
11829
+ "description": "Output as JSON for AI agents/scripts",
11830
+ "name": "machine",
11831
+ "allowNo": false,
11832
+ "type": "boolean"
11833
+ }
11834
+ },
11835
+ "hasDynamicHelp": false,
11836
+ "hiddenAliases": [],
11837
+ "id": "telemetry:enable",
11838
+ "pluginAlias": "@proletariat/cli",
11839
+ "pluginName": "@proletariat/cli",
11840
+ "pluginType": "core",
11841
+ "strict": true,
11842
+ "enableJsonFlag": false,
11843
+ "isESM": true,
11844
+ "relativePath": [
11845
+ "dist",
11846
+ "commands",
11847
+ "telemetry",
11848
+ "enable.js"
11849
+ ]
11850
+ },
11851
+ "telemetry": {
11852
+ "aliases": [],
11853
+ "args": {},
11854
+ "description": "Show telemetry status",
11855
+ "examples": [
11856
+ "<%= config.bin %> <%= command.id %>",
11857
+ "<%= config.bin %> <%= command.id %> --json"
11858
+ ],
11859
+ "flags": {
11860
+ "json": {
11861
+ "description": "Output as JSON for AI agents/scripts",
11862
+ "name": "json",
11863
+ "allowNo": false,
11864
+ "type": "boolean"
11865
+ },
11866
+ "machine": {
11867
+ "char": "m",
11868
+ "description": "Output as JSON for AI agents/scripts",
11869
+ "name": "machine",
11870
+ "allowNo": false,
11871
+ "type": "boolean"
11872
+ }
11873
+ },
11874
+ "hasDynamicHelp": false,
11875
+ "hiddenAliases": [],
11876
+ "id": "telemetry",
11877
+ "pluginAlias": "@proletariat/cli",
11878
+ "pluginName": "@proletariat/cli",
11879
+ "pluginType": "core",
11880
+ "strict": true,
11881
+ "enableJsonFlag": false,
11882
+ "isESM": true,
11883
+ "relativePath": [
11884
+ "dist",
11885
+ "commands",
11886
+ "telemetry",
11887
+ "index.js"
11888
+ ]
11889
+ },
11890
+ "telemetry:status": {
11891
+ "aliases": [],
11892
+ "args": {},
11893
+ "description": "Show telemetry status",
11894
+ "examples": [
11895
+ "<%= config.bin %> telemetry status"
11896
+ ],
11897
+ "flags": {
11898
+ "json": {
11899
+ "description": "Output as JSON for AI agents/scripts",
11900
+ "name": "json",
11901
+ "allowNo": false,
11902
+ "type": "boolean"
11903
+ },
11904
+ "machine": {
11905
+ "char": "m",
11906
+ "description": "Output as JSON for AI agents/scripts",
11907
+ "name": "machine",
11908
+ "allowNo": false,
11909
+ "type": "boolean"
11910
+ }
11911
+ },
11912
+ "hasDynamicHelp": false,
11913
+ "hiddenAliases": [],
11914
+ "id": "telemetry:status",
11915
+ "pluginAlias": "@proletariat/cli",
11916
+ "pluginName": "@proletariat/cli",
11917
+ "pluginType": "core",
11918
+ "strict": true,
11919
+ "enableJsonFlag": false,
11920
+ "isESM": true,
11921
+ "relativePath": [
11922
+ "dist",
11923
+ "commands",
11924
+ "telemetry",
11925
+ "status.js"
11926
+ ]
11927
+ },
11421
11928
  "template:apply": {
11422
11929
  "aliases": [],
11423
11930
  "args": {
@@ -13773,19 +14280,64 @@
13773
14280
  "view.js"
13774
14281
  ]
13775
14282
  },
13776
- "work:complete": {
14283
+ "work:complete": {
14284
+ "aliases": [],
14285
+ "args": {
14286
+ "ticketId": {
14287
+ "description": "Ticket ID - prompts with dropdown if not provided",
14288
+ "name": "ticketId",
14289
+ "required": false
14290
+ }
14291
+ },
14292
+ "description": "Mark work as complete (moves ticket to Done column)",
14293
+ "examples": [
14294
+ "<%= config.bin %> <%= command.id %>",
14295
+ "<%= config.bin %> <%= command.id %> TKT-001"
14296
+ ],
14297
+ "flags": {
14298
+ "project": {
14299
+ "char": "P",
14300
+ "description": "Project ID (uses first project if only one exists)",
14301
+ "name": "project",
14302
+ "hasDynamicHelp": false,
14303
+ "multiple": false,
14304
+ "type": "option"
14305
+ },
14306
+ "json": {
14307
+ "description": "Output as JSON for AI agents/scripts",
14308
+ "name": "json",
14309
+ "allowNo": false,
14310
+ "type": "boolean"
14311
+ },
14312
+ "machine": {
14313
+ "char": "m",
14314
+ "description": "Output as JSON for AI agents/scripts",
14315
+ "name": "machine",
14316
+ "allowNo": false,
14317
+ "type": "boolean"
14318
+ }
14319
+ },
14320
+ "hasDynamicHelp": false,
14321
+ "hiddenAliases": [],
14322
+ "id": "work:complete",
14323
+ "pluginAlias": "@proletariat/cli",
14324
+ "pluginName": "@proletariat/cli",
14325
+ "pluginType": "core",
14326
+ "strict": true,
14327
+ "isESM": true,
14328
+ "relativePath": [
14329
+ "dist",
14330
+ "commands",
14331
+ "work",
14332
+ "complete.js"
14333
+ ]
14334
+ },
14335
+ "work": {
13777
14336
  "aliases": [],
13778
- "args": {
13779
- "ticketId": {
13780
- "description": "Ticket ID - prompts with dropdown if not provided",
13781
- "name": "ticketId",
13782
- "required": false
13783
- }
13784
- },
13785
- "description": "Mark work as complete (moves ticket to Done column)",
14337
+ "args": {},
14338
+ "description": "Interactive menu for work operations (ownership, assignment, execution)",
13786
14339
  "examples": [
13787
- "<%= config.bin %> <%= command.id %>",
13788
- "<%= config.bin %> <%= command.id %> TKT-001"
14340
+ "<%= config.bin %> <%= command.id %>"
13789
14341
  ],
13790
14342
  "flags": {
13791
14343
  "project": {
@@ -13812,7 +14364,7 @@
13812
14364
  },
13813
14365
  "hasDynamicHelp": false,
13814
14366
  "hiddenAliases": [],
13815
- "id": "work:complete",
14367
+ "id": "work",
13816
14368
  "pluginAlias": "@proletariat/cli",
13817
14369
  "pluginName": "@proletariat/cli",
13818
14370
  "pluginType": "core",
@@ -13822,15 +14374,17 @@
13822
14374
  "dist",
13823
14375
  "commands",
13824
14376
  "work",
13825
- "complete.js"
14377
+ "index.js"
13826
14378
  ]
13827
14379
  },
13828
- "work": {
14380
+ "work:jira": {
13829
14381
  "aliases": [],
13830
14382
  "args": {},
13831
- "description": "Interactive menu for work operations (ownership, assignment, execution)",
14383
+ "description": "List/select Jira issues and spawn work using the existing work-start flow",
13832
14384
  "examples": [
13833
- "<%= config.bin %> <%= command.id %>"
14385
+ "<%= config.bin %> <%= command.id %> --host https://myorg.atlassian.net --project-key PROJ",
14386
+ "<%= config.bin %> <%= command.id %> --host https://myorg.atlassian.net --issue PROJ-123",
14387
+ "<%= config.bin %> <%= command.id %> --host https://myorg.atlassian.net --issue PROJ-123 --yes --skip-permissions --display terminal"
13834
14388
  ],
13835
14389
  "flags": {
13836
14390
  "project": {
@@ -13853,11 +14407,130 @@
13853
14407
  "name": "machine",
13854
14408
  "allowNo": false,
13855
14409
  "type": "boolean"
14410
+ },
14411
+ "host": {
14412
+ "description": "Jira host URL (fallback: PRLT_JIRA_HOST or JIRA_HOST)",
14413
+ "name": "host",
14414
+ "hasDynamicHelp": false,
14415
+ "multiple": false,
14416
+ "type": "option"
14417
+ },
14418
+ "email": {
14419
+ "description": "Jira account email (fallback: PRLT_JIRA_EMAIL or JIRA_EMAIL)",
14420
+ "name": "email",
14421
+ "hasDynamicHelp": false,
14422
+ "multiple": false,
14423
+ "type": "option"
14424
+ },
14425
+ "token": {
14426
+ "description": "Jira API token (fallback: PRLT_JIRA_API_TOKEN or JIRA_API_TOKEN)",
14427
+ "name": "token",
14428
+ "hasDynamicHelp": false,
14429
+ "multiple": false,
14430
+ "type": "option"
14431
+ },
14432
+ "project-key": {
14433
+ "description": "Jira project key for listing issues (fallback: PRLT_JIRA_PROJECT or JIRA_PROJECT_KEY)",
14434
+ "name": "project-key",
14435
+ "hasDynamicHelp": false,
14436
+ "multiple": false,
14437
+ "type": "option"
14438
+ },
14439
+ "jql": {
14440
+ "description": "Custom JQL for listing issues (overrides project key filters)",
14441
+ "name": "jql",
14442
+ "hasDynamicHelp": false,
14443
+ "multiple": false,
14444
+ "type": "option"
14445
+ },
14446
+ "issue": {
14447
+ "description": "Jira issue key (for example: PROJ-123)",
14448
+ "name": "issue",
14449
+ "hasDynamicHelp": false,
14450
+ "multiple": false,
14451
+ "type": "option"
14452
+ },
14453
+ "limit": {
14454
+ "char": "l",
14455
+ "description": "Maximum number of Jira issues to fetch",
14456
+ "name": "limit",
14457
+ "default": 20,
14458
+ "hasDynamicHelp": false,
14459
+ "multiple": false,
14460
+ "type": "option"
14461
+ },
14462
+ "executor": {
14463
+ "char": "e",
14464
+ "description": "Override executor",
14465
+ "name": "executor",
14466
+ "hasDynamicHelp": false,
14467
+ "multiple": false,
14468
+ "options": [
14469
+ "claude-code",
14470
+ "codex",
14471
+ "aider",
14472
+ "custom"
14473
+ ],
14474
+ "type": "option"
14475
+ },
14476
+ "display": {
14477
+ "char": "d",
14478
+ "description": "Display mode",
14479
+ "name": "display",
14480
+ "hasDynamicHelp": false,
14481
+ "multiple": false,
14482
+ "options": [
14483
+ "terminal",
14484
+ "background",
14485
+ "foreground"
14486
+ ],
14487
+ "type": "option"
14488
+ },
14489
+ "action": {
14490
+ "char": "A",
14491
+ "description": "Action to run in work start (default: implement)",
14492
+ "name": "action",
14493
+ "default": "implement",
14494
+ "hasDynamicHelp": false,
14495
+ "multiple": false,
14496
+ "type": "option"
14497
+ },
14498
+ "message": {
14499
+ "description": "Additional instructions appended to spawn context",
14500
+ "name": "message",
14501
+ "hasDynamicHelp": false,
14502
+ "multiple": false,
14503
+ "type": "option"
14504
+ },
14505
+ "run-on-host": {
14506
+ "description": "Run on host even if devcontainer exists",
14507
+ "name": "run-on-host",
14508
+ "allowNo": false,
14509
+ "type": "boolean"
14510
+ },
14511
+ "skip-permissions": {
14512
+ "description": "Skip permission prompts (danger mode)",
14513
+ "name": "skip-permissions",
14514
+ "allowNo": false,
14515
+ "type": "boolean"
14516
+ },
14517
+ "create-pr": {
14518
+ "description": "Create PR when work is ready",
14519
+ "name": "create-pr",
14520
+ "allowNo": false,
14521
+ "type": "boolean"
14522
+ },
14523
+ "yes": {
14524
+ "char": "y",
14525
+ "description": "Skip confirmation prompts in downstream work start",
14526
+ "name": "yes",
14527
+ "allowNo": false,
14528
+ "type": "boolean"
13856
14529
  }
13857
14530
  },
13858
14531
  "hasDynamicHelp": false,
13859
14532
  "hiddenAliases": [],
13860
- "id": "work",
14533
+ "id": "work:jira",
13861
14534
  "pluginAlias": "@proletariat/cli",
13862
14535
  "pluginName": "@proletariat/cli",
13863
14536
  "pluginType": "core",
@@ -13867,7 +14540,7 @@
13867
14540
  "dist",
13868
14541
  "commands",
13869
14542
  "work",
13870
- "index.js"
14543
+ "jira.js"
13871
14544
  ]
13872
14545
  },
13873
14546
  "work:linear": {
@@ -14382,6 +15055,53 @@
14382
15055
  "revise.js"
14383
15056
  ]
14384
15057
  },
15058
+ "work:source": {
15059
+ "aliases": [],
15060
+ "args": {},
15061
+ "description": "Show the active work source used by \"work spawn\"",
15062
+ "examples": [
15063
+ "<%= config.bin %> <%= command.id %>",
15064
+ "<%= config.bin %> work source set linear:PRO",
15065
+ "<%= config.bin %> <%= command.id %> --json"
15066
+ ],
15067
+ "flags": {
15068
+ "project": {
15069
+ "char": "P",
15070
+ "description": "Project ID (uses first project if only one exists)",
15071
+ "name": "project",
15072
+ "hasDynamicHelp": false,
15073
+ "multiple": false,
15074
+ "type": "option"
15075
+ },
15076
+ "json": {
15077
+ "description": "Output as JSON for AI agents/scripts",
15078
+ "name": "json",
15079
+ "allowNo": false,
15080
+ "type": "boolean"
15081
+ },
15082
+ "machine": {
15083
+ "char": "m",
15084
+ "description": "Output as JSON for AI agents/scripts",
15085
+ "name": "machine",
15086
+ "allowNo": false,
15087
+ "type": "boolean"
15088
+ }
15089
+ },
15090
+ "hasDynamicHelp": false,
15091
+ "hiddenAliases": [],
15092
+ "id": "work:source",
15093
+ "pluginAlias": "@proletariat/cli",
15094
+ "pluginName": "@proletariat/cli",
15095
+ "pluginType": "core",
15096
+ "strict": true,
15097
+ "isESM": true,
15098
+ "relativePath": [
15099
+ "dist",
15100
+ "commands",
15101
+ "work",
15102
+ "source.js"
15103
+ ]
15104
+ },
14385
15105
  "work:spawn-all": {
14386
15106
  "aliases": [],
14387
15107
  "args": {},
@@ -14488,10 +15208,16 @@
14488
15208
  "<%= config.bin %> <%= command.id %> --count 5 --priority P0 --action implement # Filtered by priority",
14489
15209
  "<%= config.bin %> <%= command.id %> --from-linear # Pull Linear issues → PMO → spawn",
14490
15210
  "<%= config.bin %> <%= command.id %> --from-linear ENG-123 ENG-124 # Pull specific Linear issues → spawn",
15211
+ "<%= config.bin %> <%= command.id %> --from linear:ENG # Use source override (provider[:context])",
15212
+ "<%= config.bin %> work source set linear:ENG # Persist default source for future spawn",
14491
15213
  "<%= config.bin %> <%= command.id %> --from-linear --linear-team ENG # Pull from specific team",
14492
15214
  "<%= config.bin %> <%= command.id %> --from-linear --linear-state \"In Progress\" # Filter by state",
14493
15215
  "<%= config.bin %> <%= command.id %> --count 10 --diet --category ship,grow --action groom # Combined",
14494
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --create-pr # Create PR when work is ready"
15216
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --create-pr # Create PR when work is ready",
15217
+ "<%= config.bin %> <%= command.id %> --from jira:PROJ # Pull Jira issues → PMO → spawn",
15218
+ "<%= config.bin %> <%= command.id %> --from jira:PROJ PROJ-123 PROJ-456 # Pull specific Jira issues",
15219
+ "<%= config.bin %> <%= command.id %> --from jira --jira-project PROJ # Jira with explicit project key",
15220
+ "<%= config.bin %> work source set jira:PROJ # Persist Jira as default source"
14495
15221
  ],
14496
15222
  "flags": {
14497
15223
  "project": {
@@ -14732,10 +15458,14 @@
14732
15458
  "allowNo": false,
14733
15459
  "type": "boolean"
14734
15460
  },
15461
+ "from": {
15462
+ "description": "Source override in provider[:context] format (e.g., pmo, linear:PRO, jira:PROJ)",
15463
+ "name": "from",
15464
+ "hasDynamicHelp": false,
15465
+ "multiple": false,
15466
+ "type": "option"
15467
+ },
14735
15468
  "linear-team": {
14736
- "dependsOn": [
14737
- "from-linear"
14738
- ],
14739
15469
  "description": "Linear team key to pull issues from (e.g., ENG)",
14740
15470
  "name": "linear-team",
14741
15471
  "hasDynamicHelp": false,
@@ -14743,9 +15473,6 @@
14743
15473
  "type": "option"
14744
15474
  },
14745
15475
  "linear-state": {
14746
- "dependsOn": [
14747
- "from-linear"
14748
- ],
14749
15476
  "description": "Filter Linear issues by state name (e.g., \"In Progress\")",
14750
15477
  "name": "linear-state",
14751
15478
  "hasDynamicHelp": false,
@@ -14753,9 +15480,6 @@
14753
15480
  "type": "option"
14754
15481
  },
14755
15482
  "linear-label": {
14756
- "dependsOn": [
14757
- "from-linear"
14758
- ],
14759
15483
  "description": "Filter Linear issues by label name",
14760
15484
  "name": "linear-label",
14761
15485
  "hasDynamicHelp": false,
@@ -14763,15 +15487,34 @@
14763
15487
  "type": "option"
14764
15488
  },
14765
15489
  "linear-limit": {
14766
- "dependsOn": [
14767
- "from-linear"
14768
- ],
14769
15490
  "description": "Maximum number of Linear issues to pull",
14770
15491
  "name": "linear-limit",
14771
15492
  "default": 20,
14772
15493
  "hasDynamicHelp": false,
14773
15494
  "multiple": false,
14774
15495
  "type": "option"
15496
+ },
15497
+ "jira-project": {
15498
+ "description": "Jira project key to pull issues from (e.g., PROJ)",
15499
+ "name": "jira-project",
15500
+ "hasDynamicHelp": false,
15501
+ "multiple": false,
15502
+ "type": "option"
15503
+ },
15504
+ "jira-jql": {
15505
+ "description": "Custom JQL for filtering Jira issues",
15506
+ "name": "jira-jql",
15507
+ "hasDynamicHelp": false,
15508
+ "multiple": false,
15509
+ "type": "option"
15510
+ },
15511
+ "jira-limit": {
15512
+ "description": "Maximum number of Jira issues to pull",
15513
+ "name": "jira-limit",
15514
+ "default": 20,
15515
+ "hasDynamicHelp": false,
15516
+ "multiple": false,
15517
+ "type": "option"
14775
15518
  }
14776
15519
  },
14777
15520
  "hasDynamicHelp": false,
@@ -14807,7 +15550,12 @@
14807
15550
  "<%= config.bin %> <%= command.id %> TKT-001 --mode terminal",
14808
15551
  "<%= config.bin %> <%= command.id %> # Interactive mode",
14809
15552
  "<%= config.bin %> <%= command.id %> --all # Spawn all backlog tickets",
14810
- "<%= config.bin %> <%= command.id %> TKT-001 --prompt \"Add unit tests for the API\" # Custom prompt"
15553
+ "<%= config.bin %> <%= command.id %> TKT-001 --prompt \"Add unit tests for the API\" # Custom prompt",
15554
+ "<%= config.bin %> <%= command.id %> --from-issue --source linear --key ENG-123",
15555
+ "<%= config.bin %> <%= command.id %> --from-issue --source jira --key PROJ-123 --mirror-to-pmo",
15556
+ "<%= config.bin %> <%= command.id %> --from linear:ENG-123 # Unified: provider:key shorthand",
15557
+ "<%= config.bin %> <%= command.id %> --from jira:PROJ-123 # Unified: Jira shorthand",
15558
+ "<%= config.bin %> <%= command.id %> --from-issue # Uses workspace active source"
14811
15559
  ],
14812
15560
  "flags": {
14813
15561
  "project": {
@@ -14875,6 +15623,43 @@
14875
15623
  "multiple": false,
14876
15624
  "type": "option"
14877
15625
  },
15626
+ "from": {
15627
+ "description": "External issue ref in provider:key format (e.g., linear:ENG-123, jira:PROJ-456). Shorthand for --from-issue --source X --key Y.",
15628
+ "name": "from",
15629
+ "hasDynamicHelp": false,
15630
+ "multiple": false,
15631
+ "type": "option"
15632
+ },
15633
+ "from-issue": {
15634
+ "description": "Start from external issue source instead of internal ticket id",
15635
+ "name": "from-issue",
15636
+ "allowNo": false,
15637
+ "type": "boolean"
15638
+ },
15639
+ "source": {
15640
+ "description": "External issue source",
15641
+ "name": "source",
15642
+ "hasDynamicHelp": false,
15643
+ "multiple": false,
15644
+ "options": [
15645
+ "linear",
15646
+ "jira"
15647
+ ],
15648
+ "type": "option"
15649
+ },
15650
+ "key": {
15651
+ "description": "External issue key (for example: ENG-123, PROJ-456)",
15652
+ "name": "key",
15653
+ "hasDynamicHelp": false,
15654
+ "multiple": false,
15655
+ "type": "option"
15656
+ },
15657
+ "mirror-to-pmo": {
15658
+ "description": "Mirror external issue data into PMO ticket (default from execution.mirror_to_pmo_default or PRLT_MIRROR_TO_PMO_DEFAULT)",
15659
+ "name": "mirror-to-pmo",
15660
+ "allowNo": true,
15661
+ "type": "boolean"
15662
+ },
14878
15663
  "watch": {
14879
15664
  "char": "w",
14880
15665
  "description": "Stream output in real-time",
@@ -17812,7 +18597,55 @@
17812
18597
  "template",
17813
18598
  "save.js"
17814
18599
  ]
18600
+ },
18601
+ "work:source:set": {
18602
+ "aliases": [],
18603
+ "args": {},
18604
+ "description": "Set the active work source used by \"work spawn\"",
18605
+ "examples": [
18606
+ "<%= config.bin %> <%= command.id %> pmo",
18607
+ "<%= config.bin %> <%= command.id %> linear:PRO",
18608
+ "<%= config.bin %> <%= command.id %> jira:ABC"
18609
+ ],
18610
+ "flags": {
18611
+ "project": {
18612
+ "char": "P",
18613
+ "description": "Project ID (uses first project if only one exists)",
18614
+ "name": "project",
18615
+ "hasDynamicHelp": false,
18616
+ "multiple": false,
18617
+ "type": "option"
18618
+ },
18619
+ "json": {
18620
+ "description": "Output as JSON for AI agents/scripts",
18621
+ "name": "json",
18622
+ "allowNo": false,
18623
+ "type": "boolean"
18624
+ },
18625
+ "machine": {
18626
+ "char": "m",
18627
+ "description": "Output as JSON for AI agents/scripts",
18628
+ "name": "machine",
18629
+ "allowNo": false,
18630
+ "type": "boolean"
18631
+ }
18632
+ },
18633
+ "hasDynamicHelp": false,
18634
+ "hiddenAliases": [],
18635
+ "id": "work:source:set",
18636
+ "pluginAlias": "@proletariat/cli",
18637
+ "pluginName": "@proletariat/cli",
18638
+ "pluginType": "core",
18639
+ "strict": false,
18640
+ "isESM": true,
18641
+ "relativePath": [
18642
+ "dist",
18643
+ "commands",
18644
+ "work",
18645
+ "source",
18646
+ "set.js"
18647
+ ]
17815
18648
  }
17816
18649
  },
17817
- "version": "0.3.51"
18650
+ "version": "0.3.53"
17818
18651
  }