export interface AdditionalMount { hostPath: string; // Absolute path on host (supports ~ for home) containerPath: string; // Path inside container (under /workspace/extra/) readonly?: boolean; // Default: true for safety } export interface ContainerConfig { additionalMounts?: AdditionalMount[]; timeout?: number; // Default: 300000 (5 minutes) env?: Record; } export interface RegisteredGroup { name: string; folder: string; trigger: string; added_at: string; containerConfig?: ContainerConfig; } export interface Session { [folder: string]: string; } export interface NewMessage { id: string; chat_jid: string; sender: string; sender_name: string; content: string; timestamp: string; } export interface ScheduledTask { id: string; group_folder: string; chat_jid: string; prompt: string; schedule_type: 'cron' | 'interval' | 'once'; schedule_value: string; next_run: string | null; last_run: string | null; last_result: string | null; status: 'active' | 'paused' | 'completed'; created_at: string; } export interface TaskRunLog { task_id: string; run_at: string; duration_ms: number; status: 'success' | 'error'; result: string | null; error: string | null; }