@mengine/medeo-client 2.0.1-alpha.23 → 2.0.1-alpha.24

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.
@@ -9,7 +9,7 @@ import { LoroDoc, PeerID } from "loro-crdt";
9
9
  *
10
10
  * VideoDraft read-view types extracted from the Smithy IDL
11
11
  * (medeo-v2-design-materials). Re-run `vp run @mengine/idl-codegen#sync`.
12
- * Source IDL commit: e855b3035fe5d932d051b9c5043be9c25b9dec03
12
+ * Source IDL commit: 902e82e3fec1e94b36e14ef671de91abd210dc86
13
13
  *
14
14
  * WHY EVERY FIELD IS `T | undefined`:
15
15
  * AWS `smithy-typescript-codegen` widens every structure member to
@@ -39,162 +39,17 @@ declare const PartKind$1: {
39
39
  * @public
40
40
  */
41
41
  type PartKind$1 = (typeof PartKind$1)[keyof typeof PartKind$1];
42
- /**
43
- * @public
44
- * @enum
45
- */
46
- declare const AspectRatio: {
47
- readonly RATIO_16_9: "16:9";
48
- readonly RATIO_9_16: "9:16";
49
- };
50
- /**
51
- * @public
52
- */
53
- type AspectRatio = (typeof AspectRatio)[keyof typeof AspectRatio];
54
- /**
55
- * @public
56
- * @enum
57
- */
58
- declare const AssetSource: {
59
- readonly AI_IMAGES: "ai_images";
60
- readonly AI_VIDEOS: "ai_videos";
61
- readonly MY_UPLOADED_ASSETS: "my_uploaded_assets";
62
- readonly STOCK_VIDEOS: "stock_videos";
63
- };
64
- /**
65
- * @public
66
- */
67
- type AssetSource = (typeof AssetSource)[keyof typeof AssetSource];
68
- /**
69
- * An extra aspect ratio variant with independent storage keys for thumbnail,
70
- * preview video, and highlight video. Stored inside video_settings JSONB.
71
- * @public
72
- */
73
- interface RatioVariant {
74
- aspect_ratio: string | undefined;
75
- thumb_storage_key: string | undefined;
76
- video_storage_key: string | undefined;
77
- highlight_video_storage_key?: string | undefined;
78
- }
79
- /**
80
- * @public
81
- * @enum
82
- */
83
- declare const CreationRenderPolicy: {
84
- readonly AUTO_AFTER_GENERATION: "auto_after_generation";
85
- readonly MANUAL: "manual";
86
- };
87
- /**
88
- * @public
89
- */
90
- type CreationRenderPolicy = (typeof CreationRenderPolicy)[keyof typeof CreationRenderPolicy];
91
- /**
92
- * @public
93
- */
94
- interface VideoCreationSettings$1 {
95
- voice_id?: string | undefined;
96
- duration_ms?: number | undefined;
97
- aspect_ratio?: AspectRatio | undefined;
98
- video_style_id?: string | undefined;
99
- asset_sources?: AssetSource[] | undefined;
100
- recipe_id?: string | undefined;
101
- enable_high_cost_confirm?: boolean | undefined;
102
- user_confirm_cost_threshold?: number | undefined;
103
- /**
104
- * Extra aspect ratio variants with independent storage keys.
105
- * Each variant carries its own thumbnail, preview video, and optional highlight video.
106
- * Used when a recipe supports multiple aspect ratios (e.g. both 16:9 and 9:16).
107
- * @public
108
- */
109
- extra_ratios?: RatioVariant[] | undefined;
110
- /**
111
- * Render (export) trigger policy for the finished video.
112
- * manual: the user triggers export explicitly.
113
- * auto_after_generation: a render job is created automatically once generation succeeds.
114
- * When omitted, falls back to the platform default derived from the client
115
- * platform header: mobile = auto_after_generation, web = manual.
116
- * @public
117
- */
118
- render_policy?: CreationRenderPolicy | undefined;
119
- /**
120
- * Createflow workflow identifier. When set, harness uses this for exact workflow matching.
121
- * @public
122
- */
123
- workflow_id?: string | undefined;
124
- /**
125
- * Media id of the narration source the user provided via the
126
- * audio-script input slot (a narration-text document, or an audio file
127
- * to transcribe). Distinguishes the narration source from other
128
- * reference media in media_ids. Only meaningful for the
129
- * audio_script_to_video workflow.
130
- * @public
131
- */
132
- audio_script_media_id?: string | undefined;
133
- }
134
- /**
135
- * @public
136
- */
137
- interface TrackItem$1 {
138
- abs_time_position: number | undefined;
139
- part_id: string | undefined;
140
- }
141
42
  /**
142
43
  * @public
143
44
  */
144
- interface Track$1 {
45
+ interface VoiceSummary {
46
+ name: string | undefined;
145
47
  id: string | undefined;
146
- /**
147
- * Types of parts that can be contained in tracks
148
- * @public
149
- */
150
- parts_kind: PartKind$1 | undefined;
151
- is_hidden: boolean | undefined;
152
- items: TrackItem$1[] | undefined;
153
- }
154
- /**
155
- * @public
156
- */
157
- interface Attachment {
158
- part_id: string | undefined;
159
- relative_time_position: number | undefined;
160
48
  }
161
49
  /**
162
50
  * @public
163
51
  */
164
- interface PartAggregation {
165
- body_part_id: string | undefined;
166
- attachments: Attachment[] | undefined;
167
- }
168
- /**
169
- * @public
170
- * @enum
171
- */
172
- declare const AudioFadeCurve: {
173
- readonly COSINE: "cosine";
174
- readonly EXPONENTIAL: "exponential";
175
- readonly LINEAR: "linear";
176
- readonly LOGARITHMIC: "logarithmic";
177
- };
178
- /**
179
- * @public
180
- */
181
- type AudioFadeCurve = (typeof AudioFadeCurve)[keyof typeof AudioFadeCurve];
182
- /**
183
- * Audio fade configuration shared by video, BGM, and speech timeline parts.
184
- * @public
185
- */
186
- interface AudioFade {
187
- duration_ms: number | undefined;
188
- /**
189
- * Defaults to LINEAR when omitted.
190
- * @public
191
- */
192
- curve?: AudioFadeCurve | undefined;
193
- }
194
- /**
195
- * @public
196
- */
197
- interface BgmPart$1 {
52
+ interface SpeechPart$1 {
198
53
  id: string | undefined;
199
54
  duration_ms: number | undefined;
200
55
  /**
@@ -202,68 +57,12 @@ interface BgmPart$1 {
202
57
  * @public
203
58
  */
204
59
  kind: PartKind$1 | undefined;
205
- audio_storage_key: string | undefined;
60
+ audio_script: string | undefined;
206
61
  volume: number | undefined;
207
- origin_media_id: string | undefined;
208
- /**
209
- * Audio fade configuration shared by video, BGM, and speech timeline parts.
210
- * @public
211
- */
212
- audio_fade_in?: AudioFade | undefined;
213
- /**
214
- * Audio fade configuration shared by video, BGM, and speech timeline parts.
215
- * @public
216
- */
217
- audio_fade_out?: AudioFade | undefined;
218
- }
219
- /**
220
- * @public
221
- * @enum
222
- */
223
- declare const CaptionCreatedFrom: {
224
- readonly ASR: "asr";
225
- readonly IMPORT: "import";
226
- readonly TTS: "tts";
227
- readonly USER: "user";
228
- readonly VIDEO_AUDIO: "video_audio";
229
- };
230
- /**
231
- * @public
232
- */
233
- type CaptionCreatedFrom = (typeof CaptionCreatedFrom)[keyof typeof CaptionCreatedFrom];
234
- /**
235
- * @public
236
- * @enum
237
- */
238
- declare const CaptionSourceKind: {
239
- /**
240
- * Legacy caption transport value. It is not v29 relation authority.
241
- */
242
- readonly AUDIO_SCRIPT: "audio_script";
243
- readonly IMPORT: "import";
244
- readonly SPEECH_AUDIO: "speech_audio";
245
- readonly TIMELINE: "timeline";
246
- readonly USER: "user";
247
- readonly VIDEO_AUDIO: "video_audio";
248
- };
249
- /**
250
- * @public
251
- */
252
- type CaptionSourceKind = (typeof CaptionSourceKind)[keyof typeof CaptionSourceKind];
253
- /**
254
- * Legacy source metadata kept only to read and round-trip historical draft
255
- * payloads. It is not v29 relation authority and must not be used to infer
256
- * relation direction.
257
- * @public
258
- */
259
- interface DslSourceRef {
260
- source_kind?: CaptionSourceKind | undefined;
261
- source_media_id?: string | undefined;
262
- source_script_revision_id?: string | undefined;
263
- source_part_id?: string | undefined;
264
- source_clip_part_id?: string | undefined;
265
- start_timestamp_ms?: number | undefined;
266
- end_timestamp_ms?: number | undefined;
62
+ audio_storage_key: string | undefined;
63
+ origin_speech_id: string | undefined;
64
+ voice: VoiceSummary | undefined;
65
+ caption_ids: string[] | undefined;
267
66
  }
268
67
  /**
269
68
  * Caption visual style configuration
@@ -340,100 +139,102 @@ interface CaptionPart$1 {
340
139
  * @public
341
140
  */
342
141
  style?: CaptionStyle | undefined;
343
- /**
344
- * Legacy source classification retained for historical draft transport.
345
- * It is not v29 relation authority.
346
- * @public
347
- */
348
- source_kind?: CaptionSourceKind | undefined;
349
- /**
350
- * Legacy source part identifier retained for historical draft transport.
351
- * It is not v29 relation authority.
352
- * @public
353
- */
354
- source_part_id?: string | undefined;
355
- /**
356
- * Legacy creation provenance retained for historical draft transport.
357
- * @public
358
- */
359
- created_from?: CaptionCreatedFrom | undefined;
360
- /**
361
- * Legacy read-only source metadata retained for round-tripping historical
362
- * drafts. It is not v29 relation authority.
363
- * @public
364
- */
365
- source_ref?: DslSourceRef | undefined;
366
142
  }
367
143
  /**
368
- * Typed phoneme payload consumed by FE and MEngine compatibility projections.
369
144
  * @public
145
+ * @enum
370
146
  */
371
- interface PhonemeControlContent {
372
- ssml: string | undefined;
373
- }
147
+ declare const AspectRatio: {
148
+ readonly RATIO_16_9: "16:9";
149
+ readonly RATIO_9_16: "9:16";
150
+ };
151
+ /**
152
+ * @public
153
+ */
154
+ type AspectRatio = (typeof AspectRatio)[keyof typeof AspectRatio];
374
155
  /**
375
156
  * @public
376
157
  * @enum
377
158
  */
378
- declare const PhonemeControlStatus: {
379
- readonly APPLIED: "applied";
380
- readonly DRAFT: "draft";
381
- readonly OBSOLETE: "obsolete";
159
+ declare const AssetSource: {
160
+ readonly AI_IMAGES: "ai_images";
161
+ readonly AI_VIDEOS: "ai_videos";
162
+ readonly MY_UPLOADED_ASSETS: "my_uploaded_assets";
163
+ readonly STOCK_VIDEOS: "stock_videos";
382
164
  };
383
165
  /**
384
166
  * @public
385
167
  */
386
- type PhonemeControlStatus = (typeof PhonemeControlStatus)[keyof typeof PhonemeControlStatus];
168
+ type AssetSource = (typeof AssetSource)[keyof typeof AssetSource];
387
169
  /**
388
- * Resolved phoneme revision attached eagerly to SpeechPart.
170
+ * An extra aspect ratio variant with independent storage keys for thumbnail,
171
+ * preview video, and highlight video. Stored inside video_settings JSONB.
389
172
  * @public
390
173
  */
391
- interface PhonemeControlRevisionResolved {
392
- id: string | undefined;
393
- speech_part_id: string | undefined;
394
- revision_no: number | undefined;
395
- source_script_revision_id: string | undefined;
396
- /**
397
- * Typed phoneme payload consumed by FE and MEngine compatibility projections.
398
- * @public
399
- */
400
- content: PhonemeControlContent | undefined;
401
- status: PhonemeControlStatus | undefined;
402
- applied_voice_generation_id?: string | undefined;
403
- created_by?: string | undefined;
404
- created_at?: Date | undefined;
174
+ interface RatioVariant {
175
+ aspect_ratio: string | undefined;
176
+ thumb_storage_key: string | undefined;
177
+ video_storage_key: string | undefined;
178
+ highlight_video_storage_key?: string | undefined;
179
+ }
180
+ /**
181
+ * @public
182
+ */
183
+ interface VideoCreationSettings$1 {
184
+ voice_id?: string | undefined;
185
+ duration_ms?: number | undefined;
186
+ aspect_ratio?: AspectRatio | undefined;
187
+ video_style_id?: string | undefined;
188
+ asset_sources?: AssetSource[] | undefined;
189
+ recipe_id?: string | undefined;
190
+ enable_high_cost_confirm?: boolean | undefined;
191
+ user_confirm_cost_threshold?: number | undefined;
405
192
  /**
406
- * Legacy read-only projection for round-tripping historical drafts. This
407
- * is not v29 relation authority.
193
+ * Extra aspect ratio variants with independent storage keys.
194
+ * Each variant carries its own thumbnail, preview video, and optional highlight video.
195
+ * Used when a recipe supports multiple aspect ratios (e.g. both 16:9 and 9:16).
408
196
  * @public
409
197
  */
410
- source_ref?: DslSourceRef | undefined;
198
+ extra_ratios?: RatioVariant[] | undefined;
411
199
  }
412
200
  /**
413
201
  * @public
414
202
  */
415
- interface VoiceSummary {
416
- name: string | undefined;
203
+ interface TrackItem$1 {
204
+ abs_time_position: number | undefined;
205
+ part_id: string | undefined;
206
+ }
207
+ /**
208
+ * @public
209
+ */
210
+ interface Track$1 {
417
211
  id: string | undefined;
212
+ /**
213
+ * Types of parts that can be contained in tracks
214
+ * @public
215
+ */
216
+ parts_kind: PartKind$1 | undefined;
217
+ is_hidden: boolean | undefined;
218
+ items: TrackItem$1[] | undefined;
418
219
  }
419
220
  /**
420
221
  * @public
421
- * @enum
422
222
  */
423
- declare const SpeechVoiceSyncStatus: {
424
- readonly PHONEME_CHANGED: "phoneme_changed";
425
- readonly SCRIPT_CHANGED: "script_changed";
426
- readonly STALE_PHONEME_CONTROL: "stale_phoneme_control";
427
- readonly SYNCED: "synced";
428
- };
223
+ interface Attachment {
224
+ part_id: string | undefined;
225
+ relative_time_position: number | undefined;
226
+ }
429
227
  /**
430
228
  * @public
431
229
  */
432
- type SpeechVoiceSyncStatus = (typeof SpeechVoiceSyncStatus)[keyof typeof SpeechVoiceSyncStatus];
230
+ interface PartAggregation {
231
+ body_part_id: string | undefined;
232
+ attachments: Attachment[] | undefined;
233
+ }
433
234
  /**
434
235
  * @public
435
236
  */
436
- interface SpeechPart$1 {
237
+ interface BgmPart$1 {
437
238
  id: string | undefined;
438
239
  duration_ms: number | undefined;
439
240
  /**
@@ -441,65 +242,9 @@ interface SpeechPart$1 {
441
242
  * @public
442
243
  */
443
244
  kind: PartKind$1 | undefined;
444
- audio_script: string | undefined;
445
- volume: number | undefined;
446
245
  audio_storage_key: string | undefined;
447
- origin_speech_id: string | undefined;
448
- /**
449
- * Voice metadata is absent only when this part projects a recorded raw-audio
450
- * speech asset. Generated/TTS speech and normal speech assets must still
451
- * provide a voice; services enforce that distinction before projection.
452
- * @public
453
- */
454
- voice?: VoiceSummary | undefined;
455
- caption_ids: string[] | undefined;
456
- /**
457
- * Optional pronunciation guide for TTS (SSML / Pinyin / etc.).
458
- * @public
459
- */
460
- phoneme_script?: string | undefined;
461
- /**
462
- * Current immutable script revision projected into this speech part.
463
- * @public
464
- */
465
- current_script_revision_id?: string | undefined;
466
- /**
467
- * Current voice generation projected into this speech part.
468
- * @public
469
- */
470
- current_voice_generation_id?: string | undefined;
471
- /**
472
- * Latest phoneme-control revision selected for this speech, if any.
473
- * @public
474
- */
475
- current_phoneme_revision_id?: string | undefined;
476
- /**
477
- * Eagerly resolved phoneme-control content. Absent for legacy drafts or
478
- * when phoneme control has not been generated.
479
- * @public
480
- */
481
- current_phoneme?: PhonemeControlRevisionResolved | undefined;
482
- /**
483
- * Derived state of the current script relative to the generated voice.
484
- * @public
485
- */
486
- voice_sync_status?: SpeechVoiceSyncStatus | undefined;
487
- /**
488
- * Legacy read-only projection for round-tripping historical drafts. This
489
- * is not v29 relation authority.
490
- * @public
491
- */
492
- source_ref?: DslSourceRef | undefined;
493
- /**
494
- * Audio fade configuration shared by video, BGM, and speech timeline parts.
495
- * @public
496
- */
497
- audio_fade_in?: AudioFade | undefined;
498
- /**
499
- * Audio fade configuration shared by video, BGM, and speech timeline parts.
500
- * @public
501
- */
502
- audio_fade_out?: AudioFade | undefined;
246
+ volume: number | undefined;
247
+ origin_media_id: string | undefined;
503
248
  }
504
249
  /**
505
250
  * @public
@@ -604,16 +349,6 @@ interface VideoClipPart$1 {
604
349
  volume: number | undefined;
605
350
  origin_media_id: string | undefined;
606
351
  speed_shift?: SpeedShift | undefined;
607
- /**
608
- * Optional audio fade-in transport field retained for editor compatibility.
609
- * @public
610
- */
611
- audio_fade_in?: AudioFade | undefined;
612
- /**
613
- * Optional audio fade-out transport field retained for editor compatibility.
614
- * @public
615
- */
616
- audio_fade_out?: AudioFade | undefined;
617
352
  }
618
353
  /**
619
354
  * @public
@@ -738,8 +473,6 @@ type VideoClipPart = Omit<VideoClipPart$1, 'duration_ms'>;
738
473
  type SpeechPart = Omit<SpeechPart$1, 'duration_ms'> & {
739
474
  media_duration_ms?: number | undefined;
740
475
  };
741
- /** Asset namespace exposed only by the legacy read view; never an authoritative Speech fact. */
742
- type SpeechOriginAssetSystem = 'memota' | 'memota-speech';
743
476
  /**
744
477
  * Authoritative caption part. The IDL `CaptionPart` carries `duration_ms` (the
745
478
  * effective display length, a derived read-view value); the authoritative store
@@ -888,8 +621,7 @@ type VideoDraftPartUnion = {
888
621
  } | {
889
622
  video_clip?: never;
890
623
  speech: SpeechPart & {
891
- duration_ms?: number; /** Absent only on historical drafts created before this read-view discriminator. */
892
- origin_asset_system?: SpeechOriginAssetSystem;
624
+ duration_ms?: number;
893
625
  };
894
626
  caption?: never;
895
627
  bgm?: never;
@@ -937,7 +669,6 @@ type VideoDraftContentPartUnion = {
937
669
  video_clip?: never;
938
670
  speech: SpeechPart & {
939
671
  duration_ms: number | undefined;
940
- origin_asset_system?: SpeechOriginAssetSystem;
941
672
  };
942
673
  caption?: never;
943
674
  bgm?: never;
@@ -1288,6 +1019,11 @@ declare function fromVideoDocument(document: VideoDocument, options?: SolveVideo
1288
1019
  */
1289
1020
  declare function buildInitialVideoDocument(): VideoDocument;
1290
1021
  //#endregion
1022
+ //#region ../medeo-dsl/src/sandbox.d.ts
1023
+ /** Kinds a script can author. */
1024
+ type EntityKind = 'timeline' | 'track' | 'clip' | 'sequence-marker' | 'video' | 'audio' | 'voiceover-recording' | 'image' | 'voice' | 'audio-script' | 'phonetic-script' | 'caption';
1025
+ type RelationKind = 'contain' | 'marker' | 'clip-anchor' | 'voice-timbre' | 'caption-alignment' | 'derived-from';
1026
+ //#endregion
1291
1027
  //#region ../medeo-dsl/src/ids.d.ts
1292
1028
  declare const entityIdBrand: unique symbol;
1293
1029
  declare const relationIdBrand: unique symbol;
@@ -1306,23 +1042,13 @@ type JsonObject = {
1306
1042
  };
1307
1043
  //#endregion
1308
1044
  //#region ../medeo-dsl/src/entities.d.ts
1309
- type KnownEntityKind = 'axvideo' | 'timeline' | 'track' | 'clip' | 'asset' | 'video' | 'audio' | 'voiceover' | 'voice' | 'image' | 'sequence-marker' | 'viewport' | 'audio-script' | 'phonetic-script' | 'caption';
1045
+ type StoredEntityKind = EntityKind | 'asset';
1310
1046
  declare const extensionEntityKindBrand: unique symbol;
1311
1047
  type ExtensionEntityKind = string & {
1312
1048
  readonly [extensionEntityKindBrand]: 'ExtensionEntityKind';
1313
1049
  };
1314
1050
  /** Extensions require explicit branding so removed or reserved domain kinds cannot reappear accidentally. */
1315
- type EntityKind = KnownEntityKind | ExtensionEntityKind;
1316
- interface SequenceRange<Point = unknown> {
1317
- readonly start: Point;
1318
- readonly end: Point;
1319
- }
1320
- type SequenceDuration<Span = unknown> = {
1321
- readonly mode: 'from-source';
1322
- } | {
1323
- readonly mode: 'fixed';
1324
- readonly value: Span;
1325
- };
1051
+ type AnyEntityKind = StoredEntityKind | ExtensionEntityKind;
1326
1052
  interface ScriptTextSegment {
1327
1053
  readonly segmentId: string;
1328
1054
  readonly text: string;
@@ -1373,8 +1099,8 @@ type CaptionSegmentSelection = JsonObject & {
1373
1099
  };
1374
1100
  //#endregion
1375
1101
  //#region ../medeo-dsl/src/relations.d.ts
1376
- type KnownRelationKind = 'timeline-track' | 'track-clip' | 'clip-marker' | 'marker-content' | 'axvideo-marker' | 'marker-timeline' | 'from-asset' | 'to-asset' | 'generated' | 'caption-alignment' | 'clip-anchor' | 'phonetic-script-render' | 'voice-timbre' | 'audio-script-source' | 'audio-script-marker';
1377
- type RelationKind = KnownRelationKind | (string & {});
1102
+ type StoredRelationKind = RelationKind | 'from-asset' | 'to-asset';
1103
+ type AnyRelationKind = StoredRelationKind | (string & {});
1378
1104
  type RelationTrace = JsonObject;
1379
1105
  /**
1380
1106
  * Authoritative persisted relation value.
@@ -1383,7 +1109,7 @@ type RelationTrace = JsonObject;
1383
1109
  * storage adapters must preserve the submitted positions; kinds whose
1384
1110
  * semantics are unordered simply do not interpret those positions.
1385
1111
  */
1386
- interface RelationRow<K extends RelationKind = RelationKind, Metadata extends JsonObject = JsonObject> {
1112
+ interface RelationRow<K extends AnyRelationKind = AnyRelationKind, Metadata extends JsonObject = JsonObject> {
1387
1113
  readonly relationId: RelationId;
1388
1114
  readonly endpoint0EntityId: EntityId;
1389
1115
  readonly endpoint1EntityId: EntityId;
@@ -1394,7 +1120,7 @@ interface RelationRow<K extends RelationKind = RelationKind, Metadata extends Js
1394
1120
  //#endregion
1395
1121
  //#region ../medeo-dsl/src/rows.d.ts
1396
1122
  /** One persisted first-class entity. Its owned fields live directly in payload. */
1397
- interface EntityRow<K extends EntityKind = EntityKind> {
1123
+ interface EntityRow<K extends AnyEntityKind = AnyEntityKind> {
1398
1124
  readonly entityId: EntityId;
1399
1125
  readonly entityKind: K;
1400
1126
  readonly payload: JsonObject;
@@ -1412,26 +1138,12 @@ declare class EntityTimelineProjectionError extends Error {
1412
1138
  }
1413
1139
  //#endregion
1414
1140
  //#region src/document/entity-projection.d.ts
1415
- type EntityTimelineProjectionPart = Exclude<PartUnion, {
1416
- speech: SpeechPart;
1417
- }> | {
1418
- video_clip?: never;
1419
- speech: SpeechPart & {
1420
- origin_asset_system: SpeechOriginAssetSystem;
1421
- };
1422
- caption?: never;
1423
- bgm?: never;
1424
- };
1425
- /** Ephemeral compatibility document; the origin discriminator is never stored in Loro. */
1426
- type EntityTimelineProjectionDocument = Omit<VideoDocument, 'part_library'> & {
1427
- part_library: Record<string, EntityTimelineProjectionPart>;
1428
- };
1429
1141
  /**
1430
1142
  * One-way compatibility view over the Entity graph. A legacy part is never
1431
1143
  * consulted as an editing fact. Peer IDs appear only in this derived read
1432
1144
  * contract, reconstructed from relations; they are not stored in payloads.
1433
1145
  */
1434
- declare function projectEntityTimeline(rows: EntityRelationRows): EntityTimelineProjectionDocument;
1146
+ declare function projectEntityTimeline(rows: EntityRelationRows): VideoDocument;
1435
1147
  //#endregion
1436
1148
  //#region src/document/entity-timeline-layout.d.ts
1437
1149
  type EntityTimelineTrackRole = 'video_clip' | 'speech' | 'caption' | 'bgm';
@@ -2153,4 +1865,4 @@ declare const videoDocumentSchema: z.ZodObject<{
2153
1865
  }, z.core.$loose>]>>>;
2154
1866
  }, z.core.$loose>;
2155
1867
  //#endregion
2156
- export { DerivedItemPosition as $, assertValidVideoDocument as A, VideoDocument as At, EntityRelationRows as B, CaptionStyle as Bt, isImplementedSemanticOpKind as C, SpeechOriginAssetSystem as Ct, PartIdFactory as D, TrackItem as Dt, ValidationError as E, Track as Et, ResolvedEntityTrack as F, VideoDraftPartUnion as Ft, ScriptTextSegment as G, TrackItem$1 as Gt, RelationRow as H, SpeedShift as Ht, resolveEntityTimelineLayout as I, effectiveVideoClipDurationMs as It, VoiceDescriptor as J, SequenceDuration as K, EntityTimelineProjectionDocument as L, speedOf as Lt, EntityTimelineTrackRole as M, VideoDocumentValidationIssueCode as Mt, ResolvedEntityClipPlacement as N, VideoDraft as Nt, generatePartId as O, TrackItemTimePosition as Ot, ResolvedEntityTimelineLayout as P, VideoDraftContent as Pt, buildInitialVideoDocument as Q, projectEntityTimeline as R, Attachment as Rt, SemanticOpKind as S, PartUnion as St, SnapshotReadable as T, Timeline as Tt, CaptionSegmentSelection as U, Timeline$1 as Ut, EntityRow as V, PartAggregation as Vt, CaptionStyleFields as W, Track$1 as Wt, JsonValue as X, JsonObject as Y, EntityId as Z, SemanticOpName as _, BgmPart as _t, PlainMemoryAdapter as a, LANE_KINDS_IN_STACK_ORDER as at, ImplementedSemanticOpKind as b, DEFAULT_UNIT_TIME_MS as bt, MirrorVideoDocumentAdapter as c, ensureLaneTrack as ct, createMirrorVideoDocumentAdapter as d, solveVideoDocument as dt, SpeechHostMap as et, CommitOptions as f, TrackDraft as ft, SemanticOpInput as g, videoDocumentMirrorSchema as gt, SemanticEditor as h, VideoDocumentMirrorSchema as ht, JournalEntry as i, toVideoDocument as it, validateVideoDocument as j, VideoDocumentValidationIssue as jt, VideoDocumentValidationError as k, VideoClipPart as kt, MirrorVideoDocumentOptions as l, findLaneTrack as lt, SemanticDocumentAdapter as m, VideoDocumentDraft as mt, videoDocumentSchema as n, derivePositionFromAbs as nt, PlainMemoryAdapterOptions as o, LaneKind as ot, OpActor as p, TrackItemDraft as pt, SequenceRange as q, readVideoDocumentFromDraft as r, fromVideoDocument as rt, createPlainMemoryAdapter as s, SolvedVideoDocument as st, partUnionSchema as t, buildSpeechHostMap as tt, createMirrorVideoDocument as u, laneTrackId as ut, TransactAudit as v, CaptionDisplayCue as vt, SchemaValidator as w, SpeechPart as wt, PlannedSemanticOpKind as x, PartKind as xt, IMPLEMENTED_SEMANTIC_OP_KINDS as y, CaptionPart as yt, EntityTimelineProjectionError as z, CaptionPart$1 as zt };
1868
+ export { derivePositionFromAbs as $, assertValidVideoDocument as A, VideoDraftContent as At, EntityRow as B, Track$1 as Bt, isImplementedSemanticOpKind as C, TrackItem as Ct, PartIdFactory as D, VideoDocumentValidationIssue as Dt, ValidationError as E, VideoDocument as Et, ResolvedEntityTrack as F, CaptionPart$1 as Ft, VoiceDescriptor as G, CaptionSegmentSelection as H, resolveEntityTimelineLayout as I, CaptionStyle as It, EntityId as J, JsonObject as K, projectEntityTimeline as L, PartAggregation as Lt, EntityTimelineTrackRole as M, effectiveVideoClipDurationMs as Mt, ResolvedEntityClipPlacement as N, speedOf as Nt, generatePartId as O, VideoDocumentValidationIssueCode as Ot, ResolvedEntityTimelineLayout as P, Attachment as Pt, buildSpeechHostMap as Q, EntityTimelineProjectionError as R, SpeedShift as Rt, SemanticOpKind as S, Track as St, SnapshotReadable as T, VideoClipPart as Tt, CaptionStyleFields as U, RelationRow as V, TrackItem$1 as Vt, ScriptTextSegment as W, DerivedItemPosition as X, buildInitialVideoDocument as Y, SpeechHostMap as Z, SemanticOpName as _, DEFAULT_UNIT_TIME_MS as _t, PlainMemoryAdapter as a, ensureLaneTrack as at, ImplementedSemanticOpKind as b, SpeechPart as bt, MirrorVideoDocumentAdapter as c, solveVideoDocument as ct, createMirrorVideoDocumentAdapter as d, VideoDocumentDraft as dt, fromVideoDocument as et, CommitOptions as f, VideoDocumentMirrorSchema as ft, SemanticOpInput as g, CaptionPart as gt, SemanticEditor as h, CaptionDisplayCue as ht, JournalEntry as i, SolvedVideoDocument as it, validateVideoDocument as j, VideoDraftPartUnion as jt, VideoDocumentValidationError as k, VideoDraft as kt, MirrorVideoDocumentOptions as l, TrackDraft as lt, SemanticDocumentAdapter as m, BgmPart as mt, videoDocumentSchema as n, LANE_KINDS_IN_STACK_ORDER as nt, PlainMemoryAdapterOptions as o, findLaneTrack as ot, OpActor as p, videoDocumentMirrorSchema as pt, JsonValue as q, readVideoDocumentFromDraft as r, LaneKind as rt, createPlainMemoryAdapter as s, laneTrackId as st, partUnionSchema as t, toVideoDocument as tt, createMirrorVideoDocument as u, TrackItemDraft as ut, TransactAudit as v, PartKind as vt, SchemaValidator as w, TrackItemTimePosition as wt, PlannedSemanticOpKind as x, Timeline as xt, IMPLEMENTED_SEMANTIC_OP_KINDS as y, PartUnion as yt, EntityRelationRows as z, Timeline$1 as zt };