@thenewlabs/entangle-serve 2.10.0 → 2.11.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.
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +21 -0
- package/dist/daemon.js.map +1 -1
- package/dist/host-session.d.ts +44 -3
- package/dist/host-session.d.ts.map +1 -1
- package/dist/host-session.js +11 -1
- package/dist/host-session.js.map +1 -1
- package/dist/host-terminal.d.ts.map +1 -1
- package/dist/host-terminal.js +360 -14
- package/dist/host-terminal.js.map +1 -1
- package/dist/ipc.d.ts +24 -0
- package/dist/ipc.d.ts.map +1 -1
- package/dist/ipc.js.map +1 -1
- package/dist/multi-session.d.ts.map +1 -1
- package/dist/multi-session.js +5 -2
- package/dist/multi-session.js.map +1 -1
- package/dist/remote-host-session.d.ts +11 -1
- package/dist/remote-host-session.d.ts.map +1 -1
- package/dist/remote-host-session.js +24 -2
- package/dist/remote-host-session.js.map +1 -1
- package/dist/shared-session.d.ts +50 -13
- package/dist/shared-session.d.ts.map +1 -1
- package/dist/shared-session.js +110 -25
- package/dist/shared-session.js.map +1 -1
- package/dist/shared-workspace.d.ts +59 -7
- package/dist/shared-workspace.d.ts.map +1 -1
- package/dist/shared-workspace.js +97 -15
- package/dist/shared-workspace.js.map +1 -1
- package/package.json +6 -4
package/dist/host-terminal.js
CHANGED
|
@@ -3,6 +3,13 @@ const MIN_COLS = 20;
|
|
|
3
3
|
const MIN_ROWS = 6;
|
|
4
4
|
/** Repaint cadence for the status bar: coalesce shell output into ~30ms frames. */
|
|
5
5
|
const FRAME_MS = 30;
|
|
6
|
+
/**
|
|
7
|
+
* How long a shell-repaint waits for a fresh `refresh` frame before falling back
|
|
8
|
+
* to the synchronous getReplay() cache. A NEW daemon answers a local-socket
|
|
9
|
+
* round-trip well under this; the fallback only fires against an OLD daemon
|
|
10
|
+
* (pre-`refresh`, surviving a `serve` upgrade) that never answers requestFrame.
|
|
11
|
+
*/
|
|
12
|
+
const FRAME_FALLBACK_MS = 250;
|
|
6
13
|
/** Host window-management prefix (Ctrl-B), tmux-style. */
|
|
7
14
|
const PREFIX = 0x02;
|
|
8
15
|
/** Status-bar palette (tmux-style blue). */
|
|
@@ -106,10 +113,18 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
106
113
|
let barDirty = false;
|
|
107
114
|
// Which surface fills the shell area (rows 1..rows-1). 'shell' is the raw
|
|
108
115
|
// pass-through; 'debug' is the welcome/log view (pinned banner + event-log
|
|
109
|
-
// tail)
|
|
110
|
-
//
|
|
111
|
-
//
|
|
116
|
+
// tail); 'scroll' is the tmux-style copy-mode pager over the active window's
|
|
117
|
+
// emulator buffer (see enterScroll/renderScroll below). We DEFAULT to 'debug'
|
|
118
|
+
// so the first thing the host sees on go-live is the welcome screen with the
|
|
119
|
+
// shareable URL; a window tab/Ctrl-B digit or n reveals the shell.
|
|
112
120
|
let viewMode = 'debug';
|
|
121
|
+
// Copy-mode pager state. `scrollLines` is the PLAIN-TEXT snapshot of the active
|
|
122
|
+
// window's emulator buffer (scrollback history + current screen, oldest first)
|
|
123
|
+
// fetched on entry via session.requestScrollback(); `scrollOffset` is the index
|
|
124
|
+
// of the TOP visible line. SGR/colour reconstruction is a non-goal — the pager
|
|
125
|
+
// renders history text only.
|
|
126
|
+
let scrollLines = [];
|
|
127
|
+
let scrollOffset = 0;
|
|
113
128
|
// The captured agent logs live in the session's ring buffer (the session owns
|
|
114
129
|
// the OutputHandler sink); the welcome/log view renders the tail of that
|
|
115
130
|
// buffer and marks itself dirty when a new line arrives while it's showing.
|
|
@@ -136,6 +151,31 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
136
151
|
appMouseModes.delete(m[1]);
|
|
137
152
|
}
|
|
138
153
|
};
|
|
154
|
+
// Which DEC ALTERNATE-SCREEN modes (1049/1047/47) the SHELL app has enabled,
|
|
155
|
+
// scanned from its output. On a real terminal, when a full-screen app QUITS it
|
|
156
|
+
// emits the alt-off toggle (`\x1b[?1049l`), and the terminal restores its own
|
|
157
|
+
// saved PRIMARY buffer — which is stale under entangle's reserved scroll region
|
|
158
|
+
// + bar. So on a transition to alt-inactive (while we're on the shell view) we
|
|
159
|
+
// schedule a coalesced repaint from the emulator's correct primary viewport
|
|
160
|
+
// (Bug 2). Detection is per-chunk (like the mouse scan); the coalescing timer
|
|
161
|
+
// absorbs rapid/split toggles into a single repaint on the next frame.
|
|
162
|
+
const appAltModes = new Set();
|
|
163
|
+
const appAltOn = () => appAltModes.has('1049') || appAltModes.has('1047') || appAltModes.has('47');
|
|
164
|
+
const ALT_MODE_RE = /\x1b\[\?(1049|1047|47)(h|l)/g;
|
|
165
|
+
let altExitDirty = false;
|
|
166
|
+
const scanAppAlt = (buf) => {
|
|
167
|
+
const s = Buffer.from(buf).toString('latin1');
|
|
168
|
+
ALT_MODE_RE.lastIndex = 0;
|
|
169
|
+
let m;
|
|
170
|
+
while ((m = ALT_MODE_RE.exec(s)) !== null) {
|
|
171
|
+
if (m[2] === 'h')
|
|
172
|
+
appAltModes.add(m[1]);
|
|
173
|
+
// Only a transition OUT of an alt mode we saw enter needs a forced repaint;
|
|
174
|
+
// entering alt is left to the app (it paints its own frame). Off in debug.
|
|
175
|
+
else if (appAltModes.delete(m[1]) && viewMode === 'shell')
|
|
176
|
+
altExitDirty = true;
|
|
177
|
+
}
|
|
178
|
+
};
|
|
139
179
|
// Local mirror of the session's window set, kept in sync via onWindowState
|
|
140
180
|
// and rendered as the tab row of the bar. Seeded with the current state.
|
|
141
181
|
const initialState = session.windowState();
|
|
@@ -193,6 +233,12 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
193
233
|
const drawBar = () => {
|
|
194
234
|
if (!live)
|
|
195
235
|
return;
|
|
236
|
+
// While the copy-mode pager is up it owns the bottom row (its own
|
|
237
|
+
// `⧉ scrollback …` bar via renderScroll); async triggers (onViewersChange /
|
|
238
|
+
// onWindowState) must not paint the blue `⧉ entangle` bar over it. The pager
|
|
239
|
+
// repaints its bar itself on the next keypress, so just suppress here.
|
|
240
|
+
if (viewMode === 'scroll')
|
|
241
|
+
return;
|
|
196
242
|
barDirty = false;
|
|
197
243
|
write(`\x1b7\x1b[${rows};1H\x1b[2K${buildBar()}\x1b8`);
|
|
198
244
|
};
|
|
@@ -205,7 +251,7 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
205
251
|
`Share this live session:`,
|
|
206
252
|
` ${BAR_FG}${link ?? 'connecting…'}${RESET}`,
|
|
207
253
|
``,
|
|
208
|
-
`Ctrl-B d=detach l=logs c=new n/p=win 1-9=select x=close
|
|
254
|
+
`Ctrl-B [=scroll d=detach l=logs c=new n/p=win 1-9=select x=close`,
|
|
209
255
|
];
|
|
210
256
|
// Render the welcome/log view: a PINNED HEADER (brand, intro, share URL, key
|
|
211
257
|
// hint) at the top so the URL is always findable, a "Recent activity:"
|
|
@@ -240,9 +286,14 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
240
286
|
write(out);
|
|
241
287
|
drawBar();
|
|
242
288
|
};
|
|
243
|
-
//
|
|
244
|
-
//
|
|
245
|
-
|
|
289
|
+
// Paint the live shell area from a FRESH serialized `frame` over rows
|
|
290
|
+
// 1..rows-1, WITHOUT touching the host's scrollback (no \x1b[3J). Clears just
|
|
291
|
+
// the reserved shell rows, homes, then writes the frame; the frame may itself
|
|
292
|
+
// carry \x1b[?1049h + alt content, which correctly reproduces a full-screen
|
|
293
|
+
// app's current screen (Bug 1 / Bug 2 host repaint). The frame source is the
|
|
294
|
+
// session's onFrame callback (a fresh serialize), NOT the synchronous
|
|
295
|
+
// getReplay() cache — which is stale in daemon mode (Bug 2).
|
|
296
|
+
const paintShellFrame = (frame) => {
|
|
246
297
|
if (!live)
|
|
247
298
|
return;
|
|
248
299
|
const shellRows = Math.max(1, rows - 1);
|
|
@@ -251,14 +302,61 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
251
302
|
out += `\x1b[${r};1H\x1b[2K`;
|
|
252
303
|
out += '\x1b[H';
|
|
253
304
|
write(out);
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
writeRaw(replay);
|
|
305
|
+
if (frame.length > 0)
|
|
306
|
+
writeRaw(frame);
|
|
257
307
|
drawBar();
|
|
258
|
-
// The
|
|
259
|
-
// app quit); re-assert our bar-click reporting so the bar
|
|
308
|
+
// The frame may have re-disabled mouse (e.g. it serializes a primary screen
|
|
309
|
+
// after a full-screen app quit); re-assert our bar-click reporting so the bar
|
|
310
|
+
// stays clickable.
|
|
260
311
|
write(MOUSE_ENABLE);
|
|
261
312
|
};
|
|
313
|
+
// Cross-version fallback for a shell repaint. A NEW foreground client can attach
|
|
314
|
+
// to an OLD long-lived daemon (the detach/reattach daemon survives a `serve`
|
|
315
|
+
// upgrade) that predates the `refresh` frame channel and so never answers
|
|
316
|
+
// requestFrame — leaving alt-exit / window-switch / leave-debug repaints blank.
|
|
317
|
+
// So on each repaint we arm a short timer: if onFrame delivers first it cancels
|
|
318
|
+
// the timer and paints the fresh frame; if the timer wins (old daemon silent)
|
|
319
|
+
// we paint from the synchronous getReplay() cache — stale in daemon mode but
|
|
320
|
+
// non-empty (the pre-fix behavior), which beats a blank/stale screen.
|
|
321
|
+
let pendingFrameTimer;
|
|
322
|
+
const clearFrameFallback = () => {
|
|
323
|
+
if (pendingFrameTimer) {
|
|
324
|
+
clearTimeout(pendingFrameTimer);
|
|
325
|
+
pendingFrameTimer = undefined;
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
// Ask for a fresh frame and arm the old-daemon fallback. The timer is armed
|
|
329
|
+
// BEFORE requestFrame so the in-process (synchronous) onFrame cancels it inline
|
|
330
|
+
// — no double paint. Against a NEW daemon the fresh frame arrives well under
|
|
331
|
+
// FRAME_FALLBACK_MS, cancelling the timer before it can fire (no flicker).
|
|
332
|
+
const requestFrameWithFallback = () => {
|
|
333
|
+
clearFrameFallback();
|
|
334
|
+
pendingFrameTimer = setTimeout(() => {
|
|
335
|
+
pendingFrameTimer = undefined;
|
|
336
|
+
if (!live || viewMode !== 'shell')
|
|
337
|
+
return;
|
|
338
|
+
paintShellFrame(session.getReplay({ scrollback: 0 }));
|
|
339
|
+
}, FRAME_FALLBACK_MS);
|
|
340
|
+
pendingFrameTimer.unref?.();
|
|
341
|
+
session.requestFrame({ scrollback: 0 });
|
|
342
|
+
};
|
|
343
|
+
// Request a fresh frame for the alt-screen-exit repaint. The actual paint
|
|
344
|
+
// happens asynchronously in the onFrame handler with the FRESH frame (a
|
|
345
|
+
// daemon round-trip in daemon mode, synchronous in-process). `scrollback:0`
|
|
346
|
+
// keeps the host's real terminal from being flooded with window history.
|
|
347
|
+
const repaintShellFromFrame = () => {
|
|
348
|
+
if (!live)
|
|
349
|
+
return;
|
|
350
|
+
altExitDirty = false; // any pending alt-exit repaint is subsumed by this one
|
|
351
|
+
requestFrameWithFallback();
|
|
352
|
+
};
|
|
353
|
+
// Repaint the live shell area when leaving the debug view or switching windows:
|
|
354
|
+
// request a fresh frame; the onFrame handler paints it.
|
|
355
|
+
const repaintShell = () => {
|
|
356
|
+
if (!live)
|
|
357
|
+
return;
|
|
358
|
+
requestFrameWithFallback();
|
|
359
|
+
};
|
|
262
360
|
const enterDebug = () => {
|
|
263
361
|
if (viewMode === 'debug')
|
|
264
362
|
return;
|
|
@@ -273,13 +371,191 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
273
371
|
if (wasDebug)
|
|
274
372
|
repaintShell();
|
|
275
373
|
};
|
|
374
|
+
// --- copy-mode / scrollback pager ----------------------------------------
|
|
375
|
+
// A tmux-style pager over the active window's emulator buffer. On entry we
|
|
376
|
+
// switch the host's REAL terminal to the alternate screen (so the live shell
|
|
377
|
+
// view is saved and restored verbatim on exit), drop our reserved scroll
|
|
378
|
+
// region, and render a scrollable window of PLAIN-TEXT buffer lines with a
|
|
379
|
+
// distinct bottom bar. Keystrokes drive the pager and are NOT sent to the
|
|
380
|
+
// shell; `q`/Esc returns to the live shell.
|
|
381
|
+
/** Largest valid top-line index: the last full page starts here. */
|
|
382
|
+
const maxScrollOffset = () => Math.max(0, scrollLines.length - (rows - 1));
|
|
383
|
+
const clampScrollOffset = () => {
|
|
384
|
+
scrollOffset = Math.max(0, Math.min(maxScrollOffset(), scrollOffset));
|
|
385
|
+
};
|
|
386
|
+
// The pager's bottom bar: brand + position readout + key legend, styled like
|
|
387
|
+
// the status bar (blue) and padded/truncated to exactly `cols`.
|
|
388
|
+
const buildScrollBar = () => {
|
|
389
|
+
const total = scrollLines.length;
|
|
390
|
+
const top = total === 0 ? 0 : scrollOffset + 1;
|
|
391
|
+
const bottom = Math.min(total, scrollOffset + Math.max(1, rows - 1));
|
|
392
|
+
let label = ` ⧉ scrollback [${top}-${bottom}/${total}] ↑↓ PgUp/PgDn Home/End q:live `;
|
|
393
|
+
if (label.length > cols)
|
|
394
|
+
label = label.slice(0, cols);
|
|
395
|
+
const fill = ' '.repeat(Math.max(0, cols - label.length));
|
|
396
|
+
return `${BAR_BG}${BAR_FG}${label}${fill}${RESET}`;
|
|
397
|
+
};
|
|
398
|
+
// Draw the pager: rows 1..(rows-1) show scrollLines[scrollOffset ..], each
|
|
399
|
+
// cleared then truncated to `cols`; rows past the end are left blank; the
|
|
400
|
+
// pager bar owns the bottom row.
|
|
401
|
+
const renderScroll = () => {
|
|
402
|
+
if (!live || viewMode !== 'scroll')
|
|
403
|
+
return;
|
|
404
|
+
const bodyRows = Math.max(1, rows - 1);
|
|
405
|
+
let out = '';
|
|
406
|
+
for (let r = 0; r < bodyRows; r++) {
|
|
407
|
+
out += `\x1b[${r + 1};1H\x1b[2K`;
|
|
408
|
+
const line = scrollLines[scrollOffset + r];
|
|
409
|
+
if (line)
|
|
410
|
+
out += line.length > cols ? line.slice(0, cols) : line;
|
|
411
|
+
}
|
|
412
|
+
out += `\x1b[${rows};1H\x1b[2K${buildScrollBar()}`;
|
|
413
|
+
write(out);
|
|
414
|
+
};
|
|
415
|
+
// Enter the pager (only from the live shell view). Switch the real terminal to
|
|
416
|
+
// the alt screen (saves the shell view for exit), drop the scroll region, hide
|
|
417
|
+
// the cursor, then ask for a fresh scrollback snapshot; the onScrollback
|
|
418
|
+
// handler renders it starting at the bottom (newest).
|
|
419
|
+
const enterScroll = () => {
|
|
420
|
+
if (!live || viewMode !== 'shell')
|
|
421
|
+
return;
|
|
422
|
+
viewMode = 'scroll';
|
|
423
|
+
write('\x1b[?1049h'); // enter alt screen on the host's REAL terminal
|
|
424
|
+
write('\x1b[r'); // drop our reserved scroll region while paging
|
|
425
|
+
write('\x1b[?25l'); // hide the cursor for a clean pager
|
|
426
|
+
// NOTE: against an OLD daemon (pre-`refresh`, surviving a `serve` upgrade)
|
|
427
|
+
// requestScrollback goes unanswered and the pager shows empty — an accepted
|
|
428
|
+
// limitation of this brand-new feature; we deliberately don't add a second
|
|
429
|
+
// fallback path for it (unlike the shell-repaint fallback above).
|
|
430
|
+
session.requestScrollback();
|
|
431
|
+
};
|
|
432
|
+
// Leave the pager: return the real terminal to the primary screen (which
|
|
433
|
+
// restores the saved live shell view), re-arm our scroll region, re-assert
|
|
434
|
+
// mouse reporting, then request a FRESH frame so the shell repaints its
|
|
435
|
+
// CURRENT state (it may have advanced while we were paused).
|
|
436
|
+
const exitScroll = () => {
|
|
437
|
+
if (viewMode !== 'scroll')
|
|
438
|
+
return;
|
|
439
|
+
viewMode = 'shell';
|
|
440
|
+
scrollLines = [];
|
|
441
|
+
scrollOffset = 0;
|
|
442
|
+
write('\x1b[?1049l'); // leave alt screen → restores the live shell view
|
|
443
|
+
write('\x1b[?25h'); // show the cursor again
|
|
444
|
+
write(`\x1b[1;${Math.max(1, rows - 1)}r`); // re-arm the shell's scroll region
|
|
445
|
+
write(MOUSE_ENABLE); // keep bar-click / wheel reporting alive
|
|
446
|
+
session.requestFrame({ scrollback: 0 }); // repaint the CURRENT live shell
|
|
447
|
+
};
|
|
448
|
+
// Drive the pager from a raw input chunk (called only while in 'scroll'). Keys
|
|
449
|
+
// move the viewport; `q`/lone-Esc exits. Mouse wheel (SGR button 64/65) scrolls
|
|
450
|
+
// by 3. Anything unrecognized is ignored (never forwarded to the shell). A lone
|
|
451
|
+
// trailing ESC is treated as exit; a split ESC/CSI across chunks can mis-fire
|
|
452
|
+
// exit, which is an acceptable edge for a pager.
|
|
453
|
+
const handleScrollInput = (d) => {
|
|
454
|
+
const s = d.toString('latin1');
|
|
455
|
+
const page = Math.max(1, rows - 1);
|
|
456
|
+
let changed = false;
|
|
457
|
+
for (let i = 0; i < s.length;) {
|
|
458
|
+
const mouse = matchMouse(d, i);
|
|
459
|
+
if (mouse) {
|
|
460
|
+
if (mouse.press && mouse.button === 64) {
|
|
461
|
+
scrollOffset -= 3;
|
|
462
|
+
changed = true;
|
|
463
|
+
}
|
|
464
|
+
else if (mouse.press && mouse.button === 65) {
|
|
465
|
+
scrollOffset += 3;
|
|
466
|
+
changed = true;
|
|
467
|
+
}
|
|
468
|
+
i += mouse.length;
|
|
469
|
+
continue;
|
|
470
|
+
}
|
|
471
|
+
if (s[i] === '\x1b') {
|
|
472
|
+
const rest = s.slice(i);
|
|
473
|
+
let consumed = 1;
|
|
474
|
+
if (rest.startsWith('\x1b[A')) {
|
|
475
|
+
scrollOffset -= 1;
|
|
476
|
+
consumed = 3;
|
|
477
|
+
}
|
|
478
|
+
else if (rest.startsWith('\x1b[B')) {
|
|
479
|
+
scrollOffset += 1;
|
|
480
|
+
consumed = 3;
|
|
481
|
+
}
|
|
482
|
+
else if (rest.startsWith('\x1b[5~')) {
|
|
483
|
+
scrollOffset -= page;
|
|
484
|
+
consumed = 4;
|
|
485
|
+
}
|
|
486
|
+
else if (rest.startsWith('\x1b[6~')) {
|
|
487
|
+
scrollOffset += page;
|
|
488
|
+
consumed = 4;
|
|
489
|
+
}
|
|
490
|
+
else if (rest.startsWith('\x1b[1~')) {
|
|
491
|
+
scrollOffset = 0;
|
|
492
|
+
consumed = 4;
|
|
493
|
+
}
|
|
494
|
+
else if (rest.startsWith('\x1b[4~')) {
|
|
495
|
+
scrollOffset = maxScrollOffset();
|
|
496
|
+
consumed = 4;
|
|
497
|
+
}
|
|
498
|
+
else if (rest.startsWith('\x1b[H')) {
|
|
499
|
+
scrollOffset = 0;
|
|
500
|
+
consumed = 3;
|
|
501
|
+
}
|
|
502
|
+
else if (rest.startsWith('\x1b[F')) {
|
|
503
|
+
scrollOffset = maxScrollOffset();
|
|
504
|
+
consumed = 3;
|
|
505
|
+
}
|
|
506
|
+
else if (i === s.length - 1) {
|
|
507
|
+
exitScroll();
|
|
508
|
+
return;
|
|
509
|
+
} // lone Esc = exit
|
|
510
|
+
// else: an unrecognized CSI — skip just the ESC and resync on the next byte.
|
|
511
|
+
i += consumed;
|
|
512
|
+
changed = true;
|
|
513
|
+
continue;
|
|
514
|
+
}
|
|
515
|
+
const ch = s[i];
|
|
516
|
+
if (ch === 'k') {
|
|
517
|
+
scrollOffset -= 1;
|
|
518
|
+
changed = true;
|
|
519
|
+
}
|
|
520
|
+
else if (ch === 'j') {
|
|
521
|
+
scrollOffset += 1;
|
|
522
|
+
changed = true;
|
|
523
|
+
}
|
|
524
|
+
else if (ch === 'g') {
|
|
525
|
+
scrollOffset = 0;
|
|
526
|
+
changed = true;
|
|
527
|
+
}
|
|
528
|
+
else if (ch === 'G') {
|
|
529
|
+
scrollOffset = maxScrollOffset();
|
|
530
|
+
changed = true;
|
|
531
|
+
}
|
|
532
|
+
else if (ch === 'q') {
|
|
533
|
+
exitScroll();
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
i++;
|
|
537
|
+
}
|
|
538
|
+
if (changed) {
|
|
539
|
+
clampScrollOffset();
|
|
540
|
+
renderScroll();
|
|
541
|
+
}
|
|
542
|
+
};
|
|
276
543
|
// Coalesce shell output into throttled bar redraws so a full-screen app or a
|
|
277
544
|
// `clear` can't leave the bar blank; in debug view, coalesce log-tail repaints.
|
|
278
545
|
const timer = setInterval(() => {
|
|
546
|
+
// The pager manages its own render (and owns the alt screen) — the bar/debug
|
|
547
|
+
// redraws must not fire while it's up.
|
|
548
|
+
if (viewMode === 'scroll')
|
|
549
|
+
return;
|
|
279
550
|
if (viewMode === 'debug') {
|
|
280
551
|
if (debugDirty)
|
|
281
552
|
renderDebug();
|
|
282
553
|
}
|
|
554
|
+
// A pending alt-screen-exit repaint takes priority: it repaints the shell
|
|
555
|
+
// rows from the emulator's primary viewport (and redraws the bar), so it
|
|
556
|
+
// subsumes a plain barDirty this frame.
|
|
557
|
+
else if (altExitDirty)
|
|
558
|
+
repaintShellFromFrame();
|
|
283
559
|
else if (barDirty)
|
|
284
560
|
drawBar();
|
|
285
561
|
}, FRAME_MS);
|
|
@@ -291,7 +567,14 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
291
567
|
// off-bar mouse passthrough is correct the moment we switch back to the shell.
|
|
292
568
|
const mouseWasOn = appMouseOn();
|
|
293
569
|
scanAppMouse(chunk);
|
|
294
|
-
|
|
570
|
+
// Watch for the shell app leaving the alt buffer so we can repair the host's
|
|
571
|
+
// real terminal (which restores its own stale primary) — see scanAppAlt.
|
|
572
|
+
scanAppAlt(chunk);
|
|
573
|
+
// Paint live output ONLY on the shell view: the debug view buffers it in the
|
|
574
|
+
// replay, and the scroll pager owns the (alt) screen — writing shell bytes
|
|
575
|
+
// over it would corrupt the pager. The app-mouse/alt scans above still run in
|
|
576
|
+
// every mode so state stays correct for when we return to the shell.
|
|
577
|
+
if (viewMode === 'shell') {
|
|
295
578
|
writeRaw(chunk);
|
|
296
579
|
barDirty = true;
|
|
297
580
|
// A full-screen app quitting turns mouse OFF, which also kills OUR bar-click
|
|
@@ -300,6 +583,27 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
300
583
|
write(MOUSE_ENABLE);
|
|
301
584
|
}
|
|
302
585
|
});
|
|
586
|
+
// A fresh frame (from requestFrame) arrived: paint it into the shell area, but
|
|
587
|
+
// only if we're live and actually on the shell view. This drops the stale/late
|
|
588
|
+
// post-attach replay frame (fired at go-live while viewMode is 'debug') and any
|
|
589
|
+
// frame that lands after the host switched back to the debug view.
|
|
590
|
+
session.onFrame((frame) => {
|
|
591
|
+
// A fresh frame arrived → the daemon answered; cancel any armed old-daemon
|
|
592
|
+
// fallback so it can't also paint from the stale getReplay() cache.
|
|
593
|
+
clearFrameFallback();
|
|
594
|
+
if (!live || viewMode !== 'shell')
|
|
595
|
+
return;
|
|
596
|
+
paintShellFrame(frame);
|
|
597
|
+
});
|
|
598
|
+
// A scrollback snapshot arrived (from enterScroll's requestScrollback): render
|
|
599
|
+
// it starting at the BOTTOM (newest). Ignored unless we're still in the pager.
|
|
600
|
+
session.onScrollback((lines) => {
|
|
601
|
+
if (viewMode !== 'scroll')
|
|
602
|
+
return;
|
|
603
|
+
scrollLines = lines;
|
|
604
|
+
scrollOffset = Math.max(0, lines.length - (rows - 1));
|
|
605
|
+
renderScroll();
|
|
606
|
+
});
|
|
303
607
|
session.onViewersChange((n) => { viewers = n; drawBar(); });
|
|
304
608
|
session.onWindowState((state) => {
|
|
305
609
|
windows = state.windows;
|
|
@@ -331,6 +635,10 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
331
635
|
enterDebug();
|
|
332
636
|
return;
|
|
333
637
|
}
|
|
638
|
+
if (ch === '[') {
|
|
639
|
+
enterScroll();
|
|
640
|
+
return;
|
|
641
|
+
} // tmux-style: Ctrl-B [ = copy mode
|
|
334
642
|
if (ch === 'c') {
|
|
335
643
|
enterShell();
|
|
336
644
|
session.newWindow();
|
|
@@ -374,6 +682,13 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
374
682
|
}
|
|
375
683
|
return; // never forward bar-row mouse events to the shell
|
|
376
684
|
}
|
|
685
|
+
// Wheel-up on a shell row while the app isn't in mouse mode: the natural
|
|
686
|
+
// gesture to open the scrollback pager. (When the app wants mouse, the wheel
|
|
687
|
+
// still forwards to it below — existing behavior.)
|
|
688
|
+
if (viewMode === 'shell' && m.press && m.button === 64 && !appMouseOn()) {
|
|
689
|
+
enterScroll();
|
|
690
|
+
return;
|
|
691
|
+
}
|
|
377
692
|
if (appMouseOn())
|
|
378
693
|
session.write(new Uint8Array(raw)); // shell wants mouse
|
|
379
694
|
// else swallow: bash gets no garbage clicks
|
|
@@ -385,6 +700,11 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
385
700
|
// boundary so ordering across a window switch is preserved.
|
|
386
701
|
let pendingPrefix = false;
|
|
387
702
|
const onInput = (d) => {
|
|
703
|
+
// In the pager, keystrokes drive scrolling and are never sent to the shell.
|
|
704
|
+
if (viewMode === 'scroll') {
|
|
705
|
+
handleScrollInput(d);
|
|
706
|
+
return;
|
|
707
|
+
}
|
|
388
708
|
let start = 0;
|
|
389
709
|
for (let i = 0; i < d.length;) {
|
|
390
710
|
const byte = d[i];
|
|
@@ -407,6 +727,18 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
407
727
|
start = i;
|
|
408
728
|
continue;
|
|
409
729
|
}
|
|
730
|
+
// PageUp (ESC [ 5 ~) on the live shell view enters the scrollback pager —
|
|
731
|
+
// but only when a full-screen app isn't consuming mouse/alt (it would want
|
|
732
|
+
// PageUp itself); otherwise PageUp forwards to the shell as usual.
|
|
733
|
+
if (viewMode === 'shell' && !appMouseOn() && !appAltOn() &&
|
|
734
|
+
byte === 0x1b && d[i + 1] === 0x5b /* [ */ && d[i + 2] === 0x35 /* 5 */ && d[i + 3] === 0x7e /* ~ */) {
|
|
735
|
+
if (i > start)
|
|
736
|
+
session.write(new Uint8Array(d.subarray(start, i)));
|
|
737
|
+
enterScroll();
|
|
738
|
+
i += 4;
|
|
739
|
+
start = i;
|
|
740
|
+
continue;
|
|
741
|
+
}
|
|
410
742
|
if (byte === PREFIX) {
|
|
411
743
|
if (i > start)
|
|
412
744
|
session.write(new Uint8Array(d.subarray(start, i)));
|
|
@@ -429,6 +761,15 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
429
761
|
rows = stdout.rows || rows;
|
|
430
762
|
if (!live)
|
|
431
763
|
return;
|
|
764
|
+
// In the pager we own the alt screen (no scroll region): resize the shell so
|
|
765
|
+
// its emulator tracks the host size, then re-clamp the offset to the new page
|
|
766
|
+
// height and re-render the pager for the new dimensions.
|
|
767
|
+
if (viewMode === 'scroll') {
|
|
768
|
+
session.resize(cols, Math.max(1, rows - 1));
|
|
769
|
+
clampScrollOffset();
|
|
770
|
+
renderScroll();
|
|
771
|
+
return;
|
|
772
|
+
}
|
|
432
773
|
const shellRows = Math.max(1, rows - 1);
|
|
433
774
|
write('\x1b[r');
|
|
434
775
|
write('\x1b[2J\x1b[H');
|
|
@@ -448,9 +789,12 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
448
789
|
return;
|
|
449
790
|
restored = true;
|
|
450
791
|
clearInterval(timer);
|
|
792
|
+
clearFrameFallback(); // no stray frame-fallback paint after teardown
|
|
451
793
|
session.dispose(); // release the log sink so any final logs print to stdout normally
|
|
452
794
|
stdin.removeListener('data', onInput);
|
|
453
795
|
stdout.removeListener('resize', onResize);
|
|
796
|
+
if (viewMode === 'scroll')
|
|
797
|
+
write('\x1b[?1049l'); // leave the pager's alt screen first
|
|
454
798
|
write(MOUSE_DISABLE); // stop SGR mouse reporting we enabled for the bar
|
|
455
799
|
write('\x1b[r'); // reset scroll region
|
|
456
800
|
write('\x1b[2J\x1b[H'); // clear screen + home, so no stale bar/shell is left behind
|
|
@@ -488,7 +832,9 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
|
|
|
488
832
|
write('\x1b[2J\x1b[H');
|
|
489
833
|
write(`\x1b[1;${shellRows}r`); // reserve the bottom row for the bar
|
|
490
834
|
session.resize(cols, shellRows); // shell is authoritative-sized to rows-1
|
|
491
|
-
|
|
835
|
+
const goLiveFrame = session.getReplay({ scrollback: 0 });
|
|
836
|
+
scanAppMouse(goLiveFrame); // seed app-mouse state from the shell's screen
|
|
837
|
+
scanAppAlt(goLiveFrame); // seed alt-buffer state (no repaint: we're in debug)
|
|
492
838
|
write(MOUSE_ENABLE); // enable SGR mouse reporting for the clickable bar
|
|
493
839
|
live = true;
|
|
494
840
|
// Start on the welcome/log view (viewMode defaults to 'debug'): the pinned
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-terminal.js","sourceRoot":"","sources":["../src/host-terminal.ts"],"names":[],"mappings":"AAYA,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,CAAC,CAAC;AAEnB,mFAAmF;AACnF,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,0DAA0D;AAC1D,MAAM,MAAM,GAAG,IAAI,CAAC;AAEpB,4CAA4C;AAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,uBAAuB;AACvD,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,mCAAmC;AAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,oBAAoB;AAC/C,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,8EAA8E;AAC9E,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAC9C,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAkB/C;;;;GAIG;AACH,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,GAAkB,EAAE;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,IAAI,EAAE,CAAC;YAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC;YAAC,CAAC,EAAE,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC;QAAC,CAAC;QACxG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;IAAC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAAC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAAC,CAAC,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAAC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB,EAAE,MAAqB;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9B,MAAM,UAAU,GACd,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC;IAE1E,IAAI,UAAU;QAAE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;;QAC1D,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CACxB,OAAoB,EACpB,MAAqB,EACrB,WAAmB,EACnB,WAAmB;IAEnB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,CAAa,EAAE,EAAE,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;IAEvF,IAAI,IAAI,GAAG,WAAW,CAAC;IACvB,IAAI,IAAI,GAAG,WAAW,CAAC;IAEvB,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,uDAAuD;IACzE,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,0EAA0E;IAC1E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,qBAAqB;IACrB,IAAI,QAAQ,GAAsB,OAAO,CAAC;IAC1C,8EAA8E;IAC9E,yEAAyE;IACzE,4EAA4E;IAC5E,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,2EAA2E;IAC3E,4EAA4E;IAC5E,kDAAkD;IAClD,IAAI,YAAY,GAAkB,EAAE,CAAC;IAErC,6EAA6E;IAC7E,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,UAAU,GAAG,GAAY,EAAE,CAC/B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,qCAAqC,CAAC;IAC5D,MAAM,YAAY,GAAG,CAAC,GAAe,EAAQ,EAAE;QAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;;gBACtC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;IAEF,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,OAAO,GAA0B,YAAY,CAAC,OAAO,CAAC;IAC1D,IAAI,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;IAE3C;;;;;;OAMG;IACH,MAAM,QAAQ,GAAG,GAAW,EAAE;QAC5B,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,IAAI,GAAkE;YAC1E,wEAAwE;YACxE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,KAAK,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;SACnF,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,GAAG,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG;gBAC3B,MAAM,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,WAAW;gBACjD,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC3D,CAAC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEnE,+DAA+D;QAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC;QAChD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAE/D,0EAA0E;QAC1E,0EAA0E;QAC1E,8EAA8E;QAC9E,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,OAAO,IAAI,UAAU;gBAAE,MAAM;YACjC,MAAM,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;YAClC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnE,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACjG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC;QACzB,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,YAAY,GAAG,OAAO,CAAC;QACvB,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;IAC5D,CAAC,CAAC;IAEF,+EAA+E;IAC/E,6EAA6E;IAC7E,+EAA+E;IAC/E,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,QAAQ,GAAG,KAAK,CAAC;QACjB,KAAK,CAAC,aAAa,IAAI,aAAa,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,WAAW,GAAG,CAAC,IAAmB,EAAY,EAAE,CAAC;QACrD,GAAG,MAAM,aAAa,KAAK,wBAAwB;QACnD,qDAAqD;QACrD,EAAE;QACF,0BAA0B;QAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,aAAa,GAAG,KAAK,EAAE;QAC7C,EAAE;QACF,oFAAoF;KACrF,CAAC;IAEF,6EAA6E;IAC7E,uEAAuE;IACvE,qEAAqE;IACrE,6EAA6E;IAC7E,sBAAsB;IACtB,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,UAAU,GAAG,KAAK,CAAC;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,GAAG,MAAM,mBAAmB,KAAK,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,oCAAoC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,2BAA2B;QAC3E,CAAC;QACD,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;YAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,YAAY;QAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,wBAAwB;YAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,KAAK,SAAS;gBAAE,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,+EAA+E;IAC/E,4EAA4E;IAC5E,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE;YAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC;QAClE,GAAG,IAAI,QAAQ,CAAC;QAChB,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC;QACV,0EAA0E;QAC1E,2EAA2E;QAC3E,KAAK,CAAC,YAAY,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAO;QACjC,QAAQ,GAAG,OAAO,CAAC;QACnB,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IACF,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,QAAQ,GAAG,QAAQ,KAAK,OAAO,CAAC;QACtC,QAAQ,GAAG,OAAO,CAAC;QACnB,IAAI,QAAQ;YAAE,YAAY,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,6EAA6E;IAC7E,gFAAgF;IAChF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAAC,IAAI,UAAU;gBAAE,WAAW,EAAE,CAAC;QAAC,CAAC;aACvD,IAAI,QAAQ;YAAE,OAAO,EAAE,CAAC;IAC/B,CAAC,EAAE,QAAQ,CAAC,CAAC;IACb,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhB,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,gEAAgE;QACnF,6EAA6E;QAC7E,+EAA+E;QAC/E,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAChC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC,gEAAgE;YAC1F,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,6EAA6E;YAC7E,2EAA2E;YAC3E,IAAI,UAAU,IAAI,CAAC,UAAU,EAAE;gBAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,2EAA2E;IAC3E,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,QAAQ,KAAK,OAAO;QAAE,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,gFAAgF;IAChF,8EAA8E;IAC9E,2EAA2E;IAC3E,0EAA0E;IAC1E,kCAAkC;IAClC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,2EAA2E;QAC3E,+CAA+C;QAC/C,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/C,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,UAAU,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QACzC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,UAAU,EAAE,CAAC;YAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAAC,CAAC;aACjD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,UAAU,EAAE,CAAC;YAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;aACvD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,UAAU,EAAE,CAAC;YAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;aACvD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,UAAU,EAAE,CAAC;YAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAAC,CAAC;aACnE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;YAChC,yEAAyE;YACzE,gEAAgE;YAChE,UAAU,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;YAC1B,OAAO,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC;IAEF,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,+EAA+E;IAC/E,mDAAmD;IACnD,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,GAAW,EAAQ,EAAE;QACvD,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,iDAAiD;YACpE,0EAA0E;YAC1E,qEAAqE;YACrE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;oBAC7B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;wBAAC,CAAC,CAAC,MAAM,EAAE,CAAC;wBAAC,MAAM;oBAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YACD,OAAO,CAAC,kDAAkD;QAC5D,CAAC;QACD,IAAI,UAAU,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB;QAC1E,4CAA4C;IAC9C,CAAC,CAAC;IAEF,+EAA+E;IAC/E,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,4DAA4D;IAC5D,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAI,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACnB,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,GAAG,KAAK,CAAC;gBACtB,IAAI,IAAI,KAAK,MAAM;oBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;oBACxD,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC,EAAE,CAAC;gBACJ,KAAK,GAAG,CAAC,CAAC;gBACV,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,GAAG,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpD,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC;gBAClB,KAAK,GAAG,CAAC,CAAC;gBACV,SAAS;YACX,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,aAAa,GAAG,IAAI,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,KAAK,GAAG,CAAC,CAAC;gBACV,SAAS;YACX,CAAC;YACD,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1B,gFAAgF;IAChF,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QAC9B,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,KAAK,CAAC,UAAU,SAAS,GAAG,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChC,6EAA6E;QAC7E,4EAA4E;QAC5E,IAAI,QAAQ,KAAK,OAAO;YAAE,WAAW,EAAE,CAAC;;YACnC,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE9B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,kEAAkE;QACrF,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1C,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,kDAAkD;QACxE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB;QACvC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,4DAA4D;QACpF,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QAClC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QAAC,CAAC;QAC/D,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,OAAO,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,8EAA8E;IAC9E,4EAA4E;IAC5E,wEAAwE;IACxE,2BAA2B;IAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;QACjB,IAAI,IAAI,EAAE,CAAC,CAAC,uCAAuC;YACjD,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,QAAQ,KAAK,OAAO;gBAAE,UAAU,GAAG,IAAI,CAAC,CAAC,4BAA4B;YACzE,OAAO;QACT,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QAC9B,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,KAAK,CAAC,UAAU,SAAS,GAAG,CAAC,CAAC,CAAC,qCAAqC;QACpE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,yCAAyC;QAC1E,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,+CAA+C;QAClF,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,mDAAmD;QACxE,IAAI,GAAG,IAAI,CAAC;QACZ,2EAA2E;QAC3E,sEAAsE;QACtE,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,KAAK,CAAC,eAAe,CAAC,CAAC;IACvB,KAAK,CAAC,GAAG,MAAM,2BAA2B,KAAK,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,OAAoB,EAAE,MAAqB;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IAAC,CAAC;IAEhF,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7B,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE9B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,kEAAkE;QACrF,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QAAC,CAAC;QAC/D,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,OAAO,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5B,gFAAgF;IAChF,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,uDAAuD,IAAI,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"host-terminal.js","sourceRoot":"","sources":["../src/host-terminal.ts"],"names":[],"mappings":"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"}
|
package/dist/ipc.d.ts
CHANGED
|
@@ -29,6 +29,25 @@ export type ClientToDaemon = {
|
|
|
29
29
|
t: 'win';
|
|
30
30
|
op: WindowOp;
|
|
31
31
|
index?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Ask the daemon for a FRESH serialized frame of this client's active window
|
|
35
|
+
* (optionally `scrollback` lines of history). The daemon replies with the
|
|
36
|
+
* existing `replay` frame — it already means "a serialized frame for
|
|
37
|
+
* getReplay()" — serialized on receipt, so it reflects the window's live
|
|
38
|
+
* screen at request time rather than the stale post-attach cache.
|
|
39
|
+
*/
|
|
40
|
+
| {
|
|
41
|
+
t: 'refresh';
|
|
42
|
+
scrollback?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Ask the daemon for the FULL scrollback of this client's active window as
|
|
46
|
+
* plain-text lines (history + current screen, oldest first), for the host's
|
|
47
|
+
* copy-mode pager. The daemon replies with a `scrollback` frame.
|
|
48
|
+
*/
|
|
49
|
+
| {
|
|
50
|
+
t: 'scrollback';
|
|
32
51
|
} | {
|
|
33
52
|
t: 'detach';
|
|
34
53
|
};
|
|
@@ -57,6 +76,11 @@ export type DaemonToClient =
|
|
|
57
76
|
} | {
|
|
58
77
|
t: 'url';
|
|
59
78
|
url: string;
|
|
79
|
+
}
|
|
80
|
+
/** Plain-text scrollback lines answering a client `scrollback` request. */
|
|
81
|
+
| {
|
|
82
|
+
t: 'scrollback';
|
|
83
|
+
lines: string[];
|
|
60
84
|
} | {
|
|
61
85
|
t: 'exit';
|
|
62
86
|
code: number | null;
|