Spaces:
Sleeping
Sleeping
| export interface BentoCardData { | |
| id: string; | |
| title: string; | |
| summary: string; | |
| type: 'stat' | 'concept' | 'quote' | 'insight' | 'process'; | |
| colSpan: number; // 1 to 4 | |
| rowSpan: number; // 1 to 2 | |
| detailPrompt: string; // The prompt to send to the AI to get more details | |
| mermaid?: string; // Mermaid JS diagram definition | |
| expandedContent?: string; | |
| isLoadingDetails?: boolean; | |
| rating?: number; | |
| feedback?: string; | |
| } | |
| export interface ChatMessage { | |
| id: string; | |
| role: 'user' | 'model' | 'system'; | |
| text: string; | |
| timestamp: number; | |
| } | |
| // Model types | |
| export type GeminiModel = 'gemini-2.5-flash' | 'gemini-3-pro-preview'; | |
| // ADHD-Friendly Reading Preferences | |
| export interface ReadingPreferences { | |
| bionicReading: boolean; | |
| eli5Mode: boolean; // Simple language mode | |
| highlightKeyTerms: boolean; | |
| ttsEnabled: boolean; | |
| ttsSpeed: number; // 0.5 to 2.0 | |
| } | |
| export interface AppSettings { | |
| apiKey: string; | |
| model: GeminiModel; | |
| theme: 'light' | 'dark'; | |
| layoutMode: 'auto' | 'grid' | 'list'; | |
| useThinking: boolean; | |
| readingPreferences: ReadingPreferences; | |
| } | |
| // Confidence level for AI-generated content | |
| export type ConfidenceLevel = 'direct-quote' | 'paraphrase' | 'synthesis' | 'interpretation'; | |
| // Source anchor for zero-latency verification | |
| export interface SourceAnchor { | |
| id: string; | |
| claimText: string; | |
| sourceText: string; | |
| pageNumber?: number; | |
| confidence: ConfidenceLevel; | |
| highlightColor: string; | |
| } | |
| export interface ProcessingStatus { | |
| state: 'idle' | 'reading' | 'analyzing' | 'generating' | 'complete' | 'error'; | |
| message?: string; | |
| } | |
| // Progressive Disclosure Layers (ADHD-Friendly) | |
| export interface ContentLayers { | |
| // Layer 1: Tweet-length core thesis (< 280 chars) | |
| thesis: string; | |
| // Layer 2: Key takeaways (3-5 bullet points) | |
| takeaways: string[]; | |
| // Layer 3: Full detailed content (markdown) | |
| detailed: string; | |
| // ELI5 version for simple language mode | |
| eli5Content?: string; | |
| } | |
| // Blog View Types | |
| export interface BlogSection { | |
| id: string; | |
| title: string; | |
| content: string; // Markdown (Layer 3 - detailed) | |
| // Progressive disclosure layers | |
| layers?: ContentLayers; | |
| visualizationType?: 'mermaid' | 'chart' | 'equation' | 'none'; | |
| visualizationData?: string; | |
| chartData?: ChartData; | |
| marginNotes?: MarginNote[]; | |
| technicalTerms?: TechnicalTerm[]; | |
| collapsibleSections?: CollapsibleContent[]; | |
| isLoading?: boolean; | |
| error?: string; | |
| // Validation status | |
| validationStatus?: ValidationStatus; | |
| // Source anchors for verification | |
| sourceAnchors?: SourceAnchor[]; | |
| } | |
| export interface ValidationStatus { | |
| isValidated: boolean; | |
| contentRelevance: ValidationResult; | |
| visualizationValidity: ValidationResult; | |
| overallScore: number; // 0-100 | |
| wasRepaired?: boolean; | |
| repairAttempts?: number; | |
| } | |
| export interface ValidationResult { | |
| passed: boolean; | |
| score: number; // 0-100 | |
| issues: string[]; | |
| suggestions?: string[]; | |
| } | |
| export interface ValidationStatus { | |
| isValidated: boolean; | |
| contentRelevance: ValidationResult; | |
| visualizationValidity: ValidationResult; | |
| overallScore: number; // 0-100 | |
| wasRepaired?: boolean; | |
| repairAttempts?: number; | |
| } | |
| export interface ValidationResult { | |
| passed: boolean; | |
| score: number; // 0-100 | |
| issues: string[]; | |
| suggestions?: string[]; | |
| } | |
| // Structure plan from paper analysis | |
| export interface SectionPlan { | |
| id: string; | |
| title: string; | |
| sectionType: 'intro' | 'background' | 'methodology' | 'results' | 'analysis' | 'applications' | 'conclusion' | 'custom'; | |
| focusPoints: string[]; // Key points to cover | |
| suggestedVisualization: 'mermaid' | 'chart' | 'equation' | 'none'; | |
| visualizationHint?: string; // What to visualize | |
| estimatedLength: 'short' | 'medium' | 'long'; | |
| } | |
| export interface PaperStructure { | |
| paperTitle: string; | |
| paperAbstract: string; | |
| mainContribution: string; | |
| sections: SectionPlan[]; | |
| keyTerms: string[]; // Important terms across the paper | |
| } | |
| export interface MarginNote { | |
| id: string; | |
| text: string; | |
| icon?: 'info' | 'warning' | 'tip' | 'note'; | |
| } | |
| export interface TechnicalTerm { | |
| term: string; | |
| definition: string; | |
| highlightColor?: string; // Consistent color for this term throughout | |
| } | |
| export interface CollapsibleContent { | |
| id: string; | |
| title: string; | |
| content: string; | |
| } | |
| // Interactive Chart Types (Playable Visualizations) | |
| export interface ChartData { | |
| type: 'bar' | 'line' | 'pie' | 'scatter' | 'area'; | |
| title: string; | |
| data: Array<{ label: string; value: number; [key: string]: any }>; | |
| xAxis?: string; | |
| yAxis?: string; | |
| colors?: string[]; | |
| // Interactive features | |
| interactive?: { | |
| enableSliders?: boolean; | |
| sliderConfig?: SliderConfig[]; | |
| enableToggles?: boolean; | |
| toggleableDatasets?: string[]; | |
| }; | |
| } | |
| // Slider configuration for interactive charts | |
| export interface SliderConfig { | |
| id: string; | |
| label: string; | |
| min: number; | |
| max: number; | |
| step: number; | |
| defaultValue: number; | |
| affectsVariable: string; // Which variable this slider modifies | |
| } | |
| export type ViewMode = 'grid' | 'blog'; | |
| // Text-to-Speech state | |
| export interface TTSState { | |
| isPlaying: boolean; | |
| currentSectionId: string | null; | |
| currentWordIndex: number; | |
| speed: number; | |
| } | |
| // Wayfinding / Progress tracking | |
| export interface ReadingProgress { | |
| sectionId: string; | |
| percentComplete: number; | |
| timeSpent: number; // in seconds | |
| } | |