#!/bin/sh # ============================================================================= # gerar-manifesto.sh — Gerador automático de manifesto.json # Faz auto-discovery de todos os artefatos do .agent/ e gera manifesto.json # # Uso: # ./gerar-manifesto.sh # # Saída: .agent/manifesto.json # ============================================================================= AGENT_DIR="$(cd "$(dirname "$0")" && pwd)" OUTPUT="$AGENT_DIR/manifesto.json" DATA=$(date -u +"%Y-%m-%dT%H:%M:%S-03:00") BASE_URL="https://paiol.idz.one/desenvolvimento/agent-ia" echo "🔍 Gerando manifesto.json..." # Iniciar JSON cat > "$OUTPUT" << 'HEADER' { "versao": "2.0.0", HEADER echo " \"base_url\": \"$BASE_URL\"," >> "$OUTPUT" echo " \"gerado_em\": \"$DATA\"," >> "$OUTPUT" echo " \"artefatos\": {" >> "$OUTPUT" # --- GLOBAL --- echo " \"global\": {" >> "$OUTPUT" # global/rules echo " \"rules\": [" >> "$OUTPUT" FIRST=1 for f in "$AGENT_DIR/global/rules/"*.md; do [ -f "$f" ] || continue REL="global/rules/$(basename "$f")" [ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT" printf ' "%s"' "$REL" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo " ]," >> "$OUTPUT" # global/workflows echo " \"workflows\": [" >> "$OUTPUT" FIRST=1 for f in "$AGENT_DIR/global/workflows/"*.md; do [ -f "$f" ] || continue REL="global/workflows/$(basename "$f")" [ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT" printf ' "%s"' "$REL" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo " ]," >> "$OUTPUT" # global/skills echo " \"skills\": [" >> "$OUTPUT" FIRST=1 for d in "$AGENT_DIR/global/skills/"/*/; do [ -f "$d/SKILL.md" ] || continue NOME=$(basename "$d") REL="global/skills/$NOME/SKILL.md" [ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT" printf ' "%s"' "$REL" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo " ]" >> "$OUTPUT" echo " }," >> "$OUTPUT" # --- AGENTS --- echo " \"agents\": {" >> "$OUTPUT" AGENT_FIRST=1 for agente_dir in "$AGENT_DIR/agents/"/*/; do AGENTE=$(basename "$agente_dir") [ -d "$agente_dir" ] || continue [ "$AGENT_FIRST" = "1" ] && AGENT_FIRST=0 || echo "," >> "$OUTPUT" echo " \"$AGENTE\": {" >> "$OUTPUT" # persona if [ -f "$agente_dir/persona.md" ]; then echo " \"persona\": \"agents/$AGENTE/persona.md\"," >> "$OUTPUT" fi # agent.json (se existir) if [ -f "$agente_dir/agent.json" ]; then echo " \"config\": \"agents/$AGENTE/agent.json\"," >> "$OUTPUT" fi # rules echo " \"rules\": [" >> "$OUTPUT" FIRST=1 for f in "$agente_dir/rules/"*.md; do [ -f "$f" ] || continue REL="agents/$AGENTE/rules/$(basename "$f")" [ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT" printf ' "%s"' "$REL" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo " ]," >> "$OUTPUT" # workflows echo " \"workflows\": [" >> "$OUTPUT" FIRST=1 for f in "$agente_dir/workflows/"*.md; do [ -f "$f" ] || continue REL="agents/$AGENTE/workflows/$(basename "$f")" [ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT" printf ' "%s"' "$REL" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo " ]," >> "$OUTPUT" # skills echo " \"skills\": [" >> "$OUTPUT" FIRST=1 for d in "$agente_dir/skills/"/*/; do [ -f "$d/SKILL.md" ] || continue NOME=$(basename "$d") REL="agents/$AGENTE/skills/$NOME/SKILL.md" [ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT" printf ' "%s"' "$REL" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo " ]" >> "$OUTPUT" printf " }" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo " }" >> "$OUTPUT" echo " }" >> "$OUTPUT" echo "}" >> "$OUTPUT" echo "✅ Manifesto gerado: $OUTPUT" echo "" echo "📊 Resumo:" echo " Global rules: $(ls "$AGENT_DIR/global/rules/" 2>/dev/null | wc -l | tr -d ' ')" echo " Global workflows: $(ls "$AGENT_DIR/global/workflows/" 2>/dev/null | wc -l | tr -d ' ')" echo " Global skills: $(ls "$AGENT_DIR/global/skills/" 2>/dev/null | wc -l | tr -d ' ')" echo " Agentes: $(ls -d "$AGENT_DIR/agents/"*/ 2>/dev/null | wc -l | tr -d ' ')"