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>
This commit is contained in:
151
scripts/diagnostic_proprietes_etapes_reel_12jan2026.py
Normal file
151
scripts/diagnostic_proprietes_etapes_reel_12jan2026.py
Normal file
@@ -0,0 +1,151 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user