neoctl 0.2.11 → 0.2.12

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 (79) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/repl/index.js +3114 -314
  5. package/dist/repl/index.js.map +1 -1
  6. package/dist/tools/builtins/image-note-tool.js +1 -5
  7. package/dist/tools/builtins/image-note-tool.js.map +1 -1
  8. package/dist/web/html.js +8 -14
  9. package/dist/web/html.js.map +1 -1
  10. package/dist/web/index.d.ts +0 -5
  11. package/dist/web/index.js +5 -41
  12. package/dist/web/index.js.map +1 -1
  13. package/package.json +1 -1
  14. package/scripts/install-ripgrep.cjs +196 -196
  15. package/vendor/ripgrep/darwin-arm64/COPYING +3 -3
  16. package/vendor/ripgrep/darwin-arm64/LICENSE-MIT +21 -21
  17. package/vendor/ripgrep/darwin-arm64/UNLICENSE +24 -24
  18. package/vendor/ripgrep/darwin-arm64/manifest.json +7 -7
  19. package/vendor/ripgrep/darwin-x64/COPYING +3 -3
  20. package/vendor/ripgrep/darwin-x64/LICENSE-MIT +21 -21
  21. package/vendor/ripgrep/darwin-x64/UNLICENSE +24 -24
  22. package/vendor/ripgrep/darwin-x64/manifest.json +7 -7
  23. package/vendor/ripgrep/linux-arm64/COPYING +3 -3
  24. package/vendor/ripgrep/linux-arm64/LICENSE-MIT +21 -21
  25. package/vendor/ripgrep/linux-arm64/UNLICENSE +24 -24
  26. package/vendor/ripgrep/linux-arm64/manifest.json +7 -7
  27. package/vendor/ripgrep/linux-x64/COPYING +3 -3
  28. package/vendor/ripgrep/linux-x64/LICENSE-MIT +21 -21
  29. package/vendor/ripgrep/linux-x64/UNLICENSE +24 -24
  30. package/vendor/ripgrep/linux-x64/manifest.json +7 -7
  31. package/vendor/ripgrep/win32-arm64/manifest.json +7 -7
  32. package/dist/repl/browser.d.ts +0 -232
  33. package/dist/repl/browser.js +0 -156
  34. package/dist/repl/browser.js.map +0 -1
  35. package/dist/repl/env-file.d.ts +0 -4
  36. package/dist/repl/env-file.js +0 -97
  37. package/dist/repl/env-file.js.map +0 -1
  38. package/dist/repl/foreground-exec.d.ts +0 -10
  39. package/dist/repl/foreground-exec.js +0 -34
  40. package/dist/repl/foreground-exec.js.map +0 -1
  41. package/dist/repl/login-view.d.ts +0 -75
  42. package/dist/repl/login-view.js +0 -38
  43. package/dist/repl/login-view.js.map +0 -1
  44. package/dist/repl/login.d.ts +0 -14
  45. package/dist/repl/login.js +0 -165
  46. package/dist/repl/login.js.map +0 -1
  47. package/dist/repl/message-rendering.d.ts +0 -99
  48. package/dist/repl/message-rendering.js +0 -476
  49. package/dist/repl/message-rendering.js.map +0 -1
  50. package/dist/repl/prompt-payload.d.ts +0 -9
  51. package/dist/repl/prompt-payload.js +0 -64
  52. package/dist/repl/prompt-payload.js.map +0 -1
  53. package/dist/repl/prompt-view.d.ts +0 -235
  54. package/dist/repl/prompt-view.js +0 -184
  55. package/dist/repl/prompt-view.js.map +0 -1
  56. package/dist/repl/repl-types.d.ts +0 -88
  57. package/dist/repl/repl-types.js +0 -2
  58. package/dist/repl/repl-types.js.map +0 -1
  59. package/dist/repl/runtime.d.ts +0 -33
  60. package/dist/repl/runtime.js +0 -202
  61. package/dist/repl/runtime.js.map +0 -1
  62. package/dist/repl/slash-completion.d.ts +0 -28
  63. package/dist/repl/slash-completion.js +0 -287
  64. package/dist/repl/slash-completion.js.map +0 -1
  65. package/dist/repl/status-panel.d.ts +0 -234
  66. package/dist/repl/status-panel.js +0 -509
  67. package/dist/repl/status-panel.js.map +0 -1
  68. package/dist/repl/terminal.d.ts +0 -19
  69. package/dist/repl/terminal.js +0 -81
  70. package/dist/repl/terminal.js.map +0 -1
  71. package/dist/repl/tool-rendering.d.ts +0 -6
  72. package/dist/repl/tool-rendering.js +0 -502
  73. package/dist/repl/tool-rendering.js.map +0 -1
  74. package/dist/repl/usage.d.ts +0 -17
  75. package/dist/repl/usage.js +0 -57
  76. package/dist/repl/usage.js.map +0 -1
  77. package/dist/tips.d.ts +0 -10
  78. package/dist/tips.js +0 -168
  79. package/dist/tips.js.map +0 -1
@@ -1,476 +0,0 @@
1
- import React from "react";
2
- import { Box, Text } from "ink";
3
- import stripAnsi from "strip-ansi";
4
- import wrapAnsi from "wrap-ansi";
5
- import { estimateMarkdownLineCount, markdownRenderKey, MarkdownText } from "./markdown-renderer.js";
6
- import { formatToolResultLine, formatToolUse } from "./tool-rendering.js";
7
- const e = React.createElement;
8
- const MESSAGE_BLOCK_SPACING_LINES = 1;
9
- const SUMMARY_BLOCK = {
10
- maxLines: 6,
11
- detailIndent: " ",
12
- };
13
- const THINKING_COLOR = "#a855f7";
14
- const THINKING_MARKER = "●";
15
- const THINKING_SUMMARY_MAX_LINES = 1000;
16
- export const MessageList = React.memo(function MessageList({ lines, width, liveMaxLines, lineIndexOffset = 0, onMarkdownRenderComplete }) {
17
- const contentWidth = messageContentWidth(width);
18
- const toolWidth = toolContentWidth(width);
19
- return e(Box, { flexDirection: "column" }, ...lines.map((line, index) => e(MessageBlock, {
20
- key: line.id,
21
- line,
22
- width,
23
- blockIndex: lineIndexOffset + index,
24
- contentWidth,
25
- toolWidth,
26
- liveMaxLines,
27
- onMarkdownRenderComplete,
28
- })));
29
- });
30
- export function MessageBlock({ line, width, blockIndex, contentWidth, toolWidth, liveMaxLines, onMarkdownRenderComplete }) {
31
- return e(Box, { flexDirection: "column", marginTop: blockIndex > 0 ? MESSAGE_BLOCK_SPACING_LINES : 0 }, e(MessageLine, { line, width, contentWidth, toolWidth, liveMaxLines, onMarkdownRenderComplete }));
32
- }
33
- function MessageLine({ line, width, contentWidth = messageContentWidth(width), toolWidth = toolContentWidth(width), liveMaxLines, onMarkdownRenderComplete }) {
34
- if (line.previewStyle === "summary") {
35
- const useRoleMarker = summaryUsesRoleMarker(line);
36
- const summaryWidth = useRoleMarker ? contentWidth : toolWidth;
37
- const display = displayWindowForLine(line, summaryWidth, line.live ? liveMaxLines : undefined);
38
- return e(Box, { flexDirection: "row" }, useRoleMarker ? e(Text, { color: markerColorForKind(line.kind) }, messageRoleMarker(line.kind)) : null, e(Box, { flexDirection: "column", width: summaryWidth }, ...renderDisplayText(line, summaryWidth, display.maxLines, display.skipTop)));
39
- }
40
- const useRoleMarker = !titleProvidesToolMarker(line);
41
- const lineWidth = useRoleMarker ? contentWidth : toolWidth;
42
- const clipPendingMarkdown = !line.live && onMarkdownRenderComplete !== undefined && lineNeedsDynamicRender(line, lineWidth);
43
- const display = displayWindowForLine(line, lineWidth, line.live || clipPendingMarkdown ? liveMaxLines : undefined);
44
- const contentNodes = [];
45
- if (line.title)
46
- contentNodes.push(renderBlockTitle(line));
47
- if (line.bodyTitle)
48
- contentNodes.push(e(Text, { key: `body-title-${line.id}`, bold: true }, line.bodyTitle));
49
- contentNodes.push(...renderDisplayText(line, lineWidth, display.maxLines, display.skipTop, onMarkdownRenderComplete));
50
- return e(Box, { flexDirection: "row" }, useRoleMarker ? e(Text, { color: markerColorForKind(line.kind) }, messageRoleMarker(line.kind)) : null, e(Box, { flexDirection: "column", width: lineWidth }, ...contentNodes));
51
- }
52
- function displayWindowForLine(line, width, maxLines) {
53
- if (maxLines === undefined)
54
- return { skipTop: 0 };
55
- const safeMaxLines = Math.max(1, maxLines);
56
- const lineCount = estimateRenderedLineCount(line, width);
57
- return {
58
- maxLines: safeMaxLines,
59
- skipTop: Math.max(0, lineCount - safeMaxLines),
60
- };
61
- }
62
- function estimateRenderedLineCount(line, width) {
63
- if (line.previewStyle === "summary")
64
- return renderSummaryLines(line, width).length;
65
- if (line.format === "ansi")
66
- return wrapAnsi(line.text, Math.max(10, width), { hard: true, trim: false }).split("\n").length;
67
- return estimateMarkdownLineCount(line.text, width);
68
- }
69
- export function lineNeedsDynamicRender(line, width) {
70
- if (titleProvidesToolMarker(line))
71
- return false;
72
- if (line.live || line.pendingReplacement)
73
- return true;
74
- if (line.previewStyle === "summary" || line.format === "ansi")
75
- return false;
76
- return line.renderedKey !== markdownRenderKey(line.text, line.kind, width);
77
- }
78
- export function lineRenderContentWidth(line, terminalWidth) {
79
- return titleProvidesToolMarker(line) ? toolContentWidth(terminalWidth) : messageContentWidth(terminalWidth);
80
- }
81
- function renderDisplayText(line, width, maxLines, skipTop = 0, onMarkdownRenderComplete) {
82
- if (line.previewStyle === "summary")
83
- return renderSummaryBlock(line, width, maxLines, skipTop);
84
- if (line.format === "ansi")
85
- return renderAnsiBlock(line.text, width, maxLines, skipTop);
86
- const shouldAsyncRenderMarkdown = !line.live && onMarkdownRenderComplete !== undefined;
87
- return [e(MarkdownText, {
88
- key: `markdown-${line.id}`,
89
- text: line.text,
90
- kind: line.kind,
91
- width,
92
- maxLines,
93
- skipLines: skipTop,
94
- asyncRender: shouldAsyncRenderMarkdown,
95
- onRenderComplete: shouldAsyncRenderMarkdown ? (renderKey) => onMarkdownRenderComplete(line.id, renderKey) : undefined,
96
- })];
97
- }
98
- function renderSummaryLines(line, width) {
99
- const content = line.text;
100
- const detailWidth = Math.max(10, width - SUMMARY_BLOCK.detailIndent.length);
101
- const title = summaryTitle(line);
102
- const rawLines = content.replace(/\r\n/g, "\n").split("\n");
103
- const wrapped = rawLines.flatMap((rawLine, index) => {
104
- const lineWidth = index === 0 && !title ? width : detailWidth;
105
- return wrapAnsi(rawLine, Math.max(10, lineWidth), { hard: true, trim: false }).split("\n");
106
- });
107
- const maxLines = line.summaryMaxLines ?? SUMMARY_BLOCK.maxLines;
108
- const preview = [title, ...wrapped].filter((value) => stripAnsi(value).length > 0).slice(0, maxLines);
109
- if (wrapped.length + (title ? 1 : 0) > maxLines && preview.length > 0) {
110
- preview[preview.length - 1] = truncateAnsi(preview[preview.length - 1], Math.max(1, detailWidth - 1)) + "\u2026";
111
- }
112
- return preview.length ? preview : [""];
113
- }
114
- function summaryTitle(line) {
115
- if (summaryUsesRoleMarker(line))
116
- return "";
117
- const title = line.title ?? titleForKind(line.kind);
118
- if (!line.titleStatus)
119
- return title;
120
- return `${title} ${titleStatusMarker(line.titleStatus)}`;
121
- }
122
- function summaryUsesRoleMarker(line) {
123
- return line.previewStyle === "summary" && (line.kind === "system" || line.kind === "meta");
124
- }
125
- function titleProvidesToolMarker(line) {
126
- return !!line.title && (line.title.startsWith("\u25C7 ") || line.title.startsWith("\u25C6 "));
127
- }
128
- function titleStatusMarker(status) {
129
- return status === "success" ? "\u2713" : "\u2717";
130
- }
131
- function titleStatusColor(status) {
132
- return status === "success" ? "green" : "red";
133
- }
134
- function renderBlockTitle(line) {
135
- const title = line.title ?? titleForKind(line.kind);
136
- if (!line.titleStatus)
137
- return e(Text, { key: `title-${line.id}`, color: colorForKind(line.kind), bold: true }, title);
138
- return e(Text, { key: `title-${line.id}`, color: colorForKind(line.kind), bold: true }, `${title} `, e(Text, { color: titleStatusColor(line.titleStatus), bold: true }, titleStatusMarker(line.titleStatus)));
139
- }
140
- function renderSummaryBlock(line, width, maxLines, skipTop = 0) {
141
- const allPreviewLines = renderSummaryLines(line, width);
142
- const preview = clipStrings(allPreviewLines, maxLines, skipTop);
143
- return preview.map((previewLine, index) => {
144
- const sourceIndex = skipTop + index;
145
- const detail = sourceIndex > 0;
146
- const text = detail ? `${SUMMARY_BLOCK.detailIndent}${previewLine}` : previewLine;
147
- if (!detail && line.titleStatus) {
148
- const marker = titleStatusMarker(line.titleStatus);
149
- const markerSuffix = ` ${marker}`;
150
- const titleText = text.endsWith(markerSuffix) ? text.slice(0, -marker.length) : `${text} `;
151
- return e(Text, {
152
- key: `summary-${line.id}-${index}`,
153
- color: colorForKind(line.kind),
154
- bold: true,
155
- }, titleText, e(Text, { color: titleStatusColor(line.titleStatus), bold: true }, marker));
156
- }
157
- if (line.format === "ansi") {
158
- const baseStyle = detail
159
- ? { color: "gray", dimColor: true }
160
- : { color: colorForKind(line.kind), bold: true };
161
- return e(Text, { key: `summary-${line.id}-${index}` }, ...renderAnsiInline(text, baseStyle));
162
- }
163
- return e(Text, {
164
- key: `summary-${line.id}-${index}`,
165
- color: detail ? "gray" : colorForKind(line.kind),
166
- dimColor: detail,
167
- bold: !detail,
168
- }, text);
169
- });
170
- }
171
- function renderAnsiBlock(text, width, maxLines, skipTop = 0) {
172
- const lines = clipStrings(wrapAnsi(text, Math.max(10, width), { hard: true, trim: false }).split("\n"), maxLines, skipTop);
173
- return lines.map((line, index) => e(Text, { key: `ansi-${index}` }, ...renderAnsiInline(line)));
174
- }
175
- function clipStrings(lines, maxLines, skipTop = 0) {
176
- const start = Math.max(0, skipTop);
177
- if (maxLines === undefined)
178
- return lines.slice(start);
179
- if (maxLines <= 0)
180
- return [];
181
- return lines.slice(start, start + maxLines);
182
- }
183
- function renderAnsiInline(text, baseStyle = {}) {
184
- const nodes = [];
185
- const pattern = /\x1b\[([0-9;]*)m/g;
186
- let lastIndex = 0;
187
- let style = { ...baseStyle };
188
- let match;
189
- while ((match = pattern.exec(text)) !== null) {
190
- if (match.index > lastIndex) {
191
- nodes.push(e(Text, { key: `ansi-${nodes.length}`, ...style }, text.slice(lastIndex, match.index)));
192
- }
193
- style = nextAnsiStyle(style, match[1], baseStyle);
194
- lastIndex = match.index + match[0].length;
195
- }
196
- if (lastIndex < text.length)
197
- nodes.push(e(Text, { key: `ansi-${nodes.length}`, ...style }, text.slice(lastIndex)));
198
- return nodes.length ? nodes : [e(Text, { key: "ansi-empty", ...baseStyle }, "")];
199
- }
200
- function nextAnsiStyle(current, rawCodes, baseStyle = {}) {
201
- const codes = rawCodes ? rawCodes.split(";").filter(Boolean).map((code) => Number(code)) : [0];
202
- let next = { ...current };
203
- for (let index = 0; index < codes.length; index += 1) {
204
- const code = codes[index] ?? 0;
205
- if (code === 0)
206
- next = { ...baseStyle };
207
- else if (code === 1)
208
- next.bold = true;
209
- else if (code === 2)
210
- next.dimColor = true;
211
- else if (code === 3)
212
- next.italic = true;
213
- else if (code === 4)
214
- next.underline = true;
215
- else if (code === 22) {
216
- next.bold = undefined;
217
- next.dimColor = undefined;
218
- }
219
- else if (code === 23)
220
- next.italic = undefined;
221
- else if (code === 24)
222
- next.underline = undefined;
223
- else if (code === 39)
224
- next.color = undefined;
225
- else if (code === 49)
226
- next.backgroundColor = undefined;
227
- else if (code >= 30 && code <= 37)
228
- next.color = ANSI_COLORS[code - 30];
229
- else if (code >= 90 && code <= 97)
230
- next.color = ANSI_BRIGHT_COLORS[code - 90];
231
- else if (code >= 40 && code <= 47)
232
- next.backgroundColor = ANSI_COLORS[code - 40];
233
- else if (code >= 100 && code <= 107)
234
- next.backgroundColor = ANSI_BRIGHT_COLORS[code - 100];
235
- else if (code === 38 || code === 48) {
236
- const isForeground = code === 38;
237
- const mode = codes[index + 1];
238
- if (mode === 5) {
239
- const color = xtermColor(codes[index + 2]);
240
- if (isForeground)
241
- next.color = color;
242
- else
243
- next.backgroundColor = color;
244
- index += 2;
245
- }
246
- else if (mode === 2) {
247
- const color = rgbColor(codes[index + 2], codes[index + 3], codes[index + 4]);
248
- if (isForeground)
249
- next.color = color;
250
- else
251
- next.backgroundColor = color;
252
- index += 4;
253
- }
254
- }
255
- }
256
- return next;
257
- }
258
- const ANSI_COLORS = ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white"];
259
- const ANSI_BRIGHT_COLORS = ["gray", "redBright", "greenBright", "yellowBright", "blueBright", "magentaBright", "cyanBright", "whiteBright"];
260
- function xtermColor(value) {
261
- if (value === undefined || Number.isNaN(value))
262
- return undefined;
263
- if (value < 8)
264
- return ANSI_COLORS[value];
265
- if (value < 16)
266
- return ANSI_BRIGHT_COLORS[value - 8];
267
- return undefined;
268
- }
269
- function rgbColor(red, green, blue) {
270
- if ([red, green, blue].some((value) => value === undefined || Number.isNaN(value)))
271
- return undefined;
272
- return `#${[red, green, blue].map((value) => Math.max(0, Math.min(255, value ?? 0)).toString(16).padStart(2, "0")).join("")}`;
273
- }
274
- function hasAnsi(text) {
275
- return /\x1b\[[0-9;]*m/.test(text);
276
- }
277
- function messageContentWidth(columns) {
278
- return Math.max(20, Math.min(columns - 4, 120));
279
- }
280
- function toolContentWidth(columns) {
281
- return Math.max(20, Math.min(columns - 2, 140));
282
- }
283
- export function renderMessage(message, append, activeAssistantId, options = {}) {
284
- if (message.metadata?.syntheticToolUse === true)
285
- return false;
286
- if (message.role === "progress" || message.isMeta)
287
- return false;
288
- if (message.role === "assistant" && activeAssistantId !== undefined && message.blocks.some((block) => block.type === "text")) {
289
- return true;
290
- }
291
- let rendered = false;
292
- for (const block of message.blocks) {
293
- if (block.type === "text") {
294
- const kind = kindForRole(message.role);
295
- if (kind === "meta")
296
- continue;
297
- if (kind === "system")
298
- append({ kind, title: titleForRole(message.role), text: block.text, previewStyle: "summary" });
299
- else
300
- append({ kind, text: block.text });
301
- rendered = true;
302
- }
303
- if (block.type === "image") {
304
- const kind = kindForRole(message.role);
305
- if (kind === "meta")
306
- continue;
307
- append({ kind, text: block.label ?? `[image ${block.mimeType}]` });
308
- rendered = true;
309
- }
310
- if (block.type === "thinking") {
311
- if (options.includeThinkingBlocks === false)
312
- continue;
313
- append(thinkingLine(block.text));
314
- rendered = true;
315
- }
316
- if (block.type === "tool_use" && options.includeToolUseBlocks) {
317
- append({ ...formatToolUse(block), live: false });
318
- rendered = true;
319
- }
320
- if (block.type === "tool_result") {
321
- append(formatToolResultLine(block.name, block.output, block.ok));
322
- rendered = true;
323
- }
324
- }
325
- return rendered;
326
- }
327
- export function renderToolResultMessage(message, append, renderedToolResultIds) {
328
- let rendered = false;
329
- for (const block of message.blocks) {
330
- if (block.type !== "tool_result")
331
- continue;
332
- renderedToolResultIds.add(block.toolUseId);
333
- append(formatToolResultLine(block.name, block.output, block.ok));
334
- rendered = true;
335
- }
336
- return rendered;
337
- }
338
- export function assistantText(message) {
339
- const text = message.blocks
340
- .filter((block) => block.type === "text")
341
- .map((block) => block.text)
342
- .join("");
343
- return text.length > 0 ? text : undefined;
344
- }
345
- export function thinkingText(message) {
346
- const text = message.blocks
347
- .filter((block) => block.type === "thinking")
348
- .map((block) => block.text)
349
- .join("");
350
- return text.length > 0 ? text : undefined;
351
- }
352
- function colorForKind(kind) {
353
- if (kind === "user")
354
- return "cyan";
355
- if (kind === "assistant")
356
- return "green";
357
- if (kind === "thinking")
358
- return THINKING_COLOR;
359
- if (kind === "tool")
360
- return "#d4b04c";
361
- if (kind === "error")
362
- return "red";
363
- if (kind === "meta")
364
- return "gray";
365
- return "white";
366
- }
367
- function markerColorForKind(kind) {
368
- if (kind === "thinking")
369
- return THINKING_COLOR;
370
- return colorForKind(kind);
371
- }
372
- function messageRoleMarker(kind) {
373
- if (kind === "thinking")
374
- return `${THINKING_MARKER} `;
375
- return "● ";
376
- }
377
- function kindForRole(role) {
378
- if (role === "user")
379
- return "user";
380
- if (role === "assistant")
381
- return "assistant";
382
- if (role === "tool_result")
383
- return "tool";
384
- if (role === "progress")
385
- return "meta";
386
- if (role === "system")
387
- return "meta";
388
- return "system";
389
- }
390
- function titleForKind(kind) {
391
- if (kind === "thinking")
392
- return `${THINKING_MARKER} think`;
393
- if (kind === "tool")
394
- return "Tool";
395
- if (kind === "error")
396
- return "Error";
397
- if (kind === "meta")
398
- return "Meta";
399
- if (kind === "system")
400
- return "System";
401
- if (kind === "user")
402
- return "User";
403
- return "Assistant";
404
- }
405
- function titleForRole(role) {
406
- if (role === "progress")
407
- return "Meta";
408
- if (role === "system")
409
- return "System";
410
- if (role === "tool_result")
411
- return "Tool result";
412
- return titleForKind(kindForRole(role));
413
- }
414
- export function systemLine(text, summaryMaxLines) {
415
- return {
416
- kind: "system",
417
- title: "System",
418
- text,
419
- previewStyle: "summary",
420
- summaryMaxLines,
421
- };
422
- }
423
- export function thinkingLine(text, live = false) {
424
- return {
425
- kind: "thinking",
426
- title: titleForKind("thinking"),
427
- text,
428
- previewStyle: "summary",
429
- summaryMaxLines: THINKING_SUMMARY_MAX_LINES,
430
- live,
431
- };
432
- }
433
- export function metaLine(text) {
434
- return {
435
- kind: "meta",
436
- title: "Meta",
437
- text,
438
- previewStyle: "summary",
439
- };
440
- }
441
- function truncateAnsi(value, maxLength) {
442
- if (stripAnsi(value).length <= maxLength)
443
- return value;
444
- if (maxLength <= 0)
445
- return "";
446
- let visibleLength = 0;
447
- let index = 0;
448
- let output = "";
449
- const ansiPattern = /\x1b\[[0-9;]*m/y;
450
- while (index < value.length && visibleLength < maxLength) {
451
- ansiPattern.lastIndex = index;
452
- const ansiMatch = ansiPattern.exec(value);
453
- if (ansiMatch) {
454
- output += ansiMatch[0];
455
- index = ansiPattern.lastIndex;
456
- continue;
457
- }
458
- const codePoint = value.codePointAt(index);
459
- if (codePoint === undefined)
460
- break;
461
- const char = String.fromCodePoint(codePoint);
462
- output += char;
463
- visibleLength += 1;
464
- index += char.length;
465
- }
466
- return hasAnsi(output) ? `${output}\x1b[0m` : output;
467
- }
468
- function fitToWidth(value, width) {
469
- const stripped = stripAnsi(value);
470
- if (stripped.length === width)
471
- return stripped;
472
- if (stripped.length > width)
473
- return stripped.slice(0, width);
474
- return stripped.padEnd(width, " ");
475
- }
476
- //# sourceMappingURL=message-rendering.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-rendering.js","sourceRoot":"","sources":["../../src/repl/message-rendering.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { MessageBlock } from "../types/messages.js";
2
- import type { ClipboardAttachment } from "./repl-types.js";
3
- export declare function shouldFoldClipboardText(text: string): boolean;
4
- export declare function attachmentsForText(text: string, attachments: readonly ClipboardAttachment[]): ClipboardAttachment[];
5
- export declare function buildPromptPayload(displayText: string, attachments: readonly ClipboardAttachment[]): {
6
- text: string;
7
- blocks?: MessageBlock[];
8
- };
9
- export declare function escapeRegExp(value: string): string;
@@ -1,64 +0,0 @@
1
- export function shouldFoldClipboardText(text) {
2
- return text.length >= LONG_CLIPBOARD_TEXT_THRESHOLD;
3
- }
4
- export function attachmentsForText(text, attachments) {
5
- return attachments.filter((attachment) => text.includes(attachment.label));
6
- }
7
- export function buildPromptPayload(displayText, attachments) {
8
- const activeAttachments = attachmentsForText(displayText, attachments);
9
- if (activeAttachments.length === 0)
10
- return { text: displayText };
11
- const blocks = [];
12
- let cursor = 0;
13
- while (cursor < displayText.length) {
14
- const next = nextAttachmentOccurrence(displayText, activeAttachments, cursor);
15
- if (!next) {
16
- pushTextBlock(blocks, displayText.slice(cursor));
17
- break;
18
- }
19
- pushTextBlock(blocks, displayText.slice(cursor, next.index));
20
- if (next.attachment.kind === "text" && next.attachment.text !== undefined) {
21
- pushTextBlock(blocks, next.attachment.text);
22
- }
23
- else if (next.attachment.kind === "image" && next.attachment.image) {
24
- blocks.push({ type: "image", mimeType: next.attachment.image.mimeType, data: next.attachment.image.data, label: next.attachment.label });
25
- }
26
- cursor = next.index + next.attachment.label.length;
27
- }
28
- const text = blocks
29
- .map((block) => {
30
- if (block.type === "text")
31
- return block.text;
32
- if (block.type === "image")
33
- return block.label ?? "[image]";
34
- return "";
35
- })
36
- .join("");
37
- return { text, blocks };
38
- }
39
- function nextAttachmentOccurrence(text, attachments, start) {
40
- let best;
41
- for (const attachment of attachments) {
42
- const index = text.indexOf(attachment.label, start);
43
- if (index === -1)
44
- continue;
45
- if (!best || index < best.index)
46
- best = { index, attachment };
47
- }
48
- return best;
49
- }
50
- function pushTextBlock(blocks, text) {
51
- if (!text)
52
- return;
53
- const previous = blocks[blocks.length - 1];
54
- if (previous?.type === "text") {
55
- previous.text += text;
56
- return;
57
- }
58
- blocks.push({ type: "text", text });
59
- }
60
- export function escapeRegExp(value) {
61
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
62
- }
63
- const LONG_CLIPBOARD_TEXT_THRESHOLD = 200;
64
- //# sourceMappingURL=prompt-payload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt-payload.js","sourceRoot":"","sources":["../../src/repl/prompt-payload.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,MAAM,IAAI,6BAA6B,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,WAA2C;IAC1F,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,WAA2C;IACjG,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAEjE,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,MAAM;QACR,CAAC;QACD,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1E,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3I,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,WAA2C,EAAE,KAAa;IACxG,IAAI,IAAoE,CAAC;IACzE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAC3B,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;YAAE,IAAI,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,MAAsB,EAAE,IAAY;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,6BAA6B,GAAG,GAAG,CAAC"}