# context.py import os import yaml import discord base_dir = os.path.dirname(__file__) with open(os.path.join(base_dir, "settings.yml"), "r", encoding="utf-8") as f: settings = yaml.safe_load(f) CONTEXT_LIMIT = settings["context"].get("max_messages", 15) # Returns full discord.Message objects (for logic) async def fetch_raw_context(channel, limit=CONTEXT_LIMIT): messages = [] async for message in channel.history(limit=100): # Skip other bots (but not Delta herself) if message.author.bot and message.author.id != channel.guild.me.id: continue messages.append(message) if len(messages) >= limit: break messages.reverse() return messages # Keeps your clean format logic for LLM def format_context(messages: list[discord.Message]) -> str: lines = [] for message in messages: raw = message.clean_content clean = raw.strip().replace("\n", " ").replace("\r", "") clean = " ".join(clean.split()) if not clean or clean.startswith("!"): continue line = f"{message.created_at.strftime('%Y-%m-%d %H:%M')} - {message.author.display_name}: {clean}" lines.append(line) return "\n".join(lines)