@proletariat/cli 0.3.66 → 0.3.68

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 (173) hide show
  1. package/dist/commands/action/create.js +15 -1
  2. package/dist/commands/action/create.js.map +1 -1
  3. package/dist/commands/action/show.js +5 -2
  4. package/dist/commands/action/show.js.map +1 -1
  5. package/dist/commands/agent/index.js +7 -1
  6. package/dist/commands/agent/index.js.map +1 -1
  7. package/dist/commands/board/index.js +5 -1
  8. package/dist/commands/board/index.js.map +1 -1
  9. package/dist/commands/branch/validate.js +7 -1
  10. package/dist/commands/branch/validate.js.map +1 -1
  11. package/dist/commands/branch/where.js +4 -1
  12. package/dist/commands/branch/where.js.map +1 -1
  13. package/dist/commands/category/create.js +20 -1
  14. package/dist/commands/category/create.js.map +1 -1
  15. package/dist/commands/category/delete.js +19 -1
  16. package/dist/commands/category/delete.js.map +1 -1
  17. package/dist/commands/category/rename.js +28 -1
  18. package/dist/commands/category/rename.js.map +1 -1
  19. package/dist/commands/diet.js +4 -1
  20. package/dist/commands/diet.js.map +1 -1
  21. package/dist/commands/docker/clean.js +7 -0
  22. package/dist/commands/docker/clean.js.map +1 -1
  23. package/dist/commands/docker/index.js +5 -0
  24. package/dist/commands/docker/index.js.map +1 -1
  25. package/dist/commands/docker/logs.js +19 -1
  26. package/dist/commands/docker/logs.js.map +1 -1
  27. package/dist/commands/docker/prune.js +4 -0
  28. package/dist/commands/docker/prune.js.map +1 -1
  29. package/dist/commands/docker/restart.js +17 -0
  30. package/dist/commands/docker/restart.js.map +1 -1
  31. package/dist/commands/docker/start.js +13 -1
  32. package/dist/commands/docker/start.js.map +1 -1
  33. package/dist/commands/docker/stop.js +14 -0
  34. package/dist/commands/docker/stop.js.map +1 -1
  35. package/dist/commands/epic/create.js +4 -1
  36. package/dist/commands/epic/create.js.map +1 -1
  37. package/dist/commands/epic/progress.js +4 -0
  38. package/dist/commands/epic/progress.js.map +1 -1
  39. package/dist/commands/epic/project.js +1 -1
  40. package/dist/commands/epic/project.js.map +1 -1
  41. package/dist/commands/epic/reorder.js +2 -2
  42. package/dist/commands/epic/reorder.js.map +1 -1
  43. package/dist/commands/epic/spec.js +1 -1
  44. package/dist/commands/epic/spec.js.map +1 -1
  45. package/dist/commands/epic/ticket.js +2 -2
  46. package/dist/commands/epic/ticket.js.map +1 -1
  47. package/dist/commands/execution/list.js +4 -1
  48. package/dist/commands/execution/list.js.map +1 -1
  49. package/dist/commands/execution/stop.js +8 -1
  50. package/dist/commands/execution/stop.js.map +1 -1
  51. package/dist/commands/media/add.js +3 -0
  52. package/dist/commands/media/add.js.map +1 -1
  53. package/dist/commands/media/index.js +7 -1
  54. package/dist/commands/media/index.js.map +1 -1
  55. package/dist/commands/media/list.js +5 -1
  56. package/dist/commands/media/list.js.map +1 -1
  57. package/dist/commands/media/remove.js +3 -0
  58. package/dist/commands/media/remove.js.map +1 -1
  59. package/dist/commands/pr/create.js +3 -3
  60. package/dist/commands/pr/create.js.map +1 -1
  61. package/dist/commands/pr/merge.js +29 -2
  62. package/dist/commands/pr/merge.js.map +1 -1
  63. package/dist/commands/project/create.js +4 -1
  64. package/dist/commands/project/create.js.map +1 -1
  65. package/dist/commands/pull.js +10 -1
  66. package/dist/commands/pull.js.map +1 -1
  67. package/dist/commands/roadmap/create.js +4 -1
  68. package/dist/commands/roadmap/create.js.map +1 -1
  69. package/dist/commands/session/health.d.ts +6 -0
  70. package/dist/commands/session/health.js +115 -8
  71. package/dist/commands/session/health.js.map +1 -1
  72. package/dist/commands/session/poke.js +3 -57
  73. package/dist/commands/session/poke.js.map +1 -1
  74. package/dist/commands/status/delete.js +3 -0
  75. package/dist/commands/status/delete.js.map +1 -1
  76. package/dist/commands/status/list.js +4 -1
  77. package/dist/commands/status/list.js.map +1 -1
  78. package/dist/commands/status/move.js +3 -0
  79. package/dist/commands/status/move.js.map +1 -1
  80. package/dist/commands/ticket/create.d.ts +2 -0
  81. package/dist/commands/ticket/create.js +103 -4
  82. package/dist/commands/ticket/create.js.map +1 -1
  83. package/dist/commands/ticket/delete.js +1 -1
  84. package/dist/commands/ticket/delete.js.map +1 -1
  85. package/dist/commands/ticket/edit.js +1 -1
  86. package/dist/commands/ticket/edit.js.map +1 -1
  87. package/dist/commands/ticket/move.js +3 -3
  88. package/dist/commands/ticket/move.js.map +1 -1
  89. package/dist/commands/ticket/update.js +3 -0
  90. package/dist/commands/ticket/update.js.map +1 -1
  91. package/dist/commands/ticket/view.js +1 -1
  92. package/dist/commands/ticket/view.js.map +1 -1
  93. package/dist/commands/work/complete.js +1 -1
  94. package/dist/commands/work/complete.js.map +1 -1
  95. package/dist/commands/work/hooks/add.d.ts +16 -0
  96. package/dist/commands/work/hooks/add.js +169 -0
  97. package/dist/commands/work/hooks/add.js.map +1 -0
  98. package/dist/commands/work/hooks/index.d.ts +11 -0
  99. package/dist/commands/work/hooks/index.js +44 -0
  100. package/dist/commands/work/hooks/index.js.map +1 -0
  101. package/dist/commands/work/hooks/list.d.ts +12 -0
  102. package/dist/commands/work/hooks/list.js +81 -0
  103. package/dist/commands/work/hooks/list.js.map +1 -0
  104. package/dist/commands/work/hooks/remove.d.ts +14 -0
  105. package/dist/commands/work/hooks/remove.js +94 -0
  106. package/dist/commands/work/hooks/remove.js.map +1 -0
  107. package/dist/commands/work/hooks/toggle.d.ts +16 -0
  108. package/dist/commands/work/hooks/toggle.js +79 -0
  109. package/dist/commands/work/hooks/toggle.js.map +1 -0
  110. package/dist/commands/work/index.js +4 -0
  111. package/dist/commands/work/index.js.map +1 -1
  112. package/dist/commands/work/ready.js +4 -1
  113. package/dist/commands/work/ready.js.map +1 -1
  114. package/dist/commands/work/source/set.js +4 -4
  115. package/dist/commands/work/source/set.js.map +1 -1
  116. package/dist/commands/work/source.js +15 -15
  117. package/dist/commands/work/source.js.map +1 -1
  118. package/dist/commands/work/spawn.js +6 -6
  119. package/dist/commands/work/spawn.js.map +1 -1
  120. package/dist/commands/work/start.js +43 -19
  121. package/dist/commands/work/start.js.map +1 -1
  122. package/dist/commands/workspace/add.js +16 -1
  123. package/dist/commands/workspace/add.js.map +1 -1
  124. package/dist/lib/database/migrations/0002_work_hooks.d.ts +8 -0
  125. package/dist/lib/database/migrations/0002_work_hooks.js +16 -0
  126. package/dist/lib/database/migrations/0002_work_hooks.js.map +1 -0
  127. package/dist/lib/database/migrations/index.js +2 -0
  128. package/dist/lib/database/migrations/index.js.map +1 -1
  129. package/dist/lib/events/events.d.ts +2 -1
  130. package/dist/lib/execution/session-utils.d.ts +6 -0
  131. package/dist/lib/execution/session-utils.js +50 -0
  132. package/dist/lib/execution/session-utils.js.map +1 -1
  133. package/dist/lib/external-issues/outbound-sync.d.ts +14 -0
  134. package/dist/lib/external-issues/outbound-sync.js +94 -0
  135. package/dist/lib/external-issues/outbound-sync.js.map +1 -1
  136. package/dist/lib/linear/client.d.ts +9 -0
  137. package/dist/lib/linear/client.js +20 -0
  138. package/dist/lib/linear/client.js.map +1 -1
  139. package/dist/lib/linear/sync.d.ts +5 -0
  140. package/dist/lib/linear/sync.js +25 -0
  141. package/dist/lib/linear/sync.js.map +1 -1
  142. package/dist/lib/pmo/schema.d.ts +2 -0
  143. package/dist/lib/pmo/schema.js +17 -0
  144. package/dist/lib/pmo/schema.js.map +1 -1
  145. package/dist/lib/pmo/sync-manager.js +3 -0
  146. package/dist/lib/pmo/sync-manager.js.map +1 -1
  147. package/dist/lib/work-lifecycle/events.d.ts +11 -0
  148. package/dist/lib/work-lifecycle/hooks/executor.d.ts +15 -0
  149. package/dist/lib/work-lifecycle/hooks/executor.js +102 -0
  150. package/dist/lib/work-lifecycle/hooks/executor.js.map +1 -0
  151. package/dist/lib/work-lifecycle/hooks/index.d.ts +12 -0
  152. package/dist/lib/work-lifecycle/hooks/index.js +12 -0
  153. package/dist/lib/work-lifecycle/hooks/index.js.map +1 -0
  154. package/dist/lib/work-lifecycle/hooks/manager.d.ts +43 -0
  155. package/dist/lib/work-lifecycle/hooks/manager.js +93 -0
  156. package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -0
  157. package/dist/lib/work-lifecycle/hooks/storage.d.ts +58 -0
  158. package/dist/lib/work-lifecycle/hooks/storage.js +117 -0
  159. package/dist/lib/work-lifecycle/hooks/storage.js.map +1 -0
  160. package/dist/lib/work-lifecycle/hooks/types.d.ts +68 -0
  161. package/dist/lib/work-lifecycle/hooks/types.js +17 -0
  162. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -0
  163. package/dist/lib/work-lifecycle/index.d.ts +1 -0
  164. package/dist/lib/work-lifecycle/index.js +1 -0
  165. package/dist/lib/work-lifecycle/index.js.map +1 -1
  166. package/dist/lib/work-source/config.d.ts +14 -3
  167. package/dist/lib/work-source/config.js +35 -7
  168. package/dist/lib/work-source/config.js.map +1 -1
  169. package/dist/lib/work-source/index.d.ts +7 -1
  170. package/dist/lib/work-source/index.js +7 -1
  171. package/dist/lib/work-source/index.js.map +1 -1
  172. package/oclif.manifest.json +5758 -5421
  173. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/pmo/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/pmo/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,+DAA+D;AAC/D,gFAAgF;AAEhF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB,EAAG,kCAAkC;IACnE,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,qBAAqB;IACtC,mBAAmB,EAAE,yBAAyB;IAC9C,qBAAqB,EAAE,2BAA2B;IAClD,0BAA0B,EAAE,gCAAgC;IAC5D,KAAK,EAAE,WAAW;IAClB,iBAAiB,EAAE,uBAAuB;IAC1C,YAAY,EAAE,kBAAkB;IAChC,kBAAkB,EAAE,wBAAwB;IAC5C,KAAK,EAAE,WAAW;IAClB,iBAAiB,EAAE,uBAAuB;IAC1C,aAAa,EAAE,mBAAmB,EAAG,oDAAoD;IACzF,cAAc,EAAE,oBAAoB;IACpC,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY,EAAG,8BAA8B;IACzD,YAAY,EAAE,cAAc,EAAG,sCAAsC;IACrE,8FAA8F;IAC9F,SAAS,EAAE,eAAe,EAAG,8BAA8B;IAC3D,iBAAiB,EAAE,uBAAuB,EAAG,oDAAoD;IACjG,2EAA2E;IAC3E,MAAM,EAAE,YAAY,EAAG,8CAA8C;IACrE,eAAe,EAAE,qBAAqB,EAAG,gCAAgC;IACzE,OAAO,EAAE,aAAa,EAAG,wCAAwC;IACjE,gBAAgB,EAAE,sBAAsB,EAAG,sCAAsC;IACjF,qEAAqE;IACrE,QAAQ,EAAE,cAAc,EAAG,4BAA4B;IACvD,gBAAgB,EAAE,sBAAsB,EAAG,kDAAkD;IAC7F,sBAAsB;IACtB,YAAY,EAAE,kBAAkB;IAChC,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,mBAAmB;IAClC,kFAAkF;IAClF,kBAAkB,EAAE,wBAAwB;IAC5C,kEAAkE;IAClE,gBAAgB,EAAE,sBAAsB;IACxC,qDAAqD;IACrD,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,sBAAsB,EAAE,4BAA4B;IACpD,gCAAgC;IAChC,eAAe,EAAE,qBAAqB,EAAG,mCAAmC;IAC5E,2BAA2B;IAC3B,cAAc,EAAE,oBAAoB,EAAG,kCAAkC;IACzE,4BAA4B;IAC5B,eAAe,EAAE,qBAAqB,EAAG,mCAAmC;IAC5E,uBAAuB;IACvB,UAAU,EAAE,gBAAgB,EAAG,oDAAoD;IACnF,iDAAiD;IACjD,OAAO,EAAE,aAAa,EAAG,oCAAoC;IAC7D,aAAa,EAAE,mBAAmB,EAAG,iDAAiD;IACtF,QAAQ,EAAE,cAAc,EAAG,oCAAoC;CACvD,CAAC;AAEX,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE;iCACqB,UAAU,CAAC,QAAQ;;;;;;;;;;;;;0CAaV,UAAU,CAAC,MAAM;6CACd,UAAU,CAAC,SAAS;MAC3D;IAEJ,WAAW,EAAE;iCACkB,UAAU,CAAC,WAAW;;;;;;;MAOjD;IAEJ,0CAA0C;IAC1C,UAAU,EAAE;iCACmB,UAAU,CAAC,UAAU;;;;;;;;;;MAUhD;IAEJ,yEAAyE;IACzE,SAAS,EAAE;iCACoB,UAAU,CAAC,SAAS;;;;;;;MAO/C;IAEJ,gEAAgE;IAChE,gFAAgF;IAChF,iBAAiB,EAAE;iCACY,UAAU,CAAC,iBAAiB;;;;;;;;;;6CAUhB,UAAU,CAAC,SAAS;;MAE3D;IAEJ,mEAAmE;IACnE,OAAO,EAAE;iCACsB,UAAU,CAAC,OAAO;;;;;;;MAO7C;IAEJ,OAAO,EAAE;iCACsB,UAAU,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;4CAoBP,UAAU,CAAC,QAAQ;yCACtB,UAAU,CAAC,KAAK;yCAChB,UAAU,CAAC,KAAK;2CACd,UAAU,CAAC,iBAAiB;MACjE;IAEJ,8EAA8E;IAC9E,aAAa,EAAE;iCACgB,UAAU,CAAC,aAAa;;;;;;4CAMb,UAAU,CAAC,QAAQ;2CACpB,UAAU,CAAC,OAAO;uDACN,UAAU,CAAC,OAAO;MACnE;IAEJ,iEAAiE;IACjE,WAAW,EAAE;iCACkB,UAAU,CAAC,WAAW;;;;;;;;;;;4CAWX,UAAU,CAAC,QAAQ;;MAEzD;IAEJ,QAAQ,EAAE;iCACqB,UAAU,CAAC,QAAQ;;2CAET,UAAU,CAAC,OAAO;;;;;MAKvD;IAEJ,eAAe,EAAE;iCACc,UAAU,CAAC,eAAe;2CAChB,UAAU,CAAC,OAAO;;;;MAIvD;IAEJ,iEAAiE;IACjE,mBAAmB,EAAE;iCACU,UAAU,CAAC,mBAAmB;2CACpB,UAAU,CAAC,OAAO;sDACP,UAAU,CAAC,OAAO;;;;;MAKlE;IAEJ,iDAAiD;IACjD,qBAAqB,EAAE;iCACQ,UAAU,CAAC,qBAAqB;;2CAEtB,UAAU,CAAC,OAAO;;;;MAIvD;IAEJ,0DAA0D;IAC1D,0BAA0B,EAAE;iCACG,UAAU,CAAC,0BAA0B;;2CAE3B,UAAU,CAAC,OAAO;;;;;;;;MAQvD;IAEJ,KAAK,EAAE;iCACwB,UAAU,CAAC,KAAK;;;;;;;;;;;;;;;;;;;MAmB3C;IAEJ,iEAAiE;IACjE,iBAAiB,EAAE;iCACY,UAAU,CAAC,iBAAiB;yCACpB,UAAU,CAAC,KAAK;oDACL,UAAU,CAAC,KAAK;;;;;MAK9D;IAEJ,YAAY,EAAE;iCACiB,UAAU,CAAC,YAAY;2CACb,UAAU,CAAC,OAAO;yCACpB,UAAU,CAAC,KAAK;;MAEnD;IAEJ,kBAAkB,EAAE;iCACW,UAAU,CAAC,kBAAkB;2CACnB,UAAU,CAAC,OAAO;;;;MAIvD;IAEJ,KAAK,EAAE;iCACwB,UAAU,CAAC,KAAK;;;;;;;;;;;4CAWL,UAAU,CAAC,QAAQ;yCACtB,UAAU,CAAC,KAAK;MACnD;IAEJ,6DAA6D;IAC7D,iBAAiB,EAAE;iCACY,UAAU,CAAC,iBAAiB;yCACpB,UAAU,CAAC,KAAK;oDACL,UAAU,CAAC,KAAK;;;;;MAK9D;IAEJ,iFAAiF;IACjF,aAAa,EAAE;iCACgB,UAAU,CAAC,aAAa;4CACb,UAAU,CAAC,QAAQ;yCACtB,UAAU,CAAC,KAAK;;;MAGnD;IAEJ,cAAc,EAAE;iCACe,UAAU,CAAC,cAAc;;;MAGpD;IAEJ,QAAQ,EAAE;iCACqB,UAAU,CAAC,QAAQ;;;MAG9C;IAEJ,UAAU,EAAE;iCACmB,UAAU,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;2CAuBX,UAAU,CAAC,OAAO;MACvD;IAEJ,0DAA0D;IAC1D,UAAU,EAAE;iCACmB,UAAU,CAAC,UAAU;;;;;;;;;;;sDAWA,UAAU,CAAC,UAAU;MACrE;IAEJ,0EAA0E;IAC1E,YAAY,EAAE;iCACiB,UAAU,CAAC,YAAY;;;MAGlD;IAEJ,0EAA0E;IAC1E,qCAAqC;IACrC,QAAQ,EAAE;iCACqB,UAAU,CAAC,QAAQ;;;;;;;;;;4CAUR,UAAU,CAAC,QAAQ;;MAEzD;IAEJ,0FAA0F;IAE1F,+DAA+D;IAC/D,MAAM,EAAE;iCACuB,UAAU,CAAC,MAAM;;;;;;;;;MAS5C;IAEJ,gDAAgD;IAChD,eAAe,EAAE;iCACc,UAAU,CAAC,eAAe;;;;;;;MAOrD;IAEJ,OAAO,EAAE;iCACsB,UAAU,CAAC,OAAO;;;;;;;;;;;;MAY7C;IAEJ,6CAA6C;IAC7C,gBAAgB,EAAE;iCACa,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;MAetD;IAEJ,sDAAsD;IACtD,YAAY,EAAE;iCACiB,UAAU,CAAC,YAAY;;;;;;;;MAQlD;IAEJ,gDAAgD;IAChD,MAAM,EAAE;iCACuB,UAAU,CAAC,MAAM;;;;;iCAKjB,UAAU,CAAC,YAAY;;;;;MAKlD;IAEJ,yEAAyE;IACzE,aAAa,EAAE;iCACgB,UAAU,CAAC,aAAa;2CACd,UAAU,CAAC,OAAO;0CACnB,UAAU,CAAC,MAAM;;MAErD;IAEJ,wEAAwE;IACxE,QAAQ,EAAE;iCACqB,UAAU,CAAC,QAAQ;;;;;;;MAO9C;IAEJ,gDAAgD;IAChD,gBAAgB,EAAE;iCACa,UAAU,CAAC,gBAAgB;4CAChB,UAAU,CAAC,QAAQ;4CACnB,UAAU,CAAC,QAAQ;;;;MAIzD;IAEJ,kEAAkE;IAClE,kBAAkB,EAAE;iCACW,UAAU,CAAC,kBAAkB;+CACf,UAAU,CAAC,OAAO;;;;;;;;;;MAU3D;IAEJ,uFAAuF;IACvF,gBAAgB,EAAE;iCACa,UAAU,CAAC,gBAAgB;+CACb,UAAU,CAAC,OAAO;;;;;;;;;;MAU3D;IAEJ,uDAAuD;IACvD,sBAAsB,EAAE;iCACO,UAAU,CAAC,sBAAsB;;;;;;;;;;;MAW5D;IAEJ,6CAA6C;IAC7C,wBAAwB,EAAE;iCACK,UAAU,CAAC,wBAAwB;;;;;;;qBAO/C,UAAU,CAAC,sBAAsB;;MAEhD;IAEJ,uCAAuC;IACvC,sBAAsB,EAAE;iCACO,UAAU,CAAC,sBAAsB;;;;;;;qBAO7C,UAAU,CAAC,sBAAsB;;MAEhD;IAEJ,oDAAoD;IACpD,eAAe,EAAE;iCACc,UAAU,CAAC,eAAe;+CACZ,UAAU,CAAC,OAAO;;;;;;;;;;MAU3D;IAEJ,0DAA0D;IAC1D,UAAU,EAAE;iCACmB,UAAU,CAAC,UAAU;;;;;;;;;MAShD;CACI,CAAC;AAEX,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG;0DAC+B,UAAU,CAAC,OAAO;yDACnB,UAAU,CAAC,OAAO;wDACnB,UAAU,CAAC,OAAO;2DACf,UAAU,CAAC,OAAO;uDACtB,UAAU,CAAC,OAAO;uDAClB,UAAU,CAAC,OAAO;2DACd,UAAU,CAAC,OAAO;2DAClB,UAAU,CAAC,OAAO;4DACjB,UAAU,CAAC,OAAO;kEACZ,UAAU,CAAC,OAAO;0DAC1B,UAAU,CAAC,QAAQ;4DACjB,UAAU,CAAC,YAAY;4DACvB,UAAU,CAAC,kBAAkB;wDACjC,UAAU,CAAC,KAAK;qDACnB,UAAU,CAAC,KAAK;yDACZ,UAAU,CAAC,KAAK;8DACX,UAAU,CAAC,QAAQ;0DACvB,UAAU,CAAC,QAAQ;yDACpB,UAAU,CAAC,QAAQ;4DAChB,UAAU,CAAC,QAAQ;4DACnB,UAAU,CAAC,QAAQ;uDACxB,UAAU,CAAC,UAAU;wDACpB,UAAU,CAAC,UAAU;wDACrB,UAAU,CAAC,UAAU;uDACtB,UAAU,CAAC,UAAU;2DACjB,UAAU,CAAC,UAAU;wDACxB,UAAU,CAAC,UAAU;uDACtB,UAAU,CAAC,KAAK;qDAClB,UAAU,CAAC,KAAK;+DACN,UAAU,CAAC,iBAAiB;iEAC1B,UAAU,CAAC,mBAAmB;+DAChC,UAAU,CAAC,iBAAiB;6DAC9B,UAAU,CAAC,aAAa;gEACrB,UAAU,CAAC,aAAa;8DAC1B,UAAU,CAAC,qBAAqB;iEAC7B,UAAU,CAAC,0BAA0B;0DAC5C,UAAU,CAAC,MAAM;0DACjB,UAAU,CAAC,MAAM;8DACb,UAAU,CAAC,WAAW;8DACtB,UAAU,CAAC,WAAW;mEACjB,UAAU,CAAC,gBAAgB;qEACzB,UAAU,CAAC,iBAAiB;qEAC5B,UAAU,CAAC,iBAAiB;qEAC5B,UAAU,CAAC,iBAAiB;4DACrC,UAAU,CAAC,SAAS;2DACrB,UAAU,CAAC,QAAQ;mEACX,UAAU,CAAC,gBAAgB;mEAC3B,UAAU,CAAC,gBAAgB;oEAC1B,UAAU,CAAC,gBAAgB;0DACrC,UAAU,CAAC,UAAU;8DACjB,UAAU,CAAC,UAAU;gEACnB,UAAU,CAAC,YAAY;uDAChC,UAAU,CAAC,MAAM;0DACd,UAAU,CAAC,MAAM;yDAClB,UAAU,CAAC,MAAM;+DACX,UAAU,CAAC,aAAa;8DACzB,UAAU,CAAC,aAAa;sEAChB,UAAU,CAAC,kBAAkB;yEAC1B,UAAU,CAAC,kBAAkB;0EAC5B,UAAU,CAAC,kBAAkB;sEACjC,UAAU,CAAC,kBAAkB;8EACrB,UAAU,CAAC,sBAAsB;gFAC/B,UAAU,CAAC,wBAAwB;wEAC3C,UAAU,CAAC,sBAAsB;kEACvC,UAAU,CAAC,eAAe;mEACzB,UAAU,CAAC,eAAe;2DAClC,UAAU,CAAC,UAAU;6DACnB,UAAU,CAAC,UAAU;CACjF,CAAC;AAEF,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,iBAAiB,CAAC,MAAM,EAAG,0CAA0C;IACrE,iBAAiB,CAAC,eAAe,EAAG,oDAAoD;IACxF,iBAAiB,CAAC,SAAS,EAAG,4CAA4C;IAC1E,iBAAiB,CAAC,iBAAiB,EAAG,sCAAsC;IAC5E,iBAAiB,CAAC,QAAQ;IAC1B,iBAAiB,CAAC,WAAW;IAC7B,iBAAiB,CAAC,UAAU,EAAG,+BAA+B;IAC9D,4EAA4E;IAC5E,iBAAiB,CAAC,KAAK,EAAG,wCAAwC;IAClE,iBAAiB,CAAC,iBAAiB,EAAG,4BAA4B;IAClE,iBAAiB,CAAC,KAAK,EAAG,wCAAwC;IAClE,iBAAiB,CAAC,iBAAiB,EAAG,4BAA4B;IAClE,iBAAiB,CAAC,aAAa,EAAG,2CAA2C;IAC7E,iBAAiB,CAAC,OAAO;IACzB,iBAAiB,CAAC,WAAW,EAAG,kCAAkC;IAClE,iBAAiB,CAAC,QAAQ;IAC1B,iBAAiB,CAAC,eAAe;IACjC,iBAAiB,CAAC,mBAAmB,EAAG,gCAAgC;IACxE,iBAAiB,CAAC,qBAAqB,EAAG,+BAA+B;IACzE,iBAAiB,CAAC,0BAA0B,EAAG,uCAAuC;IACtF,iBAAiB,CAAC,YAAY;IAC9B,iBAAiB,CAAC,kBAAkB;IACpC,iBAAiB,CAAC,cAAc;IAChC,iBAAiB,CAAC,QAAQ;IAC1B,iBAAiB,CAAC,UAAU,EAAG,qBAAqB;IACpD,iBAAiB,CAAC,UAAU,EAAG,8BAA8B;IAC7D,iBAAiB,CAAC,YAAY,EAAG,sCAAsC;IACvE,iBAAiB,CAAC,OAAO,EAAG,wCAAwC;IACpE,iBAAiB,CAAC,gBAAgB,EAAG,sCAAsC;IAC3E,iBAAiB,CAAC,YAAY,EAAG,sCAAsC;IACvE,iBAAiB,CAAC,MAAM,EAAG,uCAAuC;IAClE,iBAAiB,CAAC,aAAa,EAAG,8BAA8B;IAChE,iBAAiB,CAAC,QAAQ,EAAG,4BAA4B;IACzD,iBAAiB,CAAC,gBAAgB,EAAG,kCAAkC;IACvE,iBAAiB,CAAC,kBAAkB,EAAG,8CAA8C;IACrF,iBAAiB,CAAC,sBAAsB,EAAG,qCAAqC;IAChF,iBAAiB,CAAC,wBAAwB,EAAG,mCAAmC;IAChF,iBAAiB,CAAC,sBAAsB,EAAG,4BAA4B;IACvE,iBAAiB,CAAC,eAAe,EAAG,mCAAmC;IACvE,iBAAiB,CAAC,UAAU,EAAG,uBAAuB;IACtD,0EAA0E;IAC1E,iBAAiB,CAAC,OAAO,EAAG,aAAa;IACzC,iBAAiB,CAAC,aAAa,EAAG,aAAa;IAC/C,iBAAiB,CAAC,QAAQ,EAAG,aAAa;IAC1C,WAAW;CACZ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEd,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAEhF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI;IACJ,YAAY;IACZ,OAAO;IACP,aAAa;IACb,UAAU;IACV,UAAU;IACV,QAAQ;IACR,WAAW;IACX,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,uBAAuB;IACvB,wBAAwB;CAChB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAwC;IAC3E,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,UAAU,CAAC,OAAO,GAAG,CAA4B,CAAC;IAC1F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,oDAAoD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC1E,4CAA4C,CAC7C,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -24,6 +24,7 @@ import { SQLiteStorage } from './storage-sqlite.js';
24
24
  import { parseBoard } from './markdown.js';
25
25
  import { initWorkLifecycleAdapter } from '../work-lifecycle/adapter.js';
26
26
  import { initOutboundSync } from '../external-issues/outbound-sync.js';
27
+ import { initHookManager } from '../work-lifecycle/hooks/index.js';
27
28
  /**
28
29
  * Get the board path for a project
29
30
  * Standard: pmo/projects/{projectId}/kanban.md
@@ -222,6 +223,8 @@ export function getStorageWithAutoSync(pmoPath, _storageType, _logger) {
222
223
  initWorkLifecycleAdapter();
223
224
  // Initialize outbound sync hooks (subscribes to work:* events)
224
225
  initOutboundSync(storage.getDatabase());
226
+ // Initialize work-lifecycle hooks (user-configured event-driven actions)
227
+ initHookManager(storage.getDatabase());
225
228
  return storage;
226
229
  }
227
230
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../../src/lib/pmo/sync-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../../src/lib/pmo/sync-manager.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,17 @@ export interface WorkPRCreatedEvent {
42
42
  prTitle: string | null;
43
43
  timestamp: Date;
44
44
  }
45
+ /** Emitted when a PR linked to a work item is merged. */
46
+ export interface WorkPRMergedEvent {
47
+ workItemId: string;
48
+ source: WorkEventSource;
49
+ projectId?: string;
50
+ prNumber: number;
51
+ prTitle: string | null;
52
+ prUrl: string | null;
53
+ mergeMethod: string;
54
+ timestamp: Date;
55
+ }
45
56
  /** Emitted when work on an item is completed (status moved to 'completed' category). */
46
57
  export interface WorkCompletedEvent {
47
58
  workItemId: string;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Hook Executor
3
+ *
4
+ * Executes hook actions (shell commands, webhooks, log messages) when
5
+ * work lifecycle events fire. Each action type has its own execution logic.
6
+ *
7
+ * Shell commands receive event data as environment variables prefixed with
8
+ * PRLT_HOOK_. Webhook actions POST event data as JSON. Log actions print
9
+ * interpolated messages to stdout.
10
+ */
11
+ import type { WorkHookConfig, HookExecutionResult } from './types.js';
12
+ /**
13
+ * Execute a single hook action and return the result.
14
+ */
15
+ export declare function executeHook(hook: WorkHookConfig, eventName: string, eventData: Record<string, unknown>): HookExecutionResult;
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Hook Executor
3
+ *
4
+ * Executes hook actions (shell commands, webhooks, log messages) when
5
+ * work lifecycle events fire. Each action type has its own execution logic.
6
+ *
7
+ * Shell commands receive event data as environment variables prefixed with
8
+ * PRLT_HOOK_. Webhook actions POST event data as JSON. Log actions print
9
+ * interpolated messages to stdout.
10
+ */
11
+ import { execSync } from 'node:child_process';
12
+ /**
13
+ * Build environment variables from event data for shell hook execution.
14
+ * All keys are uppercased and prefixed with PRLT_HOOK_.
15
+ */
16
+ function buildEnvVars(eventName, eventData) {
17
+ const env = {
18
+ PRLT_HOOK_EVENT: eventName,
19
+ };
20
+ for (const [key, value] of Object.entries(eventData)) {
21
+ if (value === null || value === undefined)
22
+ continue;
23
+ const envKey = `PRLT_HOOK_${key.replace(/([A-Z])/g, '_$1').toUpperCase()}`;
24
+ if (value instanceof Date) {
25
+ env[envKey] = value.toISOString();
26
+ }
27
+ else {
28
+ env[envKey] = String(value);
29
+ }
30
+ }
31
+ return env;
32
+ }
33
+ /**
34
+ * Interpolate {{variable}} placeholders in a string with event data.
35
+ */
36
+ function interpolate(template, eventName, eventData) {
37
+ let result = template.replace(/\{\{event\}\}/g, eventName);
38
+ for (const [key, value] of Object.entries(eventData)) {
39
+ if (value === null || value === undefined)
40
+ continue;
41
+ const strValue = value instanceof Date ? value.toISOString() : String(value);
42
+ result = result.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), strValue);
43
+ }
44
+ return result;
45
+ }
46
+ /**
47
+ * Execute a single hook action and return the result.
48
+ */
49
+ export function executeHook(hook, eventName, eventData) {
50
+ const start = Date.now();
51
+ try {
52
+ switch (hook.actionType) {
53
+ case 'shell': {
54
+ const env = {
55
+ ...process.env,
56
+ ...buildEnvVars(eventName, eventData),
57
+ };
58
+ execSync(hook.actionValue, {
59
+ env,
60
+ timeout: 30_000, // 30 second timeout
61
+ stdio: 'pipe',
62
+ });
63
+ break;
64
+ }
65
+ case 'webhook': {
66
+ // Fire-and-forget POST to the configured URL
67
+ const body = JSON.stringify({
68
+ event: eventName,
69
+ data: eventData,
70
+ hook: { id: hook.id, name: hook.name },
71
+ timestamp: new Date().toISOString(),
72
+ });
73
+ // Use synchronous fetch via execSync to keep it simple
74
+ // This avoids async complexity in the event handler
75
+ execSync(`curl -s -X POST -H "Content-Type: application/json" -d '${body.replace(/'/g, "'\\''")}' '${hook.actionValue}'`, { timeout: 10_000, stdio: 'pipe' });
76
+ break;
77
+ }
78
+ case 'log': {
79
+ const message = interpolate(hook.actionValue, eventName, eventData);
80
+ // eslint-disable-next-line no-console
81
+ console.log(`[hook:${hook.name}] ${message}`);
82
+ break;
83
+ }
84
+ }
85
+ return {
86
+ hookId: hook.id,
87
+ hookName: hook.name,
88
+ success: true,
89
+ durationMs: Date.now() - start,
90
+ };
91
+ }
92
+ catch (err) {
93
+ return {
94
+ hookId: hook.id,
95
+ hookName: hook.name,
96
+ success: false,
97
+ error: err instanceof Error ? err.message : String(err),
98
+ durationMs: Date.now() - start,
99
+ };
100
+ }
101
+ }
102
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Work Lifecycle Hooks — public API.
3
+ *
4
+ * Configurable event-driven actions for work lifecycle events.
5
+ * Hooks subscribe to the EventBus and execute user-configured
6
+ * actions (shell commands, webhooks, log messages) when events fire.
7
+ */
8
+ export type { HookableEvent, HookActionType, WorkHookConfig, WorkHookRow, HookExecutionResult, } from './types.js';
9
+ export { HOOKABLE_EVENTS } from './types.js';
10
+ export { WorkHookStorage, HOOKS_TABLE, HOOKS_TABLE_SCHEMA, HOOKS_TABLE_INDEX, ensureHooksTable, } from './storage.js';
11
+ export { executeHook } from './executor.js';
12
+ export { HookManager, initHookManager, stopHookManager, } from './manager.js';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Work Lifecycle Hooks — public API.
3
+ *
4
+ * Configurable event-driven actions for work lifecycle events.
5
+ * Hooks subscribe to the EventBus and execute user-configured
6
+ * actions (shell commands, webhooks, log messages) when events fire.
7
+ */
8
+ export { HOOKABLE_EVENTS } from './types.js';
9
+ export { WorkHookStorage, HOOKS_TABLE, HOOKS_TABLE_SCHEMA, HOOKS_TABLE_INDEX, ensureHooksTable, } from './storage.js';
10
+ export { executeHook } from './executor.js';
11
+ export { HookManager, initHookManager, stopHookManager, } from './manager.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EACL,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Work Lifecycle Hook Manager
3
+ *
4
+ * Subscribes to work lifecycle events on the global EventBus and
5
+ * executes matching hook configurations from the database.
6
+ *
7
+ * Hooks are fire-and-forget: execution failures are logged but never
8
+ * block the caller or break the event emission chain.
9
+ */
10
+ import type Database from 'better-sqlite3';
11
+ /**
12
+ * HookManager loads hook configs from the database and subscribes to
13
+ * the global EventBus. When a hookable event fires, it finds all
14
+ * enabled hooks for that event and executes them.
15
+ */
16
+ export declare class HookManager {
17
+ private unsubscribers;
18
+ private hookStorage;
19
+ constructor(db: Database.Database);
20
+ /**
21
+ * Start listening for hookable events on the global EventBus.
22
+ * For each event, looks up enabled hooks and executes them.
23
+ */
24
+ start(): void;
25
+ /**
26
+ * Stop listening for events and clean up subscriptions.
27
+ */
28
+ stop(): void;
29
+ /**
30
+ * Handle a hookable event by executing all matching enabled hooks.
31
+ * Hook failures are swallowed to avoid breaking the event chain.
32
+ */
33
+ private handleEvent;
34
+ }
35
+ /**
36
+ * Initialize and start the hook manager.
37
+ * Safe to call multiple times — subsequent calls are no-ops.
38
+ */
39
+ export declare function initHookManager(db: Database.Database): HookManager;
40
+ /**
41
+ * Stop the hook manager (primarily for testing).
42
+ */
43
+ export declare function stopHookManager(): void;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Work Lifecycle Hook Manager
3
+ *
4
+ * Subscribes to work lifecycle events on the global EventBus and
5
+ * executes matching hook configurations from the database.
6
+ *
7
+ * Hooks are fire-and-forget: execution failures are logged but never
8
+ * block the caller or break the event emission chain.
9
+ */
10
+ import { getEventBus } from '../../events/event-bus.js';
11
+ import { WorkHookStorage } from './storage.js';
12
+ import { executeHook } from './executor.js';
13
+ import { HOOKABLE_EVENTS } from './types.js';
14
+ /**
15
+ * HookManager loads hook configs from the database and subscribes to
16
+ * the global EventBus. When a hookable event fires, it finds all
17
+ * enabled hooks for that event and executes them.
18
+ */
19
+ export class HookManager {
20
+ unsubscribers = [];
21
+ hookStorage;
22
+ constructor(db) {
23
+ this.hookStorage = new WorkHookStorage(db);
24
+ }
25
+ /**
26
+ * Start listening for hookable events on the global EventBus.
27
+ * For each event, looks up enabled hooks and executes them.
28
+ */
29
+ start() {
30
+ const bus = getEventBus();
31
+ for (const eventName of HOOKABLE_EVENTS) {
32
+ this.unsubscribers.push(bus.on(eventName, (payload) => {
33
+ this.handleEvent(eventName, payload);
34
+ }));
35
+ }
36
+ }
37
+ /**
38
+ * Stop listening for events and clean up subscriptions.
39
+ */
40
+ stop() {
41
+ for (const unsub of this.unsubscribers) {
42
+ unsub();
43
+ }
44
+ this.unsubscribers = [];
45
+ }
46
+ /**
47
+ * Handle a hookable event by executing all matching enabled hooks.
48
+ * Hook failures are swallowed to avoid breaking the event chain.
49
+ */
50
+ handleEvent(eventName, eventData) {
51
+ try {
52
+ const hooks = this.hookStorage.list({ event: eventName, enabled: true });
53
+ if (hooks.length === 0)
54
+ return;
55
+ for (const hook of hooks) {
56
+ try {
57
+ executeHook(hook, eventName, eventData);
58
+ }
59
+ catch {
60
+ // Hook execution errors are non-fatal
61
+ }
62
+ }
63
+ }
64
+ catch {
65
+ // Storage errors are non-fatal
66
+ }
67
+ }
68
+ }
69
+ // =============================================================================
70
+ // Singleton
71
+ // =============================================================================
72
+ let _manager;
73
+ /**
74
+ * Initialize and start the hook manager.
75
+ * Safe to call multiple times — subsequent calls are no-ops.
76
+ */
77
+ export function initHookManager(db) {
78
+ if (!_manager) {
79
+ _manager = new HookManager(db);
80
+ _manager.start();
81
+ }
82
+ return _manager;
83
+ }
84
+ /**
85
+ * Stop the hook manager (primarily for testing).
86
+ */
87
+ export function stopHookManager() {
88
+ if (_manager) {
89
+ _manager.stop();
90
+ _manager = undefined;
91
+ }
92
+ }
93
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAsB,MAAM,YAAY,CAAA;AAEhE;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACd,aAAa,GAAsB,EAAE,CAAA;IACrC,WAAW,CAAiB;IAEpC,YAAY,EAAqB;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,MAAM,GAAG,GAAG,WAAW,EAAE,CAAA;QAEzB,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAA6C,CAAC,CAAA;YAC5E,CAAC,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,KAAK,EAAE,CAAA;QACT,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;IACzB,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,SAAwB,EAAE,SAAkC;QAC9E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACP,sCAAsC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;CACF;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,IAAI,QAAiC,CAAA;AAErC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAqB;IACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAA;QAC9B,QAAQ,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,EAAE,CAAA;QACf,QAAQ,GAAG,SAAS,CAAA;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Work Lifecycle Hook Storage
3
+ *
4
+ * CRUD operations for hook configurations in the workspace database.
5
+ * Hooks are stored in the pmo_work_hooks table.
6
+ */
7
+ import type Database from 'better-sqlite3';
8
+ import type { WorkHookConfig, HookableEvent, HookActionType } from './types.js';
9
+ /** Table name for work hooks. */
10
+ export declare const HOOKS_TABLE = "pmo_work_hooks";
11
+ /** SQL to create the hooks table. */
12
+ export declare const HOOKS_TABLE_SCHEMA = "\n CREATE TABLE IF NOT EXISTS pmo_work_hooks (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL UNIQUE,\n event TEXT NOT NULL,\n action_type TEXT NOT NULL CHECK (action_type IN ('shell', 'webhook', 'log')),\n action_value TEXT NOT NULL,\n enabled INTEGER NOT NULL DEFAULT 1,\n description TEXT,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n )\n";
13
+ export declare const HOOKS_TABLE_INDEX = "\n CREATE INDEX IF NOT EXISTS idx_pmo_work_hooks_event ON pmo_work_hooks(event);\n CREATE INDEX IF NOT EXISTS idx_pmo_work_hooks_enabled ON pmo_work_hooks(enabled);\n";
14
+ /**
15
+ * Ensure the hooks table exists in the database.
16
+ * Safe to call multiple times.
17
+ */
18
+ export declare function ensureHooksTable(db: Database.Database): void;
19
+ /**
20
+ * WorkHookStorage provides CRUD operations for hook configurations.
21
+ */
22
+ export declare class WorkHookStorage {
23
+ private db;
24
+ constructor(db: Database.Database);
25
+ /**
26
+ * List all hooks, optionally filtered by event name or enabled status.
27
+ */
28
+ list(options?: {
29
+ event?: HookableEvent;
30
+ enabled?: boolean;
31
+ }): WorkHookConfig[];
32
+ /**
33
+ * Get a single hook by ID.
34
+ */
35
+ getById(id: string): WorkHookConfig | null;
36
+ /**
37
+ * Get a single hook by name.
38
+ */
39
+ getByName(name: string): WorkHookConfig | null;
40
+ /**
41
+ * Create a new hook configuration.
42
+ */
43
+ create(params: {
44
+ name: string;
45
+ event: HookableEvent;
46
+ actionType: HookActionType;
47
+ actionValue: string;
48
+ description?: string;
49
+ }): WorkHookConfig;
50
+ /**
51
+ * Delete a hook by ID.
52
+ */
53
+ delete(id: string): boolean;
54
+ /**
55
+ * Enable or disable a hook.
56
+ */
57
+ setEnabled(id: string, enabled: boolean): boolean;
58
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Work Lifecycle Hook Storage
3
+ *
4
+ * CRUD operations for hook configurations in the workspace database.
5
+ * Hooks are stored in the pmo_work_hooks table.
6
+ */
7
+ import { randomUUID } from 'node:crypto';
8
+ /** Table name for work hooks. */
9
+ export const HOOKS_TABLE = 'pmo_work_hooks';
10
+ /** SQL to create the hooks table. */
11
+ export const HOOKS_TABLE_SCHEMA = `
12
+ CREATE TABLE IF NOT EXISTS ${HOOKS_TABLE} (
13
+ id TEXT PRIMARY KEY,
14
+ name TEXT NOT NULL UNIQUE,
15
+ event TEXT NOT NULL,
16
+ action_type TEXT NOT NULL CHECK (action_type IN ('shell', 'webhook', 'log')),
17
+ action_value TEXT NOT NULL,
18
+ enabled INTEGER NOT NULL DEFAULT 1,
19
+ description TEXT,
20
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
21
+ )
22
+ `;
23
+ export const HOOKS_TABLE_INDEX = `
24
+ CREATE INDEX IF NOT EXISTS idx_pmo_work_hooks_event ON ${HOOKS_TABLE}(event);
25
+ CREATE INDEX IF NOT EXISTS idx_pmo_work_hooks_enabled ON ${HOOKS_TABLE}(enabled);
26
+ `;
27
+ /**
28
+ * Ensure the hooks table exists in the database.
29
+ * Safe to call multiple times.
30
+ */
31
+ export function ensureHooksTable(db) {
32
+ db.exec(HOOKS_TABLE_SCHEMA);
33
+ db.exec(HOOKS_TABLE_INDEX);
34
+ }
35
+ /**
36
+ * Convert a database row to a WorkHookConfig.
37
+ */
38
+ function rowToConfig(row) {
39
+ return {
40
+ id: row.id,
41
+ name: row.name,
42
+ event: row.event,
43
+ actionType: row.action_type,
44
+ actionValue: row.action_value,
45
+ enabled: row.enabled === 1,
46
+ description: row.description,
47
+ createdAt: row.created_at,
48
+ };
49
+ }
50
+ /**
51
+ * WorkHookStorage provides CRUD operations for hook configurations.
52
+ */
53
+ export class WorkHookStorage {
54
+ db;
55
+ constructor(db) {
56
+ this.db = db;
57
+ ensureHooksTable(db);
58
+ }
59
+ /**
60
+ * List all hooks, optionally filtered by event name or enabled status.
61
+ */
62
+ list(options) {
63
+ let sql = `SELECT * FROM ${HOOKS_TABLE} WHERE 1=1`;
64
+ const params = [];
65
+ if (options?.event) {
66
+ sql += ' AND event = ?';
67
+ params.push(options.event);
68
+ }
69
+ if (options?.enabled !== undefined) {
70
+ sql += ' AND enabled = ?';
71
+ params.push(options.enabled ? 1 : 0);
72
+ }
73
+ sql += ' ORDER BY created_at ASC';
74
+ const rows = this.db.prepare(sql).all(...params);
75
+ return rows.map(rowToConfig);
76
+ }
77
+ /**
78
+ * Get a single hook by ID.
79
+ */
80
+ getById(id) {
81
+ const row = this.db.prepare(`SELECT * FROM ${HOOKS_TABLE} WHERE id = ?`).get(id);
82
+ return row ? rowToConfig(row) : null;
83
+ }
84
+ /**
85
+ * Get a single hook by name.
86
+ */
87
+ getByName(name) {
88
+ const row = this.db.prepare(`SELECT * FROM ${HOOKS_TABLE} WHERE name = ?`).get(name);
89
+ return row ? rowToConfig(row) : null;
90
+ }
91
+ /**
92
+ * Create a new hook configuration.
93
+ */
94
+ create(params) {
95
+ const id = randomUUID();
96
+ this.db.prepare(`
97
+ INSERT INTO ${HOOKS_TABLE} (id, name, event, action_type, action_value, description)
98
+ VALUES (?, ?, ?, ?, ?, ?)
99
+ `).run(id, params.name, params.event, params.actionType, params.actionValue, params.description ?? null);
100
+ return this.getById(id);
101
+ }
102
+ /**
103
+ * Delete a hook by ID.
104
+ */
105
+ delete(id) {
106
+ const result = this.db.prepare(`DELETE FROM ${HOOKS_TABLE} WHERE id = ?`).run(id);
107
+ return result.changes > 0;
108
+ }
109
+ /**
110
+ * Enable or disable a hook.
111
+ */
112
+ setEnabled(id, enabled) {
113
+ const result = this.db.prepare(`UPDATE ${HOOKS_TABLE} SET enabled = ? WHERE id = ?`).run(enabled ? 1 : 0, id);
114
+ return result.changes > 0;
115
+ }
116
+ }
117
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Work Lifecycle Hook Types
3
+ *
4
+ * Defines the configuration shape for hooks that fire on work lifecycle events.
5
+ * Hooks are user-configurable actions that run when specific work events occur
6
+ * (e.g., run a shell command when work starts, call a webhook when a PR is created).
7
+ */
8
+ import type { RuntimeEventName } from '../../events/events.js';
9
+ /**
10
+ * Work lifecycle event names that can trigger hooks.
11
+ * Subset of RuntimeEventName limited to work-relevant events.
12
+ */
13
+ export type HookableEvent = Extract<RuntimeEventName, 'work:started' | 'work:status_changed' | 'work:pr_created' | 'work:completed' | 'agent:spawned' | 'agent:stopped'>;
14
+ /** All hookable event names for validation. */
15
+ export declare const HOOKABLE_EVENTS: HookableEvent[];
16
+ /**
17
+ * Action types that a hook can execute.
18
+ *
19
+ * - shell: Run a shell command (with event data as env vars)
20
+ * - webhook: POST event data to a URL
21
+ * - log: Write a message to stdout (useful for notifications/debugging)
22
+ */
23
+ export type HookActionType = 'shell' | 'webhook' | 'log';
24
+ /**
25
+ * Persisted hook configuration stored in the database.
26
+ */
27
+ export interface WorkHookConfig {
28
+ /** Unique hook ID (auto-generated UUID) */
29
+ id: string;
30
+ /** Human-readable hook name */
31
+ name: string;
32
+ /** Event that triggers this hook */
33
+ event: HookableEvent;
34
+ /** Type of action to execute */
35
+ actionType: HookActionType;
36
+ /** Action payload — shell command, webhook URL, or log message template */
37
+ actionValue: string;
38
+ /** Whether the hook is active */
39
+ enabled: boolean;
40
+ /** Optional description */
41
+ description: string | null;
42
+ /** When the hook was created */
43
+ createdAt: string;
44
+ }
45
+ /**
46
+ * Row shape from the database (snake_case columns).
47
+ */
48
+ export interface WorkHookRow {
49
+ id: string;
50
+ name: string;
51
+ event: string;
52
+ action_type: string;
53
+ action_value: string;
54
+ enabled: number;
55
+ description: string | null;
56
+ created_at: string;
57
+ }
58
+ /**
59
+ * Result of executing a single hook.
60
+ */
61
+ export interface HookExecutionResult {
62
+ hookId: string;
63
+ hookName: string;
64
+ success: boolean;
65
+ error?: string;
66
+ /** Duration in ms */
67
+ durationMs: number;
68
+ }