# 🔍 Fonctionnement du Mode Shadow ## Qu'est-ce que le Mode Shadow ? Le mode Shadow (👀) est le mode d'**observation passive** où l'application : - ✅ Observe les actions de l'utilisateur - ✅ Enregistre les patterns répétitifs - ❌ N'interfère PAS avec l'utilisateur - ❌ Ne suggère PAS d'actions ## 🤔 Problème Actuel ### Ce qui se passe maintenant Quand tu cliques sur "Start" en mode Shadow : 1. L'application démarre la boucle cognitive 2. Elle capture l'écran 3. Elle cherche une "intention" (quelle action automatiser) 4. **Pas d'intention** → Elle ne fait rien et attend ### Pourquoi les warnings ? Les warnings que tu vois : ``` WARNING: Aucune détection avec owl-v2 WARNING: DINO n'est pas disponible WARNING: YOLO-World n'est pas disponible ERROR: Aucun modèle n'a pu détecter 'observer' ``` Sont causés par une tentative de détecter des éléments avec le terme "observer", qui est trop générique. **C'est maintenant corrigé** : L'application n'essaie plus de détecter sans intention. ## ✅ Comment Ça Devrait Fonctionner ### Architecture Complète (À Implémenter) ``` Mode Shadow ↓ Capture d'événements système ↓ Détection d'actions répétitives ↓ Création d'une "intention" ↓ Apprentissage du pattern ↓ Proposition de passer en mode Assisté ``` ### Ce qui Manque Actuellement **Capture d'événements système** : - Hooks clavier (pynput, keyboard) - Hooks souris (pynput, mouse) - Détection de patterns répétitifs ### Implémentation Actuelle (Simplifiée) L'application attend que tu **définisses manuellement une tâche** : 1. Via l'interface (à ajouter) 2. Via des actions répétitives détectées (à implémenter) ## 🚀 Solution Temporaire En attendant l'implémentation complète des hooks système, voici comment utiliser l'application : ### Option 1: Mode Assisté Direct Au lieu de commencer en Shadow, commence directement en mode Assisté : 1. **Définir une tâche manuellement** (via interface à ajouter) 2. **Passer en mode Assisté** 3. **Valider les suggestions** ### Option 2: Utiliser l'API Programmatique Créer une tâche via code : ```python from core.learning_manager import LearningManager from core.models import TaskProfile # Créer une tâche task = TaskProfile( task_id="test_task", window_title="Firefox", description="Cliquer sur le bouton de recherche" ) # Définir l'intention learning_manager.set_current_intent("button") ``` ## 📝 Prochaines Étapes ### Pour Rendre le Mode Shadow Fonctionnel 1. **Implémenter la capture d'événements** : ```python from pynput import mouse, keyboard def on_click(x, y, button, pressed): if pressed: # Enregistrer le clic capture_action("click", x, y) def on_key(key): # Enregistrer la frappe capture_action("key", key) # Démarrer les listeners mouse_listener = mouse.Listener(on_click=on_click) keyboard_listener = keyboard.Listener(on_press=on_key) ``` 2. **Détecter les patterns répétitifs** : ```python def detect_repetitive_pattern(actions): # Analyser les actions pour trouver des répétitions # Si 3+ actions similaires → Créer une intention pass ``` 3. **Créer automatiquement des intentions** : ```python if pattern_detected: intent = extract_intent_from_pattern(pattern) learning_manager.set_current_intent(intent) ``` ## 🎯 État Actuel ### Ce qui Fonctionne ✅ **Capture d'écran** : L'application capture l'écran en continu ✅ **Détection UI** : OWL-v2 peut détecter des éléments (boutons, champs, etc.) ✅ **Raisonnement** : Qwen3-VL peut analyser les images ✅ **Mémoire visuelle** : OpenCLIP stocke les embeddings ### Ce qui Manque ❌ **Capture d'événements** : Pas de hooks clavier/souris ❌ **Détection de patterns** : Pas d'analyse des répétitions ❌ **Création auto d'intentions** : Pas de génération automatique ## 💡 Recommandation Actuelle **Pour tester l'application maintenant** : 1. **Ne pas utiliser le mode Shadow** pour l'instant 2. **Attendre l'implémentation des hooks système** 3. **Ou contribuer à l'implémentation** (voir ci-dessous) ### Comment Contribuer Si tu veux implémenter la capture d'événements : ```bash # Installer les dépendances pip install pynput # Créer le module touch geniusia2/core/event_capture.py # Implémenter les hooks # Voir exemple ci-dessus ``` ## 📚 Ressources - **pynput** : https://pynput.readthedocs.io/ - **keyboard** : https://github.com/boppreh/keyboard - **mouse** : https://github.com/boppreh/mouse --- ## ✅ Résumé **Situation actuelle** : - Le mode Shadow démarre mais n'a rien à faire sans événements utilisateur - Les warnings sont normaux et ont été corrigés - L'application attend une intention pour agir **Solution temporaire** : - L'application fonctionne mais en mode "passif" - Elle attend que tu définisses une tâche manuellement - Ou que les hooks système soient implémentés **Prochaine étape** : - Implémenter la capture d'événements système - Ou utiliser l'application en mode manuel pour l'instant **L'application est fonctionnelle, mais le mode Shadow complet nécessite encore du développement ! 🚀**