#!/bin/bash # record-usage.sh - Regista uso de componentes na telemetria # Pode ser chamado manualmente ou via hooks # Author: Descomplicar® # # Uso: ./record-usage.sh [success] [duration_ms] # Exemplo: ./record-usage.sh agent wordpress-plugin-developer 1 5200 set -e TYPE="${1:-agent}" COMPONENT="${2:-unknown}" SUCCESS="${3:-1}" DURATION="${4:-0}" SESSION_ID="${CLAUDE_SESSION_ID:-manual}" # Validar argumentos if [[ -z "$COMPONENT" || "$COMPONENT" == "unknown" ]]; then echo "Usage: $0 [success] [duration_ms]" echo "Types: agent, skill, mcp_tool, lsp" exit 1 fi # Determinar tabela baseado no tipo case "$TYPE" in agent) TABLE="cr_agent_usage" ID_COLUMN="agent_id" LOOKUP_TABLE="cr_agents" ;; skill) TABLE="cr_skill_usage" ID_COLUMN="skill_id" LOOKUP_TABLE="cr_skills" ;; mcp_tool) TABLE="cr_mcp_tool_usage" ID_COLUMN="mcp_tool_id" LOOKUP_TABLE="cr_mcp_tools" ;; lsp) TABLE="cr_lsp_usage" ID_COLUMN="lsp_id" LOOKUP_TABLE="cr_lsps" ;; *) echo "Unknown type: $TYPE" exit 1 ;; esac # Gerar SQL para inserção # Nota: Este SQL seria executado via desk-crm-v3 MCP SQL="INSERT INTO $TABLE ($ID_COLUMN, session_id, success, duration_sec, created_at) SELECT id, '$SESSION_ID', $SUCCESS, $((DURATION / 1000)), NOW() FROM $LOOKUP_TABLE WHERE slug = '$COMPONENT' LIMIT 1;" # Output SQL para debug ou execução manual echo "-- Record Usage: $TYPE/$COMPONENT" echo "$SQL" # Se EXECUTE_SQL=1, tentar executar via mysql client (se disponível) if [[ "${EXECUTE_SQL:-0}" == "1" ]]; then if command -v mysql &> /dev/null && [[ -n "$MYSQL_HOST" ]]; then mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASS" "$MYSQL_DB" -e "$SQL" echo "-- Executed successfully" else echo "-- MySQL client not available or credentials not set" echo "-- Set MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB to execute" fi fi exit 0