@deepseek-harness-tui/dsh-tui 0.10.1 → 0.10.2
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 +5 -146
- package/lib/types/adapter/ports/channel-session.d.ts +3 -1
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +8 -1
- package/lib/types/components/Markdown.d.ts +2 -2
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +28 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +10 -9
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +61 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +12 -2
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +5 -2
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +71 -7
- package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/permissions.js +10 -7
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +9 -2
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +9 -3
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +8 -2
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.js +49 -17
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +5 -2
- package/lib/types/dsh-adapter/compat/liveSession.d.ts +5 -3
- package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/liveSession.js +5 -3
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +40 -19
- package/lib/types/dsh-adapter/sessions/frames.js +2 -0
- package/lib/types/dsh-adapter/sessions/list.js +3 -3
- package/lib/types/dsh-adapter/sessions/store.d.ts +2 -2
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +12 -11
- package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +30 -33
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +32 -64
- package/lib/types/ink/get-max-width.d.ts +7 -15
- package/lib/types/ink/get-max-width.d.ts.map +1 -1
- package/lib/types/ink/get-max-width.js +7 -20
- package/lib/types/ink/ink.d.ts +1 -0
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +22 -3
- package/lib/types/ink/layout/node.d.ts +2 -0
- package/lib/types/ink/layout/node.d.ts.map +1 -1
- package/lib/types/ink/layout/yoga.d.ts +1 -0
- package/lib/types/ink/layout/yoga.d.ts.map +1 -1
- package/lib/types/ink/layout/yoga.js +3 -0
- package/lib/types/ink/node-cache.d.ts +11 -0
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/node-cache.js +3 -0
- package/lib/types/ink/output.d.ts +6 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +55 -65
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +92 -67
- package/lib/types/ink/tabstops.d.ts +3 -2
- package/lib/types/ink/tabstops.d.ts.map +1 -1
- package/lib/types/ink/tabstops.js +5 -4
- package/lib/types/ink/wrap-text.js +2 -2
- package/lib/types/native-ts/yoga-layout/index.d.ts +8 -3
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +23 -8
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +20 -8
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../../src/ink/ink.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAc9C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAarE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAA4B,KAAK,aAAa,EAAiB,MAAM,uBAAuB,CAAC;AAIpG,OAAO,EAAqG,KAAK,SAAS,EAAwF,KAAK,cAAc,EAA4L,MAAM,gBAAgB,CAAC;AAqCxb,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,GAAG;
|
|
1
|
+
{"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../../src/ink/ink.tsx"],"names":[],"mappings":"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"}
|
package/lib/types/ink/ink.js
CHANGED
|
@@ -184,6 +184,9 @@ export default class Ink {
|
|
|
184
184
|
// one full-render frame; steady-state frames after clear it and regain
|
|
185
185
|
// the blit + narrow-damage fast path.
|
|
186
186
|
prevFrameContaminated = false;
|
|
187
|
+
// A ConPTY resize may discard terminal cells without changing the grid.
|
|
188
|
+
// Consume once at the next scheduled paint, not once per resize event.
|
|
189
|
+
needsSurfaceRepaint = false;
|
|
187
190
|
// Set by handleResize: prepend ERASE_SCREEN to the next onRender's patches
|
|
188
191
|
// INSIDE the BSU/ESU block so clear+paint is atomic. Writing ERASE_SCREEN
|
|
189
192
|
// synchronously in handleResize would leave the screen blank for the ~80ms
|
|
@@ -361,13 +364,19 @@ export default class Ink {
|
|
|
361
364
|
handleResize = () => {
|
|
362
365
|
const cols = this.options.stdout.columns || 80;
|
|
363
366
|
const rows = this.options.stdout.rows || 24;
|
|
364
|
-
//
|
|
365
|
-
//
|
|
366
|
-
// frame
|
|
367
|
+
// Duplicate resize events normally leave both layout and surface intact.
|
|
368
|
+
// ConPTY can rebuild the alt buffer during maximize with the SAME grid,
|
|
369
|
+
// though: the cached frame then hides lost static cells forever (#891).
|
|
367
370
|
if (cols === this.terminalColumns && rows === this.terminalRows) {
|
|
368
371
|
// A font zoom or DPI move can change cell pixels without changing the
|
|
369
372
|
// row/column grid. The in-flight guard coalesces duplicate events.
|
|
370
373
|
this.refreshTerminalCellMetrics();
|
|
374
|
+
if ((process.platform === 'win32' || !!process.env.WT_SESSION) &&
|
|
375
|
+
this.altScreenActive && this.options.stdout.isTTY &&
|
|
376
|
+
!this.isPaused && !this.isUnmounted && !this.needsSurfaceRepaint) {
|
|
377
|
+
this.needsSurfaceRepaint = true;
|
|
378
|
+
this.scheduleRender();
|
|
379
|
+
}
|
|
371
380
|
return;
|
|
372
381
|
}
|
|
373
382
|
noteFrameCause('resize');
|
|
@@ -612,6 +621,15 @@ export default class Ink {
|
|
|
612
621
|
if (this.isUnmounted || this.isPaused) {
|
|
613
622
|
return;
|
|
614
623
|
}
|
|
624
|
+
if (this.needsSurfaceRepaint) {
|
|
625
|
+
this.needsSurfaceRepaint = false;
|
|
626
|
+
if (this.altScreenActive) {
|
|
627
|
+
noteFrameCause('resize');
|
|
628
|
+
// Repaint from an empty diff baseline without an early erase or
|
|
629
|
+
// DECSET 1049: neither may interrupt an external-editor handoff.
|
|
630
|
+
this.resetFramesForAltScreen();
|
|
631
|
+
}
|
|
632
|
+
}
|
|
615
633
|
if (GEOMETRY_TRACE_ENABLED)
|
|
616
634
|
beginGeometryFrame(this.renderGeneration);
|
|
617
635
|
// Entering a render cancels any pending drain tick — this render will
|
|
@@ -1856,6 +1874,7 @@ export default class Ink {
|
|
|
1856
1874
|
* matches the physical cursor after ENTER_ALT_SCREEN + CSI H (home).
|
|
1857
1875
|
*/
|
|
1858
1876
|
resetFramesForAltScreen() {
|
|
1877
|
+
this.needsSurfaceRepaint = false;
|
|
1859
1878
|
const rows = this.terminalRows;
|
|
1860
1879
|
const cols = this.terminalColumns;
|
|
1861
1880
|
const blank = () => ({
|
|
@@ -109,6 +109,8 @@ export type LayoutNode = {
|
|
|
109
109
|
getComputedLeft(): number;
|
|
110
110
|
getComputedTop(): number;
|
|
111
111
|
getComputedWidth(): number;
|
|
112
|
+
/** Text's content constraint before layout rounds its painted box. */
|
|
113
|
+
getComputedMeasureWidth(): number;
|
|
112
114
|
getComputedHeight(): number;
|
|
113
115
|
getComputedBorder(edge: LayoutEdge): number;
|
|
114
116
|
getComputedPadding(edge: LayoutEdge): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ export declare class YogaLayoutNode implements LayoutNode {
|
|
|
22
22
|
getComputedLeft(): number;
|
|
23
23
|
getComputedTop(): number;
|
|
24
24
|
getComputedWidth(): number;
|
|
25
|
+
getComputedMeasureWidth(): number;
|
|
25
26
|
getComputedHeight(): number;
|
|
26
27
|
getComputedBorder(edge: LayoutEdge): number;
|
|
27
28
|
getComputedPadding(edge: LayoutEdge): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yoga.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/yoga.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yoga.d.ts","sourceRoot":"","sources":["../../../../src/ink/layout/yoga.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,17 @@ export type CachedLayout = {
|
|
|
25
25
|
};
|
|
26
26
|
/** Layout bounds cached per rendered node, used for blitting and clearing. */
|
|
27
27
|
export declare const nodeCache: WeakMap<DOMElement, CachedLayout>;
|
|
28
|
+
/** Current prepared text only: scrolling changes its position, not its lines.
|
|
29
|
+
* Weak keys release unmounted nodes; mutations discard the previous version. */
|
|
30
|
+
export declare const textPaintCache: WeakMap<DOMElement, {
|
|
31
|
+
maxWidth: number;
|
|
32
|
+
background: string | undefined;
|
|
33
|
+
paddingLeft: number;
|
|
34
|
+
paddingTop: number;
|
|
35
|
+
text: string;
|
|
36
|
+
lines: readonly string[];
|
|
37
|
+
softWrap: boolean[] | undefined;
|
|
38
|
+
}>;
|
|
28
39
|
/** Rects of removed children that need clearing on next render */
|
|
29
40
|
export declare const pendingClears: WeakMap<DOMElement, Rectangle[]>;
|
|
30
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-cache.d.ts","sourceRoot":"","sources":["../../../src/ink/node-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;mCAG+B;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;mCAG+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,SAAS,mCAA0C,CAAA;AAEhE,kEAAkE;AAClE,eAAO,MAAM,aAAa,kCAAyC,CAAA;AAanE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,GAClB,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAIpD"}
|
|
1
|
+
{"version":3,"file":"node-cache.d.ts","sourceRoot":"","sources":["../../../src/ink/node-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;mCAG+B;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;mCAG+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,SAAS,mCAA0C,CAAA;AAEhE;gFACgF;AAChF,eAAO,MAAM,cAAc;cACf,MAAM;gBACJ,MAAM,GAAG,SAAS;iBACjB,MAAM;gBACP,MAAM;UACZ,MAAM;WACL,SAAS,MAAM,EAAE;cACd,OAAO,EAAE,GAAG,SAAS;EAC7B,CAAA;AAEJ,kEAAkE;AAClE,eAAO,MAAM,aAAa,kCAAyC,CAAA;AAanE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,GAClB,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAIpD"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/** Layout bounds cached per rendered node, used for blitting and clearing. */
|
|
2
2
|
export const nodeCache = new WeakMap();
|
|
3
|
+
/** Current prepared text only: scrolling changes its position, not its lines.
|
|
4
|
+
* Weak keys release unmounted nodes; mutations discard the previous version. */
|
|
5
|
+
export const textPaintCache = new WeakMap();
|
|
3
6
|
/** Rects of removed children that need clearing on next render */
|
|
4
7
|
export const pendingClears = new WeakMap();
|
|
5
8
|
/**
|
|
@@ -93,6 +93,8 @@ type WriteOperation = {
|
|
|
93
93
|
x: number;
|
|
94
94
|
y: number;
|
|
95
95
|
text: string;
|
|
96
|
+
/** Prepared physical lines, reused by unchanged Text nodes across scrolls. */
|
|
97
|
+
lines?: readonly string[];
|
|
96
98
|
/**
|
|
97
99
|
* Per-line soft-wrap flags, parallel to text.split('\n'). softWrap[i]=true
|
|
98
100
|
* means line i is a continuation of line i-1 (the `\n` before it was
|
|
@@ -267,8 +269,11 @@ export default class Output {
|
|
|
267
269
|
* @param y - the top row.
|
|
268
270
|
* @param text - the text to write.
|
|
269
271
|
* @param softWrap - per-line soft-wrap flags parallel to text.split('\n').
|
|
272
|
+
* @param lines - optional pre-split physical lines, exactly text.split('\n').
|
|
270
273
|
*/
|
|
271
|
-
write(x: number, y: number, text: string, softWrap?: boolean[]): void;
|
|
274
|
+
write(x: number, y: number, text: string, softWrap?: boolean[], lines?: readonly string[]): void;
|
|
275
|
+
/** Whether a rectangle can contribute cells under the current paint clip. */
|
|
276
|
+
isRectVisible(x: number, y: number, width: number, height: number): boolean;
|
|
272
277
|
/**
|
|
273
278
|
* Push a clip region; subsequent writes are restricted to it.
|
|
274
279
|
* @param clip - the clip region to apply.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/ink/output.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAcL,KAAK,MAAM,EACX,KAAK,SAAS,EAIf,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/ink/output.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAcL,KAAK,MAAM,EACX,KAAK,SAAS,EAIf,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAA;AAG5B;;;;;;;;;GASG;AACH,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B,CAAA;AAsCD;;;;GAIG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAG,CAAqC;IAChD,OAAO,CAAC,KAAK,CAAI;IAEjB;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,SAAS;IAS9C;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IAAI;IAuBpD,mEAAmE;IACnE,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,qCAAqC;IACrC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;;;GAIG;AACH,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,OAAO,CAAA;IAC3D,4EAA4E;IAC5E,cAAc,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAA;CACnD,CAAA;AAED,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GACjB,cAAc,GACd,aAAa,GACb,eAAe,GACf,aAAa,GACb,cAAc,GACd,cAAc,GACd,iBAAiB,GACjB,cAAc,CAAA;AAElB;;;;;GAKG;AACH,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CACvB,CAAA;AA6CD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,SAAS,CAAA;IACjB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAkKD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,MAAM,CAAQ;IACtB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,OAAO,CAAC,UAAU,CAA8D;IAEhF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+B;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,cAAc,CAAmC;IAEzD,OAAO,CAAC,SAAS,CAAkB;IAEnC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAAI;IAEvB,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAK3B;IAED,2EAA2E;IAC3E,OAAO,CAAC,aAAa;IAmBrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAA2D;gBAEpE,OAAO,EAAE,OAAO;IAc5B;;;;;;;;;OASG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,UAAQ,EACtB,cAAc,GAAE,SAAS,sBAAsB,EAAO,EACtD,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,OAAO,GAC1D,IAAI;IAmBP;;;;;;;OAOG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5E;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAItD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI9B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIjC;;;;OAIG;IACH,KAAK,CACH,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO;IAgEV;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAuBtC,0EAA0E;IAC1E,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAI3C,6DAA6D;IAC7D,wBAAwB,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO;IAcV,uEAAuE;IACvE,SAAS,IAAI,SAAS,sBAAsB,EAAE;IAoB9C,gFAAgF;IAChF,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IASpC;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAehG,6EAA6E;IAC7E,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAQ3E;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQtB,uCAAuC;IACvC,MAAM,IAAI,IAAI;IAOd;;;OAGG;IACH,GAAG,IAAI,MAAM;CAoPd"}
|
package/lib/types/ink/output.js
CHANGED
|
@@ -6,6 +6,7 @@ import { reorderBidi } from './bidi.js';
|
|
|
6
6
|
import { unionRect } from './layout/geometry.js';
|
|
7
7
|
import { blitRegion, cellRunSpan, createCellRun, extractHyperlinkFromStyles, filterOutHyperlinkStyles, markNoSelectRegion, OSC8_PREFIX, shadeRegion, recordCellRunEntry, recordSpacerRunEntry, replayCellRun, resetScreen, setCellAt, shiftRows, } from './screen.js';
|
|
8
8
|
import { stringWidth } from './stringWidth.js';
|
|
9
|
+
import { expandTabs } from './tabstops.js';
|
|
9
10
|
import { TERMINAL_IMAGE_MAX_CELLS, TERMINAL_IMAGE_MAX_FRAME_BYTES, TERMINAL_IMAGE_MAX_PLACEMENTS, } from './terminal-image.js';
|
|
10
11
|
import { widestLine } from './widest-line.js';
|
|
11
12
|
/**
|
|
@@ -540,7 +541,7 @@ export default class Output {
|
|
|
540
541
|
const occluded = this.operations.slice(end).some(op => {
|
|
541
542
|
if (op.type === 'write')
|
|
542
543
|
return overlaps({ x: op.x, y: op.y,
|
|
543
|
-
width: widestLine(op.text), height: op.text.split('\n').length });
|
|
544
|
+
width: widestLine(op.text), height: op.lines?.length ?? op.text.split('\n').length });
|
|
544
545
|
if (op.type === 'blit')
|
|
545
546
|
return overlaps(op);
|
|
546
547
|
if (op.type === 'clear' || op.type === 'shade')
|
|
@@ -568,8 +569,9 @@ export default class Output {
|
|
|
568
569
|
* @param y - the top row.
|
|
569
570
|
* @param text - the text to write.
|
|
570
571
|
* @param softWrap - per-line soft-wrap flags parallel to text.split('\n').
|
|
572
|
+
* @param lines - optional pre-split physical lines, exactly text.split('\n').
|
|
571
573
|
*/
|
|
572
|
-
write(x, y, text, softWrap) {
|
|
574
|
+
write(x, y, text, softWrap, lines) {
|
|
573
575
|
if (!text) {
|
|
574
576
|
return;
|
|
575
577
|
}
|
|
@@ -579,8 +581,17 @@ export default class Output {
|
|
|
579
581
|
y,
|
|
580
582
|
text,
|
|
581
583
|
softWrap,
|
|
584
|
+
lines,
|
|
582
585
|
});
|
|
583
586
|
}
|
|
587
|
+
/** Whether a rectangle can contribute cells under the current paint clip. */
|
|
588
|
+
isRectVisible(x, y, width, height) {
|
|
589
|
+
const clip = this.imageClips.at(-1);
|
|
590
|
+
return x < Math.min(this.width, clip?.x2 ?? this.width) &&
|
|
591
|
+
x + width > Math.max(0, clip?.x1 ?? 0) &&
|
|
592
|
+
y < Math.min(this.height, clip?.y2 ?? this.height) &&
|
|
593
|
+
y + height > Math.max(0, clip?.y1 ?? 0);
|
|
594
|
+
}
|
|
584
595
|
/**
|
|
585
596
|
* Push a clip region; subsequent writes are restricted to it.
|
|
586
597
|
* @param clip - the clip region to apply.
|
|
@@ -724,72 +735,51 @@ export default class Output {
|
|
|
724
735
|
case 'write': {
|
|
725
736
|
const { text, softWrap } = operation;
|
|
726
737
|
let { x, y } = operation;
|
|
727
|
-
let lines = text.split('\n');
|
|
728
|
-
let swFrom = 0;
|
|
738
|
+
let lines = operation.lines ?? text.split('\n');
|
|
729
739
|
let prevContentEnd = 0;
|
|
730
740
|
const clip = clips.at(-1);
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
sliced = sliceAnsi(line, from, to - 1);
|
|
768
|
-
}
|
|
769
|
-
return sliced;
|
|
770
|
-
});
|
|
771
|
-
if (x < clip.x1) {
|
|
772
|
-
x = clip.x1;
|
|
773
|
-
}
|
|
774
|
-
}
|
|
775
|
-
if (clipVertically) {
|
|
776
|
-
const from = y < clip.y1 ? clip.y1 - y : 0;
|
|
777
|
-
const height = lines.length;
|
|
778
|
-
const to = y + height > clip.y2 ? clip.y2 - y : height;
|
|
779
|
-
// If the first visible line is a soft-wrap continuation, we
|
|
780
|
-
// need the clipped previous line's content end so
|
|
781
|
-
// screen.softWrap[lineY] correctly records the join point
|
|
782
|
-
// even though that line's cells were never written.
|
|
783
|
-
if (softWrap && from > 0 && softWrap[from] === true) {
|
|
784
|
-
prevContentEnd = x + stringWidth(lines[from - 1]);
|
|
785
|
-
}
|
|
786
|
-
lines = lines.slice(from, to);
|
|
787
|
-
swFrom = from;
|
|
788
|
-
if (y < clip.y1) {
|
|
789
|
-
y = clip.y1;
|
|
790
|
-
}
|
|
791
|
-
}
|
|
741
|
+
// Clip vertically BEFORE measuring or slicing ANSI lines. A long
|
|
742
|
+
// tool result/code block may intersect the viewport by one row;
|
|
743
|
+
// horizontal work over its entire history is still O(transcript).
|
|
744
|
+
// Screen bounds apply even without an explicit overflow clip.
|
|
745
|
+
const from = Math.max(0, Math.max(0, clip?.y1 ?? 0) - y);
|
|
746
|
+
const to = Math.min(lines.length, Math.min(screenHeight, clip?.y2 ?? screenHeight) - y);
|
|
747
|
+
if (from >= to)
|
|
748
|
+
continue;
|
|
749
|
+
const swFrom = from;
|
|
750
|
+
const clipHorizontally = typeof clip?.x1 === 'number' && typeof clip?.x2 === 'number';
|
|
751
|
+
if (clipHorizontally && x >= clip.x2)
|
|
752
|
+
continue;
|
|
753
|
+
const clipLine = (line) => {
|
|
754
|
+
// Width/slicing treat raw tabs as zero cells. Expand at the
|
|
755
|
+
// ORIGINAL x before clipping, also for the soft-wrap predecessor.
|
|
756
|
+
line = expandTabs(line, undefined, x);
|
|
757
|
+
if (!clipHorizontally)
|
|
758
|
+
return line;
|
|
759
|
+
const start = Math.max(0, clip.x1 - x);
|
|
760
|
+
const width = stringWidth(line);
|
|
761
|
+
const end = Math.min(width, clip.x2 - x);
|
|
762
|
+
if (start >= end)
|
|
763
|
+
return '';
|
|
764
|
+
if (start === 0 && end === width)
|
|
765
|
+
return line;
|
|
766
|
+
let sliced = sliceAnsi(line, start, end);
|
|
767
|
+
// Do not leave a wide glyph's SpacerTail outside the clip.
|
|
768
|
+
if (stringWidth(sliced) > end - start)
|
|
769
|
+
sliced = sliceAnsi(line, start, end - 1);
|
|
770
|
+
return sliced;
|
|
771
|
+
};
|
|
772
|
+
const writeX = clipHorizontally ? Math.max(x, clip.x1) : x;
|
|
773
|
+
// Copy joins need only the preceding (horizontally clipped) line,
|
|
774
|
+
// not every discarded line. Preserve its content-end coordinate.
|
|
775
|
+
if (softWrap && from > 0 && softWrap[from] === true) {
|
|
776
|
+
prevContentEnd = writeX + stringWidth(clipLine(lines[from - 1]));
|
|
792
777
|
}
|
|
778
|
+
lines = lines.slice(from, to);
|
|
779
|
+
if (clipHorizontally)
|
|
780
|
+
lines = lines.map(clipLine);
|
|
781
|
+
x = writeX;
|
|
782
|
+
y += from;
|
|
793
783
|
const swBits = screen.softWrap;
|
|
794
784
|
let offsetY = 0;
|
|
795
785
|
for (const line of lines) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-node-to-output.d.ts","sourceRoot":"","sources":["../../../src/ink/render-node-to-output.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"render-node-to-output.d.ts","sourceRoot":"","sources":["../../../src/ink/render-node-to-output.ts"],"names":[],"mappings":"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"}
|