#!/usr/bin/env bash # detect-provider.sh — detecta el proveedor LLM disponible desde .env # # Salida: dos palabras en stdout — " " # claude-code sonnet (DEFAULT) # openai gpt-4o # anthropic claude-sonnet-4-20250514 # # Orden de detección (claude-code primero — REGLA DEL PROYECTO): # 1. CLAUDE binary disponible en PATH → claude-code sonnet # 2. OPENAI_API_KEY → openai gpt-4o # 3. ANTHROPIC_API_KEY → anthropic claude-sonnet-4-20250514 # Fallback: claude-code sonnet (binary `claude` debe estar instalado) # # Uso: # read -r PROVIDER MODEL < <(./dev-scripts/agent/detect-provider.sh) # ./dev-scripts/agent/detect-provider.sh # imprime "claude-code sonnet" source "$(dirname "$0")/../_common.sh" load_env # Default models por provider CLAUDE_CODE_DEFAULT_MODEL="sonnet" OPENAI_DEFAULT_MODEL="gpt-4o" ANTHROPIC_DEFAULT_MODEL="claude-sonnet-4-20250514" # 1. claude-code (preferido) — solo requiere el binario `claude` en PATH if command -v claude >/dev/null 2>&1; then echo "claude-code $CLAUDE_CODE_DEFAULT_MODEL" exit 0 fi # 2. OpenAI API key if [[ -n "${OPENAI_API_KEY:-}" ]]; then echo "openai $OPENAI_DEFAULT_MODEL" exit 0 fi # 3. Anthropic API key if [[ -n "${ANTHROPIC_API_KEY:-}" ]]; then echo "anthropic $ANTHROPIC_DEFAULT_MODEL" exit 0 fi # Fallback: claude-code (warning porque el binario falta) warn "Ningun proveedor disponible (binary 'claude' missing, OPENAI_API_KEY/ANTHROPIC_API_KEY missing) — usando fallback claude-code/sonnet (instala claude CLI)" >&2 echo "claude-code $CLAUDE_CODE_DEFAULT_MODEL" exit 0