mindweave 3.2.8 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/App.js +410 -38
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/altScreen.js +6 -0
- package/dist/cli/altScreen.js.map +1 -1
- package/dist/cli/blockHeights.js +3 -0
- package/dist/cli/blockHeights.js.map +1 -1
- package/dist/cli/chatAnchor.js +17 -0
- package/dist/cli/chatAnchor.js.map +1 -1
- package/dist/cli/components/BlockView.js +10 -1
- package/dist/cli/components/BlockView.js.map +1 -1
- package/dist/cli/components/FadeText.js +47 -0
- package/dist/cli/components/FadeText.js.map +1 -0
- package/dist/cli/components/KeyManager.js +63 -7
- package/dist/cli/components/KeyManager.js.map +1 -1
- package/dist/cli/components/Picker.js +31 -5
- package/dist/cli/components/Picker.js.map +1 -1
- package/dist/cli/components/PromptInput.js +62 -9
- package/dist/cli/components/PromptInput.js.map +1 -1
- package/dist/cli/components/ToolLine.js +11 -3
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/components/WorkGroup.js +27 -10
- package/dist/cli/components/WorkGroup.js.map +1 -1
- package/dist/cli/diffRows.js +16 -0
- package/dist/cli/diffRows.js.map +1 -1
- package/dist/cli/entrance.js +95 -0
- package/dist/cli/entrance.js.map +1 -0
- package/dist/cli/framebuffer/parse.js +99 -16
- package/dist/cli/framebuffer/parse.js.map +1 -1
- package/dist/cli/framebuffer/writer.js +75 -34
- package/dist/cli/framebuffer/writer.js.map +1 -1
- package/dist/cli/help.js +7 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/messageQueue.js +7 -2
- package/dist/cli/messageQueue.js.map +1 -1
- package/dist/cli/pickerSearch.js +59 -0
- package/dist/cli/pickerSearch.js.map +1 -0
- package/dist/cli/selectionGrow.js +86 -3
- package/dist/cli/selectionGrow.js.map +1 -1
- package/dist/cli/toolDisplay.js +20 -5
- package/dist/cli/toolDisplay.js.map +1 -1
- package/dist/cli/transcript.js +24 -7
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/wheelStep.js +2 -2
- package/dist/cli/workLines.js +26 -7
- package/dist/cli/workLines.js.map +1 -1
- package/dist/core/turnRunner.js +7 -1
- package/dist/core/turnRunner.js.map +1 -1
- package/dist/drivers/anthropic/client.js +16 -3
- package/dist/drivers/anthropic/client.js.map +1 -1
- package/dist/drivers/anthropic/manifest.js +10 -0
- package/dist/drivers/anthropic/manifest.js.map +1 -1
- package/dist/drivers/glm/manifest.js +9 -0
- package/dist/drivers/glm/manifest.js.map +1 -1
- package/dist/drivers/groq/manifest.js +5 -0
- package/dist/drivers/groq/manifest.js.map +1 -1
- package/dist/drivers/mistral/client.js +3 -0
- package/dist/drivers/mistral/client.js.map +1 -1
- package/dist/drivers/openai/client.js +3 -0
- package/dist/drivers/openai/client.js.map +1 -1
- package/dist/drivers/openai/manifest.js +5 -0
- package/dist/drivers/openai/manifest.js.map +1 -1
- package/dist/drivers/openaiCompat/wire.js +7 -2
- package/dist/drivers/openaiCompat/wire.js.map +1 -1
- package/dist/drivers/openrouter/client.js +6 -0
- package/dist/drivers/openrouter/client.js.map +1 -1
- package/dist/drivers/xai/client.js +9 -0
- package/dist/drivers/xai/client.js.map +1 -1
- package/dist/dynamo/contextWindow.js +64 -12
- package/dist/dynamo/contextWindow.js.map +1 -1
- package/dist/dynamo/engine.js +72 -22
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/prompt.js +9 -0
- package/dist/dynamo/prompt.js.map +1 -1
- package/dist/memory/compaction.js +17 -3
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/localCommand.js +165 -0
- package/dist/memory/localCommand.js.map +1 -0
- package/dist/memory/session.js +4 -0
- package/dist/memory/session.js.map +1 -1
- package/dist/memory/store.js +4 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/backgroundShells.js +35 -7
- package/dist/tools/backgroundShells.js.map +1 -1
- package/dist/tools/deferredNative.js +24 -0
- package/dist/tools/deferredNative.js.map +1 -1
- package/dist/tools/detail.js +2 -0
- package/dist/tools/detail.js.map +1 -1
- package/dist/tools/mcpSearch.js +8 -2
- package/dist/tools/mcpSearch.js.map +1 -1
- package/dist/tools/rebuildDetail.js +49 -1
- package/dist/tools/rebuildDetail.js.map +1 -1
- package/dist/tools/registry.js +12 -12
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/runCommand.js +17 -6
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/shellTools.js +10 -23
- package/dist/tools/shellTools.js.map +1 -1
- package/dist/tools/untrusted.js +31 -0
- package/dist/tools/untrusted.js.map +1 -1
- package/dist/tools/userCommand.js +52 -0
- package/dist/tools/userCommand.js.map +1 -0
- package/dist/tools/viewImage.js +14 -2
- package/dist/tools/viewImage.js.map +1 -1
- package/dist/tools/webSearch.js +42 -20
- package/dist/tools/webSearch.js.map +1 -1
- package/package.json +3 -3
package/dist/cli/diffRows.js
CHANGED
|
@@ -109,4 +109,20 @@ export function markChangedWords(rows) {
|
|
|
109
109
|
}
|
|
110
110
|
return marks;
|
|
111
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* A line with its tabs written out as spaces, to the next stop (pure).
|
|
114
|
+
*
|
|
115
|
+
* A tab moves the cursor without painting anything, so in a tinted row it left a hole in the
|
|
116
|
+
* colour wherever code was indented with tabs, and the terminal's idea of the row's width no
|
|
117
|
+
* longer matched the one the layout had measured, which made the right edge of the band ragged
|
|
118
|
+
* and cut lines at the wrong place.
|
|
119
|
+
*/
|
|
120
|
+
export function expandTabs(line, stop = 4) {
|
|
121
|
+
if (!line.includes("\t"))
|
|
122
|
+
return line;
|
|
123
|
+
let out = "";
|
|
124
|
+
for (const ch of line)
|
|
125
|
+
out += ch === "\t" ? " ".repeat(stop - (out.length % stop)) : ch;
|
|
126
|
+
return out;
|
|
127
|
+
}
|
|
112
128
|
//# sourceMappingURL=diffRows.js.map
|
package/dist/cli/diffRows.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffRows.js","sourceRoot":"","sources":["../../src/cli/diffRows.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diffRows.js","sourceRoot":"","sources":["../../src/cli/diffRows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* entrance.ts — how a tool row arrives on screen (pure, apart from one switch).
|
|
3
|
+
*
|
|
4
|
+
* A row used to pop: the dot, the name and the whole result in one frame. The speed is right and
|
|
5
|
+
* stays, and so does the row appearing whole. What was missing is the arrival, the short settling a row
|
|
6
|
+
* does as it takes its place, like a window opening rather than appearing. So a row that is made while you
|
|
7
|
+
* are watching comes up from faint to full over a fraction of a second: the same row, in the same place,
|
|
8
|
+
* drawn more strongly each frame. Nothing is revealed in parts and nothing moves.
|
|
9
|
+
*
|
|
10
|
+
* Only for a row that arrives live, with the view following the bottom. A row scrolled into sight, a
|
|
11
|
+
* resumed chat and a chat read back do not animate: movement there would be the screen changing under
|
|
12
|
+
* the reader, with nothing arriving.
|
|
13
|
+
*/
|
|
14
|
+
/** How long a result takes to come up to full, in milliseconds. */
|
|
15
|
+
export const ENTRANCE_MS = 140;
|
|
16
|
+
/** How long the name takes. */
|
|
17
|
+
export const HEAD_FADE_MS = 140;
|
|
18
|
+
/**
|
|
19
|
+
* Rows already seen, by block id. Kept outside the component because the screen moves a row between two
|
|
20
|
+
* lists as it is measured, which remounts it; an arrival that lived in the component would restart or be
|
|
21
|
+
* lost at the first measurement, a frame after it began. Oldest forgotten past this many.
|
|
22
|
+
*/
|
|
23
|
+
const ARRIVALS_KEPT = 300;
|
|
24
|
+
const arrivals = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* The arrival of the row with this id, created the first time the row is seen and updated when its
|
|
27
|
+
* result lands (pure apart from the store). A row is arriving only if it is first seen while its turn is
|
|
28
|
+
* running and motion is allowed; a row first seen any other way (a resumed chat, a view scrolled back)
|
|
29
|
+
* is recorded as not arriving, so it can never animate later.
|
|
30
|
+
*/
|
|
31
|
+
export function arrivalOf(id, fallback, live, branchShown, now) {
|
|
32
|
+
const mayMove = live && motionAllowed();
|
|
33
|
+
let a = id === undefined ? fallback.current : arrivals.get(id) ?? null;
|
|
34
|
+
if (!a) {
|
|
35
|
+
a = { headFrom: mayMove ? now : null, branchFrom: mayMove && branchShown ? now : null, shown: branchShown };
|
|
36
|
+
if (id === undefined)
|
|
37
|
+
fallback.current = a;
|
|
38
|
+
else {
|
|
39
|
+
arrivals.set(id, a);
|
|
40
|
+
if (arrivals.size > ARRIVALS_KEPT)
|
|
41
|
+
arrivals.delete(arrivals.keys().next().value);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else if (!a.shown && branchShown) {
|
|
45
|
+
if (mayMove)
|
|
46
|
+
a.branchFrom = now;
|
|
47
|
+
a.shown = true;
|
|
48
|
+
}
|
|
49
|
+
return a;
|
|
50
|
+
}
|
|
51
|
+
/** Forget every arrival (a new conversation, and tests). */
|
|
52
|
+
export function forgetArrivals() {
|
|
53
|
+
arrivals.clear();
|
|
54
|
+
}
|
|
55
|
+
/** Set by the screen each frame: false while the view is scrolled back or something covers it. */
|
|
56
|
+
export const motion = { enabled: true };
|
|
57
|
+
/** Whether rows may animate right now. `MINDWEAVE_NO_MOTION=1` turns it off everywhere. */
|
|
58
|
+
export function motionAllowed() {
|
|
59
|
+
return motion.enabled && process.env["MINDWEAVE_NO_MOTION"] !== "1";
|
|
60
|
+
}
|
|
61
|
+
/** 0 at the start, 1 at the end, slowing as it goes: a quick start that settles. */
|
|
62
|
+
export function ease(progress) {
|
|
63
|
+
const t = Math.min(1, Math.max(0, progress));
|
|
64
|
+
return 1 - (1 - t) ** 2;
|
|
65
|
+
}
|
|
66
|
+
/** How far through an animation that began at `start` we are, from 0 to 1. No start means finished. */
|
|
67
|
+
export function progressOf(start, now, durationMs) {
|
|
68
|
+
if (start === null)
|
|
69
|
+
return 1;
|
|
70
|
+
return Math.min(1, Math.max(0, (now - start) / durationMs));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* How faint a row starts. High enough that it never reads as black or as nothing there: a row that begins
|
|
74
|
+
* near the ground looks like a gap that then fills in, which is worse than no animation.
|
|
75
|
+
*/
|
|
76
|
+
const FLOOR = 0.5;
|
|
77
|
+
/** How strongly a row is drawn at `progress`: dimmed to begin with, never close to the ground, full at the end. */
|
|
78
|
+
export function visibilityOf(progress) {
|
|
79
|
+
return progress >= 1 ? 1 : FLOOR + (1 - FLOOR) * ease(progress);
|
|
80
|
+
}
|
|
81
|
+
/** The colour text has when it was given none: what the terminal draws it in on a dark ground. */
|
|
82
|
+
export const DEFAULT_TEXT = "#d8d8d8";
|
|
83
|
+
/** The ground rows are mixed toward, the same dark the working dot fades into. */
|
|
84
|
+
const GROUND = [0x16, 0x1a, 0x18];
|
|
85
|
+
/** A `#rrggbb` colour mixed toward the ground by `visibility` (1 is the colour itself). Anything else is returned as it was. */
|
|
86
|
+
export function fadeHex(color, visibility) {
|
|
87
|
+
const m = /^#([0-9a-f]{6})$/i.exec(color);
|
|
88
|
+
if (!m || visibility >= 1)
|
|
89
|
+
return color;
|
|
90
|
+
const n = parseInt(m[1], 16);
|
|
91
|
+
const v = Math.min(1, Math.max(0, visibility));
|
|
92
|
+
const mix = [(n >> 16) & 255, (n >> 8) & 255, n & 255].map((c, i) => Math.round(GROUND[i] + (c - GROUND[i]) * v));
|
|
93
|
+
return "#" + mix.map((c) => c.toString(16).padStart(2, "0")).join("");
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=entrance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrance.js","sourceRoot":"","sources":["../../src/cli/entrance.ts"],"names":[],"mappings":"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"}
|
|
@@ -150,20 +150,20 @@ function blank(screen, from, to) {
|
|
|
150
150
|
screen.attrs.fill(0, lo, hi);
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
|
-
*
|
|
153
|
+
* Interpret one line of a frame: text and SGR styling, written at the cursor.
|
|
154
154
|
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
155
|
+
* Returns whether the line was PURE: nothing but printable characters and SGR sequences, so that what it
|
|
156
|
+
* leaves in the grid depends only on the line itself, the pen it started with and the grid's width. Only a
|
|
157
|
+
* pure line may be remembered (see `parseFrame`); anything that moves the cursor, erases, or is a control
|
|
158
|
+
* character makes the result depend on more than the text.
|
|
159
159
|
*/
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
let x =
|
|
163
|
-
let y =
|
|
160
|
+
function parseLine(screen, frame, pen, cursor, top) {
|
|
161
|
+
let pure = true;
|
|
162
|
+
let x = cursor.x;
|
|
163
|
+
let y = cursor.y;
|
|
164
164
|
for (let i = 0; i < frame.length;) {
|
|
165
165
|
const ch = frame[i];
|
|
166
|
-
if (ch === "
|
|
166
|
+
if (ch === "\x1b") {
|
|
167
167
|
// CSI: ESC [ params... final-byte
|
|
168
168
|
if (frame[i + 1] === "[") {
|
|
169
169
|
let j = i + 2;
|
|
@@ -182,18 +182,22 @@ export function parseFrame(screen, frame, top = 0) {
|
|
|
182
182
|
applySgr(pen, params);
|
|
183
183
|
}
|
|
184
184
|
else if (final === "H" || final === "f") {
|
|
185
|
+
pure = false;
|
|
185
186
|
// Absolute cursor position, 1-based on the real screen. `top` is where
|
|
186
187
|
// row 0 of this grid sits, so it comes back off to get a grid row.
|
|
187
188
|
y = (params[0] ?? 1) - 1 + top;
|
|
188
189
|
x = (params[1] ?? 1) - 1;
|
|
189
190
|
}
|
|
190
191
|
else if (final === "C") {
|
|
192
|
+
pure = false;
|
|
191
193
|
x += Math.max(1, params[0] ?? 1);
|
|
192
194
|
}
|
|
193
195
|
else if (final === "D") {
|
|
196
|
+
pure = false;
|
|
194
197
|
x = Math.max(0, x - Math.max(1, params[0] ?? 1));
|
|
195
198
|
}
|
|
196
199
|
else if (final === "J") {
|
|
200
|
+
pure = false;
|
|
197
201
|
// Erase display. A real terminal blanks the cells; skipping it left this
|
|
198
202
|
// parser believing text was still there that the terminal had already wiped,
|
|
199
203
|
// which is a difference that only shows up on a resize (the one time the
|
|
@@ -204,6 +208,7 @@ export function parseFrame(screen, frame, top = 0) {
|
|
|
204
208
|
blank(screen, from, to);
|
|
205
209
|
}
|
|
206
210
|
else if (final === "K") {
|
|
211
|
+
pure = false;
|
|
207
212
|
// Erase in line, same three modes but bounded to the current row.
|
|
208
213
|
const mode = params[0] ?? 0;
|
|
209
214
|
const rowStart = y * screen.width;
|
|
@@ -211,10 +216,14 @@ export function parseFrame(screen, frame, top = 0) {
|
|
|
211
216
|
const to = mode === 1 ? rowStart + x + 1 : rowStart + screen.width;
|
|
212
217
|
blank(screen, from, to);
|
|
213
218
|
}
|
|
219
|
+
else {
|
|
220
|
+
pure = false;
|
|
221
|
+
}
|
|
214
222
|
// Every other CSI is skipped whole — see the file header.
|
|
215
223
|
i = j + 1;
|
|
216
224
|
continue;
|
|
217
225
|
}
|
|
226
|
+
pure = false;
|
|
218
227
|
const introducer = frame[i + 1];
|
|
219
228
|
if (introducer === "]" || introducer === "P" || introducer === "X" || introducer === "^" || introducer === "_") {
|
|
220
229
|
// A STRING sequence: OSC, DCS, SOS, PM, APC. What follows the introducer is
|
|
@@ -253,18 +262,14 @@ export function parseFrame(screen, frame, top = 0) {
|
|
|
253
262
|
i = j;
|
|
254
263
|
continue;
|
|
255
264
|
}
|
|
256
|
-
if (ch === "\n") {
|
|
257
|
-
y++;
|
|
258
|
-
x = 0;
|
|
259
|
-
i += 1;
|
|
260
|
-
continue;
|
|
261
|
-
}
|
|
262
265
|
if (ch === "\r") {
|
|
266
|
+
pure = false;
|
|
263
267
|
x = 0;
|
|
264
268
|
i += 1;
|
|
265
269
|
continue;
|
|
266
270
|
}
|
|
267
271
|
if (ch === "\t") {
|
|
272
|
+
pure = false;
|
|
268
273
|
// Tab stops every eight columns. Stamping the tab itself would put a character in
|
|
269
274
|
// the model that `paint` then writes back out, and the terminal would advance the
|
|
270
275
|
// cursor for it — knocking the rest of the row, and everything the diff believes
|
|
@@ -275,6 +280,7 @@ export function parseFrame(screen, frame, top = 0) {
|
|
|
275
280
|
}
|
|
276
281
|
const control = frame.charCodeAt(i);
|
|
277
282
|
if (control < 0x20 || control === 0x7f) {
|
|
283
|
+
pure = false;
|
|
278
284
|
// Every remaining C0 control and DEL. A terminal acts on these; none of them leave
|
|
279
285
|
// a glyph behind, so neither may the model.
|
|
280
286
|
if (control === 0x08)
|
|
@@ -318,5 +324,82 @@ export function parseFrame(screen, frame, top = 0) {
|
|
|
318
324
|
}
|
|
319
325
|
x += w;
|
|
320
326
|
}
|
|
327
|
+
cursor.x = x;
|
|
328
|
+
cursor.y = y;
|
|
329
|
+
return pure;
|
|
330
|
+
}
|
|
331
|
+
/** Remembered lines. Most of a frame is the same lines as the one before it, and reading a line is the cost. */
|
|
332
|
+
const ROW_MEMO_MAX = 800;
|
|
333
|
+
const rowMemo = new Map();
|
|
334
|
+
/**
|
|
335
|
+
* Draw `frame` into `screen`, starting at row `top`.
|
|
336
|
+
*
|
|
337
|
+
* The screen is NOT cleared first — the caller decides that, because a resize
|
|
338
|
+
* wants a clean grid while an ordinary frame is a complete repaint of the rows it
|
|
339
|
+
* covers and clearing would be redundant work. Rows the frame does not reach are
|
|
340
|
+
* left alone.
|
|
341
|
+
*
|
|
342
|
+
* A frame is its lines, and between two frames nearly all of them are the same, so a line that has been
|
|
343
|
+
* read before (same text, same starting pen, same grid width) is copied in from memory instead of being
|
|
344
|
+
* read again. Only lines that are pure (see `parseLine`) are remembered, and the copy writes exactly the
|
|
345
|
+
* cells reading would have written. `memo: false` reads everything, for comparing the two.
|
|
346
|
+
*/
|
|
347
|
+
export function parseFrame(screen, frame, top = 0, memo = true) {
|
|
348
|
+
const pen = { fg: DEFAULT_COLOR, bg: DEFAULT_COLOR, attrs: 0 };
|
|
349
|
+
const cursor = { x: 0, y: top };
|
|
350
|
+
let at = 0;
|
|
351
|
+
for (;;) {
|
|
352
|
+
const nl = frame.indexOf("\n", at);
|
|
353
|
+
const line = nl === -1 ? frame.slice(at) : frame.slice(at, nl);
|
|
354
|
+
if (line !== "")
|
|
355
|
+
readLine(screen, line, pen, cursor, top, memo);
|
|
356
|
+
if (nl === -1)
|
|
357
|
+
return;
|
|
358
|
+
cursor.y++;
|
|
359
|
+
cursor.x = 0;
|
|
360
|
+
at = nl + 1;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
function readLine(screen, line, pen, cursor, top, memo) {
|
|
364
|
+
const y = cursor.y;
|
|
365
|
+
const inRange = y >= 0 && y < screen.height;
|
|
366
|
+
// Only a line read from the start of its row, which is every line of a frame.
|
|
367
|
+
if (!memo || cursor.x !== 0) {
|
|
368
|
+
parseLine(screen, line, pen, cursor, top);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
const key = `${screen.width}\u0001${pen.fg}\u0001${pen.bg}\u0001${pen.attrs}\u0001${line}`;
|
|
372
|
+
const known = rowMemo.get(key);
|
|
373
|
+
if (known) {
|
|
374
|
+
if (inRange) {
|
|
375
|
+
const base = y * screen.width;
|
|
376
|
+
screen.chars.set(known.chars, base);
|
|
377
|
+
screen.fg.set(known.fg, base);
|
|
378
|
+
screen.bg.set(known.bg, base);
|
|
379
|
+
screen.attrs.set(known.attrs, base);
|
|
380
|
+
}
|
|
381
|
+
pen.fg = known.endFg;
|
|
382
|
+
pen.bg = known.endBg;
|
|
383
|
+
pen.attrs = known.endAttrs;
|
|
384
|
+
cursor.x = known.endX;
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
const pure = parseLine(screen, line, pen, cursor, top);
|
|
388
|
+
if (!pure || !inRange || cursor.y !== y)
|
|
389
|
+
return;
|
|
390
|
+
const base = y * screen.width;
|
|
391
|
+
const extent = Math.min(cursor.x, screen.width);
|
|
392
|
+
if (rowMemo.size >= ROW_MEMO_MAX)
|
|
393
|
+
rowMemo.delete(rowMemo.keys().next().value);
|
|
394
|
+
rowMemo.set(key, {
|
|
395
|
+
chars: screen.chars.slice(base, base + extent),
|
|
396
|
+
fg: screen.fg.slice(base, base + extent),
|
|
397
|
+
bg: screen.bg.slice(base, base + extent),
|
|
398
|
+
attrs: screen.attrs.slice(base, base + extent),
|
|
399
|
+
endFg: pen.fg,
|
|
400
|
+
endBg: pen.bg,
|
|
401
|
+
endAttrs: pen.attrs,
|
|
402
|
+
endX: cursor.x,
|
|
403
|
+
});
|
|
321
404
|
}
|
|
322
405
|
//# sourceMappingURL=parse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EACL,IAAI,EACJ,aAAa,EAEb,iBAAiB,EACjB,YAAY,EACZ,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,8DAA8D;AAC9D,SAAS,QAAQ,CAAC,GAAQ;IACxB,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC;IACvB,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC;IACvB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,GAAQ,EAAE,MAAgB;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,+CAA+C;QAC/C,QAAQ,CAAC,GAAG,CAAC,CAAC;QACd,OAAO;IACT,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,CAAC;gBACJ,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM;YACR,KAAK,CAAC;gBACJ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;gBACvB,MAAM;YACR,KAAK,CAAC;gBACJ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC;gBACtB,MAAM;YACR,KAAK,CAAC;gBACJ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;gBACzB,MAAM;YACR,KAAK,CAAC;gBACJ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;gBAC5B,MAAM;YACR,KAAK,CAAC;gBACJ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC1B,MAAM;YACR,KAAK,CAAC;gBACJ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;gBACzB,MAAM;YACR,KAAK,CAAC;gBACJ,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;gBAChC,MAAM;YACR,yEAAyE;YACzE,6EAA6E;YAC7E,4BAA4B;YAC5B,KAAK,EAAE,CAAC;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1B,MAAM;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC7B,MAAM;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3B,MAAM;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1B,MAAM;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACjC,MAAM;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC;gBACvB,MAAM;YACR,KAAK,EAAE;gBACL,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC;gBACvB,MAAM;YACR,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC,CAAC,CAAC;gBACR,oEAAoE;gBACpE,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;oBACvC,IAAI,IAAI;wBAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;;wBAChB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;oBAChB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;qBAAM,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/C,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;oBACnE,IAAI,IAAI;wBAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;;wBAChB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;oBAChB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;qBAAM,CAAC;oBACN,6DAA6D;oBAC7D,kDAAkD;oBAClD,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;gBACD,MAAM;YACR,CAAC;YACD;gBACE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;qBACjD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;qBAC1D,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;qBACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;oBAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;gBAClE,iEAAiE;gBACjE,MAAM;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,KAAK,CAAC,MAAc,EAAE,IAAY,EAAE,EAAU;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,KAAa,EAAE,GAAG,GAAG,CAAC;IAC/D,MAAM,GAAG,GAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACpE,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,GAAG,CAAC;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;QACnC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAErB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,kCAAkC;YAClC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC9B,yEAAyE;oBACzE,sCAAsC;oBACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;wBAAE,MAAM;oBAClC,CAAC,EAAE,CAAC;gBACN,CAAC;gBACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3G,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBAC1C,uEAAuE;oBACvE,mEAAmE;oBACnE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBAC/B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBACzB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnC,CAAC;qBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBACzB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;qBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBACzB,yEAAyE;oBACzE,6EAA6E;oBAC7E,yEAAyE;oBACzE,6EAA6E;oBAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;oBACpE,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBACtG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1B,CAAC;qBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBACzB,kEAAkE;oBAClE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;oBAClC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAClD,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;oBACnE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1B,CAAC;gBACD,0DAA0D;gBAC1D,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC/G,4EAA4E;gBAC5E,2EAA2E;gBAC3E,0EAA0E;gBAC1E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACxB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;wBACxB,CAAC,IAAI,CAAC,CAAC;wBACP,MAAM;oBACR,CAAC;oBACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;wBACjD,CAAC,IAAI,CAAC,CAAC;wBACP,MAAM;oBACR,CAAC;oBACD,CAAC,EAAE,CAAC;gBACN,CAAC;gBACD,CAAC,GAAG,CAAC,CAAC;gBACN,SAAS;YACX,CAAC;YAED,gFAAgF;YAChF,8EAA8E;YAC9E,mEAAmE;YACnE,EAAE;YACF,kFAAkF;YAClF,gFAAgF;YAChF,mFAAmF;YACnF,iFAAiF;YACjF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC,EAAE,CAAC;gBACJ,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI;oBAAE,MAAM;YAClC,CAAC;YACD,CAAC,GAAG,CAAC,CAAC;YACN,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,CAAC,EAAE,CAAC;YACJ,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,kFAAkF;YAClF,kFAAkF;YAClF,iFAAiF;YACjF,8BAA8B;YAC9B,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,GAAG,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACvC,mFAAmF;YACnF,4CAA4C;YAC5C,IAAI,OAAO,KAAK,IAAI;gBAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QAED,gFAAgF;QAChF,8EAA8E;QAC9E,sBAAsB;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,IAAI,IAAI,CAAC;QAEV,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,6EAA6E;YAC7E,kDAAkD;YAClD,SAAS;QACX,CAAC;QAED,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/B,kFAAkF;QAClF,qFAAqF;QACrF,sFAAsF;QACtF,sFAAsF;QACtF,gFAAgF;QAChF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YAC7B,8EAA8E;YAC9E,2EAA2E;YAC3E,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC;gBACvC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YACjC,CAAC;QACH,CAAC;QACD,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,6 +103,21 @@ const IDLE_REPAINT_MS = 400;
|
|
|
103
103
|
* that flips screen modes, which has no access to it.
|
|
104
104
|
*/
|
|
105
105
|
let enabled = true;
|
|
106
|
+
/**
|
|
107
|
+
* Whether the screen has been handed back for good.
|
|
108
|
+
*
|
|
109
|
+
* Set by the exit path once the alternate screen has been left. Everything written after
|
|
110
|
+
* that point would land in the user's own terminal, not in the buffer this app drew in:
|
|
111
|
+
* Ink's exit hook runs AFTER ours and flushes a pending frame and renders a last one, and
|
|
112
|
+
* each of those was written into the shell, leaving the whole conversation, the input box
|
|
113
|
+
* and an open menu printed over the scrollback, with the shell's prompt on top of them.
|
|
114
|
+
* Once closed, nothing more reaches the terminal through this stream.
|
|
115
|
+
*/
|
|
116
|
+
let closed = false;
|
|
117
|
+
/** Stop (or, for tests, resume) writing to the terminal. See `closed`. */
|
|
118
|
+
export function setFramebufferClosed(on) {
|
|
119
|
+
closed = on;
|
|
120
|
+
}
|
|
106
121
|
/**
|
|
107
122
|
* Set to force the NEXT frame to repaint every cell, not just the diff.
|
|
108
123
|
*
|
|
@@ -177,6 +192,14 @@ function caretTail() {
|
|
|
177
192
|
return cell ? parkAt(cell) : HIDE;
|
|
178
193
|
}
|
|
179
194
|
export function framebufferStdout(real, onFrame) {
|
|
195
|
+
/** Every write to the real stream goes through here, so closing it stops all of them. */
|
|
196
|
+
const send = (data, callback) => {
|
|
197
|
+
if (closed) {
|
|
198
|
+
callback?.(null);
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
return real.write(data, callback);
|
|
202
|
+
};
|
|
180
203
|
// The grid currently on the terminal, and the one being built for this frame. Two
|
|
181
204
|
// long-lived buffers, swapped — never reallocated per frame, which is the whole
|
|
182
205
|
// reason the cell data is in typed arrays.
|
|
@@ -211,6 +234,12 @@ export function framebufferStdout(real, onFrame) {
|
|
|
211
234
|
/** When every cell was last written, which is what bounds how long a disagreement
|
|
212
235
|
* with the real terminal can survive. */
|
|
213
236
|
let lastFull = 0;
|
|
237
|
+
/**
|
|
238
|
+
* The body of the last frame that was painted onto a clean screen, or null when the screen may no
|
|
239
|
+
* longer show it (anything repainted it, or a selection tinted it). A frame with the same body has
|
|
240
|
+
* nothing to parse or diff: it would change no cell.
|
|
241
|
+
*/
|
|
242
|
+
let lastBody = null;
|
|
214
243
|
/** The pending after-the-burst repaint, cancelled and re-armed by each frame. */
|
|
215
244
|
let idle;
|
|
216
245
|
/**
|
|
@@ -263,6 +292,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
263
292
|
function invalidate() {
|
|
264
293
|
onScreen.invalidate();
|
|
265
294
|
lastFull = Date.now();
|
|
295
|
+
lastBody = null;
|
|
266
296
|
}
|
|
267
297
|
// Coming back from the inline shell: the terminal has been scrolling and printing on
|
|
268
298
|
// its own, so nothing the model believes about the screen is still true. Forget all of
|
|
@@ -343,7 +373,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
343
373
|
lastShown = lastCursor;
|
|
344
374
|
const painted = escape === "" ? lastCursor : SYNC_START + escape + lastCursor + SYNC_END;
|
|
345
375
|
if (painted !== "")
|
|
346
|
-
|
|
376
|
+
send(painted);
|
|
347
377
|
}
|
|
348
378
|
/**
|
|
349
379
|
* Re-tint the frame already on screen and write the difference.
|
|
@@ -376,6 +406,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
376
406
|
clean.copyFrom(onScreen);
|
|
377
407
|
cleanValid = true;
|
|
378
408
|
}
|
|
409
|
+
lastBody = null;
|
|
379
410
|
pending.copyFrom(clean);
|
|
380
411
|
applyFrameOverlay(pending);
|
|
381
412
|
const escape = paint(onScreen, pending, 1);
|
|
@@ -395,7 +426,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
395
426
|
lastShown = lastCursor;
|
|
396
427
|
const painted = escape === "" ? lastCursor : SYNC_START + escape + lastCursor + SYNC_END;
|
|
397
428
|
if (painted !== "")
|
|
398
|
-
|
|
429
|
+
send(painted);
|
|
399
430
|
}
|
|
400
431
|
setOverlayRepaint(refreshOverlay);
|
|
401
432
|
/**
|
|
@@ -428,7 +459,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
428
459
|
return;
|
|
429
460
|
lastShown = parked;
|
|
430
461
|
lastCursor = parked;
|
|
431
|
-
|
|
462
|
+
send(parked);
|
|
432
463
|
});
|
|
433
464
|
});
|
|
434
465
|
/** Arm the after-the-burst repaint. Unref'd: a screen touch-up must never be the
|
|
@@ -490,7 +521,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
490
521
|
// Only writes that carry cells — a bare control sequence is not a frame.
|
|
491
522
|
if (data.replace(ANY_ESCAPE, "").trim() !== "")
|
|
492
523
|
lastFrameData = data;
|
|
493
|
-
return
|
|
524
|
+
return send(data, callback);
|
|
494
525
|
}
|
|
495
526
|
// A write that is NOTHING BUT AN ERASE. Swallowed, and this is the whole reason a
|
|
496
527
|
// narrowing resize used to flicker.
|
|
@@ -523,7 +554,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
523
554
|
// hidden, and frames wrapped in synchronized-update markers, none of which we may
|
|
524
555
|
// swallow.
|
|
525
556
|
if (bare === "")
|
|
526
|
-
return
|
|
557
|
+
return send(data, callback);
|
|
527
558
|
// Escapes plus nothing but CONTROL characters — in practice a stray newline.
|
|
528
559
|
//
|
|
529
560
|
// This used to pass through with the case above, because the test trimmed before
|
|
@@ -555,38 +586,48 @@ export function framebufferStdout(real, onFrame) {
|
|
|
555
586
|
return true;
|
|
556
587
|
}
|
|
557
588
|
heldFrame = null;
|
|
558
|
-
|
|
589
|
+
const invalidated = syncSize() || repaintRequested || Date.now() - lastFull >= repaintEvery;
|
|
590
|
+
if (invalidated)
|
|
559
591
|
invalidate();
|
|
560
592
|
repaintRequested = false;
|
|
561
|
-
//
|
|
562
|
-
//
|
|
563
|
-
//
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
593
|
+
// The same picture as the one already drawn: nothing to parse and nothing to diff. In the
|
|
594
|
+
// full-screen layout Ink repeats a frame it has already written, so a screen that is not
|
|
595
|
+
// changing still arrives as a frame many times a second, and most of the work of a frame is
|
|
596
|
+
// reading it. Never with a selection showing, which tints the screen on top of the frame.
|
|
597
|
+
const same = !invalidated && lastBody === body && !hasFrameOverlay();
|
|
598
|
+
let escape = "";
|
|
599
|
+
if (!same) {
|
|
600
|
+
// Build the new frame. Cleared first because a frame is a complete statement
|
|
601
|
+
// about the rows it covers: a line that got shorter must leave blanks behind,
|
|
602
|
+
// not the tail of what used to be there.
|
|
603
|
+
pending.clear();
|
|
604
|
+
parseFrame(pending, body);
|
|
605
|
+
// A selection highlight is added HERE, to the finished frame, and never reaches
|
|
606
|
+
// React. `clean` keeps the untinted frame so the highlight can be moved without a
|
|
607
|
+
// re-render (see `refreshOverlay`); it is only maintained while something is
|
|
608
|
+
// actually tinting, so a session that never drags pays nothing for it.
|
|
609
|
+
if (hasFrameOverlay()) {
|
|
610
|
+
if (clean.width !== pending.width || clean.height !== pending.height) {
|
|
611
|
+
clean.resize(pending.width, pending.height);
|
|
612
|
+
}
|
|
613
|
+
clean.copyFrom(pending);
|
|
614
|
+
cleanValid = true;
|
|
615
|
+
applyFrameOverlay(pending);
|
|
573
616
|
}
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
617
|
+
else {
|
|
618
|
+
cleanValid = false;
|
|
619
|
+
}
|
|
620
|
+
escape = paint(onScreen, pending, 1);
|
|
621
|
+
// Swap rather than copy. Both grids are the same shape and `pending` is fully
|
|
622
|
+
// rewritten at the start of every frame, so the old on-screen grid is free to
|
|
623
|
+
// become the next scratch buffer — no allocation, no memcpy.
|
|
624
|
+
const previous = onScreen;
|
|
625
|
+
onScreen = pending;
|
|
626
|
+
pending = previous;
|
|
627
|
+
publishScreen(onScreen);
|
|
628
|
+
lastBody = hasFrameOverlay() ? null : body;
|
|
580
629
|
}
|
|
581
|
-
|
|
582
|
-
// Swap rather than copy. Both grids are the same shape and `pending` is fully
|
|
583
|
-
// rewritten at the start of every frame, so the old on-screen grid is free to
|
|
584
|
-
// become the next scratch buffer — no allocation, no memcpy.
|
|
585
|
-
const previous = onScreen;
|
|
586
|
-
onScreen = pending;
|
|
587
|
-
pending = previous;
|
|
588
|
-
publishScreen(onScreen);
|
|
589
|
-
onFrame?.({ inBytes: data.length, outBytes: escape.length });
|
|
630
|
+
onFrame?.({ inBytes: data.length, outBytes: escape.length, unchanged: same });
|
|
590
631
|
// Put the screen beyond doubt once this burst of frames stops. During a burst it
|
|
591
632
|
// is only ever cancelled and re-armed, so it costs nothing until things settle.
|
|
592
633
|
armIdleRepaint();
|
|
@@ -616,7 +657,7 @@ export function framebufferStdout(real, onFrame) {
|
|
|
616
657
|
callback?.(null);
|
|
617
658
|
return true;
|
|
618
659
|
}
|
|
619
|
-
return
|
|
660
|
+
return send(out, callback);
|
|
620
661
|
};
|
|
621
662
|
return new Proxy(real, {
|
|
622
663
|
get(target, prop, receiver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/writer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/writer.ts"],"names":[],"mappings":"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"}
|