|
|
import platform |
|
|
from .config import CLI_VERSION |
|
|
|
|
|
def get_user_agent(): |
|
|
"""Generate User-Agent string matching gemini-cli format.""" |
|
|
version = CLI_VERSION |
|
|
system = platform.system() |
|
|
arch = platform.machine() |
|
|
return f"GeminiCLI/{version} ({system}; {arch})" |
|
|
|
|
|
def get_platform_string(): |
|
|
"""Generate platform string matching gemini-cli format.""" |
|
|
system = platform.system().upper() |
|
|
arch = platform.machine().upper() |
|
|
|
|
|
|
|
|
if system == "DARWIN": |
|
|
if arch in ["ARM64", "AARCH64"]: |
|
|
return "DARWIN_ARM64" |
|
|
else: |
|
|
return "DARWIN_AMD64" |
|
|
elif system == "LINUX": |
|
|
if arch in ["ARM64", "AARCH64"]: |
|
|
return "LINUX_ARM64" |
|
|
else: |
|
|
return "LINUX_AMD64" |
|
|
elif system == "WINDOWS": |
|
|
return "WINDOWS_AMD64" |
|
|
else: |
|
|
return "PLATFORM_UNSPECIFIED" |
|
|
|
|
|
def get_client_metadata(project_id=None): |
|
|
return { |
|
|
"ideType": "IDE_UNSPECIFIED", |
|
|
"platform": get_platform_string(), |
|
|
"pluginType": "GEMINI", |
|
|
"duetProject": project_id, |
|
|
} |