#!/usr/bin/env bash
# aresumen — busca en notas .md y pregunta a Ollama
# Episodio 824 — atareao con Linux
#
# Uso: aresumen <concepto>
# Requiere: fd, rg, jq, Ollama (http://localhost:11434)

# Aliases básicos
alias f='fd'
alias rg='rg --smart-case'
alias rga='rg -uuu'        # Búsqueda nuclear

# Función 1: buscar en notas Markdown
buscar_notas() {
    local patron="$1"
    fd -e md -X rg -C 2 --smart-case "$patron"
}
# Uso: buscar_notas ollama

# Función 2: buscar por extensión y texto
btexto() {
    local ext="$1"
    local texto="$2"
    fd -e "$ext" -X rg --smart-case "$texto"
}
# Uso: btexto py "def test_"

# Función 3: aresumen — el pipeline IA completo
# Busca contexto en tus notas y lo envía a Ollama
aresumen() {
    local concepto="$1"
    if [ -z "$concepto" ]; then
        echo "Uso: aresumen <concepto>"
        return 1
    fi
    local contexto
    contexto=$(fd -e md -X rg -C 5 "$concepto" 2>/dev/null)
    if [ -z "$contexto" ]; then
        echo "No se encontró información sobre: $concepto"
        return 1
    fi
    echo "$contexto" | curl -s http://localhost:11434/api/generate \
        -d "{\"model\": \"llama3.2\",
             \"prompt\": \"Resume el siguiente contenido sobre $concepto:\n$(cat)\n\",
             \"stream\": false}" \
        | jq -r '.response'
}
# Uso: aresumen fd

# Función 4: rfb — buscador interactivo (rg + fzf + bat)
# Como vimos en el episodio 810
rfb() {
    if [ -z "$1" ]; then
        echo "Uso: rfb <texto_a_buscar>"
        return 1
    fi
    rg --line-number --no-heading --color=always --smart-case "$1" | \
        fzf --ansi \
            --color="ansi" \
            --delimiter=":" \
            --preview="bat --color=always --highlight-line={2} {1}" \
            --preview-window="right:60%:wrap" \
            --bind="enter:become(${EDITOR:-nano} +{2} {1})"
}
# Uso: rfb ollama — busca, previsualiza con bat, abre editor en la línea exacta
