diff --git a/ui/src/components/cliproxy/provider-editor/index.tsx b/ui/src/components/cliproxy/provider-editor/index.tsx index 2d9f14ff..a153dbbd 100644 --- a/ui/src/components/cliproxy/provider-editor/index.tsx +++ b/ui/src/components/cliproxy/provider-editor/index.tsx @@ -31,6 +31,7 @@ export function ProviderEditor({ authStatus, catalog, logoProvider, + isRemoteMode, onAddAccount, onSetDefault, onRemoveAccount, @@ -124,6 +125,7 @@ export function ProviderEditor({ hasChanges={hasChanges} isRawJsonValid={isRawJsonValid} isSaving={saveMutation.isPending} + isRemoteMode={isRemoteMode} onRefetch={refetch} onSave={() => saveMutation.mutate()} /> diff --git a/ui/src/components/cliproxy/provider-editor/provider-editor-header.tsx b/ui/src/components/cliproxy/provider-editor/provider-editor-header.tsx index f64f9605..718949e7 100644 --- a/ui/src/components/cliproxy/provider-editor/provider-editor-header.tsx +++ b/ui/src/components/cliproxy/provider-editor/provider-editor-header.tsx @@ -18,6 +18,7 @@ interface ProviderEditorHeaderProps { hasChanges: boolean; isRawJsonValid: boolean; isSaving: boolean; + isRemoteMode?: boolean; onRefetch: () => void; onSave: () => void; } @@ -31,6 +32,7 @@ export function ProviderEditorHeader({ hasChanges, isRawJsonValid, isSaving, + isRemoteMode, onRefetch, onSave, }: ProviderEditorHeaderProps) { @@ -41,13 +43,13 @@ export function ProviderEditorHeader({
Last modified: {new Date(data.mtime).toLocaleString()}
diff --git a/ui/src/components/cliproxy/provider-editor/types.ts b/ui/src/components/cliproxy/provider-editor/types.ts index 4d1d87a6..6bea9288 100644 --- a/ui/src/components/cliproxy/provider-editor/types.ts +++ b/ui/src/components/cliproxy/provider-editor/types.ts @@ -21,6 +21,8 @@ export interface ProviderEditorProps { catalog?: ProviderCatalog; /** Provider type for logo display (defaults to provider) */ logoProvider?: string; + /** True if using remote CLIProxy mode (hides local paths) */ + isRemoteMode?: boolean; onAddAccount: () => void; onSetDefault: (accountId: string) => void; onRemoveAccount: (accountId: string) => void; diff --git a/ui/src/lib/api-client.ts b/ui/src/lib/api-client.ts index 36254505..c545c433 100644 --- a/ui/src/lib/api-client.ts +++ b/ui/src/lib/api-client.ts @@ -249,7 +249,8 @@ export const api = { }, cliproxy: { list: () => request<{ variants: Variant[] }>('/cliproxy'), - getAuthStatus: () => request<{ authStatus: AuthStatus[] }>('/cliproxy/auth'), + getAuthStatus: () => + request<{ authStatus: AuthStatus[]; source?: 'remote' | 'local' }>('/cliproxy/auth'), create: (data: CreateVariant) => request('/cliproxy', { method: 'POST', diff --git a/ui/src/pages/cliproxy.tsx b/ui/src/pages/cliproxy.tsx index 46f668ac..b9fc21a9 100644 --- a/ui/src/pages/cliproxy.tsx +++ b/ui/src/pages/cliproxy.tsx @@ -192,6 +192,7 @@ export function CliproxyPage() { } | null>(null); const providers = useMemo(() => authData?.authStatus || [], [authData?.authStatus]); + const isRemoteMode = authData?.source === 'remote'; const variants = useMemo(() => variantsData?.variants || [], [variantsData?.variants]); // Auto-select first provider if nothing selected @@ -338,6 +339,7 @@ export function CliproxyPage() { authStatus={parentAuthForVariant} catalog={MODEL_CATALOGS[selectedVariantData.provider]} logoProvider={selectedVariantData.provider} + isRemoteMode={isRemoteMode} onAddAccount={() => setAddAccountProvider({ provider: selectedVariantData.provider, @@ -365,6 +367,7 @@ export function CliproxyPage() { displayName={selectedStatus.displayName} authStatus={selectedStatus} catalog={MODEL_CATALOGS[selectedStatus.provider]} + isRemoteMode={isRemoteMode} onAddAccount={() => setAddAccountProvider({ provider: selectedStatus.provider,