import { crearCliente, modelo } from "@/lib/propuesta/cliente-ia"; // No llama a la API. Comprueba el contrato local y que el fallo sin clave sea claro. let fallas = 0; function check(n: string, ok: boolean, d = "") { console.log(`${ok ? " OK " : " FALLA"} | ${n}${d ? " -> " + d : ""}`); if (!ok) fallas++; } const guardada = process.env.MINIMAX_API_KEY; const guardadaBase = process.env.MINIMAX_BASE_URL; delete process.env.MINIMAX_API_KEY; let msg = ""; try { crearCliente(); } catch (e) { msg = e instanceof Error ? e.message : String(e); } check("sin clave falla en vez de llamar a ciegas", msg.length > 0); check("el error nombra la variable correcta", msg.includes("MINIMAX_API_KEY")); check("el error advierte del prefijo ANTHROPIC_", msg.includes("ANTHROPIC_API_KEY")); process.env.MINIMAX_API_KEY = "clave-de-prueba"; delete process.env.MINIMAX_BASE_URL; const c = crearCliente(); check("baseURL apunta a MiniMax por defecto", String(c.baseURL).includes("api.minimax.io"), String(c.baseURL)); check("modelo por defecto es MiniMax-M3", modelo() === "MiniMax-M3", modelo()); // Aunque el shell tenga ANTHROPIC_BASE_URL, el cliente no debe hacerle caso. process.env.ANTHROPIC_BASE_URL = "https://api.anthropic.com"; const c2 = crearCliente(); check("ANTHROPIC_BASE_URL del shell no secuestra el baseURL", !String(c2.baseURL).includes("api.anthropic.com"), String(c2.baseURL)); delete process.env.ANTHROPIC_BASE_URL; process.env.MINIMAX_BASE_URL = "https://ejemplo.local/anthropic"; check("MINIMAX_BASE_URL si se respeta", String(crearCliente().baseURL).includes("ejemplo.local")); process.env.MINIMAX_MODEL = "MiniMax-M2"; check("MINIMAX_MODEL se respeta", modelo() === "MiniMax-M2"); delete process.env.MINIMAX_MODEL; if (guardada) process.env.MINIMAX_API_KEY = guardada; else delete process.env.MINIMAX_API_KEY; if (guardadaBase) process.env.MINIMAX_BASE_URL = guardadaBase; else delete process.env.MINIMAX_BASE_URL; console.log(fallas === 0 ? "\ntodo paso\n" : `\n${fallas} fallas\n`); process.exit(fallas === 0 ? 0 : 1);