From d686c3ac2239c06ba7c0f0f1d20ee1b268a53f6c Mon Sep 17 00:00:00 2001 From: Dom Date: Mon, 22 Jun 2026 17:04:20 +0200 Subject: [PATCH] =?UTF-8?q?feat(deploy):=20installation=201-clic=20non-IT?= =?UTF-8?q?=20=E2=80=94=20raccourci=20Bureau=20+=20Demarrage=20auto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajoute Installer-Lea.bat (CRLF/ASCII, chcp 65001) au paquet Lea complet : - copie le paquet (python-embed inclus) vers %LOCALAPPDATA%\Lea (per-user, emplacement stable via robocopy, fallback xcopy) ; - cree un raccourci Bureau + un raccourci dans le dossier Demarrage (lancement auto a l'ouverture de session) via WScript.Shell, cibles python-embed\pythonw.exe run_agent_v1.py (pas de console) ; - icone optionnelle si un .ico est present dans le paquet (best-effort, sinon icone par defaut) ; - lance Lea une premiere fois, message de fin clair. Application SYSTRAY -> pas de service Windows (session 0 sans UI) : dossier Demarrage + raccourci, per-user, sans admin/UAC. LISEZMOI.txt du paquet remplacee par LISEZMOI-autonome.txt (le flux install.bat + Python systeme n'existe plus dans ce paquet). build_package_full.sh integre ces deux assets et les valide dans le ZIP. Co-Authored-By: Claude Opus 4.8 (1M context) --- deploy/build_package_full.sh | 19 ++++ deploy/installer/Installer-Lea.bat | 152 +++++++++++++++++++++++++ deploy/installer/LISEZMOI-autonome.txt | 105 +++++++++++++++++ 3 files changed, 276 insertions(+) create mode 100644 deploy/installer/Installer-Lea.bat create mode 100644 deploy/installer/LISEZMOI-autonome.txt diff --git a/deploy/build_package_full.sh b/deploy/build_package_full.sh index d7a534746..6947926bd 100755 --- a/deploy/build_package_full.sh +++ b/deploy/build_package_full.sh @@ -140,6 +140,24 @@ if not content.endswith("\r\n"): open(out_path, "wb").write(content.encode("ascii")) print(f" Lea.bat genere depuis configure_embed.ps1 ({len(content)} octets)") PYEOF + +# Installateur 1-clic non-IT (raccourci Bureau + Demarrage automatique, +# per-user, sans admin). Asset statique CRLF/ASCII copie tel quel dans Lea/. +INSTALLER_BAT_SRC="$INSTALLER_DIR/Installer-Lea.bat" +if [[ ! -f "$INSTALLER_BAT_SRC" ]]; then + echo -e "${RED} ERREUR : $INSTALLER_BAT_SRC introuvable${NC}" + exit 1 +fi +cp "$INSTALLER_BAT_SRC" "$ASSEMBLY_DIR/Lea/Installer-Lea.bat" +echo " Installer-Lea.bat (installation 1-clic) ajoute" + +# Notice utilisateur dediee a l'install autonome (remplace la LISEZMOI legacy +# du staging, qui decrit l'ancien flux install.bat + Python systeme). +LISEZMOI_SRC="$INSTALLER_DIR/LISEZMOI-autonome.txt" +if [[ -f "$LISEZMOI_SRC" ]]; then + cp "$LISEZMOI_SRC" "$ASSEMBLY_DIR/Lea/LISEZMOI.txt" + echo " LISEZMOI.txt (version install autonome) pose" +fi echo "" # --------------------------------------------------------------- @@ -183,6 +201,7 @@ REQUIRED=( "Lea/agent_v1/main.py" "Lea/lea_ui/server_client.py" "Lea/Lea.bat" + "Lea/Installer-Lea.bat" "Lea/config.txt" "Lea/python-embed/python.exe" "Lea/python-embed/pythonw.exe" diff --git a/deploy/installer/Installer-Lea.bat b/deploy/installer/Installer-Lea.bat new file mode 100644 index 000000000..e4561b37b --- /dev/null +++ b/deploy/installer/Installer-Lea.bat @@ -0,0 +1,152 @@ +@echo off +chcp 65001 >nul 2>&1 +title Lea - Installation 1-clic +setlocal EnableDelayedExpansion + +:: ============================================================ +:: Installer-Lea.bat - Installation 1-clic per-user (sans admin) +:: ------------------------------------------------------------ +:: - Copie le paquet Lea (y compris python-embed) vers +:: %LOCALAPPDATA%\Lea (emplacement stable per-user). +:: - Cree un raccourci sur le Bureau. +:: - Cree un raccourci dans le dossier Demarrage (lancement +:: automatique a chaque ouverture de session Windows). +:: - Lance Lea une premiere fois (pythonw, sans console). +:: +:: Aucun droit administrateur requis. Aucun service Windows +:: (Lea est une application systray, doit tourner dans la +:: session utilisateur). +:: ============================================================ + +echo. +echo ============================================================ +echo Lea - Installation +echo ============================================================ +echo. + +:: --- Emplacement source (dossier de ce script) ------------- +set "SRC=%~dp0" +:: Retirer l'antislash final eventuel +if "%SRC:~-1%"=="\" set "SRC=%SRC:~0,-1%" + +:: --- Emplacement cible per-user ---------------------------- +set "DEST=%LOCALAPPDATA%\Lea" + +echo Installation vers : %DEST% +echo (copie du runtime embarque, cela prend quelques secondes) +echo. + +:: --- Verification du runtime embarque dans la source ------- +if not exist "%SRC%\python-embed\pythonw.exe" ( + echo ERREUR : python-embed\pythonw.exe introuvable dans le paquet. + echo Le paquet semble incomplet. Re-telechargez Lea depuis le tableau de bord. + echo. + pause + exit /b 1 +) + +:: --- Si Lea tourne deja depuis la cible, l'arreter ---------- +if exist "%DEST%\lea_agent.lock" ( + for /f "usebackq tokens=* delims=" %%i in ("%DEST%\lea_agent.lock") do ( + taskkill /F /PID %%i >nul 2>&1 + ) + del /f /q "%DEST%\lea_agent.lock" >nul 2>&1 + timeout /t 1 >nul +) + +:: --- Copie du paquet vers la cible ------------------------- +:: robocopy : robuste pour la grosse arborescence python-embed. +:: /E sous-dossiers (vides inclus), /NFL /NDL /NJH /NJS /NP silencieux. +:: Codes de sortie robocopy < 8 = succes ; >= 8 = echec. +if not exist "%DEST%" mkdir "%DEST%" >nul 2>&1 +robocopy "%SRC%" "%DEST%" /E /NFL /NDL /NJH /NJS /NP >nul +if %ERRORLEVEL% GEQ 8 ( + echo robocopy a echoue, tentative avec xcopy... + xcopy "%SRC%\*" "%DEST%\" /E /I /H /Y >nul + if errorlevel 1 ( + echo. + echo ERREUR : la copie vers %DEST% a echoue. + echo Verifiez l'espace disque et les droits sur votre profil. + echo. + pause + exit /b 1 + ) +) +echo Copie terminee - OK +echo. + +:: --- Ne pas laisser l'installeur se relancer en boucle ----- +:: (on supprime la copie de l'installeur dans la cible : inutile une fois installe) +del /f /q "%DEST%\Installer-Lea.bat" >nul 2>&1 + +:: --- Detection d'une icone optionnelle --------------------- +:: Cherche un .ico dans le paquet installe (best-effort). +set "ICON=" +for /f "delims=" %%f in ('dir /b /s "%DEST%\*.ico" 2^>nul') do ( + if not defined ICON set "ICON=%%f" +) + +:: --- Cibles des raccourcis --------------------------------- +set "TARGET=%DEST%\python-embed\pythonw.exe" +set "ARGS=run_agent_v1.py" +set "WORKDIR=%DEST%" +set "DESKTOP_LNK=%USERPROFILE%\Desktop\Lea.lnk" +set "STARTUP_LNK=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\Lea.lnk" + +:: --- Creation des raccourcis via PowerShell (WScript.Shell) - +echo Creation des raccourcis (Bureau + Demarrage automatique)... +powershell -NoProfile -ExecutionPolicy Bypass -Command ^ + "$ws = New-Object -ComObject WScript.Shell;" ^ + "foreach ($p in @('%DESKTOP_LNK%','%STARTUP_LNK%')) {" ^ + " $dir = Split-Path $p -Parent;" ^ + " if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null }" ^ + " $s = $ws.CreateShortcut($p);" ^ + " $s.TargetPath = '%TARGET%';" ^ + " $s.Arguments = '%ARGS%';" ^ + " $s.WorkingDirectory = '%WORKDIR%';" ^ + " $s.Description = 'Lea - Assistante IA';" ^ + " if ('%ICON%' -ne '' -and (Test-Path '%ICON%')) { $s.IconLocation = '%ICON%' }" ^ + " $s.Save();" ^ + "}" +if errorlevel 1 ( + echo ATTENTION : la creation des raccourcis a partiellement echoue. + echo Vous pourrez tout de meme lancer Lea via %TARGET%. +) else ( + echo Raccourcis crees - OK +) +echo. + +:: --- Premier lancement de Lea (sans console) --------------- +echo Demarrage de Lea... +pushd "%DEST%" +start "" /b "%TARGET%" %ARGS% +popd + +:: --- Verification rapide (via le lock PID) ----------------- +timeout /t 3 >nul +set "LEA_ALIVE=0" +if exist "%DEST%\lea_agent.lock" ( + for /f "usebackq tokens=* delims=" %%i in ("%DEST%\lea_agent.lock") do ( + tasklist /FI "PID eq %%i" /NH 2>nul | findstr /I "pythonw" >nul && set "LEA_ALIVE=1" + ) +) + +echo. +echo ============================================================ +if "%LEA_ALIVE%"=="1" ( + echo Lea est installee et demarree ! +) else ( + echo Lea est installee. +) +echo ============================================================ +echo. +echo - Lea apparait en bas a droite, dans la barre des taches +echo (petite icone ronde, a cote de l'horloge). +echo - Lea demarrera AUTOMATIQUEMENT a chaque ouverture de session. +echo - Un raccourci "Lea" a ete ajoute sur votre Bureau. +echo. +echo Vous pouvez fermer cette fenetre. +echo. +pause +endlocal +exit /b 0 diff --git a/deploy/installer/LISEZMOI-autonome.txt b/deploy/installer/LISEZMOI-autonome.txt new file mode 100644 index 000000000..ded15163f --- /dev/null +++ b/deploy/installer/LISEZMOI-autonome.txt @@ -0,0 +1,105 @@ +============================================================ + Lea - Votre assistante intelligente +============================================================ + +Bienvenue ! Lea est une assistante qui apprend vos taches +repetitives sur l'ordinateur pour pouvoir vous aider. + +Cette version est 100% autonome : aucun Python a installer, +aucun droit administrateur necessaire. + + +INSTALLATION (une seule fois) +----------------------------- + +1. Si Lea est dans un fichier ZIP, faites un clic droit + dessus puis "Extraire tout..." (ne lancez pas Lea + directement depuis le ZIP). + +2. Ouvrez le dossier extrait et double-cliquez sur + "Installer-Lea.bat". + +3. Patientez quelques secondes (copie du programme). + A la fin, le message "Lea est installee et demarree" + s'affiche. + +C'est tout. Lea est installee dans votre profil utilisateur +et : + + - un raccourci "Lea" est ajoute sur votre Bureau ; + - Lea demarrera AUTOMATIQUEMENT a chaque fois que vous + ouvrez votre session Windows. + +Vous pouvez ensuite supprimer le dossier extrait et le ZIP : +Lea continue de fonctionner (elle a ete copiee a part). + + +LANCER LEA MANUELLEMENT +----------------------- + +Si besoin, double-cliquez sur le raccourci "Lea" du Bureau. + +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. Travaillez normalement, Lea + apprend en vous regardant. + + - "C'est termine" : Arrete l'enregistrement quand vous + avez fini la tache. Si vous oubliez, Lea s'arrete + automatiquement apres 1 heure. + + - "Discuter avec Lea" : Ouvre une fenetre de discussion + pour poser des questions. + + - "ARRET D'URGENCE" : Arrete immediatement tout ce que + Lea est en train de faire. + + - "Quitter Lea" : Ferme le programme. + + +INFORMATIONS IMPORTANTES +------------------------ + +Quand Lea enregistre vos actions, elle capture votre ecran, +vos clics et vos frappes clavier. + + - Lea vous previent AVANT chaque enregistrement + - Les donnees sensibles (mots de passe, informations + medicales) sont automatiquement floutees + - L'enregistrement s'arrete automatiquement apres 1 heure + - Vous pouvez arreter a tout moment via le menu + +Lea est un systeme base sur l'intelligence artificielle +(Article 50, Reglement europeen sur l'IA). + + +CONFIGURATION +------------- + +Si vous devez modifier l'adresse du serveur, ouvrez le fichier +"config.txt" (dans le dossier d'installation de Lea) avec le +Bloc-notes et changez les valeurs. + +Ne modifiez rien d'autre sans l'accord de votre administrateur. + + +EN CAS DE PROBLEME +------------------- + + - Lea ne demarre pas : double-cliquez a nouveau sur le + raccourci "Lea" du Bureau, ou relancez "Installer-Lea.bat". + + - Lea est deconnectee : Verifiez votre connexion + reseau. Le serveur est peut-etre en maintenance. + + - Pour desinstaller : supprimez le dossier "Lea" dans + votre profil (dossier %LOCALAPPDATA%\Lea) ainsi que les + raccourcis "Lea" du Bureau et du Demarrage. + + - En cas de doute, contactez votre administrateur. + +============================================================