Files
João Henrique b541f502ba feat: initial commit - Jhonny Editor
- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto
2026-09-08 09:59:31 -04:00

41 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Hook PostToolUse: reindexa no RAG só o arquivo que acabou de ser editado.
#
# Sem isso o índice envelhece em silêncio e passa a apontar para código que
# já mudou — o que anula o ganho da busca. Reindexar um arquivo custa alguns
# embeddings (~1s), então dá para fazer a cada edição.
#
# Lê o JSON do hook em stdin e roteia por extensão/diretório para o banco
# certo (Swift novo -> rag_tigre, Python legado -> rag_doza). Nunca falha o
# hook: erro de RAG não pode travar edição.
RAG_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(dirname "$RAG_DIR")"
FILE=$(python3 -c '
import json, sys
try:
d = json.load(sys.stdin)
except Exception:
sys.exit(0)
print(d.get("tool_input", {}).get("file_path", ""))
' 2>/dev/null) || exit 0
REL="${FILE#$PROJECT_ROOT/}"
case "$REL" in
code/node_modules/*|code/dist/*) exit 0 ;;
code/*.ts|code/*.tsx|code/*.js|code/*.jsx|code/*.json|code/*.py|code/*.md|code/*.sql|code/*.sh) ENV_FILE="jhonny.env" ;;
*) exit 0 ;;
esac
# Só reindexa se o túnel já estiver de pé: não vale abrir conexão SSH no
# meio de uma edição.
nc -z 127.0.0.1 55435 2>/dev/null || exit 0
PY="${RAG_DIR}/.venv/bin/python3"
[ -x "$PY" ] || PY="$(command -v python3)"
RAG_ENV_FILE="$RAG_DIR/$ENV_FILE" "$PY" "$RAG_DIR/index_code.py" \
--file "$REL" >/dev/null 2>&1 &
exit 0