agent-ecosystem/src/main/services/team/cliFlavor.ts
2026-04-24 20:52:26 +03:00

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());
}