{"meta":{"title":"Compatibilité du Kit de développement logiciel (SDK) et de l’interface","intro":"Ce document décrit quelles fonctionnalités de Copilot CLI sont disponibles via le kit de développement logiciel (SDK) et lesquelles sont réservées à l’interface en ligne de commande.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/how-tos","title":"Procédures"},{"href":"/fr/copilot/how-tos/copilot-sdk","title":"Kit de développement logiciel (SDK) Copilot"},{"href":"/fr/copilot/how-tos/copilot-sdk/troubleshooting","title":"Résolution des problèmes"},{"href":"/fr/copilot/how-tos/copilot-sdk/troubleshooting/compatibility","title":"Compatibilité"}],"documentType":"article"},"body":"# Compatibilité du Kit de développement logiciel (SDK) et de l’interface\n\nCe document décrit quelles fonctionnalités de Copilot CLI sont disponibles via le kit de développement logiciel (SDK) et lesquelles sont réservées à l’interface en ligne de commande.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\n## Overview\n\nLe SDK Copilot communique avec l’interface CLI via JSON-RPC protocole. Les fonctionnalités doivent être explicitement exposées via ce protocole pour être disponibles dans le Kit de développement logiciel (SDK). De nombreuses fonctionnalités cli interactives sont spécifiques au terminal et non disponibles par programme.\n\n## Comparaison des fonctionnalités\n\n### ✅ Disponible dans le Kit de développement logiciel (SDK)\n\n| Fonctionnalité                                  | méthode du SDK                                                                                    | Remarques                                                                                                                    |\n| ----------------------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| **Gestion de session**                          |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Créer une session                               | `createSession()`                                                                                 | Prise en charge complète de la configuration                                                                                 |\n| Reprendre la session                            | `resumeSession()`                                                                                 | Avec des espaces de travail de session illimités                                                                             |\n| Déconnecter la session                          | `disconnect()`                                                                                    | Libérer des ressources en mémoire                                                                                            |\n| Détruire la session *(déconseillée)*            | `destroy()`                                                                                       | Utilisation de `disconnect()` à la place                                                                                     |\n| Supprimer une session                           | `deleteSession()`                                                                                 | Supprimer du stockage                                                                                                        |\n| Répertorier les sessions                        | `listSessions()`                                                                                  | Toutes les sessions stockées                                                                                                 |\n| Obtenir la dernière session                     | `getLastSessionId()`                                                                              | Pour un CV rapide                                                                                                            |\n| Obtenir une session de premier plan             | `getForegroundSessionId()`                                                                        | Coordination multi-sessions                                                                                                  |\n| Définir une session de premier plan             | `setForegroundSessionId()`                                                                        | Coordination multi-sessions                                                                                                  |\n| **Messaging**                                   |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Envoyer un message                              | `send()`                                                                                          | Avec des pièces jointes                                                                                                      |\n| Envoyer et attendre                             | `sendAndWait()`                                                                                   | Bloque jusqu’à ce que ce soit terminé                                                                                        |\n| Direction (mode immédiat)                       | `send({ mode: \"immediate\" })`                                                                     | Injecter au milieu du processus sans interrompre                                                                             |\n| Mise en file d’attente (mode d’enfilement)      | `send({ mode: \"enqueue\" })`                                                                       | Mémoire tampon pour le traitement séquentiel (par défaut)                                                                    |\n| Pièces jointes                                  | `send({ attachments: [{ type: \"file\", path }] })`                                                 | Images codées automatiquement et redimensionnées                                                                             |\n| Pièces jointes du répertoire                    | `send({ attachments: [{ type: \"directory\", path }] })`                                            | Attacher le contexte de répertoire                                                                                           |\n| Obtenir l’historique                            | `getEvents()`                                                                                     | Tous les événements de session                                                                                               |\n| Abandon                                         | `abort()`                                                                                         | Annuler la requête en cours                                                                                                  |\n| **Outils**                                      |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Inscrire des outils personnalisés               | `registerTools()`                                                                                 | Prise en charge complète du schéma JSON                                                                                      |\n| Contrôle d’autorisation de l’outil              |                                                                                                   |                                                                                                                              |\n| `onPreToolUse` crochet                          | Autoriser/refuser/demander                                                                        |                                                                                                                              |\n| Modification des résultats de l’outil           |                                                                                                   |                                                                                                                              |\n| `onPostToolUse` crochet                         | Transformer les résultats                                                                         |                                                                                                                              |\n| Outils disponibles ou exclus                    |                                                                                                   |                                                                                                                              |\n| `availableTools`, `excludedTools` configuration | Outils de filtre                                                                                  |                                                                                                                              |\n| **Modèles**                                     |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Lister les modèles                              | `listModels()`                                                                                    | Avec fonctionnalités, facturation, et politique                                                                              |\n| Définir le modèle (lors de la création)         |                                                                                                   |                                                                                                                              |\n| `model` dans la configuration de session        | Par session                                                                                       |                                                                                                                              |\n| Changer de modèle (mi-session)                  | `session.setModel()`                                                                              | Également via `session.rpc.model.switchTo()`                                                                                 |\n| Obtenir le modèle actuel                        | `session.rpc.model.getCurrent()`                                                                  | Interroger un modèle actif                                                                                                   |\n| Effort de raisonnement                          |                                                                                                   |                                                                                                                              |\n| `reasoningEffort` configuration                 | Pour les modèles pris en charge                                                                   |                                                                                                                              |\n| **Agent Mode**                                  |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Obtenir le mode actuel                          | `session.rpc.mode.get()`                                                                          | Retourne le mode actuel                                                                                                      |\n| Définir le mode                                 | `session.rpc.mode.set()`                                                                          | Basculer entre les modes                                                                                                     |\n| **Gestion du plan**                             |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Lire le plan                                    | `session.rpc.plan.read()`                                                                         | Obtenez le contenu et le chemin d'accès du fichier plan.md                                                                   |\n| Mettre à jour le plan                           | `session.rpc.plan.update()`                                                                       | Écrire le contenu de plan.md                                                                                                 |\n| Suppression de programme                        | `session.rpc.plan.delete()`                                                                       | Supprimer plan.md                                                                                                            |\n| **Fichiers de l’espace de travail**             |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Répertorier les fichiers d’espace de travail    | `session.rpc.workspace.listFiles()`                                                               | Fichiers dans l’espace de travail de session                                                                                 |\n| Lire le fichier d’espace de travail             | `session.rpc.workspace.readFile()`                                                                | Lire le contenu du fichier                                                                                                   |\n| Créer un fichier d’espace de travail            | `session.rpc.workspace.createFile()`                                                              | Créer un fichier dans l’espace de travail                                                                                    |\n| **Authentication**                              |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Obtenir le statut d’authentification            | `getAuthStatus()`                                                                                 | Vérifier l’état de connexion                                                                                                 |\n| Utiliser un jeton                               |                                                                                                   |                                                                                                                              |\n| `gitHubToken` option                            | Authentification programmée                                                                       |                                                                                                                              |\n| **Connectivité**                                |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Ping                                            | `client.ping()`                                                                                   | Vérification de l'état avec l’horodatage du serveur                                                                          |\n| Obtenir l’état du serveur                       | `client.getStatus()`                                                                              | Informations sur la version du protocole et le serveur                                                                       |\n| **Serveurs MCP**                                |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Serveurs locaux ou stdio                        |                                                                                                   |                                                                                                                              |\n| `mcpServers` configuration                      | Créer des processus                                                                               |                                                                                                                              |\n| HTTP/SSE distant                                |                                                                                                   |                                                                                                                              |\n| `mcpServers` configuration                      | Se connecter aux services                                                                         |                                                                                                                              |\n| **Hooks**                                       |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Pré-utilisation de l’outil                      | `onPreToolUse`                                                                                    | Permission, modifier les arguments                                                                                           |\n| Après utilisation de l’outil (succès)           | `onPostToolUse`                                                                                   | Modifier les résultats                                                                                                       |\n| Après l’utilisation de l’outil (échec)          | `onPostToolUseFailure`                                                                            | Surveiller les appels d’outils ayant échoué, injecter des instructions de réessai                                            |\n| Message d'invite                                | `onUserPromptSubmitted`                                                                           | Modifier les invites                                                                                                         |\n| Début/fin de session                            |                                                                                                   |                                                                                                                              |\n| `onSessionStart`, `onSessionEnd`                | Cycle de vie avec source/raison                                                                   |                                                                                                                              |\n| Gestion des erreurs                             | `onErrorOccurred`                                                                                 | Gestion personnalisée                                                                                                        |\n| **Événements**                                  |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Tous les événements de session                  |                                                                                                   |                                                                                                                              |\n| `on()`, `once()`                                | 40+ types d’événements                                                                            |                                                                                                                              |\n| Diffusion en continu                            | `streaming: true`                                                                                 | Événements delta                                                                                                             |\n| **Configuration de session**                    |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Agents personnalisés                            |                                                                                                   |                                                                                                                              |\n| `customAgents` configuration                    | Définir des agents spécialisés                                                                    |                                                                                                                              |\n| Message système                                 |                                                                                                   |                                                                                                                              |\n| `systemMessage` configuration                   | Ajouter ou remplacer                                                                              |                                                                                                                              |\n| Fournisseur personnalisé                        |                                                                                                   |                                                                                                                              |\n| `provider` configuration                        | Prise en charge de BYOK                                                                           |                                                                                                                              |\n| Sessions infinies                               |                                                                                                   |                                                                                                                              |\n| `infiniteSessions` configuration                | Compactage automatique                                                                            |                                                                                                                              |\n| Gestionnaire d’autorisations                    | `onPermissionRequest`                                                                             | Approuver/refuser des requêtes ; éventuellement joindre un(e) `decisionContext` pour la télémétrie d’approbation automatique |\n| Gestionnaire d’entrée utilisateur               | `onUserInputRequest`                                                                              | Gérer ask\\_user                                                                                                              |\n| Compétences                                     |                                                                                                   |                                                                                                                              |\n| `skillDirectories` configuration                | Compétences personnalisées                                                                        |                                                                                                                              |\n| Compétences désactivées                         |                                                                                                   |                                                                                                                              |\n| `disabledSkills` configuration                  | Désactiver des compétences spécifiques                                                            |                                                                                                                              |\n| Répertoire de configuration                     |                                                                                                   |                                                                                                                              |\n| `configDir` configuration                       | Remplacer l’emplacement de configuration par défaut                                               |                                                                                                                              |\n| Nom du client                                   |                                                                                                   |                                                                                                                              |\n| `clientName` configuration                      | Identifier l’application dans User-Agent                                                          |                                                                                                                              |\n| Répertoire de travail                           |                                                                                                   |                                                                                                                              |\n| `workingDirectory` configuration                | Définir le répertoire de travail de la session                                                    |                                                                                                                              |\n| Répertoires supplémentaires                     |                                                                                                   |                                                                                                                              |\n| `additionalDirectories` configuration           | Accorder l’accès à la session au-delà du répertoire de travail ; réapprovisionnement à la reprise |                                                                                                                              |\n| **Version expérimentale**                       |                                                                                                   |                                                                                                                              |\n|                                                 |                                                                                                   |                                                                                                                              |\n| Gestion des agents                              | `session.rpc.agent.*`                                                                             | Lister, sélectionner, désélectionner, obtenir l’assistant actuel                                                             |\n| Mode flotte                                     | `session.rpc.fleet.start()`                                                                       | Exécution de sous-agent parallèle ; voir [Mode flotte](/fr/copilot/how-tos/copilot-sdk/features/fleet-mode)                  |\n| Compactage manuel                               | `session.rpc.history.compact()`                                                                   | Compactage du déclencheur à la demande                                                                                       |\n| Effacement du contexte                          | `session.rpc.history.clearContext()`                                                              | Remplacer le contexte de conversation à partir d’un outil terminal                                                           |\n| Troncation de l’historique                      | `session.rpc.history.truncate()`                                                                  | Supprimer les événements à partir d’un point donné                                                                           |\n| Duplication de session                          | `server.rpc.sessions.fork()`                                                                      | Dupliquer une session à partir d’un point donné de l’historique                                                              |\n\n### ❌ Non disponible dans le Kit de développement logiciel (CLI uniquement)\n\n| Fonctionnalité                                        | Commande/option en ligne de commande     | Reason                                                                                                      |\n| ----------------------------------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| **Exportation de session**                            |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Exporter vers le fichier                              |                                          |                                                                                                             |\n| `--share`, `/share`                                   | Non dans le protocole                    |                                                                                                             |\n| Exporter vers un gist                                 |                                          |                                                                                                             |\n| `--share-gist`, `/share gist`                         | Non dans le protocole                    |                                                                                                             |\n| **Interface utilisateur interactive**                 |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Commandes slash                                       |                                          |                                                                                                             |\n| `/help`, `/clear`, `/exit`, etc.                      | TUI uniquement                           |                                                                                                             |\n| Boîte de dialogue de sélection d’agents               | `/agent`                                 | Interface utilisateur interactive                                                                           |\n| Boîte de dialogue mode Diff                           | `/diff`                                  | Interface utilisateur interactive                                                                           |\n| Boîte de dialogue Commentaires                        | `/feedback`                              | Interface utilisateur interactive                                                                           |\n| Sélecteur de thème                                    | `/theme`                                 | Interface utilisateur du terminal                                                                           |\n| Sélecteur de modèles                                  | `/model`                                 | Interface utilisateur interactive (utiliser le Kit de développement logiciel (SDK `setModel()` ) à la place |\n| Copier dans le Presse-papiers                         | `/copy`                                  | Spécifique au terminal                                                                                      |\n| Gestion du contexte                                   | `/context`                               | Interface utilisateur interactive                                                                           |\n| **Recherche & Histoire**                              |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Recherche approfondie                                 | `/research`                              | Flux de travail TUI avec recherche web                                                                      |\n| Outils d’historique des sessions                      | `/chronicle`                             | Réunion quotidienne, conseils, améliorer, réindexer                                                         |\n| **Fonctionnalités de terminal**                       |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Sortie de couleur                                     | `--no-color`                             | Spécifique au terminal                                                                                      |\n| Mode lecteur d’écran                                  | `--screen-reader`                        | Accessibilité                                                                                               |\n| Affichage enrichi des différences                     | `--plain-diff`                           | Rendu du terminal                                                                                           |\n| Bannière de démarrage                                 | `--banner`                               | Élément visuel                                                                                              |\n| Mode diffusion                                        | `/streamer-mode`                         | Mode d’affichage TUI                                                                                        |\n| Tampon d'écran alternatif                             |                                          |                                                                                                             |\n| `--alt-screen`, `--no-alt-screen`                     | Rendu du terminal                        |                                                                                                             |\n| Prise en charge de la souris                          |                                          |                                                                                                             |\n| `--mouse`, `--no-mouse`                               | Entrée du terminal                       |                                                                                                             |\n| **Raccourcis de chemin d'accès/autorisation**         |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Autoriser tous les chemins d’accès                    | `--allow-all-paths`                      | Utiliser le gestionnaire d’autorisations                                                                    |\n| Autoriser toutes les URL                              | `--allow-all-urls`                       | Utiliser le gestionnaire d’autorisations                                                                    |\n| Autoriser toutes les autorisations                    |                                          |                                                                                                             |\n| `--yolo`, `--allow-all`, `/allow-all`                 | Utiliser le gestionnaire d’autorisations |                                                                                                             |\n| Autorisations d’outil granulaires                     |                                          |                                                                                                             |\n| `--allow-tool`, `--deny-tool`                         | Utiliser un `onPreToolUse` hook          |                                                                                                             |\n| Contrôle d’accès d’URL                                |                                          |                                                                                                             |\n| `--allow-url`, `--deny-url`                           | Utiliser le gestionnaire d’autorisations |                                                                                                             |\n| Réinitialiser les outils autorisés                    | `/reset-allowed-tools`                   | Commande TUI                                                                                                |\n| **Gestion des répertoires**                           |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Ajouter un répertoire                                 |                                          |                                                                                                             |\n| `/add-dir`, `--add-dir`                               | Configurer dans la session               |                                                                                                             |\n| Répertorier les répertoires                           | `/list-dirs`                             | Commande TUI                                                                                                |\n| Modifier le répertoire                                | `/cwd`                                   | Commande TUI                                                                                                |\n| **Gestion du plug-in/MCP**                            |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Commandes de plug-in                                  | `/plugin`                                | Gestion interactive                                                                                         |\n| Gestion du serveur MCP                                | `/mcp`                                   | Interface utilisateur interactive                                                                           |\n| **Gestion des comptes**                               |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Flux de connexion                                     |                                          |                                                                                                             |\n| `/login`, `copilot auth login`                        | Flux d’appareil OAuth                    |                                                                                                             |\n| Déconnexion                                           |                                          |                                                                                                             |\n| `/logout`, `copilot auth logout`                      | Interface CLI directe                    |                                                                                                             |\n| Informations de l′utilisateur                         | `/user`                                  | Commande TUI                                                                                                |\n| **Opérations de session**                             |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Supprimer la conversation                             | `/clear`                                 | TUI uniquement                                                                                              |\n| Vue en plan                                           | `/plan`                                  | TUI uniquement (utiliser le Kit de développement logiciel (SDK `session.rpc.plan.*` ) à la place            |\n| Gestion des sessions                                  |                                          |                                                                                                             |\n| `/session`, `/resume`, `/rename`                      | Flux de travail TUI                      |                                                                                                             |\n| Mode flotte (interactif)                              | `/fleet`                                 | TUI uniquement (utiliser le Kit de développement logiciel (SDK `session.rpc.fleet.start()` ) à la place     |\n| **Gestion des compétences**                           |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Gérer les compétences                                 | `/skills`                                | Interface utilisateur interactive                                                                           |\n| **Gestion des tâches**                                |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Afficher les tâches en arrière-plan                   | `/tasks`                                 | Commande TUI                                                                                                |\n| **Statistiques d’utilisation**                        |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Utilisation des jetons                                | `/usage`                                 | S’abonner aux événements d’utilisation                                                                      |\n| **Évaluation du code**                                |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Examiner les modifications                            | `/review`                                | Commande TUI                                                                                                |\n| **Délégation**                                        |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Déléguer au service des relations publiques           | `/delegate`                              | Flux de travail TUI                                                                                         |\n| **Configuration du terminal**                         |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Intégration de Shell                                  | `/terminal-setup`                        | Spécifique à l’interpréteur de commandes                                                                    |\n| **Développement**                                     |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Activer/désactiver les fonctionnalités expérimentales |                                          |                                                                                                             |\n| `/experimental`, `--experimental`                     | Indicateur d’exécution                   |                                                                                                             |\n| Gestion des instructions personnalisées               | `--no-custom-instructions`               | Indicateur CLI                                                                                              |\n| Diagnostiquer la session                              | `/diagnose`                              | Commande TUI                                                                                                |\n| Afficher/gérer les instructions                       | `/instructions`                          | Commande TUI                                                                                                |\n| Collecter les journaux de débogage                    | `/collect-debug-logs`                    | Outil de diagnostic                                                                                         |\n| Réindexer l’espace de travail                         | `/reindex`                               | Commande TUI                                                                                                |\n| Intégration de l’IDE                                  | `/ide`                                   | Flux de travail spécifique à l’IDE                                                                          |\n| **Mode non interactif**                               |                                          |                                                                                                             |\n|                                                       |                                          |                                                                                                             |\n| Mode d’invite                                         |                                          |                                                                                                             |\n| `-p`, `--prompt`                                      | Exécution en un seul coup                |                                                                                                             |\n| Invite interactive                                    |                                          |                                                                                                             |\n| `-i`, `--interactive`                                 | Exécution automatique, puis interactive  |                                                                                                             |\n| Sortie silencieuse                                    |                                          |                                                                                                             |\n| `-s`, `--silent`                                      | Compatible avec les scripts              |                                                                                                             |\n| Continuer la session                                  | `--continue`                             | Reprendre le plus récent                                                                                    |\n| Sélection de l’agent                                  | `--agent <agent>`                        | Indicateur CLI                                                                                              |\n\n## Solutions de contournement\n\n### Mode flotte\n\nLe mode Fleet est disponible via `session.rpc.fleet.start()` pour les applications SDK qui souhaitent que le runtime répartisse des sous-agents en parallèle afin d’atteindre un objectif plus large. Utilisez-la lorsque des tâches subordonnées indépendantes peuvent s’exécuter simultanément, puis être résumées par la session principale. Pour obtenir un guide complet, consultez [Mode flotte](/fr/copilot/how-tos/copilot-sdk/features/fleet-mode).\n\n### Exportation de session\n\nL’option `--share` n’est pas disponible via le Kit de développement logiciel (SDK). Contournements:\n\n1. **Collectez manuellement des événements : abonnez-vous** aux événements de session et générez votre propre exportation :\n\n   ```typescript\n   const events: SessionEvent[] = [];\n   session.on((event) => events.push(event));\n   // ... after conversation ...\n   const messages = await session.getEvents();\n   // Format as markdown yourself\n   ```\n\n2. **Utilisez l’interface CLI directement pour l’exportation** : exécutez l’interface CLI avec `--share` pour les exportations ponctuelles.\n\n### Contrôle d’autorisation\n\nLe Kit de développement logiciel (SDK) utilise un modèle d’autorisation **refuser par défaut** . Toutes les demandes d’autorisation (écritures de fichiers, commandes d’interpréteur de commandes, extractions d’URL, etc.) sont refusées, sauf si votre application fournit un `onPermissionRequest` gestionnaire.\n\nAu lieu de `--allow-all-paths` ou `--yolo`, utilisez le gestionnaire d’autorisations :\n\n```typescript\nconst session = await client.createSession({\n  onPermissionRequest: approveAll,\n});\n```\n\n### Suivi de l’utilisation des jetons\n\nAu lieu de`/usage`, abonnez-vous aux événements d’utilisation\n\n```typescript\nsession.on(\"assistant.usage\", (event) => {\n  console.log(\"Tokens used:\", {\n    input: event.data.inputTokens,\n    output: event.data.outputTokens,\n  });\n});\n```\n\n### Compactage de contexte\n\nAu lieu de `/compact`, configurez le compactage automatique ou déclenchez-le manuellement :\n\n```typescript\n// Automatic compaction via config\nconst session = await client.createSession({\n  infiniteSessions: {\n    enabled: true,\n    backgroundCompactionThreshold: 0.80,  // Start background compaction at 80% context utilization\n    bufferExhaustionThreshold: 0.95,      // Block and compact at 95% context utilization\n  },\n});\n\n// Manual compaction (experimental)\nconst result = await session.rpc.history.compact();\nconsole.log(`Removed ${result.tokensRemoved} tokens, ${result.messagesRemoved} messages`);\n```\n\n> \\[!NOTE]\n> Les seuils sont des ratios d’utilisation du contexte (0,0-1,0), et non des nombres de jetons absolus.\n\n### Gestion du plan\n\nLire et écrire des plans de session programmatiquement.\n\n```typescript\n// Read the current plan\nconst plan = await session.rpc.plan.read();\nif (plan.exists) {\n  console.log(plan.content);\n}\n\n// Update the plan\nawait session.rpc.plan.update({ content: \"# My Plan\\n- Step 1\\n- Step 2\" });\n\n// Delete the plan\nawait session.rpc.plan.delete();\n```\n\n### Direction des messages\n\nInjecter un message dans le tour actuel du LLM sans interrompre :\n\n```typescript\n// Steer the agent mid-turn\nawait session.send({ prompt: \"Focus on error handling first\", mode: \"immediate\" });\n\n// Default: enqueue for next turn\nawait session.send({ prompt: \"Next, add tests\" });\n```\n\n## Limitations du protocole\n\nLe Kit de développement logiciel (SDK) peut accéder uniquement aux fonctionnalités exposées via le protocole JSON-RPC de l’interface CLI. Si vous avez besoin d’une fonctionnalité CLI qui n’est pas disponible :\n\n1. **Rechercher des alternatives** : de nombreuses fonctionnalités ont des équivalents sdk (voir les solutions de contournement ci-dessus)\n2. **Utiliser l’interface CLI directement** - Pour les opérations ponctuelles, appelez l’interface CLI\n3. **Demander la fonctionnalité** - Ouvrir un problème pour demander la prise en charge du protocole\n\n## Compatibilité des versions\n\n| Plage de protocoles SDK | Version du protocole CLI | Compatibilité                                      |\n| ----------------------- | ------------------------ | -------------------------------------------------- |\n| v2-v3                   | v3                       | Prise en charge complète                           |\n| v2-v3                   | v2                       | Pris en charge par les adaptateurs v2 automatiques |\n\nLe Kit de développement logiciel (SDK) négocie les versions du protocole avec l’interface CLI au démarrage. Le SDK prend en charge les versions de protocole 2 à 3. Lors de la connexion à un serveur CLI v2, le SDK adapte automatiquement les messages `tool.call` et `permission.request` au modèle d’événement v3, sans qu’aucun changement de code ne soit nécessaire.\n\nVérifiez les versions au moment de l’exécution :\n\n```typescript\nconst status = await client.getStatus();\nconsole.log(\"Protocol version:\", status.protocolVersion);\n```\n\n## Voir aussi\n\n* [Créez votre première application avec Copilot](/fr/copilot/how-tos/copilot-sdk/getting-started)\n* [Hooks de session](/fr/copilot/how-tos/copilot-sdk/hooks/hooks-overview)\n* [Utilisation de serveurs MCP avec le SDK GitHub Copilot](/fr/copilot/how-tos/copilot-sdk/features/mcp)\n* [Guide de débogage](/fr/copilot/how-tos/copilot-sdk/troubleshooting/debugging)"}