From 7128ce5dec645bf3e6c0544a7a0ec28bfc6bc633 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sun, 1 Nov 2026 13:00:17 -0500 Subject: [PATCH] feat(hermes): paquet anthropic dans le venv (provider natif claude) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les lignes du sélecteur de modèle SANS suffixe [1m] (claude-opus-5-5, claude-opus-5, claude-sonnet-5) passent par le provider natif anthropic, pas par claude-subscription-directsdk. Sans le paquet python anthropic dans le venv scellé, une session ouverte sur une de ces lignes meurt en agent_init_failed : "The 'anthropic' package is required for the Anthropic provider" (lazy installs désactivés par le packaging nix). Auth du provider natif : aucune clé API à poser, agent/anthropic_credentials.py prend l'OAuth de l'abonnement dans ~/.claude/.credentials.json (refresh et réécriture gérés par Hermes), ou un grant Hermes via hermes auth add anthropic --type oauth. Les lignes AVEC [1m] (provider claude-subscription-directsdk, CLI claude) ne changent pas. Supprime aussi la ligne commentée devenue doublon : extraDependencyGroups n'est défini qu'une fois. --- services/hermes/default.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/services/hermes/default.nix b/services/hermes/default.nix index dd41382..c209921 100644 --- a/services/hermes/default.nix +++ b/services/hermes/default.nix @@ -196,7 +196,17 @@ in { # les vocaux entrants. Sans lui le gateway répond "voice message could not # be transcribed automatically" et le cas d'usage "je parle dans mes # écouteurs depuis Element" ne marche pas. - extraDependencyGroups = ["matrix" "edge-tts" "stt-whisper"]; + # - "anthropic" : paquet du provider natif `anthropic`, celui des lignes du + # sélecteur de modèle SANS suffixe [1m] (claude-opus-5-5, claude-opus-5, + # claude-sonnet-5). Sans lui, une session ouverte sur une de ces lignes + # meurt en agent_init_failed ("The 'anthropic' package is required for the + # Anthropic provider"). Les lignes AVEC [1m] passent par le provider + # claude-subscription-directsdk (CLI `claude`) et n'en ont pas besoin. + # Auth de ce provider natif : pas de clé API, agent/anthropic_credentials.py + # prend l'OAuth de l'abonnement dans ~/.claude/.credentials.json (refresh et + # réécriture gérés par Hermes) ou un grant Hermes + # (hermes auth add anthropic --type oauth). + extraDependencyGroups = ["matrix" "edge-tts" "stt-whisper" "anthropic"]; # claude-code CLI sur le PATH du service : requis par le plugin officiel # claude-subscription-directsdk (provider sur abonnement Claude Pro/Max, @@ -215,7 +225,6 @@ in { # lecture en vocal échoue. pkgs.ffmpeg ]; - # extraDependencyGroups = ["anthropic"]; # settings.model = { # base_url = "https://api.anthropic.com/v1"; # default = "anthropic/claude-sonnet-4";