#!/usr/bin/env bash # Scaffolding de un nuevo specialist: copia los templates y rellena REPLACE_*. # Uso: # ./scripts/new-specialist.sh # Ejemplo: # ./scripts/new-specialist.sh ad_specialist_acme identidad set -euo pipefail if [ $# -lt 2 ]; then echo "Usage: $0 " echo "Example: $0 ad_specialist_acme identidad" exit 1 fi NAME="$1" DOMAIN="$2" ROOT="$(cd "$(dirname "$0")/.." && pwd)" AGENT_FILE="$ROOT/wxo/agents/${NAME}.agent.yaml" TOOLS_FILE="$ROOT/wxo/tools/python/${DOMAIN}_tools.py" KB_FILE="$ROOT/wxo/knowledge_base/kb_${DOMAIN}.kb.yaml" CONN_FILE="$ROOT/wxo/connections/${DOMAIN}_connection.yaml" # Copiar agent template y reemplazar if [ ! -f "$AGENT_FILE" ]; then cp "$ROOT/wxo/agents/_template-specialist.agent.yaml" "$AGENT_FILE" sed -i.bak "s/REPLACE_specialist_name/${NAME}/g; s/REPLACE_DOMINIO/${DOMAIN}/g; s/REPLACE_domain/${DOMAIN}/g; s/REPLACE_kb_name/kb_${DOMAIN}/g" "$AGENT_FILE" rm "${AGENT_FILE}.bak" echo "✓ Created: $AGENT_FILE" else echo "⚠ Already exists: $AGENT_FILE — skipping" fi if [ ! -f "$TOOLS_FILE" ]; then cp "$ROOT/wxo/tools/python/_template_tools.py" "$TOOLS_FILE" sed -i.bak "s/REPLACE_domain/${DOMAIN}/g" "$TOOLS_FILE" rm "${TOOLS_FILE}.bak" echo "✓ Created: $TOOLS_FILE" fi if [ ! -f "$KB_FILE" ]; then cp "$ROOT/wxo/knowledge_base/_template.kb.yaml" "$KB_FILE" sed -i.bak "s/REPLACE_kb_name/kb_${DOMAIN}/g; s/REPLACE_DOMINIO/${DOMAIN}/g" "$KB_FILE" rm "${KB_FILE}.bak" echo "✓ Created: $KB_FILE (acordate de agregar los runbooks)" fi if [ ! -f "$CONN_FILE" ]; then cp "$ROOT/wxo/connections/_template-keyvalue.yaml" "$CONN_FILE" sed -i.bak "s/REPLACE_app_name/${DOMAIN}_demo/g; s/REPLACE_SISTEMA/${DOMAIN}/g" "$CONN_FILE" rm "${CONN_FILE}.bak" echo "✓ Created: $CONN_FILE" fi echo "" echo "Siguientes pasos:" echo " 1. Editar $AGENT_FILE — rellenar REPLACE_* restantes" echo " 2. Editar $TOOLS_FILE — implementar las tools de ${DOMAIN}" echo " 3. Crear runbook bajo wxo/knowledge_base/runbooks/ y referenciarlo en $KB_FILE" echo " 4. Si ${DOMAIN} no es un mock, considerá usar _template-apikey-header.yaml en lugar de keyvalue" echo " 5. Si ${NAME} debe ser collaborator de un orchestrator, agregalo allí" echo " 6. ./scripts/deploy-wxo.sh"