- Ajouter liste des 20 types d'actions VWB connus pour détection fiable
- Corriger isVWBStep() pour vérifier step.type en priorité
- Corriger extraction actionId (step.type au lieu de "unknown")
- Résoudre problème stale closure en passant steps en paramètre
- Ajouter logs de débogage détaillés pour suivi exécution
Les étapes type_text sont maintenant correctement exécutées au lieu
d'être simulées.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Nouveau module autonomous_planner.py pour planification intelligente
- Utilise Qwen via Ollama pour décomposer les tâches en actions
- Actions supportées: open_url, click, type_text, hotkey, scroll, wait
- Intégration OWL-v2 et VLM pour détection visuelle intelligente
- Nouvelle interface chat conversationnelle (chat.html)
- Prompt LLM générique adaptable à toute demande
- Endpoints API: /api/agent/plan, /api/agent/execute, /api/agent/status
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Section Sauvegardes: export par catégorie (workflows, corrections, modèles, config) et backup complet
- Section Système: infos version, Python, OS, points de restauration, upload packages mise à jour
- Section Corrections: gestion des Correction Packs (liste, création, export, stats)
- Section Apprentissage: stats corpus FAISS, sessions traitées, graphiques évolution, top corrections
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changements:
- Ajouter ensure_dev_config() qui génère des clés temporaires en dev
- Ajouter paramètre strict=True/False à validate_production_security()
- En développement: génère auto ENCRYPTION_PASSWORD et SECRET_KEY
- En production: comportement inchangé (bloque si config invalide)
server/api_upload.py:
- Utilise strict=is_production_environment()
- En dev: warning seulement, continue le démarrage
- En prod: sys.exit(1) si config invalide
Résout les problèmes de démarrage en développement sans config manuelle.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Clarifications modèle de déploiement:
- Solution 100% on-premise ("boîte noire")
- Aucune connexion externe, aucun service cloud
- Compatible air-gap (environnements déconnectés)
- Accès bases de données en lecture seule uniquement
Nouvelle section 11 - Continuité de service et sauvegardes:
- SLA simple (pas de PCA/PRA - produit non vital)
- Responsabilité client pour les sauvegardes
- API backup Dashboard documentées (workflows, correction packs, config, logs)
- Export modèles entraînés opt-in (anonymisés)
- Procédure mise à jour hors-ligne
- Procédure rollback
Précisions conformité:
- Plan d'Assurance Sécurité (PAS) mentionné
- IA Act européen ajouté aux certifications visées
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
API Backup (/api/backup/*):
- GET /stats - Statistiques des données disponibles
- POST /full - Backup complet (avec option modèles)
- GET /workflows - Export workflows uniquement
- GET /correction-packs - Export correction packs
- GET /trained-models - Export modèles entraînés (opt-in, anonymisés)
- GET /config - Export configuration (sanitisée)
API Version (/api/version/*):
- GET / - Version actuelle du système
- GET /system-info - Information système complète
- GET /check-update - Vérifier les mises à jour
- GET /backups - Lister les backups de version
- POST /create-backup - Créer point de restauration
- POST /upload-update - Uploader un package de mise à jour
Ces API permettent aux clients de:
- Télécharger leurs sauvegardes depuis le Dashboard
- Vérifier et installer les mises à jour
- Créer des points de restauration et rollback
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
BackupExporter (backup_exporter.py):
- Export complet (workflows, correction packs, coaching sessions, configs)
- Export sélectif (workflows only, configs only, etc.)
- Export modèles entraînés opt-in (embeddings, FAISS anonymisés)
- Sanitisation des configs (masquage des secrets)
- Statistiques de backup disponibles
VersionManager (version_manager.py):
- Suivi de version avec composants
- Vérification des mises à jour (manifest local)
- Vérification intégrité packages (SHA-256)
- Création/restauration de backups pour rollback
- Information système complète
Ces modules supportent les fonctionnalités Dashboard:
- Téléchargement sauvegardes par le client
- Mise à jour du système
- Rollback en cas de problème
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Réécrire logger.py avec format cohérent: "timestamp | level | component | message"
- Ajouter ANSIStripFilter pour nettoyer les codes couleur des logs
- Implémenter _clean_component_name() pour éviter les noms de fichiers corrompus
- Configurer rotation des fichiers (10MB, 5 backups)
- Rendre imports Prometheus optionnels dans __init__.py
- Réduire bruit des librairies externes (werkzeug, urllib3, etc.)
Corrige les problèmes de fichiers logs corrompus (!0.log, #0.log, %0.log, etc.)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix TypeError in create_flat_index() and create_ivf_index():
- Line 678: dimension= → dimensions=
- Line 692: dimension= → dimensions=
The FAISSManager.__init__() expects 'dimensions' (plural), not 'dimension'.
This bug prevented using the factory functions to create FAISS indexes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add CoachingDecision enum (ACCEPT, REJECT, CORRECT, EXECUTE_MANUAL, SKIP)
- Add CoachingResponse dataclass for user decisions
- Add WAITING_COACHING state to ExecutionState
- Implement _request_coaching_decision() with callback or polling support
- Implement submit_coaching_decision() for external API/UI submission
- Implement _apply_coaching_correction() for applying user corrections
- Implement _record_coaching_feedback() integrating with:
- TrainingDataCollector for session recording
- FeedbackProcessor for statistics
- CorrectionPackIntegration for automatic correction capture
- Add get_coaching_stats() for session statistics
- Add 17 unit tests for COACHING functionality
COACHING mode now:
1. Suggests actions to user
2. Waits for user decision (accept/reject/correct/manual/skip)
3. Applies corrections if provided
4. Records all feedback for learning
5. Propagates corrections to Correction Packs automatically
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add CorrectionPackIntegration class to bridge learning components
- Modify TrainingDataCollector to auto-propagate corrections to packs
- Modify FeedbackProcessor to capture corrections on INCORRECT/PARTIAL feedback
- Add convenience functions: get_correction_pack_integration(), capture_coaching_correction()
- Add 19 integration tests (all passing)
Corrections made during COACHING mode are now automatically captured
into a dedicated "auto_captured_corrections" pack for cross-workflow reuse.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implement a complete system for capitalizing user corrections across multiple
workflows and sessions. This enables automatic application of learned fixes
when similar failures occur in different contexts.
New components:
- core/corrections/models.py: CorrectionKey, Correction, CorrectionPack models
- core/corrections/correction_repository.py: JSON storage with atomic writes
- core/corrections/aggregator.py: Aggregation by hash and quality filtering
- core/corrections/correction_pack_service.py: CRUD, export/import, versioning
- backend/api/correction_packs.py: REST API with 15 endpoints
Features:
- MD5-based key hashing for correction deduplication
- Export/import in JSON and YAML formats
- Version history with rollback support
- Cross-workflow pattern detection
- Integration with SelfHealingEngine for automatic application
- 29 unit tests (all passing)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document de référence avec :
- Évaluation des 3 moats (Techno 85%, Data 60%, Déploiement 50%)
- Inventaire fonctionnel complet (179 fichiers core)
- Points de friction identifiés
- Actions requises court/moyen/long terme
- Références techniques (ports, commandes, structure)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Ajouter API /api/services pour lister/démarrer/arrêter les services
- Ajouter nouvel onglet "Services" comme page d'accueil du dashboard
- Indicateurs visuels (vert=actif, rouge=arrêté) pour chaque service
- Boutons: Démarrer, Arrêter, Redémarrer, Ouvrir dans navigateur
- Support: Agent Chat, VWB Backend, VWB Frontend, Dashboard
- Actions groupées: Tout Démarrer / Tout Arrêter
- Notifications visuelles pour les actions
- Rafraîchissement auto toutes les 5 secondes
Services gérés:
- Agent Chat (LLM) - port 5002
- VWB Backend - port 5000
- VWB Frontend - port 3000
- Dashboard - port 5001
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Activer use_llm=True par défaut dans app.py
- Améliorer le prompt LLM avec contexte des workflows disponibles
- Ajouter endpoints /api/llm/status et /api/llm/model pour configuration
- Permettre injection dynamique des workflows dans IntentParser
- Supporter changement de modèle à chaud
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Importer les vraies classes Action, TargetSpec, WorkflowEdge, ActionType
- Convertir le type d'action en ActionType Enum au lieu de string
- Créer un ScreenState complet avec tous les niveaux (raw, perception, context)
- Corriger _serialize_state dans error_handler.py pour accès compatibles
- Ajouter import os pour manipulation des fichiers
- Sauvegarder les screenshots dans data/temp/
L'exécution réelle fonctionne maintenant - les erreurs "Target not found"
sont attendues car il faut une vraie interface utilisateur à l'écran.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Import des composants d'exécution (ActionExecutor, ExecutionLoop, etc.)
- Initialisation complète du pipeline d'exécution au démarrage
- Remplacement de la simulation par exécution réelle :
- Capture d'écran avec ScreenCapturer
- Exécution des actions avec ActionExecutor
- Gestion des erreurs et fallback en mode simulé
- Mode dégradé automatique si composants non disponibles
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Nouveaux composants pour l'agent conversationnel :
- IntentParser: Analyse des intentions utilisateur (règles + LLM optionnel)
- ConfirmationLoop: Validation avant actions critiques (niveaux de risque)
- ResponseGenerator: Génération de réponses en langage naturel
- ConversationManager: Gestion du contexte multi-tour
Endpoint /api/chat ajouté pour le flux conversationnel complet.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- command_interface/ → agent_chat/
- Mise à jour run.sh (--chat au lieu de --command)
- Mise à jour documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Mise à jour KNOWN_VWB_ACTIONS pour inclure:
- double_click_anchor, right_click_anchor, hover_anchor, drag_drop_anchor
- keyboard_shortcut
- ai_analyze_text
- extract_table, download_to_folder
- db_save_data, db_read_data
- visual_condition, loop_visual
Corrige le problème "Type d'étape non reconnu" pour ces actions.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Synchronisation des paramètres frontend avec le backend:
- db_save_data: modes cle_valeur, collection, sql
- db_read_data: modes cle_valeur, collection, sql, lister
Paramètres alignés avec l'implémentation SQLite.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Module complet de persistance SQLite pour VWB:
GestionnaireDB:
- Interface clé-valeur avec typage auto (string, number, bool, json)
- Collections pour données structurées avec historique
- Requêtes SQL personnalisées (SELECT/modifications)
- Thread-safe, singleton par chemin de DB
- Statistiques et nettoyage
Actions:
- sauvegarder_donnees: 3 modes (cle_valeur, collection, sql)
- charger_donnees: 4 modes (cle_valeur, collection, sql, lister)
Base par défaut: ~/.vwb/data.db
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Gestion complète des téléchargements de fichiers:
- Surveillance du dossier source pour nouveaux fichiers
- Attente fin de téléchargement (fichier stable)
- Validation: taille min, extensions autorisées
- Déplacement/renommage avec templates:
{original}, {date}, {datetime}, {annee}, etc.
- Gestion conflits de noms
- Détection fichiers temporaires (.part, .crdownload)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Nouvelle action d'extraction de données tabulaires:
- Mode IA: Ollama qwen2.5-vl pour extraction intelligente
- Mode OCR: EasyOCR avec groupement par lignes
- Formats de sortie: JSON, CSV, liste
- Support colonnes attendues pour guider l'IA
- Parsing de texte tabulé (tab, pipe, virgule)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Nouvelle action d'intelligence artificielle:
- Analyse de contenu visuel via Ollama
- 8 types d'analyse prédéfinis: general, formulaire, erreur,
boutons, tableau, menu, validation, extraction
- Prompts personnalisables
- Support température et max_tokens
- Variable de sortie configurable
Modèle par défaut: qwen2.5-vl:7b
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Nouvelles actions de clic avec nommage français:
- double_clic: Double-clic avec intervalle configurable
- clic_droit: Clic droit pour menus contextuels
Support des profils français: rapide, normal, lent, furtif
Intégration Humanizer anti-détection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Nouvelles actions avec nommage français pour l'interface:
- survol_element: Survol avec durée configurable et humanisation
- glisser_deposer: Drag & drop entre deux ancres visuelles
Support des profils français: rapide, normal, lent, furtif
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Touches simples et combinaisons (Ctrl+S, Alt+F4, etc.)
- Mapping complet des touches (F1-F12, flèches, navigation)
- Support répétition avec délai configurable
- Focus optionnel sur ancre visuelle avant raccourci
- Intégration humanizer pour délais naturels
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Module humanizer.py avec simulation comportement humain
- Courbes de Bézier pour mouvements souris
- Décalage gaussien pour positions de clic
- Frappe avec rythme variable et micro-erreurs
- 4 profils: fast, normal, slow, stealth
- Intégré dans click_anchor et type_text (humanize=True par défaut)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- verify_element_exists: recherche visuelle OpenCV réelle
- verify_text_content: OCR via Ollama (GPU) avec fallback easyocr
- Paramètres ocr_mode et ollama_model dans le catalogue frontend
- Support des modes de matching: exact, contains, regex, starts_with, ends_with
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Ajout onglets Standard/VWB dans Executor pour permettre la navigation
- Liste d'exécution scrollable (max 300px)
- Synchronisation bidirectionnelle des variables avec le workflow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Création service learning_integration.py (pont VWB <-> LearningManager)
- Enregistrement automatique des workflows à la création
- Enregistrement des résultats d'exécution (succès/échec + confiance)
- Endpoints API: /workflows/<id>/feedback et /workflows/<id>/learning
- Boutons feedback (pouce vert/rouge) dans VWBExecutorExtension
- Fix: VariableAutocomplete inputRef pour setSelectionRange
- Amélioration: Chips cliquables pour insérer les variables
Le système apprend maintenant des exécutions et feedbacks utilisateur.
États: OBSERVATION -> COACHING -> AUTO_CANDIDATE -> AUTO_CONFIRMED
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>