@overlordai/server 1.0.113 → 1.0.115

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 (288) hide show
  1. package/database/migrations/003-chat-bindings-project-key-index.sql +1 -0
  2. package/database/migrations/004-drop-agent-command.sql +2 -0
  3. package/database/migrations/005-task-name.sql +1 -0
  4. package/dist/adapters/adapter.interface.d.ts +4 -0
  5. package/dist/adapters/adapter.interface.d.ts.map +1 -1
  6. package/dist/adapters/adapter.interface.js.map +1 -1
  7. package/dist/adapters/command-parser.utils.d.ts +45 -0
  8. package/dist/adapters/command-parser.utils.d.ts.map +1 -0
  9. package/dist/adapters/command-parser.utils.js +144 -0
  10. package/dist/adapters/command-parser.utils.js.map +1 -0
  11. package/dist/adapters/help-text.d.ts +2 -0
  12. package/dist/adapters/help-text.d.ts.map +1 -0
  13. package/dist/adapters/help-text.js +24 -0
  14. package/dist/adapters/help-text.js.map +1 -0
  15. package/dist/adapters/lark/lark-card.builder.d.ts.map +1 -1
  16. package/dist/adapters/lark/lark-card.builder.js +10 -17
  17. package/dist/adapters/lark/lark-card.builder.js.map +1 -1
  18. package/dist/adapters/lark/lark-message.parser.d.ts +2 -35
  19. package/dist/adapters/lark/lark-message.parser.d.ts.map +1 -1
  20. package/dist/adapters/lark/lark-message.parser.js +12 -162
  21. package/dist/adapters/lark/lark-message.parser.js.map +1 -1
  22. package/dist/adapters/lark/lark.adapter.d.ts +18 -0
  23. package/dist/adapters/lark/lark.adapter.d.ts.map +1 -1
  24. package/dist/adapters/lark/lark.adapter.js +152 -23
  25. package/dist/adapters/lark/lark.adapter.js.map +1 -1
  26. package/dist/adapters/lark/lark.controller.d.ts.map +1 -1
  27. package/dist/adapters/lark/lark.controller.js +2 -1
  28. package/dist/adapters/lark/lark.controller.js.map +1 -1
  29. package/dist/adapters/slack/slack-block.builder.d.ts.map +1 -1
  30. package/dist/adapters/slack/slack-block.builder.js +7 -14
  31. package/dist/adapters/slack/slack-block.builder.js.map +1 -1
  32. package/dist/adapters/slack/slack-message.parser.d.ts +2 -11
  33. package/dist/adapters/slack/slack-message.parser.d.ts.map +1 -1
  34. package/dist/adapters/slack/slack-message.parser.js +12 -135
  35. package/dist/adapters/slack/slack-message.parser.js.map +1 -1
  36. package/dist/adapters/slack/slack.adapter.d.ts +5 -0
  37. package/dist/adapters/slack/slack.adapter.d.ts.map +1 -1
  38. package/dist/adapters/slack/slack.adapter.js +101 -25
  39. package/dist/adapters/slack/slack.adapter.js.map +1 -1
  40. package/dist/adapters/slack/slack.controller.d.ts.map +1 -1
  41. package/dist/adapters/slack/slack.controller.js +3 -4
  42. package/dist/adapters/slack/slack.controller.js.map +1 -1
  43. package/dist/common/config.d.ts +15 -0
  44. package/dist/common/config.d.ts.map +1 -1
  45. package/dist/common/config.js +27 -0
  46. package/dist/common/config.js.map +1 -1
  47. package/dist/common/project-validation.d.ts +1 -1
  48. package/dist/common/project-validation.d.ts.map +1 -1
  49. package/dist/common/project-validation.js +1 -9
  50. package/dist/common/project-validation.js.map +1 -1
  51. package/dist/common/status-display.d.ts +10 -0
  52. package/dist/common/status-display.d.ts.map +1 -0
  53. package/dist/common/status-display.js +35 -0
  54. package/dist/common/status-display.js.map +1 -0
  55. package/dist/common/string-utils.d.ts +3 -0
  56. package/dist/common/string-utils.d.ts.map +1 -1
  57. package/dist/common/string-utils.js +5 -0
  58. package/dist/common/string-utils.js.map +1 -1
  59. package/dist/database/repositories/bot.repository.d.ts +4 -0
  60. package/dist/database/repositories/bot.repository.d.ts.map +1 -1
  61. package/dist/database/repositories/bot.repository.js +15 -0
  62. package/dist/database/repositories/bot.repository.js.map +1 -1
  63. package/dist/database/repositories/project.repository.d.ts.map +1 -1
  64. package/dist/database/repositories/project.repository.js +0 -2
  65. package/dist/database/repositories/project.repository.js.map +1 -1
  66. package/dist/database/repositories/task.repository.d.ts +2 -1
  67. package/dist/database/repositories/task.repository.d.ts.map +1 -1
  68. package/dist/database/repositories/task.repository.js +19 -1
  69. package/dist/database/repositories/task.repository.js.map +1 -1
  70. package/dist/dispatcher/cleanup.service.d.ts +5 -0
  71. package/dist/dispatcher/cleanup.service.d.ts.map +1 -1
  72. package/dist/dispatcher/cleanup.service.js +19 -0
  73. package/dist/dispatcher/cleanup.service.js.map +1 -1
  74. package/dist/dispatcher/dispatcher.module.d.ts.map +1 -1
  75. package/dist/dispatcher/dispatcher.module.js +4 -0
  76. package/dist/dispatcher/dispatcher.module.js.map +1 -1
  77. package/dist/dispatcher/dispatcher.service.d.ts +0 -1
  78. package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
  79. package/dist/dispatcher/dispatcher.service.js +46 -45
  80. package/dist/dispatcher/dispatcher.service.js.map +1 -1
  81. package/dist/dispatcher/dispatcher.types.d.ts +1 -0
  82. package/dist/dispatcher/dispatcher.types.d.ts.map +1 -1
  83. package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
  84. package/dist/dispatcher/scheduler.service.js +14 -3
  85. package/dist/dispatcher/scheduler.service.js.map +1 -1
  86. package/dist/dispatcher/stage-confirm-timeout.service.d.ts +15 -0
  87. package/dist/dispatcher/stage-confirm-timeout.service.d.ts.map +1 -0
  88. package/dist/dispatcher/stage-confirm-timeout.service.js +81 -0
  89. package/dist/dispatcher/stage-confirm-timeout.service.js.map +1 -0
  90. package/dist/dispatcher/task-creation.service.d.ts +3 -1
  91. package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
  92. package/dist/dispatcher/task-creation.service.js +30 -4
  93. package/dist/dispatcher/task-creation.service.js.map +1 -1
  94. package/dist/dispatcher/task-lifecycle.service.d.ts +4 -2
  95. package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
  96. package/dist/dispatcher/task-lifecycle.service.js +78 -8
  97. package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
  98. package/dist/dispatcher/task-name.service.d.ts +14 -0
  99. package/dist/dispatcher/task-name.service.d.ts.map +1 -0
  100. package/dist/dispatcher/task-name.service.js +80 -0
  101. package/dist/dispatcher/task-name.service.js.map +1 -0
  102. package/dist/events/event-types.d.ts +1 -0
  103. package/dist/events/event-types.d.ts.map +1 -1
  104. package/dist/notifier/notification-consumer.d.ts +33 -1
  105. package/dist/notifier/notification-consumer.d.ts.map +1 -1
  106. package/dist/notifier/notification-consumer.js +235 -11
  107. package/dist/notifier/notification-consumer.js.map +1 -1
  108. package/dist/notifier/notifier.service.d.ts +5 -1
  109. package/dist/notifier/notifier.service.d.ts.map +1 -1
  110. package/dist/notifier/notifier.service.js +6 -3
  111. package/dist/notifier/notifier.service.js.map +1 -1
  112. package/dist/notifier/template.service.d.ts +15 -0
  113. package/dist/notifier/template.service.d.ts.map +1 -1
  114. package/dist/notifier/template.service.js +92 -31
  115. package/dist/notifier/template.service.js.map +1 -1
  116. package/dist/web/admin/admin-developer.controller.d.ts +2 -2
  117. package/dist/web/admin/admin-settings.controller.d.ts.map +1 -1
  118. package/dist/web/admin/admin-settings.controller.js +0 -1
  119. package/dist/web/admin/admin-settings.controller.js.map +1 -1
  120. package/dist/web/dashboard.controller.d.ts +1 -1
  121. package/dist/web/dashboard.controller.d.ts.map +1 -1
  122. package/dist/web/dashboard.controller.js +12 -4
  123. package/dist/web/dashboard.controller.js.map +1 -1
  124. package/dist/web/dashboard.service.d.ts +18 -0
  125. package/dist/web/dashboard.service.d.ts.map +1 -1
  126. package/dist/web/dashboard.service.js +81 -11
  127. package/dist/web/dashboard.service.js.map +1 -1
  128. package/dist/web/frame-handlers/index.d.ts +2 -0
  129. package/dist/web/frame-handlers/index.d.ts.map +1 -1
  130. package/dist/web/frame-handlers/index.js +5 -1
  131. package/dist/web/frame-handlers/index.js.map +1 -1
  132. package/dist/web/frame-handlers/progress.handler.d.ts +3 -1
  133. package/dist/web/frame-handlers/progress.handler.d.ts.map +1 -1
  134. package/dist/web/frame-handlers/progress.handler.js +22 -3
  135. package/dist/web/frame-handlers/progress.handler.js.map +1 -1
  136. package/dist/web/frame-handlers/stage-choice.handler.d.ts +15 -0
  137. package/dist/web/frame-handlers/stage-choice.handler.d.ts.map +1 -0
  138. package/dist/web/frame-handlers/stage-choice.handler.js +39 -0
  139. package/dist/web/frame-handlers/stage-choice.handler.js.map +1 -0
  140. package/dist/web/frame-handlers/stage-confirm.handler.d.ts.map +1 -1
  141. package/dist/web/frame-handlers/stage-confirm.handler.js +1 -0
  142. package/dist/web/frame-handlers/stage-confirm.handler.js.map +1 -1
  143. package/dist/web/frame-handlers/stage-input.handler.d.ts +15 -0
  144. package/dist/web/frame-handlers/stage-input.handler.d.ts.map +1 -0
  145. package/dist/web/frame-handlers/stage-input.handler.js +39 -0
  146. package/dist/web/frame-handlers/stage-input.handler.js.map +1 -0
  147. package/dist/web/project.controller.d.ts +2 -4
  148. package/dist/web/project.controller.d.ts.map +1 -1
  149. package/dist/web/search.service.d.ts +1 -0
  150. package/dist/web/search.service.d.ts.map +1 -1
  151. package/dist/web/search.service.js +6 -6
  152. package/dist/web/search.service.js.map +1 -1
  153. package/dist/web/task.controller.d.ts +16 -1
  154. package/dist/web/task.controller.d.ts.map +1 -1
  155. package/dist/web/task.controller.js +57 -5
  156. package/dist/web/task.controller.js.map +1 -1
  157. package/dist/web/web-event.service.d.ts.map +1 -1
  158. package/dist/web/web-event.service.js +1 -0
  159. package/dist/web/web-event.service.js.map +1 -1
  160. package/dist/web/worker-channel.gateway.d.ts.map +1 -1
  161. package/dist/web/worker-channel.gateway.js +3 -1
  162. package/dist/web/worker-channel.gateway.js.map +1 -1
  163. package/package.json +4 -4
  164. package/public/assets/{AccessTokensPage-D_A93EkP.js → AccessTokensPage-Yp8IfrfF.js} +1 -1
  165. package/public/assets/{AdminPage-DnmoRibU.js → AdminPage-CS2HrhOC.js} +1 -1
  166. package/public/assets/ApiReferencePage-DTinm3RG.js +1 -0
  167. package/public/assets/{ArchitecturePage-Co5G-15M.js → ArchitecturePage-BpA3PUuf.js} +1 -1
  168. package/public/assets/{AuditLogPage-DoaVh4un.js → AuditLogPage-B_Qopq3a.js} +2 -2
  169. package/public/assets/{BindPlatformPage-C2bIjAbT.js → BindPlatformPage-BkV-IfaR.js} +1 -1
  170. package/public/assets/BotIntegrationPage-DLuRDIam.js +1 -0
  171. package/public/assets/BotManage-XKHjrA-7.js +6 -0
  172. package/public/assets/BotSetupPage-Cn40afR9.js +33 -0
  173. package/public/assets/{ChangelogPage-CazGvq6Y.js → ChangelogPage-ChiapPDH.js} +1 -1
  174. package/public/assets/{CliReferencePage-tonM0XBs.js → CliReferencePage-3eHb6kRq.js} +1 -1
  175. package/public/assets/{DeploymentPage-DwifcnIe.js → DeploymentPage-CvT9Pcow.js} +1 -1
  176. package/public/assets/{DevWorkflowPage-DJddffhm.js → DevWorkflowPage-BLEIbUu1.js} +1 -1
  177. package/public/assets/{DeveloperManage-DwaEFuLo.js → DeveloperManage-DAJBvmdv.js} +2 -2
  178. package/public/assets/{DeveloperSetupPage-DA4BHPuG.js → DeveloperSetupPage-BhE83ouS.js} +1 -1
  179. package/public/assets/{DocsIndexPage-C-FZbN8Z.js → DocsIndexPage-BE_tyO2Q.js} +1 -1
  180. package/public/assets/{DocsLayout-HdiVoWKl.js → DocsLayout-D1S4KUeB.js} +1 -1
  181. package/public/assets/{DocsPrimitives-DU41lKXb.js → DocsPrimitives-BQXfZXxZ.js} +1 -1
  182. package/public/assets/EditProjectPage-BjgRi6kG.js +2 -0
  183. package/public/assets/{EmptyState-i9jXL5NQ.js → EmptyState-Dlt6FhVC.js} +1 -1
  184. package/public/assets/EnvVariablesPage-CvcP4GZM.js +24 -0
  185. package/public/assets/HomePage-uEE3mJNM.js +1 -0
  186. package/public/assets/{InfoRow-kU23cpPE.js → InfoRow-Db2nisGq.js} +1 -1
  187. package/public/assets/{InstallationPage-JxXYftV0.js → InstallationPage-kt-du5Rr.js} +2 -2
  188. package/public/assets/{LandingPage-7--4I0lt.js → LandingPage-2irRMduO.js} +1 -1
  189. package/public/assets/{LocalDevelopmentPage-B0C1C5Rs.js → LocalDevelopmentPage-7JvSDwD1.js} +1 -1
  190. package/public/assets/{LoginPage-2Io9O_Q7.js → LoginPage-DDk_X1sv.js} +1 -1
  191. package/public/assets/{MetricBar-BSwVCFMX.js → MetricBar-BhjbfPOa.js} +1 -1
  192. package/public/assets/{NotFoundPage-DbO52kqL.js → NotFoundPage-ByRykDvA.js} +1 -1
  193. package/public/assets/{OnboardingGuide-BeP-StZq.js → OnboardingGuide-CinJRqx5.js} +1 -1
  194. package/public/assets/{PermissionsPage-BMM-SA8k.js → PermissionsPage-C5RXlztC.js} +1 -1
  195. package/public/assets/PipelineConfigPage-BSkSRngC.js +22 -0
  196. package/public/assets/{PipelineEditorPage-CpW1dBVH.js → PipelineEditorPage-BoZ_MVNO.js} +2 -2
  197. package/public/assets/{ProfilePage-BaDJoNI7.js → ProfilePage-CePUfQDH.js} +1 -1
  198. package/public/assets/ProjectDetailPage-_DswTp8-.js +7 -0
  199. package/public/assets/ProjectListPage-fVbDom8_.js +6 -0
  200. package/public/assets/{PtyTerminal-CEkY7dvk.js → PtyTerminal-Dpk4L7LN.js} +1 -1
  201. package/public/assets/{QuickAuth-9InsfbSA.js → QuickAuth-BAmZCI4O.js} +1 -1
  202. package/public/assets/{RemoveMemberConfirmDialog-Do5LW-9Q.js → RemoveMemberConfirmDialog-DYi6BAz2.js} +2 -2
  203. package/public/assets/{Select-8IQBiBBw.js → Select-DnIOEVCT.js} +1 -1
  204. package/public/assets/SettingsPage-CwV-t8vo.js +6 -0
  205. package/public/assets/{Skeleton-B3ZvE5gP.js → Skeleton--qglldqs.js} +1 -1
  206. package/public/assets/{SkillPage-BhiRgb-S.js → SkillPage-CsXXruJZ.js} +1 -1
  207. package/public/assets/TaskDetailPage-gOUWMfkb.js +21 -0
  208. package/public/assets/TaskListPage-vF17zpt2.js +1 -0
  209. package/public/assets/{TaskStatusBadge-B6mxAWy2.js → TaskStatusBadge-CCh-nmLz.js} +1 -1
  210. package/public/assets/TerminalHomePage-DXFg88Q9.js +11 -0
  211. package/public/assets/{TokenManage-CenYPcRv.js → TokenManage-P98_TYIe.js} +1 -1
  212. package/public/assets/Tooltip-DGoJgM_K.js +1 -0
  213. package/public/assets/{TotpSetupPage-DQyx573Y.js → TotpSetupPage-D5GUedMd.js} +1 -1
  214. package/public/assets/WorkerDetailPage-CkI1feoH.js +1 -0
  215. package/public/assets/{WorkerListPage-_bt8SJDK.js → WorkerListPage-C90v6nLx.js} +2 -2
  216. package/public/assets/{WorkerOperationsPage-CDat2rGV.js → WorkerOperationsPage-OxH0Ky0Y.js} +1 -1
  217. package/public/assets/{WorkerSetupGuidePage-CN7fSwA-.js → WorkerSetupGuidePage-DGlgYS82.js} +1 -1
  218. package/public/assets/{WorkerSetupPage--spDks6s.js → WorkerSetupPage-DJ359PwT.js} +1 -1
  219. package/public/assets/{arrow-left-CQ-bmyEx.js → arrow-left-BPgCxdEG.js} +1 -1
  220. package/public/assets/{arrow-right-BOWA0FvU.js → arrow-right-Z-hFp5rr.js} +1 -1
  221. package/public/assets/{bot-BpTfNKBP.js → bot-B7Bl9J0r.js} +1 -1
  222. package/public/assets/{chevron-right-D-xhzuZQ.js → chevron-right-D_hyYdgn.js} +1 -1
  223. package/public/assets/{copy-DXSXnWX4.js → copy-SJf3OFPQ.js} +1 -1
  224. package/public/assets/{download-FbsyL-QU.js → download-D7rCJJks.js} +1 -1
  225. package/public/assets/{external-link-CPRFmfE1.js → external-link-BrXLoqUZ.js} +1 -1
  226. package/public/assets/index-BiItJ2NI.css +1 -0
  227. package/public/assets/{index-D205WYza.js → index-DPCzKHL-.js} +23 -23
  228. package/public/assets/{key-Diuh2Udi.js → key-CCF8A0TZ.js} +1 -1
  229. package/public/assets/{loader-circle-CsopNBbX.js → loader-circle-BO0HYeDT.js} +1 -1
  230. package/public/assets/{pencil-n52F1Vop.js → pencil-BhxWbYup.js} +1 -1
  231. package/public/assets/{plus-BHkYD1iG.js → plus-BnJSQWb4.js} +1 -1
  232. package/public/assets/{rotate-ccw-Bl22woOU.js → rotate-ccw-CioNXT1z.js} +1 -1
  233. package/public/assets/{scroll-text-DbVWAYzk.js → scroll-text-DpFjChL8.js} +1 -1
  234. package/public/assets/{settings-0li6vYCf.js → settings-Bklbsj12.js} +1 -1
  235. package/public/assets/{status-colors-C6o-wKJJ.js → status-colors-BkxgT8vX.js} +1 -1
  236. package/public/assets/{task-constants-a8NftfbJ.js → task-constants-Ctac6aky.js} +1 -1
  237. package/public/assets/task-display-J_FNKBLK.js +1 -0
  238. package/public/assets/{trash-2-LoxvLZVm.js → trash-2-_3SD7t1j.js} +1 -1
  239. package/public/assets/{useFetch-DIPC8gCD.js → useFetch-D8w38eG7.js} +1 -1
  240. package/public/assets/{users-BgBBs7IT.js → users-BBjD2TJy.js} +1 -1
  241. package/public/assets/{wifi-CF0XZj9i.js → wifi-KyET3jRD.js} +1 -1
  242. package/public/assets/{workflow-DBOppGKP.js → workflow-EN1ACj2x.js} +1 -1
  243. package/public/index.html +2 -2
  244. package/public/sw.js +1 -1
  245. package/dist/common/command-parser.d.ts +0 -29
  246. package/dist/common/command-parser.d.ts.map +0 -1
  247. package/dist/common/command-parser.js +0 -133
  248. package/dist/common/command-parser.js.map +0 -1
  249. package/dist/common/machine-utils.d.ts +0 -32
  250. package/dist/common/machine-utils.d.ts.map +0 -1
  251. package/dist/common/machine-utils.js +0 -12
  252. package/dist/common/machine-utils.js.map +0 -1
  253. package/dist/common/worker-utils.d.ts +0 -31
  254. package/dist/common/worker-utils.d.ts.map +0 -1
  255. package/dist/common/worker-utils.js +0 -12
  256. package/dist/common/worker-utils.js.map +0 -1
  257. package/dist/database/repositories/machine.repository.d.ts +0 -46
  258. package/dist/database/repositories/machine.repository.d.ts.map +0 -1
  259. package/dist/database/repositories/machine.repository.js +0 -200
  260. package/dist/database/repositories/machine.repository.js.map +0 -1
  261. package/dist/dispatcher/machine-selector.d.ts +0 -18
  262. package/dist/dispatcher/machine-selector.d.ts.map +0 -1
  263. package/dist/dispatcher/machine-selector.js +0 -148
  264. package/dist/dispatcher/machine-selector.js.map +0 -1
  265. package/dist/web/admin/admin-machine.controller.d.ts +0 -72
  266. package/dist/web/admin/admin-machine.controller.d.ts.map +0 -1
  267. package/dist/web/admin/admin-machine.controller.js +0 -176
  268. package/dist/web/admin/admin-machine.controller.js.map +0 -1
  269. package/dist/web/machine.controller.d.ts +0 -115
  270. package/dist/web/machine.controller.d.ts.map +0 -1
  271. package/dist/web/machine.controller.js +0 -125
  272. package/dist/web/machine.controller.js.map +0 -1
  273. package/public/assets/ApiReferencePage-8Fvke3MS.js +0 -1
  274. package/public/assets/BotIntegrationPage-BgK7NXyQ.js +0 -1
  275. package/public/assets/BotManage-BlWUAERC.js +0 -6
  276. package/public/assets/BotSetupPage-BhNhgobr.js +0 -33
  277. package/public/assets/EditProjectPage-0HfKfeFS.js +0 -2
  278. package/public/assets/EnvVariablesPage-DofRDtyz.js +0 -1
  279. package/public/assets/HomePage-Ct5rkEIu.js +0 -1
  280. package/public/assets/PipelineConfigPage-6KxS3scE.js +0 -28
  281. package/public/assets/ProjectDetailPage-QjUSwxfS.js +0 -7
  282. package/public/assets/ProjectListPage-Bs0GPEJb.js +0 -6
  283. package/public/assets/SettingsPage-DRWkl-_N.js +0 -6
  284. package/public/assets/TaskDetailPage-vwqcnwqe.js +0 -21
  285. package/public/assets/TaskListPage-DRiTh03Z.js +0 -1
  286. package/public/assets/TerminalHomePage-sK-nSIOn.js +0 -11
  287. package/public/assets/WorkerDetailPage-BV7YTrMb.js +0 -1
  288. package/public/assets/index-DrlMKbMb.css +0 -1
@@ -2,6 +2,9 @@ import type { Task } from '@overlordai/protocol';
2
2
  import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
3
3
  import { NotificationRepository } from '../database/repositories/notification.repository';
4
4
  import { TaskRepository } from '../database/repositories/task.repository';
5
+ import { ProjectRepository } from '../database/repositories/project.repository';
6
+ import { BotRepository } from '../database/repositories/bot.repository';
7
+ import { DeveloperRepository } from '../database/repositories/developer.repository';
5
8
  import { TaskLogBatcher } from '../dispatcher/task-log-batcher';
6
9
  import { TemplateService } from './template.service';
7
10
  /** Name of the BullMQ notification queue. */
@@ -39,6 +42,11 @@ export interface IMessageAdapter {
39
42
  text?: string;
40
43
  card?: unknown;
41
44
  }): Promise<void>;
45
+ sendDM(platformUid: string, content: {
46
+ type: 'text' | 'card';
47
+ text?: string;
48
+ card?: unknown;
49
+ }): Promise<string | undefined>;
42
50
  }
43
51
  /**
44
52
  * Interface for the adapter registry.
@@ -51,8 +59,11 @@ export interface IAdapterRegistry {
51
59
  export declare class NotificationConsumer implements OnModuleInit, OnModuleDestroy {
52
60
  private readonly notificationRepo;
53
61
  private readonly taskRepo;
62
+ private readonly projectRepo;
63
+ private readonly botRepo;
54
64
  private readonly taskLogBatcher;
55
65
  private readonly templateService;
66
+ private readonly developerRepo;
56
67
  private readonly logger;
57
68
  private worker;
58
69
  /**
@@ -60,7 +71,7 @@ export declare class NotificationConsumer implements OnModuleInit, OnModuleDestr
60
71
  * platform notifications gracefully fall back to web (in-app) only.
61
72
  */
62
73
  private adapterRegistry;
63
- constructor(notificationRepo: NotificationRepository, taskRepo: TaskRepository, taskLogBatcher: TaskLogBatcher, templateService: TemplateService);
74
+ constructor(notificationRepo: NotificationRepository, taskRepo: TaskRepository, projectRepo: ProjectRepository, botRepo: BotRepository, taskLogBatcher: TaskLogBatcher, templateService: TemplateService, developerRepo: DeveloperRepository);
64
75
  /** Allow the module to inject the adapter registry after construction. */
65
76
  setAdapterRegistry(registry: IAdapterRegistry): void;
66
77
  onModuleInit(): Promise<void>;
@@ -69,6 +80,27 @@ export declare class NotificationConsumer implements OnModuleInit, OnModuleDestr
69
80
  * Process a single notification job.
70
81
  */
71
82
  private process;
83
+ /**
84
+ * Deliver notification to the executor via DM.
85
+ */
86
+ private deliverToExecutorDM;
87
+ /**
88
+ * Send a new message to a chat (no update of existing card).
89
+ */
90
+ private sendNewMessage;
91
+ /**
92
+ * Deliver notification to the original source chat via platform adapter.
93
+ */
94
+ private deliverToSourceChat;
95
+ /**
96
+ * Enrich extra data with project information for task_completed events.
97
+ */
98
+ private enrichWithProjectInfo;
99
+ /**
100
+ * Send task completion notification to project-bound chat bindings.
101
+ * Skips the source chat (same platform + chatId) to avoid duplicate messages.
102
+ */
103
+ private deliverToProjectChats;
72
104
  /**
73
105
  * Write an in-app (web) notification to the notifications table.
74
106
  */
@@ -1 +1 @@
1
- {"version":3,"file":"notification-consumer.d.ts","sourceRoot":"","sources":["../../src/notifier/notification-consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAsB,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,6CAA6C;AAC7C,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+CAA+C;IAC/C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iDAAiD;IACjD,IAAI,EAAE,IAAI,CAAC;IACX,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAChE,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,aAAa,CACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;CACtD;AAED,qBACa,oBAAqB,YAAW,YAAY,EAAE,eAAe;IAWtE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAblC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,MAAM,CAAc;IAE5B;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAiC;gBAGrC,gBAAgB,EAAE,sBAAsB,EACxC,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe;IAGnD,0EAA0E;IAC1E,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI9C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC;;OAEG;YACW,OAAO;IA8ErB;;OAEG;YACW,qBAAqB;IA0BnC;;OAEG;IACH,OAAO,CAAC,YAAY;IA4BpB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAiB/B"}
1
+ {"version":3,"file":"notification-consumer.d.ts","sourceRoot":"","sources":["../../src/notifier/notification-consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAsB,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA2BrD,6CAA6C;AAC7C,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+CAA+C;IAC/C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iDAAiD;IACjD,IAAI,EAAE,IAAI,CAAC;IACX,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAChE,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,aAAa,CACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,MAAM,CACJ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAChE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;CACtD;AAED,qBACa,oBAAqB,YAAW,YAAY,EAAE,eAAe;IAWtE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAhBhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,MAAM,CAAc;IAE5B;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAiC;gBAGrC,gBAAgB,EAAE,sBAAsB,EACxC,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,mBAAmB;IAGrD,0EAA0E;IAC1E,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI9C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC;;OAEG;YACW,OAAO;IAmDrB;;OAEG;YACW,mBAAmB;IAmDjC;;OAEG;YACW,cAAc;IA2B5B;;OAEG;YACW,mBAAmB;IAmEjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;;OAGG;YACW,qBAAqB;IAwDnC;;OAEG;YACW,qBAAqB;IA0BnC;;OAEG;IACH,OAAO,CAAC,YAAY;IA4CpB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAiB/B"}
@@ -16,16 +16,44 @@ const common_1 = require("@nestjs/common");
16
16
  const bullmq_1 = require("bullmq");
17
17
  const notification_repository_1 = require("../database/repositories/notification.repository");
18
18
  const task_repository_1 = require("../database/repositories/task.repository");
19
+ const project_repository_1 = require("../database/repositories/project.repository");
20
+ const bot_repository_1 = require("../database/repositories/bot.repository");
21
+ const developer_repository_1 = require("../database/repositories/developer.repository");
19
22
  const task_log_batcher_1 = require("../dispatcher/task-log-batcher");
20
23
  const config_1 = require("../common/config");
21
24
  const template_service_1 = require("./template.service");
25
+ /** Events that always send a new message (never update existing card). */
26
+ const NEW_MESSAGE_EVENTS = new Set([
27
+ 'task_completed',
28
+ 'task_failed',
29
+ 'task_cancelled',
30
+ 'task_suspended',
31
+ 'stage_confirm_required',
32
+ 'stage_choice_required',
33
+ 'stage_input_required',
34
+ ]);
35
+ /** Events that should also notify the creator (when creator ≠ executor). */
36
+ const CREATOR_NOTIFY_EVENTS = new Set([
37
+ 'task_completed',
38
+ 'task_failed',
39
+ ]);
40
+ /** Events that always go to DM even when creator === executor. */
41
+ const FORCE_DM_EVENTS = new Set([
42
+ 'task_suspended',
43
+ 'stage_confirm_required',
44
+ 'stage_choice_required',
45
+ 'stage_input_required',
46
+ ]);
22
47
  /** Name of the BullMQ notification queue. */
23
48
  exports.NOTIFICATION_QUEUE_NAME = 'notification';
24
49
  let NotificationConsumer = NotificationConsumer_1 = class NotificationConsumer {
25
50
  notificationRepo;
26
51
  taskRepo;
52
+ projectRepo;
53
+ botRepo;
27
54
  taskLogBatcher;
28
55
  templateService;
56
+ developerRepo;
29
57
  logger = new common_1.Logger(NotificationConsumer_1.name);
30
58
  worker;
31
59
  /**
@@ -33,11 +61,14 @@ let NotificationConsumer = NotificationConsumer_1 = class NotificationConsumer {
33
61
  * platform notifications gracefully fall back to web (in-app) only.
34
62
  */
35
63
  adapterRegistry = null;
36
- constructor(notificationRepo, taskRepo, taskLogBatcher, templateService) {
64
+ constructor(notificationRepo, taskRepo, projectRepo, botRepo, taskLogBatcher, templateService, developerRepo) {
37
65
  this.notificationRepo = notificationRepo;
38
66
  this.taskRepo = taskRepo;
67
+ this.projectRepo = projectRepo;
68
+ this.botRepo = botRepo;
39
69
  this.taskLogBatcher = taskLogBatcher;
40
70
  this.templateService = templateService;
71
+ this.developerRepo = developerRepo;
41
72
  }
42
73
  /** Allow the module to inject the adapter registry after construction. */
43
74
  setAdapterRegistry(registry) {
@@ -68,18 +99,119 @@ let NotificationConsumer = NotificationConsumer_1 = class NotificationConsumer {
68
99
  * Process a single notification job.
69
100
  */
70
101
  async process(job) {
71
- const { taskId, eventType, sourcePlatform, sourceChatId, notificationMsgId, task, extra, } = job.data;
102
+ const { taskId, eventType, sourcePlatform, sourceChatId, notificationMsgId, task, extra } = job.data;
72
103
  this.logger.debug(`Processing notification: task=${taskId} event=${eventType} platform=${sourcePlatform}`);
73
- // Build notification content using the template service.
74
- const content = this.buildContent(task, eventType, extra);
75
- // Route based on source platform.
104
+ const enrichedExtra = this.enrichWithProjectInfo(task, eventType, extra);
105
+ const content = this.buildContent(task, eventType, enrichedExtra);
76
106
  const platform = sourcePlatform?.toLowerCase() ?? protocol_1.Platform.WEB;
107
+ const isNewMessage = NEW_MESSAGE_EVENTS.has(eventType);
108
+ const forceDM = FORCE_DM_EVENTS.has(eventType);
109
+ // Treat as same person when either is null (task created via web or unassigned)
110
+ const creatorIsExecutor = task.createdBy == null || task.developerId == null || task.createdBy === task.developerId;
111
+ // Web-only source — write to notifications table
77
112
  if (platform === protocol_1.Platform.WEB || !this.adapterRegistry) {
78
- // Web source or no adapters available — write to notifications table.
113
+ await this.handleWebNotification(task, eventType, content.text);
114
+ if (eventType === 'task_completed') {
115
+ await this.deliverToProjectChats(task, content, platform, sourceChatId);
116
+ }
117
+ return;
118
+ }
119
+ if (creatorIsExecutor) {
120
+ // Simple case: creator IS the executor
121
+ if (forceDM) {
122
+ // suspended and stage_confirm_required always go to DM
123
+ await this.deliverToExecutorDM(task, taskId, platform, eventType, content, true);
124
+ }
125
+ else if (isNewMessage) {
126
+ await this.sendNewMessage(task, taskId, platform, sourceChatId, eventType, content);
127
+ }
128
+ else {
129
+ await this.deliverToSourceChat(task, taskId, platform, sourceChatId, notificationMsgId, eventType, content);
130
+ }
131
+ }
132
+ else {
133
+ // Split case: creator ≠ executor
134
+ // Executor always gets DM
135
+ await this.deliverToExecutorDM(task, taskId, platform, eventType, content, isNewMessage);
136
+ // Creator gets important events to source chat
137
+ if (CREATOR_NOTIFY_EVENTS.has(eventType)) {
138
+ await this.sendNewMessage(task, taskId, platform, sourceChatId, eventType, content);
139
+ }
140
+ }
141
+ // Project-bound chats for task_completed
142
+ if (eventType === 'task_completed') {
143
+ await this.deliverToProjectChats(task, content, platform, sourceChatId);
144
+ }
145
+ }
146
+ /**
147
+ * Deliver notification to the executor via DM.
148
+ */
149
+ async deliverToExecutorDM(task, taskId, platform, eventType, content, isNewMessage) {
150
+ if (!task.developerId)
151
+ return;
152
+ const developer = this.developerRepo.findById(task.developerId);
153
+ if (!developer) {
154
+ await this.handleWebNotification(task, eventType, content.text);
155
+ return;
156
+ }
157
+ const platformUid = developer.platformUids?.[platform];
158
+ if (!platformUid) {
159
+ await this.handleWebNotification(task, eventType, content.text);
160
+ return;
161
+ }
162
+ const adapter = this.adapterRegistry.getAdapter(platform);
163
+ if (!adapter) {
164
+ await this.handleWebNotification(task, eventType, content.text);
165
+ return;
166
+ }
167
+ const adapterMessage = { type: 'card', text: content.text, card: content.card };
168
+ try {
169
+ if (isNewMessage || !task.notificationMsgId) {
170
+ const msgId = await adapter.sendDM(platformUid, adapterMessage);
171
+ if (!msgId) {
172
+ // sendDM returned undefined (e.g. no bot available) — fall back to web
173
+ await this.handleWebNotification(task, eventType, content.text);
174
+ return;
175
+ }
176
+ if (!task.notificationMsgId) {
177
+ this.storeNotificationMsgId(taskId, task, msgId);
178
+ }
179
+ }
180
+ else {
181
+ await adapter.updateMessage(task.notificationMsgId, adapterMessage);
182
+ }
183
+ }
184
+ catch (err) {
185
+ this.logger.error(`Failed to deliver DM to executor for task ${taskId}: ${(0, protocol_1.getErrorMessage)(err)}`);
186
+ await this.handleWebNotification(task, eventType, content.text);
187
+ throw err; // Let BullMQ retry
188
+ }
189
+ }
190
+ /**
191
+ * Send a new message to a chat (no update of existing card).
192
+ */
193
+ async sendNewMessage(task, taskId, platform, chatId, eventType, content) {
194
+ if (!chatId) {
195
+ await this.handleWebNotification(task, eventType, content.text);
196
+ return;
197
+ }
198
+ const adapter = this.adapterRegistry.getAdapter(platform);
199
+ if (!adapter) {
79
200
  await this.handleWebNotification(task, eventType, content.text);
80
201
  return;
81
202
  }
82
- // Platform-based delivery via adapter.
203
+ try {
204
+ await adapter.sendMessage(chatId, { type: 'card', text: content.text, card: content.card });
205
+ }
206
+ catch (err) {
207
+ this.logger.error(`Failed to send new message for task ${taskId}: ${(0, protocol_1.getErrorMessage)(err)}`);
208
+ throw err; // Let BullMQ retry
209
+ }
210
+ }
211
+ /**
212
+ * Deliver notification to the original source chat via platform adapter.
213
+ */
214
+ async deliverToSourceChat(task, taskId, platform, sourceChatId, notificationMsgId, eventType, content) {
83
215
  const adapter = this.adapterRegistry.getAdapter(platform);
84
216
  if (!adapter) {
85
217
  this.logger.warn(`No adapter found for platform "${platform}", falling back to web notification`);
@@ -93,9 +225,20 @@ let NotificationConsumer = NotificationConsumer_1 = class NotificationConsumer {
93
225
  card: content.card,
94
226
  };
95
227
  if (notificationMsgId) {
96
- // Update existing message in-place.
97
- await adapter.updateMessage(notificationMsgId, adapterMessage);
98
- this.logger.debug(`Updated notification message ${notificationMsgId} for task ${taskId}`);
228
+ try {
229
+ await adapter.updateMessage(notificationMsgId, adapterMessage);
230
+ this.logger.debug(`Updated notification message ${notificationMsgId} for task ${taskId}`);
231
+ }
232
+ catch {
233
+ // Update failed — fall back to sending a new message
234
+ this.logger.warn(`updateMessage failed for ${notificationMsgId}, falling back to new message`);
235
+ if (sourceChatId) {
236
+ const msgId = await adapter.sendMessage(sourceChatId, adapterMessage);
237
+ if (msgId) {
238
+ this.storeNotificationMsgId(taskId, task, msgId);
239
+ }
240
+ }
241
+ }
99
242
  }
100
243
  else if (sourceChatId) {
101
244
  // Send new message.
@@ -118,6 +261,70 @@ let NotificationConsumer = NotificationConsumer_1 = class NotificationConsumer {
118
261
  throw err;
119
262
  }
120
263
  }
264
+ /**
265
+ * Enrich extra data with project information for task_completed events.
266
+ */
267
+ enrichWithProjectInfo(task, eventType, extra) {
268
+ if (eventType !== 'task_completed')
269
+ return extra;
270
+ try {
271
+ const project = this.projectRepo.findByKey(task.projectKey);
272
+ if (project) {
273
+ return {
274
+ ...extra,
275
+ projectName: project.name,
276
+ projectRepoUrl: project.repoUrl,
277
+ };
278
+ }
279
+ }
280
+ catch (err) {
281
+ this.logger.warn(`Failed to look up project "${task.projectKey}" for enrichment: ${(0, protocol_1.getErrorMessage)(err)}`);
282
+ }
283
+ return extra;
284
+ }
285
+ /**
286
+ * Send task completion notification to project-bound chat bindings.
287
+ * Skips the source chat (same platform + chatId) to avoid duplicate messages.
288
+ */
289
+ async deliverToProjectChats(task, content, sourcePlatform, sourceChatId) {
290
+ if (!this.adapterRegistry)
291
+ return;
292
+ try {
293
+ const bindings = this.botRepo.findBindingsByProjectKey(task.projectKey);
294
+ if (bindings.length === 0)
295
+ return;
296
+ const adapterMessage = {
297
+ type: 'card',
298
+ text: content.text,
299
+ card: content.card,
300
+ };
301
+ const results = await Promise.allSettled(bindings
302
+ .filter((binding) => {
303
+ // Skip the source chat to avoid duplicate messages.
304
+ if (binding.platformChatId === sourceChatId && binding.platform === sourcePlatform) {
305
+ return false;
306
+ }
307
+ return true;
308
+ })
309
+ .map(async (binding) => {
310
+ const adapter = this.adapterRegistry.getAdapter(binding.platform);
311
+ if (!adapter) {
312
+ this.logger.debug(`No adapter for platform "${binding.platform}", skipping project chat binding ${binding.id}`);
313
+ return;
314
+ }
315
+ await adapter.sendMessage(binding.platformChatId, adapterMessage);
316
+ this.logger.debug(`Sent task_completed notification to project chat ${binding.platformChatId} for task ${task.id}`);
317
+ }));
318
+ for (const result of results) {
319
+ if (result.status === 'rejected') {
320
+ this.logger.warn(`Failed to send to project chat: ${(0, protocol_1.getErrorMessage)(result.reason)}`);
321
+ }
322
+ }
323
+ }
324
+ catch (err) {
325
+ this.logger.warn(`Failed to look up project bindings for "${task.projectKey}": ${(0, protocol_1.getErrorMessage)(err)}`);
326
+ }
327
+ }
121
328
  /**
122
329
  * Write an in-app (web) notification to the notifications table.
123
330
  */
@@ -144,6 +351,18 @@ let NotificationConsumer = NotificationConsumer_1 = class NotificationConsumer {
144
351
  const stage = extra.stage ?? task.currentStage ?? '';
145
352
  return this.templateService.buildStageConfirmNotification(task, stage);
146
353
  }
354
+ if (eventType === 'stage_choice_required') {
355
+ const stage = extra.stage ?? task.currentStage ?? '';
356
+ const prompt = extra.prompt ?? '';
357
+ const options = extra.options ?? [];
358
+ return this.templateService.buildStageChoiceNotification(task, stage, prompt, options);
359
+ }
360
+ if (eventType === 'stage_input_required') {
361
+ const stage = extra.stage ?? task.currentStage ?? '';
362
+ const prompt = extra.prompt ?? '';
363
+ const placeholder = extra.placeholder;
364
+ return this.templateService.buildStageInputNotification(task, stage, prompt, placeholder);
365
+ }
147
366
  if (eventType === 'admin_alert') {
148
367
  return this.templateService.buildAdminAlert(extra.message ?? '', extra.resourceType, extra.resourceId);
149
368
  }
@@ -154,6 +373,8 @@ let NotificationConsumer = NotificationConsumer_1 = class NotificationConsumer {
154
373
  error: extra.error,
155
374
  reason: extra.reason,
156
375
  stageChanges: extra.stageChanges,
376
+ projectName: extra.projectName,
377
+ projectRepoUrl: extra.projectRepoUrl,
157
378
  });
158
379
  }
159
380
  /**
@@ -178,7 +399,10 @@ exports.NotificationConsumer = NotificationConsumer = NotificationConsumer_1 = _
178
399
  (0, common_1.Injectable)(),
179
400
  __metadata("design:paramtypes", [notification_repository_1.NotificationRepository,
180
401
  task_repository_1.TaskRepository,
402
+ project_repository_1.ProjectRepository,
403
+ bot_repository_1.BotRepository,
181
404
  task_log_batcher_1.TaskLogBatcher,
182
- template_service_1.TemplateService])
405
+ template_service_1.TemplateService,
406
+ developer_repository_1.DeveloperRepository])
183
407
  ], NotificationConsumer);
184
408
  //# sourceMappingURL=notification-consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification-consumer.js","sourceRoot":"","sources":["../../src/notifier/notification-consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification-consumer.js","sourceRoot":"","sources":["../../src/notifier/notification-consumer.ts"],"names":[],"mappings":"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"}
@@ -20,8 +20,12 @@ export declare class NotifierService implements OnModuleInit {
20
20
  notifyTaskCancelled(task: Task): Promise<void>;
21
21
  notifyTaskSuspended(task: Task, reason: string): Promise<void>;
22
22
  notifyTaskResumed(task: Task): Promise<void>;
23
- notifyQueueWaitTimeout(task: Task): Promise<void>;
24
23
  notifyStageConfirmRequired(task: Task, stage: string): Promise<void>;
24
+ notifyStageChoiceRequired(task: Task, stage: string, prompt: string, options: Array<{
25
+ label: string;
26
+ value: string;
27
+ }>): Promise<void>;
28
+ notifyStageInputRequired(task: Task, stage: string, prompt: string, placeholder?: string): Promise<void>;
25
29
  notifyAdminAlert(message: string, resourceType?: string, resourceId?: string): Promise<void>;
26
30
  getNotifications(developerId: number, limit: number, cursor?: string): PaginatedResult<NotificationRecord>;
27
31
  markAsRead(notificationId: number, developerId: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.service.d.ts","sourceRoot":"","sources":["../../src/notifier/notifier.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EACL,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAkBrB,qBACa,eAAgB,YAAW,YAAY;IAKhD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IANhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,KAAK,CAAS;gBAGH,SAAS,EAAE,qBAAqB,EAChC,gBAAgB,EAAE,sBAAsB,EACxC,aAAa,EAAE,mBAAmB;IAG/C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB7B,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,kBAAkB,CACtB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAKV,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,0BAA0B,CAC9B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAIV,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAuBhB,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAAC,kBAAkB,CAAC;IAIhC,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAYV,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzD;;;OAGG;YACW,aAAa;IAmC3B;;;OAGG;YACW,mBAAmB;CAqClC"}
1
+ {"version":3,"file":"notifier.service.d.ts","sourceRoot":"","sources":["../../src/notifier/notifier.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EACL,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAkBrB,qBACa,eAAgB,YAAW,YAAY;IAKhD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IANhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,KAAK,CAAS;gBAGH,SAAS,EAAE,qBAAqB,EAChC,gBAAgB,EAAE,sBAAsB,EACxC,aAAa,EAAE,mBAAmB;IAG/C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB7B,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,kBAAkB,CACtB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAKV,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,0BAA0B,CAC9B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAIV,yBAAyB,CAC7B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;IAIV,wBAAwB,CAC5B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAIV,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAuBhB,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAAC,kBAAkB,CAAC;IAIhC,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAYV,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzD;;;OAGG;YACW,aAAa;IAmC3B;;;OAGG;YACW,mBAAmB;CAqClC"}
@@ -82,12 +82,15 @@ let NotifierService = NotifierService_1 = class NotifierService {
82
82
  async notifyTaskResumed(task) {
83
83
  await this.enqueueDirect(task, 'task_resumed');
84
84
  }
85
- async notifyQueueWaitTimeout(task) {
86
- await this.enqueueDirect(task, 'queue_wait_timeout');
87
- }
88
85
  async notifyStageConfirmRequired(task, stage) {
89
86
  await this.enqueueDirect(task, 'stage_confirm_required', { stage });
90
87
  }
88
+ async notifyStageChoiceRequired(task, stage, prompt, options) {
89
+ await this.enqueueDirect(task, 'stage_choice_required', { stage, prompt, options });
90
+ }
91
+ async notifyStageInputRequired(task, stage, prompt, placeholder) {
92
+ await this.enqueueDirect(task, 'stage_input_required', { stage, prompt, placeholder });
93
+ }
91
94
  async notifyAdminAlert(message, resourceType, resourceId) {
92
95
  // Admin alerts go to all admin developers as web notifications
93
96
  // and also enqueue for platform delivery if configured.
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.service.js","sourceRoot":"","sources":["../../src/notifier/notifier.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifier.service.js","sourceRoot":"","sources":["../../src/notifier/notifier.service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { Task } from '@overlordai/protocol';
2
+ import { type CardColor } from '../common/status-display';
2
3
  export interface NotificationContent {
3
4
  /** Plain-text representation (fallback / web notifications). */
4
5
  text: string;
5
6
  /** Structured card payload for platform adapters. */
6
7
  card: {
7
8
  title: string;
9
+ color?: CardColor;
8
10
  fields: Array<{
9
11
  label: string;
10
12
  value: string;
@@ -27,11 +29,24 @@ export declare class TemplateService {
27
29
  error?: string;
28
30
  reason?: string;
29
31
  stageChanges?: string[];
32
+ projectName?: string;
33
+ projectRepoUrl?: string;
30
34
  }): NotificationContent;
31
35
  /**
32
36
  * Build a stage-confirm-required notification.
33
37
  */
34
38
  buildStageConfirmNotification(task: Task, stage: string): NotificationContent;
39
+ /**
40
+ * Build a stage-choice-required notification.
41
+ */
42
+ buildStageChoiceNotification(task: Task, stage: string, prompt: string, options: Array<{
43
+ label: string;
44
+ value: string;
45
+ }>): NotificationContent;
46
+ /**
47
+ * Build a stage-input-required notification.
48
+ */
49
+ buildStageInputNotification(task: Task, stage: string, prompt: string, placeholder?: string): NotificationContent;
35
50
  /**
36
51
  * Build an admin alert notification.
37
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"template.service.d.ts","sourceRoot":"","sources":["../../src/notifier/template.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AA+BjD,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;CACH;AAED,qBACa,eAAe;IAC1B,OAAO,KAAK,UAAU,GAAkC;IAExD;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,GACA,mBAAmB;IAyDtB;;OAEG;IACH,6BAA6B,CAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,GACZ,mBAAmB;IA0BtB;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB;IAyBtB,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,WAAW;CAkDpB"}
1
+ {"version":3,"file":"template.service.d.ts","sourceRoot":"","sources":["../../src/notifier/template.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIjD,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAalG,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;CACH;AAED,qBACa,eAAe;IAC1B,OAAO,KAAK,UAAU,GAAkC;IAExD;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,mBAAmB;IAsEtB;;OAEG;IACH,6BAA6B,CAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,GACZ,mBAAmB;IA0BtB;;OAEG;IACH,4BAA4B,CAC1B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAC/C,mBAAmB;IA4BtB;;OAEG;IACH,2BAA2B,CACzB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,mBAAmB;IA4BtB;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB;IAyBtB,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,WAAW;CAkEpB"}