@rudderhq/server 0.2.0-canary.3 → 0.2.0-canary.4

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 (110) hide show
  1. package/dist/bundled-plugins/plugin-linear/dist/worker.js +11 -2
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  3. package/dist/routes/issues.d.ts.map +1 -1
  4. package/dist/routes/issues.js +168 -2
  5. package/dist/routes/issues.js.map +1 -1
  6. package/dist/services/chats.d.ts +4 -0
  7. package/dist/services/chats.d.ts.map +1 -1
  8. package/dist/services/issue-assignment-wakeup.d.ts +1 -1
  9. package/dist/services/issue-assignment-wakeup.d.ts.map +1 -1
  10. package/dist/services/issue-review-wakeup.d.ts +123 -0
  11. package/dist/services/issue-review-wakeup.d.ts.map +1 -0
  12. package/dist/services/issue-review-wakeup.js +78 -0
  13. package/dist/services/issue-review-wakeup.js.map +1 -0
  14. package/dist/services/issues.d.ts +9 -0
  15. package/dist/services/issues.d.ts.map +1 -1
  16. package/dist/services/issues.js +63 -15
  17. package/dist/services/issues.js.map +1 -1
  18. package/dist/services/messenger.d.ts.map +1 -1
  19. package/dist/services/messenger.js +19 -8
  20. package/dist/services/messenger.js.map +1 -1
  21. package/dist/services/organization-workspace-browser.d.ts +6 -0
  22. package/dist/services/organization-workspace-browser.d.ts.map +1 -1
  23. package/dist/services/organization-workspace-browser.js +39 -0
  24. package/dist/services/organization-workspace-browser.js.map +1 -1
  25. package/dist/services/runtime-kernel/heartbeat.d.ts +2 -2
  26. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
  27. package/dist/services/runtime-kernel/heartbeat.js +91 -4
  28. package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
  29. package/package.json +13 -13
  30. package/resources/bundled-skills/rudder/references/api-reference.md +1 -1
  31. package/skills/rudder/references/api-reference.md +1 -1
  32. package/ui-dist/assets/{_basePickBy-CFZOyXCT.js → _basePickBy-C-ky_J4L.js} +1 -1
  33. package/ui-dist/assets/{_baseUniq-C5q4qD4m.js → _baseUniq-C5nwVrsQ.js} +1 -1
  34. package/ui-dist/assets/{arc-BKTahGxa.js → arc-CRR4Onur.js} +1 -1
  35. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-BewzSd6s.js → architectureDiagram-2XIMDMQ5-B-mwRwmn.js} +1 -1
  36. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-Bu1wh8T7.js → blockDiagram-WCTKOSBZ-CvVE8crE.js} +1 -1
  37. package/ui-dist/assets/{c4Diagram-IC4MRINW-DVc00XHu.js → c4Diagram-IC4MRINW-C1Kv0mQx.js} +1 -1
  38. package/ui-dist/assets/channel-BKwbT6g8.js +1 -0
  39. package/ui-dist/assets/{chunk-4BX2VUAB-BCgZl8yN.js → chunk-4BX2VUAB-CTYA9-w3.js} +1 -1
  40. package/ui-dist/assets/{chunk-55IACEB6-CrbtACUh.js → chunk-55IACEB6-D0EEk019.js} +1 -1
  41. package/ui-dist/assets/{chunk-FMBD7UC4-BnPZKUHv.js → chunk-FMBD7UC4-OqgsOW_L.js} +1 -1
  42. package/ui-dist/assets/{chunk-JSJVCQXG-DszP1pTL.js → chunk-JSJVCQXG-BKwMDwLg.js} +1 -1
  43. package/ui-dist/assets/{chunk-KX2RTZJC-I7HPfxIw.js → chunk-KX2RTZJC-DoI3K5po.js} +1 -1
  44. package/ui-dist/assets/{chunk-NQ4KR5QH-GqXrTU56.js → chunk-NQ4KR5QH-CSfVctB_.js} +1 -1
  45. package/ui-dist/assets/{chunk-QZHKN3VN-Drr6GkMY.js → chunk-QZHKN3VN-kefnNNbl.js} +1 -1
  46. package/ui-dist/assets/{chunk-WL4C6EOR-COLWMQTF.js → chunk-WL4C6EOR-CwrljpZg.js} +1 -1
  47. package/ui-dist/assets/classDiagram-VBA2DB6C-C8-gn2vR.js +1 -0
  48. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-C8-gn2vR.js +1 -0
  49. package/ui-dist/assets/clone-o0miC5dm.js +1 -0
  50. package/ui-dist/assets/{cose-bilkent-S5V4N54A-D5JuMH77.js → cose-bilkent-S5V4N54A-DQX60oJj.js} +1 -1
  51. package/ui-dist/assets/{dagre-KLK3FWXG-DO32RuxI.js → dagre-KLK3FWXG-Dab9ggeZ.js} +1 -1
  52. package/ui-dist/assets/{diagram-E7M64L7V-DCQzQAAz.js → diagram-E7M64L7V-ZndLALIp.js} +1 -1
  53. package/ui-dist/assets/{diagram-IFDJBPK2-CqRA-lcg.js → diagram-IFDJBPK2-DO9XgBf0.js} +1 -1
  54. package/ui-dist/assets/{diagram-P4PSJMXO-CieXzSO8.js → diagram-P4PSJMXO-CwmOKCLz.js} +1 -1
  55. package/ui-dist/assets/{erDiagram-INFDFZHY-B59AfG_F.js → erDiagram-INFDFZHY-D6DqJpyH.js} +1 -1
  56. package/ui-dist/assets/{flowDiagram-PKNHOUZH-KbQ88HlP.js → flowDiagram-PKNHOUZH-D-TaJYOT.js} +1 -1
  57. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-9vBN2uOK.js → ganttDiagram-A5KZAMGK-Bn4rO6uJ.js} +1 -1
  58. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-CuXO8B9p.js → gitGraphDiagram-K3NZZRJ6-CBlOMgV2.js} +1 -1
  59. package/ui-dist/assets/{graph-Dy9-SEgz.js → graph-DgdATB1c.js} +1 -1
  60. package/ui-dist/assets/{index-BjCRH-eH.js → index-BCfmXV_B.js} +1 -1
  61. package/ui-dist/assets/{index-DVtxBTWP.js → index-BRgFm9Hj.js} +1 -1
  62. package/ui-dist/assets/{index-B5gbjwhv.js → index-B_pGHVUJ.js} +1 -1
  63. package/ui-dist/assets/{index-ClC0GLBs.js → index-BbKYPLLQ.js} +1 -1
  64. package/ui-dist/assets/{index-Dw5gn1ZD.js → index-CK0IPyed.js} +1 -1
  65. package/ui-dist/assets/{index-B19sDyax.js → index-CNAlhcV1.js} +1 -1
  66. package/ui-dist/assets/{index-DVmpn9la.js → index-CPdLhf2f.js} +1 -1
  67. package/ui-dist/assets/{index-DRivhsOj.js → index-Ca6bsSPp.js} +1 -1
  68. package/ui-dist/assets/{index-CAtpZ02K.js → index-Cd7o217D.js} +1 -1
  69. package/ui-dist/assets/index-Cl13P1oZ.css +1 -0
  70. package/ui-dist/assets/{index-KcMXcjUi.js → index-CpjokFls.js} +1 -1
  71. package/ui-dist/assets/{index-BfHOQBlR.js → index-Cs-SX7m3.js} +1 -1
  72. package/ui-dist/assets/{index-CaRRfVtg.js → index-CsV2CF4n.js} +1 -1
  73. package/ui-dist/assets/{index-DBhmm6Ux.js → index-D6FsT6gM.js} +1 -1
  74. package/ui-dist/assets/{index-BRnz4b42.js → index-DGU_y9Ux.js} +1 -1
  75. package/ui-dist/assets/{index-D0fyoAtD.js → index-DPWqnH8A.js} +1 -1
  76. package/ui-dist/assets/{index-DgPRikz-.js → index-DaFKmZlO.js} +1 -1
  77. package/ui-dist/assets/{index-BPorP7X9.js → index-Dl6Ti15D.js} +1 -1
  78. package/ui-dist/assets/{index-Cll-ljur.js → index-DmulJ1if.js} +1 -1
  79. package/ui-dist/assets/{index-Bj4gL_Ku.js → index-DwcztsK8.js} +1 -1
  80. package/ui-dist/assets/{index-VYA0B2MC.js → index-O_dlTUq3.js} +1 -1
  81. package/ui-dist/assets/index-pFS2rwAM.js +1426 -0
  82. package/ui-dist/assets/{index-DyhBgi_E.js → index-qfdofnPq.js} +1 -1
  83. package/ui-dist/assets/{index-D7eTC6Rm.js → index-t2GuxApV.js} +1 -1
  84. package/ui-dist/assets/{infoDiagram-LFFYTUFH-C-BoaRDa.js → infoDiagram-LFFYTUFH-f3DK-3rb.js} +1 -1
  85. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-DwKkWw6e.js → ishikawaDiagram-PHBUUO56-Dkm-Bmuf.js} +1 -1
  86. package/ui-dist/assets/{journeyDiagram-4ABVD52K-BEUrYquo.js → journeyDiagram-4ABVD52K-VsOj185H.js} +1 -1
  87. package/ui-dist/assets/{kanban-definition-K7BYSVSG-Duqv7f9t.js → kanban-definition-K7BYSVSG-Ccu49D0X.js} +1 -1
  88. package/ui-dist/assets/{layout-BN3q9DcZ.js → layout-ChTd1t45.js} +1 -1
  89. package/ui-dist/assets/{linear-BU46d6yh.js → linear-CWhzE2M3.js} +1 -1
  90. package/ui-dist/assets/{mermaid.core-CzqsJkf3.js → mermaid.core-DaDOJk1O.js} +4 -4
  91. package/ui-dist/assets/{mindmap-definition-YRQLILUH-ZVlk5hiz.js → mindmap-definition-YRQLILUH-DRbGNWhj.js} +1 -1
  92. package/ui-dist/assets/{pieDiagram-SKSYHLDU-B02JlcEr.js → pieDiagram-SKSYHLDU-C-TKuBIh.js} +1 -1
  93. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-BgIjil8P.js → quadrantDiagram-337W2JSQ-DffZrSkM.js} +1 -1
  94. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-C6CUkb4j.js → requirementDiagram-Z7DCOOCP-CvL7S_OP.js} +1 -1
  95. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-Bqs57aUM.js → sankeyDiagram-WA2Y5GQK-Cd9Yz5JE.js} +1 -1
  96. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-DxZJP9eQ.js → sequenceDiagram-2WXFIKYE-Ba3-4lD-.js} +1 -1
  97. package/ui-dist/assets/{stateDiagram-RAJIS63D-CU7G_fnq.js → stateDiagram-RAJIS63D-1NCbUSKq.js} +1 -1
  98. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-8PtUkWTn.js +1 -0
  99. package/ui-dist/assets/{timeline-definition-YZTLITO2-BTkUUO_C.js → timeline-definition-YZTLITO2-CP4uwNhG.js} +1 -1
  100. package/ui-dist/assets/{treemap-KZPCXAKY-Dq0puZhT.js → treemap-KZPCXAKY-C2DO4ZSV.js} +1 -1
  101. package/ui-dist/assets/{vennDiagram-LZ73GAT5-C7blX4kT.js → vennDiagram-LZ73GAT5-Dug1HpTh.js} +1 -1
  102. package/ui-dist/assets/{xychartDiagram-JWTSCODW-BYacMM28.js → xychartDiagram-JWTSCODW-DYFBXPV3.js} +1 -1
  103. package/ui-dist/index.html +2 -2
  104. package/ui-dist/assets/channel-Cr7RjH4I.js +0 -1
  105. package/ui-dist/assets/classDiagram-VBA2DB6C-C1RNEjY0.js +0 -1
  106. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-C1RNEjY0.js +0 -1
  107. package/ui-dist/assets/clone-CY1EWn6n.js +0 -1
  108. package/ui-dist/assets/index-D1-BwmkX.js +0 -1424
  109. package/ui-dist/assets/index-DO_7LT0g.css +0 -1
  110. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DgOHls0M.js +0 -1
@@ -507,6 +507,7 @@ export declare function chatService(db: Db): {
507
507
  priority: string;
508
508
  assigneeAgentId: string | null;
509
509
  assigneeUserId: string | null;
510
+ reviewerUserId: string | null;
510
511
  createdByUserId: string | null;
511
512
  updatedAt: Date;
512
513
  orgId: string;
@@ -516,6 +517,7 @@ export declare function chatService(db: Db): {
516
517
  parentId: string | null;
517
518
  description: string | null;
518
519
  boardOrder: number;
520
+ reviewerAgentId: string | null;
519
521
  checkoutRunId: string | null;
520
522
  executionRunId: string | null;
521
523
  executionAgentNameKey: string | null;
@@ -639,6 +641,7 @@ export declare function chatService(db: Db): {
639
641
  priority: string;
640
642
  assigneeAgentId: string | null;
641
643
  assigneeUserId: string | null;
644
+ reviewerUserId: string | null;
642
645
  createdByUserId: string | null;
643
646
  updatedAt: Date;
644
647
  orgId: string;
@@ -648,6 +651,7 @@ export declare function chatService(db: Db): {
648
651
  parentId: string | null;
649
652
  description: string | null;
650
653
  boardOrder: number;
654
+ reviewerAgentId: string | null;
651
655
  checkoutRunId: string | null;
652
656
  executionRunId: string | null;
653
657
  executionAgentNameKey: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/services/chats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/services/chats.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  type WakeupTriggerDetail = "manual" | "ping" | "callback" | "system";
2
- type WakeupSource = "timer" | "assignment" | "on_demand" | "automation";
2
+ type WakeupSource = "timer" | "assignment" | "review" | "on_demand" | "automation";
3
3
  export interface IssueAssignmentWakeupDeps {
4
4
  wakeup: (agentId: string, opts: {
5
5
  source?: WakeupSource;
@@ -1 +1 @@
1
- {"version":3,"file":"issue-assignment-wakeup.d.ts","sourceRoot":"","sources":["../../src/services/issue-assignment-wakeup.ts"],"names":[],"mappings":"AAGA,KAAK,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AACrE,KAAK,YAAY,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,CACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,aAAa,CAAC,EAAE,mBAAmB,CAAC;QACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QACzC,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;QACnD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,KACE,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAgCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,SAAS,EAAE,yBAAyB,CAAC;IACrC,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,gCAyBA"}
1
+ {"version":3,"file":"issue-assignment-wakeup.d.ts","sourceRoot":"","sources":["../../src/services/issue-assignment-wakeup.ts"],"names":[],"mappings":"AAGA,KAAK,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AACrE,KAAK,YAAY,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnF,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,CACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,aAAa,CAAC,EAAE,mBAAmB,CAAC;QACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QACzC,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;QACnD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,KACE,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAgCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,SAAS,EAAE,yBAAyB,CAAC;IACrC,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,gCAyBA"}
@@ -0,0 +1,123 @@
1
+ type WakeupTriggerDetail = "manual" | "ping" | "callback" | "system";
2
+ type WakeupSource = "timer" | "assignment" | "review" | "on_demand" | "automation";
3
+ export interface IssueReviewWakeupDeps {
4
+ wakeup: (agentId: string, opts: {
5
+ source?: WakeupSource;
6
+ triggerDetail?: WakeupTriggerDetail;
7
+ reason?: string | null;
8
+ payload?: Record<string, unknown> | null;
9
+ requestedByActorType?: "user" | "agent" | "system";
10
+ requestedByActorId?: string | null;
11
+ contextSnapshot?: Record<string, unknown>;
12
+ }) => Promise<unknown>;
13
+ }
14
+ export type IssueReviewWakeupMutation = "status_to_in_review" | "reviewer_changed_in_review" | "create_in_review";
15
+ export type IssueConvergenceReviewWakeupMutation = "convergence_escalation";
16
+ type IssueReviewWakeupIssue = {
17
+ id: string;
18
+ identifier?: string | null;
19
+ title: string;
20
+ description?: string | null;
21
+ status: string;
22
+ priority?: string | null;
23
+ };
24
+ export declare function buildIssueReviewWakeupOptions(input: {
25
+ issue: IssueReviewWakeupIssue;
26
+ mutation: IssueReviewWakeupMutation;
27
+ contextSource: string;
28
+ requestedByActorType?: "user" | "agent" | "system";
29
+ requestedByActorId?: string | null;
30
+ }): {
31
+ source: "review";
32
+ triggerDetail: "system";
33
+ reason: string;
34
+ payload: {
35
+ issueId: string;
36
+ mutation: IssueReviewWakeupMutation;
37
+ };
38
+ requestedByActorType: "system" | "user" | "agent" | undefined;
39
+ requestedByActorId: string | null;
40
+ contextSnapshot: {
41
+ issueId: string;
42
+ source: string;
43
+ wakeSource: string;
44
+ wakeReason: string;
45
+ role: string;
46
+ issue: {
47
+ id: string;
48
+ identifier: string | null;
49
+ title: string;
50
+ description: string | null | undefined;
51
+ status: string;
52
+ priority: string | null | undefined;
53
+ };
54
+ reviewInstructions: string;
55
+ };
56
+ };
57
+ export declare function buildIssueConvergenceReviewWakeupOptions(input: {
58
+ issue: IssueReviewWakeupIssue;
59
+ mutation?: IssueConvergenceReviewWakeupMutation;
60
+ contextSource: string;
61
+ originRunId: string;
62
+ previousRunId: string;
63
+ attempts: number;
64
+ maxAttempts: number;
65
+ requestedByActorType?: "user" | "agent" | "system";
66
+ requestedByActorId?: string | null;
67
+ }): {
68
+ source: "review";
69
+ triggerDetail: "system";
70
+ reason: string;
71
+ payload: {
72
+ issueId: string;
73
+ mutation: "convergence_escalation";
74
+ originRunId: string;
75
+ previousRunId: string;
76
+ attempts: number;
77
+ maxAttempts: number;
78
+ };
79
+ requestedByActorType: "system" | "user" | "agent" | undefined;
80
+ requestedByActorId: string | null;
81
+ contextSnapshot: {
82
+ issueId: string;
83
+ source: string;
84
+ wakeSource: string;
85
+ wakeReason: string;
86
+ role: string;
87
+ issue: {
88
+ id: string;
89
+ identifier: string | null;
90
+ title: string;
91
+ description: string | null | undefined;
92
+ status: string;
93
+ priority: string | null | undefined;
94
+ };
95
+ convergenceReview: {
96
+ originRunId: string;
97
+ previousRunId: string;
98
+ attempts: number;
99
+ maxAttempts: number;
100
+ };
101
+ reviewInstructions: string;
102
+ };
103
+ };
104
+ export declare function queueIssueReviewWakeup(input: {
105
+ heartbeat: IssueReviewWakeupDeps;
106
+ issue: {
107
+ id: string;
108
+ identifier?: string | null;
109
+ reviewerAgentId: string | null;
110
+ status: string;
111
+ title: string;
112
+ description?: string | null;
113
+ priority?: string | null;
114
+ };
115
+ mutation: IssueReviewWakeupMutation;
116
+ contextSource: string;
117
+ requestedByActorType?: "user" | "agent" | "system";
118
+ requestedByActorId?: string | null;
119
+ actorAgentId?: string | null;
120
+ rethrowOnError?: boolean;
121
+ }): Promise<unknown> | undefined;
122
+ export {};
123
+ //# sourceMappingURL=issue-review-wakeup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-review-wakeup.d.ts","sourceRoot":"","sources":["../../src/services/issue-review-wakeup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { logger } from "../middleware/logger.js";
2
+ function buildIssueSnapshot(issue) {
3
+ return {
4
+ id: issue.id,
5
+ identifier: issue.identifier ?? null,
6
+ title: issue.title,
7
+ description: issue.description,
8
+ status: issue.status,
9
+ priority: issue.priority,
10
+ };
11
+ }
12
+ export function buildIssueReviewWakeupOptions(input) {
13
+ return {
14
+ source: "review",
15
+ triggerDetail: "system",
16
+ reason: "issue_review_requested",
17
+ payload: { issueId: input.issue.id, mutation: input.mutation },
18
+ requestedByActorType: input.requestedByActorType,
19
+ requestedByActorId: input.requestedByActorId ?? null,
20
+ contextSnapshot: {
21
+ issueId: input.issue.id,
22
+ source: input.contextSource,
23
+ wakeSource: "review",
24
+ wakeReason: "issue_review_requested",
25
+ role: "reviewer",
26
+ issue: buildIssueSnapshot(input.issue),
27
+ reviewInstructions: "You are the reviewer for this issue. Review the result and leave feedback, request changes, or mark the issue done. Do not take over implementation unless explicitly asked.",
28
+ },
29
+ };
30
+ }
31
+ export function buildIssueConvergenceReviewWakeupOptions(input) {
32
+ const mutation = input.mutation ?? "convergence_escalation";
33
+ return {
34
+ source: "review",
35
+ triggerDetail: "system",
36
+ reason: "issue_convergence_review_requested",
37
+ payload: {
38
+ issueId: input.issue.id,
39
+ mutation,
40
+ originRunId: input.originRunId,
41
+ previousRunId: input.previousRunId,
42
+ attempts: input.attempts,
43
+ maxAttempts: input.maxAttempts,
44
+ },
45
+ requestedByActorType: input.requestedByActorType,
46
+ requestedByActorId: input.requestedByActorId ?? null,
47
+ contextSnapshot: {
48
+ issueId: input.issue.id,
49
+ source: input.contextSource,
50
+ wakeSource: "review",
51
+ wakeReason: "issue_convergence_review_requested",
52
+ role: "reviewer",
53
+ issue: buildIssueSnapshot(input.issue),
54
+ convergenceReview: {
55
+ originRunId: input.originRunId,
56
+ previousRunId: input.previousRunId,
57
+ attempts: input.attempts,
58
+ maxAttempts: input.maxAttempts,
59
+ },
60
+ reviewInstructions: "The assignee did not converge this issue after passive follow-up. Review the thread and decide the next step: request changes, mark blocked, escalate or reassign, or mark done only if the evidence is sufficient.",
61
+ },
62
+ };
63
+ }
64
+ export function queueIssueReviewWakeup(input) {
65
+ if (!input.issue.reviewerAgentId || input.issue.status !== "in_review")
66
+ return;
67
+ if (input.actorAgentId && input.issue.reviewerAgentId === input.actorAgentId)
68
+ return;
69
+ return input.heartbeat
70
+ .wakeup(input.issue.reviewerAgentId, buildIssueReviewWakeupOptions(input))
71
+ .catch((err) => {
72
+ logger.warn({ err, issueId: input.issue.id }, "failed to wake reviewer on issue review request");
73
+ if (input.rethrowOnError)
74
+ throw err;
75
+ return null;
76
+ });
77
+ }
78
+ //# sourceMappingURL=issue-review-wakeup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-review-wakeup.js","sourceRoot":"","sources":["../../src/services/issue-review-wakeup.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export interface IssueFilters {
6
6
  assigneeAgentId?: string;
7
7
  participantAgentId?: string;
8
8
  assigneeUserId?: string;
9
+ reviewerAgentId?: string;
10
+ reviewerUserId?: string;
9
11
  touchedByUserId?: string;
10
12
  unreadForUserId?: string;
11
13
  projectId?: string;
@@ -38,6 +40,7 @@ type IssueWithLabelsAndRun = IssueWithLabels & {
38
40
  type IssueUserContextInput = {
39
41
  createdByUserId: string | null;
40
42
  assigneeUserId: string | null;
43
+ reviewerUserId: string | null;
41
44
  createdAt: Date | string;
42
45
  updatedAt: Date | string;
43
46
  };
@@ -65,6 +68,7 @@ export declare function issueService(db: Db): {
65
68
  priority: string;
66
69
  assigneeAgentId: string | null;
67
70
  assigneeUserId: string | null;
71
+ reviewerUserId: string | null;
68
72
  createdByUserId: string | null;
69
73
  updatedAt: Date;
70
74
  };
@@ -123,6 +127,8 @@ export declare function issueService(db: Db): {
123
127
  boardOrder: number;
124
128
  assigneeAgentId: string | null;
125
129
  assigneeUserId: string | null;
130
+ reviewerAgentId: string | null;
131
+ reviewerUserId: string | null;
126
132
  checkoutRunId: string | null;
127
133
  executionRunId: string | null;
128
134
  executionAgentNameKey: string | null;
@@ -584,6 +590,9 @@ export declare function issueService(db: Db): {
584
590
  status: string;
585
591
  priority: string;
586
592
  assigneeAgentId: string | null;
593
+ assigneeUserId: string | null;
594
+ reviewerAgentId: string | null;
595
+ reviewerUserId: string | null;
587
596
  projectId: string | null;
588
597
  goalId: string | null;
589
598
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/services/issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/services/issues.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ function touchedByUserCondition(orgId, userId) {
53
53
  (
54
54
  ${issues.createdByUserId} = ${userId}
55
55
  OR ${issues.assigneeUserId} = ${userId}
56
+ OR ${issues.reviewerUserId} = ${userId}
56
57
  OR EXISTS (
57
58
  SELECT 1
58
59
  FROM ${issueReadStates}
@@ -75,6 +76,7 @@ function participatedByAgentCondition(orgId, agentId) {
75
76
  (
76
77
  ${issues.createdByAgentId} = ${agentId}
77
78
  OR ${issues.assigneeAgentId} = ${agentId}
79
+ OR ${issues.reviewerAgentId} = ${agentId}
78
80
  OR EXISTS (
79
81
  SELECT 1
80
82
  FROM ${issueComments}
@@ -123,7 +125,8 @@ function myLastTouchAtExpr(orgId, userId) {
123
125
  COALESCE(${myLastCommentAt}, to_timestamp(0)),
124
126
  COALESCE(${myLastReadAt}, to_timestamp(0)),
125
127
  COALESCE(CASE WHEN ${issues.createdByUserId} = ${userId} THEN ${issues.createdAt} ELSE NULL END, to_timestamp(0)),
126
- COALESCE(CASE WHEN ${issues.assigneeUserId} = ${userId} THEN ${issues.updatedAt} ELSE NULL END, to_timestamp(0))
128
+ COALESCE(CASE WHEN ${issues.assigneeUserId} = ${userId} THEN ${issues.updatedAt} ELSE NULL END, to_timestamp(0)),
129
+ COALESCE(CASE WHEN ${issues.reviewerUserId} = ${userId} THEN ${issues.updatedAt} ELSE NULL END, to_timestamp(0))
127
130
  )
128
131
  `;
129
132
  }
@@ -160,7 +163,8 @@ export function deriveIssueUserContext(issue, userId, stats) {
160
163
  const myLastReadAt = normalizeDate(stats?.myLastReadAt);
161
164
  const createdTouchAt = issue.createdByUserId === userId ? normalizeDate(issue.createdAt) : null;
162
165
  const assignedTouchAt = issue.assigneeUserId === userId ? normalizeDate(issue.updatedAt) : null;
163
- const myLastTouchAt = [myLastCommentAt, myLastReadAt, createdTouchAt, assignedTouchAt]
166
+ const reviewerTouchAt = issue.reviewerUserId === userId ? normalizeDate(issue.updatedAt) : null;
167
+ const myLastTouchAt = [myLastCommentAt, myLastReadAt, createdTouchAt, assignedTouchAt, reviewerTouchAt]
164
168
  .filter((value) => value instanceof Date)
165
169
  .sort((a, b) => b.getTime() - a.getTime())[0] ?? null;
166
170
  const lastExternalCommentAt = normalizeDate(stats?.lastExternalCommentAt);
@@ -248,8 +252,8 @@ export function issueService(db) {
248
252
  body: redactCurrentUserText(comment.body, { enabled: censorUsernameInLogs }),
249
253
  };
250
254
  }
251
- async function assertAssignableAgent(orgId, agentId) {
252
- const assignee = await db
255
+ async function assertIssueAgentPrincipal(orgId, agentId, label) {
256
+ const principal = await db
253
257
  .select({
254
258
  id: agents.id,
255
259
  orgId: agents.orgId,
@@ -258,28 +262,40 @@ export function issueService(db) {
258
262
  .from(agents)
259
263
  .where(eq(agents.id, agentId))
260
264
  .then((rows) => rows[0] ?? null);
261
- if (!assignee)
262
- throw notFound("Assignee agent not found");
263
- if (assignee.orgId !== orgId) {
264
- throw unprocessable("Assignee must belong to same organization");
265
+ if (!principal)
266
+ throw notFound(`${label} agent not found`);
267
+ if (principal.orgId !== orgId) {
268
+ throw unprocessable(`${label} must belong to same organization`);
265
269
  }
266
- if (assignee.status === "pending_approval") {
267
- throw conflict("Cannot assign work to pending approval agents");
270
+ if (principal.status === "pending_approval") {
271
+ throw conflict(`Cannot ${label === "Assignee" ? "assign work to" : "select"} pending approval agents`);
268
272
  }
269
- if (assignee.status === "terminated") {
270
- throw conflict("Cannot assign work to terminated agents");
273
+ if (principal.status === "terminated") {
274
+ throw conflict(`Cannot ${label === "Assignee" ? "assign work to" : "select"} terminated agents`);
271
275
  }
272
276
  }
273
- async function assertAssignableUser(orgId, userId) {
277
+ async function assertIssueUserPrincipal(orgId, userId, label) {
274
278
  const membership = await db
275
279
  .select({ id: organizationMemberships.id })
276
280
  .from(organizationMemberships)
277
281
  .where(and(eq(organizationMemberships.orgId, orgId), eq(organizationMemberships.principalType, "user"), eq(organizationMemberships.principalId, userId), eq(organizationMemberships.status, "active")))
278
282
  .then((rows) => rows[0] ?? null);
279
283
  if (!membership) {
280
- throw notFound("Assignee user not found");
284
+ throw notFound(`${label} user not found`);
281
285
  }
282
286
  }
287
+ async function assertAssignableAgent(orgId, agentId) {
288
+ await assertIssueAgentPrincipal(orgId, agentId, "Assignee");
289
+ }
290
+ async function assertAssignableUser(orgId, userId) {
291
+ await assertIssueUserPrincipal(orgId, userId, "Assignee");
292
+ }
293
+ async function assertReviewerAgent(orgId, agentId) {
294
+ await assertIssueAgentPrincipal(orgId, agentId, "Reviewer");
295
+ }
296
+ async function assertReviewerUser(orgId, userId) {
297
+ await assertIssueUserPrincipal(orgId, userId, "Reviewer");
298
+ }
283
299
  async function assertValidProjectWorkspace(orgId, projectId, projectWorkspaceId) {
284
300
  const workspace = await db
285
301
  .select({
@@ -390,6 +406,7 @@ export function issueService(db) {
390
406
  priority: issues.priority,
391
407
  assigneeAgentId: issues.assigneeAgentId,
392
408
  assigneeUserId: issues.assigneeUserId,
409
+ reviewerUserId: issues.reviewerUserId,
393
410
  createdByUserId: issues.createdByUserId,
394
411
  updatedAt: issues.updatedAt,
395
412
  },
@@ -476,6 +493,12 @@ export function issueService(db) {
476
493
  if (filters?.assigneeUserId) {
477
494
  conditions.push(eq(issues.assigneeUserId, filters.assigneeUserId));
478
495
  }
496
+ if (filters?.reviewerAgentId) {
497
+ conditions.push(eq(issues.reviewerAgentId, filters.reviewerAgentId));
498
+ }
499
+ if (filters?.reviewerUserId) {
500
+ conditions.push(eq(issues.reviewerUserId, filters.reviewerUserId));
501
+ }
479
502
  if (touchedByUserId) {
480
503
  conditions.push(touchedByUserCondition(orgId, touchedByUserId));
481
504
  }
@@ -642,6 +665,15 @@ export function issueService(db) {
642
665
  if (data.assigneeUserId) {
643
666
  await assertAssignableUser(orgId, data.assigneeUserId);
644
667
  }
668
+ if (data.reviewerAgentId && data.reviewerUserId) {
669
+ throw unprocessable("Issue can only have one reviewer");
670
+ }
671
+ if (data.reviewerAgentId) {
672
+ await assertReviewerAgent(orgId, data.reviewerAgentId);
673
+ }
674
+ if (data.reviewerUserId) {
675
+ await assertReviewerUser(orgId, data.reviewerUserId);
676
+ }
645
677
  if (data.projectWorkspaceId) {
646
678
  await assertValidProjectWorkspace(orgId, data.projectId, data.projectWorkspaceId);
647
679
  }
@@ -748,9 +780,14 @@ export function issueService(db) {
748
780
  };
749
781
  const nextAssigneeAgentId = issueData.assigneeAgentId !== undefined ? issueData.assigneeAgentId : existing.assigneeAgentId;
750
782
  const nextAssigneeUserId = issueData.assigneeUserId !== undefined ? issueData.assigneeUserId : existing.assigneeUserId;
783
+ const nextReviewerAgentId = issueData.reviewerAgentId !== undefined ? issueData.reviewerAgentId : existing.reviewerAgentId;
784
+ const nextReviewerUserId = issueData.reviewerUserId !== undefined ? issueData.reviewerUserId : existing.reviewerUserId;
751
785
  if (nextAssigneeAgentId && nextAssigneeUserId) {
752
786
  throw unprocessable("Issue can only have one assignee");
753
787
  }
788
+ if (nextReviewerAgentId && nextReviewerUserId) {
789
+ throw unprocessable("Issue can only have one reviewer");
790
+ }
754
791
  if (patch.status === "in_progress" && !nextAssigneeAgentId && !nextAssigneeUserId) {
755
792
  throw unprocessable("in_progress issues require an assignee");
756
793
  }
@@ -760,6 +797,12 @@ export function issueService(db) {
760
797
  if (issueData.assigneeUserId) {
761
798
  await assertAssignableUser(existing.orgId, issueData.assigneeUserId);
762
799
  }
800
+ if (issueData.reviewerAgentId) {
801
+ await assertReviewerAgent(existing.orgId, issueData.reviewerAgentId);
802
+ }
803
+ if (issueData.reviewerUserId) {
804
+ await assertReviewerUser(existing.orgId, issueData.reviewerUserId);
805
+ }
763
806
  const nextProjectId = issueData.projectId !== undefined ? issueData.projectId : existing.projectId;
764
807
  const nextProjectWorkspaceId = issueData.projectWorkspaceId !== undefined ? issueData.projectWorkspaceId : existing.projectWorkspaceId;
765
808
  const nextExecutionWorkspaceId = issueData.executionWorkspaceId !== undefined ? issueData.executionWorkspaceId : existing.executionWorkspaceId;
@@ -1489,7 +1532,9 @@ export function issueService(db) {
1489
1532
  const parent = await db.select({
1490
1533
  id: issues.id, identifier: issues.identifier, title: issues.title, description: issues.description,
1491
1534
  status: issues.status, priority: issues.priority,
1492
- assigneeAgentId: issues.assigneeAgentId, projectId: issues.projectId,
1535
+ assigneeAgentId: issues.assigneeAgentId, assigneeUserId: issues.assigneeUserId,
1536
+ reviewerAgentId: issues.reviewerAgentId, reviewerUserId: issues.reviewerUserId,
1537
+ projectId: issues.projectId,
1493
1538
  goalId: issues.goalId, parentId: issues.parentId,
1494
1539
  }).from(issues).where(eq(issues.id, currentId)).then(r => r[0] ?? null);
1495
1540
  if (!parent)
@@ -1498,6 +1543,9 @@ export function issueService(db) {
1498
1543
  id: parent.id, identifier: parent.identifier ?? null, title: parent.title, description: parent.description ?? null,
1499
1544
  status: parent.status, priority: parent.priority,
1500
1545
  assigneeAgentId: parent.assigneeAgentId ?? null,
1546
+ assigneeUserId: parent.assigneeUserId ?? null,
1547
+ reviewerAgentId: parent.reviewerAgentId ?? null,
1548
+ reviewerUserId: parent.reviewerUserId ?? null,
1501
1549
  projectId: parent.projectId ?? null, goalId: parent.goalId ?? null,
1502
1550
  });
1503
1551
  currentId = parent.parentId ?? null;