clawd/scripts/qwen-gguf-watch.sh

38 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Watch for Qwen3.5 GGUF quantizations from Bartowski
# Notifies via James dashboard + Signal when available
MODELS=(
"bartowski/Qwen3.5-27B-GGUF"
"bartowski/Qwen3.5-35B-A3B-GGUF"
"Qwen/Qwen3.5-27B-GGUF"
"Qwen/Qwen3.5-35B-A3B-GGUF"
)
FOUND=0
for model in "${MODELS[@]}"; do
result=$(curl -s "https://huggingface.co/api/models/$model" 2>/dev/null)
if echo "$result" | python3 -c "import json,sys; d=json.load(sys.stdin); files=[s.get('rfilename','') for s in d.get('siblings',[])]; has_gguf=any('.gguf' in f.lower() for f in files); print(has_gguf)" 2>/dev/null | grep -q "True"; then
model_short=$(basename "$model")
echo "FOUND: $model"
# Post to dashboard
curl -s -X POST http://localhost:9200/api/news \
-H 'Content-Type: application/json' \
-d "{\"title\":\"GGUF Available: $model_short\",\"body\":\"$model is now available for download on HuggingFace.\",\"type\":\"success\",\"source\":\"qwen-gguf-watch\"}" \
> /dev/null
# Signal Johan
curl -s -X POST "http://localhost:8080/api/v1/rpc" \
-H "Content-Type: application/json" \
-d "{\"jsonrpc\":\"2.0\",\"method\":\"send\",\"params\":{\"recipient\":[\"+17272252475\"],\"message\":\"⚡ GGUF ready: $model_short — https://huggingface.co/$model\"},\"id\":1}" \
> /dev/null
FOUND=$((FOUND + 1))
fi
done
if [ $FOUND -eq 0 ]; then
echo "No Qwen3.5 GGUFs yet."
fi