@overlordai/server 1.0.175 → 1.0.176

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-CoUlSpBu.js} +1 -1
  179. package/public/assets/{AdminPage-C0OFG0LC.js → AdminPage-BonHpbC8.js} +1 -1
  180. package/public/assets/{AgentCliPage-Ci2XVaN8.js → AgentCliPage-2zflW4gy.js} +1 -1
  181. package/public/assets/{ApiReferencePage-Dm9y-zCM.js → ApiReferencePage-BC8HEfcM.js} +1 -1
  182. package/public/assets/{ArchitecturePage-BetPO5Ws.js → ArchitecturePage-Da9rv0hg.js} +1 -1
  183. package/public/assets/{AuditLogPage-Dbd27v1s.js → AuditLogPage-BrF0T3MT.js} +1 -1
  184. package/public/assets/{AutomationCreatePage-BvSw8KoZ.js → AutomationCreatePage-DI-Z1v9e.js} +1 -1
  185. package/public/assets/{AutomationDetailPage-1Y2tp1KP.js → AutomationDetailPage-7TLMwELt.js} +1 -1
  186. package/public/assets/{AutomationEditPage-C9UO1XrW.js → AutomationEditPage-BuOKTyTf.js} +1 -1
  187. package/public/assets/{AutomationListPage-CJk8o3Vp.js → AutomationListPage-D4XF43yR.js} +1 -1
  188. package/public/assets/{AutomationRunDetailPage-h7T4V9Yq.js → AutomationRunDetailPage-BDhPEndz.js} +1 -1
  189. package/public/assets/{BindPlatformPage-DpzV1bpB.js → BindPlatformPage-DNamr2h_.js} +1 -1
  190. package/public/assets/{BotIntegrationPage-9kAG4BIL.js → BotIntegrationPage-DN665fG6.js} +1 -1
  191. package/public/assets/{BotManage-BanZ5a5-.js → BotManage-DvfKuBFx.js} +1 -1
  192. package/public/assets/{BotSetupPage-BZIfJYqL.js → BotSetupPage-DPsT5Ln6.js} +1 -1
  193. package/public/assets/{ChangelogPage-Da8n7_T3.js → ChangelogPage-D1_YfUwN.js} +1 -1
  194. package/public/assets/{Checkbox-Dsj1BuTd.js → Checkbox-D8xEau6n.js} +1 -1
  195. package/public/assets/{CliReferencePage-BDFsLYmx.js → CliReferencePage-DVtpCVyB.js} +1 -1
  196. package/public/assets/{ConfirmStageDialog-BUTA9YZ1.js → ConfirmStageDialog-Cu49oAnM.js} +1 -1
  197. package/public/assets/ConnectorsPage-DmC6MARl.js +48 -0
  198. package/public/assets/{DeploymentPage-B5TlN0FI.js → DeploymentPage-P3jrGKlU.js} +1 -1
  199. package/public/assets/{DevWorkflowPage-Abvhng0F.js → DevWorkflowPage-DDE9wLKC.js} +1 -1
  200. package/public/assets/DeveloperManage-Bpo7QRy5.js +16 -0
  201. package/public/assets/{DeveloperSetupPage-QipfVSjp.js → DeveloperSetupPage-CHz_5bNW.js} +1 -1
  202. package/public/assets/{DocsIndexPage-Dw-saIXq.js → DocsIndexPage-C8kNCHNc.js} +11 -6
  203. package/public/assets/{DocsLayout-BsGaDVp1.js → DocsLayout-CF22uAIS.js} +1 -1
  204. package/public/assets/{DocsPrimitives-Bv8TQpkc.js → DocsPrimitives-BhxcRaTm.js} +1 -1
  205. package/public/assets/{EditProjectPage-CtNCwK-z.js → EditProjectPage-D_3HRO1s.js} +1 -1
  206. package/public/assets/{EmptyState-BpbqIJyG.js → EmptyState-IvQHEoph.js} +1 -1
  207. package/public/assets/{EnvVariablesPage-D5Cn_E5P.js → EnvVariablesPage-DNuaFEmN.js} +1 -1
  208. package/public/assets/HomePage-B7S2lrwi.js +1 -0
  209. package/public/assets/{InfoRow-BCDb21nt.js → InfoRow-C_tQVkuP.js} +1 -1
  210. package/public/assets/{InstallationPage-DLW6MXhs.js → InstallationPage-CK1BUOe2.js} +1 -1
  211. package/public/assets/{LandingPage-BLcQBvuD.js → LandingPage-DvR0mLWM.js} +1 -1
  212. package/public/assets/{LocalDevelopmentPage-BnbdovKe.js → LocalDevelopmentPage-C-5yQqhM.js} +1 -1
  213. package/public/assets/{LoginPage-Bh-p4hP9.js → LoginPage-BdTmOyQm.js} +1 -1
  214. package/public/assets/{MetricBar-DLR15rum.js → MetricBar-CKXN_2Ue.js} +1 -1
  215. package/public/assets/{MultiSelect-BKtGWYgt.js → MultiSelect-DegVW8UL.js} +1 -1
  216. package/public/assets/{NotFoundPage-BpUwim1l.js → NotFoundPage-V93x8tfy.js} +1 -1
  217. package/public/assets/{OnboardingGuide-BTsSW7Mq.js → OnboardingGuide-Crybb-Zh.js} +1 -1
  218. package/public/assets/{PermissionsPage-A828G2ih.js → PermissionsPage-BmehbFsh.js} +1 -1
  219. package/public/assets/{PipelineConfigPage-Cw1OxgKV.js → PipelineConfigPage-DZVU3Vkj.js} +1 -1
  220. package/public/assets/{PipelineEditorPage-tewviYrj.js → PipelineEditorPage-BH67Oewc.js} +1 -1
  221. package/public/assets/{PlanPage-Bidp5iEn.js → PlanPage-B4OhS9_O.js} +1 -1
  222. package/public/assets/{ProfilePage-DgFxZS6i.js → ProfilePage-DpMfRGms.js} +1 -1
  223. package/public/assets/{ProjectDetailPage-BoIU1U3V.js → ProjectDetailPage-BOvwgwui.js} +1 -1
  224. package/public/assets/{ProjectListPage-DMoN7Ghc.js → ProjectListPage-C2ZPh8P9.js} +1 -1
  225. package/public/assets/{PtyTerminal-QdM0LGge.js → PtyTerminal-DKh7d_-3.js} +1 -1
  226. package/public/assets/{QuickAuth-CGnZQLaj.js → QuickAuth-D2EErll5.js} +1 -1
  227. package/public/assets/{RemoveMemberConfirmDialog-uFuATit4.js → RemoveMemberConfirmDialog-Bnq4vIGU.js} +1 -1
  228. package/public/assets/ReviewAggregatePage-CTSuOo4O.js +6 -0
  229. package/public/assets/ReviewPage-Dx31QqyM.js +1 -0
  230. package/public/assets/{Select-CC0FnszM.js → Select-BXx8KPbW.js} +1 -1
  231. package/public/assets/{SettingsPage-DiecpWAG.js → SettingsPage-D3tDh7gu.js} +1 -1
  232. package/public/assets/{Skeleton-WCDZdltv.js → Skeleton-Crpru9Ol.js} +1 -1
  233. package/public/assets/{SkillPage-ABYkJSop.js → SkillPage-BiwP6aqc.js} +1 -1
  234. package/public/assets/TaskDetailPage-DHW9thUL.js +21 -0
  235. package/public/assets/{TaskGuidePage-CFzoePPd.js → TaskGuidePage-DD_jyUVW.js} +1 -1
  236. package/public/assets/TaskListPage-CBIv7NTp.js +1 -0
  237. package/public/assets/{TaskStatusBadge-CzUIb3QQ.js → TaskStatusBadge-Cfz28K6K.js} +1 -1
  238. package/public/assets/{TerminalHomePage-DP-gqkiq.js → TerminalHomePage-BmhBvY10.js} +1 -1
  239. package/public/assets/{TokenManage-CbLsJbR9.js → TokenManage-CYSBKzT7.js} +1 -1
  240. package/public/assets/{Tooltip-Ds3lc4sS.js → Tooltip-DZdu3ZKx.js} +1 -1
  241. package/public/assets/{TotpSetupPage-Bakhx3kM.js → TotpSetupPage-DP5q6oE-.js} +1 -1
  242. package/public/assets/{WorkerDetailPage-W_1tf-Ng.js → WorkerDetailPage-LMirCNtN.js} +1 -1
  243. package/public/assets/{WorkerListPage-DAgJojBW.js → WorkerListPage-q6siISS8.js} +1 -1
  244. package/public/assets/{WorkerOperationsPage-BE8gDr3P.js → WorkerOperationsPage-CGzqG_QM.js} +1 -1
  245. package/public/assets/{WorkerSetupGuidePage-Cjwu7yCO.js → WorkerSetupGuidePage-aVkDqrMr.js} +1 -1
  246. package/public/assets/{WorkerSetupPage-C4F2PDWx.js → WorkerSetupPage-C_zONAIf.js} +1 -1
  247. package/public/assets/{agent-type-options-BTd_pbKQ.js → agent-type-options-BiSKx1a4.js} +1 -1
  248. package/public/assets/{arrow-left-Czit8jGK.js → arrow-left-sGTyHBvX.js} +1 -1
  249. package/public/assets/{arrow-right-DUvU3ZSE.js → arrow-right-_NIT1UtR.js} +1 -1
  250. package/public/assets/{bot-xYitrdXz.js → bot-CDSBtXc_.js} +1 -1
  251. package/public/assets/{chevron-down-DwSdaR46.js → chevron-down-CE0uuyBZ.js} +1 -1
  252. package/public/assets/{chevron-left-DMFdbT8q.js → chevron-left-C0Zw71uv.js} +1 -1
  253. package/public/assets/{chevron-right-BqoEBUXc.js → chevron-right-BCit7CZP.js} +1 -1
  254. package/public/assets/{chevron-up-4jZShvn6.js → chevron-up-Bl0OZM4v.js} +1 -1
  255. package/public/assets/{circle-alert-gAYg5DQY.js → circle-alert-rHCTliEW.js} +1 -1
  256. package/public/assets/{clock-Bn8CRcdc.js → clock-BwsbKSS6.js} +1 -1
  257. package/public/assets/{copy-_C7txolK.js → copy-h1a805Rd.js} +1 -1
  258. package/public/assets/{download-CGR9pdGa.js → download-URcu3Jx3.js} +1 -1
  259. package/public/assets/{external-link-DGEar13h.js → external-link-FhyMbjzB.js} +1 -1
  260. package/public/assets/{git-fork-bd2vu3ng.js → git-fork-Dc1BvdTN.js} +1 -1
  261. package/public/assets/{index-DAwsREkq.js → index-J1zWTACN.js} +13 -13
  262. package/public/assets/{key-b6kn-A1T.js → key-COdogDFT.js} +1 -1
  263. package/public/assets/{loader-circle-vH-Hp_AS.js → loader-circle-Bq_BpbZ2.js} +1 -1
  264. package/public/assets/{pencil-Cxzh8oiw.js → pencil-0fxibflK.js} +1 -1
  265. package/public/assets/{play-bFi1k4eQ.js → play-Dbk8Wgkn.js} +1 -1
  266. package/public/assets/{plus-DJTaWh3N.js → plus-V36Q_nxP.js} +1 -1
  267. package/public/assets/{rotate-ccw-CXFQ7046.js → rotate-ccw-ByVQRmQu.js} +1 -1
  268. package/public/assets/{scroll-text-UIbwyc0E.js → scroll-text-C2iOLXnA.js} +1 -1
  269. package/public/assets/{settings-DA_C9Znv.js → settings-DrgaMc9j.js} +1 -1
  270. package/public/assets/{skip-forward-C71GgwGt.js → skip-forward-SfkU0vVB.js} +1 -1
  271. package/public/assets/{status-colors-C14ffr9M.js → status-colors-IR97PkWv.js} +1 -1
  272. package/public/assets/{task-agent-BasiQZ0L.js → task-agent-BIYkVnlP.js} +1 -1
  273. package/public/assets/{task-constants-DihuKtBw.js → task-constants-07c7xWcv.js} +1 -1
  274. package/public/assets/{task.store-MpV9TV7z.js → task.store-DWG-SG1e.js} +1 -1
  275. package/public/assets/{timer-COkLkLUF.js → timer-IeRNhyK4.js} +1 -1
  276. package/public/assets/{trash-2-CDhJihtl.js → trash-2-DuFeqRaH.js} +1 -1
  277. package/public/assets/{useFetch-CgkGfhaP.js → useFetch-CZCaxaCi.js} +1 -1
  278. package/public/assets/{users-BwpIig9c.js → users-CG1y1K_u.js} +1 -1
  279. package/public/assets/{wifi-D5o6IWuC.js → wifi-Dvp0MK85.js} +1 -1
  280. package/public/assets/{workflow-DXTOpHef.js → workflow-qWh96h21.js} +1 -1
  281. package/public/assets/{zap-CEUF2oJs.js → zap-Cwv7x_Mg.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,48 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var ConnectorRegistry_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ConnectorRegistry = exports.CONNECTORS = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ exports.CONNECTORS = Symbol('CONNECTORS');
19
+ let ConnectorRegistry = ConnectorRegistry_1 = class ConnectorRegistry {
20
+ constructor(registered = []) {
21
+ this.registered = registered;
22
+ this.logger = new common_1.Logger(ConnectorRegistry_1.name);
23
+ this.connectors = new Map();
24
+ }
25
+ onModuleInit() {
26
+ for (const connector of this.registered) {
27
+ this.connectors.set(connector.platform, connector);
28
+ this.logger.log(`Registered connector: ${connector.platform}`);
29
+ }
30
+ }
31
+ get(platform) {
32
+ return this.connectors.get(platform);
33
+ }
34
+ getAll() {
35
+ return Array.from(this.connectors.values());
36
+ }
37
+ platforms() {
38
+ return Array.from(this.connectors.keys());
39
+ }
40
+ };
41
+ exports.ConnectorRegistry = ConnectorRegistry;
42
+ exports.ConnectorRegistry = ConnectorRegistry = ConnectorRegistry_1 = __decorate([
43
+ (0, common_1.Injectable)(),
44
+ __param(0, (0, common_1.Optional)()),
45
+ __param(0, (0, common_1.Inject)(exports.CONNECTORS)),
46
+ __metadata("design:paramtypes", [Array])
47
+ ], ConnectorRegistry);
48
+ //# sourceMappingURL=connector.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.registry.js","sourceRoot":"","sources":["../../src/connectors/connector.registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoF;AAIvE,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAGxC,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAI5B,YACkC,aAA4C,EAAE;QAA7B,eAAU,GAAV,UAAU,CAAmB;QAJ/D,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,eAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;IAIzD,CAAC;IAEJ,YAAY;QACV,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,GAAG,CAAC,QAAoC;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AA1BY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,kBAAU,CAAC,CAAA;;GALtB,iBAAiB,CA0B7B"}
@@ -0,0 +1,21 @@
1
+ import { ConnectorRepository } from '../database/repositories/connector.repository';
2
+ import type { ConnectorInstanceRow } from '../database/repositories/connector.repository';
3
+ import { TaskDesignContextRepository } from '../database/repositories/task-design-context.repository';
4
+ import { ConnectorRegistry } from './connector.registry';
5
+ import type { FigmaDesignData } from './figma/figma.connector';
6
+ export declare class DesignContextService {
7
+ private readonly connectorRepo;
8
+ private readonly designContextRepo;
9
+ private readonly connectorRegistry;
10
+ private readonly logger;
11
+ constructor(connectorRepo: ConnectorRepository, designContextRepo: TaskDesignContextRepository, connectorRegistry: ConnectorRegistry);
12
+ /** Step 1: Call Figma API to fetch design data (slow, requires await). Does not write to DB. */
13
+ fetch(fileKey: string, nodeIds?: string[], projectKey?: string, connectorInstanceId?: number): Promise<{
14
+ instance: ConnectorInstanceRow;
15
+ context: FigmaDesignData;
16
+ }>;
17
+ /** Step 2: Write design context to DB (fast, synchronous better-sqlite3). Call after createTask. */
18
+ store(taskId: number, instanceId: number, context: FigmaDesignData, commentId?: string): void;
19
+ private resolveInstance;
20
+ }
21
+ //# sourceMappingURL=design-context.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-context.service.d.ts","sourceRoot":"","sources":["../../src/connectors/design-context.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,qBACa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IALpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;gBAG7C,aAAa,EAAE,mBAAmB,EAClC,iBAAiB,EAAE,2BAA2B,EAC9C,iBAAiB,EAAE,iBAAiB;IAGvD,gGAAgG;IAC1F,KAAK,CACT,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC;QAAE,QAAQ,EAAE,oBAAoB,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAaxE,oGAAoG;IACpG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAa7F,OAAO,CAAC,eAAe;CAgBxB"}
@@ -0,0 +1,77 @@
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 DesignContextService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DesignContextService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const connector_repository_1 = require("../database/repositories/connector.repository");
16
+ const task_design_context_repository_1 = require("../database/repositories/task-design-context.repository");
17
+ const connector_registry_1 = require("./connector.registry");
18
+ let DesignContextService = DesignContextService_1 = class DesignContextService {
19
+ constructor(connectorRepo, designContextRepo, connectorRegistry) {
20
+ this.connectorRepo = connectorRepo;
21
+ this.designContextRepo = designContextRepo;
22
+ this.connectorRegistry = connectorRegistry;
23
+ this.logger = new common_1.Logger(DesignContextService_1.name);
24
+ }
25
+ /** Step 1: Call Figma API to fetch design data (slow, requires await). Does not write to DB. */
26
+ async fetch(fileKey, nodeIds, projectKey, connectorInstanceId) {
27
+ const instance = this.resolveInstance(connectorInstanceId, projectKey);
28
+ if (!instance) {
29
+ throw new Error('No active Figma connector instance found');
30
+ }
31
+ const connector = this.connectorRegistry.get('figma');
32
+ if (!connector) {
33
+ throw new Error('Figma connector is not registered');
34
+ }
35
+ const context = await connector.buildDesignContext(instance, fileKey, nodeIds);
36
+ return { instance, context };
37
+ }
38
+ /** Step 2: Write design context to DB (fast, synchronous better-sqlite3). Call after createTask. */
39
+ store(taskId, instanceId, context, commentId) {
40
+ this.designContextRepo.create({
41
+ taskId,
42
+ connectorInstanceId: instanceId,
43
+ platform: 'figma',
44
+ fileKey: context.fileKey,
45
+ fileUrl: context.fileUrl,
46
+ nodeIds: JSON.stringify(context.nodeIds),
47
+ images: JSON.stringify(context.images),
48
+ commentId: commentId ?? null,
49
+ });
50
+ }
51
+ resolveInstance(connectorInstanceId, projectKey) {
52
+ if (connectorInstanceId != null) {
53
+ const inst = this.connectorRepo.findInstanceById(connectorInstanceId);
54
+ if (inst)
55
+ return inst;
56
+ }
57
+ if (projectKey) {
58
+ const bindings = this.connectorRepo.findBindingsByProjectKey(projectKey);
59
+ for (const b of bindings) {
60
+ const inst = this.connectorRepo.findInstanceById(b.connectorInstanceId);
61
+ if (inst?.platform === 'figma' && inst.status === 'active')
62
+ return inst;
63
+ }
64
+ }
65
+ // Do NOT fall back to a global instance — the caller must provide
66
+ // a connectorInstanceId or a projectKey with an explicit binding.
67
+ return undefined;
68
+ }
69
+ };
70
+ exports.DesignContextService = DesignContextService;
71
+ exports.DesignContextService = DesignContextService = DesignContextService_1 = __decorate([
72
+ (0, common_1.Injectable)(),
73
+ __metadata("design:paramtypes", [connector_repository_1.ConnectorRepository,
74
+ task_design_context_repository_1.TaskDesignContextRepository,
75
+ connector_registry_1.ConnectorRegistry])
76
+ ], DesignContextService);
77
+ //# sourceMappingURL=design-context.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-context.service.js","sourceRoot":"","sources":["../../src/connectors/design-context.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,wFAAoF;AAEpF,4GAAsG;AACtG,6DAAyD;AAIlD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAG/B,YACmB,aAAkC,EAClC,iBAA8C,EAC9C,iBAAoC;QAFpC,kBAAa,GAAb,aAAa,CAAqB;QAClC,sBAAiB,GAAjB,iBAAiB,CAA6B;QAC9C,sBAAiB,GAAjB,iBAAiB,CAAmB;QALtC,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAM7D,CAAC;IAEJ,gGAAgG;IAChG,KAAK,CAAC,KAAK,CACT,OAAe,EACf,OAAkB,EAClB,UAAmB,EACnB,mBAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAmB,CAAC;QACxE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,MAAc,EAAE,UAAkB,EAAE,OAAwB,EAAE,SAAkB;QACpF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5B,MAAM;YACN,mBAAmB,EAAE,UAAU;YAC/B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;YACtC,SAAS,EAAE,SAAS,IAAI,IAAI;SAC7B,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,mBAA4B,EAAE,UAAmB;QACvE,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YACtE,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;YACzE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;gBACxE,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,kEAAkE;QAClE,kEAAkE;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AA1DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAKuB,0CAAmB;QACf,4DAA2B;QAC3B,sCAAiB;GAN5C,oBAAoB,CA0DhC"}
@@ -0,0 +1,15 @@
1
+ import { type TaskStatusChangedPayload } from '../events/event-types';
2
+ import { TaskRepository } from '../database/repositories/task.repository';
3
+ import { TaskDesignContextRepository } from '../database/repositories/task-design-context.repository';
4
+ import { ConnectorRepository } from '../database/repositories/connector.repository';
5
+ import { TaskCreationService } from '../dispatcher/task-creation.service';
6
+ export declare class DesignReviewTriggerService {
7
+ private readonly taskRepo;
8
+ private readonly designContextRepo;
9
+ private readonly connectorRepo;
10
+ private readonly taskCreationService;
11
+ private readonly logger;
12
+ constructor(taskRepo: TaskRepository, designContextRepo: TaskDesignContextRepository, connectorRepo: ConnectorRepository, taskCreationService: TaskCreationService);
13
+ handleTaskCompleted(payload: TaskStatusChangedPayload): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=design-review-trigger.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-review-trigger.service.d.ts","sourceRoot":"","sources":["../../src/connectors/design-review-trigger.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG1E,qBACa,0BAA0B;IAInC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IANtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAGnD,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,mBAAmB,EAClC,mBAAmB,EAAE,mBAAmB;IAIrD,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CAyD5E"}
@@ -0,0 +1,98 @@
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 DesignReviewTriggerService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DesignReviewTriggerService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const event_emitter_1 = require("@nestjs/event-emitter");
16
+ const protocol_1 = require("@overlordai/protocol");
17
+ const event_types_1 = require("../events/event-types");
18
+ const task_repository_1 = require("../database/repositories/task.repository");
19
+ const task_design_context_repository_1 = require("../database/repositories/task-design-context.repository");
20
+ const connector_repository_1 = require("../database/repositories/connector.repository");
21
+ const task_creation_service_1 = require("../dispatcher/task-creation.service");
22
+ const connector_constants_1 = require("./connector.constants");
23
+ let DesignReviewTriggerService = DesignReviewTriggerService_1 = class DesignReviewTriggerService {
24
+ constructor(taskRepo, designContextRepo, connectorRepo, taskCreationService) {
25
+ this.taskRepo = taskRepo;
26
+ this.designContextRepo = designContextRepo;
27
+ this.connectorRepo = connectorRepo;
28
+ this.taskCreationService = taskCreationService;
29
+ this.logger = new common_1.Logger(DesignReviewTriggerService_1.name);
30
+ }
31
+ async handleTaskCompleted(payload) {
32
+ if (payload.status !== protocol_1.TaskStatus.COMPLETED)
33
+ return;
34
+ const task = this.taskRepo.findById(payload.taskId);
35
+ if (!task || task.taskMode !== 'develop')
36
+ return;
37
+ const contexts = this.designContextRepo.findByTaskId(task.id);
38
+ if (contexts.length === 0)
39
+ return;
40
+ // Check auto-review is enabled for the specific connector instance(s)
41
+ // that provided the design context — not just any Figma binding in the project.
42
+ const contextInstanceIds = new Set(contexts.map((c) => c.connectorInstanceId));
43
+ const bindings = this.connectorRepo.findBindingsByProjectKey(task.projectKey);
44
+ const hasFigmaAutoReview = bindings.some((b) => {
45
+ if (!contextInstanceIds.has(b.connectorInstanceId))
46
+ return false;
47
+ const inst = this.connectorRepo.findInstanceById(b.connectorInstanceId);
48
+ return inst?.platform === 'figma' && b.autoDesignReview;
49
+ });
50
+ if (!hasFigmaAutoReview)
51
+ return;
52
+ // Prevent duplicate auto-review
53
+ const existing = this.taskRepo.findBySourceTaskId(task.id);
54
+ if (existing.some((t) => t.taskMode === 'review' && connector_constants_1.ACTIVE_TASK_STATUSES.has(t.status)))
55
+ return;
56
+ if (!task.createdBy) {
57
+ this.logger.warn({ taskId: task.id }, 'Cannot auto-trigger design review: task has no creator');
58
+ return;
59
+ }
60
+ try {
61
+ await this.taskCreationService.createReviewTasks(task.id, [], task.createdBy, `Design review for Task #${task.id}`, true, // skipFix
62
+ (rt) => {
63
+ // beforeEnqueue: synchronously copy design context from source task
64
+ for (const ctx of contexts) {
65
+ this.designContextRepo.create({
66
+ taskId: rt.id,
67
+ connectorInstanceId: ctx.connectorInstanceId,
68
+ platform: ctx.platform,
69
+ fileKey: ctx.fileKey,
70
+ fileUrl: ctx.fileUrl,
71
+ nodeIds: ctx.nodeIds,
72
+ images: ctx.images,
73
+ commentId: ctx.commentId,
74
+ });
75
+ }
76
+ });
77
+ this.logger.log({ sourceTaskId: task.id }, 'Auto design review triggered');
78
+ }
79
+ catch (err) {
80
+ this.logger.warn({ err, sourceTaskId: task.id }, 'Auto design review failed');
81
+ }
82
+ }
83
+ };
84
+ exports.DesignReviewTriggerService = DesignReviewTriggerService;
85
+ __decorate([
86
+ (0, event_emitter_1.OnEvent)(event_types_1.DomainEvents.TASK_STATUS_CHANGED),
87
+ __metadata("design:type", Function),
88
+ __metadata("design:paramtypes", [Object]),
89
+ __metadata("design:returntype", Promise)
90
+ ], DesignReviewTriggerService.prototype, "handleTaskCompleted", null);
91
+ exports.DesignReviewTriggerService = DesignReviewTriggerService = DesignReviewTriggerService_1 = __decorate([
92
+ (0, common_1.Injectable)(),
93
+ __metadata("design:paramtypes", [task_repository_1.TaskRepository,
94
+ task_design_context_repository_1.TaskDesignContextRepository,
95
+ connector_repository_1.ConnectorRepository,
96
+ task_creation_service_1.TaskCreationService])
97
+ ], DesignReviewTriggerService);
98
+ //# sourceMappingURL=design-review-trigger.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-review-trigger.service.js","sourceRoot":"","sources":["../../src/connectors/design-review-trigger.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface ParsedFigmaUrl {
2
+ fileKey: string;
3
+ fileName?: string;
4
+ nodeId?: string;
5
+ }
6
+ /**
7
+ * Parse a Figma URL into its component parts.
8
+ * Supports /file/KEY/... and /design/KEY/... URL formats.
9
+ * Node IDs in URLs use dashes (1-2) which are converted to colons (1:2) for the API.
10
+ */
11
+ export declare function parseFigmaUrl(url: string): ParsedFigmaUrl | null;
12
+ //# sourceMappingURL=figma-url-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figma-url-parser.d.ts","sourceRoot":"","sources":["../../../src/connectors/figma/figma-url-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAmBhE"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseFigmaUrl = parseFigmaUrl;
4
+ /**
5
+ * Parse a Figma URL into its component parts.
6
+ * Supports /file/KEY/... and /design/KEY/... URL formats.
7
+ * Node IDs in URLs use dashes (1-2) which are converted to colons (1:2) for the API.
8
+ */
9
+ function parseFigmaUrl(url) {
10
+ try {
11
+ const parsed = new URL(url);
12
+ if (parsed.hostname !== 'figma.com' && parsed.hostname !== 'www.figma.com') {
13
+ return null;
14
+ }
15
+ const match = parsed.pathname.match(/\/(?:file|design)\/([a-zA-Z0-9_-]+)(?:\/([^?]*))?/);
16
+ if (!match)
17
+ return null;
18
+ const fileKey = match[1];
19
+ const fileName = match[2] ? decodeURIComponent(match[2].replace(/\/$/, '')) : undefined;
20
+ const rawNodeId = parsed.searchParams.get('node-id');
21
+ const nodeId = rawNodeId ? rawNodeId.replace(/-/g, ':') : undefined;
22
+ return { fileKey, fileName, nodeId };
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ //# sourceMappingURL=figma-url-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figma-url-parser.js","sourceRoot":"","sources":["../../../src/connectors/figma/figma-url-parser.ts"],"names":[],"mappings":";;AAWA,sCAmBC;AAxBD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACzF,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,67 @@
1
+ export interface FigmaCredentials {
2
+ personalAccessToken: string;
3
+ }
4
+ export interface FigmaFileResponse {
5
+ name: string;
6
+ document: {
7
+ children: Array<{
8
+ id: string;
9
+ name: string;
10
+ type: string;
11
+ children?: Array<{
12
+ id: string;
13
+ name: string;
14
+ type: string;
15
+ }>;
16
+ }>;
17
+ };
18
+ }
19
+ export interface FigmaFileNodesResponse {
20
+ nodes: Record<string, {
21
+ document: {
22
+ id: string;
23
+ name: string;
24
+ type: string;
25
+ };
26
+ }>;
27
+ }
28
+ export interface FigmaImageResponse {
29
+ images: Record<string, string | null>;
30
+ }
31
+ export interface FigmaComment {
32
+ id: string;
33
+ message: string;
34
+ client_meta?: {
35
+ node_id?: string;
36
+ node_offset?: {
37
+ x: number;
38
+ y: number;
39
+ };
40
+ } | null;
41
+ order_id?: number;
42
+ parent_id?: string;
43
+ created_at: string;
44
+ }
45
+ export interface FigmaCommentsResponse {
46
+ comments: FigmaComment[];
47
+ }
48
+ export interface FigmaUser {
49
+ id: string;
50
+ handle: string;
51
+ email: string;
52
+ }
53
+ export declare class FigmaClient {
54
+ private readonly headers;
55
+ constructor(credentials: FigmaCredentials);
56
+ private api;
57
+ getFile(fileKey: string): Promise<FigmaFileResponse>;
58
+ getFileNodes(fileKey: string, nodeIds: string[]): Promise<FigmaFileNodesResponse>;
59
+ exportImages(fileKey: string, nodeIds: string[], format?: 'png' | 'svg' | 'jpg' | 'pdf', scale?: number): Promise<FigmaImageResponse>;
60
+ getComments(fileKey: string): Promise<FigmaCommentsResponse>;
61
+ postComment(fileKey: string, message: string, opts?: {
62
+ nodeId?: string;
63
+ commentId?: string;
64
+ }): Promise<void>;
65
+ getCurrentUser(): Promise<FigmaUser>;
66
+ }
67
+ //# sourceMappingURL=figma.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figma.client.d.ts","sourceRoot":"","sources":["../../../src/connectors/figma/figma.client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,QAAQ,EAAE,KAAK,CAAC;YACd,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,KAAK,CAAC;gBACf,EAAE,EAAE,MAAM,CAAC;gBACX,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;aACd,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE;YACR,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAQD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,WAAW,EAAE,gBAAgB;YAM3B,GAAG;IASX,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAOpD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAOjF,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,GAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAa,EAC7C,KAAK,SAAI,GACR,OAAO,CAAC,kBAAkB,CAAC;IAWxB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAK5D,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,IAAI,CAAC;IAYV,cAAc,IAAI,OAAO,CAAC,SAAS,CAAC;CAI3C"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FigmaClient = void 0;
4
+ let _ky;
5
+ async function getKy() {
6
+ if (!_ky)
7
+ _ky = (await import('ky')).default;
8
+ return _ky;
9
+ }
10
+ class FigmaClient {
11
+ constructor(credentials) {
12
+ this.headers = {
13
+ 'X-Figma-Token': credentials.personalAccessToken,
14
+ };
15
+ }
16
+ async api(timeout = 30_000) {
17
+ const ky = await getKy();
18
+ return ky.create({
19
+ prefixUrl: 'https://api.figma.com',
20
+ headers: this.headers,
21
+ timeout,
22
+ });
23
+ }
24
+ async getFile(fileKey) {
25
+ const api = await this.api(30_000);
26
+ return api.get(`v1/files/${fileKey}`, {
27
+ searchParams: { depth: 2 },
28
+ }).json();
29
+ }
30
+ async getFileNodes(fileKey, nodeIds) {
31
+ const api = await this.api(30_000);
32
+ return api.get(`v1/files/${fileKey}/nodes`, {
33
+ searchParams: { ids: nodeIds.join(',') },
34
+ }).json();
35
+ }
36
+ async exportImages(fileKey, nodeIds, format = 'png', scale = 2) {
37
+ const api = await this.api(60_000);
38
+ return api.get(`v1/images/${fileKey}`, {
39
+ searchParams: {
40
+ ids: nodeIds.join(','),
41
+ format,
42
+ scale: String(scale),
43
+ },
44
+ }).json();
45
+ }
46
+ async getComments(fileKey) {
47
+ const api = await this.api(30_000);
48
+ return api.get(`v1/files/${fileKey}/comments`).json();
49
+ }
50
+ async postComment(fileKey, message, opts) {
51
+ const api = await this.api(30_000);
52
+ const json = { message };
53
+ if (opts?.commentId) {
54
+ json.comment_id = opts.commentId;
55
+ }
56
+ if (opts?.nodeId) {
57
+ json.client_meta = { node_id: opts.nodeId, node_offset: { x: 0, y: 0 } };
58
+ }
59
+ await api.post(`v1/files/${fileKey}/comments`, { json });
60
+ }
61
+ async getCurrentUser() {
62
+ const api = await this.api(15_000);
63
+ return api.get('v1/me').json();
64
+ }
65
+ }
66
+ exports.FigmaClient = FigmaClient;
67
+ //# sourceMappingURL=figma.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figma.client.js","sourceRoot":"","sources":["../../../src/connectors/figma/figma.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { IConnector, ConnectorWebhookRequest, ConnectorWebhookResult, ExternalContext } from '../connector.interface';
2
+ import type { ConnectorInstanceRow } from '../../database/repositories/connector.repository';
3
+ import { FigmaClient } from './figma.client';
4
+ import { CryptoService } from '../../common/crypto.service';
5
+ export interface FigmaDesignData {
6
+ fileKey: string;
7
+ fileUrl: string;
8
+ nodeIds: string[];
9
+ images: Array<{
10
+ nodeId: string;
11
+ name: string;
12
+ url: string;
13
+ }>;
14
+ }
15
+ export declare class FigmaConnector implements IConnector {
16
+ private readonly cryptoService;
17
+ readonly platform: "figma";
18
+ private readonly logger;
19
+ constructor(cryptoService: CryptoService);
20
+ handleWebhook(req: ConnectorWebhookRequest, instance: ConnectorInstanceRow): Promise<ConnectorWebhookResult | null>;
21
+ fetchContext(instance: ConnectorInstanceRow, externalId: string): Promise<ExternalContext>;
22
+ buildDesignContext(instance: ConnectorInstanceRow, fileKey: string, nodeIds?: string[]): Promise<FigmaDesignData>;
23
+ addComment(instance: ConnectorInstanceRow, externalId: string, comment: string): Promise<void>;
24
+ transitionStatus(_instance: ConnectorInstanceRow, _externalId: string, _targetStatus: string): Promise<void>;
25
+ linkMR(_instance: ConnectorInstanceRow, _externalId: string, _mrUrl: string): Promise<void>;
26
+ validateCredentials(credentials: Record<string, string>): Promise<boolean>;
27
+ createClient(instance: ConnectorInstanceRow): FigmaClient;
28
+ }
29
+ //# sourceMappingURL=figma.connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figma.connector.d.ts","sourceRoot":"","sources":["../../../src/connectors/figma/figma.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;AAC7F,OAAO,EAAE,WAAW,EAAyB,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D;AAOD,qBACa,cAAe,YAAW,UAAU;IAInC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C,QAAQ,CAAC,QAAQ,UAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAE7B,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;IAY1F,kBAAkB,CACtB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,eAAe,CAAC;IAgFrB,UAAU,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9F,gBAAgB,CACpB,SAAS,EAAE,oBAAoB,EAC/B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAIV,MAAM,CAAC,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhF,YAAY,CAAC,QAAQ,EAAE,oBAAoB,GAAG,WAAW;CAa1D"}