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>
This commit is contained in:
@@ -167,7 +167,8 @@ def test_workflow_construction(session, session_file):
|
||||
if workflow.nodes:
|
||||
logger.info(f"\n📊 {len(workflow.nodes)} patterns détectés:")
|
||||
for node in workflow.nodes:
|
||||
logger.info(f" • {node.node_id}: {node.observation_count} observations")
|
||||
obs = node.metadata.get("observation_count", "?") if node.metadata else "?"
|
||||
logger.info(f" • {node.node_id}: {obs} observations")
|
||||
else:
|
||||
logger.warning("\n⚠️ Aucun pattern détecté")
|
||||
logger.info(" Conseils:")
|
||||
@@ -178,7 +179,8 @@ def test_workflow_construction(session, session_file):
|
||||
if workflow.edges:
|
||||
logger.info(f"\n🔗 {len(workflow.edges)} transitions détectées:")
|
||||
for edge in workflow.edges:
|
||||
logger.info(f" • {edge.from_node_id} → {edge.to_node_id} ({edge.observation_count}x)")
|
||||
count = edge.stats.execution_count if edge.stats else 0
|
||||
logger.info(f" • {edge.from_node} → {edge.to_node} ({count}x)")
|
||||
|
||||
logger.info(f"\n💾 Index FAISS: {faiss_manager.index.ntotal} vecteurs")
|
||||
logger.info(f"📁 Session: {session_file}")
|
||||
|
||||
Reference in New Issue
Block a user