docs: restore french accents in readme

This commit is contained in:
thibaud-leclere 2026-04-13 15:57:35 +02:00
parent 2bda5459d6
commit 9b151968bd

View file

@ -1,15 +1,15 @@
# mcp-framework
Bibliotheque Go pour construire des binaires MCP avec :
Bibliothèque Go pour construire des binaires MCP avec :
- resolution de profils CLI
- résolution de profils CLI
- stockage JSON de configuration dans `os.UserConfigDir()`
- stockage de secrets dans le wallet natif selon l'OS
- lecture d'un manifeste `mcp.toml` a la racine du projet
- lecture d'un manifeste `mcp.toml` à la racine du projet
- pipeline d'auto-update via endpoint de release configurable
Le framework est volontairement petit. Il fournit des briques reutilisables,
pas une application MCP complete.
Le framework est volontairement petit. Il fournit des briques réutilisables,
pas une application MCP complète.
## Installation
@ -19,26 +19,26 @@ go get gitea.lclr.dev/AI/mcp-framework
## Packages
- `cli` : helpers pour resoudre un profil, valider une URL et demander des valeurs a l'utilisateur.
- `config` : lecture/ecriture atomique d'une config JSON versionnee dans `os.UserConfigDir()`.
- `manifest` : lecture de `mcp.toml` a la racine du projet et conversion vers `update.ReleaseSource`.
- `secretstore` : lecture/ecriture de secrets dans le wallet natif.
- `update` : telechargement et remplacement du binaire courant depuis un endpoint de release.
- `cli` : helpers pour résoudre un profil, valider une URL et demander des valeurs à l'utilisateur.
- `config` : lecture/écriture atomique d'une config JSON versionnée dans `os.UserConfigDir()`.
- `manifest` : lecture de `mcp.toml` à la racine du projet et conversion vers `update.ReleaseSource`.
- `secretstore` : lecture/écriture de secrets dans le wallet natif.
- `update` : téléchargement et remplacement du binaire courant depuis un endpoint de release.
## Usage Type
## Utilisation type
Le flux typique cote application est :
Le flux typique côté application est :
1. Resoudre le profil actif avec `cli`.
2. Charger la config versionnee avec `config`.
1. Résoudre le profil actif avec `cli`.
2. Charger la config versionnée avec `config`.
3. Lire les secrets avec `secretstore`.
4. Charger `mcp.toml` avec `manifest`.
5. Executer l'auto-update avec `update` si necessaire.
5. Exécuter l'auto-update avec `update` si nécessaire.
## Manifeste `mcp.toml`
Le package `manifest` cherche automatiquement `mcp.toml` dans le repertoire
courant puis remonte les repertoires parents jusqu'a trouver le fichier.
Le package `manifest` cherche automatiquement `mcp.toml` dans le répertoire
courant puis remonte les répertoires parents jusqu'à trouver le fichier.
Exemple minimal :
@ -51,12 +51,12 @@ token_header = "Authorization"
token_env_names = ["GITEA_TOKEN"]
```
Champs supportes dans `[update]` :
Champs supportés dans `[update]` :
- `source_name` : nom humain de la source de release, utilise dans certains messages d'erreur.
- `source_name` : nom humain de la source de release, utilisé dans certains messages d'erreur.
- `base_url` : base de la forge ou du service de release.
- `latest_release_url` : URL complete qui retourne la release la plus recente.
- `token_header` : header HTTP a utiliser pour l'authentification.
- `latest_release_url` : URL complète qui retourne la release la plus récente.
- `token_header` : header HTTP à utiliser pour l'authentification.
- `token_env_names` : liste de variables d'environnement candidates pour retrouver le token.
Exemple de chargement :
@ -73,7 +73,7 @@ source := file.Update.ReleaseSource()
## Config JSON
Le package `config` stocke une structure generique par profil dans un JSON prive
Le package `config` stocke une structure générique par profil dans un JSON privé
pour l'utilisateur courant.
Exemple :
@ -108,14 +108,14 @@ fmt.Printf("config saved to %s\n", path)
Notes :
- le fichier est cree avec des permissions `0600`
- le repertoire parent est force en `0700`
- l'ecriture est atomique via un fichier temporaire puis `rename`
- si le fichier n'existe pas, `Load` et `LoadDefault` retournent une config vide par defaut
- le fichier est créé avec des permissions `0600`
- le répertoire parent est forcé en `0700`
- l'écriture est atomique via un fichier temporaire puis `rename`
- si le fichier n'existe pas, `Load` et `LoadDefault` retournent une config vide par défaut
## Secrets
Le package `secretstore` s'appuie sur le wallet natif du systeme :
Le package `secretstore` s'appuie sur le wallet natif du système :
- macOS : Keychain
- Linux : Secret Service ou KWallet selon l'environnement
@ -146,7 +146,7 @@ default:
}
```
## CLI Helpers
## Helpers CLI
`cli` fournit des helpers simples pour les assistants interactifs :
@ -169,11 +169,11 @@ if err != nil {
## Auto-Update
Le package `update` ne deduit pas la forge ni l'authentification.
L'application cliente fournit l'URL de release, le header d'auth eventuel et,
si besoin, les variables d'environnement a consulter.
Le package `update` ne déduit pas la forge ni l'authentification.
L'application cliente fournit l'URL de release, le header d'auth éventuel et,
si besoin, les variables d'environnement à consulter.
Le format attendu pour la reponse `latest release` est actuellement :
Le format attendu pour la réponse `latest release` est actuellement :
```json
{
@ -210,10 +210,10 @@ if err != nil {
Contraintes actuelles :
- le `latest_release_url` doit etre renseigne explicitement
- les assets supportes sont `darwin/amd64`, `darwin/arm64`, `linux/amd64` et `windows/amd64`
- le remplacement du binaire n'est pas supporte sur Windows
- le nom de l'asset est derive de `BinaryName`, `GOOS` et `GOARCH`
- le `latest_release_url` doit être renseigné explicitement
- les assets supportés sont `darwin/amd64`, `darwin/arm64`, `linux/amd64` et `windows/amd64`
- le remplacement du binaire n'est pas supporté sur Windows
- le nom de l'asset est dérivé de `BinaryName`, `GOOS` et `GOARCH`
## Exemple Minimal
@ -254,6 +254,6 @@ func run(ctx context.Context, flagProfile string) error {
## Limites Actuelles
- le manifeste gere uniquement la section `[update]`
- le manifeste gère uniquement la section `[update]`
- le framework ne fournit pas encore d'interface unique de bootstrap
- l'auto-update reste volontairement simple et ne supporte pas encore de scripts externes