"""Leaf module — message chunking helper for Discord (2000 char limit). Zero deps.""" def split_message(text: str, limit: int = 2000) -> list[str]: """Split text into chunks that fit Discord's message limit.""" if len(text) <= limit: return [text] chunks = [] while text: if len(text) <= limit: chunks.append(text) break split_at = text.rfind('\n', 0, limit) if split_at == -1: split_at = limit chunks.append(text[:split_at]) text = text[split_at:].lstrip('\n') return chunks