gooseworks 0.6.0-dev.62.a550dc87 → 0.6.0-dev.63.d0b2908b

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 (37) hide show
  1. package/dist/kit/core/assembly-timeline.d.ts +79 -8
  2. package/dist/kit/core/assembly-timeline.d.ts.map +1 -1
  3. package/dist/kit/core/assembly-timeline.js +228 -18
  4. package/dist/kit/core/assembly-timeline.js.map +1 -1
  5. package/dist/kit/core/eyes.d.ts +6 -0
  6. package/dist/kit/core/eyes.d.ts.map +1 -1
  7. package/dist/kit/core/eyes.js +2 -2
  8. package/dist/kit/core/eyes.js.map +1 -1
  9. package/dist/kit/core/final-measure.d.ts +138 -0
  10. package/dist/kit/core/final-measure.d.ts.map +1 -0
  11. package/dist/kit/core/final-measure.js +492 -0
  12. package/dist/kit/core/final-measure.js.map +1 -0
  13. package/dist/kit/core/run.d.ts +7 -0
  14. package/dist/kit/core/run.d.ts.map +1 -1
  15. package/dist/kit/core/run.js +99 -17
  16. package/dist/kit/core/run.js.map +1 -1
  17. package/dist/kit/core/version.d.ts +1 -0
  18. package/dist/kit/core/version.d.ts.map +1 -1
  19. package/dist/kit/core/version.js +2 -1
  20. package/dist/kit/core/version.js.map +1 -1
  21. package/dist/kit/maker/inputs.js +1 -1
  22. package/dist/kit/maker/make.d.ts +6 -0
  23. package/dist/kit/maker/make.d.ts.map +1 -1
  24. package/dist/kit/maker/make.js +17 -4
  25. package/dist/kit/maker/make.js.map +1 -1
  26. package/dist/kit/maker/parts/html-frames/{1.3.0 → 1.3.1}/part.json +1 -1
  27. package/dist/kit/maker/under.d.ts +2 -0
  28. package/dist/kit/maker/under.d.ts.map +1 -1
  29. package/dist/kit/maker/under.js +7 -1
  30. package/dist/kit/maker/under.js.map +1 -1
  31. package/dist/skills/server-entry-skills.d.ts +1 -1
  32. package/dist/skills/server-entry-skills.d.ts.map +1 -1
  33. package/dist/skills/server-entry-skills.js +3 -4
  34. package/dist/skills/server-entry-skills.js.map +1 -1
  35. package/package.json +4 -3
  36. package/skills/make-custom-video/SKILL.md +3 -4
  37. package/skills/manifest.json +2 -2
@@ -6,12 +6,45 @@ export type SoundtrackMode = typeof SOUNDTRACK_MODES[number];
6
6
  export interface AssemblySource {
7
7
  asset_id: string;
8
8
  sha256: string;
9
- /** Local transport only; excluded from the portable revision. */
9
+ /** Local transport only; excluded from the portable revision and stripped before upload. */
10
10
  path?: string;
11
11
  in_ms: number;
12
12
  out_ms: number;
13
13
  speed: number;
14
+ /** Picture sources only: the part of the source shown, in whole source pixels. */
15
+ crop?: {
16
+ x: number;
17
+ y: number;
18
+ w: number;
19
+ h: number;
20
+ };
21
+ /** Picture sources only: how the shown part is scaled. Uneven stretch over 2% is refused; zoom is checked against the real source. */
22
+ scale_x?: number;
23
+ scale_y?: number;
14
24
  }
25
+ /** Picture stretch and zoom limits (fix-forward contract section 7, as amended 15 Oct). */
26
+ export declare const MAX_UNEVEN_STRETCH = 0.02;
27
+ /**
28
+ * The most a crop may zoom in: the crop's fit-scale over the full source frame's fit-scale.
29
+ * Plain resolution scaling of the whole frame (H3's 432×768 to 1080×1920) is not zoom.
30
+ */
31
+ export declare const MAX_ZOOM = 1.5;
32
+ /** Planned pause and freeze limits, the same numbers the final measurements use. */
33
+ export declare const MAX_PLANNED_PAUSE_MS: 1500;
34
+ export declare const MAX_PLANNED_TOTAL_SHARE: 0.1;
35
+ /** How far a crop zooms in when its picture fills a `frame` (cover fit); 1 for the whole source. */
36
+ export declare function cropZoom(crop: {
37
+ w: number;
38
+ h: number;
39
+ }, source: {
40
+ width: number;
41
+ height: number;
42
+ }, frame: {
43
+ width: number;
44
+ height: number;
45
+ }): number;
46
+ /** A segment that deliberately shows an earlier shot again says so with an intent starting with this. */
47
+ export declare const CALLBACK_INTENT = "callback:";
15
48
  export interface AssemblySegment {
16
49
  id: string;
17
50
  scene_id: string;
@@ -78,22 +111,37 @@ export interface AssemblyCheck {
78
111
  /** Legacy intent is retained for review, never inferred from transcript absence. */
79
112
  legacy?: Record<string, unknown>;
80
113
  }
114
+ /** How the reviewer perceived the sound: heard it (a person or an audio-capable model), or relied on the measurements. */
115
+ export type AudioPerception = 'listened' | 'measured';
116
+ /** How the reviewer perceived the moving picture: watched it, or relied on the measurements. */
117
+ export type MotionPerception = 'watched' | 'measured';
118
+ export declare const AUDIO_PERCEPTIONS: readonly AudioPerception[];
119
+ export declare const MOTION_PERCEPTIONS: readonly MotionPerception[];
120
+ /**
121
+ * `capabilities` (fix-forward contract section 2). The old boolean shape still parses for one release:
122
+ * `true` reads as listened/watched; `false` is refused.
123
+ */
124
+ export type ReviewCapabilities = {
125
+ audio: AudioPerception;
126
+ motion: MotionPerception;
127
+ } | {
128
+ audio_perception: boolean;
129
+ motion_perception: boolean;
130
+ };
81
131
  export interface FinalContentReview {
82
132
  output_sha256: string;
83
133
  timeline_revision: string;
84
134
  creative_contract_revision: string;
85
135
  reviewer: string;
86
136
  verdict: 'approved' | 'needs_revision' | 'incomplete';
87
- capabilities: {
88
- audio_perception: boolean;
89
- motion_perception: boolean;
90
- };
137
+ capabilities: ReviewCapabilities;
91
138
  coverage: Array<{
92
139
  start_ms: number;
93
140
  end_ms: number;
94
141
  }>;
142
+ /** Matched case-insensitively: only P2 lets the upload go on; P0, P1, blocker and anything unknown block. */
95
143
  unresolved_issues: Array<{
96
- severity: 'P0' | 'P1' | 'P2';
144
+ severity: string;
97
145
  message: string;
98
146
  }>;
99
147
  dimensions: Record<string, {
@@ -101,13 +149,36 @@ export interface FinalContentReview {
101
149
  note: string;
102
150
  }>;
103
151
  }
152
+ /** What a measured review leans on: the kit's own final measurements of the same bytes. */
153
+ export interface FinalMeasureSummary {
154
+ output_sha256: string;
155
+ checks: Array<{
156
+ id: string;
157
+ result: 'pass' | 'fail' | 'not_applicable';
158
+ }>;
159
+ }
104
160
  export declare const CONTENT_DIMENSIONS: readonly ["reference_and_concept", "brand_and_product", "scale_and_geometry", "action_and_continuity", "lip_sync", "voice_performance", "pronunciation", "sound_and_silence", "pacing_and_joins", "camera_and_lighting", "overlays"];
161
+ /** The timeline without machine-specific `path` values: what the revision hashes and what goes to the server. */
162
+ export declare function portableTimeline<T>(value: T): T;
105
163
  /** Excludes machine-specific transport, while retaining exact assets and source clocks. */
106
164
  export declare function assemblyTimelineRevision(value: AssemblyTimeline): string;
107
165
  /** Structural and clock checks. A complete result still requires source-byte and content review. */
108
166
  export declare function normalizeAssemblyTimeline(raw: unknown, legacy?: Record<string, unknown>): AssemblyCheck;
109
167
  export declare const FINAL_ASSEMBLY_DURATION_TOLERANCE_MS = 100;
110
168
  export declare function measuredFinalDurationMs(seconds: number | null | undefined): number | null;
111
- /** Omit measurement only for preflight; final acceptance needs the measured duration. */
112
- export declare function finalContentReviewProblems(raw: unknown, outputSha: string, assembly: AssemblyCheck, measuredDurationMs?: number | null): string[];
169
+ /**
170
+ * The review's perception, in the new shape. The old booleans are aliases: `true` reads as
171
+ * listened/watched and `false` is refused, so a review that admits it could not hear or see never passes.
172
+ */
173
+ export declare function reviewCapabilities(raw: unknown): {
174
+ audio: AudioPerception | null;
175
+ motion: MotionPerception | null;
176
+ problems: string[];
177
+ };
178
+ /**
179
+ * Omit measurement only for preflight; final acceptance needs the measured duration. A `measured`
180
+ * perception is accepted only with `finalMeasure` of the same bytes in which every check passed
181
+ * (or does not apply); the server adds its own frame judge on top.
182
+ */
183
+ export declare function finalContentReviewProblems(raw: unknown, outputSha: string, assembly: AssemblyCheck, measuredDurationMs?: number | null, finalMeasure?: FinalMeasureSummary | null): string[];
113
184
  //# sourceMappingURL=assembly-timeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assembly-timeline.d.ts","sourceRoot":"","sources":["../../../src/kit/core/assembly-timeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assembly-timeline.d.ts","sourceRoot":"","sources":["../../../src/kit/core/assembly-timeline.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS = exports.CONTENT_DIMENSIONS = exports.SOUNDTRACK_MODES = exports.SPEECH_MODES = exports.ASSEMBLY_FORMAT = void 0;
3
+ exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS = exports.CONTENT_DIMENSIONS = exports.MOTION_PERCEPTIONS = exports.AUDIO_PERCEPTIONS = exports.CALLBACK_INTENT = exports.MAX_PLANNED_TOTAL_SHARE = exports.MAX_PLANNED_PAUSE_MS = exports.MAX_ZOOM = exports.MAX_UNEVEN_STRETCH = exports.SOUNDTRACK_MODES = exports.SPEECH_MODES = exports.ASSEMBLY_FORMAT = void 0;
4
+ exports.cropZoom = cropZoom;
4
5
  exports.assemblyPictureSources = assemblyPictureSources;
6
+ exports.portableTimeline = portableTimeline;
5
7
  exports.assemblyTimelineRevision = assemblyTimelineRevision;
6
8
  exports.normalizeAssemblyTimeline = normalizeAssemblyTimeline;
7
9
  exports.measuredFinalDurationMs = measuredFinalDurationMs;
10
+ exports.reviewCapabilities = reviewCapabilities;
8
11
  exports.finalContentReviewProblems = finalContentReviewProblems;
9
12
  // Source-linked edit intent. File/rebuild checks never certify audiovisual quality.
10
13
  const canonical_1 = require("./canonical");
14
+ const final_measure_1 = require("./final-measure");
11
15
  exports.ASSEMBLY_FORMAT = 'gooseworks-assembly-timeline/1';
12
16
  exports.SPEECH_MODES = ['native_dialogue', 'audio_driven_lipsync', 'narration', 'singing', 'mixed', 'none'];
13
17
  exports.SOUNDTRACK_MODES = ['source_ambience', 'music', 'sfx', 'intentional_silence'];
18
+ /** Picture stretch and zoom limits (fix-forward contract section 7, as amended 15 Oct). */
19
+ exports.MAX_UNEVEN_STRETCH = 0.02;
20
+ /**
21
+ * The most a crop may zoom in: the crop's fit-scale over the full source frame's fit-scale.
22
+ * Plain resolution scaling of the whole frame (H3's 432×768 to 1080×1920) is not zoom.
23
+ */
24
+ exports.MAX_ZOOM = 1.5;
25
+ /** Planned pause and freeze limits, the same numbers the final measurements use. */
26
+ exports.MAX_PLANNED_PAUSE_MS = final_measure_1.FINAL_MEASURE_THRESHOLDS.max_pause_ms;
27
+ exports.MAX_PLANNED_TOTAL_SHARE = final_measure_1.FINAL_MEASURE_THRESHOLDS.max_pause_share;
28
+ /** How far a crop zooms in when its picture fills a `frame` (cover fit); 1 for the whole source. */
29
+ function cropZoom(crop, source, frame) {
30
+ const fit = (w, h) => Math.max(frame.width / w, frame.height / h);
31
+ return fit(crop.w, crop.h) / fit(source.width, source.height);
32
+ }
33
+ /** A segment that deliberately shows an earlier shot again says so with an intent starting with this. */
34
+ exports.CALLBACK_INTENT = 'callback:';
14
35
  /** Overrides can introduce picture bytes that never appear in ordinary clips. */
15
36
  function assemblyPictureSources(timeline) {
16
37
  return [
@@ -18,6 +39,8 @@ function assemblyPictureSources(timeline) {
18
39
  ...(timeline.visual_overrides ?? []).flatMap((override, index) => override.source ? [{ id: `override-${index + 1}`, scene_id: override.scene_id, source: override.source, source_kind: override.source_kind }] : []),
19
40
  ];
20
41
  }
42
+ exports.AUDIO_PERCEPTIONS = ['listened', 'measured'];
43
+ exports.MOTION_PERCEPTIONS = ['watched', 'measured'];
21
44
  exports.CONTENT_DIMENSIONS = ['reference_and_concept', 'brand_and_product', 'scale_and_geometry', 'action_and_continuity', 'lip_sync', 'voice_performance', 'pronunciation', 'sound_and_silence', 'pacing_and_joins', 'camera_and_lighting', 'overlays'];
22
45
  const object = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
23
46
  const hash = (v) => typeof v === 'string' && /^[a-f0-9]{64}$/.test(v);
@@ -26,12 +49,51 @@ const ms = (v) => typeof v === 'number' && Number.isSafeInteger(v) && v >= 0;
26
49
  const finite = (v) => typeof v === 'number' && Number.isFinite(v);
27
50
  const sourceSpan = (s) => (s.out_ms - s.in_ms) / s.speed;
28
51
  const speechRole = (role) => ['native_dialogue', 'audio_driven_lipsync', 'narration', 'singing'].includes(role);
29
- /** Excludes machine-specific transport, while retaining exact assets and source clocks. */
30
- function assemblyTimelineRevision(value) {
52
+ /** The timeline without machine-specific `path` values: what the revision hashes and what goes to the server. */
53
+ function portableTimeline(value) {
31
54
  const portable = (v) => Array.isArray(v) ? v.map(portable)
32
55
  : object(v) ? Object.fromEntries(Object.entries(v).filter(([key]) => key !== 'path').map(([key, item]) => [key, portable(item)])) : v;
33
- return (0, canonical_1.canonicalHash)(portable(value));
56
+ return portable(value);
57
+ }
58
+ /** Excludes machine-specific transport, while retaining exact assets and source clocks. */
59
+ function assemblyTimelineRevision(value) {
60
+ return (0, canonical_1.canonicalHash)(portableTimeline(value));
61
+ }
62
+ /**
63
+ * Milliseconds and pixels are whole numbers, so the revision survives a database round trip
64
+ * (a stored fraction can come back rounded and no longer match its review).
65
+ */
66
+ function fractionalUnits(raw) {
67
+ const found = [];
68
+ const walk = (value, at, inCrop) => {
69
+ if (Array.isArray(value)) {
70
+ value.forEach((item, i) => walk(item, `${at}[${i}]`, false));
71
+ return;
72
+ }
73
+ if (!object(value))
74
+ return;
75
+ for (const [key, item] of Object.entries(value)) {
76
+ const here = at ? `${at}.${key}` : key;
77
+ const unit = key.endsWith('_ms') ? 'milliseconds' : inCrop && ['x', 'y', 'w', 'h'].includes(key) ? 'pixels' : null;
78
+ if (unit && typeof item === 'number' && Number.isFinite(item) && !Number.isInteger(item))
79
+ found.push(`${here} must be a whole number of ${unit} (got ${item})`);
80
+ else
81
+ walk(item, here, key === 'crop');
82
+ }
83
+ };
84
+ walk(raw, '', false);
85
+ return found;
34
86
  }
87
+ const overlaps = (a, b) => a.sha256 === b.sha256 && a.asset_id === b.asset_id && Math.min(a.out_ms, b.out_ms) > Math.max(a.in_ms, b.in_ms);
88
+ const totalMs = (items) => {
89
+ let total = 0;
90
+ let end = -1;
91
+ for (const item of [...items].sort((a, b) => a.start_ms - b.start_ms)) {
92
+ total += Math.max(0, item.end_ms - Math.max(item.start_ms, end));
93
+ end = Math.max(end, item.end_ms);
94
+ }
95
+ return total;
96
+ };
35
97
  function gaps(items, duration) {
36
98
  const missing = [];
37
99
  let end = 0;
@@ -54,7 +116,8 @@ function normalizeAssemblyTimeline(raw, legacy) {
54
116
  issues.push(`assembly format must be ${exports.ASSEMBLY_FORMAT}`);
55
117
  if (!hash(raw.creative_contract_revision))
56
118
  issues.push('creative_contract_revision must identify approved bytes');
57
- if (!ms(raw.duration_ms) || raw.duration_ms <= 0 || raw.duration_ms > 180_000)
119
+ // A fraction is named once, by the whole-units check below.
120
+ if (!finite(raw.duration_ms) || raw.duration_ms < 1 || raw.duration_ms > 180_000)
58
121
  issues.push('duration_ms must be 1–180000');
59
122
  if (!exports.SPEECH_MODES.includes(raw.speech_mode))
60
123
  issues.push('speech_mode is missing or unknown');
@@ -70,14 +133,42 @@ function normalizeAssemblyTimeline(raw, legacy) {
70
133
  issues.push('required_cue_ids must be explicit');
71
134
  if (raw.visual_overrides !== undefined && (!Array.isArray(raw.visual_overrides) || raw.visual_overrides.length > 500))
72
135
  issues.push('visual_overrides must be a bounded explicit list');
136
+ issues.push(...fractionalUnits(raw));
73
137
  if (issues.length)
74
138
  return { status: 'invalid', timeline: null, revision: null, issues };
75
139
  const t = raw;
76
- const validSource = (s, at) => {
140
+ const validSource = (s, at, picture = false) => {
77
141
  if (!object(s) || !text(s.asset_id) || !hash(s.sha256) || !ms(s.in_ms) || !ms(s.out_ms) || s.out_ms <= s.in_ms || !finite(s.speed) || s.speed < 0.25 || s.speed > 4) {
78
142
  issues.push(`${at}: exact asset, hash, bounds and supported speed required`);
79
143
  return false;
80
144
  }
145
+ if (s.path !== undefined && typeof s.path !== 'string') {
146
+ issues.push(`${at}: path must be a local file path`);
147
+ return false;
148
+ }
149
+ const framed = s.crop !== undefined || s.scale_x !== undefined || s.scale_y !== undefined;
150
+ if (framed && !picture) {
151
+ issues.push(`${at}: crop and scale apply to picture sources only`);
152
+ return false;
153
+ }
154
+ if (s.crop !== undefined) {
155
+ const c = s.crop;
156
+ const px = (v, min) => typeof v === 'number' && Number.isSafeInteger(v) && v >= min;
157
+ if (!object(c) || Object.keys(c).some((k) => !['x', 'y', 'w', 'h'].includes(k)) || !px(c.x, 0) || !px(c.y, 0) || !px(c.w, 1) || !px(c.h, 1)) {
158
+ issues.push(`${at}: crop needs whole source pixels x, y, w and h (w and h at least 1)`);
159
+ return false;
160
+ }
161
+ }
162
+ if (s.scale_x !== undefined || s.scale_y !== undefined) {
163
+ if (!finite(s.scale_x) || !finite(s.scale_y) || s.scale_x <= 0 || s.scale_y <= 0) {
164
+ issues.push(`${at}: scale_x and scale_y go together and must be positive`);
165
+ return false;
166
+ }
167
+ if (Math.abs(s.scale_x / s.scale_y - 1) > exports.MAX_UNEVEN_STRETCH) {
168
+ issues.push(`${at}: uneven stretch (scale_x ${s.scale_x} vs scale_y ${s.scale_y}) distorts the picture by more than ${exports.MAX_UNEVEN_STRETCH * 100}%`);
169
+ return false;
170
+ }
171
+ }
81
172
  return true;
82
173
  };
83
174
  const validRange = (v, at) => {
@@ -98,7 +189,7 @@ function normalizeAssemblyTimeline(raw, legacy) {
98
189
  ids.add(s.id);
99
190
  if (!exports.SPEECH_MODES.includes(s.speech_mode) || typeof s.depicts_speech !== 'boolean' || !['preserve', 'muted'].includes(s.native_audio))
100
191
  issues.push(`${s.id}: explicit speech and native audio decisions required`);
101
- if (validRange(s, s.id) && validSource(s.video, s.id) && Math.abs(sourceSpan(s.video) - (s.end_ms - s.start_ms)) > 1)
192
+ if (validRange(s, s.id) && validSource(s.video, s.id, true) && Math.abs(sourceSpan(s.video) - (s.end_ms - s.start_ms)) > 1)
102
193
  issues.push(`${s.id}: picture source duration/rate differs from final interval`);
103
194
  if (s.video?.speed !== 1 && !text(s.intent))
104
195
  issues.push(`${s.id}: speed change needs intent`);
@@ -136,23 +227,41 @@ function normalizeAssemblyTimeline(raw, legacy) {
136
227
  for (const id of t.required_cue_ids)
137
228
  if (!ids.has(id))
138
229
  issues.push(`required cue ${id} is missing`);
139
- for (const p of t.pauses)
230
+ for (const p of t.pauses) {
140
231
  if (!validRange(p, 'pause') || !text(p.reason) || !['speech', 'all_audio'].includes(p.scope))
141
232
  issues.push('every pause needs its range, scope and reason');
233
+ else if (p.end_ms - p.start_ms > exports.MAX_PLANNED_PAUSE_MS)
234
+ issues.push(`pause ${p.start_ms}–${p.end_ms}ms is longer than ${exports.MAX_PLANNED_PAUSE_MS}ms`);
235
+ }
142
236
  for (const v of t.visual_overrides ?? []) {
143
237
  if (!validRange(v, 'visual override') || !text(v.reason) || !['freeze', 'transition'].includes(v.kind))
144
238
  issues.push('visual overrides need bounds, kind and reason');
145
239
  else {
146
240
  if (v.kind === 'freeze' && !v.source)
147
241
  issues.push('freeze requires its exact source');
148
- if (v.source && (!validSource(v.source, 'override source') || !text(v.scene_id) || !['image', 'video'].includes(v.source_kind ?? '')))
242
+ if (v.kind === 'freeze' && v.end_ms - v.start_ms > (0, final_measure_1.maxFreezeMs)(v, t.duration_ms))
243
+ issues.push(`freeze ${v.start_ms}–${v.end_ms}ms is longer than ${(0, final_measure_1.maxFreezeMs)(v, t.duration_ms)}ms${v.end_ms === t.duration_ms ? ' (the closing-hold limit)' : ''}`);
244
+ if (v.source && (!validSource(v.source, 'override source', true) || !text(v.scene_id) || !['image', 'video'].includes(v.source_kind ?? '')))
149
245
  issues.push('override sources need exact bytes, scene_id and source_kind (image or video)');
150
246
  if (v.kind === 'transition' && (!Array.isArray(v.segment_ids) || v.segment_ids.length < 2 || v.segment_ids.some((id) => !t.segments.some((s) => s.id === id))))
151
247
  issues.push('transition must name its source segments');
152
248
  }
153
249
  }
250
+ const pauseTotal = totalMs(t.pauses.filter(object));
251
+ if (pauseTotal > t.duration_ms * exports.MAX_PLANNED_TOTAL_SHARE)
252
+ issues.push(`planned pauses add up to ${pauseTotal}ms, more than ${exports.MAX_PLANNED_TOTAL_SHARE * 100}% of the ${t.duration_ms}ms video`);
154
253
  if (issues.length)
155
254
  return { status: 'invalid', timeline: null, revision: null, issues };
255
+ // The same source moment shown again later (not the very next segment, both over 1 s) is a
256
+ // repeat; only a declared callback may do it. As in the harness, the prefix is case-sensitive.
257
+ const ordered = [...t.segments].sort((a, b) => a.start_ms - b.start_ms || a.end_ms - b.end_ms);
258
+ const long = (x) => x.end_ms - x.start_ms > final_measure_1.FINAL_MEASURE_THRESHOLDS.repeated_shot_min_s * 1000;
259
+ for (let b = 2; b < ordered.length; b++) {
260
+ const later = ordered[b];
261
+ const repeated = long(later) ? ordered.slice(0, b - 1).find((earlier) => long(earlier) && overlaps(earlier.video, later.video)) : undefined;
262
+ if (repeated && !(typeof later.intent === 'string' && later.intent.startsWith(exports.CALLBACK_INTENT)))
263
+ issues.push(`${later.id}: shows ${repeated.id}'s source moment again; use another moment, or mark a deliberate repeat with intent "${exports.CALLBACK_INTENT} <why>"`);
264
+ }
156
265
  if (gaps([...t.segments, ...(t.visual_overrides ?? [])], t.duration_ms).length)
157
266
  issues.push('Picture coverage has undeclared padding or a missing source interval');
158
267
  for (let a = 0; a < t.segments.length; a++)
@@ -198,9 +307,16 @@ function normalizeAssemblyTimeline(raw, legacy) {
198
307
  }
199
308
  if (t.speech_mode === 'none' && t.audio_cues.some((c) => speechRole(c.role)))
200
309
  issues.push('No-speech intent conflicts with speech cues');
201
- if (t.speech_mode !== 'none')
202
- for (const gap of gaps([...t.audio_cues.filter((c) => speechRole(c.role) && c.gain_db > -80), ...t.pauses], t.duration_ms))
203
- issues.push(`unplanned speech gap ${gap.start_ms}–${gap.end_ms}ms (music cannot substitute for speech intent)`);
310
+ // Speech covers every segment that plans speech; a music-only intro or end card (speech_mode none) needs none.
311
+ if (t.speech_mode !== 'none') {
312
+ const speech = [...t.audio_cues.filter((c) => speechRole(c.role) && c.gain_db > -80), ...t.pauses];
313
+ for (const segment of ordered.filter((x) => x.speech_mode !== 'none')) {
314
+ const inside = speech.filter((i) => i.end_ms > segment.start_ms && i.start_ms < segment.end_ms)
315
+ .map((i) => ({ start_ms: Math.max(i.start_ms, segment.start_ms) - segment.start_ms, end_ms: Math.min(i.end_ms, segment.end_ms) - segment.start_ms }));
316
+ for (const gap of gaps(inside, segment.end_ms - segment.start_ms))
317
+ issues.push(`unplanned speech gap ${gap.start_ms + segment.start_ms}–${gap.end_ms + segment.start_ms}ms in ${segment.id} (music cannot substitute for speech intent)`);
318
+ }
319
+ }
204
320
  return { status: issues.length ? 'invalid' : 'complete', timeline: t, revision: assemblyTimelineRevision(t), issues };
205
321
  }
206
322
  // A final frame and AAC padding can differ slightly from the edit clock.
@@ -211,20 +327,115 @@ function measuredFinalDurationMs(seconds) {
211
327
  const duration = Math.ceil(seconds * 1000);
212
328
  return Number.isSafeInteger(duration) ? duration : null;
213
329
  }
214
- /** Omit measurement only for preflight; final acceptance needs the measured duration. */
215
- function finalContentReviewProblems(raw, outputSha, assembly, measuredDurationMs) {
330
+ const REVIEW_FIELDS = ['output_sha256', 'timeline_revision', 'creative_contract_revision', 'reviewer', 'verdict', 'capabilities', 'coverage', 'unresolved_issues', 'dimensions'];
331
+ const CAPABILITY_FIELDS = ['audio', 'motion', 'audio_perception', 'motion_perception'];
332
+ /** At most this many unresolved issues are named one by one; the rest are counted. */
333
+ const NAMED_ISSUES = 10;
334
+ /** Every field the review format doesn't have, by its path, so the reviewer knows exactly what to remove. */
335
+ function unknownReviewFields(r) {
336
+ const extra = [];
337
+ const check = (value, allowed, at) => {
338
+ if (!object(value))
339
+ return;
340
+ for (const key of Object.keys(value))
341
+ if (!allowed.includes(key))
342
+ extra.push(`${at}${key}`);
343
+ };
344
+ check(r, REVIEW_FIELDS, '');
345
+ check(r.capabilities, CAPABILITY_FIELDS, 'capabilities.');
346
+ if (Array.isArray(r.coverage))
347
+ r.coverage.forEach((w, i) => check(w, ['start_ms', 'end_ms'], `coverage[${i}].`));
348
+ if (Array.isArray(r.unresolved_issues))
349
+ r.unresolved_issues.forEach((issue, i) => check(issue, ['severity', 'message'], `unresolved_issues[${i}].`));
350
+ if (object(r.dimensions)) {
351
+ check(r.dimensions, exports.CONTENT_DIMENSIONS, 'dimensions.');
352
+ for (const name of exports.CONTENT_DIMENSIONS)
353
+ check(r.dimensions[name], ['status', 'note'], `dimensions.${name}.`);
354
+ }
355
+ return extra;
356
+ }
357
+ /**
358
+ * The review's perception, in the new shape. The old booleans are aliases: `true` reads as
359
+ * listened/watched and `false` is refused, so a review that admits it could not hear or see never passes.
360
+ */
361
+ function reviewCapabilities(raw) {
362
+ const problems = [];
363
+ if (!object(raw))
364
+ return { audio: null, motion: null, problems: ['capabilities must say how the sound and the moving picture were reviewed: audio listened or measured, motion watched or measured'] };
365
+ const axis = (name, legacy, allowed, heard) => {
366
+ const current = raw[name];
367
+ const old = raw[legacy];
368
+ if (current !== undefined && old !== undefined) {
369
+ problems.push(`capabilities has both ${name} and ${legacy}; keep only ${name}`);
370
+ return null;
371
+ }
372
+ if (current !== undefined) {
373
+ if (typeof current === 'string' && allowed.includes(current))
374
+ return current;
375
+ problems.push(`capabilities.${name} must be ${allowed.join(' or ')}`);
376
+ return null;
377
+ }
378
+ if (old === true)
379
+ return heard;
380
+ if (old === false) {
381
+ problems.push(`capabilities.${legacy} is false: the ${name === 'audio' ? 'sound' : 'moving picture'} was not reviewed. Review it, or record ${name}: "measured" and rely on passing final measurements`);
382
+ return null;
383
+ }
384
+ if (old !== undefined) {
385
+ problems.push(`capabilities.${legacy} must be true, or use ${name}: ${allowed.join(' | ')}`);
386
+ return null;
387
+ }
388
+ problems.push(`capabilities.${name} is missing: record ${allowed.join(' or ')}`);
389
+ return null;
390
+ };
391
+ const audio = axis('audio', 'audio_perception', exports.AUDIO_PERCEPTIONS, 'listened');
392
+ const motion = axis('motion', 'motion_perception', exports.MOTION_PERCEPTIONS, 'watched');
393
+ return { audio, motion, problems };
394
+ }
395
+ /** One blocking issue, named: P0, P1 and blocker block as they are, anything unknown blocks as P1. */
396
+ function blockingIssues(raw) {
397
+ if (!Array.isArray(raw))
398
+ return ['unresolved_issues must be a list (an empty list when nothing is open)'];
399
+ const blocking = [];
400
+ raw.forEach((issue, index) => {
401
+ const message = object(issue) && text(issue.message) ? issue.message.trim().slice(0, 200) : '';
402
+ const severity = object(issue) && typeof issue.severity === 'string' ? issue.severity.trim().toLowerCase() : '';
403
+ if (severity === 'p2' && message)
404
+ return;
405
+ const label = severity === 'p0' ? 'P0' : severity === 'p1' ? 'P1' : severity === 'blocker' ? 'blocker'
406
+ : `issue with unknown severity ${JSON.stringify(object(issue) ? issue.severity ?? null : issue)} (counts as P1)`;
407
+ blocking.push(message ? `Unresolved ${label}${label.startsWith('issue') ? '' : ' issue'}: ${message}` : `unresolved_issues[${index}] needs a severity (P0, P1 or P2) and a message; it counts as P1 until then`);
408
+ });
409
+ if (blocking.length > NAMED_ISSUES)
410
+ return [...blocking.slice(0, NAMED_ISSUES), `${blocking.length - NAMED_ISSUES} more unresolved issues block the upload`];
411
+ return blocking;
412
+ }
413
+ /**
414
+ * Omit measurement only for preflight; final acceptance needs the measured duration. A `measured`
415
+ * perception is accepted only with `finalMeasure` of the same bytes in which every check passed
416
+ * (or does not apply); the server adds its own frame judge on top.
417
+ */
418
+ function finalContentReviewProblems(raw, outputSha, assembly, measuredDurationMs, finalMeasure) {
216
419
  if (!object(raw))
217
420
  return ['Exact-final audiovisual content review is missing'];
218
421
  const r = raw;
219
422
  const problems = [];
423
+ for (const field of unknownReviewFields(raw))
424
+ problems.push(`content_review has an unknown field "${field}". Remove it, then resume`);
220
425
  if (assembly.status !== 'complete' || !assembly.timeline)
221
426
  problems.push('Assembly evidence is incomplete');
222
427
  if (r.output_sha256 !== outputSha || r.timeline_revision !== assembly.revision || r.creative_contract_revision !== assembly.timeline?.creative_contract_revision)
223
428
  problems.push('Content review belongs to different final, timeline or approved intent bytes');
224
429
  if (r.verdict !== 'approved' || !text(r.reviewer))
225
430
  problems.push('Content review is not approved by an identified reviewer');
226
- if (!r.capabilities?.audio_perception || !r.capabilities?.motion_perception)
227
- problems.push('Actual audio and continuous-motion review capability is missing');
431
+ const perceived = reviewCapabilities(r.capabilities);
432
+ problems.push(...perceived.problems);
433
+ if (perceived.audio === 'measured' || perceived.motion === 'measured') {
434
+ const measuredPass = !!finalMeasure && finalMeasure.output_sha256 === outputSha && Array.isArray(finalMeasure.checks) && finalMeasure.checks.length > 0
435
+ && finalMeasure.checks.every((c) => c.result === 'pass' || c.result === 'not_applicable');
436
+ if (!measuredPass)
437
+ problems.push('A measured review needs passing final measurements of these exact bytes (final-measure.json); fix the failing checks or review by listening and watching');
438
+ }
228
439
  const measurementRequired = measuredDurationMs !== undefined;
229
440
  const measured = ms(measuredDurationMs) && measuredDurationMs > 0 ? measuredDurationMs : null;
230
441
  if (measurementRequired && measured === null)
@@ -248,8 +459,7 @@ function finalContentReviewProblems(raw, outputSha, assembly, measuredDurationMs
248
459
  if (!r.coverage.length || missing > 1)
249
460
  problems.push(`Playback and listening must cover the complete ${duration}ms final (only 1ms total timestamp rounding is allowed)`);
250
461
  }
251
- if (!Array.isArray(r.unresolved_issues) || r.unresolved_issues.some((i) => !i || i.severity === 'P0' || i.severity === 'P1'))
252
- problems.push('Required unresolved issues remain');
462
+ problems.push(...blockingIssues(r.unresolved_issues));
253
463
  for (const name of exports.CONTENT_DIMENSIONS) {
254
464
  const dimension = r.dimensions?.[name];
255
465
  if (!dimension || !text(dimension.note) || !['pass', 'not_applicable'].includes(dimension.status))
@@ -1 +1 @@
1
- {"version":3,"file":"assembly-timeline.js","sourceRoot":"","sources":["../../../src/kit/core/assembly-timeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assembly-timeline.js","sourceRoot":"","sources":["../../../src/kit/core/assembly-timeline.ts"],"names":[],"mappings":"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"}