@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
67 lines (57 loc) • 1.51 kB
text/typescript
import { DeepPartial } from 'utility-types';
import { z } from 'zod';
import { TopicDisplayMode } from '@/types/topic';
import { UserSettings } from '@/types/user/settings';
export interface LobeUser {
avatar?: string;
email?: string | null;
firstName?: string | null;
fullName?: string | null;
id: string;
latestName?: string | null;
username?: string | null;
}
export const UserGuideSchema = z.object({
/**
* Move the settings button to the avatar dropdown
*/
moveSettingsToAvatar: z.boolean().optional(),
/**
* Topic Guide
*/
topic: z.boolean().optional(),
/**
* tell user that uploaded files can be found in knowledge base
*/
uploadFileInKnowledgeBase: z.boolean().optional(),
});
export type UserGuide = z.infer<typeof UserGuideSchema>;
export interface UserPreference {
guide?: UserGuide;
hideSyncAlert?: boolean;
telemetry: boolean | null;
topicDisplayMode?: TopicDisplayMode;
/**
* whether to use cmd + enter to send message
*/
useCmdEnterToSend?: boolean;
}
export interface UserInitializationState {
avatar?: string;
canEnablePWAGuide?: boolean;
canEnableTrace?: boolean;
email?: string;
firstName?: string;
fullName?: string;
hasConversation?: boolean;
isOnboard?: boolean;
lastName?: string;
preference: UserPreference;
settings: DeepPartial<UserSettings>;
userId?: string;
username?: string;
}
export const NextAuthAccountSchame = z.object({
provider: z.string(),
providerAccountId: z.string(),
});