import { createClient, paginate, TesseraError } from '@tessera/sdk';
const api = createClient({
baseUrl: 'https://tessera.edstratumlabs.ai',
token: process.env.TESSERA_TOKEN!,
});
try {
const outline = await api.importCourse({
course: { code: 'EPI 110', title: 'Introduction to Epidemiology', term: 'Spring 2027' },
modules: [{ title: 'Counting cases', lessons: [{ title: 'Rates and ratios', blocks: [] }] }],
}, { idempotencyKey: 'epi-110-spring-2027' });
console.log(outline.course.id);
console.log(await api.listCourses());
// listFiles is cursor-paginated. paginate follows nextCursor automatically.
for await (const file of paginate(api.listFiles, { courseId: outline.course.id, limit: 20 })) {
console.log(file.name);
}
} catch (error) {
if (error instanceof TesseraError) {
console.error(error.code, error.status, error.requestId, error.details);
}
}