thatgfsj-code 3.0.14 → 3.0.15
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/cmd/index.js +7 -0
- package/dist/cmd/index.js.map +1 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +12 -1
- package/dist/llm/index.js.map +1 -1
- package/dist/setup/browser-setup.d.ts.map +1 -1
- package/dist/setup/browser-setup.js +4 -0
- package/dist/setup/browser-setup.js.map +1 -1
- package/dist/tools/browser.d.ts +18 -2
- package/dist/tools/browser.d.ts.map +1 -1
- package/dist/tools/browser.js +41 -1
- package/dist/tools/browser.js.map +1 -1
- package/dist/tui/app.d.ts.map +1 -1
- package/dist/tui/app.js +38 -5
- package/dist/tui/app.js.map +1 -1
- package/dist/tui/components/ChatList.d.ts +9 -7
- package/dist/tui/components/ChatList.d.ts.map +1 -1
- package/dist/tui/components/ChatList.js +12 -12
- package/dist/tui/components/ChatList.js.map +1 -1
- package/dist/tui/components/ModelSettings.d.ts +0 -11
- package/dist/tui/components/ModelSettings.d.ts.map +1 -1
- package/dist/tui/components/ModelSettings.js +65 -13
- package/dist/tui/components/ModelSettings.js.map +1 -1
- package/dist/tui/components/ToolCall.d.ts +30 -0
- package/dist/tui/components/ToolCall.d.ts.map +1 -1
- package/dist/tui/components/ToolCall.js +55 -17
- package/dist/tui/components/ToolCall.js.map +1 -1
- package/dist/tui/hooks/useChat.d.ts +7 -18
- package/dist/tui/hooks/useChat.d.ts.map +1 -1
- package/dist/tui/hooks/useChat.js +157 -119
- package/dist/tui/hooks/useChat.js.map +1 -1
- package/dist/tui/hooks/useCommands.d.ts +3 -1
- package/dist/tui/hooks/useCommands.d.ts.map +1 -1
- package/dist/tui/hooks/useCommands.js +10 -0
- package/dist/tui/hooks/useCommands.js.map +1 -1
- package/dist/types.d.ts +10 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,29 +1,95 @@
|
|
|
1
1
|
import { useState, useCallback, useRef } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { useStdout } from 'ink';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { formatToolLabel, formatToolResultLine } from '../components/ToolCall.js';
|
|
5
|
+
import { compressThinking } from '../../utils/thinking.js';
|
|
6
|
+
import { formatTokens } from '../../utils/tokens.js';
|
|
7
|
+
import { theme } from '../theme.js';
|
|
3
8
|
/**
|
|
4
9
|
* Hook for managing chat state and the streaming response lifecycle.
|
|
5
10
|
*
|
|
6
|
-
* v3.0.
|
|
7
|
-
*
|
|
11
|
+
* v3.0.16 (scroll-wheel fix, claude-code "two-region" rendering):
|
|
12
|
+
* streaming text/tool lines are NO LONGER React state. The old design kept
|
|
13
|
+
* the growing text in `streaming` state, so Ink re-rendered (and re-erase/
|
|
14
|
+
* redrew) an ever-taller frame on every chunk — dragging the viewport back
|
|
15
|
+
* to the bottom and locking the mouse wheel. Now:
|
|
8
16
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
17
|
+
* - completed region: past messages via <Static> + streamed text/tool
|
|
18
|
+
* lines written straight to stdout through Ink's `useStdout().write()`
|
|
19
|
+
* (erase current frame → append text permanently → redraw frame below),
|
|
20
|
+
* batched to a ~30fps frame budget;
|
|
21
|
+
* - live region: a CONSTANT-height frame (thinking spinner + input +
|
|
22
|
+
* status bar + queue notice; the ChatList contributes 0 lines because
|
|
23
|
+
* it only renders <Static>). Row count never grows while streaming,
|
|
24
|
+
* so the terminal never auto-scrolls and the wheel stays usable.
|
|
25
|
+
*
|
|
26
|
+
* Persisted message order still matches the source chunks exactly:
|
|
27
|
+
* - text chunks → accumulated into fullContent (compressed via
|
|
11
28
|
* compressThinking before persistence)
|
|
12
|
-
* - tool_calls chunks →
|
|
13
|
-
*
|
|
14
|
-
* v2.2.6)
|
|
15
|
-
* - usage chunks → surfaced via state.lastUsage so the TUI Header can render
|
|
16
|
-
* cache hit-rate (consumed by app.tsx via /cache command in M3)
|
|
29
|
+
* - tool_calls chunks → session/agent-loop behavior unchanged
|
|
30
|
+
* - usage chunks → surfaced via state.lastUsage for the TUI Header
|
|
17
31
|
*/
|
|
32
|
+
/** Batched writer: appends text to the permanent scrollback region. */
|
|
33
|
+
class StreamWriter {
|
|
34
|
+
emit;
|
|
35
|
+
label;
|
|
36
|
+
throttleMs;
|
|
37
|
+
buffer = '';
|
|
38
|
+
timer = null;
|
|
39
|
+
/** 3.0.9 assistant label, printed once before the first streamed char. */
|
|
40
|
+
labelWritten = false;
|
|
41
|
+
constructor(emit, label, throttleMs = 33) {
|
|
42
|
+
this.emit = emit;
|
|
43
|
+
this.label = label;
|
|
44
|
+
this.throttleMs = throttleMs;
|
|
45
|
+
}
|
|
46
|
+
/** Queue a raw chunk of assistant text (label auto-prefixed once). */
|
|
47
|
+
text(s) {
|
|
48
|
+
if (!s)
|
|
49
|
+
return;
|
|
50
|
+
if (!this.labelWritten) {
|
|
51
|
+
this.labelWritten = true;
|
|
52
|
+
this.buffer += '\n' + chalk.hex(theme.textFaint)(this.label) + '\n';
|
|
53
|
+
}
|
|
54
|
+
this.buffer += s;
|
|
55
|
+
this.schedule();
|
|
56
|
+
}
|
|
57
|
+
/** Write immediately (tool lines / notices), flushing queued text first. */
|
|
58
|
+
now(data) {
|
|
59
|
+
this.flush();
|
|
60
|
+
this.emit(data);
|
|
61
|
+
}
|
|
62
|
+
schedule() {
|
|
63
|
+
if (this.timer)
|
|
64
|
+
return;
|
|
65
|
+
this.timer = setTimeout(() => {
|
|
66
|
+
this.timer = null;
|
|
67
|
+
this.flush();
|
|
68
|
+
}, this.throttleMs);
|
|
69
|
+
this.timer.unref?.();
|
|
70
|
+
}
|
|
71
|
+
flush() {
|
|
72
|
+
if (this.timer) {
|
|
73
|
+
clearTimeout(this.timer);
|
|
74
|
+
this.timer = null;
|
|
75
|
+
}
|
|
76
|
+
if (!this.buffer)
|
|
77
|
+
return;
|
|
78
|
+
const data = this.buffer;
|
|
79
|
+
this.buffer = '';
|
|
80
|
+
this.emit(data);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
18
83
|
export function useChat(app) {
|
|
19
84
|
const [state, setState] = useState({
|
|
20
85
|
messages: [],
|
|
21
86
|
isThinking: false,
|
|
22
|
-
streaming: '',
|
|
23
|
-
streamingToolCalls: [],
|
|
24
87
|
queuedMessage: null,
|
|
25
88
|
lastUsage: null,
|
|
26
89
|
});
|
|
90
|
+
// Ink's managed write: erase frame → write data permanently → redraw the
|
|
91
|
+
// (constant-height) frame below it. Falls back to raw stdout outside Ink.
|
|
92
|
+
const { write: inkWrite } = useStdout();
|
|
27
93
|
const processingRef = useRef(false);
|
|
28
94
|
const queuedRef = useRef(null);
|
|
29
95
|
const abortRef = useRef(false);
|
|
@@ -38,33 +104,45 @@ export function useChat(app) {
|
|
|
38
104
|
...prev,
|
|
39
105
|
messages: [...prev.messages, { role: 'user', content: input }],
|
|
40
106
|
isThinking: true,
|
|
41
|
-
streaming: '',
|
|
42
|
-
streamingToolCalls: [],
|
|
43
107
|
queuedMessage: null,
|
|
44
108
|
}));
|
|
45
109
|
app.session.addMessage('user', input);
|
|
110
|
+
const emit = (data) => {
|
|
111
|
+
if (inkWrite)
|
|
112
|
+
inkWrite(data);
|
|
113
|
+
else
|
|
114
|
+
process.stdout.write(data);
|
|
115
|
+
};
|
|
116
|
+
const cfgModel = app.config.get().model || '';
|
|
117
|
+
const writer = new StreamWriter(emit, `▪ Build${cfgModel ? ` · ${cfgModel}` : ''}`);
|
|
118
|
+
/** Pending `⎿ name(args) ⟳` line, colored like the <ToolCall/> component. */
|
|
119
|
+
const writePendingLine = (tc) => {
|
|
120
|
+
const { title, detail } = formatToolLabel(tc.function.name, tc.function.arguments);
|
|
121
|
+
writer.now(' ' +
|
|
122
|
+
chalk.hex(theme.toolMark)('⎿ ') +
|
|
123
|
+
chalk.hex(theme.accentDim)(title) +
|
|
124
|
+
(detail ? ' ' + chalk.hex(theme.textDim)(detail) : '') +
|
|
125
|
+
chalk.hex(theme.textFaint)(' ⟳') +
|
|
126
|
+
'\n');
|
|
127
|
+
};
|
|
128
|
+
/** Result summary line, same shape/color rules as <ToolCall/>. */
|
|
129
|
+
const writeResultLine = (r) => {
|
|
130
|
+
const line = formatToolResultLine(r.output, !r.ok);
|
|
131
|
+
if (!line)
|
|
132
|
+
return;
|
|
133
|
+
writer.now(' ' + chalk.hex(line.color)(line.text) + '\n');
|
|
134
|
+
};
|
|
46
135
|
const stream = app.streamResponse(undefined, { signal: ctrl.signal });
|
|
47
136
|
let fullContent = '';
|
|
48
|
-
|
|
137
|
+
// Any tool call seen this turn (keeps persistence gating identical).
|
|
138
|
+
let sawToolCalls = false;
|
|
49
139
|
// Latest usage from this round; surfaced via state.lastUsage.
|
|
50
140
|
let lastUsage = null;
|
|
51
141
|
// v3.0.13: completion tokens summed across all rounds of this turn —
|
|
52
|
-
//
|
|
142
|
+
// appended as a faint `· Nt` chip when the turn completes.
|
|
53
143
|
let turnCompletionTokens = 0;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Flush streaming state to React. Throttled to ~20fps so the terminal
|
|
58
|
-
* doesn't flicker on long completions (combined with <Static> below the
|
|
59
|
-
* completion line stays put while the streaming line updates in place).
|
|
60
|
-
*/
|
|
61
|
-
const flushStreaming = () => {
|
|
62
|
-
const now = Date.now();
|
|
63
|
-
if (now - lastUpdateTime < THROTTLE_MS)
|
|
64
|
-
return;
|
|
65
|
-
lastUpdateTime = now;
|
|
66
|
-
setState(prev => ({ ...prev, isThinking: false, streaming: fullContent }));
|
|
67
|
-
};
|
|
144
|
+
// Spinner turns off at the first visible output (text or tool line).
|
|
145
|
+
let sawOutput = false;
|
|
68
146
|
try {
|
|
69
147
|
for await (const chunk of stream) {
|
|
70
148
|
// Check abort
|
|
@@ -75,39 +153,44 @@ export function useChat(app) {
|
|
|
75
153
|
case 'text':
|
|
76
154
|
if (chunk.content) {
|
|
77
155
|
fullContent += chunk.content;
|
|
78
|
-
|
|
156
|
+
if (!sawOutput) {
|
|
157
|
+
sawOutput = true;
|
|
158
|
+
setState(prev => ({ ...prev, isThinking: false }));
|
|
159
|
+
}
|
|
160
|
+
writer.text(chunk.content);
|
|
79
161
|
}
|
|
80
162
|
break;
|
|
81
163
|
case 'thinking':
|
|
82
164
|
// Reasoning text. We do not append it to fullContent (it is
|
|
83
|
-
// stripped from persistence in compressThinking), but
|
|
84
|
-
//
|
|
165
|
+
// stripped from persistence in compressThinking), but when
|
|
166
|
+
// showThinking is on it streams straight to the scrollback too.
|
|
85
167
|
if (app.showThinking && chunk.content) {
|
|
86
168
|
fullContent += chunk.content;
|
|
87
|
-
|
|
169
|
+
if (!sawOutput) {
|
|
170
|
+
sawOutput = true;
|
|
171
|
+
setState(prev => ({ ...prev, isThinking: false }));
|
|
172
|
+
}
|
|
173
|
+
writer.text(chunk.content);
|
|
88
174
|
}
|
|
89
175
|
break;
|
|
90
176
|
case 'tool_calls':
|
|
91
177
|
if (chunk.toolCalls && chunk.toolCalls.length > 0) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
isThinking: false,
|
|
109
|
-
streamingToolCalls: [...currentToolCalls],
|
|
110
|
-
}));
|
|
178
|
+
sawToolCalls = true;
|
|
179
|
+
if (!sawOutput) {
|
|
180
|
+
sawOutput = true;
|
|
181
|
+
setState(prev => ({ ...prev, isThinking: false }));
|
|
182
|
+
}
|
|
183
|
+
if (chunk.pending) {
|
|
184
|
+
// v3.0.16: pre-execution announcement → one ⟳ line per call.
|
|
185
|
+
for (const tc of chunk.toolCalls)
|
|
186
|
+
writePendingLine(tc);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
// Results chunk: index-aligned outcome line per call.
|
|
190
|
+
const results = chunk.results || [];
|
|
191
|
+
for (const r of results)
|
|
192
|
+
writeResultLine(r);
|
|
193
|
+
}
|
|
111
194
|
}
|
|
112
195
|
break;
|
|
113
196
|
case 'usage':
|
|
@@ -129,7 +212,7 @@ export function useChat(app) {
|
|
|
129
212
|
// for cases where we somehow persist a polluted message.
|
|
130
213
|
const wasAborted = abortRef.current;
|
|
131
214
|
const shouldPersist = !wasAborted &&
|
|
132
|
-
(fullContent.trim() ||
|
|
215
|
+
(fullContent.trim() || sawToolCalls);
|
|
133
216
|
if (shouldPersist) {
|
|
134
217
|
// v2.2.5: strip blocks from the persisted message
|
|
135
218
|
// when compression is enabled. Same rationale as in
|
|
@@ -138,55 +221,20 @@ export function useChat(app) {
|
|
|
138
221
|
const toPersist = compressThinking(fullContent, app.showThinking);
|
|
139
222
|
app.session.addMessageSafe('assistant', toPersist);
|
|
140
223
|
}
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
//
|
|
151
|
-
//
|
|
152
|
-
// summary to the persisted/displayed content. This guarantees
|
|
153
|
-
// the user sees the tool output regardless of whether the Ink
|
|
154
|
-
// <ToolCall/> component renders it correctly. Past sessions
|
|
155
|
-
// have had cases where the streaming ToolCall rendering failed
|
|
156
|
-
// silently (e.g. result was empty string, wrap=truncate cut
|
|
157
|
-
// long output off-screen) and the user had no idea what the
|
|
158
|
-
// tool actually returned.
|
|
159
|
-
//
|
|
160
|
-
// v3.0.0: since LLMService now folds tool results into
|
|
161
|
-
// currentMessages without surfacing them as separate chunks, we no
|
|
162
|
-
// longer have a `result` field on each ToolCallData here. The
|
|
163
|
-
// result summary is built by reading back from
|
|
164
|
-
// app.session.getMessages() — the latest `tool` role message per
|
|
165
|
-
// tool call id. To keep this lightweight we fall back to a brief
|
|
166
|
-
// "[tool: name → see message]" suffix when the result is not
|
|
167
|
-
// available in our local streaming state.
|
|
168
|
-
const toolSummary = currentToolCalls.length > 0
|
|
169
|
-
? '\n\n' + currentToolCalls.map((tc) => {
|
|
170
|
-
const r = tc.result !== undefined ? tc.result : '(no output captured)';
|
|
171
|
-
const short = r.length > 200 ? r.slice(0, 197) + '...' : r;
|
|
172
|
-
return `[tool: ${tc.name} → ${short}]`;
|
|
173
|
-
}).join('\n')
|
|
174
|
-
: '';
|
|
224
|
+
// Commit whatever is still queued, then the turn's token chip.
|
|
225
|
+
// v2.2.6 note: the old belt-and-suspenders "[tool: name → result]"
|
|
226
|
+
// summary was display-only; result lines are now painted under each
|
|
227
|
+
// ⎿ call line the moment the results chunk arrives, so no suffix.
|
|
228
|
+
writer.flush();
|
|
229
|
+
if (shouldPersist && turnCompletionTokens > 0) {
|
|
230
|
+
emit(chalk.hex(theme.textFaint)(` · ${formatTokens(turnCompletionTokens)}t\n`));
|
|
231
|
+
}
|
|
232
|
+
// v3.0.16: the assistant text itself is ALREADY in the scrollback
|
|
233
|
+
// (appended live above the frame) — nothing is added to `messages`
|
|
234
|
+
// here. Only notices/errors land in the React display list.
|
|
175
235
|
setState(prev => ({
|
|
176
236
|
...prev,
|
|
177
|
-
messages: [
|
|
178
|
-
...prev.messages,
|
|
179
|
-
...(shouldPersist
|
|
180
|
-
? [{
|
|
181
|
-
role: 'assistant',
|
|
182
|
-
content: displayContent + toolSummary,
|
|
183
|
-
toolCalls: currentToolCalls.length > 0 ? currentToolCalls : undefined,
|
|
184
|
-
tokens: turnCompletionTokens || undefined,
|
|
185
|
-
}]
|
|
186
|
-
: []),
|
|
187
|
-
],
|
|
188
|
-
streaming: '',
|
|
189
|
-
streamingToolCalls: [],
|
|
237
|
+
messages: [...prev.messages],
|
|
190
238
|
isThinking: false,
|
|
191
239
|
lastUsage,
|
|
192
240
|
}));
|
|
@@ -203,17 +251,11 @@ export function useChat(app) {
|
|
|
203
251
|
app.session.persist();
|
|
204
252
|
}
|
|
205
253
|
catch (error) {
|
|
254
|
+
writer.flush();
|
|
206
255
|
if (abortRef.current) {
|
|
207
256
|
setState(prev => ({
|
|
208
257
|
...prev,
|
|
209
|
-
messages: [
|
|
210
|
-
...prev.messages,
|
|
211
|
-
...(fullContent.trim()
|
|
212
|
-
? [{ role: 'assistant', content: fullContent + '\n\n[已中断]' }]
|
|
213
|
-
: [{ role: 'assistant', content: '[已中断]' }]),
|
|
214
|
-
],
|
|
215
|
-
streaming: '',
|
|
216
|
-
streamingToolCalls: [],
|
|
258
|
+
messages: [...prev.messages, { role: 'assistant', content: '[已中断]' }],
|
|
217
259
|
isThinking: false,
|
|
218
260
|
}));
|
|
219
261
|
}
|
|
@@ -234,15 +276,7 @@ export function useChat(app) {
|
|
|
234
276
|
}
|
|
235
277
|
setState(prev => ({
|
|
236
278
|
...prev,
|
|
237
|
-
messages: [
|
|
238
|
-
...prev.messages,
|
|
239
|
-
...(fullContent.trim()
|
|
240
|
-
? [{ role: 'assistant', content: fullContent }]
|
|
241
|
-
: []),
|
|
242
|
-
{ role: 'assistant', content: errorMsg },
|
|
243
|
-
],
|
|
244
|
-
streaming: '',
|
|
245
|
-
streamingToolCalls: [],
|
|
279
|
+
messages: [...prev.messages, { role: 'assistant', content: errorMsg }],
|
|
246
280
|
isThinking: false,
|
|
247
281
|
}));
|
|
248
282
|
}
|
|
@@ -280,6 +314,10 @@ export function useChat(app) {
|
|
|
280
314
|
const hydrateMessages = useCallback((msgs) => {
|
|
281
315
|
setState(prev => ({ ...prev, messages: msgs }));
|
|
282
316
|
}, []);
|
|
283
|
-
|
|
317
|
+
/** v3.0.16: /new — the session reset, the visible list resets with it. */
|
|
318
|
+
const clearMessages = useCallback(() => {
|
|
319
|
+
setState(prev => ({ ...prev, messages: [] }));
|
|
320
|
+
}, []);
|
|
321
|
+
return { ...state, sendMessage, cancel, hydrateMessages, clearMessages };
|
|
284
322
|
}
|
|
285
323
|
//# sourceMappingURL=useChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../../src/tui/hooks/useChat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../../src/tui/hooks/useChat.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,10 @@ interface CommandResult {
|
|
|
6
6
|
* v3.0.5: 'reload_model' / 'apply_ttl' / 'resume' are handled async by
|
|
7
7
|
* app.tsx after the sync output is displayed (reloadModel / applyTtl /
|
|
8
8
|
* session load are async or need React state access).
|
|
9
|
+
* v3.0.16: 'browser_check' — BrowserTool.verifyLaunch() spawns Chromium,
|
|
10
|
+
* so it must run async in app.tsx (handleCommand stays sync).
|
|
9
11
|
*/
|
|
10
|
-
action?: 'clear' | 'reinit' | 'reload_model' | 'apply_ttl' | 'resume' | 'model_settings';
|
|
12
|
+
action?: 'clear' | 'reinit' | 'reload_model' | 'apply_ttl' | 'resume' | 'model_settings' | 'browser_check';
|
|
11
13
|
payload?: any;
|
|
12
14
|
}
|
|
13
15
|
export declare const COMMAND_LIST: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCommands.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAG9C,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB
|
|
1
|
+
{"version":3,"file":"useCommands.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAG9C,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,gBAAgB,GAAG,eAAe,CAAC;IAC3G,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAyBD,eAAO,MAAM,YAAY;;;GAcxB,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG;2BAEQ,MAAM,KAAG,aAAa;EAqRjE"}
|
|
@@ -33,6 +33,7 @@ export const COMMAND_LIST = [
|
|
|
33
33
|
{ name: '/ttl', desc: '查看/设置 Cache TTL' },
|
|
34
34
|
{ name: '/技能', desc: '管理技能' },
|
|
35
35
|
{ name: '/mcp', desc: 'MCP 服务器状态' },
|
|
36
|
+
{ name: '/browser', desc: '浏览器工具状态' },
|
|
36
37
|
{ name: '/yolo', desc: '切换自动确认' },
|
|
37
38
|
{ name: '/帮助', desc: '查看帮助' },
|
|
38
39
|
];
|
|
@@ -120,6 +121,14 @@ export function useCommands(app) {
|
|
|
120
121
|
if (name === '/models') {
|
|
121
122
|
return { handled: true, action: 'model_settings' };
|
|
122
123
|
}
|
|
124
|
+
// ── /browser — 浏览器工具状态 ────────────────────────
|
|
125
|
+
if (name === '/browser' || name === '/浏览器') {
|
|
126
|
+
// Sync part only: handleCommand can not await verifyLaunch (it
|
|
127
|
+
// spawns Chromium). Return the action; app.tsx runs the async check
|
|
128
|
+
// and posts the report (config.browserSetup + launch probe) as a
|
|
129
|
+
// chat notice — same delegation pattern as /models.
|
|
130
|
+
return { handled: true, action: 'browser_check' };
|
|
131
|
+
}
|
|
123
132
|
// ── /yolo ───────────────────────────────────────────
|
|
124
133
|
if (name === '/yolo') {
|
|
125
134
|
const turningOn = app.permissionMode !== 'accept';
|
|
@@ -272,6 +281,7 @@ export function useCommands(app) {
|
|
|
272
281
|
' /思考 [on|off] 切换思考块显示',
|
|
273
282
|
' /技能 [id] 管理技能',
|
|
274
283
|
' /mcp MCP 服务器状态',
|
|
284
|
+
' /browser 浏览器工具状态(配置 + 启动检查)',
|
|
275
285
|
' /yolo 切换写/执行操作自动确认',
|
|
276
286
|
' /帮助 查看帮助',
|
|
277
287
|
' exit 退出',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCommands.js","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useCommands.js","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -103,11 +103,15 @@ export interface ChatOptions {
|
|
|
103
103
|
* protocol that the previous version of useChat parsed by string-splitting.
|
|
104
104
|
*
|
|
105
105
|
* - 'text': regular model output
|
|
106
|
-
* - 'tool_calls': one or more tool calls
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
106
|
+
* - 'tool_calls': one or more tool calls. Two flavors:
|
|
107
|
+
* - `pending: true` → pre-execution announcement (the
|
|
108
|
+
* agent loop yielded it BEFORE running the tools so the
|
|
109
|
+
* TUI can print `⎿ name(args) ⟳` immediately).
|
|
110
|
+
* - `results` attached (index-aligned with toolCalls) →
|
|
111
|
+
* emitted after execution so the TUI can render per-tool
|
|
112
|
+
* outcomes without reading session internals.
|
|
113
|
+
* Headless (--json) consumers skip `pending` chunks and keep
|
|
114
|
+
* emitting exactly ONE tool_calls event per agent round.
|
|
111
115
|
* - 'thinking': reasoning content (stripped from final persistence; kept in
|
|
112
116
|
* VolatileScratch for the current round only)
|
|
113
117
|
* - 'usage': token usage + cache stats; emitted at end of stream if
|
|
@@ -125,6 +129,7 @@ export type StreamChunk = {
|
|
|
125
129
|
type: 'tool_calls';
|
|
126
130
|
toolCalls: ToolCall[];
|
|
127
131
|
results?: ToolCallResult[];
|
|
132
|
+
pending?: boolean;
|
|
128
133
|
} | {
|
|
129
134
|
type: 'thinking';
|
|
130
135
|
content: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEpF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX;;;;;OAKG;IACH,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,KAAK;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IAErB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC9C;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|