Spaces:
Paused
Paused
File size: 954 Bytes
ded72f6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import type { Message } from "$lib/types/Message";
import { MessageUpdateStatus, MessageUpdateType } from "$lib/types/MessageUpdate";
export function isAssistantGenerationTerminal(message?: Message): boolean {
if (!message || message.from !== "assistant") return true;
if (message.interrupted === true) return true;
const updates = message.updates ?? [];
const hasFinalAnswer = updates.some((update) => update.type === MessageUpdateType.FinalAnswer);
if (hasFinalAnswer) return true;
return updates.some(
(update) =>
update.type === MessageUpdateType.Status &&
(update.status === MessageUpdateStatus.Error ||
update.status === MessageUpdateStatus.Finished)
);
}
export function isConversationGenerationActive(messages: Message[]): boolean {
const lastAssistant = [...messages].reverse().find((message) => message.from === "assistant");
if (!lastAssistant) return false;
return !isAssistantGenerationTerminal(lastAssistant);
}
|