/** * Legacy model aliases used by the old Hugging Face proxy. */ export const LEGACY_MODEL_ALIASES = Object.freeze({ 'antigravity/gemini-3-flash': 'gemini-3.5-flash-low', 'gemini-3-flash': 'gemini-3.5-flash-low', 'antigravity/gemini-3-pro-low': 'gemini-3.1-pro-low', 'gemini-3-pro-low': 'gemini-3.1-pro-low', 'antigravity/gemini-3-pro-high': 'gemini-3.1-pro-high', 'gemini-3-pro-high': 'gemini-3.1-pro-high' }); export function resolveCloudCodeApiModel(requestedModel) { const model = String(requestedModel || '').trim(); if (/gemini-3(?:\.\d+)?-pro-high$/i.test(model)) { return model.replace(/pro-high$/i, 'pro-low'); } return model; } export function applyProHighThinkingFallback(googleRequest, requestedModel) { if (!/gemini-3(?:\.\d+)?-pro-high$/i.test(String(requestedModel || ''))) { return; } googleRequest.generationConfig = googleRequest.generationConfig || {}; googleRequest.generationConfig.thinkingConfig = { includeThoughts: true, thinkingLevel: 'high' }; } export function stripProviderPrefix(modelName) { const model = String(modelName || '').trim(); if (!model) return ''; return model.startsWith('antigravity/') ? model.slice('antigravity/'.length) : model; } export function resolveModelAlias(modelName, configuredMappings = {}) { const original = String(modelName || '').trim(); const stripped = stripProviderPrefix(original); const configured = configuredMappings?.[original]?.mapping || configuredMappings?.[stripped]?.mapping; if (configured) return configured; return LEGACY_MODEL_ALIASES[original] || LEGACY_MODEL_ALIASES[stripped] || stripped; } export function appendLegacyModelAliases(modelListResponse) { const data = Array.isArray(modelListResponse?.data) ? [...modelListResponse.data] : []; const existing = new Set(data.map(model => model.id)); const created = Math.floor(Date.now() / 1000); for (const [alias, target] of Object.entries(LEGACY_MODEL_ALIASES)) { if (!alias.startsWith('antigravity/')) continue; if (!existing.has(target) || existing.has(alias)) continue; data.push({ id: alias, object: 'model', created, owned_by: 'antigravity-proxy', description: `Legacy alias for ${target}` }); existing.add(alias); } return { object: 'list', data }; }