@pentoshi/clai 4.11.2 → 4.11.3
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/agent/runner.js +37 -6
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tool-history.js +4 -2
- package/dist/agent/tool-history.js.map +1 -1
- package/dist/app/controllers/session-prompt-queue.d.ts +6 -7
- package/dist/app/controllers/session-prompt-queue.js +80 -85
- package/dist/app/controllers/session-prompt-queue.js.map +1 -1
- package/dist/app/controllers/turn-continuation.js +3 -0
- package/dist/app/controllers/turn-continuation.js.map +1 -1
- package/dist/llm/token-estimate-calibration.d.ts +0 -1
- package/dist/llm/token-estimate-calibration.js +3 -3
- package/dist/llm/token-estimate-calibration.js.map +1 -1
- package/dist/llm/tool-protocol.d.ts +1 -0
- package/dist/llm/tool-protocol.js +29 -7
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/system.agent.md +5 -5
- package/dist/session-runtime/binding.d.ts +1 -1
- package/dist/session-runtime/binding.js +3 -1
- package/dist/session-runtime/binding.js.map +1 -1
- package/dist/session-runtime/child-bridge.d.ts +7 -2
- package/dist/session-runtime/child-bridge.js +55 -4
- package/dist/session-runtime/child-bridge.js.map +1 -1
- package/dist/session-runtime/client.d.ts +5 -0
- package/dist/session-runtime/client.js +13 -5
- package/dist/session-runtime/client.js.map +1 -1
- package/dist/session-runtime/host.d.ts +7 -0
- package/dist/session-runtime/host.js +112 -19
- package/dist/session-runtime/host.js.map +1 -1
- package/dist/session-runtime/types.d.ts +10 -0
- package/dist/tools/fs.d.ts +0 -5
- package/dist/tools/fs.js +318 -272
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/shell.d.ts +5 -2
- package/dist/tools/shell.js +313 -20
- package/dist/tools/shell.js.map +1 -1
- package/dist/tui-v2/app/App.js +72 -55
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/layout-widths.d.ts +21 -0
- package/dist/tui-v2/app/layout-widths.js +50 -0
- package/dist/tui-v2/app/layout-widths.js.map +1 -0
- package/dist/tui-v2/bootstrap/resize-repaint.d.ts +8 -1
- package/dist/tui-v2/bootstrap/resize-repaint.js +8 -0
- package/dist/tui-v2/bootstrap/resize-repaint.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js +22 -7
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/modal/secret-modal.js +10 -10
- package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.js +6 -1
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.d.ts +2 -0
- package/dist/tui-v2/components/transcript/assistant-message.js +4 -2
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +4 -1
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.js +4 -1
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-row.js +1 -1
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/input/chord-from-opentui-key.d.ts +6 -0
- package/dist/tui-v2/input/chord-from-opentui-key.js +32 -6
- package/dist/tui-v2/input/chord-from-opentui-key.js.map +1 -1
- package/dist/tui-v2/input/escape-cancellation.d.ts +7 -0
- package/dist/tui-v2/input/escape-cancellation.js +11 -0
- package/dist/tui-v2/input/escape-cancellation.js.map +1 -0
- package/dist/tui-v2/rendering/pager-markdown.d.ts +4 -0
- package/dist/tui-v2/rendering/pager-markdown.js +2 -0
- package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
- package/dist/ui-core/actions/chord.d.ts +4 -0
- package/dist/ui-core/actions/chord.js.map +1 -1
- package/dist/ui-core/bootstrap/capabilities.d.ts +6 -0
- package/dist/ui-core/bootstrap/capabilities.js +39 -4
- package/dist/ui-core/bootstrap/capabilities.js.map +1 -1
- package/dist/ui-core/react/use-session-state.d.ts +9 -2
- package/dist/ui-core/react/use-session-state.js +35 -4
- package/dist/ui-core/react/use-session-state.js.map +1 -1
- package/dist/ui-core/rendering/code-block.d.ts +10 -5
- package/dist/ui-core/rendering/code-block.js +68 -40
- package/dist/ui-core/rendering/code-block.js.map +1 -1
- package/dist/ui-core/rendering/markdown.d.ts +6 -3
- package/dist/ui-core/rendering/markdown.js +92 -71
- package/dist/ui-core/rendering/markdown.js.map +1 -1
- package/dist/ui-core/rendering/render-markdown-lines.d.ts +4 -0
- package/dist/ui-core/rendering/render-markdown-lines.js +4 -1
- package/dist/ui-core/rendering/render-markdown-lines.js.map +1 -1
- package/dist/ui-core/rendering/streaming-markdown.js +14 -1
- package/dist/ui-core/rendering/streaming-markdown.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../src/ui-core/rendering/code-block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../src/ui-core/rendering/code-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ChalkInstance } from "chalk";
|
|
2
|
+
import { type CodeBlockAppearance } from "./code-block.js";
|
|
3
|
+
export type MarkdownAppearance = CodeBlockAppearance;
|
|
4
|
+
export declare function renderInlineMarkdown(text: string, paint?: ChalkInstance): string;
|
|
2
5
|
export declare function visibleWidth(str: string): number;
|
|
3
6
|
/**
|
|
4
7
|
* Soft-wrap a line that may contain ANSI SGR styles.
|
|
@@ -7,8 +10,8 @@ export declare function visibleWidth(str: string): number;
|
|
|
7
10
|
*/
|
|
8
11
|
export declare function wrapAnsiLine(line: string, maxWidth: number): string[];
|
|
9
12
|
export declare function indentAndWrapText(text: string, indent?: string): string;
|
|
10
|
-
export declare function renderMarkdown(text: string, width?: number): string;
|
|
11
|
-
export declare function createMarkdownStreamWriter(write: (chunk: string) => void): {
|
|
13
|
+
export declare function renderMarkdown(text: string, width?: number, appearance?: MarkdownAppearance): string;
|
|
14
|
+
export declare function createMarkdownStreamWriter(write: (chunk: string) => void, appearance?: MarkdownAppearance): {
|
|
12
15
|
push(token: string): void;
|
|
13
16
|
finish(): void;
|
|
14
17
|
};
|
|
@@ -1,17 +1,31 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
1
|
+
import chalk, { Chalk } from "chalk";
|
|
2
2
|
import { renderColumns } from "./text-width.js";
|
|
3
3
|
import { codeBlockBottom, codeBlockFitWidth, codeBlockRows, codeBlockTop, codeBlockWidth, isCodeFenceClose, matchCodeFenceOpen, openCodeFence, trimCodeBlockBody, } from "./code-block.js";
|
|
4
4
|
// Lightweight terminal markdown renderer that styles **bold**, *italic*,
|
|
5
5
|
// `code`, links, headings, lists, blockquotes, hrules, and ```fenced```
|
|
6
6
|
// code blocks. Designed to work both for one-shot strings and for
|
|
7
7
|
// token-streaming inputs (line-buffered).
|
|
8
|
+
const CHALK_LEVEL = {
|
|
9
|
+
none: 0,
|
|
10
|
+
"16": 1,
|
|
11
|
+
"256": 2,
|
|
12
|
+
truecolor: 3,
|
|
13
|
+
};
|
|
14
|
+
function renderContext(appearance) {
|
|
15
|
+
return {
|
|
16
|
+
appearance,
|
|
17
|
+
paint: appearance?.colorMode === undefined
|
|
18
|
+
? chalk
|
|
19
|
+
: new Chalk({ level: CHALK_LEVEL[appearance.colorMode] }),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
8
22
|
function repeat(char, count) {
|
|
9
23
|
return char.repeat(Math.max(0, count));
|
|
10
24
|
}
|
|
11
25
|
// Walk inline markdown tokens and convert them to ANSI styles. Designed to
|
|
12
26
|
// handle one logical line at a time (so it can run after a newline arrives
|
|
13
27
|
// in the token stream).
|
|
14
|
-
export function renderInlineMarkdown(text) {
|
|
28
|
+
export function renderInlineMarkdown(text, paint = chalk) {
|
|
15
29
|
let out = "";
|
|
16
30
|
let i = 0;
|
|
17
31
|
while (i < text.length) {
|
|
@@ -19,7 +33,7 @@ export function renderInlineMarkdown(text) {
|
|
|
19
33
|
if (text.startsWith("``", i)) {
|
|
20
34
|
const end = text.indexOf("``", i + 2);
|
|
21
35
|
if (end > i + 2) {
|
|
22
|
-
out +=
|
|
36
|
+
out += paint.cyan(`\`${text.slice(i + 2, end)}\``);
|
|
23
37
|
i = end + 2;
|
|
24
38
|
continue;
|
|
25
39
|
}
|
|
@@ -28,7 +42,7 @@ export function renderInlineMarkdown(text) {
|
|
|
28
42
|
if (text[i] === "`") {
|
|
29
43
|
const end = text.indexOf("`", i + 1);
|
|
30
44
|
if (end > i + 1) {
|
|
31
|
-
out +=
|
|
45
|
+
out += paint.cyan(text.slice(i + 1, end));
|
|
32
46
|
i = end + 1;
|
|
33
47
|
continue;
|
|
34
48
|
}
|
|
@@ -37,7 +51,7 @@ export function renderInlineMarkdown(text) {
|
|
|
37
51
|
if (text.startsWith("***", i)) {
|
|
38
52
|
const end = text.indexOf("***", i + 3);
|
|
39
53
|
if (end > i + 3) {
|
|
40
|
-
out +=
|
|
54
|
+
out += paint.bold.italic(renderInlineMarkdown(text.slice(i + 3, end), paint));
|
|
41
55
|
i = end + 3;
|
|
42
56
|
continue;
|
|
43
57
|
}
|
|
@@ -46,7 +60,7 @@ export function renderInlineMarkdown(text) {
|
|
|
46
60
|
if (text.startsWith("**", i)) {
|
|
47
61
|
const end = text.indexOf("**", i + 2);
|
|
48
62
|
if (end > i + 2) {
|
|
49
|
-
out +=
|
|
63
|
+
out += paint.bold(renderInlineMarkdown(text.slice(i + 2, end), paint));
|
|
50
64
|
i = end + 2;
|
|
51
65
|
continue;
|
|
52
66
|
}
|
|
@@ -55,7 +69,7 @@ export function renderInlineMarkdown(text) {
|
|
|
55
69
|
if (text.startsWith("__", i)) {
|
|
56
70
|
const end = text.indexOf("__", i + 2);
|
|
57
71
|
if (end > i + 2) {
|
|
58
|
-
out +=
|
|
72
|
+
out += paint.bold(renderInlineMarkdown(text.slice(i + 2, end), paint));
|
|
59
73
|
i = end + 2;
|
|
60
74
|
continue;
|
|
61
75
|
}
|
|
@@ -69,7 +83,7 @@ export function renderInlineMarkdown(text) {
|
|
|
69
83
|
if (inner.length > 0 &&
|
|
70
84
|
!inner.startsWith(" ") &&
|
|
71
85
|
!inner.endsWith(" ")) {
|
|
72
|
-
out +=
|
|
86
|
+
out += paint.italic(renderInlineMarkdown(inner, paint));
|
|
73
87
|
i = end + 1;
|
|
74
88
|
continue;
|
|
75
89
|
}
|
|
@@ -89,7 +103,7 @@ export function renderInlineMarkdown(text) {
|
|
|
89
103
|
inner.length > 0 &&
|
|
90
104
|
!inner.startsWith(" ") &&
|
|
91
105
|
!inner.endsWith(" ")) {
|
|
92
|
-
out +=
|
|
106
|
+
out += paint.italic(renderInlineMarkdown(inner, paint));
|
|
93
107
|
i = end + 1;
|
|
94
108
|
continue;
|
|
95
109
|
}
|
|
@@ -100,7 +114,7 @@ export function renderInlineMarkdown(text) {
|
|
|
100
114
|
if (text.startsWith("~~", i)) {
|
|
101
115
|
const end = text.indexOf("~~", i + 2);
|
|
102
116
|
if (end > i + 2) {
|
|
103
|
-
out +=
|
|
117
|
+
out += paint.strikethrough(renderInlineMarkdown(text.slice(i + 2, end), paint));
|
|
104
118
|
i = end + 2;
|
|
105
119
|
continue;
|
|
106
120
|
}
|
|
@@ -113,7 +127,7 @@ export function renderInlineMarkdown(text) {
|
|
|
113
127
|
if (urlEnd > close + 2) {
|
|
114
128
|
const label = text.slice(i + 1, close);
|
|
115
129
|
const url = text.slice(close + 2, urlEnd);
|
|
116
|
-
out +=
|
|
130
|
+
out += paint.cyan.underline(label) + paint.dim(`(${url})`);
|
|
117
131
|
i = urlEnd + 1;
|
|
118
132
|
continue;
|
|
119
133
|
}
|
|
@@ -128,15 +142,15 @@ const DEFAULT_FENCE_WIDTH = 60;
|
|
|
128
142
|
function panelWidth(state) {
|
|
129
143
|
return codeBlockWidth(state.fenceWidth ?? DEFAULT_FENCE_WIDTH);
|
|
130
144
|
}
|
|
131
|
-
function openFencePanel(state, marker, info) {
|
|
145
|
+
function openFencePanel(state, marker, info, context) {
|
|
132
146
|
state.inFence = true;
|
|
133
147
|
state.fence = openCodeFence(marker, info);
|
|
134
|
-
return codeBlockTop(state.fence.label, panelWidth(state));
|
|
148
|
+
return codeBlockTop(state.fence.label, panelWidth(state), context.appearance);
|
|
135
149
|
}
|
|
136
|
-
function closeFencePanel(state) {
|
|
150
|
+
function closeFencePanel(state, context) {
|
|
137
151
|
state.inFence = false;
|
|
138
152
|
state.fence = undefined;
|
|
139
|
-
return codeBlockBottom(panelWidth(state));
|
|
153
|
+
return codeBlockBottom(panelWidth(state), context.appearance);
|
|
140
154
|
}
|
|
141
155
|
/**
|
|
142
156
|
* Render a complete fence as a content-sized panel. Used by the one-shot
|
|
@@ -144,49 +158,52 @@ function closeFencePanel(state) {
|
|
|
144
158
|
* An unterminated fence still gets a footer so a streaming reply reads as a
|
|
145
159
|
* finished box.
|
|
146
160
|
*/
|
|
147
|
-
function renderCodeBlock(open, bodyLines, wrapWidth) {
|
|
161
|
+
function renderCodeBlock(open, bodyLines, wrapWidth, context) {
|
|
148
162
|
const fence = openCodeFence(open.marker, open.info);
|
|
149
163
|
const body = trimCodeBlockBody(bodyLines);
|
|
150
164
|
const width = codeBlockFitWidth(body, fence.label, wrapWidth);
|
|
151
|
-
const out = [codeBlockTop(fence.label, width)];
|
|
165
|
+
const out = [codeBlockTop(fence.label, width, context.appearance)];
|
|
152
166
|
for (const line of body) {
|
|
153
|
-
out.push(...codeBlockRows(line, fence, width));
|
|
167
|
+
out.push(...codeBlockRows(line, fence, width, context.appearance));
|
|
154
168
|
}
|
|
155
|
-
out.push(codeBlockBottom(width));
|
|
169
|
+
out.push(codeBlockBottom(width, context.appearance));
|
|
156
170
|
return out;
|
|
157
171
|
}
|
|
158
172
|
/** Fence lines and code bodies as complete panel rows (may be empty). */
|
|
159
|
-
function fencePanelRows(line, state) {
|
|
173
|
+
function fencePanelRows(line, state, context) {
|
|
160
174
|
if (state.inFence && state.fence) {
|
|
161
175
|
if (isCodeFenceClose(line, state.fence.marker)) {
|
|
162
|
-
return [closeFencePanel(state)];
|
|
176
|
+
return [closeFencePanel(state, context)];
|
|
163
177
|
}
|
|
164
|
-
return codeBlockRows(line, state.fence, panelWidth(state));
|
|
178
|
+
return codeBlockRows(line, state.fence, panelWidth(state), context.appearance);
|
|
165
179
|
}
|
|
166
180
|
const open = matchCodeFenceOpen(line);
|
|
167
181
|
if (!open)
|
|
168
182
|
return undefined;
|
|
169
|
-
return [openFencePanel(state, open.marker, open.info)];
|
|
183
|
+
return [openFencePanel(state, open.marker, open.info, context)];
|
|
170
184
|
}
|
|
171
|
-
function renderBlockLine(line, state) {
|
|
185
|
+
function renderBlockLine(line, state, context) {
|
|
186
|
+
const { paint } = context;
|
|
172
187
|
// Headings
|
|
173
188
|
const heading = line.match(/^(#{1,6})\s+(.*)$/);
|
|
174
189
|
if (heading) {
|
|
175
190
|
const level = heading[1].length;
|
|
176
191
|
const body = heading[2].trim();
|
|
177
|
-
if (level <= 2)
|
|
178
|
-
return
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
192
|
+
if (level <= 2) {
|
|
193
|
+
return paint.bold.magenta(renderInlineMarkdown(body, paint));
|
|
194
|
+
}
|
|
195
|
+
if (level === 3) {
|
|
196
|
+
return paint.bold.cyan(renderInlineMarkdown(body, paint));
|
|
197
|
+
}
|
|
198
|
+
return paint.bold(renderInlineMarkdown(body, paint));
|
|
182
199
|
}
|
|
183
200
|
// Horizontal rule
|
|
184
201
|
if (/^\s*[-*_]{3,}\s*$/.test(line)) {
|
|
185
|
-
return
|
|
202
|
+
return paint.dim(repeat("─", 60));
|
|
186
203
|
}
|
|
187
204
|
// Markdown table separator: | --- | --- |
|
|
188
205
|
if (/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/.test(line)) {
|
|
189
|
-
return
|
|
206
|
+
return paint.dim(repeat("─", Math.max(20, line.length)));
|
|
190
207
|
}
|
|
191
208
|
// Markdown table row: | cell | cell |
|
|
192
209
|
if (/^\s*\|.*\|\s*$/.test(line)) {
|
|
@@ -194,32 +211,33 @@ function renderBlockLine(line, state) {
|
|
|
194
211
|
.replace(/^\s*\|/, "")
|
|
195
212
|
.replace(/\|\s*$/, "")
|
|
196
213
|
.split("|")
|
|
197
|
-
.map((cell) => renderInlineMarkdown(cell.trim()));
|
|
198
|
-
return
|
|
214
|
+
.map((cell) => renderInlineMarkdown(cell.trim(), paint));
|
|
215
|
+
return (paint.dim("│ ") + cells.join(paint.dim(" │ ")) + paint.dim(" │"));
|
|
199
216
|
}
|
|
200
217
|
// Blockquote
|
|
201
218
|
if (line.startsWith("> ")) {
|
|
202
|
-
return (
|
|
219
|
+
return (paint.dim("│ ") +
|
|
220
|
+
paint.dim.italic(renderInlineMarkdown(line.slice(2), paint)));
|
|
203
221
|
}
|
|
204
222
|
// GitHub-style task list: - [ ] todo / - [x] done
|
|
205
223
|
const task = line.match(/^(\s*)[-*+]\s+\[([ xX])\]\s+(.*)$/);
|
|
206
224
|
if (task) {
|
|
207
225
|
const checked = /[xX]/.test(task[2]);
|
|
208
|
-
const box = checked ?
|
|
209
|
-
const body = renderInlineMarkdown(task[3]);
|
|
210
|
-
return `${task[1]}${box} ${checked ?
|
|
226
|
+
const box = checked ? paint.green("☑") : paint.dim("☐");
|
|
227
|
+
const body = renderInlineMarkdown(task[3], paint);
|
|
228
|
+
return `${task[1]}${box} ${checked ? paint.dim(body) : body}`;
|
|
211
229
|
}
|
|
212
230
|
// Ordered list
|
|
213
231
|
const ordered = line.match(/^(\s*)(\d+)\.\s+(.*)$/);
|
|
214
232
|
if (ordered) {
|
|
215
|
-
return `${ordered[1]}${
|
|
233
|
+
return `${ordered[1]}${paint.cyan(`${ordered[2]}.`)} ${renderInlineMarkdown(ordered[3], paint)}`;
|
|
216
234
|
}
|
|
217
235
|
// Unordered list
|
|
218
236
|
const unordered = line.match(/^(\s*)[-*+]\s+(.*)$/);
|
|
219
237
|
if (unordered) {
|
|
220
|
-
return `${unordered[1]}${
|
|
238
|
+
return `${unordered[1]}${paint.cyan("•")} ${renderInlineMarkdown(unordered[2], paint)}`;
|
|
221
239
|
}
|
|
222
|
-
return renderInlineMarkdown(line);
|
|
240
|
+
return renderInlineMarkdown(line, paint);
|
|
223
241
|
}
|
|
224
242
|
/** Left margin for all rendered output so text doesn't go edge-to-edge. */
|
|
225
243
|
const OUTPUT_INDENT = " ";
|
|
@@ -574,37 +592,38 @@ export function indentAndWrapText(text, indent = " ") {
|
|
|
574
592
|
})
|
|
575
593
|
.join("\n");
|
|
576
594
|
}
|
|
577
|
-
function wrapMarkdownLine(line, wrapWidth, state) {
|
|
595
|
+
function wrapMarkdownLine(line, wrapWidth, state, context) {
|
|
596
|
+
const { paint } = context;
|
|
578
597
|
// Keep panel chrome + code within wrapWidth (never truncate with …).
|
|
579
598
|
state.fenceWidth = wrapWidth;
|
|
580
|
-
const fenceRows = fencePanelRows(line, state);
|
|
599
|
+
const fenceRows = fencePanelRows(line, state, context);
|
|
581
600
|
if (fenceRows)
|
|
582
601
|
return fenceRows;
|
|
583
602
|
// If it's a horizontal rule, don't wrap it
|
|
584
603
|
if (/^\s*[-*_]{3,}\s*$/.test(line)) {
|
|
585
|
-
return [renderBlockLine(line, state)];
|
|
604
|
+
return [renderBlockLine(line, state, context)];
|
|
586
605
|
}
|
|
587
606
|
// Check if it's a blockquote
|
|
588
607
|
if (line.startsWith("> ")) {
|
|
589
608
|
const content = line.slice(2);
|
|
590
|
-
const prefix =
|
|
591
|
-
const renderedContent = renderInlineMarkdown(content);
|
|
609
|
+
const prefix = paint.dim("│ ");
|
|
610
|
+
const renderedContent = renderInlineMarkdown(content, paint);
|
|
592
611
|
// Wrap the content at wrapWidth - 2 (since prefix is 2 chars)
|
|
593
612
|
const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - 2));
|
|
594
|
-
return wrapped.map((wl) => prefix +
|
|
613
|
+
return wrapped.map((wl) => prefix + paint.dim.italic(wl));
|
|
595
614
|
}
|
|
596
615
|
// Check if it's a task list
|
|
597
616
|
const task = line.match(/^(\s*)[-*+]\s+\[([ xX])\]\s+(.*)$/);
|
|
598
617
|
if (task) {
|
|
599
618
|
const indent = task[1] ?? "";
|
|
600
619
|
const checked = /[xX]/.test(task[2]);
|
|
601
|
-
const box = checked ?
|
|
620
|
+
const box = checked ? paint.green("☑") : paint.dim("☐");
|
|
602
621
|
const content = task[3] ?? "";
|
|
603
622
|
const prefix = `${indent}${box} `;
|
|
604
623
|
const prefixLength = indent.length + 2;
|
|
605
|
-
let renderedContent = renderInlineMarkdown(content);
|
|
624
|
+
let renderedContent = renderInlineMarkdown(content, paint);
|
|
606
625
|
if (checked) {
|
|
607
|
-
renderedContent =
|
|
626
|
+
renderedContent = paint.dim(renderedContent);
|
|
608
627
|
}
|
|
609
628
|
const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - prefixLength));
|
|
610
629
|
return wrapped.map((wl, idx) => {
|
|
@@ -619,9 +638,9 @@ function wrapMarkdownLine(line, wrapWidth, state) {
|
|
|
619
638
|
const indent = ordered[1] ?? "";
|
|
620
639
|
const num = ordered[2] ?? "";
|
|
621
640
|
const content = ordered[3] ?? "";
|
|
622
|
-
const prefix = `${indent}${
|
|
641
|
+
const prefix = `${indent}${paint.cyan(`${num}.`)} `;
|
|
623
642
|
const prefixLength = indent.length + num.length + 2;
|
|
624
|
-
const renderedContent = renderInlineMarkdown(content);
|
|
643
|
+
const renderedContent = renderInlineMarkdown(content, paint);
|
|
625
644
|
const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - prefixLength));
|
|
626
645
|
return wrapped.map((wl, idx) => {
|
|
627
646
|
if (idx === 0)
|
|
@@ -634,9 +653,9 @@ function wrapMarkdownLine(line, wrapWidth, state) {
|
|
|
634
653
|
if (unordered) {
|
|
635
654
|
const indent = unordered[1] ?? "";
|
|
636
655
|
const content = unordered[2] ?? "";
|
|
637
|
-
const prefix = `${indent}${
|
|
656
|
+
const prefix = `${indent}${paint.cyan("•")} `;
|
|
638
657
|
const prefixLength = indent.length + 2;
|
|
639
|
-
const renderedContent = renderInlineMarkdown(content);
|
|
658
|
+
const renderedContent = renderInlineMarkdown(content, paint);
|
|
640
659
|
const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - prefixLength));
|
|
641
660
|
return wrapped.map((wl, idx) => {
|
|
642
661
|
if (idx === 0)
|
|
@@ -645,7 +664,7 @@ function wrapMarkdownLine(line, wrapWidth, state) {
|
|
|
645
664
|
});
|
|
646
665
|
}
|
|
647
666
|
// Otherwise, treat as a normal paragraph/line
|
|
648
|
-
const rendered = renderBlockLine(line, state);
|
|
667
|
+
const rendered = renderBlockLine(line, state, context);
|
|
649
668
|
return wrapAnsiLine(rendered, wrapWidth);
|
|
650
669
|
}
|
|
651
670
|
// Markdown tables
|
|
@@ -721,7 +740,7 @@ function padCell(rendered, contentWidth, columnWidth, align) {
|
|
|
721
740
|
* `<br>` markers split a cell into stacked lines so multi-line cells
|
|
722
741
|
* stay inside their column instead of bleeding across the row.
|
|
723
742
|
*/
|
|
724
|
-
function renderTableBlock(rawLines, availWidth) {
|
|
743
|
+
function renderTableBlock(rawLines, availWidth, paint) {
|
|
725
744
|
const separatorIndex = rawLines.findIndex(isTableSeparatorLine);
|
|
726
745
|
const headerLines = separatorIndex > 0
|
|
727
746
|
? rawLines.slice(0, separatorIndex)
|
|
@@ -736,17 +755,17 @@ function renderTableBlock(rawLines, availWidth) {
|
|
|
736
755
|
const trimmed = part.trim();
|
|
737
756
|
const bulletMatch = trimmed.match(/^([-\*+])\s+(.*)$/);
|
|
738
757
|
if (bulletMatch) {
|
|
739
|
-
const content = renderInlineMarkdown(bulletMatch[2]);
|
|
740
|
-
const rendered = `${
|
|
758
|
+
const content = renderInlineMarkdown(bulletMatch[2], paint);
|
|
759
|
+
const rendered = `${paint.cyan("•")} ${content}`;
|
|
741
760
|
return { rendered, width: visibleWidth(rendered) };
|
|
742
761
|
}
|
|
743
762
|
const numberMatch = trimmed.match(/^(\d+)\.\s+(.*)$/);
|
|
744
763
|
if (numberMatch) {
|
|
745
|
-
const content = renderInlineMarkdown(numberMatch[2]);
|
|
746
|
-
const rendered = `${
|
|
764
|
+
const content = renderInlineMarkdown(numberMatch[2], paint);
|
|
765
|
+
const rendered = `${paint.cyan(`${numberMatch[1]}.`)} ${content}`;
|
|
747
766
|
return { rendered, width: visibleWidth(rendered) };
|
|
748
767
|
}
|
|
749
|
-
const rendered = renderInlineMarkdown(trimmed);
|
|
768
|
+
const rendered = renderInlineMarkdown(trimmed, paint);
|
|
750
769
|
return { rendered, width: visibleWidth(rendered) };
|
|
751
770
|
});
|
|
752
771
|
const buildRow = (cells) => {
|
|
@@ -797,7 +816,7 @@ function renderTableBlock(rawLines, availWidth) {
|
|
|
797
816
|
}
|
|
798
817
|
return out.length > 0 ? out : [{ rendered: "", width: 0 }];
|
|
799
818
|
};
|
|
800
|
-
const dim =
|
|
819
|
+
const dim = paint.dim;
|
|
801
820
|
const renderRow = (row, bold) => {
|
|
802
821
|
const wrapped = row.map((cell, c) => wrapCell(cell, colWidths[c]));
|
|
803
822
|
const height = Math.max(1, ...wrapped.map((w) => w.length));
|
|
@@ -806,7 +825,7 @@ function renderTableBlock(rawLines, availWidth) {
|
|
|
806
825
|
let s = dim("│");
|
|
807
826
|
for (let c = 0; c < columns; c++) {
|
|
808
827
|
const piece = wrapped[c][h] ?? { rendered: "", width: 0 };
|
|
809
|
-
const content = bold && piece.rendered ?
|
|
828
|
+
const content = bold && piece.rendered ? paint.bold(piece.rendered) : piece.rendered;
|
|
810
829
|
s +=
|
|
811
830
|
" " +
|
|
812
831
|
padCell(content, piece.width, colWidths[c], aligns[c]) +
|
|
@@ -841,9 +860,10 @@ function renderTableBlock(rawLines, availWidth) {
|
|
|
841
860
|
out.push(border("└", "┴", "┘"));
|
|
842
861
|
return out;
|
|
843
862
|
}
|
|
844
|
-
export function renderMarkdown(text, width) {
|
|
863
|
+
export function renderMarkdown(text, width, appearance) {
|
|
845
864
|
if (!text)
|
|
846
865
|
return text;
|
|
866
|
+
const context = renderContext(appearance);
|
|
847
867
|
const state = { inFence: false };
|
|
848
868
|
const lines = text.split("\n");
|
|
849
869
|
const resultLines = [];
|
|
@@ -864,7 +884,7 @@ export function renderMarkdown(text, width) {
|
|
|
864
884
|
body.push(lines[j]);
|
|
865
885
|
j += 1;
|
|
866
886
|
}
|
|
867
|
-
for (const rendered of renderCodeBlock(fenceOpen, body, wrapWidth)) {
|
|
887
|
+
for (const rendered of renderCodeBlock(fenceOpen, body, wrapWidth, context)) {
|
|
868
888
|
resultLines.push(`${OUTPUT_INDENT}${rendered}`);
|
|
869
889
|
}
|
|
870
890
|
i = j < lines.length ? j + 1 : j;
|
|
@@ -883,7 +903,7 @@ export function renderMarkdown(text, width) {
|
|
|
883
903
|
block.push(lines[j]);
|
|
884
904
|
j++;
|
|
885
905
|
}
|
|
886
|
-
for (const rendered of renderTableBlock(block, wrapWidth)) {
|
|
906
|
+
for (const rendered of renderTableBlock(block, wrapWidth, context.paint)) {
|
|
887
907
|
resultLines.push(`${OUTPUT_INDENT}${rendered}`);
|
|
888
908
|
}
|
|
889
909
|
i = j;
|
|
@@ -892,7 +912,7 @@ export function renderMarkdown(text, width) {
|
|
|
892
912
|
// Expand `<br>` into real line breaks outside fences/tables.
|
|
893
913
|
const pieces = !state.inFence && BR_RE.test(line) ? line.split(BR_RE_GLOBAL) : [line];
|
|
894
914
|
for (const piece of pieces) {
|
|
895
|
-
for (const wl of wrapMarkdownLine(piece, wrapWidth, state)) {
|
|
915
|
+
for (const wl of wrapMarkdownLine(piece, wrapWidth, state, context)) {
|
|
896
916
|
resultLines.push(`${OUTPUT_INDENT}${wl}`);
|
|
897
917
|
}
|
|
898
918
|
}
|
|
@@ -901,14 +921,15 @@ export function renderMarkdown(text, width) {
|
|
|
901
921
|
// A fence still open at the end means the reply is mid-stream or the model
|
|
902
922
|
// never closed it — footer it so the panel always reads as a finished box.
|
|
903
923
|
if (state.inFence) {
|
|
904
|
-
resultLines.push(`${OUTPUT_INDENT}${closeFencePanel(state)}`);
|
|
924
|
+
resultLines.push(`${OUTPUT_INDENT}${closeFencePanel(state, context)}`);
|
|
905
925
|
}
|
|
906
926
|
return resultLines.join("\n");
|
|
907
927
|
}
|
|
908
928
|
// Streaming variant: buffers tokens and emits ANSI-rendered output
|
|
909
929
|
// whenever a complete line arrives. Fenced code blocks stream as a bordered,
|
|
910
930
|
// syntax-highlighted panel.
|
|
911
|
-
export function createMarkdownStreamWriter(write) {
|
|
931
|
+
export function createMarkdownStreamWriter(write, appearance) {
|
|
932
|
+
const context = renderContext(appearance);
|
|
912
933
|
const state = { inFence: false };
|
|
913
934
|
let buffer = "";
|
|
914
935
|
let outputEndsWithNewline = true;
|
|
@@ -928,7 +949,7 @@ export function createMarkdownStreamWriter(write) {
|
|
|
928
949
|
for (let p = 0; p < pieces.length; p++) {
|
|
929
950
|
const piece = pieces[p];
|
|
930
951
|
const lastPiece = p === pieces.length - 1;
|
|
931
|
-
const physical = wrapMarkdownLine(piece, wrapWidth, state);
|
|
952
|
+
const physical = wrapMarkdownLine(piece, wrapWidth, state, context);
|
|
932
953
|
for (let q = 0; q < physical.length; q++) {
|
|
933
954
|
emit(`${OUTPUT_INDENT}${physical[q]}`);
|
|
934
955
|
const isVeryLast = lastPiece && q === physical.length - 1;
|
|
@@ -944,7 +965,7 @@ export function createMarkdownStreamWriter(write) {
|
|
|
944
965
|
isTableRowLine(tableBuffer[0]) &&
|
|
945
966
|
isTableSeparatorLine(tableBuffer[1]);
|
|
946
967
|
if (looksLikeTable) {
|
|
947
|
-
for (const rendered of renderTableBlock(tableBuffer, wrapWidth)) {
|
|
968
|
+
for (const rendered of renderTableBlock(tableBuffer, wrapWidth, context.paint)) {
|
|
948
969
|
emit(`${OUTPUT_INDENT}${rendered}\n`);
|
|
949
970
|
}
|
|
950
971
|
}
|
|
@@ -987,7 +1008,7 @@ export function createMarkdownStreamWriter(write) {
|
|
|
987
1008
|
if (state.inFence) {
|
|
988
1009
|
// Close the panel without inserting a blank row after completed lines.
|
|
989
1010
|
const separator = outputEndsWithNewline ? "" : "\n";
|
|
990
|
-
emit(`${separator}${OUTPUT_INDENT}${closeFencePanel(state)}`);
|
|
1011
|
+
emit(`${separator}${OUTPUT_INDENT}${closeFencePanel(state, context)}`);
|
|
991
1012
|
}
|
|
992
1013
|
},
|
|
993
1014
|
};
|