diff --git a/src/lib/stores/index.ts b/src/lib/stores/index.ts index 038c34195..1d1826e3f 100644 --- a/src/lib/stores/index.ts +++ b/src/lib/stores/index.ts @@ -3,8 +3,8 @@ import { type Writable, writable } from 'svelte/store'; // Backend export const WEBUI_NAME = writable(APP_NAME); -export const config = writable(undefined); -export const user = writable(undefined); +export const config: Writable = writable(undefined); +export const user: Writable = writable(undefined); // Frontend export const MODEL_DOWNLOAD_POOL = writable({}); @@ -17,7 +17,7 @@ export const tags = writable([]); export const models: Writable = writable([]); export const modelfiles = writable([]); -export const prompts = writable([]); +export const prompts: Writable = writable([]); export const documents = writable([ { collection_name: 'collection_name', @@ -33,7 +33,7 @@ export const documents = writable([ } ]); -export const settings = writable({}); +export const settings: Writable = writable({}); export const showSettings = writable(false); export const showChangelog = writable(false); @@ -44,7 +44,7 @@ type OpenAIModel = { name: string; external: boolean; source?: string; -} +}; type OllamaModel = { id: string; @@ -57,13 +57,85 @@ type OllamaModel = { model: string; modified_at: string; digest: string; -} +}; type OllamaModelDetails = { - parent_model: string; - format: string; - family: string; - families: string[] | null; - parameter_size: string; - quantization_level: string; + parent_model: string; + format: string; + family: string; + families: string[] | null; + parameter_size: string; + quantization_level: string; +}; + +type Settings = { + models?: string[]; + conversationMode?: boolean; + speechAutoSend?: boolean; + responseAutoPlayback?: boolean; + audio?: AudioSettings; + showUsername?: boolean; + saveChatHistory?: boolean; + notificationEnabled?: boolean; + title?: TitleSettings; + + system?: string; + requestFormat?: string; + keepAlive?: string; + seed?: number; + temperature?: string; + repeat_penalty?: string; + top_k?: string; + top_p?: string; + num_ctx?: string; + options?: ModelOptions; +}; + +type ModelOptions = { + stop?: boolean; +}; + +type AudioSettings = { + STTEngine?: string; + TTSEngine?: string; + speaker?: string; +}; + +type TitleSettings = { + auto?: boolean; + model?: string; + modelExternal?: string; + prompt?: string; +}; + +type Prompt = { + command: string; + user_id: string; + title: string; + content: string; + timestamp: number; +}; + +type Config = { + status?: boolean; + name?: string; + version?: string; + default_locale?: string; + images?: boolean; + default_models?: string[]; + default_prompt_suggestions?: PromptSuggestion[]; + trusted_header_auth?: boolean; +}; + +type PromptSuggestion = { + content: string; + title: [string, string]; +}; + +type SessionUser = { + id: string; + email: string; + name: string; + role: string; + profile_image_url: string; };