import type { StudioToolId } from "@/components/dashboard/studioTools"; export type StudioGenerationRequestSummary = { key: string; toolId: StudioToolId; toolLabel: string; sourceIds: string[]; sourceTitle: string; prompt: string; isExpensive: boolean; autoRetryCount: number; }; const STUDIO_GENERATION_TOOL_ID_LIST: StudioToolId[] = [ "smart-notes", "ai-quiz", "flashcards", "exam-answer", "answer-correction", "study-plan", "last-night-prep", "study-videos", "what-to-study", "exam-war-mode", "pyq-intelligence", ]; export const STUDIO_GENERATION_TOOL_IDS = new Set(STUDIO_GENERATION_TOOL_ID_LIST); export function isStudioGenerationTool(toolId: StudioToolId) { return STUDIO_GENERATION_TOOL_IDS.has(toolId); } export function isExpensiveStudioTool(toolId: StudioToolId) { return toolId === "study-videos"; } export function normalizeStudioPrompt(prompt: string) { return prompt.trim().replace(/\s+/g, " "); } export function buildStudioRequestKey({ toolId, sourceIds, prompt, }: { toolId: StudioToolId; sourceIds: string[]; prompt: string; }) { return JSON.stringify({ toolId, sourceIds: [...sourceIds].sort(), prompt: normalizeStudioPrompt(prompt).toLowerCase(), }); }