@simon_he/vue-tui 1.1.11 → 1.1.13
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/{TAgentTerminalGraphic-B8-YZfuP.js → TAgentTerminalGraphic-BKDAoGoE.js} +1 -1
- package/dist/{TMermaidText-C1akgJPU.js → TMermaidText-DJmYNqhh.js} +1 -1
- package/dist/{TSelect-C-WzsLAD.js → TSelect-CnBJET_C.js} +3 -3
- package/dist/{TTree-1JP-PZ2T.js → TTree-DqyzDB0h.js} +16 -16
- package/dist/{TVideo-D9AOiyq2.js → TVideo-C3gnTlFD.js} +3 -3
- package/dist/agent.cjs +573 -263
- package/dist/agent.js +8 -8
- package/dist/{block-source-BhvdZomx.js → block-source-BGTRldY7.js} +2 -2
- package/dist/cli.cjs +18 -16
- package/dist/cli.js +18 -22
- package/dist/experimental/browser.js +4 -4
- package/dist/experimental.cjs +18 -5
- package/dist/experimental.js +6 -6
- package/dist/{frame-mailbox-DaTrfyaF.js → frame-mailbox-6XHw-P8Q.js} +1 -1
- package/dist/index.cjs +9 -7
- package/dist/index.js +5 -5
- package/dist/{linkify-CklfA1vp.js → linkify-DF96jKWy.js} +1 -1
- package/dist/markdown.cjs +568 -258
- package/dist/markdown.js +2 -2
- package/dist/{mermaid-D0ov4_A1.js → mermaid-qhG4TDdu.js} +2 -2
- package/dist/mermaid.js +3 -3
- package/dist/{rect-JzWMJxxc.js → rect-Dfevd15m.js} +30 -1
- package/dist/{tlog-theme-BnILsD3n.js → tlog-theme-DKq1YOQF.js} +8 -8
- package/dist/vue/utils/text.d.ts +13 -0
- package/dist/vue.cjs +9 -7
- package/dist/vue.js +6 -6
- package/package.json +2 -2
package/dist/agent.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import "./create-terminal-Db_-UGVQ.js";
|
|
2
2
|
import "./hyperlink-clbb_ha_.js";
|
|
3
|
-
import { forEachTextCellSegment, recordTerminalGraphicTrace, sanitizeInlineText, sanitizeTextBlock, sliceByCells, spaces, textCellWidth$1 as textCellWidth, useTerminal, withTextWidthProvider } from "./rect-
|
|
4
|
-
import "./linkify-
|
|
3
|
+
import { forEachTextCellSegment, recordTerminalGraphicTrace, sanitizeInlineText, sanitizeTextBlock, sliceByCells, spaces, textCellWidth$1 as textCellWidth, useTerminal, withTextWidthProvider } from "./rect-Dfevd15m.js";
|
|
4
|
+
import "./linkify-DF96jKWy.js";
|
|
5
5
|
import "./frame-perf-CHpWhbC4.js";
|
|
6
6
|
import "./env-Cl8qmNFN.js";
|
|
7
7
|
import "./terminal-selection-4W1SJj4c.js";
|
|
8
8
|
import "./debug-logger-CmsGI4of.js";
|
|
9
|
-
import { TBox, TCommandPalette, TDialog, TInput, TRenderPlane, TSelect, computeCommandPaletteMatchRanges } from "./TSelect-
|
|
10
|
-
import { TText, TView } from "./frame-mailbox-
|
|
9
|
+
import { TBox, TCommandPalette, TDialog, TInput, TRenderPlane, TSelect, computeCommandPaletteMatchRanges } from "./TSelect-CnBJET_C.js";
|
|
10
|
+
import { TText, TView } from "./frame-mailbox-6XHw-P8Q.js";
|
|
11
11
|
import "./path-BI9W15Zt.js";
|
|
12
12
|
import "./wheel-scroll-CQ22Hcyj.js";
|
|
13
|
-
import { TMermaid$1 as TMermaid, TMermaidText$1 as TMermaidText, isSimpleMermaidFlowchartSource, markMermaidRenderErrorFatal } from "./TMermaidText-
|
|
13
|
+
import { TMermaid$1 as TMermaid, TMermaidText$1 as TMermaidText, isSimpleMermaidFlowchartSource, markMermaidRenderErrorFatal } from "./TMermaidText-DJmYNqhh.js";
|
|
14
14
|
import { createIterm2InlineImageSequence, createKittyDeleteGraphicsSequence, createKittyGraphicsSequence, createKittyPlacementSequence, createTerminalGraphicPngSequence, detectTerminalGraphicsCapabilities, getTerminalGraphicsOutput, getTerminalGraphicsOutputVersion, hashTerminalGraphicsString, isSafeTerminalGraphicsSequence, normalizeTerminalGraphicSize, sanitizeTerminalFallbackText, subscribeTerminalGraphicsOutput } from "./terminal-graphics-DpSL29OQ.js";
|
|
15
|
-
import { TVirtualMarkdown, createMarkdownBlockSource } from "./block-source-
|
|
15
|
+
import { TVirtualMarkdown, createMarkdownBlockSource } from "./block-source-BGTRldY7.js";
|
|
16
16
|
import "./math-image-CcUpBnW0.js";
|
|
17
|
-
import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-
|
|
18
|
-
import { TAgentTerminalGraphic } from "./TAgentTerminalGraphic-
|
|
17
|
+
import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-DKq1YOQF.js";
|
|
18
|
+
import { TAgentTerminalGraphic } from "./TAgentTerminalGraphic-BKDAoGoE.js";
|
|
19
19
|
import { computed, defineComponent, h } from "vue";
|
|
20
20
|
|
|
21
21
|
//#region src/vue/agent/view-models.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { hasEncodedControl, sanitizeDomHref } from "./hyperlink-clbb_ha_.js";
|
|
2
|
-
import { EventZIndexContextKey, RenderPlaneContextKey, currentTextWidthProvider, forEachTextCellSegment, intersectRect, normalizeCellRect, repeatChar, sanitizeInlineText, sanitizeTextBlock, sliceByCellsRange, spaces, textCellWidth$1 as textCellWidth, translateRect, useLayout, useRenderNode, useTerminal, useTerminalNode, useVisibility, withTextWidthProvider } from "./rect-
|
|
2
|
+
import { EventZIndexContextKey, RenderPlaneContextKey, currentTextWidthProvider, forEachTextCellSegment, intersectRect, normalizeCellRect, repeatChar, sanitizeInlineText, sanitizeTextBlock, sliceByCellsRange, sliceByCellsRangeForSelection, spaces, textCellWidth$1 as textCellWidth, translateRect, useLayout, useRenderNode, useTerminal, useTerminalNode, useVisibility, withTextWidthProvider } from "./rect-Dfevd15m.js";
|
|
3
3
|
import { terminalSelectionRowSpans, terminalSelectionVisibleRowSpans } from "./terminal-selection-4W1SJj4c.js";
|
|
4
4
|
import { createDebugLogger, isDebugEnabled } from "./debug-logger-CmsGI4of.js";
|
|
5
5
|
import { applyWheelScroll, createWheelScrollState, resetWheelScrollState } from "./wheel-scroll-CQ22Hcyj.js";
|
|
@@ -2597,7 +2597,7 @@ const TVirtualMarkdown = defineComponent({
|
|
|
2597
2597
|
function textForSelectionRange(range) {
|
|
2598
2598
|
const cols = Math.max(1, Math.floor(props.w));
|
|
2599
2599
|
return withTextWidthProvider(widthProvider, () => terminalSelectionRowSpans(range, cols, rows.value.length).map((span) => {
|
|
2600
|
-
const text =
|
|
2600
|
+
const text = sliceByCellsRangeForSelection(rows.value[span.y]?.plainText ?? "", span.x0, span.x1);
|
|
2601
2601
|
return span.x1 >= cols ? text.trimEnd() : text;
|
|
2602
2602
|
}).join("\n"));
|
|
2603
2603
|
}
|
package/dist/cli.cjs
CHANGED
|
@@ -2150,7 +2150,7 @@ function createElement(type) {
|
|
|
2150
2150
|
}, el;
|
|
2151
2151
|
}
|
|
2152
2152
|
function insert(child, parent, anchor) {
|
|
2153
|
-
child.parent = parent;
|
|
2153
|
+
child.parent && remove(child), child.parent = parent;
|
|
2154
2154
|
let list = parent.children;
|
|
2155
2155
|
if (!anchor) {
|
|
2156
2156
|
list.push(child);
|
|
@@ -5673,7 +5673,7 @@ function createRenderManager(terminal, options = {}) {
|
|
|
5673
5673
|
for (let node of nodes.values())
|
|
5674
5674
|
addToRowBuckets(node);
|
|
5675
5675
|
}
|
|
5676
|
-
function
|
|
5676
|
+
function shouldScanFullPlane(dirtyRows, planeNodes) {
|
|
5677
5677
|
return planeNodes > 1 && dirtyRows >= ROW_BUCKET_DIRTY_RATIO_MIN_ROWS && terminalRows > 0 && dirtyRows / terminalRows >= ROW_BUCKET_DIRTY_RATIO_FALLBACK && dirtyRows >= planeNodes * ROW_BUCKET_DIRTY_RATIO_FALLBACK;
|
|
5678
5678
|
}
|
|
5679
5679
|
function ensureRenderedRowsScratch() {
|
|
@@ -5927,12 +5927,7 @@ function createRenderManager(terminal, options = {}) {
|
|
|
5927
5927
|
if (!state || !state.allRowsDirty && state.dirtyRowCount === 0)
|
|
5928
5928
|
continue;
|
|
5929
5929
|
let planeNodes = sortedNodesByPlane.get(plane) ?? [], isFullPlaneRepaint = state.allRowsDirty, rows = allRows;
|
|
5930
|
-
if (!isFullPlaneRepaint
|
|
5931
|
-
plane,
|
|
5932
|
-
reason: "dirty-ratio",
|
|
5933
|
-
dirtyRows: state.dirtyRowCount,
|
|
5934
|
-
planeNodes: planeNodes.length
|
|
5935
|
-
})), !isFullPlaneRepaint) {
|
|
5930
|
+
if (!isFullPlaneRepaint) {
|
|
5936
5931
|
dirtyRowsScratch.length = 0, rows = dirtyRowsScratch;
|
|
5937
5932
|
let startY = Number.isFinite(state.dirtyMinY) ? state.dirtyMinY : 0, endY = state.dirtyMaxY;
|
|
5938
5933
|
for (let y = startY; y <= endY; y++)
|
|
@@ -5944,6 +5939,13 @@ function createRenderManager(terminal, options = {}) {
|
|
|
5944
5939
|
}
|
|
5945
5940
|
resetPlaneRowsForRender(terminal, plane, isFullPlaneRepaint ? null : rows);
|
|
5946
5941
|
let paintRows = isFullPlaneRepaint ? void 0 : rows, needsIntersectFilter = !1, candidateNodes = isFullPlaneRepaint ? planeNodes : (() => {
|
|
5942
|
+
if (shouldScanFullPlane(rows.length, planeNodes.length))
|
|
5943
|
+
return needsIntersectFilter = !0, rowBucketFallbacks.push({
|
|
5944
|
+
plane,
|
|
5945
|
+
reason: "dirty-ratio",
|
|
5946
|
+
dirtyRows: rows.length,
|
|
5947
|
+
planeNodes: planeNodes.length
|
|
5948
|
+
}), planeNodes;
|
|
5947
5949
|
let marks = beginCandidateCollection(planeNodes), buckets = rowBuckets.get(plane);
|
|
5948
5950
|
for (let y of rows) {
|
|
5949
5951
|
let rowIds = buckets == null ? void 0 : buckets.get(y);
|
|
@@ -7917,7 +7919,7 @@ function createStdoutRenderer(terminal, options) {
|
|
|
7917
7919
|
}
|
|
7918
7920
|
return 0;
|
|
7919
7921
|
}
|
|
7920
|
-
let useSyncOutput = resolveUseSyncOutput(), isGhostty = "GHOSTTY_RESOURCES_DIR" in (((_b = import_node_process6.default) == null ? void 0 : _b.env) ?? {}), chunkSize = 8 * 1024, chunkThresholdBytes = 64 * 1024, syncMaxBytes = 128 * 1024,
|
|
7922
|
+
let useSyncOutput = resolveUseSyncOutput(), isGhostty = "GHOSTTY_RESOURCES_DIR" in (((_b = import_node_process6.default) == null ? void 0 : _b.env) ?? {}), chunkSize = 8 * 1024, chunkThresholdBytes = 64 * 1024, syncMaxBytes = 128 * 1024, DIRTY_SPAN_MERGE_GAP_CELLS = 2, DIRTY_SPAN_MAX_PER_ROW = 12, DIRTY_SPAN_FULL_ROW_THRESHOLD = 0.7, EST_STYLE_SWITCH_BYTES = 8, EST_CLEAR_TO_EOL_BYTES = 3, disableCursorPos = !1, termProgram = String(env.TERM_PROGRAM ?? "").trim().toLowerCase(), term = String(env.TERM ?? "").trim().toLowerCase(), isKitty = "KITTY_WINDOW_ID" in env || termProgram.includes("kitty") || term.includes("kitty"), isAlacritty = "ALACRITTY_WINDOW_ID" in env || "ALACRITTY_LOG" in env || termProgram.includes("alacritty") || term.includes("alacritty"), isWezTerm = "WEZTERM_PANE" in env || "WEZTERM_EXECUTABLE" in env || termProgram.includes("wezterm"), isVscodeTerminal = termProgram === "vscode" || "VSCODE_PID" in env || "VSCODE_IPC_HOOK_CLI" in env, useConservativeDirtyRows = !!(outputIsTTY && (isGhostty || isKitty || isAlacritty || isWezTerm)), normalizeDirtyRowPatchMode = (value) => {
|
|
7921
7923
|
let normalized = typeof value == "string" ? value.trim().toLowerCase() : value;
|
|
7922
7924
|
return normalized === "auto" || normalized === "row" || normalized === "span" ? normalized : null;
|
|
7923
7925
|
}, normalizeColumnDiffMode = (value) => value === !0 ? "span" : value === !1 ? "row" : typeof value == "string" && value.trim().toLowerCase() === "auto" ? "auto" : null, firstValidDirtyRowPatchMode = (...values) => {
|
|
@@ -9309,8 +9311,10 @@ function createStdoutRenderer(terminal, options) {
|
|
|
9309
9311
|
}, overlayCoverage = overlayPlaneCoverageRows(size.rows), overlayVisibleSpans = overlayVisibleSpansForRows(overlayCoverage.blockedRows), rowsToRender = (() => {
|
|
9310
9312
|
if (allowGraphicsOnlyWithoutBaseline)
|
|
9311
9313
|
return [];
|
|
9312
|
-
if (forceFullRender || !fpPrevValid
|
|
9314
|
+
if (forceFullRender || !fpPrevValid)
|
|
9313
9315
|
return null;
|
|
9316
|
+
if (!dirtyRows)
|
|
9317
|
+
return anchorMode === "bottom" ? null : Array.from({ length: size.rows }, (_, y) => y);
|
|
9314
9318
|
if (dirtyRows.length === 0)
|
|
9315
9319
|
return [];
|
|
9316
9320
|
let outRows = [];
|
|
@@ -9539,8 +9543,6 @@ function createStdoutRenderer(terminal, options) {
|
|
|
9539
9543
|
)), explicitScrollOperations && rowsToRender && (!enableScrollRegions || !fpPrevValid) && (includeRowsForPendingScrollOperations(explicitScrollOperations), rowsToRender = Array.from(expandedRows).sort((a, b) => a - b), dirtySorted = !0, forceDirtyRowsRepaintForFrame = !0, explicitScrollOperations = null, hiddenExplicitDirtyRows = null, isDebugEnabled() && getDebugLog().render(
|
|
9540
9544
|
enableScrollRegions ? " Explicit scroll ops fell back to region repaint because previous fingerprints are unavailable" : " Explicit scroll ops fell back to region repaint because scroll regions are disabled"
|
|
9541
9545
|
));
|
|
9542
|
-
let denseDirtyRows = !!(rowsToRender && size.rows > 1 && rowsToRender.length >= size.rows * dirtyFullThreshold);
|
|
9543
|
-
denseDirtyRows && (rowsToRender = null);
|
|
9544
9546
|
let profiledRowCount = rowsToRender ? rowsToRender.length : size.rows, useScrollRegions = !terminalGraphicsBlockScrollRegions && enableScrollRegions && fpPrevValid && scrollRowsCandidate && scrollRowsCandidate.length >= 3 && !forceDirtyRowsRepaint && allowInferredScrollRegions, scrollHandled = !1;
|
|
9545
9547
|
if (enableScrollRegions && explicitScrollOperations && scrollRowsCandidate && fpPrevValid) {
|
|
9546
9548
|
currentFP.length === prevFP.length && (currentFP.set(prevFP), currentHrefIds.set(prevHrefIds), currentTextIds.set(prevTextIds));
|
|
@@ -9690,9 +9692,7 @@ function createStdoutRenderer(terminal, options) {
|
|
|
9690
9692
|
profiledRowCount = renderedRows.size, scrollHandled = !0;
|
|
9691
9693
|
}
|
|
9692
9694
|
}
|
|
9693
|
-
if (!scrollHandled
|
|
9694
|
-
` Dense dirty rows fell back to partial render: ${rowsToRender.length} rows`
|
|
9695
|
-
)), !scrollHandled)
|
|
9695
|
+
if (!scrollHandled)
|
|
9696
9696
|
if (rowsToRender) {
|
|
9697
9697
|
let overlayDirtyRows = overlayTouchedRowSet ? rowsToRender.filter((y) => overlayTouchedRowSet.has(y)) : [];
|
|
9698
9698
|
isDebugEnabled() && getDebugLog().render(
|
|
@@ -10346,7 +10346,9 @@ function createStdoutRenderer(terminal, options) {
|
|
|
10346
10346
|
capabilities: STDOUT_RENDERER_CAPABILITIES,
|
|
10347
10347
|
graphicsCapabilities,
|
|
10348
10348
|
render,
|
|
10349
|
-
forceRender: () =>
|
|
10349
|
+
forceRender: () => {
|
|
10350
|
+
fpPrevValid = !1, render(void 0, !0);
|
|
10351
|
+
},
|
|
10350
10352
|
dispose,
|
|
10351
10353
|
setCursor,
|
|
10352
10354
|
showCursor,
|
package/dist/cli.js
CHANGED
|
@@ -2523,6 +2523,7 @@ function createElement(type) {
|
|
|
2523
2523
|
return el;
|
|
2524
2524
|
}
|
|
2525
2525
|
function insert(child, parent, anchor) {
|
|
2526
|
+
if (child.parent) remove(child);
|
|
2526
2527
|
child.parent = parent;
|
|
2527
2528
|
const list = parent.children;
|
|
2528
2529
|
if (!anchor) {
|
|
@@ -6901,7 +6902,7 @@ function createRenderManager(terminal, options = {}) {
|
|
|
6901
6902
|
largeNodeIdsByPlane.clear();
|
|
6902
6903
|
for (const node of nodes.values()) addToRowBuckets(node);
|
|
6903
6904
|
}
|
|
6904
|
-
function
|
|
6905
|
+
function shouldScanFullPlane(dirtyRows, planeNodes) {
|
|
6905
6906
|
return planeNodes > 1 && dirtyRows >= ROW_BUCKET_DIRTY_RATIO_MIN_ROWS && terminalRows > 0 && dirtyRows / terminalRows >= ROW_BUCKET_DIRTY_RATIO_FALLBACK && dirtyRows >= planeNodes * ROW_BUCKET_DIRTY_RATIO_FALLBACK;
|
|
6906
6907
|
}
|
|
6907
6908
|
function ensureRenderedRowsScratch() {
|
|
@@ -7269,18 +7270,8 @@ function createRenderManager(terminal, options = {}) {
|
|
|
7269
7270
|
const state = planeDirtyStates.get(plane);
|
|
7270
7271
|
if (!state || !state.allRowsDirty && state.dirtyRowCount === 0) continue;
|
|
7271
7272
|
const planeNodes = sortedNodesByPlane.get(plane) ?? [];
|
|
7272
|
-
|
|
7273
|
+
const isFullPlaneRepaint = state.allRowsDirty;
|
|
7273
7274
|
let rows = allRows;
|
|
7274
|
-
if (!isFullPlaneRepaint && shouldPromoteToFullPlaneDirty(state.dirtyRowCount, planeNodes.length)) {
|
|
7275
|
-
isFullPlaneRepaint = true;
|
|
7276
|
-
state.allRowsDirty = true;
|
|
7277
|
-
rowBucketFallbacks.push({
|
|
7278
|
-
plane,
|
|
7279
|
-
reason: "dirty-ratio",
|
|
7280
|
-
dirtyRows: state.dirtyRowCount,
|
|
7281
|
-
planeNodes: planeNodes.length
|
|
7282
|
-
});
|
|
7283
|
-
}
|
|
7284
7275
|
if (!isFullPlaneRepaint) {
|
|
7285
7276
|
dirtyRowsScratch.length = 0;
|
|
7286
7277
|
rows = dirtyRowsScratch;
|
|
@@ -7296,6 +7287,16 @@ function createRenderManager(terminal, options = {}) {
|
|
|
7296
7287
|
const paintRows = isFullPlaneRepaint ? void 0 : rows;
|
|
7297
7288
|
let needsIntersectFilter = false;
|
|
7298
7289
|
const candidateNodes = isFullPlaneRepaint ? planeNodes : (() => {
|
|
7290
|
+
if (shouldScanFullPlane(rows.length, planeNodes.length)) {
|
|
7291
|
+
needsIntersectFilter = true;
|
|
7292
|
+
rowBucketFallbacks.push({
|
|
7293
|
+
plane,
|
|
7294
|
+
reason: "dirty-ratio",
|
|
7295
|
+
dirtyRows: rows.length,
|
|
7296
|
+
planeNodes: planeNodes.length
|
|
7297
|
+
});
|
|
7298
|
+
return planeNodes;
|
|
7299
|
+
}
|
|
7299
7300
|
const marks = beginCandidateCollection(planeNodes);
|
|
7300
7301
|
const buckets = rowBuckets.get(plane);
|
|
7301
7302
|
for (const y of rows) {
|
|
@@ -9995,7 +9996,6 @@ function createStdoutRenderer(terminal, options) {
|
|
|
9995
9996
|
const chunkSize = 8 * 1024;
|
|
9996
9997
|
const chunkThresholdBytes = 64 * 1024;
|
|
9997
9998
|
const syncMaxBytes = 128 * 1024;
|
|
9998
|
-
const dirtyFullThreshold = .6;
|
|
9999
9999
|
const DIRTY_SPAN_MERGE_GAP_CELLS = 2;
|
|
10000
10000
|
const DIRTY_SPAN_MAX_PER_ROW = 12;
|
|
10001
10001
|
const DIRTY_SPAN_FULL_ROW_THRESHOLD = .7;
|
|
@@ -11857,7 +11857,7 @@ function createStdoutRenderer(terminal, options) {
|
|
|
11857
11857
|
let rowsToRender = (() => {
|
|
11858
11858
|
if (allowGraphicsOnlyWithoutBaseline) return [];
|
|
11859
11859
|
if (forceFullRender || !fpPrevValid) return null;
|
|
11860
|
-
if (!dirtyRows) return null;
|
|
11860
|
+
if (!dirtyRows) return anchorMode === "bottom" ? null : Array.from({ length: size.rows }, (_, y) => y);
|
|
11861
11861
|
if (dirtyRows.length === 0) return [];
|
|
11862
11862
|
const outRows = [];
|
|
11863
11863
|
outRows.length = dirtyRows.length;
|
|
@@ -12197,8 +12197,6 @@ function createStdoutRenderer(terminal, options) {
|
|
|
12197
12197
|
hiddenExplicitDirtyRows = null;
|
|
12198
12198
|
if (isDebugEnabled()) getDebugLog().render(enableScrollRegions ? " Explicit scroll ops fell back to region repaint because previous fingerprints are unavailable" : " Explicit scroll ops fell back to region repaint because scroll regions are disabled");
|
|
12199
12199
|
}
|
|
12200
|
-
const denseDirtyRows = Boolean(rowsToRender && size.rows > 1 && rowsToRender.length >= size.rows * dirtyFullThreshold);
|
|
12201
|
-
if (denseDirtyRows) rowsToRender = null;
|
|
12202
12200
|
let profiledRowCount = rowsToRender ? rowsToRender.length : size.rows;
|
|
12203
12201
|
const useScrollRegions = !terminalGraphicsBlockScrollRegions && enableScrollRegions && fpPrevValid && scrollRowsCandidate && scrollRowsCandidate.length >= 3 && !forceDirtyRowsRepaint && allowInferredScrollRegions;
|
|
12204
12202
|
let scrollHandled = false;
|
|
@@ -12381,11 +12379,6 @@ function createStdoutRenderer(terminal, options) {
|
|
|
12381
12379
|
scrollHandled = true;
|
|
12382
12380
|
}
|
|
12383
12381
|
}
|
|
12384
|
-
if (!scrollHandled && denseDirtyRows && scrollRowsCandidate && useScrollRegions) {
|
|
12385
|
-
rowsToRender = scrollRowsCandidate;
|
|
12386
|
-
profiledRowCount = rowsToRender.length;
|
|
12387
|
-
if (isDebugEnabled()) getDebugLog().render(` Dense dirty rows fell back to partial render: ${rowsToRender.length} rows`);
|
|
12388
|
-
}
|
|
12389
12382
|
if (scrollHandled) {} else if (!rowsToRender) {
|
|
12390
12383
|
if (isDebugEnabled()) getDebugLog().render(` Full render: ${size.rows} rows`);
|
|
12391
12384
|
for (let y = 0; y < size.rows; y++) {
|
|
@@ -13346,7 +13339,10 @@ function createStdoutRenderer(terminal, options) {
|
|
|
13346
13339
|
capabilities: STDOUT_RENDERER_CAPABILITIES,
|
|
13347
13340
|
graphicsCapabilities,
|
|
13348
13341
|
render,
|
|
13349
|
-
forceRender: () =>
|
|
13342
|
+
forceRender: () => {
|
|
13343
|
+
fpPrevValid = false;
|
|
13344
|
+
render(void 0, true);
|
|
13345
|
+
},
|
|
13350
13346
|
dispose,
|
|
13351
13347
|
setCursor,
|
|
13352
13348
|
showCursor,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "../create-terminal-Db_-UGVQ.js";
|
|
2
|
-
import { intersectRect, translateRect, useLayout, useTerminal, useTerminalNode, useVisibility } from "../rect-
|
|
3
|
-
import "../frame-mailbox-
|
|
2
|
+
import { intersectRect, translateRect, useLayout, useTerminal, useTerminalNode, useVisibility } from "../rect-Dfevd15m.js";
|
|
3
|
+
import "../frame-mailbox-6XHw-P8Q.js";
|
|
4
4
|
import "../terminal-graphics-DpSL29OQ.js";
|
|
5
|
-
import "../TAgentTerminalGraphic-
|
|
6
|
-
import { TVideo } from "../TVideo-
|
|
5
|
+
import "../TAgentTerminalGraphic-BKDAoGoE.js";
|
|
6
|
+
import { TVideo } from "../TVideo-C3gnTlFD.js";
|
|
7
7
|
import { computed, defineComponent, h, onBeforeUnmount, watch, watchEffect } from "vue";
|
|
8
8
|
|
|
9
9
|
//#region src/vue/components/TBrowser.ts
|
package/dist/experimental.cjs
CHANGED
|
@@ -938,6 +938,19 @@ function sliceByCellsRange(text, startCells, endCells, provider = currentTextWid
|
|
|
938
938
|
out.push(g), cells = next;
|
|
939
939
|
}), out.length ? out.join("") : "";
|
|
940
940
|
}
|
|
941
|
+
function sliceByCellsRangeForSelection(text, startCells, endCells, provider = currentTextWidthProvider()) {
|
|
942
|
+
if (startCells = Math.max(0, Math.floor(startCells)), endCells = Math.max(0, Math.floor(endCells)), endCells <= startCells || !text)
|
|
943
|
+
return "";
|
|
944
|
+
if (hasAsciiFastPath(provider) && isAscii(text))
|
|
945
|
+
return text.slice(startCells, endCells);
|
|
946
|
+
let out = [], cells = 0;
|
|
947
|
+
return forEachGrapheme(text, (g) => {
|
|
948
|
+
let leadingCell = cells;
|
|
949
|
+
if (cells += charCellWidth(g, provider), leadingCell >= endCells)
|
|
950
|
+
return !1;
|
|
951
|
+
leadingCell >= startCells && out.push(g);
|
|
952
|
+
}), out.join("");
|
|
953
|
+
}
|
|
941
954
|
function padEndByCells(text, width, provider = currentTextWidthProvider()) {
|
|
942
955
|
width = Math.max(0, Math.floor(width));
|
|
943
956
|
let cells = text && hasAsciiFastPath(provider) && isAscii(text) ? text.length : textCellWidth(text, provider);
|
|
@@ -1780,7 +1793,7 @@ var virtualListInstanceSeq = 0, TVirtualList = (0, import_vue9.defineComponent)(
|
|
|
1780
1793
|
function textForSelectionRange(range) {
|
|
1781
1794
|
let cols = Math.max(1, Math.floor(props.w));
|
|
1782
1795
|
return terminalSelectionRowSpans(range, cols, itemCount.value).map((span) => {
|
|
1783
|
-
let text =
|
|
1796
|
+
let text = sliceByCellsRangeForSelection(itemText(span.y), span.x0, span.x1);
|
|
1784
1797
|
return span.x1 >= cols ? text.trimEnd() : text;
|
|
1785
1798
|
}).join(`
|
|
1786
1799
|
`);
|
|
@@ -6301,7 +6314,7 @@ var virtualRowsInstanceSeq = 0, EMPTY_RECT2 = Object.freeze({ x: 0, y: 0, w: 0,
|
|
|
6301
6314
|
x1: span.x1,
|
|
6302
6315
|
cols
|
|
6303
6316
|
}) ?? ""
|
|
6304
|
-
) :
|
|
6317
|
+
) : sliceByCellsRangeForSelection(itemText(span.y), span.x0, span.x1);
|
|
6305
6318
|
return span.x1 >= cols ? text.trimEnd() : text;
|
|
6306
6319
|
}).join(`
|
|
6307
6320
|
`);
|
|
@@ -7039,7 +7052,7 @@ var TTranscriptView = (0, import_vue17.defineComponent)({
|
|
|
7039
7052
|
let text = "";
|
|
7040
7053
|
for (let segment of segments) {
|
|
7041
7054
|
let start = Math.max(x0, segment.x0), end = Math.min(x1, segment.x1);
|
|
7042
|
-
end <= start || !segment.selectable || (text +=
|
|
7055
|
+
end <= start || !segment.selectable || (text += sliceByCellsRangeForSelection(segment.text, start - segment.x0, end - segment.x0));
|
|
7043
7056
|
}
|
|
7044
7057
|
return text;
|
|
7045
7058
|
}
|
|
@@ -7068,7 +7081,7 @@ var TTranscriptView = (0, import_vue17.defineComponent)({
|
|
|
7068
7081
|
}
|
|
7069
7082
|
function selectionTextForVisualRowSpan(ctx) {
|
|
7070
7083
|
let visualRow = ctx.item;
|
|
7071
|
-
return visualRow ? visualRow.selectionSegments.length ? textForSelectionSegments(visualRow.selectionSegments, ctx.x0, ctx.x1) :
|
|
7084
|
+
return visualRow ? visualRow.selectionSegments.length ? textForSelectionSegments(visualRow.selectionSegments, ctx.x0, ctx.x1) : sliceByCellsRangeForSelection(selectionTextForVisualRow(visualRow), ctx.x0, ctx.x1) : "";
|
|
7072
7085
|
}
|
|
7073
7086
|
return () => (0, import_vue17.h)(TVirtualRows, {
|
|
7074
7087
|
ref: rowsRef,
|
|
@@ -9357,7 +9370,7 @@ var TLogView = (0, import_vue18.defineComponent)({
|
|
|
9357
9370
|
function textForSelectionRange(range) {
|
|
9358
9371
|
let cols = currentWrapWidth(), rows = estimatedVisualRowCount();
|
|
9359
9372
|
return terminalSelectionRowSpans(range, cols, rows).map((span) => {
|
|
9360
|
-
let text =
|
|
9373
|
+
let text = sliceByCellsRangeForSelection(textForVisualRow(span.y), span.x0, span.x1);
|
|
9361
9374
|
return span.x1 >= cols ? text.trimEnd() : text;
|
|
9362
9375
|
}).join(`
|
|
9363
9376
|
`);
|
package/dist/experimental.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "./create-terminal-Db_-UGVQ.js";
|
|
2
2
|
import { sanitizeTerminalHref } from "./hyperlink-clbb_ha_.js";
|
|
3
|
-
import { EventZIndexContextKey, forEachTextCellSegment, intersectRect, sanitizeInlineText, sliceByCells, spaces, textCellWidth$1 as textCellWidth, translateRect, useLayout, useRenderNode, useTerminal, useTerminalNode, useVisibility } from "./rect-
|
|
4
|
-
import { mergeStyle } from "./linkify-
|
|
3
|
+
import { EventZIndexContextKey, forEachTextCellSegment, intersectRect, sanitizeInlineText, sliceByCells, spaces, textCellWidth$1 as textCellWidth, translateRect, useLayout, useRenderNode, useTerminal, useTerminalNode, useVisibility } from "./rect-Dfevd15m.js";
|
|
4
|
+
import { mergeStyle } from "./linkify-DF96jKWy.js";
|
|
5
5
|
import "./frame-perf-CHpWhbC4.js";
|
|
6
6
|
import "./terminal-selection-4W1SJj4c.js";
|
|
7
|
-
import { TView } from "./frame-mailbox-
|
|
7
|
+
import { TView } from "./frame-mailbox-6XHw-P8Q.js";
|
|
8
8
|
import "./wheel-scroll-CQ22Hcyj.js";
|
|
9
9
|
import "./terminal-graphics-DpSL29OQ.js";
|
|
10
|
-
import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, handleTLogKeymapEvent, matchesTLogKeyBinding, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultKeymap, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastKeymap, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-
|
|
11
|
-
import "./TAgentTerminalGraphic-
|
|
12
|
-
import { TVideo } from "./TVideo-
|
|
10
|
+
import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, handleTLogKeymapEvent, matchesTLogKeyBinding, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultKeymap, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastKeymap, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-DKq1YOQF.js";
|
|
11
|
+
import "./TAgentTerminalGraphic-BKDAoGoE.js";
|
|
12
|
+
import { TVideo } from "./TVideo-C3gnTlFD.js";
|
|
13
13
|
import { computed, defineComponent, h, inject, onBeforeUnmount, onUnmounted, ref, watch } from "vue";
|
|
14
14
|
|
|
15
15
|
//#region src/vue/components/T3DViewport.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventZIndexContextKey, LayoutContextKey, RenderStackKey, intersectRect, padEndByCells$1 as padEndByCells, sanitizeInlineText, sanitizeTextBlock, sliceByCells, sliceByCellsRange, spaces, textCellWidth$1 as textCellWidth, translateRect, useLayout, useRenderNode, useRenderStack, useTerminal, useTerminalNode, useVisibility, wrapByCells } from "./rect-
|
|
1
|
+
import { EventZIndexContextKey, LayoutContextKey, RenderStackKey, intersectRect, padEndByCells$1 as padEndByCells, sanitizeInlineText, sanitizeTextBlock, sliceByCells, sliceByCellsRange, spaces, textCellWidth$1 as textCellWidth, translateRect, useLayout, useRenderNode, useRenderStack, useTerminal, useTerminalNode, useVisibility, wrapByCells } from "./rect-Dfevd15m.js";
|
|
2
2
|
import { computed, defineComponent, h, inject, provide, shallowReactive, watchEffect } from "vue";
|
|
3
3
|
|
|
4
4
|
//#region src/vue/components/TText.ts
|
package/dist/index.cjs
CHANGED
|
@@ -4942,7 +4942,7 @@ function createRenderManager(terminal, options = {}) {
|
|
|
4942
4942
|
for (let node of nodes.values())
|
|
4943
4943
|
addToRowBuckets(node);
|
|
4944
4944
|
}
|
|
4945
|
-
function
|
|
4945
|
+
function shouldScanFullPlane(dirtyRows, planeNodes) {
|
|
4946
4946
|
return planeNodes > 1 && dirtyRows >= ROW_BUCKET_DIRTY_RATIO_MIN_ROWS && terminalRows > 0 && dirtyRows / terminalRows >= ROW_BUCKET_DIRTY_RATIO_FALLBACK && dirtyRows >= planeNodes * ROW_BUCKET_DIRTY_RATIO_FALLBACK;
|
|
4947
4947
|
}
|
|
4948
4948
|
function ensureRenderedRowsScratch() {
|
|
@@ -5194,12 +5194,7 @@ function createRenderManager(terminal, options = {}) {
|
|
|
5194
5194
|
if (!state || !state.allRowsDirty && state.dirtyRowCount === 0)
|
|
5195
5195
|
continue;
|
|
5196
5196
|
let planeNodes = sortedNodesByPlane.get(plane) ?? [], isFullPlaneRepaint = state.allRowsDirty, rows = allRows;
|
|
5197
|
-
if (!isFullPlaneRepaint
|
|
5198
|
-
plane,
|
|
5199
|
-
reason: "dirty-ratio",
|
|
5200
|
-
dirtyRows: state.dirtyRowCount,
|
|
5201
|
-
planeNodes: planeNodes.length
|
|
5202
|
-
})), !isFullPlaneRepaint) {
|
|
5197
|
+
if (!isFullPlaneRepaint) {
|
|
5203
5198
|
dirtyRowsScratch.length = 0, rows = dirtyRowsScratch;
|
|
5204
5199
|
let startY = Number.isFinite(state.dirtyMinY) ? state.dirtyMinY : 0, endY = state.dirtyMaxY;
|
|
5205
5200
|
for (let y = startY; y <= endY; y++)
|
|
@@ -5211,6 +5206,13 @@ function createRenderManager(terminal, options = {}) {
|
|
|
5211
5206
|
}
|
|
5212
5207
|
resetPlaneRowsForRender(terminal, plane, isFullPlaneRepaint ? null : rows);
|
|
5213
5208
|
let paintRows = isFullPlaneRepaint ? void 0 : rows, needsIntersectFilter = !1, candidateNodes = isFullPlaneRepaint ? planeNodes : (() => {
|
|
5209
|
+
if (shouldScanFullPlane(rows.length, planeNodes.length))
|
|
5210
|
+
return needsIntersectFilter = !0, rowBucketFallbacks.push({
|
|
5211
|
+
plane,
|
|
5212
|
+
reason: "dirty-ratio",
|
|
5213
|
+
dirtyRows: rows.length,
|
|
5214
|
+
planeNodes: planeNodes.length
|
|
5215
|
+
}), planeNodes;
|
|
5214
5216
|
let marks = beginCandidateCollection(planeNodes), buckets = rowBuckets.get(plane);
|
|
5215
5217
|
for (let y of rows) {
|
|
5216
5218
|
let rowIds = buckets?.get(y);
|
package/dist/index.js
CHANGED
|
@@ -2,17 +2,17 @@ import { createTerminal } from "./create-terminal-Db_-UGVQ.js";
|
|
|
2
2
|
import "./ansi-palette-BHF1rN7R.js";
|
|
3
3
|
import "./hyperlink-clbb_ha_.js";
|
|
4
4
|
import { createDomRenderer } from "./dom-renderer-BfwAEQMf.js";
|
|
5
|
-
import "./rect-
|
|
6
|
-
import { createTheme, linkifyTextSegments, tuiDefaultTheme } from "./linkify-
|
|
5
|
+
import "./rect-Dfevd15m.js";
|
|
6
|
+
import { createTheme, linkifyTextSegments, tuiDefaultTheme } from "./linkify-DF96jKWy.js";
|
|
7
7
|
import "./runtime-Byf8XXOT.js";
|
|
8
8
|
import "./frame-perf-CHpWhbC4.js";
|
|
9
9
|
import "./trace-Bh8WnoMo.js";
|
|
10
10
|
import "./env-Cl8qmNFN.js";
|
|
11
|
-
import { TAutocompleteInput, TBadge, TCheckbox, TCode, TDataTable, TDivider, TFormField, TLink, TLinkifyText, TList, TPasswordInput, TRadioGroup, TSlider, TSwitch, TTable, TTag, TTree, TerminalProvider, createTInputHostPlugin } from "./TTree-
|
|
11
|
+
import { TAutocompleteInput, TBadge, TCheckbox, TCode, TDataTable, TDivider, TFormField, TLink, TLinkifyText, TList, TPasswordInput, TRadioGroup, TSlider, TSwitch, TTable, TTag, TTree, TerminalProvider, createTInputHostPlugin } from "./TTree-DqyzDB0h.js";
|
|
12
12
|
import "./terminal-selection-4W1SJj4c.js";
|
|
13
13
|
import "./debug-logger-CmsGI4of.js";
|
|
14
|
-
import { TBox, TCommandPalette, TDialog, TInput, TSelect, computeCommandPaletteMatchRanges } from "./TSelect-
|
|
15
|
-
import { TText, TView } from "./frame-mailbox-
|
|
14
|
+
import { TBox, TCommandPalette, TDialog, TInput, TSelect, computeCommandPaletteMatchRanges } from "./TSelect-CnBJET_C.js";
|
|
15
|
+
import { TText, TView } from "./frame-mailbox-6XHw-P8Q.js";
|
|
16
16
|
import "./path-BI9W15Zt.js";
|
|
17
17
|
import "./wheel-scroll-CQ22Hcyj.js";
|
|
18
18
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sanitizeDomHref } from "./hyperlink-clbb_ha_.js";
|
|
2
|
-
import { injectionKey, padEndByCells$1 as padEndByCells, sanitizeInlineText, sliceByCells, textCellWidth$1 as textCellWidth } from "./rect-
|
|
2
|
+
import { injectionKey, padEndByCells$1 as padEndByCells, sanitizeInlineText, sliceByCells, textCellWidth$1 as textCellWidth } from "./rect-Dfevd15m.js";
|
|
3
3
|
|
|
4
4
|
//#region src/vue/theme.ts
|
|
5
5
|
const tuiDefaultTheme = Object.freeze({
|