File size: 1,722 Bytes
fd4dc0d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | export enum NoteType {
ROOT = 'ROOT',
TEXT = 'TEXT',
CODE = 'CODE',
IMAGE = 'IMAGE',
}
export enum GenerationStatus {
IDLE = 'IDLE',
PLANNING = 'PLANNING',
GENERATING = 'GENERATING',
COMPLETED = 'COMPLETED',
ERROR = 'ERROR',
}
export interface NoteStep {
title: string;
description: string;
type: 'text' | 'code' | 'image';
agentRole?: string;
assignedAgent?: string;
}
export interface ProjectPlan {
title: string;
summary: string;
steps: NoteStep[];
}
export interface Category {
id: string;
name: string;
color: string;
}
export interface Attachment {
id: string;
type: 'image' | 'audio' | 'file';
url: string; // Base64 data URL
name: string;
}
export interface Note {
id: string;
projectId: string;
parentId: string | null;
title: string;
content: string; // Markdown or Image URL
type: NoteType;
status: GenerationStatus;
children: string[]; // IDs of children
timestamp: number;
attachments?: Attachment[];
tags?: string[];
linkedNoteIds?: string[];
isTask?: boolean;
isCompleted?: boolean;
dueDate?: number;
agentRole?: string;
assignedAgent?: string;
lastEditedBy?: string;
lastEditedAt?: number;
}
export interface StyleMemory {
id: string;
userId: string;
projectName: string;
styleKeywords: string[];
summary: string;
timestamp: number;
}
export interface AITemplate {
id: string;
name: string;
prompt: string;
icon: string;
}
export interface Project {
id: string;
title: string;
summary?: string;
originalPrompt?: string;
rootNoteId: string;
createdAt: number;
categoryId?: string;
creatorId: string;
creatorEmail?: string;
collaborators?: string[]; // Array of user IDs
}
|