54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import type { CliFlavor, CliFlavorUiOptions } from '@shared/types';
|
|
|
|
export const DEFAULT_CLI_FLAVOR: CliFlavor = 'agent_teams_orchestrator';
|
|
|
|
function parseFlavorOverride(raw: string | undefined): CliFlavor | null {
|
|
const trimmed = raw?.trim();
|
|
if (trimmed === 'claude' || trimmed === 'agent_teams_orchestrator') {
|
|
return trimmed;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
export function getConfiguredCliFlavor(): CliFlavor {
|
|
const envOverride = parseFlavorOverride(process.env.CLAUDE_TEAM_CLI_FLAVOR);
|
|
if (envOverride) {
|
|
return envOverride;
|
|
}
|
|
|
|
return DEFAULT_CLI_FLAVOR;
|
|
}
|
|
|
|
export function getCliFlavorUiOptions(flavor: CliFlavor): CliFlavorUiOptions {
|
|
switch (flavor) {
|
|
case 'agent_teams_orchestrator':
|
|
return {
|
|
displayName: 'Multimodel runtime',
|
|
supportsSelfUpdate: false,
|
|
showVersionDetails: false,
|
|
showBinaryPath: false,
|
|
};
|
|
case 'claude':
|
|
default:
|
|
return {
|
|
displayName: 'Claude CLI',
|
|
supportsSelfUpdate: true,
|
|
showVersionDetails: true,
|
|
showBinaryPath: true,
|
|
};
|
|
}
|
|
}
|
|
|
|
export function getCliFlavorCommandLabel(flavor: CliFlavor): string {
|
|
switch (flavor) {
|
|
case 'agent_teams_orchestrator':
|
|
return 'orchestrator-cli';
|
|
case 'claude':
|
|
default:
|
|
return 'claude';
|
|
}
|
|
}
|
|
|
|
export function getConfiguredCliCommandLabel(): string {
|
|
return getCliFlavorCommandLabel(getConfiguredCliFlavor());
|
|
}
|