feat: add StepFun and Nous Portal provider support (#140)
- Add StepFun provider (API key auth, STEPFUN_API_KEY) - Add Nous Portal provider with full OAuth device code flow (device code request → poll for token → mint agent key → save to auth.json) - Add NousLoginModal component for OAuth UI (user code display + verification link) - Update ProviderFormModal to handle Nous OAuth flow (hide API key fields) - Add nous-auth backend controller and routes - Update PROVIDER_ENV_MAP with stepfun and nous entries - Add i18n translations for Nous OAuth in all 8 locales Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -243,6 +243,13 @@ export default {
|
||||
codexOpenLink: 'Autorisierungsseite öffnen',
|
||||
codexApproved: 'Anmeldung erfolgreich',
|
||||
codexExpired: 'Die Autorisierung ist abgelaufen. Bitte versuchen Sie es erneut.',
|
||||
nousLoginTitle: 'Nous Portal Login',
|
||||
nousWaiting: 'Geben Sie diesen Code auf der Autorisierungsseite ein:',
|
||||
nousCopyCode: 'Code kopiert',
|
||||
nousOpenLink: 'Autorisierungsseite öffnen',
|
||||
nousApproved: 'Login erfolgreich',
|
||||
nousDenied: 'Autorisierung wurde abgelehnt',
|
||||
nousExpired: 'Autorisierung abgelaufen',
|
||||
noProviders: 'Keine Anbieter gefunden. Fugen Sie einen benutzerdefinierten Anbieter hinzu, um zu beginnen.',
|
||||
builtIn: 'Integriert',
|
||||
customType: 'Benutzerdefiniert',
|
||||
|
||||
@@ -268,6 +268,13 @@ export default {
|
||||
codexOpenLink: 'Open authorization page',
|
||||
codexApproved: 'Login successful',
|
||||
codexExpired: 'Authorization expired. Please try again.',
|
||||
nousLoginTitle: 'Nous Portal Login',
|
||||
nousWaiting: 'Enter this code at the authorization page to complete login:',
|
||||
nousCopyCode: 'Code copied',
|
||||
nousOpenLink: 'Open authorization page',
|
||||
nousApproved: 'Login successful',
|
||||
nousDenied: 'Authorization was denied. Please try again.',
|
||||
nousExpired: 'Authorization expired. Please try again.',
|
||||
noProviders: 'No providers found. Add a custom provider to get started.',
|
||||
builtIn: 'Built-in',
|
||||
customType: 'Custom',
|
||||
|
||||
@@ -243,6 +243,13 @@ export default {
|
||||
codexOpenLink: 'Abrir página de autorización',
|
||||
codexApproved: 'Inicio de sesión exitoso',
|
||||
codexExpired: 'La autorización ha expirado. Por favor, inténtelo de nuevo.',
|
||||
nousLoginTitle: 'Inicio de sesión de Nous Portal',
|
||||
nousWaiting: 'Ingrese este código en la página de autorización:',
|
||||
nousCopyCode: 'Código copiado',
|
||||
nousOpenLink: 'Abrir página de autorización',
|
||||
nousApproved: 'Inicio de sesión exitoso',
|
||||
nousDenied: 'Autorización denegada',
|
||||
nousExpired: 'Autorización expirada',
|
||||
noProviders: 'No se encontraron proveedores. Anade un proveedor personalizado para comenzar.',
|
||||
builtIn: 'Integrado',
|
||||
customType: 'Personalizado',
|
||||
|
||||
@@ -243,6 +243,13 @@ export default {
|
||||
codexOpenLink: 'Ouvrir la page d\'autorisation',
|
||||
codexApproved: 'Connexion réussie',
|
||||
codexExpired: 'L\'autorisation a expiré. Veuillez réessayer.',
|
||||
nousLoginTitle: 'Connexion Nous Portal',
|
||||
nousWaiting: 'Entrez ce code sur la page d\'autorisation:',
|
||||
nousCopyCode: 'Code copié',
|
||||
nousOpenLink: 'Ouvrir la page d\'autorisation',
|
||||
nousApproved: 'Connexion réussie',
|
||||
nousDenied: 'Autorisation refusée',
|
||||
nousExpired: 'Autorisation expirée',
|
||||
noProviders: 'Aucun fournisseur trouve. Ajoutez un fournisseur personnalise pour commencer.',
|
||||
builtIn: 'Integre',
|
||||
customType: 'Personnalise',
|
||||
|
||||
@@ -243,6 +243,13 @@ export default {
|
||||
codexOpenLink: '認証ページを開く',
|
||||
codexApproved: 'ログイン成功',
|
||||
codexExpired: '認証の有効期限が切れました。もう一度お試しください。',
|
||||
nousLoginTitle: 'Nous Portal ログイン',
|
||||
nousWaiting: '認証ページでこのコードを入力してください:',
|
||||
nousCopyCode: 'コードをコピーしました',
|
||||
nousOpenLink: '認証ページを開く',
|
||||
nousApproved: 'ログイン成功',
|
||||
nousDenied: '認証が拒否されました',
|
||||
nousExpired: '認証の有効期限が切れました',
|
||||
noProviders: 'プロバイダーがありません。カスタムプロバイダーを追加して始めましょう。',
|
||||
builtIn: '組み込み',
|
||||
customType: 'カスタム',
|
||||
|
||||
@@ -243,6 +243,13 @@ export default {
|
||||
codexOpenLink: '인증 페이지 열기',
|
||||
codexApproved: '로그인 성공',
|
||||
codexExpired: '인증이 만료되었습니다. 다시 시도해주세요.',
|
||||
nousLoginTitle: 'Nous Portal 로그인',
|
||||
nousWaiting: '인증 페이지에서 이 코드를 입력하세요:',
|
||||
nousCopyCode: '코드 복사됨',
|
||||
nousOpenLink: '인증 페이지 열기',
|
||||
nousApproved: '로그인 성공',
|
||||
nousDenied: '인증이 거부되었습니다',
|
||||
nousExpired: '인증이 만료되었습니다',
|
||||
noProviders: 'Provider가 없습니다. 사용자 지정 Provider를 추가하여 시작하세요.',
|
||||
builtIn: '내장',
|
||||
customType: '사용자 지정',
|
||||
|
||||
@@ -243,6 +243,13 @@ export default {
|
||||
codexOpenLink: 'Abrir página de autorização',
|
||||
codexApproved: 'Login bem-sucedido',
|
||||
codexExpired: 'A autorização expirou. Por favor, tente novamente.',
|
||||
nousLoginTitle: 'Login do Nous Portal',
|
||||
nousWaiting: 'Insira este código na página de autorização:',
|
||||
nousCopyCode: 'Código copiado',
|
||||
nousOpenLink: 'Abrir página de autorização',
|
||||
nousApproved: 'Login bem-sucedido',
|
||||
nousDenied: 'Autorização negada',
|
||||
nousExpired: 'Autorização expirada',
|
||||
noProviders: 'Nenhum provedor encontrado. Adicione um provedor personalizado para comecar.',
|
||||
builtIn: 'Integrado',
|
||||
customType: 'Personalizado',
|
||||
|
||||
@@ -268,6 +268,13 @@ export default {
|
||||
codexOpenLink: '打开授权页面',
|
||||
codexApproved: '登录成功',
|
||||
codexExpired: '授权已过期,请重试。',
|
||||
nousLoginTitle: 'Nous Portal 登录',
|
||||
nousWaiting: '在授权页面输入此代码完成登录:',
|
||||
nousCopyCode: '代码已复制',
|
||||
nousOpenLink: '打开授权页面',
|
||||
nousApproved: '登录成功',
|
||||
nousDenied: '授权被拒绝,请重试。',
|
||||
nousExpired: '授权已过期,请重试。',
|
||||
noProviders: '暂无 Provider,添加一个开始吧。',
|
||||
builtIn: '内置',
|
||||
customType: '自定义',
|
||||
|
||||
Reference in New Issue
Block a user