mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
guard terminal_tool import-time env parsing
This commit is contained in:
parent
e86acad8f1
commit
44a16c5d9d
2 changed files with 60 additions and 2 deletions
|
|
@ -72,11 +72,48 @@ from tools.tool_backend_helpers import (
|
|||
)
|
||||
|
||||
|
||||
def _safe_parse_import_env(
|
||||
name: str,
|
||||
default: Any,
|
||||
converter,
|
||||
type_label: str,
|
||||
):
|
||||
"""Parse module-level numeric env vars without breaking import.
|
||||
|
||||
Terminal tool is imported by CLI, ACP, tests, and tool discovery. A single
|
||||
malformed env var must not make the whole module unloadable at import time.
|
||||
"""
|
||||
raw = os.getenv(name)
|
||||
if raw is None or raw == "":
|
||||
return default
|
||||
try:
|
||||
return converter(raw)
|
||||
except (TypeError, ValueError):
|
||||
logger.warning(
|
||||
"Invalid value for %s: %r (expected %s). Falling back to %r.",
|
||||
name,
|
||||
raw,
|
||||
type_label,
|
||||
default,
|
||||
)
|
||||
return default
|
||||
|
||||
|
||||
# Hard cap on foreground timeout; override via TERMINAL_MAX_FOREGROUND_TIMEOUT env var.
|
||||
FOREGROUND_MAX_TIMEOUT = int(os.getenv("TERMINAL_MAX_FOREGROUND_TIMEOUT", "600"))
|
||||
FOREGROUND_MAX_TIMEOUT = _safe_parse_import_env(
|
||||
"TERMINAL_MAX_FOREGROUND_TIMEOUT",
|
||||
600,
|
||||
int,
|
||||
"integer",
|
||||
)
|
||||
|
||||
# Disk usage warning threshold (in GB)
|
||||
DISK_USAGE_WARNING_THRESHOLD_GB = float(os.getenv("TERMINAL_DISK_WARNING_GB", "500"))
|
||||
DISK_USAGE_WARNING_THRESHOLD_GB = _safe_parse_import_env(
|
||||
"TERMINAL_DISK_WARNING_GB",
|
||||
500.0,
|
||||
float,
|
||||
"number",
|
||||
)
|
||||
|
||||
|
||||
def _check_disk_usage_warning():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue