File size: 1,065 Bytes
31dd200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
28
29
30
31
32
33
34
35
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);
}