Rend les liens entre notes visibles et persistants (sync NoteLink au save, auto-save, graphe réseau rafraîchi), ajoute living blocks, Memory Echo, recherche globale, consentement IA explicite et consolide les prototypes design en architectural-grid. Co-authored-by: Cursor <cursoragent@cursor.com>
154 lines
3.4 KiB
TypeScript
154 lines
3.4 KiB
TypeScript
export type NavigationView = 'notebooks' | 'agents' | 'settings' | 'shared' | 'reminders' | 'trash' | 'brainstorm' | 'insights' | 'temporal' | 'graph' | 'revision';
|
|
export type AITone = 'Professional' | 'Creative' | 'Academic' | 'Casual';
|
|
export type AITab = 'infos' | 'versions' | 'relations' | 'discussion' | 'actions' | 'resources' | 'explore';
|
|
export type SettingsTab = 'general' | 'ai' | 'billing' | 'appearance' | 'profile' | 'data' | 'mcp' | 'about';
|
|
|
|
export interface Tag {
|
|
id: string;
|
|
label: string;
|
|
type: 'ai' | 'user';
|
|
}
|
|
|
|
export interface Attachment {
|
|
id: string;
|
|
name: string;
|
|
type: 'pdf' | 'docx' | 'image' | 'other';
|
|
url: string;
|
|
content?: string; // Extracted text
|
|
isProcessed?: boolean;
|
|
}
|
|
|
|
export interface NoteVersion {
|
|
id: string;
|
|
title: string;
|
|
content: string;
|
|
timestamp: string;
|
|
size: number;
|
|
}
|
|
|
|
export interface Note {
|
|
id: string;
|
|
carnetId: string;
|
|
title: string;
|
|
content: string;
|
|
imageUrl: string;
|
|
date: string;
|
|
tags: Tag[];
|
|
attachments?: Attachment[];
|
|
isPinned?: boolean;
|
|
isDeleted?: boolean;
|
|
deletedAt?: string;
|
|
embedding?: number[];
|
|
clusterId?: string;
|
|
isClipped?: boolean;
|
|
clipSourceUrl?: string;
|
|
clipFavicon?: string;
|
|
clipDate?: string;
|
|
isVersioningEnabled?: boolean;
|
|
versionHistory?: NoteVersion[];
|
|
}
|
|
|
|
export interface NoteCluster {
|
|
id: string;
|
|
name: string;
|
|
noteIds: string[];
|
|
centroid? : number[];
|
|
color: string;
|
|
}
|
|
|
|
export interface BridgeNote {
|
|
noteId: string;
|
|
connectedClusterIds: string[];
|
|
bridgeScore: number;
|
|
}
|
|
|
|
export interface ConnectionSuggestion {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
reasoning: string;
|
|
clusterAId: string;
|
|
clusterBId: string;
|
|
}
|
|
|
|
export interface BrainstormSession {
|
|
id: string;
|
|
seedIdea: string;
|
|
sourceNoteId?: string;
|
|
contextNoteIds?: string[];
|
|
exportedNoteId?: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
userId: string;
|
|
}
|
|
|
|
export type BrainstormIdeaStatus = 'active' | 'dismissed' | 'converted';
|
|
|
|
export interface BrainstormIdea {
|
|
id: string;
|
|
sessionId: string;
|
|
waveNumber: 1 | 2 | 3;
|
|
title: string;
|
|
description: string;
|
|
connectionToSeed: string;
|
|
noveltyScore: number; // 1-10
|
|
parentIdeaId?: string;
|
|
convertedToNoteId?: string;
|
|
relatedNoteIds?: string[];
|
|
status: BrainstormIdeaStatus;
|
|
position?: { x: number; y: number };
|
|
}
|
|
|
|
export interface Carnet {
|
|
id: string;
|
|
name: string;
|
|
initial: string;
|
|
type: 'Private' | 'Project' | 'Shared';
|
|
isPrivate?: boolean;
|
|
parentId?: string;
|
|
isDeleted?: boolean;
|
|
deletedAt?: string;
|
|
}
|
|
|
|
export interface NoteAccessLog {
|
|
noteId: string;
|
|
accessedAt: string;
|
|
action: 'view' | 'edit' | 'search_hit';
|
|
}
|
|
|
|
export interface NotePrediction {
|
|
noteId: string;
|
|
predictedRelevanceDate: string;
|
|
confidence: number;
|
|
reason: string;
|
|
generatedAt: string;
|
|
}
|
|
|
|
export type FlashcardEvaluation = 'fail' | 'hesitant' | 'sure';
|
|
|
|
export interface Flashcard {
|
|
id: string;
|
|
noteId: string;
|
|
question: string;
|
|
answer: string;
|
|
intervalDays: number; // For spaced repetition
|
|
nextReviewDate: string; // ISO String
|
|
easeFactor: number;
|
|
mastered: boolean;
|
|
history?: {
|
|
reviewedAt: string;
|
|
evaluation: FlashcardEvaluation;
|
|
}[];
|
|
}
|
|
|
|
export interface FlashcardDeck {
|
|
noteId: string;
|
|
title: string;
|
|
cardsCount: number;
|
|
nextReviewDate: string; // Min nextReviewDate of all cards
|
|
masteryScore: number; // Proportion of cards evaluation === 'sure'
|
|
cards: Flashcard[];
|
|
}
|
|
|
|
|