@humanbased/crosscheck 1.3.1-beta.7 → 1.6.0-beta.5

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 (152) hide show
  1. package/README.md +16 -1
  2. package/assets/demo-block-to-approve.gif +0 -0
  3. package/assets/demo-block-to-approve.mp4 +0 -0
  4. package/dist/__tests__/base-ref-recovery.test.d.ts +2 -0
  5. package/dist/__tests__/base-ref-recovery.test.d.ts.map +1 -0
  6. package/dist/__tests__/base-ref-recovery.test.js +102 -0
  7. package/dist/__tests__/base-ref-recovery.test.js.map +1 -0
  8. package/dist/__tests__/board.test.js +246 -17
  9. package/dist/__tests__/board.test.js.map +1 -1
  10. package/dist/__tests__/codex-env.test.js +4 -0
  11. package/dist/__tests__/codex-env.test.js.map +1 -1
  12. package/dist/__tests__/credential-free-origin.test.js +134 -2
  13. package/dist/__tests__/credential-free-origin.test.js.map +1 -1
  14. package/dist/__tests__/demo-arc.test.d.ts +2 -0
  15. package/dist/__tests__/demo-arc.test.d.ts.map +1 -0
  16. package/dist/__tests__/demo-arc.test.js +73 -0
  17. package/dist/__tests__/demo-arc.test.js.map +1 -0
  18. package/dist/__tests__/doc-only-verdict.test.d.ts +2 -0
  19. package/dist/__tests__/doc-only-verdict.test.d.ts.map +1 -0
  20. package/dist/__tests__/doc-only-verdict.test.js +79 -0
  21. package/dist/__tests__/doc-only-verdict.test.js.map +1 -0
  22. package/dist/__tests__/error-classification.test.js +14 -0
  23. package/dist/__tests__/error-classification.test.js.map +1 -1
  24. package/dist/__tests__/fix-requires-recheck.test.d.ts +2 -0
  25. package/dist/__tests__/fix-requires-recheck.test.d.ts.map +1 -0
  26. package/dist/__tests__/fix-requires-recheck.test.js +56 -0
  27. package/dist/__tests__/fix-requires-recheck.test.js.map +1 -0
  28. package/dist/__tests__/human-feedback.test.d.ts +2 -0
  29. package/dist/__tests__/human-feedback.test.d.ts.map +1 -0
  30. package/dist/__tests__/human-feedback.test.js +132 -0
  31. package/dist/__tests__/human-feedback.test.js.map +1 -0
  32. package/dist/__tests__/inconclusive-review.test.d.ts +2 -0
  33. package/dist/__tests__/inconclusive-review.test.d.ts.map +1 -0
  34. package/dist/__tests__/inconclusive-review.test.js +110 -0
  35. package/dist/__tests__/inconclusive-review.test.js.map +1 -0
  36. package/dist/__tests__/merge-gate.test.d.ts +2 -0
  37. package/dist/__tests__/merge-gate.test.d.ts.map +1 -0
  38. package/dist/__tests__/merge-gate.test.js +220 -0
  39. package/dist/__tests__/merge-gate.test.js.map +1 -0
  40. package/dist/__tests__/no-verdict.test.d.ts +2 -0
  41. package/dist/__tests__/no-verdict.test.d.ts.map +1 -0
  42. package/dist/__tests__/no-verdict.test.js +415 -0
  43. package/dist/__tests__/no-verdict.test.js.map +1 -0
  44. package/dist/__tests__/pr-spec.test.js +37 -0
  45. package/dist/__tests__/pr-spec.test.js.map +1 -1
  46. package/dist/__tests__/run.test.js +50 -1
  47. package/dist/__tests__/run.test.js.map +1 -1
  48. package/dist/__tests__/runner.test.js +82 -1
  49. package/dist/__tests__/runner.test.js.map +1 -1
  50. package/dist/__tests__/standing-verdict-history.test.d.ts +2 -0
  51. package/dist/__tests__/standing-verdict-history.test.d.ts.map +1 -0
  52. package/dist/__tests__/standing-verdict-history.test.js +109 -0
  53. package/dist/__tests__/standing-verdict-history.test.js.map +1 -0
  54. package/dist/__tests__/step-plan.test.d.ts +2 -0
  55. package/dist/__tests__/step-plan.test.d.ts.map +1 -0
  56. package/dist/__tests__/step-plan.test.js +129 -0
  57. package/dist/__tests__/step-plan.test.js.map +1 -0
  58. package/dist/cli.js +12 -0
  59. package/dist/cli.js.map +1 -1
  60. package/dist/commands/merge.d.ts +11 -0
  61. package/dist/commands/merge.d.ts.map +1 -0
  62. package/dist/commands/merge.js +188 -0
  63. package/dist/commands/merge.js.map +1 -0
  64. package/dist/commands/review.d.ts.map +1 -1
  65. package/dist/commands/review.js +29 -7
  66. package/dist/commands/review.js.map +1 -1
  67. package/dist/commands/run.d.ts +53 -0
  68. package/dist/commands/run.d.ts.map +1 -1
  69. package/dist/commands/run.js +197 -32
  70. package/dist/commands/run.js.map +1 -1
  71. package/dist/commands/watch.d.ts.map +1 -1
  72. package/dist/commands/watch.js +32 -8
  73. package/dist/commands/watch.js.map +1 -1
  74. package/dist/config/loader.d.ts +4 -0
  75. package/dist/config/loader.d.ts.map +1 -1
  76. package/dist/config/loader.js +8 -0
  77. package/dist/config/loader.js.map +1 -1
  78. package/dist/config/review-strategy.json +5 -5
  79. package/dist/github/client.d.ts +18 -1
  80. package/dist/github/client.d.ts.map +1 -1
  81. package/dist/github/client.js +19 -3
  82. package/dist/github/client.js.map +1 -1
  83. package/dist/github/merge.d.ts +28 -0
  84. package/dist/github/merge.d.ts.map +1 -1
  85. package/dist/github/merge.js +41 -0
  86. package/dist/github/merge.js.map +1 -1
  87. package/dist/github/webhook.d.ts +1 -0
  88. package/dist/github/webhook.d.ts.map +1 -1
  89. package/dist/github/webhook.js.map +1 -1
  90. package/dist/lib/board.d.ts +29 -3
  91. package/dist/lib/board.d.ts.map +1 -1
  92. package/dist/lib/board.js +228 -50
  93. package/dist/lib/board.js.map +1 -1
  94. package/dist/lib/clone.d.ts +65 -1
  95. package/dist/lib/clone.d.ts.map +1 -1
  96. package/dist/lib/clone.js +252 -16
  97. package/dist/lib/clone.js.map +1 -1
  98. package/dist/lib/human-feedback.d.ts +9 -0
  99. package/dist/lib/human-feedback.d.ts.map +1 -0
  100. package/dist/lib/human-feedback.js +83 -0
  101. package/dist/lib/human-feedback.js.map +1 -0
  102. package/dist/lib/logger.d.ts +1 -1
  103. package/dist/lib/logger.d.ts.map +1 -1
  104. package/dist/lib/logger.js +6 -0
  105. package/dist/lib/logger.js.map +1 -1
  106. package/dist/lib/merge-gate.d.ts +70 -0
  107. package/dist/lib/merge-gate.d.ts.map +1 -0
  108. package/dist/lib/merge-gate.js +138 -0
  109. package/dist/lib/merge-gate.js.map +1 -0
  110. package/dist/lib/no-verdict.d.ts +104 -0
  111. package/dist/lib/no-verdict.d.ts.map +1 -0
  112. package/dist/lib/no-verdict.js +262 -0
  113. package/dist/lib/no-verdict.js.map +1 -0
  114. package/dist/lib/pr-spec.d.ts +7 -0
  115. package/dist/lib/pr-spec.d.ts.map +1 -1
  116. package/dist/lib/pr-spec.js +12 -1
  117. package/dist/lib/pr-spec.js.map +1 -1
  118. package/dist/lib/pr-workflow-state.d.ts +37 -0
  119. package/dist/lib/pr-workflow-state.d.ts.map +1 -1
  120. package/dist/lib/pr-workflow-state.js +58 -1
  121. package/dist/lib/pr-workflow-state.js.map +1 -1
  122. package/dist/lib/review-strategy.d.ts +14 -0
  123. package/dist/lib/review-strategy.d.ts.map +1 -1
  124. package/dist/lib/review-strategy.js +32 -1
  125. package/dist/lib/review-strategy.js.map +1 -1
  126. package/dist/lib/runner.d.ts +51 -2
  127. package/dist/lib/runner.d.ts.map +1 -1
  128. package/dist/lib/runner.js +211 -105
  129. package/dist/lib/runner.js.map +1 -1
  130. package/dist/lib/tips.d.ts.map +1 -1
  131. package/dist/lib/tips.js +1 -0
  132. package/dist/lib/tips.js.map +1 -1
  133. package/dist/lib/verdict.d.ts +30 -1
  134. package/dist/lib/verdict.d.ts.map +1 -1
  135. package/dist/lib/verdict.js +94 -9
  136. package/dist/lib/verdict.js.map +1 -1
  137. package/dist/reviewers/codex-env.d.ts.map +1 -1
  138. package/dist/reviewers/codex-env.js +2 -0
  139. package/dist/reviewers/codex-env.js.map +1 -1
  140. package/dist/reviewers/codex.d.ts.map +1 -1
  141. package/dist/reviewers/codex.js +3 -1
  142. package/dist/reviewers/codex.js.map +1 -1
  143. package/dist/reviewers/fix.d.ts +2 -2
  144. package/dist/reviewers/fix.d.ts.map +1 -1
  145. package/dist/reviewers/fix.js +10 -4
  146. package/dist/reviewers/fix.js.map +1 -1
  147. package/docs/growth/launch/README.md +59 -0
  148. package/docs/growth/launch/essay-stop-letting-one-agent-review-its-own-code.md +118 -0
  149. package/docs/growth/launch/posts.md +175 -0
  150. package/docs/trust.md +16 -1
  151. package/get-started.md +16 -0
  152. package/package.json +11 -3
package/dist/lib/board.js CHANGED
@@ -38,7 +38,7 @@ export function fmtTokens(n) {
38
38
  return `(${(n / 1_000_000).toFixed(1).replace(/\.0$/, '')}M)`;
39
39
  }
40
40
  // Raw token count without surrounding parens: "900", "1.2K", "1.5M". Returns '' when undefined.
41
- function fmtTokensRaw(n) {
41
+ export function fmtTokensRaw(n) {
42
42
  if (n == null)
43
43
  return '';
44
44
  if (n < 1_000)
@@ -55,6 +55,86 @@ function stripAnsi(s) {
55
55
  function truncate(s, max) {
56
56
  return s.length <= max ? s : s.slice(0, max - 1) + '…';
57
57
  }
58
+ // Cut a rendered line to `max` visible columns, keeping the ANSI sequences it
59
+ // passes over (they have no width) and closing with a reset so a cut mid-colour
60
+ // cannot bleed into the next line. Folded rows are clamped with this so they
61
+ // always occupy exactly one terminal row — history pagination counts on it.
62
+ function truncateVisible(s, max) {
63
+ if (max <= 0)
64
+ return '';
65
+ if (stripAnsi(s).length <= max)
66
+ return s;
67
+ let out = '';
68
+ let width = 0;
69
+ for (let i = 0; i < s.length; i++) {
70
+ const ch = s[i];
71
+ if (ch === '\x1B') {
72
+ const end = s.indexOf('m', i);
73
+ if (end === -1)
74
+ break;
75
+ out += s.slice(i, end + 1);
76
+ i = end;
77
+ continue;
78
+ }
79
+ if (width >= max - 1)
80
+ break;
81
+ out += ch;
82
+ width++;
83
+ }
84
+ return out + '…\x1B[0m';
85
+ }
86
+ // Lines the runner hands to its log callback are prefixed ⚠ or ✗ when they
87
+ // report something an operator must act on. Everything else is progress
88
+ // narration that the board's own PR rows already carry, and a multi-line
89
+ // message is a dump (an unposted review, a dry-run comment) that always
90
+ // follows one of those notices. Only these earn a line of terminal scrollback
91
+ // beside the board; the rest goes to the file log.
92
+ // eslint-disable-next-line no-control-regex -- matching the ESC byte is the point
93
+ const NOTICE_PREFIX = /^(?:\x1B\[[0-9;]*m)*\s*[⚠✗]/;
94
+ export function isNoticeLine(msg) {
95
+ return NOTICE_PREFIX.test(msg) || msg.includes('\n');
96
+ }
97
+ // Bare `<`/`>` (and their unshifted `,`/`.`) always work. Terminals cannot agree
98
+ // on how to report ctrl/cmd with a punctuation key, so every encoding they do
99
+ // emit is accepted: meta-prefixed, CSI-u (kitty / xterm modifyOtherKeys) and
100
+ // modified arrows. macOS Terminal swallows cmd entirely — there the bare keys,
101
+ // or ctrl+arrow, are the way through.
102
+ const PAGE_OLDER_KEYS = new Set(['<', ',', '\u001b<', '\u001b,', '\u001b[D', '\u001b[5~']);
103
+ const PAGE_NEWER_KEYS = new Set(['>', '.', '\u001b>', '\u001b.', '\u001b[C', '\u001b[6~']);
104
+ // eslint-disable-next-line no-control-regex -- the ESC byte is the sequence
105
+ const CSI_U = /^\u001b\[(\d+);\d+u$/; // ESC [ <codepoint> ; <modifiers> u
106
+ // eslint-disable-next-line no-control-regex -- the ESC byte is the sequence
107
+ const CSI_ARROW = /^\u001b\[1;\d+([DC])$/; // ESC [ 1 ; <modifiers> D|C
108
+ /** Map a raw stdin key sequence to a page direction, or null when it is not a page key. */
109
+ export function pageKeyAction(seq) {
110
+ if (PAGE_OLDER_KEYS.has(seq))
111
+ return 'older';
112
+ if (PAGE_NEWER_KEYS.has(seq))
113
+ return 'newer';
114
+ const csiU = CSI_U.exec(seq);
115
+ if (csiU) {
116
+ const codepoint = Number(csiU[1]);
117
+ if (codepoint === 44 || codepoint === 60)
118
+ return 'older'; // , <
119
+ if (codepoint === 46 || codepoint === 62)
120
+ return 'newer'; // . >
121
+ return null;
122
+ }
123
+ const arrow = CSI_ARROW.exec(seq);
124
+ if (arrow)
125
+ return arrow[1] === 'D' ? 'older' : 'newer';
126
+ return null;
127
+ }
128
+ // Keep every active slot plus the newest `budget` settled ones. Anything older
129
+ // cannot fit the live page (one row minimum per slot), so the fitting loop need
130
+ // never consider it.
131
+ function trimToBudget(pool, budget) {
132
+ const settled = pool.filter(s => s.completedAt !== undefined);
133
+ if (settled.length <= budget)
134
+ return pool.slice();
135
+ const keep = new Set(settled.slice(settled.length - budget));
136
+ return pool.filter(s => s.completedAt === undefined || keep.has(s));
137
+ }
58
138
  function makeBar(filled, total, fillFn, emptyFn) {
59
139
  const f = Math.max(0, Math.min(total, Math.round(filled)));
60
140
  return fillFn(BAR_FILLED.repeat(f)) + emptyFn(BAR_EMPTY.repeat(total - f));
@@ -154,7 +234,7 @@ function buildTheme(cfg) {
154
234
  const CONN_LOG_MAX = 6; // max connectivity log lines kept in memory
155
235
  const COMPACT_CONN_LOG_LINES = 2; // conn log lines shown when the live block must shrink to fit the viewport
156
236
  const FOLD_THRESHOLD = 3; // when completed count exceeds this, fold all completed PRs to 1 line
157
- const WORKSPACE_MAX = 25; // when total slots exceed this, evict oldest completed to scrollback
237
+ const HISTORY_MAX = 2000; // hard cap on retained slots oldest settled rows drop out beyond it
158
238
  const LAYOUT_NORMAL = { foldAll: false, connLogLines: CONN_LOG_MAX, showTip: true };
159
239
  const LAYOUT_COMPACT = { foldAll: true, connLogLines: COMPACT_CONN_LOG_LINES, showTip: false };
160
240
  export class PRBoard {
@@ -165,6 +245,10 @@ export class PRBoard {
165
245
  liveContent = '';
166
246
  isTTY = Boolean(process.stdout.isTTY);
167
247
  connLog = [];
248
+ page = 0; // 0 = live page (newest); higher = further back in history
249
+ pageCount = 1; // recomputed every render; page keys clamp against it
250
+ keyHandler = null;
251
+ stdinWasRaw = false;
168
252
  stats = {
169
253
  prsReceived: 0,
170
254
  crsCompleted: 0,
@@ -195,6 +279,7 @@ export class PRBoard {
195
279
  start() {
196
280
  if (!this.isTTY)
197
281
  return;
282
+ this.attachKeys();
198
283
  this.timer = setInterval(() => {
199
284
  this.frameIdx = (this.frameIdx + 1) % FRAMES.length;
200
285
  this.redraw();
@@ -205,18 +290,34 @@ export class PRBoard {
205
290
  clearInterval(this.timer);
206
291
  this.timer = null;
207
292
  }
293
+ this.detachKeys();
208
294
  this.eraseLive();
209
295
  }
296
+ /** Flip one page toward older history. No-op when already at the oldest page. */
297
+ pageOlder() {
298
+ const next = Math.min(this.page + 1, Math.max(0, this.pageCount - 1));
299
+ if (next === this.page)
300
+ return;
301
+ this.page = next;
302
+ this.redraw();
303
+ }
304
+ /** Flip one page toward the live page. No-op when already on it. */
305
+ pageNewer() {
306
+ if (this.page === 0)
307
+ return;
308
+ this.page--;
309
+ this.redraw();
310
+ }
210
311
  addPR(key, prNumber, repo, branch, round) {
211
312
  // When a new round starts for a PR that already has a completed slot in the
212
- // workspace, evict the prior-round slot to scrollback so only the current
213
- // round is shown. Prior-round slots always have a different key (different
214
- // SHA suffix) but the same prNumber + repo combination.
313
+ // workspace, mark the prior-round slot superseded so only the current round
314
+ // shows on the live page. It stays in the map: history pages still carry it.
315
+ // Prior-round slots always have a different key (different SHA suffix) but
316
+ // the same prNumber + repo combination.
215
317
  if ((round ?? 1) >= 2) {
216
318
  for (const [existingKey, slot] of this.slots) {
217
319
  if (existingKey !== key && slot.prNumber === prNumber && slot.repo === repo && slot.completedAt !== undefined) {
218
- this.printStatic(this.renderPRSlotFolded(slot));
219
- this.slots.delete(existingKey);
320
+ slot.superseded = true;
220
321
  }
221
322
  }
222
323
  }
@@ -523,29 +624,62 @@ export class PRBoard {
523
624
  render() {
524
625
  if (!this.config)
525
626
  return '';
526
- // When the workspace overflows, evict oldest completed slots to scrollback.
527
- this.evictOverflow();
627
+ this.trimHistory();
528
628
  const w = process.stdout.columns || 80;
529
629
  // The live block must never be taller than the viewport: lines that scroll
530
630
  // out the top cannot be erased on the next frame (cursor-up clamps at the
531
631
  // viewport top), leaving permanent duplicates in scrollback. Reserve one
532
632
  // row for the trailing newline writeLive appends.
533
633
  const budget = (process.stdout.rows || 24) - 1;
534
- const normal = this.renderLayout(w, LAYOUT_NORMAL);
535
- if (this.countRenderedLines(normal, w) <= budget)
536
- return normal;
537
- let compact = this.renderLayout(w, LAYOUT_COMPACT);
538
- // Still too tall: flush oldest completed slots to scrollback until it fits.
539
- while (this.countRenderedLines(compact, w) > budget && this.evictOldestCompleted()) {
540
- compact = this.renderLayout(w, LAYOUT_COMPACT);
634
+ const entries = [...this.slots.values()];
635
+ // The live page carries every active slot plus the newest settled ones that
636
+ // fit. What it cannot show is not dropped — it moves into the history pages.
637
+ const live = this.fitLivePage(entries.filter(s => s.superseded !== true), w, budget);
638
+ const onLivePage = new Set(live.visible);
639
+ const history = entries.filter(s => !onLivePage.has(s)); // oldest → newest
640
+ // History rows are always folded, and a folded row is clamped to one
641
+ // terminal row, so a history page holds exactly the rows the panels leave.
642
+ const perPage = Math.max(1, budget - this.chromeRows(w, LAYOUT_COMPACT));
643
+ this.pageCount = 1 + Math.ceil(history.length / perPage);
644
+ this.page = Math.max(0, Math.min(this.page, this.pageCount - 1));
645
+ if (this.page === 0)
646
+ return this.fitToBudget(this.renderLayout(w, live.opts, live.visible, entries.length), w, budget);
647
+ // Page 1 is the newest history page, so it ends where the live page begins.
648
+ const end = history.length - (this.page - 1) * perPage;
649
+ const slice = history.slice(Math.max(0, end - perPage), end);
650
+ return this.fitToBudget(this.renderLayout(w, LAYOUT_COMPACT, slice, entries.length), w, budget);
651
+ }
652
+ /**
653
+ * Pick the slots the live page shows: the expanded layout when it fits, then
654
+ * the compact one, then compact with the oldest settled slots handed over to
655
+ * history until the block fits the viewport. Active slots are never handed
656
+ * over — a running review must stay on screen.
657
+ */
658
+ fitLivePage(pool, w, budget) {
659
+ // Bound the work: a slot costs at least one row, so a settled slot older
660
+ // than the last `budget` of them can never fit on the live page anyway.
661
+ const visible = trimToBudget(pool, budget);
662
+ const fits = (opts) => this.countRenderedLines(this.renderLayout(w, opts, visible, pool.length), w) <= budget;
663
+ if (fits(LAYOUT_NORMAL))
664
+ return { visible, opts: LAYOUT_NORMAL };
665
+ while (!fits(LAYOUT_COMPACT)) {
666
+ const oldestSettled = visible.findIndex(s => s.completedAt !== undefined);
667
+ if (oldestSettled === -1)
668
+ break; // only active slots left — truncateTop takes it from here
669
+ visible.splice(oldestSettled, 1);
541
670
  }
542
- if (this.countRenderedLines(compact, w) <= budget)
543
- return compact;
544
- // Only active slots remain and they still overflow (tiny terminal):
545
- // drop rows from the top, keeping the most recent activity visible.
546
- return this.truncateTop(compact, w, budget);
671
+ return { visible, opts: LAYOUT_COMPACT };
547
672
  }
548
- renderLayout(w, opts) {
673
+ /** Rows the panels and footer cost, i.e. everything but the PR rows. */
674
+ chromeRows(w, opts) {
675
+ return this.countRenderedLines(this.renderLayout(w, opts, [], this.slots.size), w);
676
+ }
677
+ fitToBudget(content, w, budget) {
678
+ return this.countRenderedLines(content, w) <= budget
679
+ ? content
680
+ : this.truncateTop(content, w, budget);
681
+ }
682
+ renderLayout(w, opts, visible, total) {
549
683
  const t = this.theme;
550
684
  // Use w-1 to prevent the exact-terminal-width cursor wrap ambiguity that
551
685
  // causes the first char of the next line to appear at the end of the separator.
@@ -555,20 +689,25 @@ export class PRBoard {
555
689
  sep,
556
690
  ...this.renderStatsPanel(opts.connLogLines, opts.showTip),
557
691
  sep,
558
- ...this.renderPRWorkspace(opts.foldAll),
692
+ ...this.renderPRWorkspace(visible, opts.foldAll, w),
559
693
  sep,
694
+ // Clamped: the footer is counted as exactly one row when sizing a page.
695
+ truncateVisible(this.renderFooter(visible.length, total), w - 1),
560
696
  ].join('\n');
561
697
  }
562
- /** Evict the oldest completed slot to scrollback. Returns false when none left. */
563
- evictOldestCompleted() {
698
+ /** Drop the oldest settled slots once the session history outgrows the cap. */
699
+ trimHistory() {
700
+ if (this.slots.size <= HISTORY_MAX)
701
+ return;
702
+ let excess = this.slots.size - HISTORY_MAX;
564
703
  for (const [key, slot] of this.slots) {
704
+ if (excess <= 0)
705
+ break;
565
706
  if (slot.completedAt === undefined)
566
- continue;
567
- this.printStatic(this.renderPRSlotFolded(slot));
707
+ continue; // never drop an active slot
568
708
  this.slots.delete(key);
569
- return true;
709
+ excess--;
570
710
  }
571
- return false;
572
711
  }
573
712
  /** Drop rows from the top until the content (plus an indicator line) fits the budget. */
574
713
  truncateTop(content, w, budget) {
@@ -630,14 +769,14 @@ export class PRBoard {
630
769
  const formatted = parts.map(p => p.startsWith('`') ? t.accent(p) : t.dim(p)).join('');
631
770
  return ` ${badge}${formatted}`;
632
771
  }
633
- renderPRWorkspace(foldAll) {
772
+ renderPRWorkspace(visible, foldAll, w) {
634
773
  const t = this.theme;
635
774
  const frame = FRAMES[this.frameIdx];
636
- if (this.slots.size === 0) {
637
- return [t.dim(' waiting for PRs...')];
775
+ if (visible.length === 0) {
776
+ return this.slots.size === 0 ? [t.dim(' waiting for PRs...')] : [];
638
777
  }
639
778
  let completedCount = 0;
640
- for (const slot of this.slots.values()) {
779
+ for (const slot of visible) {
641
780
  if (slot.completedAt !== undefined)
642
781
  completedCount++;
643
782
  }
@@ -645,7 +784,7 @@ export class PRBoard {
645
784
  const lines = [];
646
785
  let prevWasExpanded = false;
647
786
  let first = true;
648
- for (const slot of this.slots.values()) {
787
+ for (const slot of visible) {
649
788
  const isCompleted = slot.completedAt !== undefined;
650
789
  // Sticky fold: once a completed slot folds because the count crossed
651
790
  // FOLD_THRESHOLD, keep it folded. Otherwise a later recheck round drops
@@ -657,7 +796,9 @@ export class PRBoard {
657
796
  slot.stickyFolded = true;
658
797
  const useFolded = isCompleted && (foldAll || slot.stickyFolded === true);
659
798
  if (useFolded) {
660
- lines.push(this.renderPRSlotFolded(slot));
799
+ // Clamped so the row never wraps: history pagination sizes a page by
800
+ // counting one terminal row per folded slot.
801
+ lines.push(truncateVisible(this.renderPRSlotFolded(slot), w - 1));
661
802
  prevWasExpanded = false;
662
803
  }
663
804
  else {
@@ -670,6 +811,22 @@ export class PRBoard {
670
811
  }
671
812
  return lines;
672
813
  }
814
+ /** Footer: where in the retained history this page sits, and how to move. */
815
+ renderFooter(shown, total) {
816
+ const t = this.theme;
817
+ if (total === 0)
818
+ return t.dim(' no PRs yet');
819
+ const position = this.page === 0
820
+ ? `${t.success('live')}${this.pageCount > 1 ? t.dim(` · page 1/${this.pageCount}`) : ''}`
821
+ : t.dim(`history · page ${this.page + 1}/${this.pageCount}`);
822
+ // "shown of retained", not of stats.prsReceived: rounds add rows, and the
823
+ // history cap eventually drops the oldest, so the two counts diverge.
824
+ const counts = t.dim(`showing ${shown} of ${total}`);
825
+ const keys = this.pageCount > 1
826
+ ? ` ${t.dim('│')} ${t.accent('ctrl+<')} ${t.dim('older')} ${t.accent('ctrl+>')} ${t.dim('newer')}`
827
+ : '';
828
+ return ` ${position} ${t.dim('│')} ${counts}${keys}`;
829
+ }
673
830
  // ── Folded PR slot ─────────────────────────────────────────────────────────
674
831
  renderPRSlotFolded(slot) {
675
832
  const t = this.theme;
@@ -701,25 +858,46 @@ export class PRBoard {
701
858
  const partsStr = parts.length > 0 ? parts.join(t.dim(' · ')) : t.dim('—');
702
859
  return ` ${t.success('✓')} ${t.dim(`#${slot.prNumber}`)} ${t.dim(slot.repo)} ${t.dim(branch)} ${partsStr} ${t.dim(`(${elapsed})`)}${urlPart}`;
703
860
  }
704
- // ── Overflow eviction ──────────────────────────────────────────────────────
705
- evictOverflow() {
706
- if (this.slots.size <= WORKSPACE_MAX)
707
- return;
708
- let toEvict = this.slots.size - WORKSPACE_MAX;
709
- for (const [key, slot] of this.slots) {
710
- if (toEvict <= 0)
711
- break;
712
- if (slot.completedAt === undefined)
713
- continue; // never evict active
714
- this.printStatic(this.renderPRSlotFolded(slot));
715
- this.slots.delete(key);
716
- toEvict--;
717
- }
718
- }
719
861
  redraw() {
720
862
  const content = this.render();
721
863
  if (content)
722
864
  this.writeLive(content);
723
865
  }
866
+ // ── Private: key input ─────────────────────────────────────────────────────
867
+ attachKeys() {
868
+ const stdin = process.stdin;
869
+ if (this.keyHandler || !stdin.isTTY)
870
+ return;
871
+ this.stdinWasRaw = stdin.isRaw === true;
872
+ stdin.setRawMode(true);
873
+ stdin.resume();
874
+ const handler = (data) => {
875
+ const seq = data.toString('utf8');
876
+ // Raw mode suppresses the terminal's own ctrl-c → SIGINT translation, so
877
+ // the board has to raise it itself or the daemon becomes unkillable.
878
+ if (seq === '\u0003') {
879
+ process.kill(process.pid, 'SIGINT');
880
+ return;
881
+ }
882
+ const action = pageKeyAction(seq);
883
+ if (action === 'older')
884
+ this.pageOlder();
885
+ else if (action === 'newer')
886
+ this.pageNewer();
887
+ };
888
+ stdin.on('data', handler);
889
+ this.keyHandler = handler;
890
+ }
891
+ detachKeys() {
892
+ if (!this.keyHandler)
893
+ return;
894
+ process.stdin.off('data', this.keyHandler);
895
+ this.keyHandler = null;
896
+ // Hand the terminal back the way it was found: the idle-issue flow and the
897
+ // interactive prompts read stdin themselves while the board is stopped.
898
+ if (process.stdin.isTTY && !this.stdinWasRaw)
899
+ process.stdin.setRawMode(false);
900
+ process.stdin.pause();
901
+ }
724
902
  }
725
903
  //# sourceMappingURL=board.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/lib/board.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AA2FrC,iFAAiF;AAEjF,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACjE,MAAM,UAAU,GAAG,GAAG,CAAA;AACtB,MAAM,SAAS,GAAG,GAAG,CAAA;AAErB,iFAAiF;AAEjF,4FAA4F;AAC5F,MAAM,UAAU,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE;IACpC,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAC/G,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEhC,iEAAiE;AACjE,SAAS,WAAW,CAAC,EAAU;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAA;IACvB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAA;IACvD,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAA;IACvD,OAAO,GAAG,CAAC,GAAG,CAAA;AAChB,CAAC;AAED,6DAA6D;AAC7D,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5G,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,CAAA;IACxB,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAA;IAC9B,IAAI,CAAC,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAA;IAC5E,OAAO,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAA;AAC/D,CAAC;AAED,gGAAgG;AAChG,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,CAAA;IACxB,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,GAAG,CAAC,EAAE,CAAA;IAC5B,IAAI,CAAC,GAAG,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAA;IAC1E,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAA;AAC7D,CAAC;AAED,yDAAyD;AACzD,SAAS,SAAS,CAAC,CAAS;IAC1B,4CAA4C;IAC5C,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,GAAW;IACtC,OAAO,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;AACxD,CAAC;AAED,SAAS,OAAO,CAAC,MAAc,EAAE,KAAa,EAAE,MAAe,EAAE,OAAgB;IAC/E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1D,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,uEAAuE;AACvE,SAAS,cAAc,CAAC,QAAiB,EAAE,IAAa;IACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACjC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAA;IACpD,OAAO,QAAQ,IAAI,IAAI,IAAI,EAAE,CAAA;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACtB,IAAI,GAAG,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IACvB,IAAI,GAAG,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IACvB,IAAI,GAAG,IAAI,GAAG;QAAE,OAAO,CAAC,CAAA;IACxB,IAAI,GAAG,IAAI,GAAG;QAAE,OAAO,CAAC,CAAA;IACxB,IAAI,GAAG,IAAI,GAAG;QAAE,OAAO,CAAC,CAAA;IACxB,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,CAAA;IACzB,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,CAAA;IACzB,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,CAAA;IACzB,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAS;IACrC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACrB,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACpB,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACpB,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACpB,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IACrB,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IACrB,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IACrB,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACrB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACrB,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACpB,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACpB,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IACrB,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IACrB,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,GAAG,CAAA;IACpC,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,IAAI,CAAA;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,MAAM,GAAI,KAA4C,CAAC,IAAI,CAAC,CAAA;IAClE,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAiB,CAAA;IAC1D,OAAO,KAAK,CAAC,KAAK,CAAA;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,GAAiB;IACnC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACzC,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,WAAW;QAC1B,OAAO,EAAE,KAAK,CAAC,KAAK;QACpB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,KAAK,EAAE,KAAK,CAAC,GAAG;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,CAAC,IAAI;QAClB,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrC,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;QAC1C,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,SAAS,EAAE,KAAK,CAAC,GAAG;KACrB,CAAA;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,YAAY,GAAG,CAAC,CAAA,CAAE,4CAA4C;AACpE,MAAM,sBAAsB,GAAG,CAAC,CAAA,CAAE,2EAA2E;AAC7G,MAAM,cAAc,GAAG,CAAC,CAAA,CAAE,sEAAsE;AAChG,MAAM,aAAa,GAAG,EAAE,CAAA,CAAE,qEAAqE;AAQ/F,MAAM,aAAa,GAAe,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC/F,MAAM,cAAc,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAE1G,MAAM,OAAO,OAAO;IACV,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACjC,QAAQ,GAAG,CAAC,CAAA;IACZ,KAAK,GAA0C,IAAI,CAAA;IACnD,SAAS,GAAG,CAAC,CAAA;IACb,WAAW,GAAG,EAAE,CAAA;IACP,KAAK,GAAY,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACvD,OAAO,GAAa,EAAE,CAAA;IAEtB,KAAK,GAAU;QACrB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;KACzB,CAAA;IAEO,MAAM,GAAyD;QACrE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;KACtC,CAAA;IAEO,MAAM,GAAkB,IAAI,CAAA;IAC5B,KAAK,GAAmB,EAAE,CAAA;IAC1B,KAAK,GAAU,UAAU,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK;QAClC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK;QAC7D,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAA;IAEF,8EAA8E;IAE9E,SAAS,CAAC,MAAc,EAAE,KAAqB;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,GAAkB,EAAE,KAAc;QACxD,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IACpC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAM;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;YACnD,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAAC,CAAC;QAChE,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAc,EAAE,KAAc;QAC/E,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,wDAAwD;QACxD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7C,IAAI,WAAW,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9G,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;oBAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/H,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,OAAiB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC3D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC3D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC3D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QACjE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QAChF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACpE,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QACtF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACpE,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QACnF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QACvE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC3D,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QAC1E,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;QACzF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;IAC/E,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,IAAsB;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAA;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAA;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE9B,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC1G,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;YACzB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAA;QACxC,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;QAErE,iGAAiG;QACjG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YAC1D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,KAAa;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;QAC3B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA;YACpB,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,GAAG,CAAC,KAAa,EAAE,KAAc;QAC/B,oFAAoF;QACpF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC;IAED,+EAA+E;IAC/E,eAAe,CAAC,IAAY;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC9D,CAAC;IAED,8EAA8E;IAEtE,WAAW,CAAC,OAAe;QACjC,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IACtC,CAAC;IAEO,kBAAkB,CAAC,OAAe,EAAE,OAAe;QACzD,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,CAAA;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC9C,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACjE,CAAC,EAAE,CAAC,CAAC,CAAA;IACP,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,gFAAgF;YAChF,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;YACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAA;YAC7C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;QACpC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,8EAA8E;IAEtE,YAAY,CAAC,CAAgB;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK,YAAY;YAAE,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACzD,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IAEO,QAAQ,CAAC,OAAsB;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,YAAY,CAAA;QAChD,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC,UAAU,CAAA;QAC5C,OAAO,CAAC,CAAC,cAAc,CAAA;IACzB,CAAC;IAEO,SAAS,CAAC,OAAsB;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,YAAY,CAAA;QAChD,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC,UAAU,CAAA;QAC5C,OAAO,CAAC,CAAC,cAAc,CAAA;IACzB,CAAC;IAED,8EAA8E;IAEtE,MAAM;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAA;QAC1E,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAC5C,MAAM,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;QAC/E,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IACtE,CAAC;IAEO,QAAQ;QACd,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACzF,MAAM,KAAK,GAAG,YAAY,GAAG,CAAC;YAC5B,CAAC,CAAC,gBAAgB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,EAAE;YACrE,CAAC,CAAC,EAAE,CAAA;QACN,MAAM,SAAS,GAAG,cAAc,GAAG,CAAC;YAClC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,cAAc,EAAE,CAAC,EAAE;YAChD,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,QAAQ,WAAW,WAAW,YAAY,GAAG,SAAS,aAAa,YAAY,GAAG,KAAK,EAAE,CAAA;IAClG,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,KAAa;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAA;QAClD,MAAM,cAAc,GAAG,WAAW;YAChC,CAAC,CAAC,IAAI,CAAC,WAAY,GAAG,IAAI,CAAC,SAAS;YACpC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAA;QAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;QAE3C,4EAA4E;QAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAChB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAA;QAC5E,MAAM,SAAS,GAAG,GAAG,QAAQ,KAAK,UAAU,EAAE,CAAA;QAC9C,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAA;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAChG,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACxF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvE,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC3D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;QAE/B,+EAA+E;QAC/E,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS;YACxC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE;YAC5G,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAA;QAEjE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAEnD,2EAA2E;QAC3E,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG;YACrC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAA;QAEN,4DAA4D;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;QAC7B,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC7D,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YACpC,IAAI,cAAc,KAAK,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACvD,OAAO,GAAG,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;QAC/C,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAE7D,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QAChD,IAAI,cAAc,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEvD,OAAO,GAAG,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IAC/C,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,KAAa;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,sEAAsE;QACtE,uDAAuD;QACvD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5D,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;YACnD;gBACE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,KAAa;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAA;QAClG,CAAC;QACD,oFAAoF;QACpF,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAA;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAA;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAA;QACnF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG;YAChD,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,OAAO,GAAG,CAAA;QACvC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACrE,OAAO,MAAM,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAC5I,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,KAAa;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAA;QAC1F,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAA;QAC3C,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAA;QACnG,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAA;YACtG,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC3C,OAAO,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QACpM,CAAC;QACD,OAAO,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC5E,CAAC;IAEO,oBAAoB,CAAC,IAAY,EAAE,KAAa;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;QAE7B,oEAAoE;QACpE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,GAAG,KAAK,SAAS,CAAA;YACrC,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC9D,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE,CAAA;YACnH,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACtE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBACjD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAA;gBACrF,mFAAmF;gBACnF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtG,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAA;YACzF,CAAC;YACD,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAA;QACtF,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;QACjE,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAA;QAChC,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAA;QACvG,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAA;YACnF,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACjC,OAAO,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAA;YACxF,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACjD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAA;YACvF,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAC1E,OAAO,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAC1H,CAAC;QACD,OAAO,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC/E,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QAE3B,4EAA4E;QAC5E,IAAI,CAAC,aAAa,EAAE,CAAA;QAEpB,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QACtC,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,kDAAkD;QAClD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QAClD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QAE/D,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAClD,4EAA4E;QAC5E,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACnF,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM;YAAE,OAAO,OAAO,CAAA;QAEjE,oEAAoE;QACpE,oEAAoE;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC;IAEO,YAAY,CAAC,CAAS,EAAE,IAAgB;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,yEAAyE;QACzE,gFAAgF;QAChF,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAE1C,OAAO;YACL,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,GAAG;YACH,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC;YACzD,GAAG;YACH,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IAED,mFAAmF;IAC3E,oBAAoB;QAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,SAAQ;YAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yFAAyF;IACjF,WAAW,CAAC,OAAe,EAAE,CAAS,EAAE,MAAc;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/E,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;YACvB,KAAK,EAAE,CAAA;QACT,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClE,CAAC;IAED,8EAA8E;IAEtE,iBAAiB;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAO,CAAA;QACxB,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QAEpH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAA;QAEjD,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;QAEnE,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,gBAAgB,CAAC,YAAoB,EAAE,OAAgB;QAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAEjF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QACpD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;YACtE,MAAM,aAAa,GAAG,GAAG;gBACvB,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,aAAa,EAAE,CAAC,CAAA;QACxD,CAAC;QAED,mFAAmF;QACnF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAA;QAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAEzB,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QAE7C,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,aAAa;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,KAAK,MAAM;YAChC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/C,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK;gBACnB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAChD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAExB,qEAAqE;QACrE,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAErF,OAAO,KAAK,KAAK,GAAG,SAAS,EAAE,CAAA;IACjC,CAAC;IAEO,iBAAiB,CAAC,OAAgB;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,cAAc,EAAE,CAAA;QACtD,CAAC;QACD,MAAM,WAAW,GAAG,cAAc,GAAG,cAAc,CAAA;QAEnD,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,IAAI,eAAe,GAAG,KAAK,CAAA;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAA;QAEhB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAA;YAClD,qEAAqE;YACrE,wEAAwE;YACxE,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,oBAAoB;YACpB,IAAI,WAAW,IAAI,WAAW;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxD,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAA;YAExE,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;gBACzC,eAAe,GAAG,KAAK,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,IAAI,eAAe;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;gBAC1C,eAAe,GAAG,IAAI,CAAA;YACxB,CAAC;YACD,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,8EAA8E;IAEtE,kBAAkB,CAAC,IAAY;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;QACnE,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAExC,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,aAAa;QACb,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACzC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzC,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAChC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAA;QACtC,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC9C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACtE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC/C,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEzE,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,CAAA;IACpJ,CAAC;IAED,8EAA8E;IAEtE,aAAa;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,aAAa;YAAE,OAAM;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAA;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,OAAO,IAAI,CAAC;gBAAE,MAAK;YACvB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,SAAQ,CAAE,qBAAqB;YACnE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAI,OAAO;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/lib/board.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,79 @@
1
1
  import type { Config } from '../config/schema.js';
2
+ export declare function isolateGitConfig(): void;
2
3
  export declare function redactCloneSecrets(value: string): string;
4
+ /**
5
+ * How `refs/remotes/origin/<base>` came to exist — or that it does not.
6
+ *
7
+ * `unavailable` is the one that matters: without the base ref there is no PR diff,
8
+ * and every downstream step degrades silently rather than failing. The review
9
+ * vendor answers "could not be performed", the commit counter falls back to whole
10
+ * history and skips the fix step, and `git diff origin/<base>...HEAD` in the fixer
11
+ * falls through to `HEAD~1` — a diff of the wrong thing.
12
+ */
13
+ export type BaseRefStatus = 'fetched' | 'recovered_by_sha' | 'recovered_by_merge_ref' | 'unavailable';
14
+ export interface CloneResult {
15
+ baseRefStatus: BaseRefStatus;
16
+ }
17
+ export declare class BaseRefUnavailableError extends Error {
18
+ readonly baseRef: string;
19
+ constructor(baseRef: string);
20
+ }
21
+ export declare function isBaseRefUnavailableError(err: unknown): err is BaseRefUnavailableError;
3
22
  export declare function clonePRForReview(params: {
4
23
  owner: string;
5
24
  repo: string;
6
25
  prNumber: number;
7
26
  baseRef: string;
27
+ /**
28
+ * The base commit from the PR payload. A branch that was deleted or renamed after
29
+ * the PR opened no longer resolves by name, but GitHub still serves the commit
30
+ * itself — so this is what turns an unreviewable PR back into a reviewable one.
31
+ */
32
+ baseSha?: string;
8
33
  tmpDir: string;
9
34
  token: string;
10
35
  protocol: Config['clone_protocol'];
11
36
  onBaseFetchFailed?: () => void;
37
+ onBaseRefRecovered?: (status: BaseRefStatus) => void;
12
38
  onProgress?: (line: string) => void;
13
- }): Promise<void>;
39
+ }): Promise<CloneResult>;
40
+ /**
41
+ * Puts `refs/remotes/origin/<baseRef>` in place, or reports that it cannot be.
42
+ *
43
+ * Split out of clonePRForReview so it is testable against a local origin: the
44
+ * clone itself is hard-wired to github.com, and the part worth testing is the
45
+ * recovery chain, not the URL building.
46
+ *
47
+ * Assumes `tmpDir` is a git repo with an `origin` remote and the PR head checked
48
+ * out — never the base branch, since git refuses to update a checked-out ref.
49
+ */
50
+ export declare function resolveBaseRef(params: {
51
+ tmpDir: string;
52
+ baseRef: string;
53
+ prNumber: number;
54
+ baseSha?: string;
55
+ onBaseFetchFailed?: () => void;
56
+ onBaseRefRecovered?: (status: BaseRefStatus) => void;
57
+ }): Promise<BaseRefStatus>;
58
+ export declare function runGitWithoutHooks(repoDir: string, args: string[], env?: NodeJS.ProcessEnv): void;
59
+ export declare class CompromisedCloneError extends Error {
60
+ constructor();
61
+ }
62
+ export interface ChangedFiles {
63
+ files: string[];
64
+ additions: number;
65
+ deletions: number;
66
+ }
67
+ /**
68
+ * The PR's own changes, read from the clone rather than the API.
69
+ *
70
+ * The API's file list paginates and truncates on large PRs, and a truncated list
71
+ * can turn a mixed PR into an apparently doc-only one — which now caps a verdict,
72
+ * so a wrong answer suppresses a real BLOCK. The clone has the whole diff.
73
+ *
74
+ * Returns null when the diff cannot be read (no base ref, empty diff), so callers
75
+ * fall back rather than treating "unknown" as "no files".
76
+ */
77
+ export declare function changedFilesVsBase(tmpDir: string, baseRef: string): ChangedFiles | null;
14
78
  export declare function withCredentialFreeOrigin<T>(repoDir: string, fn: () => Promise<T>): Promise<T>;
15
79
  //# sourceMappingURL=clone.d.ts.map