claude-proxy / src /free_claude_code /messaging /command_dispatcher.py
dheraingoud's picture
feat: synchronize proxy with upstream commits up to 5305bd7 and integrate NIM key rotator
0a54372
Raw
History Blame Contribute Delete
955 Bytes
"""Command parsing and dispatch for messaging handlers."""
from .command_context import MessagingCommandContext
from .commands import handle_clear_command, handle_stats_command, handle_stop_command
from .models import IncomingMessage
_COMMAND_HANDLERS = {
"/clear": handle_clear_command,
"/stop": handle_stop_command,
"/stats": handle_stats_command,
}
def parse_command_base(text: str | None) -> str:
"""Return the slash command without bot mention suffix."""
parts = (text or "").strip().split()
cmd = parts[0] if parts else ""
return cmd.split("@", 1)[0] if cmd else ""
async def dispatch_command(
context: MessagingCommandContext,
incoming: IncomingMessage,
command_base: str,
) -> bool:
"""Dispatch a known command and return whether it was handled."""
command = _COMMAND_HANDLERS.get(command_base)
if command is None:
return False
await command(context, incoming)
return True