@vybestack/llxprt-code-core 0.5.0-nightly.251126.fea76aebd → 0.5.0-nightly.251127.ec44835c5

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.
@@ -1,28 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import type { Terminal } from '@xterm/headless';
7
- export interface AnsiToken {
8
- text: string;
9
- bold: boolean;
10
- italic: boolean;
11
- underline: boolean;
12
- dim: boolean;
13
- inverse: boolean;
14
- fg: string;
15
- bg: string;
16
- }
17
- export type AnsiLine = AnsiToken[];
18
- export type AnsiOutput = AnsiLine[];
19
- export declare const enum ColorMode {
20
- DEFAULT = 0,
21
- PALETTE = 1,
22
- RGB = 2
23
- }
24
- export declare function serializeTerminalToObject(terminal: Terminal, options?: {
25
- defaultFg?: string;
26
- defaultBg?: string;
27
- }): AnsiOutput;
28
- export declare function convertColorToHex(color: number, colorMode: ColorMode, defaultColor: string): string;
@@ -1,418 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- class Cell {
7
- cell;
8
- x;
9
- y;
10
- cursorX;
11
- cursorY;
12
- attributes = 0;
13
- fg = 0;
14
- bg = 0;
15
- fgColorMode = 0 /* ColorMode.DEFAULT */;
16
- bgColorMode = 0 /* ColorMode.DEFAULT */;
17
- constructor(cell, x, y, cursorX, cursorY) {
18
- this.cell = cell;
19
- this.x = x;
20
- this.y = y;
21
- this.cursorX = cursorX;
22
- this.cursorY = cursorY;
23
- if (!cell) {
24
- return;
25
- }
26
- if (cell.isInverse()) {
27
- this.attributes += 1 /* Attribute.inverse */;
28
- }
29
- if (cell.isBold()) {
30
- this.attributes += 2 /* Attribute.bold */;
31
- }
32
- if (cell.isItalic()) {
33
- this.attributes += 4 /* Attribute.italic */;
34
- }
35
- if (cell.isUnderline()) {
36
- this.attributes += 8 /* Attribute.underline */;
37
- }
38
- if (cell.isDim()) {
39
- this.attributes += 16 /* Attribute.dim */;
40
- }
41
- if (cell.isFgRGB()) {
42
- this.fgColorMode = 2 /* ColorMode.RGB */;
43
- }
44
- else if (cell.isFgPalette()) {
45
- this.fgColorMode = 1 /* ColorMode.PALETTE */;
46
- }
47
- else {
48
- this.fgColorMode = 0 /* ColorMode.DEFAULT */;
49
- }
50
- if (cell.isBgRGB()) {
51
- this.bgColorMode = 2 /* ColorMode.RGB */;
52
- }
53
- else if (cell.isBgPalette()) {
54
- this.bgColorMode = 1 /* ColorMode.PALETTE */;
55
- }
56
- else {
57
- this.bgColorMode = 0 /* ColorMode.DEFAULT */;
58
- }
59
- if (this.fgColorMode === 0 /* ColorMode.DEFAULT */) {
60
- this.fg = -1;
61
- }
62
- else {
63
- this.fg = cell.getFgColor();
64
- }
65
- if (this.bgColorMode === 0 /* ColorMode.DEFAULT */) {
66
- this.bg = -1;
67
- }
68
- else {
69
- this.bg = cell.getBgColor();
70
- }
71
- }
72
- isCursor() {
73
- return this.x === this.cursorX && this.y === this.cursorY;
74
- }
75
- getChars() {
76
- return this.cell?.getChars() || ' ';
77
- }
78
- isAttribute(attribute) {
79
- return (this.attributes & attribute) !== 0;
80
- }
81
- equals(other) {
82
- return (this.attributes === other.attributes &&
83
- this.fg === other.fg &&
84
- this.bg === other.bg &&
85
- this.fgColorMode === other.fgColorMode &&
86
- this.bgColorMode === other.bgColorMode &&
87
- this.isCursor() === other.isCursor());
88
- }
89
- }
90
- export function serializeTerminalToObject(terminal, options) {
91
- const buffer = terminal.buffer.active;
92
- const cursorX = buffer.cursorX;
93
- const cursorY = buffer.cursorY;
94
- const defaultFg = options?.defaultFg ?? '#ffffff';
95
- const defaultBg = options?.defaultBg ?? '#000000';
96
- const result = [];
97
- for (let y = 0; y < terminal.rows; y++) {
98
- const line = buffer.getLine(buffer.viewportY + y);
99
- const currentLine = [];
100
- if (!line) {
101
- result.push(currentLine);
102
- continue;
103
- }
104
- let lastCell = new Cell(null, -1, -1, cursorX, cursorY);
105
- let currentText = '';
106
- for (let x = 0; x < terminal.cols; x++) {
107
- const cellData = line.getCell(x);
108
- const cell = new Cell(cellData || null, x, y, cursorX, cursorY);
109
- if (x > 0 && !cell.equals(lastCell)) {
110
- if (currentText) {
111
- const token = {
112
- text: currentText,
113
- bold: lastCell.isAttribute(2 /* Attribute.bold */),
114
- italic: lastCell.isAttribute(4 /* Attribute.italic */),
115
- underline: lastCell.isAttribute(8 /* Attribute.underline */),
116
- dim: lastCell.isAttribute(16 /* Attribute.dim */),
117
- inverse: lastCell.isAttribute(1 /* Attribute.inverse */) || lastCell.isCursor(),
118
- fg: convertColorToHex(lastCell.fg, lastCell.fgColorMode, defaultFg),
119
- bg: convertColorToHex(lastCell.bg, lastCell.bgColorMode, defaultBg),
120
- };
121
- currentLine.push(token);
122
- }
123
- currentText = '';
124
- }
125
- currentText += cell.getChars();
126
- lastCell = cell;
127
- }
128
- if (currentText) {
129
- const token = {
130
- text: currentText,
131
- bold: lastCell.isAttribute(2 /* Attribute.bold */),
132
- italic: lastCell.isAttribute(4 /* Attribute.italic */),
133
- underline: lastCell.isAttribute(8 /* Attribute.underline */),
134
- dim: lastCell.isAttribute(16 /* Attribute.dim */),
135
- inverse: lastCell.isAttribute(1 /* Attribute.inverse */) || lastCell.isCursor(),
136
- fg: convertColorToHex(lastCell.fg, lastCell.fgColorMode, defaultFg),
137
- bg: convertColorToHex(lastCell.bg, lastCell.bgColorMode, defaultBg),
138
- };
139
- currentLine.push(token);
140
- }
141
- result.push(currentLine);
142
- }
143
- return result;
144
- }
145
- // ANSI color palette from https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
146
- const ANSI_COLORS = [
147
- '#000000',
148
- '#800000',
149
- '#008000',
150
- '#808000',
151
- '#000080',
152
- '#800080',
153
- '#008080',
154
- '#c0c0c0',
155
- '#808080',
156
- '#ff0000',
157
- '#00ff00',
158
- '#ffff00',
159
- '#0000ff',
160
- '#ff00ff',
161
- '#00ffff',
162
- '#ffffff',
163
- '#000000',
164
- '#00005f',
165
- '#000087',
166
- '#0000af',
167
- '#0000d7',
168
- '#0000ff',
169
- '#005f00',
170
- '#005f5f',
171
- '#005f87',
172
- '#005faf',
173
- '#005fd7',
174
- '#005fff',
175
- '#008700',
176
- '#00875f',
177
- '#008787',
178
- '#0087af',
179
- '#0087d7',
180
- '#0087ff',
181
- '#00af00',
182
- '#00af5f',
183
- '#00af87',
184
- '#00afaf',
185
- '#00afd7',
186
- '#00afff',
187
- '#00d700',
188
- '#00d75f',
189
- '#00d787',
190
- '#00d7af',
191
- '#00d7d7',
192
- '#00d7ff',
193
- '#00ff00',
194
- '#00ff5f',
195
- '#00ff87',
196
- '#00ffaf',
197
- '#00ffd7',
198
- '#00ffff',
199
- '#5f0000',
200
- '#5f005f',
201
- '#5f0087',
202
- '#5f00af',
203
- '#5f00d7',
204
- '#5f00ff',
205
- '#5f5f00',
206
- '#5f5f5f',
207
- '#5f5f87',
208
- '#5f5faf',
209
- '#5f5fd7',
210
- '#5f5fff',
211
- '#5f8700',
212
- '#5f875f',
213
- '#5f8787',
214
- '#5f87af',
215
- '#5f87d7',
216
- '#5f87ff',
217
- '#5faf00',
218
- '#5faf5f',
219
- '#5faf87',
220
- '#5fafaf',
221
- '#5fafd7',
222
- '#5fafff',
223
- '#5fd700',
224
- '#5fd75f',
225
- '#5fd787',
226
- '#5fd7af',
227
- '#5fd7d7',
228
- '#5fd7ff',
229
- '#5fff00',
230
- '#5fff5f',
231
- '#5fff87',
232
- '#5fffaf',
233
- '#5fffd7',
234
- '#5fffff',
235
- '#870000',
236
- '#87005f',
237
- '#870087',
238
- '#8700af',
239
- '#8700d7',
240
- '#8700ff',
241
- '#875f00',
242
- '#875f5f',
243
- '#875f87',
244
- '#875faf',
245
- '#875fd7',
246
- '#875fff',
247
- '#878700',
248
- '#87875f',
249
- '#878787',
250
- '#8787af',
251
- '#8787d7',
252
- '#8787ff',
253
- '#87af00',
254
- '#87af5f',
255
- '#87af87',
256
- '#87afaf',
257
- '#87afd7',
258
- '#87afff',
259
- '#87d700',
260
- '#87d75f',
261
- '#87d787',
262
- '#87d7af',
263
- '#87d7d7',
264
- '#87d7ff',
265
- '#87ff00',
266
- '#87ff5f',
267
- '#87ff87',
268
- '#87ffaf',
269
- '#87ffd7',
270
- '#87ffff',
271
- '#af0000',
272
- '#af005f',
273
- '#af0087',
274
- '#af00af',
275
- '#af00d7',
276
- '#af00ff',
277
- '#af5f00',
278
- '#af5f5f',
279
- '#af5f87',
280
- '#af5faf',
281
- '#af5fd7',
282
- '#af5fff',
283
- '#af8700',
284
- '#af875f',
285
- '#af8787',
286
- '#af87af',
287
- '#af87d7',
288
- '#af87ff',
289
- '#afaf00',
290
- '#afaf5f',
291
- '#afaf87',
292
- '#afafaf',
293
- '#afafd7',
294
- '#afafff',
295
- '#afd700',
296
- '#afd75f',
297
- '#afd787',
298
- '#afd7af',
299
- '#afd7d7',
300
- '#afd7ff',
301
- '#afff00',
302
- '#afff5f',
303
- '#afff87',
304
- '#afffaf',
305
- '#afffd7',
306
- '#afffff',
307
- '#d70000',
308
- '#d7005f',
309
- '#d70087',
310
- '#d700af',
311
- '#d700d7',
312
- '#d700ff',
313
- '#d75f00',
314
- '#d75f5f',
315
- '#d75f87',
316
- '#d75faf',
317
- '#d75fd7',
318
- '#d75fff',
319
- '#d78700',
320
- '#d7875f',
321
- '#d78787',
322
- '#d787af',
323
- '#d787d7',
324
- '#d787ff',
325
- '#d7af00',
326
- '#d7af5f',
327
- '#d7af87',
328
- '#d7afaf',
329
- '#d7afd7',
330
- '#d7afff',
331
- '#d7d700',
332
- '#d7d75f',
333
- '#d7d787',
334
- '#d7d7af',
335
- '#d7d7d7',
336
- '#d7d7ff',
337
- '#d7ff00',
338
- '#d7ff5f',
339
- '#d7ff87',
340
- '#d7ffaf',
341
- '#d7ffd7',
342
- '#d7ffff',
343
- '#ff0000',
344
- '#ff005f',
345
- '#ff0087',
346
- '#ff00af',
347
- '#ff00d7',
348
- '#ff00ff',
349
- '#ff5f00',
350
- '#ff5f5f',
351
- '#ff5f87',
352
- '#ff5faf',
353
- '#ff5fd7',
354
- '#ff5fff',
355
- '#ff8700',
356
- '#ff875f',
357
- '#ff8787',
358
- '#ff87af',
359
- '#ff87d7',
360
- '#ff87ff',
361
- '#ffaf00',
362
- '#ffaf5f',
363
- '#ffaf87',
364
- '#ffafaf',
365
- '#ffafd7',
366
- '#ffafff',
367
- '#ffd700',
368
- '#ffd75f',
369
- '#ffd787',
370
- '#ffd7af',
371
- '#ffd7d7',
372
- '#ffd7ff',
373
- '#ffff00',
374
- '#ffff5f',
375
- '#ffff87',
376
- '#ffffaf',
377
- '#ffffd7',
378
- '#ffffff',
379
- '#080808',
380
- '#121212',
381
- '#1c1c1c',
382
- '#262626',
383
- '#303030',
384
- '#3a3a3a',
385
- '#444444',
386
- '#4e4e4e',
387
- '#585858',
388
- '#626262',
389
- '#6c6c6c',
390
- '#767676',
391
- '#808080',
392
- '#8a8a8a',
393
- '#949494',
394
- '#9e9e9e',
395
- '#a8a8a8',
396
- '#b2b2b2',
397
- '#bcbcbc',
398
- '#c6c6c6',
399
- '#d0d0d0',
400
- '#dadada',
401
- '#e4e4e4',
402
- '#eeeeee',
403
- ];
404
- export function convertColorToHex(color, colorMode, defaultColor) {
405
- if (colorMode === 2 /* ColorMode.RGB */) {
406
- const r = (color >> 16) & 255;
407
- const g = (color >> 8) & 255;
408
- const b = color & 255;
409
- return `#${r.toString(16).padStart(2, '0')}${g
410
- .toString(16)
411
- .padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;
412
- }
413
- if (colorMode === 1 /* ColorMode.PALETTE */) {
414
- return ANSI_COLORS[color] || defaultColor;
415
- }
416
- return defaultColor;
417
- }
418
- //# sourceMappingURL=terminalSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminalSerializer.js","sourceRoot":"","sources":["../../../src/utils/terminalSerializer.ts"],"names":[],"mappings":"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AAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,SAAoB,EACpB,YAAoB;IAEpB,IAAI,SAAS,0BAAkB,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QAC7B,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;QACtB,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;aAC3C,QAAQ,CAAC,EAAE,CAAC;aACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,SAAS,8BAAsB,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC;IAC5C,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}