// desktop/src/api/providers.ts import { api } from './client' import type { SavedProvider, CreateProviderInput, UpdateProviderInput, TestProviderConfigInput, ProviderTestResult, } from '../types/provider' import type { ProviderPreset } from '../config/providerPresets' type ProvidersResponse = { providers: SavedProvider[]; activeId: string | null } type ProviderResponse = { provider: SavedProvider } type PresetsResponse = { presets: ProviderPreset[] } type TestResultResponse = { result: ProviderTestResult } type AuthStatusResponse = { hasAuth: boolean source: 'cc-haha-provider' | 'original-settings' | 'env' | 'none' activeProvider?: string } export const providersApi = { list() { return api.get('/api/providers') }, presets() { return api.get('/api/providers/presets') }, authStatus() { return api.get('/api/providers/auth-status') }, create(input: CreateProviderInput) { return api.post('/api/providers', input) }, update(id: string, input: UpdateProviderInput) { return api.put(`/api/providers/${id}`, input) }, delete(id: string) { return api.delete<{ ok: true }>(`/api/providers/${id}`) }, activate(id: string) { return api.post<{ ok: true }>(`/api/providers/${id}/activate`) }, activateOfficial() { return api.post<{ ok: true }>('/api/providers/official') }, test(id: string, overrides?: { baseUrl?: string; modelId?: string; apiFormat?: string }) { return api.post(`/api/providers/${id}/test`, overrides) }, testConfig(input: TestProviderConfigInput) { return api.post('/api/providers/test', input) }, }