@simon_he/vue-tui 0.0.6 → 0.0.8
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 +145 -470
- package/dist/experimental.cjs +8847 -0
- package/dist/experimental.d.ts +825 -0
- package/dist/experimental.js +7475 -0
- package/dist/index.cjs +7695 -4695
- package/dist/index.d.ts +396 -164
- package/dist/index.js +6086 -4232
- package/dist/markdown.cjs +20560 -0
- package/dist/markdown.d.ts +112 -0
- package/dist/markdown.js +1581 -0
- package/dist/path-suggest-BeV6n7m-.js +3 -0
- package/dist/sgr-Tko2EQ0U.js +484 -0
- package/dist/theme-Bsm65g8k.d.ts +32 -0
- package/dist/types-ClIV2h1o.d.ts +103 -0
- package/dist/wheel-scroll-CiNsasLf.js +825 -0
- package/package.json +83 -45
- package/dist/path-suggest-DIMby3r0.js +0 -3
- /package/dist/{path-suggest-CZQYJIIg.js → path-suggest-DmrmeueH.js} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,99 +1,11 @@
|
|
|
1
|
+
import { AnsiColorName, BufferSnapshot, Cell, Style, TERMINAL_RENDER_PLANES, Terminal, TerminalCommitEvent, TerminalEventMap, TerminalRenderPlane, TerminalRenderPlanes, TerminalResizeEvent, TerminalScrollOperation, ThemeModeId } from "./types-ClIV2h1o.js";
|
|
2
|
+
import { TuiMarkdownTheme, TuiMarkdownThemeOverrides } from "./theme-Bsm65g8k.js";
|
|
1
3
|
import * as vue15 from "vue";
|
|
2
4
|
import * as vue16 from "vue";
|
|
3
5
|
import { App, Component as Component$1, ComputedRef, InjectionKey, Ref, VNode } from "vue";
|
|
4
6
|
|
|
5
|
-
//#region src/core/render-plane.d.ts
|
|
6
|
-
declare const TERMINAL_RENDER_PLANES: readonly ["default", "transcript", "chrome", "overlay"];
|
|
7
|
-
type TerminalRenderPlane = (typeof TERMINAL_RENDER_PLANES)[number];
|
|
8
|
-
type TerminalRenderPlanes = readonly TerminalRenderPlane[];
|
|
9
|
-
|
|
10
|
-
//#endregion
|
|
11
|
-
//#region src/core/types.d.ts
|
|
12
|
-
type AnsiColorName = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'blackBright' | 'redBright' | 'greenBright' | 'yellowBright' | 'blueBright' | 'magentaBright' | 'cyanBright' | 'whiteBright';
|
|
13
|
-
type Style = Readonly<{
|
|
14
|
-
fg?: AnsiColorName;
|
|
15
|
-
bg?: AnsiColorName;
|
|
16
|
-
bold?: boolean;
|
|
17
|
-
dim?: boolean;
|
|
18
|
-
italic?: boolean;
|
|
19
|
-
underline?: boolean;
|
|
20
|
-
inverse?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Optional terminal hyperlink target (OSC 8).
|
|
23
|
-
* When set, renderers may emit a clickable hyperlink while keeping text width unchanged.
|
|
24
|
-
*/
|
|
25
|
-
href?: string;
|
|
26
|
-
}>;
|
|
27
|
-
type Cell = Readonly<{
|
|
28
|
-
ch: string;
|
|
29
|
-
width: 1 | 2;
|
|
30
|
-
continuation?: true;
|
|
31
|
-
style: Style;
|
|
32
|
-
}>;
|
|
33
|
-
type BufferSnapshot = Readonly<{
|
|
34
|
-
cols: number;
|
|
35
|
-
rows: number;
|
|
36
|
-
lines: readonly string[];
|
|
37
|
-
}>;
|
|
38
|
-
type TerminalSize = Readonly<{
|
|
39
|
-
cols: number;
|
|
40
|
-
rows: number;
|
|
41
|
-
}>;
|
|
42
|
-
type TerminalScrollOperation = Readonly<{
|
|
43
|
-
startY: number;
|
|
44
|
-
endY: number;
|
|
45
|
-
delta: number;
|
|
46
|
-
}>;
|
|
47
|
-
type TerminalCommitEvent = Readonly<{
|
|
48
|
-
dirtyRows: readonly number[] | null;
|
|
49
|
-
planes: TerminalRenderPlanes | null;
|
|
50
|
-
sync?: boolean;
|
|
51
|
-
scrollOperations?: readonly TerminalScrollOperation[] | null;
|
|
52
|
-
}>;
|
|
53
|
-
type TerminalResizeEvent = Readonly<{
|
|
54
|
-
cols: number;
|
|
55
|
-
rows: number;
|
|
56
|
-
}>;
|
|
57
|
-
interface TerminalEventMap {
|
|
58
|
-
commit: TerminalCommitEvent;
|
|
59
|
-
resize: TerminalResizeEvent;
|
|
60
|
-
}
|
|
61
|
-
interface Terminal {
|
|
62
|
-
resize: (cols: number, rows: number) => void;
|
|
63
|
-
clear: (x?: number, y?: number, w?: number, h?: number) => void;
|
|
64
|
-
write: (text: string, opts?: {
|
|
65
|
-
x?: number;
|
|
66
|
-
y?: number;
|
|
67
|
-
style?: Style;
|
|
68
|
-
}) => void;
|
|
69
|
-
writeAnsi: (text: string, opts?: {
|
|
70
|
-
x?: number;
|
|
71
|
-
y?: number;
|
|
72
|
-
}) => void;
|
|
73
|
-
put: (x: number, y: number, ch: string, style?: Style) => void;
|
|
74
|
-
fill: (x: number, y: number, w: number, h: number, ch?: string, style?: Style) => void;
|
|
75
|
-
scroll: (lines: number) => void;
|
|
76
|
-
setCursor: (x: number, y: number, visible?: boolean) => void;
|
|
77
|
-
batch: <T>(fn: () => T) => T;
|
|
78
|
-
commit: (meta?: {
|
|
79
|
-
planes?: TerminalRenderPlanes | null;
|
|
80
|
-
sync?: boolean;
|
|
81
|
-
}) => readonly number[] | null;
|
|
82
|
-
on: <K extends keyof TerminalEventMap>(event: K, cb: (payload: TerminalEventMap[K]) => void) => () => void;
|
|
83
|
-
dispose: () => void;
|
|
84
|
-
size: () => TerminalSize;
|
|
85
|
-
snapshot: () => BufferSnapshot;
|
|
86
|
-
getCell: (x: number, y: number) => Cell;
|
|
87
|
-
getRow: (y: number) => readonly Cell[];
|
|
88
|
-
setScrollbackLimit: (limit: number) => void;
|
|
89
|
-
getScrollbackLines: (count?: number) => readonly string[];
|
|
90
|
-
/** Register fingerprint function for SoA pre-computation on the composite buffer. */
|
|
91
|
-
setFingerprintFn: (fn: (ch: string, style: Style) => number) => void;
|
|
92
|
-
/** Get pre-computed fingerprints for a composite buffer row (null if not enabled). */
|
|
93
|
-
getRowFingerprints: (y: number) => Uint32Array | null;
|
|
94
|
-
} //#endregion
|
|
95
7
|
//#region src/core/ansi/colors.d.ts
|
|
96
|
-
type TerminalColorMode =
|
|
8
|
+
type TerminalColorMode = "ansi8" | "ansi16" | "ansi256" | "truecolor";
|
|
97
9
|
type TerminalColorLevel = 8 | 16 | 256;
|
|
98
10
|
type AnsiRgb = Readonly<{
|
|
99
11
|
r: number;
|
|
@@ -103,9 +15,7 @@ type AnsiRgb = Readonly<{
|
|
|
103
15
|
declare const SGR_RESET = "\u001B[0m";
|
|
104
16
|
declare function truecolorFgOpen(rgb: AnsiRgb): string;
|
|
105
17
|
declare function truecolorBgOpen(rgb: AnsiRgb): string;
|
|
106
|
-
declare function rgbToAnsi256(rgb: AnsiRgb): number;
|
|
107
|
-
|
|
108
|
-
//#endregion
|
|
18
|
+
declare function rgbToAnsi256(rgb: AnsiRgb): number; //#endregion
|
|
109
19
|
//#region src/ansi-styles.d.ts
|
|
110
20
|
declare const ansiStyles: Readonly<{
|
|
111
21
|
reset: Readonly<{
|
|
@@ -307,7 +217,7 @@ declare function ansiColors(level: 8 | 16 | 256): readonly Readonly<{
|
|
|
307
217
|
}>[]; //#endregion
|
|
308
218
|
//#region src/events/recording.d.ts
|
|
309
219
|
type TerminalEventRecord = Readonly<{
|
|
310
|
-
type:
|
|
220
|
+
type: "keydown" | "keyup";
|
|
311
221
|
key: string;
|
|
312
222
|
code?: string;
|
|
313
223
|
ctrlKey?: boolean;
|
|
@@ -317,7 +227,7 @@ type TerminalEventRecord = Readonly<{
|
|
|
317
227
|
repeat?: boolean;
|
|
318
228
|
time?: number;
|
|
319
229
|
}> | Readonly<{
|
|
320
|
-
type:
|
|
230
|
+
type: "pointerdown" | "pointerup" | "pointermove" | "click" | "dblclick" | "contextmenu";
|
|
321
231
|
cellX: number;
|
|
322
232
|
cellY: number;
|
|
323
233
|
clientX?: number;
|
|
@@ -330,19 +240,20 @@ type TerminalEventRecord = Readonly<{
|
|
|
330
240
|
metaKey?: boolean;
|
|
331
241
|
time?: number;
|
|
332
242
|
}> | Readonly<{
|
|
333
|
-
type:
|
|
243
|
+
type: "wheel";
|
|
334
244
|
cellX: number;
|
|
335
245
|
cellY: number;
|
|
336
246
|
clientX?: number;
|
|
337
247
|
clientY?: number;
|
|
338
248
|
deltaY: number;
|
|
249
|
+
deltaMode?: number;
|
|
339
250
|
ctrlKey?: boolean;
|
|
340
251
|
shiftKey?: boolean;
|
|
341
252
|
altKey?: boolean;
|
|
342
253
|
metaKey?: boolean;
|
|
343
254
|
time?: number;
|
|
344
255
|
}> | Readonly<{
|
|
345
|
-
type:
|
|
256
|
+
type: "beforeinput" | "input" | "compositionstart" | "compositionupdate" | "compositionend" | "paste";
|
|
346
257
|
data?: string;
|
|
347
258
|
inputType?: string;
|
|
348
259
|
isComposing?: boolean;
|
|
@@ -353,6 +264,7 @@ type TerminalEventRecord = Readonly<{
|
|
|
353
264
|
//#endregion
|
|
354
265
|
//#region src/cli/input.d.ts
|
|
355
266
|
type Stdin = NodeJS.ReadStream;
|
|
267
|
+
type KeyboardProtocol = "auto" | "kitty" | "xterm" | "off";
|
|
356
268
|
type StdinDriver = Readonly<{
|
|
357
269
|
dispose: () => void;
|
|
358
270
|
}>;
|
|
@@ -360,7 +272,9 @@ declare function createStdinDriver(options: Readonly<{
|
|
|
360
272
|
dispatch: (event: TerminalEventRecord) => boolean | void;
|
|
361
273
|
stdin?: Stdin;
|
|
362
274
|
stdout?: NodeJS.WriteStream;
|
|
275
|
+
env?: Readonly<Record<string, unknown>>;
|
|
363
276
|
enableMouse?: boolean;
|
|
277
|
+
keyboardProtocol?: KeyboardProtocol;
|
|
364
278
|
/**
|
|
365
279
|
* Enable "any-motion" mouse tracking (xterm DECSET ?1003).
|
|
366
280
|
* This is required for hover interactions in the CLI, but can increase event volume.
|
|
@@ -372,9 +286,9 @@ declare function createStdinDriver(options: Readonly<{
|
|
|
372
286
|
|
|
373
287
|
//#endregion
|
|
374
288
|
//#region src/cli/path-suggest-core.d.ts
|
|
375
|
-
type PathPickMode =
|
|
289
|
+
type PathPickMode = "directory" | "file" | "any";
|
|
376
290
|
type PathSuggestion = Readonly<{
|
|
377
|
-
kind:
|
|
291
|
+
kind: "directory" | "file";
|
|
378
292
|
display: string;
|
|
379
293
|
completion: string;
|
|
380
294
|
absPath: string;
|
|
@@ -388,7 +302,7 @@ type SuggestPathsResult = Readonly<{
|
|
|
388
302
|
|
|
389
303
|
//#endregion
|
|
390
304
|
//#region src/cli/path-provider.d.ts
|
|
391
|
-
type FsEntryKind =
|
|
305
|
+
type FsEntryKind = "file" | "directory" | "other";
|
|
392
306
|
type FsDirEntry = Readonly<{
|
|
393
307
|
name: string;
|
|
394
308
|
kind: FsEntryKind;
|
|
@@ -407,7 +321,7 @@ type PathPickerProvider = Readonly<{
|
|
|
407
321
|
max: number;
|
|
408
322
|
showHidden?: boolean;
|
|
409
323
|
maxDepth?: number;
|
|
410
|
-
gitignore?:
|
|
324
|
+
gitignore?: "blocking" | "nonBlocking";
|
|
411
325
|
}>) => Promise<SuggestPathsResult>;
|
|
412
326
|
resolvePath?: (workspaceAbs: string, input: string) => string | Promise<string>;
|
|
413
327
|
}>;
|
|
@@ -423,7 +337,7 @@ declare function suggestPaths(options: Readonly<{
|
|
|
423
337
|
showHidden?: boolean;
|
|
424
338
|
listDir: (absDir: string) => Promise<FsDirEntry[]>;
|
|
425
339
|
maxDepth?: number;
|
|
426
|
-
gitignore?:
|
|
340
|
+
gitignore?: "blocking" | "nonBlocking";
|
|
427
341
|
}>): Promise<SuggestPathsResult>;
|
|
428
342
|
declare function resolveUserPath(workspaceAbs: string, input: string): string;
|
|
429
343
|
|
|
@@ -455,6 +369,10 @@ declare function detectTerminalColorCapability(opts?: Readonly<{
|
|
|
455
369
|
platform?: string;
|
|
456
370
|
}>): TerminalColorCapability;
|
|
457
371
|
|
|
372
|
+
//#endregion
|
|
373
|
+
//#region src/core/ansi-palette.d.ts
|
|
374
|
+
type ThemePalette = Partial<Record<AnsiColorName, string>>;
|
|
375
|
+
|
|
458
376
|
//#endregion
|
|
459
377
|
//#region src/core/ansi/sgr.d.ts
|
|
460
378
|
interface AnsiSegment {
|
|
@@ -474,19 +392,132 @@ declare function createTerminal(opts: {
|
|
|
474
392
|
rows: number;
|
|
475
393
|
}): Terminal;
|
|
476
394
|
|
|
395
|
+
//#endregion
|
|
396
|
+
//#region src/renderer/capabilities.d.ts
|
|
397
|
+
type RendererCapabilities = Readonly<{
|
|
398
|
+
syncFlush: boolean;
|
|
399
|
+
scrollOperations: boolean;
|
|
400
|
+
domRows: boolean;
|
|
401
|
+
}>;
|
|
402
|
+
type TerminalRendererLike = Readonly<{
|
|
403
|
+
capabilities: RendererCapabilities;
|
|
404
|
+
container?: HTMLElement;
|
|
405
|
+
debugStats?: unknown;
|
|
406
|
+
}>;
|
|
407
|
+
declare const DOM_RENDERER_CAPABILITIES: RendererCapabilities;
|
|
408
|
+
declare const HEADLESS_RENDERER_CAPABILITIES: RendererCapabilities;
|
|
409
|
+
|
|
477
410
|
//#endregion
|
|
478
411
|
//#region src/renderer/dom/dom-renderer.d.ts
|
|
479
412
|
type CellMetrics = Readonly<{
|
|
480
413
|
cellWidth: number;
|
|
481
414
|
cellHeight: number;
|
|
482
415
|
}>;
|
|
416
|
+
type DomRendererSyncFlushDecision = Readonly<{
|
|
417
|
+
performed: boolean;
|
|
418
|
+
deferredReason?: "budget";
|
|
419
|
+
rows: number;
|
|
420
|
+
planes: number;
|
|
421
|
+
cells: number;
|
|
422
|
+
maxRows: number;
|
|
423
|
+
maxCells: number;
|
|
424
|
+
}>;
|
|
425
|
+
type DomRendererSyncFlushStats = Readonly<{
|
|
426
|
+
requested: number;
|
|
427
|
+
performed: number;
|
|
428
|
+
deferred: number;
|
|
429
|
+
last: DomRendererSyncFlushDecision | null;
|
|
430
|
+
}>;
|
|
431
|
+
type DomRendererFlushSample = Readonly<{
|
|
432
|
+
mode: "sync" | "deferred";
|
|
433
|
+
startedAt: number;
|
|
434
|
+
durationMs: number;
|
|
435
|
+
planeRows: number;
|
|
436
|
+
planes: number;
|
|
437
|
+
}>;
|
|
438
|
+
type DomRendererFlushStats = Readonly<{
|
|
439
|
+
count: number;
|
|
440
|
+
last: DomRendererFlushSample | null;
|
|
441
|
+
}>;
|
|
442
|
+
type DomRendererRowRenderStats = Readonly<{
|
|
443
|
+
rows: number;
|
|
444
|
+
cacheHits: number;
|
|
445
|
+
rowKeyPrepassChecks: number;
|
|
446
|
+
rowKeyPrepassHits: number;
|
|
447
|
+
rowKeyPrepassMisses: number;
|
|
448
|
+
transparentBlankRows: number;
|
|
449
|
+
plainTextRows: number;
|
|
450
|
+
singleStyledRows: number;
|
|
451
|
+
segmentReuseRows: number;
|
|
452
|
+
fragmentRows: number;
|
|
453
|
+
spansCreated: number;
|
|
454
|
+
spansReused: number;
|
|
455
|
+
textNodeUpdates: number;
|
|
456
|
+
replaceChildren: number;
|
|
457
|
+
}>;
|
|
458
|
+
type DomRendererRowRenderDebugStats = Readonly<{
|
|
459
|
+
total: DomRendererRowRenderStats;
|
|
460
|
+
lastFlush: DomRendererRowRenderStats | null;
|
|
461
|
+
}>;
|
|
462
|
+
type DomRendererRowKeyPrepassMode = boolean | "auto";
|
|
463
|
+
type DomRendererRowKeyPrepassDecision = "forced-enabled" | "forced-disabled" | "sampling" | "enabled" | "disabled";
|
|
464
|
+
type DomRendererRowKeyPrepassDebugStats = Readonly<{
|
|
465
|
+
mode: DomRendererRowKeyPrepassMode;
|
|
466
|
+
decision: DomRendererRowKeyPrepassDecision;
|
|
467
|
+
sampleRows: number;
|
|
468
|
+
sampleHits: number;
|
|
469
|
+
sampleMisses: number;
|
|
470
|
+
sampleHitRatio: number | null;
|
|
471
|
+
lastSampleRows: number;
|
|
472
|
+
lastSampleHitRatio: number | null;
|
|
473
|
+
}>;
|
|
474
|
+
type DomRendererDebugStats = Readonly<{
|
|
475
|
+
syncFlush: DomRendererSyncFlushStats;
|
|
476
|
+
flush: DomRendererFlushStats;
|
|
477
|
+
rowRender: DomRendererRowRenderDebugStats;
|
|
478
|
+
rowKeyPrepass: DomRendererRowKeyPrepassDebugStats;
|
|
479
|
+
}>;
|
|
483
480
|
interface DomRenderer {
|
|
484
481
|
readonly container: HTMLElement;
|
|
482
|
+
readonly capabilities: RendererCapabilities;
|
|
483
|
+
readonly debugStats: DomRendererDebugStats;
|
|
485
484
|
readonly metrics: CellMetrics;
|
|
486
485
|
dispose: () => void;
|
|
487
486
|
refresh: () => void;
|
|
487
|
+
updateTheme: (next: Readonly<{
|
|
488
|
+
palette?: ThemePalette | null;
|
|
489
|
+
}>) => void;
|
|
490
|
+
setPlaneOffset: (plane: TerminalRenderPlane, offsetPx: number) => void;
|
|
491
|
+
setPlaneViewport: (plane: TerminalRenderPlane, viewport: Readonly<{
|
|
492
|
+
topPx: number;
|
|
493
|
+
heightPx: number;
|
|
494
|
+
}> | null) => void;
|
|
488
495
|
}
|
|
489
|
-
|
|
496
|
+
interface DomRendererOptions {
|
|
497
|
+
/**
|
|
498
|
+
* Maximum dirty row count allowed for same-call DOM flush when commit({ sync: true }).
|
|
499
|
+
* Larger updates are rAF-batched to avoid blocking the main thread.
|
|
500
|
+
*/
|
|
501
|
+
syncFlushMaxRows?: number;
|
|
502
|
+
/**
|
|
503
|
+
* Maximum estimated cell work for sync DOM flush: dirtyRows * cols * activePlanes.
|
|
504
|
+
*/
|
|
505
|
+
syncFlushCellBudget?: number;
|
|
506
|
+
/**
|
|
507
|
+
* Enables DOM line-node shifting for terminal scrollOperations.
|
|
508
|
+
*/
|
|
509
|
+
enableScrollOperations?: boolean;
|
|
510
|
+
/** Optional ANSI-name palette exposed as DOM CSS variables. */
|
|
511
|
+
palette?: ThemePalette | null;
|
|
512
|
+
/**
|
|
513
|
+
* Controls a key-only early bailout before row segment allocation.
|
|
514
|
+
* The normal row cache remains enabled regardless of this option.
|
|
515
|
+
* Defaults to "auto": sample cached-row hit ratio and keep prepass enabled only
|
|
516
|
+
* when it pays for itself.
|
|
517
|
+
*/
|
|
518
|
+
enableRowKeyPrepass?: DomRendererRowKeyPrepassMode;
|
|
519
|
+
}
|
|
520
|
+
declare function createDomRenderer(terminal: Terminal, container: HTMLElement, options?: DomRendererOptions): DomRenderer;
|
|
490
521
|
|
|
491
522
|
//#endregion
|
|
492
523
|
//#region src/events/manager/types.d.ts
|
|
@@ -496,7 +527,7 @@ type Rect = Readonly<{
|
|
|
496
527
|
w: number;
|
|
497
528
|
h: number;
|
|
498
529
|
}>;
|
|
499
|
-
type TerminalEventType =
|
|
530
|
+
type TerminalEventType = "click" | "dblclick" | "contextmenu" | "pointerdown" | "pointerup" | "pointermove" | "pointerenter" | "pointerleave" | "wheel" | "keydown" | "keyup" | "beforeinput" | "input" | "compositionstart" | "compositionupdate" | "compositionend" | "paste" | "focus" | "blur";
|
|
500
531
|
interface TerminalBaseEvent {
|
|
501
532
|
type: TerminalEventType;
|
|
502
533
|
target: TerminalNode | null;
|
|
@@ -523,6 +554,7 @@ type TerminalPointerEvent = TerminalBaseEvent & {
|
|
|
523
554
|
altKey?: boolean;
|
|
524
555
|
metaKey?: boolean;
|
|
525
556
|
deltaY?: number;
|
|
557
|
+
deltaMode?: number;
|
|
526
558
|
};
|
|
527
559
|
type TerminalKeyboardEvent = TerminalBaseEvent & {
|
|
528
560
|
key: string;
|
|
@@ -600,10 +632,10 @@ type TerminalDebugNode = Readonly<{
|
|
|
600
632
|
//#endregion
|
|
601
633
|
//#region src/events/manager/cli-event-manager.d.ts
|
|
602
634
|
interface CliEventManager {
|
|
603
|
-
register: (node: Omit<TerminalNode,
|
|
635
|
+
register: (node: Omit<TerminalNode, "id"> & {
|
|
604
636
|
id?: string;
|
|
605
637
|
}) => TerminalNode;
|
|
606
|
-
update: (id: string, next: Partial<Omit<TerminalNode,
|
|
638
|
+
update: (id: string, next: Partial<Omit<TerminalNode, "id">>) => void;
|
|
607
639
|
unregister: (id: string) => void;
|
|
608
640
|
setMetrics: (next: CellMetrics) => void;
|
|
609
641
|
focus: (id: string | null) => void;
|
|
@@ -620,10 +652,10 @@ declare function createCliEventManager(options?: Readonly<{
|
|
|
620
652
|
//#endregion
|
|
621
653
|
//#region src/events/manager/event-manager.d.ts
|
|
622
654
|
interface EventManager {
|
|
623
|
-
register: (node: Omit<TerminalNode,
|
|
655
|
+
register: (node: Omit<TerminalNode, "id"> & {
|
|
624
656
|
id?: string;
|
|
625
657
|
}) => TerminalNode;
|
|
626
|
-
update: (id: string, next: Partial<Omit<TerminalNode,
|
|
658
|
+
update: (id: string, next: Partial<Omit<TerminalNode, "id">>) => void;
|
|
627
659
|
unregister: (id: string) => void;
|
|
628
660
|
setMetrics: (next: CellMetrics) => void;
|
|
629
661
|
focus: (id: string | null) => void;
|
|
@@ -638,36 +670,6 @@ declare function createEventManager(container: HTMLElement, metrics: CellMetrics
|
|
|
638
670
|
onFocusChange?: (prev: string | null, next: string | null) => void;
|
|
639
671
|
}>): EventManager;
|
|
640
672
|
|
|
641
|
-
//#endregion
|
|
642
|
-
//#region src/observability/trace.d.ts
|
|
643
|
-
type TraceRecord = Readonly<{
|
|
644
|
-
type: 'event';
|
|
645
|
-
at: number;
|
|
646
|
-
event: TerminalEventRecord;
|
|
647
|
-
}> | Readonly<{
|
|
648
|
-
type: 'focus';
|
|
649
|
-
at: number;
|
|
650
|
-
prev: string | null;
|
|
651
|
-
next: string | null;
|
|
652
|
-
}> | Readonly<{
|
|
653
|
-
type: 'commit';
|
|
654
|
-
at: number;
|
|
655
|
-
dirtyRows: readonly number[] | null;
|
|
656
|
-
planes: TerminalRenderPlanes | null;
|
|
657
|
-
focusedId: string | null;
|
|
658
|
-
}>;
|
|
659
|
-
type TraceStore = Readonly<{
|
|
660
|
-
enabled: Ref<boolean>;
|
|
661
|
-
records: TraceRecord[];
|
|
662
|
-
push: (record: TraceRecord) => void;
|
|
663
|
-
clear: () => void;
|
|
664
|
-
snapshot: () => TraceRecord[];
|
|
665
|
-
}>;
|
|
666
|
-
declare function createTraceStore(opts?: Readonly<{
|
|
667
|
-
enabled?: boolean;
|
|
668
|
-
max?: number;
|
|
669
|
-
}>): TraceStore;
|
|
670
|
-
|
|
671
673
|
//#endregion
|
|
672
674
|
//#region src/renderer/cli/stdout-renderer.d.ts
|
|
673
675
|
type CliOutput = Readonly<{
|
|
@@ -681,21 +683,22 @@ type StdoutRenderer = Readonly<{
|
|
|
681
683
|
setCursor: (x: number, y: number) => void;
|
|
682
684
|
/** Show or hide the terminal cursor */
|
|
683
685
|
showCursor: (visible: boolean) => void;
|
|
684
|
-
/** Update
|
|
686
|
+
/** Update default background without recreating the renderer. */
|
|
685
687
|
updateTheme?: (next: Readonly<{
|
|
686
|
-
defaultBg?:
|
|
687
|
-
palette?:
|
|
688
|
+
defaultBg?: string | null;
|
|
689
|
+
palette?: ThemePalette | null;
|
|
688
690
|
}>) => void;
|
|
689
691
|
}>;
|
|
690
|
-
type StdoutColorMode =
|
|
692
|
+
type StdoutColorMode = "auto" | "truecolor" | "ansi256" | "ansi16" | "ansi8";
|
|
691
693
|
declare function createStdoutRenderer(terminal: Terminal, options?: Readonly<{
|
|
692
694
|
output?: CliOutput;
|
|
693
695
|
clear?: boolean;
|
|
694
696
|
hideCursor?: boolean;
|
|
695
697
|
altScreen?: boolean;
|
|
696
|
-
/** Fallback background color when a cell has no explicit bg. */
|
|
697
|
-
defaultBg?:
|
|
698
|
-
palette
|
|
698
|
+
/** Fallback background color when a cell has no explicit bg. `null` = transparent (terminal default). */
|
|
699
|
+
defaultBg?: string | null;
|
|
700
|
+
/** Optional ANSI-name palette used when emitting ansi256/truecolor sequences. */
|
|
701
|
+
palette?: ThemePalette | null;
|
|
699
702
|
/** Track TTY resize events (process.stdout 'resize') and call terminal.resize(). */
|
|
700
703
|
trackResize?: boolean;
|
|
701
704
|
/** Color mode for ANSI output (auto detects truecolor via env). */
|
|
@@ -709,6 +712,94 @@ declare function createStdoutRenderer(terminal: Terminal, options?: Readonly<{
|
|
|
709
712
|
useSyncOutput?: boolean;
|
|
710
713
|
}>): StdoutRenderer;
|
|
711
714
|
|
|
715
|
+
//#endregion
|
|
716
|
+
//#region src/observability/trace.d.ts
|
|
717
|
+
type TraceRecord = Readonly<{
|
|
718
|
+
type: "event";
|
|
719
|
+
at: number;
|
|
720
|
+
event: TerminalEventRecord;
|
|
721
|
+
}> | Readonly<{
|
|
722
|
+
type: "focus";
|
|
723
|
+
at: number;
|
|
724
|
+
prev: string | null;
|
|
725
|
+
next: string | null;
|
|
726
|
+
}> | Readonly<{
|
|
727
|
+
type: "commit";
|
|
728
|
+
at: number;
|
|
729
|
+
dirtyRows: readonly number[] | null;
|
|
730
|
+
planes: TerminalRenderPlanes | null;
|
|
731
|
+
sync?: boolean;
|
|
732
|
+
rendererSyncFlush?: DomRendererSyncFlushDecision | null;
|
|
733
|
+
focusedId: string | null;
|
|
734
|
+
}>;
|
|
735
|
+
type TraceStore = Readonly<{
|
|
736
|
+
enabled: Ref<boolean>;
|
|
737
|
+
records: TraceRecord[];
|
|
738
|
+
push: (record: TraceRecord) => void;
|
|
739
|
+
clear: () => void;
|
|
740
|
+
snapshot: () => TraceRecord[];
|
|
741
|
+
}>;
|
|
742
|
+
declare function createTraceStore(opts?: Readonly<{
|
|
743
|
+
enabled?: boolean;
|
|
744
|
+
max?: number;
|
|
745
|
+
}>): TraceStore;
|
|
746
|
+
|
|
747
|
+
//#endregion
|
|
748
|
+
//#region src/observability/frame-perf.d.ts
|
|
749
|
+
type FramePerfReason = "scroll" | "input" | "stream" | "resize" | "data" | "manual" | "unknown";
|
|
750
|
+
type FramePerfRowBucketFallback = Readonly<{
|
|
751
|
+
plane: string;
|
|
752
|
+
reason: "dirty-ratio" | "candidate-ratio";
|
|
753
|
+
dirtyRows: number;
|
|
754
|
+
planeNodes: number;
|
|
755
|
+
candidates?: number;
|
|
756
|
+
}>;
|
|
757
|
+
type FramePerfMailboxFailure = Readonly<{
|
|
758
|
+
id: string;
|
|
759
|
+
queued: number;
|
|
760
|
+
dropped: number;
|
|
761
|
+
}>;
|
|
762
|
+
type FramePerfSample = Readonly<{
|
|
763
|
+
frameId: number;
|
|
764
|
+
reason: FramePerfReason;
|
|
765
|
+
startedAt: number;
|
|
766
|
+
durationMs: number;
|
|
767
|
+
renderManagerMs: number;
|
|
768
|
+
commitMs: number;
|
|
769
|
+
domFlushMs?: number;
|
|
770
|
+
stdoutFlushMs?: number;
|
|
771
|
+
dirtyRows: number | null;
|
|
772
|
+
activePlanes: readonly string[] | null;
|
|
773
|
+
scannedNodes: number;
|
|
774
|
+
paintedNodes: number;
|
|
775
|
+
rowBucketFallbacks?: readonly FramePerfRowBucketFallback[];
|
|
776
|
+
coalescedInvalidates: number;
|
|
777
|
+
frameTaskCount: number;
|
|
778
|
+
coalescedFrameTasks: number;
|
|
779
|
+
frameTaskQueueDepthBeforeRun: number;
|
|
780
|
+
frameTaskQueueDepthAfterRun: number;
|
|
781
|
+
remainingFrameTasks: number;
|
|
782
|
+
droppedUpdates: number;
|
|
783
|
+
mailboxFailure?: FramePerfMailboxFailure;
|
|
784
|
+
queueDepth: number;
|
|
785
|
+
liveReasons?: readonly string[];
|
|
786
|
+
}>;
|
|
787
|
+
declare function framePerfNow(): number;
|
|
788
|
+
|
|
789
|
+
//#endregion
|
|
790
|
+
//#region src/observability/frame-perf-store.d.ts
|
|
791
|
+
type FramePerfStore = Readonly<{
|
|
792
|
+
enabled: Ref<boolean>;
|
|
793
|
+
acquire: (reason?: string) => () => void;
|
|
794
|
+
push: (sample: FramePerfSample) => void;
|
|
795
|
+
latest: () => FramePerfSample | null;
|
|
796
|
+
list: () => FramePerfSample[];
|
|
797
|
+
clear: () => void;
|
|
798
|
+
}>;
|
|
799
|
+
declare function createFramePerfStore(limit?: number, opts?: Readonly<{
|
|
800
|
+
enabled?: boolean;
|
|
801
|
+
}>): FramePerfStore;
|
|
802
|
+
|
|
712
803
|
//#endregion
|
|
713
804
|
//#region src/vue/render/render-manager.d.ts
|
|
714
805
|
type RenderRect = Readonly<{
|
|
@@ -732,13 +823,22 @@ type RenderNode = Readonly<{
|
|
|
732
823
|
rect: RenderRect | null;
|
|
733
824
|
rectY0: number;
|
|
734
825
|
rectY1: number;
|
|
826
|
+
/**
|
|
827
|
+
* dirtyRows are absolute terminal rows for this node's plane.
|
|
828
|
+
* Components must ignore rows outside their rect.
|
|
829
|
+
*/
|
|
735
830
|
paint: (dirtyRows?: readonly number[]) => void;
|
|
736
831
|
}>;
|
|
737
832
|
type RenderManager = Readonly<{
|
|
738
833
|
rootStack: RenderStack;
|
|
739
834
|
createStack: (parent: RenderStack, zIndex: number) => RenderStack;
|
|
740
835
|
invalidatePlane: (plane: TerminalRenderPlane) => void;
|
|
741
|
-
|
|
836
|
+
/**
|
|
837
|
+
* Dangerous escape hatch: shifts whole terminal rows for the target plane, not a
|
|
838
|
+
* component-local region. Only call when the active renderer consumes terminal
|
|
839
|
+
* scrollOperations or when the caller repaints the whole affected viewport.
|
|
840
|
+
*/
|
|
841
|
+
unsafeScrollPlaneRows: (plane: TerminalRenderPlane, startY: number, endY: number, delta: number) => void;
|
|
742
842
|
register: (node: {
|
|
743
843
|
stack: RenderStack;
|
|
744
844
|
plane?: TerminalRenderPlane;
|
|
@@ -751,19 +851,40 @@ type RenderManager = Readonly<{
|
|
|
751
851
|
plane: TerminalRenderPlane;
|
|
752
852
|
zIndex: number;
|
|
753
853
|
rect: RenderRect | null;
|
|
854
|
+
/**
|
|
855
|
+
* Consumed synchronously during update() and must not be retained.
|
|
856
|
+
* Callers may pass scratch arrays for hot-path invalidation.
|
|
857
|
+
* Rows are absolute terminal Y coordinates for the node's plane.
|
|
858
|
+
*/
|
|
754
859
|
dirtyRowsHint: readonly number[];
|
|
755
860
|
paint: (dirtyRows?: readonly number[]) => void;
|
|
756
861
|
}>) => void;
|
|
862
|
+
/**
|
|
863
|
+
* Hot-path dirty row marker for stable nodes. Consumed synchronously and does
|
|
864
|
+
* not replace the RenderNode object.
|
|
865
|
+
*
|
|
866
|
+
* rows are absolute terminal Y coordinates, not local component row offsets.
|
|
867
|
+
* For rect-bound nodes, rows outside the node rect are ignored.
|
|
868
|
+
*/
|
|
869
|
+
markDirtyRows: (id: string, rows: readonly number[]) => boolean;
|
|
757
870
|
unregister: (id: string) => void;
|
|
758
871
|
render: (options?: {
|
|
759
872
|
activePlanes?: TerminalRenderPlanes | null;
|
|
760
873
|
}) => RenderStats | null;
|
|
761
874
|
}>;
|
|
875
|
+
type RowBucketFallback = Readonly<{
|
|
876
|
+
plane: TerminalRenderPlane;
|
|
877
|
+
reason: "dirty-ratio" | "candidate-ratio";
|
|
878
|
+
dirtyRows: number;
|
|
879
|
+
planeNodes: number;
|
|
880
|
+
candidates?: number;
|
|
881
|
+
}>;
|
|
762
882
|
type RenderStats = Readonly<{
|
|
763
883
|
rows: number;
|
|
764
884
|
scannedNodes: number;
|
|
765
885
|
paintedNodes: number;
|
|
766
886
|
candidatePlanes: readonly TerminalRenderPlane[];
|
|
887
|
+
rowBucketFallbacks?: readonly RowBucketFallback[];
|
|
767
888
|
}>;
|
|
768
889
|
|
|
769
890
|
//#endregion
|
|
@@ -773,15 +894,72 @@ interface LayoutContext {
|
|
|
773
894
|
originY: number;
|
|
774
895
|
clipRect: Rect | null;
|
|
775
896
|
}
|
|
776
|
-
type TerminalSchedulerPriority =
|
|
897
|
+
type TerminalSchedulerPriority = "high" | "normal" | "low";
|
|
777
898
|
type TerminalSchedulerInvalidateOptions = Readonly<{
|
|
778
899
|
priority?: TerminalSchedulerPriority;
|
|
779
900
|
plane?: TerminalRenderPlane;
|
|
901
|
+
reason?: FramePerfReason;
|
|
902
|
+
}>;
|
|
903
|
+
type TerminalFrameTaskPriority = "high" | "normal" | "low";
|
|
904
|
+
type TerminalFrameContext = Readonly<{
|
|
905
|
+
frameId: number;
|
|
906
|
+
startedAt: number;
|
|
907
|
+
now: () => number;
|
|
908
|
+
budgetMs: number;
|
|
909
|
+
remainingMs: () => number;
|
|
910
|
+
requestMore: () => void;
|
|
911
|
+
invalidate: (options?: TerminalSchedulerInvalidateOptions) => void;
|
|
912
|
+
/**
|
|
913
|
+
* Internal scheduler metric hook used by frame tasks/mailboxes to report
|
|
914
|
+
* dropped producer updates that were intentionally coalesced before paint.
|
|
915
|
+
*
|
|
916
|
+
* Compatibility note:
|
|
917
|
+
* TerminalFrameContext is an exported type, so additions here are public.
|
|
918
|
+
*/
|
|
919
|
+
reportDroppedUpdates?: (count: number) => void;
|
|
920
|
+
reportMailboxDeliveryAttempt?: (attempt: {
|
|
921
|
+
id: string;
|
|
922
|
+
queued: number;
|
|
923
|
+
dropped: number;
|
|
924
|
+
}) => void;
|
|
925
|
+
}>;
|
|
926
|
+
type TerminalFrameTask = Readonly<{
|
|
927
|
+
id?: string;
|
|
928
|
+
reason?: FramePerfReason;
|
|
929
|
+
priority?: TerminalFrameTaskPriority;
|
|
930
|
+
sync?: boolean;
|
|
931
|
+
run: (ctx: TerminalFrameContext) => void;
|
|
932
|
+
}>;
|
|
933
|
+
type TerminalSchedulerConfig = Readonly<{
|
|
934
|
+
targetFps?: number;
|
|
935
|
+
maxFps?: number;
|
|
936
|
+
frameBudgetMs?: number;
|
|
780
937
|
}>;
|
|
781
938
|
type TerminalScheduler = Readonly<{
|
|
782
939
|
invalidate: (options?: TerminalSchedulerInvalidateOptions) => void;
|
|
783
940
|
flush: () => void;
|
|
941
|
+
/**
|
|
942
|
+
* Flushes render-manager work and requests a sync terminal commit immediately.
|
|
943
|
+
* DOM row updates may still defer to rAF when they exceed the renderer sync budget.
|
|
944
|
+
*/
|
|
784
945
|
flushNow: () => void;
|
|
946
|
+
configure: (options: TerminalSchedulerConfig) => void;
|
|
947
|
+
/**
|
|
948
|
+
* Queues a frame task for the next scheduler frame.
|
|
949
|
+
* false means the scheduler explicitly rejected the task; producers must clear
|
|
950
|
+
* local pending state. true or undefined means accepted so legacy schedulers
|
|
951
|
+
* that do not return a value remain valid.
|
|
952
|
+
*/
|
|
953
|
+
queueFrameTask: (task: TerminalFrameTask) => boolean | void;
|
|
954
|
+
/**
|
|
955
|
+
* Best-effort cancellation for a pending id task.
|
|
956
|
+
* If the scheduler has already taken the task for the current frame,
|
|
957
|
+
* the task run() still needs to guard its own stale state.
|
|
958
|
+
*/
|
|
959
|
+
cancelFrameTask?: (id: string) => boolean | void;
|
|
960
|
+
requestLive: (reason: string) => () => void;
|
|
961
|
+
dropLive: (reason: string) => void;
|
|
962
|
+
isInsideFrame: () => boolean;
|
|
785
963
|
}>;
|
|
786
964
|
type TerminalRuntimeHandle = Readonly<{
|
|
787
965
|
update: (props: Record<string, unknown>) => void;
|
|
@@ -800,12 +978,14 @@ type ImeAnchor = Readonly<{
|
|
|
800
978
|
}>;
|
|
801
979
|
type TerminalContext = Readonly<{
|
|
802
980
|
terminal: Terminal;
|
|
803
|
-
renderer: Ref<
|
|
981
|
+
renderer: Ref<TerminalRendererLike | null>;
|
|
982
|
+
rendererCapabilities: Ref<RendererCapabilities>;
|
|
804
983
|
events: Ref<EventManager | null>;
|
|
805
984
|
scheduler: TerminalScheduler;
|
|
806
985
|
runtime: TerminalRuntime;
|
|
807
986
|
observability: Readonly<{
|
|
808
987
|
trace: TraceStore;
|
|
988
|
+
framePerf: FramePerfStore;
|
|
809
989
|
}>;
|
|
810
990
|
defaultStyle: Ref<Style>;
|
|
811
991
|
render: RenderManager;
|
|
@@ -838,7 +1018,7 @@ type PromptSuggestion = Readonly<{
|
|
|
838
1018
|
detail?: string;
|
|
839
1019
|
keywords?: readonly string[];
|
|
840
1020
|
mentionValue?: string;
|
|
841
|
-
mentionBehavior?:
|
|
1021
|
+
mentionBehavior?: "collect" | "inline";
|
|
842
1022
|
onSelect?: (info: Readonly<{
|
|
843
1023
|
value: string;
|
|
844
1024
|
query: string;
|
|
@@ -852,14 +1032,18 @@ type TInputPluginContext = Readonly<{
|
|
|
852
1032
|
promptTrigger: string;
|
|
853
1033
|
promptTriggers?: readonly string[];
|
|
854
1034
|
promptMaxItems: number;
|
|
855
|
-
promptAlign:
|
|
1035
|
+
promptAlign: "input" | "center";
|
|
856
1036
|
promptSelectedStyle?: Style;
|
|
1037
|
+
promptPopupStyle?: Style;
|
|
1038
|
+
promptPopupBorderStyle?: Style;
|
|
1039
|
+
promptPopupMatchStyle?: Style;
|
|
857
1040
|
mentionTrigger: string;
|
|
858
1041
|
mentionWorkspace: string;
|
|
859
1042
|
mentionMode: PathPickMode;
|
|
860
1043
|
mentionShowHidden: boolean;
|
|
861
1044
|
mentionSuggestions: readonly PromptSuggestion[];
|
|
862
1045
|
mentionMaxItems: number;
|
|
1046
|
+
mentionChipStyle?: Style;
|
|
863
1047
|
collectMentions: boolean;
|
|
864
1048
|
mentions: readonly string[];
|
|
865
1049
|
skillTrigger?: string;
|
|
@@ -895,7 +1079,7 @@ type TInputPluginContext = Readonly<{
|
|
|
895
1079
|
}>) => string) => void;
|
|
896
1080
|
registerChipStyleProvider: (provider: Readonly<{
|
|
897
1081
|
getStyle: (baseStyle: Style, chip: Readonly<{
|
|
898
|
-
kind:
|
|
1082
|
+
kind: "multiline" | "mention";
|
|
899
1083
|
absPath?: string;
|
|
900
1084
|
}>) => Style | null | undefined;
|
|
901
1085
|
version: Ref<number>;
|
|
@@ -917,11 +1101,7 @@ type TerminalApp = Readonly<{
|
|
|
917
1101
|
app: App;
|
|
918
1102
|
terminal: Terminal;
|
|
919
1103
|
events: CliEventManager;
|
|
920
|
-
scheduler:
|
|
921
|
-
invalidate: (options?: TerminalSchedulerInvalidateOptions) => void;
|
|
922
|
-
flush: () => void;
|
|
923
|
-
flushNow: () => void;
|
|
924
|
-
};
|
|
1104
|
+
scheduler: TerminalScheduler;
|
|
925
1105
|
defaultStyle: Ref<Style>;
|
|
926
1106
|
/** Returns the current IME anchor position (cursor position in cell coordinates), or null if no input is focused */
|
|
927
1107
|
getImeAnchor: () => ImeAnchor | null;
|
|
@@ -939,9 +1119,54 @@ type CreateTerminalAppOptions = Readonly<{
|
|
|
939
1119
|
}>;
|
|
940
1120
|
declare function createTerminalApp(options: CreateTerminalAppOptions): TerminalApp;
|
|
941
1121
|
|
|
1122
|
+
//#endregion
|
|
1123
|
+
//#region src/observability/cli-latency.d.ts
|
|
1124
|
+
type StageEvent = Readonly<Record<string, unknown>> & {
|
|
1125
|
+
type?: unknown;
|
|
1126
|
+
key?: unknown;
|
|
1127
|
+
code?: unknown;
|
|
1128
|
+
};
|
|
1129
|
+
type CliLatencyProfiler = Readonly<{
|
|
1130
|
+
enabled: true;
|
|
1131
|
+
recordRawInput: (info?: Readonly<{
|
|
1132
|
+
bytes?: number;
|
|
1133
|
+
}>) => void;
|
|
1134
|
+
recordStdinDispatch: (event: StageEvent, info?: Readonly<{
|
|
1135
|
+
parser?: string | null;
|
|
1136
|
+
}>) => void;
|
|
1137
|
+
recordEventDispatchStart: (event: StageEvent) => void;
|
|
1138
|
+
recordEventDispatchEnd: (event: StageEvent, info: Readonly<{
|
|
1139
|
+
defaultPrevented: boolean;
|
|
1140
|
+
}>) => void;
|
|
1141
|
+
recordSchedulerInvalidate: (info?: Readonly<{
|
|
1142
|
+
priority?: string | null;
|
|
1143
|
+
plane?: string | null;
|
|
1144
|
+
}>) => void;
|
|
1145
|
+
recordFlushStart: (info?: Readonly<{
|
|
1146
|
+
sync?: boolean;
|
|
1147
|
+
activePlanes?: readonly string[] | null;
|
|
1148
|
+
}>) => void;
|
|
1149
|
+
recordFlushEnd: () => void;
|
|
1150
|
+
recordCommit: (info?: Readonly<{
|
|
1151
|
+
sync?: boolean;
|
|
1152
|
+
dirtyRows?: readonly number[] | null;
|
|
1153
|
+
planes?: readonly string[] | null;
|
|
1154
|
+
}>) => void;
|
|
1155
|
+
recordStdoutQueued: (delayMs: number) => void;
|
|
1156
|
+
recordStdoutRenderStart: () => void;
|
|
1157
|
+
recordStdoutNoOutput: () => void;
|
|
1158
|
+
recordStdoutWrite: (info: Readonly<{
|
|
1159
|
+
durationMs: number;
|
|
1160
|
+
bytes: number;
|
|
1161
|
+
mode: string;
|
|
1162
|
+
}>) => void;
|
|
1163
|
+
markOperation: (operation: string) => void;
|
|
1164
|
+
}>;
|
|
1165
|
+
declare function getCliLatencyProfiler(): CliLatencyProfiler | null;
|
|
1166
|
+
|
|
942
1167
|
//#endregion
|
|
943
1168
|
//#region src/renderer/cli/stdout-metrics.d.ts
|
|
944
|
-
type StdoutRendererWriteMode =
|
|
1169
|
+
type StdoutRendererWriteMode = "stream" | "sync" | "chunked";
|
|
945
1170
|
interface StdoutRendererMetrics {
|
|
946
1171
|
lastFrameAt: number;
|
|
947
1172
|
lastFrameBytes: number;
|
|
@@ -955,7 +1180,7 @@ declare function getStdoutRendererMetrics(): StdoutRendererMetrics;
|
|
|
955
1180
|
|
|
956
1181
|
//#endregion
|
|
957
1182
|
//#region src/runtime/index.d.ts
|
|
958
|
-
type RuntimeEnv =
|
|
1183
|
+
type RuntimeEnv = "browser" | "terminal" | "unknown";
|
|
959
1184
|
type TimerApi = Readonly<{
|
|
960
1185
|
setTimeout: typeof setTimeout;
|
|
961
1186
|
clearTimeout: typeof clearTimeout;
|
|
@@ -1011,7 +1236,7 @@ type PromptSuggestion$1 = Readonly<{
|
|
|
1011
1236
|
detail?: string;
|
|
1012
1237
|
keywords?: readonly string[];
|
|
1013
1238
|
mentionValue?: string;
|
|
1014
|
-
mentionBehavior?:
|
|
1239
|
+
mentionBehavior?: "collect" | "inline";
|
|
1015
1240
|
onSelect?: (info: Readonly<{
|
|
1016
1241
|
value: string;
|
|
1017
1242
|
query: string;
|
|
@@ -1112,7 +1337,7 @@ declare const TInputBox: any;
|
|
|
1112
1337
|
//#endregion
|
|
1113
1338
|
//#region src/vue/components/TJsonEditor.d.ts
|
|
1114
1339
|
type JsonLintStatus = Readonly<{
|
|
1115
|
-
state:
|
|
1340
|
+
state: "idle" | "success" | "error";
|
|
1116
1341
|
message?: string;
|
|
1117
1342
|
line?: number;
|
|
1118
1343
|
column?: number;
|
|
@@ -1166,6 +1391,10 @@ interface RenderNodeOptions {
|
|
|
1166
1391
|
zIndex?: number;
|
|
1167
1392
|
stack?: RenderStack;
|
|
1168
1393
|
rect?: RenderRect | null;
|
|
1394
|
+
/**
|
|
1395
|
+
* One-shot absolute terminal rows for row-local content changes on this node's plane only.
|
|
1396
|
+
* Omit this when geometry, z-order, style, data identity, or paint semantics changed.
|
|
1397
|
+
*/
|
|
1169
1398
|
dirtyRowsHint?: readonly number[];
|
|
1170
1399
|
priority?: TerminalSchedulerPriority;
|
|
1171
1400
|
deps?: unknown;
|
|
@@ -1288,9 +1517,12 @@ interface WheelScrollResult {
|
|
|
1288
1517
|
dir: -1 | 0 | 1;
|
|
1289
1518
|
lines: number;
|
|
1290
1519
|
}
|
|
1291
|
-
type WheelDeltaMode =
|
|
1520
|
+
type WheelDeltaMode = "auto" | "line" | "pixel";
|
|
1521
|
+
interface WheelScrollOptions {
|
|
1522
|
+
disableAcceleration?: boolean;
|
|
1523
|
+
}
|
|
1292
1524
|
declare function createWheelScrollState(): WheelScrollState;
|
|
1293
|
-
declare function applyWheelScroll(state: WheelScrollState, deltaY: number, scrollTop: number, maxTop: number, now?: number, deltaMode?: WheelDeltaMode): WheelScrollResult;
|
|
1525
|
+
declare function applyWheelScroll(state: WheelScrollState, deltaY: number, scrollTop: number, maxTop: number, now?: number, deltaMode?: WheelDeltaMode, options?: WheelScrollOptions): WheelScrollResult;
|
|
1294
1526
|
|
|
1295
1527
|
//#endregion
|
|
1296
|
-
export { ANSI16_COLORS, ANSI256_COLORS, ANSI8_COLORS, AnsiColorName, BufferSnapshot, Cell, CellMetrics, CliEventManager, ClipboardApi, CreateTerminalAppOptions, DomRenderer, EventManager, FsDirEntry, FsEntryKind, FsStat, LayoutContext, MentionPathProvider, MentionSuggestionProvider, PathPickMode, PathPickerProvider, PathSuggestion, PromptMentionPluginOptions, PromptSuggestion, RafApi, Rect, Runtime, RuntimeEnv, SGR_RESET, StdinDriver, StdoutRenderer, StdoutRendererMetrics, Style, SuggestPathsResult, TAnchor, TBox, TDebugOverlay, TDialog, TERMINAL_RENDER_PLANES, TFlow, TInput, TInputBox, TInputHostAdapter, TInputPlugin, TInputPluginContext, TInputPluginsContextKey, TJsonEditor, TList, TMultilineModal, TPathPicker, TRenderLayer, TRenderPlane, TRouterView, TSelect, TText, TTransition, TView, Terminal, TerminalApp, TerminalBaseEvent, TerminalColorCapability, TerminalColorLevel, TerminalColorMode, TerminalCommitEvent, TerminalContext, TerminalDebugNode, TerminalEventHandlerMap, TerminalEventMap, TerminalEventRecord, TerminalEventType, TerminalInputEvent, TerminalKeyboardEvent, TerminalNode, TerminalPointerEvent, TerminalProvider, TerminalRenderPlane, TerminalRenderPlanes, TerminalResizeEvent, TerminalRoute, TerminalRouteLocationRaw, TerminalRouteRecord, TerminalRouter, TerminalRuntime, TerminalRuntimeHandle, TerminalScheduler, TerminalSchedulerInvalidateOptions, TerminalScrollOperation, TimerApi, TraceRecord, TraceStore, ansiColors, ansiStyles, applyWheelScroll, charCellWidth, clearTextCaches, createCliEventManager, createDefaultTInputHostAdapter, createDomRenderer, createEventManager, createNodeMentionPathProvider, createNodePathPickerProvider, createPromptMentionPlugin, createRuntime, createStdinDriver, createStdoutRenderer, createTInputHostPlugin, createTerminal, createTerminalApp, createTerminalRouter, createTextRestrictionPlugin, createTraceStore, createWheelScrollState, defaultTInputHostPlugin, detectTerminalColorCapability, formatInlineCellLine, getStdoutRendererMetrics, lintJsonText, normalizeNewlines, padEndByCells, parseAnsiSgr, readEventLog, resolveUserPath, rgbToAnsi256, sanitizeInlineText, sanitizeTextBlock, sliceByCells, sliceByCellsRange, spaces, suggestPaths, textCellWidth, truecolorBgOpen, truecolorFgOpen, useLayout, useRenderNode, useRoute, useRouter, useTerminal, useTerminalNode, useTerminalRuntime, useVisibility, wrapByCells, writeEventLog, writeSnapshot };
|
|
1528
|
+
export { ANSI16_COLORS, ANSI256_COLORS, ANSI8_COLORS, AnsiColorName, BufferSnapshot, Cell, CellMetrics, CliEventManager, ClipboardApi, CreateTerminalAppOptions, DOM_RENDERER_CAPABILITIES, DomRenderer, DomRendererDebugStats, DomRendererFlushSample, DomRendererFlushStats, DomRendererOptions, DomRendererRowKeyPrepassDebugStats, DomRendererRowKeyPrepassDecision, DomRendererRowKeyPrepassMode, DomRendererRowRenderDebugStats, DomRendererRowRenderStats, DomRendererSyncFlushDecision, DomRendererSyncFlushStats, EventManager, FramePerfReason, FramePerfRowBucketFallback, FramePerfSample, FramePerfStore, FsDirEntry, FsEntryKind, FsStat, HEADLESS_RENDERER_CAPABILITIES, LayoutContext, MentionPathProvider, MentionSuggestionProvider, PathPickMode, PathPickerProvider, PathSuggestion, PromptMentionPluginOptions, PromptSuggestion, RafApi, Rect, RendererCapabilities, Runtime, RuntimeEnv, SGR_RESET, StdinDriver, StdoutRenderer, StdoutRendererMetrics, Style, SuggestPathsResult, TAnchor, TBox, TDebugOverlay, TDialog, TERMINAL_RENDER_PLANES, TFlow, TInput, TInputBox, TInputHostAdapter, TInputPlugin, TInputPluginContext, TInputPluginsContextKey, TJsonEditor, TList, TMultilineModal, TPathPicker, TRenderLayer, TRenderPlane, TRouterView, TSelect, TText, TTransition, TView, Terminal, TerminalApp, TerminalBaseEvent, TerminalColorCapability, TerminalColorLevel, TerminalColorMode, TerminalCommitEvent, TerminalContext, TerminalDebugNode, TerminalEventHandlerMap, TerminalEventMap, TerminalEventRecord, TerminalEventType, TerminalFrameContext, TerminalFrameTask, TerminalFrameTaskPriority, TerminalInputEvent, TerminalKeyboardEvent, TerminalNode, TerminalPointerEvent, TerminalProvider, TerminalRenderPlane, TerminalRenderPlanes, TerminalRendererLike, TerminalResizeEvent, TerminalRoute, TerminalRouteLocationRaw, TerminalRouteRecord, TerminalRouter, TerminalRuntime, TerminalRuntimeHandle, TerminalScheduler, TerminalSchedulerConfig, TerminalSchedulerInvalidateOptions, TerminalScrollOperation, ThemeModeId, ThemePalette, TimerApi, TraceRecord, TraceStore, TuiMarkdownTheme, TuiMarkdownThemeOverrides, ansiColors, ansiStyles, applyWheelScroll, charCellWidth, clearTextCaches, createCliEventManager, createDefaultTInputHostAdapter, createDomRenderer, createEventManager, createFramePerfStore, createNodeMentionPathProvider, createNodePathPickerProvider, createPromptMentionPlugin, createRuntime, createStdinDriver, createStdoutRenderer, createTInputHostPlugin, createTerminal, createTerminalApp, createTerminalRouter, createTextRestrictionPlugin, createTraceStore, createWheelScrollState, defaultTInputHostPlugin, detectTerminalColorCapability, formatInlineCellLine, framePerfNow, getCliLatencyProfiler, getStdoutRendererMetrics, lintJsonText, normalizeNewlines, padEndByCells, parseAnsiSgr, readEventLog, resolveUserPath, rgbToAnsi256, sanitizeInlineText, sanitizeTextBlock, sliceByCells, sliceByCellsRange, spaces, suggestPaths, textCellWidth, truecolorBgOpen, truecolorFgOpen, useLayout, useRenderNode, useRoute, useRouter, useTerminal, useTerminalNode, useTerminalRuntime, useVisibility, wrapByCells, writeEventLog, writeSnapshot };
|