import "server-only"; import { getVideoStoryboardTaskDetail } from "@/lib/video-agent/task-store"; export class StoryboardTaskAccessError extends Error { status: number; constructor(message: string, status: number) { super(message); this.status = status; } } export async function requireStoryboardTaskAccess(params: { taskId: string; userId: string; }) { const detail = await getVideoStoryboardTaskDetail(params.taskId); if (!detail) { throw new StoryboardTaskAccessError("任务不存在", 404); } if (String((detail.task as any).userId || "").trim() !== params.userId) { throw new StoryboardTaskAccessError("无权访问该分镜任务", 403); } return detail; }