63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
export enum AppModule {
|
|
// CS Domains
|
|
MATH = 'math', // Mathematics
|
|
THEORY = 'theory', // Theory of Computation
|
|
PRINCIPLES = 'principles', // Computer Architecture (formerly Principles)
|
|
SOFT_ENG = 'soft_eng', // Software Engineering
|
|
GRAPHICS = 'graphics', // Computer Graphics
|
|
NETWORK = 'network', // Computer Networks
|
|
AI_LAB = 'ai_lab', // Artificial Intelligence
|
|
|
|
// Tools
|
|
RESEARCH = 'research', // Search Grounding
|
|
|
|
// Creative
|
|
VISION = 'vision', // Image Gen & Analysis
|
|
STUDIO = 'studio', // Video Gen & Analysis
|
|
AUDIO = 'audio' // TTS & Transcribe
|
|
}
|
|
|
|
export enum MessageRole {
|
|
USER = 'user',
|
|
MODEL = 'model',
|
|
SYSTEM = 'system'
|
|
}
|
|
|
|
export interface Message {
|
|
id: string;
|
|
role: MessageRole;
|
|
text?: string;
|
|
images?: string[]; // base64
|
|
audio?: string; // base64
|
|
video?: string; // uri or base64
|
|
timestamp: number;
|
|
isThinking?: boolean;
|
|
thoughtProcess?: string;
|
|
sources?: { uri: string; title: string }[];
|
|
}
|
|
|
|
export interface Session {
|
|
id: string;
|
|
title: string;
|
|
module: AppModule;
|
|
messages: Message[];
|
|
createdAt: number;
|
|
updatedAt: number;
|
|
}
|
|
|
|
export interface AppSettings {
|
|
apiKey: string;
|
|
language: 'en' | 'ja' | 'zh-CN' | 'zh-TW';
|
|
theme: 'light' | 'dark' | 'system';
|
|
hasCompletedOnboarding: boolean;
|
|
}
|
|
|
|
export interface VeoConfig {
|
|
aspectRatio: '16:9' | '9:16';
|
|
resolution: '720p' | '1080p';
|
|
}
|
|
|
|
export interface ImageConfig {
|
|
size: '1K' | '2K' | '4K';
|
|
aspectRatio: '1:1' | '3:4' | '4:3' | '16:9' | '9:16';
|
|
} |