import { getContext, setContext } from 'svelte'; export interface ChatActionsContext { copy: (message: DatabaseMessage) => void; delete: (message: DatabaseMessage) => void; navigateToSibling: (siblingId: string) => void; editWithBranching: ( message: DatabaseMessage, newContent: string, newExtras?: DatabaseMessageExtra[] ) => void; editWithReplacement: ( message: DatabaseMessage, newContent: string, shouldBranch: boolean ) => void; editUserMessagePreserveResponses: ( message: DatabaseMessage, newContent: string, newExtras?: DatabaseMessageExtra[] ) => void; regenerateWithBranching: (message: DatabaseMessage, modelOverride?: string) => void; continueAssistantMessage: (message: DatabaseMessage) => void; } const CHAT_ACTIONS_KEY = Symbol.for('chat-actions'); export function setChatActionsContext(ctx: ChatActionsContext): ChatActionsContext { return setContext(CHAT_ACTIONS_KEY, ctx); } export function getChatActionsContext(): ChatActionsContext { return getContext(CHAT_ACTIONS_KEY); }