catches
catches: {
at: string;
catchId: string;
conceptId: string;
note: string;
sessionId: string;
type: "catch.recorded";
}[]
concepts
concepts: (
| {
at: string;
conceptId: string;
courseId: string;
materialId: string;
name: string;
quotes: { passageId: string; text: string }[];
sectionId: string;
type: "concept.proposed";
}
| { at: string; conceptId: string; type: "concept.confirmed" }
| { at: string; conceptId: string; name: string; type: "concept.renamed" }
| { at: string; conceptId: string; type: "concept.dropped" }
| {
at: string;
conceptId: string;
intoConceptId: string;
type: "concept.merged";
}
)[]
corrections
corrections: (
| {
at: string;
correction: string;
correctionId: string;
note: string;
passageId: string;
quote: string;
sessionId?: string;
type: "correction.added";
}
| {
at: string;
clarificationId: string;
passageId: string;
question: string;
quote: string;
type: "clarification.asked";
}
| {
answer: string;
at: string;
clarificationId: string;
type: "clarification.answered";
}
)[]
courses
courses: (
| { at: string; courseId: string; name: string; type: "course.created" }
| {
at: string;
courseId: string;
examDate: string | null;
type: "course.examDateSet";
}
)[]
links
links: (
| {
at: string;
conceptId: string;
courseId: string;
linkId: string;
needsConceptId: string;
type: "link.proposed";
}
| { at: string; linkId: string; type: "link.confirmed" }
| { at: string; linkId: string; type: "link.dropped" }
)[]
materials
materials: (
| {
at: string;
bytes: number;
courseId: string;
fileName: string;
format: "pdf"
| "pptx"
| "docx"
| "xlsx"
| "csv"
| "md"
| "txt";
materialId: string;
sha256: string;
storedName: string;
type: "material.added";
}
| {
at: string;
materialId: string;
runId: string;
type: "material.started";
}
| {
at: string;
materialId: string;
passageCount: number;
sections: {
heading?: boolean;
level: number;
ordinal: number;
sectionId: string;
title: string;
}[];
type: "material.extracted";
}
| {
at: string;
materialId: string;
passageCount: number;
type: "material.indexed";
}
| {
at: string;
dropped: number;
materialId: string;
proposed: number;
type: "material.conceptsProposed";
}
| { at: string; materialId: string; type: "material.reviewed" }
| {
at: string;
dropped: number;
materialId: string;
proposed: number;
type: "material.linksProposed";
}
| {
at: string;
error: string;
materialId: string;
type: "material.failed";
}
)[]
sessions
sessions: (
| {
at: string;
conceptId: string;
explanation: string;
sessionId: string;
type: "session.started";
}
| { at: string; runId: string; sessionId: string; type: "session.running" }
| {
at: string;
dropped: number;
notInMaterial: boolean;
questions: {
kind: "contradiction" | "gap" | "unclear";
questionId: string;
quote?: { passageId: string; text: string };
term?: string;
text: string;
}[];
round: number;
sessionId: string;
type: "session.questions";
}
| {
answers: {
correction?: string;
questionId: string;
text: string;
verdict?: "material-right"
| "material-wrong"
| "misread";
}[];
at: string;
finish: boolean;
round: number;
sessionId: string;
type: "session.answered";
}
| {
at: string;
dropped: number;
misses: { missId: string; quote: { passageId: string; text: string } }[];
sessionId: string;
type: "session.missesProposed";
}
| {
at: string;
clean: boolean;
confirmedMissIds: string[];
rejectedMissIds: string[];
sessionId: string;
type: "session.ended";
}
| { at: string; error: string; sessionId: string; type: "session.failed" }
)[]
All log files except passages, which are loaded separately because they are large.