zelari-code 0.4.3 → 0.6.2
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/README.md +42 -0
- package/dist/cli/app.js +17 -12
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/compaction.js.map +1 -1
- package/dist/cli/components/ChatStream.js +57 -10
- package/dist/cli/components/ChatStream.js.map +1 -1
- package/dist/cli/components/CollapsibleToolOutput.js +5 -0
- package/dist/cli/components/CollapsibleToolOutput.js.map +1 -1
- package/dist/cli/councilDispatcher.js +1 -1
- package/dist/cli/councilDispatcher.js.map +1 -1
- package/dist/cli/headless.js +137 -0
- package/dist/cli/headless.js.map +1 -0
- package/dist/cli/hooks/eventsToMessages.js +42 -11
- package/dist/cli/hooks/eventsToMessages.js.map +1 -1
- package/dist/cli/hooks/messageHelpers.js +65 -15
- package/dist/cli/hooks/messageHelpers.js.map +1 -1
- package/dist/cli/hooks/useBatchedMessages.js +67 -0
- package/dist/cli/hooks/useBatchedMessages.js.map +1 -0
- package/dist/cli/hooks/useChatTurn.js +97 -41
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/hooks/useSession.js +10 -1
- package/dist/cli/hooks/useSession.js.map +1 -1
- package/dist/cli/hooks/useSlashDispatch.js +4 -1
- package/dist/cli/hooks/useSlashDispatch.js.map +1 -1
- package/dist/cli/main.bundled.js +15328 -14305
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/main.js +86 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/provider/openai-compatible.js +9 -2
- package/dist/cli/provider/openai-compatible.js.map +1 -1
- package/dist/cli/runHeadless.js +160 -0
- package/dist/cli/runHeadless.js.map +1 -0
- package/dist/cli/sessionManager.js +1 -1
- package/dist/cli/sessionManager.js.map +1 -1
- package/dist/cli/skillSuggest.js +1 -1
- package/dist/cli/slashHandlers/branch.js +11 -2
- package/dist/cli/slashHandlers/branch.js.map +1 -1
- package/dist/cli/slashHandlers/git.js +0 -75
- package/dist/cli/slashHandlers/git.js.map +1 -1
- package/dist/cli/slashHandlers/promoteMember.js +25 -0
- package/dist/cli/slashHandlers/promoteMember.js.map +1 -0
- package/dist/cli/slashHandlers/transcript.js +13 -0
- package/dist/cli/slashHandlers/transcript.js.map +1 -0
- package/dist/cli/slashHandlers/updater.js +40 -0
- package/dist/cli/slashHandlers/updater.js.map +1 -0
- package/dist/cli/toolRegistry.js +6 -6
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/wizard/firstRun.js +63 -0
- package/dist/cli/wizard/firstRun.js.map +1 -0
- package/dist/cli/wizard/index.js +150 -0
- package/dist/cli/wizard/index.js.map +1 -0
- package/dist/cli/wizard/runWizard.js +137 -0
- package/dist/cli/wizard/runWizard.js.map +1 -0
- package/dist/cli/wizard/useWizardState.js +151 -0
- package/dist/cli/wizard/useWizardState.js.map +1 -0
- package/dist/cli/workspace/toolRegistry.js +2 -2
- package/dist/cli/workspace/toolRegistry.js.map +1 -1
- package/package.json +6 -1
|
@@ -29,8 +29,12 @@ export function appendUser(setMessages, content, ts = Date.now()) {
|
|
|
29
29
|
* Append or extend the streaming assistant message. If the last message is
|
|
30
30
|
* already a streaming assistant message, append `delta` to its content;
|
|
31
31
|
* otherwise create a new one with a stable streaming id.
|
|
32
|
+
*
|
|
33
|
+
* When `memberName` is set (council-sourced messages), it's stamped on
|
|
34
|
+
* the message so the visible-reasoning UI can render `🜂 Caronte: …`
|
|
35
|
+
* headers above the streamed text.
|
|
32
36
|
*/
|
|
33
|
-
export function appendOrExtendStreamingAssistant(setMessages, fullContent, ts) {
|
|
37
|
+
export function appendOrExtendStreamingAssistant(setMessages, fullContent, ts, memberContext) {
|
|
34
38
|
setMessages((prev) => {
|
|
35
39
|
const last = prev[prev.length - 1];
|
|
36
40
|
if (last && last.role === 'assistant' && last.id.startsWith('streaming-')) {
|
|
@@ -38,23 +42,48 @@ export function appendOrExtendStreamingAssistant(setMessages, fullContent, ts) {
|
|
|
38
42
|
}
|
|
39
43
|
return [
|
|
40
44
|
...prev,
|
|
41
|
-
{
|
|
45
|
+
{
|
|
46
|
+
id: `streaming-${crypto.randomUUID()}`,
|
|
47
|
+
role: 'assistant',
|
|
48
|
+
content: fullContent,
|
|
49
|
+
ts,
|
|
50
|
+
...(memberContext?.memberId ? { memberId: memberContext.memberId } : {}),
|
|
51
|
+
...(memberContext?.memberName ? { memberName: memberContext.memberName } : {}),
|
|
52
|
+
},
|
|
42
53
|
];
|
|
43
54
|
});
|
|
44
55
|
}
|
|
45
|
-
/**
|
|
46
|
-
export
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
/** Max chars of tool result kept for the expandable body. */
|
|
57
|
+
export const TOOL_RESULT_PREVIEW_CHARS = 600;
|
|
58
|
+
/** Max chars of the JSON args preview shown on the tool summary line. */
|
|
59
|
+
export const TOOL_ARGS_PREVIEW_CHARS = 120;
|
|
60
|
+
/**
|
|
61
|
+
* Append a tool invocation as a `role: 'tool'` message so ChatStream renders
|
|
62
|
+
* it via CollapsibleToolOutput (one status line per invocation, updated in
|
|
63
|
+
* place by {@link updateToolMessageEnd}) instead of loose system lines.
|
|
64
|
+
*/
|
|
65
|
+
export function appendToolStart(setMessages, toolName, toolCallId, args, ts) {
|
|
66
|
+
const argsPreview = JSON.stringify(args)?.slice(0, TOOL_ARGS_PREVIEW_CHARS) ?? '';
|
|
67
|
+
setMessages((prev) => [
|
|
68
|
+
...prev,
|
|
69
|
+
{
|
|
70
|
+
id: crypto.randomUUID(),
|
|
71
|
+
role: 'tool',
|
|
72
|
+
content: argsPreview,
|
|
73
|
+
ts,
|
|
74
|
+
toolName,
|
|
75
|
+
toolCallId,
|
|
76
|
+
toolOk: undefined,
|
|
77
|
+
toolDurationMs: undefined,
|
|
78
|
+
},
|
|
79
|
+
]);
|
|
55
80
|
}
|
|
56
|
-
/**
|
|
57
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Update the matching `tool_execution_start` message with its end status.
|
|
83
|
+
* The summary (args preview) is kept; the result is stored separately as the
|
|
84
|
+
* expandable body. Failed invocations auto-expand in ChatStream.
|
|
85
|
+
*/
|
|
86
|
+
export function updateToolMessageEnd(setMessages, toolCallId, isError, durationMs, result) {
|
|
58
87
|
setMessages((prev) => {
|
|
59
88
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
60
89
|
const m = prev[i];
|
|
@@ -64,7 +93,13 @@ export function updateToolMessageEnd(setMessages, toolCallId, isError, durationM
|
|
|
64
93
|
...m,
|
|
65
94
|
toolOk: !isError,
|
|
66
95
|
toolDurationMs: durationMs,
|
|
67
|
-
|
|
96
|
+
...(result !== undefined
|
|
97
|
+
? {
|
|
98
|
+
toolResult: result.length > TOOL_RESULT_PREVIEW_CHARS
|
|
99
|
+
? `${result.slice(0, TOOL_RESULT_PREVIEW_CHARS)}…`
|
|
100
|
+
: result,
|
|
101
|
+
}
|
|
102
|
+
: {}),
|
|
68
103
|
};
|
|
69
104
|
return updated;
|
|
70
105
|
}
|
|
@@ -72,4 +107,19 @@ export function updateToolMessageEnd(setMessages, toolCallId, isError, durationM
|
|
|
72
107
|
return prev;
|
|
73
108
|
});
|
|
74
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Seal the trailing streaming assistant message (if any) by dropping its
|
|
112
|
+
* `streaming-` id prefix. Called on `message_end` so the NEXT assistant
|
|
113
|
+
* message in the same turn (e.g. after a tool call) starts a fresh bubble
|
|
114
|
+
* instead of being merged into — or duplicated over — the previous one.
|
|
115
|
+
*/
|
|
116
|
+
export function finalizeStreamingAssistant(setMessages) {
|
|
117
|
+
setMessages((prev) => {
|
|
118
|
+
const last = prev[prev.length - 1];
|
|
119
|
+
if (last && last.role === 'assistant' && last.id.startsWith('streaming-')) {
|
|
120
|
+
return [...prev.slice(0, -1), { ...last, id: last.id.slice('streaming-'.length) }];
|
|
121
|
+
}
|
|
122
|
+
return prev;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
75
125
|
//# sourceMappingURL=messageHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageHelpers.js","sourceRoot":"","sources":["../../../src/cli/hooks/messageHelpers.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAC1B,WAAgE,EAChE,OAAe,EACf,KAAa,IAAI,CAAC,GAAG,EAAE;IAEvB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,GAAG,IAAI;QACP,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;KACzD,CAAC,CAAC;AACL,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,UAAU,CACxB,WAAgE,EAChE,OAAe,EACf,KAAa,IAAI,CAAC,GAAG,EAAE;IAEvB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,GAAG,IAAI;QACP,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACvD,CAAC,CAAC;AACL,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"messageHelpers.js","sourceRoot":"","sources":["../../../src/cli/hooks/messageHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
2
|
+
export function useBatchedMessages(messages, setMessages, cadenceMs = 16) {
|
|
3
|
+
// Composed pending updater, or `null` when nothing is buffered.
|
|
4
|
+
const pendingRef = useRef(null);
|
|
5
|
+
// Active throttle-window timer handle, or `null` when not throttling.
|
|
6
|
+
const timerRef = useRef(null);
|
|
7
|
+
/**
|
|
8
|
+
* Apply the current pending updater to state, ignoring/clearing the timer.
|
|
9
|
+
* Used as the synchronous public drain (stream end) and internally.
|
|
10
|
+
*/
|
|
11
|
+
const flush = useCallback(() => {
|
|
12
|
+
if (timerRef.current !== null) {
|
|
13
|
+
clearTimeout(timerRef.current);
|
|
14
|
+
timerRef.current = null;
|
|
15
|
+
}
|
|
16
|
+
const pending = pendingRef.current;
|
|
17
|
+
pendingRef.current = null;
|
|
18
|
+
if (pending !== null) {
|
|
19
|
+
setMessages(pending);
|
|
20
|
+
}
|
|
21
|
+
}, [setMessages]);
|
|
22
|
+
const commit = useCallback((update) => {
|
|
23
|
+
// Compose this update onto any pending one, preserving arrival order.
|
|
24
|
+
const head = pendingRef.current;
|
|
25
|
+
pendingRef.current =
|
|
26
|
+
head === null
|
|
27
|
+
? update
|
|
28
|
+
: (state) => {
|
|
29
|
+
const intermediate = typeof head === 'function' ? head(state) : head;
|
|
30
|
+
return typeof update === 'function' ? update(intermediate) : update;
|
|
31
|
+
};
|
|
32
|
+
if (timerRef.current === null) {
|
|
33
|
+
// Leading edge: not currently throttling. Flush immediately so the
|
|
34
|
+
// first token renders with no latency, then open a throttle window.
|
|
35
|
+
const leading = pendingRef.current;
|
|
36
|
+
pendingRef.current = null;
|
|
37
|
+
if (leading !== null) {
|
|
38
|
+
setMessages(leading);
|
|
39
|
+
}
|
|
40
|
+
timerRef.current = setTimeout(() => {
|
|
41
|
+
timerRef.current = null;
|
|
42
|
+
// Trailing edge: flush anything that accumulated during the window
|
|
43
|
+
// as a single render. Do NOT re-arm — the next commit starts a new
|
|
44
|
+
// leading edge.
|
|
45
|
+
const tail = pendingRef.current;
|
|
46
|
+
pendingRef.current = null;
|
|
47
|
+
if (tail !== null) {
|
|
48
|
+
setMessages(tail);
|
|
49
|
+
}
|
|
50
|
+
}, cadenceMs);
|
|
51
|
+
}
|
|
52
|
+
// else: inside a throttle window — the trailing handler above will
|
|
53
|
+
// catch the buffered update when the window closes.
|
|
54
|
+
}, [cadenceMs, setMessages]);
|
|
55
|
+
// On unmount: cancel any pending timer. Do NOT flush — teardown means the
|
|
56
|
+
// display is going away, and persisted state lives in the JSONL writer.
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
return () => {
|
|
59
|
+
if (timerRef.current !== null) {
|
|
60
|
+
clearTimeout(timerRef.current);
|
|
61
|
+
timerRef.current = null;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}, []);
|
|
65
|
+
return { messages, commit, flush, setMessages };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=useBatchedMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBatchedMessages.js","sourceRoot":"","sources":["../../../src/cli/hooks/useBatchedMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAkDvD,MAAM,UAAU,kBAAkB,CAChC,QAAuB,EACvB,WAAgE,EAChE,YAAoB,EAAE;IAEtB,gEAAgE;IAChE,MAAM,UAAU,GAAG,MAAM,CAA6C,IAAI,CAAC,CAAC;IAC5E,sEAAsE;IACtE,MAAM,QAAQ,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,WAAW,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,MAA2C,EAAE,EAAE;QAC9C,sEAAsE;QACtE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;QAChC,UAAU,CAAC,OAAO;YAChB,IAAI,KAAK,IAAI;gBACX,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,CAAC,KAAoB,EAAE,EAAE;oBACvB,MAAM,YAAY,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACrE,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtE,CAAC,CAAC;QAER,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,mEAAmE;YACnE,oEAAoE;YACpE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,WAAW,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YACD,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACjC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,mEAAmE;gBACnE,mEAAmE;gBACnE,gBAAgB;gBAChB,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;gBAChC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC1B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;QACD,mEAAmE;QACnE,oDAAoD;IACtD,CAAC,EACD,CAAC,SAAS,EAAE,WAAW,CAAC,CACzB,CAAC;IAEF,0EAA0E;IAC1E,wEAAwE;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9B,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// @ts-nocheck — pre-existing strict-mode type narrowing issues carried over
|
|
2
2
|
// from app.tsx. Runtime is correct; tighten signatures in a follow-up.
|
|
3
3
|
import { useState, useRef, useCallback } from 'react';
|
|
4
|
-
import { AgentHarness } from '
|
|
4
|
+
import { AgentHarness } from '@zelari/core/harness';
|
|
5
5
|
import { getMetricsLogger } from '../metrics.js';
|
|
6
6
|
import { openaiCompatibleProvider, providerFromEnv, providerConfigFor } from '../provider/openai-compatible.js';
|
|
7
7
|
import { providerFailover } from '../providerFailover.js';
|
|
8
8
|
import { resolveFailoverStream } from '../crossProviderFailover.js';
|
|
9
9
|
import { PROVIDERS } from '../keyStore.js';
|
|
10
10
|
import { createBuiltinToolRegistry } from '../toolRegistry.js';
|
|
11
|
-
import { appendOrExtendStreamingAssistant, appendSystem,
|
|
11
|
+
import { appendOrExtendStreamingAssistant, appendSystem, appendToolStart, finalizeStreamingAssistant, updateToolMessageEnd, } from './messageHelpers.js';
|
|
12
12
|
import { computeSessionStatsDelta } from './chatStats.js';
|
|
13
13
|
export function useChatTurn(params) {
|
|
14
|
-
const { sessionId, writerRef, setMessages, setBusy, setSessionActive, setSessionStats } = params;
|
|
14
|
+
const { sessionId, writerRef, setMessages, commitStreaming, flushStreaming, setBusy, setSessionActive, setSessionStats } = params;
|
|
15
15
|
const harnessRef = useRef(null);
|
|
16
16
|
const [queueCount, setQueueCount] = useState(0);
|
|
17
17
|
const dispatchPrompt = useCallback(async (userText) => {
|
|
@@ -43,7 +43,9 @@ export function useChatTurn(params) {
|
|
|
43
43
|
buildStream: (config) => openaiCompatibleProvider(config),
|
|
44
44
|
});
|
|
45
45
|
if (failoverResolution.warning) {
|
|
46
|
-
console.warn
|
|
46
|
+
// Surface in the chat instead of console.warn: writes that bypass
|
|
47
|
+
// Ink force a full repaint of the TUI frame (visible flicker).
|
|
48
|
+
appendSystem(setMessages, `[failover] ${failoverResolution.warning}`);
|
|
47
49
|
}
|
|
48
50
|
const providerStream = failoverResolution.fallbackLabel
|
|
49
51
|
? providerFailover({
|
|
@@ -94,13 +96,29 @@ export function useChatTurn(params) {
|
|
|
94
96
|
});
|
|
95
97
|
harnessRef.current = harness;
|
|
96
98
|
setQueueCount(harness.queueLength);
|
|
99
|
+
// Total assistant output across the whole turn — feeds the token/cost
|
|
100
|
+
// estimate fallback in computeSessionStatsDelta.
|
|
97
101
|
let assistantContent = '';
|
|
102
|
+
// Display buffer for the CURRENT streamed message only. Reset on every
|
|
103
|
+
// message_end: without this, the post-tool-call message re-rendered the
|
|
104
|
+
// full accumulated turn text, duplicating everything said before the
|
|
105
|
+
// tool ran.
|
|
106
|
+
let streamContent = '';
|
|
107
|
+
// tool_execution_end doesn't carry toolName — remember it from the
|
|
108
|
+
// matching start event (keyed by toolCallId) for metrics.
|
|
109
|
+
const toolNameById = new Map();
|
|
98
110
|
const metrics = getMetricsLogger();
|
|
99
111
|
let realUsage = null;
|
|
100
112
|
try {
|
|
101
113
|
for await (const event of harness.run()) {
|
|
102
|
-
if (event.type === 'message_end'
|
|
103
|
-
|
|
114
|
+
if (event.type === 'message_end') {
|
|
115
|
+
if (event.usage)
|
|
116
|
+
realUsage = event.usage;
|
|
117
|
+
// Message boundary: drain buffered deltas, then seal the streamed
|
|
118
|
+
// bubble so the next message starts fresh instead of merging.
|
|
119
|
+
flushStreaming();
|
|
120
|
+
finalizeStreamingAssistant(setMessages);
|
|
121
|
+
streamContent = '';
|
|
104
122
|
}
|
|
105
123
|
if (event.type === 'queue_update') {
|
|
106
124
|
setQueueCount(harness.queueLength);
|
|
@@ -133,7 +151,7 @@ export function useChatTurn(params) {
|
|
|
133
151
|
sessionId,
|
|
134
152
|
provider: envConfig.providerId,
|
|
135
153
|
model: envConfig.model,
|
|
136
|
-
toolName: event.
|
|
154
|
+
toolName: toolNameById.get(event.toolCallId) ?? 'unknown',
|
|
137
155
|
toolCallId: event.toolCallId,
|
|
138
156
|
durationMs: event.durationMs,
|
|
139
157
|
ok: !event.isError,
|
|
@@ -141,26 +159,39 @@ export function useChatTurn(params) {
|
|
|
141
159
|
}
|
|
142
160
|
if (event.type === 'message_delta') {
|
|
143
161
|
assistantContent += event.delta;
|
|
144
|
-
|
|
162
|
+
streamContent += event.delta;
|
|
163
|
+
// Route through the throttled setter so per-token deltas (50-200/sec)
|
|
164
|
+
// coalesce into ≤60 renders/sec instead of flickering the TUI.
|
|
165
|
+
// v0.5.0: forward the council member identity when present so
|
|
166
|
+
// the UI can render `🜂 Caronte: …` headers.
|
|
167
|
+
appendOrExtendStreamingAssistant(commitStreaming, streamContent, Date.now(), {
|
|
168
|
+
...(event.memberId ? { memberId: event.memberId } : {}),
|
|
169
|
+
...(event.memberName ? { memberName: event.memberName } : {}),
|
|
170
|
+
});
|
|
145
171
|
}
|
|
146
172
|
else if (event.type === 'error') {
|
|
173
|
+
flushStreaming();
|
|
147
174
|
appendSystem(setMessages, `[error] ${event.message}`, Date.now());
|
|
148
175
|
}
|
|
149
|
-
else if (event.type === 'tool_call') {
|
|
150
|
-
appendSystem(setMessages, `[tool_call] ${event.toolName}(${JSON.stringify(event.arguments).slice(0, 80)})`, event.ts);
|
|
151
|
-
}
|
|
152
|
-
else if (event.type === 'tool_result') {
|
|
153
|
-
appendSystem(setMessages, `[tool_result] ${event.toolName} → ${event.ok ? 'ok' : 'error'}`, event.ts);
|
|
154
|
-
}
|
|
155
176
|
else if (event.type === 'tool_execution_start') {
|
|
156
|
-
|
|
177
|
+
toolNameById.set(event.toolCallId, event.toolName);
|
|
178
|
+
// Drain buffered deltas FIRST so the text streamed before the
|
|
179
|
+
// call renders above the tool line, not below it — then seal
|
|
180
|
+
// that bubble: it's complete once the model starts calling tools.
|
|
181
|
+
flushStreaming();
|
|
182
|
+
finalizeStreamingAssistant(setMessages);
|
|
183
|
+
appendToolStart(setMessages, event.toolName, event.toolCallId, event.args, event.ts);
|
|
157
184
|
}
|
|
158
185
|
else if (event.type === 'tool_execution_end') {
|
|
159
|
-
|
|
186
|
+
updateToolMessageEnd(setMessages, event.toolCallId, event.isError, event.durationMs, event.result);
|
|
160
187
|
}
|
|
161
188
|
}
|
|
162
189
|
}
|
|
163
190
|
finally {
|
|
191
|
+
// Drain any buffered streaming deltas so the final assistant message
|
|
192
|
+
// is committed before busy flips to false (and the input re-enables).
|
|
193
|
+
flushStreaming();
|
|
194
|
+
finalizeStreamingAssistant(setMessages);
|
|
164
195
|
harnessRef.current = null;
|
|
165
196
|
setQueueCount(0);
|
|
166
197
|
setBusy(false);
|
|
@@ -172,19 +203,24 @@ export function useChatTurn(params) {
|
|
|
172
203
|
// resolveFailoverStream / AgentHarness construction that were
|
|
173
204
|
// previously escaping the function unhandled. Surfaces the error
|
|
174
205
|
// to the chat instead of hanging silently.
|
|
206
|
+
// Flush first so any partial assistant content streamed before the
|
|
207
|
+
// throw is committed before the error message renders.
|
|
208
|
+
flushStreaming();
|
|
175
209
|
appendSystem(setMessages, `[dispatch error] ${err instanceof Error ? err.message : String(err)}`);
|
|
176
210
|
setBusy(false);
|
|
177
211
|
}
|
|
178
|
-
}, [sessionId, writerRef, setMessages, setBusy, setSessionActive, setSessionStats]);
|
|
212
|
+
}, [sessionId, writerRef, setMessages, commitStreaming, flushStreaming, setBusy, setSessionActive, setSessionStats]);
|
|
179
213
|
const dispatchCouncilPrompt = useCallback(async (text) => {
|
|
180
214
|
await dispatchCouncilPromptImpl(text, {
|
|
181
215
|
sessionId,
|
|
182
216
|
writerRef,
|
|
183
217
|
setMessages,
|
|
218
|
+
commitStreaming,
|
|
219
|
+
flushStreaming,
|
|
184
220
|
setBusy,
|
|
185
221
|
setQueueCount,
|
|
186
222
|
});
|
|
187
|
-
}, [sessionId, writerRef, setMessages, setBusy, setQueueCount]);
|
|
223
|
+
}, [sessionId, writerRef, setMessages, commitStreaming, flushStreaming, setBusy, setQueueCount]);
|
|
188
224
|
return { dispatchPrompt, dispatchCouncilPrompt, harnessRef, queueCount, setQueueCount };
|
|
189
225
|
}
|
|
190
226
|
/**
|
|
@@ -199,7 +235,7 @@ export function useChatTurn(params) {
|
|
|
199
235
|
* useChatTurn wrapper.
|
|
200
236
|
*/
|
|
201
237
|
async function dispatchCouncilPromptImpl(text, deps) {
|
|
202
|
-
const { sessionId, writerRef, setMessages, setBusy } = deps;
|
|
238
|
+
const { sessionId, writerRef, setMessages, commitStreaming, flushStreaming, setBusy } = deps;
|
|
203
239
|
const envConfig = await providerFromEnv();
|
|
204
240
|
if (!envConfig) {
|
|
205
241
|
appendSystem(setMessages, 'OPENAI_API_KEY not set. Export it before invoking /council.');
|
|
@@ -210,7 +246,7 @@ async function dispatchCouncilPromptImpl(text, deps) {
|
|
|
210
246
|
const { dispatchCouncil } = await import('../councilDispatcher.js');
|
|
211
247
|
const { createWorkspaceContext, createWorkspaceStubs } = await import('../workspace/stubs.js');
|
|
212
248
|
const { createWorkspaceToolRegistry } = await import('../workspace/toolRegistry.js');
|
|
213
|
-
const { setWorkspaceStubs } = await import('
|
|
249
|
+
const { setWorkspaceStubs } = await import('@zelari/core/skills');
|
|
214
250
|
const { runPostCouncilHook } = await import('../workspace/postCouncilHook.js');
|
|
215
251
|
const { FeedbackStore } = await import('../councilFeedback.js');
|
|
216
252
|
const { registry: councilToolRegistry } = createBuiltinToolRegistry();
|
|
@@ -237,48 +273,68 @@ async function dispatchCouncilPromptImpl(text, deps) {
|
|
|
237
273
|
await writerRef.current.append(event);
|
|
238
274
|
}
|
|
239
275
|
if (event.type === 'message_delta') {
|
|
240
|
-
// Coalesce streaming assistant content
|
|
241
|
-
|
|
276
|
+
// Coalesce streaming assistant content through the throttled setter so
|
|
277
|
+
// per-token deltas don't flicker the TUI (same as dispatchPrompt).
|
|
278
|
+
// v0.5.0: forward the council member identity when present so
|
|
279
|
+
// the UI can render `🜂 Caronte: …` headers above the streamed
|
|
280
|
+
// text. Extend the trailing streaming bubble only when it belongs
|
|
281
|
+
// to the SAME member — otherwise one specialist's text would be
|
|
282
|
+
// appended to (and attributed to) the previous one.
|
|
283
|
+
commitStreaming((prev) => {
|
|
242
284
|
const last = prev[prev.length - 1];
|
|
243
|
-
if (last &&
|
|
285
|
+
if (last &&
|
|
286
|
+
last.role === 'assistant' &&
|
|
287
|
+
last.id.startsWith('streaming-') &&
|
|
288
|
+
(last.memberId ?? null) === (event.memberId ?? null)) {
|
|
244
289
|
return [...prev.slice(0, -1), { ...last, content: last.content + event.delta }];
|
|
245
290
|
}
|
|
246
291
|
return [
|
|
247
292
|
...prev,
|
|
248
|
-
{
|
|
293
|
+
{
|
|
294
|
+
id: `streaming-${crypto.randomUUID()}`,
|
|
295
|
+
role: 'assistant',
|
|
296
|
+
content: event.delta,
|
|
297
|
+
ts: event.ts,
|
|
298
|
+
...(event.memberId ? { memberId: event.memberId } : {}),
|
|
299
|
+
...(event.memberName ? { memberName: event.memberName } : {}),
|
|
300
|
+
},
|
|
249
301
|
];
|
|
250
302
|
});
|
|
251
303
|
}
|
|
304
|
+
else if (event.type === 'message_end') {
|
|
305
|
+
// Member/turn boundary: drain buffered deltas and seal the bubble so
|
|
306
|
+
// the next streamed message starts fresh.
|
|
307
|
+
flushStreaming();
|
|
308
|
+
finalizeStreamingAssistant(setMessages);
|
|
309
|
+
}
|
|
252
310
|
else if (event.type === 'tool_execution_start') {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
//
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
role: 'tool',
|
|
261
|
-
content: `${event.toolName}(${argsPreview})`,
|
|
262
|
-
ts: event.ts,
|
|
263
|
-
toolName: event.toolName,
|
|
264
|
-
toolCallId: event.toolCallId,
|
|
265
|
-
toolOk: undefined,
|
|
266
|
-
toolDurationMs: undefined,
|
|
267
|
-
},
|
|
268
|
-
]);
|
|
311
|
+
// Single 'tool' role message per invocation (CollapsibleToolOutput);
|
|
312
|
+
// the previous extra `▶ name(args)` system line duplicated it.
|
|
313
|
+
// Drain buffered deltas first so ordering matches reality, and seal
|
|
314
|
+
// the pre-tool bubble (complete once the member starts calling tools).
|
|
315
|
+
flushStreaming();
|
|
316
|
+
finalizeStreamingAssistant(setMessages);
|
|
317
|
+
appendToolStart(setMessages, event.toolName, event.toolCallId, event.args, event.ts);
|
|
269
318
|
}
|
|
270
319
|
else if (event.type === 'tool_execution_end') {
|
|
271
|
-
updateToolMessageEnd(setMessages, event.toolCallId, event.isError, event.durationMs);
|
|
320
|
+
updateToolMessageEnd(setMessages, event.toolCallId, event.isError, event.durationMs, event.result);
|
|
272
321
|
}
|
|
273
322
|
else if (event.type === 'error') {
|
|
323
|
+
flushStreaming();
|
|
274
324
|
appendSystem(setMessages, `[error] ${event.message}`, event.ts);
|
|
275
325
|
}
|
|
276
326
|
}
|
|
277
327
|
}
|
|
278
328
|
catch (err) {
|
|
329
|
+
// Flush any partial streamed content before the error message renders.
|
|
330
|
+
flushStreaming();
|
|
279
331
|
appendSystem(setMessages, `[council error] ${err instanceof Error ? err.message : String(err)}`, Date.now());
|
|
280
332
|
}
|
|
281
333
|
finally {
|
|
334
|
+
// Drain any buffered streaming deltas before status messages / busy flip,
|
|
335
|
+
// so the final council output is committed to the chat.
|
|
336
|
+
flushStreaming();
|
|
337
|
+
finalizeStreamingAssistant(setMessages);
|
|
282
338
|
try {
|
|
283
339
|
const hook = await runPostCouncilHook(workspaceCtx);
|
|
284
340
|
if (hook.ran && hook.changed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatTurn.js","sourceRoot":"","sources":["../../../src/cli/hooks/useChatTurn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useChatTurn.js","sourceRoot":"","sources":["../../../src/cli/hooks/useChatTurn.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,20 @@
|
|
|
2
2
|
// from app.tsx. Runtime is correct; tighten signatures in a follow-up.
|
|
3
3
|
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
4
4
|
import { getCurrentSessionId, setCurrentSessionId, clearCurrentSessionId, newSessionId, ensureSessionDir, listSessions, loadSessionEvents, } from '../sessionManager.js';
|
|
5
|
-
import { SessionJsonlWriter } from '
|
|
5
|
+
import { SessionJsonlWriter } from '@zelari/core/harness';
|
|
6
6
|
import { eventsToMessages } from './eventsToMessages.js';
|
|
7
|
+
import { useBatchedMessages } from './useBatchedMessages.js';
|
|
7
8
|
export function useSession() {
|
|
8
9
|
const [sessionId, setSessionId] = useState('');
|
|
9
10
|
const [messages, setMessages] = useState([]);
|
|
10
11
|
const [sessionActive, setSessionActive] = useState(false);
|
|
11
12
|
const writerRef = useRef(null);
|
|
13
|
+
// Throttle layer over `messages`/`setMessages`. `commitStreaming` coalesces
|
|
14
|
+
// the per-token streaming deltas (the LLM emits ~50-200/sec) into at most
|
|
15
|
+
// one render per ~16ms, which lets `React.memo(ChatStream)` finally take
|
|
16
|
+
// effect. `setMessages` is the passthrough — non-streaming calls (bootstrap
|
|
17
|
+
// restore, /new reset, system/error messages) apply instantly.
|
|
18
|
+
const { commit: commitStreaming, flush: flushStreaming } = useBatchedMessages(messages, setMessages);
|
|
12
19
|
// Bootstrap on mount: resume current session or create new one.
|
|
13
20
|
useEffect(() => {
|
|
14
21
|
let cancelled = false;
|
|
@@ -98,6 +105,8 @@ export function useSession() {
|
|
|
98
105
|
setSessionId,
|
|
99
106
|
messages,
|
|
100
107
|
setMessages,
|
|
108
|
+
commitStreaming,
|
|
109
|
+
flushStreaming,
|
|
101
110
|
sessionActive,
|
|
102
111
|
setSessionActive,
|
|
103
112
|
writerRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSession.js","sourceRoot":"","sources":["../../../src/cli/hooks/useSession.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,uEAAuE;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useSession.js","sourceRoot":"","sources":["../../../src/cli/hooks/useSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,10 @@ import { handleSlashCommand } from '../slashCommands.js';
|
|
|
5
5
|
import { appendSystem, appendUser } from './messageHelpers.js';
|
|
6
6
|
import { sessionKindRouter } from '../sessionManager.js';
|
|
7
7
|
import { newSessionId } from '../sessionManager.js';
|
|
8
|
-
import { handleDiff, handleUndo
|
|
8
|
+
import { handleDiff, handleUndo } from '../slashHandlers/git.js';
|
|
9
|
+
import { handleCompact } from '../slashHandlers/transcript.js';
|
|
10
|
+
import { handleUpdateCheck, handleUpdatePerform } from '../slashHandlers/updater.js';
|
|
11
|
+
import { handlePromoteMember } from '../slashHandlers/promoteMember.js';
|
|
9
12
|
import { handleBranchCreate, handleBranchList, handleBranchCheckout, } from '../slashHandlers/branch.js';
|
|
10
13
|
import { handleWorkspaceShow, handleWorkspaceSync, handleWorkspaceReset, } from '../slashHandlers/workspace.js';
|
|
11
14
|
import { handleProviderList, handleProviderSet, handleProviderCustom, handleProviderRefresh, handleProviderStatus, handleLoginKey, handleLoginOAuthGrok, handleModelShow, handleModelSet, handleModelsList, handleModelsRefresh, } from '../slashHandlers/provider.js';
|