feat(settings): refactor agent auth modes and add model provider authentication

- Split env vars and config file persistence into separate save operations
- Add model_provider_id field to agent_setting for tracking selected provider
- Add "Model Provider" auth mode for Claude Code, Codex CLI, and Gemini CLI
- Add "Custom Endpoint" auth mode for Claude Code (previously only official subscription)
- Unify auth mode labels across all three agents (official subscription / custom endpoint / model provider)
- When model provider is selected, fill api_url and api_key into env and config automatically
- Resolve model provider credentials at ACP connect time as a backend fallback
- Clear provider deletion cascades to agent_setting.model_provider_id
- Claude Code writes API credentials to config.env (ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN)
- Codex: switching auth modes patches config.toml instead of clearing it
- Add i18n keys for new auth modes in all 10 supported languages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
xintaofei
2026-04-06 22:10:18 +08:00
parent d28c54a038
commit b64976e4d6
24 changed files with 1269 additions and 276 deletions

View File

@@ -565,7 +565,18 @@
"gatewayTokenHint": "Utilisez token-file plutôt quun token en clair si possible ; configurez-le via le CLI openclaw.",
"sessionKeyHint": "Optionnel. Spécifie la session key de la gateway ; laisser vide pour auto-attribuer une session isolée."
},
"authModeOfficialSubscription": "Abonnement officiel",
"authModeCustomEndpoint": "Endpoint personnalisé",
"authModeCustomEndpointHint": "Configurer manuellement l'URL API et la clé API pour un endpoint personnalisé.",
"authModeModelProvider": "Fournisseur de modèle",
"modelProvider": "Fournisseur de modèle",
"modelProviderHint": "Utiliser l'URL API et la clé API d'un fournisseur de modèle configuré.",
"selectModelProvider": "Sélectionner un fournisseur de modèle",
"noModelProviderAvailable": "Aucun fournisseur de modèle configuré pour cet agent. Allez dans les paramètres des fournisseurs de modèle pour en ajouter un.",
"claude": {
"authMode": "Mode d'authentification",
"officialSubscription": "Abonnement officiel",
"officialSubscriptionHint": "Utiliser l'abonnement officiel Anthropic, pas de clé API requise.",
"mainModel": "Modèle principal",
"reasoningModel": "Modèle de raisonnement (thinking)",
"haikuDefaultModel": "Modèle Haiku par défaut",
@@ -624,7 +635,8 @@
"configSavedHint": "Les sessions existantes doivent être rouvertes pour prendre effet",
"saveConfigManagementFailed": "Échec de lenregistrement de la gestion de configuration",
"clineSaved": "Configuration Cline enregistrée",
"saveClineFailed": "Échec de l'enregistrement de la configuration Cline"
"saveClineFailed": "Échec de l'enregistrement de la configuration Cline",
"modelProviderRequired": "Veuillez sélectionner un fournisseur de modèle avant d'enregistrer."
},
"version": {
"statusLabel": "Statut de version",