Files
ai-app-ckg/types.ts
2025-12-25 16:39:44 +08:00

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';
}