codebase-cli 2.0.0-pre.13 → 2.0.0-pre.19

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.
@@ -169,12 +169,10 @@ export function FirstRunSetup({ onDone, onQuit, store, authBase = DEFAULT_AUTH_B
169
169
  return (_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingY: 1, children: [_jsx(BrandHeader, {}), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { dimColor: true, children: "Pick how you want to power the agent. You can change this later via `codebase auth`." }) }), renderBody(mode, authBase, manualUrl)] }));
170
170
  }
171
171
  /**
172
- * Branded header — animated pixel C + "codebase" wordmark. The C
173
- * pulses while the wizard is open (each row brightens in sequence)
174
- * so the boot screen feels alive without overwhelming.
172
+ * Branded header — static pixel C + "codebase" wordmark.
175
173
  */
176
- function BrandHeader({ animate = true }) {
177
- return (_jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(Box, { marginRight: 2, children: _jsx(PixelC, { animate: animate }) }), _jsxs(Box, { flexDirection: "column", justifyContent: "center", children: [_jsx(Text, { bold: true, color: "cyan", children: "codebase" }), _jsx(Text, { dimColor: true, children: "AI coding agent \u00B7 CLI" })] })] }));
174
+ function BrandHeader() {
175
+ return (_jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(Box, { marginRight: 2, children: _jsx(PixelC, {}) }), _jsxs(Box, { flexDirection: "column", justifyContent: "center", children: [_jsx(Text, { bold: true, color: "cyan", children: "codebase" }), _jsx(Text, { dimColor: true, children: "AI coding agent \u00B7 CLI" })] })] }));
178
176
  }
179
177
  function renderBody(mode, authBase, manualUrl) {
180
178
  if (mode.kind === "menu") {
@@ -1 +1 @@
1
- {"version":3,"file":"FirstRunSetup.js","sourceRoot":"","sources":["../../src/ui/FirstRunSetup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FirstRunSetup.js","sourceRoot":"","sources":["../../src/ui/FirstRunSetup.tsx"],"names":[],"mappings":"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"}
package/dist/ui/Input.js CHANGED
@@ -1,7 +1,32 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Box, Text, useInput } from "ink";
3
- import { useState } from "react";
3
+ import { useMemo, useRef, useState } from "react";
4
+ import { logInputEvent } from "./debug-input.js";
4
5
  import { backspace, deleteForward, initialInputState, insertChar, killToEnd, killToStart, killWordBack, moveEnd, moveLeft, moveRight, moveStart, undo, yank, } from "./input-state.js";
6
+ import { completePath, findAtTokenAt } from "./path-complete.js";
7
+ const MAX_SUGGESTIONS = 6;
8
+ const PLACEHOLDERS_FRESH = [
9
+ "Ask anything · / for commands",
10
+ "Try /help to see what I can do",
11
+ "Tell me what to build · / for commands",
12
+ "Paste a stack trace, a TODO, or a question",
13
+ "What are we working on?",
14
+ ];
15
+ const PLACEHOLDERS_RETURNING = [
16
+ "Welcome back · ↑ for prior prompts",
17
+ "Picking up where you left off · ↑ for history",
18
+ "What's next? · ↑ recalls past prompts",
19
+ "Ready when you are · / for commands · ↑ for history",
20
+ ];
21
+ /**
22
+ * Pick a placeholder once per Input mount. The returning-user variants
23
+ * mention ↑ for history so users with persisted prompts learn the
24
+ * shortcut; fresh sessions emphasize / and free-form prompts.
25
+ */
26
+ function pickPlaceholder(hasHistory) {
27
+ const pool = hasHistory ? PLACEHOLDERS_RETURNING : PLACEHOLDERS_FRESH;
28
+ return pool[Math.floor(Math.random() * pool.length)];
29
+ }
5
30
  /**
6
31
  * Single-line input with Emacs / readline editing. Cursor positioning,
7
32
  * kill ring with Ctrl-K/U/W/Y, and Ctrl-Z undo. Stay in tight feedback
@@ -20,20 +45,166 @@ import { backspace, deleteForward, initialInputState, insertChar, killToEnd, kil
20
45
  * Ctrl-Z undo
21
46
  * Ctrl-C abort (busy → cancel turn, idle → exit app)
22
47
  */
23
- export function Input({ disabled, onSubmit, onAbort }) {
48
+ export function Input({ disabled, onSubmit, onAbort, commands, history, cwd }) {
24
49
  const [state, setState] = useState(initialInputState());
50
+ const [suggestionIdx, setSuggestionIdx] = useState(0);
51
+ /**
52
+ * History cursor:
53
+ * -1 → live buffer (no history navigation in progress)
54
+ * 0..N-1 → indexing from the newest backwards (0 = most recent)
55
+ * We snapshot the live buffer the first time the user steps into
56
+ * history so ↓-past-newest returns to whatever they were typing.
57
+ */
58
+ const [historyIdx, setHistoryIdx] = useState(-1);
59
+ const [liveBuffer, setLiveBuffer] = useState(null);
60
+ // Stable per-mount placeholder so the hint doesn't flicker between renders.
61
+ const placeholderRef = useRef(pickPlaceholder((history?.length ?? 0) > 0));
62
+ // @-path completion cycler — `pathMatches` is the list, `pathIdx` is
63
+ // the current cycle position. Both reset whenever the buffer
64
+ // changes away from the active @-token.
65
+ const [pathMatches, setPathMatches] = useState([]);
66
+ const [pathIdx, setPathIdx] = useState(0);
67
+ const lastAtTokenRef = useRef(null);
68
+ // Autocomplete only fires when the buffer starts with `/` AND there's
69
+ // no whitespace yet (so once the user types a space, they're past the
70
+ // command name and into args — no more suggestions).
71
+ const autocompleteActive = state.buffer.startsWith("/") && !state.buffer.includes(" ");
72
+ const suggestions = useMemo(() => {
73
+ if (!autocompleteActive || !commands)
74
+ return [];
75
+ const query = state.buffer.slice(1).toLowerCase();
76
+ const matches = commands.filter((c) => c.name.toLowerCase().startsWith(query));
77
+ return matches.slice(0, MAX_SUGGESTIONS);
78
+ }, [autocompleteActive, commands, state.buffer]);
79
+ const clampedSuggestionIdx = Math.min(suggestionIdx, Math.max(0, suggestions.length - 1));
25
80
  useInput((input, key) => {
81
+ // First thing — log every keystroke when --debug-input is on, so
82
+ // we can diagnose "key X doesn't work" reports from real terminals.
83
+ logInputEvent(input, key);
26
84
  if (key.ctrl && input === "c") {
27
85
  onAbort?.();
28
86
  return;
29
87
  }
30
88
  if (disabled)
31
89
  return;
90
+ // Autocomplete navigation runs BEFORE generic input handling so Tab
91
+ // doesn't insert a literal tab and arrow keys don't fight cursor
92
+ // movement when we have a suggestion list to navigate.
93
+ if (autocompleteActive && suggestions.length > 0) {
94
+ if (key.upArrow) {
95
+ setSuggestionIdx((i) => (i - 1 + suggestions.length) % suggestions.length);
96
+ return;
97
+ }
98
+ if (key.downArrow) {
99
+ setSuggestionIdx((i) => (i + 1) % suggestions.length);
100
+ return;
101
+ }
102
+ if (key.tab) {
103
+ const chosen = suggestions[clampedSuggestionIdx];
104
+ setState({ ...initialInputState(), buffer: `/${chosen.name} `, cursor: chosen.name.length + 2 });
105
+ setSuggestionIdx(0);
106
+ return;
107
+ }
108
+ }
109
+ // @-path Tab completion. Only kicks in when slash autocomplete is
110
+ // inactive and the cursor sits inside an @-token. Repeated Tab
111
+ // cycles through matches; any keypress other than Tab clears the
112
+ // cycle so the next Tab recomputes a fresh list.
113
+ if (key.tab && !autocompleteActive && cwd) {
114
+ const at = findAtTokenAt(state.buffer, state.cursor);
115
+ if (at) {
116
+ let matches = pathMatches;
117
+ let idx = pathIdx;
118
+ const cached = lastAtTokenRef.current;
119
+ const sameContext = cached && cached.buffer === state.buffer && cached.cursor === state.cursor && matches.length > 0;
120
+ if (!sameContext) {
121
+ matches = completePath(at.prefix, cwd);
122
+ idx = 0;
123
+ setPathMatches(matches);
124
+ setPathIdx(0);
125
+ }
126
+ else {
127
+ idx = (idx + 1) % matches.length;
128
+ setPathIdx(idx);
129
+ }
130
+ if (matches.length === 0)
131
+ return;
132
+ const chosen = matches[idx];
133
+ const before = state.buffer.slice(0, at.start);
134
+ const after = state.buffer.slice(state.cursor);
135
+ const inserted = `@${chosen}`;
136
+ const newBuffer = before + inserted + after;
137
+ const newCursor = before.length + inserted.length;
138
+ setState({ ...initialInputState(), buffer: newBuffer, cursor: newCursor });
139
+ lastAtTokenRef.current = { buffer: newBuffer, cursor: newCursor };
140
+ return;
141
+ }
142
+ }
143
+ // History navigation: only when autocomplete is closed and the
144
+ // cursor sits at the start of the buffer (or buffer is empty).
145
+ // That way ↑/↓ in the middle of a long line still behave as
146
+ // cursor moves, matching shell readline.
147
+ if (history && history.length > 0 && !autocompleteActive && state.cursor === 0) {
148
+ if (key.upArrow) {
149
+ const nextIdx = historyIdx < 0 ? 0 : Math.min(historyIdx + 1, history.length - 1);
150
+ if (historyIdx < 0)
151
+ setLiveBuffer(state.buffer);
152
+ const entry = history[history.length - 1 - nextIdx] ?? "";
153
+ setHistoryIdx(nextIdx);
154
+ setState({ ...initialInputState(), buffer: entry, cursor: entry.length });
155
+ return;
156
+ }
157
+ if (key.downArrow) {
158
+ if (historyIdx < 0)
159
+ return; // already at live buffer
160
+ const nextIdx = historyIdx - 1;
161
+ if (nextIdx < 0) {
162
+ const restored = liveBuffer ?? "";
163
+ setHistoryIdx(-1);
164
+ setLiveBuffer(null);
165
+ setState({ ...initialInputState(), buffer: restored, cursor: restored.length });
166
+ }
167
+ else {
168
+ const entry = history[history.length - 1 - nextIdx] ?? "";
169
+ setHistoryIdx(nextIdx);
170
+ setState({ ...initialInputState(), buffer: entry, cursor: entry.length });
171
+ }
172
+ return;
173
+ }
174
+ }
175
+ // Esc clears the buffer back to empty (and exits history mode) so
176
+ // the user can bail out of a half-typed prompt without having to
177
+ // hammer Backspace. Matches CC's behavior; harmless when empty.
178
+ if (key.escape) {
179
+ if (state.buffer.length === 0 && historyIdx < 0)
180
+ return;
181
+ setState(initialInputState());
182
+ setSuggestionIdx(0);
183
+ setHistoryIdx(-1);
184
+ setLiveBuffer(null);
185
+ return;
186
+ }
32
187
  if (key.return) {
188
+ // `\<Enter>` inserts a newline instead of submitting — the CC
189
+ // convention for multi-line input. Strip the trailing `\` and
190
+ // replace it with a newline so the buffer reads cleanly.
191
+ if (state.buffer.endsWith("\\") && state.cursor === state.buffer.length) {
192
+ const stripped = state.buffer.slice(0, -1);
193
+ setState({ ...initialInputState(), buffer: `${stripped}\n`, cursor: stripped.length + 1 });
194
+ return;
195
+ }
196
+ // Enter on a single-suggestion autocomplete still submits — if
197
+ // the user wanted to complete, they'd Tab. If they hit Enter on
198
+ // `/cos`, that's a clear "run /cost" intent only if it's an
199
+ // exact match; otherwise we submit as-typed and let the command
200
+ // registry's not-found path surface the typo.
33
201
  const trimmed = state.buffer.trim();
34
202
  if (trimmed.length > 0) {
35
203
  onSubmit(trimmed);
36
204
  setState(initialInputState());
205
+ setSuggestionIdx(0);
206
+ setHistoryIdx(-1);
207
+ setLiveBuffer(null);
37
208
  }
38
209
  return;
39
210
  }
@@ -46,13 +217,35 @@ export function Input({ disabled, onSubmit, onAbort }) {
46
217
  return setState(moveStart(state));
47
218
  if (key.ctrl && input === "e")
48
219
  return setState(moveEnd(state));
49
- // Edits
50
- if (key.backspace)
220
+ // Edits. Some terminals (Linux console, tmux, certain SSH configs)
221
+ // deliver Backspace as raw 0x7f/0x08 without setting key.backspace,
222
+ // or even surface it as key.delete. We catch every shape so the
223
+ // floor — "Backspace deletes a char" — always works.
224
+ const isBackspaceByte = input === "\x7f" || input === "\b";
225
+ if (key.backspace || isBackspaceByte) {
226
+ setSuggestionIdx(0);
51
227
  return setState(backspace(state));
52
- if (key.delete)
228
+ }
229
+ // `key.delete` historically also fires for Backspace on some Ink
230
+ // builds, so prefer the backspace semantics when the buffer is
231
+ // non-empty and the cursor isn't at end-of-line. Forward-delete
232
+ // stays accessible via Ctrl-D.
233
+ if (key.delete) {
234
+ if (state.cursor > 0 && state.cursor === state.buffer.length) {
235
+ setSuggestionIdx(0);
236
+ return setState(backspace(state));
237
+ }
53
238
  return setState(deleteForward(state));
54
- if (key.ctrl && input === "d")
239
+ }
240
+ // Ctrl-D matches readline: on an empty buffer it's EOF (i.e. quit),
241
+ // on a non-empty buffer it deletes forward like Delete.
242
+ if (key.ctrl && input === "d") {
243
+ if (state.buffer.length === 0) {
244
+ onAbort?.();
245
+ return;
246
+ }
55
247
  return setState(deleteForward(state));
248
+ }
56
249
  // Kill ring
57
250
  if (key.ctrl && input === "k")
58
251
  return setState(killToEnd(state));
@@ -65,20 +258,59 @@ export function Input({ disabled, onSubmit, onAbort }) {
65
258
  // Undo
66
259
  if (key.ctrl && input === "z")
67
260
  return setState(undo(state));
68
- // Printable text — Ink's useInput delivers individual chars (or pasted runs)
69
- if (input && !key.ctrl && !key.meta) {
261
+ // Printable text — Ink's useInput delivers individual chars (or pasted runs).
262
+ // Strip control bytes (0x00–0x1f, 0x7f) so a stray Backspace or escape
263
+ // fragment doesn't end up inserted as a glyph in the buffer.
264
+ const isPrintable = input && !key.ctrl && !key.meta && !/[\x00-\x1f\x7f]/.test(input);
265
+ if (isPrintable) {
266
+ setSuggestionIdx(0);
267
+ // Once the user starts editing on top of a recalled history
268
+ // entry, snap out of history mode — the entry is now their
269
+ // own buffer and ↓ shouldn't try to bring it back.
270
+ if (historyIdx >= 0) {
271
+ setHistoryIdx(-1);
272
+ setLiveBuffer(null);
273
+ }
274
+ // Break the @-Tab cycle so the next Tab recomputes from the new text.
275
+ if (pathMatches.length > 0) {
276
+ setPathMatches([]);
277
+ setPathIdx(0);
278
+ lastAtTokenRef.current = null;
279
+ }
70
280
  setState(insertChar(state, input));
71
281
  }
72
282
  });
73
- return (_jsxs(Box, { paddingX: 1, children: [_jsxs(Text, { color: disabled ? "gray" : "cyan", children: [disabled ? "·" : ">", " "] }), disabled ? _jsx(Text, { children: state.buffer }) : _jsx(RenderedBuffer, { buffer: state.buffer, cursor: state.cursor })] }));
283
+ return (_jsxs(Box, { flexDirection: "column", children: [autocompleteActive && suggestions.length > 0 ? (_jsx(SlashSuggestions, { suggestions: suggestions, selected: clampedSuggestionIdx })) : null, _jsxs(Box, { paddingX: 1, children: [_jsxs(Text, { color: disabled ? "gray" : "cyan", children: [disabled ? "·" : ">", " "] }), disabled ? (_jsx(Text, { children: state.buffer })) : state.buffer.length === 0 ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: "cyan", children: "\u258E" }), _jsx(Text, { dimColor: true, children: placeholderRef.current })] })) : (_jsx(RenderedBuffer, { buffer: state.buffer, cursor: state.cursor }))] })] }));
284
+ }
285
+ function SlashSuggestions({ suggestions, selected, }) {
286
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, marginBottom: 0, children: [suggestions.map((cmd, i) => {
287
+ const isSelected = i === selected;
288
+ return (_jsxs(Box, { children: [_jsxs(Text, { color: isSelected ? "cyan" : "gray", bold: isSelected, children: [isSelected ? "▸ " : " ", `/${cmd.name}`] }), cmd.description ? (_jsxs(Text, { dimColor: true, children: [" ", "\u2014 ", cmd.description.slice(0, 60)] })) : null] }, `sug-${cmd.name}`));
289
+ }), _jsx(Box, { marginTop: 0, children: _jsx(Text, { dimColor: true, children: "\u2191\u2193 to move \u00B7 Tab to complete \u00B7 Enter to send as-typed" }) })] }));
74
290
  }
75
291
  /**
76
292
  * Render the buffer with a visible cursor block at the cursor position.
77
- * Inverse-video on the character under the cursor, or a thin block at
78
- * end-of-line. Keeps the layout stable so the line doesn't shift when
79
- * the cursor crosses the boundary.
293
+ * Splits on `\n` so multi-line pastes (and `\<Enter>` newlines) show
294
+ * as stacked rows otherwise pasted code collapses into one line and
295
+ * the user can't see what they're sending.
80
296
  */
81
297
  function RenderedBuffer({ buffer, cursor }) {
298
+ if (!buffer.includes("\n"))
299
+ return _jsx(SingleLineBuffer, { buffer: buffer, cursor: cursor });
300
+ const lines = buffer.split("\n");
301
+ let consumed = 0;
302
+ return (_jsx(Box, { flexDirection: "column", children: lines.map((line, idx) => {
303
+ const lineStart = consumed;
304
+ const lineEnd = consumed + line.length;
305
+ const cursorOnThisLine = cursor >= lineStart && cursor <= lineEnd;
306
+ consumed = lineEnd + 1;
307
+ if (!cursorOnThisLine) {
308
+ return _jsx(Text, { children: line.length === 0 ? " " : line }, `line-${idx}-${line.slice(0, 8)}`);
309
+ }
310
+ return (_jsx(SingleLineBuffer, { buffer: line, cursor: cursor - lineStart }, `line-${idx}-cur-${line.slice(0, 8)}`));
311
+ }) }));
312
+ }
313
+ function SingleLineBuffer({ buffer, cursor }) {
82
314
  if (cursor >= buffer.length) {
83
315
  return (_jsxs(_Fragment, { children: [_jsx(Text, { children: buffer }), _jsx(Text, { color: "cyan", children: "\u258E" })] }));
84
316
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/ui/Input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/ui/Input.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACN,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,GACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAuBjE,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,MAAM,kBAAkB,GAAG;IAC1B,+BAA+B;IAC/B,gCAAgC;IAChC,wCAAwC;IACxC,4CAA4C;IAC5C,yBAAyB;CACzB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC9B,oCAAoC;IACpC,+CAA+C;IAC/C,uCAAuC;IACvC,qDAAqD;CACrD,CAAC;AAEF;;;;GAIG;AACH,SAAS,eAAe,CAAC,UAAmB;IAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACtE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAc;IACxF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAClE,4EAA4E;IAC5E,MAAM,cAAc,GAAG,MAAM,CAAS,eAAe,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnF,qEAAqE;IACrE,6DAA6D;IAC7D,wCAAwC;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,MAAM,CAA4C,IAAI,CAAC,CAAC;IAE/E,sEAAsE;IACtE,sEAAsE;IACtE,qDAAqD;IACrD,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEvF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,kBAAkB,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAE1F,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACvB,iEAAiE;QACjE,oEAAoE;QACpE,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE1B,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO;QACR,CAAC;QAED,IAAI,QAAQ;YAAE,OAAO;QAErB,oEAAoE;QACpE,iEAAiE;QACjE,uDAAuD;QACvD,IAAI,kBAAkB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3E,OAAO;YACR,CAAC;YACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACtD,OAAO;YACR,CAAC;YACD,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBACjD,QAAQ,CAAC,EAAE,GAAG,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO;YACR,CAAC;QACF,CAAC;QAED,kEAAkE;QAClE,+DAA+D;QAC/D,iEAAiE;QACjE,iDAAiD;QACjD,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,IAAI,GAAG,EAAE,CAAC;YAC3C,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,EAAE,EAAE,CAAC;gBACR,IAAI,OAAO,GAAG,WAAW,CAAC;gBAC1B,IAAI,GAAG,GAAG,OAAO,CAAC;gBAClB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;gBACtC,MAAM,WAAW,GAChB,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAClB,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACvC,GAAG,GAAG,CAAC,CAAC;oBACR,cAAc,CAAC,OAAO,CAAC,CAAC;oBACxB,UAAU,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACP,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;oBACjC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;gBAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAClD,QAAQ,CAAC,EAAE,GAAG,iBAAiB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC3E,cAAc,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBAClE,OAAO;YACR,CAAC;QACF,CAAC;QAED,+DAA+D;QAC/D,+DAA+D;QAC/D,4DAA4D;QAC5D,yCAAyC;QACzC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChF,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClF,IAAI,UAAU,GAAG,CAAC;oBAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC1D,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvB,QAAQ,CAAC,EAAE,GAAG,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1E,OAAO;YACR,CAAC;YACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,UAAU,GAAG,CAAC;oBAAE,OAAO,CAAC,yBAAyB;gBACrD,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC;gBAC/B,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBACjB,MAAM,QAAQ,GAAG,UAAU,IAAI,EAAE,CAAC;oBAClC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClB,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpB,QAAQ,CAAC,EAAE,GAAG,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjF,CAAC;qBAAM,CAAC;oBACP,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC1D,aAAa,CAAC,OAAO,CAAC,CAAC;oBACvB,QAAQ,CAAC,EAAE,GAAG,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO;YACR,CAAC;QACF,CAAC;QAED,kEAAkE;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC;gBAAE,OAAO;YACxD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC9B,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACR,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,8DAA8D;YAC9D,8DAA8D;YAC9D,yDAAyD;YACzD,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,QAAQ,CAAC,EAAE,GAAG,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,QAAQ,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3F,OAAO;YACR,CAAC;YACD,+DAA+D;YAC/D,gEAAgE;YAChE,4DAA4D;YAC5D,gEAAgE;YAChE,8CAA8C;YAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClB,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC9B,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpB,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClB,aAAa,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,OAAO;QACR,CAAC;QAED,kBAAkB;QAClB,IAAI,GAAG,CAAC,SAAS;YAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/D,mEAAmE;QACnE,oEAAoE;QACpE,gEAAgE;QAChE,qDAAqD;QACrD,MAAM,eAAe,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;QAC3D,IAAI,GAAG,CAAC,SAAS,IAAI,eAAe,EAAE,CAAC;YACtC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,iEAAiE;QACjE,+DAA+D;QAC/D,gEAAgE;QAChE,+BAA+B;QAC/B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9D,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,oEAAoE;QACpE,wDAAwD;QACxD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,EAAE,CAAC;gBACZ,OAAO;YACR,CAAC;YACD,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,YAAY;QACZ,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,OAAO;QACP,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,8EAA8E;QAC9E,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,WAAW,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,WAAW,EAAE,CAAC;YACjB,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,4DAA4D;YAC5D,2DAA2D;YAC3D,mDAAmD;YACnD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACrB,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClB,aAAa,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,sEAAsE;YACtE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,cAAc,CAAC,EAAE,CAAC,CAAC;gBACnB,UAAU,CAAC,CAAC,CAAC,CAAC;gBACd,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACpC,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,kBAAkB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/C,KAAC,gBAAgB,IAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,GAAI,CAC9E,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,aACf,MAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,aAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,EACtE,QAAQ,CAAC,CAAC,CAAC,CACX,KAAC,IAAI,cAAE,KAAK,CAAC,MAAM,GAAQ,CAC3B,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/B,8BACC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,EAC3B,KAAC,IAAI,IAAC,QAAQ,kBAAE,cAAc,CAAC,OAAO,GAAQ,IAC5C,CACH,CAAC,CAAC,CAAC,CACH,KAAC,cAAc,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,CAC9D,IACI,IACD,CACN,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACzB,WAAW,EACX,QAAQ,GAIR;IACA,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,aACtD,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3B,MAAM,UAAU,GAAG,CAAC,KAAK,QAAQ,CAAC;gBAClC,OAAO,CACN,MAAC,GAAG,eACH,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,aACzD,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACxB,IAAI,GAAG,CAAC,IAAI,EAAE,IACT,EACN,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAClB,MAAC,IAAI,IAAC,QAAQ,mBACZ,IAAI,aAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAC/B,CACP,CAAC,CAAC,CAAC,IAAI,KATC,OAAO,GAAG,CAAC,IAAI,EAAE,CAUrB,CACN,CAAC;YACH,CAAC,CAAC,EACF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,QAAQ,gGAA6D,GACtE,IACD,CACN,CAAC;AACH,CAAC;AAOD;;;;;GAKG;AACH,SAAS,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuB;IAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IACxF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,CACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACxB,MAAM,SAAS,GAAG,QAAQ,CAAC;YAC3B,MAAM,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YACvC,MAAM,gBAAgB,GAAG,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,CAAC;YAClE,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvB,OAAO,KAAC,IAAI,cAA0C,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAlE,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAyC,CAAC;YAC9F,CAAC;YACD,OAAO,CACN,KAAC,gBAAgB,IAEhB,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,MAAM,GAAG,SAAS,IAFrB,QAAQ,GAAG,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAGzC,CACF,CAAC;QACH,CAAC,CAAC,GACG,CACN,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuB;IAChE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,CACN,8BACC,KAAC,IAAI,cAAE,MAAM,GAAQ,EACrB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,IACzB,CACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,CACN,8BACC,KAAC,IAAI,cAAE,MAAM,GAAQ,EACrB,KAAC,IAAI,IAAC,OAAO,kBAAE,QAAQ,GAAQ,EAC/B,KAAC,IAAI,cAAE,KAAK,GAAQ,IAClB,CACH,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
+ import { colorForKind, highlight, rulesFor } from "./highlight.js";
3
4
  import { wrapText } from "./wrap.js";
4
5
  export function Markdown({ text, width, keyPrefix }) {
5
6
  const blocks = parseBlocks(text);
@@ -10,14 +11,82 @@ function MarkdownBlock({ block, width, keyPrefix }) {
10
11
  return _jsx(Text, { children: " " });
11
12
  }
12
13
  if (block.kind === "code-block") {
13
- const lines = block.text.split("\n");
14
- return (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: lines.map((line, i) => (_jsx(Text, { color: "cyan", children: line.length === 0 ? " " : line }, `${keyPrefix}-cl-${i}-${line.slice(0, 12)}`))) }));
14
+ return _jsx(HighlightedCodeBlock, { text: block.text, lang: block.lang, keyPrefix: keyPrefix });
15
15
  }
16
16
  if (block.kind === "heading") {
17
17
  return _jsx(SpanLine, { spans: block.spans, width: width, bold: true, color: "cyan", keyPrefix: keyPrefix });
18
18
  }
19
+ if (block.kind === "list") {
20
+ return (_jsx(Box, { flexDirection: "column", children: block.items.map((item, i) => (_jsx(ListRow, { item: item, width: width, keyPrefix: `${keyPrefix}-li-${i}` }, `${keyPrefix}-li-${i}-${item.marker}`))) }));
21
+ }
22
+ if (block.kind === "quote") {
23
+ // Use SpanLine to preserve inline styling, but wrap in a left-bar gutter
24
+ // so block-quotes read like one in a terminal.
25
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { marginRight: 1, children: _jsx(Text, { dimColor: true, children: "\u2502" }) }), _jsx(Box, { flexDirection: "column", flexGrow: 1, children: _jsx(SpanLine, { spans: block.spans, width: Math.max(20, width - 2), keyPrefix: keyPrefix, dim: true }) })] }));
26
+ }
19
27
  return _jsx(SpanLine, { spans: block.spans, width: width, keyPrefix: keyPrefix });
20
28
  }
29
+ /**
30
+ * Render a fenced code block with regex-based syntax highlighting if
31
+ * the language is recognized. Walks the token list and splits on \n so
32
+ * the per-line key invariant from the rest of the renderer holds.
33
+ * Unsupported languages render in the original cyan tone.
34
+ */
35
+ function HighlightedCodeBlock({ text, lang, keyPrefix, }) {
36
+ const rules = rulesFor(lang);
37
+ if (!rules) {
38
+ const lines = text.split("\n");
39
+ return (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: lines.map((line, i) => (_jsx(Text, { color: "cyan", children: line.length === 0 ? " " : line }, `${keyPrefix}-cl-${i}-${line.slice(0, 12)}`))) }));
40
+ }
41
+ // Split the highlighted token stream into per-line rows so the
42
+ // columns stay aligned with the surrounding markdown and the keys
43
+ // stay stable.
44
+ const rows = [[]];
45
+ for (const tok of highlight(text, lang)) {
46
+ const color = colorForKind(tok.kind);
47
+ const parts = tok.text.split("\n");
48
+ for (let i = 0; i < parts.length; i++) {
49
+ if (i > 0)
50
+ rows.push([]);
51
+ if (parts[i].length > 0)
52
+ rows[rows.length - 1].push({ color, text: parts[i] });
53
+ }
54
+ }
55
+ return (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: rows.map((row, i) => {
56
+ const previewKey = row
57
+ .map((c) => c.text)
58
+ .join("")
59
+ .slice(0, 12);
60
+ return (_jsx(Text, { children: row.length === 0
61
+ ? " "
62
+ : row.map((c, ci) => (
63
+ // biome-ignore lint/suspicious/noArrayIndexKey: pure presentational
64
+ _jsx(Text, { color: c.color, children: c.text }, `${keyPrefix}-hl-${i}-c${ci}`))) }, `${keyPrefix}-hl-${i}-${previewKey}`));
65
+ }) }));
66
+ }
67
+ /**
68
+ * One list-item row: marker in cyan (e.g. "•" / "1.") + the item body
69
+ * wrapped to the remaining width, with continuation lines indented
70
+ * under the body so wrapped lines hang neatly past the marker.
71
+ */
72
+ function ListRow({ item, width, keyPrefix }) {
73
+ const markerCol = item.marker.length + 1; // marker + the gap space
74
+ const indentCols = item.indent * 2;
75
+ const bodyWidth = Math.max(10, width - markerCol - indentCols);
76
+ const plain = item.spans.map((s) => s.text).join("");
77
+ const wrapped = bodyWidth > 0 ? wrapText(plain, bodyWidth) : [plain];
78
+ let consumed = 0;
79
+ return (_jsx(Box, { flexDirection: "column", children: wrapped.map((line, lineIdx) => {
80
+ const chunks = sliceSpans(item.spans, consumed, consumed + line.length);
81
+ consumed += line.length;
82
+ if (lineIdx < wrapped.length - 1 && plain[consumed] === " ")
83
+ consumed += 1;
84
+ const rowKey = `${keyPrefix}-row-${lineIdx}-${line.slice(0, 8)}`;
85
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { children: " ".repeat(indentCols) }), lineIdx === 0 ? _jsxs(Text, { color: "cyan", children: [item.marker, " "] }) : _jsx(Text, { children: " ".repeat(markerCol) }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { children: chunks.map((c, ci) => (_jsx(Text
86
+ // biome-ignore lint/suspicious/noArrayIndexKey: ci is a stable position within a single wrapped row; reusing instances is harmless
87
+ , { bold: c.kind === "bold", italic: c.kind === "italic", color: c.kind === "code" ? "cyan" : undefined, children: c.text }, `${rowKey}-c${ci}`))) }) })] }, rowKey));
88
+ }) }));
89
+ }
21
90
  /**
22
91
  * Render a sequence of inline spans, wrapped to `width`. We wrap on
23
92
  * the plain-text representation, then walk the spans in parallel to
@@ -25,7 +94,7 @@ function MarkdownBlock({ block, width, keyPrefix }) {
25
94
  * select-copy clean while preserving styled segments across line
26
95
  * breaks.
27
96
  */
28
- function SpanLine({ spans, width, bold, color, keyPrefix, }) {
97
+ function SpanLine({ spans, width, bold, color, dim, keyPrefix, }) {
29
98
  // For the first cut: serialize spans into one rich-text line, wrap
30
99
  // the plain projection, and emit one <Text> per row with all spans
31
100
  // inlined. Wrap calculation uses the plain text so column counts
@@ -40,11 +109,9 @@ function SpanLine({ spans, width, bold, color, keyPrefix, }) {
40
109
  if (lineIdx < wrapped.length - 1 && plain[consumed] === " ")
41
110
  consumed += 1;
42
111
  const rowKey = `${keyPrefix}-r-${lineIdx}-${line.slice(0, 12)}`;
43
- return (
44
- // biome-ignore lint/suspicious/noArrayIndexKey: pure presentational, no per-row state
45
- _jsx(Text, { children: chunks.map((c, ci) => (_jsx(Text
46
- // biome-ignore lint/suspicious/noArrayIndexKey: pure presentational
47
- , { bold: bold || c.kind === "bold", italic: c.kind === "italic", color: c.kind === "code" ? "cyan" : color, children: c.text }, `${rowKey}-c${ci}`))) }, rowKey));
112
+ return (_jsx(Text, { children: chunks.map((c, ci) => (_jsx(Text
113
+ // biome-ignore lint/suspicious/noArrayIndexKey: ci is a stable position within a single wrapped row
114
+ , { bold: bold || c.kind === "bold", italic: c.kind === "italic", dimColor: dim, color: c.kind === "code" ? "cyan" : color, children: c.text }, `${rowKey}-c${ci}`))) }, rowKey));
48
115
  }) }));
49
116
  }
50
117
  /** Slice the span sequence to the [start, end) range of the plain projection. */
@@ -101,7 +168,54 @@ function parseBlocks(text) {
101
168
  i++;
102
169
  continue;
103
170
  }
104
- // Paragraph (consume until blank line, fence, or heading).
171
+ // List (bulleted or ordered). Consumes consecutive list rows + any
172
+ // continuation lines that are deeper-indented than the list marker.
173
+ const listProbe = matchListLine(line);
174
+ if (listProbe) {
175
+ const items = [];
176
+ let ordered = listProbe.ordered;
177
+ while (i < lines.length) {
178
+ const row = matchListLine(lines[i]);
179
+ if (!row)
180
+ break;
181
+ ordered = ordered || row.ordered;
182
+ const itemLines = [row.body];
183
+ i++;
184
+ // Continuation lines: indented, non-empty, non-list rows.
185
+ while (i < lines.length) {
186
+ const peek = lines[i];
187
+ if (peek.trim() === "")
188
+ break;
189
+ if (matchListLine(peek))
190
+ break;
191
+ if (peek.match(/^#{1,3}\s+/))
192
+ break;
193
+ if (peek.match(/^```/))
194
+ break;
195
+ itemLines.push(peek.trim());
196
+ i++;
197
+ }
198
+ items.push({
199
+ marker: row.marker,
200
+ indent: row.indent,
201
+ spans: parseInline(itemLines.join(" ")),
202
+ });
203
+ }
204
+ blocks.push({ kind: "list", ordered, items });
205
+ continue;
206
+ }
207
+ // Block-quote (single-line for now; runs collapse on blank line).
208
+ if (line.match(/^>\s?/)) {
209
+ const quoteLines = [line.replace(/^>\s?/, "")];
210
+ i++;
211
+ while (i < lines.length && lines[i].match(/^>\s?/)) {
212
+ quoteLines.push(lines[i].replace(/^>\s?/, ""));
213
+ i++;
214
+ }
215
+ blocks.push({ kind: "quote", spans: parseInline(quoteLines.join(" ")) });
216
+ continue;
217
+ }
218
+ // Paragraph (consume until blank line, fence, list, quote, or heading).
105
219
  const paraLines = [line];
106
220
  i++;
107
221
  while (i < lines.length) {
@@ -112,6 +226,10 @@ function parseBlocks(text) {
112
226
  break;
113
227
  if (peek.match(/^#{1,3}\s+/))
114
228
  break;
229
+ if (matchListLine(peek))
230
+ break;
231
+ if (peek.match(/^>\s?/))
232
+ break;
115
233
  paraLines.push(peek);
116
234
  i++;
117
235
  }
@@ -119,6 +237,22 @@ function parseBlocks(text) {
119
237
  }
120
238
  return blocks;
121
239
  }
240
+ /**
241
+ * Detect a list row and return its marker, body, indent depth, and
242
+ * kind. Matches `- foo`, `* foo`, `+ foo`, and ordered `12. foo`. The
243
+ * leading-whitespace count maps to a 2-space-per-level indent: 0 or 1
244
+ * leading spaces stay at level 0, 2-3 → 1, 4-5 → 2, etc.
245
+ */
246
+ function matchListLine(line) {
247
+ const m = line.match(/^(\s*)([-*+]|\d+\.)\s+(.*)$/);
248
+ if (!m)
249
+ return null;
250
+ const indent = Math.floor(m[1].length / 2);
251
+ const raw = m[2];
252
+ const ordered = /^\d+\./.test(raw);
253
+ const marker = ordered ? raw : "•";
254
+ return { marker, body: m[3], indent, ordered };
255
+ }
122
256
  /**
123
257
  * Split a single line of inline text into styled spans. Greedy, non-
124
258
  * nested — `**bold _italic_**` doesn't render correctly, but plain