import { request } from './client' export interface DisplayConfig { compact?: boolean personality?: string resume_display?: string busy_input_mode?: string bell_on_complete?: boolean show_reasoning?: boolean streaming?: boolean inline_diffs?: boolean show_cost?: boolean skin?: string } export interface AgentConfig { max_turns?: number gateway_timeout?: number restart_drain_timeout?: number service_tier?: string tool_use_enforcement?: string } export interface MemoryConfig { memory_enabled?: boolean user_profile_enabled?: boolean memory_char_limit?: number user_char_limit?: number } export interface SessionResetConfig { mode?: string idle_minutes?: number at_hour?: number } export interface PrivacyConfig { redact_pii?: boolean } export interface AppConfig { display?: DisplayConfig agent?: AgentConfig memory?: MemoryConfig session_reset?: SessionResetConfig privacy?: PrivacyConfig telegram?: Record discord?: Record slack?: Record whatsapp?: Record matrix?: Record weixin?: Record wecom?: Record feishu?: Record dingtalk?: Record platforms?: Record [key: string]: any } export async function fetchConfig(sections?: string[]): Promise { const query = sections ? `?sections=${sections.join(',')}` : '' return request(`/api/config${query}`) } export async function updateConfigSection( section: string, values: Record, ): Promise { await request('/api/config', { method: 'PUT', body: JSON.stringify({ section, values }), }) } export async function saveCredentials( platform: string, values: Record, ): Promise { await request('/api/config/credentials', { method: 'PUT', body: JSON.stringify({ platform, values }), }) } export interface WeixinQrCode { qrcode: string qrcode_url: string } export interface WeixinQrStatus { status: 'wait' | 'scaned' | 'scaned_but_redirect' | 'expired' | 'confirmed' account_id?: string token?: string base_url?: string } export async function fetchWeixinQrCode(): Promise { return request('/api/weixin/qrcode') } export async function pollWeixinQrStatus(qrcode: string): Promise { return request(`/api/weixin/qrcode/status?qrcode=${encodeURIComponent(qrcode)}`) } export async function saveWeixinCredentials(data: { account_id: string token: string base_url?: string }): Promise { await request('/api/weixin/save', { method: 'POST', body: JSON.stringify(data), }) }