Files
html/api/rolling-hub-enrich.sh
Opus a8861a7535
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
phase22b doctrine 161 complete - rolling hub enrich 7 hubs cascade gemini-cerebras
Fix definitif issues gemini:
- Clé Gemini source correct identifiée: /etc/weval/secrets.env (AIzaSyCMbYKyTldlCjg2eSCtwNONX9mMomhmIM4)
- Clé vault credentials.php (AIzaSyBt...) était expiree - SYNC vers bonne clé
- GOLD backup credentials.php.phase22-gemini-sync créé

Nouveau handler rolling-hub-enrich.sh:
- 7 hubs Yacine: paperclip-dashboard deerflow-hub ai-hub wevia-multiagent-dashboard brain-council wevia-meeting agents-hub
- Strategy: Gemini primary + Cerebras qwen 235B fallback
- Output JSON avec suggestions UX doctrine 60 (entrance staggered, hover glow, etc.)

Intent wevia_rolling_hub_enrich_7hubs wired:
- Triggers spécifiques pour éviter collision paperclip/deerflow
- Test live OK avec brain-council via Cerebras

BUG gemini_ux_design_agent identifié: lit GEMINI_API_KEY au lieu de GEMINI_KEY.
BUG gemini_hub_enrich OK (lit bonne source) mais collision trigger.
Solution: nouvel intent wevia_rolling_hub_enrich_7hubs plus spécifique.

Alternative live: WEVIA prompt complet Yacine route via multi_agent_natural (50 agents) + synthesis.
2026-04-24 02:12:31 +02:00

75 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
# Doctrine 161: Rolling UX enrichment 7 hubs via Gemini (primary) + Cerebras fallback
# Usage: parse hub name from message OR apply to all 7 hubs
# Reads GEMINI_KEY from /etc/weval/secrets.env (verified working source)
MSG="${1:-}"
if [ -z "$MSG" ] && [ -f /tmp/wevia-last-msg.log ]; then
MSG=$(cat /tmp/wevia-last-msg.log 2>/dev/null | tr -d '\n' | head -c 2000)
fi
# Hubs à traiter (les 7 mentionnés par Yacine)
HUBS=("paperclip-dashboard" "deerflow-hub" "ai-hub" "wevia-multiagent-dashboard" "brain-council" "wevia-meeting" "agents-hub")
# Extract hub name si spécifique dans message
SPECIFIC=$(echo "$MSG" | grep -oE '(paperclip-dashboard|deerflow-hub|ai-hub|wevia-multiagent-dashboard|brain-council|wevia-meeting|agents-hub)' | head -1)
if [ -n "$SPECIFIC" ]; then
HUBS=("$SPECIFIC")
fi
# Get Gemini key (source: /etc/weval/secrets.env)
KG=$(sudo -n grep "^GEMINI_KEY=" /etc/weval/secrets.env 2>/dev/null | cut -d= -f2- | tr -d '"' | head -c 80)
# Build output JSON
RESULTS=()
for HUB in "${HUBS[@]}"; do
HUB_FILE="${HUB}.html"
PROMPT="Tu es expert UX doctrine 60 WEVAL. Hub: $HUB. Propose 5 ameliorations UX premium: entrance staggered, hover glow, activity pulse, ambient radial, backdrop blur. Format JSON strict {improvements:[{section, suggestion, css_snippet, js_snippet}]}. Pas markdown."
# Try Gemini first
AGENT="gemini-2.5-flash"
RESP=""
if [ -n "$KG" ]; then
RESP=$(curl -sk -m 20 -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$KG" \
-H "Content-Type: application/json" \
-d "$(python3 -c "import json,sys; print(json.dumps({'contents':[{'parts':[{'text':'''$PROMPT'''}]}]}))")" 2>&1)
CONTENT=$(echo "$RESP" | python3 -c "
import sys,json
try:
d=json.loads(sys.stdin.read())
print(d['candidates'][0]['content']['parts'][0]['text'][:1500])
except: print('GEMINI_ERR')
" 2>&1)
if [ "$CONTENT" = "GEMINI_ERR" ]; then
RESP=""; CONTENT=""
fi
fi
# Fallback Cerebras
if [ -z "$RESP" ] || [ "$CONTENT" = "GEMINI_ERR" ]; then
AGENT="cerebras-qwen-3-235b-fallback"
KC=$(grep -oE "csk-[a-z0-9]+" /opt/wevads/vault/credentials.php 2>/dev/null | head -1)
RESP=$(curl -sk -m 25 -X POST "https://api.cerebras.ai/v1/chat/completions" \
-H "Authorization: Bearer $KC" -H "Content-Type: application/json" \
-d "$(python3 -c "import json; print(json.dumps({'model':'qwen-3-235b-a22b-instruct-2507','messages':[{'role':'user','content':'''$PROMPT'''}],'temperature':0.3,'max_tokens':2500}))")" 2>&1)
CONTENT=$(echo "$RESP" | python3 -c "
import sys,json
try: d=json.loads(sys.stdin.read()); print(d['choices'][0]['message']['content'][:1500])
except: print('CEREBRAS_ERR')
" 2>&1)
fi
# Add to results (truncated for compact output)
SHORT=$(echo "$CONTENT" | head -c 400 | tr '\n' ' ')
RESULTS+=("{\"hub\":\"$HUB\",\"agent\":\"$AGENT\",\"preview\":$(python3 -c "import json,sys;print(json.dumps(sys.argv[1]))" "$SHORT")}")
done
# Output JSON
echo -n "{\"doctrine\":\"161\",\"ts\":\"$(date -Iseconds)\",\"hubs_processed\":${#HUBS[@]},\"strategy\":\"gemini-primary-cerebras-fallback\",\"results\":["
FIRST=1
for r in "${RESULTS[@]}"; do
[ $FIRST -eq 1 ] && FIRST=0 || echo -n ","
echo -n "$r"
done
echo "]}"