#!/usr/bin/env bash # logs.sh — sigue los logs de agentes (logs//YYYY-MM-DD.jsonl) # # Uso: # ./dev-scripts/server/logs.sh # tail -f de todos los agentes (hoy) # ./dev-scripts/server/logs.sh assistant-bot # tail -f de un agente específico # ./dev-scripts/server/logs.sh assistant-bot 100 # últimas 100 líneas source "$(dirname "$0")/../_common.sh" LOG_DIR="logs" AGENT_ID="${1:-}" LINES="${2:-50}" if [[ ! -d "$LOG_DIR" ]]; then fail "No hay logs todavía — inicia el launcher primero" fi TODAY="$(date -u +%Y-%m-%d)" if [[ -n "$AGENT_ID" ]]; then # Logs de un agente específico LOG_FILE="$LOG_DIR/$AGENT_ID/$TODAY.jsonl" if [[ ! -f "$LOG_FILE" ]]; then # Try to find the latest log file for this agent LATEST="$(ls -t "$LOG_DIR/$AGENT_ID/"*.jsonl 2>/dev/null | head -1)" if [[ -z "$LATEST" ]]; then fail "No hay logs para $AGENT_ID" fi LOG_FILE="$LATEST" fi info "Siguiendo logs: $LOG_FILE" dim " Ctrl+C para salir" echo "" tail -n "$LINES" -f "$LOG_FILE" else # Logs de todos los agentes (archivos de hoy) FILES=$(find "$LOG_DIR" -name "$TODAY.jsonl" 2>/dev/null) if [[ -z "$FILES" ]]; then # Fallback: latest file from each agent FILES="" for d in "$LOG_DIR"/*/; do LATEST="$(ls -t "$d"*.jsonl 2>/dev/null | head -1)" [[ -n "$LATEST" ]] && FILES="$FILES $LATEST" done fi if [[ -z "$FILES" ]]; then fail "No hay logs todavía — inicia el launcher primero" fi info "Siguiendo logs de todos los agentes (hoy: $TODAY)" dim " Ctrl+C para salir" echo "" # shellcheck disable=SC2086 tail -n "$LINES" -f $FILES fi