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
|
@@ -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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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { type TerminalKey } from "../terminal-input.js";
|
|
2
2
|
import type { KeyEventSource, ResizeSize } from "./key-event-source.js";
|
|
3
3
|
/**
|
|
4
|
-
* Default `KeyEventSource
|
|
5
|
-
*
|
|
6
|
-
* its injected stdin.
|
|
4
|
+
* Default `KeyEventSource`. Owns raw-mode on its injected stdin and
|
|
5
|
+
* optional VT input-mode negotiation on its injected stdout.
|
|
7
6
|
*
|
|
8
7
|
* Internally drives a `TerminalKeyParser`; consumers only see the
|
|
9
8
|
* structured `TerminalKey[]` stream — the byte-level parser is no
|
|
@@ -11,13 +10,13 @@ import type { KeyEventSource, ResizeSize } from "./key-event-source.js";
|
|
|
11
10
|
*/
|
|
12
11
|
export declare class StdinByteSource implements KeyEventSource {
|
|
13
12
|
private readonly stdin;
|
|
13
|
+
private readonly out;
|
|
14
14
|
private readonly parser;
|
|
15
15
|
private readonly subscribers;
|
|
16
16
|
private dataListener;
|
|
17
|
-
private vtInputGuard;
|
|
18
17
|
private prevRawMode;
|
|
19
18
|
private started;
|
|
20
|
-
constructor(stdin: NodeJS.ReadStream);
|
|
19
|
+
constructor(stdin: NodeJS.ReadStream, out?: NodeJS.WritableStream);
|
|
21
20
|
start(): void;
|
|
22
21
|
stop(): void;
|
|
23
22
|
onEvents(cb: (events: TerminalKey[]) => void): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdin-byte-source.d.ts","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"stdin-byte-source.d.ts","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAQlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IARtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAGL,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,GAAG,GAAE,MAAM,CAAC,cAA+B;IAM9D,KAAK,IAAI,IAAI;IAkBb,IAAI,IAAI,IAAI;IAiBZ,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAKzD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrD,OAAO,CAAC,MAAM;CAcf"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { TerminalKeyParser, } from "../terminal-input.js";
|
|
2
|
-
import {
|
|
2
|
+
import { disableHostInputModes, enableHostInputModes } from "./host-input-mode.js";
|
|
3
3
|
/**
|
|
4
|
-
* Default `KeyEventSource
|
|
5
|
-
*
|
|
6
|
-
* its injected stdin.
|
|
4
|
+
* Default `KeyEventSource`. Owns raw-mode on its injected stdin and
|
|
5
|
+
* optional VT input-mode negotiation on its injected stdout.
|
|
7
6
|
*
|
|
8
7
|
* Internally drives a `TerminalKeyParser`; consumers only see the
|
|
9
8
|
* structured `TerminalKey[]` stream — the byte-level parser is no
|
|
@@ -11,14 +10,15 @@ import { enableVtInputOnStdin, } from "./win32-console-mode.js";
|
|
|
11
10
|
*/
|
|
12
11
|
export class StdinByteSource {
|
|
13
12
|
stdin;
|
|
13
|
+
out;
|
|
14
14
|
parser;
|
|
15
15
|
subscribers = new Set();
|
|
16
16
|
dataListener;
|
|
17
|
-
vtInputGuard = null;
|
|
18
17
|
prevRawMode = false;
|
|
19
18
|
started = false;
|
|
20
|
-
constructor(stdin) {
|
|
19
|
+
constructor(stdin, out = process.stdout) {
|
|
21
20
|
this.stdin = stdin;
|
|
21
|
+
this.out = out;
|
|
22
22
|
this.parser = new TerminalKeyParser();
|
|
23
23
|
this.parser.onDeferredKeys((keys) => this.fanOut(keys));
|
|
24
24
|
}
|
|
@@ -29,7 +29,7 @@ export class StdinByteSource {
|
|
|
29
29
|
if (this.stdin.isTTY) {
|
|
30
30
|
this.prevRawMode = this.stdin.isRaw === true;
|
|
31
31
|
this.stdin.setRawMode(true);
|
|
32
|
-
this.
|
|
32
|
+
enableHostInputModes(this.out);
|
|
33
33
|
this.stdin.resume();
|
|
34
34
|
}
|
|
35
35
|
this.dataListener = (chunk) => {
|
|
@@ -48,9 +48,8 @@ export class StdinByteSource {
|
|
|
48
48
|
this.dataListener = undefined;
|
|
49
49
|
}
|
|
50
50
|
this.parser.cancelPendingEscape();
|
|
51
|
-
this.vtInputGuard?.restore();
|
|
52
|
-
this.vtInputGuard = null;
|
|
53
51
|
if (this.stdin.isTTY) {
|
|
52
|
+
disableHostInputModes(this.out);
|
|
54
53
|
try {
|
|
55
54
|
this.stdin.setRawMode(this.prevRawMode);
|
|
56
55
|
}
|
|
@@ -62,10 +61,9 @@ export class StdinByteSource {
|
|
|
62
61
|
return () => { this.subscribers.delete(cb); };
|
|
63
62
|
}
|
|
64
63
|
onResize(_cb) {
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
// signal separately, so this source has nothing to deliver here.
|
|
64
|
+
// libuv refreshes stdout.columns/stdout.rows and fires the stdout
|
|
65
|
+
// "resize" event. The host listens for that signal separately, so
|
|
66
|
+
// this source has nothing to deliver here.
|
|
69
67
|
return () => { };
|
|
70
68
|
}
|
|
71
69
|
fanOut(events) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdin-byte-source.js","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"stdin-byte-source.js","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { IBuffer, IBufferCell } from "@xterm/headless";
|
|
2
|
+
export interface VirtualTerminalOptions {
|
|
3
|
+
onOscClipboard?: (data: string) => void;
|
|
4
|
+
}
|
|
2
5
|
/**
|
|
3
6
|
* Wraps `@xterm/headless` so the rest of the host doesn't need to
|
|
4
7
|
* know xterm-specific details. Owns:
|
|
@@ -18,7 +21,8 @@ import type { IBuffer, IBufferCell } from "@xterm/headless";
|
|
|
18
21
|
*/
|
|
19
22
|
export declare class VirtualTerminal {
|
|
20
23
|
private readonly term;
|
|
21
|
-
|
|
24
|
+
private cursorVisibleState;
|
|
25
|
+
constructor(cols: number, rows: number, opts?: VirtualTerminalOptions);
|
|
22
26
|
write(data: string | Uint8Array, callback?: () => void): void;
|
|
23
27
|
resize(cols: number, rows: number): void;
|
|
24
28
|
get cols(): number;
|
|
@@ -31,6 +35,10 @@ export declare class VirtualTerminal {
|
|
|
31
35
|
get cursorY(): number;
|
|
32
36
|
/** True when the alternate buffer is active. */
|
|
33
37
|
get isAlternate(): boolean;
|
|
38
|
+
/** True when the child enabled bracketed paste mode (`CSI ? 2004 h`). */
|
|
39
|
+
get bracketedPaste(): boolean;
|
|
40
|
+
/** True unless the child hid the cursor via DECTCEM (`CSI ?25l`). Default: true. */
|
|
41
|
+
get cursorVisible(): boolean;
|
|
34
42
|
/** Viewport top row index in scrollback coordinates. */
|
|
35
43
|
get viewportY(): number;
|
|
36
44
|
/** Buffer base Y — the row where the live tail begins. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAA6B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"virtual-terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAA6B,MAAM,iBAAiB,CAAC;AAKvF,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;IAkCzE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0DAA0D;IAC1D,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,yEAAyE;IACzE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,oFAAoF;IACpF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wDAAwD;IACxD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,0DAA0D;IAC1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,gFAAgF;IAChF,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,2DAA2D;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,8DAA8D;IAC9D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,8EAA8E;IAC9E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC,uDAAuD;IACvD,WAAW,IAAI,IAAI;IAInB,mDAAmD;IACnD,cAAc,IAAI,IAAI;IAItB,oFAAoF;IACpF,OAAO,IAAI,WAAW;IAItB,OAAO,IAAI,IAAI;CAGhB"}
|