feat(notes): liens internes, onglet Réseau, living blocks et consentement IA
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>
This commit is contained in:
153
architectural-grid/src/types.ts
Normal file
153
architectural-grid/src/types.ts
Normal file
@@ -0,0 +1,153 @@
|
||||
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[];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user