src/ui/chat-tester-feedback.js
Rama main · réplica de lectura del repositorio original.
export const INITIAL_CHAT_TESTER_FEEDBACK = Object.freeze({
phase: "Ready",
receivedText: false,
turnStatus: "waiting",
});
export function nextChatTesterFeedback(current, event) {
if (event.type === "send") {
return { phase: "Sending", receivedText: false, turnStatus: "waiting" };
}
if (event.type === "accepted") {
return { ...current, phase: "Connecting" };
}
if (event.type === "progress") {
if (current.receivedText) return { ...current };
const waiting = current.phase === "Waiting" || event.upstreamPhase === "working";
return { ...current, phase: waiting ? "Waiting" : "Connecting" };
}
if (event.type === "delta") {
if (event.text.length === 0) return { ...current };
return { phase: "Streaming", receivedText: true, turnStatus: "streaming" };
}
if (event.type === "complete") {
return { ...current, phase: "Complete", turnStatus: "complete" };
}
if (event.type === "failed") {
return {
...current,
phase: "Failed",
turnStatus: current.receivedText ? "incomplete" : "failed",
};
}
if (event.type === "stopping") {
return { ...current, phase: "Stopping", turnStatus: "stopped" };
}
if (event.type === "stopped") {
return { ...current, phase: "Stopped", turnStatus: "stopped" };
}
return { ...current };
}