@@ -72,11 +72,11 @@ class MockGUI:
7272 en mode standalone sans l'application complète.
7373 """
7474
75- def __init__ (self , workspace_dir : Optional [str ] = None ):
75+ def __init__ (self , workspace_dir : Optional [str ] = None , log_echo : bool = True ):
7676 self .workspace_dir = (
7777 os .path .abspath (str (workspace_dir )) if workspace_dir else workspace_dir
7878 )
79- self .log = MockLog ()
79+ self .log = MockLog (echo = log_echo )
8080 self ._tr = {}
8181 self .venv_path_manuel = None
8282 self .venv_path = None
@@ -120,13 +120,15 @@ def _init_venv_context(self) -> None:
120120class MockLog :
121121 """Mock log object qui collecte les messages pour affichage."""
122122
123- def __init__ (self ):
123+ def __init__ (self , echo : bool = True ):
124124 self .messages : List [str ] = []
125+ self ._echo = bool (echo )
125126
126127 def append (self , message : str ) -> None :
127128 """Ajoute un message au log."""
128129 self .messages .append (message )
129- print (message )
130+ if self ._echo :
131+ print (message )
130132
131133 def clear (self ) -> None :
132134 """Efface le log."""
@@ -385,6 +387,7 @@ def __init__(
385387 theme : str = "dark" ,
386388 dry_run : bool = False ,
387389 headless : bool = False ,
390+ quiet_logs : bool = False ,
388391 ):
389392 """
390393 Initialise l'application standalone engines.
@@ -397,8 +400,9 @@ def __init__(
397400 theme: Nom du thème ('light' ou 'dark')
398401 dry_run: Si True, affiche uniquement la commande sans exécuter
399402 headless: Si True, fonctionne sans interface GUI (mode CLI)
403+ quiet_logs: Disable stdout log echo (used for strict JSON payload mode)
400404 """
401- self .gui = MockGUI (workspace_dir )
405+ self .gui = MockGUI (workspace_dir , log_echo = not bool ( quiet_logs ) )
402406 self .language_manager = LanguageManager ()
403407 self .theme_manager = ThemeManager ()
404408
0 commit comments