{ "timestamp": "2026-01-12", "version": "1.0.0", "analysis_type": "cas_undefined_stepparametersconfig", "summary": { "total_step_types": 8, "configured_types": 11, "undefined_cases": 0, "vwb_actions_analyzed": 18, "potential_issues": 24 }, "step_types_analysis": { "configured_types": [ "click", "options", "type", "wait", "condition", "extract", "options", "scroll", "options", "navigate", "screenshot" ], "type_mapping": { "click": { "parameter_count": 4, "has_configuration": true, "config_content": "{\n name: 'target',\n label: 'Élément cible',\n type: 'visual',\n required: true,\n description: 'Sélectionner l\\'élément à cliquer',\n },\n {\n name: 'clickType',\n label: 'Type de clic',\n type: 'select',\n options: [\n { value: 'left', label: 'Clic gauche' },\n { value: 'right', label: 'Clic droit' },\n { value: 'double', label: 'Double-clic' }," }, "options": { "parameter_count": 3, "has_configuration": true, "config_content": "{ value: 'left', label: 'Clic gauche' },\n { value: 'right', label: 'Clic droit' },\n { value: 'double', label: 'Double-clic' }," }, "type": { "parameter_count": 3, "has_configuration": true, "config_content": "{\n name: 'target',\n label: 'Champ de saisie',\n type: 'visual',\n required: true,\n description: 'Sélectionner le champ où saisir le texte',\n },\n {\n name: 'text',\n label: 'Texte à saisir',\n type: 'text',\n required: true,\n supportVariables: true,\n },\n {\n name: 'clearFirst',\n label: 'Vider le champ d\\'abord',\n type: 'boolean',\n defaultValue: true,\n }," }, "wait": { "parameter_count": 1, "has_configuration": true, "config_content": "{\n name: 'duration',\n label: 'Durée (secondes)',\n type: 'number',\n required: true,\n min: 0.1,\n max: 60,\n defaultValue: 1,\n }," }, "condition": { "parameter_count": 1, "has_configuration": true, "config_content": "{\n name: 'condition',\n label: 'Condition',\n type: 'text',\n required: true,\n supportVariables: true,\n description: 'Expression conditionnelle à évaluer',\n }," }, "extract": { "parameter_count": 5, "has_configuration": true, "config_content": "{\n name: 'target',\n label: 'Élément source',\n type: 'visual',\n required: true,\n description: 'Sélectionner l\\'élément dont extraire les données',\n },\n {\n name: 'attribute',\n label: 'Attribut à extraire',\n type: 'select',\n options: [\n { value: 'text', label: 'Texte' },\n { value: 'value', label: 'Valeur' },\n { value: 'href', label: 'Lien (href)' },\n { value: 'src', label: 'Source (src)' }," }, "scroll": { "parameter_count": 4, "has_configuration": true, "config_content": "{\n name: 'direction',\n label: 'Direction',\n type: 'select',\n options: [\n { value: 'up', label: 'Vers le haut' },\n { value: 'down', label: 'Vers le bas' },\n { value: 'left', label: 'Vers la gauche' },\n { value: 'right', label: 'Vers la droite' }," }, "navigate": { "parameter_count": 1, "has_configuration": true, "config_content": "{\n name: 'url',\n label: 'URL de destination',\n type: 'text',\n required: true,\n supportVariables: true,\n }," }, "screenshot": { "parameter_count": 1, "has_configuration": true, "config_content": "{\n name: 'filename',\n label: 'Nom du fichier',\n type: 'text',\n supportVariables: true,\n description: 'Nom du fichier de capture (optionnel)',\n }," } }, "total_configured": 11, "typescript_types": [ "navigate", "scroll", "click", "wait", "type", "screenshot", "extract", "condition" ], "undefined_types": [], "extra_configured": [ "options" ] }, "vwb_actions_analysis": { "catalog_actions": [ "click_anchor", "type_text", "type_secret", "focus_anchor", "wait_for_anchor", "hotkey", "scroll_to_anchor", "extract_text", "screenshot_evidence", "navigate_to_url", "browser_back", "verify_element_exists", "verify_text_content", "vision_ui", "control", "data", "navigation", "validation" ], "known_vwb_actions": [ "click_anchor", "type_text", "type_secret", "wait_for_anchor", "extract_text", "screenshot_evidence", "scroll_to_anchor", "focus_anchor", "hotkey", "navigate_to_url", "browser_back", "verify_element_exists", "verify_text_content" ], "all_vwb_actions": [ "wait_for_anchor", "focus_anchor", "browser_back", "scroll_to_anchor", "data", "validation", "navigation", "type_secret", "screenshot_evidence", "type_text", "hotkey", "click_anchor", "extract_text", "navigate_to_url", "verify_element_exists", "verify_text_content", "vision_ui", "control" ], "unmapped_actions": [ "wait_for_anchor", "browser_back", "focus_anchor", "scroll_to_anchor", "data", "validation", "navigation", "type_secret", "screenshot_evidence", "type_text", "hotkey", "click_anchor", "extract_text", "navigate_to_url", "verify_element_exists", "verify_text_content", "vision_ui", "control" ] }, "undefined_scenarios": [ { "scenario_type": "dynamic_type_not_configured", "step_type": "custom_action", "description": "Type dynamique 'custom_action' potentiellement créé à l'exécution", "consequence": "stepParametersConfig[selectedStep.type] retourne undefined", "user_impact": "Propriétés non configurables pour les types dynamiques", "severity": "MEDIUM", "fix_required": false, "note": "Peut nécessiter une gestion spéciale" }, { "scenario_type": "dynamic_type_not_configured", "step_type": "user_defined", "description": "Type dynamique 'user_defined' potentiellement créé à l'exécution", "consequence": "stepParametersConfig[selectedStep.type] retourne undefined", "user_impact": "Propriétés non configurables pour les types dynamiques", "severity": "MEDIUM", "fix_required": false, "note": "Peut nécessiter une gestion spéciale" }, { "scenario_type": "dynamic_type_not_configured", "step_type": "plugin_action", "description": "Type dynamique 'plugin_action' potentiellement créé à l'exécution", "consequence": "stepParametersConfig[selectedStep.type] retourne undefined", "user_impact": "Propriétés non configurables pour les types dynamiques", "severity": "MEDIUM", "fix_required": false, "note": "Peut nécessiter une gestion spéciale" }, { "scenario_type": "dynamic_type_not_configured", "step_type": "external_tool", "description": "Type dynamique 'external_tool' potentiellement créé à l'exécution", "consequence": "stepParametersConfig[selectedStep.type] retourne undefined", "user_impact": "Propriétés non configurables pour les types dynamiques", "severity": "MEDIUM", "fix_required": false, "note": "Peut nécessiter une gestion spéciale" }, { "scenario_type": "dynamic_type_not_configured", "step_type": "api_call", "description": "Type dynamique 'api_call' potentiellement créé à l'exécution", "consequence": "stepParametersConfig[selectedStep.type] retourne undefined", "user_impact": "Propriétés non configurables pour les types dynamiques", "severity": "MEDIUM", "fix_required": false, "note": "Peut nécessiter une gestion spéciale" }, { "scenario_type": "dynamic_type_not_configured", "step_type": "database_query", "description": "Type dynamique 'database_query' potentiellement créé à l'exécution", "consequence": "stepParametersConfig[selectedStep.type] retourne undefined", "user_impact": "Propriétés non configurables pour les types dynamiques", "severity": "MEDIUM", "fix_required": false, "note": "Peut nécessiter une gestion spéciale" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "wait_for_anchor", "description": "Action VWB 'wait_for_anchor' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "focus_anchor", "description": "Action VWB 'focus_anchor' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "browser_back", "description": "Action VWB 'browser_back' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "scroll_to_anchor", "description": "Action VWB 'scroll_to_anchor' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "data", "description": "Action VWB 'data' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "validation", "description": "Action VWB 'validation' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "navigation", "description": "Action VWB 'navigation' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "type_secret", "description": "Action VWB 'type_secret' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "screenshot_evidence", "description": "Action VWB 'screenshot_evidence' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "type_text", "description": "Action VWB 'type_text' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "hotkey", "description": "Action VWB 'hotkey' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "click_anchor", "description": "Action VWB 'click_anchor' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "extract_text", "description": "Action VWB 'extract_text' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "navigate_to_url", "description": "Action VWB 'navigate_to_url' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "verify_element_exists", "description": "Action VWB 'verify_element_exists' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "verify_text_content", "description": "Action VWB 'verify_text_content' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "vision_ui", "description": "Action VWB 'vision_ui' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" }, { "scenario_type": "vwb_action_detection_failure", "step_type": "control", "description": "Action VWB 'control' non détectée par la logique VWB", "consequence": "Utilisation de stepParametersConfig au lieu de VWBActionProperties", "user_impact": "Propriétés VWB non affichées correctement", "severity": "MEDIUM", "fix_required": true, "note": "Améliorer la détection VWB" } ], "recommendations": [ { "priority": "MEDIUM", "category": "Détection VWB", "title": "Renforcer la détection des actions VWB", "description": "18 actions VWB pourraient être mal détectées", "actions": [ "Améliorer les méthodes de détection VWB", "Ajouter plus de patterns de reconnaissance", "Tester la détection avec toutes les actions du catalogue" ] }, { "priority": "LOW", "category": "Documentation", "title": "Documenter les cas undefined et leur résolution", "description": "Créer une documentation pour les développeurs", "actions": [ "Documenter tous les types d'étapes supportés", "Expliquer la différence entre types standard et VWB", "Créer un guide de débogage pour les propriétés vides" ] } ], "detailed_findings": [ { "severity": "MEDIUM", "description": "Configurations sans type TypeScript: ['options']", "details": { "extra_configured": [ "options" ], "impact": "Configurations inutilisées" }, "timestamp": 1768213868.2134354 }, { "severity": "MEDIUM", "description": "Actions VWB non mappées dans stepParametersConfig: ['wait_for_anchor', 'browser_back', 'focus_anchor', 'scroll_to_anchor', 'data', 'validation', 'navigation', 'type_secret', 'screenshot_evidence', 'type_text', 'hotkey', 'click_anchor', 'extract_text', 'navigate_to_url', 'verify_element_exists', 'verify_text_content', 'vision_ui', 'control']", "details": { "unmapped_actions": [ "wait_for_anchor", "browser_back", "focus_anchor", "scroll_to_anchor", "data", "validation", "navigation", "type_secret", "screenshot_evidence", "type_text", "hotkey", "click_anchor", "extract_text", "navigate_to_url", "verify_element_exists", "verify_text_content", "vision_ui", "control" ], "impact": "Ces actions VWB utiliseront le composant VWBActionProperties", "note": "Comportement attendu pour les actions VWB" }, "timestamp": 1768213868.2136312 }, { "severity": "LOW", "description": "Pas de gestion d'erreurs dans getParameterConfig", "details": { "suggestion": "Ajouter try/catch pour la robustesse" }, "timestamp": 1768213868.2138085 } ], "real_usage_analysis": { "config_accesses": [ "selectedStep.type as StepType" ], "access_count": 1, "has_fallback_logic": true, "has_undefined_check": false, "has_error_handling": false, "return_statements": [ "[]", "[]", "result" ] } }