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.qmdfenced-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
Runnertrait 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/buildconsume.
Structs§
- NotYet
Implemented - Error for a command that is planned but not yet implemented in the current slice.