You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.8 KiB
TypeScript
50 lines
1.8 KiB
TypeScript
import type { UIMessage } from "ai";
|
|
import type { generateText } from "ai";
|
|
import type { Conversation, Fact, FactTrigger } from "./database/common";
|
|
|
|
export type OtherParameters = Omit<
|
|
Parameters<typeof generateText>[0],
|
|
"model" | "messages" | "abortSignal"
|
|
>;
|
|
|
|
export type ConversationUI = Conversation & {};
|
|
|
|
export type Store = {
|
|
/** This is a string because Milvus sends it as a string, and the value
|
|
* overflows the JS integer anyway. */
|
|
selectedConversationId: string;
|
|
conversations: Array<ConversationUI>;
|
|
messages: Array<DraftMessage | CommittedMessage>;
|
|
message: string;
|
|
systemPrompt: string;
|
|
parameters: OtherParameters;
|
|
facts: Array<Fact>;
|
|
factTriggers: Array<FactTrigger>;
|
|
loading: boolean;
|
|
setConversationId: (conversationId: string) => void;
|
|
setConversationTitle: (conversationTitle: string) => void;
|
|
setConversations: (conversations: Array<ConversationUI>) => void;
|
|
addConversation: (conversation: ConversationUI) => void;
|
|
removeConversation: (conversationId: string) => void;
|
|
setMessages: (messages: Array<DraftMessage | CommittedMessage>) => void;
|
|
setMessage: (message: string) => void;
|
|
setSystemPrompt: (systemPrompt: string) => void;
|
|
setParameters: (parameters: OtherParameters) => void;
|
|
setFacts: (facts: Array<Fact>) => void;
|
|
setFactTriggers: (factTriggers: Array<FactTrigger>) => void;
|
|
removeFact: (factId: string) => void;
|
|
removeFactTrigger: (factTriggerId: string) => void;
|
|
setLoading: (loading: boolean) => void;
|
|
};
|
|
|
|
/** The message while it's being typed in the input box. */
|
|
export type DraftMessage = Omit<UIMessage, "id" | "createdAt">;
|
|
/** The message after it's been saved to the database. */
|
|
export type CommittedMessage = DraftMessage & {
|
|
id: string;
|
|
conversationId: string;
|
|
index: number;
|
|
runningSummary?: string;
|
|
createdAt: string;
|
|
};
|