export type WenfanHistoryMessage = { role: string; content?: string; }; export type WenfanConversationRecord = { id: string; title: string; messages: TMessage[]; }; const DEFAULT_CONVERSATION_TITLE = '新对话'; function getConversationTitle(messages: TMessage[]): string { const firstQuestion = messages.find((message) => message.role === 'user' && message.content?.trim()); return firstQuestion?.content?.trim() || DEFAULT_CONVERSATION_TITLE; } export function createWenfanConversationRecord( id: string, messages: TMessage[], ): WenfanConversationRecord { return { id, title: getConversationTitle(messages), messages, }; } export function updateWenfanConversationRecord( records: WenfanConversationRecord[], activeId: string | null | undefined, messages: TMessage[], ): WenfanConversationRecord[] { if (!activeId) return records; return records.map((record) => record.id === activeId ? { ...record, title: getConversationTitle(messages), messages, } : record, ); } export function deleteWenfanConversationRecord( records: WenfanConversationRecord[], id: string, ): WenfanConversationRecord[] { return records.filter((record) => record.id !== id); }