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:
17
tests/results/demo_proprietes_vwb_10jan2026.json
Normal file
17
tests/results/demo_proprietes_vwb_10jan2026.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"timestamp": 1768084707.7149174,
|
||||
"date": "2026-01-10 23:38:27",
|
||||
"demo": {
|
||||
"backend_operationnel": true,
|
||||
"actions_chargees": 9,
|
||||
"composants_valides": 6,
|
||||
"integration_complete": true,
|
||||
"demo_reussie": true
|
||||
},
|
||||
"actions_testees": [
|
||||
"click_anchor"
|
||||
],
|
||||
"backend_url": "http://localhost:5004",
|
||||
"frontend_url": "http://localhost:3000",
|
||||
"statut": "SUCCÈS"
|
||||
}
|
||||
32
tests/results/etats_visuels_canvas_vwb_10jan2026.json
Normal file
32
tests/results/etats_visuels_canvas_vwb_10jan2026.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"timestamp": 1768085438.0650394,
|
||||
"date": "2026-01-10 23:50:38",
|
||||
"test": {
|
||||
"composants_canvas": {
|
||||
"StepNode Principal": true,
|
||||
"Extension VWB StepNode": true
|
||||
},
|
||||
"animations_css": {
|
||||
"total": 9,
|
||||
"trouvees": 9,
|
||||
"valide": true
|
||||
},
|
||||
"etats_visuels": {
|
||||
"total": 10,
|
||||
"trouves": 10,
|
||||
"valide": true
|
||||
},
|
||||
"integration_vwb": {
|
||||
"total": 6,
|
||||
"trouvees": 6,
|
||||
"valide": true
|
||||
},
|
||||
"performance": {
|
||||
"total": 8,
|
||||
"trouvees": 4,
|
||||
"valide": false
|
||||
},
|
||||
"score_global": 4
|
||||
},
|
||||
"statut": "SUCCÈS"
|
||||
}
|
||||
30
tests/results/integration_executor_vwb_10jan2026.json
Normal file
30
tests/results/integration_executor_vwb_10jan2026.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"timestamp": 1768085148.5414617,
|
||||
"date": "2026-01-10 23:45:48",
|
||||
"test": {
|
||||
"backend_disponible": true,
|
||||
"composants_executor": {
|
||||
"Executor Principal": true,
|
||||
"Extension VWB": false,
|
||||
"Service Exécution VWB": true,
|
||||
"Hook Exécution VWB": true
|
||||
},
|
||||
"services_execution": {
|
||||
"structure": true,
|
||||
"tests_reussis": 7,
|
||||
"tests_total": 7
|
||||
},
|
||||
"hooks_integration": {
|
||||
"structure": true,
|
||||
"tests_reussis": 7,
|
||||
"tests_total": 7
|
||||
},
|
||||
"tests_fonctionnels": {
|
||||
"integration": true,
|
||||
"tests_reussis": 5,
|
||||
"tests_total": 5
|
||||
},
|
||||
"score_integration": 5
|
||||
},
|
||||
"statut": "SUCCÈS"
|
||||
}
|
||||
180
tests/results/test_creation_etape_vwb_10jan2026.json
Normal file
180
tests/results/test_creation_etape_vwb_10jan2026.json
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"timestamp": 1768084080.4304292,
|
||||
"resultats": [
|
||||
{
|
||||
"action_id": "click_anchor",
|
||||
"etape_creee": true,
|
||||
"detection_ok": true,
|
||||
"affichage_ok": true,
|
||||
"validation_ok": false,
|
||||
"etape": {
|
||||
"id": "vwb_step_1768084080_click_anchor",
|
||||
"type": "click_anchor",
|
||||
"name": "Clic sur Ancre Visuelle",
|
||||
"position": {
|
||||
"x": 100,
|
||||
"y": 100
|
||||
},
|
||||
"data": {
|
||||
"label": "Clic sur Ancre Visuelle",
|
||||
"stepType": "click_anchor",
|
||||
"parameters": {
|
||||
"click_offset_x": 0,
|
||||
"click_offset_y": 0,
|
||||
"click_type": "left",
|
||||
"visual_anchor": null,
|
||||
"wait_before_click_ms": 100
|
||||
},
|
||||
"isVWBCatalogAction": true,
|
||||
"vwbActionId": "click_anchor"
|
||||
},
|
||||
"executionState": "IDLE",
|
||||
"validationErrors": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"action_id": "type_text",
|
||||
"etape_creee": true,
|
||||
"detection_ok": true,
|
||||
"affichage_ok": true,
|
||||
"validation_ok": false,
|
||||
"etape": {
|
||||
"id": "vwb_step_1768084080_type_text",
|
||||
"type": "type_text",
|
||||
"name": "Saisie de Texte Visuelle",
|
||||
"position": {
|
||||
"x": 100,
|
||||
"y": 100
|
||||
},
|
||||
"data": {
|
||||
"label": "Saisie de Texte Visuelle",
|
||||
"stepType": "type_text",
|
||||
"parameters": {
|
||||
"clear_field_first": true,
|
||||
"click_before_typing": true,
|
||||
"press_enter_after": false,
|
||||
"text_to_type": "",
|
||||
"typing_speed_ms": 50,
|
||||
"validate_after_typing": false,
|
||||
"visual_anchor": null
|
||||
},
|
||||
"isVWBCatalogAction": true,
|
||||
"vwbActionId": "type_text"
|
||||
},
|
||||
"executionState": "IDLE",
|
||||
"validationErrors": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"action_id": "wait_for_anchor",
|
||||
"etape_creee": true,
|
||||
"detection_ok": true,
|
||||
"affichage_ok": true,
|
||||
"validation_ok": false,
|
||||
"etape": {
|
||||
"id": "vwb_step_1768084080_wait_for_anchor",
|
||||
"type": "wait_for_anchor",
|
||||
"name": "Attente d'Ancre Visuelle",
|
||||
"position": {
|
||||
"x": 100,
|
||||
"y": 100
|
||||
},
|
||||
"data": {
|
||||
"label": "Attente d'Ancre Visuelle",
|
||||
"stepType": "wait_for_anchor",
|
||||
"parameters": {
|
||||
"check_interval_ms": 500,
|
||||
"confidence_threshold": 0.8,
|
||||
"max_wait_time_ms": 30000,
|
||||
"stability_duration_ms": 1000,
|
||||
"visual_anchor": null,
|
||||
"wait_mode": "appear"
|
||||
},
|
||||
"isVWBCatalogAction": true,
|
||||
"vwbActionId": "wait_for_anchor"
|
||||
},
|
||||
"executionState": "IDLE",
|
||||
"validationErrors": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"etapes_test": [
|
||||
{
|
||||
"id": "vwb_step_1768084080_click_anchor",
|
||||
"type": "click_anchor",
|
||||
"name": "Clic sur Ancre Visuelle",
|
||||
"position": {
|
||||
"x": 100,
|
||||
"y": 100
|
||||
},
|
||||
"data": {
|
||||
"label": "Clic sur Ancre Visuelle",
|
||||
"stepType": "click_anchor",
|
||||
"parameters": {
|
||||
"click_offset_x": 0,
|
||||
"click_offset_y": 0,
|
||||
"click_type": "left",
|
||||
"visual_anchor": null,
|
||||
"wait_before_click_ms": 100
|
||||
},
|
||||
"isVWBCatalogAction": true,
|
||||
"vwbActionId": "click_anchor"
|
||||
},
|
||||
"executionState": "IDLE",
|
||||
"validationErrors": []
|
||||
},
|
||||
{
|
||||
"id": "vwb_step_1768084080_type_text",
|
||||
"type": "type_text",
|
||||
"name": "Saisie de Texte Visuelle",
|
||||
"position": {
|
||||
"x": 100,
|
||||
"y": 100
|
||||
},
|
||||
"data": {
|
||||
"label": "Saisie de Texte Visuelle",
|
||||
"stepType": "type_text",
|
||||
"parameters": {
|
||||
"clear_field_first": true,
|
||||
"click_before_typing": true,
|
||||
"press_enter_after": false,
|
||||
"text_to_type": "",
|
||||
"typing_speed_ms": 50,
|
||||
"validate_after_typing": false,
|
||||
"visual_anchor": null
|
||||
},
|
||||
"isVWBCatalogAction": true,
|
||||
"vwbActionId": "type_text"
|
||||
},
|
||||
"executionState": "IDLE",
|
||||
"validationErrors": []
|
||||
},
|
||||
{
|
||||
"id": "vwb_step_1768084080_wait_for_anchor",
|
||||
"type": "wait_for_anchor",
|
||||
"name": "Attente d'Ancre Visuelle",
|
||||
"position": {
|
||||
"x": 100,
|
||||
"y": 100
|
||||
},
|
||||
"data": {
|
||||
"label": "Attente d'Ancre Visuelle",
|
||||
"stepType": "wait_for_anchor",
|
||||
"parameters": {
|
||||
"check_interval_ms": 500,
|
||||
"confidence_threshold": 0.8,
|
||||
"max_wait_time_ms": 30000,
|
||||
"stability_duration_ms": 1000,
|
||||
"visual_anchor": null,
|
||||
"wait_mode": "appear"
|
||||
},
|
||||
"isVWBCatalogAction": true,
|
||||
"vwbActionId": "wait_for_anchor"
|
||||
},
|
||||
"executionState": "IDLE",
|
||||
"validationErrors": []
|
||||
}
|
||||
],
|
||||
"actions_catalogue": 9,
|
||||
"tous_ok": true
|
||||
}
|
||||
661
tests/results/test_proprietes_etapes_vwb_10jan2026.json
Normal file
661
tests/results/test_proprietes_etapes_vwb_10jan2026.json
Normal file
@@ -0,0 +1,661 @@
|
||||
{
|
||||
"backend_disponible": true,
|
||||
"actions_disponibles": [
|
||||
{
|
||||
"category": "vision_ui",
|
||||
"complexity": "simple",
|
||||
"description": "Clique sur un élément UI identifié par une ancre visuelle avec reconnaissance automatique",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Clique sur le bouton 'Valider' d'un formulaire",
|
||||
"name": "Clic sur bouton de validation",
|
||||
"parameters": {
|
||||
"click_type": "left",
|
||||
"wait_before_click_ms": 200
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Clic droit sur un élément pour ouvrir le menu",
|
||||
"name": "Clic droit pour menu contextuel",
|
||||
"parameters": {
|
||||
"click_type": "right"
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "🖱️",
|
||||
"id": "click_anchor",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "simple",
|
||||
"tags": [
|
||||
"ui",
|
||||
"interaction",
|
||||
"vision",
|
||||
"click"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Clic sur Ancre Visuelle",
|
||||
"parameters": {
|
||||
"click_offset_x": {
|
||||
"default": 0,
|
||||
"description": "Décalage horizontal en pixels depuis le centre",
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"click_offset_y": {
|
||||
"default": 0,
|
||||
"description": "Décalage vertical en pixels depuis le centre",
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"click_type": {
|
||||
"default": "left",
|
||||
"description": "Type de clic à effectuer",
|
||||
"options": [
|
||||
"left",
|
||||
"right",
|
||||
"double",
|
||||
"middle"
|
||||
],
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle pour localiser l'élément cible",
|
||||
"properties": {
|
||||
"anchor_type": {
|
||||
"default": "screenshot",
|
||||
"options": [
|
||||
"screenshot",
|
||||
"text",
|
||||
"icon",
|
||||
"composite"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"confidence_threshold": {
|
||||
"default": 0.8,
|
||||
"max": 1.0,
|
||||
"min": 0.0,
|
||||
"type": "number"
|
||||
},
|
||||
"screenshot_base64": {
|
||||
"description": "Image de référence en base64",
|
||||
"type": "string"
|
||||
},
|
||||
"text_content": {
|
||||
"description": "Texte à rechercher",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
},
|
||||
"wait_before_click_ms": {
|
||||
"default": 100,
|
||||
"description": "Délai d'attente avant le clic en millisecondes",
|
||||
"min": 0,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "vision_ui",
|
||||
"complexity": "simple",
|
||||
"description": "Saisit du texte dans un champ identifié par une ancre visuelle avec validation automatique",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Saisit une adresse email dans un champ de connexion",
|
||||
"name": "Saisie d'email",
|
||||
"parameters": {
|
||||
"clear_field_first": true,
|
||||
"press_enter_after": false,
|
||||
"text_to_type": "user@example.com",
|
||||
"validate_after_typing": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Saisit un mot de passe avec validation",
|
||||
"name": "Saisie de mot de passe",
|
||||
"parameters": {
|
||||
"press_enter_after": true,
|
||||
"text_to_type": "********",
|
||||
"typing_speed_ms": 30
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "⌨️",
|
||||
"id": "type_text",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "simple",
|
||||
"tags": [
|
||||
"ui",
|
||||
"input",
|
||||
"text",
|
||||
"vision",
|
||||
"typing"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Saisie de Texte Visuelle",
|
||||
"parameters": {
|
||||
"clear_field_first": {
|
||||
"default": true,
|
||||
"description": "Vider le champ avant la saisie (Ctrl+A puis suppression)",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"click_before_typing": {
|
||||
"default": true,
|
||||
"description": "Cliquer sur le champ avant la saisie pour le focus",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"press_enter_after": {
|
||||
"default": false,
|
||||
"description": "Appuyer sur Entrée après la saisie",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"text_to_type": {
|
||||
"description": "Texte à saisir dans le champ",
|
||||
"max_length": 1000,
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"typing_speed_ms": {
|
||||
"default": 50,
|
||||
"description": "Délai entre chaque caractère en millisecondes",
|
||||
"max": 1000,
|
||||
"min": 0,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"validate_after_typing": {
|
||||
"default": false,
|
||||
"description": "Valider que le texte a été correctement saisi",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle pour localiser le champ de saisie",
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "control",
|
||||
"complexity": "intermediate",
|
||||
"description": "Attend qu'une ancre visuelle apparaisse ou disparaisse avec surveillance intelligente",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Attend qu'un indicateur de chargement disparaisse",
|
||||
"name": "Attendre fin de chargement",
|
||||
"parameters": {
|
||||
"check_interval_ms": 250,
|
||||
"max_wait_time_ms": 15000,
|
||||
"wait_mode": "disappear"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Attend qu'une boîte de dialogue apparaisse",
|
||||
"name": "Attendre apparition de dialogue",
|
||||
"parameters": {
|
||||
"max_wait_time_ms": 10000,
|
||||
"stability_duration_ms": 500,
|
||||
"wait_mode": "appear"
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "⏳",
|
||||
"id": "wait_for_anchor",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "intermediate",
|
||||
"tags": [
|
||||
"control",
|
||||
"wait",
|
||||
"vision",
|
||||
"synchronization"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Attente d'Ancre Visuelle",
|
||||
"parameters": {
|
||||
"check_interval_ms": {
|
||||
"default": 500,
|
||||
"description": "Intervalle de vérification en millisecondes",
|
||||
"max": 5000,
|
||||
"min": 100,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"confidence_threshold": {
|
||||
"default": 0.8,
|
||||
"description": "Seuil de confiance pour la détection",
|
||||
"max": 1.0,
|
||||
"min": 0.0,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"max_wait_time_ms": {
|
||||
"default": 30000,
|
||||
"description": "Délai d'attente maximum en millisecondes",
|
||||
"max": 300000,
|
||||
"min": 1000,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"stability_duration_ms": {
|
||||
"default": 1000,
|
||||
"description": "Durée de stabilité requise pour le mode 'stable'",
|
||||
"min": 100,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle à surveiller",
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
},
|
||||
"wait_mode": {
|
||||
"default": "appear",
|
||||
"description": "Mode d'attente (apparition, disparition, ou stabilisation)",
|
||||
"options": [
|
||||
"appear",
|
||||
"disappear",
|
||||
"stable"
|
||||
],
|
||||
"required": false,
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "navigation",
|
||||
"complexity": "intermediate",
|
||||
"description": "Fait défiler la page jusqu'à ce qu'une ancre visuelle soit visible",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Fait défiler vers le bas pour atteindre un bouton",
|
||||
"name": "Défiler vers bouton en bas de page",
|
||||
"parameters": {
|
||||
"scroll_direction": "down",
|
||||
"scroll_step_pixels": 150
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "📜",
|
||||
"id": "scroll_to_anchor",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "intermediate",
|
||||
"tags": [
|
||||
"navigation",
|
||||
"scroll",
|
||||
"vision"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Défilement vers Ancre",
|
||||
"parameters": {
|
||||
"max_scroll_attempts": {
|
||||
"default": 20,
|
||||
"description": "Nombre maximum de tentatives de défilement",
|
||||
"max": 100,
|
||||
"min": 1,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"pause_between_scrolls_ms": {
|
||||
"default": 200,
|
||||
"description": "Pause entre chaque défilement en millisecondes",
|
||||
"min": 50,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"scroll_direction": {
|
||||
"default": "auto",
|
||||
"description": "Direction de défilement",
|
||||
"options": [
|
||||
"auto",
|
||||
"up",
|
||||
"down",
|
||||
"left",
|
||||
"right"
|
||||
],
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"scroll_step_pixels": {
|
||||
"default": 100,
|
||||
"description": "Nombre de pixels par étape de défilement",
|
||||
"max": 500,
|
||||
"min": 10,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle à atteindre par défilement",
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "data",
|
||||
"complexity": "advanced",
|
||||
"description": "Extrait le texte d'un élément identifié par une ancre visuelle",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Extrait le prix affiché sur une page produit",
|
||||
"name": "Extraire prix d'un produit",
|
||||
"parameters": {
|
||||
"extraction_method": "ocr",
|
||||
"output_variable": "product_price",
|
||||
"text_processing": "clean"
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "📤",
|
||||
"id": "extract_text_from_anchor",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "advanced",
|
||||
"tags": [
|
||||
"data",
|
||||
"extraction",
|
||||
"ocr",
|
||||
"vision"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Extraction de Texte",
|
||||
"parameters": {
|
||||
"extraction_method": {
|
||||
"default": "ocr",
|
||||
"description": "Méthode d'extraction du texte",
|
||||
"options": [
|
||||
"ocr",
|
||||
"clipboard",
|
||||
"accessibility"
|
||||
],
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"output_variable": {
|
||||
"description": "Nom de la variable pour stocker le texte extrait",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"text_processing": {
|
||||
"default": "trim",
|
||||
"description": "Traitement du texte extrait",
|
||||
"options": [
|
||||
"none",
|
||||
"trim",
|
||||
"normalize",
|
||||
"clean"
|
||||
],
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle de l'élément contenant le texte",
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "validation",
|
||||
"complexity": "simple",
|
||||
"description": "Valide qu'une ancre visuelle est présente ou absente sur l'écran",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Vérifie qu'un message de succès est affiché",
|
||||
"name": "Valider succès de connexion",
|
||||
"parameters": {
|
||||
"expected_presence": true,
|
||||
"fail_on_mismatch": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "✅",
|
||||
"id": "validate_anchor_presence",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "simple",
|
||||
"tags": [
|
||||
"validation",
|
||||
"verification",
|
||||
"vision"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Validation de Présence",
|
||||
"parameters": {
|
||||
"confidence_threshold": {
|
||||
"default": 0.8,
|
||||
"description": "Seuil de confiance pour la validation",
|
||||
"max": 1.0,
|
||||
"min": 0.0,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"expected_presence": {
|
||||
"default": true,
|
||||
"description": "Présence attendue (true = doit être présent, false = doit être absent)",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"fail_on_mismatch": {
|
||||
"default": true,
|
||||
"description": "Échouer si la validation ne correspond pas à l'attente",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle à valider",
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "vision_ui",
|
||||
"complexity": "simple",
|
||||
"description": "Met le focus sur un élément UI identifié par une ancre visuelle",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Met le focus sur un champ en le survolant",
|
||||
"name": "Focus par survol",
|
||||
"parameters": {
|
||||
"focus_method": "hover",
|
||||
"hover_duration_ms": 300
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "🎯",
|
||||
"id": "focus_anchor",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "simple",
|
||||
"tags": [
|
||||
"ui",
|
||||
"focus",
|
||||
"vision",
|
||||
"interaction"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Donner le Focus",
|
||||
"parameters": {
|
||||
"focus_method": {
|
||||
"default": "hover",
|
||||
"description": "Méthode pour donner le focus",
|
||||
"options": [
|
||||
"hover",
|
||||
"tab",
|
||||
"click_light"
|
||||
],
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"hover_duration_ms": {
|
||||
"default": 500,
|
||||
"description": "Durée du survol en millisecondes",
|
||||
"max": 3000,
|
||||
"min": 100,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle pour localiser l'élément cible",
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "vision_ui",
|
||||
"complexity": "intermediate",
|
||||
"description": "Saisit un secret (mot de passe) de manière sécurisée dans un champ identifié par ancre visuelle",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Saisit un mot de passe de manière sécurisée",
|
||||
"name": "Saisie mot de passe",
|
||||
"parameters": {
|
||||
"press_enter_after": true,
|
||||
"secret_value": "********",
|
||||
"typing_speed_ms": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "🔐",
|
||||
"id": "type_secret",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "intermediate",
|
||||
"tags": [
|
||||
"ui",
|
||||
"security",
|
||||
"password",
|
||||
"vision",
|
||||
"secret"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Saisie de Secret",
|
||||
"parameters": {
|
||||
"clear_field_first": {
|
||||
"default": true,
|
||||
"description": "Vider le champ avant la saisie",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"press_enter_after": {
|
||||
"default": false,
|
||||
"description": "Appuyer sur Entrée après la saisie",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"secret_ref": {
|
||||
"description": "Référence vers un secret stocké de manière sécurisée",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"secret_value": {
|
||||
"description": "Valeur du secret à saisir (masquée dans les logs)",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
"typing_speed_ms": {
|
||||
"default": 30,
|
||||
"description": "Délai entre chaque caractère (plus lent pour sécurité)",
|
||||
"max": 200,
|
||||
"min": 10,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"visual_anchor": {
|
||||
"description": "Ancre visuelle pour localiser le champ de saisie",
|
||||
"required": true,
|
||||
"type": "VWBVisualAnchor"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"category": "control",
|
||||
"complexity": "simple",
|
||||
"description": "Exécute un raccourci clavier (combinaison de touches)",
|
||||
"examples": [
|
||||
{
|
||||
"description": "Copie le contenu sélectionné",
|
||||
"name": "Copier",
|
||||
"parameters": {
|
||||
"key_combination": "ctrl+c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Actualise la page web",
|
||||
"name": "Actualiser page",
|
||||
"parameters": {
|
||||
"key_combination": "f5"
|
||||
}
|
||||
}
|
||||
],
|
||||
"icon": "⌨️",
|
||||
"id": "hotkey",
|
||||
"metadata": {
|
||||
"author": "Dom, Alice, Kiro",
|
||||
"complexity": "simple",
|
||||
"tags": [
|
||||
"control",
|
||||
"keyboard",
|
||||
"shortcut",
|
||||
"hotkey"
|
||||
],
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"name": "Raccourci Clavier",
|
||||
"parameters": {
|
||||
"hold_duration_ms": {
|
||||
"default": 100,
|
||||
"description": "Durée de maintien des touches en millisecondes",
|
||||
"max": 2000,
|
||||
"min": 50,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
},
|
||||
"key_combination": {
|
||||
"description": "Combinaison de touches (ex: 'ctrl+c', 'alt+tab', 'f5')",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"repeat_count": {
|
||||
"default": 1,
|
||||
"description": "Nombre de répétitions du raccourci",
|
||||
"max": 10,
|
||||
"min": 1,
|
||||
"required": false,
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"frontend_disponible": true,
|
||||
"composants_presents": {
|
||||
"VWBActionProperties": true,
|
||||
"PropertiesPanel": true,
|
||||
"useVWBStepIntegration": true,
|
||||
"catalogService": true,
|
||||
"catalog_types": true
|
||||
},
|
||||
"integration_fonctionnelle": true,
|
||||
"erreurs": []
|
||||
}
|
||||
24
tests/results/validation_finale_vwb_10jan2026.json
Normal file
24
tests/results/validation_finale_vwb_10jan2026.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"timestamp": 1768084606.0717075,
|
||||
"date": "2026-01-10 23:36:46",
|
||||
"validation": {
|
||||
"backend_catalogue": true,
|
||||
"actions_disponibles": 9,
|
||||
"composants_frontend": {
|
||||
"VWBActionProperties": true,
|
||||
"PropertiesPanel": true,
|
||||
"useVWBStepIntegration": true,
|
||||
"catalogService": true,
|
||||
"catalog_types": true,
|
||||
"VWBIntegrationTest": true
|
||||
},
|
||||
"integration_hooks": false,
|
||||
"types_typescript": true,
|
||||
"interface_utilisateur": false,
|
||||
"tests_automatises": false,
|
||||
"score_global": 7
|
||||
},
|
||||
"recommandations": [
|
||||
"Système entièrement fonctionnel - Prêt pour utilisation"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user