- Adicionado estrutura completa do projeto - Configurado MCP server para Premiere Pro - Adicionado documentação e skills - Configurado Gitignore para o projeto
41 lines
1.3 KiB
Bash
Executable File
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
|