@proletariat/cli 0.3.92 → 0.3.93

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 (260) hide show
  1. package/dist/commands/agent/auth.js +2 -6
  2. package/dist/commands/agent/auth.js.map +1 -1
  3. package/dist/commands/agent/cleanup.js +5 -5
  4. package/dist/commands/agent/cleanup.js.map +1 -1
  5. package/dist/commands/agent/gc.d.ts +17 -0
  6. package/dist/commands/agent/gc.js +75 -0
  7. package/dist/commands/agent/gc.js.map +1 -0
  8. package/dist/commands/agent/list.js +2 -2
  9. package/dist/commands/agent/list.js.map +1 -1
  10. package/dist/commands/agent/shell.js +3 -5
  11. package/dist/commands/agent/shell.js.map +1 -1
  12. package/dist/commands/branch/create.js +2 -2
  13. package/dist/commands/branch/create.js.map +1 -1
  14. package/dist/commands/claude/index.js +2 -2
  15. package/dist/commands/claude/index.js.map +1 -1
  16. package/dist/commands/claude/open.js +11 -5
  17. package/dist/commands/claude/open.js.map +1 -1
  18. package/dist/commands/config/index.js +88 -7
  19. package/dist/commands/config/index.js.map +1 -1
  20. package/dist/commands/db/repair.js +2 -2
  21. package/dist/commands/db/repair.js.map +1 -1
  22. package/dist/commands/docker/clean.js +2 -4
  23. package/dist/commands/docker/clean.js.map +1 -1
  24. package/dist/commands/docker/index.js +2 -4
  25. package/dist/commands/docker/index.js.map +1 -1
  26. package/dist/commands/docker/list.js +2 -4
  27. package/dist/commands/docker/list.js.map +1 -1
  28. package/dist/commands/docker/logs.js +2 -4
  29. package/dist/commands/docker/logs.js.map +1 -1
  30. package/dist/commands/docker/restart.js +2 -4
  31. package/dist/commands/docker/restart.js.map +1 -1
  32. package/dist/commands/docker/shell.js +2 -4
  33. package/dist/commands/docker/shell.js.map +1 -1
  34. package/dist/commands/docker/start.js +2 -4
  35. package/dist/commands/docker/start.js.map +1 -1
  36. package/dist/commands/docker/stop.js +2 -4
  37. package/dist/commands/docker/stop.js.map +1 -1
  38. package/dist/commands/docker/sync.js +2 -4
  39. package/dist/commands/docker/sync.js.map +1 -1
  40. package/dist/commands/execution/config.js +39 -0
  41. package/dist/commands/execution/config.js.map +1 -1
  42. package/dist/commands/execution/list.js +2 -4
  43. package/dist/commands/execution/list.js.map +1 -1
  44. package/dist/commands/execution/logs.js +2 -4
  45. package/dist/commands/execution/logs.js.map +1 -1
  46. package/dist/commands/execution/stop.js +2 -4
  47. package/dist/commands/execution/stop.js.map +1 -1
  48. package/dist/commands/execution/view.js +2 -4
  49. package/dist/commands/execution/view.js.map +1 -1
  50. package/dist/commands/gh/login.js +2 -1
  51. package/dist/commands/gh/login.js.map +1 -1
  52. package/dist/commands/gh/status.js +18 -2
  53. package/dist/commands/gh/status.js.map +1 -1
  54. package/dist/commands/hook/export.d.ts +17 -0
  55. package/dist/commands/hook/export.js +52 -0
  56. package/dist/commands/hook/export.js.map +1 -0
  57. package/dist/commands/hook/fire.d.ts +29 -0
  58. package/dist/commands/hook/fire.js +139 -0
  59. package/dist/commands/hook/fire.js.map +1 -0
  60. package/dist/commands/hook/index.d.ts +14 -0
  61. package/dist/commands/hook/index.js +53 -0
  62. package/dist/commands/hook/index.js.map +1 -0
  63. package/dist/commands/hook/list.d.ts +19 -0
  64. package/dist/commands/hook/list.js +136 -0
  65. package/dist/commands/hook/list.js.map +1 -0
  66. package/dist/commands/hook/preset.d.ts +22 -0
  67. package/dist/commands/hook/preset.js +76 -0
  68. package/dist/commands/hook/preset.js.map +1 -0
  69. package/dist/commands/mcp-server.js +2 -3
  70. package/dist/commands/mcp-server.js.map +1 -1
  71. package/dist/commands/orchestrate/index.d.ts +35 -0
  72. package/dist/commands/orchestrate/index.js +267 -0
  73. package/dist/commands/orchestrate/index.js.map +1 -0
  74. package/dist/commands/orchestrator/attach.js +2 -3
  75. package/dist/commands/orchestrator/attach.js.map +1 -1
  76. package/dist/commands/orchestrator/start.js +22 -31
  77. package/dist/commands/orchestrator/start.js.map +1 -1
  78. package/dist/commands/orchestrator/stop.js +21 -26
  79. package/dist/commands/orchestrator/stop.js.map +1 -1
  80. package/dist/commands/qa/index.js +3 -3
  81. package/dist/commands/qa/index.js.map +1 -1
  82. package/dist/commands/session/attach.js +5 -7
  83. package/dist/commands/session/attach.js.map +1 -1
  84. package/dist/commands/session/cleanup.js +2 -4
  85. package/dist/commands/session/cleanup.js.map +1 -1
  86. package/dist/commands/session/exec.js +2 -3
  87. package/dist/commands/session/exec.js.map +1 -1
  88. package/dist/commands/session/health.js +2 -4
  89. package/dist/commands/session/health.js.map +1 -1
  90. package/dist/commands/session/inspect.js +2 -3
  91. package/dist/commands/session/inspect.js.map +1 -1
  92. package/dist/commands/session/list.js +2 -4
  93. package/dist/commands/session/list.js.map +1 -1
  94. package/dist/commands/session/peek.js +3 -6
  95. package/dist/commands/session/peek.js.map +1 -1
  96. package/dist/commands/session/poke.js +2 -4
  97. package/dist/commands/session/poke.js.map +1 -1
  98. package/dist/commands/session/prune.js +2 -4
  99. package/dist/commands/session/prune.js.map +1 -1
  100. package/dist/commands/session/report.js +2 -4
  101. package/dist/commands/session/report.js.map +1 -1
  102. package/dist/commands/session/restart.js +2 -3
  103. package/dist/commands/session/restart.js.map +1 -1
  104. package/dist/commands/ticket/complete.js +20 -5
  105. package/dist/commands/ticket/complete.js.map +1 -1
  106. package/dist/commands/ticket/create.d.ts +3 -4
  107. package/dist/commands/ticket/create.js +69 -88
  108. package/dist/commands/ticket/create.js.map +1 -1
  109. package/dist/commands/ticket/edit.js +22 -14
  110. package/dist/commands/ticket/edit.js.map +1 -1
  111. package/dist/commands/ticket/reassign.js +35 -6
  112. package/dist/commands/ticket/reassign.js.map +1 -1
  113. package/dist/commands/ticket/resolve.js +15 -5
  114. package/dist/commands/ticket/resolve.js.map +1 -1
  115. package/dist/commands/ticket/update.js +31 -14
  116. package/dist/commands/ticket/update.js.map +1 -1
  117. package/dist/commands/ticket/view.js +9 -5
  118. package/dist/commands/ticket/view.js.map +1 -1
  119. package/dist/commands/work/complete.js +2 -3
  120. package/dist/commands/work/complete.js.map +1 -1
  121. package/dist/commands/work/hooks/add.js +2 -4
  122. package/dist/commands/work/hooks/add.js.map +1 -1
  123. package/dist/commands/work/hooks/list.js +2 -4
  124. package/dist/commands/work/hooks/list.js.map +1 -1
  125. package/dist/commands/work/hooks/remove.js +2 -4
  126. package/dist/commands/work/hooks/remove.js.map +1 -1
  127. package/dist/commands/work/hooks/toggle.js +2 -4
  128. package/dist/commands/work/hooks/toggle.js.map +1 -1
  129. package/dist/commands/work/index.js +4 -0
  130. package/dist/commands/work/index.js.map +1 -1
  131. package/dist/commands/work/ready.js +2 -3
  132. package/dist/commands/work/ready.js.map +1 -1
  133. package/dist/commands/work/rebase.d.ts +33 -0
  134. package/dist/commands/work/rebase.js +394 -0
  135. package/dist/commands/work/rebase.js.map +1 -0
  136. package/dist/commands/work/ship.d.ts +1 -0
  137. package/dist/commands/work/ship.js +49 -4
  138. package/dist/commands/work/ship.js.map +1 -1
  139. package/dist/commands/work/spawn.js +2 -4
  140. package/dist/commands/work/spawn.js.map +1 -1
  141. package/dist/commands/work/start.d.ts +7 -0
  142. package/dist/commands/work/start.js +190 -22
  143. package/dist/commands/work/start.js.map +1 -1
  144. package/dist/commands/work/stop.js +2 -4
  145. package/dist/commands/work/stop.js.map +1 -1
  146. package/dist/commands/work/watch.js +2 -4
  147. package/dist/commands/work/watch.js.map +1 -1
  148. package/dist/hooks/init.js +1 -1
  149. package/dist/hooks/init.js.map +1 -1
  150. package/dist/lib/agents/commands.d.ts +9 -3
  151. package/dist/lib/agents/commands.js +103 -88
  152. package/dist/lib/agents/commands.js.map +1 -1
  153. package/dist/lib/dashboard/server.js +1 -1
  154. package/dist/lib/dashboard/server.js.map +1 -1
  155. package/dist/lib/database/agents.d.ts +62 -4
  156. package/dist/lib/database/agents.js +161 -8
  157. package/dist/lib/database/agents.js.map +1 -1
  158. package/dist/lib/database/db-safety.js +4 -4
  159. package/dist/lib/database/db-safety.js.map +1 -1
  160. package/dist/lib/database/drizzle-schema.d.ts +2 -2
  161. package/dist/lib/database/drizzle-schema.js +2 -1
  162. package/dist/lib/database/drizzle-schema.js.map +1 -1
  163. package/dist/lib/database/index.d.ts +1 -1
  164. package/dist/lib/database/index.js +1 -1
  165. package/dist/lib/database/index.js.map +1 -1
  166. package/dist/lib/database/migrations/0013_agent_lifecycle_states.d.ts +11 -0
  167. package/dist/lib/database/migrations/0013_agent_lifecycle_states.js +47 -0
  168. package/dist/lib/database/migrations/0013_agent_lifecycle_states.js.map +1 -0
  169. package/dist/lib/database/migrations/0014_agent_work_lifecycle.d.ts +10 -0
  170. package/dist/lib/database/migrations/0014_agent_work_lifecycle.js +31 -0
  171. package/dist/lib/database/migrations/0014_agent_work_lifecycle.js.map +1 -0
  172. package/dist/lib/database/migrations/0015_orchestrate_hooks.d.ts +8 -0
  173. package/dist/lib/database/migrations/0015_orchestrate_hooks.js +35 -0
  174. package/dist/lib/database/migrations/0015_orchestrate_hooks.js.map +1 -0
  175. package/dist/lib/database/migrations/0016_schema_catchup.d.ts +15 -0
  176. package/dist/lib/database/migrations/0016_schema_catchup.js +154 -0
  177. package/dist/lib/database/migrations/0016_schema_catchup.js.map +1 -0
  178. package/dist/lib/database/migrations/index.js +8 -0
  179. package/dist/lib/database/migrations/index.js.map +1 -1
  180. package/dist/lib/database/pmo-bootstrap.js +2 -2
  181. package/dist/lib/database/pmo-bootstrap.js.map +1 -1
  182. package/dist/lib/database/workspace-schema.d.ts +1 -1
  183. package/dist/lib/database/workspace-schema.js +3 -1
  184. package/dist/lib/database/workspace-schema.js.map +1 -1
  185. package/dist/lib/events/events.d.ts +28 -0
  186. package/dist/lib/events/index.d.ts +1 -1
  187. package/dist/lib/events/index.js.map +1 -1
  188. package/dist/lib/execution/config.d.ts +2 -0
  189. package/dist/lib/execution/config.js +14 -0
  190. package/dist/lib/execution/config.js.map +1 -1
  191. package/dist/lib/execution/runners/devcontainer-tmux.js +1 -1
  192. package/dist/lib/execution/runners/devcontainer-tmux.js.map +1 -1
  193. package/dist/lib/execution/runners/devcontainer.js +9 -1
  194. package/dist/lib/execution/runners/devcontainer.js.map +1 -1
  195. package/dist/lib/execution/runners/docker-credentials.d.ts +8 -0
  196. package/dist/lib/execution/runners/docker-credentials.js +20 -3
  197. package/dist/lib/execution/runners/docker-credentials.js.map +1 -1
  198. package/dist/lib/execution/runners/docker-management.d.ts +31 -0
  199. package/dist/lib/execution/runners/docker-management.js +95 -0
  200. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  201. package/dist/lib/execution/runners/index.d.ts +1 -1
  202. package/dist/lib/execution/runners/index.js +1 -1
  203. package/dist/lib/execution/runners/index.js.map +1 -1
  204. package/dist/lib/execution/runners/shared.d.ts +23 -1
  205. package/dist/lib/execution/runners/shared.js +112 -1
  206. package/dist/lib/execution/runners/shared.js.map +1 -1
  207. package/dist/lib/execution/spawner.js +8 -1
  208. package/dist/lib/execution/spawner.js.map +1 -1
  209. package/dist/lib/execution/types.js +2 -2
  210. package/dist/lib/linear/client.d.ts +13 -0
  211. package/dist/lib/linear/client.js +37 -0
  212. package/dist/lib/linear/client.js.map +1 -1
  213. package/dist/lib/orchestrate/actions.d.ts +20 -0
  214. package/dist/lib/orchestrate/actions.js +194 -0
  215. package/dist/lib/orchestrate/actions.js.map +1 -0
  216. package/dist/lib/orchestrate/config-loader.d.ts +31 -0
  217. package/dist/lib/orchestrate/config-loader.js +201 -0
  218. package/dist/lib/orchestrate/config-loader.js.map +1 -0
  219. package/dist/lib/orchestrate/engine.d.ts +94 -0
  220. package/dist/lib/orchestrate/engine.js +290 -0
  221. package/dist/lib/orchestrate/engine.js.map +1 -0
  222. package/dist/lib/orchestrate/index.d.ts +16 -0
  223. package/dist/lib/orchestrate/index.js +14 -0
  224. package/dist/lib/orchestrate/index.js.map +1 -0
  225. package/dist/lib/orchestrate/poller.d.ts +58 -0
  226. package/dist/lib/orchestrate/poller.js +282 -0
  227. package/dist/lib/orchestrate/poller.js.map +1 -0
  228. package/dist/lib/orchestrate/presets.d.ts +27 -0
  229. package/dist/lib/orchestrate/presets.js +65 -0
  230. package/dist/lib/orchestrate/presets.js.map +1 -0
  231. package/dist/lib/orchestrate/types.d.ts +93 -0
  232. package/dist/lib/orchestrate/types.js +46 -0
  233. package/dist/lib/orchestrate/types.js.map +1 -0
  234. package/dist/lib/pmo/storage/specs.js.map +1 -1
  235. package/dist/lib/pr/index.d.ts +28 -0
  236. package/dist/lib/pr/index.js +100 -0
  237. package/dist/lib/pr/index.js.map +1 -1
  238. package/dist/lib/providers/event-emitting-provider.d.ts +4 -2
  239. package/dist/lib/providers/event-emitting-provider.js +12 -0
  240. package/dist/lib/providers/event-emitting-provider.js.map +1 -1
  241. package/dist/lib/providers/index.d.ts +1 -1
  242. package/dist/lib/providers/index.js.map +1 -1
  243. package/dist/lib/providers/linear-provider.d.ts +4 -2
  244. package/dist/lib/providers/linear-provider.js +106 -0
  245. package/dist/lib/providers/linear-provider.js.map +1 -1
  246. package/dist/lib/providers/pmo-provider.d.ts +4 -2
  247. package/dist/lib/providers/pmo-provider.js +26 -0
  248. package/dist/lib/providers/pmo-provider.js.map +1 -1
  249. package/dist/lib/providers/types.d.ts +30 -1
  250. package/dist/lib/telemetry/analytics.d.ts +1 -1
  251. package/dist/lib/telemetry/analytics.js +16 -8
  252. package/dist/lib/telemetry/analytics.js.map +1 -1
  253. package/dist/lib/update-check.d.ts +8 -3
  254. package/dist/lib/update-check.js +16 -5
  255. package/dist/lib/update-check.js.map +1 -1
  256. package/dist/lib/work-lifecycle/hooks/types.d.ts +3 -2
  257. package/dist/lib/work-lifecycle/hooks/types.js +12 -0
  258. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
  259. package/oclif.manifest.json +3623 -2968
  260. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ /**
2
+ * prlt hook — Interactive menu for orchestrate hooks.
3
+ */
4
+ import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
5
+ import { shouldOutputJson } from '../../lib/prompt-json.js';
6
+ export default class Hook extends PMOCommand {
7
+ static description = 'Manage orchestrate hooks (event-driven pipeline automation)';
8
+ static examples = [
9
+ '<%= config.bin %> <%= command.id %>',
10
+ '<%= config.bin %> hook fire on_ci_green --pr 123',
11
+ '<%= config.bin %> hook list',
12
+ '<%= config.bin %> hook preset supervised',
13
+ ];
14
+ static flags = {
15
+ ...pmoBaseFlags,
16
+ };
17
+ async execute() {
18
+ const { flags } = await this.parse(Hook);
19
+ const jsonMode = shouldOutputJson(flags);
20
+ const menuChoices = [
21
+ { id: 'list', name: 'List configured hooks', command: 'prlt hook list --json' },
22
+ { id: 'fire', name: 'Fire an event', command: 'prlt hook fire --json' },
23
+ { id: 'preset', name: 'Apply a preset', command: 'prlt hook preset --json' },
24
+ { id: 'add', name: 'Add a new hook', command: 'prlt work hooks add --json' },
25
+ { id: 'cancel', name: 'Cancel', command: '' },
26
+ ];
27
+ const action = await this.selectFromList({
28
+ message: 'Orchestrate Hooks - What would you like to do?',
29
+ items: menuChoices,
30
+ getName: (c) => c.name,
31
+ getValue: (c) => c.id,
32
+ getCommand: (c) => c.command,
33
+ jsonMode: jsonMode ? { flags, commandName: 'hook' } : null,
34
+ });
35
+ if (action === 'cancel' || !action)
36
+ return;
37
+ switch (action) {
38
+ case 'list':
39
+ await this.config.runCommand('hook:list');
40
+ break;
41
+ case 'fire':
42
+ await this.config.runCommand('hook:fire');
43
+ break;
44
+ case 'preset':
45
+ await this.config.runCommand('hook:preset');
46
+ break;
47
+ case 'add':
48
+ await this.config.runCommand('work:hooks:add');
49
+ break;
50
+ }
51
+ }
52
+ }
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/hook/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,UAAU;IAC1C,MAAM,CAAC,WAAW,GAAG,6DAA6D,CAAA;IAElF,MAAM,CAAC,QAAQ,GAAG;QAChB,qCAAqC;QACrC,kDAAkD;QAClD,6BAA6B;QAC7B,0CAA0C;KAC3C,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,YAAY;KAChB,CAAA;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAExC,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,uBAAuB,EAAE;YAC/E,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,uBAAuB,EAAE;YACvE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,yBAAyB,EAAE;YAC5E,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,4BAA4B,EAAE;YAC5E,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;SAC9C,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACvC,OAAO,EAAE,gDAAgD;YACzD,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;YACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;YACrB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;YAC5B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;SAC3D,CAAC,CAAA;QAEF,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,OAAM;QAE1C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;gBACzC,MAAK;YACP,KAAK,MAAM;gBACT,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;gBACzC,MAAK;YACP,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;gBAC3C,MAAK;YACP,KAAK,KAAK;gBACR,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;gBAC9C,MAAK;QACT,CAAC;IACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * prlt hook list — List all configured orchestrate hooks.
3
+ *
4
+ * Shows hooks with their mode, priority, and source.
5
+ */
6
+ import { PMOCommand } from '../../lib/pmo/index.js';
7
+ export default class HookList extends PMOCommand {
8
+ static description: string;
9
+ static examples: string[];
10
+ static flags: {
11
+ event: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ mode: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ source: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ };
18
+ execute(): Promise<void>;
19
+ }
@@ -0,0 +1,136 @@
1
+ /**
2
+ * prlt hook list — List all configured orchestrate hooks.
3
+ *
4
+ * Shows hooks with their mode, priority, and source.
5
+ */
6
+ import { Flags } from '@oclif/core';
7
+ import { openWorkspaceDatabase } from '../../lib/database/index.js';
8
+ import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
9
+ import { styles } from '../../lib/styles.js';
10
+ import { getWorkspaceInfo } from '../../lib/agents/commands.js';
11
+ import { shouldOutputJson, outputSuccessAsJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
12
+ export default class HookList extends PMOCommand {
13
+ static description = 'List configured orchestrate hooks';
14
+ static examples = [
15
+ '<%= config.bin %> <%= command.id %>',
16
+ '<%= config.bin %> <%= command.id %> --event on_ci_green',
17
+ '<%= config.bin %> <%= command.id %> --mode auto',
18
+ ];
19
+ static flags = {
20
+ ...pmoBaseFlags,
21
+ event: Flags.string({
22
+ description: 'Filter by event name',
23
+ }),
24
+ mode: Flags.string({
25
+ description: 'Filter by mode (auto, confirm, notify, off)',
26
+ options: ['auto', 'confirm', 'notify', 'off'],
27
+ }),
28
+ source: Flags.string({
29
+ description: 'Filter by source (yaml, cli, preset)',
30
+ options: ['yaml', 'cli', 'preset'],
31
+ }),
32
+ };
33
+ async execute() {
34
+ const { flags } = await this.parse(HookList);
35
+ const jsonMode = shouldOutputJson(flags);
36
+ const parsedFlags = flags;
37
+ let workspaceInfo;
38
+ try {
39
+ workspaceInfo = getWorkspaceInfo();
40
+ }
41
+ catch {
42
+ if (jsonMode) {
43
+ outputErrorAsJson('NOT_IN_WORKSPACE', 'Not in a workspace. Run "prlt new" first.', createMetadata('hook list', flags));
44
+ return;
45
+ }
46
+ this.error('Not in a workspace. Run "prlt new" first.');
47
+ }
48
+ const db = openWorkspaceDatabase(workspaceInfo.path);
49
+ try {
50
+ let sql = 'SELECT * FROM pmo_work_hooks WHERE 1=1';
51
+ const params = [];
52
+ if (parsedFlags.event) {
53
+ sql += ' AND event = ?';
54
+ params.push(parsedFlags.event);
55
+ }
56
+ if (parsedFlags.mode) {
57
+ sql += ' AND mode = ?';
58
+ params.push(parsedFlags.mode);
59
+ }
60
+ if (parsedFlags.source) {
61
+ sql += ' AND source = ?';
62
+ params.push(parsedFlags.source);
63
+ }
64
+ sql += ' ORDER BY event ASC, priority ASC, created_at ASC';
65
+ let hooks;
66
+ try {
67
+ hooks = db.prepare(sql).all(...params);
68
+ }
69
+ catch {
70
+ // Fallback without new columns
71
+ hooks = db.prepare('SELECT * FROM pmo_work_hooks ORDER BY created_at ASC').all();
72
+ }
73
+ if (jsonMode) {
74
+ outputSuccessAsJson({
75
+ hooks: hooks.map(h => ({
76
+ id: h.id,
77
+ name: h.name,
78
+ event: h.event,
79
+ actionType: h.action_type,
80
+ actionValue: h.action_value,
81
+ enabled: h.enabled === 1,
82
+ mode: h.mode || 'auto',
83
+ priority: h.priority ?? 0,
84
+ source: h.source || 'cli',
85
+ description: h.description,
86
+ config: h.config ? JSON.parse(h.config) : null,
87
+ })),
88
+ count: hooks.length,
89
+ }, createMetadata('hook list', flags));
90
+ return;
91
+ }
92
+ if (hooks.length === 0) {
93
+ this.log(styles.info('No hooks configured.'));
94
+ this.log(styles.muted(' Add one with: prlt work hooks add'));
95
+ this.log(styles.muted(' Or apply a preset: prlt hook preset supervised'));
96
+ return;
97
+ }
98
+ this.log(styles.title('Orchestrate Hooks'));
99
+ this.log('');
100
+ // Group by event
101
+ const grouped = {};
102
+ for (const hook of hooks) {
103
+ if (!grouped[hook.event])
104
+ grouped[hook.event] = [];
105
+ grouped[hook.event].push(hook);
106
+ }
107
+ for (const [event, eventHooks] of Object.entries(grouped)) {
108
+ this.log(` ${styles.emphasis(event)}`);
109
+ for (const hook of eventHooks) {
110
+ const enabled = hook.enabled === 1;
111
+ const mode = hook.mode || 'auto';
112
+ const source = hook.source || 'cli';
113
+ const status = !enabled
114
+ ? styles.muted('off')
115
+ : mode === 'auto'
116
+ ? styles.success('auto')
117
+ : mode === 'confirm'
118
+ ? styles.warning('confirm')
119
+ : mode === 'notify'
120
+ ? styles.info('notify')
121
+ : styles.muted('off');
122
+ this.log(` ${status} ${styles.code(hook.action_value)} ${styles.muted(`[${source}]`)}`);
123
+ if (hook.description) {
124
+ this.log(` ${styles.muted(hook.description)}`);
125
+ }
126
+ }
127
+ this.log('');
128
+ }
129
+ this.log(styles.muted(` ${hooks.length} hook${hooks.length === 1 ? '' : 's'} configured`));
130
+ }
131
+ finally {
132
+ db.close();
133
+ }
134
+ }
135
+ }
136
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/hook/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * prlt hook preset <name> — Apply a hook preset.
3
+ *
4
+ * Presets:
5
+ * - aggressive: auto everything
6
+ * - conservative: confirm everything
7
+ * - supervised: auto for safe ops, confirm for destructive
8
+ */
9
+ import { PMOCommand } from '../../lib/pmo/index.js';
10
+ export default class HookPreset extends PMOCommand {
11
+ static description: string;
12
+ static examples: string[];
13
+ static args: {
14
+ preset: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
15
+ };
16
+ static flags: {
17
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ };
21
+ execute(): Promise<void>;
22
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * prlt hook preset <name> — Apply a hook preset.
3
+ *
4
+ * Presets:
5
+ * - aggressive: auto everything
6
+ * - conservative: confirm everything
7
+ * - supervised: auto for safe ops, confirm for destructive
8
+ */
9
+ import { Args } from '@oclif/core';
10
+ import { openWorkspaceDatabase } from '../../lib/database/index.js';
11
+ import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
12
+ import { styles } from '../../lib/styles.js';
13
+ import { getWorkspaceInfo } from '../../lib/agents/commands.js';
14
+ import { shouldOutputJson, outputSuccessAsJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
15
+ import { applyPreset, PRESET_NAMES, PRESETS } from '../../lib/orchestrate/index.js';
16
+ export default class HookPreset extends PMOCommand {
17
+ static description = 'Apply a hook preset (aggressive, conservative, supervised)';
18
+ static examples = [
19
+ '<%= config.bin %> <%= command.id %> aggressive',
20
+ '<%= config.bin %> <%= command.id %> conservative',
21
+ '<%= config.bin %> <%= command.id %> supervised',
22
+ ];
23
+ static args = {
24
+ preset: Args.string({
25
+ description: 'Preset name to apply',
26
+ required: true,
27
+ options: PRESET_NAMES,
28
+ }),
29
+ };
30
+ static flags = {
31
+ ...pmoBaseFlags,
32
+ };
33
+ async execute() {
34
+ const { args, flags } = await this.parse(HookPreset);
35
+ const jsonMode = shouldOutputJson(flags);
36
+ const presetName = args.preset;
37
+ if (!PRESET_NAMES.includes(presetName)) {
38
+ if (jsonMode) {
39
+ outputErrorAsJson('INVALID_PRESET', `Unknown preset: ${presetName}. Valid: ${PRESET_NAMES.join(', ')}`, createMetadata('hook preset', flags));
40
+ return;
41
+ }
42
+ this.error(`Unknown preset: ${presetName}. Valid: ${PRESET_NAMES.join(', ')}`);
43
+ }
44
+ let workspaceInfo;
45
+ try {
46
+ workspaceInfo = getWorkspaceInfo();
47
+ }
48
+ catch {
49
+ if (jsonMode) {
50
+ outputErrorAsJson('NOT_IN_WORKSPACE', 'Not in a workspace. Run "prlt new" first.', createMetadata('hook preset', flags));
51
+ return;
52
+ }
53
+ this.error('Not in a workspace. Run "prlt new" first.');
54
+ }
55
+ const db = openWorkspaceDatabase(workspaceInfo.path);
56
+ try {
57
+ const count = applyPreset(db, presetName);
58
+ const preset = PRESETS[presetName];
59
+ if (jsonMode) {
60
+ outputSuccessAsJson({
61
+ preset: presetName,
62
+ description: preset.description,
63
+ hooksApplied: count,
64
+ }, createMetadata('hook preset', flags));
65
+ return;
66
+ }
67
+ this.log(styles.success(`Applied preset: ${presetName}`));
68
+ this.log(styles.muted(` ${preset.description}`));
69
+ this.log(styles.muted(` ${count} hooks configured`));
70
+ }
71
+ finally {
72
+ db.close();
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=preset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../src/commands/hook/preset.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
18
18
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
19
19
  import { execSync } from 'node:child_process';
20
20
  import * as path from 'node:path';
21
- import Database from 'better-sqlite3';
21
+ import { openWorkspaceDatabase } from '../lib/database/index.js';
22
22
  import { getPMOContext } from '../lib/pmo/pmo-context.js';
23
23
  import { getWorkspaceInfo } from '../lib/agents/commands.js';
24
24
  import { ExecutionStorage } from '../lib/execution/storage.js';
@@ -46,8 +46,7 @@ export default class McpServerCommand extends Command {
46
46
  try {
47
47
  const workspaceInfo = getWorkspaceInfo();
48
48
  if (workspaceInfo && pmoContext) {
49
- const dbPath = path.join(workspaceInfo.path, '.proletariat', 'workspace.db');
50
- const db = new Database(dbPath);
49
+ const db = openWorkspaceDatabase(workspaceInfo.path);
51
50
  const executionStorage = new ExecutionStorage(db);
52
51
  workspaceContext = {
53
52
  workspaceInfo,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/commands/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/commands/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * prlt orchestrate — Autonomous pipeline daemon with event-driven hooks.
3
+ *
4
+ * Starts the orchestrate engine which:
5
+ * 1. Loads hook configuration from DB (synced from YAML/presets/CLI)
6
+ * 2. Subscribes to EventBus events for internal triggers
7
+ * 3. Optionally polls external sources (Linear, GitHub) for events
8
+ * 4. Executes matching hooks with mode-aware behavior (auto/confirm/notify/off)
9
+ *
10
+ * External events can also be fired via `prlt hook fire <event>`.
11
+ */
12
+ import { PMOCommand } from '../../lib/pmo/index.js';
13
+ export default class Orchestrate extends PMOCommand {
14
+ static description: string;
15
+ static examples: string[];
16
+ static flags: {
17
+ preset: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'load-yaml': import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ 'poll-interval': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
20
+ once: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ ticket: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ pr: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ branch: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ agent: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ };
30
+ execute(): Promise<void>;
31
+ /**
32
+ * Log the results of firing an event.
33
+ */
34
+ private logResults;
35
+ }