lens-content-processor 0.74.0 → 0.76.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.
@@ -4,9 +4,19 @@ export interface TranscriptSentence {
4
4
  start: number;
5
5
  end: number;
6
6
  }
7
+ /** A part of the excerpt the player jumps over (`skip::`), in seconds,
8
+ * with the author's optional reason, which the skip overlay shows. */
9
+ export interface VideoSkip {
10
+ from: number;
11
+ to: number;
12
+ reason?: string;
13
+ }
14
+ /** Longest skip:: reason: it must fit the overlay in two lines on a phone. */
15
+ export declare const MAX_SKIP_REASON_LENGTH = 100;
7
16
  export interface VideoExcerptResult {
8
17
  from?: number;
9
18
  to?: number | null;
19
+ skip?: VideoSkip[];
10
20
  transcript?: TranscriptSentence[];
11
21
  error?: ContentError;
12
22
  }
@@ -29,6 +39,19 @@ export interface TimestampEntry {
29
39
  * @returns Number of seconds, or null if invalid format
30
40
  */
31
41
  export declare function parseTimestamp(str: string): number | null;
42
+ /**
43
+ * Parse a `skip::` value: one or more `start-end` ranges, comma-separated,
44
+ * each optionally followed by a reason in double quotes (e.g.
45
+ * `5:13-8:09 "Miles reads example problems", 9:00-9:30`). Commas inside a
46
+ * reason do not split. Returns the ranges sorted by start, or an error
47
+ * message for the first malformed part. Range checks against the excerpt's
48
+ * from/to happen in extractVideoExcerpt, which knows them.
49
+ */
50
+ export declare function parseSkipRanges(value: string): {
51
+ skips: VideoSkip[];
52
+ } | {
53
+ error: string;
54
+ };
32
55
  /**
33
56
  * Extract words from timestamps data that fall within the requested time range,
34
57
  * grouped into sentences by punctuation.
@@ -38,7 +61,7 @@ export declare function parseTimestamp(str: string): number | null;
38
61
  * @param toSeconds - End time in seconds (use Infinity for open-ended)
39
62
  * @returns Sentences with start/end times in seconds
40
63
  */
41
- export declare function extractFromTimestamps(timestamps: TimestampEntry[], fromSeconds: number, toSeconds: number): TranscriptSentence[];
64
+ export declare function extractFromTimestamps(timestamps: TimestampEntry[], fromSeconds: number, toSeconds: number, skips?: VideoSkip[]): TranscriptSentence[];
42
65
  /**
43
66
  * Resolve the effective from/to timestamp strings for a video segment.
44
67
  *
@@ -69,6 +92,10 @@ export declare function resolveVideoRange(segmentFrom: string | undefined, segme
69
92
  * @param toTime - End timestamp string (e.g., "5:45")
70
93
  * @param file - Source file path for error reporting
71
94
  * @param timestamps - Optional word-level timestamps from .timestamps.json
95
+ * @param skips - Ranges inside the excerpt that do not play (skip::); their
96
+ * transcript text is left out
72
97
  * @returns Extracted transcript with from/to as seconds, or error
73
98
  */
74
- export declare function extractVideoExcerpt(transcript: string, fromTime: string, toTime: string | undefined, file: string, timestamps?: TimestampEntry[]): VideoExcerptResult;
99
+ export declare function extractVideoExcerpt(transcript: string, fromTime: string, toTime: string | undefined, file: string, timestamps?: TimestampEntry[], skips?: VideoSkip[]): VideoExcerptResult;
100
+ /** Seconds as M:SS or H:MM:SS, the form authors write (fractions dropped). */
101
+ export declare function formatTimestamp(seconds: number): string;
@@ -1,3 +1,5 @@
1
+ /** Longest skip:: reason: it must fit the overlay in two lines on a phone. */
2
+ export const MAX_SKIP_REASON_LENGTH = 100;
1
3
  /**
2
4
  * Parse a timestamp string into seconds.
3
5
  *
@@ -42,6 +44,84 @@ export function parseTimestamp(str) {
42
44
  return hours * 3600 + minutes * 60 + seconds;
43
45
  }
44
46
  }
47
+ /**
48
+ * Parse a `skip::` value: one or more `start-end` ranges, comma-separated,
49
+ * each optionally followed by a reason in double quotes (e.g.
50
+ * `5:13-8:09 "Miles reads example problems", 9:00-9:30`). Commas inside a
51
+ * reason do not split. Returns the ranges sorted by start, or an error
52
+ * message for the first malformed part. Range checks against the excerpt's
53
+ * from/to happen in extractVideoExcerpt, which knows them.
54
+ */
55
+ export function parseSkipRanges(value) {
56
+ // Obsidian and pasted text may bring curly quotes; they count as straight.
57
+ const text = value.replace(/[\u201C\u201D]/g, '"');
58
+ const parts = [];
59
+ let part = '';
60
+ let quoted = false;
61
+ for (const ch of text) {
62
+ if (ch === '"')
63
+ quoted = !quoted;
64
+ if (ch === ',' && !quoted) {
65
+ parts.push(part);
66
+ part = '';
67
+ }
68
+ else {
69
+ part += ch;
70
+ }
71
+ }
72
+ if (quoted)
73
+ return { error: 'a reason is missing its closing quote (")' };
74
+ parts.push(part);
75
+ const skips = [];
76
+ for (const raw of parts) {
77
+ const match = raw.trim().match(/^([^"]*?)\s*(?:"([^"]*)")?$/);
78
+ if (!match) {
79
+ return { error: `'${raw.trim()}' is not a range like 5:13-8:09, optionally followed by a reason in quotes` };
80
+ }
81
+ const [, range, quotedReason] = match;
82
+ const bounds = range.split(/\s*[-–]\s*/);
83
+ const from = bounds.length === 2 ? parseTimestamp(bounds[0]) : null;
84
+ const to = bounds.length === 2 ? parseTimestamp(bounds[1]) : null;
85
+ if (from === null || to === null) {
86
+ return { error: `'${range}' is not a range like 5:13-8:09` };
87
+ }
88
+ if (from >= to) {
89
+ return { error: `'${range}' ends before it starts` };
90
+ }
91
+ const skip = { from, to };
92
+ if (quotedReason !== undefined) {
93
+ const reason = quotedReason.trim().replace(/\s+/g, ' ');
94
+ if (!reason)
95
+ return { error: `the reason after '${range}' is empty (leave the quotes out for none)` };
96
+ if (reason.length > MAX_SKIP_REASON_LENGTH) {
97
+ return { error: `the reason after '${range}' is ${reason.length} characters long; keep it to ${MAX_SKIP_REASON_LENGTH}` };
98
+ }
99
+ skip.reason = reason;
100
+ }
101
+ skips.push(skip);
102
+ }
103
+ skips.sort((a, b) => a.from - b.from);
104
+ for (let i = 1; i < skips.length; i++) {
105
+ if (skips[i].from <= skips[i - 1].to) {
106
+ return { error: 'two of its ranges overlap or touch (write them as one range)' };
107
+ }
108
+ }
109
+ return { skips };
110
+ }
111
+ /** The parts of [from, to] that play: the excerpt minus its skips. */
112
+ function playedPieces(from, to, skips) {
113
+ const pieces = [];
114
+ let start = from;
115
+ for (const skip of skips) {
116
+ pieces.push({ from: start, to: skip.from });
117
+ start = skip.to;
118
+ }
119
+ pieces.push({ from: start, to });
120
+ return pieces;
121
+ }
122
+ function inSkip(time, skips) {
123
+ return skips.some((s) => time >= s.from && time < s.to);
124
+ }
45
125
  /**
46
126
  * Parse a transcript line to extract its timestamp.
47
127
  * Expected format: "M:SS - text" or "H:MM:SS - text"
@@ -92,12 +172,17 @@ function groupIntoSentences(entries, toSeconds) {
92
172
  * @param toSeconds - End time in seconds (use Infinity for open-ended)
93
173
  * @returns Sentences with start/end times in seconds
94
174
  */
95
- export function extractFromTimestamps(timestamps, fromSeconds, toSeconds) {
96
- const inRange = timestamps.filter(entry => {
97
- const t = parseTimestamp(entry.start);
98
- return t !== null && t >= fromSeconds && t <= toSeconds;
175
+ export function extractFromTimestamps(timestamps, fromSeconds, toSeconds, skips = []) {
176
+ // Each played piece is grouped on its own, so no sentence spans a skip.
177
+ // A word at a skip's start belongs to the skip; one at to:: still plays.
178
+ return playedPieces(fromSeconds, toSeconds, skips).flatMap((piece, i, all) => {
179
+ const last = i === all.length - 1;
180
+ const inRange = timestamps.filter(entry => {
181
+ const t = parseTimestamp(entry.start);
182
+ return t !== null && t >= piece.from && (last ? t <= piece.to : t < piece.to);
183
+ });
184
+ return groupIntoSentences(inRange, piece.to);
99
185
  });
100
- return groupIntoSentences(inRange, toSeconds);
101
186
  }
102
187
  /**
103
188
  * Resolve the effective from/to timestamp strings for a video segment.
@@ -137,9 +222,11 @@ export function resolveVideoRange(segmentFrom, segmentTo, transcriptFrontmatter)
137
222
  * @param toTime - End timestamp string (e.g., "5:45")
138
223
  * @param file - Source file path for error reporting
139
224
  * @param timestamps - Optional word-level timestamps from .timestamps.json
225
+ * @param skips - Ranges inside the excerpt that do not play (skip::); their
226
+ * transcript text is left out
140
227
  * @returns Extracted transcript with from/to as seconds, or error
141
228
  */
142
- export function extractVideoExcerpt(transcript, fromTime, toTime, file, timestamps) {
229
+ export function extractVideoExcerpt(transcript, fromTime, toTime, file, timestamps, skips = []) {
143
230
  // Parse the requested timestamps
144
231
  const fromSeconds = parseTimestamp(fromTime);
145
232
  if (fromSeconds === null) {
@@ -175,13 +262,45 @@ export function extractVideoExcerpt(transcript, fromTime, toTime, file, timestam
175
262
  },
176
263
  };
177
264
  }
265
+ // A skip must lie strictly inside the excerpt: one that touches from:: or
266
+ // to:: is a shorter from::/to::, and one outside it skips nothing.
267
+ for (const skip of skips) {
268
+ if (skip.from <= fromSeconds || (toSeconds !== null && skip.to >= toSeconds)) {
269
+ const range = `${formatTimestamp(skip.from)}-${formatTimestamp(skip.to)}`;
270
+ return {
271
+ error: {
272
+ file,
273
+ message: `skip:: range ${range} is not inside the excerpt ${fromTime}-${toTime ?? 'end'}`,
274
+ suggestion: 'A skip:: range must start after from:: and end before to::. To cut the start or end, change from:: or to:: instead',
275
+ severity: 'error',
276
+ },
277
+ };
278
+ }
279
+ }
280
+ const skipFields = skips.length > 0 ? { skip: skips } : {};
178
281
  // If timestamps data is provided, use word-level extraction
179
282
  if (timestamps && timestamps.length > 0) {
283
+ // Open-ended: the last spoken word stands in for to:: in the bounds check
284
+ if (toSeconds === null && skips.length > 0) {
285
+ const lastWord = Math.max(...timestamps.map((e) => parseTimestamp(e.start) ?? 0));
286
+ const late = skips.find((s) => s.to >= lastWord);
287
+ if (late) {
288
+ return {
289
+ error: {
290
+ file,
291
+ message: `skip:: range ${formatTimestamp(late.from)}-${formatTimestamp(late.to)} is not inside the excerpt ${fromTime}-end (the transcript ends at ${formatTimestamp(lastWord)})`,
292
+ suggestion: 'A skip:: range must end before the video does. To cut the end, set to:: instead',
293
+ severity: 'error',
294
+ },
295
+ };
296
+ }
297
+ }
180
298
  const effectiveTo = toSeconds ?? Infinity;
181
- const extractedText = extractFromTimestamps(timestamps, fromSeconds, effectiveTo);
299
+ const extractedText = extractFromTimestamps(timestamps, fromSeconds, effectiveTo, skips);
182
300
  return {
183
301
  from: fromSeconds,
184
302
  to: toSeconds,
303
+ ...skipFields,
185
304
  transcript: extractedText,
186
305
  };
187
306
  }
@@ -198,6 +317,16 @@ export function extractVideoExcerpt(transcript, fromTime, toTime, file, timestam
198
317
  // Find lines that fall within the requested range
199
318
  // Handle plain prose transcripts (no timestamps at all)
200
319
  if (timestampedLines.length === 0) {
320
+ if (skips.length > 0) {
321
+ return {
322
+ error: {
323
+ file,
324
+ message: 'skip:: needs a transcript with timestamps, to know which text to leave out',
325
+ suggestion: 'Add timestamps to the transcript, or use two Video segments instead of skip::',
326
+ severity: 'error',
327
+ },
328
+ };
329
+ }
201
330
  // If starting from 0:00, include entire transcript as a single sentence
202
331
  if (fromSeconds === 0) {
203
332
  return {
@@ -247,7 +376,23 @@ export function extractVideoExcerpt(transcript, fromTime, toTime, file, timestam
247
376
  },
248
377
  };
249
378
  }
250
- const inRange = timestampedLines.filter(({ timestamp }) => timestamp >= fromSeconds && timestamp < effectiveTo);
379
+ // Line markers cut the text only at whole lines, so like from::/to:: each
380
+ // skip bound must be a marker: else a kept line's text would run into
381
+ // the skip, or a skipped line's text into the kept part.
382
+ const markers = new Set(timestampedLines.map(({ timestamp }) => timestamp));
383
+ for (const bound of skips.flatMap((s) => [s.from, s.to])) {
384
+ if (!markers.has(bound)) {
385
+ return {
386
+ error: {
387
+ file,
388
+ message: `skip:: timestamp '${formatTimestamp(bound)}' not found in transcript`,
389
+ suggestion: 'With a line-marker transcript, each skip:: start and end must be a line marker in the transcript',
390
+ severity: 'error',
391
+ },
392
+ };
393
+ }
394
+ }
395
+ const inRange = timestampedLines.filter(({ timestamp }) => timestamp >= fromSeconds && timestamp < effectiveTo && !inSkip(timestamp, skips));
251
396
  const excerptSentences = inRange.map(({ timestamp, line }) => ({
252
397
  text: line.replace(/^\d+:\d+(?::\d+)?\s*-\s*/, '').trim(),
253
398
  start: timestamp,
@@ -256,7 +401,16 @@ export function extractVideoExcerpt(transcript, fromTime, toTime, file, timestam
256
401
  return {
257
402
  from: fromSeconds,
258
403
  to: toSeconds,
404
+ ...skipFields,
259
405
  transcript: excerptSentences,
260
406
  };
261
407
  }
408
+ /** Seconds as M:SS or H:MM:SS, the form authors write (fractions dropped). */
409
+ export function formatTimestamp(seconds) {
410
+ const total = Math.floor(seconds);
411
+ const h = Math.floor(total / 3600);
412
+ const m = Math.floor((total % 3600) / 60);
413
+ const s = String(total % 60).padStart(2, '0');
414
+ return h > 0 ? `${h}:${String(m).padStart(2, '0')}:${s}` : `${m}:${s}`;
415
+ }
262
416
  //# sourceMappingURL=video.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/bundler/video.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/bundler/video.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,15 @@ export const CONTENT_SCHEMAS = {
49
49
  // (parseSidebarAuthor in parser/lens.ts). Bylines keep their author.
50
50
  "sidebar_author",
51
51
  ]),
52
- "learning-outcome": contentSchema(["id"], ["discussion", "learning-outcome", "tags", "domain", "stage", "requires"]),
52
+ "learning-outcome": contentSchema(["id"], [
53
+ "discussion",
54
+ "learning-outcome",
55
+ "tags",
56
+ "domain",
57
+ "stage",
58
+ "requires",
59
+ "writing_minutes",
60
+ ]),
53
61
  article: contentSchema(["title", "author", "source_url", "published"], [
54
62
  "created",
55
63
  "description",
@@ -155,7 +163,13 @@ export const SEGMENT_SCHEMAS = {
155
163
  // For text the site itself publishes, then; a third party's article keeps
156
164
  // its attribution.
157
165
  article: segmentSchema([], ["source", "from", "to", "optional", "render-as-non-article-text"], ["optional", "render-as-non-article-text"]),
158
- video: segmentSchema([], ["source", "from", "to", "optional"], ["optional"]),
166
+ // skip:: 5:13-8:09 "Miles reads example problems", 12:00-12:30 jumps over
167
+ // those parts of the from::/to:: excerpt: one player, the skipped
168
+ // transcript text left out, the time estimate without them. Each range
169
+ // lies strictly inside from::/to::, ranges may not overlap, and the
170
+ // transcript needs timestamps. A range's optional quoted reason (up to
171
+ // 100 characters) shows in the player's skip overlay and the tutor's view.
172
+ video: segmentSchema([], ["source", "from", "to", "skip", "optional"], ["optional"]),
159
173
  // A bare `#### Question` is an alias of `#### Question: Open`. It keeps
160
174
  // two extras from before subtypes existed: the `feedback::` bool (default
161
175
  // true) and `min-chat-messages::` (accepted but ignored, like on chat).
@@ -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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"}
@@ -45,7 +45,7 @@ function lensPlacementFields(fields, file, line, errors) {
45
45
  /** Average spoken-word rate used to estimate the length of an open-ended
46
46
  * video whose transcript has no timestamps (plain prose). */
47
47
  const SPOKEN_WORDS_PER_MINUTE = 150;
48
- /** Best-effort duration of a video segment in seconds.
48
+ /** Best-effort duration of a video segment in seconds, without skip::.
49
49
  * - Explicit range (to:: present): to - from.
50
50
  * - Open-ended (no to:: = "play to the end"): last transcript timestamp
51
51
  * minus from — without this, a full-length video contributed 0 seconds
@@ -53,8 +53,9 @@ const SPOKEN_WORDS_PER_MINUTE = 150;
53
53
  * - Open-ended with a plain prose transcript (no timestamps at all):
54
54
  * transcript word count at a spoken rate. */
55
55
  function videoSegmentSeconds(seg) {
56
+ const skipped = (seg.skip ?? []).reduce((sum, s) => sum + s.to - s.from, 0);
56
57
  if (seg.to != null)
57
- return Math.max(0, seg.to - seg.from);
58
+ return Math.max(0, seg.to - seg.from - skipped);
58
59
  let lastTimestamp = 0;
59
60
  let transcriptWords = 0;
60
61
  for (const sentence of seg.transcript ?? []) {
@@ -65,7 +66,7 @@ function videoSegmentSeconds(seg) {
65
66
  transcriptWords += countWords(sentence.text);
66
67
  }
67
68
  if (lastTimestamp > seg.from)
68
- return lastTimestamp - seg.from;
69
+ return Math.max(0, lastTimestamp - seg.from - skipped);
69
70
  return Math.round((transcriptWords / SPOKEN_WORDS_PER_MINUTE) * 60);
70
71
  }
71
72
  /** The Section fields every lens read path copies verbatim from the parsed
@@ -628,10 +629,14 @@ export function flattenModule(modulePath, files, visitedPaths = new Set(), tierM
628
629
  errors,
629
630
  };
630
631
  }
632
+ /** Minutes a learning-outcome test takes to write when its outcome sets no
633
+ * `writing_minutes`: one figure per test, whatever its question count. */
634
+ const TEST_WRITING_MINUTES = 7;
631
635
  /**
632
- * Build a test Section from a ParsedTestRef with inline segments.
636
+ * Build a test Section from a ParsedTestRef with inline segments. Its time is
637
+ * writing time, carried as durationMinutes (a total with no tutor share).
633
638
  */
634
- function buildTestSection(testRef, outcome, loPath, files, visitedPaths, tierMap, errors) {
639
+ function buildTestSection(testRef, writingMinutes, outcome, loPath, files, visitedPaths, tierMap, errors) {
635
640
  if (!testRef.segments.length)
636
641
  return null;
637
642
  const testSegments = [];
@@ -680,6 +685,7 @@ function buildTestSection(testRef, outcome, loPath, files, visitedPaths, tierMap
680
685
  ...(forceFeedback && { forceFeedback }),
681
686
  contentId: testRef.id,
682
687
  learningOutcomes: [outcome],
688
+ durationMinutes: writingMinutes ?? TEST_WRITING_MINUTES,
683
689
  };
684
690
  }
685
691
  /** Tag a lens section with every outcome that suggests its file. An inline
@@ -851,7 +857,7 @@ function flattenLearningOutcomeSection(section, modulePath, files, visitedPaths,
851
857
  const lensPaths = suggestedLensPaths(lo, files);
852
858
  // Emit the test section if the LO has one with inline segments
853
859
  if (lo.test) {
854
- const testSection = buildTestSection(lo.test, ref, loPath, files, visitedPaths, tierMap, errors);
860
+ const testSection = buildTestSection(lo.test, lo.writingMinutes, ref, loPath, files, visitedPaths, tierMap, errors);
855
861
  if (testSection)
856
862
  sections.push(testSection);
857
863
  }
@@ -1121,7 +1127,7 @@ function resolveVideoSegment(source, fromTimeStr, toTimeStr, ctx) {
1121
1127
  // win over the transcript's frontmatter defaults (which win over
1122
1128
  // 0:00/open-ended).
1123
1129
  const { fromTime, toTime } = resolveVideoRange(fromTimeStr, toTimeStr, vfm);
1124
- const excerptResult = extractVideoExcerpt(transcriptContent, fromTime, toTime, videoPath, timestamps);
1130
+ const excerptResult = extractVideoExcerpt(transcriptContent, fromTime, toTime, videoPath, timestamps, ctx.skip);
1125
1131
  if (excerptResult.error) {
1126
1132
  const error = { ...excerptResult.error, file: ctx.errorFile };
1127
1133
  const line = ctx.errorLine ?? ctx.excerptErrorLine;
@@ -1134,6 +1140,7 @@ function resolveVideoSegment(source, fromTimeStr, toTimeStr, ctx) {
1134
1140
  type: "video",
1135
1141
  from: excerptResult.from,
1136
1142
  to: excerptResult.to,
1143
+ ...(excerptResult.skip && { skip: excerptResult.skip }),
1137
1144
  transcript: excerptResult.transcript,
1138
1145
  };
1139
1146
  // Populate metadata from video transcript frontmatter
@@ -1592,6 +1599,7 @@ origin) {
1592
1599
  files,
1593
1600
  visitedPaths,
1594
1601
  tierMap,
1602
+ skip: parsedSegment.skip,
1595
1603
  });
1596
1604
  errors.push(...result.errors);
1597
1605
  if (!result.segment) {