@overlordai/server 1.0.175 → 1.0.177

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 (289) hide show
  1. package/database/migrations/020-connectors.sql +48 -0
  2. package/database/migrations/021-task-design-context.sql +17 -0
  3. package/dist/adapters/command-parser.utils.d.ts +1 -0
  4. package/dist/adapters/command-parser.utils.d.ts.map +1 -1
  5. package/dist/adapters/command-parser.utils.js +9 -0
  6. package/dist/adapters/command-parser.utils.js.map +1 -1
  7. package/dist/adapters/nlu.service.d.ts.map +1 -1
  8. package/dist/adapters/nlu.service.js +4 -1
  9. package/dist/adapters/nlu.service.js.map +1 -1
  10. package/dist/app.module.d.ts.map +1 -1
  11. package/dist/app.module.js +2 -0
  12. package/dist/app.module.js.map +1 -1
  13. package/dist/connectors/connector-closure.service.d.ts +16 -0
  14. package/dist/connectors/connector-closure.service.d.ts.map +1 -0
  15. package/dist/connectors/connector-closure.service.js +97 -0
  16. package/dist/connectors/connector-closure.service.js.map +1 -0
  17. package/dist/connectors/connector-dispatch.service.d.ts +30 -0
  18. package/dist/connectors/connector-dispatch.service.d.ts.map +1 -0
  19. package/dist/connectors/connector-dispatch.service.js +226 -0
  20. package/dist/connectors/connector-dispatch.service.js.map +1 -0
  21. package/dist/connectors/connector.constants.d.ts +4 -0
  22. package/dist/connectors/connector.constants.d.ts.map +1 -0
  23. package/dist/connectors/connector.constants.js +12 -0
  24. package/dist/connectors/connector.constants.js.map +1 -0
  25. package/dist/connectors/connector.controller.d.ts +20 -0
  26. package/dist/connectors/connector.controller.d.ts.map +1 -0
  27. package/dist/connectors/connector.controller.js +166 -0
  28. package/dist/connectors/connector.controller.js.map +1 -0
  29. package/dist/connectors/connector.interface.d.ts +61 -0
  30. package/dist/connectors/connector.interface.d.ts.map +1 -0
  31. package/dist/connectors/connector.interface.js +3 -0
  32. package/dist/connectors/connector.interface.js.map +1 -0
  33. package/dist/connectors/connector.module.d.ts +3 -0
  34. package/dist/connectors/connector.module.d.ts.map +1 -0
  35. package/dist/connectors/connector.module.js +50 -0
  36. package/dist/connectors/connector.module.js.map +1 -0
  37. package/dist/connectors/connector.registry.d.ts +15 -0
  38. package/dist/connectors/connector.registry.d.ts.map +1 -0
  39. package/dist/connectors/connector.registry.js +48 -0
  40. package/dist/connectors/connector.registry.js.map +1 -0
  41. package/dist/connectors/design-context.service.d.ts +21 -0
  42. package/dist/connectors/design-context.service.d.ts.map +1 -0
  43. package/dist/connectors/design-context.service.js +77 -0
  44. package/dist/connectors/design-context.service.js.map +1 -0
  45. package/dist/connectors/design-review-trigger.service.d.ts +15 -0
  46. package/dist/connectors/design-review-trigger.service.d.ts.map +1 -0
  47. package/dist/connectors/design-review-trigger.service.js +98 -0
  48. package/dist/connectors/design-review-trigger.service.js.map +1 -0
  49. package/dist/connectors/figma/figma-url-parser.d.ts +12 -0
  50. package/dist/connectors/figma/figma-url-parser.d.ts.map +1 -0
  51. package/dist/connectors/figma/figma-url-parser.js +28 -0
  52. package/dist/connectors/figma/figma-url-parser.js.map +1 -0
  53. package/dist/connectors/figma/figma.client.d.ts +67 -0
  54. package/dist/connectors/figma/figma.client.d.ts.map +1 -0
  55. package/dist/connectors/figma/figma.client.js +67 -0
  56. package/dist/connectors/figma/figma.client.js.map +1 -0
  57. package/dist/connectors/figma/figma.connector.d.ts +29 -0
  58. package/dist/connectors/figma/figma.connector.d.ts.map +1 -0
  59. package/dist/connectors/figma/figma.connector.js +223 -0
  60. package/dist/connectors/figma/figma.connector.js.map +1 -0
  61. package/dist/connectors/figma/index.d.ts +4 -0
  62. package/dist/connectors/figma/index.d.ts.map +1 -0
  63. package/dist/connectors/figma/index.js +10 -0
  64. package/dist/connectors/figma/index.js.map +1 -0
  65. package/dist/connectors/issue-ref-helpers.d.ts +10 -0
  66. package/dist/connectors/issue-ref-helpers.d.ts.map +1 -0
  67. package/dist/connectors/issue-ref-helpers.js +24 -0
  68. package/dist/connectors/issue-ref-helpers.js.map +1 -0
  69. package/dist/connectors/issue-ref-parser.d.ts +22 -0
  70. package/dist/connectors/issue-ref-parser.d.ts.map +1 -0
  71. package/dist/connectors/issue-ref-parser.js +35 -0
  72. package/dist/connectors/issue-ref-parser.js.map +1 -0
  73. package/dist/connectors/issue-ref-resolver.service.d.ts +44 -0
  74. package/dist/connectors/issue-ref-resolver.service.d.ts.map +1 -0
  75. package/dist/connectors/issue-ref-resolver.service.js +226 -0
  76. package/dist/connectors/issue-ref-resolver.service.js.map +1 -0
  77. package/dist/connectors/jira/jira.client.d.ts +58 -0
  78. package/dist/connectors/jira/jira.client.d.ts.map +1 -0
  79. package/dist/connectors/jira/jira.client.js +70 -0
  80. package/dist/connectors/jira/jira.client.js.map +1 -0
  81. package/dist/connectors/jira/jira.connector.d.ts +17 -0
  82. package/dist/connectors/jira/jira.connector.d.ts.map +1 -0
  83. package/dist/connectors/jira/jira.connector.js +141 -0
  84. package/dist/connectors/jira/jira.connector.js.map +1 -0
  85. package/dist/connectors/sentry/sentry.client.d.ts +54 -0
  86. package/dist/connectors/sentry/sentry.client.d.ts.map +1 -0
  87. package/dist/connectors/sentry/sentry.client.js +69 -0
  88. package/dist/connectors/sentry/sentry.client.js.map +1 -0
  89. package/dist/connectors/sentry/sentry.connector.d.ts +17 -0
  90. package/dist/connectors/sentry/sentry.connector.d.ts.map +1 -0
  91. package/dist/connectors/sentry/sentry.connector.js +173 -0
  92. package/dist/connectors/sentry/sentry.connector.js.map +1 -0
  93. package/dist/connectors/webhook-comment-parser.d.ts +18 -0
  94. package/dist/connectors/webhook-comment-parser.d.ts.map +1 -0
  95. package/dist/connectors/webhook-comment-parser.js +28 -0
  96. package/dist/connectors/webhook-comment-parser.js.map +1 -0
  97. package/dist/database/repositories/connector.repository.d.ts +84 -0
  98. package/dist/database/repositories/connector.repository.d.ts.map +1 -0
  99. package/dist/database/repositories/connector.repository.js +222 -0
  100. package/dist/database/repositories/connector.repository.js.map +1 -0
  101. package/dist/database/repositories/developer.repository.d.ts +6 -1
  102. package/dist/database/repositories/developer.repository.d.ts.map +1 -1
  103. package/dist/database/repositories/developer.repository.js +19 -1
  104. package/dist/database/repositories/developer.repository.js.map +1 -1
  105. package/dist/database/repositories/external-issue-link.repository.d.ts +27 -0
  106. package/dist/database/repositories/external-issue-link.repository.d.ts.map +1 -0
  107. package/dist/database/repositories/external-issue-link.repository.js +85 -0
  108. package/dist/database/repositories/external-issue-link.repository.js.map +1 -0
  109. package/dist/database/repositories/task-design-context.repository.d.ts +33 -0
  110. package/dist/database/repositories/task-design-context.repository.d.ts.map +1 -0
  111. package/dist/database/repositories/task-design-context.repository.js +76 -0
  112. package/dist/database/repositories/task-design-context.repository.js.map +1 -0
  113. package/dist/database/repository.module.d.ts.map +1 -1
  114. package/dist/database/repository.module.js +6 -0
  115. package/dist/database/repository.module.js.map +1 -1
  116. package/dist/dispatcher/dedup.service.d.ts +1 -1
  117. package/dist/dispatcher/dedup.service.d.ts.map +1 -1
  118. package/dist/dispatcher/dedup.service.js +2 -2
  119. package/dist/dispatcher/dedup.service.js.map +1 -1
  120. package/dist/dispatcher/dispatcher.module.d.ts.map +1 -1
  121. package/dist/dispatcher/dispatcher.module.js +2 -1
  122. package/dist/dispatcher/dispatcher.module.js.map +1 -1
  123. package/dist/dispatcher/dispatcher.service.d.ts +7 -1
  124. package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
  125. package/dist/dispatcher/dispatcher.service.js +79 -8
  126. package/dist/dispatcher/dispatcher.service.js.map +1 -1
  127. package/dist/dispatcher/dispatcher.types.d.ts +26 -0
  128. package/dist/dispatcher/dispatcher.types.d.ts.map +1 -1
  129. package/dist/dispatcher/scheduler.service.d.ts +3 -1
  130. package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
  131. package/dist/dispatcher/scheduler.service.js +16 -2
  132. package/dist/dispatcher/scheduler.service.js.map +1 -1
  133. package/dist/dispatcher/task-creation.service.d.ts +47 -3
  134. package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
  135. package/dist/dispatcher/task-creation.service.js +26 -9
  136. package/dist/dispatcher/task-creation.service.js.map +1 -1
  137. package/dist/dispatcher/task-lifecycle.service.d.ts +5 -1
  138. package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
  139. package/dist/dispatcher/task-lifecycle.service.js +32 -3
  140. package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
  141. package/dist/notifier/notification-consumer.d.ts +3 -1
  142. package/dist/notifier/notification-consumer.d.ts.map +1 -1
  143. package/dist/notifier/notification-consumer.js +26 -5
  144. package/dist/notifier/notification-consumer.js.map +1 -1
  145. package/dist/notifier/template.service.d.ts +6 -0
  146. package/dist/notifier/template.service.d.ts.map +1 -1
  147. package/dist/notifier/template.service.js +12 -0
  148. package/dist/notifier/template.service.js.map +1 -1
  149. package/dist/web/admin/admin-connector.controller.d.ts +58 -0
  150. package/dist/web/admin/admin-connector.controller.d.ts.map +1 -0
  151. package/dist/web/admin/admin-connector.controller.js +327 -0
  152. package/dist/web/admin/admin-connector.controller.js.map +1 -0
  153. package/dist/web/admin/admin-developer.controller.d.ts +1 -1
  154. package/dist/web/admin/admin-developer.controller.d.ts.map +1 -1
  155. package/dist/web/admin/admin-developer.controller.js +16 -5
  156. package/dist/web/admin/admin-developer.controller.js.map +1 -1
  157. package/dist/web/dashboard.controller.d.ts +1 -1
  158. package/dist/web/dashboard.service.d.ts +2 -7
  159. package/dist/web/dashboard.service.d.ts.map +1 -1
  160. package/dist/web/dashboard.service.js +16 -21
  161. package/dist/web/dashboard.service.js.map +1 -1
  162. package/dist/web/frame-handlers/review-report.handler.d.ts +3 -1
  163. package/dist/web/frame-handlers/review-report.handler.d.ts.map +1 -1
  164. package/dist/web/frame-handlers/review-report.handler.js +8 -3
  165. package/dist/web/frame-handlers/review-report.handler.js.map +1 -1
  166. package/dist/web/task.controller.d.ts +11 -1
  167. package/dist/web/task.controller.d.ts.map +1 -1
  168. package/dist/web/task.controller.js +118 -4
  169. package/dist/web/task.controller.js.map +1 -1
  170. package/dist/web/web.module.d.ts.map +1 -1
  171. package/dist/web/web.module.js +4 -1
  172. package/dist/web/web.module.js.map +1 -1
  173. package/dist/web/worker-channel.gateway.d.ts +3 -1
  174. package/dist/web/worker-channel.gateway.d.ts.map +1 -1
  175. package/dist/web/worker-channel.gateway.js +6 -3
  176. package/dist/web/worker-channel.gateway.js.map +1 -1
  177. package/package.json +4 -4
  178. package/public/assets/{AccessTokensPage-BlZBgj0-.js → AccessTokensPage-BhRmma33.js} +1 -1
  179. package/public/assets/{AdminPage-C0OFG0LC.js → AdminPage-ByfD-Bj7.js} +1 -1
  180. package/public/assets/{AgentCliPage-Ci2XVaN8.js → AgentCliPage-DyJnRmFm.js} +1 -1
  181. package/public/assets/{ApiReferencePage-Dm9y-zCM.js → ApiReferencePage-Wcyoo5XT.js} +1 -1
  182. package/public/assets/{ArchitecturePage-BetPO5Ws.js → ArchitecturePage-DgwFpJ3c.js} +1 -1
  183. package/public/assets/{AuditLogPage-Dbd27v1s.js → AuditLogPage-ByFVvlFb.js} +1 -1
  184. package/public/assets/{AutomationCreatePage-BvSw8KoZ.js → AutomationCreatePage-Cx-FCZEr.js} +1 -1
  185. package/public/assets/{AutomationDetailPage-1Y2tp1KP.js → AutomationDetailPage-BDh7SFeh.js} +1 -1
  186. package/public/assets/{AutomationEditPage-C9UO1XrW.js → AutomationEditPage-D76Ybtpz.js} +1 -1
  187. package/public/assets/{AutomationListPage-CJk8o3Vp.js → AutomationListPage-bNDDFN0Y.js} +1 -1
  188. package/public/assets/{AutomationRunDetailPage-h7T4V9Yq.js → AutomationRunDetailPage-BEWaGMai.js} +1 -1
  189. package/public/assets/{BindPlatformPage-DpzV1bpB.js → BindPlatformPage-CgfAbUal.js} +1 -1
  190. package/public/assets/{BotIntegrationPage-9kAG4BIL.js → BotIntegrationPage-D1A10L4d.js} +1 -1
  191. package/public/assets/{BotManage-BanZ5a5-.js → BotManage-IJm4jT-7.js} +1 -1
  192. package/public/assets/{BotSetupPage-BZIfJYqL.js → BotSetupPage-DIUSFgGv.js} +1 -1
  193. package/public/assets/{ChangelogPage-Da8n7_T3.js → ChangelogPage-D3R17QQT.js} +1 -1
  194. package/public/assets/{Checkbox-Dsj1BuTd.js → Checkbox-Drx9oKpj.js} +1 -1
  195. package/public/assets/{CliReferencePage-BDFsLYmx.js → CliReferencePage-BQ6Eyq2_.js} +1 -1
  196. package/public/assets/{ConfirmStageDialog-BUTA9YZ1.js → ConfirmStageDialog-BjjJNcLJ.js} +1 -1
  197. package/public/assets/ConnectorsPage-BgBXQlwq.js +48 -0
  198. package/public/assets/{DeploymentPage-B5TlN0FI.js → DeploymentPage-Cbmb8KKs.js} +1 -1
  199. package/public/assets/{DevWorkflowPage-Abvhng0F.js → DevWorkflowPage-Dur0zn7L.js} +1 -1
  200. package/public/assets/DeveloperManage-BmFhmcbZ.js +16 -0
  201. package/public/assets/{DeveloperSetupPage-QipfVSjp.js → DeveloperSetupPage-G9amle-q.js} +1 -1
  202. package/public/assets/{DocsIndexPage-Dw-saIXq.js → DocsIndexPage-CAPCKH_C.js} +11 -6
  203. package/public/assets/{DocsLayout-BsGaDVp1.js → DocsLayout-gVsQBlHm.js} +1 -1
  204. package/public/assets/{DocsPrimitives-Bv8TQpkc.js → DocsPrimitives-VBA7lZhS.js} +1 -1
  205. package/public/assets/{EditProjectPage-CtNCwK-z.js → EditProjectPage-Dn-MgU4f.js} +1 -1
  206. package/public/assets/{EmptyState-BpbqIJyG.js → EmptyState-B0pdsOsA.js} +1 -1
  207. package/public/assets/{EnvVariablesPage-D5Cn_E5P.js → EnvVariablesPage-DXaJ3Ejc.js} +1 -1
  208. package/public/assets/HomePage-B4ION8nK.js +1 -0
  209. package/public/assets/{InfoRow-BCDb21nt.js → InfoRow-DTHohr5Y.js} +1 -1
  210. package/public/assets/{InstallationPage-DLW6MXhs.js → InstallationPage-BVY5fIOG.js} +1 -1
  211. package/public/assets/{LandingPage-BLcQBvuD.js → LandingPage-DAP65IzR.js} +1 -1
  212. package/public/assets/{LocalDevelopmentPage-BnbdovKe.js → LocalDevelopmentPage-C9pD5y0c.js} +1 -1
  213. package/public/assets/{LoginPage-Bh-p4hP9.js → LoginPage-BToTW-qz.js} +1 -1
  214. package/public/assets/{MetricBar-DLR15rum.js → MetricBar-DA42IEeN.js} +1 -1
  215. package/public/assets/{MultiSelect-BKtGWYgt.js → MultiSelect-5hKAHK2N.js} +1 -1
  216. package/public/assets/{NotFoundPage-BpUwim1l.js → NotFoundPage-BQbQRjCC.js} +1 -1
  217. package/public/assets/{OnboardingGuide-BTsSW7Mq.js → OnboardingGuide-or_CwmfY.js} +1 -1
  218. package/public/assets/{PermissionsPage-A828G2ih.js → PermissionsPage-D867c8K5.js} +1 -1
  219. package/public/assets/{PipelineConfigPage-Cw1OxgKV.js → PipelineConfigPage-DYL-Eg8a.js} +1 -1
  220. package/public/assets/{PipelineEditorPage-tewviYrj.js → PipelineEditorPage-D6EpDvPI.js} +1 -1
  221. package/public/assets/{PlanPage-Bidp5iEn.js → PlanPage-Bfgn9hdf.js} +1 -1
  222. package/public/assets/{ProfilePage-DgFxZS6i.js → ProfilePage-DydZ_JO_.js} +1 -1
  223. package/public/assets/{ProjectDetailPage-BoIU1U3V.js → ProjectDetailPage-BLSkZmV0.js} +1 -1
  224. package/public/assets/{ProjectListPage-DMoN7Ghc.js → ProjectListPage-KWBq3v71.js} +1 -1
  225. package/public/assets/{PtyTerminal-QdM0LGge.js → PtyTerminal-DZ-tRh7i.js} +1 -1
  226. package/public/assets/{QuickAuth-CGnZQLaj.js → QuickAuth-D_2JnzxW.js} +1 -1
  227. package/public/assets/{RemoveMemberConfirmDialog-uFuATit4.js → RemoveMemberConfirmDialog-B1T8FRls.js} +1 -1
  228. package/public/assets/ReviewAggregatePage-D-sgcTHd.js +6 -0
  229. package/public/assets/ReviewPage-DLXr5nmf.js +1 -0
  230. package/public/assets/{Select-CC0FnszM.js → Select-PNbJCK1d.js} +1 -1
  231. package/public/assets/{SettingsPage-DiecpWAG.js → SettingsPage-DgNCPUzP.js} +1 -1
  232. package/public/assets/{Skeleton-WCDZdltv.js → Skeleton-C9OmZNVj.js} +1 -1
  233. package/public/assets/{SkillPage-ABYkJSop.js → SkillPage-jXi2VAvG.js} +1 -1
  234. package/public/assets/TaskDetailPage-Dy0CSg-i.js +21 -0
  235. package/public/assets/{TaskGuidePage-CFzoePPd.js → TaskGuidePage-C2VJEOGp.js} +1 -1
  236. package/public/assets/TaskListPage-63cj9-Gf.js +1 -0
  237. package/public/assets/{TaskStatusBadge-CzUIb3QQ.js → TaskStatusBadge-Ieecwysj.js} +1 -1
  238. package/public/assets/{TerminalHomePage-DP-gqkiq.js → TerminalHomePage-wxZHwphZ.js} +1 -1
  239. package/public/assets/{TokenManage-CbLsJbR9.js → TokenManage-D_fRhfSC.js} +1 -1
  240. package/public/assets/{Tooltip-Ds3lc4sS.js → Tooltip-hO7lE45q.js} +1 -1
  241. package/public/assets/{TotpSetupPage-Bakhx3kM.js → TotpSetupPage-DPv5zEkr.js} +1 -1
  242. package/public/assets/{WorkerDetailPage-W_1tf-Ng.js → WorkerDetailPage-BNHh3G4i.js} +1 -1
  243. package/public/assets/{WorkerListPage-DAgJojBW.js → WorkerListPage-CnUaksv5.js} +1 -1
  244. package/public/assets/{WorkerOperationsPage-BE8gDr3P.js → WorkerOperationsPage-BF-j3TGV.js} +1 -1
  245. package/public/assets/{WorkerSetupGuidePage-Cjwu7yCO.js → WorkerSetupGuidePage-CgoXTtvB.js} +1 -1
  246. package/public/assets/{WorkerSetupPage-C4F2PDWx.js → WorkerSetupPage-C9FJdEtx.js} +1 -1
  247. package/public/assets/{agent-type-options-BTd_pbKQ.js → agent-type-options-DPcGCrTV.js} +1 -1
  248. package/public/assets/{arrow-left-Czit8jGK.js → arrow-left-CMC8xPNU.js} +1 -1
  249. package/public/assets/{arrow-right-DUvU3ZSE.js → arrow-right-CzgMaKkq.js} +1 -1
  250. package/public/assets/{bot-xYitrdXz.js → bot-DZNbJaal.js} +1 -1
  251. package/public/assets/{chevron-down-DwSdaR46.js → chevron-down-Byw_H7qa.js} +1 -1
  252. package/public/assets/{chevron-left-DMFdbT8q.js → chevron-left-B9OwsObK.js} +1 -1
  253. package/public/assets/{chevron-right-BqoEBUXc.js → chevron-right-BDxmkY05.js} +1 -1
  254. package/public/assets/{chevron-up-4jZShvn6.js → chevron-up-qpQChOEd.js} +1 -1
  255. package/public/assets/{circle-alert-gAYg5DQY.js → circle-alert-qjGQBuvk.js} +1 -1
  256. package/public/assets/{clock-Bn8CRcdc.js → clock-RH0F7m7Y.js} +1 -1
  257. package/public/assets/{copy-_C7txolK.js → copy-sq8YNzps.js} +1 -1
  258. package/public/assets/{download-CGR9pdGa.js → download-BILbhyFl.js} +1 -1
  259. package/public/assets/{external-link-DGEar13h.js → external-link-6-aTSDMz.js} +1 -1
  260. package/public/assets/{git-fork-bd2vu3ng.js → git-fork-Tz0-ma48.js} +1 -1
  261. package/public/assets/{index-DAwsREkq.js → index-CqgRY3L6.js} +13 -13
  262. package/public/assets/{key-b6kn-A1T.js → key-D8a2ymYq.js} +1 -1
  263. package/public/assets/{loader-circle-vH-Hp_AS.js → loader-circle-CRxnDWNg.js} +1 -1
  264. package/public/assets/{pencil-Cxzh8oiw.js → pencil-BB-LZCT2.js} +1 -1
  265. package/public/assets/{play-bFi1k4eQ.js → play-DP6MNxNf.js} +1 -1
  266. package/public/assets/{plus-DJTaWh3N.js → plus-DSLmbw91.js} +1 -1
  267. package/public/assets/{rotate-ccw-CXFQ7046.js → rotate-ccw-DkPBqmSU.js} +1 -1
  268. package/public/assets/{scroll-text-UIbwyc0E.js → scroll-text-Cn9LA-xo.js} +1 -1
  269. package/public/assets/{settings-DA_C9Znv.js → settings-DQCRnFRi.js} +1 -1
  270. package/public/assets/{skip-forward-C71GgwGt.js → skip-forward-ZkknEL37.js} +1 -1
  271. package/public/assets/{status-colors-C14ffr9M.js → status-colors-CpKIU449.js} +1 -1
  272. package/public/assets/{task-agent-BasiQZ0L.js → task-agent-knUib-IL.js} +1 -1
  273. package/public/assets/{task-constants-DihuKtBw.js → task-constants-DiU1z_dP.js} +1 -1
  274. package/public/assets/{task.store-MpV9TV7z.js → task.store-BfdxbFUg.js} +1 -1
  275. package/public/assets/{timer-COkLkLUF.js → timer-BJw0BmGT.js} +1 -1
  276. package/public/assets/{trash-2-CDhJihtl.js → trash-2-DLdIg5hq.js} +1 -1
  277. package/public/assets/{useFetch-CgkGfhaP.js → useFetch-cT1ib8kh.js} +1 -1
  278. package/public/assets/{users-BwpIig9c.js → users-D2JV7gxB.js} +1 -1
  279. package/public/assets/{wifi-D5o6IWuC.js → wifi-Jy12B8KN.js} +1 -1
  280. package/public/assets/{workflow-DXTOpHef.js → workflow-BmBIBEn9.js} +1 -1
  281. package/public/assets/{zap-CEUF2oJs.js → zap-oNjSxQ6J.js} +1 -1
  282. package/public/index.html +1 -1
  283. package/public/sw.js +1 -1
  284. package/public/assets/DeveloperManage-DPSHCC6K.js +0 -16
  285. package/public/assets/HomePage-BFNO_Hk6.js +0 -1
  286. package/public/assets/ReviewAggregatePage-D5S57j51.js +0 -6
  287. package/public/assets/ReviewPage-tkUY7vrY.js +0 -1
  288. package/public/assets/TaskDetailPage-D6qSqsm0.js +0 -21
  289. package/public/assets/TaskListPage-rDPMfjmN.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-ref-resolver.service.js","sourceRoot":"","sources":["../../src/connectors/issue-ref-resolver.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ export interface JiraCredentials {
2
+ email?: string;
3
+ apiToken?: string;
4
+ personalAccessToken?: string;
5
+ }
6
+ export interface JiraIssue {
7
+ key: string;
8
+ fields: {
9
+ summary: string;
10
+ description: string | null;
11
+ status: {
12
+ name: string;
13
+ };
14
+ priority?: {
15
+ name: string;
16
+ } | null;
17
+ labels?: string[];
18
+ issuetype?: {
19
+ name: string;
20
+ } | null;
21
+ project?: {
22
+ key: string;
23
+ } | null;
24
+ };
25
+ self: string;
26
+ }
27
+ export interface JiraComment {
28
+ id: string;
29
+ body: string;
30
+ author?: {
31
+ displayName: string;
32
+ emailAddress?: string;
33
+ };
34
+ }
35
+ export interface JiraTransition {
36
+ id: string;
37
+ name: string;
38
+ to: {
39
+ name: string;
40
+ };
41
+ }
42
+ export declare class JiraClient {
43
+ private readonly baseUrl;
44
+ private readonly headers;
45
+ constructor(baseUrl: string, credentials: JiraCredentials);
46
+ private api;
47
+ getIssue(issueKey: string): Promise<JiraIssue>;
48
+ addComment(issueKey: string, body: string): Promise<void>;
49
+ getTransitions(issueKey: string): Promise<JiraTransition[]>;
50
+ transitionIssue(issueKey: string, transitionId: string): Promise<void>;
51
+ addRemoteLink(issueKey: string, url: string, title: string): Promise<void>;
52
+ getCurrentUser(): Promise<{
53
+ displayName: string;
54
+ }>;
55
+ /** Build the browse URL for an issue. */
56
+ browseUrl(issueKey: string): string;
57
+ }
58
+ //# sourceMappingURL=jira.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.client.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/jira.client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACzB,QAAQ,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACpC,OAAO,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KAClC,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtB;AAQD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe;YAc3C,GAAG;IASX,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAO9C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAM3D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1E,cAAc,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAKxD,yCAAyC;IACzC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAGpC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JiraClient = void 0;
4
+ let _ky;
5
+ async function getKy() {
6
+ if (!_ky)
7
+ _ky = (await import('ky')).default;
8
+ return _ky;
9
+ }
10
+ class JiraClient {
11
+ constructor(baseUrl, credentials) {
12
+ this.baseUrl = baseUrl.replace(/\/+$/, '');
13
+ this.headers = { 'Content-Type': 'application/json' };
14
+ // Cloud: Basic auth (email:apiToken), Server: Bearer token
15
+ if (credentials.email && credentials.apiToken) {
16
+ const encoded = Buffer.from(`${credentials.email}:${credentials.apiToken}`).toString('base64');
17
+ this.headers['Authorization'] = `Basic ${encoded}`;
18
+ }
19
+ else if (credentials.personalAccessToken) {
20
+ this.headers['Authorization'] = `Bearer ${credentials.personalAccessToken}`;
21
+ }
22
+ }
23
+ async api() {
24
+ const ky = await getKy();
25
+ return ky.create({
26
+ prefixUrl: `${this.baseUrl}/rest/api/2`,
27
+ headers: this.headers,
28
+ timeout: 15_000,
29
+ });
30
+ }
31
+ async getIssue(issueKey) {
32
+ const api = await this.api();
33
+ return api.get(`issue/${issueKey}`, {
34
+ searchParams: { fields: 'summary,description,status,priority,labels,issuetype,project' },
35
+ }).json();
36
+ }
37
+ async addComment(issueKey, body) {
38
+ const api = await this.api();
39
+ await api.post(`issue/${issueKey}/comment`, {
40
+ json: { body },
41
+ });
42
+ }
43
+ async getTransitions(issueKey) {
44
+ const api = await this.api();
45
+ const result = await api.get(`issue/${issueKey}/transitions`).json();
46
+ return result.transitions;
47
+ }
48
+ async transitionIssue(issueKey, transitionId) {
49
+ const api = await this.api();
50
+ await api.post(`issue/${issueKey}/transitions`, {
51
+ json: { transition: { id: transitionId } },
52
+ });
53
+ }
54
+ async addRemoteLink(issueKey, url, title) {
55
+ const api = await this.api();
56
+ await api.post(`issue/${issueKey}/remotelink`, {
57
+ json: { object: { url, title } },
58
+ });
59
+ }
60
+ async getCurrentUser() {
61
+ const api = await this.api();
62
+ return api.get('myself').json();
63
+ }
64
+ /** Build the browse URL for an issue. */
65
+ browseUrl(issueKey) {
66
+ return `${this.baseUrl}/browse/${issueKey}`;
67
+ }
68
+ }
69
+ exports.JiraClient = JiraClient;
70
+ //# sourceMappingURL=jira.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.client.js","sourceRoot":"","sources":["../../../src/connectors/jira/jira.client.ts"],"names":[],"mappings":";;;AAgCA,IAAI,GAAQ,CAAC;AACb,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC,GAAG;QAAE,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAa,UAAU;IAIrB,YAAY,OAAe,EAAE,WAA4B;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAEtD,2DAA2D;QAC3D,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/F,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,OAAO,EAAE,CAAC;QACrD,CAAC;aAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,CAAC,mBAAmB,EAAE,CAAC;QAC9E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,aAAa;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,QAAQ,EAAE,EAAE;YAClC,YAAY,EAAE,EAAE,MAAM,EAAE,8DAA8D,EAAE;SACzF,CAAC,CAAC,IAAI,EAAwB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,IAAY;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,QAAQ,UAAU,EAAE;YAC1C,IAAI,EAAE,EAAE,IAAI,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,QAAQ,cAAc,CAAC,CAAC,IAAI,EAAuC,CAAC;QAC1G,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,YAAoB;QAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,QAAQ,cAAc,EAAE;YAC9C,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,GAAW,EAAE,KAAa;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,QAAQ,aAAa,EAAE;YAC7C,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAsC,CAAC;IACtE,CAAC;IAED,yCAAyC;IACzC,SAAS,CAAC,QAAgB;QACxB,OAAO,GAAG,IAAI,CAAC,OAAO,WAAW,QAAQ,EAAE,CAAC;IAC9C,CAAC;CACF;AAtED,gCAsEC"}
@@ -0,0 +1,17 @@
1
+ import type { IConnector, ConnectorWebhookRequest, ConnectorWebhookResult, ExternalContext } from '../connector.interface';
2
+ import type { ConnectorInstanceRow } from '../../database/repositories/connector.repository';
3
+ import { CryptoService } from '../../common/crypto.service';
4
+ export declare class JiraConnector implements IConnector {
5
+ private readonly cryptoService;
6
+ readonly platform: "jira";
7
+ private readonly logger;
8
+ constructor(cryptoService: CryptoService);
9
+ handleWebhook(req: ConnectorWebhookRequest, instance: ConnectorInstanceRow): Promise<ConnectorWebhookResult | null>;
10
+ fetchContext(instance: ConnectorInstanceRow, externalId: string): Promise<ExternalContext>;
11
+ addComment(instance: ConnectorInstanceRow, externalId: string, comment: string): Promise<void>;
12
+ transitionStatus(instance: ConnectorInstanceRow, externalId: string, targetStatus: string): Promise<void>;
13
+ linkMR(instance: ConnectorInstanceRow, externalId: string, mrUrl: string): Promise<void>;
14
+ validateCredentials(credentials: Record<string, string>, baseUrl?: string): Promise<boolean>;
15
+ private createClient;
16
+ }
17
+ //# sourceMappingURL=jira.connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.connector.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/jira.connector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,qBACa,aAAc,YAAW,UAAU;IAIlC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C,QAAQ,CAAC,QAAQ,SAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAE5B,aAAa,EAAE,aAAa;IAEnD,aAAa,CACjB,GAAG,EAAE,uBAAuB,EAC5B,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IA0DnC,YAAY,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAc1F,UAAU,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9F,gBAAgB,CACpB,QAAQ,EAAE,oBAAoB,EAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAsBV,MAAM,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWlG,OAAO,CAAC,YAAY;CAcrB"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var JiraConnector_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.JiraConnector = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const protocol_1 = require("@overlordai/protocol");
16
+ const jira_client_1 = require("./jira.client");
17
+ const crypto_service_1 = require("../../common/crypto.service");
18
+ const webhook_comment_parser_1 = require("../webhook-comment-parser");
19
+ let JiraConnector = JiraConnector_1 = class JiraConnector {
20
+ constructor(cryptoService) {
21
+ this.cryptoService = cryptoService;
22
+ this.platform = protocol_1.ConnectorPlatform.JIRA;
23
+ this.logger = new common_1.Logger(JiraConnector_1.name);
24
+ }
25
+ async handleWebhook(req, instance) {
26
+ const payload = req.body;
27
+ const webhookEvent = payload.webhookEvent;
28
+ // Only handle comment_created events
29
+ if (webhookEvent !== 'comment_created') {
30
+ this.logger.debug({ webhookEvent }, 'Ignoring non-comment Jira webhook event');
31
+ return null;
32
+ }
33
+ const comment = payload.comment;
34
+ const commentBody = comment?.body ?? '';
35
+ const mentionKeyword = instance.mentionKeyword || '@Overlord';
36
+ // Check if the comment mentions the trigger keyword
37
+ if (!commentBody.includes(mentionKeyword)) {
38
+ this.logger.debug('Jira comment does not contain mention keyword, ignoring');
39
+ return null;
40
+ }
41
+ const issue = payload.issue;
42
+ if (!issue) {
43
+ this.logger.warn('Jira webhook has no issue data');
44
+ return null;
45
+ }
46
+ const fields = issue.fields;
47
+ const issueKey = issue.key;
48
+ const client = this.createClient(instance);
49
+ const context = {
50
+ title: fields?.summary ?? issueKey,
51
+ description: fields?.description ?? '',
52
+ labels: fields?.labels ?? [],
53
+ priority: fields?.priority?.name,
54
+ status: fields?.status?.name,
55
+ url: client.browseUrl(issueKey),
56
+ };
57
+ // Extract task description from the comment (remove mention keyword and --project flag)
58
+ const { cleanedText, explicitProjectKey } = (0, webhook_comment_parser_1.parseWebhookComment)(commentBody, mentionKeyword);
59
+ const taskDescription = cleanedText || `Resolve issue ${issueKey}: ${context.title}`;
60
+ return {
61
+ action: 'create_task',
62
+ eventId: comment?.id ? String(comment.id) : undefined,
63
+ projectKey: explicitProjectKey,
64
+ issueRef: {
65
+ platform: protocol_1.ConnectorPlatform.JIRA,
66
+ issueId: issueKey,
67
+ issueUrl: client.browseUrl(issueKey),
68
+ projectKey: fields?.project?.key,
69
+ },
70
+ context,
71
+ description: `${taskDescription}\n\nJira Issue: [${issueKey}](${client.browseUrl(issueKey)})\n${context.title}\n\n${context.description}`,
72
+ };
73
+ }
74
+ async fetchContext(instance, externalId) {
75
+ const client = this.createClient(instance);
76
+ const issue = await client.getIssue(externalId);
77
+ return {
78
+ title: issue.fields.summary,
79
+ description: issue.fields.description ?? '',
80
+ labels: issue.fields.labels ?? [],
81
+ priority: issue.fields.priority?.name,
82
+ status: issue.fields.status.name,
83
+ url: client.browseUrl(issue.key),
84
+ };
85
+ }
86
+ async addComment(instance, externalId, comment) {
87
+ const client = this.createClient(instance);
88
+ await client.addComment(externalId, comment);
89
+ }
90
+ async transitionStatus(instance, externalId, targetStatus) {
91
+ const client = this.createClient(instance);
92
+ try {
93
+ const transitions = await client.getTransitions(externalId);
94
+ const match = transitions.find((t) => t.name.toLowerCase() === targetStatus.toLowerCase()
95
+ || t.to.name.toLowerCase() === targetStatus.toLowerCase());
96
+ if (!match) {
97
+ this.logger.warn({ externalId, targetStatus, available: transitions.map((t) => t.name) }, 'No matching Jira transition found, skipping');
98
+ return;
99
+ }
100
+ await client.transitionIssue(externalId, match.id);
101
+ }
102
+ catch (err) {
103
+ this.logger.warn({ externalId, targetStatus, err }, 'Failed to transition Jira issue');
104
+ }
105
+ }
106
+ async linkMR(instance, externalId, mrUrl) {
107
+ const client = this.createClient(instance);
108
+ await client.addRemoteLink(externalId, mrUrl, 'Merge Request');
109
+ }
110
+ async validateCredentials(credentials, baseUrl) {
111
+ if (!baseUrl)
112
+ return false;
113
+ try {
114
+ const client = new jira_client_1.JiraClient(baseUrl, credentials);
115
+ await client.getCurrentUser();
116
+ return true;
117
+ }
118
+ catch {
119
+ return false;
120
+ }
121
+ }
122
+ createClient(instance) {
123
+ if (!instance.baseUrl) {
124
+ throw new Error(`Jira connector instance ${instance.id} has no baseUrl configured`);
125
+ }
126
+ let credentials;
127
+ try {
128
+ credentials = JSON.parse(this.cryptoService.decryptAes(instance.credentials));
129
+ }
130
+ catch (err) {
131
+ throw new Error(`Failed to decrypt credentials for Jira instance ${instance.id}: ${err instanceof Error ? err.message : String(err)}`);
132
+ }
133
+ return new jira_client_1.JiraClient(instance.baseUrl, credentials);
134
+ }
135
+ };
136
+ exports.JiraConnector = JiraConnector;
137
+ exports.JiraConnector = JiraConnector = JiraConnector_1 = __decorate([
138
+ (0, common_1.Injectable)(),
139
+ __metadata("design:paramtypes", [crypto_service_1.CryptoService])
140
+ ], JiraConnector);
141
+ //# sourceMappingURL=jira.connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.connector.js","sourceRoot":"","sources":["../../../src/connectors/jira/jira.connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ export interface SentryCredentials {
2
+ authToken: string;
3
+ org: string;
4
+ }
5
+ export interface SentryIssue {
6
+ id: string;
7
+ title: string;
8
+ culprit: string;
9
+ permalink: string;
10
+ shortId: string;
11
+ project: {
12
+ slug: string;
13
+ name: string;
14
+ };
15
+ status: string;
16
+ level: string;
17
+ count: string;
18
+ userCount: number;
19
+ firstSeen: string;
20
+ lastSeen: string;
21
+ metadata?: {
22
+ type?: string;
23
+ value?: string;
24
+ filename?: string;
25
+ function?: string;
26
+ };
27
+ }
28
+ export interface SentryEvent {
29
+ eventID: string;
30
+ title: string;
31
+ message: string;
32
+ entries?: Array<{
33
+ type: string;
34
+ data: Record<string, unknown>;
35
+ }>;
36
+ }
37
+ export declare class SentryClient {
38
+ private readonly org;
39
+ private readonly baseUrl;
40
+ private readonly authToken;
41
+ constructor(credentials: SentryCredentials, baseUrl?: string);
42
+ private api;
43
+ private issuePath;
44
+ getIssue(issueId: string): Promise<SentryIssue>;
45
+ getLatestEvent(issueId: string): Promise<SentryEvent | null>;
46
+ addComment(issueId: string, text: string): Promise<void>;
47
+ resolveIssue(issueId: string): Promise<void>;
48
+ unresolveIssue(issueId: string): Promise<void>;
49
+ listOrganizationProjects(): Promise<Array<{
50
+ slug: string;
51
+ name: string;
52
+ }>>;
53
+ }
54
+ //# sourceMappingURL=sentry.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry.client.d.ts","sourceRoot":"","sources":["../../../src/connectors/sentry/sentry.client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC,CAAC;CACJ;AAQD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,WAAW,EAAE,iBAAiB,EAAE,OAAO,SAAsB;YAM3D,GAAG;IAYjB,OAAO,CAAC,SAAS;IAIX,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK/C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAS5D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAMjF"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SentryClient = void 0;
4
+ let _ky;
5
+ async function getKy() {
6
+ if (!_ky)
7
+ _ky = (await import('ky')).default;
8
+ return _ky;
9
+ }
10
+ class SentryClient {
11
+ constructor(credentials, baseUrl = 'https://sentry.io') {
12
+ this.org = credentials.org;
13
+ this.baseUrl = baseUrl.replace(/\/+$/, '');
14
+ this.authToken = credentials.authToken;
15
+ }
16
+ async api() {
17
+ const ky = await getKy();
18
+ return ky.create({
19
+ prefixUrl: `${this.baseUrl}/api/0`,
20
+ headers: {
21
+ Authorization: `Bearer ${this.authToken}`,
22
+ 'Content-Type': 'application/json',
23
+ },
24
+ timeout: 15_000,
25
+ });
26
+ }
27
+ issuePath(issueId) {
28
+ return `organizations/${this.org}/issues/${issueId}/`;
29
+ }
30
+ async getIssue(issueId) {
31
+ const api = await this.api();
32
+ return api.get(this.issuePath(issueId)).json();
33
+ }
34
+ async getLatestEvent(issueId) {
35
+ try {
36
+ const api = await this.api();
37
+ return await api.get(`${this.issuePath(issueId)}events/latest/`).json();
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ async addComment(issueId, text) {
44
+ const api = await this.api();
45
+ await api.post(`${this.issuePath(issueId)}comments/`, {
46
+ json: { text },
47
+ });
48
+ }
49
+ async resolveIssue(issueId) {
50
+ const api = await this.api();
51
+ await api.put(this.issuePath(issueId), {
52
+ json: { status: 'resolved' },
53
+ });
54
+ }
55
+ async unresolveIssue(issueId) {
56
+ const api = await this.api();
57
+ await api.put(this.issuePath(issueId), {
58
+ json: { status: 'unresolved' },
59
+ });
60
+ }
61
+ async listOrganizationProjects() {
62
+ const api = await this.api();
63
+ return api
64
+ .get(`organizations/${this.org}/projects/`)
65
+ .json();
66
+ }
67
+ }
68
+ exports.SentryClient = SentryClient;
69
+ //# sourceMappingURL=sentry.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry.client.js","sourceRoot":"","sources":["../../../src/connectors/sentry/sentry.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { IConnector, ConnectorWebhookRequest, ConnectorWebhookResult, ExternalContext } from '../connector.interface';
2
+ import type { ConnectorInstanceRow } from '../../database/repositories/connector.repository';
3
+ import { CryptoService } from '../../common/crypto.service';
4
+ export declare class SentryConnector implements IConnector {
5
+ private readonly cryptoService;
6
+ readonly platform: "sentry";
7
+ private readonly logger;
8
+ constructor(cryptoService: CryptoService);
9
+ handleWebhook(req: ConnectorWebhookRequest, instance: ConnectorInstanceRow): Promise<ConnectorWebhookResult | null>;
10
+ fetchContext(instance: ConnectorInstanceRow, externalId: string): Promise<ExternalContext>;
11
+ addComment(instance: ConnectorInstanceRow, externalId: string, comment: string): Promise<void>;
12
+ transitionStatus(instance: ConnectorInstanceRow, externalId: string, targetStatus: string): Promise<void>;
13
+ linkMR(_instance: ConnectorInstanceRow, _externalId: string, _mrUrl: string): Promise<void>;
14
+ validateCredentials(credentials: Record<string, string>, baseUrl?: string): Promise<boolean>;
15
+ private createClient;
16
+ }
17
+ //# sourceMappingURL=sentry.connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry.connector.d.ts","sourceRoot":"","sources":["../../../src/connectors/sentry/sentry.connector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBACa,eAAgB,YAAW,UAAU;IAIpC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C,QAAQ,CAAC,QAAQ,WAA4B;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAE9B,aAAa,EAAE,aAAa;IAEnD,aAAa,CACjB,GAAG,EAAE,uBAAuB,EAC5B,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAuFnC,YAAY,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAuB1F,UAAU,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9F,gBAAgB,CACpB,QAAQ,EAAE,oBAAoB,EAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAeV,MAAM,CAAC,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3F,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlG,OAAO,CAAC,YAAY;CAWrB"}