# Fix: Erreur "jq: invalid JSON text passed to --argjson"

## Problème identifié

L'erreur `jq: invalid JSON text passed to --argjson` à l'étape [8/8] est causée par une variable JSON vide ou invalide passée à `jq`.

## Corrections appliquées

### 1. **Parsing des arguments CLI** (Ligne 1570-1607)
Ajout d'une fonction `parse_args()` pour gérer les arguments `--server`, `--token`, `--iperf-server`, et `--debug`.

```bash
parse_args() {
    while [[ $# -gt 0 ]]; do
        case "$1" in
            --server) SERVER_URL="$2"; shift 2 ;;
            --token) API_TOKEN="$2"; shift 2 ;;
            --iperf-server) IPERF_SERVER="$2"; shift 2 ;;
            --debug) DEBUG_PAYLOAD=1; shift ;;
            --help|-h) # affiche l'aide
        esac
    done
}
```

### 2. **Amélioration de la collecte GPU** (Ligne 553-589)
Ajout de validations pour éviter de capturer les messages d'erreur de `nvidia-smi`:

```bash
# Vérifier que nvidia-smi fonctionne avant d'extraire les infos
if nvidia-smi &>/dev/null; then
    nvidia_model=$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null | head -1 | tr -d '\n')

    # Ne remplacer que si les valeurs sont non-vides et valides
    if [[ -n "$nvidia_model" && ! "$nvidia_model" =~ (failed|error|Error) ]]; then
        gpu_model="$nvidia_model"
    fi
fi
```

### 3. **Validation des variables JSON** (Ligne 1326-1357)
Ajout de validations pour garantir qu'aucune variable n'est vide avant envoi.

### 4. **Mode debug amélioré** (Ligne 1328-1344)
Quand `DEBUG_PAYLOAD=1` ou `--debug`, affiche l'état de toutes les variables JSON.

## Commandes de diagnostic sur le poste distant

### 1. Vérifier la détection GPU
```bash
lspci | grep -iE 'vga|3d'

if command -v nvidia-smi &>/dev/null; then
    if nvidia-smi &>/dev/null; then
        echo "nvidia-smi fonctionne"
        nvidia-smi --query-gpu=name --format=csv,noheader
    else
        echo "nvidia-smi échoue - driver non chargé"
    fi
fi
```

### 2. Tester le script complet avec debug
```bash
curl -fsSL http://10.0.0.50:8087/scripts/bench.sh | sudo bash -s -- \
  --server http://10.0.0.50:8007 \
  --token "29855796dacf5cfe75ff9b02d6adf3dd0f9c52db5b53e7abfb4c0df7ece1be0a" \
  --iperf-server 10.0.0.50 \
  --debug
```

Le flag `--debug` va:
- Afficher l'état de validation de toutes les variables JSON
- Sauvegarder le payload complet dans `/tmp/bench_payload_YYYYMMDD_HHMMSS.json`
- Demander confirmation avant l'envoi

### 3. Examiner un payload sauvegardé
```bash
ls -lht /tmp/bench_payload_*.json | head -1
jq '.' /tmp/bench_payload_*.json | less
```

## Prochaines étapes

1. Redémarrer le conteneur nginx pour servir la nouvelle version
2. Tester avec `--debug` sur le poste ASUS
3. Examiner le payload sauvegardé
4. Corriger si nécessaire

## Fichiers modifiés

- frontend/scripts/bench.sh - Script principal de benchmark client
