@proletariat/cli 0.3.92 → 0.3.94

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 (588) hide show
  1. package/dist/commands/action/create.d.ts +1 -1
  2. package/dist/commands/action/delete.d.ts +1 -1
  3. package/dist/commands/action/index.d.ts +1 -1
  4. package/dist/commands/action/list.d.ts +1 -1
  5. package/dist/commands/action/run.d.ts +1 -1
  6. package/dist/commands/action/show.d.ts +1 -1
  7. package/dist/commands/action/update.d.ts +1 -1
  8. package/dist/commands/agent/auth.js +2 -6
  9. package/dist/commands/agent/auth.js.map +1 -1
  10. package/dist/commands/agent/cleanup.d.ts +1 -1
  11. package/dist/commands/agent/cleanup.js +5 -5
  12. package/dist/commands/agent/cleanup.js.map +1 -1
  13. package/dist/commands/{project/list.d.ts → agent/gc.d.ts} +4 -3
  14. package/dist/commands/agent/gc.js +75 -0
  15. package/dist/commands/agent/gc.js.map +1 -0
  16. package/dist/commands/agent/index.d.ts +1 -1
  17. package/dist/commands/agent/list.d.ts +1 -1
  18. package/dist/commands/agent/list.js +2 -2
  19. package/dist/commands/agent/list.js.map +1 -1
  20. package/dist/commands/agent/login.d.ts +1 -1
  21. package/dist/commands/agent/rebuild.d.ts +1 -1
  22. package/dist/commands/agent/remove.d.ts +1 -1
  23. package/dist/commands/agent/restart.d.ts +1 -1
  24. package/dist/commands/agent/shell.d.ts +1 -1
  25. package/dist/commands/agent/shell.js +3 -5
  26. package/dist/commands/agent/shell.js.map +1 -1
  27. package/dist/commands/agent/staff/index.d.ts +1 -1
  28. package/dist/commands/agent/staff/remove.d.ts +1 -1
  29. package/dist/commands/agent/status.d.ts +1 -1
  30. package/dist/commands/agent/visit.d.ts +1 -1
  31. package/dist/commands/asana/import.d.ts +1 -1
  32. package/dist/commands/branch/create.d.ts +1 -1
  33. package/dist/commands/branch/create.js +2 -2
  34. package/dist/commands/branch/create.js.map +1 -1
  35. package/dist/commands/branch/index.d.ts +1 -1
  36. package/dist/commands/branch/list.d.ts +1 -1
  37. package/dist/commands/branch/validate.d.ts +1 -1
  38. package/dist/commands/branch/where.d.ts +1 -1
  39. package/dist/commands/claude/index.js +2 -2
  40. package/dist/commands/claude/index.js.map +1 -1
  41. package/dist/commands/claude/open.js +11 -5
  42. package/dist/commands/claude/open.js.map +1 -1
  43. package/dist/commands/config/index.js +88 -7
  44. package/dist/commands/config/index.js.map +1 -1
  45. package/dist/commands/db/repair.js +2 -2
  46. package/dist/commands/db/repair.js.map +1 -1
  47. package/dist/commands/diet.d.ts +1 -1
  48. package/dist/commands/docker/clean.js +2 -4
  49. package/dist/commands/docker/clean.js.map +1 -1
  50. package/dist/commands/docker/index.js +4 -4
  51. package/dist/commands/docker/index.js.map +1 -1
  52. package/dist/commands/docker/list.js +2 -4
  53. package/dist/commands/docker/list.js.map +1 -1
  54. package/dist/commands/docker/logs.js +2 -4
  55. package/dist/commands/docker/logs.js.map +1 -1
  56. package/dist/commands/docker/rebuild-cache.d.ts +12 -0
  57. package/dist/commands/docker/rebuild-cache.js +144 -0
  58. package/dist/commands/docker/rebuild-cache.js.map +1 -0
  59. package/dist/commands/docker/restart.js +2 -4
  60. package/dist/commands/docker/restart.js.map +1 -1
  61. package/dist/commands/docker/shell.js +2 -4
  62. package/dist/commands/docker/shell.js.map +1 -1
  63. package/dist/commands/docker/start.js +2 -4
  64. package/dist/commands/docker/start.js.map +1 -1
  65. package/dist/commands/docker/stop.js +2 -4
  66. package/dist/commands/docker/stop.js.map +1 -1
  67. package/dist/commands/docker/sync.js +2 -4
  68. package/dist/commands/docker/sync.js.map +1 -1
  69. package/dist/commands/execution/config.d.ts +1 -1
  70. package/dist/commands/execution/config.js +39 -0
  71. package/dist/commands/execution/config.js.map +1 -1
  72. package/dist/commands/execution/index.d.ts +1 -1
  73. package/dist/commands/execution/list.d.ts +1 -1
  74. package/dist/commands/execution/list.js +2 -4
  75. package/dist/commands/execution/list.js.map +1 -1
  76. package/dist/commands/execution/logs.d.ts +1 -1
  77. package/dist/commands/execution/logs.js +2 -4
  78. package/dist/commands/execution/logs.js.map +1 -1
  79. package/dist/commands/execution/stop.d.ts +1 -1
  80. package/dist/commands/execution/stop.js +2 -4
  81. package/dist/commands/execution/stop.js.map +1 -1
  82. package/dist/commands/execution/view.d.ts +1 -1
  83. package/dist/commands/execution/view.js +2 -4
  84. package/dist/commands/execution/view.js.map +1 -1
  85. package/dist/commands/gh/login.js +2 -1
  86. package/dist/commands/gh/login.js.map +1 -1
  87. package/dist/commands/gh/status.js +18 -2
  88. package/dist/commands/gh/status.js.map +1 -1
  89. package/dist/commands/{ticket/bulk.d.ts → hook/export.d.ts} +8 -5
  90. package/dist/commands/hook/export.js +52 -0
  91. package/dist/commands/hook/export.js.map +1 -0
  92. package/dist/commands/hook/fire.d.ts +29 -0
  93. package/dist/commands/hook/fire.js +139 -0
  94. package/dist/commands/hook/fire.js.map +1 -0
  95. package/dist/commands/{project → hook}/index.d.ts +5 -5
  96. package/dist/commands/hook/index.js +53 -0
  97. package/dist/commands/hook/index.js.map +1 -0
  98. package/dist/commands/{board/index.d.ts → hook/list.d.ts} +10 -12
  99. package/dist/commands/hook/list.js +136 -0
  100. package/dist/commands/hook/list.js.map +1 -0
  101. package/dist/commands/{project/archive.d.ts → hook/preset.d.ts} +11 -7
  102. package/dist/commands/hook/preset.js +76 -0
  103. package/dist/commands/hook/preset.js.map +1 -0
  104. package/dist/commands/linear/auth.d.ts +1 -1
  105. package/dist/commands/linear/connect.d.ts +1 -1
  106. package/dist/commands/linear/import.d.ts +1 -1
  107. package/dist/commands/linear/status.d.ts +1 -1
  108. package/dist/commands/linear/sync.d.ts +1 -1
  109. package/dist/commands/mcp-server.d.ts +8 -2
  110. package/dist/commands/mcp-server.js +17 -31
  111. package/dist/commands/mcp-server.js.map +1 -1
  112. package/dist/commands/monday/connect.d.ts +1 -1
  113. package/dist/commands/monday/sync.d.ts +1 -1
  114. package/dist/commands/orchestrate/index.d.ts +35 -0
  115. package/dist/commands/orchestrate/index.js +267 -0
  116. package/dist/commands/orchestrate/index.js.map +1 -0
  117. package/dist/commands/orchestrator/attach.js +2 -3
  118. package/dist/commands/orchestrator/attach.js.map +1 -1
  119. package/dist/commands/orchestrator/index.d.ts +1 -1
  120. package/dist/commands/orchestrator/start.d.ts +3 -3
  121. package/dist/commands/orchestrator/start.js +32 -43
  122. package/dist/commands/orchestrator/start.js.map +1 -1
  123. package/dist/commands/orchestrator/stop.js +21 -26
  124. package/dist/commands/orchestrator/stop.js.map +1 -1
  125. package/dist/commands/pr/checks.d.ts +1 -1
  126. package/dist/commands/pr/close.d.ts +1 -1
  127. package/dist/commands/pr/create.d.ts +1 -1
  128. package/dist/commands/pr/index.d.ts +1 -1
  129. package/dist/commands/pr/link.d.ts +1 -1
  130. package/dist/commands/pr/list.d.ts +1 -1
  131. package/dist/commands/pr/merge.d.ts +1 -1
  132. package/dist/commands/pr/status.d.ts +1 -1
  133. package/dist/commands/pull.d.ts +1 -1
  134. package/dist/commands/qa/index.js +3 -3
  135. package/dist/commands/qa/index.js.map +1 -1
  136. package/dist/commands/repo/add.d.ts +1 -1
  137. package/dist/commands/repo/create.d.ts +1 -1
  138. package/dist/commands/repo/fix-remotes.d.ts +1 -1
  139. package/dist/commands/repo/index.d.ts +1 -1
  140. package/dist/commands/repo/list.d.ts +1 -1
  141. package/dist/commands/repo/remove.d.ts +1 -1
  142. package/dist/commands/repo/view.d.ts +1 -1
  143. package/dist/commands/session/attach.d.ts +1 -1
  144. package/dist/commands/session/attach.js +5 -7
  145. package/dist/commands/session/attach.js.map +1 -1
  146. package/dist/commands/session/cleanup.d.ts +1 -1
  147. package/dist/commands/session/cleanup.js +2 -4
  148. package/dist/commands/session/cleanup.js.map +1 -1
  149. package/dist/commands/session/create.d.ts +1 -1
  150. package/dist/commands/session/exec.d.ts +1 -1
  151. package/dist/commands/session/exec.js +2 -3
  152. package/dist/commands/session/exec.js.map +1 -1
  153. package/dist/commands/session/health.d.ts +1 -1
  154. package/dist/commands/session/health.js +2 -4
  155. package/dist/commands/session/health.js.map +1 -1
  156. package/dist/commands/session/index.d.ts +1 -1
  157. package/dist/commands/session/inspect.d.ts +1 -1
  158. package/dist/commands/session/inspect.js +2 -3
  159. package/dist/commands/session/inspect.js.map +1 -1
  160. package/dist/commands/session/list.d.ts +1 -1
  161. package/dist/commands/session/list.js +2 -4
  162. package/dist/commands/session/list.js.map +1 -1
  163. package/dist/commands/session/peek.d.ts +1 -1
  164. package/dist/commands/session/peek.js +3 -6
  165. package/dist/commands/session/peek.js.map +1 -1
  166. package/dist/commands/session/poke.js +2 -4
  167. package/dist/commands/session/poke.js.map +1 -1
  168. package/dist/commands/session/prune.d.ts +1 -1
  169. package/dist/commands/session/prune.js +2 -4
  170. package/dist/commands/session/prune.js.map +1 -1
  171. package/dist/commands/session/report.d.ts +1 -1
  172. package/dist/commands/session/report.js +2 -4
  173. package/dist/commands/session/report.js.map +1 -1
  174. package/dist/commands/session/restart.d.ts +1 -1
  175. package/dist/commands/session/restart.js +2 -3
  176. package/dist/commands/session/restart.js.map +1 -1
  177. package/dist/commands/shortcut/connect.d.ts +1 -1
  178. package/dist/commands/support/logs.d.ts +1 -1
  179. package/dist/commands/ticket/create.d.ts +4 -5
  180. package/dist/commands/ticket/create.js +69 -88
  181. package/dist/commands/ticket/create.js.map +1 -1
  182. package/dist/commands/ticket/delete.d.ts +1 -1
  183. package/dist/commands/ticket/edit.d.ts +1 -1
  184. package/dist/commands/ticket/edit.js +22 -14
  185. package/dist/commands/ticket/edit.js.map +1 -1
  186. package/dist/commands/ticket/index.d.ts +1 -1
  187. package/dist/commands/ticket/index.js +6 -36
  188. package/dist/commands/ticket/index.js.map +1 -1
  189. package/dist/commands/ticket/list.d.ts +1 -1
  190. package/dist/commands/ticket/move.d.ts +1 -1
  191. package/dist/commands/ticket/show.d.ts +8 -7
  192. package/dist/commands/ticket/show.js +101 -8
  193. package/dist/commands/ticket/show.js.map +1 -1
  194. package/dist/commands/ticket/update.d.ts +1 -1
  195. package/dist/commands/ticket/update.js +31 -14
  196. package/dist/commands/ticket/update.js.map +1 -1
  197. package/dist/commands/trello/configure.d.ts +1 -1
  198. package/dist/commands/trello/import.d.ts +1 -1
  199. package/dist/commands/trello/sync.d.ts +1 -1
  200. package/dist/commands/work/asana.d.ts +1 -1
  201. package/dist/commands/work/complete.d.ts +1 -1
  202. package/dist/commands/work/complete.js +2 -3
  203. package/dist/commands/work/complete.js.map +1 -1
  204. package/dist/commands/work/groom.d.ts +1 -1
  205. package/dist/commands/work/hooks/add.d.ts +1 -1
  206. package/dist/commands/work/hooks/add.js +2 -4
  207. package/dist/commands/work/hooks/add.js.map +1 -1
  208. package/dist/commands/work/hooks/index.d.ts +1 -1
  209. package/dist/commands/work/hooks/list.d.ts +1 -1
  210. package/dist/commands/work/hooks/list.js +2 -4
  211. package/dist/commands/work/hooks/list.js.map +1 -1
  212. package/dist/commands/work/hooks/remove.d.ts +1 -1
  213. package/dist/commands/work/hooks/remove.js +2 -4
  214. package/dist/commands/work/hooks/remove.js.map +1 -1
  215. package/dist/commands/work/hooks/toggle.d.ts +1 -1
  216. package/dist/commands/work/hooks/toggle.js +2 -4
  217. package/dist/commands/work/hooks/toggle.js.map +1 -1
  218. package/dist/commands/work/implement.d.ts +1 -1
  219. package/dist/commands/work/index.d.ts +1 -1
  220. package/dist/commands/work/index.js +4 -0
  221. package/dist/commands/work/index.js.map +1 -1
  222. package/dist/commands/work/jira.d.ts +1 -1
  223. package/dist/commands/work/linear.d.ts +1 -1
  224. package/dist/commands/work/peek.d.ts +1 -1
  225. package/dist/commands/work/ready.d.ts +1 -1
  226. package/dist/commands/work/ready.js +2 -3
  227. package/dist/commands/work/ready.js.map +1 -1
  228. package/dist/commands/work/rebase.d.ts +33 -0
  229. package/dist/commands/work/rebase.js +394 -0
  230. package/dist/commands/work/rebase.js.map +1 -0
  231. package/dist/commands/work/resolve.d.ts +1 -1
  232. package/dist/commands/work/review.d.ts +1 -1
  233. package/dist/commands/work/ship.d.ts +2 -1
  234. package/dist/commands/work/ship.js +49 -4
  235. package/dist/commands/work/ship.js.map +1 -1
  236. package/dist/commands/work/shortcut.d.ts +1 -1
  237. package/dist/commands/work/source/set.d.ts +1 -1
  238. package/dist/commands/work/source.d.ts +1 -1
  239. package/dist/commands/work/spawn.d.ts +1 -1
  240. package/dist/commands/work/spawn.js +2 -4
  241. package/dist/commands/work/spawn.js.map +1 -1
  242. package/dist/commands/work/start.d.ts +8 -1
  243. package/dist/commands/work/start.js +190 -22
  244. package/dist/commands/work/start.js.map +1 -1
  245. package/dist/commands/work/status.d.ts +1 -1
  246. package/dist/commands/work/stop.d.ts +1 -1
  247. package/dist/commands/work/stop.js +2 -4
  248. package/dist/commands/work/stop.js.map +1 -1
  249. package/dist/commands/work/watch.d.ts +1 -1
  250. package/dist/commands/work/watch.js +2 -4
  251. package/dist/commands/work/watch.js.map +1 -1
  252. package/dist/hooks/init.js +2 -2
  253. package/dist/hooks/init.js.map +1 -1
  254. package/dist/lib/agents/commands.d.ts +9 -3
  255. package/dist/lib/agents/commands.js +103 -88
  256. package/dist/lib/agents/commands.js.map +1 -1
  257. package/dist/lib/asana/config.js +13 -7
  258. package/dist/lib/asana/config.js.map +1 -1
  259. package/dist/lib/clickup/client.d.ts +92 -0
  260. package/dist/lib/clickup/client.js +150 -0
  261. package/dist/lib/clickup/client.js.map +1 -0
  262. package/dist/lib/clickup/config.d.ts +41 -0
  263. package/dist/lib/clickup/config.js +104 -0
  264. package/dist/lib/clickup/config.js.map +1 -0
  265. package/dist/lib/clickup/index.d.ts +4 -0
  266. package/dist/lib/clickup/index.js +4 -0
  267. package/dist/lib/clickup/index.js.map +1 -0
  268. package/dist/lib/clickup/types.d.ts +104 -0
  269. package/dist/lib/clickup/types.js +34 -0
  270. package/dist/lib/clickup/types.js.map +1 -0
  271. package/dist/lib/dashboard/server.js +1 -1
  272. package/dist/lib/dashboard/server.js.map +1 -1
  273. package/dist/lib/database/agents.d.ts +62 -4
  274. package/dist/lib/database/agents.js +161 -8
  275. package/dist/lib/database/agents.js.map +1 -1
  276. package/dist/lib/database/credential-store.d.ts +64 -0
  277. package/dist/lib/database/credential-store.js +306 -0
  278. package/dist/lib/database/credential-store.js.map +1 -0
  279. package/dist/lib/database/db-safety.js +4 -4
  280. package/dist/lib/database/db-safety.js.map +1 -1
  281. package/dist/lib/database/drizzle-schema.d.ts +2 -2
  282. package/dist/lib/database/drizzle-schema.js +2 -1
  283. package/dist/lib/database/drizzle-schema.js.map +1 -1
  284. package/dist/lib/database/index.d.ts +2 -1
  285. package/dist/lib/database/index.js +3 -1
  286. package/dist/lib/database/index.js.map +1 -1
  287. package/dist/lib/database/migrations/0013_agent_lifecycle_states.d.ts +11 -0
  288. package/dist/lib/database/migrations/0013_agent_lifecycle_states.js +47 -0
  289. package/dist/lib/database/migrations/0013_agent_lifecycle_states.js.map +1 -0
  290. package/dist/lib/database/migrations/0014_agent_work_lifecycle.d.ts +10 -0
  291. package/dist/lib/database/migrations/0014_agent_work_lifecycle.js +31 -0
  292. package/dist/lib/database/migrations/0014_agent_work_lifecycle.js.map +1 -0
  293. package/dist/lib/database/migrations/0015_orchestrate_hooks.d.ts +8 -0
  294. package/dist/lib/database/migrations/0015_orchestrate_hooks.js +35 -0
  295. package/dist/lib/database/migrations/0015_orchestrate_hooks.js.map +1 -0
  296. package/dist/lib/database/migrations/0016_schema_catchup.d.ts +15 -0
  297. package/dist/lib/database/migrations/0016_schema_catchup.js +154 -0
  298. package/dist/lib/database/migrations/0016_schema_catchup.js.map +1 -0
  299. package/dist/lib/database/migrations/index.js +8 -0
  300. package/dist/lib/database/migrations/index.js.map +1 -1
  301. package/dist/lib/database/pmo-bootstrap.d.ts +7 -0
  302. package/dist/lib/database/pmo-bootstrap.js +47 -22
  303. package/dist/lib/database/pmo-bootstrap.js.map +1 -1
  304. package/dist/lib/database/workspace-schema.d.ts +1 -1
  305. package/dist/lib/database/workspace-schema.js +3 -1
  306. package/dist/lib/database/workspace-schema.js.map +1 -1
  307. package/dist/lib/database/workspace.js +4 -0
  308. package/dist/lib/database/workspace.js.map +1 -1
  309. package/dist/lib/events/events.d.ts +28 -0
  310. package/dist/lib/events/index.d.ts +1 -1
  311. package/dist/lib/events/index.js.map +1 -1
  312. package/dist/lib/execution/config.d.ts +2 -0
  313. package/dist/lib/execution/config.js +14 -0
  314. package/dist/lib/execution/config.js.map +1 -1
  315. package/dist/lib/execution/devcontainer.js +51 -0
  316. package/dist/lib/execution/devcontainer.js.map +1 -1
  317. package/dist/lib/execution/runners/devcontainer-tmux.js +1 -1
  318. package/dist/lib/execution/runners/devcontainer-tmux.js.map +1 -1
  319. package/dist/lib/execution/runners/devcontainer.js +9 -1
  320. package/dist/lib/execution/runners/devcontainer.js.map +1 -1
  321. package/dist/lib/execution/runners/docker-credentials.d.ts +8 -0
  322. package/dist/lib/execution/runners/docker-credentials.js +20 -3
  323. package/dist/lib/execution/runners/docker-credentials.js.map +1 -1
  324. package/dist/lib/execution/runners/docker-management.d.ts +54 -0
  325. package/dist/lib/execution/runners/docker-management.js +194 -7
  326. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  327. package/dist/lib/execution/runners/index.d.ts +1 -1
  328. package/dist/lib/execution/runners/index.js +1 -1
  329. package/dist/lib/execution/runners/index.js.map +1 -1
  330. package/dist/lib/execution/runners/shared.d.ts +23 -1
  331. package/dist/lib/execution/runners/shared.js +112 -1
  332. package/dist/lib/execution/runners/shared.js.map +1 -1
  333. package/dist/lib/execution/session-utils.d.ts +4 -0
  334. package/dist/lib/execution/session-utils.js +34 -24
  335. package/dist/lib/execution/session-utils.js.map +1 -1
  336. package/dist/lib/execution/spawner.js +8 -1
  337. package/dist/lib/execution/spawner.js.map +1 -1
  338. package/dist/lib/execution/types.js +1 -1
  339. package/dist/lib/external-issues/types.d.ts +3 -3
  340. package/dist/lib/external-issues/types.js +1 -1
  341. package/dist/lib/external-issues/types.js.map +1 -1
  342. package/dist/lib/jira/config.js +10 -4
  343. package/dist/lib/jira/config.js.map +1 -1
  344. package/dist/lib/linear/client.d.ts +13 -0
  345. package/dist/lib/linear/client.js +37 -0
  346. package/dist/lib/linear/client.js.map +1 -1
  347. package/dist/lib/linear/config.js +13 -8
  348. package/dist/lib/linear/config.js.map +1 -1
  349. package/dist/lib/mcp/generator.d.ts +26 -0
  350. package/dist/lib/mcp/generator.js +219 -0
  351. package/dist/lib/mcp/generator.js.map +1 -0
  352. package/dist/lib/mcp/index.d.ts +1 -0
  353. package/dist/lib/mcp/index.js +1 -0
  354. package/dist/lib/mcp/index.js.map +1 -1
  355. package/dist/lib/mcp/tools/index.d.ts +0 -11
  356. package/dist/lib/mcp/tools/index.js +0 -11
  357. package/dist/lib/mcp/tools/index.js.map +1 -1
  358. package/dist/lib/mcp/tools/overrides/index.d.ts +23 -0
  359. package/dist/lib/mcp/tools/overrides/index.js +30 -0
  360. package/dist/lib/mcp/tools/overrides/index.js.map +1 -0
  361. package/dist/lib/mcp/tools/overrides/tmux.d.ts +11 -0
  362. package/dist/lib/mcp/tools/overrides/tmux.js +184 -0
  363. package/dist/lib/mcp/tools/overrides/tmux.js.map +1 -0
  364. package/dist/lib/mcp/tools/overrides/work-start.d.ts +12 -0
  365. package/dist/lib/mcp/tools/overrides/work-start.js +108 -0
  366. package/dist/lib/mcp/tools/overrides/work-start.js.map +1 -0
  367. package/dist/lib/mcp/tools/ticket.js +10 -48
  368. package/dist/lib/mcp/tools/ticket.js.map +1 -1
  369. package/dist/lib/monday/config.js +11 -5
  370. package/dist/lib/monday/config.js.map +1 -1
  371. package/dist/lib/orchestrate/actions.d.ts +20 -0
  372. package/dist/lib/orchestrate/actions.js +194 -0
  373. package/dist/lib/orchestrate/actions.js.map +1 -0
  374. package/dist/lib/orchestrate/config-loader.d.ts +31 -0
  375. package/dist/lib/orchestrate/config-loader.js +201 -0
  376. package/dist/lib/orchestrate/config-loader.js.map +1 -0
  377. package/dist/lib/orchestrate/engine.d.ts +94 -0
  378. package/dist/lib/orchestrate/engine.js +290 -0
  379. package/dist/lib/orchestrate/engine.js.map +1 -0
  380. package/dist/lib/orchestrate/index.d.ts +16 -0
  381. package/dist/lib/orchestrate/index.js +14 -0
  382. package/dist/lib/orchestrate/index.js.map +1 -0
  383. package/dist/lib/orchestrate/poller.d.ts +58 -0
  384. package/dist/lib/orchestrate/poller.js +282 -0
  385. package/dist/lib/orchestrate/poller.js.map +1 -0
  386. package/dist/lib/orchestrate/presets.d.ts +27 -0
  387. package/dist/lib/orchestrate/presets.js +65 -0
  388. package/dist/lib/orchestrate/presets.js.map +1 -0
  389. package/dist/lib/orchestrate/types.d.ts +93 -0
  390. package/dist/lib/orchestrate/types.js +46 -0
  391. package/dist/lib/orchestrate/types.js.map +1 -0
  392. package/dist/lib/pmo/base-command.d.ts +20 -152
  393. package/dist/lib/pmo/base-command.js +32 -198
  394. package/dist/lib/pmo/base-command.js.map +1 -1
  395. package/dist/lib/pmo/index.d.ts +1 -0
  396. package/dist/lib/pmo/index.js +3 -0
  397. package/dist/lib/pmo/index.js.map +1 -1
  398. package/dist/lib/pmo/storage/base.d.ts +0 -18
  399. package/dist/lib/pmo/storage/base.js +0 -231
  400. package/dist/lib/pmo/storage/base.js.map +1 -1
  401. package/dist/lib/pmo/storage/index.d.ts +1 -76
  402. package/dist/lib/pmo/storage/index.js +1 -215
  403. package/dist/lib/pmo/storage/index.js.map +1 -1
  404. package/dist/lib/pmo/storage/specs.js.map +1 -1
  405. package/dist/lib/pmo/storage/tickets.d.ts +2 -2
  406. package/dist/lib/pmo/storage/tickets.js +4 -34
  407. package/dist/lib/pmo/storage/tickets.js.map +1 -1
  408. package/dist/lib/pmo/types.d.ts +0 -37
  409. package/dist/lib/pr/index.d.ts +28 -0
  410. package/dist/lib/pr/index.js +100 -0
  411. package/dist/lib/pr/index.js.map +1 -1
  412. package/dist/lib/providers/clickup-provider.d.ts +28 -0
  413. package/dist/lib/providers/clickup-provider.js +353 -0
  414. package/dist/lib/providers/clickup-provider.js.map +1 -0
  415. package/dist/lib/providers/event-emitting-provider.d.ts +4 -2
  416. package/dist/lib/providers/event-emitting-provider.js +12 -0
  417. package/dist/lib/providers/event-emitting-provider.js.map +1 -1
  418. package/dist/lib/providers/index.d.ts +1 -1
  419. package/dist/lib/providers/index.js.map +1 -1
  420. package/dist/lib/providers/linear-provider.d.ts +4 -2
  421. package/dist/lib/providers/linear-provider.js +106 -0
  422. package/dist/lib/providers/linear-provider.js.map +1 -1
  423. package/dist/lib/providers/pmo-provider.d.ts +4 -2
  424. package/dist/lib/providers/pmo-provider.js +26 -0
  425. package/dist/lib/providers/pmo-provider.js.map +1 -1
  426. package/dist/lib/providers/resolver.d.ts +1 -1
  427. package/dist/lib/providers/resolver.js +16 -5
  428. package/dist/lib/providers/resolver.js.map +1 -1
  429. package/dist/lib/providers/types.d.ts +31 -2
  430. package/dist/lib/runners/claude-code-runner.js +13 -4
  431. package/dist/lib/runners/claude-code-runner.js.map +1 -1
  432. package/dist/lib/runtime-command.d.ts +219 -0
  433. package/dist/lib/runtime-command.js +320 -0
  434. package/dist/lib/runtime-command.js.map +1 -0
  435. package/dist/lib/shortcut/config.js +13 -7
  436. package/dist/lib/shortcut/config.js.map +1 -1
  437. package/dist/lib/telemetry/analytics.d.ts +1 -1
  438. package/dist/lib/telemetry/analytics.js +16 -8
  439. package/dist/lib/telemetry/analytics.js.map +1 -1
  440. package/dist/lib/trello/config.js +17 -12
  441. package/dist/lib/trello/config.js.map +1 -1
  442. package/dist/lib/update-check.d.ts +8 -3
  443. package/dist/lib/update-check.js +16 -5
  444. package/dist/lib/update-check.js.map +1 -1
  445. package/dist/lib/work-lifecycle/events.d.ts +1 -1
  446. package/dist/lib/work-lifecycle/hooks/types.d.ts +3 -2
  447. package/dist/lib/work-lifecycle/hooks/types.js +12 -0
  448. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
  449. package/dist/lib/work-source/config.d.ts +1 -1
  450. package/dist/lib/work-source/config.js +11 -1
  451. package/dist/lib/work-source/config.js.map +1 -1
  452. package/dist/lib/work-source/provider-sources.js +6 -1
  453. package/dist/lib/work-source/provider-sources.js.map +1 -1
  454. package/oclif.manifest.json +2682 -3839
  455. package/package.json +1 -1
  456. package/dist/commands/board/index.js +0 -263
  457. package/dist/commands/board/index.js.map +0 -1
  458. package/dist/commands/board/view.d.ts +0 -15
  459. package/dist/commands/board/view.js +0 -137
  460. package/dist/commands/board/view.js.map +0 -1
  461. package/dist/commands/board/watch.d.ts +0 -15
  462. package/dist/commands/board/watch.js +0 -59
  463. package/dist/commands/board/watch.js.map +0 -1
  464. package/dist/commands/dashboard/index.d.ts +0 -14
  465. package/dist/commands/dashboard/index.js +0 -117
  466. package/dist/commands/dashboard/index.js.map +0 -1
  467. package/dist/commands/dashboard.d.ts +0 -38
  468. package/dist/commands/dashboard.js +0 -353
  469. package/dist/commands/dashboard.js.map +0 -1
  470. package/dist/commands/pmo/init.d.ts +0 -28
  471. package/dist/commands/pmo/init.js +0 -410
  472. package/dist/commands/pmo/init.js.map +0 -1
  473. package/dist/commands/project/archive.js +0 -79
  474. package/dist/commands/project/archive.js.map +0 -1
  475. package/dist/commands/project/create.d.ts +0 -24
  476. package/dist/commands/project/create.js +0 -191
  477. package/dist/commands/project/create.js.map +0 -1
  478. package/dist/commands/project/delete.d.ts +0 -18
  479. package/dist/commands/project/delete.js +0 -115
  480. package/dist/commands/project/delete.js.map +0 -1
  481. package/dist/commands/project/index.js +0 -60
  482. package/dist/commands/project/index.js.map +0 -1
  483. package/dist/commands/project/list.js +0 -115
  484. package/dist/commands/project/list.js.map +0 -1
  485. package/dist/commands/project/spec.d.ts +0 -19
  486. package/dist/commands/project/spec.js +0 -218
  487. package/dist/commands/project/spec.js.map +0 -1
  488. package/dist/commands/project/unarchive.d.ts +0 -17
  489. package/dist/commands/project/unarchive.js +0 -55
  490. package/dist/commands/project/unarchive.js.map +0 -1
  491. package/dist/commands/project/update.d.ts +0 -19
  492. package/dist/commands/project/update.js +0 -161
  493. package/dist/commands/project/update.js.map +0 -1
  494. package/dist/commands/project/view.d.ts +0 -17
  495. package/dist/commands/project/view.js +0 -107
  496. package/dist/commands/project/view.js.map +0 -1
  497. package/dist/commands/ticket/bulk.js +0 -141
  498. package/dist/commands/ticket/bulk.js.map +0 -1
  499. package/dist/commands/ticket/cancel.d.ts +0 -17
  500. package/dist/commands/ticket/cancel.js +0 -206
  501. package/dist/commands/ticket/cancel.js.map +0 -1
  502. package/dist/commands/ticket/category.d.ts +0 -15
  503. package/dist/commands/ticket/category.js +0 -64
  504. package/dist/commands/ticket/category.js.map +0 -1
  505. package/dist/commands/ticket/complete.d.ts +0 -17
  506. package/dist/commands/ticket/complete.js +0 -178
  507. package/dist/commands/ticket/complete.js.map +0 -1
  508. package/dist/commands/ticket/epic.d.ts +0 -21
  509. package/dist/commands/ticket/epic.js +0 -306
  510. package/dist/commands/ticket/epic.js.map +0 -1
  511. package/dist/commands/ticket/link/block.d.ts +0 -15
  512. package/dist/commands/ticket/link/block.js +0 -96
  513. package/dist/commands/ticket/link/block.js.map +0 -1
  514. package/dist/commands/ticket/link/duplicates.d.ts +0 -15
  515. package/dist/commands/ticket/link/duplicates.js +0 -96
  516. package/dist/commands/ticket/link/duplicates.js.map +0 -1
  517. package/dist/commands/ticket/link/index.d.ts +0 -14
  518. package/dist/commands/ticket/link/index.js +0 -99
  519. package/dist/commands/ticket/link/index.js.map +0 -1
  520. package/dist/commands/ticket/link/relates.d.ts +0 -15
  521. package/dist/commands/ticket/link/relates.js +0 -96
  522. package/dist/commands/ticket/link/relates.js.map +0 -1
  523. package/dist/commands/ticket/project.d.ts +0 -19
  524. package/dist/commands/ticket/project.js +0 -257
  525. package/dist/commands/ticket/project.js.map +0 -1
  526. package/dist/commands/ticket/reassign.d.ts +0 -20
  527. package/dist/commands/ticket/reassign.js +0 -311
  528. package/dist/commands/ticket/reassign.js.map +0 -1
  529. package/dist/commands/ticket/resolve.d.ts +0 -68
  530. package/dist/commands/ticket/resolve.js +0 -296
  531. package/dist/commands/ticket/resolve.js.map +0 -1
  532. package/dist/commands/ticket/spec.d.ts +0 -19
  533. package/dist/commands/ticket/spec.js +0 -260
  534. package/dist/commands/ticket/spec.js.map +0 -1
  535. package/dist/commands/ticket/status.d.ts +0 -14
  536. package/dist/commands/ticket/status.js +0 -84
  537. package/dist/commands/ticket/status.js.map +0 -1
  538. package/dist/commands/ticket/view.d.ts +0 -14
  539. package/dist/commands/ticket/view.js +0 -109
  540. package/dist/commands/ticket/view.js.map +0 -1
  541. package/dist/lib/mcp/tools/board.d.ts +0 -6
  542. package/dist/lib/mcp/tools/board.js +0 -190
  543. package/dist/lib/mcp/tools/board.js.map +0 -1
  544. package/dist/lib/mcp/tools/category.d.ts +0 -6
  545. package/dist/lib/mcp/tools/category.js +0 -85
  546. package/dist/lib/mcp/tools/category.js.map +0 -1
  547. package/dist/lib/mcp/tools/epic.d.ts +0 -6
  548. package/dist/lib/mcp/tools/epic.js +0 -184
  549. package/dist/lib/mcp/tools/epic.js.map +0 -1
  550. package/dist/lib/mcp/tools/label.d.ts +0 -6
  551. package/dist/lib/mcp/tools/label.js +0 -339
  552. package/dist/lib/mcp/tools/label.js.map +0 -1
  553. package/dist/lib/mcp/tools/phase.d.ts +0 -6
  554. package/dist/lib/mcp/tools/phase.js +0 -132
  555. package/dist/lib/mcp/tools/phase.js.map +0 -1
  556. package/dist/lib/mcp/tools/project.d.ts +0 -6
  557. package/dist/lib/mcp/tools/project.js +0 -197
  558. package/dist/lib/mcp/tools/project.js.map +0 -1
  559. package/dist/lib/mcp/tools/roadmap.d.ts +0 -6
  560. package/dist/lib/mcp/tools/roadmap.js +0 -124
  561. package/dist/lib/mcp/tools/roadmap.js.map +0 -1
  562. package/dist/lib/mcp/tools/status.d.ts +0 -6
  563. package/dist/lib/mcp/tools/status.js +0 -110
  564. package/dist/lib/mcp/tools/status.js.map +0 -1
  565. package/dist/lib/mcp/tools/template.d.ts +0 -6
  566. package/dist/lib/mcp/tools/template.js +0 -108
  567. package/dist/lib/mcp/tools/template.js.map +0 -1
  568. package/dist/lib/mcp/tools/view.d.ts +0 -6
  569. package/dist/lib/mcp/tools/view.js +0 -77
  570. package/dist/lib/mcp/tools/view.js.map +0 -1
  571. package/dist/lib/mcp/tools/workflow.d.ts +0 -6
  572. package/dist/lib/mcp/tools/workflow.js +0 -96
  573. package/dist/lib/mcp/tools/workflow.js.map +0 -1
  574. package/dist/lib/pmo/storage/categories.d.ts +0 -50
  575. package/dist/lib/pmo/storage/categories.js +0 -206
  576. package/dist/lib/pmo/storage/categories.js.map +0 -1
  577. package/dist/lib/pmo/storage/labels.d.ts +0 -55
  578. package/dist/lib/pmo/storage/labels.js +0 -347
  579. package/dist/lib/pmo/storage/labels.js.map +0 -1
  580. package/dist/lib/pmo/storage/phases.d.ts +0 -65
  581. package/dist/lib/pmo/storage/phases.js +0 -393
  582. package/dist/lib/pmo/storage/phases.js.map +0 -1
  583. package/dist/lib/pmo/storage/roadmaps.d.ts +0 -64
  584. package/dist/lib/pmo/storage/roadmaps.js +0 -373
  585. package/dist/lib/pmo/storage/roadmaps.js.map +0 -1
  586. package/dist/lib/pmo/storage/views.d.ts +0 -57
  587. package/dist/lib/pmo/storage/views.js +0 -456
  588. package/dist/lib/pmo/storage/views.js.map +0 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Orchestrate External Event Poller
3
+ *
4
+ * Polls external systems (GitHub, database) and fires orchestrate events
5
+ * when conditions are detected. This bridges external state changes into
6
+ * the internal event bus.
7
+ *
8
+ * Supported polls:
9
+ * - GitHub: open PR CI status, merge conflicts
10
+ * - Database: ready tickets, agent lifecycle states
11
+ */
12
+ import type Database from 'better-sqlite3';
13
+ import type { OrchestrateEngine } from './engine.js';
14
+ export interface PollerOptions {
15
+ engine: OrchestrateEngine;
16
+ db: Database.Database;
17
+ log: (msg: string) => void;
18
+ /** Working directory for gh CLI commands */
19
+ cwd?: string;
20
+ }
21
+ export declare class OrchestratePoller {
22
+ private engine;
23
+ private db;
24
+ private log;
25
+ private cwd?;
26
+ /** Tracks known PR state to detect transitions. */
27
+ private trackedPRs;
28
+ /** Track which tickets we've already fired on_ticket_ready for. */
29
+ private firedReadyTickets;
30
+ /** Track known agent lifecycle states. */
31
+ private lastAgentStates;
32
+ private ghAvailable;
33
+ constructor(options: PollerOptions);
34
+ /**
35
+ * Run one poll cycle. Called by the daemon on each interval.
36
+ */
37
+ poll(): Promise<void>;
38
+ /**
39
+ * Check for tickets in "Ready" (todo) status with no active agent.
40
+ * Fires on_ticket_ready for each.
41
+ */
42
+ private pollReadyTickets;
43
+ /**
44
+ * Check agent_work table for lifecycle state changes.
45
+ * Fires on_agent_died, on_agent_completed, on_agent_idle as appropriate.
46
+ */
47
+ private pollAgentLifecycle;
48
+ /**
49
+ * Check GitHub PRs for CI completion and merge conflicts.
50
+ * Fires on_ci_green, on_ci_failed, on_pr_conflicting, on_pr_merged.
51
+ */
52
+ private pollGitHubPRs;
53
+ /**
54
+ * Extract ticket ID from branch name.
55
+ * Branch format: {ticketId}/{type}/{owner}/{agent}/{description}
56
+ */
57
+ private extractTicketFromBranch;
58
+ }
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Orchestrate External Event Poller
3
+ *
4
+ * Polls external systems (GitHub, database) and fires orchestrate events
5
+ * when conditions are detected. This bridges external state changes into
6
+ * the internal event bus.
7
+ *
8
+ * Supported polls:
9
+ * - GitHub: open PR CI status, merge conflicts
10
+ * - Database: ready tickets, agent lifecycle states
11
+ */
12
+ import { execSync } from 'node:child_process';
13
+ import { isGHInstalled, isGHAuthenticated, listOpenPRs, getPRChecks, getPRByNumber } from '../pr/index.js';
14
+ // =============================================================================
15
+ // Poller
16
+ // =============================================================================
17
+ export class OrchestratePoller {
18
+ engine;
19
+ db;
20
+ log;
21
+ cwd;
22
+ /** Tracks known PR state to detect transitions. */
23
+ trackedPRs = new Map();
24
+ /** Track which tickets we've already fired on_ticket_ready for. */
25
+ firedReadyTickets = new Set();
26
+ /** Track known agent lifecycle states. */
27
+ lastAgentStates = new Map();
28
+ ghAvailable = null;
29
+ constructor(options) {
30
+ this.engine = options.engine;
31
+ this.db = options.db;
32
+ this.log = options.log;
33
+ this.cwd = options.cwd;
34
+ }
35
+ /**
36
+ * Run one poll cycle. Called by the daemon on each interval.
37
+ */
38
+ async poll() {
39
+ await this.pollReadyTickets();
40
+ await this.pollAgentLifecycle();
41
+ await this.pollGitHubPRs();
42
+ }
43
+ // ===========================================================================
44
+ // Ticket Polling
45
+ // ===========================================================================
46
+ /**
47
+ * Check for tickets in "Ready" (todo) status with no active agent.
48
+ * Fires on_ticket_ready for each.
49
+ */
50
+ async pollReadyTickets() {
51
+ try {
52
+ const readyTickets = this.db.prepare(`
53
+ SELECT t.id, t.title
54
+ FROM pmo_tickets t
55
+ JOIN pmo_workflow_statuses ws ON t.status_id = ws.id
56
+ WHERE ws.category = 'todo'
57
+ AND t.assignee IS NULL
58
+ AND t.id NOT IN (
59
+ SELECT ticket_id FROM agent_work WHERE status IN ('starting', 'running')
60
+ )
61
+ LIMIT 10
62
+ `).all();
63
+ for (const ticket of readyTickets) {
64
+ if (this.firedReadyTickets.has(ticket.id))
65
+ continue;
66
+ this.firedReadyTickets.add(ticket.id);
67
+ this.log(`[poll] Detected ready ticket: ${ticket.id}`);
68
+ await this.engine.fireEvent('on_ticket_ready', {
69
+ event: 'on_ticket_ready',
70
+ ticket: ticket.id,
71
+ });
72
+ }
73
+ }
74
+ catch {
75
+ // Non-fatal polling error
76
+ }
77
+ }
78
+ // ===========================================================================
79
+ // Agent Lifecycle Polling
80
+ // ===========================================================================
81
+ /**
82
+ * Check agent_work table for lifecycle state changes.
83
+ * Fires on_agent_died, on_agent_completed, on_agent_idle as appropriate.
84
+ */
85
+ async pollAgentLifecycle() {
86
+ try {
87
+ const agents = this.db.prepare(`
88
+ SELECT id, ticket_id, agent_name, status, lifecycle_state, container_id, last_heartbeat
89
+ FROM agent_work
90
+ WHERE status IN ('starting', 'running', 'error')
91
+ LIMIT 50
92
+ `).all();
93
+ for (const agent of agents) {
94
+ const prevState = this.lastAgentStates.get(agent.id);
95
+ const currentState = agent.lifecycle_state || agent.status;
96
+ if (prevState === currentState)
97
+ continue;
98
+ this.lastAgentStates.set(agent.id, currentState);
99
+ // Skip the first observation (we only fire on transitions)
100
+ if (!prevState)
101
+ continue;
102
+ const ctx = {
103
+ event: '',
104
+ ticket: agent.ticket_id,
105
+ agent: agent.agent_name,
106
+ container: agent.container_id || undefined,
107
+ executionId: agent.id,
108
+ };
109
+ if (currentState === 'died' || (agent.status === 'error' && prevState !== 'error')) {
110
+ this.log(`[poll] Agent died: ${agent.agent_name} (${agent.ticket_id})`);
111
+ await this.engine.fireEvent('on_agent_died', { ...ctx, event: 'on_agent_died' });
112
+ }
113
+ else if (currentState === 'completed') {
114
+ this.log(`[poll] Agent completed: ${agent.agent_name} (${agent.ticket_id})`);
115
+ await this.engine.fireEvent('on_agent_completed', { ...ctx, event: 'on_agent_completed' });
116
+ }
117
+ else if (currentState === 'idle') {
118
+ this.log(`[poll] Agent idle: ${agent.agent_name} (${agent.ticket_id})`);
119
+ await this.engine.fireEvent('on_agent_idle', { ...ctx, event: 'on_agent_idle' });
120
+ }
121
+ }
122
+ // Detect idle agents by heartbeat timeout (5 minutes)
123
+ try {
124
+ const idleAgents = this.db.prepare(`
125
+ SELECT id, ticket_id, agent_name, container_id
126
+ FROM agent_work
127
+ WHERE status = 'running'
128
+ AND last_heartbeat IS NOT NULL
129
+ AND datetime(last_heartbeat) < datetime('now', '-5 minutes')
130
+ AND (lifecycle_state IS NULL OR lifecycle_state = 'healthy')
131
+ LIMIT 10
132
+ `).all();
133
+ for (const agent of idleAgents) {
134
+ const prevState = this.lastAgentStates.get(agent.id);
135
+ if (prevState === 'idle')
136
+ continue;
137
+ this.lastAgentStates.set(agent.id, 'idle');
138
+ if (prevState) {
139
+ this.log(`[poll] Agent idle (heartbeat timeout): ${agent.agent_name}`);
140
+ await this.engine.fireEvent('on_agent_idle', {
141
+ event: 'on_agent_idle',
142
+ ticket: agent.ticket_id,
143
+ agent: agent.agent_name,
144
+ container: agent.container_id || undefined,
145
+ executionId: agent.id,
146
+ });
147
+ }
148
+ }
149
+ }
150
+ catch {
151
+ // last_heartbeat column might not exist yet
152
+ }
153
+ }
154
+ catch {
155
+ // Non-fatal polling error
156
+ }
157
+ }
158
+ // ===========================================================================
159
+ // GitHub PR Polling
160
+ // ===========================================================================
161
+ /**
162
+ * Check GitHub PRs for CI completion and merge conflicts.
163
+ * Fires on_ci_green, on_ci_failed, on_pr_conflicting, on_pr_merged.
164
+ */
165
+ async pollGitHubPRs() {
166
+ if (this.ghAvailable === null) {
167
+ this.ghAvailable = isGHInstalled() && isGHAuthenticated();
168
+ }
169
+ if (!this.ghAvailable)
170
+ return;
171
+ try {
172
+ const openPRs = listOpenPRs(this.cwd);
173
+ for (const pr of openPRs) {
174
+ const tracked = this.trackedPRs.get(pr.number);
175
+ const ticketId = this.extractTicketFromBranch(pr.headBranch);
176
+ // --- CI Status ---
177
+ const checks = getPRChecks(pr.number, this.cwd);
178
+ let ciState = 'unknown';
179
+ if (checks.length > 0) {
180
+ const allDone = checks.every(c => c.status === 'COMPLETED' || c.conclusion);
181
+ if (allDone) {
182
+ const allPassed = checks.every(c => c.conclusion === 'SUCCESS' || c.conclusion === 'NEUTRAL' || c.conclusion === 'SKIPPED');
183
+ ciState = allPassed ? 'success' : 'failure';
184
+ }
185
+ else {
186
+ ciState = 'pending';
187
+ }
188
+ }
189
+ // Fire CI events on state transition
190
+ if (tracked && ciState !== tracked.lastCIState && ciState !== 'pending' && ciState !== 'unknown') {
191
+ if (ciState === 'success') {
192
+ this.log(`[poll] CI green: PR #${pr.number}`);
193
+ await this.engine.fireEvent('on_ci_green', {
194
+ event: 'on_ci_green',
195
+ pr: pr.number,
196
+ branch: pr.headBranch,
197
+ ticket: ticketId,
198
+ prUrl: pr.url,
199
+ });
200
+ }
201
+ else if (ciState === 'failure') {
202
+ this.log(`[poll] CI failed: PR #${pr.number}`);
203
+ await this.engine.fireEvent('on_ci_failed', {
204
+ event: 'on_ci_failed',
205
+ pr: pr.number,
206
+ branch: pr.headBranch,
207
+ ticket: ticketId,
208
+ prUrl: pr.url,
209
+ });
210
+ }
211
+ }
212
+ // --- Merge Conflicts ---
213
+ let mergeable = 'UNKNOWN';
214
+ try {
215
+ const mergeableResult = execSync(`gh pr view ${pr.number} --json mergeable -q .mergeable`, { cwd: this.cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
216
+ if (mergeableResult === 'CONFLICTING') {
217
+ mergeable = 'CONFLICTING';
218
+ }
219
+ else if (mergeableResult === 'MERGEABLE') {
220
+ mergeable = 'MERGEABLE';
221
+ }
222
+ }
223
+ catch {
224
+ // gh command failed
225
+ }
226
+ if (tracked &&
227
+ mergeable === 'CONFLICTING' &&
228
+ tracked.lastMergeable !== 'CONFLICTING') {
229
+ this.log(`[poll] PR conflicting: PR #${pr.number}`);
230
+ await this.engine.fireEvent('on_pr_conflicting', {
231
+ event: 'on_pr_conflicting',
232
+ pr: pr.number,
233
+ branch: pr.headBranch,
234
+ ticket: ticketId,
235
+ prUrl: pr.url,
236
+ });
237
+ }
238
+ // Update tracking
239
+ this.trackedPRs.set(pr.number, {
240
+ number: pr.number,
241
+ lastCIState: ciState,
242
+ lastMergeable: mergeable,
243
+ });
244
+ }
245
+ // Detect merged/closed PRs (were tracked but no longer open)
246
+ for (const [prNum, tracked] of this.trackedPRs) {
247
+ if (!openPRs.some(p => p.number === prNum)) {
248
+ // PR was open, now it's not — check if merged
249
+ const pr = getPRByNumber(prNum, this.cwd);
250
+ if (pr?.state === 'MERGED') {
251
+ const ticketId = this.extractTicketFromBranch(pr.headBranch);
252
+ this.log(`[poll] PR merged: PR #${prNum}`);
253
+ await this.engine.fireEvent('on_pr_merged', {
254
+ event: 'on_pr_merged',
255
+ pr: prNum,
256
+ branch: pr.headBranch,
257
+ ticket: ticketId,
258
+ prUrl: pr.url,
259
+ });
260
+ }
261
+ this.trackedPRs.delete(prNum);
262
+ }
263
+ }
264
+ }
265
+ catch {
266
+ // Non-fatal GitHub polling error
267
+ }
268
+ }
269
+ // ===========================================================================
270
+ // Helpers
271
+ // ===========================================================================
272
+ /**
273
+ * Extract ticket ID from branch name.
274
+ * Branch format: {ticketId}/{type}/{owner}/{agent}/{description}
275
+ */
276
+ extractTicketFromBranch(branch) {
277
+ // Match patterns like PRLT-123/... or TKT-456/...
278
+ const match = branch.match(/^([A-Z]+-\d+|TKT-\d+)\//);
279
+ return match ? match[1] : undefined;
280
+ }
281
+ }
282
+ //# sourceMappingURL=poller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/poller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Orchestrate Presets
3
+ *
4
+ * Pre-configured hook sets for common automation levels.
5
+ *
6
+ * - aggressive: auto-everything — no human needed
7
+ * - conservative: confirm everything — human approves all
8
+ * - supervised: auto for safe ops, confirm for destructive
9
+ */
10
+ import type { HookMode, OrchestrateEvent, PresetName } from './types.js';
11
+ interface PresetHook {
12
+ event: OrchestrateEvent;
13
+ action: string;
14
+ mode: HookMode;
15
+ config?: Record<string, unknown>;
16
+ }
17
+ interface PresetDefinition {
18
+ name: PresetName;
19
+ description: string;
20
+ hooks: PresetHook[];
21
+ }
22
+ export declare const PRESETS: Record<PresetName, PresetDefinition>;
23
+ /**
24
+ * Get a preset definition by name.
25
+ */
26
+ export declare function getPreset(name: PresetName): PresetDefinition;
27
+ export {};
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Orchestrate Presets
3
+ *
4
+ * Pre-configured hook sets for common automation levels.
5
+ *
6
+ * - aggressive: auto-everything — no human needed
7
+ * - conservative: confirm everything — human approves all
8
+ * - supervised: auto for safe ops, confirm for destructive
9
+ */
10
+ const SHARED_HOOKS = [
11
+ { event: 'on_ci_green', action: 'merge-pr' },
12
+ { event: 'on_pr_merged', action: 'move-ticket', config: { target: 'done' } },
13
+ { event: 'on_pr_opened', action: 'move-ticket', config: { target: 'review' } },
14
+ { event: 'on_pr_merged', action: 'rebase-conflicting-prs' },
15
+ { event: 'on_pr_conflicting', action: 'rebase-conflicting-prs' },
16
+ { event: 'on_ticket_ready', action: 'spawn-agent' },
17
+ { event: 'on_agent_died', action: 'respawn', config: { max_retries: 2 } },
18
+ { event: 'on_agent_died', action: 'notify' },
19
+ { event: 'on_ci_failed', action: 'notify' },
20
+ { event: 'on_ci_failed', action: 'spawn-fix-agent' },
21
+ { event: 'on_agent_completed', action: 'cleanup-container' },
22
+ { event: 'on_agent_idle', action: 'health-check' },
23
+ { event: 'on_agent_spawned', action: 'move-ticket', config: { target: 'in-progress' } },
24
+ ];
25
+ /** Safe actions that can be auto-executed even in supervised mode. */
26
+ const SAFE_ACTIONS = new Set([
27
+ 'move-ticket',
28
+ 'notify',
29
+ 'cleanup-container',
30
+ 'health-check',
31
+ 'rebase-conflicting-prs',
32
+ ]);
33
+ export const PRESETS = {
34
+ aggressive: {
35
+ name: 'aggressive',
36
+ description: 'Auto everything — no human needed',
37
+ hooks: SHARED_HOOKS.map(h => ({
38
+ ...h,
39
+ mode: 'auto',
40
+ })),
41
+ },
42
+ conservative: {
43
+ name: 'conservative',
44
+ description: 'Confirm everything — human approves all actions',
45
+ hooks: SHARED_HOOKS.map(h => ({
46
+ ...h,
47
+ mode: 'confirm',
48
+ })),
49
+ },
50
+ supervised: {
51
+ name: 'supervised',
52
+ description: 'Auto for safe ops, confirm for destructive actions',
53
+ hooks: SHARED_HOOKS.map(h => ({
54
+ ...h,
55
+ mode: (SAFE_ACTIONS.has(h.action) ? 'auto' : 'confirm'),
56
+ })),
57
+ },
58
+ };
59
+ /**
60
+ * Get a preset definition by name.
61
+ */
62
+ export function getPreset(name) {
63
+ return PRESETS[name];
64
+ }
65
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,MAAM,YAAY,GAAyF;IACzG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE;IAC5C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC5E,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAC9E,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE;IAC3D,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,wBAAwB,EAAE;IAChE,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE;IACnD,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;IACzE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE;IACpD,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC5D,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE;IAClD,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;CACxF,CAAA;AAED,sEAAsE;AACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,cAAc;IACd,wBAAwB;CACzB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAyC;IAC3D,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,MAAkB;SACzB,CAAC,CAAC;KACJ;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iDAAiD;QAC9D,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,SAAqB;SAC5B,CAAC,CAAC;KACJ;IAED,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAa;SACpE,CAAC,CAAC;KACJ;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Orchestrate Types
3
+ *
4
+ * Defines events, hook modes, actions, and presets for the orchestrate daemon.
5
+ * The orchestrate system extends the existing work-lifecycle hooks with
6
+ * built-in actions and HITL (human-in-the-loop) controls.
7
+ */
8
+ /**
9
+ * All events the orchestrate daemon can react to.
10
+ * Extends the existing HookableEvent set with CI/PR/agent lifecycle events.
11
+ */
12
+ export type OrchestrateEvent = 'work:started' | 'work:status_changed' | 'work:pr_created' | 'work:pr_merged' | 'work:pr_closed' | 'work:completed' | 'agent:spawned' | 'agent:stopped' | 'on_ci_green' | 'on_ci_failed' | 'on_pr_opened' | 'on_pr_merged' | 'on_pr_conflicting' | 'on_ticket_ready' | 'on_agent_spawned' | 'on_agent_died' | 'on_agent_completed' | 'on_agent_idle' | 'on_version_published';
13
+ /** All valid orchestrate event names. */
14
+ export declare const ORCHESTRATE_EVENTS: OrchestrateEvent[];
15
+ /**
16
+ * Automation level for a hook.
17
+ *
18
+ * - auto: fires immediately, no human needed
19
+ * - confirm: pauses, notifies, waits for approval
20
+ * - notify: fires but also pings (log, Slack, dashboard)
21
+ * - off: disabled
22
+ */
23
+ export type HookMode = 'auto' | 'confirm' | 'notify' | 'off';
24
+ /** All valid hook modes. */
25
+ export declare const HOOK_MODES: HookMode[];
26
+ /**
27
+ * Built-in orchestrate actions.
28
+ * These are first-class actions the daemon knows how to execute natively.
29
+ */
30
+ export type BuiltinAction = 'merge-pr' | 'move-ticket' | 'rebase-conflicting-prs' | 'spawn-agent' | 'respawn' | 'notify' | 'cleanup-container' | 'spawn-fix-agent' | 'health-check';
31
+ /** All valid built-in action names. */
32
+ export declare const BUILTIN_ACTIONS: BuiltinAction[];
33
+ /**
34
+ * A single hook entry as defined in hooks.yml.
35
+ */
36
+ export interface HookYamlEntry {
37
+ action: string;
38
+ mode: HookMode;
39
+ max_retries?: number;
40
+ args?: Record<string, string>;
41
+ }
42
+ /**
43
+ * The full hooks.yml file shape.
44
+ * Keys are event names, values are arrays of hook entries.
45
+ */
46
+ export type HooksYaml = Record<string, HookYamlEntry[]>;
47
+ /**
48
+ * The .proletariat/workflow.yml file shape.
49
+ */
50
+ export interface WorkflowYaml {
51
+ branches?: {
52
+ target?: string;
53
+ strategy?: 'squash' | 'merge' | 'rebase';
54
+ };
55
+ on_implement_complete?: string[];
56
+ on_review_complete?: string[];
57
+ review?: {
58
+ required?: boolean | 'auto';
59
+ auto_merge_on_green?: boolean;
60
+ };
61
+ }
62
+ /**
63
+ * Preset name for quick hook configuration.
64
+ */
65
+ export type PresetName = 'aggressive' | 'conservative' | 'supervised';
66
+ /** All valid preset names. */
67
+ export declare const PRESET_NAMES: PresetName[];
68
+ /**
69
+ * Event context passed to hook handlers at runtime.
70
+ */
71
+ export interface OrchestrateEventContext {
72
+ event: string;
73
+ ticket?: string;
74
+ pr?: number;
75
+ branch?: string;
76
+ agent?: string;
77
+ container?: string;
78
+ executionId?: string;
79
+ prUrl?: string;
80
+ projectId?: string;
81
+ [key: string]: unknown;
82
+ }
83
+ /**
84
+ * Result of running a single orchestrate hook action.
85
+ */
86
+ export interface OrchestrateActionResult {
87
+ action: string;
88
+ success: boolean;
89
+ error?: string;
90
+ durationMs: number;
91
+ skipped?: boolean;
92
+ awaitingConfirmation?: boolean;
93
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Orchestrate Types
3
+ *
4
+ * Defines events, hook modes, actions, and presets for the orchestrate daemon.
5
+ * The orchestrate system extends the existing work-lifecycle hooks with
6
+ * built-in actions and HITL (human-in-the-loop) controls.
7
+ */
8
+ /** All valid orchestrate event names. */
9
+ export const ORCHESTRATE_EVENTS = [
10
+ 'work:started',
11
+ 'work:status_changed',
12
+ 'work:pr_created',
13
+ 'work:pr_merged',
14
+ 'work:pr_closed',
15
+ 'work:completed',
16
+ 'agent:spawned',
17
+ 'agent:stopped',
18
+ 'on_ci_green',
19
+ 'on_ci_failed',
20
+ 'on_pr_opened',
21
+ 'on_pr_merged',
22
+ 'on_pr_conflicting',
23
+ 'on_ticket_ready',
24
+ 'on_agent_spawned',
25
+ 'on_agent_died',
26
+ 'on_agent_completed',
27
+ 'on_agent_idle',
28
+ 'on_version_published',
29
+ ];
30
+ /** All valid hook modes. */
31
+ export const HOOK_MODES = ['auto', 'confirm', 'notify', 'off'];
32
+ /** All valid built-in action names. */
33
+ export const BUILTIN_ACTIONS = [
34
+ 'merge-pr',
35
+ 'move-ticket',
36
+ 'rebase-conflicting-prs',
37
+ 'spawn-agent',
38
+ 'respawn',
39
+ 'notify',
40
+ 'cleanup-container',
41
+ 'spawn-fix-agent',
42
+ 'health-check',
43
+ ];
44
+ /** All valid preset names. */
45
+ export const PRESET_NAMES = ['aggressive', 'conservative', 'supervised'];
46
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH,yCAAyC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,cAAc;IACd,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,oBAAoB;IACpB,eAAe;IACf,sBAAsB;CACvB,CAAA;AAgBD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AAqB1E,uCAAuC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,UAAU;IACV,aAAa;IACb,wBAAwB;IACxB,aAAa;IACb,SAAS;IACT,QAAQ;IACR,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;CACf,CAAA;AAmDD,8BAA8B;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAiB,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA"}