import { formatScheduledTaskListReply, isScheduledTaskIntent, parseScheduledTaskIntent, } from '../../scheduled-task-intent.mjs'; export async function handleWechatScheduledTaskIntent({ intent, user, scheduledTaskService, env = process.env, logger = console, }) { if (!scheduledTaskService) return null; const timezone = env.H5_DEFAULT_TIMEZONE || 'Asia/Shanghai'; const taskIntent = parseScheduledTaskIntent(intent.agentText, { timezone, }); if (!isScheduledTaskIntent(taskIntent)) return null; try { if (taskIntent.action === 'list_scheduled_tasks') { const tasks = await scheduledTaskService.listTasks({ userId: user.userId, status: 'active', limit: 20, }); return formatScheduledTaskListReply(tasks); } if ( taskIntent.action === 'create_scheduled_task' || taskIntent.action === 'cancel_scheduled_task' ) { return null; } } catch (err) { logger.warn?.( '[wechat-scheduled-task] preflight failed:', err instanceof Error ? err.message : err, ); return `定时任务设置失败:${err instanceof Error ? err.message : String(err)}`; } return null; }