- 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>
107 lines
3.3 KiB
Bash
Executable File
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
|