wormclaude 1.0.31 → 1.0.33
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/ansi.js +2 -2
- package/dist/cli.js +5 -5
- package/dist/theme.js +1 -1
- package/dist/tui.js +7 -17
- package/package.json +1 -1
package/dist/ansi.js
CHANGED
|
@@ -151,11 +151,11 @@ export function itemAnsi(it, cols) {
|
|
|
151
151
|
}
|
|
152
152
|
if (it.kind === 'assistant') {
|
|
153
153
|
const md = markdownAnsi(it.text || '', cols).split('\n');
|
|
154
|
-
return '\n' + md.map((ln, i) => (i === 0 ? paint('
|
|
154
|
+
return '\n' + md.map((ln, i) => (i === 0 ? paint('› ', theme.redBright, true) + ln : ' ' + ln)).join('\n');
|
|
155
155
|
}
|
|
156
156
|
if (it.kind === 'tool') {
|
|
157
157
|
const n = (it.result || '').split('\n').length, chars = (it.result || '').length;
|
|
158
|
-
const head = paint('
|
|
158
|
+
const head = paint('› ', theme.redBright, true) + paint(it.label || '', theme.white);
|
|
159
159
|
const sub = paint(' ⎿ ', theme.greyDim) + (it.ok
|
|
160
160
|
? paint(`${n} ${t('common.lines') || 'satır'} (${chars})`, theme.grey)
|
|
161
161
|
: paint('✗ ' + (it.result || '').slice(0, 160), theme.errorRed));
|
package/dist/cli.js
CHANGED
|
@@ -276,11 +276,11 @@ function buildLines(items, cols) {
|
|
|
276
276
|
}
|
|
277
277
|
else if (it.kind === 'assistant') {
|
|
278
278
|
const seg = mdToSegLines(it.text, W - 2);
|
|
279
|
-
seg.forEach((segs, i) => lines.push(i === 0 ? [{ text: '
|
|
279
|
+
seg.forEach((segs, i) => lines.push(i === 0 ? [{ text: '› ', color: redB, bold: true }, ...segs] : [{ text: ' ', dim: true }, ...segs]));
|
|
280
280
|
}
|
|
281
281
|
else if (it.kind === 'tool') {
|
|
282
282
|
const n = it.result.split('\n').length, chars = it.result.length;
|
|
283
|
-
lines.push([{ text: '
|
|
283
|
+
lines.push([{ text: '› ', color: redB, bold: true }, { text: it.label, color: white }]);
|
|
284
284
|
lines.push([{ text: ' ⎿ ', dim: true }, { text: it.ok ? `${n} satır (${chars} karakter)` : '✗ ' + it.result.slice(0, 120), color: it.ok ? theme.grey : theme.errorRed }]);
|
|
285
285
|
}
|
|
286
286
|
else if (it.kind === 'note') {
|
|
@@ -321,7 +321,7 @@ function RenderItem({ item }) {
|
|
|
321
321
|
}
|
|
322
322
|
if (item.kind === 'assistant') {
|
|
323
323
|
return (React.createElement(Box, { marginTop: 1, flexDirection: "row" },
|
|
324
|
-
React.createElement(Text, { color: theme.redBright, bold: true }, "\
|
|
324
|
+
React.createElement(Text, { color: theme.redBright, bold: true }, "\u203A "),
|
|
325
325
|
React.createElement(Box, { flexDirection: "column", flexGrow: 1 },
|
|
326
326
|
React.createElement(MarkdownDisplay, { text: item.text }))));
|
|
327
327
|
}
|
|
@@ -330,7 +330,7 @@ function RenderItem({ item }) {
|
|
|
330
330
|
const chars = item.result.length;
|
|
331
331
|
return (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
|
|
332
332
|
React.createElement(Box, null,
|
|
333
|
-
React.createElement(Text, { color: theme.redBright, bold: true }, "\
|
|
333
|
+
React.createElement(Text, { color: theme.redBright, bold: true }, "\u203A "),
|
|
334
334
|
React.createElement(Text, { color: theme.white }, item.label)),
|
|
335
335
|
React.createElement(Box, null,
|
|
336
336
|
React.createElement(Text, { color: theme.greyDim }, " \u23BF "),
|
|
@@ -1000,7 +1000,7 @@ function App() {
|
|
|
1000
1000
|
off,
|
|
1001
1001
|
" sat\u0131r \u00B7 PageDown / Son") : null,
|
|
1002
1002
|
streaming && off === 0 ? (React.createElement(Box, { flexDirection: "row" },
|
|
1003
|
-
React.createElement(Text, { color: theme.redBright, bold: true }, "\
|
|
1003
|
+
React.createElement(Text, { color: theme.redBright, bold: true }, "\u203A "),
|
|
1004
1004
|
React.createElement(Box, { flexDirection: "column" },
|
|
1005
1005
|
React.createElement(Text, { color: theme.white }, streaming)))) : null));
|
|
1006
1006
|
})()),
|
package/dist/theme.js
CHANGED
package/dist/tui.js
CHANGED
|
@@ -70,7 +70,7 @@ export async function runTui() {
|
|
|
70
70
|
if (streamPreview) {
|
|
71
71
|
const maxTail = Math.max(2, Math.min(12, (process.stdout.rows || 24) - 4)); // ekran boyunu aşma
|
|
72
72
|
const tail = streamPreview.split('\n').slice(-maxTail);
|
|
73
|
-
lines.push(paint('
|
|
73
|
+
lines.push(paint('› ', theme.redBright, true) + paint(tail.shift() || '', theme.white));
|
|
74
74
|
for (const l of tail)
|
|
75
75
|
lines.push(' ' + paint(l, theme.white));
|
|
76
76
|
}
|
|
@@ -83,20 +83,10 @@ export async function runTui() {
|
|
|
83
83
|
shown = '…' + shown.slice(-(avail - 1));
|
|
84
84
|
lines.push(prompt + shown + (busy ? '' : paint('▌', theme.greyDim)));
|
|
85
85
|
lines.push(paint('/kopyala panoya · Ctrl+C çıkış', theme.greyDim));
|
|
86
|
-
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
let contentH = 0;
|
|
91
|
-
for (const it of displayItems) {
|
|
92
|
-
for (const ln of itemAnsi(it, W).split('\n'))
|
|
93
|
-
contentH += Math.max(1, Math.ceil((vis(ln) || 1) / W));
|
|
94
|
-
if (contentH >= rows)
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
const pad = rows - contentH - footerLines.length - 1;
|
|
98
|
-
const out = pad > 0 ? [...Array(pad).fill(''), ...footerLines] : footerLines;
|
|
99
|
-
logUpdate(out.join('\n'));
|
|
86
|
+
// Canlı bölge KÜÇÜK tutulur (sadece footer). Büyük pad'li bölge, yukarı kaydırınca
|
|
87
|
+
// log-update'in yanlış yeri silmesine → input'un kaybolmasına yol açıyordu. Input içeriğin
|
|
88
|
+
// hemen altında oturur (üstte 1 boş satır boşluk var).
|
|
89
|
+
logUpdate(lines.map((l) => fit(l, W)).join('\n'));
|
|
100
90
|
}
|
|
101
91
|
// ── Bir sohbet turu (Milestone 1: araç yok, saf metin) ──
|
|
102
92
|
async function runTurn(userText) {
|
|
@@ -165,9 +155,9 @@ export async function runTui() {
|
|
|
165
155
|
if (key && key.ctrl && key.name === 'd') {
|
|
166
156
|
quit();
|
|
167
157
|
}
|
|
168
|
-
if (busy)
|
|
169
|
-
return; // tur sırasında giriş kilitli (M1)
|
|
170
158
|
if (key && key.name === 'return') {
|
|
159
|
+
if (busy)
|
|
160
|
+
return; // tur sürerken Enter işlemez; yazılan metin durur (type-ahead)
|
|
171
161
|
const v = inputBuf.trim();
|
|
172
162
|
inputBuf = '';
|
|
173
163
|
if (!v) {
|