From a97619ab6fbedc12b80a933e6680319a258a6599 Mon Sep 17 00:00:00 2001 From: karthik282707 Date: Fri, 10 Oct 2025 05:50:37 +0530 Subject: [PATCH] Improve --sysinfo command to show version data and env variables --- gpt_engineer/applications/cli/main.py | 32 ++++++++++++++++++++++----- gpt_engineer/core/version_info.py | 24 ++++++++++++++++++++ 2 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 gpt_engineer/core/version_info.py diff --git a/gpt_engineer/applications/cli/main.py b/gpt_engineer/applications/cli/main.py index 5a0c4135b7..97ee7f713f 100644 --- a/gpt_engineer/applications/cli/main.py +++ b/gpt_engineer/applications/cli/main.py @@ -240,13 +240,35 @@ def prompt_yesno() -> bool: print("Please respond with 'y' or 'n'") +def mask_sensitive_value(value: str) -> str: + """Mask sensitive values in environment variables.""" + if len(value) <= 4: + return "****" + return value[:4] + "****" + value[-4:] + def get_system_info(): + # Import here to avoid circular imports + from gpt_engineer.core.version_info import get_version_info + + # Get version information + version, install_type = get_version_info() + + # Get relevant environment variables + relevant_env_vars = { + key: mask_sensitive_value(value) if any(s in key.lower() for s in ['key', 'token', 'secret', 'password', 'credential']) + else value + for key, value in os.environ.items() + if any(prefix in key.upper() for prefix in ['OPENAI_', 'GPT_', 'PYTHON', 'PATH', 'MODEL']) + } + system_info = { - "os": platform.system(), - "os_version": platform.version(), - "architecture": platform.machine(), - "python_version": sys.version, - "packages": format_installed_packages(get_installed_packages()), + "GPT Engineer Version": f"{version} ({install_type} installation)", + "OS": platform.system(), + "OS Version": platform.version(), + "Architecture": platform.machine(), + "Python Version": sys.version.split()[0], + "Environment Variables": relevant_env_vars, + "Installed Packages": format_installed_packages(get_installed_packages()), } return system_info diff --git a/gpt_engineer/core/version_info.py b/gpt_engineer/core/version_info.py new file mode 100644 index 0000000000..a3f806fe5d --- /dev/null +++ b/gpt_engineer/core/version_info.py @@ -0,0 +1,24 @@ +"""Module for retrieving version information of gpt-engineer.""" +import os +import importlib.metadata +from pathlib import Path + +def get_version_info(): + """ + Get version information for gpt-engineer. + Returns a tuple of (version, install_type) where install_type is either 'pip' or 'development'. + """ + try: + version = importlib.metadata.version("gpt-engineer") + install_type = "pip" + except importlib.metadata.PackageNotFoundError: + # Check if we're in a development environment (git repo) + root_dir = Path(__file__).parent.parent.parent + if (root_dir / ".git").exists(): + version = "development" + install_type = "development" + else: + version = "unknown" + install_type = "unknown" + + return version, install_type \ No newline at end of file