Files
rpa_vision_v3/scripts/diagnostic_proprietes_etapes_reel_12jan2026.py
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

151 lines
5.6 KiB
Python

#!/usr/bin/env python3
"""
Diagnostic Réel - Propriétés d'Étapes Vides
Auteur : Dom, Alice, Kiro - 12 janvier 2026
Ce script diagnostique pourquoi les propriétés d'étapes ne s'affichent pas
dans l'interface utilisateur réelle.
"""
import subprocess
import json
import time
from pathlib import Path
# Configuration des chemins
PROJECT_ROOT = Path(__file__).parent.parent
VWB_FRONTEND_PATH = PROJECT_ROOT / "visual_workflow_builder" / "frontend"
def test_step_type_resolver_reel():
"""Test du StepTypeResolver avec des données réelles"""
print("🔍 Test du StepTypeResolver avec des données réelles...")
# Script de test JavaScript à exécuter dans le navigateur
test_script = """
// Test du StepTypeResolver avec une étape type_text réelle
import { stepTypeResolver } from './src/services/StepTypeResolver.js';
// Simuler une étape type_text comme dans l'interface
const testStep = {
id: 'test-step-1',
type: 'type_text',
name: 'Nouvelle étape type_text',
data: {
parameters: {}
}
};
console.log('🧪 Test avec étape:', testStep);
// Tester la résolution
stepTypeResolver.resolveParameterConfig(testStep)
.then(result => {
console.log('✅ Résultat de résolution:', result);
console.log('📋 Nombre de paramètres:', result.parameterConfig.length);
console.log('🎯 Type détecté:', result.stepType);
console.log('🔍 Source:', result.resolutionSource);
console.log('📝 Paramètres:', result.parameterConfig);
})
.catch(error => {
console.error('❌ Erreur de résolution:', error);
});
"""
# Créer un fichier de test temporaire
test_file = VWB_FRONTEND_PATH / "test_step_resolver_debug.js"
test_file.write_text(test_script)
print(f"📁 Fichier de test créé: {test_file}")
return test_file
def analyser_mapping_types_etapes():
"""Analyser le mapping des types d'étapes dans StepTypeResolver"""
print("\n🔍 Analyse du mapping des types d'étapes...")
resolver_file = VWB_FRONTEND_PATH / "src" / "services" / "StepTypeResolver.ts"
if not resolver_file.exists():
print("❌ Fichier StepTypeResolver.ts non trouvé")
return
contenu = resolver_file.read_text(encoding='utf-8')
# Chercher la configuration stepParametersConfig
print("📋 Recherche de la configuration stepParametersConfig...")
if "stepParametersConfig:" in contenu:
print("✅ Configuration stepParametersConfig trouvée")
# Extraire les types configurés
import re
types_matches = re.findall(r'(\w+):\s*\[', contenu)
print(f"🎯 Types d'étapes configurés: {types_matches}")
# Vérifier si type_text est présent
if 'type_text' in types_matches:
print("❌ PROBLÈME: 'type_text' trouvé dans la config (devrait être 'type')")
elif 'type' in types_matches:
print("'type' trouvé dans la config (correct)")
else:
print("❌ PROBLÈME: Ni 'type' ni 'type_text' trouvé dans la config")
else:
print("❌ Configuration stepParametersConfig non trouvée")
def tester_detection_vwb():
"""Tester la détection VWB pour type_text"""
print("\n🔍 Test de détection VWB pour type_text...")
resolver_file = VWB_FRONTEND_PATH / "src" / "services" / "StepTypeResolver.ts"
contenu = resolver_file.read_text(encoding='utf-8')
# Vérifier les actions VWB connues
if "knownVWBActions" in contenu:
print("✅ Liste knownVWBActions trouvée")
# Extraire les actions VWB
import re
actions_match = re.search(r'knownVWBActions\s*=\s*\[(.*?)\]', contenu, re.DOTALL)
if actions_match:
actions_text = actions_match.group(1)
actions = re.findall(r"'([^']+)'", actions_text)
print(f"🎯 Actions VWB connues: {actions}")
if 'type_text' in actions:
print("'type_text' est dans les actions VWB connues")
print("💡 Cela signifie que type_text sera détecté comme action VWB")
print("💡 Et utilisera VWBActionProperties au lieu des paramètres standard")
else:
print("'type_text' n'est PAS dans les actions VWB connues")
else:
print("❌ Liste knownVWBActions non trouvée")
def diagnostic_complet():
"""Diagnostic complet du problème"""
print("🎯 Diagnostic Complet - Propriétés d'Étapes Vides")
print("=" * 60)
# 1. Analyser le mapping des types
analyser_mapping_types_etapes()
# 2. Tester la détection VWB
tester_detection_vwb()
# 3. Créer un test réel
test_file = test_step_type_resolver_reel()
print("\n📊 Résumé du diagnostic:")
print("1. Le StepTypeResolver existe et compile")
print("2. Le PropertiesPanel utilise le nouveau système")
print("3. MAIS il y a probablement un problème de mapping type_text vs type")
print("4. OU type_text est détecté comme VWB mais sans action correspondante")
print(f"\n🧪 Pour tester manuellement:")
print(f"1. Ouvrir le navigateur sur le VWB")
print(f"2. Ouvrir la console développeur (F12)")
print(f"3. Créer une étape type_text")
print(f"4. Vérifier les logs de résolution dans la console")
print(f"\n🔧 Fichier de test créé: {test_file}")
print("Vous pouvez l'utiliser pour déboguer dans le navigateur")
if __name__ == "__main__":
diagnostic_complet()