agent-ecosystem/src/renderer/components/runtime/providerTerminalCommands.ts

58 lines
1.4 KiB
TypeScript

import type { CliProviderStatus } from '@shared/types';
export interface ProviderTerminalCommand {
args: string[];
env?: Record<string, string>;
}
export function getProviderTerminalCommand(provider: CliProviderStatus): ProviderTerminalCommand {
if (provider.providerId === 'gemini') {
return {
args: ['login'],
env: {
CLAUDE_CODE_ENTRY_PROVIDER: 'gemini',
CLAUDE_CODE_GEMINI_BACKEND: provider.selectedBackendId ?? 'auto',
},
};
}
if (provider.providerId === 'codex') {
return {
args: ['auth', 'login', '--provider', provider.providerId],
env: {
CLAUDE_CODE_CODEX_BACKEND: provider.selectedBackendId ?? 'codex-native',
},
};
}
return {
args: ['auth', 'login', '--provider', provider.providerId],
};
}
export function getProviderTerminalLogoutCommand(
provider: CliProviderStatus
): ProviderTerminalCommand {
if (provider.providerId === 'gemini') {
return {
args: ['logout'],
env: {
CLAUDE_CODE_ENTRY_PROVIDER: 'gemini',
CLAUDE_CODE_GEMINI_BACKEND: provider.selectedBackendId ?? 'auto',
},
};
}
if (provider.providerId === 'codex') {
return {
args: ['auth', 'logout', '--provider', provider.providerId],
env: {
CLAUDE_CODE_CODEX_BACKEND: provider.selectedBackendId ?? 'codex-native',
},
};
}
return {
args: ['auth', 'logout', '--provider', provider.providerId],
};
}