- 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>
67 lines
1.9 KiB
Bash
Executable File
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"
|