143 lines
4.1 KiB
Bash
Executable file
143 lines
4.1 KiB
Bash
Executable file
#!/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 ' ')"
|