import { FREE_MODELS, FREE_ROLES } from "../config/defaults.js"; export { FREE_MODELS, FREE_ROLES }; export interface FreeMapping { model?: string; enabled: boolean; reason?: string } /** * Which of the reference free models the host actually has configured. This is discovery * for the installer, not policy: what a run may use is whatever `models.tiers` declares. */ export function discoverFreeModels(available: readonly string[]): Record { const roster = new Set(available); const critical = roster.has(FREE_ROLES.normal); return { scout: roster.has(FREE_ROLES.scout) ? { model: FREE_ROLES.scout, enabled: true } : critical ? { model: FREE_ROLES.normal, enabled: true, reason: `fallback:missing:${FREE_ROLES.scout}` } : { enabled: false, reason: `missing:${FREE_ROLES.scout}` }, normal: critical ? { model: FREE_ROLES.normal, enabled: true } : { enabled: false, reason: `missing:${FREE_ROLES.normal}` }, deep: critical ? { model: FREE_ROLES.deep, enabled: true } : { enabled: false, reason: `missing:${FREE_ROLES.deep}` }, }; }