Ctrl K
ComunidadGuías…

src/ui/chat-tester-feedback.js

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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 };
}