butler/gateway/outbound_delay.py
Rama main · réplica de lectura del repositorio original.
"""Inter-message delay for WeChat multi-chunk outbound (OpenClaw human-delay subset)."""
from __future__ import annotations
import random
def outbound_block_delay_ms() -> int:
try:
from butler.utilities.env_parse import int_env
return int(int_env("BUTLER_OUTBOUND_BLOCK_DELAY_MS", 0, min=0))
except ValueError:
return 0
def inter_chunk_delay_seconds(*, fallback_seconds: float = 0.0) -> float:
"""Random delay in seconds; uses BUTLER_OUTBOUND_BLOCK_DELAY_MS when set."""
ms = outbound_block_delay_ms()
if ms > 0:
lo = ms * 0.5
hi = ms * 1.5
return random.uniform(lo, hi) / 1000.0
return max(0.0, float(fallback_seconds))