import path from "path"; import { mkdir } from "fs/promises"; import { WORKSPACE_FILES, workspacePath } from "../../workspace/paths.js"; import { resolvePath } from "./workspace-io.js"; import { loadJsonFile, writeJsonAtomic } from "./json.js"; const root = (workspaceRoot?: string) => workspaceRoot ?? workspacePath; export function loadUserTasks(workspaceRoot?: string): T[] { const tasks = loadJsonFile(resolvePath(root(workspaceRoot), WORKSPACE_FILES.schedulerUserTasks), []); return Array.isArray(tasks) ? tasks : []; } export async function saveUserTasks(tasks: T[], workspaceRoot?: string): Promise { const filePath = resolvePath(root(workspaceRoot), WORKSPACE_FILES.schedulerUserTasks); await mkdir(path.dirname(filePath), { recursive: true }); await writeJsonAtomic(filePath, tasks); }