Commit Graph

15 Commits

Author SHA1 Message Date
Dom
8175b39eba feat: multi-machine + chat Léa Edge mode app
Multi-machine :
- machine_id auto (hostname_os), configurable via RPA_MACHINE_ID
- Sessions/workflows isolés par machine (dossiers séparés)
- Replay ciblé par machine (pas de fuite cross-machine)
- Endpoint GET /machines pour lister les machines connectées
- Léa affiche la machine source des workflows

Chat Léa systray :
- Edge en mode app (--app=URL) — fenêtre native sans barre d'adresse
- Toggle via menu systray "Discuter avec Léa"
- Fallback navigateur si Edge absent

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 20:02:45 +01:00
Dom
928b9e1065 feat: import Excel via chat Léa, suppression nœuds VWB, fix temperature 0.1
- Chat Léa : "importe patients.xlsx" → preview → confirmation → table SQLite
  Bouton 📎 pour upload fichier, "montre les tables", "info table X"
- VWB : suppression nœuds via touche Suppr/Backspace + bouton croix rouge
- Fix : toutes les températures VLM à 0.1 (qwen3-vl bloque à 0.0)
- Fix : capture VWB avec DISPLAY=:1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 07:18:51 +01:00
Dom
cf495dd82f feat: chat unifié, GestureCatalog, Copilot, Léa UI, extraction données, vérification replay
Refonte majeure du système Agent Chat et ajout de nombreux modules :

- Chat unifié : suppression du dual Workflows/Agent Libre, tout passe par /api/chat
  avec résolution en 3 niveaux (workflow → geste → "montre-moi")
- GestureCatalog : 38 raccourcis clavier universels Windows avec matching sémantique,
  substitution automatique dans les replays, et endpoint /api/gestures
- Mode Copilot : exécution pas-à-pas des workflows avec validation humaine via WebSocket
  (approve/skip/abort) avant chaque action
- Léa UI (agent_v0/lea_ui/) : interface PyQt5 pour Windows avec overlay transparent
  pour feedback visuel pendant le replay
- Data Extraction (core/extraction/) : moteur d'extraction visuelle de données
  (OCR + VLM → SQLite), avec schémas YAML et export CSV/Excel
- ReplayVerifier (agent_v0/server_v1/) : vérification post-action par comparaison
  de screenshots, avec logique de retry (max 3)
- IntentParser durci : meilleur fallback regex, type GREETING, patterns améliorés
- Dashboard : nouvelles pages gestures, streaming, extractions
- Tests : 63 tests GestureCatalog, 47 tests extraction, corrections tests existants
- Dépréciation : /api/agent/plan et /api/agent/execute retournent HTTP 410,
  suppression du code hardcodé _plan_to_replay_actions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 10:02:09 +01:00
Dom
74a1cb4e03 feat(agent-libre): exécuter les plans LLM sur le PC cible via streaming server
Le mode "Agent Libre" envoyait les actions localement (Linux) au lieu
du PC Windows. Maintenant les plans LLM sont convertis en actions
normalisées et envoyés au streaming server via POST /replay/raw.
L'Agent V1 les exécute sur la bonne machine.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 08:41:53 +01:00
Dom
7df01f2642 fix(agent-chat): ne plus fallback local quand streaming server refuse
- Distinguer serveur injoignable (fallback local OK) vs serveur UP mais
  refus (pas de session Agent V1, workflow inconnu) → message d'erreur
  explicite au lieu d'ouvrir un navigateur sur Linux
- _try_streaming_server_replay retourne {"error": ...} au lieu de None
  quand le serveur répond avec un code d'erreur HTTP

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 18:20:07 +01:00
Dom
599dd02399 fix(agent-chat): suivi replay distant + timeout 15s
- Session ID vide pour auto-détection de la session Agent V1 active
- Timeout augmenté de 5s à 15s pour la requête replay
- Ajout _poll_replay_progress : suit la progression réelle du replay
  (polling /replay/{id} toutes les 2s, max 120s) au lieu de marquer
  faussement "terminé avec succès" immédiatement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 17:43:49 +01:00
Dom
766c57e126 fix(agent-chat): execution_status.running manquant en mode local
Le fallback d'exécution locale ne mettait pas execution_status["running"]
à True, ce qui causait l'arrêt immédiat de la boucle d'exécution avec
"Exécution annulée par l'utilisateur" dès la première étape.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 17:31:36 +01:00
Dom
79c19c5e9d fix(agent-chat): ajouter handler QUERY pour les infos workflow
Le chat listait les workflows mais répondait "Je n'ai pas d'information"
quand l'utilisateur demandait des détails. Le handler QUERY utilise
maintenant SemanticMatcher.find_workflow() + get_workflow_help() pour
retourner description, tags et paramètres supportés.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:37:24 +01:00
Dom
148321dffd feat: WorkflowRunner, matching sémantique et replay distant (P0-4, P0-6, P0-7)
P0-4: WorkflowRunner — orchestrateur de replay intelligent
- Boucle capture → match FAISS → résolution sémantique → exécution
- Mode dry_run, substitution de variables, anti-boucle (max 200 steps)
- Découplé de pyautogui via executor_callback

P0-6: Unification des répertoires workflows
- SemanticMatcher scanne data/workflows/ + data/training/workflows/
- Auto-reload sur changement de répertoire (60s)

P0-7: Matching sémantique via Ollama
- Pré-filtrage Jaccard + re-ranking LLM (qwen2.5:7b)
- Score final : 40% Jaccard + 60% LLM, fallback si Ollama indisponible

Agent Chat: exécution distante via streaming server
- POST http://localhost:5005/api/v1/traces/stream/replay
- Fallback sur exécution locale si serveur indisponible

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 11:23:33 +01:00
Dom
7ea5d6b992 feat(agent_chat): Ajouter mode Agent Libre avec planification LLM
- 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>
2026-01-19 22:47:54 +01:00
Dom
848184db5c feat(agent_chat): Activer intégration LLM Ollama pour parsing intelligent
- 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>
2026-01-16 18:04:07 +01:00
Dom
152431803e fix(agent_chat): Corriger intégration exécution réelle
- 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>
2026-01-16 17:43:30 +01:00
Dom
87f2671920 feat(agent_chat): Intégration exécution réelle avec ActionExecutor
- 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>
2026-01-15 16:03:05 +01:00
Dom
bc096a3891 feat(agent_chat): Ajout des composants conversationnels
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>
2026-01-15 15:20:05 +01:00
Dom
c6a857b96b Refactor: Renommer command_interface en agent_chat
- 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>
2026-01-15 15:13:26 +01:00