export interface CommandContext { channel: string; senderId: string; sessionId: string; rawInput: string; services?: CommandServices; } export interface CommandResult { handled: boolean; text: string; } export interface CommandDefinition { name: string; aliases?: string[]; description: string; execute: (args: string[], ctx: CommandContext) => Promise; } export interface CommandServices { getStatus?: () => Promise | string; getUsage?: () => Promise | string; getContext?: () => Promise | string; getModel?: () => Promise | string; setModel?: (tier: string) => Promise | string; compact?: () => Promise | string; reset?: () => Promise | string; delegateAgent?: (agentName: string, task: string) => Promise | string; getElevation?: () => Promise | string; setElevation?: (input: string) => Promise | string; getQueue?: () => Promise | string; setQueue?: (input: string) => Promise | string; resetQueue?: () => Promise | string; transferSession?: (target: string) => Promise | string; getApprovals?: () => Promise | string; approvePending?: (input: string) => Promise | string; denyPending?: (input: string) => Promise | string; skillCommand?: (input: string) => Promise | string; }