feat: add Codex OAuth login and fix channel config display
- Add OpenAI Codex Device Code Flow login (backend polling + frontend modal) - Codex provider integrated into preset dropdown (hides URL/API key fields) - Sync provider model catalogs with Hermes system - Fix channel config not displaying on first visit (wait for data load) - Fix sidebar model list not refreshing after adding provider - Add autocomplete="off" to API key input to prevent browser autofill Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import { request } from '../client'
|
||||
|
||||
export interface CodexStartResult {
|
||||
session_id: string
|
||||
user_code: string
|
||||
verification_url: string
|
||||
expires_in: number
|
||||
}
|
||||
|
||||
export interface CodexPollResult {
|
||||
status: 'pending' | 'approved' | 'expired' | 'error'
|
||||
error: string | null
|
||||
}
|
||||
|
||||
export interface CodexStatusResult {
|
||||
authenticated: boolean
|
||||
last_refresh?: string
|
||||
}
|
||||
|
||||
export async function startCodexLogin(): Promise<CodexStartResult> {
|
||||
return request<CodexStartResult>('/api/hermes/auth/codex/start', { method: 'POST' })
|
||||
}
|
||||
|
||||
export async function pollCodexLogin(sessionId: string): Promise<CodexPollResult> {
|
||||
return request<CodexPollResult>(`/api/hermes/auth/codex/poll/${sessionId}`)
|
||||
}
|
||||
|
||||
export async function getCodexAuthStatus(): Promise<CodexStatusResult> {
|
||||
return request<CodexStatusResult>('/api/hermes/auth/codex/status')
|
||||
}
|
||||
Reference in New Issue
Block a user