ecom-store/scripts/integration/m5-pi-ruflo.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

107 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
# m5-pi-ruflo — Bridge entre Pi Agent e Ruflo
# Permite ao Pi consultar/atualizar tasks, memory e vault
#
# Uso:
# m5-pi-ruflo task list — listar tasks pendentes
# m5-pi-ruflo task create "desc" — criar task
# m5-pi-ruflo memory search "query" — buscar na memória
# m5-pi-ruflo memory store KEY VAL — armazenar na memória
# m5-pi-ruflo vault read FILE — ler arquivo do vault
# m5-pi-ruflo vault update FILE — atualizar arquivo do vault (usa stdin)
# m5-pi-ruflo vault list — listar docs do vault
# m5-pi-ruflo sync — executar m5-vault-sync
# m5-pi-ruflo status — status geral
PROJECT="/root/ecommerce"
VAULT="$PROJECT/vault/ecommerce-kb"
case "$1" in
task)
case "$2" in
list)
cd "$PROJECT" && ruflo task list 2>/dev/null | grep -v "Loading\|ONNX\|embedder"
;;
create)
shift 2
cd "$PROJECT" && ruflo task create -t implementation -d "$*" -p normal 2>/dev/null | grep -v "Loading\|ONNX\|embedder"
;;
*)
echo "Uso: m5-pi-ruflo task {list|create \"desc\"}"
;;
esac
;;
memory)
case "$2" in
search)
shift 2
cd "$PROJECT" && ruflo memory search "$*" 2>/dev/null | grep -v "Loading\|ONNX\|embedder"
;;
store)
KEY="$3"
shift 3
cd "$PROJECT" && ruflo memory store -k "$KEY" --value "$*" 2>/dev/null | grep -v "Loading\|ONNX\|embedder"
;;
list)
cd "$PROJECT" && ruflo memory list 2>/dev/null | grep -v "Loading\|ONNX\|embedder"
;;
*)
echo "Uso: m5-pi-ruflo memory {search \"query\"|store KEY VAL|list}"
;;
esac
;;
vault)
case "$2" in
read)
FILE="$3"
if [ -f "$VAULT/$FILE" ]; then
cat "$VAULT/$FILE"
elif [ -f "$VAULT/$FILE.md" ]; then
cat "$VAULT/$FILE.md"
else
echo "❌ Arquivo não encontrado: $FILE"
echo "Disponíveis:"
ls "$VAULT"/*.md 2>/dev/null | xargs -I{} basename {}
fi
;;
update)
FILE="$3"
if [ -z "$FILE" ]; then
echo "Uso: m5-pi-ruflo vault update FILENAME (conteúdo via stdin)"
exit 1
fi
TARGET="$VAULT/$FILE"
[ "${FILE%.md}" = "$FILE" ] && TARGET="$VAULT/$FILE.md"
cat > "$TARGET"
echo "✅ Atualizado: $TARGET"
;;
list)
echo "Documentos no vault ($VAULT):"
ls "$VAULT"/*.md 2>/dev/null | xargs -I{} basename {} | sort
;;
*)
echo "Uso: m5-pi-ruflo vault {read FILE|update FILE|list}"
;;
esac
;;
sync)
m5-vault-sync
;;
status)
echo "=== M5 Ruflo Status ==="
echo "Project: $PROJECT"
echo "Vault: $VAULT"
cd "$PROJECT" && ruflo status 2>/dev/null | grep -v "Loading\|ONNX\|embedder"
;;
*)
echo "m5-pi-ruflo — Bridge Pi Agent ↔ Ruflo"
echo ""
echo "Comandos:"
echo " task list|create — gerenciar tasks"
echo " memory search|store|list — consultar/armazenar memória"
echo " vault read|update|list — acessar vault Obsidian"
echo " sync — sincronizar vault → ruflo"
echo " status — status geral"
;;
esac