docs: restore french accents in readme
This commit is contained in:
parent
2bda5459d6
commit
9b151968bd
1 changed files with 37 additions and 37 deletions
74
README.md
74
README.md
|
|
@ -1,15 +1,15 @@
|
||||||
# mcp-framework
|
# 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 JSON de configuration dans `os.UserConfigDir()`
|
||||||
- stockage de secrets dans le wallet natif selon l'OS
|
- 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
|
- pipeline d'auto-update via endpoint de release configurable
|
||||||
|
|
||||||
Le framework est volontairement petit. Il fournit des briques reutilisables,
|
Le framework est volontairement petit. Il fournit des briques réutilisables,
|
||||||
pas une application MCP complete.
|
pas une application MCP complète.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|
@ -19,26 +19,26 @@ go get gitea.lclr.dev/AI/mcp-framework
|
||||||
|
|
||||||
## Packages
|
## Packages
|
||||||
|
|
||||||
- `cli` : helpers pour resoudre un profil, valider une URL et demander des valeurs a l'utilisateur.
|
- `cli` : helpers pour résoudre un profil, valider une URL et demander des valeurs à l'utilisateur.
|
||||||
- `config` : lecture/ecriture atomique d'une config JSON versionnee dans `os.UserConfigDir()`.
|
- `config` : lecture/écriture atomique d'une config JSON versionnée dans `os.UserConfigDir()`.
|
||||||
- `manifest` : lecture de `mcp.toml` a la racine du projet et conversion vers `update.ReleaseSource`.
|
- `manifest` : lecture de `mcp.toml` à la racine du projet et conversion vers `update.ReleaseSource`.
|
||||||
- `secretstore` : lecture/ecriture de secrets dans le wallet natif.
|
- `secretstore` : lecture/écriture de secrets dans le wallet natif.
|
||||||
- `update` : telechargement et remplacement du binaire courant depuis un endpoint de release.
|
- `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`.
|
1. Résoudre le profil actif avec `cli`.
|
||||||
2. Charger la config versionnee avec `config`.
|
2. Charger la config versionnée avec `config`.
|
||||||
3. Lire les secrets avec `secretstore`.
|
3. Lire les secrets avec `secretstore`.
|
||||||
4. Charger `mcp.toml` avec `manifest`.
|
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`
|
## Manifeste `mcp.toml`
|
||||||
|
|
||||||
Le package `manifest` cherche automatiquement `mcp.toml` dans le repertoire
|
Le package `manifest` cherche automatiquement `mcp.toml` dans le répertoire
|
||||||
courant puis remonte les repertoires parents jusqu'a trouver le fichier.
|
courant puis remonte les répertoires parents jusqu'à trouver le fichier.
|
||||||
|
|
||||||
Exemple minimal :
|
Exemple minimal :
|
||||||
|
|
||||||
|
|
@ -51,12 +51,12 @@ token_header = "Authorization"
|
||||||
token_env_names = ["GITEA_TOKEN"]
|
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.
|
- `base_url` : base de la forge ou du service de release.
|
||||||
- `latest_release_url` : URL complete qui retourne la release la plus recente.
|
- `latest_release_url` : URL complète qui retourne la release la plus récente.
|
||||||
- `token_header` : header HTTP a utiliser pour l'authentification.
|
- `token_header` : header HTTP à utiliser pour l'authentification.
|
||||||
- `token_env_names` : liste de variables d'environnement candidates pour retrouver le token.
|
- `token_env_names` : liste de variables d'environnement candidates pour retrouver le token.
|
||||||
|
|
||||||
Exemple de chargement :
|
Exemple de chargement :
|
||||||
|
|
@ -73,7 +73,7 @@ source := file.Update.ReleaseSource()
|
||||||
|
|
||||||
## Config JSON
|
## 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.
|
pour l'utilisateur courant.
|
||||||
|
|
||||||
Exemple :
|
Exemple :
|
||||||
|
|
@ -108,14 +108,14 @@ fmt.Printf("config saved to %s\n", path)
|
||||||
|
|
||||||
Notes :
|
Notes :
|
||||||
|
|
||||||
- le fichier est cree avec des permissions `0600`
|
- le fichier est créé avec des permissions `0600`
|
||||||
- le repertoire parent est force en `0700`
|
- le répertoire parent est forcé en `0700`
|
||||||
- l'ecriture est atomique via un fichier temporaire puis `rename`
|
- l'écriture est atomique via un fichier temporaire puis `rename`
|
||||||
- si le fichier n'existe pas, `Load` et `LoadDefault` retournent une config vide par defaut
|
- si le fichier n'existe pas, `Load` et `LoadDefault` retournent une config vide par défaut
|
||||||
|
|
||||||
## Secrets
|
## 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
|
- macOS : Keychain
|
||||||
- Linux : Secret Service ou KWallet selon l'environnement
|
- 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 :
|
`cli` fournit des helpers simples pour les assistants interactifs :
|
||||||
|
|
||||||
|
|
@ -169,11 +169,11 @@ if err != nil {
|
||||||
|
|
||||||
## Auto-Update
|
## Auto-Update
|
||||||
|
|
||||||
Le package `update` ne deduit pas la forge ni l'authentification.
|
Le package `update` ne déduit pas la forge ni l'authentification.
|
||||||
L'application cliente fournit l'URL de release, le header d'auth eventuel et,
|
L'application cliente fournit l'URL de release, le header d'auth éventuel et,
|
||||||
si besoin, les variables d'environnement a consulter.
|
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
|
```json
|
||||||
{
|
{
|
||||||
|
|
@ -210,10 +210,10 @@ if err != nil {
|
||||||
|
|
||||||
Contraintes actuelles :
|
Contraintes actuelles :
|
||||||
|
|
||||||
- le `latest_release_url` doit etre renseigne explicitement
|
- le `latest_release_url` doit être renseigné explicitement
|
||||||
- les assets supportes sont `darwin/amd64`, `darwin/arm64`, `linux/amd64` et `windows/amd64`
|
- les assets supportés sont `darwin/amd64`, `darwin/arm64`, `linux/amd64` et `windows/amd64`
|
||||||
- le remplacement du binaire n'est pas supporte sur Windows
|
- le remplacement du binaire n'est pas supporté sur Windows
|
||||||
- le nom de l'asset est derive de `BinaryName`, `GOOS` et `GOARCH`
|
- le nom de l'asset est dérivé de `BinaryName`, `GOOS` et `GOARCH`
|
||||||
|
|
||||||
## Exemple Minimal
|
## Exemple Minimal
|
||||||
|
|
||||||
|
|
@ -254,6 +254,6 @@ func run(ctx context.Context, flagProfile string) error {
|
||||||
|
|
||||||
## Limites Actuelles
|
## 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
|
- 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
|
- l'auto-update reste volontairement simple et ne supporte pas encore de scripts externes
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue