feat(ui): update cliproxy components with kiro and ghcp providers

- add ghcp to PROVIDER_IMAGES and PROVIDER_CONFIG in provider-logo

- update providers array and options in cliproxy-dialog

- add kiro and ghcp to providerLabels in cliproxy-table

- complete providers list in cliproxy-header

- update ownerMap key from copilot to ghcp in provider-editor
This commit is contained in:
kaitranntt
2025-12-22 00:47:34 -05:00
parent bf3d51ade3
commit 099b712d4a
5 changed files with 10 additions and 5 deletions
@@ -14,7 +14,7 @@ import { Label } from '@/components/ui/label';
import { useCreateVariant, useCliproxyAuth } from '@/hooks/use-cliproxy'; import { useCreateVariant, useCliproxyAuth } from '@/hooks/use-cliproxy';
import { usePrivacy } from '@/contexts/privacy-context'; import { usePrivacy } from '@/contexts/privacy-context';
const providers = ['gemini', 'codex', 'agy', 'qwen', 'iflow', 'kiro', 'copilot'] as const; const providers = ['gemini', 'codex', 'agy', 'qwen', 'iflow', 'kiro', 'ghcp'] as const;
const schema = z.object({ const schema = z.object({
name: z name: z
@@ -40,7 +40,7 @@ const providerOptions = [
{ value: 'qwen', label: 'Alibaba Qwen' }, { value: 'qwen', label: 'Alibaba Qwen' },
{ value: 'iflow', label: 'iFlow' }, { value: 'iflow', label: 'iFlow' },
{ value: 'kiro', label: 'Kiro (AWS)' }, { value: 'kiro', label: 'Kiro (AWS)' },
{ value: 'copilot', label: 'GitHub Copilot' }, { value: 'ghcp', label: 'GitHub Copilot (OAuth)' },
]; ];
export function CliproxyDialog({ open, onClose }: CliproxyDialogProps) { export function CliproxyDialog({ open, onClose }: CliproxyDialogProps) {
@@ -116,7 +116,10 @@ export function CliproxyHeader({
{ id: 'gemini', displayName: 'Gemini' }, { id: 'gemini', displayName: 'Gemini' },
{ id: 'codex', displayName: 'Codex' }, { id: 'codex', displayName: 'Codex' },
{ id: 'agy', displayName: 'Agy' }, { id: 'agy', displayName: 'Agy' },
{ id: 'qwen', displayName: 'Qwen' },
{ id: 'iflow', displayName: 'iFlow' },
{ id: 'kiro', displayName: 'Kiro' }, { id: 'kiro', displayName: 'Kiro' },
{ id: 'ghcp', displayName: 'GitHub Copilot' },
]; ];
const getProviderStatus = (providerId: string) => { const getProviderStatus = (providerId: string) => {
@@ -35,6 +35,8 @@ const providerLabels: Record<string, string> = {
agy: 'Antigravity', agy: 'Antigravity',
qwen: 'Alibaba Qwen', qwen: 'Alibaba Qwen',
iflow: 'iFlow', iflow: 'iFlow',
kiro: 'Kiro (AWS)',
ghcp: 'GitHub Copilot (OAuth)',
}; };
export function CliproxyTable({ data }: CliproxyTableProps) { export function CliproxyTable({ data }: CliproxyTableProps) {
@@ -55,7 +55,7 @@ export function ProviderEditor({
qwen: ['alibaba', 'qwen'], qwen: ['alibaba', 'qwen'],
iflow: ['iflow'], iflow: ['iflow'],
kiro: ['kiro', 'aws'], kiro: ['kiro', 'aws'],
copilot: ['github', 'copilot'], ghcp: ['github', 'copilot'],
}; };
const owners = ownerMap[provider.toLowerCase()] || [provider.toLowerCase()]; const owners = ownerMap[provider.toLowerCase()] || [provider.toLowerCase()];
return modelsData.models.filter((m) => return modelsData.models.filter((m) =>
+2 -2
View File
@@ -19,7 +19,7 @@ const PROVIDER_IMAGES: Record<string, string> = {
qwen: '/assets/providers/qwen-color.svg', qwen: '/assets/providers/qwen-color.svg',
iflow: '/assets/providers/iflow.png', iflow: '/assets/providers/iflow.png',
kiro: '/assets/providers/kiro.png', kiro: '/assets/providers/kiro.png',
copilot: '/assets/providers/copilot.svg', ghcp: '/assets/providers/copilot.svg',
}; };
/** Provider color configuration (for fallback only - no background for image logos) */ /** Provider color configuration (for fallback only - no background for image logos) */
@@ -31,7 +31,7 @@ const PROVIDER_CONFIG: Record<string, { text: string; letter: string }> = {
qwen: { text: 'text-cyan-600', letter: 'Q' }, qwen: { text: 'text-cyan-600', letter: 'Q' },
iflow: { text: 'text-indigo-600', letter: 'i' }, iflow: { text: 'text-indigo-600', letter: 'i' },
kiro: { text: 'text-teal-600', letter: 'K' }, kiro: { text: 'text-teal-600', letter: 'K' },
copilot: { text: 'text-green-600', letter: 'C' }, ghcp: { text: 'text-green-600', letter: 'C' },
}; };
/** Size configuration */ /** Size configuration */