Files
Momento/architectural-grid/src/types.ts
Antigravity e2672cd2c2
Some checks failed
CI / Lint, Test & Build (push) Failing after 1m19s
CI / Deploy production (on server) (push) Has been skipped
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>
2026-05-24 14:27:29 +00:00

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[];
}