reviewflow 3.39.3 → 3.40.1

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 (146) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/config/projectConfig.d.ts +1 -0
  3. package/dist/config/projectConfig.d.ts.map +1 -1
  4. package/dist/config/projectConfig.js +13 -0
  5. package/dist/config/projectConfig.js.map +1 -1
  6. package/dist/frameworks/config/configLoader.d.ts +1 -0
  7. package/dist/frameworks/config/configLoader.d.ts.map +1 -1
  8. package/dist/frameworks/config/configLoader.js +15 -1
  9. package/dist/frameworks/config/configLoader.js.map +1 -1
  10. package/dist/main/routes.d.ts.map +1 -1
  11. package/dist/main/routes.js +18 -2
  12. package/dist/main/routes.js.map +1 -1
  13. package/dist/modules/platform-integration/entities/webhookEvent/webhookEvent.d.ts +1 -0
  14. package/dist/modules/platform-integration/entities/webhookEvent/webhookEvent.d.ts.map +1 -1
  15. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.d.ts +31 -0
  16. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.d.ts.map +1 -0
  17. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.js +57 -0
  18. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.js.map +1 -0
  19. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.d.ts +4 -2
  20. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.d.ts.map +1 -1
  21. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.js +180 -182
  22. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.js.map +1 -1
  23. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.d.ts +4 -2
  24. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.d.ts.map +1 -1
  25. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.js +179 -203
  26. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.js.map +1 -1
  27. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.d.ts +71 -0
  28. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.d.ts.map +1 -0
  29. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.js +104 -0
  30. package/dist/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.js.map +1 -0
  31. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.d.ts +10 -0
  32. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.d.ts.map +1 -0
  33. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.js +37 -0
  34. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.js.map +1 -0
  35. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.d.ts +10 -0
  36. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.d.ts.map +1 -0
  37. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.js +41 -0
  38. package/dist/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.js.map +1 -0
  39. package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.d.ts +26 -0
  40. package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.d.ts.map +1 -0
  41. package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.js +42 -0
  42. package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.js.map +1 -0
  43. package/dist/modules/platform-integration/usecases/processReviewRequest.usecase.d.ts +39 -0
  44. package/dist/modules/platform-integration/usecases/processReviewRequest.usecase.d.ts.map +1 -0
  45. package/dist/modules/platform-integration/usecases/processReviewRequest.usecase.js +45 -0
  46. package/dist/modules/platform-integration/usecases/processReviewRequest.usecase.js.map +1 -0
  47. package/dist/modules/platform-integration/usecases/processWebhook.usecase.d.ts +16 -0
  48. package/dist/modules/platform-integration/usecases/processWebhook.usecase.d.ts.map +1 -1
  49. package/dist/modules/platform-integration/usecases/processWebhook.usecase.js +44 -1
  50. package/dist/modules/platform-integration/usecases/processWebhook.usecase.js.map +1 -1
  51. package/dist/modules/shared-kernel/entities/diffSizeGate/changedFilesFetch.gateway.d.ts +5 -0
  52. package/dist/modules/shared-kernel/entities/diffSizeGate/changedFilesFetch.gateway.d.ts.map +1 -0
  53. package/dist/modules/shared-kernel/entities/diffSizeGate/changedFilesFetch.gateway.js +2 -0
  54. package/dist/modules/shared-kernel/entities/diffSizeGate/changedFilesFetch.gateway.js.map +1 -0
  55. package/dist/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.d.ts +17 -0
  56. package/dist/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.d.ts.map +1 -0
  57. package/dist/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.js +20 -0
  58. package/dist/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.js.map +1 -0
  59. package/dist/modules/statistics-insights/usecases/insights/computeInsightsWithPersistence.usecase.d.ts.map +1 -1
  60. package/dist/modules/statistics-insights/usecases/insights/computeInsightsWithPersistence.usecase.js +46 -8
  61. package/dist/modules/statistics-insights/usecases/insights/computeInsightsWithPersistence.usecase.js.map +1 -1
  62. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts +2 -0
  63. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts.map +1 -1
  64. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js +6 -3
  65. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js.map +1 -1
  66. package/dist/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.d.ts +13 -0
  67. package/dist/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.d.ts.map +1 -0
  68. package/dist/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.js +28 -0
  69. package/dist/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.js.map +1 -0
  70. package/dist/tests/acceptance/180-quality-threshold-block-approval-iter-B.acceptance.test.js +3 -3
  71. package/dist/tests/acceptance/180-quality-threshold-block-approval-iter-B.acceptance.test.js.map +1 -1
  72. package/dist/tests/acceptance/180-quality-threshold-block-approval-iter-C.acceptance.test.js +26 -2
  73. package/dist/tests/acceptance/180-quality-threshold-block-approval-iter-C.acceptance.test.js.map +1 -1
  74. package/dist/tests/acceptance/197-trusted-actor-provenance-gate.acceptance.test.js +20 -12
  75. package/dist/tests/acceptance/197-trusted-actor-provenance-gate.acceptance.test.js.map +1 -1
  76. package/dist/tests/acceptance/200-webhook-event-idempotency.acceptance.test.js +16 -8
  77. package/dist/tests/acceptance/200-webhook-event-idempotency.acceptance.test.js.map +1 -1
  78. package/dist/tests/acceptance/209-mr-size-guard.acceptance.test.d.ts +19 -0
  79. package/dist/tests/acceptance/209-mr-size-guard.acceptance.test.d.ts.map +1 -0
  80. package/dist/tests/acceptance/209-mr-size-guard.acceptance.test.js +181 -0
  81. package/dist/tests/acceptance/209-mr-size-guard.acceptance.test.js.map +1 -0
  82. package/dist/tests/acceptance/46-github-followup-review-on-push.acceptance.test.js +10 -6
  83. package/dist/tests/acceptance/46-github-followup-review-on-push.acceptance.test.js.map +1 -1
  84. package/dist/tests/acceptance/73-process-webhook.acceptance.test.js +2 -0
  85. package/dist/tests/acceptance/73-process-webhook.acceptance.test.js.map +1 -1
  86. package/dist/tests/acceptance/73-stage4-controller-thinning.acceptance.test.d.ts +2 -0
  87. package/dist/tests/acceptance/73-stage4-controller-thinning.acceptance.test.d.ts.map +1 -0
  88. package/dist/tests/acceptance/73-stage4-controller-thinning.acceptance.test.js +226 -0
  89. package/dist/tests/acceptance/73-stage4-controller-thinning.acceptance.test.js.map +1 -0
  90. package/dist/tests/factories/changedFiles.factory.d.ts +6 -0
  91. package/dist/tests/factories/changedFiles.factory.d.ts.map +1 -0
  92. package/dist/tests/factories/changedFiles.factory.js +14 -0
  93. package/dist/tests/factories/changedFiles.factory.js.map +1 -0
  94. package/dist/tests/stubs/changedFilesFetch.stub.d.ts +12 -0
  95. package/dist/tests/stubs/changedFilesFetch.stub.d.ts.map +1 -0
  96. package/dist/tests/stubs/changedFilesFetch.stub.js +21 -0
  97. package/dist/tests/stubs/changedFilesFetch.stub.js.map +1 -0
  98. package/dist/tests/units/config/projectConfig.test.js +49 -0
  99. package/dist/tests/units/config/projectConfig.test.js.map +1 -1
  100. package/dist/tests/units/frameworks/config/configLoader.test.js +20 -0
  101. package/dist/tests/units/frameworks/config/configLoader.test.js.map +1 -1
  102. package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js +52 -70
  103. package/dist/tests/units/interface-adapters/controllers/webhook/github.controller.test.js.map +1 -1
  104. package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js +57 -47
  105. package/dist/tests/units/interface-adapters/controllers/webhook/gitlab.controller.test.js.map +1 -1
  106. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.test.d.ts +2 -0
  107. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.test.d.ts.map +1 -0
  108. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.test.js +148 -0
  109. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.test.js.map +1 -0
  110. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/gitlabIdempotency.controller.test.js +13 -5
  111. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/gitlabIdempotency.controller.test.js.map +1 -1
  112. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.test.d.ts +2 -0
  113. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.test.d.ts.map +1 -0
  114. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.test.js +309 -0
  115. package/dist/tests/units/modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.test.js.map +1 -0
  116. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.test.d.ts +2 -0
  117. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.test.d.ts.map +1 -0
  118. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.test.js +52 -0
  119. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.github.gateway.test.js.map +1 -0
  120. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.test.d.ts +2 -0
  121. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.test.d.ts.map +1 -0
  122. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.test.js +57 -0
  123. package/dist/tests/units/modules/platform-integration/interface-adapters/gateways/changedFilesFetch.gitlab.gateway.test.js.map +1 -0
  124. package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.d.ts +2 -0
  125. package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.d.ts.map +1 -0
  126. package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js +91 -0
  127. package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js.map +1 -0
  128. package/dist/tests/units/modules/platform-integration/usecases/processReviewRequest.usecase.test.d.ts +2 -0
  129. package/dist/tests/units/modules/platform-integration/usecases/processReviewRequest.usecase.test.d.ts.map +1 -0
  130. package/dist/tests/units/modules/platform-integration/usecases/processReviewRequest.usecase.test.js +170 -0
  131. package/dist/tests/units/modules/platform-integration/usecases/processReviewRequest.usecase.test.js.map +1 -0
  132. package/dist/tests/units/modules/platform-integration/usecases/processWebhook.usecase.test.js +99 -8
  133. package/dist/tests/units/modules/platform-integration/usecases/processWebhook.usecase.test.js.map +1 -1
  134. package/dist/tests/units/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.test.d.ts +2 -0
  135. package/dist/tests/units/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.test.d.ts.map +1 -0
  136. package/dist/tests/units/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.test.js +67 -0
  137. package/dist/tests/units/modules/shared-kernel/entities/diffSizeGate/diffSizeGate.test.js.map +1 -0
  138. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.test.js +66 -0
  139. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.test.js.map +1 -1
  140. package/dist/tests/units/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.test.d.ts +2 -0
  141. package/dist/tests/units/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.test.d.ts.map +1 -0
  142. package/dist/tests/units/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.test.js +84 -0
  143. package/dist/tests/units/modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.test.js.map +1 -0
  144. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js +76 -0
  145. package/dist/tests/units/usecases/insights/computeInsightsWithPersistence.usecase.test.js.map +1 -1
  146. package/package.json +1 -1
@@ -4,9 +4,11 @@ import { enqueueReview, createJobId } from '../../../../../frameworks/queue/pQue
4
4
  import { gitHubIssueCommentEventGuard } from '../../../../../modules/platform-integration/entities/github/githubIssueCommentEvent.guard.js';
5
5
  import { gitHubPullRequestEventGuard } from '../../../../../modules/platform-integration/entities/github/githubPullRequestEvent.guard.js';
6
6
  import { gitHubPullRequestReviewEventGuard } from '../../../../../modules/platform-integration/entities/github/githubPullRequestReviewEvent.guard.js';
7
+ import { applyDiffSizeGuard } from '../../../../../modules/platform-integration/interface-adapters/controllers/webhook/diffSizeGuard.helper.js';
7
8
  import { filterGitHubEvent, filterGitHubLabelEvent, filterGitHubPrClose, filterGitHubPrUpdate, filterGitHubIssueCommentEvent, filterGitHubPullRequestReviewEvent, } from '../../../../../modules/platform-integration/interface-adapters/controllers/webhook/eventFilter.js';
9
+ import { sendWebhookReply, sendReviewRequestReply, } from '../../../../../modules/platform-integration/interface-adapters/controllers/webhook/webhookReply.js';
10
+ import { processReviewRequest } from '../../../../../modules/platform-integration/usecases/processReviewRequest.usecase.js';
8
11
  import { DEFAULT_AGENTS, DEFAULT_FOLLOWUP_AGENTS, } from '../../../../../modules/review-execution/entities/progress/agentDefinition.type.js';
9
- import { evaluateQualityGate } from '../../../../../modules/tracking/entities/qualityGate/qualityGate.js';
10
12
  import { verifyGitHubSignature, getGitHubEventType } from '../../../../../security/verifier.js';
11
13
  function listEnabledLocalPaths(getRepositories) {
12
14
  return getRepositories()
@@ -41,110 +43,116 @@ async function handleGitHubPullRequestReviewHook(request, reply, logger, deps) {
41
43
  const parseResult = gitHubPullRequestReviewEventGuard.safeParse(request.body);
42
44
  if (!parseResult.success) {
43
45
  logger.debug({ errors: parseResult.error }, 'Invalid GitHub pull_request_review payload (ignored)');
44
- reply
45
- .status(200)
46
- .send({ status: 'ignored', reason: 'pull_request_review payload not parseable' });
46
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'pull_request_review payload not parseable' }, { numberKey: 'prNumber' });
47
47
  return;
48
48
  }
49
49
  const filterResult = filterGitHubPullRequestReviewEvent(parseResult.data);
50
50
  if (!filterResult.shouldProcess) {
51
- reply.status(200).send({ status: 'ignored', reason: filterResult.reason });
51
+ sendWebhookReply(reply, { kind: 'ignored', reason: filterResult.reason }, { numberKey: 'prNumber' });
52
52
  return;
53
53
  }
54
54
  const repoConfig = findRepositoryByRemoteUrl(parseResult.data.repository.clone_url);
55
55
  if (!repoConfig) {
56
56
  logger.debug({ projectPath: filterResult.projectPath }, 'Pull request review for unconfigured repository (ignored)');
57
- reply.status(200).send({ status: 'ignored', reason: 'Repository not configured' });
57
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'Repository not configured' }, { numberKey: 'prNumber' });
58
58
  return;
59
59
  }
60
- const mrId = `github-${filterResult.projectPath}-${filterResult.mergeRequestNumber}`;
61
- const threshold = deps.getQualityThreshold(repoConfig.localPath);
62
- const transitionResult = deps.transitionState.execute({
63
- projectPath: repoConfig.localPath,
64
- mrId,
65
- targetState: 'approved',
66
- qualityCheck: (mr) => evaluateQualityGate({
67
- latestScore: mr.latestScore,
68
- blockingIssues: mr.openThreads,
69
- threshold,
70
- }),
60
+ const sizeGuard = await applyDiffSizeGuard({
61
+ projectIdentifier: filterResult.projectPath,
62
+ localPath: repoConfig.localPath,
63
+ mergeRequestNumber: filterResult.mergeRequestNumber,
64
+ mode: 'approve',
65
+ revokeArgs: { reviewId: filterResult.reviewId, dismissalMessage: 'oversized' },
66
+ deps: {
67
+ guardDiffSize: deps.guardDiffSize,
68
+ getMaxDiffLines: deps.getMaxDiffLines,
69
+ noteCommentPostGateway: deps.noteCommentPostGateway,
70
+ approvalRevocationGateway: deps.approvalRevocationGateway,
71
+ },
72
+ logger,
71
73
  });
72
- if (transitionResult.ok) {
74
+ if (sizeGuard.blocked) {
75
+ reply.status(200).send({
76
+ status: 'unapproved',
77
+ prNumber: filterResult.mergeRequestNumber,
78
+ reason: 'oversized',
79
+ });
80
+ return;
81
+ }
82
+ const result = await deps.processWebhook({
83
+ type: 'approve',
84
+ platform: 'github',
85
+ projectPath: filterResult.projectPath,
86
+ localPath: repoConfig.localPath,
87
+ mergeRequestNumber: filterResult.mergeRequestNumber,
88
+ reviewId: filterResult.reviewId,
89
+ });
90
+ if (result.type === 'approved') {
73
91
  logger.info({ prNumber: filterResult.mergeRequestNumber }, 'PR marked as approved');
74
- reply.status(200).send({ status: 'approved', prNumber: filterResult.mergeRequestNumber });
92
+ sendWebhookReply(reply, { kind: 'approved', mergeRequestNumber: filterResult.mergeRequestNumber }, { numberKey: 'prNumber' });
75
93
  return;
76
94
  }
77
- if (transitionResult.reason === 'quality-gate') {
78
- const verdict = deps.handlePlatformApproval.execute({
79
- projectPath: repoConfig.localPath,
80
- mrId,
81
- qualityThreshold: threshold,
82
- });
83
- if (verdict.kind === 'reverted') {
84
- try {
85
- await deps.approvalRevocationGateway.revoke({
86
- projectPath: filterResult.projectPath,
87
- mrNumber: filterResult.mergeRequestNumber,
88
- reviewId: filterResult.reviewId,
89
- dismissalMessage: shortDismissalLabel(verdict.reason),
90
- });
91
- }
92
- catch (error) {
93
- logger.warn({
94
- prNumber: filterResult.mergeRequestNumber,
95
- error: error instanceof Error ? error.message : String(error),
96
- }, 'Failed to dismiss GitHub approval review; continuing with FR comment');
97
- }
98
- try {
99
- await deps.noteCommentPostGateway.postComment({
100
- projectPath: filterResult.projectPath,
101
- mrNumber: filterResult.mergeRequestNumber,
102
- body: verdict.message,
103
- });
104
- }
105
- catch (error) {
106
- logger.warn({
107
- prNumber: filterResult.mergeRequestNumber,
108
- error: error instanceof Error ? error.message : String(error),
109
- }, 'Failed to post FR explanation comment after dismissing GitHub approval');
110
- }
111
- logger.info({ prNumber: filterResult.mergeRequestNumber, reason: verdict.reason }, 'Platform approval revoked on non-qualified PR');
112
- reply.status(200).send({
113
- status: 'unapproved',
95
+ if (result.type === 'approval-revoked') {
96
+ try {
97
+ await deps.approvalRevocationGateway.revoke({
98
+ projectPath: filterResult.projectPath,
99
+ mrNumber: filterResult.mergeRequestNumber,
100
+ reviewId: filterResult.reviewId,
101
+ dismissalMessage: shortDismissalLabel(result.reason),
102
+ });
103
+ }
104
+ catch (error) {
105
+ logger.warn({
114
106
  prNumber: filterResult.mergeRequestNumber,
115
- reason: verdict.reason,
107
+ error: error instanceof Error ? error.message : String(error),
108
+ }, 'Failed to dismiss GitHub approval review; continuing with FR comment');
109
+ }
110
+ try {
111
+ await deps.noteCommentPostGateway.postComment({
112
+ projectPath: filterResult.projectPath,
113
+ mrNumber: filterResult.mergeRequestNumber,
114
+ body: result.revokeMessage,
116
115
  });
117
- return;
118
116
  }
119
- reply.status(200).send({
120
- status: 'ignored',
121
- prNumber: filterResult.mergeRequestNumber,
122
- reason: verdict.kind,
123
- });
117
+ catch (error) {
118
+ logger.warn({
119
+ prNumber: filterResult.mergeRequestNumber,
120
+ error: error instanceof Error ? error.message : String(error),
121
+ }, 'Failed to post FR explanation comment after dismissing GitHub approval');
122
+ }
123
+ logger.info({ prNumber: filterResult.mergeRequestNumber, reason: result.reason }, 'Platform approval revoked on non-qualified PR');
124
+ sendWebhookReply(reply, {
125
+ kind: 'unapproved',
126
+ mergeRequestNumber: filterResult.mergeRequestNumber,
127
+ reason: result.reason,
128
+ }, { numberKey: 'prNumber' });
129
+ return;
130
+ }
131
+ if (result.type === 'approval-ignored') {
132
+ sendWebhookReply(reply, {
133
+ kind: 'ignored-with-number',
134
+ mergeRequestNumber: filterResult.mergeRequestNumber,
135
+ reason: result.reason,
136
+ }, { numberKey: 'prNumber' });
124
137
  return;
125
138
  }
126
- reply.status(200).send({
127
- status: 'ignored',
128
- prNumber: filterResult.mergeRequestNumber,
129
- reason: transitionResult.reason,
130
- });
131
139
  }
132
140
  async function handleGitHubIssueCommentHook(request, reply, logger, deps) {
133
141
  const parseResult = gitHubIssueCommentEventGuard.safeParse(request.body);
134
142
  if (!parseResult.success) {
135
143
  logger.debug({ errors: parseResult.error }, 'Invalid GitHub issue_comment payload (ignored)');
136
- reply.status(200).send({ status: 'ignored', reason: 'Comment payload not parseable' });
144
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'Comment payload not parseable' }, { numberKey: 'prNumber' });
137
145
  return;
138
146
  }
139
147
  const filterResult = filterGitHubIssueCommentEvent(parseResult.data);
140
148
  if (!filterResult.shouldProcess) {
141
- reply.status(200).send({ status: 'ignored', reason: filterResult.reason });
149
+ sendWebhookReply(reply, { kind: 'ignored', reason: filterResult.reason }, { numberKey: 'prNumber' });
142
150
  return;
143
151
  }
144
152
  const repoConfig = findRepositoryByRemoteUrl(parseResult.data.repository.clone_url);
145
153
  if (!repoConfig) {
146
154
  logger.debug({ projectPath: filterResult.projectPath }, 'Comment for unconfigured repository (ignored)');
147
- reply.status(200).send({ status: 'ignored', reason: 'Repository not configured' });
155
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'Repository not configured' }, { numberKey: 'prNumber' });
148
156
  return;
149
157
  }
150
158
  const mrId = `github-${filterResult.projectPath}-${filterResult.mergeRequestNumber}`;
@@ -171,12 +179,12 @@ async function handleGitHubIssueCommentHook(request, reply, logger, deps) {
171
179
  return;
172
180
  }
173
181
  if (result.kind === 'mr-not-found') {
174
- reply.status(200).send({ status: 'ignored', reason: 'PR not tracked' });
182
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'PR not tracked' }, { numberKey: 'prNumber' });
175
183
  return;
176
184
  }
177
- reply.status(200).send({ status: 'ignored', reason: 'No bypass marker' });
185
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'No bypass marker' }, { numberKey: 'prNumber' });
178
186
  }
179
- export async function handleGitHubWebhook(request, reply, logger, _trackingGateway, deps) {
187
+ export async function handleGitHubWebhook(request, reply, logger, deps) {
180
188
  const { trackAssignment } = deps;
181
189
  // 1. Verify signature
182
190
  const verification = verifyGitHubSignature(request);
@@ -197,7 +205,7 @@ export async function handleGitHubWebhook(request, reply, logger, _trackingGatew
197
205
  }
198
206
  if (eventType !== 'pull_request') {
199
207
  logger.debug({ eventType }, 'Ignoring non-PR event');
200
- reply.status(200).send({ status: 'ignored', reason: 'Not a PR event' });
208
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'Not a PR event' }, { numberKey: 'prNumber' });
201
209
  return;
202
210
  }
203
211
  // 3. Parse and validate event payload
@@ -223,18 +231,18 @@ export async function handleGitHubWebhook(request, reply, logger, _trackingGatew
223
231
  mergeRequestNumber: prNumber,
224
232
  });
225
233
  if (result.type === 'closed') {
226
- reply.status(200).send({
227
- status: 'cleaned',
228
- prNumber,
234
+ sendWebhookReply(reply, {
235
+ kind: 'cleaned',
236
+ mergeRequestNumber: prNumber,
229
237
  jobCancelled: result.jobCancelled,
230
238
  trackingArchived: result.trackingArchived,
231
- });
239
+ }, { numberKey: 'prNumber' });
232
240
  return;
233
241
  }
234
242
  }
235
243
  // No repo config, just acknowledge
236
244
  logger.info({ prNumber, repo: projectPath }, 'PR closed but repo not configured');
237
- reply.status(200).send({ status: 'ignored', reason: 'PR closed, repo not configured' });
245
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'PR closed, repo not configured' }, { numberKey: 'prNumber' });
238
246
  return;
239
247
  }
240
248
  // 3b. Filter for review request OR label trigger
@@ -268,7 +276,7 @@ export async function handleGitHubWebhook(request, reply, logger, _trackingGatew
268
276
  });
269
277
  if (eligibility.type === 'followup-skipped' &&
270
278
  eligibility.reason === 'Auto-followup disabled') {
271
- reply.status(200).send({ status: 'ignored', reason: 'Auto-followup disabled' });
279
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'Auto-followup disabled' }, { numberKey: 'prNumber' });
272
280
  return;
273
281
  }
274
282
  if (eligibility.type === 'followup-eligible') {
@@ -289,23 +297,21 @@ export async function handleGitHubWebhook(request, reply, logger, _trackingGatew
289
297
  jobType: 'followup',
290
298
  sourceForkCloneUrl: computeSourceForkCloneUrl(event.pull_request),
291
299
  };
292
- const followupBudgetDecision = await deps.enforceBudget.execute({
293
- localPaths: listEnabledLocalPaths(deps.getRepositories),
300
+ const followupSizeGuard = await applyDiffSizeGuard({
301
+ projectIdentifier: updateResult.projectPath,
302
+ localPath: updateRepoConfig.localPath,
303
+ mergeRequestNumber: updateResult.mergeRequestNumber,
304
+ mode: 'followup',
305
+ deps: {
306
+ guardDiffSize: deps.guardDiffSize,
307
+ getMaxDiffLines: deps.getMaxDiffLines,
308
+ noteCommentPostGateway: deps.noteCommentPostGateway,
309
+ approvalRevocationGateway: deps.approvalRevocationGateway,
310
+ },
311
+ logger,
294
312
  });
295
- if (!followupBudgetDecision.accepted) {
296
- logger.warn({
297
- prNumber: followupJob.mrNumber,
298
- limitUsd: followupBudgetDecision.status.limitUsd,
299
- consumedUsd: followupBudgetDecision.status.consumedUsd,
300
- }, 'Budget exceeded, followup not enqueued');
301
- deps.broadcastBudgetExceeded({
302
- mrNumber: followupJob.mrNumber,
303
- platform: 'github',
304
- projectPath: followupJob.projectPath,
305
- limitUsd: followupBudgetDecision.status.limitUsd,
306
- consumedUsd: followupBudgetDecision.status.consumedUsd,
307
- });
308
- reply.status(200).send({ status: 'rejected', reason: 'budget-exceeded' });
313
+ if (followupSizeGuard.blocked) {
314
+ reply.status(200).send({ status: 'rejected', reason: 'oversized' });
309
315
  return;
310
316
  }
311
317
  const followupProcessor = async (j, signal) => {
@@ -318,44 +324,52 @@ export async function handleGitHubWebhook(request, reply, logger, _trackingGatew
318
324
  qualityThreshold: loadProjectConfig(j.localPath)?.qualityThreshold ?? null,
319
325
  });
320
326
  };
321
- if (deps.gateClaudeInvocation) {
322
- const gateResult = await deps.gateClaudeInvocation.execute({
323
- job: followupJob,
324
- triggerSource: 'webhook-followup',
325
- processor: followupProcessor,
326
- });
327
- if (gateResult.status === 'pending') {
328
- reply.status(202).send({
329
- status: 'pending-confirmation',
330
- pendingId: gateResult.pendingId,
331
- prNumber: updateResult.mergeRequestNumber,
332
- });
333
- return;
334
- }
335
- }
336
- else {
337
- await enqueueReview(followupJob, followupProcessor);
338
- }
339
- reply.status(202).send({
340
- status: 'followup-queued',
327
+ const followupVerdict = await processReviewRequest({
328
+ job: followupJob,
329
+ processor: followupProcessor,
330
+ triggerSource: 'webhook-followup',
331
+ localPaths: listEnabledLocalPaths(deps.getRepositories),
332
+ actorUsername: event.sender?.login ?? 'unknown',
333
+ projectPath: updateResult.projectPath,
334
+ gateActorTrust: false,
335
+ }, {
336
+ enforceBudget: deps.enforceBudget,
337
+ gateClaudeInvocation: deps.gateClaudeInvocation,
338
+ enqueue: enqueueReview,
339
+ logger,
340
+ });
341
+ sendReviewRequestReply(reply, followupVerdict, {
342
+ numberKey: 'prNumber',
343
+ mergeRequestNumber: updateResult.mergeRequestNumber,
341
344
  jobId: followupJobId,
342
- prNumber: updateResult.mergeRequestNumber,
345
+ flow: 'followup',
346
+ onBudgetExceeded: (status) => {
347
+ logger.warn({
348
+ prNumber: followupJob.mrNumber,
349
+ limitUsd: status.limitUsd,
350
+ consumedUsd: status.consumedUsd,
351
+ }, 'Budget exceeded, followup not enqueued');
352
+ deps.broadcastBudgetExceeded({
353
+ mrNumber: followupJob.mrNumber,
354
+ platform: 'github',
355
+ projectPath: followupJob.projectPath,
356
+ limitUsd: status.limitUsd,
357
+ consumedUsd: status.consumedUsd,
358
+ });
359
+ },
343
360
  });
344
361
  return;
345
362
  }
346
363
  }
347
364
  }
348
- reply.status(200).send({ status: 'ignored', reason: filterResult.reason });
365
+ sendWebhookReply(reply, { kind: 'ignored', reason: filterResult.reason }, { numberKey: 'prNumber' });
349
366
  return;
350
367
  }
351
368
  // 4. Find repository configuration
352
369
  const repoConfig = findRepositoryByRemoteUrl(event.repository.clone_url);
353
370
  if (!repoConfig) {
354
371
  logger.warn({ cloneUrl: event.repository.clone_url }, 'Projet non configuré');
355
- reply.status(200).send({
356
- status: 'ignored',
357
- reason: 'Repository not configured',
358
- });
372
+ sendWebhookReply(reply, { kind: 'ignored', reason: 'Repository not configured' }, { numberKey: 'prNumber' });
359
373
  return;
360
374
  }
361
375
  // 5. Track PR assignment with user info
@@ -414,70 +428,54 @@ export async function handleGitHubWebhook(request, reply, logger, _trackingGatew
414
428
  sizeMetrics,
415
429
  sourceForkCloneUrl: computeSourceForkCloneUrl(event.pull_request),
416
430
  };
417
- const budgetDecision = await deps.enforceBudget.execute({
418
- localPaths: listEnabledLocalPaths(deps.getRepositories),
431
+ const reviewSizeGuard = await applyDiffSizeGuard({
432
+ projectIdentifier: filterResult.projectPath,
433
+ localPath: repoConfig.localPath,
434
+ mergeRequestNumber: filterResult.mergeRequestNumber,
435
+ mode: 'review',
436
+ deps: {
437
+ guardDiffSize: deps.guardDiffSize,
438
+ getMaxDiffLines: deps.getMaxDiffLines,
439
+ noteCommentPostGateway: deps.noteCommentPostGateway,
440
+ approvalRevocationGateway: deps.approvalRevocationGateway,
441
+ },
442
+ logger,
419
443
  });
420
- if (!budgetDecision.accepted) {
421
- logger.warn({
422
- mrNumber: job.mrNumber,
423
- limitUsd: budgetDecision.status.limitUsd,
424
- consumedUsd: budgetDecision.status.consumedUsd,
425
- }, 'Budget exceeded, review not enqueued');
426
- deps.broadcastBudgetExceeded({
427
- mrNumber: job.mrNumber,
428
- platform: 'github',
429
- projectPath: job.projectPath,
430
- limitUsd: budgetDecision.status.limitUsd,
431
- consumedUsd: budgetDecision.status.consumedUsd,
432
- });
433
- reply.status(200).send({ status: 'rejected', reason: 'budget-exceeded' });
444
+ if (reviewSizeGuard.blocked) {
445
+ reply.status(200).send({ status: 'rejected', reason: 'oversized' });
434
446
  return;
435
447
  }
436
448
  const reviewProcessor = buildGitHubReviewProcessor(deps, logger)(job);
437
- if (deps.gateClaudeInvocation) {
438
- const gateResult = await deps.gateClaudeInvocation.execute({
439
- job,
440
- triggerSource: 'webhook-initial',
441
- processor: reviewProcessor,
442
- });
443
- if (gateResult.status === 'pending') {
444
- reply.status(202).send({
445
- status: 'pending-confirmation',
446
- pendingId: gateResult.pendingId,
447
- prNumber: filterResult.mergeRequestNumber,
448
- });
449
- return;
450
- }
451
- if (gateResult.status === 'enqueued') {
452
- reply.status(202).send({
453
- status: 'queued',
454
- jobId,
455
- prNumber: filterResult.mergeRequestNumber,
449
+ const verdict = await processReviewRequest({
450
+ job,
451
+ processor: reviewProcessor,
452
+ triggerSource: 'webhook-initial',
453
+ localPaths: listEnabledLocalPaths(deps.getRepositories),
454
+ actorUsername: event.sender?.login ?? 'unknown',
455
+ projectPath: filterResult.projectPath,
456
+ gateActorTrust: false,
457
+ }, {
458
+ enforceBudget: deps.enforceBudget,
459
+ gateClaudeInvocation: deps.gateClaudeInvocation,
460
+ enqueue: enqueueReview,
461
+ logger,
462
+ });
463
+ sendReviewRequestReply(reply, verdict, {
464
+ numberKey: 'prNumber',
465
+ mergeRequestNumber: filterResult.mergeRequestNumber,
466
+ jobId,
467
+ flow: 'initial',
468
+ onBudgetExceeded: (status) => {
469
+ logger.warn({ mrNumber: job.mrNumber, limitUsd: status.limitUsd, consumedUsd: status.consumedUsd }, 'Budget exceeded, review not enqueued');
470
+ deps.broadcastBudgetExceeded({
471
+ mrNumber: job.mrNumber,
472
+ platform: 'github',
473
+ projectPath: job.projectPath,
474
+ limitUsd: status.limitUsd,
475
+ consumedUsd: status.consumedUsd,
456
476
  });
457
- return;
458
- }
459
- reply.status(200).send({
460
- status: 'deduplicated',
461
- jobId,
462
- reason: 'Review already in progress or recently completed',
463
- });
464
- return;
465
- }
466
- const enqueued = await enqueueReview(job, reviewProcessor);
467
- if (enqueued) {
468
- reply.status(202).send({
469
- status: 'queued',
470
- jobId,
471
- prNumber: filterResult.mergeRequestNumber,
472
- });
473
- }
474
- else {
475
- reply.status(200).send({
476
- status: 'deduplicated',
477
- jobId,
478
- reason: 'Review already in progress or recently completed',
479
- });
480
- }
477
+ },
478
+ });
481
479
  }
482
480
  export function buildGitHubReviewProcessor(deps, _logger) {
483
481
  return (_job) => async (j, signal) => {
@@ -1 +1 @@
1
- {"version":3,"file":"github.controller.js","sourceRoot":"","sources":["../../../../../../src/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.controller.js","sourceRoot":"","sources":["../../../../../../src/modules/platform-integration/interface-adapters/controllers/webhook/github.controller.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import type { DiffMetadataFetchGateway } from '../../../../../modules/platform-i
8
8
  import type { IdempotencyStore } from '../../../../../modules/platform-integration/entities/idempotency/idempotencyStore.gateway.js';
9
9
  import type { NoteCommentPostGateway } from '../../../../../modules/platform-integration/entities/noteComment/noteCommentPost.gateway.js';
10
10
  import type { ThreadFetchGateway } from '../../../../../modules/platform-integration/entities/threadFetch/threadFetch.gateway.js';
11
+ import type { GuardDiffSizeUseCase } from '../../../../../modules/platform-integration/usecases/guardDiffSize.usecase.js';
11
12
  import type { IsTrustedActorUseCase } from '../../../../../modules/platform-integration/usecases/isTrustedActor.usecase.js';
12
13
  import type { ProcessWebhook } from '../../../../../modules/platform-integration/usecases/processWebhook.usecase.js';
13
14
  import type { ReviewContextGateway } from '../../../../../modules/review-execution/entities/reviewContext/reviewContext.gateway.js';
@@ -17,7 +18,6 @@ import type { GateClaudeInvocationUseCase } from '../../../../../modules/review-
17
18
  import type { HandleClose } from '../../../../../modules/review-execution/usecases/handleClose.usecase.js';
18
19
  import type { DiffStatsFetchGateway } from '../../../../../modules/shared-kernel/entities/diffStats/diffStatsFetch.gateway.js';
19
20
  import type { EnforceBudgetUseCase } from '../../../../../modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.js';
20
- import type { ReviewRequestTrackingGateway } from '../../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
21
21
  import type { CheckFollowupNeededUseCase } from '../../../../../modules/tracking/usecases/tracking/checkFollowupNeeded.usecase.js';
22
22
  import type { HandlePlatformApprovalUseCase } from '../../../../../modules/tracking/usecases/tracking/handlePlatformApproval.usecase.js';
23
23
  import type { RecordBypassUseCase } from '../../../../../modules/tracking/usecases/tracking/recordBypass.usecase.js';
@@ -55,9 +55,11 @@ export interface GitLabWebhookDependencies {
55
55
  approvalRevocationGateway: ApprovalRevocationGateway;
56
56
  idempotencyStore?: IdempotencyStore;
57
57
  getQualityThreshold: (projectPath: string) => number | null;
58
+ guardDiffSize: GuardDiffSizeUseCase;
59
+ getMaxDiffLines: (localPath: string) => number;
58
60
  now: () => string;
59
61
  }
60
- export declare function handleGitLabWebhook(request: FastifyRequest, reply: FastifyReply, logger: Logger, _trackingGateway: ReviewRequestTrackingGateway, deps: GitLabWebhookDependencies): Promise<void>;
62
+ export declare function handleGitLabWebhook(request: FastifyRequest, reply: FastifyReply, logger: Logger, deps: GitLabWebhookDependencies): Promise<void>;
61
63
  type GitLabReviewProcessorDeps = Pick<GitLabWebhookDependencies, 'reviewContextGateway' | 'diffStatsFetchGateway' | 'recordCompletion' | 'noteCommentPostGateway' | 'executeReview'>;
62
64
  export declare function buildGitLabReviewProcessor(deps: GitLabReviewProcessorDeps, _logger: Logger): ProcessorBuilder;
63
65
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitlab.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAA+B,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0FAA0F,CAAC;AAC1I,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8EAA8E,CAAC;AAG7H,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iFAAiF,CAAC;AACxH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gFAAgF,CAAC;AAC7H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4EAA4E,CAAC;AAcrH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kEAAkE,CAAC;AAC7G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mEAAmE,CAAC;AAE/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mEAAmE,CAAC;AAMxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4EAA4E,CAAC;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AACjG,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,8DAA8D,CAAC;AACtE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AACvH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4EAA4E,CAAC;AACvH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AACtH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wEAAwE,CAAC;AAC5H,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAC;AACxG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AACpG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wEAAwE,CAAC;AAC5H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACtG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AAC9G,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AAC9G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oEAAoE,CAAC;AAO/G,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB/D;AAgBD,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,eAAe,EAAE,sBAAsB,CAAC;IACxC,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,sBAAsB,CAAC;IACxC,mBAAmB,EAAE,0BAA0B,CAAC;IAChD,WAAW,EAAE,kBAAkB,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;IACrD,uBAAuB,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClE,eAAe,EAAE,MAAM,gBAAgB,EAAE,CAAC;IAC1C,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAC9C,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,cAAc,EAAE,oBAAoB,CAAC;IACrC,YAAY,EAAE,mBAAmB,CAAC;IAClC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,sBAAsB,EAAE,6BAA6B,CAAC;IACtD,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC5D,aAAa,EAAE,oBAAoB,CAAC;IACpC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAkID,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4gBf;AAED,KAAK,yBAAyB,GAAG,IAAI,CACnC,yBAAyB,EACvB,sBAAsB,GACtB,uBAAuB,GACvB,kBAAkB,GAClB,wBAAwB,GACxB,eAAe,CAClB,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,MAAM,GACd,gBAAgB,CAgBlB"}