utils.ts60 lines · main
1enum MessageRole {
2 User = 'user',
3 Assistant = 'assistant',
4}
5
6enum MessageStatus {
7 Pending = 'pending',
8 InProgress = 'in-progress',
9 Complete = 'complete',
10}
11
12interface SourceLink {
13 path: string
14 url: string
15}
16
17interface Message {
18 role: MessageRole
19 content: string
20 status: MessageStatus
21 idempotencyKey?: number
22 sources?: SourceLink[]
23}
24
25interface NewMessageAction {
26 type: 'new'
27 message: Message
28}
29
30interface UpdateMessageAction {
31 type: 'update'
32 index: number
33 message: Partial<Message>
34}
35
36interface AppendContentAction {
37 type: 'append-content'
38 index: number
39 content: string
40 idempotencyKey: number
41}
42
43interface ResetAction {
44 type: 'reset'
45}
46
47interface FinalizeWithSourcesAction {
48 type: 'finalize-with-sources'
49 index: number
50}
51
52type MessageAction =
53 | NewMessageAction
54 | UpdateMessageAction
55 | AppendContentAction
56 | ResetAction
57 | FinalizeWithSourcesAction
58
59export { MessageRole, MessageStatus }
60export type { Message, MessageAction, SourceLink }