@rudderhq/server 0.2.0-canary.2 → 0.2.0-canary.21

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 (179) hide show
  1. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js +1 -1
  2. package/dist/bundled-plugins/plugin-linear/dist/ui/index.js.map +2 -2
  3. package/dist/bundled-plugins/plugin-linear/dist/worker.js +152 -120
  4. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +3 -3
  5. package/dist/langfuse-transcript.d.ts.map +1 -1
  6. package/dist/langfuse-transcript.js +22 -0
  7. package/dist/langfuse-transcript.js.map +1 -1
  8. package/dist/onboarding-assets/ceo/HEARTBEAT.md +8 -4
  9. package/dist/onboarding-assets/default/HEARTBEAT.md +7 -4
  10. package/dist/routes/agents.d.ts.map +1 -1
  11. package/dist/routes/agents.js +25 -6
  12. package/dist/routes/agents.js.map +1 -1
  13. package/dist/routes/chats.d.ts.map +1 -1
  14. package/dist/routes/chats.js +163 -43
  15. package/dist/routes/chats.js.map +1 -1
  16. package/dist/routes/costs.d.ts.map +1 -1
  17. package/dist/routes/costs.js +20 -0
  18. package/dist/routes/costs.js.map +1 -1
  19. package/dist/routes/instance-settings.d.ts.map +1 -1
  20. package/dist/routes/instance-settings.js +68 -1
  21. package/dist/routes/instance-settings.js.map +1 -1
  22. package/dist/routes/issues.d.ts.map +1 -1
  23. package/dist/routes/issues.js +238 -6
  24. package/dist/routes/issues.js.map +1 -1
  25. package/dist/routes/orgs.d.ts.map +1 -1
  26. package/dist/routes/orgs.js +22 -0
  27. package/dist/routes/orgs.js.map +1 -1
  28. package/dist/services/activity-log.d.ts.map +1 -1
  29. package/dist/services/activity-log.js +45 -16
  30. package/dist/services/activity-log.js.map +1 -1
  31. package/dist/services/activity.d.ts.map +1 -1
  32. package/dist/services/activity.js +32 -1
  33. package/dist/services/activity.js.map +1 -1
  34. package/dist/services/agent-instructions.d.ts.map +1 -1
  35. package/dist/services/agent-instructions.js +9 -0
  36. package/dist/services/agent-instructions.js.map +1 -1
  37. package/dist/services/agent-run-context.d.ts +0 -32
  38. package/dist/services/agent-run-context.d.ts.map +1 -1
  39. package/dist/services/agent-run-context.js +25 -128
  40. package/dist/services/agent-run-context.js.map +1 -1
  41. package/dist/services/agents.d.ts +13 -13
  42. package/dist/services/agents.d.ts.map +1 -1
  43. package/dist/services/agents.js +1 -42
  44. package/dist/services/agents.js.map +1 -1
  45. package/dist/services/assets.d.ts +2 -2
  46. package/dist/services/chat-assistant.d.ts +2 -2
  47. package/dist/services/chat-assistant.d.ts.map +1 -1
  48. package/dist/services/chat-assistant.js +24 -96
  49. package/dist/services/chat-assistant.js.map +1 -1
  50. package/dist/services/chats.d.ts +80 -4
  51. package/dist/services/chats.d.ts.map +1 -1
  52. package/dist/services/chats.js +92 -6
  53. package/dist/services/chats.js.map +1 -1
  54. package/dist/services/costs.d.ts +15 -0
  55. package/dist/services/costs.d.ts.map +1 -1
  56. package/dist/services/costs.js +62 -1
  57. package/dist/services/costs.js.map +1 -1
  58. package/dist/services/instance-settings.d.ts +8 -1
  59. package/dist/services/instance-settings.d.ts.map +1 -1
  60. package/dist/services/instance-settings.js +139 -16
  61. package/dist/services/instance-settings.js.map +1 -1
  62. package/dist/services/issue-assignment-wakeup.d.ts +1 -1
  63. package/dist/services/issue-assignment-wakeup.d.ts.map +1 -1
  64. package/dist/services/issue-review-wakeup.d.ts +171 -0
  65. package/dist/services/issue-review-wakeup.d.ts.map +1 -0
  66. package/dist/services/issue-review-wakeup.js +115 -0
  67. package/dist/services/issue-review-wakeup.js.map +1 -0
  68. package/dist/services/issues.d.ts +9 -0
  69. package/dist/services/issues.d.ts.map +1 -1
  70. package/dist/services/issues.js +63 -15
  71. package/dist/services/issues.js.map +1 -1
  72. package/dist/services/messenger.d.ts.map +1 -1
  73. package/dist/services/messenger.js +117 -18
  74. package/dist/services/messenger.js.map +1 -1
  75. package/dist/services/organization-workspace-browser.d.ts +6 -0
  76. package/dist/services/organization-workspace-browser.d.ts.map +1 -1
  77. package/dist/services/organization-workspace-browser.js +95 -1
  78. package/dist/services/organization-workspace-browser.js.map +1 -1
  79. package/dist/services/orgs.d.ts +0 -12
  80. package/dist/services/orgs.d.ts.map +1 -1
  81. package/dist/services/orgs.js +0 -2
  82. package/dist/services/orgs.js.map +1 -1
  83. package/dist/services/runtime-kernel/heartbeat.d.ts +2 -2
  84. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  85. package/dist/services/runtime-kernel/heartbeat.js +302 -4
  86. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  87. package/dist/services/workspace-backups.d.ts.map +1 -1
  88. package/dist/services/workspace-backups.js +6 -0
  89. package/dist/services/workspace-backups.js.map +1 -1
  90. package/dist/services/workspace-runtime.d.ts +2 -0
  91. package/dist/services/workspace-runtime.d.ts.map +1 -1
  92. package/dist/services/workspace-runtime.js +4 -0
  93. package/dist/services/workspace-runtime.js.map +1 -1
  94. package/package.json +13 -13
  95. package/resources/bundled-skills/rudder/SKILL.md +55 -6
  96. package/resources/bundled-skills/rudder/references/api-reference.md +1 -1
  97. package/resources/bundled-skills/rudder/references/cli-reference.md +28 -8
  98. package/skills/rudder/SKILL.md +55 -6
  99. package/skills/rudder/references/api-reference.md +1 -1
  100. package/skills/rudder/references/cli-reference.md +28 -8
  101. package/ui-dist/assets/{_basePickBy-Ctak-fUU.js → _basePickBy-C45AEYYu.js} +1 -1
  102. package/ui-dist/assets/{_baseUniq-CCvXAX9A.js → _baseUniq-BJpCpwRa.js} +1 -1
  103. package/ui-dist/assets/{arc-vI0zh8NU.js → arc-D3Nqvz2N.js} +1 -1
  104. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-DHItsHGd.js → architectureDiagram-2XIMDMQ5-Do23wIQ4.js} +1 -1
  105. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-xaygTz7_.js → blockDiagram-WCTKOSBZ-C2ngwYU8.js} +1 -1
  106. package/ui-dist/assets/{c4Diagram-IC4MRINW-CKTtSmuE.js → c4Diagram-IC4MRINW-BYIobdwJ.js} +1 -1
  107. package/ui-dist/assets/channel-Dv2zwH0L.js +1 -0
  108. package/ui-dist/assets/{chunk-4BX2VUAB-BoT4r2rl.js → chunk-4BX2VUAB-C44gRPzE.js} +1 -1
  109. package/ui-dist/assets/{chunk-55IACEB6-C-c9AIXb.js → chunk-55IACEB6-B-6fN77J.js} +1 -1
  110. package/ui-dist/assets/{chunk-FMBD7UC4-wcigJMMB.js → chunk-FMBD7UC4-DTY1cUtM.js} +1 -1
  111. package/ui-dist/assets/{chunk-JSJVCQXG-JCWyBco7.js → chunk-JSJVCQXG-D_6UsK-t.js} +1 -1
  112. package/ui-dist/assets/{chunk-KX2RTZJC-C2UBWWKq.js → chunk-KX2RTZJC-Yb0NUpEi.js} +1 -1
  113. package/ui-dist/assets/{chunk-NQ4KR5QH-mQSE9CCE.js → chunk-NQ4KR5QH-DlCH22us.js} +1 -1
  114. package/ui-dist/assets/{chunk-QZHKN3VN-B7a54nLe.js → chunk-QZHKN3VN-Bh-_IRDv.js} +1 -1
  115. package/ui-dist/assets/{chunk-WL4C6EOR-C8Blz2oN.js → chunk-WL4C6EOR-C785VNuy.js} +1 -1
  116. package/ui-dist/assets/classDiagram-VBA2DB6C-BBRYwJo_.js +1 -0
  117. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-BBRYwJo_.js +1 -0
  118. package/ui-dist/assets/clone-D0Qr-ZBI.js +1 -0
  119. package/ui-dist/assets/{cose-bilkent-S5V4N54A-CfUhPdn7.js → cose-bilkent-S5V4N54A-Bo3jHr7N.js} +1 -1
  120. package/ui-dist/assets/{dagre-KLK3FWXG-Dg0aQpyu.js → dagre-KLK3FWXG-YYooZOSE.js} +1 -1
  121. package/ui-dist/assets/{diagram-E7M64L7V-BtBYVASY.js → diagram-E7M64L7V-DTEesXx5.js} +1 -1
  122. package/ui-dist/assets/{diagram-IFDJBPK2-DwXju-7B.js → diagram-IFDJBPK2-BXnhNPS7.js} +1 -1
  123. package/ui-dist/assets/{diagram-P4PSJMXO-DzgHBlqt.js → diagram-P4PSJMXO-CWzB3Cgn.js} +1 -1
  124. package/ui-dist/assets/{erDiagram-INFDFZHY-DpKFVcGE.js → erDiagram-INFDFZHY-C4XOm35N.js} +1 -1
  125. package/ui-dist/assets/{flowDiagram-PKNHOUZH-Pmj1xdBU.js → flowDiagram-PKNHOUZH-CFCXtb2O.js} +1 -1
  126. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-BAlqKhiF.js → ganttDiagram-A5KZAMGK-8w-5QNh7.js} +1 -1
  127. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-CSIo7uOS.js → gitGraphDiagram-K3NZZRJ6-qbWDXQfA.js} +1 -1
  128. package/ui-dist/assets/{graph-CaxUGo1Z.js → graph-qUSZM8PJ.js} +1 -1
  129. package/ui-dist/assets/index-B267ejd6.js +1444 -0
  130. package/ui-dist/assets/{index-BjA9l6q6.js → index-BQqyX69f.js} +1 -1
  131. package/ui-dist/assets/{index-DkPMGB5j.js → index-BZCnBfim.js} +1 -1
  132. package/ui-dist/assets/{index-2dfbKwBh.js → index-BcUKDwkj.js} +1 -1
  133. package/ui-dist/assets/{index-rkDtXEnh.js → index-BebFet7E.js} +1 -1
  134. package/ui-dist/assets/{index-m_qDjM4c.js → index-Bgr9D6Ra.js} +1 -1
  135. package/ui-dist/assets/{index-PEiOiR26.js → index-BnxD8kOC.js} +1 -1
  136. package/ui-dist/assets/{index-CmdbZP3U.js → index-Bu89fEqp.js} +1 -1
  137. package/ui-dist/assets/{index-DLpkN5Nh.js → index-Bukq8O5h.js} +1 -1
  138. package/ui-dist/assets/index-Bxh03544.css +1 -0
  139. package/ui-dist/assets/{index-BElh23_d.js → index-C6xe1iRe.js} +1 -1
  140. package/ui-dist/assets/{index-73iORMFN.js → index-COE6bbkv.js} +1 -1
  141. package/ui-dist/assets/{index-CslGlNBo.js → index-Cb8FAw75.js} +1 -1
  142. package/ui-dist/assets/{index-UKCuYuh7.js → index-CnkyHiZz.js} +1 -1
  143. package/ui-dist/assets/{index-BAPnYsam.js → index-CxlDyxOU.js} +1 -1
  144. package/ui-dist/assets/{index-C57isBdA.js → index-D5hyFscs.js} +1 -1
  145. package/ui-dist/assets/{index-BuJtCaiX.js → index-DGEmNL-F.js} +1 -1
  146. package/ui-dist/assets/{index-DIcQ0aEs.js → index-D_pLgR1n.js} +1 -1
  147. package/ui-dist/assets/{index-BF_aD77W.js → index-DzeNxu5i.js} +1 -1
  148. package/ui-dist/assets/{index-DX640Doq.js → index-GjLZxTWd.js} +1 -1
  149. package/ui-dist/assets/{index-D_R7kXn2.js → index-L9e7v8cx.js} +1 -1
  150. package/ui-dist/assets/{index-BKYmQ7tf.js → index-UyuvF9uZ.js} +1 -1
  151. package/ui-dist/assets/{index-B8heUkj2.js → index-Z090t1c3.js} +1 -1
  152. package/ui-dist/assets/{index--XPsQZ8d.js → index-p9EItORI.js} +1 -1
  153. package/ui-dist/assets/{infoDiagram-LFFYTUFH-DsdK7PXv.js → infoDiagram-LFFYTUFH-or6GdoQj.js} +1 -1
  154. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-DeUKczqO.js → ishikawaDiagram-PHBUUO56-CiJce1C4.js} +1 -1
  155. package/ui-dist/assets/{journeyDiagram-4ABVD52K-DnOs-DRX.js → journeyDiagram-4ABVD52K-BSgSZtvu.js} +1 -1
  156. package/ui-dist/assets/{kanban-definition-K7BYSVSG-DCyJACf3.js → kanban-definition-K7BYSVSG-Dz-9iEDp.js} +1 -1
  157. package/ui-dist/assets/{layout-TatwQjxb.js → layout-BX7Dy_7p.js} +1 -1
  158. package/ui-dist/assets/{linear-bFbc0OUH.js → linear-S43utJWr.js} +1 -1
  159. package/ui-dist/assets/{mermaid.core-BdugKJmA.js → mermaid.core-BbRXh3sM.js} +4 -4
  160. package/ui-dist/assets/{mindmap-definition-YRQLILUH-d5r4CAWm.js → mindmap-definition-YRQLILUH-BuzgDaXx.js} +1 -1
  161. package/ui-dist/assets/{pieDiagram-SKSYHLDU-O6r1VFCs.js → pieDiagram-SKSYHLDU-CDfbASTn.js} +1 -1
  162. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-D0yzROUH.js → quadrantDiagram-337W2JSQ-nz3dRx2X.js} +1 -1
  163. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-GH6gqsQi.js → requirementDiagram-Z7DCOOCP-BYawIpQl.js} +1 -1
  164. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-DRovE2y6.js → sankeyDiagram-WA2Y5GQK-DeTjkIc7.js} +1 -1
  165. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-CKcQVuy2.js → sequenceDiagram-2WXFIKYE-30zXKF2p.js} +1 -1
  166. package/ui-dist/assets/{stateDiagram-RAJIS63D-C_FCbTJ2.js → stateDiagram-RAJIS63D-BRYhvfgF.js} +1 -1
  167. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-BTX-x4pr.js +1 -0
  168. package/ui-dist/assets/{timeline-definition-YZTLITO2-DRStubdA.js → timeline-definition-YZTLITO2-CqeKIDK2.js} +1 -1
  169. package/ui-dist/assets/{treemap-KZPCXAKY-Cdg9C7l2.js → treemap-KZPCXAKY-D7WLACiN.js} +1 -1
  170. package/ui-dist/assets/{vennDiagram-LZ73GAT5-fy5_7c9z.js → vennDiagram-LZ73GAT5-4TiMQaNo.js} +1 -1
  171. package/ui-dist/assets/{xychartDiagram-JWTSCODW-BnlMSV0P.js → xychartDiagram-JWTSCODW-BVKw66VX.js} +1 -1
  172. package/ui-dist/index.html +2 -2
  173. package/ui-dist/assets/channel-CySTnYot.js +0 -1
  174. package/ui-dist/assets/classDiagram-VBA2DB6C-COm96Uxw.js +0 -1
  175. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-COm96Uxw.js +0 -1
  176. package/ui-dist/assets/clone-1uUrCt2n.js +0 -1
  177. package/ui-dist/assets/index-DO_7LT0g.css +0 -1
  178. package/ui-dist/assets/index-PCdQGLiX.js +0 -1424
  179. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DvubldWn.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"costs.js","sourceRoot":"","sources":["../../src/routes/costs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"costs.js","sourceRoot":"","sources":["../../src/routes/costs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instance-settings.d.ts","sourceRoot":"","sources":["../../src/routes/instance-settings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AA8F1B,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IAAE,cAAc,EAAE,cAAc,CAAA;CAAE,8CAsMzC"}
1
+ {"version":3,"file":"instance-settings.d.ts","sourceRoot":"","sources":["../../src/routes/instance-settings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAUL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAyH1B,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IAAE,cAAc,EAAE,cAAc,CAAA;CAAE,8CA+PzC"}
@@ -1,5 +1,6 @@
1
1
  import { Router } from "express";
2
- import { patchInstanceGeneralSettingsSchema, patchInstanceLangfuseSettingsSchema, patchInstanceNotificationSettingsSchema, patchOperatorProfileSettingsSchema, instancePathPickerRequestSchema, } from "@rudderhq/shared";
2
+ import { isUnsafeGitIdentityEmail } from "@rudderhq/agent-runtime-utils/git-identity";
3
+ import { patchInstanceGeneralSettingsSchema, patchInstanceGitIdentitySettingsSchema, patchInstanceLangfuseSettingsSchema, patchInstanceNotificationSettingsSchema, patchOperatorProfileSettingsSchema, instancePathPickerRequestSchema, } from "@rudderhq/shared";
3
4
  import { conflict, forbidden, unprocessable } from "../errors.js";
4
5
  import { validate } from "../middleware/validate.js";
5
6
  import { boardAuthService, instanceSettingsService, logActivity, operatorProfileService, } from "../services/index.js";
@@ -30,6 +31,11 @@ function assertLocalLangfuseSettings(deploymentMode) {
30
31
  throw unprocessable("Langfuse settings are only available in local_trusted mode.");
31
32
  }
32
33
  }
34
+ function assertLocalGitIdentitySettings(deploymentMode) {
35
+ if (deploymentMode !== "local_trusted") {
36
+ throw unprocessable("Git identity settings are only available in local_trusted mode.");
37
+ }
38
+ }
33
39
  function isLangfuseManagedByEnv() {
34
40
  return LANGFUSE_ENV_KEYS.some((key) => process.env[key] !== undefined);
35
41
  }
@@ -49,6 +55,23 @@ function getLangfuseSettings() {
49
55
  managedByEnv: isLangfuseManagedByEnv(),
50
56
  };
51
57
  }
58
+ function buildGitIdentityFromPatch(patch, source) {
59
+ const name = trimOptionalString(patch.name);
60
+ const email = trimOptionalString(patch.email);
61
+ if (!name || !email) {
62
+ throw unprocessable("Git identity name and email are required.");
63
+ }
64
+ if (isUnsafeGitIdentityEmail(email)) {
65
+ throw unprocessable("Git identity email must be a valid non-local email address.");
66
+ }
67
+ return {
68
+ name,
69
+ email,
70
+ confirmed: true,
71
+ source,
72
+ lastDetectedAt: source === "detected_global" ? new Date().toISOString() : null,
73
+ };
74
+ }
52
75
  function applyLangfusePatch(current, patch) {
53
76
  const nextEnabled = patch.enabled ?? current?.enabled ?? false;
54
77
  const nextBaseUrl = (Object.prototype.hasOwnProperty.call(patch, "baseUrl")
@@ -132,6 +155,50 @@ export function instanceSettingsRoutes(db, opts) {
132
155
  })));
133
156
  res.json(updated.notifications);
134
157
  });
158
+ router.get("/instance/settings/git-identity", async (req, res) => {
159
+ assertCanManageInstanceSettings(req);
160
+ assertLocalGitIdentitySettings(opts.deploymentMode);
161
+ res.json(await svc.getGitIdentity());
162
+ });
163
+ router.patch("/instance/settings/git-identity", validate(patchInstanceGitIdentitySettingsSchema), async (req, res) => {
164
+ assertCanManageInstanceSettings(req);
165
+ assertLocalGitIdentitySettings(opts.deploymentMode);
166
+ const patch = req.body;
167
+ const updated = await (async () => {
168
+ if (patch.clear === true) {
169
+ return svc.clearGitIdentity();
170
+ }
171
+ if (patch.confirmDetected === true) {
172
+ const detected = await svc.detectGitIdentity();
173
+ if (!detected || detected.unsafe) {
174
+ throw unprocessable("No safe host Git identity is available to confirm.");
175
+ }
176
+ return svc.updateGitIdentity(buildGitIdentityFromPatch({
177
+ name: detected.name,
178
+ email: detected.email,
179
+ }, "detected_global"));
180
+ }
181
+ return svc.updateGitIdentity(buildGitIdentityFromPatch(patch, "override"));
182
+ })();
183
+ const actor = getActorInfo(req);
184
+ const orgIds = await svc.listCompanyIds();
185
+ await Promise.all(orgIds.map((orgId) => logActivity(db, {
186
+ orgId,
187
+ actorType: actor.actorType,
188
+ actorId: actor.actorId,
189
+ agentId: actor.agentId,
190
+ runId: actor.runId,
191
+ action: "instance.settings.git_identity_updated",
192
+ entityType: "instance_settings",
193
+ entityId: "git_identity",
194
+ details: {
195
+ status: updated.status,
196
+ source: updated.saved?.source ?? null,
197
+ changedKeys: Object.keys(req.body).sort(),
198
+ },
199
+ })));
200
+ res.json(updated);
201
+ });
135
202
  router.get("/instance/settings/langfuse", async (req, res) => {
136
203
  assertCanManageInstanceSettings(req);
137
204
  assertLocalLangfuseSettings(opts.deploymentMode);
@@ -1 +1 @@
1
- {"version":3,"file":"instance-settings.js","sourceRoot":"","sources":["../../src/routes/instance-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-settings.js","sourceRoot":"","sources":["../../src/routes/instance-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EACL,kCAAkC,EAClC,sCAAsC,EACtC,mCAAmC,EACnC,uCAAuC,EACvC,kCAAkC,EAClC,+BAA+B,GAKhC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAEnG,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,iBAAiB,GAAG;IACxB,kBAAkB;IAClB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;CACd,CAAC;AAEX,SAAS,+BAA+B,CAAC,GAAY;IACnD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,gBAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IACD,MAAM,SAAS,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,2BAA2B,CAAC,cAA8B;IACjE,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;QACvC,MAAM,aAAa,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,cAA8B;IACpE,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;QACvC,MAAM,aAAa,CAAC,iEAAiE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAyB;IACnD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,4BAA4B,EAAE,CAAC;IAChD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QAChC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QAChC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE;QAC1C,WAAW,EAAE,8BAA8B,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE;QACxF,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvD,YAAY,EAAE,sBAAsB,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAuC,EACvC,MAA6C;IAE7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,aAAa,CAAC,2CAA2C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,aAAa,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;IACD,OAAO;QACL,IAAI;QACJ,KAAK;QACL,SAAS,EAAE,IAAI;QACf,MAAM;QACN,cAAc,EAAE,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA4C,EAAE,KAAoC;IAC5G,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,IAAK,OAAO,EAAE,OAA+B,IAAI,KAAK,CAAC;IACxF,MAAM,WAAW,GACf,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACvB,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;WACtE,yBAAyB,CAAC;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;QAC5E,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC;QACrC,CAAC,CAAC,kBAAkB,CAAC,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/F,MAAM,eAAe,GAAG,8BAA8B,CACpD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC;QACxD,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,kBAAkB,CAAC,OAAO,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CACnG,CAAC;IAEF,IAAI,aAAa,GAAG,kBAAkB,CAAC,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/G,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QAClC,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpF,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,WAAW;QACpB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,EAAM,EACN,IAAwC;IAExC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;IAE5C,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1D,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChE,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CACV,4BAA4B,EAC5B,QAAQ,CAAC,kCAAkC,CAAC,EAC5C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,WAAW,CAAC,EAAE,EAAE;YACd,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,mCAAmC;YAC3C,UAAU,EAAE,mBAAmB;YAC/B,QAAQ,EAAE,OAAO,CAAC,EAAE;YACpB,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;aAC1C;SACF,CAAC,CACH,CACF,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,KAAK,CACV,kCAAkC,EAClC,QAAQ,CAAC,uCAAuC,CAAC,EACjD,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,WAAW,CAAC,EAAE,EAAE;YACd,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,yCAAyC;YACjD,UAAU,EAAE,mBAAmB;YAC/B,QAAQ,EAAE,OAAO,CAAC,EAAE;YACpB,OAAO,EAAE;gBACP,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;aAC1C;SACF,CAAC,CACH,CACF,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/D,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CACV,iCAAiC,EACjC,QAAQ,CAAC,sCAAsC,CAAC,EAChD,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAwC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YAChC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACzB,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM,aAAa,CAAC,oDAAoD,CAAC,CAAC;gBAC5E,CAAC;gBACD,OAAO,GAAG,CAAC,iBAAiB,CAAC,yBAAyB,CAAC;oBACrD,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACtB,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,GAAG,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,WAAW,CAAC,EAAE,EAAE;YACd,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,wCAAwC;YAChD,UAAU,EAAE,mBAAmB;YAC/B,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE;gBACP,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI;gBACrC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;aAC1C;SACF,CAAC,CACH,CACF,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3D,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CACV,6BAA6B,EAC7B,QAAQ,CAAC,mCAAmC,CAAC,EAC7C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,sBAAsB,EAAE,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,yDAAyD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG,OAAO;YACV,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAA+C,EAAE,GAAG,CAAC,IAAI,CAAC;SAChG,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,WAAW,CAAC,EAAE,EAAE;YACd,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,oCAAoC;YAC5C,UAAU,EAAE,mBAAmB;YAC/B,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE;oBACR,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,IAAI,KAAK;oBACjD,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,IAAI,yBAAyB;oBACrE,mBAAmB,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC;oBAC/D,mBAAmB,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC;oBAC/D,WAAW,EAAE,aAAa,CAAC,QAAQ,EAAE,WAAW,IAAI,IAAI;iBACzD;gBACD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;aAC1C;SACF,CAAC,CACH,CACF,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAClC,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1D,WAAW,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CACV,4BAA4B,EAC5B,QAAQ,CAAC,kCAAkC,CAAC,EAC5C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,WAAW,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,8BAA8B,CAAC;YAC5D,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,WAAW,CAAC,EAAE,EAAE;YACd,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,mCAAmC;YAC3C,UAAU,EAAE,kBAAkB;YAC9B,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,cAAc;YAC5C,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;aAC1C;SACF,CAAC,CACH,CACF,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,QAAQ,CAAC,+BAA+B,CAAC,EACzC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,cAAc,KAAK,eAAe,EAAE,CAAC;YAC5C,MAAM,aAAa,CAAC,6DAA6D,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;gBACtD,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAgBvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAyB1D,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,8CA0uD1D"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAkBvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA2B1D,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,8CA++D1D"}
@@ -1,14 +1,17 @@
1
1
  import { Router } from "express";
2
2
  import multer from "multer";
3
- import { addIssueCommentSchema, createIssueAttachmentMetadataSchema, createIssueWorkProductSchema, createIssueLabelSchema, checkoutIssueSchema, createIssueSchema, linkIssueApprovalSchema, issueDocumentKeySchema, reorderIssueSchema, updateIssueLabelSchema, updateIssueWorkProductSchema, upsertIssueDocumentSchema, updateIssueSchema, } from "@rudderhq/shared";
3
+ import { buildIssueDocumentsPrompt } from "@rudderhq/agent-runtime-utils/server-utils";
4
+ import { addIssueCommentSchema, createIssueAttachmentMetadataSchema, createIssueWorkspaceAttachmentSchema, createIssueWorkProductSchema, createIssueLabelSchema, checkoutIssueSchema, createIssueSchema, linkIssueApprovalSchema, issueDocumentKeySchema, reorderIssueSchema, updateIssueLabelSchema, updateIssueWorkProductSchema, upsertIssueDocumentSchema, updateIssueSchema, } from "@rudderhq/shared";
4
5
  import { validate } from "../middleware/validate.js";
5
6
  import { accessService, agentService, executionWorkspaceService, goalService, heartbeatService, issueApprovalService, issueService, documentService, logActivity, projectService, automationService, workProductService, } from "../services/index.js";
7
+ import { organizationWorkspaceBrowserService } from "../services/organization-workspace-browser.js";
6
8
  import { logger } from "../middleware/logger.js";
7
- import { forbidden, HttpError, unauthorized } from "../errors.js";
9
+ import { forbidden, HttpError, unauthorized, unprocessable } from "../errors.js";
8
10
  import { assertBoard, assertCompanyAccess, getActorInfo } from "./authz.js";
9
11
  import { shouldWakeAssigneeOnCheckout } from "./issues-checkout-wakeup.js";
10
12
  import { isAllowedContentType, MAX_ATTACHMENT_BYTES } from "../attachment-types.js";
11
13
  import { queueIssueAssignmentWakeup } from "../services/issue-assignment-wakeup.js";
14
+ import { buildIssueReviewWakeupOptions, queueIssueReviewWakeup } from "../services/issue-review-wakeup.js";
12
15
  const MAX_ISSUE_COMMENT_LIMIT = 500;
13
16
  export function issueRoutes(db, storage) {
14
17
  const router = Router();
@@ -23,6 +26,7 @@ export function issueRoutes(db, storage) {
23
26
  const workProductsSvc = workProductService(db);
24
27
  const documentsSvc = documentService(db);
25
28
  const automationsSvc = automationService(db);
29
+ const workspaceBrowser = organizationWorkspaceBrowserService(db);
26
30
  const upload = multer({
27
31
  storage: multer.memoryStorage(),
28
32
  limits: { fileSize: MAX_ATTACHMENT_BYTES, files: 1 },
@@ -148,6 +152,29 @@ export function issueRoutes(db, storage) {
148
152
  assertBoard(req);
149
153
  return req.actor.userId ?? "local-board";
150
154
  }
155
+ function issueHasReviewer(issue) {
156
+ return Boolean(issue.reviewerAgentId || issue.reviewerUserId);
157
+ }
158
+ function isReviewerAgentForIssue(actor, issue) {
159
+ return actor.actorType === "agent" && Boolean(actor.agentId) && actor.agentId === issue.reviewerAgentId;
160
+ }
161
+ function statusForReviewDecision(decision) {
162
+ switch (decision) {
163
+ case "approve":
164
+ return "done";
165
+ case "request_changes":
166
+ return "in_progress";
167
+ case "blocked":
168
+ return "blocked";
169
+ case "needs_followup":
170
+ return null;
171
+ default:
172
+ return null;
173
+ }
174
+ }
175
+ function statusAcceptsReviewerDecision(status) {
176
+ return status === "in_review" || status === "blocked";
177
+ }
151
178
  // Resolve issue identifiers (e.g. "PAP-39") to UUIDs for all /issues/:id routes
152
179
  router.param("id", async (req, res, next, rawId) => {
153
180
  try {
@@ -178,11 +205,15 @@ export function issueRoutes(db, storage) {
178
205
  const orgId = req.params.orgId;
179
206
  assertCompanyAccess(req, orgId);
180
207
  const assigneeUserFilterRaw = req.query.assigneeUserId;
208
+ const reviewerUserFilterRaw = req.query.reviewerUserId;
181
209
  const touchedByUserFilterRaw = req.query.touchedByUserId;
182
210
  const unreadForUserFilterRaw = req.query.unreadForUserId;
183
211
  const assigneeUserId = assigneeUserFilterRaw === "me" && req.actor.type === "board"
184
212
  ? req.actor.userId
185
213
  : assigneeUserFilterRaw;
214
+ const reviewerUserId = reviewerUserFilterRaw === "me" && req.actor.type === "board"
215
+ ? req.actor.userId
216
+ : reviewerUserFilterRaw;
186
217
  const touchedByUserId = touchedByUserFilterRaw === "me" && req.actor.type === "board"
187
218
  ? req.actor.userId
188
219
  : touchedByUserFilterRaw;
@@ -193,6 +224,10 @@ export function issueRoutes(db, storage) {
193
224
  res.status(403).json({ error: "assigneeUserId=me requires board authentication" });
194
225
  return;
195
226
  }
227
+ if (reviewerUserFilterRaw === "me" && (!reviewerUserId || req.actor.type !== "board")) {
228
+ res.status(403).json({ error: "reviewerUserId=me requires board authentication" });
229
+ return;
230
+ }
196
231
  if (touchedByUserFilterRaw === "me" && (!touchedByUserId || req.actor.type !== "board")) {
197
232
  res.status(403).json({ error: "touchedByUserId=me requires board authentication" });
198
233
  return;
@@ -206,6 +241,8 @@ export function issueRoutes(db, storage) {
206
241
  assigneeAgentId: req.query.assigneeAgentId,
207
242
  participantAgentId: req.query.participantAgentId,
208
243
  assigneeUserId,
244
+ reviewerAgentId: req.query.reviewerAgentId,
245
+ reviewerUserId,
209
246
  touchedByUserId,
210
247
  unreadForUserId,
211
248
  projectId: req.query.projectId,
@@ -394,7 +431,7 @@ export function issueRoutes(db, storage) {
394
431
  const wakeCommentId = typeof req.query.wakeCommentId === "string" && req.query.wakeCommentId.trim().length > 0
395
432
  ? req.query.wakeCommentId.trim()
396
433
  : null;
397
- const [ancestors, project, goal, commentCursor, wakeComment] = await Promise.all([
434
+ const [ancestors, project, goal, commentCursor, wakeComment, documentPayload] = await Promise.all([
398
435
  svc.getAncestors(issue.id),
399
436
  issue.projectId ? projectsSvc.getById(issue.projectId) : null,
400
437
  issue.goalId
@@ -404,6 +441,7 @@ export function issueRoutes(db, storage) {
404
441
  : null,
405
442
  svc.getCommentCursor(issue.id),
406
443
  wakeCommentId ? svc.getComment(wakeCommentId) : null,
444
+ documentsSvc.getIssueDocumentPayload(issue),
407
445
  ]);
408
446
  res.json({
409
447
  issue: {
@@ -445,6 +483,8 @@ export function issueRoutes(db, storage) {
445
483
  }
446
484
  : null,
447
485
  commentCursor,
486
+ ...documentPayload,
487
+ issueDocumentsPrompt: buildIssueDocumentsPrompt(documentPayload),
448
488
  wakeComment: wakeComment && wakeComment.issueId === issue.id
449
489
  ? wakeComment
450
490
  : null,
@@ -839,7 +879,7 @@ export function issueRoutes(db, storage) {
839
879
  router.post("/orgs/:orgId/issues", validate(createIssueSchema), async (req, res) => {
840
880
  const orgId = req.params.orgId;
841
881
  assertCompanyAccess(req, orgId);
842
- if (req.body.assigneeAgentId || req.body.assigneeUserId) {
882
+ if (req.body.assigneeAgentId || req.body.assigneeUserId || req.body.reviewerAgentId || req.body.reviewerUserId) {
843
883
  await assertCanAssignTasks(req, orgId);
844
884
  }
845
885
  const actor = getActorInfo(req);
@@ -868,6 +908,15 @@ export function issueRoutes(db, storage) {
868
908
  requestedByActorType: actor.actorType,
869
909
  requestedByActorId: actor.actorId,
870
910
  });
911
+ void queueIssueReviewWakeup({
912
+ heartbeat,
913
+ issue,
914
+ mutation: "create_in_review",
915
+ contextSource: "issue.create",
916
+ requestedByActorType: actor.actorType,
917
+ requestedByActorId: actor.actorId,
918
+ actorAgentId: actor.agentId,
919
+ });
871
920
  res.status(201).json(issue);
872
921
  });
873
922
  router.patch("/issues/:id", validate(updateIssueSchema), async (req, res) => {
@@ -880,6 +929,8 @@ export function issueRoutes(db, storage) {
880
929
  assertCompanyAccess(req, existing.orgId);
881
930
  const assigneeWillChange = (req.body.assigneeAgentId !== undefined && req.body.assigneeAgentId !== existing.assigneeAgentId) ||
882
931
  (req.body.assigneeUserId !== undefined && req.body.assigneeUserId !== existing.assigneeUserId);
932
+ const reviewerWillChange = (req.body.reviewerAgentId !== undefined && req.body.reviewerAgentId !== existing.reviewerAgentId) ||
933
+ (req.body.reviewerUserId !== undefined && req.body.reviewerUserId !== existing.reviewerUserId);
883
934
  const isAgentReturningIssueToCreator = req.actor.type === "agent" &&
884
935
  !!req.actor.agentId &&
885
936
  existing.assigneeAgentId === req.actor.agentId &&
@@ -892,17 +943,46 @@ export function issueRoutes(db, storage) {
892
943
  await assertCanAssignTasks(req, existing.orgId);
893
944
  }
894
945
  }
946
+ if (reviewerWillChange) {
947
+ await assertCanAssignTasks(req, existing.orgId);
948
+ }
895
949
  if (!(await assertAgentRunCheckoutOwnership(req, res, existing)))
896
950
  return;
897
951
  const actor = getActorInfo(req);
898
952
  const isClosed = existing.status === "done" || existing.status === "cancelled";
899
- const { comment: commentBody, reopen: reopenRequested, hiddenAt: hiddenAtRaw, ...updateFields } = req.body;
953
+ const { comment: commentBody, reopen: reopenRequested, hiddenAt: hiddenAtRaw, reviewDecision, ...updateFields } = req.body;
900
954
  if (hiddenAtRaw !== undefined) {
901
955
  updateFields.hiddenAt = hiddenAtRaw ? new Date(hiddenAtRaw) : null;
902
956
  }
903
957
  if (commentBody && reopenRequested === true && isClosed && updateFields.status === undefined) {
904
958
  updateFields.status = "todo";
905
959
  }
960
+ if (reviewDecision !== undefined) {
961
+ if (!commentBody) {
962
+ throw unprocessable("Reviewer decisions require a comment");
963
+ }
964
+ if (!statusAcceptsReviewerDecision(existing.status)) {
965
+ throw unprocessable("Reviewer decisions can only be recorded while the issue is in_review or blocked");
966
+ }
967
+ if (actor.actorType === "agent" && !isReviewerAgentForIssue(actor, existing)) {
968
+ throw forbidden("Only the reviewer agent can record a reviewer decision");
969
+ }
970
+ const decisionStatus = statusForReviewDecision(reviewDecision);
971
+ if (decisionStatus) {
972
+ updateFields.status = decisionStatus;
973
+ }
974
+ else {
975
+ delete updateFields.status;
976
+ }
977
+ }
978
+ let reviewedCompletionNormalized = false;
979
+ if (updateFields.status === "done" &&
980
+ issueHasReviewer(existing) &&
981
+ actor.actorType === "agent" &&
982
+ !(statusAcceptsReviewerDecision(existing.status) && isReviewerAgentForIssue(actor, existing))) {
983
+ updateFields.status = "in_review";
984
+ reviewedCompletionNormalized = true;
985
+ }
906
986
  let issue;
907
987
  try {
908
988
  issue = await svc.update(id, updateFields);
@@ -915,10 +995,14 @@ export function issueRoutes(db, storage) {
915
995
  assigneePatch: {
916
996
  assigneeAgentId: req.body.assigneeAgentId === undefined ? "__omitted__" : req.body.assigneeAgentId,
917
997
  assigneeUserId: req.body.assigneeUserId === undefined ? "__omitted__" : req.body.assigneeUserId,
998
+ reviewerAgentId: req.body.reviewerAgentId === undefined ? "__omitted__" : req.body.reviewerAgentId,
999
+ reviewerUserId: req.body.reviewerUserId === undefined ? "__omitted__" : req.body.reviewerUserId,
918
1000
  },
919
1001
  currentAssignee: {
920
1002
  assigneeAgentId: existing.assigneeAgentId,
921
1003
  assigneeUserId: existing.assigneeUserId,
1004
+ reviewerAgentId: existing.reviewerAgentId,
1005
+ reviewerUserId: existing.reviewerUserId,
922
1006
  },
923
1007
  error: err.message,
924
1008
  details: err.details,
@@ -962,6 +1046,12 @@ export function issueRoutes(db, storage) {
962
1046
  identifier: issue.identifier,
963
1047
  ...(commentBody ? { source: "comment" } : {}),
964
1048
  ...(reopened ? { reopened: true, reopenedFrom: reopenFromStatus } : {}),
1049
+ ...(reviewedCompletionNormalized
1050
+ ? {
1051
+ normalizedFromStatus: "done",
1052
+ normalizedReason: "reviewed_issue_assignee_completion",
1053
+ }
1054
+ : {}),
965
1055
  _previous: hasFieldChanges ? previous : undefined,
966
1056
  },
967
1057
  });
@@ -990,10 +1080,41 @@ export function issueRoutes(db, storage) {
990
1080
  },
991
1081
  });
992
1082
  }
1083
+ if (reviewDecision !== undefined) {
1084
+ await logActivity(db, {
1085
+ orgId: issue.orgId,
1086
+ actorType: actor.actorType,
1087
+ actorId: actor.actorId,
1088
+ agentId: actor.agentId,
1089
+ runId: actor.runId,
1090
+ action: "issue.review_decision_recorded",
1091
+ entityType: "issue",
1092
+ entityId: issue.id,
1093
+ details: {
1094
+ decision: reviewDecision,
1095
+ status: issue.status,
1096
+ identifier: issue.identifier,
1097
+ commentId: comment?.id ?? null,
1098
+ },
1099
+ });
1100
+ }
993
1101
  const assigneeChanged = assigneeWillChange;
1102
+ const reviewerChanged = reviewerWillChange;
994
1103
  const statusChangedFromBacklog = existing.status === "backlog" &&
995
1104
  issue.status !== "backlog" &&
996
- req.body.status !== undefined;
1105
+ updateFields.status !== undefined;
1106
+ const statusChangedToInReview = existing.status !== "in_review" &&
1107
+ issue.status === "in_review" &&
1108
+ updateFields.status !== undefined;
1109
+ const statusChangedToBlocked = existing.status !== "blocked" &&
1110
+ issue.status === "blocked" &&
1111
+ updateFields.status !== undefined;
1112
+ const statusChangedFromReviewToInProgress = statusAcceptsReviewerDecision(existing.status) &&
1113
+ issue.status === "in_progress" &&
1114
+ updateFields.status !== undefined;
1115
+ const reviewerChangedInReviewableStatus = reviewerChanged &&
1116
+ statusAcceptsReviewerDecision(existing.status) &&
1117
+ statusAcceptsReviewerDecision(issue.status);
997
1118
  // Merge all wakeups from this update into one enqueue per agent to avoid duplicate runs.
998
1119
  void (async () => {
999
1120
  const wakeups = new Map();
@@ -1043,6 +1164,50 @@ export function issueRoutes(db, storage) {
1043
1164
  },
1044
1165
  });
1045
1166
  }
1167
+ if (!assigneeChanged && statusChangedFromReviewToInProgress && issue.assigneeAgentId) {
1168
+ wakeups.set(issue.assigneeAgentId, {
1169
+ source: "assignment",
1170
+ triggerDetail: "system",
1171
+ reason: "issue_changes_requested",
1172
+ payload: { issueId: issue.id, mutation: "review_changes_requested" },
1173
+ requestedByActorType: actor.actorType,
1174
+ requestedByActorId: actor.actorId,
1175
+ contextSnapshot: {
1176
+ issueId: issue.id,
1177
+ source: "issue.review_changes_requested",
1178
+ wakeSource: "assignment",
1179
+ wakeReason: "issue_changes_requested",
1180
+ issue: {
1181
+ id: issue.id,
1182
+ title: issue.title,
1183
+ description: issue.description,
1184
+ status: issue.status,
1185
+ priority: issue.priority,
1186
+ },
1187
+ },
1188
+ });
1189
+ }
1190
+ if ((statusChangedToInReview || statusChangedToBlocked || reviewerChangedInReviewableStatus) && issue.reviewerAgentId) {
1191
+ const mutation = statusChangedToInReview
1192
+ ? "status_to_in_review"
1193
+ : statusChangedToBlocked
1194
+ ? "status_to_blocked"
1195
+ : issue.status === "blocked"
1196
+ ? "reviewer_changed_blocked"
1197
+ : "reviewer_changed_in_review";
1198
+ const actorIsReviewerAgent = actor.actorType === "agent" && actor.actorId === issue.reviewerAgentId;
1199
+ const actorIsAssigneeAgent = actor.actorType === "agent" && actor.actorId === issue.assigneeAgentId;
1200
+ const assigneeHandoffToReview = (statusChangedToInReview || statusChangedToBlocked) && actorIsAssigneeAgent;
1201
+ if (!actorIsReviewerAgent || assigneeHandoffToReview) {
1202
+ wakeups.set(issue.reviewerAgentId, buildIssueReviewWakeupOptions({
1203
+ issue,
1204
+ mutation,
1205
+ contextSource: statusChangedToInReview || statusChangedToBlocked ? "issue.status_change" : "issue.reviewer_change",
1206
+ requestedByActorType: actor.actorType,
1207
+ requestedByActorId: actor.actorId,
1208
+ }));
1209
+ }
1210
+ }
1046
1211
  if (commentBody && comment) {
1047
1212
  let mentionedIds = [];
1048
1213
  try {
@@ -1596,6 +1761,73 @@ export function issueRoutes(db, storage) {
1596
1761
  }
1597
1762
  res.status(201).json(withContentPath(attachment));
1598
1763
  });
1764
+ router.post("/orgs/:orgId/issues/:issueId/attachments/workspace-file", validate(createIssueWorkspaceAttachmentSchema), async (req, res) => {
1765
+ const orgId = req.params.orgId;
1766
+ const issueId = req.params.issueId;
1767
+ assertCompanyAccess(req, orgId);
1768
+ const issue = await svc.getById(issueId);
1769
+ if (!issue) {
1770
+ res.status(404).json({ error: "Issue not found" });
1771
+ return;
1772
+ }
1773
+ if (issue.orgId !== orgId) {
1774
+ res.status(422).json({ error: "Issue does not belong to organization" });
1775
+ return;
1776
+ }
1777
+ const workspaceFile = await workspaceBrowser.readAttachmentFile(orgId, req.body.path);
1778
+ if (workspaceFile.buffer.length <= 0) {
1779
+ res.status(422).json({ error: "Attachment is empty" });
1780
+ return;
1781
+ }
1782
+ if (workspaceFile.buffer.length > MAX_ATTACHMENT_BYTES) {
1783
+ res.status(422).json({ error: `Attachment exceeds ${MAX_ATTACHMENT_BYTES} bytes` });
1784
+ return;
1785
+ }
1786
+ if (!isAllowedContentType(workspaceFile.contentType)) {
1787
+ res.status(422).json({ error: `Unsupported attachment type: ${workspaceFile.contentType || "unknown"}` });
1788
+ return;
1789
+ }
1790
+ const actor = getActorInfo(req);
1791
+ const stored = await storage.putFile({
1792
+ orgId,
1793
+ namespace: `issues/${issueId}`,
1794
+ originalFilename: workspaceFile.originalFilename,
1795
+ contentType: workspaceFile.contentType,
1796
+ body: workspaceFile.buffer,
1797
+ });
1798
+ const attachment = await svc.createAttachment({
1799
+ issueId,
1800
+ issueCommentId: null,
1801
+ usage: "issue",
1802
+ provider: stored.provider,
1803
+ objectKey: stored.objectKey,
1804
+ contentType: stored.contentType,
1805
+ byteSize: stored.byteSize,
1806
+ sha256: stored.sha256,
1807
+ originalFilename: stored.originalFilename,
1808
+ createdByAgentId: actor.agentId,
1809
+ createdByUserId: actor.actorType === "user" ? actor.actorId : null,
1810
+ });
1811
+ await logActivity(db, {
1812
+ orgId,
1813
+ actorType: actor.actorType,
1814
+ actorId: actor.actorId,
1815
+ agentId: actor.agentId,
1816
+ runId: actor.runId,
1817
+ action: "issue.attachment_added",
1818
+ entityType: "issue",
1819
+ entityId: issueId,
1820
+ details: {
1821
+ attachmentId: attachment.id,
1822
+ usage: attachment.usage,
1823
+ originalFilename: attachment.originalFilename,
1824
+ contentType: attachment.contentType,
1825
+ byteSize: attachment.byteSize,
1826
+ workspacePath: workspaceFile.normalizedPath,
1827
+ },
1828
+ });
1829
+ res.status(201).json(withContentPath(attachment));
1830
+ });
1599
1831
  router.get("/attachments/:attachmentId/content", async (req, res, next) => {
1600
1832
  const attachmentId = req.params.attachmentId;
1601
1833
  const attachment = await svc.getAttachmentById(attachmentId);