import React from 'react'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { toast } from '@/components/ui'; import { useI18n } from '@/lib/i18n'; import { runtimeFetch } from '@/lib/runtime-fetch'; type ProviderId = 'exe-dev' | 'ollama-cloud' | 'cursor'; type Status = { configured: boolean; secretMasked?: string }; type CredentialPayload = { usageToken?: string; cookie?: string; accessToken?: string; refreshToken?: string }; const EXE_DEV_TOKEN_COMMAND = `ssh exe.dev "ssh-key generate-api-key --label=openchamber --exp=30d --cmds='billing credits usage'"`; export const QuotaCredentials: React.FC<{ providerId: ProviderId; providerName: string }> = ({ providerId, providerName }) => { const { t } = useI18n(); const [status, setStatus] = React.useState(null); const [values, setValues] = React.useState({}); const [busy, setBusy] = React.useState(false); const route = `/api/quota/credentials/${providerId}`; React.useEffect(() => { void runtimeFetch(route).then(async (response) => { if (!response.ok) throw new Error(); const next: Status = await response.json(); setStatus(next); setValues({}); }).catch(() => setStatus({ configured: false })); }, [route]); const request = async (path: string, method: string, body?: CredentialPayload) => { setBusy(true); try { const response = await runtimeFetch(path, { method, headers: body ? { 'Content-Type': 'application/json' } : undefined, body: body ? JSON.stringify(body) : undefined }); const payload = await response.json().catch(() => null); if (!response.ok) throw new Error(payload?.error); if (payload?.configured !== undefined) setStatus(payload); setValues({}); toast.success(t('settings.providers.page.quotaCredentials.saved', { provider: providerName })); } catch (error) { toast.error(error instanceof Error && error.message ? error.message : t('settings.providers.page.openCodeGo.saveFailed')); } finally { setBusy(false); } }; const field = (name: keyof CredentialPayload, label: string, placeholder: string) => ; return

{providerName}

{providerId === 'exe-dev' &&

{t('settings.providers.page.quotaCredentials.exeDevTokenInstructions')}

{EXE_DEV_TOKEN_COMMAND}
} {providerId === 'ollama-cloud' && field('cookie', t('settings.providers.page.openCodeGo.authCookie'), 'aid=...; __Secure-session=...')} {providerId === 'exe-dev' && field('usageToken', t('settings.providers.page.quotaCredentials.usageToken'), t('settings.providers.page.quotaCredentials.tokenPlaceholder'))} {providerId === 'cursor' && field('accessToken', t('settings.providers.page.quotaCredentials.accessToken'), t('settings.providers.page.quotaCredentials.tokenPlaceholder'))} {providerId === 'cursor' && field('refreshToken', t('settings.providers.page.quotaCredentials.refreshToken'), t('settings.providers.page.quotaCredentials.tokenPlaceholder'))}
{status?.configured && } {providerId === 'cursor' && } {status?.configured && }
; };