15 lines
492 B
TypeScript
15 lines
492 B
TypeScript
export interface AiMessageCopyCandidate {
|
|
role: "user" | "assistant";
|
|
content: string;
|
|
}
|
|
|
|
/**
|
|
* Keeps message-level copy payloads scoped to the original message body.
|
|
* Reasoning, tool activity, mentions, and rendered HTML live outside this
|
|
* contract and must not be appended by the caller.
|
|
*/
|
|
export function resolveAiMessageCopyText(message: AiMessageCopyCandidate, streaming: boolean): string | null {
|
|
if (!message.content || streaming) return null;
|
|
return message.content;
|
|
}
|