living-ai-documentation 3.19.0 → 3.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.fr.md +138 -134
  2. package/README.md +4 -0
  3. package/dist/frontend-svelte/assets/index-B7a9qTDi.js +163 -0
  4. package/dist/frontend-svelte/assets/{index-naRn8o9U.css → index-DxdcDsGV.css} +1 -1
  5. package/dist/frontend-svelte/assets/{main-BxPG9Mc_.js → main-wMSA95JC.js} +1 -1
  6. package/dist/frontend-svelte/i18n/en.json +14 -0
  7. package/dist/frontend-svelte/i18n/fr.json +14 -0
  8. package/dist/frontend-svelte/index.html +2 -2
  9. package/dist/src/lib/documentLanguage.d.ts +6 -0
  10. package/dist/src/lib/documentLanguage.d.ts.map +1 -0
  11. package/dist/src/lib/documentLanguage.js +56 -0
  12. package/dist/src/lib/documentLanguage.js.map +1 -0
  13. package/dist/src/lib/tts/adapters/kokoro.d.ts +21 -0
  14. package/dist/src/lib/tts/adapters/kokoro.d.ts.map +1 -0
  15. package/dist/src/lib/tts/adapters/kokoro.js +93 -0
  16. package/dist/src/lib/tts/adapters/kokoro.js.map +1 -0
  17. package/dist/src/lib/tts/index.d.ts +6 -0
  18. package/dist/src/lib/tts/index.d.ts.map +1 -0
  19. package/dist/src/lib/tts/index.js +29 -0
  20. package/dist/src/lib/tts/index.js.map +1 -0
  21. package/dist/src/lib/tts/types.d.ts +29 -0
  22. package/dist/src/lib/tts/types.d.ts.map +1 -0
  23. package/dist/src/lib/tts/types.js +17 -0
  24. package/dist/src/lib/tts/types.js.map +1 -0
  25. package/dist/src/routes/tts.d.ts +3 -0
  26. package/dist/src/routes/tts.d.ts.map +1 -0
  27. package/dist/src/routes/tts.js +86 -0
  28. package/dist/src/routes/tts.js.map +1 -0
  29. package/dist/src/server.d.ts.map +1 -1
  30. package/dist/src/server.js +2 -0
  31. package/dist/src/server.js.map +1 -1
  32. package/package.json +5 -1
  33. package/dist/frontend-svelte/assets/index-CbcEU0-C.js +0 -162
package/README.fr.md CHANGED
@@ -1,3 +1,7 @@
1
+ ---
2
+ **language:** fr
3
+ ---
4
+
1
5
  # Living Documentation
2
6
 
3
7
  [🇬🇧 Read in English](./README.md)
@@ -17,27 +21,27 @@ npx living-ai-documentation@latest ./docs # servir un dossier existant
17
21
 
18
22
  ---
19
23
 
20
- ## Deux usages
24
+ ## Deux façons de l'utiliser
21
25
 
22
- ### 1. Avec un agent IA , la fonctionnalité phare
26
+ ### 1. Avec un agent de code IA , la fonctionnalité phare
23
27
 
24
- Living Documentation embarque un **serveur MCP** sur `POST /mcp`. N'importe quel agent compatible MCP peut lire, créer et auditer la documentation projet de façon autonome.
28
+ Living Documentation embarque un **serveur MCP** sur `POST /mcp`. N'importe quel agent compatible MCP peut lire, créer et auditer la documentation de votre projet de façon autonome.
25
29
 
26
- | Ce que vous dites… | Ce que l'agent déclenche… | Ce qui se passe |
27
- | ------------------------------------------------------------ | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
28
- | _« feature terminée »_ / _"feature done"_ | `create-adr` | Cherche les ADR existants, supplante l'ADR obsolète s'il y en a, écrit un nouvel ADR en `To be validated`, relie les fichiers source via les métadonnées. |
29
- | _« audite les ADR »_ / _"audit the ADRs"_ | `audit-adrs-drift` | Liste chaque ADR sous 80 % de fiabilité et remet chacun en cohérence , soit re-baseliner les hashes, soit supplanter après confirmation. |
30
- | _« vérifie la pertinence de cet ADR »_ / _"review this ADR"_ | `review-adr-relevance` | Revue d'un ADR précis contre les fichiers source liés ; rafraîchit les hashes ou propose la supersession. |
31
- | _« retrodocumente depuis git »_ / _"backfill ADRs from git"_ | `retrodocument-adrs-from-git` | Parcourt l'historique git du plus ancien au plus récent et crée des ADR pour les décisions durables jamais documentées. |
32
- | _« donne-moi la big picture »_ | `generate-context-diagram` | Crée un diagramme C4 de contexte **dérivé des documents**, jamais inventé. |
30
+ | Vous dites… | L'agent déclenche… | Ce qui se passe |
31
+ | ------------------------------------------------------------ | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
32
+ | _« feature done »_ / _« feature terminée »_ | `create-adr` | Cherche les ADR existants, supplante l'ADR obsolète s'il y en a un, écrit un nouvel ADR en `To be validated`, attache les fichiers source via les métadonnées. |
33
+ | _« audit the ADRs »_ / _« vérifie la fiabilité des ADR »_ | `audit-adrs-drift` | Liste chaque ADR sous 80 % de fiabilité et remet chacun en cohérence , re-baseline ou supersession après votre confirmation. |
34
+ | _« review this ADR »_ / _« vérifie la pertinence de cet ADR »_ | `review-adr-relevance` | Examine un seul ADR à la lumière des fichiers source liés ; rafraîchit les hashes ou propose la supersession. |
35
+ | _« backfill ADRs from git »_ / _« retrodocumente depuis git »_ | `retrodocument-adrs-from-git` | Parcourt l'historique git du plus ancien au plus récent et crée des ADR pour les décisions durables qui n'ont jamais été documentées. |
36
+ | _« give me the big picture »_ | `generate-context-diagram` | Crée un diagramme C4 de contexte **dérivé des documents**, jamais inventé. |
33
37
 
34
38
  **Tous les nouveaux ADR atterrissent en `To be validated`.** _Vous_ les promouvez. L'agent ne promeut jamais à votre place.
35
39
 
36
- ### 2. Sans IA, en solo
40
+ ### 2. En solo, sans IA
37
41
 
38
- Un hub doc personnel : ADR, notes de réunion, journal de dev, plans de features, esquisses d'architecture , tout reste en Markdown sur disque, git-friendly, zéro lock-in. Édition inline, snippets, paste d'image, pièces jointes, éditeur de diagrammes, recherche plein-texte, export PDF/HTML/Notion/Confluence.
42
+ Un hub de documentation personnel : ADR, notes de réunion, journaux de développement, plans de fonctionnalités, esquisses d'architecture , tout reste en Markdown sur disque, git-friendly, zéro vendor lock-in. Édition inline, snippets, collage d'image, pièces jointes, éditeur de diagrammes, recherche plein-texte, export PDF/HTML/Notion/Confluence.
39
43
 
40
- Les deux modes se mélangent : prendre des notes en solo toute la semaine, puis laisser l'agent enregistrer l'ADR quand la feature est livrée.
44
+ Les deux modes se mélangent librement : prenez des notes en solo toute la semaine, puis laissez votre agent enregistrer l'ADR quand la fonctionnalité est effectivement livrée.
41
45
 
42
46
  ---
43
47
 
@@ -45,7 +49,7 @@ Les deux modes se mélangent : prendre des notes en solo toute la semaine, puis
45
49
 
46
50
  ```bash
47
51
  # Assistant interactif , crée un dossier de doc de démarrage (EN ou FR), scaffold
48
- # AGENTS.md / CLAUDE.md / memory/MEMORY.md à la racine du projet et fait des symlinks
52
+ # AGENTS.md / CLAUDE.md / memory/MEMORY.md à la racine du projet et crée des symlinks
49
53
  # dans <docs>/AI/ pour que les agents IA les trouvent.
50
54
  npx living-ai-documentation@latest
51
55
 
@@ -54,22 +58,22 @@ npx living-ai-documentation@latest ./docs
54
58
  npx living-ai-documentation@latest ./docs --port 4000 --open
55
59
  ```
56
60
 
57
- Puis ouvrez [http://localhost:4321](http://localhost:4321) (viewer) et [http://localhost:4321/admin](http://localhost:4321/admin) (config).
61
+ Ensuite ouvrez [http://localhost:4321](http://localhost:4321) (viewer) et [http://localhost:4321/admin](http://localhost:4321/admin) (config).
58
62
 
59
- > Le chemin du dossier doit être **relatif** (`./docs`, `../shared/docs`…). Les chemins absolus et `~` sont rejetés pour que `.living-doc.json` reste portable et soit committable.
63
+ > L'argument du dossier doit être un **chemin relatif** (`./docs`, `../shared/docs`…). Les chemins absolus et `~` sont rejetés pour que le fichier `.living-doc.json` généré reste portable et puisse être commité.
60
64
 
61
65
  ### Installation
62
66
 
63
67
  Nécessite **Node.js 20.19 ou plus récent** (Vite 8 et Commander 14 ne prennent plus en charge Node.js 18).
64
68
 
65
69
  ```bash
66
- npx living-ai-documentation@latest # sans installation
70
+ npx living-ai-documentation@latest # zéro installation
67
71
  npm install -g living-ai-documentation # global
68
72
  ```
69
73
 
70
74
  ---
71
75
 
72
- ## Connecter votre agent IA
76
+ ## Connectez votre agent IA
73
77
 
74
78
  ### Claude Code
75
79
 
@@ -92,7 +96,7 @@ Ou manuellement dans `.claude/settings.json` :
92
96
 
93
97
  ### Claude Desktop
94
98
 
95
- Dans `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS), puis redémarrer :
99
+ Dans `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS), puis redémarrez :
96
100
 
97
101
  ```json
98
102
  {
@@ -107,21 +111,21 @@ Dans `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS),
107
111
 
108
112
  ### Cursor, Continue, tout client MCP
109
113
 
110
- Même endpoint HTTP : `http://localhost:4321/mcp` (transport Streamable HTTP, sans état).
114
+ Utilisez le même endpoint HTTP : `http://localhost:4321/mcp` (transport Streamable HTTP, sans état).
111
115
 
112
- > Le serveur Living Documentation doit tourner (`npx living-ai-documentation@latest ./docs`) avant que l'agent ne s'y connecte.
116
+ > Le serveur Living Documentation doit être lancé en premier (`npx living-ai-documentation@latest ./docs`) avant que l'agent ne se connecte.
113
117
 
114
118
  ---
115
119
 
116
- ## Concepts centraux
120
+ ## Concepts clés
117
121
 
118
122
  - **Markdown sur disque** , chaque document est un fichier `.md`. La configuration vit dans `.living-doc.json` à côté. Les deux sont git-friendly.
119
- - **Pattern de nom de fichier** , par défaut `YYYY_MM_DD_HH_mm_[Category]_title.md`. Configurable ; date, catégorie et titre sont extraits. Les fichiers hors pattern apparaissent sous **General**.
120
- - **Dossiers → catégories → docs** dans le sidebar. Les noms de dossiers deviennent les libellés ; un préfixe numérique (`1_TUTORIAL`, `2_REFERENCE`) contrôle l'ordre sans s'afficher dans l'UI.
121
- - **Les ADR** sont le journal canonique des décisions. Le serveur MCP impose un frontmatter normalisé (`**date:**`, `**status:**`, `**description:**`, `**tags:**`) et un statut initial `To be validated` que seul un humain promeut.
122
- - **`sourceRoot`** désigne le code du projet. Les tools MCP source (`list_source_files`, `read_source_file`, `search_source`) et l'attache de métadonnées en dépendent. Défaut : parent du dossier de doc.
123
- - **Métadonnées source + jauge de fiabilité** , lier un document à ses fichiers source. Chaque lien stocke un SHA-256. La jauge dans le header (`🔴 → 🟡 → 🟢`) reflète `unchanged / total`. Dès qu'un fichier change ou disparaît, la dérive est visible. Les **god files** (`package.json`, lock files, manifests, barrels) sont exclus par convention.
124
- - **Les diagrammes sont des vues dérivées** , ils citent les documents qui les justifient (`evidence`). Ils ne peuvent pas introduire un concept absent de la documentation.
123
+ - **Pattern de nom de fichier** , par défaut `YYYY_MM_DD_HH_mm_[Category]_title.md`. Le pattern est configurable ; la date, la catégorie et le titre sont extraits. Les fichiers qui ne correspondent pas apparaissent sous **General**.
124
+ - **Dossiers → catégories → docs** dans la barre latérale. Les noms de dossiers deviennent les libellés ; les préfixes numériques (`1_TUTORIAL`, `2_REFERENCE`) contrôlent l'ordre sans s'afficher dans l'UI.
125
+ - **Les ADR** sont l'enregistrement canonique des décisions. Le serveur MCP impose un frontmatter normalisé (`**date:**`, `**status:**`, `**description:**`, `**tags:**`) et un statut initial `To be validated` que seul un humain peut promouvoir.
126
+ - **`sourceRoot`** pointe vers le code du projet. Les tools MCP source (`list_source_files`, `read_source_file`, `search_source`) et l'attache de métadonnées en dépendent. Valeur par défaut : le parent du dossier de documentation.
127
+ - **Métadonnées de fichiers source + jauge de fiabilité** , liez un document aux fichiers source qu'il décrit. Chaque liaison stocke un SHA-256. La jauge dans l'en-tête du document (`🔴 → 🟡 → 🟢`) reflète le ratio `unchanged / total`. Dès qu'un fichier lié est modifié ou supprimé, la dérive est visible. Les **god files** (`package.json`, lock files, manifests, barrels) sont exclus par convention.
128
+ - **Les diagrammes sont des vues dérivées** , ils citent les documents sur lesquels ils s'appuient (`evidence`). Ils ne peuvent pas introduire des concepts absents de la documentation.
125
129
 
126
130
  ---
127
131
 
@@ -131,56 +135,56 @@ Même endpoint HTTP : `http://localhost:4321/mcp` (transport Streamable HTTP, sa
131
135
 
132
136
  | Groupe | Tool | Description |
133
137
  | ---------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
134
- | Onboarding | `get_server_guide` | Retourne le guide du serveur : workflow, conventions, règles des diagrammes. |
138
+ | Onboarding | `get_server_guide` | Retourne le guide du serveur : workflow, conventions, règles de diagrammes. |
135
139
  | Documents | `list_documents` | Inventaire : `id`, `title`, `category`, `folder`, `linkHref`. |
136
140
  | | `read_document` | Contenu Markdown brut d'un document. |
137
- | | `create_document` | Crée un nouveau `.md` (nom de fichier dérivé du pattern, paramètre `date` optionnel pour la rétro-doc). |
141
+ | | `create_document` | Crée un nouveau fichier `.md` (nom de fichier dérivé du pattern configuré, paramètre `date` optionnel pour la rétrodocumentation). |
138
142
  | | `update_document` | Écrase un document existant (correction de dérive, supersession). |
139
143
  | Diagrammes | `list_diagrams` | Liste les diagrammes sauvegardés. |
140
144
  | | `read_diagram` | Lit les nœuds + arêtes d'un diagramme. |
141
- | | `create_diagram` | Crée / écrase un diagramme (garde-fous serveur : progression C4 et labels d'arêtes). |
145
+ | | `create_diagram` | Crée / écrase un diagramme (garde-fous côté serveur appliquent la progression C4 et les labels d'arêtes). |
142
146
  | Code source (fallback) | `list_source_files` | Liste les fichiers sous `sourceRoot` (ignore : `node_modules`, `dist`, `.git`…). |
143
147
  | | `read_source_file` | Lit un fichier sous `sourceRoot`. |
144
- | | `search_source` | Recherche grep-like sous `sourceRoot`. |
145
- | Métadonnées | `list_metadata` | Fichiers source liés à un document. |
148
+ | | `search_source` | Recherche texte de type grep sous `sourceRoot`. |
149
+ | Métadonnées | `list_metadata` | Liaisons de fichiers source d'un document. |
146
150
  | | `get_accuracy` | Statut par entrée (`unchanged` / `modified` / `missing`) + accuracy pondérée ∈ [0, 1]. |
147
- | | `add_metadata` | Attache un fichier source (chemin sous `sourceRoot`), enregistre SHA-256. **Saute les god files.** |
148
- | | `remove_metadata` | Détache un lien (idempotent , pour renames/deletes). |
149
- | | `refresh_metadata` | Re-hashe chaque lien (re-baseline après une mise à jour). |
150
- | Audit ADR | `list_adrs_below_accuracy` | Jusqu'à 10 ADR dont l'accuracy < 80 %, triés du plus dégradé. Exclut `SuperSeeded` et non-ADR. |
151
- | | `review_adr_relevance` | Rapport factuel sur un ADR + fichiers en dérive à relire. Retourne un `state` pour piloter le LLM. |
152
- | Rétrodocumentation | `retrodocument_adrs_from_git` | Jusqu'à 200 commits git (du plus ancien), classés `candidate` / `trivial` / `merge`, avec flags god-files. Pour backfiller les ADR manquants. |
151
+ | | `add_metadata` | Lie un fichier source (chemin sous `sourceRoot`), enregistre le SHA-256. **Ignore les god files.** |
152
+ | | `remove_metadata` | Détache une liaison (idempotent , pour les renommages/suppressions). |
153
+ | | `refresh_metadata` | Re-hashe chaque liaison (re-baseline après une mise à jour). |
154
+ | Audit ADR | `list_adrs_below_accuracy` | Jusqu'à 10 ADR dont l'accuracy < 80 %, triés du plus dégradé au moins dégradé. Exclut `SuperSeeded` et les non-ADR. |
155
+ | | `review_adr_relevance` | Rapport factuel sur un ADR + fichiers en dérive à relire. Retourne un `state` qui pilote l'arbre de décision du LLM. |
156
+ | Rétrodocumentation | `retrodocument_adrs_from_git` | Jusqu'à 200 commits git (du plus ancien) classés `candidate` / `trivial` / `merge`, avec flags god-file. Pour backfiller les ADR manquants. |
153
157
 
154
158
  ### Prompts (10)
155
159
 
156
- | Groupe | Prompt | Quand l'invoquer |
157
- | ---------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------- |
158
- | Cycle de vie ADR | `create-adr` | Une feature vient d'être implémentée ou modifiée. Enregistre la décision, supersede l'ADR antérieur si pertinent. |
159
- | | `audit-adrs-drift` | Audit batch : ramener chaque ADR en dérive à un état clair (re-baseline ou supersession confirmée). |
160
- | | `review-adr-relevance` | Revue d'un ADR précis contre ses fichiers source liés. |
161
- | | `retrodocument-adrs-from-git` | Backfill d'ADR depuis l'historique git quand le projet en manque. |
162
- | Diagrammes | `generate-context-diagram` | DÉFAUT. Diagramme C4 de contexte, gardé serveur. |
163
- | | `generate-container-diagram` | Sur demande explicite. Diagramme C4 conteneur d'un système. |
164
- | | `generate-uml-diagram` | Sur demande explicite. UML classe/séquence/état/activité/cas d'usage. |
165
- | | `generate-screen-guide` | Sur demande explicite. Capture annotée avec post-it callouts. |
166
- | | `update-diagram-from-docs` | Relit les documents source pour mettre à jour les diagrammes existants. |
167
- | | `flow`, `erd` | Diagrammes flow linéaires / entité-relation. |
168
-
169
- Un `GET http://localhost:4321/mcp` retourne les schémas live des tools et prompts pour inspection.
160
+ | Groupe | Prompt | Quand |
161
+ | ---------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
162
+ | Cycle de vie ADR | `create-adr` | Une fonctionnalité vient d'être implémentée ou modifiée. Enregistre la décision, supplante un ADR antérieur le cas échéant. |
163
+ | | `audit-adrs-drift` | Audit par lot : ramener chaque ADR en dérive à un état clair (re-baseline ou supersession confirmée par l'utilisateur). |
164
+ | | `review-adr-relevance` | Examen d'un seul ADR à la lumière des fichiers source liés. |
165
+ | | `retrodocument-adrs-from-git` | Backfill d'ADR depuis l'historique git quand le projet en manque. |
166
+ | Diagrammes | `generate-context-diagram` | DÉFAUT. Diagramme C4 de contexte, gardé côté serveur. |
167
+ | | `generate-container-diagram` | Sur demande explicite uniquement. Diagramme C4 de conteneur d'un système. |
168
+ | | `generate-uml-diagram` | Sur demande explicite uniquement. UML classe/séquence/état/activité/cas d'utilisation. |
169
+ | | `generate-screen-guide` | Sur demande explicite uniquement. Capture d'écran annotée avec callouts post-it. |
170
+ | | `update-diagram-from-docs` | Relit les documents source pour mettre à jour les diagrammes existants. |
171
+ | | `flow`, `erd` | Diagrammes de flux linéaire / entité-relation. |
172
+
173
+ Un `GET http://localhost:4321/mcp` retourne les schémas live des tools + prompts pour inspection.
170
174
 
171
175
  ---
172
176
 
173
177
  ## Fonctionnalités d'édition
174
178
 
175
- - **Éditeur inline** , édition de n'importe quel document dans le navigateur, sauvegarde disque instantanée.
176
- - **Panneau Snippets** (`🧩 Snippets`) , constructions Markdown pré-fabriquées au curseur : blocs repliables, liens (in-doc, cross-doc, ancre), listes, blocs de code, blockquotes, séparateurs, images. Plus un **éditeur de tableaux** (grille dynamique → tableau Markdown aligné) et un **éditeur d'arborescence** (indentation → ASCII tree avec `├──` / `└──`). Sélectionner un snippet existant **détecte son type** et pré-remplit le formulaire pour édition.
177
- - **Paste d'image** , colle depuis le presse-papier pendant l'édition, auto-upload vers `<docs>/images/`, insertion en Markdown.
178
- - **Pièces jointes** , glisser, déposer, coller ou choisir n'importe quel fichier non-image (PDF, archive, doc bureautique). Upload sous `<docs>/files/`, insertion en pill trombone. Extensions bloquées et limites configurables en Admin.
179
- - **Recherche plein-texte** , filtre filename instantané + recherche serveur de contenu ; pour chaque fichier liste chaque occurrence, surlignée, navigable.
180
- - **Préfixe de recherche `metadata://<nomdefichier>`** , recherche inverse : quels documents référencent cette pièce jointe ?
179
+ - **Éditeur inline** , éditez n'importe quel document dans le navigateur, sauvegarde instantanée sur disque.
180
+ - **Panneau Snippets** (`🧩 Snippets`) , constructions Markdown préfabriquées au curseur : blocs repliables, liens (intra-doc, inter-doc, ancre), listes, blocs de code, blockquotes, séparateurs, images. Plus un **éditeur de tableaux** (grille dynamique → tableau Markdown aligné) et un **éditeur d'arborescence** (indentation → arbre ASCII avec `├──` / `└──`). Sélectionner un snippet existant **détecte son type** et pré-remplit le formulaire pour édition.
181
+ - **Collage d'image** , collez depuis le presse-papier pendant l'édition, auto-upload vers `<docs>/images/`, inséré en Markdown.
182
+ - **Pièces jointes** , glissez, déposez, collez ou choisissez tout fichier non-image (PDF, archive, document bureautique). Uploadé sous `<docs>/files/`, inséré comme un pill trombone. Extensions bloquées et limites de taille configurables dans l'Admin.
183
+ - **Recherche plein-texte** , filtre instantané par nom de fichier + recherche serveur dans le contenu ; pour chaque fichier, liste chaque occurrence, les surligne et permet de naviguer vers elles.
184
+ - **Préfixe de recherche `metadata://<nomdefichier>`** , recherche inversée : quels documents référencent cette pièce jointe ?
181
185
  - **Annotations** , marqueurs de surlignage persistants par document (jaune / rose / vert / bleu).
182
- - **Navigation par ancre** , `[label](#heading-slug)` scrolle correctement après le rendu async ; IDs auto-générés.
183
- - **Mode sombre** , suit la préférence système, basculable manuellement. Coloration syntaxique toujours sombre.
186
+ - **Navigation par ancre** , `[label](#heading-slug)` scrolle correctement après rendu asynchrone ; IDs auto-générés.
187
+ - **Mode sombre** , suit la préférence système, basculable manuellement. Coloration syntaxique toujours en mode sombre.
184
188
 
185
189
  ![Sidebar groupé par dossier → catégorie](/images/readme-sidebar.png)
186
190
 
@@ -192,11 +196,11 @@ Un `GET http://localhost:4321/mcp` retourne les schémas live des tools et promp
192
196
 
193
197
  Éditeur de diagrammes canvas intégré (vis-network), accessible via `/diagram?id=...`.
194
198
 
195
- - **Progression C4 imposée** , contexte d'abord (défaut), conteneur/composant seulement sur demande explicite. UML sur demande explicite.
196
- - **`kind` architectural vs `renderAs` visuel** , sépare le concept (`software_system`, `database`, `queue`, `api`, `cloud_service`…) de la forme (`box`, `ellipse`, `database`, `actor`, `post-it`…). Le MCP choisit des défauts sensés pour chaque `kind`.
197
- - **Provenance documentaire (`evidence`)** , chaque nœud / arête architectural peut citer le document et la section qui le justifient. L'éditeur lève des warnings si l'evidence manque.
198
- - **Bibliothèques de formes personnalisées** sur `/shape-editor` , définissez vos propres formes (icônes SVG, ports, couleurs par défaut) et réutilisez-les.
199
- - **Ports** pour arêtes ancrées, **guides d'alignement**, **undo/redo**, **snap-to-grid**, **paste d'image**, **export PNG**, **deep-link** vers un diagramme par id.
199
+ - **Progression C4 imposée** , contexte d'abord (défaut), conteneur/composant uniquement sur demande explicite. UML sur demande explicite.
200
+ - **`kind` architectural vs `renderAs` visuel** , sépare le concept (`software_system`, `database`, `queue`, `api`, `cloud_service`…) de la forme (`box`, `ellipse`, `database`, `actor`, `post-it`…). Le MCP choisit des valeurs par défaut pertinentes pour chaque `kind`.
201
+ - **Provenance documentaire (`evidence`)** , chaque nœud/arête architectural peut citer le document et la section qui le justifient. L'éditeur signale les warnings d'evidence manquante.
202
+ - **Bibliothèques de formes personnalisées** sur `/shape-editor` , définissez vos propres formes (icônes SVG, ports, couleurs par défaut) et réutilisez-les dans tous les diagrammes.
203
+ - **Ports** pour arêtes ancrées, **guides d'alignement**, **undo/redo**, **snap-to-grid**, **collage d'images**, **export PNG**, **deep-link** vers un diagramme par id.
200
204
 
201
205
  ---
202
206
 
@@ -213,18 +217,18 @@ docs/
213
217
  └── api.md → dossier : Reference / catégorie : General
214
218
  ```
215
219
 
216
- - Le tag `[Category]` est extrait du filename quel que soit le dossier.
220
+ - Le tag `[Category]` est extrait du nom de fichier quel que soit le dossier.
217
221
  - Les fichiers sans `[Category]` tombent sous **General**. **General** est toujours rendu en premier.
218
- - Les dossiers sont triés alphabétiquement , préfixer par `1_`, `2_`… pour forcer un ordre ; le préfixe est caché dans l'UI mais visible au survol.
219
- - L'imbrication de sous-dossiers est récursive.
222
+ - Les dossiers sont triés alphabétiquement , préfixez par `1_`, `2_`… pour forcer un ordre ; le préfixe est caché dans l'UI mais visible au survol.
223
+ - L'imbrication de sous-dossiers est supportée récursivement.
220
224
 
221
- ![Pattern de filename](/images/readme-filename-pattern.png)
225
+ ![Pattern de nom de fichier](/images/readme-filename-pattern.png)
222
226
 
223
227
  ---
224
228
 
225
229
  ## Configuration (`.living-doc.json`)
226
230
 
227
- Créé automatiquement dans votre dossier de doc au premier lancement. Modifiable depuis l'Admin ou à la main.
231
+ Créé automatiquement dans votre dossier de documentation au premier lancement. Modifiable depuis l'Admin ou à la main.
228
232
 
229
233
  ```json
230
234
  {
@@ -238,12 +242,12 @@ Créé automatiquement dans votre dossier de doc au premier lancement. Modifiabl
238
242
  }
239
243
  ```
240
244
 
241
- | Champ | Rôle |
242
- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
243
- | `filenamePattern` | Convention de nom de fichier utilisée pour extraire date / catégorie / titre. Le token `[Category]` est obligatoire, exactement une fois. |
244
- | `extraFiles` | Fichiers Markdown ordonnés **hors** du dossier docs (ex. `README.md`, `CLAUDE.md`). Affichés en premier dans General. |
245
- | `sourceRoot` | Où vit votre code (relatif au dossier docs). Défaut : `..`. Utilisé par les tools MCP source + métadonnées. |
246
- | `blockedFileExtensions` | Liste de sécurité des extensions de pièces jointes, éditable en Admin. |
245
+ | Champ | Rôle |
246
+ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
247
+ | `filenamePattern` | Convention de nom de fichier utilisée pour extraire date / catégorie / titre. Le token `[Category]` est obligatoire, exactement une fois. |
248
+ | `extraFiles` | Fichiers Markdown ordonnés **hors** du dossier docs (ex. `README.md`, `CLAUDE.md`). Affichés en premier dans General. |
249
+ | `sourceRoot` | Où vit votre code (relatif au dossier docs). Défaut : `..`. Utilisé par les tools MCP source + métadonnées. |
250
+ | `blockedFileExtensions` | Liste de sécurité des extensions de pièces jointes, éditable depuis l'Admin. |
247
251
 
248
252
  **Tous les chemins sont relatifs POSIX** pour que `.living-doc.json` reste portable. Les chemins absolus legacy sont migrés silencieusement à la première lecture.
249
253
 
@@ -253,24 +257,24 @@ Créé automatiquement dans votre dossier de doc au premier lancement. Modifiabl
253
257
 
254
258
  ## Export
255
259
 
256
- | Format | Endpoint | Notes |
257
- | ---------------------- | --------------------------- | ------------------------------------------------------------------ |
258
- | PDF (par doc) | `POST /api/export/html` | Boîte de dialogue d'impression du navigateur depuis le HTML rendu. |
259
- | HTML , mode Notion | `POST /api/export/html` | Bundle HTML unique adapté à l'import Notion. |
260
- | HTML , mode Confluence | `POST /api/export/html` | Bundle HTML zippé adapté à l'import Confluence. |
261
- | Bundle Markdown | `POST /api/export/markdown` | Zip de tous les documents avec liens normalisés. |
260
+ | Format | Endpoint | Notes |
261
+ | ----------------------- | --------------------------- | ------------------------------------------------------------------ |
262
+ | PDF (par document) | `POST /api/export/html` | Boîte de dialogue d'impression du navigateur depuis le HTML rendu. |
263
+ | HTML , mode Notion | `POST /api/export/html` | Bundle HTML unique adapté à l'import Notion. |
264
+ | HTML , mode Confluence | `POST /api/export/html` | Bundle HTML zippé adapté à l'import Confluence. |
265
+ | Bundle Markdown | `POST /api/export/markdown` | Zip de tous les documents avec liens normalisés. |
262
266
 
263
267
  ---
264
268
 
265
- ## Surfaces UI
269
+ ## Surfaces de l'UI
266
270
 
267
- | URL | Page |
268
- | --------------- | ---------------------------------------------------------------------------------------------------- |
269
- | `/` | Viewer , sidebar, rendu document, édition inline, snippets, recherche, pièces jointes. |
270
- | `/admin` | Config , titre, thème, pattern de filename, extra files, source root, liste de sécurité fichiers. |
271
- | `/diagram?id=` | Éditeur de diagrammes (vis-network) avec conventions C4, ports, guides d'alignement, undo/redo. |
272
- | `/shape-editor` | Éditeur de bibliothèques de formes personnalisées , icônes SVG, couleurs par défaut, ports. |
273
- | `/context` | Page de contexte IA , instructions, règles, mémoire, **explorateur MCP** (tester les tools en live). |
271
+ | URL | Page |
272
+ | --------------- | --------------------------------------------------------------------------------------------------------- |
273
+ | `/` | Viewer , sidebar, rendu de document, édition inline, snippets, recherche, pièces jointes. |
274
+ | `/admin` | Config , titre, thème, pattern de nom de fichier, extra files, source root, liste de sécurité des fichiers. |
275
+ | `/diagram?id=` | Éditeur de diagrammes (vis-network) avec conventions C4, ports, guides d'alignement, undo/redo. |
276
+ | `/shape-editor` | Éditeur de bibliothèques de formes personnalisées , icônes SVG, couleurs par défaut, ports. |
277
+ | `/context` | Page de contexte IA , instructions, règles, mémoire, **explorateur MCP** (testez les tools en live dans le navigateur). |
274
278
 
275
279
  ---
276
280
 
@@ -279,42 +283,42 @@ Créé automatiquement dans votre dossier de doc au premier lancement. Modifiabl
279
283
  <details>
280
284
  <summary>API HTTP complète (cliquer pour déplier)</summary>
281
285
 
282
- | Méthode | Endpoint | Description |
283
- | -------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
284
- | `GET` | `/api/documents` | Liste les documents avec métadonnées (inclut extra files). |
285
- | `GET` | `/api/documents/:id` | Contenu du document + HTML rendu. |
286
- | `POST` | `/api/documents` | Crée depuis `{ title, category, folder?, content?, date? }`. |
287
- | `PUT` | `/api/documents/:id` | Sauvegarde du contenu sur disque. |
288
- | `DELETE` | `/api/documents/:id` | Supprime un document. |
289
- | `GET` | `/api/documents/search?q=` | Recherche plein-texte. |
290
- | `GET` | `/api/config` | Lit la config. |
291
- | `PUT` | `/api/config` | Met à jour la config (`title`, `theme`, `filenamePattern`, `extraFiles`, `sourceRoot`, `blockedFileExtensions`, …). |
292
- | `GET` | `/api/browse?path=` | Liste les dossiers et `.md` à un chemin. |
293
- | `POST` | `/api/browse/mkdir` | Crée un dossier sous la racine docs. |
294
- | `POST` | `/api/images/upload` | Upload d'image base64 → `<docs>/images/`. |
295
- | `POST` | `/api/files/upload` | Upload de pièce jointe base64 → `<docs>/files/`. |
296
- | `GET` | `/api/files` | Liste toutes les pièces jointes (chronologique). |
297
- | `PUT` | `/api/files/:filename` | Remplace une pièce jointe. |
298
- | `DELETE` | `/api/files/:filename` | Supprime une pièce jointe. |
299
- | `GET` | `/api/metadata/:docId` | Rapport de fiabilité d'un doc. |
300
- | `POST` | `/api/metadata/:docId` | Ajoute ou remplace un lien. |
301
- | `DELETE` | `/api/metadata/:docId` | Retire un lien. |
302
- | `POST` | `/api/metadata/:docId/refresh` | Re-baseline les hashes. |
303
- | `GET` | `/api/browse-source?path=` | Navigue l'arbre source ancré sur `sourceRoot`. |
304
- | `GET` | `/api/diagrams` | Liste les diagrammes sauvegardés. |
305
- | `GET` | `/api/diagrams/:id` | Lit un diagramme (nœuds + arêtes). |
306
- | `PUT` | `/api/diagrams/:id` | Crée ou met à jour un diagramme. |
307
- | `DELETE` | `/api/diagrams/:id` | Supprime un diagramme. |
308
- | `GET` | `/api/shape-libraries` | Liste les bibliothèques de formes personnalisées. |
309
- | `PUT` | `/api/shape-libraries/:id` | Sauvegarde une bibliothèque de formes. |
310
- | `GET` | `/api/annotations[/:docId]` | Liste les annotations (tous docs / un doc). |
311
- | `POST` | `/api/annotations/:docId` | Ajoute une annotation. |
312
- | `DELETE` | `/api/annotations/:docId/:id` | Supprime une annotation. |
313
- | `POST` | `/api/export/html` | Export HTML , modes Notion / Confluence. |
314
- | `POST` | `/api/export/markdown` | Export bundle Markdown. |
315
- | `GET` | `/api/wordcloud?path=&ext=` | Concatène récursivement les fichiers source filtrés en texte brut. |
316
- | `POST` | `/mcp` | Endpoint Model Context Protocol (Streamable HTTP). |
317
- | `GET` | `/mcp` | Résumé live des schémas tools + prompts. |
286
+ | Méthode | Endpoint | Description |
287
+ | -------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
288
+ | `GET` | `/api/documents` | Liste les documents avec métadonnées (inclut les extra files). |
289
+ | `GET` | `/api/documents/:id` | Contenu du document + HTML rendu. |
290
+ | `POST` | `/api/documents` | Crée à partir de `{ title, category, folder?, content?, date? }`. |
291
+ | `PUT` | `/api/documents/:id` | Sauvegarde le contenu sur disque. |
292
+ | `DELETE` | `/api/documents/:id` | Supprime un document. |
293
+ | `GET` | `/api/documents/search?q=` | Recherche plein-texte. |
294
+ | `GET` | `/api/config` | Lit la configuration. |
295
+ | `PUT` | `/api/config` | Met à jour la configuration (`title`, `theme`, `filenamePattern`, `extraFiles`, `sourceRoot`, `blockedFileExtensions`…). |
296
+ | `GET` | `/api/browse?path=` | Liste les dossiers et fichiers `.md` à un chemin donné. |
297
+ | `POST` | `/api/browse/mkdir` | Crée un dossier sous la racine docs. |
298
+ | `POST` | `/api/images/upload` | Upload d'une image base64 → `<docs>/images/`. |
299
+ | `POST` | `/api/files/upload` | Upload d'une pièce jointe base64 → `<docs>/files/`. |
300
+ | `GET` | `/api/files` | Liste toutes les pièces jointes (ordre chronologique). |
301
+ | `PUT` | `/api/files/:filename` | Remplace une pièce jointe. |
302
+ | `DELETE` | `/api/files/:filename` | Supprime une pièce jointe. |
303
+ | `GET` | `/api/metadata/:docId` | Rapport de fiabilité pour un document. |
304
+ | `POST` | `/api/metadata/:docId` | Ajoute ou remplace une liaison. |
305
+ | `DELETE` | `/api/metadata/:docId` | Retire une liaison. |
306
+ | `POST` | `/api/metadata/:docId/refresh` | Re-baseline les hashes. |
307
+ | `GET` | `/api/browse-source?path=` | Navigue dans l'arbre source ancré sur `sourceRoot`. |
308
+ | `GET` | `/api/diagrams` | Liste les diagrammes sauvegardés. |
309
+ | `GET` | `/api/diagrams/:id` | Lit un diagramme (nœuds + arêtes). |
310
+ | `PUT` | `/api/diagrams/:id` | Crée ou met à jour un diagramme. |
311
+ | `DELETE` | `/api/diagrams/:id` | Supprime un diagramme. |
312
+ | `GET` | `/api/shape-libraries` | Liste les bibliothèques de formes personnalisées. |
313
+ | `PUT` | `/api/shape-libraries/:id` | Sauvegarde une bibliothèque de formes. |
314
+ | `GET` | `/api/annotations[/:docId]` | Liste les annotations (tous les docs / un doc). |
315
+ | `POST` | `/api/annotations/:docId` | Ajoute une annotation. |
316
+ | `DELETE` | `/api/annotations/:docId/:id` | Supprime une annotation. |
317
+ | `POST` | `/api/export/html` | Export HTML , modes Notion / Confluence. |
318
+ | `POST` | `/api/export/markdown` | Export bundle Markdown. |
319
+ | `GET` | `/api/wordcloud?path=&ext=` | Concatène récursivement les fichiers source correspondants en texte brut. |
320
+ | `POST` | `/mcp` | Endpoint Model Context Protocol (Streamable HTTP). |
321
+ | `GET` | `/mcp` | Résumé live des schémas tools + prompts. |
318
322
 
319
323
  </details>
320
324
 
@@ -333,16 +337,16 @@ npm run test:e2e # Playwright end-to-end (~3 s, ~30 spec
333
337
  npm run test:coverage # couverture c8 V8-natif
334
338
  ```
335
339
 
336
- En **dev**, ouvrez l'UI sur **http://localhost:5174** (Vite sert l'app Svelte avec HMR et proxy `/api`, `/mcp`, `/images`, `/files` vers le backend Express sur `:4321`).
340
+ En **dev**, ouvrez l'UI sur **http://localhost:5174** (Vite sert l'app Svelte avec HMR et proxifie `/api`, `/mcp`, `/images`, `/files` vers le backend Express sur `:4321`).
337
341
 
338
- Les tests end-to-end utilisent **Playwright**. Chaque test lance un vrai process CLI enfant sur un fixture frais sur un port aléatoire , pas de fuite d'état, parallélisable. Couverture serveur via **c8** (V8 natif, ~72 % global, 83 % sur `src/routes` et `src/lib`).
342
+ Les tests end-to-end utilisent **Playwright**. Chaque test lance un vrai processus CLI enfant sur un fixture frais sur un port aléatoire , pas de fuite d'état, exécution en parallèle. Couverture côté serveur via **c8** (V8 natif, ~72 % de référence globale, 83 % sur `src/routes` et `src/lib`).
339
343
 
340
344
  ### Tester le package publié en local
341
345
 
342
- Pas besoin de publier une version. Le CLI démarre un **unique serveur Express** qui sert l'UI Svelte pré-buildée **et** l'API/MCP sur un seul port , Vite (`:5174`) n'existe qu'en dev et pas pour l'utilisateur final.
346
+ Pas besoin de publier une version. Le CLI démarre un **serveur Express unique** qui sert l'UI Svelte pré-buildée **et** l'API/MCP sur un seul port , Vite (`:5174`) est uniquement pour le développement et n'existe pas pour les utilisateurs finaux.
343
347
 
344
348
  ```bash
345
- # Lance l'artefact de production exact, puis ouvrez http://localhost:4321
349
+ # Lancer l'artefact de production exact, puis ouvrir http://localhost:4321
346
350
  npm run build
347
351
  node dist/bin/cli.js ./documentation
348
352
 
@@ -350,17 +354,17 @@ node dist/bin/cli.js ./documentation
350
354
  npm pack # → living-ai-documentation-<version>.tgz
351
355
  npx ./living-ai-documentation-*.tgz ./documentation
352
356
 
353
- npm pack --dry-run # inspecter exactement les fichiers qui seraient publiés
357
+ npm pack --dry-run # inspecter exactement quels fichiers seraient publiés
354
358
  ```
355
359
 
356
360
  > En production, il n'y a pas de `:5174`. L'endpoint MCP auquel les clients se connectent est **`http://localhost:4321/mcp`** (Express, port par défaut).
357
361
 
358
362
  ### Contribuer
359
363
 
360
- Ce dépôt embarque un hook `pre-commit` (dans `.githooks/`) qui impose le contrat bilingue des README : si vous touchez `README.md`, vous devez aussi toucher `README.fr.md`, et inversement. Lancez `npm run setup-hooks` une fois après le clone pour l'activer. Le même check tourne en CI sur chaque PR (`.github/workflows/readme-sync.yml`), donc la règle est imposée même si un contributeur oublie le setup local.
364
+ Ce dépôt embarque un hook `pre-commit` (dans `.githooks/`) qui impose le contrat de README bilingue : si vous touchez `README.md`, vous devez aussi toucher `README.fr.md`, et inversement. Lancez `npm run setup-hooks` une fois après le clone pour l'activer. La même vérification s'exécute en CI sur chaque PR (voir `.github/workflows/readme-sync.yml`), donc la règle est appliquée même si un contributeur oublie la configuration locale.
361
365
 
362
366
  ---
363
367
 
364
368
  ## Licence
365
369
 
366
- [AGPL-3.0](./LICENSE) , © Youssef MEDAGHRI-ALAOUI.
370
+ [AGPL-3.0](./LICENSE) , © Youssef MEDAGHRI-ALAOUI.
package/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ ---
2
+ **language:** en
3
+ ---
4
+
1
5
  # Living Documentation
2
6
 
3
7
  [🇫🇷 Lire en français](./README.fr.md)