devchain-cli 0.6.1 → 0.7.0

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 (169) hide show
  1. package/dist/drizzle/0024_review_tables.sql +71 -0
  2. package/dist/drizzle/0025_reviews_mode_and_nullable_shas.sql +80 -0
  3. package/dist/drizzle/0026_review_comments_edited_at.sql +2 -0
  4. package/dist/drizzle/meta/_journal.json +22 -1
  5. package/dist/server/common/errors/error-types.d.ts +3 -0
  6. package/dist/server/common/errors/error-types.js +7 -1
  7. package/dist/server/common/errors/error-types.js.map +1 -1
  8. package/dist/server/common/validation/path-validation.d.ts +11 -0
  9. package/dist/server/common/validation/path-validation.js +197 -0
  10. package/dist/server/common/validation/path-validation.js.map +1 -0
  11. package/dist/server/modules/chat/dtos/chat.dto.d.ts +13 -13
  12. package/dist/server/modules/core/core.module.js +3 -2
  13. package/dist/server/modules/core/core.module.js.map +1 -1
  14. package/dist/server/modules/core/services/preflight.service.d.ts +1 -3
  15. package/dist/server/modules/core/services/preflight.service.js +2 -28
  16. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  17. package/dist/server/modules/core/services/provider-mcp-ensure.service.d.ts +26 -0
  18. package/dist/server/modules/core/services/provider-mcp-ensure.service.js +224 -0
  19. package/dist/server/modules/core/services/provider-mcp-ensure.service.js.map +1 -0
  20. package/dist/server/modules/epics/controllers/epics.controller.d.ts +3 -2
  21. package/dist/server/modules/epics/controllers/epics.controller.js +16 -6
  22. package/dist/server/modules/epics/controllers/epics.controller.js.map +1 -1
  23. package/dist/server/modules/events/catalog/epic.created.d.ts +2 -2
  24. package/dist/server/modules/events/catalog/index.d.ts +340 -2
  25. package/dist/server/modules/events/catalog/index.js +12 -0
  26. package/dist/server/modules/events/catalog/index.js.map +1 -1
  27. package/dist/server/modules/events/catalog/review.comment.created.d.ts +69 -0
  28. package/dist/server/modules/events/catalog/review.comment.created.js +30 -0
  29. package/dist/server/modules/events/catalog/review.comment.created.js.map +1 -0
  30. package/dist/server/modules/events/catalog/review.comment.deleted.d.ts +30 -0
  31. package/dist/server/modules/events/catalog/review.comment.deleted.js +17 -0
  32. package/dist/server/modules/events/catalog/review.comment.deleted.js.map +1 -0
  33. package/dist/server/modules/events/catalog/review.comment.resolved.d.ts +30 -0
  34. package/dist/server/modules/events/catalog/review.comment.resolved.js +17 -0
  35. package/dist/server/modules/events/catalog/review.comment.resolved.js.map +1 -0
  36. package/dist/server/modules/events/catalog/review.comment.updated.d.ts +39 -0
  37. package/dist/server/modules/events/catalog/review.comment.updated.js +20 -0
  38. package/dist/server/modules/events/catalog/review.comment.updated.js.map +1 -0
  39. package/dist/server/modules/events/catalog/review.created.d.ts +90 -0
  40. package/dist/server/modules/events/catalog/review.created.js +40 -0
  41. package/dist/server/modules/events/catalog/review.created.js.map +1 -0
  42. package/dist/server/modules/events/catalog/review.updated.d.ts +110 -0
  43. package/dist/server/modules/events/catalog/review.updated.js +35 -0
  44. package/dist/server/modules/events/catalog/review.updated.js.map +1 -0
  45. package/dist/server/modules/events/subscribers/index.js +4 -0
  46. package/dist/server/modules/events/subscribers/index.js.map +1 -1
  47. package/dist/server/modules/events/subscribers/review-broadcaster.subscriber.d.ts +16 -0
  48. package/dist/server/modules/events/subscribers/review-broadcaster.subscriber.js +163 -0
  49. package/dist/server/modules/events/subscribers/review-broadcaster.subscriber.js.map +1 -0
  50. package/dist/server/modules/events/subscribers/review-comment-notifier.subscriber.d.ts +23 -0
  51. package/dist/server/modules/events/subscribers/review-comment-notifier.subscriber.js +217 -0
  52. package/dist/server/modules/events/subscribers/review-comment-notifier.subscriber.js.map +1 -0
  53. package/dist/server/modules/git/controllers/git.controller.d.ts +24 -0
  54. package/dist/server/modules/git/controllers/git.controller.js +230 -0
  55. package/dist/server/modules/git/controllers/git.controller.js.map +1 -0
  56. package/dist/server/modules/git/dtos/git.dto.d.ts +86 -0
  57. package/dist/server/modules/git/dtos/git.dto.js +36 -0
  58. package/dist/server/modules/git/dtos/git.dto.js.map +1 -0
  59. package/dist/server/modules/git/git.module.d.ts +2 -0
  60. package/dist/server/modules/git/git.module.js +25 -0
  61. package/dist/server/modules/git/git.module.js.map +1 -0
  62. package/dist/server/modules/git/services/git.service.d.ts +71 -0
  63. package/dist/server/modules/git/services/git.service.js +550 -0
  64. package/dist/server/modules/git/services/git.service.js.map +1 -0
  65. package/dist/server/modules/mcp/controllers/mcp-http.controller.js +17 -562
  66. package/dist/server/modules/mcp/controllers/mcp-http.controller.js.map +1 -1
  67. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js +9 -568
  68. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js.map +1 -1
  69. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +226 -36
  70. package/dist/server/modules/mcp/dtos/mcp.dto.js +158 -50
  71. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  72. package/dist/server/modules/mcp/dtos/schema-registry.d.ts +7 -0
  73. package/dist/server/modules/mcp/dtos/schema-registry.js +56 -0
  74. package/dist/server/modules/mcp/dtos/schema-registry.js.map +1 -0
  75. package/dist/server/modules/mcp/mcp.module.js +2 -0
  76. package/dist/server/modules/mcp/mcp.module.js.map +1 -1
  77. package/dist/server/modules/mcp/services/mcp.service.d.ts +9 -1
  78. package/dist/server/modules/mcp/services/mcp.service.js +702 -33
  79. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  80. package/dist/server/modules/mcp/tool-definitions.d.ts +2438 -0
  81. package/dist/server/modules/mcp/tool-definitions.js +727 -0
  82. package/dist/server/modules/mcp/tool-definitions.js.map +1 -0
  83. package/dist/server/modules/mcp/utils/param-suggestion.d.ts +3 -0
  84. package/dist/server/modules/mcp/utils/param-suggestion.js +95 -0
  85. package/dist/server/modules/mcp/utils/param-suggestion.js.map +1 -0
  86. package/dist/server/modules/providers/controllers/providers.controller.d.ts +7 -6
  87. package/dist/server/modules/providers/controllers/providers.controller.js +12 -107
  88. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  89. package/dist/server/modules/reviews/controllers/reviews.controller.d.ts +28 -0
  90. package/dist/server/modules/reviews/controllers/reviews.controller.js +369 -0
  91. package/dist/server/modules/reviews/controllers/reviews.controller.js.map +1 -0
  92. package/dist/server/modules/reviews/dtos/review.dto.d.ts +195 -0
  93. package/dist/server/modules/reviews/dtos/review.dto.js +92 -0
  94. package/dist/server/modules/reviews/dtos/review.dto.js.map +1 -0
  95. package/dist/server/modules/reviews/reviews.module.d.ts +2 -0
  96. package/dist/server/modules/reviews/reviews.module.js +27 -0
  97. package/dist/server/modules/reviews/reviews.module.js.map +1 -0
  98. package/dist/server/modules/reviews/services/reviews.service.d.ts +86 -0
  99. package/dist/server/modules/reviews/services/reviews.service.js +464 -0
  100. package/dist/server/modules/reviews/services/reviews.service.js.map +1 -0
  101. package/dist/server/modules/reviews/utils/notification-formatter.d.ts +12 -0
  102. package/dist/server/modules/reviews/utils/notification-formatter.js +60 -0
  103. package/dist/server/modules/reviews/utils/notification-formatter.js.map +1 -0
  104. package/dist/server/modules/sessions/services/sessions.service.d.ts +3 -1
  105. package/dist/server/modules/sessions/services/sessions.service.js +32 -2
  106. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  107. package/dist/server/modules/storage/db/schema.d.ts +697 -0
  108. package/dist/server/modules/storage/db/schema.js +71 -1
  109. package/dist/server/modules/storage/db/schema.js.map +1 -1
  110. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +23 -1
  111. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  112. package/dist/server/modules/storage/local/local-storage.service.d.ts +15 -2
  113. package/dist/server/modules/storage/local/local-storage.service.js +396 -7
  114. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  115. package/dist/server/modules/storage/models/domain.models.d.ts +62 -0
  116. package/dist/server/templates/claude-codex-advanced-swe.json +139 -0
  117. package/dist/server/templates/claude-codex-advanced.json +82 -82
  118. package/dist/server/templates/claude-opus.json +99 -99
  119. package/dist/server/templates/claude-swe-single.json +105 -0
  120. package/dist/server/templates/simple-codex.json +70 -70
  121. package/dist/server/test-setup.js +45 -0
  122. package/dist/server/test-setup.js.map +1 -1
  123. package/dist/server/tsconfig.tsbuildinfo +1 -1
  124. package/dist/server/ui/assets/ReviewDetailPage-I54h-2L-.js +6 -0
  125. package/dist/server/ui/assets/ReviewsPage-B4ua5hiX.js +19 -0
  126. package/dist/server/ui/assets/index-CqcmnFBh.css +32 -0
  127. package/dist/server/ui/assets/index-JbUMpbg7.js +858 -0
  128. package/dist/server/ui/assets/useReviewSubscription-C0GEsiRw.js +83 -0
  129. package/dist/server/ui/assets/useReviewSubscription-T3uj2-aP.css +1 -0
  130. package/dist/server/ui/index.html +2 -2
  131. package/dist/templates/claude-codex-advanced-swe.json +139 -0
  132. package/dist/templates/claude-codex-advanced.json +82 -82
  133. package/dist/templates/claude-opus.json +99 -99
  134. package/dist/templates/claude-swe-single.json +105 -0
  135. package/dist/templates/simple-codex.json +70 -70
  136. package/package.json +12 -2
  137. package/prebuilds/node-pty/darwin-arm64/pty.node +0 -0
  138. package/prebuilds/node-pty/darwin-arm64/spawn-helper +0 -0
  139. package/prebuilds/node-pty/darwin-x64/pty.node +0 -0
  140. package/prebuilds/node-pty/darwin-x64/spawn-helper +0 -0
  141. package/prebuilds/node-pty/linux-arm64/pty.node +0 -0
  142. package/prebuilds/node-pty/linux-x64/pty.node +0 -0
  143. package/prebuilds/node-pty/win32-arm64/conpty/OpenConsole.exe +0 -0
  144. package/prebuilds/node-pty/win32-arm64/conpty/conpty.dll +0 -0
  145. package/prebuilds/node-pty/win32-arm64/conpty.node +0 -0
  146. package/prebuilds/node-pty/win32-arm64/conpty.pdb +0 -0
  147. package/prebuilds/node-pty/win32-arm64/conpty_console_list.node +0 -0
  148. package/prebuilds/node-pty/win32-arm64/conpty_console_list.pdb +0 -0
  149. package/prebuilds/node-pty/win32-arm64/pty.node +0 -0
  150. package/prebuilds/node-pty/win32-arm64/pty.pdb +0 -0
  151. package/prebuilds/node-pty/win32-arm64/winpty-agent.exe +0 -0
  152. package/prebuilds/node-pty/win32-arm64/winpty-agent.pdb +0 -0
  153. package/prebuilds/node-pty/win32-arm64/winpty.dll +0 -0
  154. package/prebuilds/node-pty/win32-arm64/winpty.pdb +0 -0
  155. package/prebuilds/node-pty/win32-x64/conpty/OpenConsole.exe +0 -0
  156. package/prebuilds/node-pty/win32-x64/conpty/conpty.dll +0 -0
  157. package/prebuilds/node-pty/win32-x64/conpty.node +0 -0
  158. package/prebuilds/node-pty/win32-x64/conpty.pdb +0 -0
  159. package/prebuilds/node-pty/win32-x64/conpty_console_list.node +0 -0
  160. package/prebuilds/node-pty/win32-x64/conpty_console_list.pdb +0 -0
  161. package/prebuilds/node-pty/win32-x64/pty.node +0 -0
  162. package/prebuilds/node-pty/win32-x64/pty.pdb +0 -0
  163. package/prebuilds/node-pty/win32-x64/winpty-agent.exe +0 -0
  164. package/prebuilds/node-pty/win32-x64/winpty-agent.pdb +0 -0
  165. package/prebuilds/node-pty/win32-x64/winpty.dll +0 -0
  166. package/prebuilds/node-pty/win32-x64/winpty.pdb +0 -0
  167. package/scripts/postinstall.js +51 -1
  168. package/dist/server/ui/assets/index-BoDZOB7c.css +0 -32
  169. package/dist/server/ui/assets/index-hB0e02VB.js +0 -735
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reviewCommentUpdatedEvent = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.reviewCommentUpdatedEvent = {
6
+ name: 'review.comment.updated',
7
+ schema: zod_1.z.object({
8
+ commentId: zod_1.z.string().uuid(),
9
+ reviewId: zod_1.z.string().uuid(),
10
+ projectId: zod_1.z.string().uuid(),
11
+ content: zod_1.z.string().min(1),
12
+ previousContent: zod_1.z.string().min(1),
13
+ version: zod_1.z.number().int().positive(),
14
+ editedAt: zod_1.z.string().datetime().nullable(),
15
+ filePath: zod_1.z.string().nullable(),
16
+ projectName: zod_1.z.string().min(1).optional(),
17
+ reviewTitle: zod_1.z.string().min(1).optional(),
18
+ }),
19
+ };
20
+ //# sourceMappingURL=review.comment.updated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.comment.updated.js","sourceRoot":"","sources":["../../../../src/modules/events/catalog/review.comment.updated.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,yBAAyB,GAAG;IACvC,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACpC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC1C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAE/B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC;CACM,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { z } from 'zod';
2
+ export declare const reviewCreatedEvent: {
3
+ readonly name: "review.created";
4
+ readonly schema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
5
+ reviewId: z.ZodString;
6
+ projectId: z.ZodString;
7
+ epicId: z.ZodNullable<z.ZodString>;
8
+ title: z.ZodString;
9
+ status: z.ZodEnum<["draft", "pending", "changes_requested", "approved", "closed"]>;
10
+ mode: z.ZodLiteral<"commit">;
11
+ baseRef: z.ZodString;
12
+ headRef: z.ZodString;
13
+ baseSha: z.ZodString;
14
+ headSha: z.ZodString;
15
+ createdBy: z.ZodEnum<["user", "agent"]>;
16
+ createdByAgentId: z.ZodNullable<z.ZodString>;
17
+ projectName: z.ZodOptional<z.ZodString>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ status: "draft" | "pending" | "changes_requested" | "approved" | "closed";
20
+ projectId: string;
21
+ title: string;
22
+ epicId: string | null;
23
+ mode: "commit";
24
+ baseRef: string;
25
+ headRef: string;
26
+ baseSha: string;
27
+ headSha: string;
28
+ createdBy: "agent" | "user";
29
+ createdByAgentId: string | null;
30
+ reviewId: string;
31
+ projectName?: string | undefined;
32
+ }, {
33
+ status: "draft" | "pending" | "changes_requested" | "approved" | "closed";
34
+ projectId: string;
35
+ title: string;
36
+ epicId: string | null;
37
+ mode: "commit";
38
+ baseRef: string;
39
+ headRef: string;
40
+ baseSha: string;
41
+ headSha: string;
42
+ createdBy: "agent" | "user";
43
+ createdByAgentId: string | null;
44
+ reviewId: string;
45
+ projectName?: string | undefined;
46
+ }>, z.ZodObject<{
47
+ reviewId: z.ZodString;
48
+ projectId: z.ZodString;
49
+ epicId: z.ZodNullable<z.ZodString>;
50
+ title: z.ZodString;
51
+ status: z.ZodEnum<["draft", "pending", "changes_requested", "approved", "closed"]>;
52
+ mode: z.ZodLiteral<"working_tree">;
53
+ baseRef: z.ZodString;
54
+ headRef: z.ZodString;
55
+ baseSha: z.ZodNull;
56
+ headSha: z.ZodNull;
57
+ createdBy: z.ZodEnum<["user", "agent"]>;
58
+ createdByAgentId: z.ZodNullable<z.ZodString>;
59
+ projectName: z.ZodOptional<z.ZodString>;
60
+ }, "strip", z.ZodTypeAny, {
61
+ status: "draft" | "pending" | "changes_requested" | "approved" | "closed";
62
+ projectId: string;
63
+ title: string;
64
+ epicId: string | null;
65
+ mode: "working_tree";
66
+ baseRef: string;
67
+ headRef: string;
68
+ baseSha: null;
69
+ headSha: null;
70
+ createdBy: "agent" | "user";
71
+ createdByAgentId: string | null;
72
+ reviewId: string;
73
+ projectName?: string | undefined;
74
+ }, {
75
+ status: "draft" | "pending" | "changes_requested" | "approved" | "closed";
76
+ projectId: string;
77
+ title: string;
78
+ epicId: string | null;
79
+ mode: "working_tree";
80
+ baseRef: string;
81
+ headRef: string;
82
+ baseSha: null;
83
+ headSha: null;
84
+ createdBy: "agent" | "user";
85
+ createdByAgentId: string | null;
86
+ reviewId: string;
87
+ projectName?: string | undefined;
88
+ }>]>;
89
+ };
90
+ export type ReviewCreatedEventPayload = z.infer<typeof reviewCreatedEvent.schema>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reviewCreatedEvent = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.reviewCreatedEvent = {
6
+ name: 'review.created',
7
+ schema: zod_1.z.discriminatedUnion('mode', [
8
+ zod_1.z.object({
9
+ reviewId: zod_1.z.string().uuid(),
10
+ projectId: zod_1.z.string().uuid(),
11
+ epicId: zod_1.z.string().uuid().nullable(),
12
+ title: zod_1.z.string().min(1),
13
+ status: zod_1.z.enum(['draft', 'pending', 'changes_requested', 'approved', 'closed']),
14
+ mode: zod_1.z.literal('commit'),
15
+ baseRef: zod_1.z.string().min(1),
16
+ headRef: zod_1.z.string().min(1),
17
+ baseSha: zod_1.z.string().min(1),
18
+ headSha: zod_1.z.string().min(1),
19
+ createdBy: zod_1.z.enum(['user', 'agent']),
20
+ createdByAgentId: zod_1.z.string().uuid().nullable(),
21
+ projectName: zod_1.z.string().min(1).optional(),
22
+ }),
23
+ zod_1.z.object({
24
+ reviewId: zod_1.z.string().uuid(),
25
+ projectId: zod_1.z.string().uuid(),
26
+ epicId: zod_1.z.string().uuid().nullable(),
27
+ title: zod_1.z.string().min(1),
28
+ status: zod_1.z.enum(['draft', 'pending', 'changes_requested', 'approved', 'closed']),
29
+ mode: zod_1.z.literal('working_tree'),
30
+ baseRef: zod_1.z.string().min(1),
31
+ headRef: zod_1.z.string().min(1),
32
+ baseSha: zod_1.z.null(),
33
+ headSha: zod_1.z.null(),
34
+ createdBy: zod_1.z.enum(['user', 'agent']),
35
+ createdByAgentId: zod_1.z.string().uuid().nullable(),
36
+ projectName: zod_1.z.string().min(1).optional(),
37
+ }),
38
+ ]),
39
+ };
40
+ //# sourceMappingURL=review.created.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.created.js","sourceRoot":"","sources":["../../../../src/modules/events/catalog/review.created.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACnC,OAAC,CAAC,MAAM,CAAC;YACP,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC5B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/E,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YAE9C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC1C,CAAC;QACF,OAAC,CAAC,MAAM,CAAC;YACP,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC5B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/E,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,cAAc,CAAC;YAC/B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAC,CAAC,IAAI,EAAE;YACjB,OAAO,EAAE,OAAC,CAAC,IAAI,EAAE;YACjB,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YAE9C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC1C,CAAC;KACH,CAAC;CACM,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { z } from 'zod';
2
+ export declare const reviewUpdatedEvent: {
3
+ readonly name: "review.updated";
4
+ readonly schema: z.ZodObject<{
5
+ reviewId: z.ZodString;
6
+ projectId: z.ZodString;
7
+ version: z.ZodNumber;
8
+ title: z.ZodString;
9
+ projectName: z.ZodOptional<z.ZodString>;
10
+ changes: z.ZodObject<{
11
+ title: z.ZodOptional<z.ZodObject<{
12
+ previous: z.ZodString;
13
+ current: z.ZodString;
14
+ }, "strip", z.ZodTypeAny, {
15
+ previous: string;
16
+ current: string;
17
+ }, {
18
+ previous: string;
19
+ current: string;
20
+ }>>;
21
+ status: z.ZodOptional<z.ZodObject<{
22
+ previous: z.ZodEnum<["draft", "pending", "changes_requested", "approved", "closed"]>;
23
+ current: z.ZodEnum<["draft", "pending", "changes_requested", "approved", "closed"]>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ previous: "draft" | "pending" | "changes_requested" | "approved" | "closed";
26
+ current: "draft" | "pending" | "changes_requested" | "approved" | "closed";
27
+ }, {
28
+ previous: "draft" | "pending" | "changes_requested" | "approved" | "closed";
29
+ current: "draft" | "pending" | "changes_requested" | "approved" | "closed";
30
+ }>>;
31
+ headSha: z.ZodOptional<z.ZodObject<{
32
+ previous: z.ZodNullable<z.ZodString>;
33
+ current: z.ZodNullable<z.ZodString>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ previous: string | null;
36
+ current: string | null;
37
+ }, {
38
+ previous: string | null;
39
+ current: string | null;
40
+ }>>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ status?: {
43
+ previous: "draft" | "pending" | "changes_requested" | "approved" | "closed";
44
+ current: "draft" | "pending" | "changes_requested" | "approved" | "closed";
45
+ } | undefined;
46
+ title?: {
47
+ previous: string;
48
+ current: string;
49
+ } | undefined;
50
+ headSha?: {
51
+ previous: string | null;
52
+ current: string | null;
53
+ } | undefined;
54
+ }, {
55
+ status?: {
56
+ previous: "draft" | "pending" | "changes_requested" | "approved" | "closed";
57
+ current: "draft" | "pending" | "changes_requested" | "approved" | "closed";
58
+ } | undefined;
59
+ title?: {
60
+ previous: string;
61
+ current: string;
62
+ } | undefined;
63
+ headSha?: {
64
+ previous: string | null;
65
+ current: string | null;
66
+ } | undefined;
67
+ }>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ projectId: string;
70
+ version: number;
71
+ title: string;
72
+ reviewId: string;
73
+ changes: {
74
+ status?: {
75
+ previous: "draft" | "pending" | "changes_requested" | "approved" | "closed";
76
+ current: "draft" | "pending" | "changes_requested" | "approved" | "closed";
77
+ } | undefined;
78
+ title?: {
79
+ previous: string;
80
+ current: string;
81
+ } | undefined;
82
+ headSha?: {
83
+ previous: string | null;
84
+ current: string | null;
85
+ } | undefined;
86
+ };
87
+ projectName?: string | undefined;
88
+ }, {
89
+ projectId: string;
90
+ version: number;
91
+ title: string;
92
+ reviewId: string;
93
+ changes: {
94
+ status?: {
95
+ previous: "draft" | "pending" | "changes_requested" | "approved" | "closed";
96
+ current: "draft" | "pending" | "changes_requested" | "approved" | "closed";
97
+ } | undefined;
98
+ title?: {
99
+ previous: string;
100
+ current: string;
101
+ } | undefined;
102
+ headSha?: {
103
+ previous: string | null;
104
+ current: string | null;
105
+ } | undefined;
106
+ };
107
+ projectName?: string | undefined;
108
+ }>;
109
+ };
110
+ export type ReviewUpdatedEventPayload = z.infer<typeof reviewUpdatedEvent.schema>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reviewUpdatedEvent = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.reviewUpdatedEvent = {
6
+ name: 'review.updated',
7
+ schema: zod_1.z.object({
8
+ reviewId: zod_1.z.string().uuid(),
9
+ projectId: zod_1.z.string().uuid(),
10
+ version: zod_1.z.number().int().positive(),
11
+ title: zod_1.z.string().min(1),
12
+ projectName: zod_1.z.string().min(1).optional(),
13
+ changes: zod_1.z.object({
14
+ title: zod_1.z
15
+ .object({
16
+ previous: zod_1.z.string(),
17
+ current: zod_1.z.string(),
18
+ })
19
+ .optional(),
20
+ status: zod_1.z
21
+ .object({
22
+ previous: zod_1.z.enum(['draft', 'pending', 'changes_requested', 'approved', 'closed']),
23
+ current: zod_1.z.enum(['draft', 'pending', 'changes_requested', 'approved', 'closed']),
24
+ })
25
+ .optional(),
26
+ headSha: zod_1.z
27
+ .object({
28
+ previous: zod_1.z.string().nullable(),
29
+ current: zod_1.z.string().nullable(),
30
+ })
31
+ .optional(),
32
+ }),
33
+ }),
34
+ };
35
+ //# sourceMappingURL=review.updated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.updated.js","sourceRoot":"","sources":["../../../../src/modules/events/catalog/review.updated.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;YAChB,KAAK,EAAE,OAAC;iBACL,MAAM,CAAC;gBACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;gBACpB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;aACpB,CAAC;iBACD,QAAQ,EAAE;YACb,MAAM,EAAE,OAAC;iBACN,MAAM,CAAC;gBACN,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACjF,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;aACjF,CAAC;iBACD,QAAQ,EAAE;YACb,OAAO,EAAE,OAAC;iBACP,MAAM,CAAC;gBACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC/B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC/B,CAAC;iBACD,QAAQ,EAAE;SACd,CAAC;KACH,CAAC;CACM,CAAC"}
@@ -4,9 +4,13 @@ exports.subscribers = void 0;
4
4
  const epic_assignment_notifier_subscriber_1 = require("./epic-assignment-notifier.subscriber");
5
5
  const chat_message_broadcaster_subscriber_1 = require("./chat-message-broadcaster.subscriber");
6
6
  const chat_message_delivery_subscriber_1 = require("./chat-message-delivery.subscriber");
7
+ const review_comment_notifier_subscriber_1 = require("./review-comment-notifier.subscriber");
8
+ const review_broadcaster_subscriber_1 = require("./review-broadcaster.subscriber");
7
9
  exports.subscribers = [
8
10
  epic_assignment_notifier_subscriber_1.EpicAssignmentNotifierSubscriber,
9
11
  chat_message_broadcaster_subscriber_1.ChatMessageBroadcasterSubscriber,
10
12
  chat_message_delivery_subscriber_1.ChatMessageDeliverySubscriber,
13
+ review_comment_notifier_subscriber_1.ReviewCommentNotifierSubscriber,
14
+ review_broadcaster_subscriber_1.ReviewBroadcasterSubscriber,
11
15
  ];
12
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/events/subscribers/index.ts"],"names":[],"mappings":";;;AACA,+FAAyF;AACzF,+FAAyF;AACzF,yFAAmF;AAEtE,QAAA,WAAW,GAAe;IACrC,sEAAgC;IAChC,sEAAgC;IAChC,gEAA6B;CAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/events/subscribers/index.ts"],"names":[],"mappings":";;;AACA,+FAAyF;AACzF,+FAAyF;AACzF,yFAAmF;AACnF,6FAAuF;AACvF,mFAA8E;AAEjE,QAAA,WAAW,GAAe;IACrC,sEAAgC;IAChC,sEAAgC;IAChC,gEAA6B;IAC7B,oEAA+B;IAC/B,2DAA2B;CAC5B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { TerminalGateway } from '../../terminal/gateways/terminal.gateway';
2
+ import type { ReviewCommentCreatedEventPayload } from '../catalog/review.comment.created';
3
+ import type { ReviewCommentDeletedEventPayload } from '../catalog/review.comment.deleted';
4
+ import type { ReviewCommentResolvedEventPayload } from '../catalog/review.comment.resolved';
5
+ import type { ReviewCommentUpdatedEventPayload } from '../catalog/review.comment.updated';
6
+ import type { ReviewUpdatedEventPayload } from '../catalog/review.updated';
7
+ export declare class ReviewBroadcasterSubscriber {
8
+ private readonly terminalGateway;
9
+ private readonly logger;
10
+ constructor(terminalGateway: TerminalGateway);
11
+ handleCommentCreated(payload: ReviewCommentCreatedEventPayload): Promise<void>;
12
+ handleCommentResolved(payload: ReviewCommentResolvedEventPayload): Promise<void>;
13
+ handleReviewUpdated(payload: ReviewUpdatedEventPayload): Promise<void>;
14
+ handleCommentUpdated(payload: ReviewCommentUpdatedEventPayload): Promise<void>;
15
+ handleCommentDeleted(payload: ReviewCommentDeletedEventPayload): Promise<void>;
16
+ }
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var ReviewBroadcasterSubscriber_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ReviewBroadcasterSubscriber = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const event_emitter_1 = require("@nestjs/event-emitter");
19
+ const terminal_gateway_1 = require("../../terminal/gateways/terminal.gateway");
20
+ let ReviewBroadcasterSubscriber = ReviewBroadcasterSubscriber_1 = class ReviewBroadcasterSubscriber {
21
+ constructor(terminalGateway) {
22
+ this.terminalGateway = terminalGateway;
23
+ this.logger = new common_1.Logger(ReviewBroadcasterSubscriber_1.name);
24
+ }
25
+ async handleCommentCreated(payload) {
26
+ try {
27
+ this.terminalGateway.broadcastEvent(`review/${payload.reviewId}`, 'comment.created', {
28
+ commentId: payload.commentId,
29
+ reviewId: payload.reviewId,
30
+ filePath: payload.filePath,
31
+ lineStart: payload.lineStart,
32
+ lineEnd: payload.lineEnd,
33
+ commentType: payload.commentType,
34
+ status: payload.status,
35
+ authorType: payload.authorType,
36
+ authorAgentId: payload.authorAgentId,
37
+ parentId: payload.parentId,
38
+ });
39
+ this.terminalGateway.broadcastEvent(`project/${payload.projectId}/reviews`, 'comment.created', {
40
+ reviewId: payload.reviewId,
41
+ commentId: payload.commentId,
42
+ });
43
+ this.logger.debug({ reviewId: payload.reviewId, commentId: payload.commentId }, 'Broadcasted comment.created via WebSocket');
44
+ }
45
+ catch (error) {
46
+ this.logger.error({ error, reviewId: payload.reviewId, commentId: payload.commentId }, 'Failed to broadcast comment.created');
47
+ }
48
+ }
49
+ async handleCommentResolved(payload) {
50
+ try {
51
+ this.terminalGateway.broadcastEvent(`review/${payload.reviewId}`, 'comment.resolved', {
52
+ commentId: payload.commentId,
53
+ reviewId: payload.reviewId,
54
+ status: payload.status,
55
+ version: payload.version,
56
+ });
57
+ this.terminalGateway.broadcastEvent(`project/${payload.projectId}/reviews`, 'comment.resolved', {
58
+ reviewId: payload.reviewId,
59
+ commentId: payload.commentId,
60
+ status: payload.status,
61
+ });
62
+ this.logger.debug({ reviewId: payload.reviewId, commentId: payload.commentId, status: payload.status }, 'Broadcasted comment.resolved via WebSocket');
63
+ }
64
+ catch (error) {
65
+ this.logger.error({ error, reviewId: payload.reviewId, commentId: payload.commentId }, 'Failed to broadcast comment.resolved');
66
+ }
67
+ }
68
+ async handleReviewUpdated(payload) {
69
+ try {
70
+ this.terminalGateway.broadcastEvent(`review/${payload.reviewId}`, 'review.updated', {
71
+ reviewId: payload.reviewId,
72
+ version: payload.version,
73
+ title: payload.title,
74
+ changes: payload.changes,
75
+ });
76
+ this.terminalGateway.broadcastEvent(`project/${payload.projectId}/reviews`, 'review.updated', {
77
+ reviewId: payload.reviewId,
78
+ version: payload.version,
79
+ title: payload.title,
80
+ changes: payload.changes,
81
+ });
82
+ this.logger.debug({ reviewId: payload.reviewId, version: payload.version, changes: payload.changes }, 'Broadcasted review.updated via WebSocket');
83
+ }
84
+ catch (error) {
85
+ this.logger.error({ error, reviewId: payload.reviewId }, 'Failed to broadcast review.updated');
86
+ }
87
+ }
88
+ async handleCommentUpdated(payload) {
89
+ try {
90
+ this.terminalGateway.broadcastEvent(`review/${payload.reviewId}`, 'comment.updated', {
91
+ commentId: payload.commentId,
92
+ reviewId: payload.reviewId,
93
+ content: payload.content,
94
+ version: payload.version,
95
+ editedAt: payload.editedAt,
96
+ filePath: payload.filePath,
97
+ });
98
+ this.terminalGateway.broadcastEvent(`project/${payload.projectId}/reviews`, 'comment.updated', {
99
+ reviewId: payload.reviewId,
100
+ commentId: payload.commentId,
101
+ });
102
+ this.logger.debug({ reviewId: payload.reviewId, commentId: payload.commentId }, 'Broadcasted comment.updated via WebSocket');
103
+ }
104
+ catch (error) {
105
+ this.logger.error({ error, reviewId: payload.reviewId, commentId: payload.commentId }, 'Failed to broadcast comment.updated');
106
+ }
107
+ }
108
+ async handleCommentDeleted(payload) {
109
+ try {
110
+ this.terminalGateway.broadcastEvent(`review/${payload.reviewId}`, 'comment.deleted', {
111
+ commentId: payload.commentId,
112
+ reviewId: payload.reviewId,
113
+ filePath: payload.filePath,
114
+ parentId: payload.parentId,
115
+ });
116
+ this.terminalGateway.broadcastEvent(`project/${payload.projectId}/reviews`, 'comment.deleted', {
117
+ reviewId: payload.reviewId,
118
+ commentId: payload.commentId,
119
+ });
120
+ this.logger.debug({ reviewId: payload.reviewId, commentId: payload.commentId }, 'Broadcasted comment.deleted via WebSocket');
121
+ }
122
+ catch (error) {
123
+ this.logger.error({ error, reviewId: payload.reviewId, commentId: payload.commentId }, 'Failed to broadcast comment.deleted');
124
+ }
125
+ }
126
+ };
127
+ exports.ReviewBroadcasterSubscriber = ReviewBroadcasterSubscriber;
128
+ __decorate([
129
+ (0, event_emitter_1.OnEvent)('review.comment.created', { async: true }),
130
+ __metadata("design:type", Function),
131
+ __metadata("design:paramtypes", [Object]),
132
+ __metadata("design:returntype", Promise)
133
+ ], ReviewBroadcasterSubscriber.prototype, "handleCommentCreated", null);
134
+ __decorate([
135
+ (0, event_emitter_1.OnEvent)('review.comment.resolved', { async: true }),
136
+ __metadata("design:type", Function),
137
+ __metadata("design:paramtypes", [Object]),
138
+ __metadata("design:returntype", Promise)
139
+ ], ReviewBroadcasterSubscriber.prototype, "handleCommentResolved", null);
140
+ __decorate([
141
+ (0, event_emitter_1.OnEvent)('review.updated', { async: true }),
142
+ __metadata("design:type", Function),
143
+ __metadata("design:paramtypes", [Object]),
144
+ __metadata("design:returntype", Promise)
145
+ ], ReviewBroadcasterSubscriber.prototype, "handleReviewUpdated", null);
146
+ __decorate([
147
+ (0, event_emitter_1.OnEvent)('review.comment.updated', { async: true }),
148
+ __metadata("design:type", Function),
149
+ __metadata("design:paramtypes", [Object]),
150
+ __metadata("design:returntype", Promise)
151
+ ], ReviewBroadcasterSubscriber.prototype, "handleCommentUpdated", null);
152
+ __decorate([
153
+ (0, event_emitter_1.OnEvent)('review.comment.deleted', { async: true }),
154
+ __metadata("design:type", Function),
155
+ __metadata("design:paramtypes", [Object]),
156
+ __metadata("design:returntype", Promise)
157
+ ], ReviewBroadcasterSubscriber.prototype, "handleCommentDeleted", null);
158
+ exports.ReviewBroadcasterSubscriber = ReviewBroadcasterSubscriber = ReviewBroadcasterSubscriber_1 = __decorate([
159
+ (0, common_1.Injectable)(),
160
+ __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => terminal_gateway_1.TerminalGateway))),
161
+ __metadata("design:paramtypes", [terminal_gateway_1.TerminalGateway])
162
+ ], ReviewBroadcasterSubscriber);
163
+ //# sourceMappingURL=review-broadcaster.subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-broadcaster.subscriber.js","sourceRoot":"","sources":["../../../../src/modules/events/subscribers/review-broadcaster.subscriber.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { ModuleRef } from '@nestjs/core';
2
+ import { EventLogService } from '../services/event-log.service';
3
+ import { SessionCoordinatorService } from '../../sessions/services/session-coordinator.service';
4
+ import { SessionsMessagePoolService } from '../../sessions/services/sessions-message-pool.service';
5
+ import { type StorageService } from '../../storage/interfaces/storage.interface';
6
+ import type { ReviewCommentCreatedEventPayload } from '../catalog/review.comment.created';
7
+ export declare class ReviewCommentNotifierSubscriber {
8
+ private readonly eventLogService;
9
+ private readonly moduleRef;
10
+ private readonly sessionCoordinator;
11
+ private readonly messagePoolService;
12
+ private readonly storage;
13
+ private readonly logger;
14
+ private sessionsServiceRef?;
15
+ constructor(eventLogService: EventLogService, moduleRef: ModuleRef, sessionCoordinator: SessionCoordinatorService, messagePoolService: SessionsMessagePoolService, storage: StorageService);
16
+ handleReviewCommentCreated(payload: ReviewCommentCreatedEventPayload): Promise<void>;
17
+ private notifyAgent;
18
+ private renderTemplate;
19
+ private truncateContent;
20
+ private ensureAgentSession;
21
+ private getSessionsService;
22
+ private formatLineRange;
23
+ }