#!/usr/bin/env bash # Compara la versión pineada (2.1.0) con la última disponible en PyPI. # Warnea si hay nueva pero NO actualiza automáticamente — Felipe debe correr # las evals antes de bumpear. set -euo pipefail PINNED="2.1.0" PACKAGE="ibm-watsonx-orchestrate" echo "→ Checking ADK version..." echo " Pinned: $PINNED" INSTALLED=$(pip show "$PACKAGE" 2>/dev/null | grep -i '^version:' | awk '{print $2}' || echo "not-installed") echo " Installed: $INSTALLED" LATEST=$(curl -s "https://pypi.org/pypi/$PACKAGE/json" | python3 -c "import sys, json; print(json.load(sys.stdin)['info']['version'])" 2>/dev/null || echo "unknown") echo " Latest on PyPI: $LATEST" if [ "$INSTALLED" != "$PINNED" ]; then echo "" echo "⚠ Installed ($INSTALLED) does NOT match pinned ($PINNED)." echo " Run: pip install '${PACKAGE}==${PINNED}'" fi if [ "$LATEST" != "$PINNED" ] && [ "$LATEST" != "unknown" ]; then echo "" echo "ℹ Nueva versión disponible en PyPI: $LATEST (pin: $PINNED)" echo " ANTES de actualizar:" echo " 1. Crear branch chore/adk-$LATEST" echo " 2. pip install '${PACKAGE}==${LATEST}'" echo " 3. ./evals/eval-agents.sh ← TODAS deben pasar" echo " 4. Si pasan, bumpear el pin en wxo/tools/python/requirements.txt y este script" fi echo "" echo "→ Verificando modelo preferido (gpt-oss-120b)..." if orchestrate models list 2>/dev/null | grep -q "gpt-oss-120b"; then echo " ✓ gpt-oss-120b disponible" else echo " ⚠ gpt-oss-120b NO encontrado en este tenant" echo " Fallback documentado: meta-llama/llama-3-3-70b-instruct (con caveat I-002)" fi