export interface TaskMeta { topic: string; difficulty: "easy" | "medium" | "hard"; tier: "beginner" | "intermediate" | "advanced"; } // Mirrors explainer_env/task_bank.py. The env's /reset chooses a random topic // unless a selected row sends a topic hint. export const TASKS: TaskMeta[] = [ { topic: "Linear Regression", difficulty: "easy", tier: "beginner" }, { topic: "Gradient Descent", difficulty: "easy", tier: "beginner" }, { topic: "Decision Trees", difficulty: "easy", tier: "beginner" }, { topic: "K-Means Clustering", difficulty: "easy", tier: "intermediate" }, { topic: "Backpropagation", difficulty: "medium", tier: "intermediate" }, { topic: "Convolutional Neural Networks", difficulty: "medium", tier: "intermediate", }, { topic: "Attention Mechanism", difficulty: "medium", tier: "intermediate" }, { topic: "Batch Normalization", difficulty: "hard", tier: "advanced" }, { topic: "Variational Autoencoders", difficulty: "hard", tier: "advanced" }, { topic: "Reinforcement Learning Basics", difficulty: "easy", tier: "beginner", }, { topic: "Fourier Transform", difficulty: "medium", tier: "intermediate" }, { topic: "Eigenvalues and Eigenvectors", difficulty: "medium", tier: "intermediate", }, { topic: "Taylor Series", difficulty: "easy", tier: "beginner" }, { topic: "Bayes' Theorem", difficulty: "easy", tier: "beginner" }, { topic: "Gradient and Directional Derivatives", difficulty: "medium", tier: "intermediate", }, { topic: "Matrix Multiplication as Linear Transformation", difficulty: "easy", tier: "beginner", }, { topic: "Central Limit Theorem", difficulty: "medium", tier: "intermediate" }, { topic: "Singular Value Decomposition", difficulty: "hard", tier: "advanced", }, { topic: "Merge Sort", difficulty: "easy", tier: "beginner" }, { topic: "Binary Search", difficulty: "easy", tier: "beginner" }, { topic: "Dijkstra's Algorithm", difficulty: "medium", tier: "intermediate" }, { topic: "A* Search Algorithm", difficulty: "medium", tier: "intermediate" }, { topic: "Quick Sort", difficulty: "easy", tier: "beginner" }, { topic: "Exploratory Data Analysis", difficulty: "easy", tier: "beginner", }, { topic: "Hypothesis Testing", difficulty: "medium", tier: "intermediate" }, { topic: "Principal Component Analysis", difficulty: "medium", tier: "intermediate", }, ]; export const RANDOM_TASK = "(random)"; export function taskLabel(t: TaskMeta): string { return `${t.topic} [${t.difficulty}, ${t.tier}]`; } export function taskTopic(label: string): string | undefined { return TASKS.find((task) => taskLabel(task) === label)?.topic; }