diff --git a/README.md b/README.md
index ae90ea4..01a54f4 100644
--- a/README.md
+++ b/README.md
@@ -26,12 +26,13 @@ Un assistant intelligent de conception technique avec fonctionnalités IA avanc
- **Vérification de doublons** et redondances
- **Conseils d'amélioration** personnalisés
-#### 🧠 **Mode Liberté Intelligent** (Nouveau !)
+#### 🚀 **Mode Liberté Total** (Révolutionnaire !)
-- **Jusqu'à 15 itérations** d'amélioration automatique
-- **Analyse itérative** : chaque amélioration enrichit le document
-- **Arrêt intelligent** quand plus rien d'évident à améliorer
-- **Confiance 90%+** : ne modifie que ce qui est certain
+- **Jusqu'à 10 itérations** d'enrichissement progressif
+- **Contrôle de précision** : 30% (très créatif) à 90% (très précis)
+- **Streaming temps réel** : voir chaque amélioration en direct
+- **Feedback instantané** : explications détaillées pour chaque itération
+- **Document complet** : enrichit TOUT le document à chaque passage
### 🎨 Interface & Expérience
@@ -39,24 +40,30 @@ Un assistant intelligent de conception technique avec fonctionnalités IA avanc
- **Mode sombre/clair** avec persistance des préférences
- **Variables CSS** cohérentes pour tous les composants
+- **Basculement instantané** sans rechargement
#### 👁️ **Mode Prévisualisation**
- **Toggle édition/visualisation** en un clic
-- **Rendu Markdown complet** : titres, listes, code, liens, citations
+- **Rendu GitHub Markdown** : titres, listes, code, liens, citations, tables
+- **Support Mermaid** : diagrammes intégrés
- **Styling professionnel** pour présentation finale
#### 🧭 **Navigation Avancée**
- **Table des matières** générée automatiquement
-- **Scroll intelligent** vers les sections
-- **Raccourcis clavier** (Ctrl+S pour sauvegarde)
+- **Scroll intelligent** vers les sections avec surbrillance
+- **Historique complet** : Ctrl+Z/Y pour toutes les actions IA
+- **Raccourcis clavier** : Ctrl+S sauvegarde, Tab indentation
### 📤 Export & Import
-- **Export Markdown** (.md) natif
-- **Import de fichiers** Markdown
-- **Templates prédéfinis** pour démarrage rapide
+- **Export Markdown** (.md) natif avec préservation formatage
+- **Export PDF/HTML** professionnel via Puppeteer
+- **Import de fichiers** Markdown avec détection automatique
+- **Templates prédéfinis** (6 domaines × 3 niveaux = 18 templates)
+ - 💻 Informatique • 💼 Business • 🎨 Design
+ - ⚙️ Ingénierie • 📊 Mathématiques • 🔬 Recherche
## ⚙️ Installation
@@ -76,30 +83,34 @@ cd conception-assistant
# Installer les dépendances
npm install
-# Copier et configurer les variables d'environnement
-cp config/.env.example config/.env
+# Créer le fichier de configuration (optionnel)
+echo "PORT=3000
+MISTRAL_API_KEY=your_key_here
+AI_ENABLED=true" > .env
```
-### Configuration
+### Configuration (Optionnelle)
-Éditez `config/.env` avec vos paramètres :
+L'application fonctionne sans configuration. Pour activer l'IA, éditez `.env` :
```env
-# Server Configuration
+# 🌐 Serveur (optionnel)
PORT=3000
-# Mistral AI Configuration
-MISTRAL_API_KEY=votre_clé_api_mistral_ici
+# 🤖 Mistral AI (requis pour l'IA)
+MISTRAL_API_KEY=your_mistral_api_key_here
MISTRAL_MODEL=mistral-large-latest
MISTRAL_BASE_URL=https://api.mistral.ai/v1
-# AI Features Configuration
+# ⚙️ Configuration IA avancée (optionnel)
AI_ENABLED=true
AI_MAX_TOKENS=35000
AI_TEMPERATURE=0.3
AI_TOP_P=0.85
```
+> **💡 Sans clé API** : L'application fonctionne parfaitement pour la gestion des journaux, seules les fonctions IA sont désactivées.
+
### Lancement
```bash
@@ -123,26 +134,47 @@ http://localhost:3000
- **Reformulation** : 0.2 (très précise)
- **Analyses** : 0.1 (factuelle)
- **Conseils** : 0.4 (équilibrée)
-- **Mode Liberté** : 0.2 (itératif intelligent)
+- **Mode Liberté Total** : 0.1-0.9 (dynamique selon précision)
-## 🧠 Mode Liberté - Fonctionnement Avancé
+## 🚀 Mode Liberté Total - Fonctionnement Révolutionnaire
-Le **Mode Liberté Intelligent** analyse votre document de manière itérative :
+Le **Mode Liberté Total** transforme votre document avec un contrôle précis de la créativité :
-1. **Analyse** du contenu actuel
-2. **Identification** du point le plus évident à améliorer
-3. **Application** de l'amélioration avec 90%+ de confiance
-4. **Mise à jour** du document avec le nouveau contenu
-5. **Répétition** du processus sur le document enrichi
-6. **Arrêt automatique** quand plus rien d'évident
+### 🎯 **Contrôle de Précision**
-### Exemple de Session
+| Niveau | Précision | Comportement | Usage |
+|--------|-----------|--------------|--------|
+| **30%** | Très Créatif | Peut créer 70% de contenu nouveau logique | Brainstorming initial |
+| **50%** | Équilibré | Balance déduction/création 50/50 | Développement standard |
+| **70%** | Conservateur | Principalement basé sur l'existant | Raffinement document |
+| **90%** | Très Précis | Seulement déductions évidentes | Finalisation technique |
+
+### 🔄 **Processus Itératif en Temps Réel**
+
+1. **📊 Analyse** : L'IA évalue le document selon la précision choisie
+2. **🎯 Enrichissement** : Ajoute sections, détails, diagrammes conceptuels
+3. **📡 Streaming** : Vous voyez l'explication en temps réel
+4. **✏️ Application** : Le document est automatiquement mis à jour
+5. **🔄 Itération** : Répétition sur le document enrichi
+6. **✅ Finalisation** : Sauvegarde automatique avec historique
+
+### 📈 **Exemple de Session (Précision 70%)**
```
-Itération 1 : Ajout section "Contraintes techniques"
-Itération 2 : Détail des "Risques identifiés"
-Itération 3 : Complétion "Plan de tests"
-Itération 4 : STOP - Aucune amélioration évidente
+🔄 Itération 1/3 : Analyse du document...
+ ✅ Ajout section "Architecture technique détaillée"
+ ✅ Développement des "Contraintes de performance"
+
+🔄 Itération 2/3 : Enrichissement du contenu...
+ ✅ Diagrammes de séquence pour les flux principaux
+ ✅ Matrice de risques avec plans d'atténuation
+
+🔄 Itération 3/3 : Finalisation...
+ ✅ Plan de tests complet avec critères d'acceptation
+ ✅ Métriques de performance et indicateurs clés
+
+✅ Mode Liberté Total terminé !
+ Document enrichi de 85% avec 3 itérations
```
## 📖 Utilisation
@@ -155,9 +187,12 @@ Itération 4 : STOP - Aucune amélioration évidente
### Utiliser l'IA
-1. **Reformulation** : Sélectionnez du texte → bouton "Reformuler"
-2. **Analyse** : Boutons "Incohérences", "Doublons", "Conseils"
-3. **Mode Liberté** : Choisir le nombre d'itérations → "Mode Liberté"
+1. **Reformulation** : Sélectionnez du texte → bouton "🔄 Reformuler"
+2. **Analyse** : Boutons "🔍 Incohérences", "📋 Doublons", "💡 Conseils"
+3. **Mode Liberté Total** :
+ - Choisir **itérations** (1-10) et **précision** (30-90%)
+ - Clic sur "🚀 Mode Liberté Total"
+ - Suivre le **streaming en temps réel**
### Mode Prévisualisation
@@ -167,36 +202,184 @@ Itération 4 : STOP - Aucune amélioration évidente
## 🏗️ Architecture Technique
-### Backend
-
-- **Express.js** : Serveur web
-- **Mistral AI** : Modèles de langage avancés
-- **Multer** : Upload de fichiers
-- **dotenv** : Gestion configuration
-
-### Frontend
-
-- **Vanilla JavaScript** : Interface réactive
-- **CSS Variables** : Thèmes dynamiques
-- **Markdown Parser** : Rendu intelligent
-- **LocalStorage** : Persistance locale
-
-### Structure
+### 📁 Structure du Projet
```
conception-assistant/
- app.js # Serveur principal
- routes/
- ai.js # Routes IA avec logique avancée
- upload.js # Upload de fichiers
- assets/
- js/app.js # Application frontend
- css/style.css # Styles et thèmes
- views/ # Composants d'interface
- uploads/ # Fichiers uploadés
- config/ # Configuration
+├── app.js # ⚡ Serveur principal Express
+├── package.json # 📦 Dépendances et scripts
+├── package-lock.json # 🔒 Verrouillage des versions
+├── README.md # 📖 Documentation du projet
+│
+├── 📂 routes/ # 🛣️ Routes API et logique métier
+│ ├── index.js # 🏠 Page d'accueil et routes de base
+│ ├── api.js # 📝 CRUD journaux (create, read, update, delete)
+│ ├── ai.js # 🤖 Intelligence Artificielle (Mistral AI)
+│ ├── templates.js # 📄 Gestion des templates prédéfinis
+│ └── export.js # 📤 Export PDF/HTML (Puppeteer)
+│
+├── 📂 views/ # 🎨 Composants d'interface modulaires
+│ ├── page.js # 📄 Structure HTML principale
+│ ├── header.js # 🔝 En-tête avec navigation
+│ ├── main.js # 🎯 Zone principale (éditeur + assistant IA)
+│ └── footer.js # 🔽 Pied de page minimal
+│
+├── 📂 assets/ # 🎨 Ressources statiques
+│ ├── css/
+│ │ ├── style.css # 🎨 Styles principaux et thèmes
+│ │ └── github-preview.css # 👁️ Style GitHub pour prévisualisation
+│ └── js/
+│ └── app.js # ⚙️ Application frontend (4000+ lignes)
+│
+├── 📂 templates/ # 📝 Templates de conception prédéfinis
+│ ├── informatique/ # 💻 Templates IT (simple, détaillé, complet)
+│ ├── business/ # 💼 Templates business
+│ ├── design/ # 🎨 Templates design
+│ ├── ingenierie/ # ⚙️ Templates ingénierie
+│ ├── math/ # 📊 Templates mathématiques
+│ └── recherche/ # 🔬 Templates recherche
+│
+└── 📂 data/ # 💾 Stockage des journaux utilisateur
+ └── journals_*.json # 📔 Fichiers JSON des journaux
```
+### 🔧 Architecture Technique Détaillée
+
+#### 🖥️ **Backend (Node.js + Express.js)**
+
+| Composant | Fichier | Responsabilité | Technologies |
+|-----------|---------|----------------|--------------|
+| **Serveur Principal** | `app.js` | Configuration Express, middleware, routes | Express.js 4.18+ |
+| **API Journaux** | `routes/api.js` | CRUD journaux, stockage JSON | File System, UUID |
+| **Intelligence Artificielle** | `routes/ai.js` | Intégration Mistral AI, streaming | Mistral AI API, Server-Sent Events |
+| **Templates** | `routes/templates.js` | Gestion templates par domaine | File System |
+| **Export** | `routes/export.js` | Génération PDF/HTML | Puppeteer |
+
+#### 🎨 **Frontend (Vanilla JavaScript)**
+
+| Composant | Fichier | Responsabilité | Fonctionnalités |
+|-----------|---------|----------------|-----------------|
+| **Application Principale** | `assets/js/app.js` | Logique métier frontend | Éditeur, IA, historique, navigation |
+| **Interface Modulaire** | `views/*.js` | Composants HTML | Header, main, footer |
+| **Styles** | `assets/css/*.css` | Thèmes et présentation | CSS Variables, GitHub Preview |
+
+#### 🤖 **Système IA Avancé**
+
+| Fonctionnalité | Endpoint | Méthode | Streaming | Précision |
+|---------------|----------|---------|-----------|-----------|
+| **Reformulation** | `/api/ai/rephrase` | POST | ❌ | 90%+ |
+| **Incohérences** | `/api/ai/check-inconsistencies` | POST | ❌ | Factuelle |
+| **Doublons** | `/api/ai/check-duplications` | POST | ❌ | Factuelle |
+| **Conseils** | `/api/ai/give-advice` | POST | ❌ | Équilibrée |
+| **Mode Liberté Total** | `/api/ai/liberty-mode` | POST | ✅ SSE | Configurable 30-90% |
+
+### ⚡ **Technologies & Stack**
+
+#### **Core Dependencies**
+
+```json
+{
+ "express": "^4.18.2", // 🌐 Serveur web
+ "dotenv": "^17.2.2", // ⚙️ Variables d'environnement
+ "puppeteer": "^24.22.3", // 📄 Génération PDF
+ "uuid": "^13.0.0" // 🆔 Identifiants uniques
+}
+```
+
+#### **API Externes**
+
+- **Mistral AI** : Modèles de langage avancés
+ - `mistral-large-latest` : Analyse et génération
+ - Temperature dynamique : 0.1-0.9 selon la tâche
+ - Max tokens : 35000 pour longs documents
+
+#### **Stockage & Persistance**
+
+- **Journaux** : Fichiers JSON avec UUID
+- **Préférences** : LocalStorage navigateur
+- **Templates** : Fichiers Markdown statiques
+- **Exports** : Génération temporaire PDF/HTML
+
+### 🔄 **Flux de Données**
+
+#### **Mode Liberté Total (Streaming)**
+
+```mermaid
+sequenceDiagram
+ participant User as 👤 Utilisateur
+ participant Frontend as 🌐 Frontend
+ participant Backend as ⚙️ Backend
+ participant AI as 🤖 Mistral AI
+
+ User->>Frontend: Clic "Mode Liberté Total"
+ Frontend->>Backend: POST /api/ai/liberty-mode (SSE)
+
+ loop Pour chaque itération
+ Backend->>AI: Envoi document + précision
+ AI->>Backend: Explication + Markdown amélioré
+ Backend->>Frontend: Stream données (SSE)
+ Frontend->>User: Affichage temps réel + MAJ éditeur
+ end
+
+ Backend->>Frontend: Signal fin (completed: true)
+ Frontend->>User: Notification terminée
+```
+
+#### **Gestion des Journaux**
+
+```mermaid
+flowchart TD
+ A[👤 Utilisateur] --> B[✏️ Éditeur]
+ B --> C[💾 Sauvegarde Auto]
+ C --> D[📁 data/journals_UUID.json]
+
+ A --> E[📂 Charger Journal]
+ E --> F[📋 Liste Journaux]
+ F --> G[🔄 Chargement Contenu]
+ G --> B
+
+ B --> H[👁️ Mode Prévisualisation]
+ H --> I[🎨 Rendu GitHub Markdown]
+ I --> B
+```
+
+### 🛡️ **Sécurité & Configuration**
+
+#### **Variables d'Environnement**
+
+```env
+# Serveur
+PORT=3000
+
+# Mistral AI
+MISTRAL_API_KEY=your_key_here
+MISTRAL_MODEL=mistral-large-latest
+MISTRAL_BASE_URL=https://api.mistral.ai/v1
+
+# IA
+AI_ENABLED=true
+AI_MAX_TOKENS=35000
+AI_TEMPERATURE=0.3
+AI_TOP_P=0.85
+```
+
+#### **Gestion d'Erreur Robuste**
+
+- **Backend** : Try-catch sur toutes les routes
+- **Frontend** : Gestion d'erreur asynchrone
+- **IA** : Fallback et retry automatique
+- **Streaming** : Gestion déconnexion SSE
+
+### 🚀 **Performance & Optimisations**
+
+| Aspect | Implémentation | Bénéfice |
+|--------|----------------|----------|
+| **Debouncing** | Table des matières, sauvegarde | Réduit calculs inutiles |
+| **Streaming SSE** | Mode Liberté Total | Feedback temps réel |
+| **Cache LocalStorage** | Préférences thème | Persistance locale |
+| **Lazy Loading** | Templates à la demande | Chargement optimisé |
+| **CSS Variables** | Thèmes dynamiques | Basculement instantané |
+
## 🤝 Contribution
1. **Fork** le projet
diff --git a/assets/js/app.js b/assets/js/app.js
index b14cf0c..27aaf0a 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -742,39 +742,24 @@ class ConceptionAssistant {
this.saveState(true);
const count = document.getElementById('liberty-repeat-count')?.value || 3;
- // Mode liberté utilise toujours le document complet
- result = await this.callAI('/api/ai/liberty-mode', { content: fullContent, iterations: count, focus: 'conception' });
+ const precision = document.getElementById('liberty-precision')?.value || 70;
- // Utiliser le contenu final mis à jour par le backend
- if (result.finalContent) {
- this.editor.innerText = result.finalContent;
- this.generateTOC();
- // Sauvegarder l'état après les modifications de l'IA
- this.saveState(true);
- }
-
- let libertyHTML = `Mode Liberté Intelligent (${result.iterations} itérations)
`;
-
- // Vérifier si l'IA s'est arrêtée prématurément
- const lastIteration = result.results[result.results.length - 1];
- if (lastIteration && lastIteration.stopped) {
- libertyHTML += `
Analyse terminée après ${result.iterations} itérations - Aucune amélioration évidente supplémentaire détectée.
`; - } else { - libertyHTML += `Les ${result.iterations} itérations d'amélioration ont été automatiquement appliquées au document.
`; - } - - result.results.forEach(iteration => { - const borderColor = iteration.stopped ? 'var(--warning-color)' : 'var(--success-color)'; - const icon = iteration.stopped ? 'STOP' : 'OK'; - - libertyHTML += ` -