33 Commits

Author SHA1 Message Date
Dom
99041f0117 feat: pipeline complet MACRO/MÉSO/MICRO — Critic, Observer, Policy, Recovery, Learning, Audit Trail, TaskPlanner
Architecture 3 niveaux implémentée et testée (137 tests unitaires + 21 visuels) :

MÉSO (acteur intelligent) :
- P0 Critic : vérification sémantique post-action via gemma4 (replay_verifier.py)
- P1 Observer : pré-analyse écran avant chaque action (api_stream.py /pre_analyze)
- P2 Grounding/Policy : séparation localisation (grounding.py) et décision (policy.py)
- P3 Recovery : rollback automatique Ctrl+Z/Escape/Alt+F4 (recovery.py)
- P4 Learning : apprentissage runtime avec boucle de consolidation (replay_learner.py)

MACRO (planificateur) :
- TaskPlanner : comprend les ordres en langage naturel via gemma4 (task_planner.py)
- Contexte métier TIM/CIM-10 pour les hôpitaux (domain_context.py)
- Endpoint POST /api/v1/task pour l'exécution par instruction

Traçabilité :
- Audit trail complet avec 18 champs par action (audit_trail.py)
- Endpoints GET /audit/history, /audit/summary, /audit/export (CSV)

Grounding :
- Fix parsing bbox_2d qwen2.5vl (pixels relatifs, pas grille 1000x1000)
- Benchmarks visuels sur captures réelles (3 approches : baseline, zoom, Citrix)
- Reproductibilité validée : variance < 0.008 sur 10 itérations

Sécurité :
- Tokens de production retirés du code source → .env.local
- Secret key aléatoire si non configuré
- Suppression logs qui leakent les tokens

Résultats : 80% de replay (vs 12.5% avant), 100% détection visuelle Citrix JPEG Q20

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:03:25 +02:00
Dom
72a9651b94 docs: consolidation 5 avril — état des lieux complet
Pipeline entraînement validé (15.7s, extrapolation 1h = 10 min).
CLIP vérification validée (sim 0.87-0.99 sur fenêtres).
Acteur gemma4 branché (PASSER/EXECUTER/STOPPER, think=True).
Grounding fenêtre + template taskbar fonctionnels.
Problèmes identifiés : ambiguïté Rechercher, éléments VLM.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 21:25:10 +02:00
Dom
8589e87a13 fix: grounding uniquement dans les fenêtres, template pour la taskbar
Les clics taskbar (sans window_capture.rect) ne passent plus par le
grounding VLM qui trouve "Rechercher" dans l'explorateur au lieu de
la taskbar. Le template matching du crop 80x80 est utilisé à la place.

Règle : fenêtre = grounding, taskbar = template matching.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 21:19:36 +02:00
Dom
8a1dfc6e8b feat: acteur gemma4 — décide PASSER/EXECUTER/STOPPER quand target_not_found
Quand le magnétoscope ne trouve pas la cible, au lieu de la pause
supervisée, gemma4 (Docker port 11435, think=True) reçoit le contexte
(action prévue + fenêtre active) et décide :
- PASSER : le résultat est déjà atteint (onglet actif, dialog ouvert)
- STOPPER : état incohérent (mauvaise app)
- EXECUTER : fallback vers la pause supervisée

Testé : gemma4 décide PASSER quand l'onglet est déjà actif (5s).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 21:05:37 +02:00
Dom
3bcf59e16f fix: message notification humain (plus de "yolo") + description cible améliorée
La description de la cible dans les notifications et logs utilise
by_text et window_title au lieu de by_role="yolo" qui n'a pas de
sens pour l'utilisateur.

Testé : gemma4 en mode texte (CPU, 0.2s) prend la décision "PASSER"
quand l'onglet est déjà actif. Base pour l'acteur intelligent.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 20:52:34 +02:00
Dom
46206d9396 feat: vérification CLIP avant chaque clic (filet de sécurité app)
Avant la résolution visuelle, compare l'embedding CLIP de l'écran
actuel (fenêtre) avec l'embedding de référence (enregistrement).
Si similarité < 0.75 → mauvaise application → STOP.

CLIP sur fenêtre = insensible au fond d'écran.
CLIP ne distingue pas les états fins (texte différent) → le titre
de fenêtre reste la vérification principale.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 18:49:19 +02:00
Dom
d3e928bebe feat: branchement workflow — actions magnétoscope enrichies avec CLIP
Approche hybride :
- Actions du magnétoscope (by_text, target_spec, grounding)
- Embeddings CLIP du workflow (512D par screenshot de clic)
- Au replay : CLIP vérifie l'état de l'écran AVANT chaque clic

Pipeline complet mesuré :
- ScreenAnalyzer (OCR) : 1.05s/screenshot
- CLIP embeddings : 0.093s/screenshot
- FAISS : <0.01s pour 13 vecteurs
- GraphBuilder : 0.7s (13 nodes, 12 edges)
- Total : 15.7s pour 1.5 min de session
- Extrapolation 1h : ~10 min

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 16:30:27 +02:00
Dom
a679fbb62b docs: Plan Acteur Intelligent V1 — architecture 3 niveaux
MACRO : planificateur LLM (décompose "traite les dossiers de janvier")
MÉSO : acteur décisionnel (regarde, comprend, décide, agit)
MICRO : grounding + exécution (localise et clique)

Phase 1 = workflows comme templates avec variables
Phase 2 = acteur qui compare états et décide
Phase 3 = planificateur macro avec boucles

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 12:41:01 +02:00
Dom
f0b311306d fix: grounding pour TOUT texte visible (OCR + VLM), auto-unload gemma4
1. Le grounding se déclenche pour by_text_source="vlm" (pas juste "ocr")
   Les textes lus par gemma4 (onglets, labels) sont du texte visible,
   le grounding doit les chercher comme n'importe quel texte OCR.

2. gemma4 est automatiquement déchargé après le build_replay
   pour libérer la VRAM et permettre à qwen2.5vl de charger au replay.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 12:24:44 +02:00
Dom
1c5ff42006 fix: ajouter position relative au prompt grounding (désambiguïsation)
Quand plusieurs éléments ont le même texte ("Rechercher" dans la taskbar
ET dans l'explorateur), la position relative (en bas, en haut, à gauche)
aide le VLM à choisir le bon.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 12:04:46 +02:00
Dom
b09a3df054 fix: _app_name déplacé hors du bloc if (scope error) 2026-04-05 11:29:51 +02:00
Dom
fceb76de1f feat: gemma4 enrichit les éléments sans OCR via Docker (port 11435)
Quand l'OCR et SomEngine ne trouvent pas de texte sur un élément cliqué,
gemma4 (Ollama 0.20 Docker) analyse le screenshot fenêtre + position du
clic pour identifier l'élément ("voiture elec", "Settings", etc.).

Résultat : 0 clic sans by_text (vs 3 avant). Validation locale 7/8 (87%).
L'onglet Bloc-notes est maintenant correctement identifié.

Docker : ollama/ollama:0.20.2 sur port 11435 (GEMMA4_PORT env var).
Host : Ollama 0.16.3 sur port 11434 (qwen2.5vl grounding).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 11:21:02 +02:00
Dom
6d4ff4f215 fix: vérification par nom d'APPLICATION, pas par titre exact
Compare 'Bloc-notes' (après le –) au lieu du titre complet.
'blocnote.txt – Bloc-notes' et 'voiture.txt – Bloc-notes'
sont la même app → pré-vérif et post-vérif passent.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 09:16:48 +02:00
Dom
2486e43def fix: cropper la fenêtre depuis le screenshot live (pas chercher _window.png)
Le resolve_target reçoit un screenshot temp de l'agent — le fichier
_window.png n'existe pas à cet emplacement. Au lieu de chercher un
fichier, on crop directement la fenêtre depuis le full screenshot
en utilisant window_rect du target_spec.

Fonctionne au replay (screenshot live) comme à l'enregistrement.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 09:09:13 +02:00
Dom
20b74286f7 feat: polling titre fenêtre au lieu de wait fixe (post-vérification)
Après chaque clic, poll le titre de la fenêtre active toutes les 300ms
jusqu'à ce qu'il corresponde au titre attendu (max 10s).
100% visuel — pas de wait arbitraire.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 08:49:48 +02:00
Dom
a1c97504ab feat: Phase 1 acteur — pré/post vérification titre fenêtre
Pré-vérification : avant chaque clic, vérifie que le titre de la
fenêtre active correspond à celui de l'enregistrement. Stop si mismatch.

Post-vérification : après chaque clic, vérifie que le titre a changé
vers expected_window_title (titre du prochain clic). Warning si mismatch.

expected_window_title enrichi dans build_replay depuis la séquence des clics.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 00:09:08 +02:00
Dom
d6c7346898 fix: ne pas couper le replay au début (taskbar = unknown_window)
Le premier clic (barre de recherche Windows) a un titre
"unknown_window" qui déclenchait la coupure de fin de session.
Ajout d'un guard : pas de coupure avant 3 actions significatives.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 23:33:52 +02:00
Dom
90ee8ca8f4 fix: template matching sur fenêtre active + seuil 0.90
Template matching des icônes limité à la fenêtre active (window.png)
pour éviter les faux positifs sur le full screen. Seuil relevé de
0.70 à 0.90. Coordonnées fenêtre converties en coordonnées écran.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 23:23:21 +02:00
Dom
84a91630e9 feat: grounding sur image fenêtre au lieu du full screen
Utilise shot_XXXX_window.png (capture fenêtre active) au lieu du
full screen pour le grounding VLM. Image plus petite, ciblée,
sans bruit (taskbar, autres fenêtres).

Coordonnées fenêtre converties en coordonnées écran via window_rect.
window_capture (rect, window_size, click_relative) ajouté au target_spec.

Résultat : 50% → 80% de précision sur la session VM (16/20 clics).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 23:12:30 +02:00
Dom
91614fbff0 fix: prompt natif bbox_2d pour le grounding Qwen2.5-VL
Le prompt JSON ("Answer ONLY: {x, y}") ne fonctionne plus — retourne
[0.0, 0.0] systématiquement. Le prompt natif "Detect X with a bounding
box" retourne des bbox_2d précis. C'est le format pour lequel
Qwen2.5-VL est entraîné.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 22:43:46 +02:00
Dom
c1ce6a3964 fix: séparer grounding (qwen2.5vl) et compréhension (gemma4)
- Grounding : qwen2.5vl:7b hardcodé (seul modèle avec bbox_2d précis)
- Compréhension/VLM : gemma4:e4b via RPA_VLM_MODEL (description, identification)
- Ajout think=False + num_predict=200 pour éviter le mode thinking gemma4
- Variable RPA_GROUNDING_MODEL pour override si besoin

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 18:48:00 +02:00
Dom
0bd0fbb8c5 fix: SomEngine sur CPU pour cohabiter avec Qwen2.5-VL GPU
Qwen2.5-VL occupe 9.8 GB de VRAM → plus de place pour YOLO.
SomEngine passe en CPU (1.4s au lieu de 0.1s, acceptable car
utilisé uniquement pendant le build_replay, pas le replay).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 09:30:00 +02:00
Dom
394342be7e feat: support vLLM (GPU) comme moteur de grounding, Ollama en fallback
_resolve_by_grounding() essaie vLLM d'abord (API OpenAI-compatible,
port 8100) puis Ollama en fallback. vLLM utilise Qwen2.5-VL-7B-AWQ
sur GPU (~2-3s) vs Ollama sur CPU (~16s).

Config via env vars : VLLM_PORT (défaut 8100), VLLM_MODEL.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 23:37:12 +02:00
Dom
6724f43950 fix: stratégie hybride OCR→grounding VLM / icônes→template matching
Résolution 4/4 (100%) validée localement :
- Texte OCR (by_text_source="ocr") → grounding Qwen2.5-VL (dist < 0.04)
- Icônes sans texte (by_text_source="") → template matching crop 80x80 (dist = 0.000)

Le VLM identify element est supprimé pour les icônes (descriptions
non-déterministes qui faisaient échouer le grounding). Le template
matching est instantané et parfait quand le crop est net (80x80).

Ajout de by_text_source dans target_spec pour distinguer OCR vs VLM.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 23:21:06 +02:00
Dom
d99b17394a feat: VLM grounding direct (Qwen2.5-VL) — nouvelle stratégie de résolution
Nouvelle approche basée sur les recherches état de l'art :
- _resolve_by_grounding() : le VLM retourne directement les coordonnées
  (pas de SomEngine + numérotation intermédiaire)
- Utilise Qwen2.5-VL (entraîné pour le GUI grounding) au lieu de qwen3-vl
- Parse les formats natifs : bbox_2d, JSON x/y, arrays bruts
- Fallback multi-image : screenshot + crop → grounding sans description
- Identification des icônes via Qwen2.5-VL (meilleur que qwen3-vl)

Résultats sur session réelle (validation locale) :
- Éléments avec texte (Word, Document, Fichier) : 100% corrects
- Icônes sans texte (Windows logo, disquette) : en cours d'amélioration

Cascade strict mode :
0. Grounding VLM direct (Qwen2.5-VL) — NOUVEAU
0.5. Template matching pour icônes
1. VLM Quick Find (fallback)
1.5. SoM + VLM
2. Template matching strict

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 18:55:00 +02:00
Dom
875367dea9 fix: template matching prioritaire pour icônes sans texte (by_text vide)
Quand by_text est vide (icônes : logo Windows, disquette, croix),
le template matching du crop 80x80 est plus fiable que le VLM qui
choisit des éléments au hasard.

Cascade strict mode :
0. Template matching (si by_text vide) — crop 80x80 discriminant
1. VLM Quick Find (compréhension sémantique)
1.5. SoM + VLM
2. Template matching (fallback avec seuil 0.90)
3. Échec → STOP

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 18:11:24 +02:00
Dom
a74056ca22 feat: anti-détection robot — Bézier mouse + frappe char-by-char
Pour les environnements Citrix avec détection de robots :
- Souris : courbe de Bézier quadratique avec déviation aléatoire
  et vitesse variable (25 étapes, plus lent début/fin)
- Texte : frappe caractère par caractère via KeyCode.from_char()
  avec délai aléatoire 40-120ms (pas de copier-coller)
- Plus de presse-papiers (Ctrl+V détectable)

Annulation du fix raw_keys→clipboard (plus nécessaire).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:25:43 +02:00
Dom
6937b94f2a fix: 3 corrections — crop 80px, email AZERTY (@), icônes anchor match
1. Crop réduit de 150x150 à 80x80 (config + fallback serveur)
   Plus discriminant pour les icônes de barre de titre

2. Email AZERTY : supprimer raw_keys quand le texte contient des
   chars fusionnés depuis key_combos (@ de AltGr) → copier-coller
   Le @ était perdu car absent des raw_keys individuels

3. Anchor match : template matching sur screenshot entier puis
   élément SomEngine le plus proche (max 100px)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 16:21:02 +02:00
Dom
4f5c518d3a fix: anchor match sur screenshot entier + proximité élément SomEngine
Le template matching du crop anchor contre les régions YOLO échouait
car l'anchor (150x150) est plus grand que les éléments détectés.
Maintenant : match sur le screenshot entier → centre du match →
élément SomEngine le plus proche (max 100px).

Fonctionne pour les icônes mais limité par la taille du crop
(150x150 de barre de titre matche à plusieurs endroits).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:51:18 +02:00
Dom
7dec3ab63a fix: rejeter bavardage VLM dans _vlm_identify_element
Le VLM 8B répond souvent avec "several UI elements", "I can see",
etc. au lieu d'un label court. Ces réponses remplissaient by_text
avec du non-sens, empêchant le som_anchor_match de se déclencher
pour les icônes sans texte (disquette, fermer, etc.).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:44:56 +02:00
Dom
68d5bb7dd1 fix: som_anchor_match déclenché quand by_text vide (icônes sans texte)
La condition vérifiait anchor_label (du SomEngine) au lieu de by_text.
Pour les icônes (disquette, loupe), by_text est vide même si anchor_label
contient du bavardage VLM. Maintenant le template matching anchor vs YOLO
se déclenche correctement.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:38:38 +02:00
Dom
ef5d595d98 fix: by_text dans build_replay + anchor matching pour icônes sans texte
build_replay (stream_processor.py) :
- Remplir by_text depuis vision_info.text ou som_element.label
- VLM identification pour les éléments sans texte (icônes)
- Nettoyage du bavardage VLM (retrait préfixes courants)

resolve_target (api_stream.py) :
- Nouveau som_anchor_match : template matching du crop anchor vs régions YOLO
- Pour les icônes sans texte (disquette, loupe, etc.)
- Cascade : text match → anchor match → VLM

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:28:31 +02:00
Dom
5ceee9c393 fix: cascade serveur-first — SomEngine avant template matching
Le template matching compare des pixels et donne des faux positifs
quand l'écran n'est pas dans le même état que l'enregistrement.
SomEngine + VLM comprend sémantiquement ce qu'on cherche.

Nouvelle cascade :
1. Serveur SomEngine + VLM (compréhension sémantique)
2. Template matching local (fallback si serveur down)
3. VLM local (fallback dev/test)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:08:21 +02:00
79568 changed files with 11099 additions and 6092075 deletions

View File

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/gpu/clip_manager.py
# hypothesis_version: 6.148.3
['CLIP model unloaded', 'ViT-B-32', 'cpu', 'cuda', 'openai']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/detection/spatial_analyzer.py
# hypothesis_version: 6.148.3
[0.2, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 5.0, 20.0, 50.0, 'SpatialRelation', 'above', 'adjacent', 'bbox', 'below', 'bounds', 'button', 'combobox', 'confidence', 'container_id', 'container_type', 'contains', 'dialog', 'distance', 'element_id', 'element_ids', 'form', 'height', 'id', 'input', 'inside', 'label', 'left_of', 'link', 'list', 'menu', 'menuitem', 'metadata', 'option', 'overlaps', 'panel', 'relation', 'right_of', 'role', 'source', 'tab_group', 'table', 'target', 'text', 'textarea', 'textbox', 'toolbar', 'unknown', 'width', 'x', 'y']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/Geniusia_v2/rpa_vision_v3/__init__.py
# hypothesis_version: 6.148.2
['0.1.0']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/Geniusia_v2/rpa_vision_v3/core/models/state_embedding.py
# hypothesis_version: 6.148.2
[-1.0, 0.0, 1e-06, 0.1, 0.3, 0.5, 1.0, 'EmbeddingComponent', 'StateEmbedding', 'components', 'concat_projection', 'dimensions', 'embedding_id', 'fusion_method', 'image', 'metadata', 'r', 'source_text', 'text', 'title', 'ui', 'utf-8', 'vector_id', 'w', 'weight', 'weighted']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/Geniusia_v2/rpa_vision_v3/core/models/__init__.py
# hypothesis_version: 6.148.2
['Event', 'RawSession', 'Screenshot', 'WindowContext']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/models/ui_element.py
# hypothesis_version: 6.148.3
[0.0, 1.0, 'UIElement', 'UIElementEmbeddings', 'VisualFeatures', 'action_trigger', 'bbox', 'button', 'cancel', 'center', 'checkbox', 'confidence', 'container', 'dangerous_action', 'data_display', 'delete_action', 'dominant_color', 'dropdown', 'element_id', 'embeddings', 'form_input', 'has_icon', 'icon', 'image', 'label', 'label_confidence', 'link', 'menu_item', 'metadata', 'navigation', 'primary_action', 'radio', 'role', 'search_field', 'secondary_action', 'selectable_item', 'shape', 'size_category', 'status_indicator', 'submit', 'tab', 'table_row', 'tags', 'text', 'text_input', 'type', 'visual_features']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/training/__init__.py
# hypothesis_version: 6.148.3
['ClusterMetrics', 'DuplicateAnalysis', 'FrameQuality', 'QualityReport', 'SessionAnalyzer', 'SessionQualityReport', 'TimingAnalysis', 'ValidationResult']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/healing_engine.py
# hypothesis_version: 6.148.3
[0.0, 0.3, 1.0, 2.0, 3.0, 5.0, 10.0, 30.0, 'all_failed', 'data/healing', 'delete', 'input', 'none', 'save', 'submit', 'type', 'update']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/execution/action_executor.py
# hypothesis_version: 6.148.3
[0.0, 0.05, 0.1, 0.2, 0.5, 0.75, 1.0, 1000.0, 100, 500, 1000, 5000, '; ', 'action', 'actions', 'actual', 'all', 'all_fallbacks_failed', 'approximate_position', 'click_offset', 'confidence', 'edge_id', 'elapsed_ms', 'element_id', 'expected', 'expected_role', 'failed', 'fallback_attempt', 'fallback_success', 'historical_bbox', 'inf', 'is_problematic', 'missing_ui_element', 'position_fallback', 'postcondition_failed', 'precondition_failed', 'repeat_policy', 'resolved_element_id', 'screen_state_id', 'source_node', 'state_id', 'stats', 'success', 'target_node', 'target_not_found', 'text', 'timeout', 'timeout_ms', 'to_dict', 'type', 'until_success', 'violations', 'visual_similarity', 'wait_after_ms', 'window_change']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/detection/roi_optimizer.py
# hypothesis_version: 6.148.3
[0.0, 0.3, 0.5, 0.7, 0.8, 0.95, 1.0, 100, 150, 1000, 1080, 1920, 'cache', 'confidence', 'contour', 'full_frame', 'h', 'hit_rate', 'hits', 'max_size', 'merged', 'misses', 'processing_time', 'resize_rate', 'roi_type', 'rois', 'size', 'text', 'timestamp', 'total_frames_resized', 'total_time_saved_ms', 'w', 'x', 'y']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/detection/__init__.py
# hypothesis_version: 6.148.3
['DetectionConfig', 'OllamaClient', 'UIDetector', 'create_detector', 'create_ollama_client']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/__init__.py
# hypothesis_version: 6.148.3
['ConfidenceScorer', 'LearningRepository', 'RecoveryContext', 'RecoveryPattern', 'RecoveryResult', 'SelfHealingEngine']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/confidence_scorer.py
# hypothesis_version: 6.148.3
[0.0, 0.1, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1.0, 1.05, 1.1, 1.5, 100.0, 'application', 'element_type', 'semantic_variant', 'spatial_fallback', 'timing_adaptation']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/sequence_extractor.py
# hypothesis_version: 6.148.3
['SequenceExtractor', 'high', 'low', 'medium', 'min_sequence_length']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/execution/target_resolver.py
# hypothesis_version: 6.148.3
[0.0, 0.5, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 100, 200, 'ResolvedTarget', 'anchor', 'below_text', 'btn', 'button', 'by_context', 'by_embedding', 'by_hierarchy', 'by_position', 'by_role', 'by_similarity', 'by_strategy', 'by_text', 'cache_hits', 'candidates_evaluated', 'candidates_found', 'check', 'checkbox', 'clickable', 'combobox', 'composite', 'contains', 'context_hints', 'criteria_used', 'distance', 'dropdown', 'edittext', 'embedding', 'embedding_ref', 'exact', 'failed', 'fallbacks_used', 'first', 'fuzzy', 'highest_confidence', 'hints_applied', 'hyperlink', 'icon', 'image', 'img', 'input', 'label', 'largest', 'last', 'link', 'list', 'listbox', 'listview', 'match_type', 'max_distance', 'menu', 'menubar', 'menuitem', 'near_text', 'nearest', 'nearest_to_previous', 'partial', 'perception', 'picker', 'picture', 'policy_applied', 'position', 'right_of_text', 'role', 'role_searched', 'screen_state_id', 'select', 'similarity', 'statictext', 'submit', 'successful', 'tab', 'tabitem', 'tabpanel', 'text', 'text_input', 'textbox', 'textfield', 'toggle', 'total_resolutions', 'type', 'ui_elements', 'unknown']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/models/screen_state.py
# hypothesis_version: 6.148.3
['ContextLevel', 'EmbeddingRef', 'PerceptionLevel', 'RawLevel', 'ScreenState', 'WindowContext', 'app_name', 'business_variables', 'capture_method', 'confidence_avg', 'context', 'detected_text', 'dimensions', 'embedding', 'file_size_bytes', 'main', 'metadata', 'perception', 'provider', 'r', 'raw', 'screen_resolution', 'screen_state_id', 'screenshot_path', 'session_id', 'tags', 'timestamp', 'to_dict', 'ui_elements', 'user_id', 'utf-8', 'vector_id', 'w', 'window', 'window_title', 'workflow_step', 'workspace']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/__init__.py
# hypothesis_version: 6.148.3
['BranchConfig', 'ChainConfig', 'ChainResult', 'CommonSequence', 'ConcurrencyMode', 'ConditionType', 'ConditionalNode', 'DependencyGraph', 'ExecutionContext', 'ExecutionResult', 'FailureAction', 'FileTrigger', 'IterationResult', 'LogEntry', 'LoopConfig', 'LoopState', 'LoopType', 'MergeCandidate', 'NodeConflict', 'ParameterDef', 'ReferenceNode', 'ScheduleTrigger', 'SemanticMatcher', 'SequenceOccurrence', 'SequencePriority', 'TriggerConfig', 'TriggerContext', 'TriggerType', 'UsageStats', 'ValidationResult', 'VariableDefinition', 'VariableManager', 'VariableOverride', 'VisualCondition', 'VisualTrigger', 'WorkflowMatch', 'WorkflowMetadata', 'trigger_from_dict']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/detection/owl_detector.py
# hypothesis_version: 6.148.3
[0.1, 'OWL-v2 chargé', '__main__', 'bbox', 'boxes', 'button', 'center', 'checkbox', 'confidence', 'cpu', 'cuda', 'dropdown menu', 'height', 'icon', 'icon button', 'input box', 'label', 'labels', 'link', 'pt', 'radio button', 'red', 'scores', 'tab', 'text field', 'width']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/trigger_manager.py
# hypothesis_version: 6.148.3
['TriggerManager', 'concurrency_mode', 'detected_element', 'file_path', 'queue', 'trigger_type', 'triggers', 'unknown']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/server/processing_pipeline.py
# hypothesis_version: 6.148.3
[1.0, 512, '\nRésultats:', '*/*.json', '__main__', 'agent_v0', 'app_name', 'completed_at', 'data/training', 'embeddings_generated', 'error', 'errors', 'id', 'none', 'openclip', 'pending', 'primary_resolution', 'processing_pipeline', 'provider', 'screen', 'screen_state_id', 'session_id', 'sessions', 'started_at', 'state', 'status', 'success', 't', 'title', 'training_label', 'ui_elements_detected', 'unknown', 'workflow', 'workflow_created']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/strategies/semantic_variants.py
# hypothesis_version: 6.148.3
[0.6, 0.75, 0.85, 'abort', 'accept', 'accepter', 'add', 'ajouter', 'annuler', 'apply', 'arrière', 'authentifier', 'avancer', 'back', 'backward', 'cancel', 'change', 'changer', 'chercher', 'close', 'confirm', 'confirmer', 'connect', 'connexion', 'continue', 'continuer', 'create', 'créer', 'decline', 'delete', 'disconnect', 'dismiss', 'décliner', 'déconnexion', 'edit', 'effacer', 'element_changed', 'element_not_found', 'envoyer', 'erase', 'fermer', 'find', 'forward', 'found_variant', 'insert', 'log in', 'log out', 'login', 'logout', 'lookup', 'modifier', 'modify', 'new', 'next', 'no', 'non', 'nouveau', 'ok', 'original_text', 'oui', 'previous', 'précédent', 'query', 'rechercher', 'refuser', 'reject', 'remove', 'retirer', 'retour', 'save', 'se connecter', 'se déconnecter', 'search', 'semantic_variant', 'send', 'sign in', 'sign out', 'soumettre', 'submit', 'suivant', 'supprimer', 'trash', 'trouver', 'update', 'valider', 'yes', 'éditer']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/semantic_matcher.py
# hypothesis_version: 6.148.3
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 1.0, ' | ', '"([^"]+)"', '*.json', 'No workflows loaded', '[^\\w\\s]', 'a', 'action', 'an', 'and', 'are', 'at', 'au', 'aux', 'be', 'been', 'but', 'by', 'car', 'client', 'data/workflows', 'de', 'des', 'description', 'description_match', 'donc', 'du', 'edges', 'end', 'et', 'exact_name', 'for', 'from', 'in', 'invoice', 'is', 'la', 'le', 'les', 'mais', 'name', 'ni', 'of', 'on', 'or', 'ou', 'param_patterns', 'que', 'qui', 'quoi', 'r', 'start', 'tags', 'the', 'to', 'type', 'un', 'une', 'utf-8', 'was', 'were', 'with', 'à']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/Geniusia_v2/rpa_vision_v3/core/models/raw_session.py
# hypothesis_version: 6.148.2
['Event', 'RawSession', 'Screenshot', 'WindowContext', 'agent_version', 'app_name', 'captured_at', 'context', 'ended_at', 'environment', 'events', 'r', 'rawsession_v1', 'relative_path', 'schema_version', 'screenshot_id', 'screenshots', 'session_id', 'started_at', 't', 'title', 'type', 'user', 'utf-8', 'w', 'window']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/clip_embedder.py
# hypothesis_version: 6.148.3
[224, 'ViT-B-32', 'cpu', 'openai']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/gpu/vram_monitor.py
# hypothesis_version: 6.148.3
[1000.0, 100, 1000, 1024, ',', '--query-gpu=name', 'nvidia-smi', 'utf-8']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/strategies/__init__.py
# hypothesis_version: 6.148.3
['RecoveryStrategy']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/__init__.py
# hypothesis_version: 6.148.3
['CLIPEmbedder', 'EmbedderBase', 'EmbeddingCache', 'FAISSManager', 'FusionConfig', 'FusionEngine', 'PrototypeCache', 'SearchResult', 'angular_distance', 'compute_centroid', 'compute_variance', 'cosine_similarity', 'create_builder', 'create_clip_embedder', 'create_flat_index', 'create_ivf_index', 'dot_product', 'euclidean_distance', 'get_default_embedder', 'hamming_distance', 'is_normalized', 'jaccard_similarity', 'manhattan_distance', 'normalize_l1', 'normalize_l2', 'normalize_vector', 'validate_weights']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/server/storage_encrypted.py
# hypothesis_version: 6.148.3
[128, 100000, '.enc', '.zip', 'ENCRYPTION_PASSWORD', '__main__', 'rb', 'sha256', 'utf-8', 'wb']

View File

@@ -1,4 +0,0 @@
# file: /usr/lib/python3.12/sitecustomize.py
# hypothesis_version: 6.148.2
[]

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/graph/graph_builder.py
# hypothesis_version: 6.148.3
[0.0, 0.15, 0.7, 0.8, 0.85, 200, 300, 500, 512, 1080, 1920, 3000, 5000, '+00:00', 'OBSERVATION', 'Unknown', 'Unnamed Workflow', 'Z', '__main__', 'auto_generated', 'button', 'cosine', 'created_from_event', 'embedding_prototype', 'event_time', 'event_type', 'first', 'id', 'inf', 'key_press', 'keyboard_input', 'keys', 'left', 'main', 'mouse_click', 'mss', 'openclip_ViT-B-32', 'pending', 'pos', 'position', 'primary_resolution', 'screen', 'screenshot_id', 'state_id', 'tags', 'template', 'text', 'text_field', 'text_input', 'unknown', 'unknown_element', 'visual_similarity', 'wait_after_ms']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/base_embedder.py
# hypothesis_version: 6.148.3
[]

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/models/workflow_graph.py
# hypothesis_version: 6.148.3
[0.0, 0.8, 0.85, 0.9, 0.95, 100, 3000, 5000, '.*', '1.0.0', 'AUTO_CANDIDATE', 'AUTO_CONFIRMED', 'Action', 'COACHING', 'EdgeConstraints', 'EdgeStats', 'EmbeddingPrototype', 'LearningConfig', 'OBSERVATION', 'OK', 'PostConditions', 'SafetyRules', 'ScreenTemplate', 'TargetSpec', 'TextConstraint', 'UIConstraint', 'WindowConstraint', 'Workflow', 'WorkflowEdge', 'WorkflowNode', 'WorkflowStats', 'action', 'assist_runs', 'auto_candidate_runs', 'auto_confirmed_runs', 'avg_similarity', 'by_position', 'by_role', 'by_similarity', 'by_text', 'coaching_threshold', 'compound', 'compute_similarity', 'constraints', 'context_hints', 'created_at', 'description', 'detected_texts', 'edge_id', 'edges', 'embedding', 'end_nodes', 'entry_nodes', 'execution_count', 'expected_node', 'failure_count', 'fallback_strategy', 'first', 'forbidden_text', 'forbidden_texts', 'forbidden_windows', 'from_node', 'is_end', 'is_entry', 'key_press', 'last', 'last_executed', 'learning', 'learning_state', 'max_auto_executions', 'max_wait_time_ms', 'metadata', 'min_element_count', 'mouse_click', 'name', 'node_id', 'nodes', 'none', 'observed_runs', 'parameters', 'perception', 'post_conditions', 'pre_conditions', 'process', 'process_name', 'provider', 'r', 'recent_confidence', 'required_confidence', 'required_elements', 'required_roles', 'required_text', 'required_texts', 'required_types', 'role', 'safety_rules', 'sample_count', 'selection_policy', 'similarity_threshold', 'source_node', 'stats', 'success_count', 'target', 'target_node', 'template', 'text', 'text_input', 'timeout_ms', 'title', 'title_contains', 'title_pattern', 'to_node', 'total_executions', 'type', 'ui', 'ui_elements', 'updated_at', 'utf-8', 'vector_id', 'version', 'visual_similarity', 'w', 'weighted', 'window', 'workflow_id']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/persistence/storage_manager.py
# hypothesis_version: 6.148.3
[0.0, 1024, '%Y%m%d_%H%M%S', '%Y-%m-%d', '*', '*.json', '*.npy', '-_', '.json', '_', '_metadata', 'base_path', 'data', 'dimension', 'dtype', 'edges', 'embedding_id', 'embedding_type', 'embeddings', 'events', 'faiss_index', 'filepath', 'index_name', 'main', 'metadata_store', 'nodes', 'num_edges', 'num_events', 'num_nodes', 'num_screenshots', 'num_vectors', 'r', 'rawsession_v1', 'saved_at', 'schema_version', 'screen_states', 'screenshots', 'screenstate_v1', 'session_*.json', 'session_id', 'sessions', 'shape', 'size_kb', 'state', 'state_id', 'total_size_mb', 'unknown', 'unnamed', 'utf-8', 'w', 'workflow_*.json', 'workflow_id', 'workflow_name', 'workflow_v1', 'workflows']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/dependency_graph.py
# hypothesis_version: 6.148.3
[' -> ', 'DependencyGraph', 'UsageStats', 'dependencies', 'dependency_count', 'dependent_count', 'dependents', 'reference_counts', 'total_references']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/execution_logger.py
# hypothesis_version: 6.148.3
['ExecutionLogger', 'action', 'end', 'entries', 'error', 'final_variables', 'start', 'success', 'warning']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/persistence/__init__.py
# hypothesis_version: 6.148.3
['StorageManager']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/detection/ollama_client.py
# hypothesis_version: 6.148.3
[0.0, 0.1, 0.7, 0.9, 200, 500, 600, 2048, ', ', '/', 'PNG', 'confidence', 'elements', 'error', 'images', 'model', 'models', 'name', 'num_ctx', 'num_predict', 'options', 'prompt', 'qwen', 'qwen3-vl:8b', 'raw_response', 'rb', 'response', 'role', 'status', 'stream', 'success', 'system', 'temperature', 'text', 'top_k', 'type', 'unknown', 'utf-8']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/conditional_evaluator.py
# hypothesis_version: 6.148.3
['ConditionalEvaluator', 'detected_text', 'element_absent', 'element_ids', 'element_present', 'elements', 'has_target_resolver', 'id', 'name', 'text_contains', 'text_equals', 'texts', 'type']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/state_embedding_builder.py
# hypothesis_version: 6.148.3
[512, '%Y%m%d_%H%M%S_%f', 'Traceback:', 'created_at', 'data/embeddings', 'detected_texts', 'embed_image', 'embed_text', 'embeddings', 'encode_image', 'encode_text', 'image', 'image_embedding_id', 'label', 'perception', 'raw', 'screen_state_id', 'text', 'timestamp', 'title', 'ui', 'ui_elements', 'window', 'window_title']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/gpu/__init__.py
# hypothesis_version: 6.148.3
['CLIPManager', 'ExecutionMode', 'GPUResourceConfig', 'GPUResourceManager', 'GPUResourceStatus', 'ModelState', 'OllamaManager', 'ResourceChangedEvent', 'VRAMInfo', 'VRAMMonitor']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/loop_executor.py
# hypothesis_version: 6.148.3
[1000, 'LoopExecutor', 'active_loops', 'condition', 'configs', 'count', 'safety_limit']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/detection/ollama_client.py
# hypothesis_version: 6.148.3
[0.0, 0.1, 0.7, 0.9, 200, 500, 600, 2048, ', ', '/', '<think>', '<|im_end|>', 'PNG', 'confidence', 'elements', 'error', 'images', 'model', 'models', 'name', 'num_ctx', 'num_predict', 'options', 'prompt', 'qwen', 'qwen3-vl:8b', 'raw_response', 'rb', 'response', 'role', 'status', 'stop', 'stream', 'success', 'system', 'temperature', 'text', 'type', 'unknown', 'utf-8']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/execution/error_handler.py
# hypothesis_version: 6.148.3
[0.7, 5000, '%Y%m%d_%H%M%S_%f', '__main__', 'a', 'abort', 'action', 'action_type', 'best_confidence', 'candidate_nodes', 'ctrl', 'current_similarity', 'data/errors', 'delete', 'details', 'edge', 'error_counts', 'error_id', 'error_report.json', 'error_type', 'execution_timeout', 'expected_node', 'fallback', 'label', 'matching_failed', 'message', 'node', 'node_id', 'num_candidates', 'pause', 'postcondition_failed', 'problematic_edges', 'recovery_attempts', 'retry', 'role', 'rollback', 'rollback_message', 'screenshot.png', 'screenshot_path', 'skip', 'state', 'target_not_found', 'target_role', 'target_text', 'text_pattern', 'threshold', 'timeout_ms', 'timestamp', 'total_errors', 'ui_change_detected', 'ui_changed', 'ui_elements_count', 'unknown', 'w', 'window_title']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/server/processing_pipeline.py
# hypothesis_version: 6.148.3
[1.0, 512, '\nRésultats:', '*/*.json', '.enc', '.zip', '__main__', 'agent_v0', 'app_name', 'cleaned_files', 'cleanup_error', 'completed_at', 'data/training', 'embeddings_generated', 'error', 'errors', 'id', 'none', 'openclip', 'pending', 'primary_resolution', 'processing_pipeline', 'provider', 'screen', 'screen_state_id', 'session_id', 'sessions', 'started_at', 'state', 'status', 'success', 't', 'title', 'training_label', 'ui_elements_detected', 'unknown', 'uploads', 'workflow', 'workflow_created']

View File

@@ -1,4 +0,0 @@
# file: /tmp/tmpdh0hjylw/_remote_module_non_scriptable.py
# hypothesis_version: 6.148.3
['cuda']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/models/workflow_graph.py
# hypothesis_version: 6.148.3
[0.0, 0.7, 0.8, 0.85, 0.9, 0.95, 1.0, 100, 3000, 5000, '.*', '1.0.0', 'AUTO_CANDIDATE', 'AUTO_CONFIRMED', 'Action', 'COACHING', 'EdgeConstraints', 'EdgeStats', 'EmbeddingPrototype', 'LearningConfig', 'NodeVariant', 'OBSERVATION', 'OK', 'PostConditions', 'PrototypeVersion', 'SafetyRules', 'ScreenTemplate', 'SpatialRelation', 'TargetSpec', 'TextConstraint', 'UIConstraint', 'WindowConstraint', 'Workflow', 'WorkflowEdge', 'WorkflowNode', 'WorkflowStats', 'action', 'assist_runs', 'auto_candidate_runs', 'auto_confirmed_runs', 'avg_similarity', 'by_position', 'by_role', 'by_similarity', 'by_text', 'cluster_metrics', 'coaching_threshold', 'compound', 'compute_similarity', 'confidence', 'constraints', 'container_type', 'context_hints', 'created_at', 'description', 'detected_texts', 'distance_pixels', 'edge_id', 'edges', 'embedding', 'embedding_path', 'end_nodes', 'entry_nodes', 'execution_count', 'expected_node', 'failure_count', 'fallback_strategy', 'first', 'forbidden_text', 'forbidden_texts', 'forbidden_windows', 'from_node', 'is_end', 'is_entry', 'key_press', 'last', 'last_executed', 'learning', 'learning_state', 'max_auto_executions', 'max_variants', 'max_wait_time_ms', 'metadata', 'min_element_count', 'mouse_click', 'name', 'node_id', 'nodes', 'none', 'observation_count', 'observed_runs', 'parameters', 'perception', 'post_conditions', 'pre_conditions', 'primary_variant_id', 'process', 'process_name', 'prototype_history', 'prototype_version', 'provider', 'quality_score', 'r', 'reason', 'recent_confidence', 'relation_id', 'relation_type', 'required_confidence', 'required_elements', 'required_roles', 'required_text', 'required_texts', 'required_types', 'role', 'safety_rules', 'sample_count', 'selection_policy', 'similarity_threshold', 'source_element_id', 'source_node', 'spatial_relations', 'stats', 'success_count', 'success_rate', 'target', 'target_element_id', 'target_node', 'template', 'text', 'text_input', 'timeout_ms', 'title', 'title_contains', 'title_pattern', 'to_node', 'total_executions', 'type', 'ui', 'ui_elements', 'ui_state', 'unknown', 'updated_at', 'utf-8', 'variant_id', 'variants', 'vector_id', 'version', 'version_id', 'visual_similarity', 'w', 'weighted', 'window', 'workflow_id']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/workflow_chainer.py
# hypothesis_version: 6.148.3
['Unknown', 'WorkflowChainer', 'chain_end', 'chain_error', 'chain_start', 'chains', 'error', 'execution_log', 'start', 'success', 'unknown', 'variable_manager', 'workflow_end', 'workflow_start']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/variable_manager.py
# hypothesis_version: 6.148.3
['1', 'VariableDefinition', 'VariableManager', 'boolean', 'default_value', 'definitions', 'description', 'integer', 'list', 'name', 'number', 'oui', 'required', 'string', 'true', 'type', 'validation_pattern', 'values', 'variables', 'yes']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/strategies/timing_adaptation.py
# hypothesis_version: 6.148.3
[0.5, 0.8, 1.0, 1.2, 1.5, 3.0, 5.0, 30.0, 'element', 'new_wait_time', 'original_wait', 'timeout', 'timing_adaptation', 'wait_time']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/models.py
# hypothesis_version: 6.148.3
[0.0, 0.7, 'RecoveryPattern', 'attempt_count', 'confidence_score', 'confidence_threshold', 'context_metadata', 'created_at', 'error_message', 'execution_time', 'failure_count', 'failure_reason', 'last_used', 'learned_pattern', 'max_attempts', 'metadata', 'new_element', 'node_id', 'original_action', 'original_failure', 'pattern_id', 'recovery_strategy', 'requires_user_input', 'screenshot_path', 'strategy_used', 'success', 'success_count', 'target_element', 'workflow_id']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/strategies/format_transformation.py
# hypothesis_version: 6.148.3
[0.6, 0.7, 0.75, 0.85, '%B %d, %Y', '%Y-%m-%d', '%Y/%m/%d', '%d %B %Y', '%d-%m-%Y', '%d.%m.%Y', '%d/%m/%Y', '%m/%d/%Y', '1', '\\D', 'clean_whitespace', 'confidence', 'date', 'format_error', 'formatted_value', 'input_rejected', 'input_type', 'input_value', 'max_length', 'new_format', 'original_format', 'phone', 'text', 'transformation', 'validation_failed']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/detection/ui_detector.py
# hypothesis_version: 6.148.3
[0.0, 0.02, 0.1, 0.3, 0.33, 0.5, 0.6, 0.7, 0.8, 1.0, 1.2, 100, 128, 150, 255, 600, 1000, 10000, 'BoundingBox', 'bbox', 'button', 'checkbox', 'confidence', 'detected_by', 'detection_method', 'form_input', 'horizontal_bar', 'hybrid', 'hybrid_fallback', 'large', 'medium', 'merged', 'qwen3-vl:8b', 'rectangle', 'rectangle_detection', 'role', 'screenshot_path', 'small', 'square', 'success', 'text', 'text_detection', 'text_input', 'type', 'unknown', 'vertical_bar', 'vlm_model', '✓ OWL-v2 initialized']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/composition_models.py
# hypothesis_version: 6.148.3
[1000, 'BranchConfig', 'ChainConfig', 'ChainResult', 'CommonSequence', 'ConditionalNode', 'ExecutionContext', 'ExecutionResult', 'FileTrigger', 'IterationResult', 'LogEntry', 'LoopConfig', 'LoopState', 'MergeCandidate', 'NodeConflict', 'ParameterDef', 'ReferenceNode', 'ScheduleTrigger', 'SequenceOccurrence', 'TriggerContext', 'ValidationResult', 'VariableOverride', 'VisualCondition', 'VisualTrigger', 'abort', 'action_a', 'action_b', 'body_nodes', 'branch_id', 'branches', 'chain_id', 'chains', 'completed_at', 'concurrent', 'condition', 'condition_type', 'conditionals', 'conflicts', 'count', 'cron_expression', 'current_iteration', 'current_workflow_id', 'default_branch', 'default_value', 'description', 'details', 'detected_element', 'element_absent', 'element_present', 'enabled', 'end_index', 'error_context', 'error_message', 'errors', 'event_type', 'execution_log', 'exit_condition', 'expected_text', 'file', 'file_path', 'file_pattern', 'final_variables', 'fired_at', 'global_variables', 'high', 'input_bindings', 'input_parameters', 'interval_seconds', 'is_valid', 'iteration', 'loop_id', 'loop_type', 'loops', 'low', 'max_iterations', 'max_retries', 'medium', 'name', 'new_value', 'node_id', 'nodes', 'occurrences', 'old_value', 'on_failure', 'output_bindings', 'output_values', 'param_type', 'priority', 'queue', 'references', 'required', 'retry', 'safety_limit', 'schedule', 'shared_nodes', 'should_continue', 'similarity_score', 'skip', 'source_workflow', 'source_workflow_id', 'start_index', 'started_at', 'string', 'sub_workflow_id', 'sub_workflows', 'success', 'target_element', 'target_node', 'target_workflow_id', 'text_contains', 'text_equals', 'timestamp', 'trigger_context', 'trigger_id', 'trigger_type', 'triggers', 'variable_mapping', 'variable_name', 'visual', 'warnings', 'watch_directory', 'workflow_a_id', 'workflow_b_id', 'workflow_id', 'workflows_executed']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/training/session_analyzer.py
# hypothesis_version: 6.148.3
[0.0, 0.1, 0.3, 0.4, 0.5, 0.6, 0.8, 0.95, 1.0, 2.0, 127.5, 255.0, 100, 500, 1000, 10000, 'Image non chargée', 'acceptable_frames', 'created_at', 'duplicate_count', 'duplicate_ratio', 'duplicates', 'events', 'frame_count', 'is_acceptable', 'is_consistent', 'mean_interval', 'outlier_count', 'overall_score', 'recommendations', 'relative_path', 'screenshots', 'session_id', 'std_interval', 't', 'timing', 'unknown']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/gpu/ollama_manager.py
# hypothesis_version: 6.148.3
[200, '/', '5m', ':', 'keep_alive', 'model', 'models', 'name', 'prompt', 'qwen3-vl:8b', 'stream']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/graph/node_matcher.py
# hypothesis_version: 6.148.3
[0.0, 0.05, 0.7, 0.85, '%Y%m%d_%H%M%S', '__main__', 'best_confidence', 'data/failed_matches', 'failed_match_id', 'matched', 'matching_results', 'metadata', 'node_id', 'node_label', 'num_candidates', 'report.json', 'screenshot.png', 'screenshot_path', 'similarities', 'similarity', 'state', 'state_embedding.npy', 'suggestions', 'threshold', 'timestamp', 'ui_elements_count', 'w', 'window_title']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/embedding_cache.py
# hypothesis_version: 6.148.3
[0.0, 500.0, 100, 1000, 1024, 'evictions', 'hit_rate', 'hits', 'max_memory_mb', 'max_size', 'memory_mb', 'memory_usage_pct', 'misses', 'size', 'total_accesses']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/__init__.py
# hypothesis_version: 6.148.3
['BranchConfig', 'ChainConfig', 'ChainResult', 'CommonSequence', 'ConcurrencyMode', 'ConditionType', 'ConditionalNode', 'ExecutionContext', 'ExecutionResult', 'FailureAction', 'FileTrigger', 'IterationResult', 'LogEntry', 'LoopConfig', 'LoopState', 'LoopType', 'MergeCandidate', 'NodeConflict', 'ParameterDef', 'ReferenceNode', 'ScheduleTrigger', 'SemanticMatcher', 'SequenceOccurrence', 'SequencePriority', 'TriggerConfig', 'TriggerContext', 'TriggerType', 'ValidationResult', 'VariableDefinition', 'VariableManager', 'VariableOverride', 'VisualCondition', 'VisualTrigger', 'WorkflowMatch', 'WorkflowMetadata', 'trigger_from_dict']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/strategies/spatial_fallback.py
# hypothesis_version: 6.148.3
[0.0, 0.4, 0.5, 0.6, 1.0, 100.0, 100, 200, 400, ')', ',', '@(', 'element', 'element_moved', 'element_not_found', 'found_position', 'original_position', 'position', 'search_radius', 'similarity', 'spatial_fallback']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/graph/__init__.py
# hypothesis_version: 6.148.3
['GraphBuilder', 'NodeMatcher']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/similarity.py
# hypothesis_version: 6.148.3
[-1.0, 0.0, 1e-10, 1e-06, 1.0, 'angular', 'cosine', 'euclidean', 'l1', 'l2', 'manhattan']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/training/quality_validator.py
# hypothesis_version: 6.148.3
[0.0, 0.2, 0.3, 0.5, 0.7, 0.8, 0.85, 1.5, 'cluster_count', 'created_at', 'inf', 'is_production_ready', 'matched_node_id', 'nodes', 'observation_count', 'outlier_count', 'overall_score', 'recommendations', 'unknown', 'validation_accuracy', 'workflow_id']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/strategies/base_strategy.py
# hypothesis_version: 6.148.3
[0.5]

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/execution/__init__.py
# hypothesis_version: 6.148.3
['ActionExecutor', 'ErrorHandler', 'ErrorType', 'RecoveryStrategy', 'ResolvedTarget', 'TargetResolver']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/__init__.py
# hypothesis_version: 6.148.3
['BranchConfig', 'ChainConfig', 'ChainResult', 'CommonSequence', 'ConcurrencyMode', 'ConditionType', 'ConditionalNode', 'DependencyGraph', 'ExecutionContext', 'ExecutionResult', 'FailureAction', 'FileTrigger', 'IterationResult', 'LogEntry', 'LoopConfig', 'LoopState', 'LoopType', 'MergeCandidate', 'NodeConflict', 'ParameterDef', 'ReferenceNode', 'ScheduleTrigger', 'SemanticMatcher', 'SequenceOccurrence', 'SequencePriority', 'TriggerConfig', 'TriggerContext', 'TriggerType', 'UsageStats', 'ValidationResult', 'VariableDefinition', 'VariableManager', 'VariableOverride', 'VisualCondition', 'VisualTrigger', 'WorkflowMatch', 'WorkflowMetadata', 'trigger_from_dict']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/fusion_engine.py
# hypothesis_version: 6.148.3
[0.0, 1e-10, 0.99, 1.0, 1.01, 'Empty batch provided', 'concat_projection', 'weighted']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/embedding/faiss_manager.py
# hypothesis_version: 6.148.3
[0.5, 1.0, 100, 1000, 10000, 65536, 'FAISSManager', 'Flat', 'HNSW', 'IVF', 'auto_optimize', 'cosine', 'dimensions', 'embedding_id', 'faiss.Index', 'index_type', 'ip', 'is_trained', 'l2', 'metadata', 'metadata_count', 'metadata_store', 'metric', 'next_id', 'nlist', 'nlist_efficiency', 'nprobe', 'optimal_nlist', 'rb', 'total_vectors', 'use_gpu', 'wb']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/__init__.py
# hypothesis_version: 6.148.3
['BranchConfig', 'ChainConfig', 'ChainResult', 'CommonSequence', 'ConcurrencyMode', 'ConditionType', 'ConditionalNode', 'DependencyGraph', 'ExecutionContext', 'ExecutionResult', 'FailureAction', 'FileTrigger', 'IterationResult', 'LogEntry', 'LoopConfig', 'LoopExecutor', 'LoopSafetyLimitError', 'LoopState', 'LoopType', 'MergeCandidate', 'NodeConflict', 'ParameterDef', 'ReferenceNode', 'ScheduleTrigger', 'SemanticMatcher', 'SequenceOccurrence', 'SequencePriority', 'TriggerConfig', 'TriggerContext', 'TriggerType', 'UsageStats', 'ValidationResult', 'VariableDefinition', 'VariableManager', 'VariableOverride', 'VisualCondition', 'VisualTrigger', 'WorkflowMatch', 'WorkflowMetadata', 'trigger_from_dict']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/healing/learning_repository.py
# hypothesis_version: 6.148.3
[0.2, 0.3, '.tmp', 'application', 'element_type', 'original_action', 'patterns.json', 'r', 'target_element', 'unknown', 'w', 'workflow_id', '|']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/gpu/gpu_resource_manager.py
# hypothesis_version: 6.148.3
[0.5, 300, 1024, 'CLIP migrated to CPU', 'CLIP migrated to GPU', 'GPUResourceManager', 'Loading VLM model...', 'VLM unload timeout', 'ViT-B-32', 'autopilot', 'clip', 'cpu', 'cuda', 'device', 'device_changed', 'error', 'idle', 'loaded', 'loading', 'model', 'model_loaded', 'model_unloaded', 'qwen3-vl:8b', 'recording', 'unloaded', 'unloading', 'vram_freed_mb']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/models/__init__.py
# hypothesis_version: 6.148.3
['Action', 'ActionType', 'ContextLevel', 'EdgeConstraints', 'EdgeStats', 'EmbeddingComponent', 'EmbeddingPrototype', 'Event', 'LearningConfig', 'LearningState', 'PerceptionLevel', 'PostConditions', 'RawLevel', 'RawSession', 'SafetyRules', 'ScreenState', 'ScreenTemplate', 'Screenshot', 'SelectionPolicy', 'StateEmbedding', 'TargetSpec', 'TextConstraint', 'UIConstraint', 'UIElement', 'UIElementEmbeddings', 'VisualFeatures', 'WindowConstraint', 'WindowContext', 'Workflow', 'WorkflowEdge', 'WorkflowNode', 'WorkflowStats']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/workflow_merger.py
# hypothesis_version: 6.148.3
[0.0, 0.9, 'WorkflowMerger', 'similarity_threshold']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/global_variable_manager.py
# hypothesis_version: 6.148.3
['global_vars', 'override_log', 'source_workflow']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/__init__.py
# hypothesis_version: 6.148.3
['BranchConfig', 'ChainConfig', 'ChainExecutionError', 'ChainResult', 'ChainValidationError', 'CommonSequence', 'ConcurrencyMode', 'ConditionType', 'ConditionalEvaluator', 'ConditionalNode', 'DependencyGraph', 'ExecutionContext', 'ExecutionLogger', 'ExecutionResult', 'FailureAction', 'FileTrigger', 'IterationResult', 'LogEntry', 'LoopConfig', 'LoopExecutor', 'LoopSafetyLimitError', 'LoopState', 'LoopType', 'MergeCandidate', 'NodeConflict', 'ParameterDef', 'ReferenceNode', 'ScheduleTrigger', 'SemanticMatcher', 'SequenceExtractor', 'SequenceOccurrence', 'SequencePriority', 'SubWorkflowRegistry', 'TriggerConfig', 'TriggerContext', 'TriggerManager', 'TriggerType', 'UsageStats', 'ValidationResult', 'VariableDefinition', 'VariableManager', 'VariableOverride', 'VisualCondition', 'VisualTrigger', 'WorkflowChainer', 'WorkflowMatch', 'WorkflowMerger', 'WorkflowMetadata', 'trigger_from_dict']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/__init__.py
# hypothesis_version: 6.148.3
['BranchConfig', 'ChainConfig', 'ChainResult', 'CommonSequence', 'ConcurrencyMode', 'ConditionType', 'ConditionalEvaluator', 'ConditionalNode', 'DependencyGraph', 'ExecutionContext', 'ExecutionResult', 'FailureAction', 'FileTrigger', 'IterationResult', 'LogEntry', 'LoopConfig', 'LoopExecutor', 'LoopSafetyLimitError', 'LoopState', 'LoopType', 'MergeCandidate', 'NodeConflict', 'ParameterDef', 'ReferenceNode', 'ScheduleTrigger', 'SemanticMatcher', 'SequenceOccurrence', 'SequencePriority', 'TriggerConfig', 'TriggerContext', 'TriggerType', 'UsageStats', 'ValidationResult', 'VariableDefinition', 'VariableManager', 'VariableOverride', 'VisualCondition', 'VisualTrigger', 'WorkflowMatch', 'WorkflowMetadata', 'trigger_from_dict']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/core/workflow/subworkflow_registry.py
# hypothesis_version: 6.148.3
['SubWorkflowRegistry', 'definitions', 'dependency_graph', 'inputs', 'parent', 'references']

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/Geniusia_v2/rpa_vision_v3/core/__init__.py
# hypothesis_version: 6.148.2
[]

View File

@@ -1,4 +0,0 @@
# file: /home/dom/ai/rpa_vision_v3/server/storage_encrypted.py
# hypothesis_version: 6.148.3
[100000, '.zip', 'ENCRYPTION_PASSWORD', 'Padding invalide', '__main__', 'rb', 'utf-8', 'wb']

View File

@@ -1 +0,0 @@
Uـà¢ين6ô`^ة—لa‡$½lû_©؟ق†„iأeکم-®0X

View File

@@ -1,3 +0,0 @@
 ”˙04FZE]?|@<40>hŢ”%ÎÉ\m3Q@ű^Ö{ă&ymŐ9Ĺ
 

View File

@@ -1 +0,0 @@
_Ej╩█<=)З╨{,0cV(─PZИ╛iЯЁ╨кАZНоXш╩╨vЕу0╢╣

View File

@@ -1 +0,0 @@
С¤-щY<N$MюНWs+ЗiUь¶крыгV5вXІ ¶‡92ўы"Ѕ4I

View File

@@ -1 +0,0 @@
Ѥ-ùY<N$Mþ•ÍWs+ÇiUü¶êðûãV5â ¶‡92¢û"½4I.secondary

View File

@@ -1 +0,0 @@
•ñpÉzpó€¼áÀ-6@ÔÌ(Þõv>"<22>'<27>ƒ¾«‰c6Ù¥f³#p*däÙM.secondary

View File

@@ -1 +0,0 @@
•ñpÉzpó€¼áÀ-6@ÔÌ(Þõv>"<22>'<27>ƒ¾«‰c6Ù¥f³#p*däÙM

View File

@@ -1 +0,0 @@
_Ej»<EFBFBD><=)úº{,0cV(€PZé¬iñ³ºËáZîÏXÛ»ºvåÕ0´µ.secondary

View File

@@ -1,2 +0,0 @@
ã<­“Ñ3ì·¤\*{àen†ã^‡ð‘ü@y ;]
…¯[Èýº…ç

View File

@@ -1,2 +0,0 @@
ã<­“Ñ3ì·¤\*{àen†ã^‡ð‘ü@y ;]
…¯[Èýº…ç3Ô.secondary

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