Crate blendtutor_core

Crate blendtutor_core 

Source
Expand description

§blendtutor-core

Domain logic and adapters for blendtutor: the lesson model, language runners (R and Python), grading, and LLM providers — built up slice by slice.

This is the reusable core a future Tauri GUI can call directly, with no process boundary. It deliberately does not parse command-line arguments or render terminal output; that is the responsibility of the blendtutor-cli crate, which depends on this one (the dependency only ever points cli → core).

Modules§

course
Course discovery: a course directory’s manifest and the lessons it lists.
crypto
Password-based encryption for built sites: AES-256-GCM + PBKDF2.
eval
The eval-case model: a typed model and its parse boundary.
grade
The lesson↔runner grading join: pick a language’s runner and turn each lesson check code-string into a typed pass/fail outcome.
lesson
The lesson schema: a typed model and its validating parse boundary.
llm
The LLM feedback layer: a pure prompt builder and the rig-core provider client that turns a model’s structured tool call into a typed verdict.
quarto_export
Pure transforms: Lesson → Quarto .qmd fenced-div snippet or complete page, plus the static API key page (ADR-0019).
run
The student run loop: execute a submission, grade it, ask the LLM for a verdict, and bundle the result into a typed RunReport.
runner
The language-runner seam: a Runner trait and the normalized result of running learner code.
scaffold
Course scaffolding: the templates a new course starts from and the plan that writes them.
site
Static-site assembly: turn a course into a browser-deployable lesson site.
smevals_gen
smevals eval-dir generation: a pure translator from a lesson + eval suite to the file tree smevals run/build consume.

Structs§

NotYetImplemented
Error for a command that is planned but not yet implemented in the current slice.