<?php
/**
 * Smoke test rápido del LlmClient contra OpenAI.
 * Uso: php bin/ai_smoke
 */
if (php_sapi_name() !== 'cli') {
    die("CLI only.\n");
}

define('BASE_PATH', dirname(__DIR__) . DIRECTORY_SEPARATOR);
require BASE_PATH . 'core/helpers/Env.php';
Env::load(BASE_PATH . '.env');
require BASE_PATH . 'app/config/Config.php';
require BASE_PATH . 'app/config/ConfigEnv.php';
require BASE_PATH . 'vendor/autoload.php';
ConfigEnv::applyEnvironmentOverrides();

use Klee\Core\Ai\LlmClient;

$cfg = ConfigEnv::getAiConfiguration();
echo "Provider: {$cfg['provider']} | Model: {$cfg['model']} | Key set: "
    . ($cfg['active'] ? 'YES' : 'NO') . "\n";

if (!$cfg['active']) {
    echo "[!] OPENAI_API_KEY no encontrada en .env. Aborto.\n";
    exit(1);
}

$llm = new LlmClient($cfg);
try {
    $resp = $llm->complete(array(
        'system' => 'Responde SOLO con JSON válido: {"ok": true, "echo": "<la palabra recibida>"}',
        'user' => 'monitoreo',
        'json' => true,
        'max_tokens' => 50,
    ));
    echo "Respuesta: " . $resp['content'] . "\n";
    echo "Tokens in/out: {$resp['usage']['tokens_in']}/{$resp['usage']['tokens_out']}\n";
    echo "[ok] Conexión OpenAI funcional.\n";
} catch (Throwable $e) {
    echo "[ERROR] " . $e->getMessage() . "\n";
    exit(2);
}
