poly-weaver 0.10.6 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -24
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +6 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/ansi.d.ts +23 -4
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +28 -5
- package/dist/ansi.js.map +1 -1
- package/dist/auto-update/gate.d.ts +1 -0
- package/dist/auto-update/gate.d.ts.map +1 -1
- package/dist/auto-update/gate.js +7 -8
- package/dist/auto-update/gate.js.map +1 -1
- package/dist/auto-update/install-agents.d.ts +1 -0
- package/dist/auto-update/install-agents.d.ts.map +1 -1
- package/dist/auto-update/install-agents.js +19 -8
- package/dist/auto-update/install-agents.js.map +1 -1
- package/dist/auto-update/update-request.d.ts +23 -0
- package/dist/auto-update/update-request.d.ts.map +1 -0
- package/dist/auto-update/update-request.js +83 -0
- package/dist/auto-update/update-request.js.map +1 -0
- package/dist/cli.js +0 -0
- package/dist/dump/hotkey.d.ts +0 -3
- package/dist/dump/hotkey.d.ts.map +1 -1
- package/dist/dump/hotkey.js +0 -3
- package/dist/dump/hotkey.js.map +1 -1
- package/dist/launcher.d.ts +23 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +90 -0
- package/dist/launcher.js.map +1 -0
- package/dist/offscreen/controller.d.ts +4 -1
- package/dist/offscreen/controller.d.ts.map +1 -1
- package/dist/offscreen/controller.js +48 -3
- package/dist/offscreen/controller.js.map +1 -1
- package/dist/offscreen/fork-launch.d.ts +1 -0
- package/dist/offscreen/fork-launch.d.ts.map +1 -1
- package/dist/offscreen/fork-launch.js +4 -0
- package/dist/offscreen/fork-launch.js.map +1 -1
- package/dist/offscreen/fork.d.ts +6 -1
- package/dist/offscreen/fork.d.ts.map +1 -1
- package/dist/offscreen/fork.js +26 -3
- package/dist/offscreen/fork.js.map +1 -1
- package/dist/offscreen/surface.d.ts.map +1 -1
- package/dist/offscreen/surface.js +6 -2
- package/dist/offscreen/surface.js.map +1 -1
- package/dist/providers/claude/strategy.d.ts +6 -0
- package/dist/providers/claude/strategy.d.ts.map +1 -1
- package/dist/providers/claude/strategy.js +2 -0
- package/dist/providers/claude/strategy.js.map +1 -1
- package/dist/providers/codex/strategy.d.ts +1 -0
- package/dist/providers/codex/strategy.d.ts.map +1 -1
- package/dist/providers/codex/strategy.js +7 -1
- package/dist/providers/codex/strategy.js.map +1 -1
- package/dist/providers/types.d.ts +2 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/session/process-start-time.d.ts.map +1 -1
- package/dist/session/process-start-time.js.map +1 -1
- package/dist/status-bar.d.ts +7 -0
- package/dist/status-bar.d.ts.map +1 -1
- package/dist/status-bar.js +34 -6
- package/dist/status-bar.js.map +1 -1
- package/dist/terminal/host-input-mode.d.ts +4 -0
- package/dist/terminal/host-input-mode.d.ts.map +1 -0
- package/dist/terminal/host-input-mode.js +33 -0
- package/dist/terminal/host-input-mode.js.map +1 -0
- package/dist/terminal/host.d.ts +41 -16
- package/dist/terminal/host.d.ts.map +1 -1
- package/dist/terminal/host.js +197 -64
- package/dist/terminal/host.js.map +1 -1
- package/dist/terminal/input-router.d.ts +18 -3
- package/dist/terminal/input-router.d.ts.map +1 -1
- package/dist/terminal/input-router.js +35 -6
- package/dist/terminal/input-router.js.map +1 -1
- package/dist/terminal/key-event-source.d.ts +6 -15
- package/dist/terminal/key-event-source.d.ts.map +1 -1
- package/dist/terminal/key-event-source.js +3 -22
- package/dist/terminal/key-event-source.js.map +1 -1
- package/dist/terminal/key-to-bytes.d.ts +2 -0
- package/dist/terminal/key-to-bytes.d.ts.map +1 -1
- package/dist/terminal/key-to-bytes.js +89 -13
- package/dist/terminal/key-to-bytes.js.map +1 -1
- package/dist/terminal/kitty-negotiator.d.ts +9 -0
- package/dist/terminal/kitty-negotiator.d.ts.map +1 -0
- package/dist/terminal/kitty-negotiator.js +76 -0
- package/dist/terminal/kitty-negotiator.js.map +1 -0
- package/dist/terminal/koffi-loader.d.ts +1 -5
- package/dist/terminal/koffi-loader.d.ts.map +1 -1
- package/dist/terminal/koffi-loader.js.map +1 -1
- package/dist/terminal/mouse-mode-tracker.d.ts +36 -0
- package/dist/terminal/mouse-mode-tracker.d.ts.map +1 -0
- package/dist/terminal/mouse-mode-tracker.js +245 -0
- package/dist/terminal/mouse-mode-tracker.js.map +1 -0
- package/dist/terminal/osc52.d.ts +16 -0
- package/dist/terminal/osc52.d.ts.map +1 -0
- package/dist/terminal/osc52.js +18 -0
- package/dist/terminal/osc52.js.map +1 -0
- package/dist/terminal/render.d.ts +14 -14
- package/dist/terminal/render.d.ts.map +1 -1
- package/dist/terminal/render.js +20 -28
- package/dist/terminal/render.js.map +1 -1
- package/dist/terminal/stdin-byte-source.d.ts +4 -5
- package/dist/terminal/stdin-byte-source.d.ts.map +1 -1
- package/dist/terminal/stdin-byte-source.js +11 -13
- package/dist/terminal/stdin-byte-source.js.map +1 -1
- package/dist/terminal/virtual-terminal.d.ts +9 -1
- package/dist/terminal/virtual-terminal.d.ts.map +1 -1
- package/dist/terminal/virtual-terminal.js +33 -1
- package/dist/terminal/virtual-terminal.js.map +1 -1
- package/dist/terminal-input.d.ts +13 -12
- package/dist/terminal-input.d.ts.map +1 -1
- package/dist/terminal-input.js +82 -108
- package/dist/terminal-input.js.map +1 -1
- package/dist/text-editing/emacs-input.d.ts +1 -6
- package/dist/text-editing/emacs-input.d.ts.map +1 -1
- package/dist/text-editing/emacs-input.js +15 -6
- package/dist/text-editing/emacs-input.js.map +1 -1
- package/dist/text-editing/readline-ops.d.ts.map +1 -1
- package/dist/text-editing/readline-ops.js +11 -2
- package/dist/text-editing/readline-ops.js.map +1 -1
- package/package.json +5 -2
- package/dist/terminal/win32-console-mode.d.ts +0 -23
- package/dist/terminal/win32-console-mode.d.ts.map +0 -1
- package/dist/terminal/win32-console-mode.js +0 -67
- package/dist/terminal/win32-console-mode.js.map +0 -1
- package/dist/terminal/win32-console-source.d.ts +0 -26
- package/dist/terminal/win32-console-source.d.ts.map +0 -1
- package/dist/terminal/win32-console-source.js +0 -277
- package/dist/terminal/win32-console-source.js.map +0 -1
- package/dist/terminal/win32-key-translator.d.ts +0 -26
- package/dist/terminal/win32-key-translator.d.ts.map +0 -1
- package/dist/terminal/win32-key-translator.js +0 -109
- package/dist/terminal/win32-key-translator.js.map +0 -1
package/dist/terminal/host.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { ALT_SCREEN_OFF, ALT_SCREEN_ON, CLEAR_SCREEN, CURSOR_HOME, HIDE_CURSOR, MOUSE_OFF,
|
|
1
|
+
import { ALT_SCREEN_OFF, ALT_SCREEN_ON, BEGIN_SYNC_UPDATE, CLEAR_SCREEN, CURSOR_HOME, END_SYNC_UPDATE, HIDE_CURSOR, MOUSE_OFF, QUERY_SYNC_UPDATE, RESET_SCROLL_REGION, SHOW_CURSOR, padOrClip, } from "../ansi.js";
|
|
2
2
|
import { computeTerminalLayout } from "./layout.js";
|
|
3
3
|
import { VirtualTerminal } from "./virtual-terminal.js";
|
|
4
|
-
import {
|
|
4
|
+
import { renderChildViewportRows, renderStatusRowBody, shouldShowVtCursor, } from "./render.js";
|
|
5
5
|
import { BufferOrchestrationOutput, formatOrchestrationMessage, } from "./output.js";
|
|
6
6
|
import { InputRouter } from "./input-router.js";
|
|
7
7
|
import { createKeyEventSource } from "./key-event-source.js";
|
|
8
|
+
import { ChildKittyNegotiator } from "./kitty-negotiator.js";
|
|
9
|
+
import { MouseModeReconciler, MouseModeTracker, } from "./mouse-mode-tracker.js";
|
|
10
|
+
import { buildOsc52Forward } from "./osc52.js";
|
|
11
|
+
const MAIN_CHILD_MOUSE_SOURCE = "main-child";
|
|
12
|
+
const HOST_MOUSE_SOURCE = "host-owned";
|
|
13
|
+
const HOST_MOUSE_CAPTURE_MODES = [1000, 1006];
|
|
8
14
|
/**
|
|
9
15
|
* Parent-owned orchestration terminal host.
|
|
10
16
|
*
|
|
@@ -19,10 +25,10 @@ import { createKeyEventSource } from "./key-event-source.js";
|
|
|
19
25
|
* - Routes stdin through global shortcuts (dump hotkey, host scrollback,
|
|
20
26
|
* host interrupt), then the active parent UI mode (review prompts,
|
|
21
27
|
* etc.), then the attached child.
|
|
22
|
-
* -
|
|
23
|
-
*
|
|
24
|
-
* teardown / suspension so foreign UIs and
|
|
25
|
-
* not left with mouse mode turned on.
|
|
28
|
+
* - Keeps host-owned mouse capture active for wheel input in normal-buffer
|
|
29
|
+
* host UI, mirrors mouse-reporting modes requested by child PTYs, and
|
|
30
|
+
* disables reflected modes on teardown / suspension so foreign UIs and
|
|
31
|
+
* the post-host shell are not left with mouse mode turned on.
|
|
26
32
|
*/
|
|
27
33
|
export class TerminalHost {
|
|
28
34
|
stdin;
|
|
@@ -43,12 +49,15 @@ export class TerminalHost {
|
|
|
43
49
|
injectedSource;
|
|
44
50
|
sourceUnsubscribe;
|
|
45
51
|
sourceResizeUnsubscribe;
|
|
52
|
+
kittyNegotiator = new ChildKittyNegotiator();
|
|
53
|
+
childMouseTracker = new MouseModeTracker();
|
|
54
|
+
mouseModes = new MouseModeReconciler();
|
|
46
55
|
/**
|
|
47
56
|
* Authoritative terminal size as observed by the host. Updated by both
|
|
48
|
-
* source-driven
|
|
49
|
-
*
|
|
50
|
-
* `computeLayout()
|
|
51
|
-
*
|
|
57
|
+
* source-driven and stdout-driven (`process.stdout.emit("resize")`)
|
|
58
|
+
* resize signals. Read by `computeLayout()`. Undefined until the first
|
|
59
|
+
* resize observation, in which case `computeLayout()` falls back to
|
|
60
|
+
* `stdout.columns`/`rows`.
|
|
52
61
|
*/
|
|
53
62
|
lastSize;
|
|
54
63
|
renderScheduled = false;
|
|
@@ -63,6 +72,10 @@ export class TerminalHost {
|
|
|
63
72
|
*/
|
|
64
73
|
pendingFullRender = false;
|
|
65
74
|
parentUi;
|
|
75
|
+
mainChildStatus;
|
|
76
|
+
externalChildStatus;
|
|
77
|
+
syncOutputSupported = false;
|
|
78
|
+
lastFrameRows = null;
|
|
66
79
|
constructor(opts = {}) {
|
|
67
80
|
this.stdin = opts.stdin ?? process.stdin;
|
|
68
81
|
this.stdout = opts.stdout ?? process.stdout;
|
|
@@ -84,6 +97,12 @@ export class TerminalHost {
|
|
|
84
97
|
onScrollToTop: () => this.handleScrollToTop(),
|
|
85
98
|
onScrollToBottom: () => this.handleScrollToBottom(),
|
|
86
99
|
isChildAlternate: () => this.vt?.isAlternate === true,
|
|
100
|
+
isChildMouseActive: () => this.childMouseTracker.hasActiveReportingMode(),
|
|
101
|
+
getChildKittyFlags: () => this.kittyNegotiator.activeFlags,
|
|
102
|
+
getChildBracketedPaste: () => this.vt?.bracketedPaste === true,
|
|
103
|
+
onSyncOutputReport: (supported) => {
|
|
104
|
+
this.syncOutputSupported = supported;
|
|
105
|
+
},
|
|
87
106
|
});
|
|
88
107
|
if (this.statusBar) {
|
|
89
108
|
this.attachStatusBar(this.statusBar);
|
|
@@ -144,17 +163,20 @@ export class TerminalHost {
|
|
|
144
163
|
this.started = true;
|
|
145
164
|
this.stopped = false;
|
|
146
165
|
this.layout = this.computeLayout();
|
|
147
|
-
this.
|
|
148
|
-
this.stdout.write(ALT_SCREEN_ON + CLEAR_SCREEN + CURSOR_HOME + HIDE_CURSOR
|
|
166
|
+
this.resetVirtualTerminal();
|
|
167
|
+
this.stdout.write(ALT_SCREEN_ON + CLEAR_SCREEN + CURSOR_HOME + HIDE_CURSOR);
|
|
168
|
+
this.reconcileHostMouseCapture();
|
|
149
169
|
if (this.stdin.isTTY) {
|
|
150
170
|
this.startSource();
|
|
171
|
+
this.stdout.write(QUERY_SYNC_UPDATE);
|
|
151
172
|
}
|
|
152
173
|
this.resizeListener = () => this.handleResize();
|
|
153
174
|
this.stdout.on("resize", this.resizeListener);
|
|
154
175
|
this.scheduleRender();
|
|
155
176
|
}
|
|
156
177
|
startSource() {
|
|
157
|
-
this.source = this.injectedSource
|
|
178
|
+
this.source = this.injectedSource
|
|
179
|
+
?? createKeyEventSource({ stdin: this.stdin, stdout: this.stdout });
|
|
158
180
|
this.source.start();
|
|
159
181
|
this.sourceUnsubscribe = this.source.onEvents((events) => {
|
|
160
182
|
this.router.handleEvents(events);
|
|
@@ -182,6 +204,7 @@ export class TerminalHost {
|
|
|
182
204
|
this.router.destroy();
|
|
183
205
|
this.vt?.dispose();
|
|
184
206
|
this.vt = undefined;
|
|
207
|
+
this.mouseModes.clearAll();
|
|
185
208
|
this.stdout.write(MOUSE_OFF + RESET_SCROLL_REGION + CLEAR_SCREEN + CURSOR_HOME + ALT_SCREEN_OFF + SHOW_CURSOR);
|
|
186
209
|
// Drop any lingering subscribers — once the host has stopped, late
|
|
187
210
|
// interrupt callbacks would see torn-down state.
|
|
@@ -204,9 +227,12 @@ export class TerminalHost {
|
|
|
204
227
|
// Each agent run starts with a fresh VT and empty scrollback so prior
|
|
205
228
|
// child output cannot remain visible or be reached via PageUp.
|
|
206
229
|
this.resetVirtualTerminal();
|
|
230
|
+
this.resetChildNegotiationState();
|
|
207
231
|
this.childHandle = handle;
|
|
232
|
+
this.updateChildStatus();
|
|
208
233
|
this.router.attachChild(handle);
|
|
209
234
|
const boundHandle = handle;
|
|
235
|
+
let lastChildAlternate = this.vt?.isAlternate === true;
|
|
210
236
|
handle.onData((data) => {
|
|
211
237
|
// Skip render writes if a different child has been attached or the
|
|
212
238
|
// host has detached this child entirely.
|
|
@@ -218,6 +244,13 @@ export class TerminalHost {
|
|
|
218
244
|
return;
|
|
219
245
|
if (!this.vt)
|
|
220
246
|
return;
|
|
247
|
+
const reply = this.kittyNegotiator.processChunk(data);
|
|
248
|
+
if (reply.length > 0)
|
|
249
|
+
boundHandle.write(reply);
|
|
250
|
+
if (this.childMouseTracker.processChunk(data)) {
|
|
251
|
+
this.reflectMainChildMouseModes();
|
|
252
|
+
this.updateChildStatus();
|
|
253
|
+
}
|
|
221
254
|
// Capture the user's viewport position BEFORE the write. Two cases:
|
|
222
255
|
//
|
|
223
256
|
// stickyBottom=true: user is at the tail → keep them there.
|
|
@@ -252,6 +285,12 @@ export class TerminalHost {
|
|
|
252
285
|
else if (delta > 0)
|
|
253
286
|
this.vt.scrollForward(delta);
|
|
254
287
|
}
|
|
288
|
+
const nextChildAlternate = this.vt.isAlternate === true;
|
|
289
|
+
if (nextChildAlternate !== lastChildAlternate) {
|
|
290
|
+
lastChildAlternate = nextChildAlternate;
|
|
291
|
+
this.invalidateFrameCache();
|
|
292
|
+
this.updateChildStatus();
|
|
293
|
+
}
|
|
255
294
|
this.scheduleRender();
|
|
256
295
|
});
|
|
257
296
|
});
|
|
@@ -271,6 +310,9 @@ export class TerminalHost {
|
|
|
271
310
|
this.childHandle.suppressOutput();
|
|
272
311
|
this.router.detachChild(this.childHandle);
|
|
273
312
|
this.childHandle = undefined;
|
|
313
|
+
this.invalidateFrameCache();
|
|
314
|
+
this.resetChildNegotiationState();
|
|
315
|
+
this.updateChildStatus();
|
|
274
316
|
}
|
|
275
317
|
/**
|
|
276
318
|
* Discard the current child surface (VT screen + scrollback) and
|
|
@@ -280,15 +322,62 @@ export class TerminalHost {
|
|
|
280
322
|
*/
|
|
281
323
|
clearChildSurface() {
|
|
282
324
|
this.resetVirtualTerminal();
|
|
325
|
+
this.resetChildNegotiationState();
|
|
326
|
+
this.updateChildStatus();
|
|
283
327
|
this.scheduleRender();
|
|
284
328
|
}
|
|
329
|
+
setActiveChildStatus(state) {
|
|
330
|
+
this.externalChildStatus = state;
|
|
331
|
+
this.publishChildStatus();
|
|
332
|
+
}
|
|
333
|
+
setMouseModeSource(source, modes) {
|
|
334
|
+
this.writeMouseDelta(this.mouseModes.setSource(source, modes));
|
|
335
|
+
}
|
|
336
|
+
clearMouseModeSource(source) {
|
|
337
|
+
this.writeMouseDelta(this.mouseModes.clearSource(source));
|
|
338
|
+
}
|
|
285
339
|
/** Dispose the current `VirtualTerminal` and create a fresh one sized to the current layout. */
|
|
286
340
|
resetVirtualTerminal() {
|
|
287
341
|
if (!this.layout) {
|
|
288
342
|
this.layout = this.computeLayout();
|
|
289
343
|
}
|
|
290
344
|
this.vt?.dispose();
|
|
291
|
-
this.vt = new VirtualTerminal(this.layout.childCols, this.layout.childRows
|
|
345
|
+
this.vt = new VirtualTerminal(this.layout.childCols, this.layout.childRows, {
|
|
346
|
+
onOscClipboard: (data) => this.handleOscClipboard(data),
|
|
347
|
+
});
|
|
348
|
+
// A fresh VT means the cached frame no longer reflects the screen.
|
|
349
|
+
this.invalidateFrameCache();
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Reset the per-child negotiation trackers (kitty keyboard + mouse modes)
|
|
353
|
+
* and re-derive the host's mouse capture from the now-empty child mode set.
|
|
354
|
+
* Shared by child attach / detach / surface-clear.
|
|
355
|
+
*/
|
|
356
|
+
resetChildNegotiationState() {
|
|
357
|
+
this.kittyNegotiator.reset();
|
|
358
|
+
this.childMouseTracker.reset();
|
|
359
|
+
this.reflectMainChildMouseModes();
|
|
360
|
+
}
|
|
361
|
+
handleOscClipboard(data) {
|
|
362
|
+
this.stdout.write(buildOsc52Forward(data));
|
|
363
|
+
}
|
|
364
|
+
reflectMainChildMouseModes() {
|
|
365
|
+
this.setMouseModeSource(MAIN_CHILD_MOUSE_SOURCE, this.childMouseTracker.snapshot());
|
|
366
|
+
}
|
|
367
|
+
reconcileHostMouseCapture() {
|
|
368
|
+
const ownsNormalBuffer = this.started
|
|
369
|
+
&& !this.stopped
|
|
370
|
+
&& this.mainChildStatus?.isAlternate !== true
|
|
371
|
+
&& this.externalChildStatus?.isAlternate !== true;
|
|
372
|
+
const sequence = ownsNormalBuffer
|
|
373
|
+
? this.mouseModes.setSource(HOST_MOUSE_SOURCE, HOST_MOUSE_CAPTURE_MODES)
|
|
374
|
+
: this.mouseModes.clearSource(HOST_MOUSE_SOURCE);
|
|
375
|
+
this.writeMouseDelta(sequence);
|
|
376
|
+
}
|
|
377
|
+
writeMouseDelta(sequence) {
|
|
378
|
+
if (sequence.length === 0 || this.suspended || this.stopped)
|
|
379
|
+
return;
|
|
380
|
+
this.stdout.write(sequence);
|
|
292
381
|
}
|
|
293
382
|
/**
|
|
294
383
|
* Attach a parent UI mode. The host routes stdin through the mode's
|
|
@@ -298,6 +387,7 @@ export class TerminalHost {
|
|
|
298
387
|
attachParentUi(mode) {
|
|
299
388
|
this.parentUi = mode;
|
|
300
389
|
this.router.attachParentUi(mode);
|
|
390
|
+
this.invalidateFrameCache();
|
|
301
391
|
this.scheduleRender();
|
|
302
392
|
return () => this.detachParentUi(mode);
|
|
303
393
|
}
|
|
@@ -306,6 +396,7 @@ export class TerminalHost {
|
|
|
306
396
|
return;
|
|
307
397
|
this.router.detachParentUi(this.parentUi);
|
|
308
398
|
this.parentUi = undefined;
|
|
399
|
+
this.invalidateFrameCache();
|
|
309
400
|
this.scheduleRender();
|
|
310
401
|
}
|
|
311
402
|
/**
|
|
@@ -313,8 +404,8 @@ export class TerminalHost {
|
|
|
313
404
|
*
|
|
314
405
|
* The host:
|
|
315
406
|
* - leaves its own alternate screen,
|
|
316
|
-
* - disables mouse reporting so the foreign UI is not
|
|
317
|
-
*
|
|
407
|
+
* - disables reflected child mouse reporting so the foreign UI is not
|
|
408
|
+
* flooded with mouse sequences,
|
|
318
409
|
* - removes its stdin data listener,
|
|
319
410
|
* - restores the prior raw-mode state,
|
|
320
411
|
* - blocks `scheduleRender()`/`renderNow()` until resume,
|
|
@@ -322,9 +413,10 @@ export class TerminalHost {
|
|
|
322
413
|
* intact so any data buffered during suspension is preserved for
|
|
323
414
|
* repaint after resume.
|
|
324
415
|
*
|
|
325
|
-
* On resume the host re-enters its alt screen, re-
|
|
326
|
-
*
|
|
327
|
-
* layout, resizes the attached child if any, and schedules a
|
|
416
|
+
* On resume the host re-enters its alt screen, re-applies still-active
|
|
417
|
+
* child-requested mouse modes, re-installs its raw-mode stdin listener,
|
|
418
|
+
* recomputes layout, resizes the attached child if any, and schedules a
|
|
419
|
+
* repaint.
|
|
328
420
|
*
|
|
329
421
|
* Throws when the host is not active. The `finally` clause always
|
|
330
422
|
* restores host ownership, even when `run` throws.
|
|
@@ -338,6 +430,8 @@ export class TerminalHost {
|
|
|
338
430
|
}
|
|
339
431
|
this.suspended = true;
|
|
340
432
|
this.stopSource();
|
|
433
|
+
this.reconcileHostMouseCapture();
|
|
434
|
+
this.mouseModes.setReflectionEnabled(false);
|
|
341
435
|
this.stdout.write(MOUSE_OFF + RESET_SCROLL_REGION + CLEAR_SCREEN + CURSOR_HOME + ALT_SCREEN_OFF + SHOW_CURSOR);
|
|
342
436
|
const layoutSnapshot = this.layout ?? this.computeLayout();
|
|
343
437
|
const io = {
|
|
@@ -351,7 +445,12 @@ export class TerminalHost {
|
|
|
351
445
|
return await run(io);
|
|
352
446
|
}
|
|
353
447
|
finally {
|
|
354
|
-
this.
|
|
448
|
+
this.reconcileHostMouseCapture();
|
|
449
|
+
this.stdout.write(ALT_SCREEN_ON
|
|
450
|
+
+ CLEAR_SCREEN
|
|
451
|
+
+ CURSOR_HOME
|
|
452
|
+
+ HIDE_CURSOR
|
|
453
|
+
+ this.mouseModes.setReflectionEnabled(true));
|
|
355
454
|
if (this.stdin.isTTY) {
|
|
356
455
|
this.startSource();
|
|
357
456
|
}
|
|
@@ -362,10 +461,14 @@ export class TerminalHost {
|
|
|
362
461
|
if (this.childHandle) {
|
|
363
462
|
this.childHandle.resize(this.layout.childCols, this.layout.childRows);
|
|
364
463
|
}
|
|
464
|
+
this.invalidateFrameCache();
|
|
365
465
|
this.notifyParentUiResize();
|
|
366
466
|
this.scheduleRender();
|
|
367
467
|
}
|
|
368
468
|
}
|
|
469
|
+
invalidateFrameCache() {
|
|
470
|
+
this.lastFrameRows = null;
|
|
471
|
+
}
|
|
369
472
|
/** Force an immediate render (synchronously composes one frame). */
|
|
370
473
|
renderNow() {
|
|
371
474
|
this.pendingFlush = false;
|
|
@@ -385,46 +488,70 @@ export class TerminalHost {
|
|
|
385
488
|
const parentOnly = !fullRender
|
|
386
489
|
&& surface !== undefined
|
|
387
490
|
&& surface.lines.length >= this.layout.childRows;
|
|
388
|
-
|
|
491
|
+
const next = new Array(this.layout.rows).fill(null);
|
|
389
492
|
if (!parentOnly) {
|
|
390
|
-
|
|
493
|
+
const childRows = renderChildViewportRows(this.vt, this.layout);
|
|
494
|
+
for (let i = 0; i < childRows.length; i++) {
|
|
495
|
+
next[i] = childRows[i];
|
|
496
|
+
}
|
|
391
497
|
}
|
|
392
498
|
if (surface) {
|
|
393
|
-
|
|
499
|
+
this.renderUiSurfaceRows(next, this.layout, surface);
|
|
394
500
|
}
|
|
395
501
|
// Warning strip is host-owned and lives in its own dedicated rows
|
|
396
502
|
// (between the child viewport and the status bar), so it is rendered
|
|
397
503
|
// independently of the parent UI surface and the child viewport.
|
|
398
|
-
|
|
399
|
-
if (this.statusBar) {
|
|
504
|
+
this.renderMessageRows(next, this.layout);
|
|
505
|
+
if (this.statusBar && this.layout.statusRow !== undefined) {
|
|
400
506
|
const text = this.statusBar.render(this.layout.columns);
|
|
401
|
-
|
|
507
|
+
next[this.layout.statusRow - 1] = renderStatusRowBody(this.layout, text);
|
|
402
508
|
}
|
|
403
|
-
// Move the real cursor to
|
|
404
|
-
//
|
|
405
|
-
//
|
|
406
|
-
// produce during provider streaming, host-managed warning rows, and
|
|
407
|
-
// host-backed prompts is not desired. A surface can opt in to
|
|
408
|
-
// SHOW_CURSOR only for frames where a visible hardware cursor is part
|
|
409
|
-
// of its contract.
|
|
509
|
+
// Move the real cursor to the active owner of the frame. Host-owned
|
|
510
|
+
// surfaces keep the historic hidden default unless they opt in; child-owned
|
|
511
|
+
// frames mirror the child's own DECTCEM visibility.
|
|
410
512
|
const surfaceCursorPlacement = surface?.cursor
|
|
411
513
|
? mapSurfaceCursorToScreen(this.layout, surface)
|
|
412
514
|
: undefined;
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
else {
|
|
515
|
+
let cursorPlacement = "";
|
|
516
|
+
if (surface) {
|
|
517
|
+
// Position and visibility are independent: emit the move whenever a
|
|
518
|
+
// placement exists, then decide show/hide separately.
|
|
418
519
|
if (surfaceCursorPlacement) {
|
|
419
|
-
|
|
520
|
+
cursorPlacement += `\x1b[${surfaceCursorPlacement.row};${surfaceCursorPlacement.col}H`;
|
|
420
521
|
}
|
|
421
|
-
|
|
522
|
+
cursorPlacement += surface.showCursor && surfaceCursorPlacement ? SHOW_CURSOR : HIDE_CURSOR;
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
const hasRoom = this.layout.childRows > 0;
|
|
526
|
+
if (hasRoom) {
|
|
422
527
|
const cy = Math.min(Math.max(0, this.vt.cursorY), this.layout.childRows - 1);
|
|
423
528
|
const cx = Math.min(Math.max(0, this.vt.cursorX), this.layout.columns - 1);
|
|
424
|
-
|
|
529
|
+
cursorPlacement += `\x1b[${cy + 1};${cx + 1}H`;
|
|
530
|
+
}
|
|
531
|
+
const showChildCursor = hasRoom
|
|
532
|
+
&& this.childHandle !== undefined
|
|
533
|
+
&& shouldShowVtCursor(this.vt);
|
|
534
|
+
cursorPlacement += showChildCursor ? SHOW_CURSOR : HIDE_CURSOR;
|
|
535
|
+
}
|
|
536
|
+
const prev = this.lastFrameRows;
|
|
537
|
+
let diffBody = HIDE_CURSOR;
|
|
538
|
+
for (let i = 0; i < next.length; i++) {
|
|
539
|
+
if (next[i] !== null) {
|
|
540
|
+
if (prev === null || prev[i] !== next[i]) {
|
|
541
|
+
diffBody += `\x1b[${i + 1};1H${next[i]}`;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
else {
|
|
545
|
+
// Nothing painted this row this frame: carry the prior row forward
|
|
546
|
+
// so `next` doubles as the cache for the following frame.
|
|
547
|
+
next[i] = prev?.[i] ?? null;
|
|
425
548
|
}
|
|
426
|
-
frame += HIDE_CURSOR;
|
|
427
549
|
}
|
|
550
|
+
this.lastFrameRows = next;
|
|
551
|
+
diffBody += cursorPlacement;
|
|
552
|
+
const frame = this.syncOutputSupported
|
|
553
|
+
? BEGIN_SYNC_UPDATE + diffBody + END_SYNC_UPDATE
|
|
554
|
+
: diffBody;
|
|
428
555
|
this.stdout.write(frame);
|
|
429
556
|
}
|
|
430
557
|
/**
|
|
@@ -512,62 +639,53 @@ export class TerminalHost {
|
|
|
512
639
|
this.vt.scrollToBottom();
|
|
513
640
|
this.scheduleRender();
|
|
514
641
|
}
|
|
515
|
-
|
|
642
|
+
renderUiSurfaceRows(rows, layout, surface) {
|
|
516
643
|
if (surface.lines.length === 0)
|
|
517
|
-
return
|
|
644
|
+
return;
|
|
518
645
|
const maxLines = Math.min(surface.lines.length, layout.childRows);
|
|
519
646
|
const baseRow = Math.max(0, layout.childRows - maxLines);
|
|
520
|
-
let out = "";
|
|
521
647
|
for (let i = 0; i < maxLines; i++) {
|
|
522
648
|
const text = surface.lines[surface.lines.length - maxLines + i];
|
|
523
649
|
const padded = padOrClip(text, layout.columns);
|
|
524
|
-
|
|
650
|
+
rows[baseRow + i] = `\x1b[2K\x1b[0m${padded}`;
|
|
525
651
|
}
|
|
526
|
-
return out;
|
|
527
652
|
}
|
|
528
|
-
|
|
653
|
+
renderMessageRows(rows, layout) {
|
|
529
654
|
if (layout.warningRows === 0 || layout.warningStartRow === undefined)
|
|
530
|
-
return
|
|
655
|
+
return;
|
|
531
656
|
const messages = this.bufferOutput.snapshot();
|
|
532
657
|
if (messages.length === 0)
|
|
533
|
-
return
|
|
658
|
+
return;
|
|
534
659
|
// Show the newest messages when the buffer has more than the strip
|
|
535
660
|
// can hold. The strip is sized to `layout.warningRows`, capped at 3
|
|
536
661
|
// by `computeTerminalLayout`.
|
|
537
662
|
const slice = messages.slice(-layout.warningRows);
|
|
538
|
-
let out = "";
|
|
539
663
|
for (let i = 0; i < slice.length; i++) {
|
|
540
664
|
const text = formatOrchestrationMessage(slice[i]);
|
|
541
665
|
const padded = padOrClip(text, layout.columns);
|
|
542
|
-
|
|
666
|
+
rows[layout.warningStartRow - 1 + i] = `\x1b[2K\x1b[0m${padded}`;
|
|
543
667
|
}
|
|
544
|
-
return out;
|
|
545
668
|
}
|
|
546
669
|
handleResize(size) {
|
|
547
670
|
if (!this.isActive)
|
|
548
671
|
return;
|
|
549
672
|
let next;
|
|
550
673
|
if (size) {
|
|
551
|
-
//
|
|
552
|
-
//
|
|
674
|
+
// Source-provided dimensions are already post-resize and may be
|
|
675
|
+
// fresher than stdout.columns/stdout.rows.
|
|
553
676
|
next = size;
|
|
554
677
|
}
|
|
555
678
|
else {
|
|
556
|
-
//
|
|
557
|
-
//
|
|
558
|
-
// Overwrite `lastSize` — any stale FFI value from before the last
|
|
559
|
-
// `source.stop()` (e.g. during runIsolatedAltScreen suspension)
|
|
560
|
-
// would otherwise mask the new size on resume.
|
|
679
|
+
// stdout.on("resize") path: libuv just refreshed stdout columns/rows,
|
|
680
|
+
// so overwrite `lastSize` with those dimensions.
|
|
561
681
|
const c = this.stdout.columns;
|
|
562
682
|
const r = this.stdout.rows;
|
|
563
683
|
if (typeof c === "number" && typeof r === "number") {
|
|
564
684
|
next = { columns: c, rows: r };
|
|
565
685
|
}
|
|
566
686
|
}
|
|
567
|
-
// De-dupe redundant resize cascades
|
|
568
|
-
//
|
|
569
|
-
// `stdout.on("resize")` fire for the same physical resize; without
|
|
570
|
-
// this guard, layout/vt/child resizes and a render would run twice.
|
|
687
|
+
// De-dupe redundant resize cascades from source-driven and stdout-driven
|
|
688
|
+
// notifications for the same physical resize.
|
|
571
689
|
if (next !== undefined
|
|
572
690
|
&& this.lastSize !== undefined
|
|
573
691
|
&& next.columns === this.lastSize.columns
|
|
@@ -576,6 +694,7 @@ export class TerminalHost {
|
|
|
576
694
|
}
|
|
577
695
|
this.lastSize = next;
|
|
578
696
|
this.layout = this.computeLayout();
|
|
697
|
+
this.invalidateFrameCache();
|
|
579
698
|
if (this.vt)
|
|
580
699
|
this.vt.resize(this.layout.childCols, this.layout.childRows);
|
|
581
700
|
if (this.childHandle) {
|
|
@@ -613,12 +732,26 @@ export class TerminalHost {
|
|
|
613
732
|
this.layout = next;
|
|
614
733
|
if (prev !== undefined
|
|
615
734
|
&& (prev.childCols !== next.childCols || prev.childRows !== next.childRows)) {
|
|
735
|
+
this.invalidateFrameCache();
|
|
616
736
|
this.vt?.resize(next.childCols, next.childRows);
|
|
617
737
|
this.childHandle?.resize(next.childCols, next.childRows);
|
|
618
738
|
this.notifyParentUiResize();
|
|
619
739
|
}
|
|
620
740
|
this.scheduleRender();
|
|
621
741
|
}
|
|
742
|
+
publishChildStatus() {
|
|
743
|
+
this.statusBar?.setChildState(this.externalChildStatus ?? this.mainChildStatus);
|
|
744
|
+
this.reconcileHostMouseCapture();
|
|
745
|
+
}
|
|
746
|
+
updateChildStatus() {
|
|
747
|
+
const hasChild = this.childHandle !== undefined;
|
|
748
|
+
const isAlternate = hasChild && this.vt?.isAlternate === true;
|
|
749
|
+
const mouseActive = hasChild && this.childMouseTracker.hasActiveReportingMode();
|
|
750
|
+
this.mainChildStatus = isAlternate || mouseActive
|
|
751
|
+
? { isAlternate, mouseActive }
|
|
752
|
+
: undefined;
|
|
753
|
+
this.publishChildStatus();
|
|
754
|
+
}
|
|
622
755
|
}
|
|
623
756
|
function isHostParentUiMode(mode) {
|
|
624
757
|
return typeof mode.getSurface === "function";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/terminal/host.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/terminal/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ export interface ParentUiMode {
|
|
|
20
20
|
* to feel precise while still moving meaningfully on every notch.
|
|
21
21
|
*/
|
|
22
22
|
export declare const WHEEL_LINES_PER_EVENT = 3;
|
|
23
|
+
export declare function isRawSgrMouseFrame(key: TerminalKey): boolean;
|
|
23
24
|
export interface InputRouterOptions {
|
|
24
25
|
/** Trigger a dump capture when Ctrl+] is observed. */
|
|
25
26
|
onDump?: () => void;
|
|
@@ -40,6 +41,17 @@ export interface InputRouterOptions {
|
|
|
40
41
|
* Evaluated once per event batch after parent UI routing.
|
|
41
42
|
*/
|
|
42
43
|
isChildAlternate?: () => boolean;
|
|
44
|
+
/**
|
|
45
|
+
* True when the child requested mouse reporting in the normal buffer.
|
|
46
|
+
* Wheel events are then child-owned instead of host scrollback-owned.
|
|
47
|
+
*/
|
|
48
|
+
isChildMouseActive?: () => boolean;
|
|
49
|
+
/** Child kitty keyboard protocol flags currently active. */
|
|
50
|
+
getChildKittyFlags?: () => number;
|
|
51
|
+
/** True when the child has enabled bracketed paste mode. */
|
|
52
|
+
getChildBracketedPaste?: () => boolean;
|
|
53
|
+
/** Parent terminal replied to the DEC private mode 2026 support query. */
|
|
54
|
+
onSyncOutputReport?: (supported: boolean) => void;
|
|
43
55
|
}
|
|
44
56
|
/**
|
|
45
57
|
* Event-based input router. Operates on `TerminalKey[]` produced by a
|
|
@@ -52,9 +64,12 @@ export interface InputRouterOptions {
|
|
|
52
64
|
* 2. Active parent UI mode (if attached) — fully consumes by default.
|
|
53
65
|
* 3. If the child is in the alternate buffer, Ctrl+C still interrupts
|
|
54
66
|
* but page/home/end/wheel are forwarded to the child.
|
|
55
|
-
* 4. Wheel events →
|
|
56
|
-
*
|
|
57
|
-
*
|
|
67
|
+
* 4. Wheel events → child when child mouse reporting is active, otherwise
|
|
68
|
+
* scrollback callbacks.
|
|
69
|
+
* 5. Raw SGR mouse frames are dropped in host-owned normal-buffer mode
|
|
70
|
+
* unless child mouse reporting is active.
|
|
71
|
+
* 6. Host shortcuts: Ctrl+C → onInterrupt; page/home/end → scrollback.
|
|
72
|
+
* 7. Remaining events → child PTY when `gateOpen` is true, encoded via
|
|
58
73
|
* `encodeKeysToBytes`. Otherwise dropped.
|
|
59
74
|
*/
|
|
60
75
|
export declare class InputRouter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-router.d.ts","sourceRoot":"","sources":["../../src/terminal/input-router.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"input-router.d.ts","sourceRoot":"","sources":["../../src/terminal/input-router.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAKvC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;IACnC,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAClC,4DAA4D;IAC5D,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC;IACvC,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,WAAW,CAAwB;gBAEd,OAAO,GAAE,kBAAuB;IAE7D,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIpC,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI;IAKrC,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIxC,cAAc,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAKzC,+CAA+C;IAC/C,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;IA4FzC,OAAO,CAAC,cAAc;IAoBtB,OAAO,IAAI,IAAI;CAIhB"}
|