lens-content-processor 0.50.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/bundler/article.d.ts +5 -0
  2. package/dist/bundler/article.js +23 -1
  3. package/dist/bundler/article.js.map +1 -1
  4. package/dist/cli.js +19 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/content-schema.js +21 -6
  7. package/dist/content-schema.js.map +1 -1
  8. package/dist/course-graph.d.ts +2 -0
  9. package/dist/course-graph.js +190 -0
  10. package/dist/course-graph.js.map +1 -0
  11. package/dist/flattener/index.js +18 -4
  12. package/dist/flattener/index.js.map +1 -1
  13. package/dist/glossary.d.ts +38 -0
  14. package/dist/glossary.js +365 -0
  15. package/dist/glossary.js.map +1 -0
  16. package/dist/index.d.ts +21 -2
  17. package/dist/index.js +64 -94
  18. package/dist/index.js.map +1 -1
  19. package/dist/markdown-parse.d.ts +5 -0
  20. package/dist/markdown-parse.js +33 -0
  21. package/dist/markdown-parse.js.map +1 -0
  22. package/dist/parser/course.js +54 -3
  23. package/dist/parser/course.js.map +1 -1
  24. package/dist/parser/lens.d.ts +3 -1
  25. package/dist/parser/lens.js +4 -1
  26. package/dist/parser/lens.js.map +1 -1
  27. package/dist/parser/meeting-doc.d.ts +14 -0
  28. package/dist/parser/meeting-doc.js +230 -0
  29. package/dist/parser/meeting-doc.js.map +1 -0
  30. package/dist/parser/response-segments.d.ts +2 -2
  31. package/dist/parser/response-segments.js +39 -4
  32. package/dist/parser/response-segments.js.map +1 -1
  33. package/dist/parser/survey.js +9 -0
  34. package/dist/parser/survey.js.map +1 -1
  35. package/dist/reference-graph.d.ts +3 -0
  36. package/dist/reference-graph.js +11 -7
  37. package/dist/reference-graph.js.map +1 -1
  38. package/dist/same-page-links.js +3 -18
  39. package/dist/same-page-links.js.map +1 -1
  40. package/dist/validator/article-structure.js +1 -1
  41. package/dist/validator/article-structure.js.map +1 -1
  42. package/dist/validator/emphasis.js +1 -1
  43. package/dist/validator/emphasis.js.map +1 -1
  44. package/dist/validator/same-lens-links.js +3 -15
  45. package/dist/validator/same-lens-links.js.map +1 -1
  46. package/dist/validator/test-segments.js +1 -1
  47. package/package.json +1 -1
  48. package/dist/validator/markdown-parse.d.ts +0 -3
  49. package/dist/validator/markdown-parse.js +0 -22
  50. package/dist/validator/markdown-parse.js.map +0 -1
@@ -5,6 +5,9 @@ export interface ArticleExcerptResult {
5
5
  startIndex?: number;
6
6
  endIndex?: number;
7
7
  error?: ContentError;
8
+ /** Set when to:: lands on a heading line: the excerpt then ends with that
9
+ * heading and nothing under it (four such slices shipped in 2026-08). */
10
+ warning?: ContentError;
8
11
  }
9
12
  export interface ExcerptInput {
10
13
  from?: string;
@@ -61,6 +64,8 @@ export interface ResolvedExcerpt {
61
64
  */
62
65
  parts?: ArticlePart[];
63
66
  error?: ContentError;
67
+ /** Non-fatal problem with this excerpt (see ArticleExcerptResult.warning). */
68
+ warning?: ContentError;
64
69
  }
65
70
  /**
66
71
  * Strip frontmatter from article content.
@@ -140,8 +140,28 @@ export function parseArticleBody(article, file = "") {
140
140
  export function extractArticleExcerpt(article, fromAnchor, toAnchor, file) {
141
141
  return extractExcerptFromBody(parseArticleBody(article, file).body, fromAnchor, toAnchor, file);
142
142
  }
143
- /** Core anchor-search extraction over an already-cleaned body. */
143
+ /** Anchor extraction plus the to::-on-heading warning. */
144
144
  function extractExcerptFromBody(body, fromAnchor, toAnchor, file) {
145
+ const result = extractAnchored(body, fromAnchor, toAnchor, file);
146
+ if (!toAnchor || result.error || result.endIndex === undefined)
147
+ return result;
148
+ const anchorStart = result.endIndex - toAnchor.length;
149
+ const lineStart = body.lastIndexOf("\n", anchorStart - 1) + 1;
150
+ if (!body.slice(lineStart, result.endIndex).trimStart().startsWith("#"))
151
+ return result;
152
+ return {
153
+ ...result,
154
+ warning: {
155
+ file,
156
+ code: "excerpt.to-anchor-on-heading",
157
+ message: `End anchor '${toAnchor}' is on a heading, so the excerpt ends with that heading and nothing under it`,
158
+ suggestion: "Anchor to:: on the last line of prose before the heading",
159
+ severity: "warning",
160
+ },
161
+ };
162
+ }
163
+ /** Core anchor-search extraction over an already-cleaned body. */
164
+ function extractAnchored(body, fromAnchor, toAnchor, file) {
145
165
  // If no anchors, return entire article (strip frontmatter)
146
166
  if (!fromAnchor && !toAnchor) {
147
167
  return {
@@ -307,6 +327,8 @@ export function resolveArticleSource(article, excerpts, file) {
307
327
  const start = excerpt.startIndex;
308
328
  const end = excerpt.endIndex;
309
329
  const result = { content: excerpt.content };
330
+ if (excerpt.warning)
331
+ result.warning = excerpt.warning;
310
332
  if (hasAnchors) {
311
333
  // collapsed_before: from the body start (first excerpt) or the previous
312
334
  // excerpt's end. A previous excerpt that failed to extract yields none —
@@ -1 +1 @@
1
- {"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/bundler/article.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/bundler/article.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import { validateUrls, materializeUrlIssue, } from "./validator/url-reachability
6
6
  import { UrlCache } from "./validator/url-cache.js";
7
7
  import { buildFileToCourses } from "./reference-graph.js";
8
8
  import { dedupeErrors } from "./dedupe-errors.js";
9
+ import { courseGraphIssues } from "./course-graph.js";
9
10
  import { writeFile } from "fs/promises";
10
11
  export function parseArgs(argv) {
11
12
  const args = argv.slice(2);
@@ -90,6 +91,24 @@ export async function run(options) {
90
91
  catch (error) {
91
92
  console.error("buildFileToCourses failed; serving validation without the course filter:", error instanceof Error ? error.message : error);
92
93
  }
94
+ // Ordered per-course checks (course-graph.ts). Warnings only, and degradable
95
+ // for the same reason as the map above.
96
+ try {
97
+ result.errors = dedupeErrors([
98
+ ...result.errors,
99
+ ...courseGraphIssues(files),
100
+ ]);
101
+ }
102
+ catch (error) {
103
+ console.error("courseGraphIssues failed; serving validation without course-graph checks:", error instanceof Error ? error.message : error);
104
+ // Say so in the output too: silence would read as "no course-graph problems".
105
+ result.errors.push({
106
+ file: "(course graph)",
107
+ code: "course-graph.failed",
108
+ severity: "warning",
109
+ message: `Course-graph checks did not run: ${error instanceof Error ? error.message : String(error)}`,
110
+ });
111
+ }
93
112
  return { ...result, fileToCourses };
94
113
  }
95
114
  async function main() {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,cAAc,EACd,eAAe,GAIhB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAuBxC,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAkB,IAAI,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,UAAU,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YACjC,CAAC,EAAE,CAAC,CAAC,gBAAgB;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YACrC,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAC/B,CAAC,EAAE,CAAC,CAAC,gBAAgB;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;YACtC,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;YAC3C,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YACrC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,UAAU;QACV,KAAK;QACL,SAAS;QACT,aAAa;QACb,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAmB;IAC3C,IAAI,KAA0B,CAAC;IAE/B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,mDAAmD;QACnD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA2B,CAAC;QAC3D,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ;QAC5B,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE5C,wEAAwE;IACxE,yEAAyE;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,aAAa,GAA6B,EAAE,CAAC;IACjD,IAAI,CAAC;QACH,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,0EAA0E,EAC1E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,EAAE,CAAoB,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,MAAM,GAGN,MAAM,CAAC;QAEX,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,sEAAsE;YACtE,oEAAoE;YACpE,gEAAgE;YAChE,gEAAgE;YAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAmB,EAAE,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,KAAK;oBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;YACD,yEAAyE;YACzE,sEAAsE;YACtE,gCAAgC;YAChC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CACvE,MAAM,CAAC,MAAM,CAAC,MAAM,CACrB,CAAC;YACF,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,SAAS;gBACT,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC;aACvD,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjE,MAAM,WAAW,GAAG,MAAM,YAAY,CACpC,MAAM,CAAC,cAAc,EACrB,QAAQ,CAAC,IAAI,EAAE,CAChB,CAAC;YACF,mEAAmE;YACnE,mEAAmE;YACnE,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,+EAA+E;AAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,MAAM,YAAY,GAChB,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC7B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC7B,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAChD,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ export const CONTENT_SCHEMAS = {
32
32
  "outcomes",
33
33
  "time-commitment",
34
34
  "application-notes",
35
+ // The course's language, a name like Spanish (absent = English).
36
+ "language",
35
37
  ]),
36
38
  lens: contentSchema(["id"], [
37
39
  "title",
@@ -42,6 +44,7 @@ export const CONTENT_SCHEMAS = {
42
44
  "duration_minutes",
43
45
  "reading_minutes",
44
46
  "tutor_minutes",
47
+ "glossary_terms",
45
48
  ]),
46
49
  "learning-outcome": contentSchema(["id"], ["discussion", "learning-outcome", "tags", "domain", "stage", "requires"]),
47
50
  article: contentSchema(["title", "author", "source_url", "published"], [
@@ -63,6 +66,13 @@ export const CONTENT_SCHEMAS = {
63
66
  // Post-meeting survey definitions (surveys/ folder), attached to a course's
64
67
  // `# Meeting:` markers via `survey:: [[../surveys/name]]`.
65
68
  survey: contentSchema(["id"], ["title", "tags"]),
69
+ // Meeting docs (meetings/ folder, see src/parser/meeting-doc.ts): the
70
+ // Markdown a meeting's session document is rendered from, attached with
71
+ // `meeting-doc:: [[../meetings/<course>/Meeting N]]`.
72
+ "meeting-doc": contentSchema([], ["title", "tags"]),
73
+ // Glossary entries (glossary/ folder, see src/glossary.ts): the file name
74
+ // is the term, the body its definition.
75
+ glossary: contentSchema([], ["aliases", "tags"]),
66
76
  // Interactive HTML widgets (widgets/ folder): frontmatter + an HTML body
67
77
  // that learners get inside a sandboxed iframe (see parser/widget.ts).
68
78
  widget: contentSchema(["id"], ["title", "summary_for_tutor", "height", "tags"]),
@@ -78,26 +88,31 @@ export const SURVEY_SEGMENT_SCHEMAS = {
78
88
  text: segmentSchema(["content"], [], []),
79
89
  // short:: true renders a single-line input (names, emails, URLs) instead
80
90
  // of a textarea.
81
- question: segmentSchema(["content", "key"], ["required", "max-chars", "placeholder", "short"], ["required", "short"]),
91
+ question: segmentSchema(["content", "key"], ["required", "max-chars", "placeholder", "short", "description"], ["required", "short"]),
82
92
  // labels:: is a list with one line per scale step (1..scale), for scales
83
93
  // where every number needs its own description.
84
- rating: segmentSchema(["content", "key"], ["scale", "low-label", "high-label", "labels", "required"], ["required"]),
94
+ rating: segmentSchema(["content", "key"], ["scale", "low-label", "high-label", "labels", "required", "description"], ["required"]),
85
95
  // max-select:: caps how many options a multi:: true choice accepts.
86
- choice: segmentSchema(["content", "key", "options"], ["multi", "max-select", "required"], ["multi", "required"]),
96
+ choice: segmentSchema(["content", "key", "options"], ["multi", "max-select", "required", "description"], ["multi", "required"]),
87
97
  // Same fields as the lens interview: a spoken oral exam, scored against
88
98
  // its rubric (docs/voice-conversations.md). The only assessed survey
89
99
  // segment.
90
100
  interview: segmentSchema(["id", "content", "questions", "assessment-instructions"], ["optional"], ["optional"]),
91
101
  };
92
102
  const RESPONSE_REQUIRED = ["id", "content"];
93
- // force-feedback:: true sends the tutor feedback automatically on submit;
94
- // by default the learner asks for it with the "Get feedback" button.
103
+ // force-feedback:: true sends the tutor feedback automatically on every
104
+ // submit, `first` only on the learner's first submit of the question; by
105
+ // default the learner asks for it with the "Get feedback" button. Not a
106
+ // boolean field: the parser (parseForceFeedback) validates its values.
107
+ // description:: is a short help line shown under the prompt in smaller,
108
+ // lighter text. Surveys only: a lens warns and drops it.
95
109
  const RESPONSE_OPTIONAL = [
96
110
  "optional",
97
111
  "feedback-instructions",
98
112
  "force-feedback",
113
+ "description",
99
114
  ];
100
- const RESPONSE_BOOLEAN = ["optional", "force-feedback"];
115
+ const RESPONSE_BOOLEAN = ["optional"];
101
116
  const QUESTION_OPEN_SCHEMA = segmentSchema(RESPONSE_REQUIRED, [
102
117
  ...RESPONSE_OPTIONAL,
103
118
  "assessment-instructions",
@@ -1 +1 @@
1
- {"version":3,"file":"content-schema.js","sourceRoot":"","sources":["../src/content-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-schema.js","sourceRoot":"","sources":["../src/content-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ContentError } from "./index.js";
2
+ export declare function courseGraphIssues(files: Map<string, string>): ContentError[];
@@ -0,0 +1,190 @@
1
+ // src/course-graph.ts
2
+ //
3
+ // Ordered per-course checks that no single file can see. A course is a walk:
4
+ // course -> module -> learning outcome -> lens -> card, in document order.
5
+ //
6
+ // course-graph.names-unreached-lens text names another lens by its title, and
7
+ // the course never includes that lens, so a student cannot have read it.
8
+ // Found live 2026-09-24: AI Futures "What a Curve Licenses" told its grader
9
+ // the student had read "When Progress Jumps", which a rebuild had moved out
10
+ // of the course.
11
+ // course-graph.names-later-lens a tutor-facing field (grader or tutor
12
+ // instructions) names a lens the course includes only later, so it assumes
13
+ // a reading the student has not reached yet. Prose previews are not flagged.
14
+ //
15
+ // Warnings, not errors: matching titles in prose is a heuristic (titles under
16
+ // three words are skipped as too generic; a lens title inside an article title
17
+ // is taken to name the article). Runs in cli.ts, not processContent, because it
18
+ // needs every file at once (no per-file cache) and should fail softly.
19
+ // Link syntax and resolution are shared with reference-graph.ts.
20
+ import { WIKILINK_RE, resolveReference as resolve } from "./reference-graph.js";
21
+ import { parseFrontmatter } from "./parser/frontmatter.js";
22
+ import { stripAuthoringMarkup, stripAuthoringMarkupForValidation, } from "./authoring-markup.js";
23
+ import { buildTagMap, buildTierMap } from "./validator/tier.js";
24
+ const FRONTMATTER_RE = /^---\n[\s\S]*?\n---\n/;
25
+ function frontmatterTitle(path, content) {
26
+ const { frontmatter } = parseFrontmatter(stripAuthoringMarkup(content), path);
27
+ const t = frontmatter.title;
28
+ if (typeof t === "string" && t.trim())
29
+ return t.trim();
30
+ return path
31
+ .replace(/^.*\//, "")
32
+ .replace(/\.md$/, "")
33
+ .replace(/^[A-Z0-9]+ - /, "");
34
+ }
35
+ /** What a student-facing walk reads in a file: no frontmatter, comments, inline code,
36
+ * or Learning Outcome "Suggested Lenses" (not served; prod W1 API, 2026-09-24). */
37
+ function readable(path, content) {
38
+ // the Validation variant keeps every newline, so line numbers stay true
39
+ let t = stripAuthoringMarkupForValidation(content).replace(FRONTMATTER_RE, (m) => m.replace(/[^\n]/g, ""));
40
+ t = t.replace(/`[^`\n]*`/g, "");
41
+ if (path.startsWith("Learning Outcomes/"))
42
+ t = t.split(/^# Suggested Lenses/m)[0];
43
+ return t;
44
+ }
45
+ // Only these links put a file in front of the student. A wikilink inside
46
+ // grader text or prose does not, so it must not count as "reached".
47
+ const STRUCTURAL = /^(source::|#+ )|::card\[\[/;
48
+ /** Files a course reaches, in first-visit (preorder, document-order) sequence. */
49
+ function walk(course, files, text) {
50
+ const order = new Map();
51
+ const visit = (path) => {
52
+ order.set(path, order.size);
53
+ for (const line of text(path).split("\n")) {
54
+ if (!STRUCTURAL.test(line))
55
+ continue;
56
+ for (const m of line.matchAll(WIKILINK_RE)) {
57
+ const next = resolve(m[1], path, files);
58
+ if (next && !order.has(next))
59
+ visit(next);
60
+ }
61
+ }
62
+ };
63
+ visit(course);
64
+ return order;
65
+ }
66
+ /** Lens title -> lens paths (titles repeat across course versions), for titles
67
+ * specific enough to match in prose. */
68
+ function lensTitles(files) {
69
+ const articles = [];
70
+ for (const [p, c] of files)
71
+ if (p.startsWith("articles/"))
72
+ articles.push(frontmatterTitle(p, c).toLowerCase());
73
+ const titles = new Map();
74
+ for (const [p, c] of files) {
75
+ if (!p.startsWith("Lenses/") || !p.endsWith(".md"))
76
+ continue;
77
+ const t = frontmatterTitle(p, c);
78
+ if (t.split(/\s+/).length < 3)
79
+ continue;
80
+ if (articles.some((a) => a.includes(t.toLowerCase())))
81
+ continue;
82
+ titles.set(t, [...(titles.get(t) ?? []), p]);
83
+ }
84
+ return titles;
85
+ }
86
+ function escape(s) {
87
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
88
+ }
89
+ // Fields whose text the tutor or grader reads as a statement of what the student has done.
90
+ const TUTOR_FIELD = /^(assessment-instructions|feedback-instructions|instructions|ai-instructions|summary_for_tutor)::/;
91
+ export function courseGraphIssues(files) {
92
+ const titles = lensTitles(files);
93
+ if (!titles.size)
94
+ return [];
95
+ const byTitle = [...titles.keys()]
96
+ .sort((a, b) => b.length - a.length)
97
+ .map(escape)
98
+ .join("|");
99
+ const pattern = new RegExp(`(?<![\\w])(?:${byTitle})(?![\\w])`, "g");
100
+ const tier = buildTierMap(buildTagMap(files));
101
+ const memo = new Map();
102
+ const text = (p) => {
103
+ if (!memo.has(p))
104
+ memo.set(p, readable(p, files.get(p) ?? ""));
105
+ return memo.get(p);
106
+ };
107
+ const mentionMemo = new Map();
108
+ const mentions = (file) => {
109
+ if (mentionMemo.has(file))
110
+ return mentionMemo.get(file);
111
+ const out = [];
112
+ let tutorFacing = false;
113
+ text(file)
114
+ .split("\n")
115
+ .forEach((line, i) => {
116
+ if (/^\s*#/.test(line)) {
117
+ tutorFacing = false;
118
+ return;
119
+ }
120
+ if (/^[a-z_-]+::/.test(line))
121
+ tutorFacing = TUTOR_FIELD.test(line);
122
+ if (line.startsWith("source::"))
123
+ return;
124
+ for (const m of line.matchAll(pattern))
125
+ out.push({ line: i + 1, title: m[0], tutorFacing });
126
+ });
127
+ mentionMemo.set(file, out);
128
+ return out;
129
+ };
130
+ const found = new Map();
131
+ for (const [coursePath, content] of files) {
132
+ if (!coursePath.startsWith("courses/"))
133
+ continue;
134
+ const slug = parseFrontmatter(stripAuthoringMarkup(content), coursePath)
135
+ .frontmatter.slug;
136
+ if (typeof slug !== "string" || !slug.trim())
137
+ continue;
138
+ const order = walk(coursePath, files, text);
139
+ for (const [file, idx] of order) {
140
+ if (!file.endsWith(".md") || file.startsWith("articles/"))
141
+ continue;
142
+ for (const { line, title, tutorFacing } of mentions(file)) {
143
+ const copies = titles.get(title);
144
+ if (copies.includes(file))
145
+ continue;
146
+ const reached = copies
147
+ .map((c) => order.get(c))
148
+ .filter((x) => x !== undefined);
149
+ const at = reached.length ? Math.min(...reached) : undefined;
150
+ if (at !== undefined && (at < idx || !tutorFacing))
151
+ continue;
152
+ const kind = at === undefined ? "never" : "later";
153
+ const key = `${file}|${title}|${kind}`;
154
+ const rec = found.get(key) ?? {
155
+ kind,
156
+ line,
157
+ title,
158
+ file,
159
+ courses: new Set(),
160
+ };
161
+ rec.courses.add(slug.trim());
162
+ found.set(key, rec);
163
+ }
164
+ }
165
+ }
166
+ return [...found.values()]
167
+ .map((r) => {
168
+ const lens = titles.get(r.title).join(" or ");
169
+ const courses = `course${r.courses.size > 1 ? "s" : ""} ${[...r.courses].sort().join(", ")}`;
170
+ return {
171
+ file: r.file,
172
+ line: r.line,
173
+ severity: "warning",
174
+ category: tier.get(r.file) === "wip" ? "wip" : "production",
175
+ ...(r.kind === "never"
176
+ ? {
177
+ code: "course-graph.names-unreached-lens",
178
+ message: `Mentions "${r.title}" (${lens}), a lens that ${courses} never include, so a student may not have read it`,
179
+ suggestion: "Add that lens to the course, or rewrite this text so it does not assume the student read it",
180
+ }
181
+ : {
182
+ code: "course-graph.names-later-lens",
183
+ message: `Tutor-facing text mentions "${r.title}" (${lens}), which ${courses} only include later, so the student has not read it yet at this point`,
184
+ suggestion: "Rewrite so the tutor does not assume that reading, or move the lens earlier",
185
+ }),
186
+ };
187
+ })
188
+ .sort((a, b) => (a.file + a.line).localeCompare(b.file + b.line));
189
+ }
190
+ //# sourceMappingURL=course-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course-graph.js","sourceRoot":"","sources":["../src/course-graph.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,8 @@ function lensSectionFields(lens, segments, file, line, errors) {
96
96
  readingMinutes: lens.readingMinutes,
97
97
  tutorMinutes: lens.tutorMinutes,
98
98
  addToAiContext: lens.addToAiContext,
99
+ // Resolved by processContent once every pass that rewrites text has run.
100
+ glossaryTerms: lens.glossaryTerms,
99
101
  displayType: computeDisplayType(segments),
100
102
  }),
101
103
  ...stats,
@@ -610,9 +612,14 @@ function buildTestSection(testRef, outcome, loPath, files, visitedPaths, tierMap
610
612
  return null;
611
613
  const hasFeedback = testSegments.some((s) => s.type === "question" && s.feedback);
612
614
  // Grouped feedback is the legacy questions' feedback; force-feedback:: on
613
- // any of them sends it on completion instead of on "Get feedback".
614
- const forceFeedback = hasFeedback &&
615
- testSegments.some((s) => s.type === "question" && s.forceFeedback);
615
+ // any of them sends it on completion instead of on "Get feedback". The
616
+ // strongest value wins: true (every completion) over first.
617
+ const forced = testSegments.flatMap((s) => s.type === "question" && s.forceFeedback ? [s.forceFeedback] : []);
618
+ const forceFeedback = !hasFeedback
619
+ ? undefined
620
+ : forced.includes(true)
621
+ ? true
622
+ : forced[0];
616
623
  return {
617
624
  type: "test",
618
625
  // Always the outcome's name: the sidebar shows it, and the title is the
@@ -622,7 +629,7 @@ function buildTestSection(testRef, outcome, loPath, files, visitedPaths, tierMap
622
629
  sourcePath: loPath,
623
630
  optional: false,
624
631
  ...(hasFeedback && { feedback: true }),
625
- ...(forceFeedback && { forceFeedback: true }),
632
+ ...(forceFeedback && { forceFeedback }),
626
633
  contentId: testRef.id,
627
634
  learningOutcomes: [outcome],
628
635
  };
@@ -1189,6 +1196,13 @@ function planLensArticles(parsedSegments, lensPath, files, visitedPaths, tierMap
1189
1196
  });
1190
1197
  continue;
1191
1198
  }
1199
+ if (excerpt.warning) {
1200
+ entry.errors.push({
1201
+ ...excerpt.warning,
1202
+ file: lensPath,
1203
+ line: getSourceLine(parsedSegment),
1204
+ });
1205
+ }
1192
1206
  const makeArticleSegment = (content) => {
1193
1207
  const segment = {
1194
1208
  type: "article",