87 lines
2.6 KiB
Bash
87 lines
2.6 KiB
Bash
#!/bin/sh
|
|
# =============================================================================
|
|
# configurar-gemini-agents.sh — Configura agentes Azteca no Antigravity
|
|
#
|
|
# Cria symlinks de .gemini/agents/ag-* → .agent/agents/ag-*
|
|
# para que o Antigravity descubra os agentes customizados.
|
|
#
|
|
# Uso (executar na RAIZ do projeto filho, onde .agent/ é submodule):
|
|
# sh .agent/configurar-gemini-agents.sh
|
|
#
|
|
# O script automaticamente gera os agent.json se ainda não existirem.
|
|
#
|
|
# Resultado:
|
|
# .gemini/agents/ag-back → ../../.agent/agents/ag-back
|
|
# .gemini/agents/ag-front → ../../.agent/agents/ag-front
|
|
# ... (todos os agentes)
|
|
# =============================================================================
|
|
|
|
set -e
|
|
|
|
# Verificar que estamos na raiz de um projeto com .agent/
|
|
if [ ! -d ".agent/agents" ]; then
|
|
echo "❌ Diretório .agent/agents/ não encontrado."
|
|
echo " Execute este script na raiz do projeto (onde .agent/ é submodule)."
|
|
exit 1
|
|
fi
|
|
|
|
# Verificar/gerar agent.json
|
|
FIRST_AGENT=$(ls .agent/agents/ | head -1)
|
|
if [ ! -f ".agent/agents/$FIRST_AGENT/agent.json" ]; then
|
|
echo "⚙ agent.json não encontrados. Gerando..."
|
|
if [ -f ".agent/adaptadores/antigravity/gerar-agent-json.sh" ]; then
|
|
sh .agent/adaptadores/antigravity/gerar-agent-json.sh
|
|
echo ""
|
|
else
|
|
echo "❌ Adaptador não encontrado: .agent/adaptadores/antigravity/gerar-agent-json.sh"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Criar .gemini/agents/ se não existir
|
|
mkdir -p .gemini/agents
|
|
|
|
# Contadores
|
|
CRIADOS=0
|
|
EXISTENTES=0
|
|
|
|
# Criar symlinks para cada agente
|
|
for agente_dir in .agent/agents/*/; do
|
|
agente=$(basename "$agente_dir")
|
|
|
|
# Verificar que tem agent.json
|
|
if [ ! -f "$agente_dir/agent.json" ]; then
|
|
echo "⚠ Pulando $agente (sem agent.json)"
|
|
continue
|
|
fi
|
|
|
|
destino=".gemini/agents/$agente"
|
|
|
|
if [ -L "$destino" ]; then
|
|
# Symlink já existe — verificar se aponta para o lugar certo
|
|
atual=$(readlink "$destino")
|
|
esperado="../../.agent/agents/$agente"
|
|
if [ "$atual" = "$esperado" ]; then
|
|
EXISTENTES=$((EXISTENTES + 1))
|
|
continue
|
|
else
|
|
echo "🔄 Atualizando symlink: $agente ($atual → $esperado)"
|
|
rm "$destino"
|
|
fi
|
|
elif [ -d "$destino" ]; then
|
|
echo "⚠ $destino é um diretório real (não symlink) — pulando"
|
|
continue
|
|
fi
|
|
|
|
ln -s "../../.agent/agents/$agente" "$destino"
|
|
CRIADOS=$((CRIADOS + 1))
|
|
echo "✅ Symlink: .gemini/agents/$agente → .agent/agents/$agente"
|
|
done
|
|
|
|
echo ""
|
|
echo "📋 Resumo:"
|
|
echo " Criados: $CRIADOS"
|
|
echo " Já existiam: $EXISTENTES"
|
|
echo " Total de agentes: $(ls -d .agent/agents/*/ | wc -l)"
|
|
echo ""
|
|
echo "✅ Pronto! Os agentes Azteca agora são acessíveis via @ag-* no chat do Antigravity."
|