// lrs-config.js — this textbook's identity in every xAPI statement it emits. // // ONE PER TEXTBOOK. The runtime (lrs-xapi.js, lrs-lite-sim.js, lrs-sim.js) is identical in // every book; only this file differs. Generated by the add-xapi-events-to-microsim skill // (scripts/install-runtime.py) from mkdocs.yml on 2026-10-15. Load it BEFORE lrs-xapi.js, in // each sim's main.html (and in mkdocs.yml `extra_javascript` if site pages emit, e.g. quizzes). window.LRS_CONFIG = { // mkdocs.yml `site_url`, with the trailing slash. Every activity IRI starts with it // (contract §1), so a wrong value here mislabels every statement the book emits. siteUrl: 'https://dmccreary.github.io/ai-for-ee-research/', // The textbook version in grouping[0] (contract §4): {siteUrl}textbook/{textbookId}/{version} // OPEN DECISION (2026-09-26): the learning-record-store book uses a short id ('lrs') while // the LRS seeder uses 'tb-{repo-slug}'. Confirm the form before this book's statements // are stored anywhere durable. textbookId: 'ai-for-ee-research', version: 'v0.1', // Learning-graph ConceptIDs are 1..N per book, so they collide across books. The seeder // namespaces them as {repo-slug}-{ConceptID}; LRS.conceptId(42) -> 'ai-for-ee-research-42'. conceptPrefix: 'ai-for-ee-research', // The xAPI policy for EVERY MicroSim in this book. A sim's metadata.json `xapi` block // overrides any of these keys for that one sim. // compact true -> LRS-Lite: one summary statement per session // false -> the full per-interaction stream (full LRS) // teaching true -> show the statement log, Full/Compact switch, Simulate Done, and // View Formatted JSON. Only for sims that TEACH xAPI; production sims stay silent. xapi: { compact: true, teaching: false }, // Chapter quizzes (quiz-xapi.js), which have no metadata.json. Answers pass through in // both modes, so only `teaching` matters here. quizzes: { teaching: false } };