@kenkaiiii/ggcoder 4.8.2 → 4.8.4

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.
Files changed (45) hide show
  1. package/dist/core/prompt-commands.d.ts.map +1 -1
  2. package/dist/core/prompt-commands.js +20 -7
  3. package/dist/core/prompt-commands.js.map +1 -1
  4. package/dist/ui/App.d.ts +16 -0
  5. package/dist/ui/App.d.ts.map +1 -1
  6. package/dist/ui/App.js +53 -16
  7. package/dist/ui/App.js.map +1 -1
  8. package/dist/ui/atomic-flush-regression.test.d.ts +2 -0
  9. package/dist/ui/atomic-flush-regression.test.d.ts.map +1 -0
  10. package/dist/ui/atomic-flush-regression.test.js +218 -0
  11. package/dist/ui/atomic-flush-regression.test.js.map +1 -0
  12. package/dist/ui/components/AssistantMessage.test.js +25 -0
  13. package/dist/ui/components/AssistantMessage.test.js.map +1 -1
  14. package/dist/ui/components/Markdown.d.ts.map +1 -1
  15. package/dist/ui/components/Markdown.js +9 -1
  16. package/dist/ui/components/Markdown.js.map +1 -1
  17. package/dist/ui/footer-jump-regression.test.js +56 -9
  18. package/dist/ui/footer-jump-regression.test.js.map +1 -1
  19. package/dist/ui/frame-clip-regression.test.d.ts +2 -0
  20. package/dist/ui/frame-clip-regression.test.d.ts.map +1 -0
  21. package/dist/ui/frame-clip-regression.test.js +215 -0
  22. package/dist/ui/frame-clip-regression.test.js.map +1 -0
  23. package/dist/ui/hooks/useTranscriptHistory.d.ts +9 -1
  24. package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -1
  25. package/dist/ui/hooks/useTranscriptHistory.js +34 -19
  26. package/dist/ui/hooks/useTranscriptHistory.js.map +1 -1
  27. package/dist/ui/live-item-flush.d.ts +21 -0
  28. package/dist/ui/live-item-flush.d.ts.map +1 -1
  29. package/dist/ui/live-item-flush.js +35 -0
  30. package/dist/ui/live-item-flush.js.map +1 -1
  31. package/dist/ui/live-item-flush.test.js +72 -1
  32. package/dist/ui/live-item-flush.test.js.map +1 -1
  33. package/dist/ui/render.d.ts.map +1 -1
  34. package/dist/ui/render.js +126 -1
  35. package/dist/ui/render.js.map +1 -1
  36. package/dist/ui/startup-banner-order.test.d.ts +2 -0
  37. package/dist/ui/startup-banner-order.test.d.ts.map +1 -0
  38. package/dist/ui/startup-banner-order.test.js +105 -0
  39. package/dist/ui/startup-banner-order.test.js.map +1 -0
  40. package/dist/ui/streaming-flush-bounce.test.js +41 -20
  41. package/dist/ui/streaming-flush-bounce.test.js.map +1 -1
  42. package/dist/ui/testing/screen-recorder.d.ts.map +1 -1
  43. package/dist/ui/testing/screen-recorder.js +11 -1
  44. package/dist/ui/testing/screen-recorder.js.map +1 -1
  45. package/package.json +4 -4
@@ -0,0 +1,218 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Full-lifecycle regression for the atomic transcript flush.
3
+ //
4
+ // Models a complete turn on the native-scrollback default: idle → tall
5
+ // streaming response → live tool panel grows under the controls → done. The
6
+ // done transition finalizes the turn the way App does: queueFlush renders the
7
+ // transcript to ANSI and enqueues it through the patched Ink
8
+ // `insertBeforeFrame` while — in the SAME React batch — the live frame shrinks
9
+ // (streamed text flushed, tool panel hidden, activity → done swap). The
10
+ // resulting single frame write is `erase tall frame + scrollback bytes +
11
+ // shorter frame`, so:
12
+ // (a) Ink's full-screen repaint (eraseScreen + cursorTo top) never fires,
13
+ // (b) the footer never moves UP in the terminal buffer, and
14
+ // (c) the controls sit directly under the last transcript row after done —
15
+ // no stranded blank gap.
16
+ import React, { useEffect, useRef, useState } from "react";
17
+ import { render, Text, useStdout } from "ink";
18
+ import { describe, expect, it } from "vitest";
19
+ import stripAnsi from "strip-ansi";
20
+ import { ChatControls, ChatLayout } from "./components/ChatLayout.js";
21
+ import { ChatLivePane } from "./components/ChatLivePane.js";
22
+ import { TerminalSizeProvider } from "./hooks/useTerminalSize.js";
23
+ import { renderTranscriptItem } from "./transcript/TranscriptRenderer.js";
24
+ import { loadTheme, ThemeContext } from "./theme/theme.js";
25
+ import { createTerminalHistoryPrinter } from "./terminal-history.js";
26
+ import { useTranscriptHistory } from "./hooks/useTranscriptHistory.js";
27
+ import { ScreenRecorder, makeRecordingStdout } from "./testing/screen-recorder.js";
28
+ const COLUMNS = 80;
29
+ const ROWS = 24;
30
+ const theme = loadTheme("dark");
31
+ const terminalContext = {
32
+ theme,
33
+ columns: COLUMNS,
34
+ version: "sim",
35
+ model: "sim-model",
36
+ provider: "anthropic",
37
+ cwd: "/tmp/sim-project",
38
+ };
39
+ const FOOTER_BOTTOM = "SIM_ACTIVITY_BAR";
40
+ const TOOL_PANEL_ROWS = 4;
41
+ // Live-area budget: terminal rows minus the worst-case controls block (tool
42
+ // panel + status + input + footer rows). Mirrors App's layout measurement —
43
+ // the clamp is what keeps Ink out of its full-screen tall-frame repaint path.
44
+ const LIVE_AREA_BUDGET = ROWS - (TOOL_PANEL_ROWS + 4) - 2;
45
+ // Taller than the live-area budget, so streaming engages the clamp and the
46
+ // final flush writes more scrollback rows than the live region ever showed.
47
+ const longResponse = Array.from({ length: ROWS - 6 }, (_, i) => `SIM_LINE_${String(i + 1).padStart(2, "0")}`).join("\n");
48
+ function SimulatedControls({ running, toolRows }) {
49
+ return (_jsxs(ChatControls, { controlsRef: () => { }, children: [Array.from({ length: toolRows }, (_, i) => (_jsx(Text, { children: `SIM_TOOL_${i + 1}` }, `tool-${i}`))), _jsx(Text, { children: running ? "SIM_STREAMING" : "SIM_DONE" }), _jsx(Text, { children: "SIM_INPUT" }), _jsx(Text, { children: "SIM_FOOTER" }), _jsx(Text, { children: FOOTER_BOTTOM })] }));
50
+ }
51
+ function Driver({ phase, enqueueStdout }) {
52
+ const { write: writeStdout } = useStdout();
53
+ const [history, setHistory] = useState([]);
54
+ const [liveItems, setLiveItems] = useState([]);
55
+ // All visuals derive from internal state so the done transition can swap
56
+ // EVERYTHING (flush + streamed text removal + panel hide + activity → done)
57
+ // in one effect — i.e. one React batch — exactly like useAgentLoop's onDone.
58
+ const [view, setView] = useState({ running: false, streamingText: "", toolRows: 0 });
59
+ const committedRef = useRef(false);
60
+ // Stable printer across renders — mirrors renderApp, where one printer
61
+ // instance (and its printed-id dedup set) lives for the whole app lifetime.
62
+ const printerRef = useRef(null);
63
+ printerRef.current ??= createTerminalHistoryPrinter();
64
+ const { queueFlush } = useTranscriptHistory({
65
+ terminalHistoryPrinter: printerRef.current,
66
+ terminalHistoryContext: terminalContext,
67
+ writeStdout,
68
+ enqueueStdout,
69
+ sessionPathRef: { current: undefined },
70
+ sessionManagerRef: { current: null },
71
+ history,
72
+ setHistory,
73
+ setLiveItems,
74
+ });
75
+ // Idempotent setter: queueFlush is referentially unstable across renders
76
+ // (it lives in the hook's render scope), so this effect re-runs every
77
+ // commit. Returning the previous object when nothing changed keeps React
78
+ // from looping ("Maximum update depth exceeded") on the stream/tools
79
+ // phases, which set the same view on every run.
80
+ const applyView = (next) => {
81
+ setView((prev) => prev.running === next.running &&
82
+ prev.streamingText === next.streamingText &&
83
+ prev.toolRows === next.toolRows
84
+ ? prev
85
+ : next);
86
+ };
87
+ const applyViewRef = useRef(applyView);
88
+ applyViewRef.current = applyView;
89
+ useEffect(() => {
90
+ if (phase === "idle")
91
+ return;
92
+ if (phase === "stream") {
93
+ applyViewRef.current({ running: true, streamingText: longResponse, toolRows: 0 });
94
+ return;
95
+ }
96
+ if (phase === "tools") {
97
+ applyViewRef.current({
98
+ running: true,
99
+ streamingText: longResponse,
100
+ toolRows: TOOL_PANEL_ROWS,
101
+ });
102
+ return;
103
+ }
104
+ if (committedRef.current)
105
+ return;
106
+ committedRef.current = true;
107
+ // Finalize the turn: enqueue the transcript bytes (passive) and shrink the
108
+ // live frame in the same batch. The next frame write carries both.
109
+ queueFlush([{ kind: "assistant", id: "final", text: longResponse }]);
110
+ setLiveItems([]);
111
+ applyViewRef.current({ running: false, streamingText: "", toolRows: 0 });
112
+ }, [phase, queueFlush]);
113
+ const renderItem = (item, index, items) => renderTranscriptItem({
114
+ item,
115
+ index,
116
+ items,
117
+ version: "sim",
118
+ currentModel: "sim-model",
119
+ currentProvider: "anthropic",
120
+ displayedCwd: "/tmp/sim-project",
121
+ columns: COLUMNS,
122
+ theme,
123
+ renderMarkdown: true,
124
+ measuredLiveAreaRows: LIVE_AREA_BUDGET,
125
+ });
126
+ return (_jsx(ThemeContext.Provider, { value: theme, children: _jsx(TerminalSizeProvider, { children: _jsxs(ChatLayout, { columns: COLUMNS, children: [_jsx(ChatLivePane, { liveItems: liveItems, renderItem: renderItem, isRunning: view.running, visibleStreamingText: view.streamingText, streamingThinking: "", thinkingMs: 0, reserveStreamingSpacing: false, renderMarkdown: true, measuredLiveAreaRows: LIVE_AREA_BUDGET, assistantMarginTop: 0, streamingContinuation: false }), _jsx(SimulatedControls, { running: view.running, toolRows: view.toolRows })] }) }) }));
127
+ }
128
+ const ERASE_SCREEN = "\u001B[2J";
129
+ async function tick() {
130
+ await new Promise((resolve) => setTimeout(resolve, 45));
131
+ }
132
+ describe("atomic transcript flush lifecycle", () => {
133
+ it("finalizes a tool-heavy turn without repaints, footer rises, or gaps", async () => {
134
+ const recorder = new ScreenRecorder({ columns: COLUMNS, rows: ROWS });
135
+ const baseStdout = makeRecordingStdout(recorder);
136
+ const sink = { raw: "" };
137
+ const stdout = new Proxy(baseStdout, {
138
+ get(target, prop, receiver) {
139
+ if (prop === "write") {
140
+ return (chunk, cb) => {
141
+ sink.raw += chunk;
142
+ return target.write(chunk, cb);
143
+ };
144
+ }
145
+ return Reflect.get(target, prop, receiver);
146
+ },
147
+ });
148
+ // Mirrors renderApp's enqueueHistoryWrite: read the (patched) instance at
149
+ // call time, fall back to a raw write when the API is unavailable.
150
+ const instanceRef = {
151
+ current: null,
152
+ };
153
+ const enqueueStdout = (data) => {
154
+ if (instanceRef.current?.insertBeforeFrame) {
155
+ instanceRef.current.insertBeforeFrame(data);
156
+ }
157
+ else {
158
+ stdout.write(data);
159
+ }
160
+ };
161
+ const frames = [];
162
+ const capture = (label) => {
163
+ frames.push({ label, full: stripAnsi(recorder.fullText()) });
164
+ };
165
+ const mounted = render(_jsx(Driver, { phase: "idle", enqueueStdout: enqueueStdout }), {
166
+ stdout,
167
+ columns: COLUMNS,
168
+ rows: ROWS,
169
+ patchConsole: false,
170
+ maxFps: 1000,
171
+ });
172
+ instanceRef.current = mounted;
173
+ await tick();
174
+ capture("idle");
175
+ mounted.rerender(_jsx(Driver, { phase: "stream", enqueueStdout: enqueueStdout }));
176
+ await tick();
177
+ capture("tall streaming");
178
+ mounted.rerender(_jsx(Driver, { phase: "tools", enqueueStdout: enqueueStdout }));
179
+ await tick();
180
+ capture("tool panel grows");
181
+ mounted.rerender(_jsx(Driver, { phase: "done", enqueueStdout: enqueueStdout }));
182
+ await tick();
183
+ capture("done, first settle");
184
+ await tick();
185
+ capture("done, settled");
186
+ mounted.unmount();
187
+ // (a) Zero full-screen repaints (eraseScreen + cursorTo top) across the
188
+ // whole lifecycle — the clamp keeps Ink out of its tall-frame path, and
189
+ // the atomic insert keeps the shrink from ever needing a repaint.
190
+ expect(sink.raw.split(ERASE_SCREEN).length - 1, "full-screen repaints").toBe(0);
191
+ // (b) The footer's absolute row in the terminal buffer never moves UP.
192
+ // Scrollback growth pushes it down; an upward move means a shrink-write
193
+ // landed without its compensating scrollback bytes.
194
+ let previousFooterRow = -1;
195
+ for (const f of frames) {
196
+ const footerRow = f.full.split("\n").findIndex((line) => line.includes(FOOTER_BOTTOM));
197
+ expect(footerRow, `${f.label}: footer present`).toBeGreaterThanOrEqual(0);
198
+ expect(footerRow, `${f.label}: footer buffer row never decreases (was ${previousFooterRow})`).toBeGreaterThanOrEqual(previousFooterRow);
199
+ previousFooterRow = footerRow;
200
+ }
201
+ // (c) After done: the controls sit directly under the last transcript row —
202
+ // no stranded blank rows between the flushed response and the controls.
203
+ const settled = frames.at(-1);
204
+ const lines = settled.full.split("\n");
205
+ const lastTranscriptRow = lines.reduce((acc, line, i) => (line.includes("SIM_LINE_") ? i : acc), -1);
206
+ const controlsRow = lines.findIndex((line) => line.includes("SIM_DONE"));
207
+ expect(lastTranscriptRow, "flushed transcript present after done").toBeGreaterThanOrEqual(0);
208
+ expect(controlsRow, "controls present after done").toBeGreaterThan(lastTranscriptRow);
209
+ const between = lines.slice(lastTranscriptRow + 1, controlsRow);
210
+ expect(between.filter((line) => line.trim().length === 0).length, "no blank gap between transcript and controls").toBe(0);
211
+ // And the flushed response must never be duplicated (scrollback + live).
212
+ for (const f of frames) {
213
+ const occurrences = f.full.split("SIM_LINE_01").length - 1;
214
+ expect(occurrences, `${f.label}: flushed content not duplicated`).toBeLessThanOrEqual(1);
215
+ }
216
+ });
217
+ });
218
+ //# sourceMappingURL=atomic-flush-regression.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-flush-regression.test.js","sourceRoot":"","sources":["../../src/ui/atomic-flush-regression.test.tsx"],"names":[],"mappings":"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"}
@@ -67,6 +67,22 @@ function renderWithTerminal(element) {
67
67
  function renderAssistantFrame(streaming, text = LONG_STREAMING_TEXT) {
68
68
  return renderWithTerminal(_jsx(AssistantMessage, { text: text, streaming: streaming }));
69
69
  }
70
+ /** Like renderWithTerminal but keeps blank rows — needed for alignment checks. */
71
+ function renderWithTerminalRaw(element) {
72
+ const originalColumns = process.stdout.columns;
73
+ const originalRows = process.stdout.rows;
74
+ process.stdout.columns = TERMINAL_COLUMNS;
75
+ process.stdout.rows = 20;
76
+ try {
77
+ return rawLinesOf(renderToString(_jsx(TerminalSizeProvider, { children: element }), {
78
+ columns: TERMINAL_COLUMNS,
79
+ }));
80
+ }
81
+ finally {
82
+ process.stdout.columns = originalColumns;
83
+ process.stdout.rows = originalRows;
84
+ }
85
+ }
70
86
  function renderTerminalHistoryAssistantText(text = LONG_STREAMING_TEXT) {
71
87
  return serializeCompletedItemToTerminalHistory({ kind: "assistant", text, id: "assistant-1" }, {
72
88
  theme: loadTheme("dark"),
@@ -224,6 +240,15 @@ describe("AssistantMessage live layout", () => {
224
240
  const lines = renderWithTerminal(_jsx(AssistantMessage, { text: text, streaming: true, availableTerminalHeight: 5 }));
225
241
  expect(lines.length).toBeLessThanOrEqual(5);
226
242
  });
243
+ it("REGRESSION: dot stays inline when the height clamp slices at a blank line", () => {
244
+ // 3 paragraphs render as [p1, "", p2, "", p3]. availableTerminalHeight=4
245
+ // tail-slices to ["", p2, "", p3] — the ⏺ prefix sits in a sibling box
246
+ // aligned to the first row, so a leading blank row left the dot floating
247
+ // one row above the text (alignment varied with the slice boundary).
248
+ const text = "First paragraph here.\n\nSecond paragraph here.\n\nThird paragraph here.";
249
+ const lines = renderWithTerminalRaw(_jsx(AssistantMessage, { text: text, availableTerminalHeight: 4 }));
250
+ expect(lines[0]).toBe(" \u23FA Second paragraph here.");
251
+ });
227
252
  it("renders the streaming frame with the same line structure as finalized history", () => {
228
253
  const streamingLines = renderAssistantFrame(true);
229
254
  const finalLines = renderAssistantFrame(false);
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessage.test.js","sourceRoot":"","sources":["../../../src/ui/components/AssistantMessage.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssistantMessage.test.js","sourceRoot":"","sources":["../../../src/ui/components/AssistantMessage.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAE1B,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAGvC,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAkBD,eAAO,MAAM,QAAQ,+HAOlB,aAAa,oDA+Bd,CAAC;AAEH,eAAO,MAAM,iBAAiB,4DAI3B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,6CAMC,CAAC;AAEH,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAE1B,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAGvC,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAkBD,eAAO,MAAM,QAAQ,+HAOlB,aAAa,oDAuCd,CAAC;AAEH,eAAO,MAAM,iBAAiB,4DAI3B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,6CAMC,CAAC;AAEH,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,CAAC"}
@@ -19,9 +19,17 @@ export const Markdown = React.memo(function Markdown({ children, width: explicit
19
19
  availableTerminalHeight,
20
20
  renderMarkdown,
21
21
  }), [availableTerminalHeight, isPending, renderMarkdown, terminalWidth, text, theme]);
22
- const visibleLines = availableTerminalHeight !== undefined && renderedLines.length > availableTerminalHeight
22
+ // When clamped, keep the TAIL of the response — but never let the slice
23
+ // start on a paragraph-break blank line. The ⏺ prefix renders in a sibling
24
+ // box aligned to the first row of this column, so a leading blank row leaves
25
+ // the dot floating one row above the text (alignment varies with where the
26
+ // slice boundary lands).
27
+ let visibleLines = availableTerminalHeight !== undefined && renderedLines.length > availableTerminalHeight
23
28
  ? renderedLines.slice(-availableTerminalHeight)
24
29
  : renderedLines;
30
+ while (visibleLines.length > 0 && visibleLines[0] === "") {
31
+ visibleLines = visibleLines.slice(1);
32
+ }
25
33
  if (!text || visibleLines.length === 0)
26
34
  return null;
27
35
  return (_jsx(Box, { flexDirection: "column", width: terminalWidth, flexShrink: 1, children: _jsx(RenderAnsiLines, { lines: visibleLines }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/ui/components/Markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAW7C,SAAS,eAAe,CAAC,EAAE,KAAK,EAAgC;IAC9D,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACzB,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAClB,KAAC,GAAG,IAAa,MAAM,EAAE,CAAC,IAAhB,KAAK,CAAe,CAC/B,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAa,IAAI,EAAC,cAAc,YAClC,IAAI,IADI,KAAK,CAET,CACR,CACF,GACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EACnD,QAAQ,EACR,KAAK,EAAE,aAAa,EACpB,OAAO,GAAG,KAAK,EACf,cAAc,GAAG,IAAI,EACrB,SAAS,GAAG,KAAK,EACjB,uBAAuB,GACT;IACd,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAElD,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CACH,yBAAyB,CAAC;QACxB,IAAI;QACJ,KAAK;QACL,KAAK,EAAE,aAAa;QACpB,SAAS;QACT,uBAAuB;QACvB,cAAc;KACf,CAAC,EACJ,CAAC,uBAAuB,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CACjF,CAAC;IAEF,MAAM,YAAY,GAChB,uBAAuB,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,uBAAuB;QACrF,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC;QAC/C,CAAC,CAAC,aAAa,CAAC;IAEpB,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,YAC7D,KAAC,eAAe,IAAC,KAAK,EAAE,YAAY,GAAI,GACpC,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,iBAAiB,CAAC,EACrE,QAAQ,EACR,KAAK,EACL,OAAO,GAAG,KAAK,GAKhB;IACC,OAAO,CACL,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,kBAChD,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/ui/components/Markdown.tsx"],"names":[],"mappings":"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"}
@@ -53,15 +53,20 @@ function SimTui({ liveItems, streamingText, controlsLabel, }) {
53
53
  });
54
54
  return (_jsx(ThemeContext.Provider, { value: theme, children: _jsx(TerminalSizeProvider, { children: _jsxs(ChatLayout, { columns: COLUMNS, children: [_jsx(ChatLivePane, { liveItems: liveItems, renderItem: renderItem, isRunning: controlsLabel !== "SIM_DONE", visibleStreamingText: streamingText, streamingThinking: "", thinkingMs: 0, reserveStreamingSpacing: false, renderMarkdown: true, measuredLiveAreaRows: ROWS, assistantMarginTop: 0, streamingContinuation: false }), _jsx(SimulatedControls, { label: controlsLabel })] }) }) }));
55
55
  }
56
- function Driver({ phase }) {
56
+ function Driver({ phase, enqueueStdout }) {
57
57
  const { write: writeStdout } = useStdout();
58
58
  const [history, setHistory] = useState([]);
59
59
  const [liveItems, setLiveItems] = useState([]);
60
60
  const committedRef = useRef(false);
61
+ // Stable printer across renders — mirrors renderApp, where one printer
62
+ // instance (and its printed-id dedup set) lives for the whole app lifetime.
63
+ const printerRef = useRef(null);
64
+ printerRef.current ??= createTerminalHistoryPrinter();
61
65
  const { queueFlush } = useTranscriptHistory({
62
- terminalHistoryPrinter: createTerminalHistoryPrinter(),
66
+ terminalHistoryPrinter: printerRef.current,
63
67
  terminalHistoryContext: terminalContext,
64
68
  writeStdout,
69
+ enqueueStdout,
65
70
  sessionPathRef: { current: undefined },
66
71
  sessionManagerRef: { current: null },
67
72
  history,
@@ -130,25 +135,45 @@ describe("footer jump reproduction", () => {
130
135
  const capture = (label) => {
131
136
  const slice = sink.raw.slice(lastRawLen);
132
137
  lastRawLen = sink.raw.length;
133
- frames.push({ label, lines: viewport(recorder), repaints: countFullRepaints(slice) });
138
+ frames.push({
139
+ label,
140
+ lines: viewport(recorder),
141
+ full: stripAnsi(recorder.fullText()),
142
+ repaints: countFullRepaints(slice),
143
+ });
134
144
  };
135
- const mounted = render(_jsx(Driver, { phase: "idle" }), {
145
+ // Mirrors renderApp's enqueueHistoryWrite: read the (patched) instance at
146
+ // call time, fall back to a raw write when the API is unavailable.
147
+ const instanceRef = {
148
+ current: null,
149
+ };
150
+ const enqueueStdout = (data) => {
151
+ if (instanceRef.current?.insertBeforeFrame) {
152
+ instanceRef.current.insertBeforeFrame(data);
153
+ }
154
+ else {
155
+ stdout.write(data);
156
+ }
157
+ };
158
+ const mounted = render(_jsx(Driver, { phase: "idle", enqueueStdout: enqueueStdout }), {
136
159
  stdout,
137
160
  columns: COLUMNS,
138
161
  rows: ROWS,
139
162
  patchConsole: false,
140
163
  maxFps: 1000,
141
164
  });
165
+ instanceRef.current = mounted;
142
166
  await tick();
143
167
  capture("Z: idle (before first turn)");
144
- mounted.rerender(_jsx(Driver, { phase: "stream-short" }));
168
+ mounted.rerender(_jsx(Driver, { phase: "stream-short", enqueueStdout: enqueueStdout }));
145
169
  await tick();
146
170
  capture("A: short streaming");
147
- mounted.rerender(_jsx(Driver, { phase: "stream-fill" }));
171
+ mounted.rerender(_jsx(Driver, { phase: "stream-fill", enqueueStdout: enqueueStdout }));
148
172
  await tick();
149
173
  capture("B: streaming fills the screen");
150
- mounted.rerender(_jsx(Driver, { phase: "done" }));
174
+ mounted.rerender(_jsx(Driver, { phase: "done", enqueueStdout: enqueueStdout }));
151
175
  await tick();
176
+ capture("C1: done, first settle");
152
177
  await tick();
153
178
  capture("C: done + committed final response");
154
179
  mounted.unmount();
@@ -164,8 +189,30 @@ describe("footer jump reproduction", () => {
164
189
  // repaint (eraseScreen + cursorTo top), which is what visibly shoves the
165
190
  // footer. Some repaints are unavoidable during clamp engagement while
166
191
  // streaming, but committing the finalized response must not repaint.
167
- const doneFrame = frames.find((f) => f.label.startsWith("C:"));
168
- expect(doneFrame?.repaints, "done transition full-screen repaints").toBe(0);
192
+ for (const label of ["C1:", "C:"]) {
193
+ const doneFrame = frames.find((f) => f.label.startsWith(label));
194
+ expect(doneFrame?.repaints, `${label} done transition full-screen repaints`).toBe(0);
195
+ }
196
+ // THE STRAND: the footer's absolute row in the terminal buffer must never
197
+ // move UP across frames. Scrollback growth pushes it down; an upward move
198
+ // means a shrink-write landed without its compensating scrollback bytes —
199
+ // the footer gets stranded mid-screen with blank rows below it. (Measured
200
+ // in the cumulative buffer, not the viewport, so Ink's trailing-newline
201
+ // convention — omitted only for exactly-fullscreen frames — can't skew it.)
202
+ let previousFooterRow = -1;
203
+ for (const f of frames) {
204
+ const bufferLines = f.full.split("\n");
205
+ const footerRow = bufferLines.findIndex((line) => line.includes(FOOTER_BOTTOM));
206
+ expect(footerRow, `${f.label}: footer buffer row never decreases (was ${previousFooterRow})`).toBeGreaterThanOrEqual(previousFooterRow);
207
+ previousFooterRow = footerRow;
208
+ }
209
+ // NO DUPLICATION: the flushed response must never be visible twice (once in
210
+ // scrollback AND still in the live frame). The atomic insert erases the
211
+ // live copy in the same write that adds the scrollback copy.
212
+ for (const f of frames) {
213
+ const occurrences = f.full.split("SIM_LINE_01").length - 1;
214
+ expect(occurrences, `${f.label}: flushed content not duplicated`).toBeLessThanOrEqual(1);
215
+ }
169
216
  // THE START JUMP: with the status slot reserved unconditionally and the
170
217
  // controls height held constant, starting the first turn (idle → first
171
218
  // stream) must not trigger a full-screen repaint either — the footer stays
@@ -1 +1 @@
1
- {"version":3,"file":"footer-jump-regression.test.js","sourceRoot":"","sources":["../../src/ui/footer-jump-regression.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"footer-jump-regression.test.js","sourceRoot":"","sources":["../../src/ui/footer-jump-regression.test.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,uEAAuE;AACvE,0DAA0D;AAC1D,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnF,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,MAAM,eAAe,GAA2B;IAC9C,KAAK;IACL,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,WAAW;IACrB,GAAG,EAAE,kBAAkB;CACxB,CAAC;AAEF,kEAAkE;AAClE,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAAqB;IACrD,OAAO,CACL,MAAC,YAAY,IAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,aACjC,KAAC,IAAI,cAAE,KAAK,GAAQ,EACpB,KAAC,IAAI,gCAAqB,EAC1B,KAAC,IAAI,iCAAsB,EAC3B,KAAC,IAAI,mCAAwB,EAC7B,KAAC,IAAI,6BAAkB,EACvB,KAAC,IAAI,cAAE,aAAa,GAAQ,IACf,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,EACd,SAAS,EACT,aAAa,EACb,aAAa,GAKd;IACC,MAAM,UAAU,GAAG,CAAC,IAAmB,EAAE,KAAa,EAAE,KAAsB,EAAE,EAAE,CAChF,oBAAoB,CAAC;QACnB,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,WAAW;QACzB,eAAe,EAAE,WAAW;QAC5B,YAAY,EAAE,kBAAkB;QAChC,OAAO,EAAE,OAAO;QAChB,KAAK;QACL,cAAc,EAAE,IAAI;QACpB,oBAAoB,EAAE,IAAI;KAC3B,CAAC,CAAC;IACL,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACjC,KAAC,oBAAoB,cACnB,MAAC,UAAU,IAAC,OAAO,EAAE,OAAO,aAC1B,KAAC,YAAY,IACX,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,KAAK,UAAU,EACvC,oBAAoB,EAAE,aAAa,EACnC,iBAAiB,EAAC,EAAE,EACpB,UAAU,EAAE,CAAC,EACb,uBAAuB,EAAE,KAAK,EAC9B,cAAc,QACd,oBAAoB,EAAE,IAAI,EAC1B,kBAAkB,EAAE,CAAC,EACrB,qBAAqB,EAAE,KAAK,GAC5B,EACF,KAAC,iBAAiB,IAAC,KAAK,EAAE,aAAa,GAAI,IAChC,GACQ,GACD,CACzB,CAAC;AACJ,CAAC;AAID,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAA2D;IAC/F,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,UAAU,GAAG,MAAM,CAAyD,IAAI,CAAC,CAAC;IACxF,UAAU,CAAC,OAAO,KAAK,4BAA4B,EAAE,CAAC;IACtD,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC;QAC1C,sBAAsB,EAAE,UAAU,CAAC,OAAO;QAC1C,sBAAsB,EAAE,eAAe;QACvC,WAAW;QACX,aAAa;QACb,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;QACtC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACpC,OAAO;QACP,UAAU;QACV,YAAY;KACb,CAAC,CAAC;IAEH,uEAAuE;IACvE,8EAA8E;IAC9E,8EAA8E;IAC9E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,KAAK,MAAM,IAAI,YAAY,CAAC,OAAO;YAAE,OAAO;QACrD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QACrE,YAAY,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAExB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,KAAK,cAAc;QAAE,aAAa,GAAG,cAAc,CAAC;IAC7D,IAAI,KAAK,KAAK,aAAa;QAAE,aAAa,GAAG,YAAY,CAAC;IAE1D,MAAM,aAAa,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;IAC1F,OAAO,CACL,KAAC,MAAM,IAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GAAI,CAC7F,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3F,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,8BAA8B;AAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,EACpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,QAAQ,CAAC,QAAwB;IACxC,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,iFAAiF;AACjF,sEAAsE;AACtE,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,QAAwB,EAAE,IAAqB;IACpE,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;QACrB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAa,EAAE,EAAmC,EAAE,EAAE;oBAC5D,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;oBAClB,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1B,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAyE,EAAE,CAAC;QACxF,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBACzB,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,0EAA0E;QAC1E,mEAAmE;QACnE,MAAM,WAAW,GAAuE;YACtF,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAQ,EAAE;YAC3C,IAAI,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAC3C,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAE,aAAa,GAAI,EAAE;YAC5E,MAAM;YACN,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QACH,WAAW,CAAC,OAAO,GAAG,OAAoE,CAAC;QAC3F,MAAM,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAEvC,OAAO,CAAC,QAAQ,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,cAAc,EAAC,aAAa,EAAE,aAAa,GAAI,CAAC,CAAC;QAChF,MAAM,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAE9B,OAAO,CAAC,QAAQ,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,aAAa,EAAC,aAAa,EAAE,aAAa,GAAI,CAAC,CAAC;QAC/E,MAAM,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAEzC,OAAO,CAAC,QAAQ,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAE,aAAa,GAAI,CAAC,CAAC;QACxE,MAAM,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAClC,MAAM,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAE9C,OAAO,CAAC,OAAO,EAAE,CAAC;QAElB,uEAAuE;QACvE,wEAAwE;QACxE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5E,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QAED,6EAA6E;QAC7E,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,4EAA4E;QAC5E,IAAI,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;YAChF,MAAM,CACJ,SAAS,EACT,GAAG,CAAC,CAAC,KAAK,4CAA4C,iBAAiB,GAAG,CAC3E,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;YAC5C,iBAAiB,GAAG,SAAS,CAAC;QAChC,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,6DAA6D;QAC7D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3D,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,kCAAkC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,2EAA2E;QAC3E,6CAA6C;QAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,wCAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=frame-clip-regression.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-clip-regression.test.d.ts","sourceRoot":"","sources":["../../src/ui/frame-clip-regression.test.tsx"],"names":[],"mappings":""}