gooseworks 0.5.9-dev.59.2b371ca1 → 0.6.0-dev.62.a550dc87
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.
- package/README.md +6 -4
- package/dist/kit/core/assembly-timeline.d.ts +113 -0
- package/dist/kit/core/assembly-timeline.d.ts.map +1 -0
- package/dist/kit/core/assembly-timeline.js +266 -0
- package/dist/kit/core/assembly-timeline.js.map +1 -0
- package/dist/kit/core/device.d.ts.map +1 -1
- package/dist/kit/core/device.js +1 -0
- package/dist/kit/core/device.js.map +1 -1
- package/dist/kit/core/eyes.d.ts +43 -2
- package/dist/kit/core/eyes.d.ts.map +1 -1
- package/dist/kit/core/eyes.js +102 -9
- package/dist/kit/core/eyes.js.map +1 -1
- package/dist/kit/core/outcome.d.ts +5 -1
- package/dist/kit/core/outcome.d.ts.map +1 -1
- package/dist/kit/core/outcome.js +14 -2
- package/dist/kit/core/outcome.js.map +1 -1
- package/dist/kit/core/run.d.ts.map +1 -1
- package/dist/kit/core/run.js +221 -7
- package/dist/kit/core/run.js.map +1 -1
- package/dist/kit/core/version.d.ts +2 -1
- package/dist/kit/core/version.d.ts.map +1 -1
- package/dist/kit/core/version.js +3 -2
- package/dist/kit/core/version.js.map +1 -1
- package/dist/kit/line/types.d.ts +2 -0
- package/dist/kit/line/types.d.ts.map +1 -1
- package/dist/kit/maker/inputs.js +1 -1
- package/dist/kit/maker/make.d.ts +2 -0
- package/dist/kit/maker/make.d.ts.map +1 -1
- package/dist/kit/maker/make.js +21 -1
- package/dist/kit/maker/make.js.map +1 -1
- package/dist/kit/maker/parts/html-frames/{1.2.1 → 1.3.0}/part.json +42 -4
- package/dist/kit/maker/parts/html-frames/src/part.d.ts.map +1 -1
- package/dist/kit/maker/parts/html-frames/src/part.js +5 -1
- package/dist/kit/maker/parts/html-frames/src/part.js.map +1 -1
- package/dist/kit/maker/under.d.ts.map +1 -1
- package/dist/kit/maker/under.js +5 -0
- package/dist/kit/maker/under.js.map +1 -1
- package/dist/skills/master-skill.d.ts +2 -2
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +3 -3
- package/dist/skills/master-skill.js.map +1 -1
- package/dist/skills/server-entry-skills.d.ts +3 -3
- package/dist/skills/server-entry-skills.d.ts.map +1 -1
- package/dist/skills/server-entry-skills.js +35 -35
- package/dist/skills/server-entry-skills.js.map +1 -1
- package/package.json +7 -3
- package/skills/goose-video/SKILL.md +2 -2
- package/skills/make-custom-video/SKILL.md +24 -29
- package/skills/manifest.json +3 -3
package/README.md
CHANGED
|
@@ -211,7 +211,7 @@ For focused creative work you can also use:
|
|
|
211
211
|
|
|
212
212
|
- `/goose-ads` for static ads, ad research, and ad performance.
|
|
213
213
|
- `/goose-product-photos` for studio, lifestyle, marketplace, social, and on-model product photography.
|
|
214
|
-
- `/goose-video` to make a video ad, or an original video from a brief, in the chat.
|
|
214
|
+
- `/goose-video` to make a video ad, or an original video from a brief, in the chat. Approve each review and its credit total in chat or on its card. A higher total needs a fresh yes. `gooseworks video make <id>` makes it on this machine when the chat says so.
|
|
215
215
|
- `goose-graphics` for social graphics, carousels, slides, and branded visual content.
|
|
216
216
|
- `animate-image` to turn an approved still into a short motion creative.
|
|
217
217
|
|
|
@@ -306,9 +306,11 @@ complete. `gooseworks credits` shows your balance.
|
|
|
306
306
|
|
|
307
307
|
### Videos
|
|
308
308
|
|
|
309
|
-
The `goose-video` and `make-custom-video` entry skills
|
|
310
|
-
|
|
311
|
-
which gives the step for the video's stage.
|
|
309
|
+
The `goose-video` and `make-custom-video` entry skills use GooseWorks server guidance.
|
|
310
|
+
They start with `video_formats` and follow the `next_step` in every answer,
|
|
311
|
+
which gives the step for the video's stage. Approve the saved plan and credit total in chat or
|
|
312
|
+
on its card. If the price rises, approve the new total in the same chat before work continues.
|
|
313
|
+
Custom videos keep two reviews: the script first, then the prepared ingredients and total.
|
|
312
314
|
When the chat says so, `gooseworks video make <id>` makes the approved video on this machine
|
|
313
315
|
from versioned parts, each checked against the video's parts list before anything runs.
|
|
314
316
|
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
export declare const ASSEMBLY_FORMAT: "gooseworks-assembly-timeline/1";
|
|
2
|
+
export declare const SPEECH_MODES: readonly ["native_dialogue", "audio_driven_lipsync", "narration", "singing", "mixed", "none"];
|
|
3
|
+
export declare const SOUNDTRACK_MODES: readonly ["source_ambience", "music", "sfx", "intentional_silence"];
|
|
4
|
+
export type SpeechMode = typeof SPEECH_MODES[number];
|
|
5
|
+
export type SoundtrackMode = typeof SOUNDTRACK_MODES[number];
|
|
6
|
+
export interface AssemblySource {
|
|
7
|
+
asset_id: string;
|
|
8
|
+
sha256: string;
|
|
9
|
+
/** Local transport only; excluded from the portable revision. */
|
|
10
|
+
path?: string;
|
|
11
|
+
in_ms: number;
|
|
12
|
+
out_ms: number;
|
|
13
|
+
speed: number;
|
|
14
|
+
}
|
|
15
|
+
export interface AssemblySegment {
|
|
16
|
+
id: string;
|
|
17
|
+
scene_id: string;
|
|
18
|
+
start_ms: number;
|
|
19
|
+
end_ms: number;
|
|
20
|
+
video: AssemblySource;
|
|
21
|
+
speech_mode: SpeechMode;
|
|
22
|
+
depicts_speech: boolean;
|
|
23
|
+
native_audio: 'preserve' | 'muted';
|
|
24
|
+
speech_driver?: AssemblySource & {
|
|
25
|
+
task: 'exact_audio';
|
|
26
|
+
};
|
|
27
|
+
intent?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface AssemblyCue {
|
|
30
|
+
id: string;
|
|
31
|
+
role: Exclude<SpeechMode, 'mixed' | 'none'> | 'source_ambience' | 'music' | 'sfx';
|
|
32
|
+
source: AssemblySource;
|
|
33
|
+
start_ms: number;
|
|
34
|
+
end_ms: number;
|
|
35
|
+
gain_db: number;
|
|
36
|
+
loop: boolean;
|
|
37
|
+
intent?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface AssemblyTimeline {
|
|
40
|
+
format: typeof ASSEMBLY_FORMAT;
|
|
41
|
+
creative_contract_revision: string;
|
|
42
|
+
duration_ms: number;
|
|
43
|
+
speech_mode: SpeechMode;
|
|
44
|
+
soundtrack_modes: SoundtrackMode[];
|
|
45
|
+
segments: AssemblySegment[];
|
|
46
|
+
audio_cues: AssemblyCue[];
|
|
47
|
+
pauses: Array<{
|
|
48
|
+
start_ms: number;
|
|
49
|
+
end_ms: number;
|
|
50
|
+
scope: 'speech' | 'all_audio';
|
|
51
|
+
reason: string;
|
|
52
|
+
}>;
|
|
53
|
+
required_cue_ids: string[];
|
|
54
|
+
visual_overrides?: Array<{
|
|
55
|
+
start_ms: number;
|
|
56
|
+
end_ms: number;
|
|
57
|
+
kind: 'freeze' | 'transition';
|
|
58
|
+
reason: string;
|
|
59
|
+
source?: AssemblySource;
|
|
60
|
+
scene_id?: string;
|
|
61
|
+
source_kind?: 'image' | 'video';
|
|
62
|
+
segment_ids?: string[];
|
|
63
|
+
}>;
|
|
64
|
+
}
|
|
65
|
+
export interface AssemblyPictureSource {
|
|
66
|
+
id: string;
|
|
67
|
+
scene_id: string;
|
|
68
|
+
source: AssemblySource;
|
|
69
|
+
source_kind: 'image' | 'video';
|
|
70
|
+
}
|
|
71
|
+
/** Overrides can introduce picture bytes that never appear in ordinary clips. */
|
|
72
|
+
export declare function assemblyPictureSources(timeline: AssemblyTimeline): AssemblyPictureSource[];
|
|
73
|
+
export interface AssemblyCheck {
|
|
74
|
+
status: 'complete' | 'incomplete' | 'invalid';
|
|
75
|
+
timeline: AssemblyTimeline | null;
|
|
76
|
+
revision: string | null;
|
|
77
|
+
issues: string[];
|
|
78
|
+
/** Legacy intent is retained for review, never inferred from transcript absence. */
|
|
79
|
+
legacy?: Record<string, unknown>;
|
|
80
|
+
}
|
|
81
|
+
export interface FinalContentReview {
|
|
82
|
+
output_sha256: string;
|
|
83
|
+
timeline_revision: string;
|
|
84
|
+
creative_contract_revision: string;
|
|
85
|
+
reviewer: string;
|
|
86
|
+
verdict: 'approved' | 'needs_revision' | 'incomplete';
|
|
87
|
+
capabilities: {
|
|
88
|
+
audio_perception: boolean;
|
|
89
|
+
motion_perception: boolean;
|
|
90
|
+
};
|
|
91
|
+
coverage: Array<{
|
|
92
|
+
start_ms: number;
|
|
93
|
+
end_ms: number;
|
|
94
|
+
}>;
|
|
95
|
+
unresolved_issues: Array<{
|
|
96
|
+
severity: 'P0' | 'P1' | 'P2';
|
|
97
|
+
message: string;
|
|
98
|
+
}>;
|
|
99
|
+
dimensions: Record<string, {
|
|
100
|
+
status: 'pass' | 'needs_revision' | 'incomplete' | 'not_applicable';
|
|
101
|
+
note: string;
|
|
102
|
+
}>;
|
|
103
|
+
}
|
|
104
|
+
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"];
|
|
105
|
+
/** Excludes machine-specific transport, while retaining exact assets and source clocks. */
|
|
106
|
+
export declare function assemblyTimelineRevision(value: AssemblyTimeline): string;
|
|
107
|
+
/** Structural and clock checks. A complete result still requires source-byte and content review. */
|
|
108
|
+
export declare function normalizeAssemblyTimeline(raw: unknown, legacy?: Record<string, unknown>): AssemblyCheck;
|
|
109
|
+
export declare const FINAL_ASSEMBLY_DURATION_TOLERANCE_MS = 100;
|
|
110
|
+
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[];
|
|
113
|
+
//# sourceMappingURL=assembly-timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly-timeline.d.ts","sourceRoot":"","sources":["../../../src/kit/core/assembly-timeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use strict";
|
|
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;
|
|
4
|
+
exports.assemblyPictureSources = assemblyPictureSources;
|
|
5
|
+
exports.assemblyTimelineRevision = assemblyTimelineRevision;
|
|
6
|
+
exports.normalizeAssemblyTimeline = normalizeAssemblyTimeline;
|
|
7
|
+
exports.measuredFinalDurationMs = measuredFinalDurationMs;
|
|
8
|
+
exports.finalContentReviewProblems = finalContentReviewProblems;
|
|
9
|
+
// Source-linked edit intent. File/rebuild checks never certify audiovisual quality.
|
|
10
|
+
const canonical_1 = require("./canonical");
|
|
11
|
+
exports.ASSEMBLY_FORMAT = 'gooseworks-assembly-timeline/1';
|
|
12
|
+
exports.SPEECH_MODES = ['native_dialogue', 'audio_driven_lipsync', 'narration', 'singing', 'mixed', 'none'];
|
|
13
|
+
exports.SOUNDTRACK_MODES = ['source_ambience', 'music', 'sfx', 'intentional_silence'];
|
|
14
|
+
/** Overrides can introduce picture bytes that never appear in ordinary clips. */
|
|
15
|
+
function assemblyPictureSources(timeline) {
|
|
16
|
+
return [
|
|
17
|
+
...timeline.segments.map(segment => ({ id: segment.id, scene_id: segment.scene_id, source: segment.video, source_kind: 'video' })),
|
|
18
|
+
...(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
|
+
];
|
|
20
|
+
}
|
|
21
|
+
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
|
+
const object = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
|
|
23
|
+
const hash = (v) => typeof v === 'string' && /^[a-f0-9]{64}$/.test(v);
|
|
24
|
+
const text = (v) => typeof v === 'string' && !!v.trim();
|
|
25
|
+
const ms = (v) => typeof v === 'number' && Number.isSafeInteger(v) && v >= 0;
|
|
26
|
+
const finite = (v) => typeof v === 'number' && Number.isFinite(v);
|
|
27
|
+
const sourceSpan = (s) => (s.out_ms - s.in_ms) / s.speed;
|
|
28
|
+
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) {
|
|
31
|
+
const portable = (v) => Array.isArray(v) ? v.map(portable)
|
|
32
|
+
: 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));
|
|
34
|
+
}
|
|
35
|
+
function gaps(items, duration) {
|
|
36
|
+
const missing = [];
|
|
37
|
+
let end = 0;
|
|
38
|
+
for (const item of [...items].sort((a, b) => a.start_ms - b.start_ms)) {
|
|
39
|
+
if (item.start_ms > end + 1)
|
|
40
|
+
missing.push({ start_ms: end, end_ms: item.start_ms });
|
|
41
|
+
end = Math.max(end, item.end_ms);
|
|
42
|
+
}
|
|
43
|
+
if (end < duration - 1)
|
|
44
|
+
missing.push({ start_ms: end, end_ms: duration });
|
|
45
|
+
return missing;
|
|
46
|
+
}
|
|
47
|
+
/** Structural and clock checks. A complete result still requires source-byte and content review. */
|
|
48
|
+
function normalizeAssemblyTimeline(raw, legacy) {
|
|
49
|
+
if (!object(raw))
|
|
50
|
+
return { status: 'incomplete', timeline: null, revision: null,
|
|
51
|
+
issues: ['Source-linked assembly timeline is missing. Legacy sound must be reviewed before migration.'], ...(legacy ? { legacy } : {}) };
|
|
52
|
+
const issues = [];
|
|
53
|
+
if (raw.format !== exports.ASSEMBLY_FORMAT)
|
|
54
|
+
issues.push(`assembly format must be ${exports.ASSEMBLY_FORMAT}`);
|
|
55
|
+
if (!hash(raw.creative_contract_revision))
|
|
56
|
+
issues.push('creative_contract_revision must identify approved bytes');
|
|
57
|
+
if (!ms(raw.duration_ms) || raw.duration_ms <= 0 || raw.duration_ms > 180_000)
|
|
58
|
+
issues.push('duration_ms must be 1–180000');
|
|
59
|
+
if (!exports.SPEECH_MODES.includes(raw.speech_mode))
|
|
60
|
+
issues.push('speech_mode is missing or unknown');
|
|
61
|
+
if (!Array.isArray(raw.soundtrack_modes) || raw.soundtrack_modes.some((m) => !exports.SOUNDTRACK_MODES.includes(m)) || new Set(raw.soundtrack_modes).size !== raw.soundtrack_modes.length)
|
|
62
|
+
issues.push('soundtrack_modes must be explicit and unique (an empty list means no extra soundtrack)');
|
|
63
|
+
if (!Array.isArray(raw.segments) || !raw.segments.length || raw.segments.length > 300)
|
|
64
|
+
issues.push('segments must contain 1–300 source-linked entries');
|
|
65
|
+
if (!Array.isArray(raw.audio_cues) || raw.audio_cues.length > 500)
|
|
66
|
+
issues.push('audio_cues must be an explicit list of at most 500');
|
|
67
|
+
if (!Array.isArray(raw.pauses) || raw.pauses.length > 500)
|
|
68
|
+
issues.push('pauses must be an explicit list of at most 500');
|
|
69
|
+
if (!Array.isArray(raw.required_cue_ids) || raw.required_cue_ids.some((id) => !text(id)))
|
|
70
|
+
issues.push('required_cue_ids must be explicit');
|
|
71
|
+
if (raw.visual_overrides !== undefined && (!Array.isArray(raw.visual_overrides) || raw.visual_overrides.length > 500))
|
|
72
|
+
issues.push('visual_overrides must be a bounded explicit list');
|
|
73
|
+
if (issues.length)
|
|
74
|
+
return { status: 'invalid', timeline: null, revision: null, issues };
|
|
75
|
+
const t = raw;
|
|
76
|
+
const validSource = (s, at) => {
|
|
77
|
+
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
|
+
issues.push(`${at}: exact asset, hash, bounds and supported speed required`);
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
};
|
|
83
|
+
const validRange = (v, at) => {
|
|
84
|
+
if (!object(v) || !ms(v.start_ms) || !ms(v.end_ms) || v.end_ms <= v.start_ms || v.end_ms > t.duration_ms) {
|
|
85
|
+
issues.push(`${at}: invalid final bounds`);
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
};
|
|
90
|
+
const ids = new Set();
|
|
91
|
+
for (const s of t.segments) {
|
|
92
|
+
if (!object(s)) {
|
|
93
|
+
issues.push('segment must be an object');
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (!text(s.id) || ids.has(s.id) || !text(s.scene_id))
|
|
97
|
+
issues.push('segment ids must be unique and scene_id required');
|
|
98
|
+
ids.add(s.id);
|
|
99
|
+
if (!exports.SPEECH_MODES.includes(s.speech_mode) || typeof s.depicts_speech !== 'boolean' || !['preserve', 'muted'].includes(s.native_audio))
|
|
100
|
+
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)
|
|
102
|
+
issues.push(`${s.id}: picture source duration/rate differs from final interval`);
|
|
103
|
+
if (s.video?.speed !== 1 && !text(s.intent))
|
|
104
|
+
issues.push(`${s.id}: speed change needs intent`);
|
|
105
|
+
if (s.depicts_speech && !['native_dialogue', 'audio_driven_lipsync', 'singing'].includes(s.speech_mode))
|
|
106
|
+
issues.push(`${s.id}: speaking face cannot use narration-only or no-speech routing`);
|
|
107
|
+
if (s.depicts_speech && s.speech_mode === 'native_dialogue' && s.native_audio !== 'preserve')
|
|
108
|
+
issues.push(`${s.id}: native dialogue may not be muted`);
|
|
109
|
+
if (s.depicts_speech && s.speech_mode === 'audio_driven_lipsync' && (!validSource(s.speech_driver, `${s.id} driver`) || s.speech_driver?.task !== 'exact_audio'))
|
|
110
|
+
issues.push(`${s.id}: exact driver audio is required; a voice reference is not a driver`);
|
|
111
|
+
else if (s.depicts_speech && s.speech_mode === 'audio_driven_lipsync' && Math.abs(sourceSpan(s.speech_driver) - (s.end_ms - s.start_ms)) > 1)
|
|
112
|
+
issues.push(`${s.id}: driver window/rate differs from its speaking picture interval`);
|
|
113
|
+
}
|
|
114
|
+
ids.clear();
|
|
115
|
+
for (const c of t.audio_cues) {
|
|
116
|
+
if (!object(c)) {
|
|
117
|
+
issues.push('audio cue must be an object');
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
if (!text(c.id) || ids.has(c.id))
|
|
121
|
+
issues.push('audio cue ids must be unique');
|
|
122
|
+
ids.add(c.id);
|
|
123
|
+
if (!speechRole(c.role) && !['source_ambience', 'music', 'sfx'].includes(c.role))
|
|
124
|
+
issues.push(`${c.id}: unknown audio role`);
|
|
125
|
+
if (!finite(c.gain_db) || c.gain_db < -80 || c.gain_db > 24 || typeof c.loop !== 'boolean')
|
|
126
|
+
issues.push(`${c.id}: explicit supported gain and loop decision required`);
|
|
127
|
+
if (validRange(c, c.id) && validSource(c.source, c.id)) {
|
|
128
|
+
if (!c.loop && Math.abs(sourceSpan(c.source) - (c.end_ms - c.start_ms)) > 1)
|
|
129
|
+
issues.push(`${c.id}: audio source clock differs from final interval`);
|
|
130
|
+
if ((c.loop || c.source.speed !== 1) && !text(c.intent))
|
|
131
|
+
issues.push(`${c.id}: looping/retiming needs intent`);
|
|
132
|
+
if (c.loop && speechRole(c.role))
|
|
133
|
+
issues.push(`${c.id}: speech cannot loop to fill a scene`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
for (const id of t.required_cue_ids)
|
|
137
|
+
if (!ids.has(id))
|
|
138
|
+
issues.push(`required cue ${id} is missing`);
|
|
139
|
+
for (const p of t.pauses)
|
|
140
|
+
if (!validRange(p, 'pause') || !text(p.reason) || !['speech', 'all_audio'].includes(p.scope))
|
|
141
|
+
issues.push('every pause needs its range, scope and reason');
|
|
142
|
+
for (const v of t.visual_overrides ?? []) {
|
|
143
|
+
if (!validRange(v, 'visual override') || !text(v.reason) || !['freeze', 'transition'].includes(v.kind))
|
|
144
|
+
issues.push('visual overrides need bounds, kind and reason');
|
|
145
|
+
else {
|
|
146
|
+
if (v.kind === 'freeze' && !v.source)
|
|
147
|
+
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 ?? '')))
|
|
149
|
+
issues.push('override sources need exact bytes, scene_id and source_kind (image or video)');
|
|
150
|
+
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
|
+
issues.push('transition must name its source segments');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (issues.length)
|
|
155
|
+
return { status: 'invalid', timeline: null, revision: null, issues };
|
|
156
|
+
if (gaps([...t.segments, ...(t.visual_overrides ?? [])], t.duration_ms).length)
|
|
157
|
+
issues.push('Picture coverage has undeclared padding or a missing source interval');
|
|
158
|
+
for (let a = 0; a < t.segments.length; a++)
|
|
159
|
+
for (let b = a + 1; b < t.segments.length; b++) {
|
|
160
|
+
const left = t.segments[a], right = t.segments[b];
|
|
161
|
+
const start = Math.max(left.start_ms, right.start_ms), end = Math.min(left.end_ms, right.end_ms);
|
|
162
|
+
if (end > start + 1 && !(t.visual_overrides ?? []).some((v) => v.kind === 'transition' && v.start_ms <= start && v.end_ms >= end && v.segment_ids?.includes(left.id) && v.segment_ids.includes(right.id)))
|
|
163
|
+
issues.push(`${left.id}/${right.id}: picture overlap needs a declared transition`);
|
|
164
|
+
}
|
|
165
|
+
for (const s of t.segments.filter((s) => s.depicts_speech)) {
|
|
166
|
+
const driver = s.speech_mode === 'audio_driven_lipsync' ? s.speech_driver : s.video;
|
|
167
|
+
const matching = t.audio_cues.filter((c) => c.role === s.speech_mode && c.gain_db > -80 && c.source.sha256 === driver.sha256 && c.source.asset_id === driver.asset_id && Math.abs(c.source.speed - driver.speed) < 1e-9 && !c.loop)
|
|
168
|
+
.filter((c) => Math.abs((c.source.in_ms + (s.start_ms - c.start_ms) * c.source.speed) - driver.in_ms) <= 1)
|
|
169
|
+
.map((c) => ({ start_ms: Math.max(s.start_ms, c.start_ms) - s.start_ms, end_ms: Math.min(s.end_ms, c.end_ms) - s.start_ms }))
|
|
170
|
+
.filter((c) => c.end_ms > c.start_ms);
|
|
171
|
+
if (gaps(matching, s.end_ms - s.start_ms).length)
|
|
172
|
+
issues.push(`${s.id}: corresponding driver audio does not cover the speaking picture on its source clock`);
|
|
173
|
+
}
|
|
174
|
+
const silence = t.soundtrack_modes.includes('intentional_silence');
|
|
175
|
+
for (let a = 0; a < t.audio_cues.length; a++)
|
|
176
|
+
for (let b = a + 1; b < t.audio_cues.length; b++) {
|
|
177
|
+
const left = t.audio_cues[a], right = t.audio_cues[b];
|
|
178
|
+
if (!speechRole(left.role) || !speechRole(right.role))
|
|
179
|
+
continue;
|
|
180
|
+
const start = Math.max(left.start_ms, right.start_ms), end = Math.min(left.end_ms, right.end_ms);
|
|
181
|
+
if (end <= start + 1)
|
|
182
|
+
continue;
|
|
183
|
+
if (left.source.sha256 === right.source.sha256 && left.source.in_ms === right.source.in_ms && left.source.out_ms === right.source.out_ms && left.source.speed === right.source.speed && left.start_ms === right.start_ms && left.end_ms === right.end_ms)
|
|
184
|
+
issues.push(`${left.id}/${right.id}: duplicated speech bus`);
|
|
185
|
+
else if (!(text(left.intent) && text(right.intent)) && !(t.visual_overrides ?? []).some((v) => v.kind === 'transition' && v.start_ms <= start && v.end_ms >= end))
|
|
186
|
+
issues.push(`${left.id}/${right.id}: overlapping speech needs explicit intent`);
|
|
187
|
+
}
|
|
188
|
+
if (silence && (t.soundtrack_modes.length !== 1 || t.audio_cues.length))
|
|
189
|
+
issues.push('intentional_silence cannot hide planned sound cues');
|
|
190
|
+
if (silence && t.speech_mode !== 'none')
|
|
191
|
+
issues.push('total silence conflicts with required speech');
|
|
192
|
+
for (const role of ['music', 'sfx', 'source_ambience'])
|
|
193
|
+
if (t.soundtrack_modes.includes(role) && !t.audio_cues.some((c) => c.role === role))
|
|
194
|
+
issues.push(`planned ${role} has no cue`);
|
|
195
|
+
if (!silence) {
|
|
196
|
+
for (const gap of gaps([...t.audio_cues, ...t.pauses.filter((p) => p.scope === 'all_audio')], t.duration_ms))
|
|
197
|
+
issues.push(`unplanned audio gap ${gap.start_ms}–${gap.end_ms}ms`);
|
|
198
|
+
}
|
|
199
|
+
if (t.speech_mode === 'none' && t.audio_cues.some((c) => speechRole(c.role)))
|
|
200
|
+
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)`);
|
|
204
|
+
return { status: issues.length ? 'invalid' : 'complete', timeline: t, revision: assemblyTimelineRevision(t), issues };
|
|
205
|
+
}
|
|
206
|
+
// A final frame and AAC padding can differ slightly from the edit clock.
|
|
207
|
+
exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS = 100;
|
|
208
|
+
function measuredFinalDurationMs(seconds) {
|
|
209
|
+
if (typeof seconds !== 'number' || !Number.isFinite(seconds) || seconds <= 0)
|
|
210
|
+
return null;
|
|
211
|
+
const duration = Math.ceil(seconds * 1000);
|
|
212
|
+
return Number.isSafeInteger(duration) ? duration : null;
|
|
213
|
+
}
|
|
214
|
+
/** Omit measurement only for preflight; final acceptance needs the measured duration. */
|
|
215
|
+
function finalContentReviewProblems(raw, outputSha, assembly, measuredDurationMs) {
|
|
216
|
+
if (!object(raw))
|
|
217
|
+
return ['Exact-final audiovisual content review is missing'];
|
|
218
|
+
const r = raw;
|
|
219
|
+
const problems = [];
|
|
220
|
+
if (assembly.status !== 'complete' || !assembly.timeline)
|
|
221
|
+
problems.push('Assembly evidence is incomplete');
|
|
222
|
+
if (r.output_sha256 !== outputSha || r.timeline_revision !== assembly.revision || r.creative_contract_revision !== assembly.timeline?.creative_contract_revision)
|
|
223
|
+
problems.push('Content review belongs to different final, timeline or approved intent bytes');
|
|
224
|
+
if (r.verdict !== 'approved' || !text(r.reviewer))
|
|
225
|
+
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');
|
|
228
|
+
const measurementRequired = measuredDurationMs !== undefined;
|
|
229
|
+
const measured = ms(measuredDurationMs) && measuredDurationMs > 0 ? measuredDurationMs : null;
|
|
230
|
+
if (measurementRequired && measured === null)
|
|
231
|
+
problems.push('The final playback duration could not be measured');
|
|
232
|
+
if (measured !== null && (!assembly.timeline || Math.abs(assembly.timeline.duration_ms - measured) > exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS))
|
|
233
|
+
problems.push(`Assembly duration must match the measured ${measured}ms final within ${exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS}ms`);
|
|
234
|
+
const duration = measured ?? assembly.timeline?.duration_ms ?? 0;
|
|
235
|
+
// Preflight accepts frame/AAC padding; final acceptance still covers the measured end.
|
|
236
|
+
const upperBound = duration + exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS;
|
|
237
|
+
const coverageValid = Array.isArray(r.coverage) && r.coverage.every((w) => object(w) && ms(w.start_ms) && ms(w.end_ms) && w.end_ms > w.start_ms && w.end_ms <= upperBound);
|
|
238
|
+
if (!coverageValid)
|
|
239
|
+
problems.push('Complete final playback coverage is missing or out of bounds');
|
|
240
|
+
else {
|
|
241
|
+
let end = 0;
|
|
242
|
+
let missing = 0;
|
|
243
|
+
for (const window of [...r.coverage].sort((a, b) => a.start_ms - b.start_ms)) {
|
|
244
|
+
missing += Math.max(0, window.start_ms - end);
|
|
245
|
+
end = Math.max(end, window.end_ms);
|
|
246
|
+
}
|
|
247
|
+
missing += Math.max(0, duration - end);
|
|
248
|
+
if (!r.coverage.length || missing > 1)
|
|
249
|
+
problems.push(`Playback and listening must cover the complete ${duration}ms final (only 1ms total timestamp rounding is allowed)`);
|
|
250
|
+
}
|
|
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');
|
|
253
|
+
for (const name of exports.CONTENT_DIMENSIONS) {
|
|
254
|
+
const dimension = r.dimensions?.[name];
|
|
255
|
+
if (!dimension || !text(dimension.note) || !['pass', 'not_applicable'].includes(dimension.status))
|
|
256
|
+
problems.push(`${name}: required content review is incomplete or needs revision`);
|
|
257
|
+
if (dimension?.status === 'not_applicable' && ['reference_and_concept', 'brand_and_product', 'action_and_continuity', 'sound_and_silence', 'pacing_and_joins', 'camera_and_lighting'].includes(name))
|
|
258
|
+
problems.push(`${name}: this responsibility cannot be skipped`);
|
|
259
|
+
if (dimension?.status === 'not_applicable' && ['voice_performance', 'pronunciation'].includes(name) && assembly.timeline?.speech_mode !== 'none')
|
|
260
|
+
problems.push(`${name}: speech is present`);
|
|
261
|
+
if (dimension?.status === 'not_applicable' && name === 'lip_sync' && assembly.timeline?.segments.some((s) => s.depicts_speech))
|
|
262
|
+
problems.push('lip_sync: a speaking face is present');
|
|
263
|
+
}
|
|
264
|
+
return problems;
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=assembly-timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly-timeline.js","sourceRoot":"","sources":["../../../src/kit/core/assembly-timeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5D;AAsBD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiBnF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7D;AAYD,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5D;AAsBD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiBnF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7D;AAYD,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBxB"}
|
package/dist/kit/core/device.js
CHANGED
|
@@ -143,6 +143,7 @@ async function deviceReport(input) {
|
|
|
143
143
|
arch: archOf(),
|
|
144
144
|
kit_version: version_1.KIT_VERSION,
|
|
145
145
|
interfaces: [...version_1.KIT_INTERFACES],
|
|
146
|
+
features: [...version_1.KIT_FEATURES],
|
|
146
147
|
ffmpeg: input.tools.ffmpeg.report,
|
|
147
148
|
ffprobe: input.tools.ffprobe.report,
|
|
148
149
|
browser,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,4BAsBC;AAuBD,kCAiBC;AAED,gCAKC;AAYD,
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":"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"}
|
package/dist/kit/core/eyes.d.ts
CHANGED
|
@@ -20,6 +20,38 @@ export interface Eyes {
|
|
|
20
20
|
tiles: SheetTile[];
|
|
21
21
|
warnings: CheckReason[];
|
|
22
22
|
look_for: string[];
|
|
23
|
+
output_sha256?: string;
|
|
24
|
+
coverage?: {
|
|
25
|
+
complete: boolean;
|
|
26
|
+
missing_scenes: string[];
|
|
27
|
+
unreadable_tiles: number[];
|
|
28
|
+
};
|
|
29
|
+
audio?: ReviewAudio;
|
|
30
|
+
/** Samples and measurements never establish perceptual review. */
|
|
31
|
+
content_review_status?: 'incomplete';
|
|
32
|
+
review_capability?: {
|
|
33
|
+
audio_perception: false;
|
|
34
|
+
motion_perception: false;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export interface ReviewAudio {
|
|
38
|
+
required: boolean;
|
|
39
|
+
final_mix: string | null;
|
|
40
|
+
before_sound: string | null;
|
|
41
|
+
windows: Array<{
|
|
42
|
+
start_s: number;
|
|
43
|
+
end_s: number;
|
|
44
|
+
reason: 'cut' | 'word_gap';
|
|
45
|
+
}>;
|
|
46
|
+
measured_near_silence?: Array<{
|
|
47
|
+
start_s: number;
|
|
48
|
+
end_s: number;
|
|
49
|
+
}>;
|
|
50
|
+
unplanned_quiet_candidates?: Array<{
|
|
51
|
+
start_s: number;
|
|
52
|
+
end_s: number;
|
|
53
|
+
}>;
|
|
54
|
+
measurement_status?: 'measured' | 'incomplete';
|
|
23
55
|
}
|
|
24
56
|
export interface Product {
|
|
25
57
|
name?: string;
|
|
@@ -37,7 +69,12 @@ export declare function tileSize(width: number, height: number): {
|
|
|
37
69
|
height: number;
|
|
38
70
|
};
|
|
39
71
|
/** Where the frames are taken: evenly across the video before its end card, then the end card's middle. */
|
|
40
|
-
export declare function sheetTimes(timeline: Pick<Timeline, 'duration_s' | 'scenes' | 'end_card'>
|
|
72
|
+
export declare function sheetTimes(timeline: Pick<Timeline, 'duration_s' | 'scenes' | 'end_card'> & {
|
|
73
|
+
fps?: number;
|
|
74
|
+
}): SheetTile[];
|
|
75
|
+
export declare function audioReviewWindows(timeline: Pick<Timeline, 'duration_s' | 'scenes'> & {
|
|
76
|
+
speech?: Timeline['speech'];
|
|
77
|
+
}): ReviewAudio['windows'];
|
|
41
78
|
/** A tile's label: its scene and second, or END for the end card. */
|
|
42
79
|
export declare function tileLabel(tile: SheetTile): string;
|
|
43
80
|
/** The tiles in a grid on a dark sheet, each with its label underneath. */
|
|
@@ -70,7 +107,11 @@ export declare function presenceWarning(name: string | undefined, photos: Float6
|
|
|
70
107
|
export declare function lookAtFinal(opts: {
|
|
71
108
|
ffmpeg: string;
|
|
72
109
|
final: string;
|
|
73
|
-
timeline: Pick<Timeline, 'duration_s' | 'width' | 'height' | 'scenes' | 'end_card'
|
|
110
|
+
timeline: Pick<Timeline, 'duration_s' | 'width' | 'height' | 'scenes' | 'end_card' | 'assembly_timeline'> & {
|
|
111
|
+
speech?: Timeline['speech'];
|
|
112
|
+
fps?: number;
|
|
113
|
+
};
|
|
114
|
+
beforeSound?: string;
|
|
74
115
|
products: Product[];
|
|
75
116
|
signal: AbortSignal;
|
|
76
117
|
/** Replaces ffmpeg, for tests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eyes.d.ts","sourceRoot":"","sources":["../../../src/kit/core/eyes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eyes.d.ts","sourceRoot":"","sources":["../../../src/kit/core/eyes.ts"],"names":[],"mappings":"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"}
|