@rudderhq/server 0.2.5-canary.9 → 0.2.5

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 (309) hide show
  1. package/dist/bootstrap/plugin-host-runtime.d.ts +39 -39
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js +101 -147
  3. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  4. package/dist/bundled-plugins/plugin-linear/package.json +1 -1
  5. package/dist/routes/access-onboarding.helpers.d.ts +142 -0
  6. package/dist/routes/access-onboarding.helpers.d.ts.map +1 -0
  7. package/dist/routes/access-onboarding.helpers.js +762 -0
  8. package/dist/routes/access-onboarding.helpers.js.map +1 -0
  9. package/dist/routes/access.d.ts +2 -48
  10. package/dist/routes/access.d.ts.map +1 -1
  11. package/dist/routes/access.helpers.d.ts +109 -0
  12. package/dist/routes/access.helpers.d.ts.map +1 -0
  13. package/dist/routes/access.helpers.js +460 -0
  14. package/dist/routes/access.helpers.js.map +1 -0
  15. package/dist/routes/access.js +6 -1218
  16. package/dist/routes/access.js.map +1 -1
  17. package/dist/routes/agents.d.ts.map +1 -1
  18. package/dist/routes/agents.js +55 -1057
  19. package/dist/routes/agents.js.map +1 -1
  20. package/dist/routes/agents.management-routes.d.ts +12 -0
  21. package/dist/routes/agents.management-routes.d.ts.map +1 -0
  22. package/dist/routes/agents.management-routes.js +1067 -0
  23. package/dist/routes/agents.management-routes.js.map +1 -0
  24. package/dist/routes/chats.d.ts.map +1 -1
  25. package/dist/routes/chats.js +42 -652
  26. package/dist/routes/chats.js.map +1 -1
  27. package/dist/routes/chats.stream-routes.d.ts +12 -0
  28. package/dist/routes/chats.stream-routes.d.ts.map +1 -0
  29. package/dist/routes/chats.stream-routes.js +666 -0
  30. package/dist/routes/chats.stream-routes.js.map +1 -0
  31. package/dist/routes/issues.comments-attachments.d.ts +12 -0
  32. package/dist/routes/issues.comments-attachments.d.ts.map +1 -0
  33. package/dist/routes/issues.comments-attachments.js +511 -0
  34. package/dist/routes/issues.comments-attachments.js.map +1 -0
  35. package/dist/routes/issues.d.ts.map +1 -1
  36. package/dist/routes/issues.js +43 -1128
  37. package/dist/routes/issues.js.map +1 -1
  38. package/dist/routes/issues.mutations.d.ts +12 -0
  39. package/dist/routes/issues.mutations.d.ts.map +1 -0
  40. package/dist/routes/issues.mutations.js +635 -0
  41. package/dist/routes/issues.mutations.js.map +1 -0
  42. package/dist/routes/plugins.d.ts.map +1 -1
  43. package/dist/routes/plugins.js +14 -694
  44. package/dist/routes/plugins.js.map +1 -1
  45. package/dist/routes/plugins.operations-routes.d.ts +28 -0
  46. package/dist/routes/plugins.operations-routes.d.ts.map +1 -0
  47. package/dist/routes/plugins.operations-routes.js +720 -0
  48. package/dist/routes/plugins.operations-routes.js.map +1 -0
  49. package/dist/services/access.d.ts +21 -21
  50. package/dist/services/activity.d.ts +19 -19
  51. package/dist/services/agents.d.ts +158 -158
  52. package/dist/services/approvals.d.ts +29 -29
  53. package/dist/services/assets.d.ts +8 -8
  54. package/dist/services/automations.d.ts +41 -27
  55. package/dist/services/automations.d.ts.map +1 -1
  56. package/dist/services/automations.js +287 -110
  57. package/dist/services/automations.js.map +1 -1
  58. package/dist/services/automations.scheduler.d.ts +9 -0
  59. package/dist/services/automations.scheduler.d.ts.map +1 -0
  60. package/dist/services/automations.scheduler.js +101 -0
  61. package/dist/services/automations.scheduler.js.map +1 -0
  62. package/dist/services/board-auth.d.ts +32 -32
  63. package/dist/services/calendar.d.ts +26 -26
  64. package/dist/services/chat-assistant.d.ts +3 -47
  65. package/dist/services/chat-assistant.d.ts.map +1 -1
  66. package/dist/services/chat-assistant.helpers.d.ts +156 -0
  67. package/dist/services/chat-assistant.helpers.d.ts.map +1 -0
  68. package/dist/services/chat-assistant.helpers.js +862 -0
  69. package/dist/services/chat-assistant.helpers.js.map +1 -0
  70. package/dist/services/chat-assistant.js +2 -861
  71. package/dist/services/chat-assistant.js.map +1 -1
  72. package/dist/services/chats.d.ts +149 -247
  73. package/dist/services/chats.d.ts.map +1 -1
  74. package/dist/services/chats.helpers.d.ts +117 -0
  75. package/dist/services/chats.helpers.d.ts.map +1 -0
  76. package/dist/services/chats.helpers.js +285 -0
  77. package/dist/services/chats.helpers.js.map +1 -0
  78. package/dist/services/chats.js +6 -286
  79. package/dist/services/chats.js.map +1 -1
  80. package/dist/services/costs.d.ts +8 -8
  81. package/dist/services/finance.d.ts +18 -18
  82. package/dist/services/goals.d.ts +30 -30
  83. package/dist/services/heartbeat.d.ts +3 -1
  84. package/dist/services/heartbeat.d.ts.map +1 -1
  85. package/dist/services/heartbeat.js +3 -1
  86. package/dist/services/heartbeat.js.map +1 -1
  87. package/dist/services/issue-approvals.d.ts +4 -4
  88. package/dist/services/issue-review-wakeup.d.ts +3 -3
  89. package/dist/services/issues.comments-attachments.d.ts +141 -0
  90. package/dist/services/issues.comments-attachments.d.ts.map +1 -0
  91. package/dist/services/issues.comments-attachments.js +313 -0
  92. package/dist/services/issues.comments-attachments.js.map +1 -0
  93. package/dist/services/issues.d.ts +205 -256
  94. package/dist/services/issues.d.ts.map +1 -1
  95. package/dist/services/issues.helpers.d.ts +87 -0
  96. package/dist/services/issues.helpers.d.ts.map +1 -0
  97. package/dist/services/issues.helpers.js +270 -0
  98. package/dist/services/issues.helpers.js.map +1 -0
  99. package/dist/services/issues.js +5 -569
  100. package/dist/services/issues.js.map +1 -1
  101. package/dist/services/knowledge-portability/organization-portability.core.d.ts +210 -0
  102. package/dist/services/knowledge-portability/organization-portability.core.d.ts.map +1 -0
  103. package/dist/services/knowledge-portability/organization-portability.core.js +997 -0
  104. package/dist/services/knowledge-portability/organization-portability.core.js.map +1 -0
  105. package/dist/services/knowledge-portability/organization-portability.d.ts +6 -28
  106. package/dist/services/knowledge-portability/organization-portability.d.ts.map +1 -1
  107. package/dist/services/knowledge-portability/organization-portability.export.d.ts +24 -0
  108. package/dist/services/knowledge-portability/organization-portability.export.d.ts.map +1 -0
  109. package/dist/services/knowledge-portability/organization-portability.export.js +607 -0
  110. package/dist/services/knowledge-portability/organization-portability.export.js.map +1 -0
  111. package/dist/services/knowledge-portability/organization-portability.files.d.ts +69 -0
  112. package/dist/services/knowledge-portability/organization-portability.files.d.ts.map +1 -0
  113. package/dist/services/knowledge-portability/organization-portability.files.js +597 -0
  114. package/dist/services/knowledge-portability/organization-portability.files.js.map +1 -0
  115. package/dist/services/knowledge-portability/organization-portability.import.d.ts +31 -0
  116. package/dist/services/knowledge-portability/organization-portability.import.d.ts.map +1 -0
  117. package/dist/services/knowledge-portability/organization-portability.import.js +575 -0
  118. package/dist/services/knowledge-portability/organization-portability.import.js.map +1 -0
  119. package/dist/services/knowledge-portability/organization-portability.js +37 -3848
  120. package/dist/services/knowledge-portability/organization-portability.js.map +1 -1
  121. package/dist/services/knowledge-portability/organization-portability.package.d.ts +72 -0
  122. package/dist/services/knowledge-portability/organization-portability.package.d.ts.map +1 -0
  123. package/dist/services/knowledge-portability/organization-portability.package.js +749 -0
  124. package/dist/services/knowledge-portability/organization-portability.package.js.map +1 -0
  125. package/dist/services/knowledge-portability/organization-portability.preview.d.ts +18 -0
  126. package/dist/services/knowledge-portability/organization-portability.preview.d.ts.map +1 -0
  127. package/dist/services/knowledge-portability/organization-portability.preview.js +333 -0
  128. package/dist/services/knowledge-portability/organization-portability.preview.js.map +1 -0
  129. package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts +4 -0
  130. package/dist/services/knowledge-portability/organization-portability.resolve-source.d.ts.map +1 -0
  131. package/dist/services/knowledge-portability/organization-portability.resolve-source.js +86 -0
  132. package/dist/services/knowledge-portability/organization-portability.resolve-source.js.map +1 -0
  133. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +221 -0
  134. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -0
  135. package/dist/services/knowledge-portability/organization-skills.catalog.js +999 -0
  136. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -0
  137. package/dist/services/knowledge-portability/organization-skills.d.ts +4 -75
  138. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
  139. package/dist/services/knowledge-portability/organization-skills.js +11 -2008
  140. package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
  141. package/dist/services/knowledge-portability/organization-skills.scans.d.ts +16 -0
  142. package/dist/services/knowledge-portability/organization-skills.scans.d.ts.map +1 -0
  143. package/dist/services/knowledge-portability/organization-skills.scans.js +300 -0
  144. package/dist/services/knowledge-portability/organization-skills.scans.js.map +1 -0
  145. package/dist/services/knowledge-portability/organization-skills.sources.d.ts +68 -0
  146. package/dist/services/knowledge-portability/organization-skills.sources.d.ts.map +1 -0
  147. package/dist/services/knowledge-portability/organization-skills.sources.js +728 -0
  148. package/dist/services/knowledge-portability/organization-skills.sources.js.map +1 -0
  149. package/dist/services/messenger.d.ts +2 -2
  150. package/dist/services/messenger.js +2 -2
  151. package/dist/services/messenger.js.map +1 -1
  152. package/dist/services/organization-skills.d.ts +3 -1
  153. package/dist/services/organization-skills.d.ts.map +1 -1
  154. package/dist/services/organization-skills.js +3 -1
  155. package/dist/services/organization-skills.js.map +1 -1
  156. package/dist/services/orgs.d.ts +9 -9
  157. package/dist/services/plugin-loader.core.d.ts +14 -0
  158. package/dist/services/plugin-loader.core.d.ts.map +1 -0
  159. package/dist/services/plugin-loader.core.js +905 -0
  160. package/dist/services/plugin-loader.core.js.map +1 -0
  161. package/dist/services/plugin-loader.d.ts +3 -440
  162. package/dist/services/plugin-loader.d.ts.map +1 -1
  163. package/dist/services/plugin-loader.helpers.d.ts +468 -0
  164. package/dist/services/plugin-loader.helpers.d.ts.map +1 -0
  165. package/dist/services/plugin-loader.helpers.js +263 -0
  166. package/dist/services/plugin-loader.helpers.js.map +1 -0
  167. package/dist/services/plugin-loader.js +3 -1191
  168. package/dist/services/plugin-loader.js.map +1 -1
  169. package/dist/services/plugin-loader.worker-paths.d.ts +7 -0
  170. package/dist/services/plugin-loader.worker-paths.d.ts.map +1 -0
  171. package/dist/services/plugin-loader.worker-paths.js +85 -0
  172. package/dist/services/plugin-loader.worker-paths.js.map +1 -0
  173. package/dist/services/plugin-registry.d.ts +123 -123
  174. package/dist/services/projects.d.ts +8 -8
  175. package/dist/services/runtime-kernel/heartbeat.core.d.ts +725 -0
  176. package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -0
  177. package/dist/services/runtime-kernel/heartbeat.core.js +525 -0
  178. package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -0
  179. package/dist/services/runtime-kernel/heartbeat.d.ts +38 -259
  180. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  181. package/dist/services/runtime-kernel/heartbeat.execute.d.ts +5 -0
  182. package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -0
  183. package/dist/services/runtime-kernel/heartbeat.execute.js +1052 -0
  184. package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -0
  185. package/dist/services/runtime-kernel/heartbeat.js +50 -4142
  186. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  187. package/dist/services/runtime-kernel/heartbeat.misc.d.ts +30 -0
  188. package/dist/services/runtime-kernel/heartbeat.misc.d.ts.map +1 -0
  189. package/dist/services/runtime-kernel/heartbeat.misc.js +483 -0
  190. package/dist/services/runtime-kernel/heartbeat.misc.js.map +1 -0
  191. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts +38 -0
  192. package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -0
  193. package/dist/services/runtime-kernel/heartbeat.recovery.js +605 -0
  194. package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -0
  195. package/dist/services/runtime-kernel/heartbeat.release.d.ts +6 -0
  196. package/dist/services/runtime-kernel/heartbeat.release.d.ts.map +1 -0
  197. package/dist/services/runtime-kernel/heartbeat.release.js +398 -0
  198. package/dist/services/runtime-kernel/heartbeat.release.js.map +1 -0
  199. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts +229 -0
  200. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -0
  201. package/dist/services/runtime-kernel/heartbeat.sessions.js +708 -0
  202. package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -0
  203. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts +5 -0
  204. package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -0
  205. package/dist/services/runtime-kernel/heartbeat.wakeup.js +552 -0
  206. package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -0
  207. package/dist/services/secrets.d.ts +25 -25
  208. package/dist/services/sidebar-badges.js +1 -1
  209. package/dist/services/sidebar-badges.js.map +1 -1
  210. package/dist/services/workspace-runtime.comments.d.ts +6 -0
  211. package/dist/services/workspace-runtime.comments.d.ts.map +1 -0
  212. package/dist/services/workspace-runtime.comments.js +17 -0
  213. package/dist/services/workspace-runtime.comments.js.map +1 -0
  214. package/dist/services/workspace-runtime.d.ts +4 -163
  215. package/dist/services/workspace-runtime.d.ts.map +1 -1
  216. package/dist/services/workspace-runtime.helpers.d.ts +163 -0
  217. package/dist/services/workspace-runtime.helpers.d.ts.map +1 -0
  218. package/dist/services/workspace-runtime.helpers.js +360 -0
  219. package/dist/services/workspace-runtime.helpers.js.map +1 -0
  220. package/dist/services/workspace-runtime.js +4 -1236
  221. package/dist/services/workspace-runtime.js.map +1 -1
  222. package/dist/services/workspace-runtime.lifecycle.d.ts +35 -0
  223. package/dist/services/workspace-runtime.lifecycle.d.ts.map +1 -0
  224. package/dist/services/workspace-runtime.lifecycle.js +266 -0
  225. package/dist/services/workspace-runtime.lifecycle.js.map +1 -0
  226. package/dist/services/workspace-runtime.services.d.ts +140 -0
  227. package/dist/services/workspace-runtime.services.d.ts.map +1 -0
  228. package/dist/services/workspace-runtime.services.js +606 -0
  229. package/dist/services/workspace-runtime.services.js.map +1 -0
  230. package/package.json +21 -15
  231. package/ui-dist/assets/{_basePickBy-B5mJzzqZ.js → _basePickBy-N8I9ml5Y.js} +1 -1
  232. package/ui-dist/assets/{_baseUniq-B10Ec09o.js → _baseUniq-BuSlpRSQ.js} +1 -1
  233. package/ui-dist/assets/{arc-Bw7wimOa.js → arc-qX-dPyA1.js} +1 -1
  234. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-DZr0XEvv.js → architectureDiagram-2XIMDMQ5-DhjkbXsp.js} +1 -1
  235. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-D0jl0LgB.js → blockDiagram-WCTKOSBZ-JS-tTu3J.js} +1 -1
  236. package/ui-dist/assets/{c4Diagram-IC4MRINW-BEFxBnEm.js → c4Diagram-IC4MRINW-4DqwCWIx.js} +1 -1
  237. package/ui-dist/assets/channel-CccCW5_a.js +1 -0
  238. package/ui-dist/assets/{chunk-4BX2VUAB-Cbul1GoA.js → chunk-4BX2VUAB-T37SqBpp.js} +1 -1
  239. package/ui-dist/assets/{chunk-55IACEB6-DuouC3bT.js → chunk-55IACEB6-BSj9hdqK.js} +1 -1
  240. package/ui-dist/assets/{chunk-FMBD7UC4-bN1jF9xw.js → chunk-FMBD7UC4-Dkrlh0Wk.js} +1 -1
  241. package/ui-dist/assets/{chunk-JSJVCQXG-B0-Ij6ZF.js → chunk-JSJVCQXG-C0ZE3QdB.js} +1 -1
  242. package/ui-dist/assets/{chunk-KX2RTZJC-BjI3IEjI.js → chunk-KX2RTZJC-DOZQM9gW.js} +1 -1
  243. package/ui-dist/assets/{chunk-NQ4KR5QH-MUoGr46n.js → chunk-NQ4KR5QH-5Yr3U2k8.js} +1 -1
  244. package/ui-dist/assets/{chunk-QZHKN3VN-CQoI9Ouy.js → chunk-QZHKN3VN-CvKTufwF.js} +1 -1
  245. package/ui-dist/assets/{chunk-WL4C6EOR-DSJh3iDp.js → chunk-WL4C6EOR-IoEM0jyx.js} +1 -1
  246. package/ui-dist/assets/classDiagram-VBA2DB6C-JKk4tCW2.js +1 -0
  247. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-JKk4tCW2.js +1 -0
  248. package/ui-dist/assets/clone-Onaweg8D.js +1 -0
  249. package/ui-dist/assets/{cose-bilkent-S5V4N54A-BPepglgB.js → cose-bilkent-S5V4N54A-CTvr1OFj.js} +1 -1
  250. package/ui-dist/assets/{dagre-KLK3FWXG-DhnHVZkt.js → dagre-KLK3FWXG-UZ-SNjVK.js} +1 -1
  251. package/ui-dist/assets/{diagram-E7M64L7V-DNvXtoOO.js → diagram-E7M64L7V-D7RAN0Hr.js} +1 -1
  252. package/ui-dist/assets/{diagram-IFDJBPK2-DhGlDTgn.js → diagram-IFDJBPK2-B4LViaFR.js} +1 -1
  253. package/ui-dist/assets/{diagram-P4PSJMXO-BmXEloWS.js → diagram-P4PSJMXO-CY1be7ak.js} +1 -1
  254. package/ui-dist/assets/{erDiagram-INFDFZHY-BTYVzaLM.js → erDiagram-INFDFZHY-Dca0KkvJ.js} +1 -1
  255. package/ui-dist/assets/{flowDiagram-PKNHOUZH-CqMNQUVv.js → flowDiagram-PKNHOUZH-i-qMvfwg.js} +1 -1
  256. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-B2le_64a.js → ganttDiagram-A5KZAMGK-Wxq2lhbh.js} +1 -1
  257. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-BtxOBq5A.js → gitGraphDiagram-K3NZZRJ6-DwzgPlAY.js} +1 -1
  258. package/ui-dist/assets/{graph-C5E6qFfm.js → graph-BAqf89Tz.js} +1 -1
  259. package/ui-dist/assets/{index-Piq-IPXt.js → index-4eCzaLuY.js} +1 -1
  260. package/ui-dist/assets/{index-DT6UN2ec.js → index-8uu-nKqK.js} +1 -1
  261. package/ui-dist/assets/{index-T5NVZ3nR.js → index-B-1NEcI_.js} +1 -1
  262. package/ui-dist/assets/{index-D-MoarxG.js → index-B0b_3Eu5.js} +1 -1
  263. package/ui-dist/assets/{index-CZiP3FBQ.js → index-B8v0eZjP.js} +1 -1
  264. package/ui-dist/assets/{index-C1Ga66FM.js → index-BN7Moj3u.js} +1 -1
  265. package/ui-dist/assets/{index-xBUfBdQn.js → index-BSpxh3cY.js} +1 -1
  266. package/ui-dist/assets/{index-CQcMWp51.js → index-BY44RIi9.js} +1 -1
  267. package/ui-dist/assets/{index-3a93sZNI.js → index-BhyQJhdZ.js} +1 -1
  268. package/ui-dist/assets/{index-BsVDit5y.js → index-BkPL_iGU.js} +1 -1
  269. package/ui-dist/assets/{index-88lBSTsW.js → index-BsPfoHXS.js} +1 -1
  270. package/ui-dist/assets/{index-CyJtcUF0.js → index-BstW7nmv.js} +1 -1
  271. package/ui-dist/assets/{index-BvZ0Ptfl.js → index-BwB67Zyz.js} +1 -1
  272. package/ui-dist/assets/index-C2peSkmT.css +1 -0
  273. package/ui-dist/assets/{index-vkCrQLeX.js → index-C3ktOsS_.js} +1 -1
  274. package/ui-dist/assets/{index-D2hZpQJT.js → index-CMyABlS-.js} +1 -1
  275. package/ui-dist/assets/{index-C4WCPEY4.js → index-CyBJ8ujC.js} +1 -1
  276. package/ui-dist/assets/{index-Bf7NB_lK.js → index-DAxM2W3O.js} +1 -1
  277. package/ui-dist/assets/{index-Dq7H6-Lm.js → index-DVZXPmhk.js} +1 -1
  278. package/ui-dist/assets/{index-CskDu6A3.js → index-Dc19uAyw.js} +1 -1
  279. package/ui-dist/assets/index-DzHrwZu1.js +1511 -0
  280. package/ui-dist/assets/{index-B20JneLK.js → index-LJuf53Ye.js} +1 -1
  281. package/ui-dist/assets/{index-D6McTDMQ.js → index-Ugw5VWWz.js} +1 -1
  282. package/ui-dist/assets/{index-CcVGS6HJ.js → index-YGraEFR7.js} +1 -1
  283. package/ui-dist/assets/{infoDiagram-LFFYTUFH-BiCCZcIW.js → infoDiagram-LFFYTUFH-jLmDtFVR.js} +1 -1
  284. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-BiwBemM5.js → ishikawaDiagram-PHBUUO56-6OGMyLT8.js} +1 -1
  285. package/ui-dist/assets/{journeyDiagram-4ABVD52K-D8RGr2xl.js → journeyDiagram-4ABVD52K-yQjl6E0t.js} +1 -1
  286. package/ui-dist/assets/{kanban-definition-K7BYSVSG-C733Fj-E.js → kanban-definition-K7BYSVSG-DkdCeQlS.js} +1 -1
  287. package/ui-dist/assets/{layout-CM4c3NA_.js → layout-CqSYvZ_w.js} +1 -1
  288. package/ui-dist/assets/{linear-DzH21Xsf.js → linear-B8xGZaoi.js} +1 -1
  289. package/ui-dist/assets/{mermaid.core-Z2rpoVP2.js → mermaid.core-AKL_cdyk.js} +4 -4
  290. package/ui-dist/assets/{mindmap-definition-YRQLILUH-DylLLj9w.js → mindmap-definition-YRQLILUH-Zr-dXC0x.js} +1 -1
  291. package/ui-dist/assets/{pieDiagram-SKSYHLDU-617wI_rr.js → pieDiagram-SKSYHLDU-BvDAU-Nk.js} +1 -1
  292. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-lxoCPJIL.js → quadrantDiagram-337W2JSQ-Dn9kM62o.js} +1 -1
  293. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-C5XydQ9-.js → requirementDiagram-Z7DCOOCP-GIsIh7Sd.js} +1 -1
  294. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK--grmq-Q8.js → sankeyDiagram-WA2Y5GQK-CUCuBkuf.js} +1 -1
  295. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-BS2PeYH-.js → sequenceDiagram-2WXFIKYE-MDpUY2HM.js} +1 -1
  296. package/ui-dist/assets/{stateDiagram-RAJIS63D-CeuZtj2z.js → stateDiagram-RAJIS63D-BymMpuUU.js} +1 -1
  297. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-Bi2oCU6d.js +1 -0
  298. package/ui-dist/assets/{timeline-definition-YZTLITO2-DxHdMpRr.js → timeline-definition-YZTLITO2-B6ofPhhy.js} +1 -1
  299. package/ui-dist/assets/{treemap-KZPCXAKY-Bv1ZlC5h.js → treemap-KZPCXAKY-DnLO6w1l.js} +1 -1
  300. package/ui-dist/assets/{vennDiagram-LZ73GAT5-DvpZSXY2.js → vennDiagram-LZ73GAT5-D0MyZIDl.js} +1 -1
  301. package/ui-dist/assets/{xychartDiagram-JWTSCODW-DttOu1GC.js → xychartDiagram-JWTSCODW-rADY1iUG.js} +1 -1
  302. package/ui-dist/index.html +2 -2
  303. package/ui-dist/assets/channel-DGUh6rEi.js +0 -1
  304. package/ui-dist/assets/classDiagram-VBA2DB6C-1ntk2IOV.js +0 -1
  305. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-1ntk2IOV.js +0 -1
  306. package/ui-dist/assets/clone-BpddY88c.js +0 -1
  307. package/ui-dist/assets/index-C8AD6s7S.js +0 -1510
  308. package/ui-dist/assets/index-Ded0dPwB.css +0 -1
  309. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DXq0yC5C.js +0 -1
@@ -6,16 +6,16 @@ type GoalRow = typeof goals.$inferSelect;
6
6
  type GoalInput = Omit<typeof goals.$inferInsert, "orgId">;
7
7
  type GoalPatch = Partial<typeof goals.$inferInsert>;
8
8
  export declare function getDefaultCompanyGoal(db: GoalReader, orgId: string): Promise<{
9
- title: string;
10
- description: string | null;
11
- id: string;
9
+ createdAt: Date;
12
10
  status: string;
11
+ id: string;
12
+ description: string | null;
13
13
  updatedAt: Date;
14
+ level: string;
14
15
  orgId: string;
16
+ title: string;
15
17
  parentId: string | null;
16
- createdAt: Date;
17
18
  ownerAgentId: string | null;
18
- level: string;
19
19
  }>;
20
20
  export declare function getGoalDependencies(db: Db, goal: GoalRow): Promise<GoalDependencies>;
21
21
  export declare function goalService(db: Db): {
@@ -191,16 +191,16 @@ export declare function goalService(db: Db): {
191
191
  generated: undefined;
192
192
  }, {}, {}>;
193
193
  }, "single", Record<"goals", "not-null">, false, "where", {
194
- title: string;
195
- description: string | null;
196
- id: string;
194
+ createdAt: Date;
197
195
  status: string;
196
+ id: string;
197
+ description: string | null;
198
198
  updatedAt: Date;
199
+ level: string;
199
200
  orgId: string;
201
+ title: string;
200
202
  parentId: string | null;
201
- createdAt: Date;
202
203
  ownerAgentId: string | null;
203
- level: string;
204
204
  }[], {
205
205
  id: import("drizzle-orm/pg-core").PgColumn<{
206
206
  name: "id";
@@ -374,41 +374,41 @@ export declare function goalService(db: Db): {
374
374
  }, {}, {}>;
375
375
  }>, "where">;
376
376
  getById: (id: string) => Promise<{
377
- title: string;
378
- description: string | null;
379
- id: string;
377
+ createdAt: Date;
380
378
  status: string;
379
+ id: string;
380
+ description: string | null;
381
381
  updatedAt: Date;
382
+ level: string;
382
383
  orgId: string;
384
+ title: string;
383
385
  parentId: string | null;
384
- createdAt: Date;
385
386
  ownerAgentId: string | null;
386
- level: string;
387
387
  }>;
388
388
  getDefaultCompanyGoal: (orgId: string) => Promise<{
389
- title: string;
390
- description: string | null;
391
- id: string;
389
+ createdAt: Date;
392
390
  status: string;
391
+ id: string;
392
+ description: string | null;
393
393
  updatedAt: Date;
394
+ level: string;
394
395
  orgId: string;
396
+ title: string;
395
397
  parentId: string | null;
396
- createdAt: Date;
397
398
  ownerAgentId: string | null;
398
- level: string;
399
399
  }>;
400
400
  dependencies: (goal: GoalRow) => Promise<GoalDependencies>;
401
401
  create: (orgId: string, data: GoalInput) => Promise<{
402
- title: string;
403
- description: string | null;
404
- id: string;
402
+ createdAt: Date;
405
403
  status: string;
404
+ id: string;
405
+ description: string | null;
406
406
  updatedAt: Date;
407
+ level: string;
407
408
  orgId: string;
409
+ title: string;
408
410
  parentId: string | null;
409
- createdAt: Date;
410
411
  ownerAgentId: string | null;
411
- level: string;
412
412
  }>;
413
413
  update: (id: string, data: GoalPatch) => Promise<{
414
414
  id: string;
@@ -423,16 +423,16 @@ export declare function goalService(db: Db): {
423
423
  updatedAt: Date;
424
424
  } | null>;
425
425
  remove: (id: string) => Promise<{
426
- title: string;
427
- description: string | null;
428
- id: string;
426
+ createdAt: Date;
429
427
  status: string;
428
+ id: string;
429
+ description: string | null;
430
430
  updatedAt: Date;
431
+ level: string;
431
432
  orgId: string;
433
+ title: string;
432
434
  parentId: string | null;
433
- createdAt: Date;
434
435
  ownerAgentId: string | null;
435
- level: string;
436
436
  } | null>;
437
437
  };
438
438
  export {};
@@ -1,2 +1,4 @@
1
- export { buildExplicitResumeSessionOverride, buildHeartbeatAdapterInvokePayload, buildHeartbeatRuntimeTraceMetadata, buildIssueRunTraceName, formatRuntimeWorkspaceWarningLog, heartbeatService, heartbeatService as heartbeatOrchestrator, parseSessionCompactionPolicy, prioritizeProjectWorkspaceCandidatesForRun, resolveHeartbeatObservabilitySurface, resolveRuntimeSessionParamsForWorkspace, shouldResetTaskSessionForWake, type ResolvedWorkspaceForRun, } from "./runtime-kernel/heartbeat.js";
1
+ export { heartbeatService, heartbeatService as heartbeatOrchestrator, prioritizeProjectWorkspaceCandidatesForRun, type ResolvedWorkspaceForRun, } from "./runtime-kernel/heartbeat.js";
2
+ export { buildHeartbeatAdapterInvokePayload, buildHeartbeatRuntimeTraceMetadata, buildIssueRunTraceName, resolveHeartbeatObservabilitySurface, } from "./runtime-kernel/heartbeat.core.js";
3
+ export { buildExplicitResumeSessionOverride, formatRuntimeWorkspaceWarningLog, parseSessionCompactionPolicy, resolveRuntimeSessionParamsForWorkspace, shouldResetTaskSessionForWake, } from "./runtime-kernel/heartbeat.sessions.js";
2
4
  //# sourceMappingURL=heartbeat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,kCAAkC,EAClC,sBAAsB,EACtB,gCAAgC,EAChC,gBAAgB,EAChB,gBAAgB,IAAI,qBAAqB,EACzC,4BAA4B,EAC5B,0CAA0C,EAC1C,oCAAoC,EACpC,uCAAuC,EACvC,6BAA6B,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,IAAI,qBAAqB,EACzC,0CAA0C,EAC1C,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,sBAAsB,EACtB,oCAAoC,GACrC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,4BAA4B,EAC5B,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,wCAAwC,CAAC"}
@@ -1,2 +1,4 @@
1
- export { buildExplicitResumeSessionOverride, buildHeartbeatAdapterInvokePayload, buildHeartbeatRuntimeTraceMetadata, buildIssueRunTraceName, formatRuntimeWorkspaceWarningLog, heartbeatService, heartbeatService as heartbeatOrchestrator, parseSessionCompactionPolicy, prioritizeProjectWorkspaceCandidatesForRun, resolveHeartbeatObservabilitySurface, resolveRuntimeSessionParamsForWorkspace, shouldResetTaskSessionForWake, } from "./runtime-kernel/heartbeat.js";
1
+ export { heartbeatService, heartbeatService as heartbeatOrchestrator, prioritizeProjectWorkspaceCandidatesForRun, } from "./runtime-kernel/heartbeat.js";
2
+ export { buildHeartbeatAdapterInvokePayload, buildHeartbeatRuntimeTraceMetadata, buildIssueRunTraceName, resolveHeartbeatObservabilitySurface, } from "./runtime-kernel/heartbeat.core.js";
3
+ export { buildExplicitResumeSessionOverride, formatRuntimeWorkspaceWarningLog, parseSessionCompactionPolicy, resolveRuntimeSessionParamsForWorkspace, shouldResetTaskSessionForWake, } from "./runtime-kernel/heartbeat.sessions.js";
2
4
  //# sourceMappingURL=heartbeat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,kCAAkC,EAClC,sBAAsB,EACtB,gCAAgC,EAChC,gBAAgB,EAChB,gBAAgB,IAAI,qBAAqB,EACzC,4BAA4B,EAC5B,0CAA0C,EAC1C,oCAAoC,EACpC,uCAAuC,EACvC,6BAA6B,GAE9B,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,IAAI,qBAAqB,EACzC,0CAA0C,GAE3C,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,sBAAsB,EACtB,oCAAoC,GACrC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,4BAA4B,EAC5B,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,wCAAwC,CAAC"}
@@ -27,11 +27,11 @@ export declare function issueApprovalService(db: Db): {
27
27
  }[]>;
28
28
  listIssuesForApproval: (approvalId: string) => Promise<{
29
29
  labels: {
30
+ createdAt: Date;
30
31
  id: string;
32
+ name: string;
31
33
  updatedAt: Date;
32
34
  orgId: string;
33
- createdAt: Date;
34
- name: string;
35
35
  color: string;
36
36
  }[];
37
37
  labelIds: string[];
@@ -59,8 +59,8 @@ export declare function issueApprovalService(db: Db): {
59
59
  updatedAt: Date;
60
60
  }[]>;
61
61
  link: (issueId: string, approvalId: string, actor?: LinkActor) => Promise<{
62
- orgId: string;
63
62
  createdAt: Date;
63
+ orgId: string;
64
64
  issueId: string;
65
65
  approvalId: string;
66
66
  linkedByAgentId: string | null;
@@ -68,8 +68,8 @@ export declare function issueApprovalService(db: Db): {
68
68
  }>;
69
69
  unlink: (issueId: string, approvalId: string) => Promise<void>;
70
70
  linkManyForApproval: (approvalId: string, issueIds: string[], actor?: LinkActor) => Promise<{
71
- orgId: string;
72
71
  createdAt: Date;
72
+ orgId: string;
73
73
  issueId: string;
74
74
  approvalId: string;
75
75
  linkedByAgentId: string | null;
@@ -36,7 +36,7 @@ export declare function buildIssueReviewWakeupOptions(input: {
36
36
  issueId: string;
37
37
  mutation: IssueReviewWakeupMutation;
38
38
  };
39
- requestedByActorType: "system" | "user" | "agent" | undefined;
39
+ requestedByActorType: "agent" | "user" | "system" | undefined;
40
40
  requestedByActorId: string | null;
41
41
  contextSnapshot: {
42
42
  issueId: string;
@@ -77,7 +77,7 @@ export declare function buildIssueConvergenceReviewWakeupOptions(input: {
77
77
  attempts: number;
78
78
  maxAttempts: number;
79
79
  };
80
- requestedByActorType: "system" | "user" | "agent" | undefined;
80
+ requestedByActorType: "agent" | "user" | "system" | undefined;
81
81
  requestedByActorId: string | null;
82
82
  contextSnapshot: {
83
83
  issueId: string;
@@ -124,7 +124,7 @@ export declare function buildIssueReviewCloseoutWakeupOptions(input: {
124
124
  attempts: number;
125
125
  maxAttempts: number;
126
126
  };
127
- requestedByActorType: "system" | "user" | "agent" | undefined;
127
+ requestedByActorType: "agent" | "user" | "system" | undefined;
128
128
  requestedByActorId: string | null;
129
129
  contextSnapshot: {
130
130
  issueId: string;
@@ -0,0 +1,141 @@
1
+ import type { Db } from "@rudderhq/db";
2
+ import { instanceSettingsService } from "./instance-settings.js";
3
+ type IssueCommentAttachmentMethodContext = {
4
+ db: Db;
5
+ instanceSettings: ReturnType<typeof instanceSettingsService>;
6
+ redactIssueComment: <T extends {
7
+ body: string;
8
+ }>(comment: T, censorUsernameInLogs: boolean) => T;
9
+ };
10
+ export declare function createIssueCommentAttachmentMethods(ctx: IssueCommentAttachmentMethodContext): {
11
+ findMentionedAgents: (orgId: string, body: string) => Promise<string[]>;
12
+ findMentionedProjectIds: (issueId: string) => Promise<string[]>;
13
+ listComments: (issueId: string, opts?: {
14
+ afterCommentId?: string | null;
15
+ order?: "asc" | "desc";
16
+ limit?: number | null;
17
+ }) => Promise<{
18
+ createdAt: Date;
19
+ body: string;
20
+ id: string;
21
+ updatedAt: Date;
22
+ orgId: string;
23
+ issueId: string;
24
+ authorAgentId: string | null;
25
+ authorUserId: string | null;
26
+ }[]>;
27
+ getCommentCursor: (issueId: string) => Promise<{
28
+ totalComments: number;
29
+ latestCommentId: string;
30
+ latestCommentAt: Date;
31
+ }>;
32
+ getComment: (commentId: string) => Promise<{
33
+ createdAt: Date;
34
+ body: string;
35
+ id: string;
36
+ updatedAt: Date;
37
+ orgId: string;
38
+ issueId: string;
39
+ authorAgentId: string | null;
40
+ authorUserId: string | null;
41
+ } | null>;
42
+ addComment: (issueId: string, body: string, actor: {
43
+ agentId?: string;
44
+ userId?: string;
45
+ }) => Promise<{
46
+ createdAt: Date;
47
+ body: string;
48
+ id: string;
49
+ updatedAt: Date;
50
+ orgId: string;
51
+ issueId: string;
52
+ authorAgentId: string | null;
53
+ authorUserId: string | null;
54
+ }>;
55
+ createAttachment: (input: {
56
+ issueId: string;
57
+ issueCommentId?: string | null;
58
+ usage?: string;
59
+ provider: string;
60
+ objectKey: string;
61
+ contentType: string;
62
+ byteSize: number;
63
+ sha256: string;
64
+ originalFilename?: string | null;
65
+ createdByAgentId?: string | null;
66
+ createdByUserId?: string | null;
67
+ }) => Promise<{
68
+ id: string;
69
+ orgId: string;
70
+ issueId: string;
71
+ issueCommentId: string | null;
72
+ assetId: string;
73
+ usage: string;
74
+ provider: string;
75
+ objectKey: string;
76
+ contentType: string;
77
+ byteSize: number;
78
+ sha256: string;
79
+ originalFilename: string | null;
80
+ createdByAgentId: string | null;
81
+ createdByUserId: string | null;
82
+ createdAt: Date;
83
+ updatedAt: Date;
84
+ }>;
85
+ listAttachments: (issueId: string) => Promise<{
86
+ id: string;
87
+ orgId: string;
88
+ issueId: string;
89
+ issueCommentId: string | null;
90
+ assetId: string;
91
+ usage: string;
92
+ provider: string;
93
+ objectKey: string;
94
+ contentType: string;
95
+ byteSize: number;
96
+ sha256: string;
97
+ originalFilename: string | null;
98
+ createdByAgentId: string | null;
99
+ createdByUserId: string | null;
100
+ createdAt: Date;
101
+ updatedAt: Date;
102
+ }[]>;
103
+ getAttachmentById: (id: string) => Promise<{
104
+ id: string;
105
+ orgId: string;
106
+ issueId: string;
107
+ issueCommentId: string | null;
108
+ assetId: string;
109
+ usage: string;
110
+ provider: string;
111
+ objectKey: string;
112
+ contentType: string;
113
+ byteSize: number;
114
+ sha256: string;
115
+ originalFilename: string | null;
116
+ createdByAgentId: string | null;
117
+ createdByUserId: string | null;
118
+ createdAt: Date;
119
+ updatedAt: Date;
120
+ }>;
121
+ removeAttachment: (id: string) => Promise<{
122
+ id: string;
123
+ orgId: string;
124
+ issueId: string;
125
+ issueCommentId: string | null;
126
+ assetId: string;
127
+ usage: string;
128
+ provider: string;
129
+ objectKey: string;
130
+ contentType: string;
131
+ byteSize: number;
132
+ sha256: string;
133
+ originalFilename: string | null;
134
+ createdByAgentId: string | null;
135
+ createdByUserId: string | null;
136
+ createdAt: Date;
137
+ updatedAt: Date;
138
+ } | null>;
139
+ };
140
+ export {};
141
+ //# sourceMappingURL=issues.comments-attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.comments-attachments.d.ts","sourceRoot":"","sources":["../../src/services/issues.comments-attachments.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAkCvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAOjE,KAAK,mCAAmC,GAAG;IACzC,EAAE,EAAE,EAAE,CAAC;IACP,gBAAgB,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC7D,kBAAkB,EAAE,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,OAAO,KAAK,CAAC,CAAC;CAClG,CAAC;AAEF,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,mCAAmC;iCAGrD,MAAM,QAAQ,MAAM;uCAoBd,MAAM;4BA6CpC,MAAM,SACR;QACL,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;;;;;;;;;;gCAmD+B,MAAM;;;;;4BA4BhB,MAAM;;;;;;;;;;0BAWF,MAAM,QAAQ,MAAM,SAAS;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;8BAiC9D;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC;;;;;;;;;;;;;;;;;;+BAoEgC,MAAM;;;;;;;;;;;;;;;;;;4BAyBT,MAAM;;;;;;;;;;;;;;;;;;2BAyBP,MAAM;;;;;;;;;;;;;;;;;;EAgCtC"}
@@ -0,0 +1,313 @@
1
+ import { and, asc, desc, eq, inArray, sql } from "drizzle-orm";
2
+ import { agents, assets, issueAttachments, issueComments, issues, projects, } from "@rudderhq/db";
3
+ import { extractAgentMentionIds, extractProjectMentionIds, isUuidLike, } from "@rudderhq/shared";
4
+ import { notFound, unprocessable } from "../errors.js";
5
+ import { redactCurrentUserText } from "../log-redaction.js";
6
+ import { MAX_ISSUE_COMMENT_PAGE_LIMIT } from "./issues.helpers.js";
7
+ export function createIssueCommentAttachmentMethods(ctx) {
8
+ const { db, instanceSettings, redactIssueComment } = ctx;
9
+ return {
10
+ findMentionedAgents: async (orgId, body) => {
11
+ const re = /\B@([^\s@,!?.]+)/g;
12
+ const tokens = new Set();
13
+ let m;
14
+ while ((m = re.exec(body)) !== null)
15
+ tokens.add(m[1].toLowerCase());
16
+ const explicitAgentMentionIds = extractAgentMentionIds(body).filter(isUuidLike);
17
+ if (tokens.size === 0 && explicitAgentMentionIds.length === 0)
18
+ return [];
19
+ const rows = await db.select({ id: agents.id, name: agents.name })
20
+ .from(agents).where(eq(agents.orgId, orgId));
21
+ const resolved = new Set(explicitAgentMentionIds);
22
+ for (const agent of rows) {
23
+ if (tokens.has(agent.name.toLowerCase())) {
24
+ resolved.add(agent.id);
25
+ }
26
+ }
27
+ return [...resolved];
28
+ },
29
+ findMentionedProjectIds: async (issueId) => {
30
+ const issue = await db
31
+ .select({
32
+ orgId: issues.orgId,
33
+ title: issues.title,
34
+ description: issues.description,
35
+ })
36
+ .from(issues)
37
+ .where(eq(issues.id, issueId))
38
+ .then((rows) => rows[0] ?? null);
39
+ if (!issue)
40
+ return [];
41
+ const comments = await db
42
+ .select({ body: issueComments.body })
43
+ .from(issueComments)
44
+ .where(eq(issueComments.issueId, issueId));
45
+ const mentionedIds = new Set();
46
+ for (const source of [
47
+ issue.title,
48
+ issue.description ?? "",
49
+ ...comments.map((comment) => comment.body),
50
+ ]) {
51
+ for (const projectId of extractProjectMentionIds(source)) {
52
+ mentionedIds.add(projectId);
53
+ }
54
+ }
55
+ if (mentionedIds.size === 0)
56
+ return [];
57
+ const validMentionedIds = [...mentionedIds].filter(isUuidLike);
58
+ if (validMentionedIds.length === 0)
59
+ return [];
60
+ const rows = await db
61
+ .select({ id: projects.id })
62
+ .from(projects)
63
+ .where(and(eq(projects.orgId, issue.orgId), inArray(projects.id, validMentionedIds)));
64
+ const valid = new Set(rows.map((row) => row.id));
65
+ return validMentionedIds.filter((projectId) => valid.has(projectId));
66
+ },
67
+ listComments: async (issueId, opts) => {
68
+ const order = opts?.order === "asc" ? "asc" : "desc";
69
+ const afterCommentId = opts?.afterCommentId?.trim() || null;
70
+ const limit = opts?.limit && opts.limit > 0
71
+ ? Math.min(Math.floor(opts.limit), MAX_ISSUE_COMMENT_PAGE_LIMIT)
72
+ : null;
73
+ const conditions = [eq(issueComments.issueId, issueId)];
74
+ if (afterCommentId) {
75
+ const anchor = await db
76
+ .select({
77
+ id: issueComments.id,
78
+ createdAt: issueComments.createdAt,
79
+ })
80
+ .from(issueComments)
81
+ .where(and(eq(issueComments.issueId, issueId), eq(issueComments.id, afterCommentId)))
82
+ .then((rows) => rows[0] ?? null);
83
+ if (!anchor)
84
+ return [];
85
+ const anchorCreatedAt = anchor.createdAt instanceof Date
86
+ ? anchor.createdAt.toISOString()
87
+ : new Date(anchor.createdAt).toISOString();
88
+ conditions.push(order === "asc"
89
+ ? sql `(
90
+ ${issueComments.createdAt} > ${anchorCreatedAt}
91
+ OR (${issueComments.createdAt} = ${anchorCreatedAt} AND ${issueComments.id} > ${anchor.id})
92
+ )`
93
+ : sql `(
94
+ ${issueComments.createdAt} < ${anchorCreatedAt}
95
+ OR (${issueComments.createdAt} = ${anchorCreatedAt} AND ${issueComments.id} < ${anchor.id})
96
+ )`);
97
+ }
98
+ const query = db
99
+ .select()
100
+ .from(issueComments)
101
+ .where(and(...conditions))
102
+ .orderBy(order === "asc" ? asc(issueComments.createdAt) : desc(issueComments.createdAt), order === "asc" ? asc(issueComments.id) : desc(issueComments.id));
103
+ const comments = limit ? await query.limit(limit) : await query;
104
+ const { censorUsernameInLogs } = await instanceSettings.getGeneral();
105
+ return comments.map((comment) => redactIssueComment(comment, censorUsernameInLogs));
106
+ },
107
+ getCommentCursor: async (issueId) => {
108
+ const [latest, countRow] = await Promise.all([
109
+ db
110
+ .select({
111
+ latestCommentId: issueComments.id,
112
+ latestCommentAt: issueComments.createdAt,
113
+ })
114
+ .from(issueComments)
115
+ .where(eq(issueComments.issueId, issueId))
116
+ .orderBy(desc(issueComments.createdAt), desc(issueComments.id))
117
+ .limit(1)
118
+ .then((rows) => rows[0] ?? null),
119
+ db
120
+ .select({
121
+ totalComments: sql `count(*)::int`,
122
+ })
123
+ .from(issueComments)
124
+ .where(eq(issueComments.issueId, issueId))
125
+ .then((rows) => rows[0] ?? null),
126
+ ]);
127
+ return {
128
+ totalComments: Number(countRow?.totalComments ?? 0),
129
+ latestCommentId: latest?.latestCommentId ?? null,
130
+ latestCommentAt: latest?.latestCommentAt ?? null,
131
+ };
132
+ },
133
+ getComment: (commentId) => instanceSettings.getGeneral().then(({ censorUsernameInLogs }) => db
134
+ .select()
135
+ .from(issueComments)
136
+ .where(eq(issueComments.id, commentId))
137
+ .then((rows) => {
138
+ const comment = rows[0] ?? null;
139
+ return comment ? redactIssueComment(comment, censorUsernameInLogs) : null;
140
+ })),
141
+ addComment: async (issueId, body, actor) => {
142
+ const issue = await db
143
+ .select({ orgId: issues.orgId })
144
+ .from(issues)
145
+ .where(eq(issues.id, issueId))
146
+ .then((rows) => rows[0] ?? null);
147
+ if (!issue)
148
+ throw notFound("Issue not found");
149
+ const currentUserRedactionOptions = {
150
+ enabled: (await instanceSettings.getGeneral()).censorUsernameInLogs,
151
+ };
152
+ const redactedBody = redactCurrentUserText(body, currentUserRedactionOptions);
153
+ const [comment] = await db
154
+ .insert(issueComments)
155
+ .values({
156
+ orgId: issue.orgId,
157
+ issueId,
158
+ authorAgentId: actor.agentId ?? null,
159
+ authorUserId: actor.userId ?? null,
160
+ body: redactedBody,
161
+ })
162
+ .returning();
163
+ // Update issue's updatedAt so comment activity is reflected in recency sorting
164
+ await db
165
+ .update(issues)
166
+ .set({ updatedAt: new Date() })
167
+ .where(eq(issues.id, issueId));
168
+ return redactIssueComment(comment, currentUserRedactionOptions.enabled);
169
+ },
170
+ createAttachment: async (input) => {
171
+ const issue = await db
172
+ .select({ id: issues.id, orgId: issues.orgId })
173
+ .from(issues)
174
+ .where(eq(issues.id, input.issueId))
175
+ .then((rows) => rows[0] ?? null);
176
+ if (!issue)
177
+ throw notFound("Issue not found");
178
+ if (input.issueCommentId) {
179
+ const comment = await db
180
+ .select({ id: issueComments.id, orgId: issueComments.orgId, issueId: issueComments.issueId })
181
+ .from(issueComments)
182
+ .where(eq(issueComments.id, input.issueCommentId))
183
+ .then((rows) => rows[0] ?? null);
184
+ if (!comment)
185
+ throw notFound("Issue comment not found");
186
+ if (comment.orgId !== issue.orgId || comment.issueId !== issue.id) {
187
+ throw unprocessable("Attachment comment must belong to same issue and organization");
188
+ }
189
+ }
190
+ return db.transaction(async (tx) => {
191
+ const [asset] = await tx
192
+ .insert(assets)
193
+ .values({
194
+ orgId: issue.orgId,
195
+ provider: input.provider,
196
+ objectKey: input.objectKey,
197
+ contentType: input.contentType,
198
+ byteSize: input.byteSize,
199
+ sha256: input.sha256,
200
+ originalFilename: input.originalFilename ?? null,
201
+ createdByAgentId: input.createdByAgentId ?? null,
202
+ createdByUserId: input.createdByUserId ?? null,
203
+ })
204
+ .returning();
205
+ const [attachment] = await tx
206
+ .insert(issueAttachments)
207
+ .values({
208
+ orgId: issue.orgId,
209
+ issueId: issue.id,
210
+ assetId: asset.id,
211
+ issueCommentId: input.issueCommentId ?? null,
212
+ usage: input.usage ?? "issue",
213
+ })
214
+ .returning();
215
+ return {
216
+ id: attachment.id,
217
+ orgId: attachment.orgId,
218
+ issueId: attachment.issueId,
219
+ issueCommentId: attachment.issueCommentId,
220
+ assetId: attachment.assetId,
221
+ usage: attachment.usage,
222
+ provider: asset.provider,
223
+ objectKey: asset.objectKey,
224
+ contentType: asset.contentType,
225
+ byteSize: asset.byteSize,
226
+ sha256: asset.sha256,
227
+ originalFilename: asset.originalFilename,
228
+ createdByAgentId: asset.createdByAgentId,
229
+ createdByUserId: asset.createdByUserId,
230
+ createdAt: attachment.createdAt,
231
+ updatedAt: attachment.updatedAt,
232
+ };
233
+ });
234
+ },
235
+ listAttachments: async (issueId) => db
236
+ .select({
237
+ id: issueAttachments.id,
238
+ orgId: issueAttachments.orgId,
239
+ issueId: issueAttachments.issueId,
240
+ issueCommentId: issueAttachments.issueCommentId,
241
+ assetId: issueAttachments.assetId,
242
+ usage: issueAttachments.usage,
243
+ provider: assets.provider,
244
+ objectKey: assets.objectKey,
245
+ contentType: assets.contentType,
246
+ byteSize: assets.byteSize,
247
+ sha256: assets.sha256,
248
+ originalFilename: assets.originalFilename,
249
+ createdByAgentId: assets.createdByAgentId,
250
+ createdByUserId: assets.createdByUserId,
251
+ createdAt: issueAttachments.createdAt,
252
+ updatedAt: issueAttachments.updatedAt,
253
+ })
254
+ .from(issueAttachments)
255
+ .innerJoin(assets, eq(issueAttachments.assetId, assets.id))
256
+ .where(and(eq(issueAttachments.issueId, issueId), eq(issueAttachments.usage, "issue")))
257
+ .orderBy(desc(issueAttachments.createdAt)),
258
+ getAttachmentById: async (id) => db
259
+ .select({
260
+ id: issueAttachments.id,
261
+ orgId: issueAttachments.orgId,
262
+ issueId: issueAttachments.issueId,
263
+ issueCommentId: issueAttachments.issueCommentId,
264
+ assetId: issueAttachments.assetId,
265
+ usage: issueAttachments.usage,
266
+ provider: assets.provider,
267
+ objectKey: assets.objectKey,
268
+ contentType: assets.contentType,
269
+ byteSize: assets.byteSize,
270
+ sha256: assets.sha256,
271
+ originalFilename: assets.originalFilename,
272
+ createdByAgentId: assets.createdByAgentId,
273
+ createdByUserId: assets.createdByUserId,
274
+ createdAt: issueAttachments.createdAt,
275
+ updatedAt: issueAttachments.updatedAt,
276
+ })
277
+ .from(issueAttachments)
278
+ .innerJoin(assets, eq(issueAttachments.assetId, assets.id))
279
+ .where(eq(issueAttachments.id, id))
280
+ .then((rows) => rows[0] ?? null),
281
+ removeAttachment: async (id) => db.transaction(async (tx) => {
282
+ const existing = await tx
283
+ .select({
284
+ id: issueAttachments.id,
285
+ orgId: issueAttachments.orgId,
286
+ issueId: issueAttachments.issueId,
287
+ issueCommentId: issueAttachments.issueCommentId,
288
+ assetId: issueAttachments.assetId,
289
+ usage: issueAttachments.usage,
290
+ provider: assets.provider,
291
+ objectKey: assets.objectKey,
292
+ contentType: assets.contentType,
293
+ byteSize: assets.byteSize,
294
+ sha256: assets.sha256,
295
+ originalFilename: assets.originalFilename,
296
+ createdByAgentId: assets.createdByAgentId,
297
+ createdByUserId: assets.createdByUserId,
298
+ createdAt: issueAttachments.createdAt,
299
+ updatedAt: issueAttachments.updatedAt,
300
+ })
301
+ .from(issueAttachments)
302
+ .innerJoin(assets, eq(issueAttachments.assetId, assets.id))
303
+ .where(eq(issueAttachments.id, id))
304
+ .then((rows) => rows[0] ?? null);
305
+ if (!existing)
306
+ return null;
307
+ await tx.delete(issueAttachments).where(eq(issueAttachments.id, id));
308
+ await tx.delete(assets).where(eq(assets.id, existing.assetId));
309
+ return existing;
310
+ }),
311
+ };
312
+ }
313
+ //# sourceMappingURL=issues.comments-attachments.js.map