- 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>
151 lines
5.6 KiB
Python
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() |