@dungle-scrubs/tallow 0.9.3 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +7 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/interactive-mode-patch.d.ts +24 -10
- package/dist/interactive-mode-patch.d.ts.map +1 -1
- package/dist/interactive-mode-patch.js +285 -148
- package/dist/interactive-mode-patch.js.map +1 -1
- package/dist/interactive-reset.d.ts +49 -0
- package/dist/interactive-reset.d.ts.map +1 -0
- package/dist/interactive-reset.js +40 -0
- package/dist/interactive-reset.js.map +1 -0
- package/dist/pi-tui-editor-patch.d.ts +10 -0
- package/dist/pi-tui-editor-patch.d.ts.map +1 -0
- package/dist/pi-tui-editor-patch.js +159 -0
- package/dist/pi-tui-editor-patch.js.map +1 -0
- package/dist/pi-tui-patch.d.ts +2 -0
- package/dist/pi-tui-patch.d.ts.map +1 -0
- package/dist/pi-tui-patch.js +563 -0
- package/dist/pi-tui-patch.js.map +1 -0
- package/dist/pi-tui-settings-list-patch.d.ts +11 -0
- package/dist/pi-tui-settings-list-patch.d.ts.map +1 -0
- package/dist/pi-tui-settings-list-patch.js +38 -0
- package/dist/pi-tui-settings-list-patch.js.map +1 -0
- package/dist/reset-diagnostics.d.ts +69 -0
- package/dist/reset-diagnostics.d.ts.map +1 -0
- package/dist/reset-diagnostics.js +41 -0
- package/dist/reset-diagnostics.js.map +1 -0
- package/dist/sdk.d.ts +5 -21
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +180 -149
- package/dist/sdk.js.map +1 -1
- package/dist/workspace-transition-interactive.d.ts +1 -0
- package/dist/workspace-transition-interactive.d.ts.map +1 -1
- package/dist/workspace-transition-interactive.js +7 -17
- package/dist/workspace-transition-interactive.js.map +1 -1
- package/extensions/__integration__/audit-findings.test.ts +6 -16
- package/extensions/__integration__/teams-runtime.test.ts +4 -1
- package/extensions/_icons/index.ts +2 -4
- package/extensions/_shared/__tests__/image-metadata.test.ts +33 -0
- package/extensions/_shared/__tests__/terminal-links.test.ts +18 -0
- package/extensions/_shared/image-metadata.ts +99 -0
- package/extensions/_shared/inline-preview.ts +1 -1
- package/extensions/_shared/pid-registry.ts +0 -1
- package/extensions/_shared/terminal-links.ts +22 -0
- package/extensions/ask-user-question-tool/index.ts +0 -3
- package/extensions/clear/__tests__/clear.test.ts +270 -3
- package/extensions/command-expansion/index.ts +1 -1
- package/extensions/context-files/index.ts +5 -1
- package/extensions/context-fork/__tests__/context-fork.test.ts +94 -1
- package/extensions/context-fork/extension.json +1 -1
- package/extensions/context-fork/index.ts +32 -0
- package/extensions/edit-tool-enhanced/index.ts +2 -1
- package/extensions/hooks/index.ts +33 -11
- package/extensions/loop/index.ts +14 -1
- package/extensions/lsp/index.ts +64 -13
- package/extensions/lsp/package.json +2 -2
- package/extensions/permissions/__tests__/permissions.test.ts +4 -4
- package/extensions/random-spinner/index.ts +7 -642
- package/extensions/read-tool-enhanced/index.ts +6 -8
- package/extensions/render-stabilizer/__tests__/render-stabilizer.test.ts +4 -5
- package/extensions/render-stabilizer/index.ts +6 -6
- package/extensions/show-system-prompt/__tests__/show-system-prompt.test.ts +1 -1
- package/extensions/slash-command-bridge/__tests__/slash-command-bridge.test.ts +26 -0
- package/extensions/slash-command-bridge/index.ts +14 -2
- package/extensions/subagent-tool/index.ts +1 -1
- package/extensions/subagent-tool/model-resolver.ts +274 -7
- package/extensions/tasks/__tests__/state-ui.test.ts +3 -3
- package/extensions/tasks/__tests__/widget-subagents.test.ts +2 -2
- package/extensions/tasks/commands/register-tasks-extension.ts +10 -10
- package/extensions/tasks/state/index.ts +1 -1
- package/extensions/tasks/ui/index.ts +2 -7
- package/extensions/teams-tool/tools/register-extension.ts +1 -3
- package/extensions/web-search-tool/index.ts +2 -1
- package/extensions/write-tool-enhanced/__tests__/write-tool-enhanced.test.ts +21 -6
- package/extensions/write-tool-enhanced/index.ts +2 -1
- package/node_modules/@mariozechner/pi-tui/README.md +56 -34
- package/node_modules/@mariozechner/pi-tui/dist/autocomplete.d.ts +18 -13
- package/node_modules/@mariozechner/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/autocomplete.js +182 -113
- package/node_modules/@mariozechner/pi-tui/dist/autocomplete.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/cancellable-loader.js +3 -3
- package/node_modules/@mariozechner/pi-tui/dist/components/cancellable-loader.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/editor.d.ts +45 -36
- package/node_modules/@mariozechner/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/editor.js +489 -325
- package/node_modules/@mariozechner/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/image.d.ts +1 -99
- package/node_modules/@mariozechner/pi-tui/dist/components/image.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/image.js +17 -192
- package/node_modules/@mariozechner/pi-tui/dist/components/image.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/input.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/input.js +57 -60
- package/node_modules/@mariozechner/pi-tui/dist/components/input.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/loader.d.ts +2 -69
- package/node_modules/@mariozechner/pi-tui/dist/components/loader.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/loader.js +5 -102
- package/node_modules/@mariozechner/pi-tui/dist/components/loader.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/markdown.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/markdown.js +111 -53
- package/node_modules/@mariozechner/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/select-list.d.ts +19 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/select-list.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/select-list.js +78 -67
- package/node_modules/@mariozechner/pi-tui/dist/components/select-list.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.d.ts +0 -2
- package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.js +12 -23
- package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/index.d.ts +8 -10
- package/node_modules/@mariozechner/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/index.js +6 -9
- package/node_modules/@mariozechner/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/keybindings.d.ts +108 -238
- package/node_modules/@mariozechner/pi-tui/dist/keybindings.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/keybindings.js +108 -365
- package/node_modules/@mariozechner/pi-tui/dist/keybindings.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/keys.d.ts +33 -48
- package/node_modules/@mariozechner/pi-tui/dist/keys.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/keys.js +239 -155
- package/node_modules/@mariozechner/pi-tui/dist/keys.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/terminal-image.d.ts +14 -94
- package/node_modules/@mariozechner/pi-tui/dist/terminal-image.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/terminal-image.js +44 -186
- package/node_modules/@mariozechner/pi-tui/dist/terminal-image.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/terminal.d.ts +13 -58
- package/node_modules/@mariozechner/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/terminal.js +78 -111
- package/node_modules/@mariozechner/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/tui.d.ts +24 -110
- package/node_modules/@mariozechner/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/tui.js +188 -435
- package/node_modules/@mariozechner/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/utils.d.ts +0 -18
- package/node_modules/@mariozechner/pi-tui/dist/utils.d.ts.map +1 -1
- package/node_modules/@mariozechner/pi-tui/dist/utils.js +251 -119
- package/node_modules/@mariozechner/pi-tui/dist/utils.js.map +1 -1
- package/node_modules/@mariozechner/pi-tui/package.json +6 -6
- package/node_modules/@mariozechner/pi-tui/src/__tests__/__snapshots__/render.test.ts.snap +3 -40
- package/node_modules/@mariozechner/pi-tui/src/__tests__/image-component.test.ts +71 -81
- package/node_modules/@mariozechner/pi-tui/src/__tests__/render.test.ts +0 -33
- package/node_modules/@mariozechner/pi-tui/src/__tests__/terminal-image.test.ts +93 -334
- package/node_modules/@mariozechner/pi-tui/src/__tests__/tui-render-scheduling.test.ts +1 -1
- package/node_modules/@mariozechner/pi-tui/src/__tests__/utils.test.ts +11 -196
- package/node_modules/@mariozechner/pi-tui/src/autocomplete.ts +228 -142
- package/node_modules/@mariozechner/pi-tui/src/components/cancellable-loader.ts +3 -3
- package/node_modules/@mariozechner/pi-tui/src/components/editor.ts +624 -390
- package/node_modules/@mariozechner/pi-tui/src/components/image.ts +17 -227
- package/node_modules/@mariozechner/pi-tui/src/components/input.ts +71 -63
- package/node_modules/@mariozechner/pi-tui/src/components/loader.ts +5 -137
- package/node_modules/@mariozechner/pi-tui/src/components/markdown.ts +143 -52
- package/node_modules/@mariozechner/pi-tui/src/components/select-list.ts +136 -70
- package/node_modules/@mariozechner/pi-tui/src/components/settings-list.ts +11 -23
- package/node_modules/@mariozechner/pi-tui/src/index.ts +17 -36
- package/node_modules/@mariozechner/pi-tui/src/keybindings.ts +148 -421
- package/node_modules/@mariozechner/pi-tui/src/keys.ts +253 -181
- package/node_modules/@mariozechner/pi-tui/src/terminal-image.ts +51 -252
- package/node_modules/@mariozechner/pi-tui/src/terminal.ts +78 -133
- package/node_modules/@mariozechner/pi-tui/src/tui.ts +202 -478
- package/node_modules/@mariozechner/pi-tui/src/utils.ts +289 -125
- package/node_modules/@mariozechner/pi-tui/tsconfig.build.json +1 -0
- package/package.json +13 -13
- package/packages/tallow-tui/node_modules/@types/mime-types/README.md +8 -2
- package/packages/tallow-tui/node_modules/@types/mime-types/index.d.ts +6 -0
- package/packages/tallow-tui/node_modules/@types/mime-types/package.json +9 -3
- package/packages/tallow-tui/node_modules/get-east-asian-width/lookup-data.js +18 -0
- package/packages/tallow-tui/node_modules/get-east-asian-width/lookup.js +116 -384
- package/packages/tallow-tui/node_modules/get-east-asian-width/package.json +5 -4
- package/packages/tallow-tui/node_modules/get-east-asian-width/utilities.js +24 -0
- package/packages/tallow-tui/node_modules/marked/README.md +5 -4
- package/packages/tallow-tui/node_modules/marked/bin/main.js +10 -8
- package/packages/tallow-tui/node_modules/marked/bin/marked.js +2 -1
- package/packages/tallow-tui/node_modules/marked/lib/marked.d.ts +156 -125
- package/packages/tallow-tui/node_modules/marked/lib/marked.esm.js +67 -2179
- package/packages/tallow-tui/node_modules/marked/lib/marked.esm.js.map +3 -3
- package/packages/tallow-tui/node_modules/marked/lib/marked.umd.js +67 -2201
- package/packages/tallow-tui/node_modules/marked/lib/marked.umd.js.map +3 -3
- package/packages/tallow-tui/node_modules/marked/man/marked.1 +4 -2
- package/packages/tallow-tui/node_modules/marked/man/marked.1.md +2 -1
- package/packages/tallow-tui/node_modules/marked/package.json +26 -34
- package/runtime/model-metadata-overrides.ts +10 -1
- package/runtime/pid-schema.ts +26 -6
- package/skills/tallow-expert/SKILL.md +1 -3
- package/node_modules/@mariozechner/pi-tui/dist/border-styles.d.ts +0 -32
- package/node_modules/@mariozechner/pi-tui/dist/border-styles.d.ts.map +0 -1
- package/node_modules/@mariozechner/pi-tui/dist/border-styles.js +0 -46
- package/node_modules/@mariozechner/pi-tui/dist/border-styles.js.map +0 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.d.ts +0 -52
- package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.d.ts.map +0 -1
- package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.js +0 -89
- package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.js.map +0 -1
- package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.d.ts +0 -14
- package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.d.ts.map +0 -1
- package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.js +0 -55
- package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.js.map +0 -1
- package/node_modules/@mariozechner/pi-tui/src/__tests__/editor-change-listener.test.ts +0 -121
- package/node_modules/@mariozechner/pi-tui/src/__tests__/editor-ghost-text.test.ts +0 -112
- package/node_modules/@mariozechner/pi-tui/src/__tests__/mouse-events.test.ts +0 -134
- package/node_modules/@mariozechner/pi-tui/src/__tests__/settings-list.test.ts +0 -49
- package/node_modules/@mariozechner/pi-tui/src/__tests__/tui-diff-regression.test.ts +0 -555
- package/node_modules/@mariozechner/pi-tui/src/border-styles.ts +0 -60
- package/node_modules/@mariozechner/pi-tui/src/components/bordered-box.ts +0 -113
- package/node_modules/@mariozechner/pi-tui/src/test-utils/capability-env.ts +0 -56
- package/packages/tallow-tui/node_modules/marked/lib/marked.cjs +0 -2211
- package/packages/tallow-tui/node_modules/marked/lib/marked.cjs.map +0 -7
- package/packages/tallow-tui/node_modules/marked/lib/marked.d.cts +0 -728
- package/packages/tallow-tui/node_modules/marked/marked.min.js +0 -69
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Minimal TUI implementation with differential rendering
|
|
3
3
|
*/
|
|
4
|
-
import { type MouseEvent } from "./keys.js";
|
|
5
4
|
import type { Terminal } from "./terminal.js";
|
|
6
5
|
import { visibleWidth } from "./utils.js";
|
|
7
6
|
/**
|
|
@@ -29,6 +28,11 @@ export interface Component {
|
|
|
29
28
|
*/
|
|
30
29
|
invalidate(): void;
|
|
31
30
|
}
|
|
31
|
+
type InputListenerResult = {
|
|
32
|
+
consume?: boolean;
|
|
33
|
+
data?: string;
|
|
34
|
+
} | undefined;
|
|
35
|
+
type InputListener = (data: string) => InputListenerResult;
|
|
32
36
|
/**
|
|
33
37
|
* Interface for components that can receive focus and display a hardware cursor.
|
|
34
38
|
* When focused, the component should emit CURSOR_MARKER at the cursor position
|
|
@@ -93,6 +97,8 @@ export interface OverlayOptions {
|
|
|
93
97
|
* Called each render cycle with current terminal dimensions.
|
|
94
98
|
*/
|
|
95
99
|
visible?: (termWidth: number, termHeight: number) => boolean;
|
|
100
|
+
/** If true, don't capture keyboard focus when shown */
|
|
101
|
+
nonCapturing?: boolean;
|
|
96
102
|
}
|
|
97
103
|
/**
|
|
98
104
|
* Handle returned by showOverlay for controlling the overlay
|
|
@@ -104,6 +110,12 @@ export interface OverlayHandle {
|
|
|
104
110
|
setHidden(hidden: boolean): void;
|
|
105
111
|
/** Check if overlay is temporarily hidden */
|
|
106
112
|
isHidden(): boolean;
|
|
113
|
+
/** Focus this overlay and bring it to the visual front */
|
|
114
|
+
focus(): void;
|
|
115
|
+
/** Release focus to the previous target */
|
|
116
|
+
unfocus(): void;
|
|
117
|
+
/** Check if this overlay currently has focus */
|
|
118
|
+
isFocused(): boolean;
|
|
107
119
|
}
|
|
108
120
|
/**
|
|
109
121
|
* Container - a component that contains other components
|
|
@@ -123,30 +135,24 @@ export declare class TUI extends Container {
|
|
|
123
135
|
terminal: Terminal;
|
|
124
136
|
private previousLines;
|
|
125
137
|
private previousWidth;
|
|
138
|
+
private previousHeight;
|
|
126
139
|
private focusedComponent;
|
|
140
|
+
private inputListeners;
|
|
127
141
|
/** Global callback for debug key (Shift+Ctrl+D). Called before input is forwarded to focused component. */
|
|
128
142
|
onDebug?: () => void;
|
|
129
|
-
/**
|
|
130
|
-
* Callback for mouse events. Called when a mouse event is received.
|
|
131
|
-
* Scroll events are the primary use case (scroll-up, scroll-down).
|
|
132
|
-
* Return value is ignored — mouse events are always consumed and never
|
|
133
|
-
* forwarded to focused components.
|
|
134
|
-
*/
|
|
135
|
-
onMouse?: (event: MouseEvent) => void;
|
|
136
143
|
private renderRequested;
|
|
137
|
-
private
|
|
144
|
+
private renderTimer;
|
|
145
|
+
private lastRenderAt;
|
|
146
|
+
private static readonly MIN_RENDER_INTERVAL_MS;
|
|
138
147
|
private cursorRow;
|
|
139
148
|
private hardwareCursorRow;
|
|
140
|
-
private inputBuffer;
|
|
141
|
-
private cellSizeQueryPending;
|
|
142
149
|
private showHardwareCursor;
|
|
143
150
|
private clearOnShrink;
|
|
144
151
|
private maxLinesRendered;
|
|
145
152
|
private previousViewportTop;
|
|
146
153
|
private fullRedrawCount;
|
|
147
|
-
private rollingShrinkPeak;
|
|
148
154
|
private stopped;
|
|
149
|
-
private
|
|
155
|
+
private focusOrderCounter;
|
|
150
156
|
private overlayStack;
|
|
151
157
|
constructor(terminal: Terminal, showHardwareCursor?: boolean);
|
|
152
158
|
get fullRedraws(): number;
|
|
@@ -159,28 +165,6 @@ export declare class TUI extends Container {
|
|
|
159
165
|
* When false, empty rows remain (reduces redraws on slower terminals).
|
|
160
166
|
*/
|
|
161
167
|
setClearOnShrink(enabled: boolean): void;
|
|
162
|
-
/**
|
|
163
|
-
* Reset the startup grace period timer, suppressing screen-clearing full
|
|
164
|
-
* redraws for another {@link STARTUP_GRACE_MS} milliseconds.
|
|
165
|
-
*
|
|
166
|
-
* Call this at the start of a session switch so the chatContainer.clear()
|
|
167
|
-
* → renderInitialMessages() transition doesn't cause visible flicker.
|
|
168
|
-
*
|
|
169
|
-
* @returns {void}
|
|
170
|
-
*/
|
|
171
|
-
resetRenderGrace(): void;
|
|
172
|
-
/**
|
|
173
|
-
* Request that the next full render clears the terminal scrollback buffer.
|
|
174
|
-
*
|
|
175
|
-
* Use when the session content is being replaced wholesale (workspace
|
|
176
|
-
* transitions, new sessions, session switches) so stale scrollback
|
|
177
|
-
* doesn't visually flow into the new content.
|
|
178
|
-
*
|
|
179
|
-
* Has no effect on partial (differential) redraws — the flag is consumed
|
|
180
|
-
* only when a full render is triggered by content shrink, width change,
|
|
181
|
-
* or forced invalidation.
|
|
182
|
-
*/
|
|
183
|
-
requestScrollbackClear(): void;
|
|
184
168
|
setFocus(component: Component | null): void;
|
|
185
169
|
/**
|
|
186
170
|
* Show an overlay component with configurable positioning and sizing.
|
|
@@ -193,88 +177,18 @@ export declare class TUI extends Container {
|
|
|
193
177
|
hasOverlay(): boolean;
|
|
194
178
|
/** Check if an overlay entry is currently visible */
|
|
195
179
|
private isOverlayVisible;
|
|
196
|
-
/** Find the topmost visible overlay, if any */
|
|
180
|
+
/** Find the topmost visible capturing overlay, if any */
|
|
197
181
|
private getTopmostVisibleOverlay;
|
|
198
182
|
invalidate(): void;
|
|
199
|
-
/**
|
|
200
|
-
* Timestamp when `start()` was called.
|
|
201
|
-
* Used by startup grace period to suppress screen-clearing full redraws.
|
|
202
|
-
*/
|
|
203
|
-
private startedAtMs;
|
|
204
|
-
/**
|
|
205
|
-
* Duration (ms) after `start()` during which shrink-triggered full redraws
|
|
206
|
-
* use a gentler line-by-line overwrite instead of screen clear.
|
|
207
|
-
*
|
|
208
|
-
* This prevents the visual flicker that occurs when session resume causes
|
|
209
|
-
* rapid content height changes (extension hooks, widget adds/removes) before
|
|
210
|
-
* the full message history is rendered.
|
|
211
|
-
*/
|
|
212
|
-
private static readonly STARTUP_GRACE_MS;
|
|
213
183
|
start(): void;
|
|
184
|
+
addInputListener(listener: InputListener): () => void;
|
|
185
|
+
removeInputListener(listener: InputListener): void;
|
|
214
186
|
private queryCellSize;
|
|
215
187
|
stop(): void;
|
|
216
|
-
/** When >0, scheduled renders are deferred until the batch completes. */
|
|
217
|
-
private renderBatchDepth;
|
|
218
|
-
/** Whether a render was requested while batching was active. */
|
|
219
|
-
private renderDeferredDuringBatch;
|
|
220
|
-
/** Whether a forced render was requested while batching was active. */
|
|
221
|
-
private renderForceDeferredDuringBatch;
|
|
222
|
-
/**
|
|
223
|
-
* Begin a render batch — all `requestRender()` calls are coalesced and
|
|
224
|
-
* deferred until the matching `endRenderBatch()`. Nestable.
|
|
225
|
-
*
|
|
226
|
-
* Use to prevent intermediate renders (and the screen clears they cause)
|
|
227
|
-
* during multi-step UI mutations such as session resume.
|
|
228
|
-
*
|
|
229
|
-
* @returns {void}
|
|
230
|
-
*/
|
|
231
|
-
beginRenderBatch(): void;
|
|
232
|
-
/**
|
|
233
|
-
* End a render batch. When the outermost batch ends, a single render is
|
|
234
|
-
* scheduled if any were deferred.
|
|
235
|
-
*
|
|
236
|
-
* @returns {void}
|
|
237
|
-
*/
|
|
238
|
-
endRenderBatch(): void;
|
|
239
188
|
requestRender(force?: boolean): void;
|
|
240
|
-
/**
|
|
241
|
-
* Schedule a single coalesced render in the check phase.
|
|
242
|
-
*
|
|
243
|
-
* On Bun, `setImmediate` behaves like a microtask and never enters the I/O poll
|
|
244
|
-
* phase, so stdin data callbacks are starved during streaming. `setTimeout(fn, 0)`
|
|
245
|
-
* forces a real timer (~1ms) that guarantees I/O polling between renders.
|
|
246
|
-
*
|
|
247
|
-
* On Node.js, `setTimeout(0)` has a 1ms minimum delay — slightly slower than
|
|
248
|
-
* `setImmediate` but still imperceptible (<13ms human threshold).
|
|
249
|
-
*
|
|
250
|
-
* @see Plan 177 — Bun setImmediate does not yield to I/O
|
|
251
|
-
* @returns {void}
|
|
252
|
-
*/
|
|
253
189
|
private scheduleRender;
|
|
254
|
-
/** Input listener functions — called before the focused component receives input. */
|
|
255
|
-
private inputListeners;
|
|
256
|
-
/**
|
|
257
|
-
* Register an input listener. Listeners run before the focused component and can
|
|
258
|
-
* consume input (return `{consume: true}`) or transform it (return `{data: newData}`).
|
|
259
|
-
*
|
|
260
|
-
* @param listener - Listener function
|
|
261
|
-
* @returns Unsubscribe function
|
|
262
|
-
*/
|
|
263
|
-
addInputListener(listener: (data: string) => {
|
|
264
|
-
consume?: boolean;
|
|
265
|
-
data?: string;
|
|
266
|
-
} | undefined): () => void;
|
|
267
|
-
/**
|
|
268
|
-
* Remove a previously registered input listener.
|
|
269
|
-
*
|
|
270
|
-
* @param listener - The listener function to remove
|
|
271
|
-
*/
|
|
272
|
-
removeInputListener(listener: (data: string) => {
|
|
273
|
-
consume?: boolean;
|
|
274
|
-
data?: string;
|
|
275
|
-
} | undefined): void;
|
|
276
190
|
private handleInput;
|
|
277
|
-
private
|
|
191
|
+
private consumeCellSizeResponse;
|
|
278
192
|
/**
|
|
279
193
|
* Resolve overlay layout from options.
|
|
280
194
|
* Returns { width, row, col, maxHeight } for rendering.
|
|
@@ -282,7 +196,7 @@ export declare class TUI extends Container {
|
|
|
282
196
|
private resolveOverlayLayout;
|
|
283
197
|
private resolveAnchorRow;
|
|
284
198
|
private resolveAnchorCol;
|
|
285
|
-
/** Composite all overlays into content lines (
|
|
199
|
+
/** Composite all overlays into content lines (sorted by focusOrder, higher = on top). */
|
|
286
200
|
private compositeOverlays;
|
|
287
201
|
private static readonly SEGMENT_RESET;
|
|
288
202
|
private applyLineResets;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|