feat: replay visuel VLM-first, worker séparé, package Léa, AZERTY, sécurité HTTPS

Pipeline replay visuel :
- VLM-first : l'agent appelle Ollama directement pour trouver les éléments
- Template matching en fallback (seuil strict 0.90)
- Stop immédiat si élément non trouvé (pas de clic blind)
- Replay depuis session brute (/replay-session) sans attendre le VLM
- Vérification post-action (screenshot hash avant/après)
- Gestion des popups (Enter/Escape/Tab+Enter)

Worker VLM séparé :
- run_worker.py : process distinct du serveur HTTP
- Communication par fichiers (_worker_queue.txt + _replay_active.lock)
- Le serveur HTTP ne fait plus jamais de VLM → toujours réactif
- Service systemd rpa-worker.service

Capture clavier :
- raw_keys (vk + press/release) pour replay exact indépendant du layout
- Fix AZERTY : ToUnicodeEx + AltGr detection
- Enter capturé comme \n, Tab comme \t
- Filtrage modificateurs seuls (Ctrl/Alt/Shift parasites)
- Fusion text_input consécutifs, dédup key_combo

Sécurité & Internet :
- HTTPS Let's Encrypt (lea.labs + vwb.labs.laurinebazin.design)
- Token API fixe dans .env.local
- HTTP Basic Auth sur VWB
- Security headers (HSTS, CSP, nosniff)
- CORS domaines publics, plus de wildcard

Infrastructure :
- DPI awareness (SetProcessDpiAwareness) Python + Rust
- Métadonnées système (dpi_scale, window_bounds, monitors, os_theme)
- Template matching multi-scale [0.5, 2.0]
- Résolution dynamique (plus de hardcode 1920x1080)
- VLM prefill fix (47x speedup, 3.5s au lieu de 180s)

Modules :
- core/auth/ : credential vault (Fernet AES), TOTP (RFC 6238), auth handler
- core/federation/ : LearningPack export/import anonymisé, FAISS global
- deploy/ : package Léa (config.txt, Lea.bat, install.bat, LISEZMOI.txt)

UX :
- Filtrage OS (VWB + Chat montrent que les workflows de l'OS courant)
- Bibliothèque persistante (cache local + SQLite)
- Clustering hybride (titre fenêtre + DBSCAN)
- EdgeConstraints + PostConditions peuplés
- GraphBuilder compound actions (toutes les frappes)

Agent Rust :
- Token Bearer auth (network.rs)
- sysinfo.rs (DPI, résolution, window bounds via Win32 API)
- config.txt lu automatiquement
- Support Chrome/Brave/Firefox (pas que Edge)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-26 10:19:18 +01:00
parent fe5e0ba83d
commit d5deac3029
162 changed files with 25669 additions and 557 deletions

View File

@@ -55,6 +55,8 @@ def list_learned_workflows():
Query params:
machine_id: Filtrer par machine (optionnel)
os: Filtrer par OS — 'windows' ou 'linux' (optionnel).
Filtre sur la portion OS du machine_id (ex: DESKTOP-58D5CAC_windows).
Response:
{
@@ -76,6 +78,7 @@ def list_learned_workflows():
}
"""
machine_id = request.args.get('machine_id')
os_filter = request.args.get('os') # 'windows' ou 'linux'
from services.learned_workflow_bridge import list_learned_workflows_from_disk
@@ -132,6 +135,14 @@ def list_learned_workflows():
if machine_id:
merged = [w for w in merged if w.get("machine_id") == machine_id]
# Filtrer par OS si demandé (cherche 'windows' ou 'linux' dans le machine_id)
if os_filter:
os_filter_lower = os_filter.lower()
merged = [
w for w in merged
if os_filter_lower in (w.get("machine_id") or "").lower()
]
# Enrichir : vérifier si déjà importé dans le VWB
for wf in merged:
existing = Workflow.query.filter(

View File

@@ -58,9 +58,15 @@ db.init_app(app)
migrate = Migrate(app, db)
cache = Cache(app)
_ALLOWED_ORIGINS = [
"http://localhost:3002",
"http://localhost:5002",
"https://vwb.labs.laurinebazin.design",
"https://lea.labs.laurinebazin.design",
]
socketio = SocketIO(
app,
cors_allowed_origins="*",
cors_allowed_origins=_ALLOWED_ORIGINS,
async_mode='threading',
logger=True,
engineio_logger=True
@@ -204,6 +210,16 @@ def set_security_headers(response):
response.headers['X-Content-Type-Options'] = 'nosniff'
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['X-XSS-Protection'] = '1; mode=block'
response.headers['Referrer-Policy'] = 'strict-origin-when-cross-origin'
response.headers['Content-Security-Policy'] = (
"default-src 'self'; "
"script-src 'self' 'unsafe-inline' 'unsafe-eval'; "
"style-src 'self' 'unsafe-inline'; "
"img-src 'self' data: blob:; "
"connect-src 'self' ws: wss: http://localhost:* https://vwb.labs.laurinebazin.design https://lea.labs.laurinebazin.design; "
"font-src 'self' data:; "
"frame-ancestors 'self'"
)
return response

View File

@@ -67,6 +67,11 @@ import os
import json
import requests
import re
try:
from vlm_provider import vlm_hub
except ImportError:
from visual_workflow_builder.backend.vlm_provider import vlm_hub
try:
import cv2
import numpy as np
@@ -624,21 +629,33 @@ def find_anchor_with_vlm(
) -> Optional[Dict[str, Any]]:
"""
Utilise un VLM (Vision Language Model) pour trouver l'ancre sur l'écran.
Le VLM comprend le contexte visuel et peut distinguer:
- Une icône dans le dock vs le même logo dans la fenêtre principale
- Un bouton actif vs sa copie dans une miniature
Args:
screenshot_base64: Capture d'écran complète en base64
anchor_image_base64: Image de l'ancre à trouver en base64
anchor_description: Description textuelle de l'élément (optionnel)
screen_width: Largeur de l'écran
screen_height: Hauteur de l'écran
Returns:
Dict avec coordonnées {x, y, confidence} ou None si non trouvé
En priorité via Gemini Cloud (vlm_hub), sinon via Ollama local.
"""
# 1. Essayer via le VLM Hub (Gemini Cloud)
if vlm_hub.use_cloud and vlm_hub.google_api_key:
print(f"🧠 [VLM Hub] Tentative via Gemini Cloud pour: '{anchor_description}'...")
coords = vlm_hub.detect_ui_element(
screenshot=screenshot_base64,
anchor_image=anchor_image_base64,
description=anchor_description or "l'élément UI spécifié"
)
if coords and coords.get('found'):
# Convertir bbox normalisée [ymin, xmin, ymax, xmax] (0-1000) en pixels [x, y]
bbox = coords.get('bbox')
if bbox and len(bbox) == 4:
# Gemini retourne souvent [ymin, xmin, ymax, xmax] sur une échelle 0-1000
y1, x1, y2, x2 = bbox
x = int((x1 + x2) / 2 * screen_width / 1000)
y = int((y1 + y2) / 2 * screen_height / 1000)
confidence = float(coords.get('confidence', 0.9))
print(f"✅ [VLM Hub] Gemini a trouvé l'élément à ({x}, {y}) avec confiance {confidence:.0%}")
return {
"found": True, "x": x, "y": y, "center_x": x, "center_y": y,
"confidence": confidence, "method": "gemini_cloud"
}
# 2. Fallback sur Ollama Local
if not check_ollama_available():
print("⚠️ [VLM] Ollama/qwen2.5vl non disponible, fallback sur pyautogui")
return None
@@ -976,7 +993,9 @@ def find_anchor_multiscale(anchor_image_base64: str, scales: List[float] = None,
Dict avec les coordonnées trouvées ou None
"""
if scales is None:
scales = [0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3]
# Plage étendue 0.5x-2.0x pour couvrir les écarts de résolution importants
# (ex: apprentissage 2560x1600 → replay 1280x720 = ratio ~0.5x)
scales = [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.5, 1.75, 2.0]
if not CV2_AVAILABLE:
return None

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_01a7b6e80168_1769095224",
"bounding_box": {
"x": 52.666666666666664,
"y": 23.866658528645832,
"width": 100,
"height": 24
},
"original_size": {
"width": 120,
"height": 44
},
"thumbnail_size": {
"width": 120,
"height": 44
},
"created_at": "2026-01-22T16:20:24.448773",
"original_file_size": 4172,
"thumbnail_file_size": 1342
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_07961dc0aa07_1769032466",
"bounding_box": {
"x": 788.4444173177084,
"y": 89.7407145416744,
"width": 144,
"height": 141.33332055362771
},
"original_size": {
"width": 164,
"height": 161
},
"thumbnail_size": {
"width": 153,
"height": 150
},
"created_at": "2026-01-21T22:54:26.818654",
"original_file_size": 15929,
"thumbnail_file_size": 2733
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"original_size": {
"width": 634,
"height": 88
},
"thumbnail_size": {
"width": 200,
"height": 28
},
"created_at": "2026-01-22T16:10:38.629806",
"original_file_size": 32381,
"thumbnail_file_size": 1690
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_0b04180c5773_1769093895",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"original_size": {
"width": 260,
"height": 41
},
"thumbnail_size": {
"width": 200,
"height": 32
},
"created_at": "2026-01-22T15:58:15.431474",
"original_file_size": 7749,
"thumbnail_file_size": 1693
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_109e03d0bd6e_1769027528",
"bounding_box": {
"x": 661.7777506510416,
"y": 37.648108574932316,
"width": 325.3333333333333,
"height": 49.33332887249268
},
"original_size": {
"width": 345,
"height": 69
},
"thumbnail_size": {
"width": 200,
"height": 40
},
"created_at": "2026-01-21T21:32:08.911570",
"original_file_size": 8040,
"thumbnail_file_size": 1021
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_154f2965ccd7_1769071042",
"bounding_box": {
"x": 6,
"y": 837.1999918619791,
"width": 52,
"height": 57.333333333333336
},
"original_size": {
"width": 72,
"height": 73
},
"thumbnail_size": {
"width": 72,
"height": 73
},
"created_at": "2026-01-22T09:37:23.002573",
"original_file_size": 3336,
"thumbnail_file_size": 1081
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_1f14f3421523_1769019671",
"bounding_box": {
"x": 7.511067708333333,
"y": 840,
"width": 41.333333333333336,
"height": 60
},
"original_size": {
"width": 61,
"height": 70
},
"thumbnail_size": {
"width": 61,
"height": 70
},
"created_at": "2026-01-21T19:21:11.133210",
"original_file_size": 3663,
"thumbnail_file_size": 1044
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_22071a702f14_1769019035",
"bounding_box": {
"x": 0.4444173177083333,
"y": 840.4073133312253,
"width": 53.333333333333336,
"height": 55.99999493634308
},
"original_size": {
"width": 73,
"height": 70
},
"thumbnail_size": {
"width": 73,
"height": 70
},
"created_at": "2026-01-21T19:10:35.916823",
"original_file_size": 3804,
"thumbnail_file_size": 1105
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_2dcada499503_1769026880",
"bounding_box": {
"x": 1.7777506510416667,
"y": 839.0739801184551,
"width": 53.333333333333336,
"height": 47.99999565972272
},
"original_size": {
"width": 73,
"height": 67
},
"thumbnail_size": {
"width": 73,
"height": 67
},
"created_at": "2026-01-21T21:21:20.684380",
"original_file_size": 3414,
"thumbnail_file_size": 1063
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_38b46eeb9aa7_1769108446",
"bounding_box": {
"x": 787.3333333333334,
"y": 86.5333251953125,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"original_size": {
"width": 158,
"height": 162
},
"thumbnail_size": {
"width": 146,
"height": 150
},
"created_at": "2026-01-22T20:00:46.168811",
"original_file_size": 15894,
"thumbnail_file_size": 2792
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_3b097ff2f8e0_1769032447",
"bounding_box": {
"x": 57.777750651041664,
"y": 25.740720328710907,
"width": 96,
"height": 27.999997468171525
},
"original_size": {
"width": 116,
"height": 47
},
"thumbnail_size": {
"width": 116,
"height": 47
},
"created_at": "2026-01-21T22:54:07.560023",
"original_file_size": 3897,
"thumbnail_file_size": 1276
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_3bfad8fb87f6_1769071011",
"bounding_box": {
"x": 10,
"y": 846.5111083984375,
"width": 40,
"height": 44
},
"original_size": {
"width": 60,
"height": 64
},
"thumbnail_size": {
"width": 60,
"height": 64
},
"created_at": "2026-01-22T09:36:51.077375",
"original_file_size": 3265,
"thumbnail_file_size": 1012
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_3fa725d0afac_1769027605",
"bounding_box": {
"x": 681.7777506510416,
"y": 52.40738458411236,
"width": 185.33333333333334,
"height": 21.33333140432116
},
"original_size": {
"width": 205,
"height": 41
},
"thumbnail_size": {
"width": 200,
"height": 40
},
"created_at": "2026-01-21T21:33:25.656268",
"original_file_size": 6955,
"thumbnail_file_size": 1693
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_411d198f7d8d_1769026971",
"bounding_box": {
"x": 4.444417317708333,
"y": 825.7406479907545,
"width": 53.333333333333336,
"height": 59.99999457465325
},
"original_size": {
"width": 73,
"height": 79
},
"thumbnail_size": {
"width": 73,
"height": 79
},
"created_at": "2026-01-21T21:22:51.165280",
"original_file_size": 3422,
"thumbnail_file_size": 1059
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_41312810e9ab_1769018430",
"bounding_box": {
"x": 20,
"y": 20,
"width": 100,
"height": 80
},
"original_size": {
"width": 120,
"height": 100
},
"thumbnail_size": {
"width": 120,
"height": 100
},
"created_at": "2026-01-21T19:00:30.494847",
"original_file_size": 222,
"thumbnail_file_size": 798
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_41d6a1572597_1769026781",
"bounding_box": {
"x": 3.111083984375,
"y": 840.7591606301395,
"width": 50.666666666666664,
"height": 51.9999952980329
},
"original_size": {
"width": 70,
"height": 70
},
"thumbnail_size": {
"width": 70,
"height": 70
},
"created_at": "2026-01-21T21:19:41.943551",
"original_file_size": 3436,
"thumbnail_file_size": 1055
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_490e337ebcfc_1769086898",
"bounding_box": {
"x": 3.111083984375,
"y": 151.07404232909775,
"width": 50.666666666666664,
"height": 53.33332851080289
},
"original_size": {
"width": 70,
"height": 73
},
"thumbnail_size": {
"width": 70,
"height": 73
},
"created_at": "2026-01-22T14:01:38.851522",
"original_file_size": 7591,
"thumbnail_file_size": 1434
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_4e3067c7d77f_1769032292",
"bounding_box": {
"x": 673.7777506510416,
"y": 43.07405209472185,
"width": 305.3333333333333,
"height": 37.333329957562036
},
"original_size": {
"width": 325,
"height": 57
},
"thumbnail_size": {
"width": 200,
"height": 35
},
"created_at": "2026-01-21T22:51:32.559892",
"original_file_size": 7844,
"thumbnail_file_size": 1108
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_55e73b435685_1769027422",
"bounding_box": {
"x": 7.111083984375,
"y": 843.0739797567654,
"width": 45.333333333333336,
"height": 49.33332887249268
},
"original_size": {
"width": 65,
"height": 67
},
"thumbnail_size": {
"width": 65,
"height": 67
},
"created_at": "2026-01-21T21:30:22.544153",
"original_file_size": 3419,
"thumbnail_file_size": 1073
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_58b59356cf75_1769111447",
"bounding_box": {
"x": 615.3333333333334,
"y": 81.19999186197917,
"width": 144,
"height": 150.66666666666666
},
"original_size": {
"width": 164,
"height": 170
},
"thumbnail_size": {
"width": 145,
"height": 150
},
"created_at": "2026-01-22T20:50:47.554442",
"original_file_size": 11685,
"thumbnail_file_size": 2441
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_68b5b0da9a64_1769097688",
"bounding_box": {
"x": 67.33333333333333,
"y": 26.5333251953125,
"width": 22.666666666666668,
"height": 26.666666666666668
},
"original_size": {
"width": 42,
"height": 46
},
"thumbnail_size": {
"width": 42,
"height": 46
},
"created_at": "2026-01-22T17:01:28.364282",
"original_file_size": 1795,
"thumbnail_file_size": 707
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_6a859da4b8a2_1769091100",
"bounding_box": {
"x": -0.888916015625,
"y": 845.7406461823056,
"width": 57.333333333333336,
"height": 50.66666208526279
},
"original_size": {
"width": 77,
"height": 65
},
"thumbnail_size": {
"width": 77,
"height": 65
},
"created_at": "2026-01-22T15:11:40.315519",
"original_file_size": 3437,
"thumbnail_file_size": 1125
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_6ca93ca7659b_1769095422",
"bounding_box": {
"x": 68.66666666666667,
"y": 31.866658528645832,
"width": 85.33333333333333,
"height": 14.666666666666666
},
"original_size": {
"width": 105,
"height": 34
},
"thumbnail_size": {
"width": 105,
"height": 34
},
"created_at": "2026-01-22T16:23:42.687417",
"original_file_size": 3309,
"thumbnail_file_size": 1132
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_72dc58cdbbe2_1769079328",
"bounding_box": {
"x": 5.777750651041667,
"y": 843.0739797567654,
"width": 46.666666666666664,
"height": 53.33332851080286
},
"original_size": {
"width": 66,
"height": 67
},
"thumbnail_size": {
"width": 66,
"height": 67
},
"created_at": "2026-01-22T11:55:28.209469",
"original_file_size": 4025,
"thumbnail_file_size": 1237
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_74a09f5b2603_1769107519",
"bounding_box": {
"x": 56.666666666666664,
"y": 27.866658528645832,
"width": 98.66666666666667,
"height": 21.333333333333332
},
"original_size": {
"width": 118,
"height": 41
},
"thumbnail_size": {
"width": 118,
"height": 41
},
"created_at": "2026-01-22T19:45:19.515074",
"original_file_size": 3850,
"thumbnail_file_size": 1288
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_7677c82a68bc_1769093993",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"original_size": {
"width": 118,
"height": 130
},
"thumbnail_size": {
"width": 118,
"height": 130
},
"created_at": "2026-01-22T15:59:53.309677",
"original_file_size": 17093,
"thumbnail_file_size": 3009
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_79d84dda4257_1769079491",
"bounding_box": {
"x": 5.777750651041667,
"y": 847.0739793950756,
"width": 46.666666666666664,
"height": 50.66666208526279
},
"original_size": {
"width": 66,
"height": 63
},
"thumbnail_size": {
"width": 66,
"height": 63
},
"created_at": "2026-01-22T11:58:11.312760",
"original_file_size": 3813,
"thumbnail_file_size": 1097
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"original_size": {
"width": 62,
"height": 61
},
"thumbnail_size": {
"width": 62,
"height": 61
},
"created_at": "2026-01-22T15:24:49.229883",
"original_file_size": 3265,
"thumbnail_file_size": 972
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_7f05480c1da2_1769086942",
"bounding_box": {
"x": 0.4444173177083333,
"y": 95.07404739275468,
"width": 50.666666666666664,
"height": 58.6666613618832
},
"original_size": {
"width": 70,
"height": 78
},
"thumbnail_size": {
"width": 70,
"height": 78
},
"created_at": "2026-01-22T14:02:22.124508",
"original_file_size": 6806,
"thumbnail_file_size": 1469
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_851447edda6a_1769094102",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"original_size": {
"width": 165,
"height": 170
},
"thumbnail_size": {
"width": 146,
"height": 150
},
"created_at": "2026-01-22T16:01:42.039695",
"original_file_size": 11696,
"thumbnail_file_size": 2474
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_8676ea613f0d_1769031704",
"bounding_box": {
"x": 405.7777506510417,
"y": 100.40738024383496,
"width": 120,
"height": 117.33332272376639
},
"original_size": {
"width": 140,
"height": 137
},
"thumbnail_size": {
"width": 140,
"height": 137
},
"created_at": "2026-01-21T22:41:44.732783",
"original_file_size": 17773,
"thumbnail_file_size": 3255
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_9b8fb0066648_1769088263",
"bounding_box": {
"x": 4.444417317708333,
"y": 512.4073429897875,
"width": 44,
"height": 46.666662446952536
},
"original_size": {
"width": 64,
"height": 66
},
"thumbnail_size": {
"width": 64,
"height": 66
},
"created_at": "2026-01-22T14:24:23.082162",
"original_file_size": 3870,
"thumbnail_file_size": 1015
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_a14d9a2ab6d5_1769031402",
"bounding_box": {
"x": 619.111083984375,
"y": 85.59256224748968,
"width": 138.66666666666666,
"height": 146.666653404708
},
"original_size": {
"width": 158,
"height": 166
},
"thumbnail_size": {
"width": 143,
"height": 150
},
"created_at": "2026-01-21T22:36:42.812376",
"original_file_size": 11642,
"thumbnail_file_size": 2554
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_a80b7accc764_1769095298",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"original_size": {
"width": 158,
"height": 162
},
"thumbnail_size": {
"width": 146,
"height": 150
},
"created_at": "2026-01-22T16:21:38.941443",
"original_file_size": 15842,
"thumbnail_file_size": 2829
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_af322c06f1ff_1769097662",
"bounding_box": {
"x": 64.66666666666667,
"y": 31.866658528645832,
"width": 80,
"height": 13.333333333333334
},
"original_size": {
"width": 100,
"height": 33
},
"thumbnail_size": {
"width": 100,
"height": 33
},
"created_at": "2026-01-22T17:01:02.148524",
"original_file_size": 3358,
"thumbnail_file_size": 1226
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_b75fa9a8f1dd_1769090648",
"bounding_box": {
"x": 0.4444173177083333,
"y": 847.0739793950756,
"width": 53.333333333333336,
"height": 41.33332959587233
},
"original_size": {
"width": 73,
"height": 61
},
"thumbnail_size": {
"width": 73,
"height": 61
},
"created_at": "2026-01-22T15:04:08.862025",
"original_file_size": 3821,
"thumbnail_file_size": 1097
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_b98b50f27a10_1769031253",
"bounding_box": {
"x": 764.4444173177084,
"y": 99.0740470310649,
"width": 121.33333333333333,
"height": 119.99998914930653
},
"original_size": {
"width": 141,
"height": 139
},
"thumbnail_size": {
"width": 141,
"height": 139
},
"created_at": "2026-01-21T22:34:13.654029",
"original_file_size": 18201,
"thumbnail_file_size": 3211
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_b9bc7ea3369b_1769070632",
"bounding_box": {
"x": 4.666666666666667,
"y": 841.1999918619791,
"width": 42.666666666666664,
"height": 49.333333333333336
},
"original_size": {
"width": 62,
"height": 69
},
"thumbnail_size": {
"width": 62,
"height": 69
},
"created_at": "2026-01-22T09:30:32.058188",
"original_file_size": 3302,
"thumbnail_file_size": 992
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_c5acc71c3066_1769032342",
"bounding_box": {
"x": 771.111083984375,
"y": 100.40738024383496,
"width": 114.66666666666667,
"height": 115.99998951099631
},
"original_size": {
"width": 134,
"height": 135
},
"thumbnail_size": {
"width": 134,
"height": 135
},
"created_at": "2026-01-21T22:52:22.390957",
"original_file_size": 18134,
"thumbnail_file_size": 3249
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_cb7bb23c8a14_1769032268",
"bounding_box": {
"x": 1.7777506510416667,
"y": 847.0739793950756,
"width": 46.666666666666664,
"height": 42.666662808642286
},
"original_size": {
"width": 66,
"height": 62
},
"thumbnail_size": {
"width": 66,
"height": 62
},
"created_at": "2026-01-21T22:51:08.672430",
"original_file_size": 3811,
"thumbnail_file_size": 1097
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_cbbf8da48554_1769087932",
"bounding_box": {
"x": 3.111083984375,
"y": 513.7406762025574,
"width": 50.666666666666664,
"height": 50.66666208526279
},
"original_size": {
"width": 70,
"height": 70
},
"thumbnail_size": {
"width": 70,
"height": 70
},
"created_at": "2026-01-22T14:18:52.177268",
"original_file_size": 4500,
"thumbnail_file_size": 1161
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_ce32eeaee5f3_1769094302",
"bounding_box": {
"x": 554,
"y": 246.5111083984375,
"width": 397.3333333333333,
"height": 80
},
"original_size": {
"width": 417,
"height": 100
},
"thumbnail_size": {
"width": 200,
"height": 48
},
"created_at": "2026-01-22T16:05:02.298864",
"original_file_size": 722,
"thumbnail_file_size": 434
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_d17a52b107a3_1769107828",
"bounding_box": {
"x": 67.33333333333333,
"y": 33.199991861979164,
"width": 86.66666666666667,
"height": 16
},
"original_size": {
"width": 106,
"height": 36
},
"thumbnail_size": {
"width": 106,
"height": 36
},
"created_at": "2026-01-22T19:50:28.013035",
"original_file_size": 3411,
"thumbnail_file_size": 1147
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_d56f40038e9e_1769032370",
"bounding_box": {
"x": 615.111083984375,
"y": 83.07404847782404,
"width": 145.33333333333334,
"height": 143.99998697916786
},
"original_size": {
"width": 165,
"height": 163
},
"thumbnail_size": {
"width": 152,
"height": 150
},
"created_at": "2026-01-21T22:52:50.018519",
"original_file_size": 11671,
"thumbnail_file_size": 2573
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_e58aac648ced_1769107942",
"bounding_box": {
"x": 66,
"y": 30.5333251953125,
"width": 36,
"height": 14.666666666666666
},
"original_size": {
"width": 56,
"height": 34
},
"thumbnail_size": {
"width": 56,
"height": 34
},
"created_at": "2026-01-22T19:52:22.111021",
"original_file_size": 2182,
"thumbnail_file_size": 764
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_eee366c56930_1769026720",
"bounding_box": {
"x": 667.111083984375,
"y": 460.40734769175464,
"width": 281.3333333333333,
"height": 166.66665159625904
},
"original_size": {
"width": 301,
"height": 186
},
"thumbnail_size": {
"width": 200,
"height": 124
},
"created_at": "2026-01-21T21:18:40.259323",
"original_file_size": 37477,
"thumbnail_file_size": 4521
}

View File

@@ -0,0 +1,20 @@
{
"anchor_id": "anchor_f4a2ad879e23_1769088708",
"bounding_box": {
"x": -0.888916015625,
"y": 847.0739793950756,
"width": 57.333333333333336,
"height": 51.9999952980329
},
"original_size": {
"width": 77,
"height": 63
},
"thumbnail_size": {
"width": 77,
"height": 63
},
"created_at": "2026-01-22T14:31:48.213019",
"original_file_size": 3431,
"thumbnail_file_size": 1026
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,749 @@
{
"id": "2d5484c7-077d-4e1e-b789-33ebf63bc3c5",
"name": "nouveau_test_onlyoffice_v0",
"description": "Workflow créé avec le Visual Workflow Builder V2",
"version": "1.0.0",
"created_at": "2026-01-22T20:51:14.756283",
"updated_at": "2026-01-22T20:51:14.756283",
"created_by": "vwb_user",
"nodes": [
{
"id": "step_1769091866031",
"type": "click_anchor",
"position": {
"x": 141.99200000000005,
"y": 10.567331298828165
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769093845389",
"type": "type_text",
"position": {
"x": 547.4300000000001,
"y": 24.02866870117188
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769093958114",
"type": "click_anchor",
"position": {
"x": 68.87900000000002,
"y": 142.21
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094058708",
"type": "click_anchor",
"position": {
"x": 324.468897592398,
"y": 190.86410958085818
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_58b59356cf75_1769111447",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_58b59356cf75_1769111447/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_58b59356cf75_1769111447/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 81.19999186197917,
"width": 144,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769111438387",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T19:50:47.555Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_58b59356cf75_1769111447",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_58b59356cf75_1769111447/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_58b59356cf75_1769111447/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 81.19999186197917,
"width": 144,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769111438387",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T19:50:47.555Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094571765",
"type": "wait_for_anchor",
"position": {
"x": 602.1897189136909,
"y": 189.69164550078372
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Attendre Ancre",
"description": null,
"color": null,
"data": {
"label": "Attendre Ancre",
"stepType": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"isVWBCatalogAction": true,
"vwbActionId": "wait_for_anchor"
}
},
{
"id": "step_1769094650752",
"type": "type_text",
"position": {
"x": 916.8155219139693,
"y": 207.31087743804224
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "coucou, ceci est un texte"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"text": "coucou, ceci est un texte"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769095281194",
"type": "click_anchor",
"position": {
"x": 564.3493407826127,
"y": 409.72636424790176
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769107784380",
"type": "wait_for_anchor",
"position": {
"x": 7.368423956078814,
"y": 378.76964143246084
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_d17a52b107a3_1769107828",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/original",
"bounding_box": {
"x": 67.33333333333333,
"y": 33.199991861979164,
"width": 86.66666666666667,
"height": 16
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107795877",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:50:28.014Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Attendre Ancre",
"description": null,
"color": null,
"data": {
"label": "Attendre Ancre",
"stepType": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_d17a52b107a3_1769107828",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/original",
"bounding_box": {
"x": 67.33333333333333,
"y": 33.199991861979164,
"width": 86.66666666666667,
"height": 16
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107795877",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:50:28.014Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "wait_for_anchor"
}
},
{
"id": "step_1769107899143",
"type": "focus_anchor",
"position": {
"x": 279.69043366502626,
"y": 390.0473520837619
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_e58aac648ced_1769107942",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/original",
"bounding_box": {
"x": 66,
"y": 30.5333251953125,
"width": 36,
"height": 14.666666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107925153",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:52:22.111Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Focaliser Ancre",
"description": null,
"color": null,
"data": {
"label": "Focaliser Ancre",
"stepType": "focus_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_e58aac648ced_1769107942",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/original",
"bounding_box": {
"x": 66,
"y": 30.5333251953125,
"width": 36,
"height": 14.666666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107925153",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:52:22.111Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "focus_anchor"
}
}
],
"edges": [
{
"id": "conn_1769093909935",
"source": "step_1769091866031",
"target": "step_1769093845389",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094003522",
"source": "step_1769093845389",
"target": "step_1769093958114",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094109802",
"source": "step_1769093958114",
"target": "step_1769094058708",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094643687",
"source": "step_1769094058708",
"target": "step_1769094571765",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094671074",
"source": "step_1769094571765",
"target": "step_1769094650752",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769107957312",
"source": "step_1769094650752",
"target": "step_1769107784380",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769107965063",
"source": "step_1769107784380",
"target": "step_1769107899143",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769107968640",
"source": "step_1769107899143",
"target": "step_1769095281194",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,749 @@
{
"id": "31d2a6e7-2b3a-48ef-8123-ec134fea922f",
"name": "nouveau_test_onlyoffice_v0",
"description": "Workflow créé avec le Visual Workflow Builder V2",
"version": "1.0.0",
"created_at": "2026-01-22T20:01:39.615418",
"updated_at": "2026-01-22T20:01:39.615418",
"created_by": "vwb_user",
"nodes": [
{
"id": "step_1769091866031",
"type": "click_anchor",
"position": {
"x": 141.99200000000005,
"y": 10.567331298828165
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769093845389",
"type": "type_text",
"position": {
"x": 547.4300000000001,
"y": 24.02866870117188
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769093958114",
"type": "click_anchor",
"position": {
"x": 68.87900000000002,
"y": 142.21
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094058708",
"type": "click_anchor",
"position": {
"x": 324.468897592398,
"y": 190.86410958085818
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_38b46eeb9aa7_1769108446",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_38b46eeb9aa7_1769108446/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_38b46eeb9aa7_1769108446/original",
"bounding_box": {
"x": 787.3333333333334,
"y": 86.5333251953125,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769108434846",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T19:00:46.170Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_38b46eeb9aa7_1769108446",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_38b46eeb9aa7_1769108446/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_38b46eeb9aa7_1769108446/original",
"bounding_box": {
"x": 787.3333333333334,
"y": 86.5333251953125,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769108434846",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T19:00:46.170Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094571765",
"type": "wait_for_anchor",
"position": {
"x": 602.1897189136909,
"y": 189.69164550078372
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Attendre Ancre",
"description": null,
"color": null,
"data": {
"label": "Attendre Ancre",
"stepType": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"isVWBCatalogAction": true,
"vwbActionId": "wait_for_anchor"
}
},
{
"id": "step_1769094650752",
"type": "type_text",
"position": {
"x": 916.8155219139693,
"y": 207.31087743804224
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "coucou, ceci est un texte"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"text": "coucou, ceci est un texte"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769095281194",
"type": "click_anchor",
"position": {
"x": 564.3493407826127,
"y": 409.72636424790176
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769107784380",
"type": "wait_for_anchor",
"position": {
"x": 7.368423956078814,
"y": 378.76964143246084
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_d17a52b107a3_1769107828",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/original",
"bounding_box": {
"x": 67.33333333333333,
"y": 33.199991861979164,
"width": 86.66666666666667,
"height": 16
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107795877",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:50:28.014Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Attendre Ancre",
"description": null,
"color": null,
"data": {
"label": "Attendre Ancre",
"stepType": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_d17a52b107a3_1769107828",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_d17a52b107a3_1769107828/original",
"bounding_box": {
"x": 67.33333333333333,
"y": 33.199991861979164,
"width": 86.66666666666667,
"height": 16
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107795877",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:50:28.014Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "wait_for_anchor"
}
},
{
"id": "step_1769107899143",
"type": "focus_anchor",
"position": {
"x": 279.69043366502626,
"y": 390.0473520837619
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_e58aac648ced_1769107942",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/original",
"bounding_box": {
"x": 66,
"y": 30.5333251953125,
"width": 36,
"height": 14.666666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107925153",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:52:22.111Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Focaliser Ancre",
"description": null,
"color": null,
"data": {
"label": "Focaliser Ancre",
"stepType": "focus_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_e58aac648ced_1769107942",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_e58aac648ced_1769107942/original",
"bounding_box": {
"x": 66,
"y": 30.5333251953125,
"width": 36,
"height": 14.666666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769107925153",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T18:52:22.111Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "focus_anchor"
}
}
],
"edges": [
{
"id": "conn_1769093909935",
"source": "step_1769091866031",
"target": "step_1769093845389",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094003522",
"source": "step_1769093845389",
"target": "step_1769093958114",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094109802",
"source": "step_1769093958114",
"target": "step_1769094058708",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094643687",
"source": "step_1769094058708",
"target": "step_1769094571765",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094671074",
"source": "step_1769094571765",
"target": "step_1769094650752",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769107957312",
"source": "step_1769094650752",
"target": "step_1769107784380",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769107965063",
"source": "step_1769107784380",
"target": "step_1769107899143",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769107968640",
"source": "step_1769107899143",
"target": "step_1769095281194",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,663 @@
{
"id": "5a8191ca-b095-4dd4-9c89-0f009c59124e",
"name": "nouveau_test_onlyoffice_v0",
"description": "Workflow créé avec le Visual Workflow Builder V2",
"version": "1.0.0",
"created_at": "2026-01-22T16:23:56.215498",
"updated_at": "2026-01-22T16:23:56.215498",
"created_by": "vwb_user",
"nodes": [
{
"id": "step_1769091866031",
"type": "click_anchor",
"position": {
"x": 141.99200000000005,
"y": 10.567331298828165
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769093845389",
"type": "type_text",
"position": {
"x": 547.4300000000001,
"y": 24.02866870117188
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769093958114",
"type": "click_anchor",
"position": {
"x": 68.87900000000002,
"y": 142.21
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094058708",
"type": "click_anchor",
"position": {
"x": 324.468897592398,
"y": 190.86410958085818
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094571765",
"type": "wait_for_anchor",
"position": {
"x": 602.1897189136909,
"y": 189.69164550078372
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Attendre Ancre",
"description": null,
"color": null,
"data": {
"label": "Attendre Ancre",
"stepType": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"isVWBCatalogAction": true,
"vwbActionId": "wait_for_anchor"
}
},
{
"id": "step_1769094650752",
"type": "type_text",
"position": {
"x": 884.1885086342457,
"y": 235.2182892242344
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "coucou, ceci est un texte"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"text": "coucou, ceci est un texte"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769095203378",
"type": "click_anchor",
"position": {
"x": 79.16251418311415,
"y": 328.09561279317825
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_6ca93ca7659b_1769095422",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_6ca93ca7659b_1769095422/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_6ca93ca7659b_1769095422/original",
"bounding_box": {
"x": 68.66666666666667,
"y": 31.866658528645832,
"width": 85.33333333333333,
"height": 14.666666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095411441",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:23:42.688Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_6ca93ca7659b_1769095422",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_6ca93ca7659b_1769095422/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_6ca93ca7659b_1769095422/original",
"bounding_box": {
"x": 68.66666666666667,
"y": 31.866658528645832,
"width": 85.33333333333333,
"height": 14.666666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095411441",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:23:42.688Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769095281194",
"type": "click_anchor",
"position": {
"x": 564.3493407826127,
"y": 409.72636424790176
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
}
],
"edges": [
{
"id": "conn_1769093909935",
"source": "step_1769091866031",
"target": "step_1769093845389",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094003522",
"source": "step_1769093845389",
"target": "step_1769093958114",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094109802",
"source": "step_1769093958114",
"target": "step_1769094058708",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094643687",
"source": "step_1769094058708",
"target": "step_1769094571765",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094671074",
"source": "step_1769094571765",
"target": "step_1769094650752",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769095248763",
"source": "step_1769094650752",
"target": "step_1769095203378",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769095285986",
"source": "step_1769095203378",
"target": "step_1769095281194",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,359 @@
{
"id": "ae2ae57b-afe5-479f-8ee9-5858346322c7",
"name": "nouveau_test_onlyoffice_v0",
"description": "Workflow créé avec le Visual Workflow Builder V2",
"version": "1.0.0",
"created_at": "2026-01-22T16:03:08.908767",
"updated_at": "2026-01-22T16:03:08.908767",
"created_by": "vwb_user",
"nodes": [
{
"id": "step_1769091866031",
"type": "click_anchor",
"position": {
"x": 141.99200000000005,
"y": 10.567331298828165
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769093845389",
"type": "type_text",
"position": {
"x": 547.4300000000001,
"y": 24.02866870117188
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769093958114",
"type": "click_anchor",
"position": {
"x": 68.87900000000002,
"y": 142.21
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094058708",
"type": "click_anchor",
"position": {
"x": 609.789,
"y": 203.41066564941406
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
}
],
"edges": [
{
"id": "conn_1769093909935",
"source": "step_1769091866031",
"target": "step_1769093845389",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094003522",
"source": "step_1769093845389",
"target": "step_1769093958114",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094109802",
"source": "step_1769093958114",
"target": "step_1769094058708",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,663 @@
{
"id": "b8f0a3af-ba54-4194-958c-9e412c80ec85",
"name": "nouveau_test_onlyoffice_v0",
"description": "Workflow créé avec le Visual Workflow Builder V2",
"version": "1.0.0",
"created_at": "2026-01-22T17:01:40.016437",
"updated_at": "2026-01-22T17:01:40.016437",
"created_by": "vwb_user",
"nodes": [
{
"id": "step_1769091866031",
"type": "click_anchor",
"position": {
"x": 141.99200000000005,
"y": 10.567331298828165
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769093845389",
"type": "type_text",
"position": {
"x": 547.4300000000001,
"y": 24.02866870117188
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769093958114",
"type": "click_anchor",
"position": {
"x": 68.87900000000002,
"y": 142.21
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094058708",
"type": "click_anchor",
"position": {
"x": 324.468897592398,
"y": 190.86410958085818
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094571765",
"type": "wait_for_anchor",
"position": {
"x": 602.1897189136909,
"y": 189.69164550078372
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Attendre Ancre",
"description": null,
"color": null,
"data": {
"label": "Attendre Ancre",
"stepType": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"isVWBCatalogAction": true,
"vwbActionId": "wait_for_anchor"
}
},
{
"id": "step_1769094650752",
"type": "type_text",
"position": {
"x": 897.0300725422184,
"y": 213.81568271094662
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "coucou, ceci est un texte"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"text": "coucou, ceci est un texte"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769095203378",
"type": "click_anchor",
"position": {
"x": 79.16251418311415,
"y": 328.09561279317825
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_68b5b0da9a64_1769097688",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_68b5b0da9a64_1769097688/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_68b5b0da9a64_1769097688/original",
"bounding_box": {
"x": 67.33333333333333,
"y": 26.5333251953125,
"width": 22.666666666666668,
"height": 26.666666666666668
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769097670433",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T16:01:28.366Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_68b5b0da9a64_1769097688",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_68b5b0da9a64_1769097688/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_68b5b0da9a64_1769097688/original",
"bounding_box": {
"x": 67.33333333333333,
"y": 26.5333251953125,
"width": 22.666666666666668,
"height": 26.666666666666668
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769097670433",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T16:01:28.366Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769095281194",
"type": "click_anchor",
"position": {
"x": 564.3493407826127,
"y": 409.72636424790176
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_a80b7accc764_1769095298",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_a80b7accc764_1769095298/original",
"bounding_box": {
"x": 784.6666666666666,
"y": 89.17777506510417,
"width": 138.66666666666666,
"height": 142.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769095288012",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:21:38.942Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
}
],
"edges": [
{
"id": "conn_1769093909935",
"source": "step_1769091866031",
"target": "step_1769093845389",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094003522",
"source": "step_1769093845389",
"target": "step_1769093958114",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094109802",
"source": "step_1769093958114",
"target": "step_1769094058708",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094643687",
"source": "step_1769094058708",
"target": "step_1769094571765",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094671074",
"source": "step_1769094571765",
"target": "step_1769094650752",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769095248763",
"source": "step_1769094650752",
"target": "step_1769095203378",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769095285986",
"source": "step_1769095203378",
"target": "step_1769095281194",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,87 @@
{
"name": "Export Rapport",
"description": "Exporter un rapport au format PDF ou Excel",
"tags": [
"export",
"rapport",
"report",
"pdf",
"excel"
],
"version": "1.0",
"created_at": "2024-11-29",
"learning_state": "AUTO_CANDIDATE",
"variables": [
{
"name": "format",
"description": "Format d'export (pdf, excel)",
"required": false,
"default_value": "pdf",
"type": "string"
},
{
"name": "periode",
"description": "Période du rapport",
"required": false,
"type": "string"
}
],
"param_patterns": [
"(?:format|en)\\s+(?P<format>pdf|excel|xlsx|csv)",
"(?:période|period)\\s+(?P<periode>[A-Za-z0-9_\\-]+)"
],
"nodes": [
{
"node_id": "start",
"name": "Menu rapports",
"type": "entry"
},
{
"node_id": "export_dialog",
"name": "Dialogue export",
"type": "intermediate"
},
{
"node_id": "exported",
"name": "Rapport exporté",
"type": "end"
}
],
"edges": [
{
"edge_id": "e1",
"source": "start",
"target": "export_dialog",
"action": {
"type": "mouse_click",
"target": {
"role": "primary_action",
"text": "Exporter"
}
}
},
{
"edge_id": "e2",
"source": "export_dialog",
"target": "exported",
"action": {
"type": "mouse_click",
"target": {
"role": "submit",
"text": "{{format}}"
}
}
}
],
"entry_nodes": [
"start"
],
"end_nodes": [
"exported"
],
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-20T14:41:18.030292",
"format": "json"
}
}

View File

@@ -0,0 +1,491 @@
{
"id": "f4d8a1fd-d6aa-4cbd-a589-35bdb8be1644",
"name": "nouveau_test_onlyoffice_v0",
"description": "Workflow créé avec le Visual Workflow Builder V2",
"version": "1.0.0",
"created_at": "2026-01-22T16:13:42.520071",
"updated_at": "2026-01-22T16:13:42.520071",
"created_by": "vwb_user",
"nodes": [
{
"id": "step_1769091866031",
"type": "click_anchor",
"position": {
"x": 141.99200000000005,
"y": 10.567331298828165
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7de070f7b4c5_1769091889",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7de070f7b4c5_1769091889/original",
"bounding_box": {
"x": 6,
"y": 847.8666585286459,
"width": 42.666666666666664,
"height": 41.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769091868111",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:24:49.230Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769093845389",
"type": "type_text",
"position": {
"x": 547.4300000000001,
"y": 24.02866870117188
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0b04180c5773_1769093895",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0b04180c5773_1769093895/original",
"bounding_box": {
"x": 702,
"y": 55.866658528645836,
"width": 240,
"height": 21.333333333333332
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093848350",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:58:15.433Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"text": "onlyoffice"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
},
{
"id": "step_1769093958114",
"type": "click_anchor",
"position": {
"x": 68.87900000000002,
"y": 142.21
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_7677c82a68bc_1769093993",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_7677c82a68bc_1769093993/original",
"bounding_box": {
"x": 415.3333333333333,
"y": 107.86665852864583,
"width": 98.66666666666667,
"height": 110.66666666666667
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769093963353",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T14:59:53.311Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094058708",
"type": "click_anchor",
"position": {
"x": 324.468897592398,
"y": 190.86410958085818
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Cliquer sur Ancre",
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_851447edda6a_1769094102",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_851447edda6a_1769094102/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_851447edda6a_1769094102/original",
"bounding_box": {
"x": 615.3333333333334,
"y": 83.86665852864583,
"width": 145.33333333333334,
"height": 150.66666666666666
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094064469",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:01:42.041Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769094571765",
"type": "wait_for_anchor",
"position": {
"x": 602.1897189136909,
"y": 189.69164550078372
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Attendre Ancre",
"description": null,
"color": null,
"data": {
"label": "Attendre Ancre",
"stepType": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_0ad95fe4cd0d_1769094638",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_0ad95fe4cd0d_1769094638/original",
"bounding_box": {
"x": 378,
"y": 95.86665852864583,
"width": 614.6666666666666,
"height": 68
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769094606567",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T15:10:38.630Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
},
"timeout_ms": 3000
},
"isVWBCatalogAction": true,
"vwbActionId": "wait_for_anchor"
}
},
{
"id": "step_1769094650752",
"type": "type_text",
"position": {
"x": 884.1885086342457,
"y": 235.2182892242344
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "coucou, ceci est un texte"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": "Saisir Texte",
"description": null,
"color": null,
"data": {
"label": "Saisir Texte",
"stepType": "type_text",
"parameters": {
"text": "coucou, ceci est un texte"
},
"isVWBCatalogAction": true,
"vwbActionId": "type_text"
}
}
],
"edges": [
{
"id": "conn_1769093909935",
"source": "step_1769091866031",
"target": "step_1769093845389",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094003522",
"source": "step_1769093845389",
"target": "step_1769093958114",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094109802",
"source": "step_1769093958114",
"target": "step_1769094058708",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094643687",
"source": "step_1769094058708",
"target": "step_1769094571765",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769094671074",
"source": "step_1769094571765",
"target": "step_1769094650752",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,124 @@
{
"name": "Facturation Client",
"description": "Créer une facture pour un client dans le système de facturation",
"tags": [
"facturer",
"facture",
"client",
"invoice",
"billing"
],
"version": "1.0",
"created_at": "2024-11-29",
"learning_state": "AUTO_CANDIDATE",
"variables": [
{
"name": "client",
"description": "Nom du client à facturer",
"required": true,
"type": "string"
},
{
"name": "montant",
"description": "Montant de la facture",
"required": false,
"default_value": "0",
"type": "number"
}
],
"param_patterns": [
"(?:client|customer)\\s+(?P<client>[A-Za-z0-9_\\-]+)",
"(?:facturer|invoice)\\s+(?P<client>[A-Za-z0-9_\\-]+)",
"(?P<montant>\\d+(?:\\.\\d+)?)\\s*(?:€|EUR|euros?)"
],
"nodes": [
{
"node_id": "start",
"name": "Écran d'accueil",
"type": "entry"
},
{
"node_id": "client_search",
"name": "Recherche client",
"type": "intermediate"
},
{
"node_id": "client_selected",
"name": "Client sélectionné",
"type": "intermediate"
},
{
"node_id": "invoice_form",
"name": "Formulaire facture",
"type": "intermediate"
},
{
"node_id": "invoice_created",
"name": "Facture créée",
"type": "end"
}
],
"edges": [
{
"edge_id": "e1",
"source": "start",
"target": "client_search",
"action": {
"type": "mouse_click",
"target": {
"role": "search_field",
"text": "Rechercher client"
}
}
},
{
"edge_id": "e2",
"source": "client_search",
"target": "client_selected",
"action": {
"type": "text_input",
"target": {
"role": "search_field"
},
"parameters": {
"text": "{{client}}"
}
}
},
{
"edge_id": "e3",
"source": "client_selected",
"target": "invoice_form",
"action": {
"type": "mouse_click",
"target": {
"role": "primary_action",
"text": "Nouvelle facture"
}
}
},
{
"edge_id": "e4",
"source": "invoice_form",
"target": "invoice_created",
"action": {
"type": "mouse_click",
"target": {
"role": "submit",
"text": "Créer"
}
}
}
],
"entry_nodes": [
"start"
],
"end_nodes": [
"invoice_created"
],
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-20T14:41:18.027595",
"format": "json"
}
}

View File

@@ -0,0 +1,484 @@
{
"id": "wf_03f5cce5e4ff",
"name": "Long Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:47:09.902749",
"updated_at": "2025-12-03T20:47:09.902891",
"created_by": "system",
"nodes": [
{
"id": "wait_0",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_1",
"type": "wait",
"position": {
"x": 150,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_2",
"type": "wait",
"position": {
"x": 200,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_3",
"type": "wait",
"position": {
"x": 250,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_4",
"type": "wait",
"position": {
"x": 300,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_5",
"type": "wait",
"position": {
"x": 350,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_6",
"type": "wait",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_7",
"type": "wait",
"position": {
"x": 450,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_8",
"type": "wait",
"position": {
"x": 500,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_9",
"type": "wait",
"position": {
"x": 550,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge_1",
"source": "wait_0",
"target": "wait_1",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_2",
"source": "wait_1",
"target": "wait_2",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_3",
"source": "wait_2",
"target": "wait_3",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_4",
"source": "wait_3",
"target": "wait_4",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_5",
"source": "wait_4",
"target": "wait_5",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_6",
"source": "wait_5",
"target": "wait_6",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_7",
"source": "wait_6",
"target": "wait_7",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_8",
"source": "wait_7",
"target": "wait_8",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_9",
"source": "wait_8",
"target": "wait_9",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:47:09.902950",
"format": "json"
}
}

View File

@@ -0,0 +1,100 @@
{
"id": "wf_04ee1c6d9d62",
"name": "Test Execution Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:25:37.575431",
"updated_at": "2025-12-03T20:25:37.575474",
"created_by": "system",
"nodes": [
{
"id": "start_node",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 100
},
"input_ports": [],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "end_node",
"type": "click",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "Test Button"
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge_1",
"source": "start_node",
"target": "end_node",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:25:37.575502",
"format": "json"
}
}

View File

@@ -0,0 +1,98 @@
{
"id": "wf_1e7cd99722b9",
"name": "Test Execution Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:47:09.101587",
"updated_at": "2026-01-22T09:37:25.843021",
"created_by": "system",
"nodes": [
{
"id": "step_1769070607323",
"type": "click_anchor",
"position": {
"x": 364.25,
"y": 37.93333435058594
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_154f2965ccd7_1769071042",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_154f2965ccd7_1769071042/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_154f2965ccd7_1769071042/original",
"bounding_box": {
"x": 6,
"y": 837.1999918619791,
"width": 52,
"height": 57.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769071022839",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T08:37:23.003Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Cliquer sur Ancre",
"stepType": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_154f2965ccd7_1769071042",
"anchor_type": "generic",
"thumbnail_url": "/api/anchor-images/anchor_154f2965ccd7_1769071042/thumbnail",
"reference_image_url": "/api/anchor-images/anchor_154f2965ccd7_1769071042/original",
"bounding_box": {
"x": 6,
"y": 837.1999918619791,
"width": 52,
"height": 57.333333333333336
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769071022839",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-22T08:37:23.003Z",
"screen_resolution": {
"width": 1920,
"height": 1080
}
}
}
},
"isVWBCatalogAction": true,
"vwbActionId": "click_anchor"
}
}
],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,100 @@
{
"id": "wf_201335e7f498",
"name": "Test Execution Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:26:25.339590",
"updated_at": "2025-12-03T20:26:25.339634",
"created_by": "system",
"nodes": [
{
"id": "start_node",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 100
},
"input_ports": [],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "end_node",
"type": "click",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "Test Button"
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge_1",
"source": "start_node",
"target": "end_node",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:26:25.339662",
"format": "json"
}
}

View File

@@ -0,0 +1,583 @@
{
"id": "wf_20260113_234050",
"name": "Ouverture et saisie dans onlyoffice texte+calc",
"description": "Workflow créé avec le Visual Workflow Builder V2 permet sous linux ubuntu d'ouvrir onlyoffice texte et d'écrire",
"version": "1.0.0",
"created_at": "2026-01-14T17:00:41.091688",
"updated_at": "2026-01-22T09:28:20.826828",
"created_by": "unknown",
"nodes": [
{
"id": "step_1768344559716",
"type": "click_anchor",
"position": {
"x": -193.03488507130817,
"y": -102.23548539592744
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_cb7bb23c8a14_1769032268",
"anchor_type": "generic",
"bounding_box": {
"height": 42.666662808642286,
"width": 46.666666666666664,
"x": 1.7777506510416667,
"y": 847.0739793950756
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032259753",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:51:08.674Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_cb7bb23c8a14_1769032268/original",
"thumbnail_url": "/api/anchor-images/anchor_cb7bb23c8a14_1769032268/thumbnail"
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"isVWBCatalogAction": true,
"label": "Cliquer sur Ancre",
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_cb7bb23c8a14_1769032268",
"anchor_type": "generic",
"bounding_box": {
"height": 42.666662808642286,
"width": 46.666666666666664,
"x": 1.7777506510416667,
"y": 847.0739793950756
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032259753",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:51:08.674Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_cb7bb23c8a14_1769032268/original",
"thumbnail_url": "/api/anchor-images/anchor_cb7bb23c8a14_1769032268/thumbnail"
}
},
"stepType": "click_anchor",
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1768344642508",
"type": "type_text",
"position": {
"x": 151.16062816354855,
"y": -94.44477319437412
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_4e3067c7d77f_1769032292",
"anchor_type": "generic",
"bounding_box": {
"height": 37.333329957562036,
"width": 305.3333333333333,
"x": 673.7777506510416,
"y": 43.07405209472185
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032285009",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:51:32.561Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_4e3067c7d77f_1769032292/original",
"thumbnail_url": "/api/anchor-images/anchor_4e3067c7d77f_1769032292/thumbnail"
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"isVWBCatalogAction": true,
"label": "Saisir Texte",
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_4e3067c7d77f_1769032292",
"anchor_type": "generic",
"bounding_box": {
"height": 37.333329957562036,
"width": 305.3333333333333,
"x": 673.7777506510416,
"y": 43.07405209472185
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032285009",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:51:32.561Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_4e3067c7d77f_1769032292/original",
"thumbnail_url": "/api/anchor-images/anchor_4e3067c7d77f_1769032292/thumbnail"
}
},
"stepType": "type_text",
"vwbActionId": "type_text"
}
},
{
"id": "step_1768344749439",
"type": "click_anchor",
"position": {
"x": 487.0496771091505,
"y": -86.20244456930321
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_c5acc71c3066_1769032342",
"anchor_type": "generic",
"bounding_box": {
"height": 115.99998951099631,
"width": 114.66666666666667,
"x": 771.111083984375,
"y": 100.40738024383496
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032310840",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:52:22.392Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_c5acc71c3066_1769032342/original",
"thumbnail_url": "/api/anchor-images/anchor_c5acc71c3066_1769032342/thumbnail"
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"isVWBCatalogAction": true,
"label": "Cliquer sur Ancre",
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_c5acc71c3066_1769032342",
"anchor_type": "generic",
"bounding_box": {
"height": 115.99998951099631,
"width": 114.66666666666667,
"x": 771.111083984375,
"y": 100.40738024383496
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032310840",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:52:22.392Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_c5acc71c3066_1769032342/original",
"thumbnail_url": "/api/anchor-images/anchor_c5acc71c3066_1769032342/thumbnail"
}
},
"stepType": "click_anchor",
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1768344978757",
"type": "type_text",
"position": {
"x": 371.26647711665106,
"y": 130.88147217643595
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "Ceci est un texte de démo",
"visual_anchor": null
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"isVWBCatalogAction": true,
"label": "Saisir Texte",
"parameters": {
"text": "Ceci est un texte de démo",
"visual_anchor": null
},
"stepType": "type_text",
"vwbActionId": "type_text"
}
},
{
"id": "step_1768406186808",
"type": "click_anchor",
"position": {
"x": -227.37533166020103,
"y": 74.58052915400846
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_d56f40038e9e_1769032370",
"anchor_type": "generic",
"bounding_box": {
"height": 143.99998697916786,
"width": 145.33333333333334,
"x": 615.111083984375,
"y": 83.07404847782404
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032365543",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:52:50.019Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_d56f40038e9e_1769032370/original",
"thumbnail_url": "/api/anchor-images/anchor_d56f40038e9e_1769032370/thumbnail"
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"isVWBCatalogAction": true,
"label": "Cliquer sur Ancre",
"parameters": {
"text": "onlyoffice",
"visual_anchor": {
"anchor_id": "anchor_d56f40038e9e_1769032370",
"anchor_type": "generic",
"bounding_box": {
"height": 143.99998697916786,
"width": 145.33333333333334,
"x": 615.111083984375,
"y": 83.07404847782404
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032365543",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:52:50.019Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_d56f40038e9e_1769032370/original",
"thumbnail_url": "/api/anchor-images/anchor_d56f40038e9e_1769032370/thumbnail"
}
},
"stepType": "click_anchor",
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769010730463",
"type": "click_anchor",
"position": {
"x": -109.53893947986893,
"y": 305.43217608652435
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_3b097ff2f8e0_1769032447",
"anchor_type": "generic",
"bounding_box": {
"height": 27.999997468171525,
"width": 96,
"x": 57.777750651041664,
"y": 25.740720328710907
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032429361",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:54:07.561Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_3b097ff2f8e0_1769032447/original",
"thumbnail_url": "/api/anchor-images/anchor_3b097ff2f8e0_1769032447/thumbnail"
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"isVWBCatalogAction": true,
"label": "Cliquer sur Ancre",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_3b097ff2f8e0_1769032447",
"anchor_type": "generic",
"bounding_box": {
"height": 27.999997468171525,
"width": 96,
"x": 57.777750651041664,
"y": 25.740720328710907
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032429361",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:54:07.561Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_3b097ff2f8e0_1769032447/original",
"thumbnail_url": "/api/anchor-images/anchor_3b097ff2f8e0_1769032447/thumbnail"
}
},
"stepType": "click_anchor",
"vwbActionId": "click_anchor"
}
},
{
"id": "step_1769010797058",
"type": "click_anchor",
"position": {
"x": 325.4330188124651,
"y": 326.3601481337348
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_07961dc0aa07_1769032466",
"anchor_type": "generic",
"bounding_box": {
"height": 141.33332055362771,
"width": 144,
"x": 788.4444173177084,
"y": 89.7407145416744
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032462079",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:54:26.820Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_07961dc0aa07_1769032466/original",
"thumbnail_url": "/api/anchor-images/anchor_07961dc0aa07_1769032466/thumbnail"
}
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"isVWBCatalogAction": true,
"label": "Cliquer sur Ancre",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_07961dc0aa07_1769032466",
"anchor_type": "generic",
"bounding_box": {
"height": 141.33332055362771,
"width": 144,
"x": 788.4444173177084,
"y": 89.7407145416744
},
"confidence_threshold": 0.8,
"description": "Élément sélectionné pour l'étape vwb_action_1769032462079",
"metadata": {
"capture_method": "screen_capture",
"capture_timestamp": "2026-01-21T21:54:26.820Z",
"screen_resolution": {
"height": 1080,
"width": 1920
}
},
"reference_image_url": "/api/anchor-images/anchor_07961dc0aa07_1769032466/original",
"thumbnail_url": "/api/anchor-images/anchor_07961dc0aa07_1769032466/thumbnail"
}
},
"stepType": "click_anchor",
"vwbActionId": "click_anchor"
}
}
],
"edges": [
{
"id": "conn_1768344690845",
"source": "step_1768344559716",
"target": "step_1768344642508",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1768344834473",
"source": "step_1768344642508",
"target": "step_1768344749439",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1768406310378",
"source": "step_1768344749439",
"target": "step_1768406186808",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769010787710",
"source": "step_1768344978757",
"target": "step_1769010730463",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769011244634",
"source": "step_1769010730463",
"target": "step_1769010797058",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "conn_1769032400451",
"source": "step_1768406186808",
"target": "step_1768344978757",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": "default",
"is_template": false
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,21 @@
{
"id": "wf_20260114_211419",
"name": "Test Apprentissage",
"description": "",
"created_by": "test",
"created_at": "2026-01-14T21:14:19.963587",
"updated_at": "2026-01-14T21:14:19.963587",
"nodes": [],
"edges": [],
"variables": [],
"settings": {},
"tags": [],
"category": "default",
"is_template": false,
"version": "1.0.0",
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-20T14:41:18.034248",
"format": "json"
}
}

View File

@@ -0,0 +1,21 @@
{
"id": "wf_20260114_211536",
"name": "Test Apprentissage v2",
"description": "",
"created_by": "dom",
"created_at": "2026-01-14T21:15:36.780837",
"updated_at": "2026-01-14T21:15:36.780837",
"nodes": [],
"edges": [],
"variables": [],
"settings": {},
"tags": [],
"category": "default",
"is_template": false,
"version": "1.0.0",
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-20T14:41:18.027473",
"format": "json"
}
}

View File

@@ -0,0 +1,22 @@
{
"id": "wf_20260114_211756",
"name": "Test Apprentissage v3",
"description": "Updated",
"version": "1.0.0",
"created_at": "2026-01-14T21:17:56.229514",
"updated_at": "2026-01-22T09:28:35.393507",
"created_by": "dom",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": "default",
"is_template": false
}

View File

@@ -0,0 +1,21 @@
{
"id": "wf_20260114_211833",
"name": "Test v4",
"description": "",
"created_by": "dom",
"created_at": "2026-01-14T21:18:33.091665",
"updated_at": "2026-01-14T21:18:33.091665",
"nodes": [],
"edges": [],
"variables": [],
"settings": {},
"tags": [],
"category": "default",
"is_template": false,
"version": "1.0.0",
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-20T14:41:18.045627",
"format": "json"
}
}

View File

@@ -0,0 +1,27 @@
{
"id": "wf_2c0aca849e14",
"name": "Test Workflow",
"description": "Test",
"version": "1.0.0",
"created_at": "2026-01-07T15:59:28.553385",
"updated_at": "2026-01-07T15:59:28.553421",
"created_by": "test_user",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-07T15:59:28.553495",
"format": "json"
}
}

View File

@@ -0,0 +1,27 @@
{
"id": "wf_363cd6de262b",
"name": "test",
"description": "test workflow",
"version": "1.0.0",
"created_at": "2026-01-08T01:16:42.202713",
"updated_at": "2026-01-08T01:16:42.202748",
"created_by": "test_user",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-08T01:16:42.202819",
"format": "json"
}
}

View File

@@ -0,0 +1,27 @@
{
"id": "wf_3a1a6f402335",
"name": "test",
"description": "test",
"version": "1.0.0",
"created_at": "2026-01-08T12:50:18.403937",
"updated_at": "2026-01-08T12:50:18.403977",
"created_by": "test",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-08T12:50:18.404053",
"format": "json"
}
}

View File

@@ -0,0 +1,100 @@
{
"id": "wf_46a49a8014d9",
"name": "Test Execution Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:26:42.904388",
"updated_at": "2025-12-03T20:26:42.904424",
"created_by": "system",
"nodes": [
{
"id": "start_node",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 100
},
"input_ports": [],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "end_node",
"type": "click",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "Test Button"
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge_1",
"source": "start_node",
"target": "end_node",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:26:42.904450",
"format": "json"
}
}

View File

@@ -0,0 +1,65 @@
{
"id": "wf_54c765497489",
"name": "Variables Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:47:09.402214",
"updated_at": "2025-12-03T20:47:09.402296",
"created_by": "system",
"nodes": [
{
"id": "type_username",
"type": "type",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "input",
"text": "${username}"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [],
"variables": [
{
"name": "username",
"type": "string",
"value": "default_user",
"description": null
},
{
"name": "count",
"type": "number",
"value": 5,
"description": null
}
],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:47:09.402332",
"format": "json"
}
}

View File

@@ -0,0 +1,27 @@
{
"id": "wf_6065a7e99355",
"name": "Test",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-12T09:30:13.870152",
"updated_at": "2025-12-12T09:30:13.870190",
"created_by": "test",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-12T09:30:13.870263",
"format": "json"
}
}

View File

@@ -0,0 +1,484 @@
{
"id": "wf_6431e27d58dd",
"name": "Long Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:47:50.902425",
"updated_at": "2025-12-03T20:47:50.902543",
"created_by": "system",
"nodes": [
{
"id": "wait_0",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_1",
"type": "wait",
"position": {
"x": 150,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_2",
"type": "wait",
"position": {
"x": 200,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_3",
"type": "wait",
"position": {
"x": 250,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_4",
"type": "wait",
"position": {
"x": 300,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_5",
"type": "wait",
"position": {
"x": 350,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_6",
"type": "wait",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_7",
"type": "wait",
"position": {
"x": 450,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_8",
"type": "wait",
"position": {
"x": 500,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_9",
"type": "wait",
"position": {
"x": 550,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge_1",
"source": "wait_0",
"target": "wait_1",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_2",
"source": "wait_1",
"target": "wait_2",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_3",
"source": "wait_2",
"target": "wait_3",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_4",
"source": "wait_3",
"target": "wait_4",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_5",
"source": "wait_4",
"target": "wait_5",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_6",
"source": "wait_5",
"target": "wait_6",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_7",
"source": "wait_6",
"target": "wait_7",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_8",
"source": "wait_7",
"target": "wait_8",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_9",
"source": "wait_8",
"target": "wait_9",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:47:50.902593",
"format": "json"
}
}

View File

@@ -0,0 +1,70 @@
{
"id": "wf_81ce5ea46c3f",
"name": "Variables Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:25:37.575726",
"updated_at": "2026-01-22T09:29:38.515757",
"created_by": "system",
"nodes": [
{
"id": "type_username",
"type": "type",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "input",
"text": "${username}"
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 1",
"stepType": "type",
"parameters": {
"target": "input",
"text": "${username}"
},
"isVWBCatalogAction": false
}
}
],
"edges": [],
"variables": [
{
"name": "count",
"type": "number",
"value": 5,
"description": null
},
{
"name": "username",
"type": "string",
"value": "default_user",
"description": null
}
],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,27 @@
{
"id": "wf_820b2a9e6270",
"name": "Test Corrections VWB",
"description": "Workflow de test pour vérifier les corrections",
"version": "1.0.0",
"created_at": "2026-01-08T01:17:36.536995",
"updated_at": "2026-01-08T01:17:36.537023",
"created_by": "test_corrections",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-08T01:17:36.537077",
"format": "json"
}
}

View File

@@ -0,0 +1,27 @@
{
"id": "wf_90ecda5de0ed",
"name": "Test Workflow",
"description": "Test des nouvelles fonctionnalités",
"version": "1.0.0",
"created_at": "2025-12-13T10:59:07.152509",
"updated_at": "2025-12-13T10:59:07.152536",
"created_by": "test_user",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-13T10:59:07.152596",
"format": "json"
}
}

View File

@@ -0,0 +1,65 @@
{
"id": "wf_9c8ce0d625a4",
"name": "Variables Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:26:43.205017",
"updated_at": "2025-12-03T20:26:43.205101",
"created_by": "system",
"nodes": [
{
"id": "type_username",
"type": "type",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "input",
"text": "${username}"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [],
"variables": [
{
"name": "username",
"type": "string",
"value": "default_user",
"description": null
},
{
"name": "count",
"type": "number",
"value": 5,
"description": null
}
],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:26:43.205134",
"format": "json"
}
}

View File

@@ -0,0 +1,484 @@
{
"id": "wf_ad7ccf92ca57",
"name": "Long Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:25:37.575921",
"updated_at": "2025-12-03T20:25:37.575959",
"created_by": "system",
"nodes": [
{
"id": "wait_0",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_1",
"type": "wait",
"position": {
"x": 150,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_2",
"type": "wait",
"position": {
"x": 200,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_3",
"type": "wait",
"position": {
"x": 250,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_4",
"type": "wait",
"position": {
"x": 300,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_5",
"type": "wait",
"position": {
"x": 350,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_6",
"type": "wait",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_7",
"type": "wait",
"position": {
"x": 450,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_8",
"type": "wait",
"position": {
"x": 500,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_9",
"type": "wait",
"position": {
"x": 550,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge_1",
"source": "wait_0",
"target": "wait_1",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_2",
"source": "wait_1",
"target": "wait_2",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_3",
"source": "wait_2",
"target": "wait_3",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_4",
"source": "wait_3",
"target": "wait_4",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_5",
"source": "wait_4",
"target": "wait_5",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_6",
"source": "wait_5",
"target": "wait_6",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_7",
"source": "wait_6",
"target": "wait_7",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_8",
"source": "wait_7",
"target": "wait_8",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_9",
"source": "wait_8",
"target": "wait_9",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:25:37.575986",
"format": "json"
}
}

View File

@@ -0,0 +1,65 @@
{
"id": "wf_b40df255f3c7",
"name": "Variables Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:26:25.640410",
"updated_at": "2025-12-03T20:26:25.640508",
"created_by": "system",
"nodes": [
{
"id": "type_username",
"type": "type",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "input",
"text": "${username}"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [],
"variables": [
{
"name": "username",
"type": "string",
"value": "default_user",
"description": null
},
{
"name": "count",
"type": "number",
"value": 5,
"description": null
}
],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:26:25.640548",
"format": "json"
}
}

View File

@@ -0,0 +1,27 @@
{
"id": "wf_b86cac3286b3",
"name": "test",
"description": "test",
"version": "1.0.0",
"created_at": "2026-01-08T12:50:25.266435",
"updated_at": "2026-01-08T12:50:25.266469",
"created_by": "test",
"nodes": [],
"edges": [],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2026-01-08T12:50:25.266526",
"format": "json"
}
}

View File

@@ -0,0 +1,65 @@
{
"id": "wf_bb224c0d2ada",
"name": "Variables Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:47:50.401853",
"updated_at": "2025-12-03T20:47:50.401939",
"created_by": "system",
"nodes": [
{
"id": "type_username",
"type": "type",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"target": "input",
"text": "${username}"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [],
"variables": [
{
"name": "username",
"type": "string",
"value": "default_user",
"description": null
},
{
"name": "count",
"type": "number",
"value": 5,
"description": null
}
],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:47:50.401975",
"format": "json"
}
}

View File

@@ -0,0 +1,443 @@
{
"id": "wf_d6c3d79a9f3b",
"name": "Long Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:26:26.141033",
"updated_at": "2026-01-22T09:29:19.076505",
"created_by": "system",
"nodes": [
{
"id": "wait_0",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 1",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_1",
"type": "wait",
"position": {
"x": 150,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 2",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_2",
"type": "wait",
"position": {
"x": 200,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 3",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_3",
"type": "wait",
"position": {
"x": 250,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 4",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_4",
"type": "wait",
"position": {
"x": 300,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 5",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_5",
"type": "wait",
"position": {
"x": 350,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 6",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_6",
"type": "wait",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 7",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_7",
"type": "wait",
"position": {
"x": 450,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 8",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_8",
"type": "wait",
"position": {
"x": 500,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 9",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
},
{
"id": "wait_9",
"type": "wait",
"position": {
"x": 550,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [],
"self_healing": null,
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null,
"data": {
"label": "Étape 10",
"stepType": "wait",
"parameters": {
"duration": 200
},
"isVWBCatalogAction": false
}
}
],
"edges": [
{
"id": "edge_1",
"source": "wait_0",
"target": "wait_1",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_2",
"source": "wait_1",
"target": "wait_2",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_3",
"source": "wait_2",
"target": "wait_3",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_4",
"source": "wait_3",
"target": "wait_4",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_5",
"source": "wait_4",
"target": "wait_5",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_6",
"source": "wait_5",
"target": "wait_6",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_7",
"source": "wait_6",
"target": "wait_7",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_8",
"source": "wait_7",
"target": "wait_8",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_9",
"source": "wait_8",
"target": "wait_9",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false
}

View File

@@ -0,0 +1,93 @@
{
"id": "wf_e0406995738f",
"name": "Test Export Workflow",
"description": "Workflow pour tester l export",
"version": "1.0.0",
"created_at": "2025-12-12T09:34:55.703125",
"updated_at": "2025-12-12T09:34:55.703165",
"created_by": "test_user",
"nodes": [
{
"id": "node-1",
"type": "click",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 100
},
"parameters": {
"target": "button"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "node-2",
"type": "type",
"position": {
"x": 300,
"y": 100
},
"size": {
"width": 200,
"height": 100
},
"parameters": {
"text": "Hello World"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge-1",
"source": "node-1",
"target": "node-2",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [
{
"name": "username",
"type": "string",
"value": "testuser",
"description": "Nom d utilisateur"
}
],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-12T09:34:55.703221",
"format": "json"
}
}

View File

@@ -0,0 +1,484 @@
{
"id": "wf_f9605ef7334b",
"name": "Long Workflow",
"description": "",
"version": "1.0.0",
"created_at": "2025-12-03T20:26:43.705557",
"updated_at": "2025-12-03T20:26:43.705679",
"created_by": "system",
"nodes": [
{
"id": "wait_0",
"type": "wait",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_1",
"type": "wait",
"position": {
"x": 150,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_2",
"type": "wait",
"position": {
"x": 200,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_3",
"type": "wait",
"position": {
"x": 250,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_4",
"type": "wait",
"position": {
"x": 300,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_5",
"type": "wait",
"position": {
"x": 350,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_6",
"type": "wait",
"position": {
"x": 400,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_7",
"type": "wait",
"position": {
"x": 450,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_8",
"type": "wait",
"position": {
"x": 500,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [
{
"id": "out",
"name": "Output",
"type": "output",
"data_type": null
}
],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "wait_9",
"type": "wait",
"position": {
"x": 550,
"y": 100
},
"size": {
"width": 200,
"height": 80
},
"parameters": {
"duration": 200
},
"input_ports": [
{
"id": "in",
"name": "Input",
"type": "input",
"data_type": null
}
],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge_1",
"source": "wait_0",
"target": "wait_1",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_2",
"source": "wait_1",
"target": "wait_2",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_3",
"source": "wait_2",
"target": "wait_3",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_4",
"source": "wait_3",
"target": "wait_4",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_5",
"source": "wait_4",
"target": "wait_5",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_6",
"source": "wait_5",
"target": "wait_6",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_7",
"source": "wait_6",
"target": "wait_7",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_8",
"source": "wait_7",
"target": "wait_8",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
},
{
"id": "edge_9",
"source": "wait_8",
"target": "wait_9",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-03T20:26:43.705734",
"format": "json"
}
}

View File

@@ -0,0 +1,93 @@
{
"id": "wf_fcb0cfdd419b",
"name": "Test Export Workflow",
"description": "Workflow pour tester l export",
"version": "1.0.0",
"created_at": "2025-12-12T09:30:28.846387",
"updated_at": "2025-12-12T09:30:28.846439",
"created_by": "test_user",
"nodes": [
{
"id": "node-1",
"type": "click",
"position": {
"x": 100,
"y": 100
},
"size": {
"width": 200,
"height": 100
},
"parameters": {
"target": "button"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
},
{
"id": "node-2",
"type": "type",
"position": {
"x": 300,
"y": 100
},
"size": {
"width": 200,
"height": 100
},
"parameters": {
"text": "Hello World"
},
"input_ports": [],
"output_ports": [],
"selected": false,
"highlighted": false,
"status": null,
"label": null,
"description": null,
"color": null
}
],
"edges": [
{
"id": "edge-1",
"source": "node-1",
"target": "node-2",
"source_port": "out",
"target_port": "in",
"condition": null,
"style": null,
"selected": false,
"animated": false
}
],
"variables": [
{
"name": "username",
"type": "string",
"value": "testuser",
"description": "Nom d utilisateur"
}
],
"settings": {
"timeout": 300000,
"retry_on_failure": true,
"max_retries": 3,
"enable_self_healing": true,
"enable_analytics": true
},
"tags": [],
"category": null,
"is_template": false,
"_serialization": {
"version": "1.0.0",
"serialized_at": "2025-12-12T09:30:28.846516",
"format": "json"
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,95 @@
{
"workflow_id": "wf_372eabf626f8_1773752892",
"workflow_name": "test_windows",
"description": "",
"tags": [],
"steps": [
{
"order": 0,
"action_type": "click_anchor",
"label": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_e54628b75227_1773829452",
"bounding_box": {
"x": 560,
"y": 1536,
"width": 230,
"height": 59
}
}
},
"has_anchor": true
},
{
"order": 0,
"action_type": "type_text",
"label": "type_text",
"parameters": {
"clear_before": true,
"text": "bloc note"
},
"has_anchor": false
},
{
"order": 0,
"action_type": "click_anchor",
"label": "click_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_dd32b09238ca_1773833606",
"bounding_box": {
"x": 670,
"y": 310,
"width": 51,
"height": 51
}
}
},
"has_anchor": true
},
{
"order": 0,
"action_type": "wait_for_anchor",
"label": "wait_for_anchor",
"parameters": {
"visual_anchor": {
"anchor_id": "anchor_2d51b88900d7_1773833805",
"bounding_box": {
"x": 287,
"y": 290,
"width": 70,
"height": 92
}
}
},
"has_anchor": true
},
{
"order": 0,
"action_type": "type_text",
"label": "type_text",
"parameters": {
"text": "hello"
},
"has_anchor": false
}
],
"exported_at": "2026-03-18T11:38:45.271209",
"metadata": {
"step_count": 5,
"action_types": [
"wait_for_anchor",
"type_text",
"click_anchor"
],
"has_anchors": true,
"warnings": [
"Étape 1 (click_anchor): pas de label personnalisé",
"Étape 2 (type_text): pas de label personnalisé",
"Étape 3 (click_anchor): pas de label personnalisé",
"Étape 4 (wait_for_anchor): pas de label personnalisé",
"Étape 5 (type_text): pas de label personnalisé"
]
}
}

View File

@@ -0,0 +1,165 @@
import os
import io
import json
import base64
from typing import Optional, Dict, Any, List
from PIL import Image
from dotenv import load_dotenv
# Charger les variables d'environnement
env_paths = [
os.path.join(os.getcwd(), ".env.local"),
os.path.join(os.getcwd(), "rpa_vision_v3/.env.local"),
os.path.join(os.path.dirname(__file__), "../../../.env.local")
]
for path in env_paths:
if os.path.exists(path):
load_dotenv(path, override=True)
break
class VLMProvider:
"""Hub de Vision Sémantique Multi-Fournisseurs (OpenAI, Gemini, Anthropic, Ollama)"""
def __init__(self):
# Clés API
self.openai_key = os.getenv("OPENAI_API_KEY")
self.gemini_key = os.getenv("GOOGLE_API_KEY")
self.anthropic_key = os.getenv("ANTHROPIC_API_KEY")
self.deepseek_key = os.getenv("DEEPSEEK_API_KEY")
# Configuration Ollama Local
self.ollama_url = os.getenv("OLLAMA_URL", "http://localhost:11434")
self.local_model = os.getenv("VLM_MODEL", "qwen3-vl:8b")
# Priorité par défaut
self.preferred_cloud = "openai" # gpt-4o est la référence UI
print(f"🔧 [VLM Hub] Initialisé. OpenAI: {bool(self.openai_key)}, Gemini: {bool(self.gemini_key)}, Anthropic: {bool(self.anthropic_key)}")
def _to_base64(self, image_input) -> str:
"""Convertit n'importe quel input image en base64 pur"""
if isinstance(image_input, Image.Image):
buffer = io.BytesIO()
image_input.save(buffer, format="PNG")
return base64.b64encode(buffer.getvalue()).decode("utf-8")
elif isinstance(image_input, str):
if image_input.startswith("data:image"):
return image_input.split(",", 1)[1]
elif os.path.exists(image_input):
with open(image_input, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
return image_input # Base64 brut supposé
return base64.b64encode(image_input).decode("utf-8")
def detect_ui_element(self, screenshot, anchor_image=None, description: str = "") -> Optional[Dict[str, Any]]:
"""Tente de localiser l'élément en essayant les fournisseurs par ordre de qualité"""
# 1. Tenter OpenAI (Référence Vision UI)
if self.openai_key:
res = self._call_openai(screenshot, anchor_image, description)
if res and res.get('found'): return res
# 2. Tenter Gemini (Excellent backup Vision)
if self.gemini_key:
res = self._call_gemini(screenshot, anchor_image, description)
if res and res.get('found'): return res
# 3. Tenter Anthropic (Précision logique)
if self.anthropic_key:
res = self._call_anthropic(screenshot, anchor_image, description)
if res and res.get('found'): return res
# 4. Fallback Local (Ollama) - Crucial pour le DGX Spark
return self._call_ollama_local(screenshot, anchor_image, description)
def _call_openai(self, screenshot, anchor_image, description):
try:
from openai import OpenAI
client = OpenAI(api_key=self.openai_key)
prompt = f"Expert UI: Localise précisément '{description}'. Retourne JSON: {{'found': bool, 'bbox': [ymin, xmin, ymax, xmax] (0-1000), 'confidence': float}}"
content = [{"type": "text", "text": prompt}]
content.append({"type": "image_url", "image_url": {"url": f"data:image/png;base64,{self._to_base64(screenshot)}"}})
if anchor_image:
content.append({"type": "text", "text": "Ancre de référence:"})
content.append({"type": "image_url", "image_url": {"url": f"data:image/png;base64,{self._to_base64(anchor_image)}"}})
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": content}],
response_format={"type": "json_object"},
temperature=0
)
return json.loads(response.choices[0].message.content)
except Exception as e:
print(f"⚠️ [Hub] OpenAI Error: {e}")
return None
def _call_gemini(self, screenshot, anchor_image, description):
try:
from google import genai
client = genai.Client(api_key=self.gemini_key)
prompt = f"Expert UI: Localise précisément '{description}'. Retourne JSON: {{'found': bool, 'bbox': [ymin, xmin, ymax, xmax] (0-1000), 'confidence': float}}"
contents = [prompt, Image.open(io.BytesIO(base64.b64decode(self._to_base64(screenshot))))]
if anchor_image:
contents.append(Image.open(io.BytesIO(base64.b64decode(self._to_base64(anchor_image)))))
response = client.models.generate_content(
model="gemini-1.5-flash",
contents=contents,
config={"response_mime_type": "application/json"}
)
return json.loads(response.text)
except Exception as e:
print(f"⚠️ [Hub] Gemini Error: {e}")
return None
def _call_anthropic(self, screenshot, anchor_image, description):
try:
import anthropic
client = anthropic.Anthropic(api_key=self.anthropic_key)
# Claude 3.5 Sonnet supporte la vision mais pas le format JSON strict en sortie nativement via config
# On utilise un prompt renforcé
prompt = f"Localise '{description}'. Réponds UNIQUEMENT en JSON : {{'found': bool, 'bbox': [ymin, xmin, ymax, xmax], 'confidence': float}}"
content = [{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": self._to_base64(screenshot)}},
{"type": "text", "text": prompt}]
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1000,
messages=[{"role": "user", "content": content}]
)
text = response.content[0].text
return json.loads(text[text.find('{'):text.rfind('}')+1])
except Exception as e:
print(f"⚠️ [Hub] Anthropic Error: {e}")
return None
def _call_ollama_local(self, screenshot, anchor_image, description):
"""Appel à Ollama local (Mode DGX Spark / Offline)"""
try:
import requests
print(f"🏠 [Hub] Fallback Local Ollama ({self.local_model})...")
prompt = f"Localise l'élément '{description}'. Retourne JSON: {{'found': bool, 'bbox': [ymin, xmin, ymax, xmax] (0-1000)}}"
payload = {
"model": self.local_model,
"prompt": prompt,
"images": [self._to_base64(screenshot)],
"stream": False,
"format": "json"
}
if anchor_image:
payload["images"].append(self._to_base64(anchor_image))
response = requests.post(f"{self.ollama_url}/api/generate", json=payload, timeout=60)
if response.status_code == 200:
return json.loads(response.json().get('response', '{}'))
return None
except Exception as e:
print(f"❌ [Hub] Local Ollama Error: {e}")
return {"found": False, "error": str(e)}
# Instance unique
vlm_hub = VLMProvider()

Some files were not shown because too many files have changed in this diff Show More