Fix: tools.py verbose errors and path mapping

This commit is contained in:
Marcos
2026-03-22 11:36:45 -03:00
parent b16b295a84
commit cc1045a75c

View File

@@ -14,13 +14,14 @@ def run_bash_command(command: str) -> str:
text=True,
timeout=120 # Aumentado para comandos mais pesados
)
output = result.stdout.strip()
error = result.stderr.strip()
if result.returncode != 0:
return f"ERRO ({result.returncode}):\n{error}"
return f"ERRO ({result.returncode}): {error if error else 'Nada no stderr'}"
return output if output else "Comando executado com sucesso (sem saída)."
return output if output else "Sucesso (vazio)"
except subprocess.TimeoutExpired:
return "ERRO: O comando demorou muito e foi cancelado (timeout)."
except Exception as e:
@@ -44,9 +45,13 @@ def get_system_health() -> str:
def read_vps_file(filepath: str) -> str:
"""Lê um arquivo do sistema de arquivos da VPS através do mapeamento /host_root."""
host_path = f"/host_root{filepath}" if not filepath.startswith("/host_root") else filepath
# Se ainda assim não começar com /host_root e não for absoluto para o container, tentamos prefixar
if not host_path.startswith("/host_root") and filepath.startswith("/"):
host_path = "/host_root" + filepath
try:
if not os.path.exists(host_path):
return f"Erro: Arquivo {filepath} não encontrado no host."
return f"Erro: Arquivo {filepath} não encontrado no host (Caminho tentado: {host_path})."
with open(host_path, 'r') as f:
return f.read(2000) # Limite para não estourar o contexto
except Exception as e: