poly-weaver 0.10.6 → 0.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/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/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/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 +4 -1
- 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
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const VALID_FLAGS = 0b11111;
|
|
2
|
+
const MAX_DEPTH = 16;
|
|
3
|
+
const KITTY_CSI_RE = /\x1b\[([?<>=])([0-9;]*)u/g;
|
|
4
|
+
const INCOMPLETE_KITTY_CSI_RE = /\x1b\[(?:[?<>=][0-9;]*)?$/;
|
|
5
|
+
const MAX_REMAINDER = 32;
|
|
6
|
+
export class ChildKittyNegotiator {
|
|
7
|
+
flagStack = [0];
|
|
8
|
+
remainder = "";
|
|
9
|
+
get activeFlags() {
|
|
10
|
+
return this.flagStack[this.flagStack.length - 1] ?? 0;
|
|
11
|
+
}
|
|
12
|
+
reset() {
|
|
13
|
+
this.flagStack = [0];
|
|
14
|
+
this.remainder = "";
|
|
15
|
+
}
|
|
16
|
+
processChunk(chunk) {
|
|
17
|
+
// Fast path: with no buffered partial sequence, a chunk that contains no
|
|
18
|
+
// ESC cannot hold a kitty CSI, so there is nothing to parse or carry over.
|
|
19
|
+
if (this.remainder.length === 0 && chunk.indexOf("\x1b") < 0)
|
|
20
|
+
return "";
|
|
21
|
+
const text = this.remainder + chunk;
|
|
22
|
+
this.remainder = "";
|
|
23
|
+
const incomplete = text.match(INCOMPLETE_KITTY_CSI_RE)?.[0] ?? "";
|
|
24
|
+
const body = incomplete.length > 0
|
|
25
|
+
? text.slice(0, text.length - incomplete.length)
|
|
26
|
+
: text;
|
|
27
|
+
if (incomplete.length > 0 && incomplete.length <= MAX_REMAINDER) {
|
|
28
|
+
this.remainder = incomplete;
|
|
29
|
+
}
|
|
30
|
+
KITTY_CSI_RE.lastIndex = 0;
|
|
31
|
+
let reply = "";
|
|
32
|
+
for (let match = KITTY_CSI_RE.exec(body); match; match = KITTY_CSI_RE.exec(body)) {
|
|
33
|
+
const op = match[1];
|
|
34
|
+
const params = match[2] ?? "";
|
|
35
|
+
switch (op) {
|
|
36
|
+
case "?":
|
|
37
|
+
reply += `\x1b[?${this.activeFlags}u`;
|
|
38
|
+
break;
|
|
39
|
+
case ">":
|
|
40
|
+
this.flagStack.push((parseInt(params || "0", 10) || 0) & VALID_FLAGS);
|
|
41
|
+
if (this.flagStack.length > MAX_DEPTH)
|
|
42
|
+
this.flagStack.shift();
|
|
43
|
+
break;
|
|
44
|
+
case "<": {
|
|
45
|
+
let count = parseInt(params || "1", 10) || 1;
|
|
46
|
+
while (count-- > 0)
|
|
47
|
+
this.flagStack.pop();
|
|
48
|
+
if (this.flagStack.length === 0)
|
|
49
|
+
this.flagStack.push(0);
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case "=":
|
|
53
|
+
this.setCurrentFlags(params);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return reply;
|
|
58
|
+
}
|
|
59
|
+
setCurrentFlags(params) {
|
|
60
|
+
const [rawFlags, rawMode] = params.split(";");
|
|
61
|
+
const bits = (parseInt(rawFlags || "0", 10) || 0) & VALID_FLAGS;
|
|
62
|
+
const mode = parseInt(rawMode || "1", 10) || 1;
|
|
63
|
+
const current = this.activeFlags;
|
|
64
|
+
const index = this.flagStack.length - 1;
|
|
65
|
+
if (mode === 2) {
|
|
66
|
+
this.flagStack[index] = current | bits;
|
|
67
|
+
}
|
|
68
|
+
else if (mode === 3) {
|
|
69
|
+
this.flagStack[index] = current & ~bits;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.flagStack[index] = bits;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=kitty-negotiator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kitty-negotiator.js","sourceRoot":"","sources":["../../src/terminal/kitty-negotiator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACjD,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAC5D,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,OAAO,oBAAoB;IACvB,SAAS,GAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,SAAS,GAAG,EAAE,CAAC;IAEvB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAExE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;YAChE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAA0B,CAAC;YAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,QAAQ,EAAE,EAAE,CAAC;gBACX,KAAK,GAAG;oBACN,KAAK,IAAI,SAAS,IAAI,CAAC,WAAW,GAAG,CAAC;oBACtC,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;oBACtE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS;wBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBAC9D,MAAM;gBACR,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC7C,OAAO,KAAK,EAAE,GAAG,CAAC;wBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;wBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM;gBACR,CAAC;gBACD,KAAK,GAAG;oBACN,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC7B,MAAM;YACV,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC;QAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Subset of the koffi API used by win32 console consumers. Declared once
|
|
3
|
-
* here so call sites stay type-checked without a runtime dependency on
|
|
4
|
-
* `@types/koffi`.
|
|
5
|
-
*/
|
|
1
|
+
/** Subset of the koffi API used by Windows FFI helpers. */
|
|
6
2
|
export interface KoffiLibLike {
|
|
7
3
|
func(name: string, retType: string, args: unknown[]): (...args: unknown[]) => unknown;
|
|
8
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koffi-loader.d.ts","sourceRoot":"","sources":["../../src/terminal/koffi-loader.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"koffi-loader.d.ts","sourceRoot":"","sources":["../../src/terminal/koffi-loader.ts"],"names":[],"mappings":"AAIA,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CACvF;AACD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7D;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,IAAI,OAAO,GAAG,IAAI,CAQ1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koffi-loader.js","sourceRoot":"","sources":["../../src/terminal/koffi-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"koffi-loader.js","sourceRoot":"","sources":["../../src/terminal/koffi-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAavD,IAAI,MAAkC,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type MouseMode = 1000 | 1002 | 1003 | 1006;
|
|
2
|
+
/**
|
|
3
|
+
* Tracks DEC private mouse-related modes requested by a child PTY.
|
|
4
|
+
*
|
|
5
|
+
* The tracker only observes the child's output stream. It does not write to
|
|
6
|
+
* the real terminal; callers use the returned snapshot with
|
|
7
|
+
* `MouseModeReconciler` so multiple sources cannot fight over the same outer
|
|
8
|
+
* terminal mode.
|
|
9
|
+
*/
|
|
10
|
+
export declare class MouseModeTracker {
|
|
11
|
+
private trackingMode;
|
|
12
|
+
private sgrEnabled;
|
|
13
|
+
private pending;
|
|
14
|
+
processChunk(data: string): boolean;
|
|
15
|
+
reset(): void;
|
|
16
|
+
snapshot(): MouseMode[];
|
|
17
|
+
hasActiveReportingMode(): boolean;
|
|
18
|
+
private applyDecPrivateMode;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Computes the outer terminal mouse-mode delta from named logical sources.
|
|
22
|
+
* Sources are desired state; `reflected` is what this process believes it has
|
|
23
|
+
* emitted to the real terminal while reflection is enabled.
|
|
24
|
+
*/
|
|
25
|
+
export declare class MouseModeReconciler {
|
|
26
|
+
private readonly sources;
|
|
27
|
+
private reflected;
|
|
28
|
+
private reflectionEnabled;
|
|
29
|
+
setSource(source: string, modes: Iterable<MouseMode>): string;
|
|
30
|
+
clearSource(source: string): string;
|
|
31
|
+
clearAll(): string;
|
|
32
|
+
setReflectionEnabled(enabled: boolean): string;
|
|
33
|
+
private reconcile;
|
|
34
|
+
private desired;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=mouse-mode-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mouse-mode-tracker.d.ts","sourceRoot":"","sources":["../../src/terminal/mouse-mode-tracker.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AA+BlD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAM;IAErB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAqCnC,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,SAAS,EAAE;IAOvB,sBAAsB,IAAI,OAAO;IAIjC,OAAO,CAAC,mBAAmB;CA2B5B;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM;IAU7D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKnC,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAW9C,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,OAAO;CAahB"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { MOUSE_ANY_EVENT_OFF, MOUSE_ANY_EVENT_ON, MOUSE_BUTTON_EVENT_OFF, MOUSE_BUTTON_EVENT_ON, MOUSE_REPORTING_OFF, MOUSE_REPORTING_ON, MOUSE_SGR_OFF, MOUSE_SGR_ON, } from "../ansi.js";
|
|
2
|
+
const MOUSE_MODES = new Set([1000, 1002, 1003, 1006]);
|
|
3
|
+
const DEC_PARAM_RE = /^\d+$/;
|
|
4
|
+
const TRACKING_MODE_PRIORITY = {
|
|
5
|
+
1000: 0,
|
|
6
|
+
1002: 1,
|
|
7
|
+
1003: 2,
|
|
8
|
+
};
|
|
9
|
+
const MAX_PENDING_BYTES = 512;
|
|
10
|
+
const ENABLE_SEQUENCE = {
|
|
11
|
+
1000: MOUSE_REPORTING_ON,
|
|
12
|
+
1002: MOUSE_BUTTON_EVENT_ON,
|
|
13
|
+
1003: MOUSE_ANY_EVENT_ON,
|
|
14
|
+
1006: MOUSE_SGR_ON,
|
|
15
|
+
};
|
|
16
|
+
const DISABLE_SEQUENCE = {
|
|
17
|
+
1000: MOUSE_REPORTING_OFF,
|
|
18
|
+
1002: MOUSE_BUTTON_EVENT_OFF,
|
|
19
|
+
1003: MOUSE_ANY_EVENT_OFF,
|
|
20
|
+
1006: MOUSE_SGR_OFF,
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Tracks DEC private mouse-related modes requested by a child PTY.
|
|
24
|
+
*
|
|
25
|
+
* The tracker only observes the child's output stream. It does not write to
|
|
26
|
+
* the real terminal; callers use the returned snapshot with
|
|
27
|
+
* `MouseModeReconciler` so multiple sources cannot fight over the same outer
|
|
28
|
+
* terminal mode.
|
|
29
|
+
*/
|
|
30
|
+
export class MouseModeTracker {
|
|
31
|
+
trackingMode;
|
|
32
|
+
sgrEnabled = false;
|
|
33
|
+
pending = "";
|
|
34
|
+
processChunk(data) {
|
|
35
|
+
if (data.length === 0)
|
|
36
|
+
return false;
|
|
37
|
+
// Fast path: with no buffered partial sequence, a chunk that contains no
|
|
38
|
+
// ESC cannot hold a CSI, so there is nothing to parse or carry over. This
|
|
39
|
+
// skips the string copy + scan for ordinary text output (the common case).
|
|
40
|
+
if (this.pending.length === 0 && data.indexOf("\x1b") < 0)
|
|
41
|
+
return false;
|
|
42
|
+
this.pending += data;
|
|
43
|
+
let changed = false;
|
|
44
|
+
let cursor = 0;
|
|
45
|
+
while (cursor < this.pending.length) {
|
|
46
|
+
const esc = this.pending.indexOf("\x1b[", cursor);
|
|
47
|
+
if (esc < 0) {
|
|
48
|
+
cursor = this.pending.endsWith("\x1b")
|
|
49
|
+
? this.pending.length - 1
|
|
50
|
+
: this.pending.length;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
const finalIndex = findCsiFinal(this.pending, esc + 2);
|
|
54
|
+
if (finalIndex === undefined) {
|
|
55
|
+
cursor = esc;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
const body = this.pending.slice(esc + 2, finalIndex);
|
|
59
|
+
const finalByte = this.pending[finalIndex];
|
|
60
|
+
if ((finalByte === "h" || finalByte === "l") && body.startsWith("?")) {
|
|
61
|
+
changed = this.applyDecPrivateMode(body.slice(1), finalByte === "h") || changed;
|
|
62
|
+
}
|
|
63
|
+
cursor = finalIndex + 1;
|
|
64
|
+
}
|
|
65
|
+
this.pending = trimProcessedPrefix(this.pending, cursor);
|
|
66
|
+
return changed;
|
|
67
|
+
}
|
|
68
|
+
reset() {
|
|
69
|
+
this.trackingMode = undefined;
|
|
70
|
+
this.sgrEnabled = false;
|
|
71
|
+
this.pending = "";
|
|
72
|
+
}
|
|
73
|
+
snapshot() {
|
|
74
|
+
return effectiveModeList({
|
|
75
|
+
trackingMode: this.trackingMode,
|
|
76
|
+
sgrEnabled: this.sgrEnabled,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
hasActiveReportingMode() {
|
|
80
|
+
return this.trackingMode !== undefined;
|
|
81
|
+
}
|
|
82
|
+
applyDecPrivateMode(params, enabled) {
|
|
83
|
+
let changed = false;
|
|
84
|
+
for (const raw of params.split(";")) {
|
|
85
|
+
if (!DEC_PARAM_RE.test(raw))
|
|
86
|
+
continue;
|
|
87
|
+
const mode = Number(raw);
|
|
88
|
+
if (!MOUSE_MODES.has(mode))
|
|
89
|
+
continue;
|
|
90
|
+
const mouseMode = mode;
|
|
91
|
+
if (mouseMode === 1006) {
|
|
92
|
+
if (this.sgrEnabled !== enabled) {
|
|
93
|
+
this.sgrEnabled = enabled;
|
|
94
|
+
changed = true;
|
|
95
|
+
}
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (enabled) {
|
|
99
|
+
if (this.trackingMode !== mouseMode) {
|
|
100
|
+
this.trackingMode = mouseMode;
|
|
101
|
+
changed = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else if (this.trackingMode !== undefined) {
|
|
105
|
+
this.trackingMode = undefined;
|
|
106
|
+
changed = true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return changed;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Computes the outer terminal mouse-mode delta from named logical sources.
|
|
114
|
+
* Sources are desired state; `reflected` is what this process believes it has
|
|
115
|
+
* emitted to the real terminal while reflection is enabled.
|
|
116
|
+
*/
|
|
117
|
+
export class MouseModeReconciler {
|
|
118
|
+
sources = new Map();
|
|
119
|
+
reflected = emptyEffectiveMouseModes();
|
|
120
|
+
reflectionEnabled = true;
|
|
121
|
+
setSource(source, modes) {
|
|
122
|
+
const next = normalizeEffectiveMouseModes(modes);
|
|
123
|
+
if (!hasEffectiveMouseModes(next)) {
|
|
124
|
+
this.sources.delete(source);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.sources.set(source, next);
|
|
128
|
+
}
|
|
129
|
+
return this.reconcile();
|
|
130
|
+
}
|
|
131
|
+
clearSource(source) {
|
|
132
|
+
const deleted = this.sources.delete(source);
|
|
133
|
+
return deleted ? this.reconcile() : "";
|
|
134
|
+
}
|
|
135
|
+
clearAll() {
|
|
136
|
+
const hadSources = this.sources.size > 0;
|
|
137
|
+
this.sources.clear();
|
|
138
|
+
return hadSources || hasEffectiveMouseModes(this.reflected) ? this.reconcile() : "";
|
|
139
|
+
}
|
|
140
|
+
setReflectionEnabled(enabled) {
|
|
141
|
+
if (this.reflectionEnabled === enabled)
|
|
142
|
+
return "";
|
|
143
|
+
this.reflectionEnabled = enabled;
|
|
144
|
+
if (!enabled) {
|
|
145
|
+
const sequence = effectiveModeSequence(this.reflected, false);
|
|
146
|
+
this.reflected = emptyEffectiveMouseModes();
|
|
147
|
+
return sequence;
|
|
148
|
+
}
|
|
149
|
+
return this.reconcile();
|
|
150
|
+
}
|
|
151
|
+
reconcile() {
|
|
152
|
+
if (!this.reflectionEnabled)
|
|
153
|
+
return "";
|
|
154
|
+
const desired = this.desired();
|
|
155
|
+
let sequence = "";
|
|
156
|
+
if (this.reflected.trackingMode !== undefined && desired.trackingMode === undefined) {
|
|
157
|
+
sequence += DISABLE_SEQUENCE[this.reflected.trackingMode];
|
|
158
|
+
}
|
|
159
|
+
if (desired.trackingMode !== undefined
|
|
160
|
+
&& this.reflected.trackingMode !== desired.trackingMode) {
|
|
161
|
+
sequence += ENABLE_SEQUENCE[desired.trackingMode];
|
|
162
|
+
}
|
|
163
|
+
if (this.reflected.sgrEnabled && !desired.sgrEnabled) {
|
|
164
|
+
sequence += DISABLE_SEQUENCE[1006];
|
|
165
|
+
}
|
|
166
|
+
if (desired.sgrEnabled && !this.reflected.sgrEnabled) {
|
|
167
|
+
sequence += ENABLE_SEQUENCE[1006];
|
|
168
|
+
}
|
|
169
|
+
this.reflected = desired;
|
|
170
|
+
return sequence;
|
|
171
|
+
}
|
|
172
|
+
desired() {
|
|
173
|
+
const desired = emptyEffectiveMouseModes();
|
|
174
|
+
for (const source of this.sources.values()) {
|
|
175
|
+
if (source.trackingMode !== undefined) {
|
|
176
|
+
desired.trackingMode = preferredTrackingMode(desired.trackingMode, source.trackingMode);
|
|
177
|
+
}
|
|
178
|
+
desired.sgrEnabled ||= source.sgrEnabled;
|
|
179
|
+
}
|
|
180
|
+
return desired;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function findCsiFinal(data, start) {
|
|
184
|
+
for (let i = start; i < data.length; i++) {
|
|
185
|
+
const code = data.charCodeAt(i);
|
|
186
|
+
if (code >= 0x40 && code <= 0x7e)
|
|
187
|
+
return i;
|
|
188
|
+
}
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
function trimProcessedPrefix(data, cursor) {
|
|
192
|
+
let tail = data.slice(cursor);
|
|
193
|
+
if (tail.length <= MAX_PENDING_BYTES)
|
|
194
|
+
return tail;
|
|
195
|
+
const lastEsc = tail.lastIndexOf("\x1b[");
|
|
196
|
+
if (lastEsc >= 0 && tail.length - lastEsc <= MAX_PENDING_BYTES) {
|
|
197
|
+
tail = tail.slice(lastEsc);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
tail = "";
|
|
201
|
+
}
|
|
202
|
+
return tail;
|
|
203
|
+
}
|
|
204
|
+
function emptyEffectiveMouseModes() {
|
|
205
|
+
return { trackingMode: undefined, sgrEnabled: false };
|
|
206
|
+
}
|
|
207
|
+
function hasEffectiveMouseModes(state) {
|
|
208
|
+
return state.trackingMode !== undefined || state.sgrEnabled;
|
|
209
|
+
}
|
|
210
|
+
function normalizeEffectiveMouseModes(modes) {
|
|
211
|
+
const state = emptyEffectiveMouseModes();
|
|
212
|
+
for (const mode of modes) {
|
|
213
|
+
if (mode === 1006) {
|
|
214
|
+
state.sgrEnabled = true;
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
state.trackingMode = preferredTrackingMode(state.trackingMode, mode);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return state;
|
|
221
|
+
}
|
|
222
|
+
function preferredTrackingMode(current, candidate) {
|
|
223
|
+
if (current === undefined)
|
|
224
|
+
return candidate;
|
|
225
|
+
return TRACKING_MODE_PRIORITY[candidate] > TRACKING_MODE_PRIORITY[current]
|
|
226
|
+
? candidate
|
|
227
|
+
: current;
|
|
228
|
+
}
|
|
229
|
+
function effectiveModeList(state) {
|
|
230
|
+
const modes = [];
|
|
231
|
+
if (state.trackingMode !== undefined)
|
|
232
|
+
modes.push(state.trackingMode);
|
|
233
|
+
if (state.sgrEnabled)
|
|
234
|
+
modes.push(1006);
|
|
235
|
+
return modes;
|
|
236
|
+
}
|
|
237
|
+
function effectiveModeSequence(state, enabled) {
|
|
238
|
+
const table = enabled ? ENABLE_SEQUENCE : DISABLE_SEQUENCE;
|
|
239
|
+
let sequence = "";
|
|
240
|
+
for (const mode of effectiveModeList(state)) {
|
|
241
|
+
sequence += table[mode];
|
|
242
|
+
}
|
|
243
|
+
return sequence;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=mouse-mode-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mouse-mode-tracker.js","sourceRoot":"","sources":["../../src/terminal/mouse-mode-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Osc52Parsed = {
|
|
2
|
+
kind: "query";
|
|
3
|
+
selection: string;
|
|
4
|
+
} | {
|
|
5
|
+
kind: "set";
|
|
6
|
+
selection: string;
|
|
7
|
+
base64: string;
|
|
8
|
+
} | {
|
|
9
|
+
kind: "clear";
|
|
10
|
+
selection: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "invalid";
|
|
13
|
+
};
|
|
14
|
+
export declare function parseOsc52(data: string): Osc52Parsed;
|
|
15
|
+
export declare function buildOsc52Forward(data: string): string;
|
|
16
|
+
//# sourceMappingURL=osc52.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osc52.d.ts","sourceRoot":"","sources":["../../src/terminal/osc52.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAGxB,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAQpD;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// `data` is the xterm OSC 52 handler argument: everything after "52;".
|
|
2
|
+
export function parseOsc52(data) {
|
|
3
|
+
const semi = data.indexOf(";");
|
|
4
|
+
if (semi === -1)
|
|
5
|
+
return { kind: "invalid" };
|
|
6
|
+
const selection = data.slice(0, semi);
|
|
7
|
+
const payload = data.slice(semi + 1);
|
|
8
|
+
if (payload === "?")
|
|
9
|
+
return { kind: "query", selection };
|
|
10
|
+
if (payload === "")
|
|
11
|
+
return { kind: "clear", selection };
|
|
12
|
+
return { kind: "set", selection, base64: payload };
|
|
13
|
+
}
|
|
14
|
+
// Re-emit verbatim and let the outer terminal decide how to honor it.
|
|
15
|
+
export function buildOsc52Forward(data) {
|
|
16
|
+
return `\x1b]52;${data}\x07`;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=osc52.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osc52.js","sourceRoot":"","sources":["../../src/terminal/osc52.ts"],"names":[],"mappings":"AAMA,uEAAuE;AACvE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACzD,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACxD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,WAAW,IAAI,MAAM,CAAC;AAC/B,CAAC"}
|
|
@@ -14,29 +14,29 @@ declare function renderLine(line: IBufferLine, cols: number, scratch: IBufferCel
|
|
|
14
14
|
forceReset?: boolean;
|
|
15
15
|
}): string;
|
|
16
16
|
/**
|
|
17
|
-
* Render the child viewport
|
|
17
|
+
* Render the child viewport as row bodies.
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* non-status region. The status row (when reserved by the layout) is
|
|
22
|
-
* **not** touched here — the host paints it last, on top of this output.
|
|
19
|
+
* Each entry assumes the cursor is already at column 1 of the target row.
|
|
20
|
+
* No cursor positioning or leading home sequence is included.
|
|
23
21
|
*/
|
|
24
|
-
export declare function
|
|
22
|
+
export declare function renderChildViewportRows(vt: VirtualTerminal, layout: TerminalLayout): string[];
|
|
25
23
|
/**
|
|
26
24
|
* Render a virtual-terminal viewport as plain surface lines.
|
|
27
25
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
26
|
+
* Returns row fragments only: no cursor positioning and no clear-to-EOL
|
|
27
|
+
* suffix. The host surface renderer owns row placement, clearing, and width
|
|
28
|
+
* padding.
|
|
31
29
|
*/
|
|
32
30
|
export declare function renderViewportLines(vt: VirtualTerminal, rows: number, cols: number): string[];
|
|
33
31
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
* Whether the hardware cursor should mirror this VT's cursor for the current
|
|
33
|
+
* frame: the child has not hidden it and the live cursor row is on-screen.
|
|
34
|
+
*/
|
|
35
|
+
export declare function shouldShowVtCursor(vt: VirtualTerminal): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Render the status row body without cursor positioning.
|
|
38
38
|
*/
|
|
39
|
-
export declare function
|
|
39
|
+
export declare function renderStatusRowBody(layout: TerminalLayout, text: string): string;
|
|
40
40
|
export declare const __test: {
|
|
41
41
|
padOrClip: typeof padOrClip;
|
|
42
42
|
visibleLength: typeof visibleLength;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/terminal/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA6ItD;;;;;;GAMG;AACH,iBAAS,UAAU,CACjB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5D,MAAM,CA+CR;AAED
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/terminal/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA6ItD;;;;;;GAMG;AACH,iBAAS,UAAU,CACjB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5D,MAAM,CA+CR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,cAAc,GACrB,MAAM,EAAE,CAaV;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAeV;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,GACX,MAAM,CAQR;AAED,eAAO,MAAM,MAAM;;;;CAA2C,CAAC"}
|
package/dist/terminal/render.js
CHANGED
|
@@ -167,38 +167,30 @@ function renderLine(line, cols, scratch, opts = {}) {
|
|
|
167
167
|
return out;
|
|
168
168
|
}
|
|
169
169
|
/**
|
|
170
|
-
* Render the child viewport
|
|
170
|
+
* Render the child viewport as row bodies.
|
|
171
171
|
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
* non-status region. The status row (when reserved by the layout) is
|
|
175
|
-
* **not** touched here — the host paints it last, on top of this output.
|
|
172
|
+
* Each entry assumes the cursor is already at column 1 of the target row.
|
|
173
|
+
* No cursor positioning or leading home sequence is included.
|
|
176
174
|
*/
|
|
177
|
-
export function
|
|
175
|
+
export function renderChildViewportRows(vt, layout) {
|
|
178
176
|
const buffer = vt.buffer;
|
|
179
177
|
const scratch = vt.newCell();
|
|
180
178
|
const top = buffer.viewportY;
|
|
181
179
|
const childRows = layout.childRows;
|
|
182
180
|
const cols = layout.childCols;
|
|
183
|
-
|
|
181
|
+
const rows = [];
|
|
184
182
|
for (let row = 0; row < childRows; row++) {
|
|
185
183
|
const line = buffer.getLine(top + row);
|
|
186
|
-
|
|
187
|
-
if (line) {
|
|
188
|
-
out += renderLine(line, cols, scratch);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
out += CLEAR_LINE_RIGHT;
|
|
192
|
-
}
|
|
184
|
+
rows.push(line ? renderLine(line, cols, scratch) : CLEAR_LINE_RIGHT);
|
|
193
185
|
}
|
|
194
|
-
return
|
|
186
|
+
return rows;
|
|
195
187
|
}
|
|
196
188
|
/**
|
|
197
189
|
* Render a virtual-terminal viewport as plain surface lines.
|
|
198
190
|
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
191
|
+
* Returns row fragments only: no cursor positioning and no clear-to-EOL
|
|
192
|
+
* suffix. The host surface renderer owns row placement, clearing, and width
|
|
193
|
+
* padding.
|
|
202
194
|
*/
|
|
203
195
|
export function renderViewportLines(vt, rows, cols) {
|
|
204
196
|
const buffer = vt.buffer;
|
|
@@ -216,18 +208,18 @@ export function renderViewportLines(vt, rows, cols) {
|
|
|
216
208
|
return lines;
|
|
217
209
|
}
|
|
218
210
|
/**
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
* Returns `""` if the layout does not reserve a status row.
|
|
211
|
+
* Whether the hardware cursor should mirror this VT's cursor for the current
|
|
212
|
+
* frame: the child has not hidden it and the live cursor row is on-screen.
|
|
223
213
|
*/
|
|
224
|
-
export function
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
214
|
+
export function shouldShowVtCursor(vt) {
|
|
215
|
+
return vt.cursorVisible && !vt.isScrolledBack;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Render the status row body without cursor positioning.
|
|
219
|
+
*/
|
|
220
|
+
export function renderStatusRowBody(layout, text) {
|
|
228
221
|
const padded = padOrClip(text, layout.columns);
|
|
229
|
-
return (`\x1b[
|
|
230
|
-
`\x1b[2K` +
|
|
222
|
+
return (`\x1b[2K` +
|
|
231
223
|
`\x1b[0m\x1b[7m` +
|
|
232
224
|
padded +
|
|
233
225
|
`\x1b[27m\x1b[0m`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/terminal/render.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/terminal/render.ts"],"names":[],"mappings":"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"}
|