oharness 0.7.0 → 0.8.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 (40) hide show
  1. package/dist/bin/browser-host.d.ts +10 -0
  2. package/dist/bin/browser-host.js +11 -0
  3. package/dist/bin/browser-host.js.map +1 -0
  4. package/dist/browser-host/main.d.ts +2 -0
  5. package/dist/browser-host/main.js +113 -0
  6. package/dist/browser-host/main.js.map +1 -0
  7. package/dist/ui/commands.d.ts +25 -0
  8. package/dist/ui/commands.js +64 -0
  9. package/dist/ui/commands.js.map +1 -0
  10. package/dist/ui/main.js +2 -23
  11. package/dist/ui/main.js.map +1 -1
  12. package/dist/ui/render.d.ts +12 -0
  13. package/dist/ui/render.js +23 -3
  14. package/dist/ui/render.js.map +1 -1
  15. package/dist/ui/tui/app.d.ts +44 -0
  16. package/dist/ui/tui/app.js +191 -4
  17. package/dist/ui/tui/app.js.map +1 -1
  18. package/dist/ui/tui/layout.d.ts +13 -0
  19. package/dist/ui/tui/layout.js +64 -2
  20. package/dist/ui/tui/layout.js.map +1 -1
  21. package/extension/README.md +58 -0
  22. package/extension/_locales/de/messages.json +83 -0
  23. package/extension/_locales/en/messages.json +83 -0
  24. package/extension/_locales/fr/messages.json +83 -0
  25. package/extension/_locales/ja/messages.json +83 -0
  26. package/extension/_locales/ko/messages.json +83 -0
  27. package/extension/_locales/zh_CN/messages.json +83 -0
  28. package/extension/background.js +380 -0
  29. package/extension/icons/icon-128.png +0 -0
  30. package/extension/icons/icon-16.png +0 -0
  31. package/extension/icons/icon-32.png +0 -0
  32. package/extension/icons/icon-48.png +0 -0
  33. package/extension/manifest.json +39 -0
  34. package/extension/popup.css +142 -0
  35. package/extension/popup.html +43 -0
  36. package/extension/popup.js +101 -0
  37. package/extension/sidepanel.css +123 -0
  38. package/extension/sidepanel.html +30 -0
  39. package/extension/sidepanel.js +126 -0
  40. package/package.json +8 -6
@@ -34,8 +34,21 @@ export declare class Tui {
34
34
  private dirty;
35
35
  private tick;
36
36
  private busy;
37
+ /**
38
+ * Typed while a turn was running, waiting for it to finish.
39
+ *
40
+ * Enter used to be swallowed whole while busy, so a thought had to be held
41
+ * in the head until the model stopped. These go in order once the turn ends
42
+ * on its own; an interrupt leaves them standing, because stopping means
43
+ * stop and the next message was written for the run that was cut short.
44
+ */
45
+ private queued;
37
46
  /** A slash command is in flight; a second one must not start underneath it. */
38
47
  private runningCommand;
48
+ /** Which row of the command menu is picked, and the input it was picked for. */
49
+ private completion;
50
+ /** Input the menu was dismissed on with Escape; it stays shut until that changes. */
51
+ private dismissedFor?;
39
52
  private pending?;
40
53
  private abort?;
41
54
  /** The in-flight turn, so shutdown can wait for it to finish writing. */
@@ -103,6 +116,18 @@ export declare class Tui {
103
116
  exit(): void;
104
117
  private onData;
105
118
  private onKey;
119
+ /**
120
+ * The command menu's share of the keyboard, while it is up.
121
+ *
122
+ * Returns whether the key was spent here. Everything it does not claim —
123
+ * typing, Backspace, the caret keys — goes to the editor as usual, and the
124
+ * menu is recomputed from the text on the next frame.
125
+ */
126
+ private completionKey;
127
+ /** What the menu offers for the text in the box right now. */
128
+ private completions;
129
+ /** The picked row, reset to the top whenever the text it was picked for changes. */
130
+ private completionIndex;
106
131
  private overlayKey;
107
132
  private submit;
108
133
  /**
@@ -115,8 +140,27 @@ export declare class Tui {
115
140
  * finish.
116
141
  */
117
142
  shutdown(): Promise<void>;
143
+ /**
144
+ * Send the message at the head of the queue.
145
+ *
146
+ * Into the turn that is running, if one is — it reads it at the next gap
147
+ * between messages, which for a working agent is the next time a tool
148
+ * returns. With nothing running it is an ordinary prompt, which is how a
149
+ * queue left standing by an interrupt is let go.
150
+ */
151
+ private sendQueued;
118
152
  private runTurn;
153
+ /**
154
+ * The prompt, then whatever was typed behind it.
155
+ *
156
+ * A loop rather than a turn that starts the next one: shutdown awaits a
157
+ * single promise, and it should cover the whole run of queued messages
158
+ * rather than only the one that happened to be in flight.
159
+ */
160
+ private drive;
161
+ /** Whether the turn ended on its own, rather than interrupted or failed. */
119
162
  private executeTurn;
120
163
  private markDirty;
164
+ private completionState;
121
165
  private draw;
122
166
  }
@@ -3,7 +3,8 @@ import { picksFromNumbers } from "@oharness/engine/tools/questions.ts";
3
3
  import { errorMessage } from "@oharness/engine/core/errors.ts";
4
4
  import { previewJson } from "@oharness/engine/util/json.ts";
5
5
  import { artifactNote, artifactSummary } from "../artifact.js";
6
- import { explainError } from "../render.js";
6
+ import { explainError, explainFailure } from "../render.js";
7
+ import { matchCommands } from "../commands.js";
7
8
  import { Editor } from "./editor.js";
8
9
  import { parseKeys } from "./keys.js";
9
10
  import { composeFrame } from "./layout.js";
@@ -33,8 +34,21 @@ export class Tui {
33
34
  dirty = false;
34
35
  tick = 0;
35
36
  busy = false;
37
+ /**
38
+ * Typed while a turn was running, waiting for it to finish.
39
+ *
40
+ * Enter used to be swallowed whole while busy, so a thought had to be held
41
+ * in the head until the model stopped. These go in order once the turn ends
42
+ * on its own; an interrupt leaves them standing, because stopping means
43
+ * stop and the next message was written for the run that was cut short.
44
+ */
45
+ queued = [];
36
46
  /** A slash command is in flight; a second one must not start underneath it. */
37
47
  runningCommand = false;
48
+ /** Which row of the command menu is picked, and the input it was picked for. */
49
+ completion = { index: 0, input: "" };
50
+ /** Input the menu was dismissed on with Escape; it stays shut until that changes. */
51
+ dismissedFor;
38
52
  pending;
39
53
  abort;
40
54
  /** The in-flight turn, so shutdown can wait for it to finish writing. */
@@ -299,12 +313,22 @@ export class Tui {
299
313
  this.abort?.abort();
300
314
  this.write("(interrupted)");
301
315
  }
316
+ else if (this.queued.length) {
317
+ // Between interrupting and quitting: a queue the interrupt left
318
+ // standing is the nearest thing to cancel, and dropping it should not
319
+ // cost the session. A further Ctrl-C quits as before.
320
+ const dropped = this.queued.length;
321
+ this.queued = [];
322
+ this.write(`(dropped ${dropped === 1 ? "1 queued message" : `${dropped} queued messages`})`);
323
+ }
302
324
  else
303
325
  this.exit();
304
326
  return;
305
327
  }
306
328
  if (key.ctrl && key.name === "d" && this.editor.text === "")
307
329
  return this.exit();
330
+ if (this.completionKey(key))
331
+ return this.markDirty();
308
332
  switch (key.name) {
309
333
  case "enter":
310
334
  if (key.alt || key.shift) {
@@ -378,6 +402,61 @@ export class Tui {
378
402
  }
379
403
  this.markDirty();
380
404
  }
405
+ /**
406
+ * The command menu's share of the keyboard, while it is up.
407
+ *
408
+ * Returns whether the key was spent here. Everything it does not claim —
409
+ * typing, Backspace, the caret keys — goes to the editor as usual, and the
410
+ * menu is recomputed from the text on the next frame.
411
+ */
412
+ completionKey(key) {
413
+ const matches = this.completions();
414
+ if (matches.length === 0)
415
+ return false;
416
+ const index = this.completionIndex(matches);
417
+ switch (key.name) {
418
+ case "up":
419
+ this.completion = { index: (index - 1 + matches.length) % matches.length, input: this.editor.text };
420
+ return true;
421
+ case "down":
422
+ this.completion = { index: (index + 1) % matches.length, input: this.editor.text };
423
+ return true;
424
+ case "escape":
425
+ this.dismissedFor = this.editor.text;
426
+ return true;
427
+ case "tab":
428
+ this.editor.set(completedLine(matches[index]));
429
+ return true;
430
+ case "enter": {
431
+ if (key.alt || key.shift)
432
+ return false;
433
+ const command = matches[index];
434
+ // A required argument has nothing to run without; fill the name in and
435
+ // leave the caret where the argument goes.
436
+ if (command.args?.startsWith("<")) {
437
+ this.editor.set(completedLine(command));
438
+ return true;
439
+ }
440
+ this.editor.set(`/${command.name}`);
441
+ void this.submit();
442
+ return true;
443
+ }
444
+ }
445
+ return false;
446
+ }
447
+ /** What the menu offers for the text in the box right now. */
448
+ completions() {
449
+ const text = this.editor.text;
450
+ if (this.pending || this.runningCommand || text === this.dismissedFor)
451
+ return [];
452
+ return matchCommands(text);
453
+ }
454
+ /** The picked row, reset to the top whenever the text it was picked for changes. */
455
+ completionIndex(matches) {
456
+ if (this.completion.input !== this.editor.text)
457
+ return 0;
458
+ return Math.min(this.completion.index, matches.length - 1);
459
+ }
381
460
  overlayKey(key) {
382
461
  const pending = this.pending;
383
462
  const total = pending.overlay.choices.length;
@@ -423,8 +502,27 @@ export class Tui {
423
502
  }
424
503
  async submit() {
425
504
  const line = this.editor.text.trim();
426
- if (line === "" || this.busy || this.runningCommand)
505
+ // Nothing typed, but something waiting. Enter is the send: into the turn
506
+ // that is running, or as an ordinary prompt when nothing is.
507
+ if (line === "" && !this.runningCommand && this.queued.length) {
508
+ return this.sendQueued();
509
+ }
510
+ if (line === "" || this.runningCommand)
427
511
  return;
512
+ // A command is the program, not the conversation, and running one against
513
+ // a session mid-turn is a different thing from sending a message. Held
514
+ // back rather than queued.
515
+ if (this.busy) {
516
+ if (line.startsWith("/"))
517
+ return;
518
+ this.editor.remember(line);
519
+ this.editor.clear();
520
+ // Queued and shown waiting, not pushed at the model because it was
521
+ // typed quickly. Enter on an empty box is what sends it into the turn.
522
+ this.queued.push(line);
523
+ this.markDirty();
524
+ return;
525
+ }
428
526
  this.editor.remember(line);
429
527
  this.editor.clear();
430
528
  this.scroll = 0;
@@ -467,8 +565,33 @@ export class Tui {
467
565
  // can never turn shutdown into an unhandled rejection.
468
566
  await this.turn?.catch(() => { });
469
567
  }
568
+ /**
569
+ * Send the message at the head of the queue.
570
+ *
571
+ * Into the turn that is running, if one is — it reads it at the next gap
572
+ * between messages, which for a working agent is the next time a tool
573
+ * returns. With nothing running it is an ordinary prompt, which is how a
574
+ * queue left standing by an interrupt is let go.
575
+ */
576
+ async sendQueued() {
577
+ const next = this.queued[0];
578
+ if (next === undefined)
579
+ return;
580
+ this.scroll = 0;
581
+ if (this.busy) {
582
+ // Only drop it from the queue once the agent has taken it, or a refusal
583
+ // would lose the line.
584
+ if (this.agent.interject(next))
585
+ this.queued.shift();
586
+ this.markDirty();
587
+ return;
588
+ }
589
+ this.queued.shift();
590
+ this.blocks.push({ kind: "user", text: next });
591
+ await this.runTurn(next);
592
+ }
470
593
  async runTurn(prompt) {
471
- const turn = this.executeTurn(prompt);
594
+ const turn = this.drive(prompt);
472
595
  this.turn = turn;
473
596
  try {
474
597
  await turn;
@@ -478,6 +601,30 @@ export class Tui {
478
601
  this.turn = undefined;
479
602
  }
480
603
  }
604
+ /**
605
+ * The prompt, then whatever was typed behind it.
606
+ *
607
+ * A loop rather than a turn that starts the next one: shutdown awaits a
608
+ * single promise, and it should cover the whole run of queued messages
609
+ * rather than only the one that happened to be in flight.
610
+ */
611
+ async drive(prompt) {
612
+ let next = prompt;
613
+ while (next !== undefined) {
614
+ const clean = await this.executeTurn(next);
615
+ // An interrupt or a failure stops the queue where it stands. The lines
616
+ // are still listed above the box, and Enter on an empty box sends them.
617
+ if (!clean)
618
+ break;
619
+ next = this.queued.shift();
620
+ if (next !== undefined) {
621
+ this.scroll = 0;
622
+ this.blocks.push({ kind: "user", text: next });
623
+ this.markDirty();
624
+ }
625
+ }
626
+ }
627
+ /** Whether the turn ended on its own, rather than interrupted or failed. */
481
628
  async executeTurn(prompt) {
482
629
  this.busy = true;
483
630
  this.abort = new AbortController();
@@ -485,6 +632,7 @@ export class Tui {
485
632
  // One block per contiguous run of text, so streaming appends to the same
486
633
  // paragraph instead of pushing a new one per delta.
487
634
  let streaming;
635
+ let clean = true;
488
636
  const tools = new Map();
489
637
  /** Artifact id → its row, so a revision updates in place. */
490
638
  const artifacts = new Map();
@@ -580,11 +728,20 @@ export class Tui {
580
728
  case "memory_extracted":
581
729
  this.blocks.push({ kind: "notice", text: `saved ${event.notes.length === 1 ? "1 memory" : `${event.notes.length} memories`} from this conversation: ${event.notes.map((note) => note.summary).join("; ")}` });
582
730
  break;
731
+ case "interjected":
732
+ // In the transcript at the point it entered the conversation, not
733
+ // where it was typed: what the model read is what happened.
734
+ this.blocks.push({ kind: "user", text: event.text });
735
+ break;
583
736
  case "notice":
584
737
  this.blocks.push({ kind: "notice", text: event.message });
585
738
  break;
586
739
  case "error":
587
- this.blocks.push({ kind: "error", text: event.error });
740
+ this.blocks.push({ kind: "error", text: explainFailure(event.error, event) });
741
+ // The agent reports a provider failure this way and breaks its own
742
+ // loop rather than throwing, so the catch below never sees it.
743
+ if (event.fatal)
744
+ clean = false;
588
745
  break;
589
746
  }
590
747
  this.markDirty();
@@ -592,17 +749,38 @@ export class Tui {
592
749
  }
593
750
  catch (err) {
594
751
  this.blocks.push({ kind: "error", text: explainError(err) });
752
+ clean = false;
595
753
  }
596
754
  finally {
755
+ if (this.abort?.signal.aborted)
756
+ clean = false;
757
+ // Said after the loop's last chance to read it. Back onto the front of
758
+ // the queue, or it would sit unread inside a finished agent.
759
+ this.queued.unshift(...this.agent.takeUnread().map((entry) => entry.text));
597
760
  this.busy = false;
598
761
  this.abort = undefined;
599
762
  this.markDirty();
600
763
  }
764
+ return clean;
601
765
  }
602
766
  // --- drawing -------------------------------------------------------------
603
767
  markDirty() {
604
768
  this.dirty = true;
605
769
  }
770
+ completionState() {
771
+ const matches = this.completions();
772
+ if (matches.length === 0)
773
+ return {};
774
+ return {
775
+ completions: {
776
+ items: matches.map((command) => ({
777
+ label: command.args ? `/${command.name} ${command.args}` : `/${command.name}`,
778
+ description: command.description,
779
+ })),
780
+ selected: this.completionIndex(matches),
781
+ },
782
+ };
783
+ }
606
784
  draw() {
607
785
  this.dirty = false;
608
786
  const { rows, columns } = this.screen;
@@ -613,7 +791,12 @@ export class Tui {
613
791
  input: this.editor.text,
614
792
  cursorColumns: this.editor.cursorColumns,
615
793
  scroll: this.scroll,
794
+ // Two lists, one row each: what the running turn is about to read,
795
+ // then what is waiting for it to finish.
796
+ interjected: this.agent.pendingInterjections.map((entry) => entry.text),
797
+ queued: this.queued,
616
798
  ...(this.pending ? { overlay: this.pending.overlay } : {}),
799
+ ...this.completionState(),
617
800
  status: {
618
801
  model: this.session.model.id,
619
802
  mode: MODE_LABELS[this.session.permissions.getMode()],
@@ -626,4 +809,8 @@ export class Tui {
626
809
  this.screen.render(frame.lines, frame.cursor);
627
810
  }
628
811
  }
812
+ /** The line Tab leaves behind: the name, and a space if an argument follows. */
813
+ function completedLine(command) {
814
+ return command.args ? `/${command.name} ` : `/${command.name}`;
815
+ }
629
816
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/ui/tui/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/ui/tui/app.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;GAOG;AAEH,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,2DAA2D;AAChF,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,iFAAiF;AACjF,MAAM,SAAS,GAAG,EAAE,CAAC;AAyBrB,MAAM,OAAO,GAAG;IACL,OAAO,CAAU;IAC1B,OAAO,CAAU;IACjB,KAAK,CAAQ;IAEI,MAAM,CAAS;IACf,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IACtB,MAAM,GAAY,EAAE,CAAC;IACrB,SAAS,CAA0B;IAE5C,QAAQ,GAAG,EAAE,CAAC;IACd,MAAM,GAAG,CAAC,CAAC;IACX,KAAK,GAAG,KAAK,CAAC;IACd,IAAI,GAAG,CAAC,CAAC;IACT,IAAI,GAAG,KAAK,CAAC;IACrB;;;;;;;OAOG;IACK,MAAM,GAAa,EAAE,CAAC;IAC9B,+EAA+E;IACvE,cAAc,GAAG,KAAK,CAAC;IAC/B,gFAAgF;IACxE,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC7C,qFAAqF;IAC7E,YAAY,CAAU;IACtB,OAAO,CAAiB;IACxB,KAAK,CAAmB;IAChC,yEAAyE;IACjE,IAAI,CAAiB;IACrB,OAAO,GAAG,KAAK,CAAC;IAChB,KAAK,CAAkC;IACvC,WAAW,CAAc;IACzB,WAAW,CAAiC;IAEpD,YAAY,IAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE9E,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAErG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,oEAAoE;IACpE,KAAK;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,IAAY,EAAE,OAAsB,QAAQ;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,OAAgB,EAAE,KAAY;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;YACD,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC,EAAE,QAAQ,CAAC,CAAC;QACb,sEAAsE;QACtE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAErB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAkC,EAAE,OAAO,GAAG,CAAC;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG;gBACb,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC1C,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;aAC9E,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CACL,MAAoF;QAEpF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG;gBACb,OAAO,EAAE;oBACP,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE;wBACL,KAAK,EAAE,EAAE;wBACT,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1C,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACnE;iBACF;gBACD,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;aAC/F,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,GAAG,KAAK,EACtB,OAA0B,EACmD,EAAE;QAC/E,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,OAAO,GAA+D;YAC1E,EAAE,KAAK,EAAE,IAAI,EAAE;YACf,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;YACpC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;YACpC,EAAE,KAAK,EAAE,KAAK,EAAE;SACjB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,KAAK,OAAO,CAAC,KAAK,EAAE;YAC3B,MAAM;YACN,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBACxC,EAAE,KAAK,EAAE,uCAAuC,EAAE;gBAClD,EAAE,KAAK,EAAE,oCAAoC,EAAE;gBAC/C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,mCAAmC,EAAE;aAC3D;SACF,CAAC,CAAC;QACH,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;IACpE,CAAC,CAAC;IAEF;;;;OAIG;IACH,cAAc,GAAG,KAAK,EAAE,OAAwB,EAAE,MAAmB,EAA2B,EAAE;QAChG,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,OAAO,GAAiC,EAAE,CAAC;YACjD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;oBAC/B,KAAK,EAAE,MAAM,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,EAAE;oBACpD,OAAO,EAAE;wBACP,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACnC,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC5D,CAAC,CAAC;wBACH,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1F,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,sBAAsB,EAAE;qBAC3D;iBACF,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBAClD,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC1D,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvE,SAAS;gBACX,CAAC;gBACD,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,IAAI,MAAM,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;oBAC/B,KAAK,EAAE,QAAQ,CAAC,QAAQ;oBACxB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7G,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa;iBAClD,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;gBACzD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;oBACtD,SAAS;gBACX,CAAC;gBACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;gBACtD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAC9B;YACE,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC;gBAC7B,OAAO,EAAE,IAAI,KAAK,OAAO;aAC1B,CAAC,CAAC;SACJ,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC/C,CAAC;QACF,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,UAAU,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACvB,CAAC;IAED,4EAA4E;IAEpE,MAAM,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,CAAC;QACD,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,4CAA4C;QAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;gBACjC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjC,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAQ;QACpB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,sEAAsE;YACtE,oDAAoD;YACpD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,gEAAgE;gBAChE,sEAAsE;gBACtE,sDAAsD;gBACtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACnC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,CAAC,YAAY,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,kBAAkB,GAAG,CAAC,CAAC;YAC/F,CAAC;;gBAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QAChF,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAErD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzB,MAAM;gBACR,CAAC;gBACD,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,GAAG,CAAC,GAAG;oBAAE,MAAM,CAAC,6CAA6C;gBACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC5B,MAAM;YACR,KAAK,MAAM;gBACT,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClE,MAAM;YACR,KAAK,OAAO;gBACV,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACpE,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAClB,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3E,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,GAAG,CAAC,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC7C,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,GAAG,CAAC,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,GAAG,CAAC,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxC,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,GAAG,CAAC,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjC,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,GAAG,CAAC,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,GAAG,CAAC,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrC,MAAM;QACV,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,GAAQ;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE5C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,IAAI;gBACP,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpG,OAAO,IAAI,CAAC;YACd,KAAK,MAAM;gBACT,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnF,OAAO,IAAI,CAAC;YACd,KAAK,QAAQ;gBACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,KAAK,KAAK;gBACR,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC;gBAChD,OAAO,IAAI,CAAC;YACd,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAE,CAAC;gBAChC,uEAAuE;gBACvE,2CAA2C;gBAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8DAA8D;IACtD,WAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;QACjF,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,oFAAoF;IAC5E,eAAe,CAAC,OAAuB;QAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEO,UAAU,CAAC,GAAQ;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAQ,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,MAAmC,EAAQ,EAAE;YAC3D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAEtF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,yEAAyE;YACzE,sEAAsE;YACtE,yBAAyB;iBACpB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;iBAClF,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI;gBAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;iBAChF,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG;gBAAE,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;iBACnD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG;gBAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;aAC5F,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;aAC3F,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK;gBAAE,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAErC,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAE/C,0EAA0E;QAC1E,uEAAuE;QACvE,2BAA2B;QAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO;YACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,mEAAmE;YACnE,uEAAuE;YACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,uEAAuE;YACvE,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,WAAW;YACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjD,IAAI,OAAO,KAAK,MAAM;oBAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3C,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1D,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QACpB,0EAA0E;QAC1E,uDAAuD;QACvD,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,wEAAwE;YACxE,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAc;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,KAAK,CAAC,MAAc;QAChC,IAAI,IAAI,GAAuB,MAAM,CAAC;QACtC,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3C,uEAAuE;YACvE,wEAAwE;YACxE,IAAI,CAAC,KAAK;gBAAE,MAAM;YAClB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IACpE,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,yEAAyE;QACzE,oDAAoD;QACpD,IAAI,SAA4B,CAAC;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QACvC,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAC;QAE3C,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBAChF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,YAAY;wBACf,IAAI,CAAC,SAAS,EAAE,CAAC;4BACf,SAAS,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;4BAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9B,CAAC;wBACD,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;wBAC7B,MAAM;oBAER,KAAK,mBAAmB;wBACtB,SAAS,GAAG,SAAS,CAAC;wBACtB,MAAM;oBAER,iEAAiE;oBACjE,4CAA4C;oBAC5C,KAAK,cAAc,CAAC,CAAC,CAAC;wBACpB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;4BAAE,MAAM;wBACvC,MAAM,KAAK,GAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACzE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACxB,SAAS,GAAG,SAAS,CAAC;wBACtB,MAAM;oBACR,CAAC;oBAED,KAAK,YAAY,CAAC,CAAC,CAAC;wBAClB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC9C,IAAI,SAAS,EAAE,CAAC;4BACd,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;4BAC7B,MAAM;wBACR,CAAC;wBACD,MAAM,KAAK,GAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACtE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACxB,SAAS,GAAG,SAAS,CAAC;wBACtB,MAAM;oBACR,CAAC;oBAED,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC1C,IAAI,KAAK,EAAE,CAAC;4BACV,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;4BAClB,KAAK,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;wBACnF,CAAC;wBACD,MAAM;oBACR,CAAC;oBAED,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,oEAAoE;wBACpE,mEAAmE;wBACnE,mCAAmC;wBACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAClD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wBAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wBAC1C,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;4BACrB,IAAI,IAAI,KAAK,SAAS;gCAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;;gCACxC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;wBAC5B,CAAC;6BAAM,CAAC;4BACN,MAAM,KAAK,GAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC3E,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC1B,CAAC;wBACD,SAAS,GAAG,SAAS,CAAC;wBACtB,MAAM;oBACR,CAAC;oBAED,KAAK,mBAAmB;wBACtB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;4BACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;wBACtE,CAAC;6BAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;4BAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;wBAChF,CAAC;wBACD,MAAM;oBAER,KAAK,WAAW;wBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,aAAa,KAAK,CAAC,eAAe,cAAc,KAAK,CAAC,YAAY,MAAM,KAAK,CAAC,WAAW,UAAU;yBAC1G,CAAC,CAAC;wBACH,MAAM;oBAER,KAAK,eAAe;wBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC1E,MAAM;oBAER,KAAK,eAAe;wBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,YAAY,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,WAAW,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;yBACpJ,CAAC,CAAC;wBACH,MAAM;oBAER,KAAK,kBAAkB;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,WAAW,4BAA4B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC9M,MAAM;oBAER,KAAK,aAAa;wBAChB,kEAAkE;wBAClE,4DAA4D;wBAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBACrD,MAAM;oBAER,KAAK,QAAQ;wBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC1D,MAAM;oBAER,KAAK,OAAO;wBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC9E,mEAAmE;wBACnE,+DAA+D;wBAC/D,IAAI,KAAK,CAAC,KAAK;4BAAE,KAAK,GAAG,KAAK,CAAC;wBAC/B,MAAM;gBACV,CAAC;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7D,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO;gBAAE,KAAK,GAAG,KAAK,CAAC;YAC9C,uEAAuE;YACvE,6DAA6D;YAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4EAA4E;IAEpE,SAAS;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,eAAe;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,OAAO;YACL,WAAW,EAAE;gBACX,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC/B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE;oBAC7E,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC,CAAC;gBACH,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;aACxC;SACF,CAAC;IACJ,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QAE9E,MAAM,KAAK,GAAG,YAAY,CACxB;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACvB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,mEAAmE;YACnE,yCAAyC;YACzC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YACvE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAoB,CAAC;gBACvE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;SACF,EACD,IAAI,EACJ,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACF;AAED,gFAAgF;AAChF,SAAS,aAAa,CAAC,OAAqB;IAC1C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC"}
@@ -62,8 +62,21 @@ export interface FrameState {
62
62
  status: StatusInfo;
63
63
  /** Rows scrolled back from the bottom; 0 means pinned to the latest. */
64
64
  scroll: number;
65
+ /** Handed to the running turn, waiting for it to reach a gap and read them. */
66
+ interjected?: string[];
67
+ /** Lines waiting for the turn to finish before they are sent. */
68
+ queued?: string[];
65
69
  overlay?: Overlay;
66
70
  hint?: string;
71
+ /** Slash commands the half-typed input could become, drawn under the box. */
72
+ completions?: Completions;
73
+ }
74
+ export interface Completions {
75
+ items: {
76
+ label: string;
77
+ description: string;
78
+ }[];
79
+ selected: number;
67
80
  }
68
81
  export interface Frame {
69
82
  lines: string[];
@@ -12,7 +12,12 @@ export function composeFrame(state, rows, columns) {
12
12
  }
13
13
  const inputRows = renderInput(state, columns);
14
14
  const statusRow = renderStatus(state.status, columns);
15
- const historyHeight = Math.max(1, rows - inputRows.length - 1);
15
+ const queuedRows = renderQueued(state.interjected ?? [], state.queued ?? [], columns);
16
+ // The menu gets what is left after the box, the queue, the status row and one
17
+ // row of transcript; on a short terminal it scrolls rather than overflowing.
18
+ const menuRoom = Math.min(COMPLETION_ROWS, rows - inputRows.length - queuedRows.length - 2);
19
+ const completionRows = state.completions ? renderCompletions(state.completions, menuRoom, columns) : [];
20
+ const historyHeight = Math.max(1, rows - inputRows.length - queuedRows.length - completionRows.length - 1);
16
21
  const history = state.blocks.flatMap((block) => renderBlock(block, columns));
17
22
  // Scrolling is measured from the bottom, so new output does not yank the
18
23
  // view when the user has deliberately scrolled back.
@@ -23,7 +28,9 @@ export function composeFrame(state, rows, columns) {
23
28
  const visible = history.slice(start, end);
24
29
  const lines = [
25
30
  ...(isIntro(state.blocks) ? centreIn(visible, historyHeight) : padTo(visible, historyHeight)),
31
+ ...queuedRows,
26
32
  ...inputRows,
33
+ ...completionRows,
27
34
  statusRow,
28
35
  ];
29
36
  if (state.overlay) {
@@ -33,7 +40,7 @@ export function composeFrame(state, rows, columns) {
33
40
  // columns in for the border and the prompt marker.
34
41
  const promptWidth = 4;
35
42
  const inner = Math.max(1, columns - promptWidth - 2);
36
- const cursorRow = historyHeight + 2 + Math.floor(state.cursorColumns / inner);
43
+ const cursorRow = historyHeight + queuedRows.length + 2 + Math.floor(state.cursorColumns / inner);
37
44
  const cursorColumn = promptWidth + 1 + (state.cursorColumns % inner);
38
45
  return {
39
46
  lines,
@@ -142,6 +149,61 @@ function renderInput(state, columns) {
142
149
  });
143
150
  return [top, ...body, bottom];
144
151
  }
152
+ /**
153
+ * The command menu under the input box.
154
+ *
155
+ * Under rather than over it: the transcript above is what the command will act
156
+ * on, and a menu covering it hides the context the pick is made in. A window of
157
+ * the list follows the selection, so a long match set scrolls instead of
158
+ * pushing the conversation off the screen.
159
+ */
160
+ const COMPLETION_ROWS = 8;
161
+ function renderCompletions(completions, room, columns) {
162
+ const { items, selected } = completions;
163
+ if (items.length === 0 || room <= 0)
164
+ return [];
165
+ const start = Math.min(Math.max(0, selected - room + 1), Math.max(0, items.length - room));
166
+ const shown = items.slice(start, start + room);
167
+ const labelWidth = Math.max(...items.map((item) => visibleWidth(item.label))) + 2;
168
+ return shown.map((item, i) => {
169
+ const active = start + i === selected;
170
+ const pad = " ".repeat(Math.max(0, labelWidth - visibleWidth(item.label)));
171
+ const label = active ? c.cyan(`❯ ${item.label}`) : ` ${item.label}`;
172
+ return truncate(` ${label}${pad}${c.gray(item.description)}`, columns);
173
+ });
174
+ }
175
+ /**
176
+ * The messages waiting behind the running turn, just above the box.
177
+ *
178
+ * Above the input rather than in the transcript: they have not been said yet,
179
+ * and a line in the history reads as one the model has already seen. Capped,
180
+ * because a long queue would eat the conversation it is waiting on.
181
+ */
182
+ const QUEUED_ROWS = 3;
183
+ function renderQueued(interjected, queued, columns) {
184
+ // One list, in the order the conversation will read them: what the running
185
+ // turn is about to pick up, then what is waiting for it to finish. The mark
186
+ // is the difference — an arrow for a line already handed over, a dot for one
187
+ // still waiting its turn.
188
+ const all = [
189
+ ...interjected.map((text) => ({ text, mark: "↳", soon: true })),
190
+ ...queued.map((text) => ({ text, mark: "↑", soon: false })),
191
+ ];
192
+ if (all.length === 0)
193
+ return [];
194
+ const shown = all.slice(0, QUEUED_ROWS);
195
+ const rows = shown.map((entry) => {
196
+ // The first line only: a pasted block is one message, and letting it
197
+ // unfold here would push the transcript off the screen.
198
+ const flat = entry.text.split("\n")[0] ?? "";
199
+ const line = truncate(` ${entry.mark} ${flat}`, columns);
200
+ return entry.soon ? c.cyan(line) : c.gray(line);
201
+ });
202
+ const rest = all.length - shown.length;
203
+ if (rest > 0)
204
+ rows.push(c.gray(truncate(` ↑ +${rest} more`, columns)));
205
+ return rows;
206
+ }
145
207
  function renderStatus(status, columns) {
146
208
  const parts = [];
147
209
  if (status.busy)
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/ui/tui/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/ui/tui/layout.ts"],"names":[],"mappings":"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"}