@generacy-ai/orchestrator 0.8.0 → 0.10.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 (116) hide show
  1. package/dist/config/loader.d.ts.map +1 -1
  2. package/dist/config/loader.js +15 -0
  3. package/dist/config/loader.js.map +1 -1
  4. package/dist/config/schema.d.ts +30 -0
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/config/schema.js +13 -1
  7. package/dist/config/schema.js.map +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/routes/health.d.ts +7 -0
  13. package/dist/routes/health.d.ts.map +1 -1
  14. package/dist/routes/health.js +5 -0
  15. package/dist/routes/health.js.map +1 -1
  16. package/dist/routes/internal-relay-events.d.ts +2 -2
  17. package/dist/routes/internal-relay-events.d.ts.map +1 -1
  18. package/dist/routes/internal-relay-events.js +12 -0
  19. package/dist/routes/internal-relay-events.js.map +1 -1
  20. package/dist/routes/retained-tunnel-event.d.ts +20 -0
  21. package/dist/routes/retained-tunnel-event.d.ts.map +1 -0
  22. package/dist/routes/retained-tunnel-event.js +67 -0
  23. package/dist/routes/retained-tunnel-event.js.map +1 -0
  24. package/dist/server.d.ts.map +1 -1
  25. package/dist/server.js +197 -34
  26. package/dist/server.js.map +1 -1
  27. package/dist/services/adaptive-poll-controller.d.ts +75 -0
  28. package/dist/services/adaptive-poll-controller.d.ts.map +1 -0
  29. package/dist/services/adaptive-poll-controller.js +96 -0
  30. package/dist/services/adaptive-poll-controller.js.map +1 -0
  31. package/dist/services/clarification-answer-monitor-service.d.ts +93 -0
  32. package/dist/services/clarification-answer-monitor-service.d.ts.map +1 -0
  33. package/dist/services/clarification-answer-monitor-service.js +452 -0
  34. package/dist/services/clarification-answer-monitor-service.js.map +1 -0
  35. package/dist/services/failure-fingerprint-tracker.d.ts +28 -0
  36. package/dist/services/failure-fingerprint-tracker.d.ts.map +1 -0
  37. package/dist/services/failure-fingerprint-tracker.js +38 -0
  38. package/dist/services/failure-fingerprint-tracker.js.map +1 -0
  39. package/dist/services/index.d.ts +1 -0
  40. package/dist/services/index.d.ts.map +1 -1
  41. package/dist/services/index.js +3 -0
  42. package/dist/services/index.js.map +1 -1
  43. package/dist/services/label-monitor-service.d.ts +21 -2
  44. package/dist/services/label-monitor-service.d.ts.map +1 -1
  45. package/dist/services/label-monitor-service.js +47 -16
  46. package/dist/services/label-monitor-service.js.map +1 -1
  47. package/dist/services/merge-conflict-monitor-service.d.ts +14 -1
  48. package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -1
  49. package/dist/services/merge-conflict-monitor-service.js +46 -13
  50. package/dist/services/merge-conflict-monitor-service.js.map +1 -1
  51. package/dist/services/pr-feedback-monitor-service.d.ts +14 -1
  52. package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
  53. package/dist/services/pr-feedback-monitor-service.js +46 -16
  54. package/dist/services/pr-feedback-monitor-service.js.map +1 -1
  55. package/dist/services/relay-bridge.d.ts +1 -0
  56. package/dist/services/relay-bridge.d.ts.map +1 -1
  57. package/dist/services/relay-bridge.js +21 -0
  58. package/dist/services/relay-bridge.js.map +1 -1
  59. package/dist/services/smee-channel-resolver.d.ts +60 -0
  60. package/dist/services/smee-channel-resolver.d.ts.map +1 -0
  61. package/dist/services/smee-channel-resolver.js +177 -0
  62. package/dist/services/smee-channel-resolver.js.map +1 -0
  63. package/dist/services/smee-receiver.d.ts +39 -21
  64. package/dist/services/smee-receiver.d.ts.map +1 -1
  65. package/dist/services/smee-receiver.js +134 -28
  66. package/dist/services/smee-receiver.js.map +1 -1
  67. package/dist/services/webhook-setup-service.d.ts +115 -111
  68. package/dist/services/webhook-setup-service.d.ts.map +1 -1
  69. package/dist/services/webhook-setup-service.js +377 -209
  70. package/dist/services/webhook-setup-service.js.map +1 -1
  71. package/dist/types/api.d.ts +3 -0
  72. package/dist/types/api.d.ts.map +1 -1
  73. package/dist/types/api.js +1 -0
  74. package/dist/types/api.js.map +1 -1
  75. package/dist/types/monitor.d.ts +18 -2
  76. package/dist/types/monitor.d.ts.map +1 -1
  77. package/dist/worker/clarification-markers.d.ts +72 -0
  78. package/dist/worker/clarification-markers.d.ts.map +1 -1
  79. package/dist/worker/clarification-markers.js +111 -0
  80. package/dist/worker/clarification-markers.js.map +1 -1
  81. package/dist/worker/clarification-poster.d.ts +102 -6
  82. package/dist/worker/clarification-poster.d.ts.map +1 -1
  83. package/dist/worker/clarification-poster.js +299 -89
  84. package/dist/worker/clarification-poster.js.map +1 -1
  85. package/dist/worker/claude-cli-worker.d.ts +7 -0
  86. package/dist/worker/claude-cli-worker.d.ts.map +1 -1
  87. package/dist/worker/claude-cli-worker.js +3 -0
  88. package/dist/worker/claude-cli-worker.js.map +1 -1
  89. package/dist/worker/failure-fingerprint.d.ts +41 -0
  90. package/dist/worker/failure-fingerprint.d.ts.map +1 -0
  91. package/dist/worker/failure-fingerprint.js +75 -0
  92. package/dist/worker/failure-fingerprint.js.map +1 -0
  93. package/dist/worker/label-manager.d.ts +42 -0
  94. package/dist/worker/label-manager.d.ts.map +1 -1
  95. package/dist/worker/label-manager.js +108 -4
  96. package/dist/worker/label-manager.js.map +1 -1
  97. package/dist/worker/phase-loop.d.ts +30 -0
  98. package/dist/worker/phase-loop.d.ts.map +1 -1
  99. package/dist/worker/phase-loop.js +124 -26
  100. package/dist/worker/phase-loop.js.map +1 -1
  101. package/dist/worker/pr-feedback-handler.d.ts +13 -0
  102. package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
  103. package/dist/worker/pr-feedback-handler.js +48 -0
  104. package/dist/worker/pr-feedback-handler.js.map +1 -1
  105. package/dist/worker/stage-comment-manager.d.ts +5 -0
  106. package/dist/worker/stage-comment-manager.d.ts.map +1 -1
  107. package/dist/worker/stage-comment-manager.js +8 -1
  108. package/dist/worker/stage-comment-manager.js.map +1 -1
  109. package/dist/worker/terminal-label-op-error.d.ts +1 -1
  110. package/dist/worker/terminal-label-op-error.d.ts.map +1 -1
  111. package/dist/worker/terminal-label-op-error.js.map +1 -1
  112. package/dist/worker/types.d.ts +31 -0
  113. package/dist/worker/types.d.ts.map +1 -1
  114. package/dist/worker/types.js +11 -0
  115. package/dist/worker/types.js.map +1 -1
  116. package/package.json +7 -6
package/dist/server.js CHANGED
@@ -18,12 +18,14 @@ import { LabelSyncService } from './services/label-sync-service.js';
18
18
  import { LabelMonitorService } from './services/label-monitor-service.js';
19
19
  import { PrFeedbackMonitorService } from './services/pr-feedback-monitor-service.js';
20
20
  import { MergeConflictMonitorService } from './services/merge-conflict-monitor-service.js';
21
+ import { ClarificationAnswerMonitorService } from './services/clarification-answer-monitor-service.js';
21
22
  import { BaseAdvanceMonitorService } from './services/base-advance-monitor-service.js';
22
23
  import { PhaseTrackerService } from './services/phase-tracker-service.js';
23
24
  import { RedisQueueAdapter } from './services/redis-queue-adapter.js';
24
25
  import { InMemoryQueueAdapter } from './services/in-memory-queue-adapter.js';
25
26
  import { WorkerDispatcher } from './services/worker-dispatcher.js';
26
27
  import { SmeeWebhookReceiver } from './services/smee-receiver.js';
28
+ import { SmeeChannelResolver } from './services/smee-channel-resolver.js';
27
29
  import { RelayBridge } from './services/relay-bridge.js';
28
30
  import { LeaseManager } from './services/lease-manager.js';
29
31
  import { WebhookSetupService } from './services/webhook-setup-service.js';
@@ -130,6 +132,12 @@ export async function createServer(options = {}) {
130
132
  // service does not emit until monitors call recordResult/maybeRequestRefresh,
131
133
  // which happens after server.listen() and (in wizard mode) after activation.
132
134
  let relayClientRef = null;
135
+ // #972: StatusReporter ref populated by `initializeRelayBridge()` on both
136
+ // wizard and existing-key paths. Read through by the WebhookSetupService
137
+ // fail-loud triple's `pushStatus('degraded', ...)` call; safe because the
138
+ // 403 fires from a network round-trip, so the ref is populated by the time
139
+ // it dereferences.
140
+ let statusReporterRef = null;
133
141
  const githubAuthHealth = !isWorkerMode
134
142
  ? new GitHubAuthHealthService({
135
143
  emitEvent: (payload) => {
@@ -268,10 +276,26 @@ export async function createServer(options = {}) {
268
276
  // (dedupe on validate-fix:<evidenceHash>). Redis is optional; when
269
277
  // absent the worker degrades gracefully to no fix cycle.
270
278
  const workerPhaseTracker = new PhaseTrackerService(server.log, redisClient);
279
+ // #942: FailureFingerprintTracker — scans issue failure-alert comments to
280
+ // count prior same-fingerprint failures. Construction is best-effort:
281
+ // if it throws (should never happen for the GitHub-scan impl since it's a
282
+ // pure ctor), we log and pass undefined so escalation degrades to a no-op.
283
+ let workerFailureFingerprintTracker;
284
+ try {
285
+ const { GitHubCommentFailureFingerprintTracker } = await import('./services/failure-fingerprint-tracker.js');
286
+ const trackerGithub = createGitHubClient();
287
+ workerFailureFingerprintTracker = new GitHubCommentFailureFingerprintTracker(trackerGithub, server.log);
288
+ }
289
+ catch (err) {
290
+ server.log.warn({ err: err instanceof Error ? err.message : String(err) }, 'Failed to construct FailureFingerprintTracker — repeat-failure escalation disabled');
291
+ }
271
292
  const cliWorker = new ClaudeCliWorker(config.worker, server.log, {
272
293
  jobEventEmitter,
273
294
  tokenProvider: githubTokenProvider,
274
295
  phaseTracker: workerPhaseTracker,
296
+ ...(workerFailureFingerprintTracker
297
+ ? { failureFingerprintTracker: workerFailureFingerprintTracker }
298
+ : {}),
275
299
  });
276
300
  // #889: terminal-failure recovery handler. On WorkerResult.failed-terminal:
277
301
  // (a) best-effort agent:error label add via a fresh LabelManager;
@@ -293,18 +317,26 @@ export async function createServer(options = {}) {
293
317
  }
294
318
  try {
295
319
  const stageCommentManager = new StageCommentManager(github, item.owner, item.repo, item.issueNumber, server.log);
320
+ const { computeFailureFingerprint } = await import('./worker/failure-fingerprint.js');
296
321
  const runId = crypto.randomUUID();
322
+ const evidence = {
323
+ command: `gh (${failureMetadata.labelOp})`,
324
+ exitDescriptor: 'exited 1',
325
+ // #890 renamed CommandExitEvidence.stderrTail → outputTail.
326
+ outputTail: failureMetadata.ghStderr,
327
+ };
328
+ // #942: label-op alerts still get a fingerprint marker so the comment
329
+ // renders consistently. No history lookup — we're outside the phase
330
+ // loop, occurrence is always 1.
331
+ const fingerprint = computeFailureFingerprint({ phase: failureMetadata.site, evidence });
297
332
  await stageCommentManager.postFailureAlert({
298
333
  stage: 'label-op',
299
334
  runId,
300
335
  phase: failureMetadata.site,
301
336
  labelOp: failureMetadata.labelOp,
302
- evidence: {
303
- command: `gh (${failureMetadata.labelOp})`,
304
- exitDescriptor: 'exited 1',
305
- // #890 renamed CommandExitEvidence.stderrTail → outputTail.
306
- outputTail: failureMetadata.ghStderr,
307
- },
337
+ evidence,
338
+ fingerprint,
339
+ occurrence: 1,
308
340
  });
309
341
  }
310
342
  catch (err) {
@@ -330,6 +362,7 @@ export async function createServer(options = {}) {
330
362
  let labelMonitorService = null;
331
363
  let prFeedbackMonitorService = null;
332
364
  let mergeConflictMonitorService = null;
365
+ let clarificationAnswerMonitorService = null;
333
366
  let baseAdvanceMonitorService = null;
334
367
  let smeeReceiver = null;
335
368
  if (!isWorkerMode && config.labelMonitor && config.repositories.length > 0) {
@@ -339,23 +372,149 @@ export async function createServer(options = {}) {
339
372
  const monitorConfig = config.smee.channelUrl
340
373
  ? { ...config.monitor, pollIntervalMs: config.smee.fallbackPollIntervalMs, adaptivePolling: false }
341
374
  : config.monitor;
342
- labelMonitorService = new LabelMonitorService(server.log, createGitHubClient, phaseTracker, queueAdapter, monitorConfig, config.repositories, clusterGithubUsername, githubTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId);
343
- // Create SmeeWebhookReceiver if Smee channel URL is configured
344
- if (config.smee.channelUrl) {
375
+ labelMonitorService = new LabelMonitorService(server.log, createGitHubClient, phaseTracker, queueAdapter, monitorConfig, config.repositories, clusterGithubUsername, githubTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId, config.smee.channelUrl != null);
376
+ // #987: construct the three sibling monitors before `startSmeePipeline` so
377
+ // the receiver's fan-out closure captures live refs (the sync
378
+ // `config.smee.channelUrl` path runs the pipeline before the previous
379
+ // construction site at line ~615). #953 initial-webhooksConfigured is
380
+ // still `config.smee.channelUrl != null` — the runtime flip via
381
+ // setWebhooksConfigured happens in the `onConnected` callback below.
382
+ if (config.prMonitor.enabled) {
383
+ prFeedbackMonitorService = new PrFeedbackMonitorService(server.log, createGitHubClient, queueAdapter, config.prMonitor, config.repositories, clusterGithubUsername, githubTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId, config.smee.channelUrl != null);
384
+ mergeConflictMonitorService = new MergeConflictMonitorService(server.log, createGitHubClient, queueAdapter, config.prMonitor, config.repositories, clusterGithubUsername, githubTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId, config.smee.channelUrl != null);
385
+ clarificationAnswerMonitorService = new ClarificationAnswerMonitorService(server.log, createGitHubClient, queueAdapter, config.prMonitor, config.repositories, clusterGithubUsername, githubTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId, config.smee.channelUrl != null);
386
+ }
387
+ // Wire the smee pipeline (receiver + optional webhook setup) for a resolved URL.
388
+ // Captures labelMonitorService (+ sibling monitors), config, githubTokenProvider,
389
+ // clusterGithubUsername from the enclosing scope. See
390
+ // specs/952-summary-no-automated-cluster/contracts/server-pipeline.md
391
+ // and specs/987-summary-cluster-where-smee/contracts/smee-receiver-contract.md.
392
+ const startSmeePipeline = (channelUrl) => {
345
393
  const watchedRepos = new Set(config.repositories.map(r => `${r.owner}/${r.repo}`));
346
- smeeReceiver = new SmeeWebhookReceiver(server.log, labelMonitorService, { channelUrl: config.smee.channelUrl, watchedRepos, clusterGithubUsername });
347
- server.log.info({ channelUrl: config.smee.channelUrl }, 'Smee webhook receiver configured');
394
+ const receiver = new SmeeWebhookReceiver(server.log, labelMonitorService, {
395
+ channelUrl,
396
+ watchedRepos,
397
+ clusterGithubUsername,
398
+ // #987 FR-004: broad `recordWebhookEvent()` fan-out + per-event
399
+ // processing dispatch (PR-review → PR-feedback, issue_comment →
400
+ // clarification). Refs may be null when `prMonitor.enabled === false`.
401
+ ...(prFeedbackMonitorService ? { prFeedbackMonitor: prFeedbackMonitorService } : {}),
402
+ ...(mergeConflictMonitorService ? { mergeConflictMonitor: mergeConflictMonitorService } : {}),
403
+ ...(clarificationAnswerMonitorService ? { clarificationAnswerMonitor: clarificationAnswerMonitorService } : {}),
404
+ // #987 FR-002: on receiver-connect, flip `webhooksConfigured=true`
405
+ // on all four monitors and align their base cadence to the smee
406
+ // fallback interval. Fires exactly once; idempotent by construction.
407
+ onConnected: () => {
408
+ const opts = { basePollIntervalMs: config.smee.fallbackPollIntervalMs };
409
+ labelMonitorService?.setWebhooksConfigured(true, opts);
410
+ prFeedbackMonitorService?.setWebhooksConfigured(true, opts);
411
+ mergeConflictMonitorService?.setWebhooksConfigured(true, opts);
412
+ clarificationAnswerMonitorService?.setWebhooksConfigured(true, opts);
413
+ server.log.info({ basePollIntervalMs: opts.basePollIntervalMs }, 'Smee receiver connected — monitors flipped to webhook mode');
414
+ },
415
+ });
416
+ smeeReceiver = receiver;
417
+ server.log.info({ channelUrl }, 'Smee webhook receiver configured');
418
+ receiver.start().catch((error) => {
419
+ server.log.error({ err: error }, 'Smee webhook receiver failed');
420
+ });
421
+ if (config.webhookSetup.enabled) {
422
+ // #972: DI hooks for fail-loud triple on webhook-registration 403.
423
+ // - sendRelayEvent: mirrors the closure used by PostActivationRetryService
424
+ // / BootResumeService at the initializeRelayBridge sites; dereferences
425
+ // relayClientRef at emit time so late relay-client init is tolerated.
426
+ // - statusReporter: exposes the same StatusReporter instance the relay
427
+ // bridge init returns; wrapped as a thin object so the ref is read
428
+ // at pushStatus() call time (the 403 fires from a network round-trip,
429
+ // so the ref is populated by then even on the wizard-mode path).
430
+ // - channelFilePath: same path SmeeChannelResolver writes to.
431
+ // - installationIdProvider: null in v1 — installation id is not stored
432
+ // in .agency/credentials.yaml (it lives inside the sealed credential
433
+ // value in credentials.dat). Diagnostic-only per spec, so falling
434
+ // back to null is safe (data-model.md §"WebhookRegistrationForbiddenEvent").
435
+ const webhookSetupService = new WebhookSetupService(server.log, githubTokenProvider, {
436
+ sendRelayEvent: (channel, payload) => {
437
+ const client = relayClientRef;
438
+ if (!client || !client.isConnected)
439
+ return;
440
+ client.send({
441
+ type: 'event',
442
+ event: channel,
443
+ data: payload,
444
+ timestamp: new Date().toISOString(),
445
+ });
446
+ },
447
+ statusReporter: {
448
+ pushStatus: async (status, reason) => {
449
+ const reporter = statusReporterRef;
450
+ if (!reporter)
451
+ return;
452
+ await reporter.pushStatus(status, reason);
453
+ },
454
+ },
455
+ channelFilePath: config.smee.channelFilePath,
456
+ installationIdProvider: async () => null,
457
+ });
458
+ webhookSetupService.ensureWebhooks(channelUrl, config.repositories).catch((error) => {
459
+ server.log.error({ err: error }, 'Webhook setup failed');
460
+ });
461
+ }
462
+ else {
463
+ // #954: surface the deliberate webhook-setup opt-out rather than
464
+ // staying silent. Fires whenever a smee pipeline starts (static,
465
+ // persisted, or provisioned channel) while auto-setup is disabled —
466
+ // no GitHub webhooks will be created for the monitored repos.
467
+ server.log.info({ remediation: ['GENERACY_WEBHOOK_SETUP_ENABLED', 'orchestrator.webhookSetup.enabled'] }, 'Webhook auto-setup disabled; no GitHub webhooks will be created for monitored repos');
468
+ }
469
+ };
470
+ if (config.smee.channelUrl) {
471
+ // Env/yaml URL path: preserve today's synchronous ordering so `smeeReceiver`
472
+ // is non-null before onReady runs (existing tests rely on this).
473
+ startSmeePipeline(config.smee.channelUrl);
348
474
  }
349
- // Initialize PR feedback monitor service (if enabled). #879: in-flight
350
- // dedupe via QueueManager.enqueueIfAbsent; no PhaseTracker dependency.
351
- if (config.prMonitor.enabled) {
352
- prFeedbackMonitorService = new PrFeedbackMonitorService(server.log, createGitHubClient, queueAdapter, config.prMonitor, config.repositories, clusterGithubUsername, githubTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId);
353
- // #898: Merge-conflict monitor reuses the PR-monitor config for poll
354
- // cadence (same order of magnitude). Enqueues `resolve-merge-conflicts`
355
- // items when the pause label pair (`waiting-for:merge-conflicts` +
356
- // `agent:paused`) is detected on an assigned open issue.
357
- mergeConflictMonitorService = new MergeConflictMonitorService(server.log, createGitHubClient, queueAdapter, config.prMonitor, config.repositories, clusterGithubUsername, githubTokenProvider, githubAuthHealth ?? undefined, githubAppCredentialId);
475
+ else {
476
+ // No URL configured: kick off async resolver after server.listen() via onReady.
477
+ // Fire-and-forget; never blocks listen. Belt-and-braces predicate matches the
478
+ // outer gate so future refactors can't accidentally invoke on worker-mode boot.
479
+ server.addHook('onReady', async () => {
480
+ if (isWorkerMode || !config.labelMonitor || config.repositories.length === 0)
481
+ return;
482
+ const resolver = new SmeeChannelResolver(server.log, {
483
+ channelFilePath: config.smee.channelFilePath,
484
+ workspaceMirrorPath: config.smee.workspaceMirrorPath === ''
485
+ ? undefined
486
+ : config.smee.workspaceMirrorPath,
487
+ });
488
+ resolver.resolve()
489
+ .then((result) => {
490
+ if (result) {
491
+ server.log.info({ channelUrl: result.channelUrl, source: result.source }, 'Resolved smee channel URL — starting pipeline');
492
+ startSmeePipeline(result.channelUrl);
493
+ }
494
+ else {
495
+ // #954: the cluster is genuinely webhook-less — no static URL,
496
+ // no persisted channel, and provisioning failed — so polling is
497
+ // the only feeder. Emit the polling-fallback summary with the
498
+ // resulting latency characteristics + remediation pointers. This
499
+ // is the true "no smee" moment under the #952 resolver model
500
+ // (not construction time, where a channel may still be resolved).
501
+ server.log.warn({
502
+ pollIntervalMs: monitorConfig.pollIntervalMs,
503
+ completedCheckInterval: LabelMonitorService.COMPLETED_CHECK_INTERVAL,
504
+ processLatencyMs: monitorConfig.pollIntervalMs,
505
+ completedLatencyMs: monitorConfig.pollIntervalMs * LabelMonitorService.COMPLETED_CHECK_INTERVAL,
506
+ remediation: ['SMEE_CHANNEL_URL', 'orchestrator.smeeChannelUrl'],
507
+ }, 'No smee channel configured; polling fallback active');
508
+ }
509
+ })
510
+ .catch((error) => {
511
+ server.log.error({ err: error }, 'Unexpected error resolving smee channel URL');
512
+ });
513
+ });
358
514
  }
515
+ // #987: PR-feedback, merge-conflict, and clarification-answer monitors
516
+ // were moved above `startSmeePipeline` so the receiver's fan-out closure
517
+ // captures live refs. See the construction block after LabelMonitorService.
359
518
  // #892: Initialize base-advance monitor. Enqueues a resume for any open PR
360
519
  // sitting at `failed:validate` whose base branch head SHA has advanced.
361
520
  // The resume path clears the failed:validate label and re-runs validate
@@ -429,7 +588,7 @@ export async function createServer(options = {}) {
429
588
  relayBridgeRef = bridge;
430
589
  conversationManager = convMgr;
431
590
  activationPending = false;
432
- }, (client) => { relayClientRef = client; }).catch((error) => {
591
+ }, (client) => { relayClientRef = client; }, (reporter) => { statusReporterRef = reporter; }).catch((error) => {
433
592
  activationPending = false;
434
593
  server.log.warn(`Cluster activation skipped: ${error instanceof Error ? error.message : String(error)}`);
435
594
  });
@@ -439,6 +598,7 @@ export async function createServer(options = {}) {
439
598
  const result = await initializeRelayBridge(config, server, apiKeyStore, (client) => { relayClientRef = client; });
440
599
  relayBridge = result.relayBridge;
441
600
  relayBridgeRef = result.relayBridge;
601
+ statusReporterRef = result.statusReporter;
442
602
  // Detect identity split (env GENERACY_CLUSTER_ID vs persisted cluster.json.cluster_id).
443
603
  // Best-effort: drops event if relay client unavailable. Once per process lifetime (#750).
444
604
  detectIdentitySplit({
@@ -487,6 +647,7 @@ export async function createServer(options = {}) {
487
647
  displayName: config.cluster?.displayName,
488
648
  },
489
649
  githubAuth: () => githubAuthHealth?.snapshot(),
650
+ smeeConfigured: !!config.smee.channelUrl,
490
651
  });
491
652
  await setupDispatchRoutes(server, queueAdapter);
492
653
  }
@@ -513,6 +674,7 @@ export async function createServer(options = {}) {
513
674
  displayName: config.cluster?.displayName,
514
675
  },
515
676
  githubAuth: () => githubAuthHealth?.snapshot(),
677
+ smeeConfigured: !!config.smee.channelUrl,
516
678
  },
517
679
  });
518
680
  // Register webhook routes inside an encapsulated plugin so the custom
@@ -596,25 +758,22 @@ export async function createServer(options = {}) {
596
758
  server.log.error({ err: error }, 'Merge-conflict monitor polling failed');
597
759
  });
598
760
  }
761
+ if (clarificationAnswerMonitorService) {
762
+ clarificationAnswerMonitorService.startPolling().catch((error) => {
763
+ server.log.error({ err: error }, 'Clarification-answer monitor polling failed');
764
+ });
765
+ }
599
766
  if (baseAdvanceMonitorService) {
600
767
  baseAdvanceMonitorService.startPolling().catch((error) => {
601
768
  server.log.error({ err: error }, 'Base-advance monitor polling failed');
602
769
  });
603
770
  }
604
- if (smeeReceiver) {
605
- smeeReceiver.start().catch((error) => {
606
- server.log.error({ err: error }, 'Smee webhook receiver failed');
607
- });
608
- }
771
+ // smeeReceiver.start() and WebhookSetupService.ensureWebhooks() are invoked
772
+ // from startSmeePipeline() at construction time (sync path) or from the
773
+ // resolver's .then() callback (async path); no separate onReady wiring needed.
609
774
  if (credentialExpiryWatcher) {
610
775
  credentialExpiryWatcher.start();
611
776
  }
612
- if (config.webhookSetup.enabled && config.smee.channelUrl) {
613
- const webhookSetupService = new WebhookSetupService(server.log, githubTokenProvider);
614
- webhookSetupService.ensureWebhooks(config.smee.channelUrl, config.repositories).catch((error) => {
615
- server.log.error({ err: error }, 'Webhook setup failed');
616
- });
617
- }
618
777
  // Only start relay bridge here if it was initialized synchronously.
619
778
  // The background activation path calls relayBridge.start() itself.
620
779
  if (relayBridge && !activationPending) {
@@ -662,6 +821,9 @@ export async function createServer(options = {}) {
662
821
  if (mergeConflictMonitorService) {
663
822
  mergeConflictMonitorService.stopPolling();
664
823
  }
824
+ if (clarificationAnswerMonitorService) {
825
+ clarificationAnswerMonitorService.stopPolling();
826
+ }
665
827
  if (baseAdvanceMonitorService) {
666
828
  await baseAdvanceMonitorService.stopPolling();
667
829
  }
@@ -742,7 +904,7 @@ export async function createProductionServer() {
742
904
  * Run cluster activation in the background so server.listen() is not blocked.
743
905
  * On success, initializes relay bridge, conversation manager, and starts the relay.
744
906
  */
745
- async function activateInBackground(config, server, apiKeyStore, onInitialized, setRelayClient) {
907
+ async function activateInBackground(config, server, apiKeyStore, onInitialized, setRelayClient, setStatusReporter) {
746
908
  const initialWorkersRaw = process.env['GENERACY_INITIAL_WORKERS'];
747
909
  let initialWorkers;
748
910
  if (initialWorkersRaw != null && initialWorkersRaw !== '') {
@@ -780,10 +942,11 @@ async function activateInBackground(config, server, apiKeyStore, onInitialized,
780
942
  }
781
943
  server.log.info('Cluster activation complete');
782
944
  let localRelayClient = null;
783
- const { relayBridge } = await initializeRelayBridge(config, server, apiKeyStore, (client) => {
945
+ const { relayBridge, statusReporter } = await initializeRelayBridge(config, server, apiKeyStore, (client) => {
784
946
  localRelayClient = client;
785
947
  setRelayClient?.(client);
786
948
  });
949
+ setStatusReporter?.(statusReporter);
787
950
  const conversationManager = await initializeConversationManager(config, server, relayBridge);
788
951
  onInitialized(relayBridge, conversationManager);
789
952
  // Server is already listening — start relay bridge directly.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAA4D,MAAM,SAAS,CAAC;AACnF,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,GAAG,MAAM,cAAc,CAAC;AAE/B,OAAO,EAA2B,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3H,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,iCAAiC,EAAE,MAAM,uCAAuC,CAAC;AAgB1F;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAA+B,EAAE;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;IAE9C,2BAA2B;IAC3B,MAAM,YAAY,GAChB,MAAM,CAAC,OAAO,CAAC,MAAM;QACnB,CAAC,CAAC;YACE,SAAS,EAAE;gBACT,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE;oBACP,aAAa,EAAE,YAAY;oBAC3B,MAAM,EAAE,cAAc;iBACvB;aACF;SACF;QACH,CAAC,CAAC,IAAI,CAAC;IAEX,0BAA0B;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC;QACrB,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;YAC3B,GAAG,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D;QACD,qBAAqB,EAAE,IAAI,EAAE,0CAA0C;QACvE,GAAG,OAAO,CAAC,cAAc;KAC1B,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAElC,2BAA2B;IAC3B,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;IAEpD,4BAA4B;IAC5B,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAE7C,wBAAwB;IACxB,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC1B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QAC1B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;KACrC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC5B,kCAAkC;QAClC,qBAAqB,EAAE,KAAK,EAAE,qBAAqB;KACpD,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;QAC9B,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;SACrC;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAE/C,sBAAsB;IACtB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,kCAAkC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,mBAAmB,EAAE,CAAC;IACrE,MAAM,cAAc,GAAG,oBAAoB,CAAC;QAC1C,WAAW;QACX,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;QAC5B,UAAU,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,4BAA4B,CAAC;KACtF,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAE7C,8DAA8D;IAC9D,MAAM,qBAAqB,GAAG,MAAM,sBAAsB,CACxD,MAAM,CAAC,OAAO,CAAC,qBAAqB,EACpC,MAAM,CAAC,GAAG,CACX,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;IAE9C,yEAAyE;IACzE,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;IAErE,uEAAuE;IACvE,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,IAAI,cAAc,GAAyD,IAAI,CAAC;IAChF,MAAM,gBAAgB,GAAG,CAAC,YAAY;QACpC,CAAC,CAAC,IAAI,uBAAuB,CAAC;YAC1B,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,MAAM,MAAM,GAAG,cAAc,CAAC;gBAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW;oBAAE,OAAO;gBAC3C,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,qBAAqB;oBAC5B,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACkB,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,EAAE,MAAM,CAAC,GAAG;SACnB,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IAET,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,sBAAsB;IACtB,IAAI,qBAAyC,CAAC;IAC9C,CAAC;QACC,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACtE,qBAAqB,GAAG,KAAK,EAAE,YAAY,CAAC;QAC5C,IAAI,gBAAgB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,gFAAgF;IAChF,8EAA8E;IAC9E,+CAA+C;IAC/C,EAAE;IACF,6EAA6E;IAC7E,iFAAiF;IACjF,yEAAyE;IACzE,gFAAgF;IAChF,6EAA6E;IAC7E,0EAA0E;IAC1E,gFAAgF;IAChF,MAAM,mBAAmB,GAAG,mBAAmB,EAAE;QAC/C,CAAC,CAAC,4BAA4B,CAAC;YAC3B,MAAM,EAAE,uBAAuB,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,CAAC;YACpE,YAAY,EAAE,qBAAqB;YACnC,UAAU,EAAE,gBAAgB,IAAI,SAAS;YACzC,MAAM,EAAE,MAAM,CAAC,GAAG;SACnB,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEd,6DAA6D;IAC7D,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;QACnG,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvE,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,wBAAwB,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,UAAU,kBAAkB,CAC9F,CAAC;YACF,IAAI,UAAU,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,WAAW,iBAAiB,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,WAAW,GAAmB,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YAC1C,oBAAoB,EAAE,CAAC;YACvB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,uCAAuC;SACnE,CAAC,CAAC;QACH,kBAAkB;QAClB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,YAAY,EAAE,CAAC;YACjB,8DAA8D;YAC9D,MAAM,IAAI,KAAK,CACb,sDAAsD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/G,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CACxI,CAAC;QACF,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,iEAAiE;IACjE,IAAI,YAA0B,CAAC;IAC/B,IAAI,WAAW,EAAE,CAAC;QAChB,YAAY,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE;YAC5D,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;SACvC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE;YAClD,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;SACvC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,sDAAsD;IACtD,IAAI,gBAAgB,GAA4B,IAAI,CAAC;IACrD,IAAI,iBAAiB,GAAyD,IAAI,CAAC;IACnF,IAAI,YAAY,EAAE,CAAC;QACjB,sFAAsF;QACtF,IAAI,eAAwE,CAAC;QAC7E,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBAC3F,8GAA8G;gBAC9G,iBAAiB,GAAG,IAAI,eAAe,CAAC;oBACtC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC3B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;iBAChC,CAA6D,CAAC;gBAC/D,eAAe,GAAG,CAAC,KAAa,EAAE,IAA6B,EAAE,EAAE;oBACjE,IAAI,CAAC;wBACH,IAAI,CAAC,iBAAiB,EAAE,WAAW;4BAAE,OAAO;wBAC5C,iBAAiB,CAAC,IAAI,CAAC;4BACrB,IAAI,EAAE,OAAO;4BACb,KAAK;4BACL,IAAI;4BACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACpC,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAChE,sCAAsC,CACvC,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,mEAAmE;QACnE,yDAAyD;QACzD,MAAM,kBAAkB,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE5E,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE;YAC/D,eAAe;YACf,aAAa,EAAE,mBAAmB;YAClC,YAAY,EAAE,kBAAkB;SACjC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,oEAAoE;QACpE,0EAA0E;QAC1E,4EAA4E;QAC5E,MAAM,sBAAsB,GAAG,KAAK,EAClC,IAA0C,EAC1C,eAAoE,EACrD,EAAE;YACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YACnE,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YAEpC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,MAAM,CAAC,GAAG,CACX,CAAC;gBACF,uEAAuE;gBACvE,oEAAoE;gBACpE,oCAAoC;gBACpC,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EACpE,0EAA0E,CAC3E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CACjD,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,MAAM,CAAC,GAAG,CACX,CAAC;gBACF,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,mBAAmB,CAAC,gBAAgB,CAAC;oBACzC,KAAK,EAAE,UAAU;oBACjB,KAAK;oBACL,KAAK,EAAE,eAAe,CAAC,IAAI;oBAC3B,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,QAAQ,EAAE;wBACR,OAAO,EAAE,OAAO,eAAe,CAAC,OAAO,GAAG;wBAC1C,cAAc,EAAE,UAAU;wBAC1B,4DAA4D;wBAC5D,UAAU,EAAE,eAAe,CAAC,QAAQ;qBACrC;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,KAAK,CACd;oBACE,GAAG;oBACH,IAAI,EAAE,eAAe,CAAC,IAAI;oBAC1B,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,QAAQ,EAAE,eAAe,CAAC,QAAQ;oBAClC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,WAAW;iBACxB,EACD,+CAA+C,CAChD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,gBAAgB,GAAG,IAAI,gBAAgB,CACrC,YAAY,EACZ,WAAW,EACX,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,QAAQ,EACf,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAChC,SAAS,EACT,sBAAsB,CACvB,CAAC;QAEF,oEAAoE;QACpE,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,kBAAkB,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACzF,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,IAAI,mBAAmB,GAA+B,IAAI,CAAC;IAC3D,IAAI,wBAAwB,GAAoC,IAAI,CAAC;IACrE,IAAI,2BAA2B,GAAuC,IAAI,CAAC;IAC3E,IAAI,yBAAyB,GAAqC,IAAI,CAAC;IACvE,IAAI,YAAY,GAA+B,IAAI,CAAC;IACpD,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEtE,uFAAuF;QACvF,iEAAiE;QACjE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU;YAC1C,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,EAAE,KAAK,EAAE;YACnG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEnB,mBAAmB,GAAG,IAAI,mBAAmB,CAC3C,MAAM,CAAC,GAAG,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,MAAM,CAAC,YAAY,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,IAAI,SAAS,EAC7B,qBAAqB,CACtB,CAAC;QAEF,+DAA+D;QAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CACrD,CAAC;YACF,YAAY,GAAG,IAAI,mBAAmB,CACpC,MAAM,CAAC,GAAG,EACV,mBAAmB,EACnB,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAC5E,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC9F,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7B,wBAAwB,GAAG,IAAI,wBAAwB,CACrD,MAAM,CAAC,GAAG,EACV,kBAAkB,EAClB,YAAY,EACZ,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,YAAY,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,IAAI,SAAS,EAC7B,qBAAqB,CACtB,CAAC;YAEF,qEAAqE;YACrE,wEAAwE;YACxE,mEAAmE;YACnE,yDAAyD;YACzD,2BAA2B,GAAG,IAAI,2BAA2B,CAC3D,MAAM,CAAC,GAAG,EACV,kBAAkB,EAClB,YAAY,EACZ,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,YAAY,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,IAAI,SAAS,EAC7B,qBAAqB,CACtB,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,+BAA+B;QAC/B,yBAAyB,GAAG,IAAI,yBAAyB,CACvD,MAAM,CAAC,GAAG,EACV,kBAAkB,EAClB;YACE,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,aAAa,CAAC,kBAAkB;SAC9C,EACD,YAAY,EACZ,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,qEAAqE;YACrE,mEAAmE;YACnE,4DAA4D;YAC5D,kEAAkE;YAClE,oEAAoE;YACpE,4BAA4B;YAC5B,MAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,iBAAiB;gBAC/B,OAAO,EAAE,UAAmB;gBAC5B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;gBACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,QAAQ,EAAE;oBACR,WAAW,EAAE,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB;oBAC1E,YAAY,EAAE,IAAI,CAAC,MAAM;oBACzB,OAAO,EAAE,IAAI,CAAC,MAAM;iBACrB;gBACD,WAAW,EAAE,QAAiB;aAC/B,CAAC;YACF,MAAM,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC,EACD,mBAAmB,EACnB,gBAAgB,IAAI,SAAS,EAC7B,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,4EAA4E;IAC5E,gFAAgF;IAChF,IAAI,uBAAuB,GAAmC,IAAI,CAAC;IACnE,IAAI,CAAC,YAAY,IAAI,gBAAgB,EAAE,CAAC;QACtC,uBAAuB,GAAG,IAAI,uBAAuB,CAAC;YACpD,SAAS;YACT,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,MAAM,CAAC,GAAG;SACnB,CAAC,CAAC;IACL,CAAC;IAED,uEAAuE;IACvE,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,0FAA0F;IAC1F,gGAAgG;IAChG,qGAAqG;IACrG,IAAI,cAAc,GAAuB,IAAI,CAAC;IAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACrE,IAAI,eAAe,EAAE,CAAC;YACpB,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;gBAClC,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;YACH,6BAA6B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;YAC5D,iCAAiC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1C,2EAA2E;QAC3E,iBAAiB,GAAG,IAAI,CAAC;QACzB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACpE,WAAW,GAAG,MAAM,CAAC;YACrB,cAAc,GAAG,MAAM,CAAC;YACxB,mBAAmB,GAAG,OAAO,CAAC;YAC9B,iBAAiB,GAAG,KAAK,CAAC;QAC5B,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3D,iBAAiB,GAAG,KAAK,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAChD,gEAAgE;QAChE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;QAEpC,wFAAwF;QACxF,0FAA0F;QAC1F,mBAAmB,CAAC;YAClB,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe;YAClD,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,cAAc,EAAE,cAAc;gBAC5B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,cAAe,CAAC,IAAI,CAAC;oBACzC,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACkB,CAAC;gBAC1D,CAAC,CAAC,SAAS;SACd,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,6CAA6C,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,uBAAuB,CAAC;YAC5B,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,cAAc,EAAE,cAAc;gBAC5B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,cAAe,CAAC,IAAI,CAAC;oBACzC,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACkB,CAAC;gBAC1D,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,IAAI,mBAAmB,GAA+B,IAAI,CAAC;IAC3D,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7E,mBAAmB,GAAG,MAAM,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACzF,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,YAAY,EAAE,CAAC;YACjB,8EAA8E;YAC9E,MAAM,iBAAiB,CAAC,MAAM,EAAE;gBAC9B,MAAM,EAAE;oBACN,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;oBACxB,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;oBAC/C,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;iBAC1D;gBACD,OAAO,EAAE;oBACP,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE;oBACtB,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW;iBACzC;gBACD,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE;aAC/C,CAAC,CAAC;YACH,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,MAAM,aAAa,GAAG,IAAI,qBAAqB,EAAE,CAAC;YAClD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;YAElD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,mBAAmB,GAAG,IAAI,2BAA2B,EAAE,CAAC;YAC9D,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;gBACxC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU;aAC5C,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,MAAM,EAAE;gBAC3B,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,mBAAmB;gBACnB,cAAc;gBACd,kBAAkB,EAAE;oBAClB,OAAO,EAAE;wBACP,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE;wBACtB,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW;qBACzC;oBACD,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE;iBAC/C;aACF,CAAC,CAAC;YAEH,sEAAsE;YACtE,sEAAsE;YACtE,8EAA8E;YAC9E,MAAM,gBAAgB,GAAG,mBAAmB,IAAI,wBAAwB,CAAC;YACzE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;oBAC3C,uEAAuE;oBACvE,0CAA0C;oBAC1C,YAAY,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;oBACzD,YAAY,CAAC,oBAAoB,CAC/B,kBAAkB,EAClB,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;wBACnB,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;4BACxC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC1C,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,IAAI,CAAC,GAAY,EAAE,SAAS,CAAC,CAAC;wBAChC,CAAC;oBACH,CAAC,CACF,CAAC;oBAEF,IAAI,mBAAmB,EAAE,CAAC;wBACxB,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CACrD,CAAC;wBACF,MAAM,kBAAkB,CAAC,YAAY,EAAE;4BACrC,cAAc,EAAE,mBAAmB;4BACnC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa;4BAC3C,YAAY;4BACZ,qBAAqB;yBACtB,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,wBAAwB,EAAE,CAAC;wBAC7B,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CACrD,CAAC;wBACF,MAAM,oBAAoB,CAAC,YAAY,EAAE;4BACvC,cAAc,EAAE,wBAAwB;4BACxC,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;4BAC7C,YAAY;4BACZ,qBAAqB;yBACtB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,yDAAyD;YACzD,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAC7D,CAAC;YAED,+FAA+F;YAC/F,MAAM,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAE5D,iCAAiC;YACjC,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAEhD,8EAA8E;QAChF,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACnC,IAAI,YAAY,EAAE,CAAC;YACjB,0EAA0E;YAC1E,IAAI,iBAAiB,EAAE,CAAC;gBACtB,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC1C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,6DAA6D,CAAC,CAAC;gBACjG,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,gBAAgB,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,0BAA0B,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,IAAI,mBAAmB,EAAE,CAAC;gBACxB,mBAAmB,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,wBAAwB,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACtD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,oCAAoC,CAAC,CAAC;gBACzE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,2BAA2B,EAAE,CAAC;gBAChC,2BAA2B,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,uCAAuC,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,yBAAyB,EAAE,CAAC;gBAC9B,yBAAyB,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,qCAAqC,CAAC,CAAC;gBAC1E,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACnC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,uBAAuB,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;YAED,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1D,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;gBACrF,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9F,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;YACL,CAAC;YAED,oEAAoE;YACpE,mEAAmE;YACnE,IAAI,WAAW,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACtC,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAClC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,2BAA2B,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sDAAsD;IACtD,qBAAqB,CAAC,MAAM,EAAE;QAC5B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC3D,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC;SAC7D;QACD,OAAO,EAAE;YACP,KAAK,IAAI,EAAE;gBACT,IAAI,YAAY,EAAE,CAAC;oBACjB,2DAA2D;oBAC3D,IAAI,gBAAgB,EAAE,CAAC;wBACrB,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;oBAChC,CAAC;oBACD,IAAI,iBAAiB,EAAE,CAAC;wBACtB,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAC;oBACvC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,4DAA4D;oBAC5D,IAAI,mBAAmB,EAAE,CAAC;wBACxB,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC;oBACnC,CAAC;oBACD,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;oBAC3B,CAAC;oBACD,IAAI,YAAY,EAAE,CAAC;wBACjB,YAAY,CAAC,IAAI,EAAE,CAAC;oBACtB,CAAC;oBACD,IAAI,mBAAmB,EAAE,CAAC;wBACxB,mBAAmB,CAAC,WAAW,EAAE,CAAC;oBACpC,CAAC;oBACD,IAAI,wBAAwB,EAAE,CAAC;wBAC7B,wBAAwB,CAAC,WAAW,EAAE,CAAC;oBACzC,CAAC;oBACD,IAAI,2BAA2B,EAAE,CAAC;wBAChC,2BAA2B,CAAC,WAAW,EAAE,CAAC;oBAC5C,CAAC;oBACD,IAAI,yBAAyB,EAAE,CAAC;wBAC9B,MAAM,yBAAyB,CAAC,WAAW,EAAE,CAAC;oBAChD,CAAC;oBACD,IAAI,uBAAuB,EAAE,CAAC;wBAC5B,MAAM,uBAAuB,CAAC,IAAI,EAAE,CAAC;oBACvC,CAAC;oBACD,sBAAsB,EAAE,CAAC;gBAC3B,CAAC;gBACD,sCAAsC;gBACtC,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;SACF;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAuB;IACvD,MAAM,MAAM,GAAI,MAA2D,CAAC,MAAM,CAAC;IAEnF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QACxB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;KACzB,CAAC,CAAC;IAEH,kDAAkD;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,MAAM,CAAC;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC;YAC1D,KAAK,GAAG,MAAM,uBAAuB,EAAE,CAAC;YACxC,IAAI,KAAK;gBAAE,MAAM;YACjB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,4CAA4C,cAAc,GAAG,CAAC;YAC7E,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzB,gFAAgF;YAChF,oEAAoE;YACpE,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBACrE,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,8CAA8C;oBAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;YAED,4DAA4D;YAC5D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,aAAa,GAAG,IAAI,+BAA+B,CAAC,CAAC;YACjF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,kBAA+C,EAAE;IAEjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,MAA0B,EAC1B,MAAuB,EACvB,WAAgC,EAChC,aAAyG,EACzG,cAAgF;IAEhF,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAClE,IAAI,cAAkC,CAAC;IACvC,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5C,cAAc,GAAG,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,6BAA6B,iBAAiB,uCAAuC,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC;QACtC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;QACpC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW;QAC1C,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe;QAClD,MAAM,EAAE,MAAM,CAAC,GAAuC;QACtD,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;IAChE,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACvD,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,qEAAqE;QACrE,wEAAwE;QACxE,oDAAoD;QACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ;aACvC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;aAC1B,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;aACxB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,QAAQ;cAC5B,cAAc,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACnC,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAE/C,IAAI,gBAAgB,GAAyD,IAAI,CAAC;IAClF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1F,gBAAgB,GAAG,MAAM,CAAC;QAC1B,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,MAAM,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAE7F,aAAa,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAEhD,6DAA6D;IAC7D,2EAA2E;IAC3E,0EAA0E;IAC1E,oEAAoE;IACpE,6EAA6E;IAC7E,0EAA0E;IAC1E,+EAA+E;IAC/E,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,0FAA0F;IAC1F,mBAAmB,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe;QAClD,MAAM,EAAE,MAAM,CAAC,GAAG;QAClB,cAAc,EAAE,gBAAgB;YAC9B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,gBAAiB,CAAC,IAAI,CAAC;gBAC3C,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACkB,CAAC;YAC1D,CAAC,CAAC,SAAS;KACd,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,6CAA6C,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,MAAM,uBAAuB,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,GAAG;QAClB,cAAc,EAAE,gBAAgB;YAC9B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,gBAAiB,CAAC,IAAI,CAAC;gBAC3C,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACkB,CAAC;YAC1D,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,MAA0B,EAC1B,MAAuB,EACvB,WAAgC,EAChC,cAAgF;IAEhF,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,0CAA0C,CAAC;IAClH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAE9E,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAE3F,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE;YACnC,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,CAAC,OAAO,CAAC;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,8CAA8C,CAAC;QAElH,8GAA8G;QAC9G,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;YACtC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,eAAe,EAAE,oBAAoB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YACzD,kBAAkB,EAAE,gBAAgB;YACpC,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE,gBAAgB;oBACxB,MAAM,EAAE,UAAU,kBAAkB,EAAE;iBACvC;gBACD;oBACE,MAAM,EAAE,cAAc;oBACtB,MAAM,EAAE,UAAU,gBAAgB,EAAE;iBACrC;aACF;SACF,CAA6D,CAAC;QAE/D,sFAAsF;QACtF,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,0EAA0E;QAC1E,oEAAoE;QACpE,wEAAwE;QACxE,gCAAgC;QAChC,MAAM,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAE9C,WAAW,GAAG,IAAI,WAAW,CAAC;YAC5B,MAAM,EAAE,WAAW;YACnB,MAAM;YACN,UAAU,EAAE,yBAAyB,EAAE;YACvC,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,OAAO,EAAE;gBACP,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE;gBACtB,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW;aACzC;YACD,YAAY;SACb,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,WAAW,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAElD,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;QACjD,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,IAAI,aAAa,CACrC,EAAE,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAA8C,CAAC,EAAE,EAC5F,iBAAiB,CAClB,CAAC;YACF,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAE5C,gGAAgG;YAChG,MAAM,MAAM,GAAG,WAAW,CAAC;YAC3B,iBAAiB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,WAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAE9C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,6BAA6B,CAC1C,MAA0B,EAC1B,MAAuB,EACvB,WAA+B;IAE/B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,uCAAuC,CAAC;IAC5G,MAAM,oBAAoB,GAAG,UAAU,CAAC,cAAc,CAAC;QACrD,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,0BAA0B;KACxC,EAAE,oBAAoB,CAAC,CAAC;IACzB,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CACjD,aAAa,EACb,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAC1C,MAAM,CAAC,MAAM,CAAC,cAAc,CAC7B,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CACjD,MAAM,CAAC,aAAa,EACpB,mBAAmB,EACnB,MAAM,CAAC,GAAG,CACX,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,EAC5D,iCAAiC,CAClC,CAAC;IAEF,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * #953 — Shared adaptive-polling decision function used by
3
+ * `LabelMonitorService`, `PrFeedbackMonitorService`, and
4
+ * `MergeConflictMonitorService`. Extracted to eliminate the three-way
5
+ * copy-paste that produced the "smee-less cluster stuck at base cadence" bug.
6
+ *
7
+ * Pure: no I/O, no `this`, no `Date.now()`. Time flows in via `params.nowMs`.
8
+ */
9
+ export interface AdaptivePollParams {
10
+ /** From MonitorState — construction-time constant. */
11
+ webhooksConfigured: boolean;
12
+ /** From service options — reflects the config knob. */
13
+ adaptivePolling: boolean;
14
+ /** Configured base cadence. */
15
+ basePollIntervalMs: number;
16
+ /** Current cadence being run at (for transition detection). */
17
+ currentPollIntervalMs: number;
18
+ /** From MonitorState — null when never received. */
19
+ lastWebhookEvent: number | null;
20
+ /** From MonitorState — current health belief. */
21
+ webhookHealthy: boolean;
22
+ /** Per-service tuning: LabelMonitor=3, PrFeedback=2, MergeConflict=2. */
23
+ adaptiveDivisor: number;
24
+ /** Per-service tuning: 10_000 across all three today. */
25
+ minPollIntervalMs: number;
26
+ /**
27
+ * Injected for testability. Callers pass `Date.now()`.
28
+ * Only consulted on the `webhooksConfigured === true` branch.
29
+ */
30
+ nowMs: number;
31
+ }
32
+ export type AdaptivePollReason = 'webhooks-not-configured' | 'operator-opt-out' | 'webhook-stale' | 'webhook-recovered' | 'quiet';
33
+ export interface AdaptivePollDecision {
34
+ /** New effective cadence to run at. */
35
+ currentPollIntervalMs: number;
36
+ /** New health belief. Meaningful only when `webhooksConfigured === true`. */
37
+ webhookHealthy: boolean;
38
+ /**
39
+ * Whether an edge fired this call. Callers gate log emission on this.
40
+ * - 'to-fast': cadence dropped to the adaptive fast interval
41
+ * - 'to-base': cadence returned to base (webhook recovered)
42
+ * - 'none': no cadence change
43
+ */
44
+ transition: 'to-fast' | 'to-base' | 'none';
45
+ /** Why the decision was reached — stable per parameter shape. */
46
+ reason: AdaptivePollReason;
47
+ }
48
+ /**
49
+ * Fast interval calculation shared between `decideAdaptivePoll` and callers
50
+ * that need the value at construction time.
51
+ */
52
+ export declare function computeFastInterval(basePollIntervalMs: number, adaptiveDivisor: number, minPollIntervalMs: number): number;
53
+ /**
54
+ * Decide the next poll cadence given current state and tuning.
55
+ *
56
+ * Branch summary:
57
+ * - webhooksConfigured=false, adaptivePolling=true:
58
+ * cycle 1 → { fast, healthy=false, to-fast, webhooks-not-configured }
59
+ * cycle 2+ → { fast, healthy=false, none, webhooks-not-configured }
60
+ * - webhooksConfigured=false, adaptivePolling=false:
61
+ * always → { base, healthy=true, none, operator-opt-out }
62
+ * - webhooksConfigured=true, lastWebhookEvent===null:
63
+ * always → { unchanged, unchanged, none, quiet }
64
+ * - webhooksConfigured=true, lastWebhookEvent!==null:
65
+ * staleness = nowMs - lastWebhookEvent; threshold = basePoll * 2
66
+ * if (staleness > threshold && webhookHealthy) → to-fast, webhook-stale
67
+ * else → { unchanged, unchanged, none, quiet }
68
+ *
69
+ * The `recordWebhookEvent` handler in each service also delegates here for
70
+ * the recovery path — it flips `webhookHealthy=true` and `lastWebhookEvent`
71
+ * before calling; the helper returns `to-base, webhook-recovered` when the
72
+ * caller was previously at the fast interval.
73
+ */
74
+ export declare function decideAdaptivePoll(params: AdaptivePollParams): AdaptivePollDecision;
75
+ //# sourceMappingURL=adaptive-poll-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptive-poll-controller.d.ts","sourceRoot":"","sources":["../../src/services/adaptive-poll-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uDAAuD;IACvD,eAAe,EAAE,OAAO,CAAC;IACzB,+BAA+B;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iDAAiD;IACjD,cAAc,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,kBAAkB,GAClB,eAAe,GACf,mBAAmB,GACnB,OAAO,CAAC;AAEZ,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3C,iEAAiE;IACjE,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAER;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,oBAAoB,CA4EnF"}