From 1e60fe186e700ab00bd739b29085635053cba822 Mon Sep 17 00:00:00 2001 From: Simon Shi Date: Thu, 21 May 2026 03:06:18 +0900 Subject: [PATCH] feat(cliproxy): add Qoder to channel catalog, model routing, and UI Add Qoder provider to integration layers and dashboard UI: - Channel-to-provider mapping in catalog-cache - Model routing owner hints - Provider editor owner map - Setup wizard provider list - Fallback visuals and brand color --- src/cliproxy/services/catalog-cache.ts | 1 + src/shared/cliproxy-model-routing.ts | 1 + ui/src/components/cliproxy/provider-editor/index.tsx | 1 + ui/src/components/setup/wizard/constants.ts | 1 + ui/src/lib/provider-config.ts | 2 ++ 5 files changed, 6 insertions(+) diff --git a/src/cliproxy/services/catalog-cache.ts b/src/cliproxy/services/catalog-cache.ts index 925d7370..6216d641 100644 --- a/src/cliproxy/services/catalog-cache.ts +++ b/src/cliproxy/services/catalog-cache.ts @@ -38,6 +38,7 @@ const CHANNEL_TO_PROVIDER: Record = { kimi: 'kimi', kiro: 'kiro', 'github-copilot': 'ghcp', + qoder: 'qoder', }; /** CCS provider → channel name mapping (reverse) */ diff --git a/src/shared/cliproxy-model-routing.ts b/src/shared/cliproxy-model-routing.ts index b6194ac4..9c12f52d 100644 --- a/src/shared/cliproxy-model-routing.ts +++ b/src/shared/cliproxy-model-routing.ts @@ -57,6 +57,7 @@ const PROVIDER_OWNER_HINTS: Record = { kimi: ['kimi', 'moonshot'], kiro: ['kiro', 'aws'], ghcp: ['github', 'copilot'], + qoder: ['qoder'], }; function normalize(value: string | null | undefined): string { diff --git a/ui/src/components/cliproxy/provider-editor/index.tsx b/ui/src/components/cliproxy/provider-editor/index.tsx index 65be5b3b..86f91126 100644 --- a/ui/src/components/cliproxy/provider-editor/index.tsx +++ b/ui/src/components/cliproxy/provider-editor/index.tsx @@ -92,6 +92,7 @@ export function ProviderEditor({ qwen: ['alibaba', 'qwen'], iflow: ['iflow'], kilo: ['kilo'], + qoder: ['qoder'], kiro: ['kiro', 'aws'], ghcp: ['github', 'copilot'], kimi: ['kimi', 'moonshot'], diff --git a/ui/src/components/setup/wizard/constants.ts b/ui/src/components/setup/wizard/constants.ts index f40b591e..1fca25f4 100644 --- a/ui/src/components/setup/wizard/constants.ts +++ b/ui/src/components/setup/wizard/constants.ts @@ -25,6 +25,7 @@ const WIZARD_PROVIDER_ORDER: CLIProxyProvider[] = [ 'iflow', 'kilo', 'kiro', + 'qoder', ]; export const PROVIDERS: ProviderOption[] = WIZARD_PROVIDER_ORDER.map((id) => ({ diff --git a/ui/src/lib/provider-config.ts b/ui/src/lib/provider-config.ts index b99bf270..d1552186 100644 --- a/ui/src/lib/provider-config.ts +++ b/ui/src/lib/provider-config.ts @@ -135,6 +135,7 @@ export const PROVIDER_FALLBACK_VISUALS: Record = { gitlab: '#FC6D26', codebuddy: '#2563EB', kilo: '#E11D48', + qoder: '#D97706', ghcp: '#43aa8b', claude: '#D97757', kimi: '#FF6B35',