feat: replay visuel VLM-first, worker séparé, package Léa, AZERTY, sécurité HTTPS

Pipeline replay visuel :
- VLM-first : l'agent appelle Ollama directement pour trouver les éléments
- Template matching en fallback (seuil strict 0.90)
- Stop immédiat si élément non trouvé (pas de clic blind)
- Replay depuis session brute (/replay-session) sans attendre le VLM
- Vérification post-action (screenshot hash avant/après)
- Gestion des popups (Enter/Escape/Tab+Enter)

Worker VLM séparé :
- run_worker.py : process distinct du serveur HTTP
- Communication par fichiers (_worker_queue.txt + _replay_active.lock)
- Le serveur HTTP ne fait plus jamais de VLM → toujours réactif
- Service systemd rpa-worker.service

Capture clavier :
- raw_keys (vk + press/release) pour replay exact indépendant du layout
- Fix AZERTY : ToUnicodeEx + AltGr detection
- Enter capturé comme \n, Tab comme \t
- Filtrage modificateurs seuls (Ctrl/Alt/Shift parasites)
- Fusion text_input consécutifs, dédup key_combo

Sécurité & Internet :
- HTTPS Let's Encrypt (lea.labs + vwb.labs.laurinebazin.design)
- Token API fixe dans .env.local
- HTTP Basic Auth sur VWB
- Security headers (HSTS, CSP, nosniff)
- CORS domaines publics, plus de wildcard

Infrastructure :
- DPI awareness (SetProcessDpiAwareness) Python + Rust
- Métadonnées système (dpi_scale, window_bounds, monitors, os_theme)
- Template matching multi-scale [0.5, 2.0]
- Résolution dynamique (plus de hardcode 1920x1080)
- VLM prefill fix (47x speedup, 3.5s au lieu de 180s)

Modules :
- core/auth/ : credential vault (Fernet AES), TOTP (RFC 6238), auth handler
- core/federation/ : LearningPack export/import anonymisé, FAISS global
- deploy/ : package Léa (config.txt, Lea.bat, install.bat, LISEZMOI.txt)

UX :
- Filtrage OS (VWB + Chat montrent que les workflows de l'OS courant)
- Bibliothèque persistante (cache local + SQLite)
- Clustering hybride (titre fenêtre + DBSCAN)
- EdgeConstraints + PostConditions peuplés
- GraphBuilder compound actions (toutes les frappes)

Agent Rust :
- Token Bearer auth (network.rs)
- sysinfo.rs (DPI, résolution, window bounds via Win32 API)
- config.txt lu automatiquement
- Support Chrome/Brave/Firefox (pas que Edge)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-26 10:19:18 +01:00
parent fe5e0ba83d
commit d5deac3029
162 changed files with 25669 additions and 557 deletions

View File

@@ -0,0 +1,85 @@
============================================================
Lea - Votre assistante intelligente
============================================================
Bienvenue ! Lea est une assistante qui apprend vos taches
repetitives sur l'ordinateur et peut les refaire a votre place.
PREMIERE INSTALLATION
---------------------
1. Double-cliquez sur "install.bat"
(cela prend 2-3 minutes, une seule fois)
2. Si une fenetre vous demande d'autoriser Python,
cliquez "Oui" ou "Autoriser".
3. A la fin, vous verrez "Installation terminee !"
LANCER LEA
----------
Double-cliquez sur "Lea.bat"
Lea apparait en bas a droite de votre ecran, dans la barre
des taches (petite icone ronde, a cote de l'horloge).
Clic droit sur l'icone pour ouvrir le menu :
- "Apprenez-moi une tache" : Lea observe ce que vous faites
et memorise les etapes.
- "Mes taches" : Liste des taches que Lea a apprises.
Cliquez sur une tache pour que Lea la refasse.
- "Discuter avec Lea" : Ouvre une fenetre de discussion
pour poser des questions ou donner des instructions.
- "ARRET D'URGENCE" : Arrete immediatement tout ce que
Lea est en train de faire.
- "Quitter Lea" : Ferme le programme.
CONFIGURATION
-------------
Si vous devez modifier l'adresse du serveur, ouvrez le fichier
"config.txt" avec le Bloc-notes et changez les valeurs.
Ne modifiez rien d'autre sans l'accord de votre administrateur.
EN CAS DE PROBLEME
-------------------
- "Python n'est pas installe" : Demandez a votre
service informatique d'installer Python 3.10
depuis https://python.org
- Lea ne demarre pas : Relancez "install.bat" puis
relancez "Lea.bat"
- Lea est deconnectee : Verifiez votre connexion
internet/reseau. Le serveur est peut-etre en
maintenance.
- En cas de doute, contactez votre administrateur.
INFORMATIONS
------------
Lea est un systeme base sur l'intelligence artificielle.
Quand Lea enregistre vos actions, elle capture votre ecran,
vos clics et vos frappes clavier. Les donnees sensibles
(mots de passe, informations medicales) sont automatiquement
floutees avant envoi.
Vous pouvez arreter l'enregistrement ou le replay a tout
moment via le menu ou le bouton "ARRET D'URGENCE".
============================================================

View File

@@ -0,0 +1,54 @@
@echo off
chcp 65001 >nul 2>&1
title Lea - Assistante IA
:: ---------------------------------------------------------------
:: Se placer dans le dossier du script (important pour les chemins)
:: ---------------------------------------------------------------
cd /d "%~dp0"
:: ---------------------------------------------------------------
:: Verifier que l'installation a ete faite
:: ---------------------------------------------------------------
if not exist ".venv\Scripts\python.exe" (
echo.
echo Lea n'est pas encore installee.
echo Lancez d'abord "install.bat" puis revenez ici.
echo.
pause
exit /b 1
)
:: ---------------------------------------------------------------
:: Charger la configuration depuis config.txt
:: Les lignes commencant par # sont ignorees (commentaires)
:: Format attendu : NOM_VARIABLE=valeur
:: ---------------------------------------------------------------
if exist "config.txt" (
for /f "usebackq eol=# tokens=1,* delims==" %%a in ("config.txt") do (
if not "%%a"=="" if not "%%b"=="" set "%%a=%%b"
)
) else (
echo ATTENTION : config.txt introuvable, utilisation des valeurs par defaut.
)
:: ---------------------------------------------------------------
:: Lancer Lea
:: ---------------------------------------------------------------
echo.
echo Demarrage de Lea...
echo (Lea apparait dans la barre des taches, en bas a droite)
echo.
echo Pour arreter Lea : clic droit sur l'icone ^> "Quitter Lea"
echo Vous pouvez fermer cette fenetre.
echo.
.venv\Scripts\pythonw.exe run_agent_v1.py
if errorlevel 1 (
echo.
echo Lea a rencontre un probleme au demarrage.
echo Tentative avec affichage des erreurs...
echo.
.venv\Scripts\python.exe run_agent_v1.py
pause
)

View File

@@ -0,0 +1,31 @@
# ============================================================
# Configuration Lea
# ============================================================
#
# Ce fichier contient les parametres de connexion au serveur.
# Modifiez uniquement les valeurs apres le signe =
# Ne touchez pas aux noms des parametres (a gauche du =).
#
# Les lignes commencant par # sont des commentaires (ignorees).
#
# ============================================================
# Adresse du serveur Lea (URL complete avec /api/v1)
RPA_SERVER_URL=https://lea.labs.laurinebazin.design/api/v1
# Cle d'authentification (fournie par l'administrateur)
RPA_API_TOKEN=86031addb338e449fccdb1a983f61807aec15d42d482b9c7748ad607dc23caab
# Nom du serveur (sans https://, sans /api/v1)
RPA_SERVER_HOST=lea.labs.laurinebazin.design
# ============================================================
# Parametres avances (ne pas modifier sauf indication)
# ============================================================
# Flouter les zones de texte dans les captures (securite donnees)
# Mettre false uniquement pour le developpement/tests
RPA_BLUR_SENSITIVE=true
# Duree de conservation des logs en jours (minimum 180 pour conformite)
RPA_LOG_RETENTION_DAYS=180

View File

@@ -0,0 +1,127 @@
@echo off
chcp 65001 >nul 2>&1
title Lea - Installation
echo.
echo ============================================================
echo Lea - Installation
echo ============================================================
echo.
echo Cette installation prend 2-3 minutes.
echo Ne fermez pas cette fenetre.
echo.
echo ============================================================
echo.
:: ---------------------------------------------------------------
:: 0. Verifier que Python est installe
:: ---------------------------------------------------------------
echo [1/5] Verification de Python...
python --version >nul 2>&1
if errorlevel 1 (
echo.
echo ERREUR : Python n'est pas installe sur cet ordinateur.
echo.
echo Pour installer Python :
echo 1. Allez sur https://python.org
echo 2. Cliquez "Download Python 3.12"
echo 3. IMPORTANT : cochez "Add Python to PATH" pendant l'installation
echo 4. Relancez install.bat apres l'installation de Python
echo.
pause
exit /b 1
)
:: Afficher la version Python detectee
for /f "tokens=*" %%v in ('python --version 2^>^&1') do echo %%v detecte - OK
echo.
:: ---------------------------------------------------------------
:: 1. Creer l'environnement virtuel
:: ---------------------------------------------------------------
if not exist ".venv" (
echo [2/5] Creation de l'environnement isole...
python -m venv .venv
if errorlevel 1 (
echo ERREUR : Impossible de creer l'environnement virtuel.
echo Verifiez que Python est correctement installe.
pause
exit /b 1
)
echo Environnement cree - OK
) else (
echo [2/5] Environnement existant detecte - OK
)
echo.
:: ---------------------------------------------------------------
:: 2. Activer l'environnement
:: ---------------------------------------------------------------
echo [3/5] Activation de l'environnement...
call .venv\Scripts\activate.bat
echo Active - OK
echo.
:: ---------------------------------------------------------------
:: 3. Installer les dependances
:: ---------------------------------------------------------------
echo [4/5] Installation des composants (cela peut prendre 1-2 min)...
python -m pip install --upgrade pip --quiet 2>nul
pip install -r requirements_agent.txt --quiet 2>nul
if errorlevel 1 (
echo.
echo ATTENTION : Certains composants n'ont pas pu etre installes.
echo Nouvelle tentative avec affichage des details...
echo.
pip install -r requirements_agent.txt
if errorlevel 1 (
echo.
echo ERREUR : L'installation a echoue.
echo Verifiez votre connexion internet et reessayez.
pause
exit /b 1
)
)
echo Composants installes - OK
echo.
:: ---------------------------------------------------------------
:: 4. Post-installation Windows (pywin32)
:: ---------------------------------------------------------------
echo [5/5] Configuration Windows...
python -c "import win32api" >nul 2>&1
if errorlevel 1 (
python .venv\Scripts\pywin32_postinstall.py -install >nul 2>&1
)
echo Configuration terminee - OK
echo.
:: ---------------------------------------------------------------
:: 5. Verification finale
:: ---------------------------------------------------------------
echo ============================================================
echo Verification finale...
echo ============================================================
echo.
python -c "import mss; import pynput; import pystray; import plyer; import requests; import PIL; print(' Tous les composants sont OK !')"
if errorlevel 1 (
echo.
echo ATTENTION : Certains composants manquent.
echo Essayez de relancer install.bat.
echo Si le probleme persiste, contactez votre administrateur.
pause
exit /b 1
)
echo.
echo ============================================================
echo.
echo Installation terminee !
echo.
echo Pour lancer Lea, double-cliquez sur "Lea.bat"
echo.
echo ============================================================
echo.
pause

View File

@@ -0,0 +1,13 @@
# Dependances Lea Agent (client leger)
# Pas de CLIP, PyTorch, ou modele lourd - tout le calcul est sur le serveur
mss>=9.0.1 # Capture d'ecran haute performance
pynput>=1.7.7 # Clavier/Souris
Pillow>=10.0.0 # Traitement image (crops, compression)
requests>=2.31.0 # Communication serveur
psutil>=5.9.0 # Monitoring CPU/RAM
pystray>=0.19.5 # Icone systray
plyer>=2.1.0 # Notifications toast natives
# Windows specifique
pywin32>=306 ; sys_platform == 'win32'