0005 — Le client IA utilise raw HTTP, pas le SDK Anthropic
Contexte
Chaque fonctionnalité IA (génération de stratégie, auto-réparation, garde des risques, post-mortems) appelle l'API Anthropic. Une dépendance SDK ajoute une surface transitive que nous ne contrôlons pas, couple notre cadence de libération à la leur, et cache le contrat exact du fil que nous devons raisonner pour la résilience et le coût.
Décision
IAiClient appelle Anthropic sur raw HTTP par un HttpClient typé — intentionnellement pas le SDK. AiFeatureService est l'orchestrateur unique partagé par les endpoints Web, les AiTools MCP, et AiRiskGuard. Toute la surface est contrôlée par AppOptions.Ai.ApiKey : sans clé, chaque fonctionnalité renvoie AiResult.Fail et l'app fonctionne inchangée.
Conséquences
- Aucune clé n'est requise pour le build, le test, ou l'E2E — CI et le dev local exécutent l'app complète sans IA.
- Nous possédons la forme de requête/réponse, la politique de retry/timeout, et le compte des tokens explicitement.
- Les nouvelles fonctionnalités Anthropic doivent être câblées à la main ; nous échangeons la commodité pour le contrôle et une surface de dépendance plus petite. Voir la référence
claude-apipour les id de modèles actuels et les paramètres.