ecom-store/scripts/integration/m5-vault-sync.sh
Iris Florencio 8874ce3f44 feat: integração Vault + Ruflo + Pi Agent
- scripts/integration/m5-vault-sync.sh: sync vault → ruflo memory
- scripts/integration/m5-pi-ruflo.sh: bridge Pi ↔ Ruflo (tasks, memory, vault)
- scripts/integration/m5-healthcheck.sh: health check AI via Pi
- scripts/integration/pi-task.sh: wrapper subagente Pi
- Ruflo memory populada com 10 docs do vault
- Tasks obsoletas completadas, 4 novas criadas
- Hook post-session-sync adicionado ao Stop
- Cron: vault-sync 06:00, healthcheck 09:00
- Pi Agent integrado com Ruflo e vault Obsidian

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 22:24:06 -03:00

67 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# m5-vault-sync — Sincroniza vault Obsidian → Ruflo Memory
# Uso: m5-vault-sync [--full]
# Sem args: sincroniza documentos-chave
# --full: sincroniza todos os .md do vault raiz
VAULT="/root/ecommerce/vault/ecommerce-kb"
PROJECT="/root/ecommerce"
DATE=$(date '+%Y-%m-%d %H:%M')
echo "🔄 M5 Vault Sync — $DATE"
# Documentos-chave a sincronizar sempre
KEY_DOCS=(
"SYSTEMS-STATUS.md:systems-status"
"INTEGRATIONS.md:integrations"
"N8N-WORKFLOWS.md:n8n-workflows"
"CHATWOOT-SETUP.md:chatwoot-setup"
"TWENTY-CRM-SETUP.md:twenty-crm-setup"
"OMNIROUTE-EVOLUTION-09jul2026.md:omniroute-evolution"
"DASHBOARD.md:dashboard"
)
sync_doc() {
local file="$1"
local key="$2"
local filepath="$VAULT/$file"
if [ -f "$filepath" ]; then
# Limitar a 4KB pra não estourar o memory backend
content=$(head -c 4096 "$filepath")
cd "$PROJECT" && ruflo memory store -k "$key" --value "$content" >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "$file$key"
else
echo "$file (erro ao armazenar)"
fi
else
echo " ⚠️ $file não encontrado"
fi
}
# Sincronizar docs chave
for entry in "${KEY_DOCS[@]}"; do
IFS=":" read -r file key <<< "$entry"
sync_doc "$file" "$key"
done
# Atualizar metadados
cd "$PROJECT" && ruflo memory store -k "vault-sync-timestamp" \
--value "Última sincronização: $DATE. Vault: $VAULT. Docs sincronizados: ${#KEY_DOCS[@]}" >/dev/null 2>&1
# Se --full, sincronizar todos os .md da raiz do vault
if [ "$1" = "--full" ]; then
echo ""
echo "📚 Sync completo (todos os .md raiz):"
for f in "$VAULT"/*.md; do
[ -f "$f" ] || continue
basename=$(basename "$f" .md)
key=$(echo "$basename" | tr 'A-Z ' 'a-z-' | tr -cd 'a-z0-9-')
sync_doc "$(basename $f)" "vault-$key"
done
fi
echo ""
echo "✅ Sync concluído — $(cd "$PROJECT" && ruflo memory list 2>/dev/null | grep -c '✓') entradas no Ruflo Memory"