/**
 * 사용자 지정 modelName 으로 추론 호출 시도할 때, 첫 호출이 404 / not-loaded
 * 류로 실패할 가능성에 대비한 fallback 후보 목록을 만든다.
 *
 * LM Studio 한정: `gemma3:4b` 같은 ":quant suffix" 형태가 안 먹히면 base name
 * (`gemma3`) 도 시도하게 한 줄 더 push. Ollama 는 항상 정확한 이름을 요구하므로
 * candidates 는 1개.
 *
 * Stateless — agent.ts 의 private 메서드 그대로 추출.
 */
export function buildModelCandidates(modelName: string, engine: 'lmstudio' | 'ollama'): string[] {
    const candidates = [modelName];
    if (engine === 'lmstudio') {
        const baseModel = modelName.replace(/:\d+$/, '');
        if (baseModel && baseModel !== modelName) {
            candidates.push(baseModel);
        }
    }
    return candidates;
}
