@mengine/medeo-client 2.0.1-alpha.26 → 2.0.1-alpha.28

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: 902e82e3fec1e94b36e14ef671de91abd210dc86
12
+ * Source IDL commit: e855b3035fe5d932d051b9c5043be9c25b9dec03
13
13
  *
14
14
  * WHY EVERY FIELD IS `T | undefined`:
15
15
  * AWS `smithy-typescript-codegen` widens every structure member to
@@ -41,15 +41,160 @@ declare const PartKind$1: {
41
41
  type PartKind$1 = (typeof PartKind$1)[keyof typeof PartKind$1];
42
42
  /**
43
43
  * @public
44
+ * @enum
44
45
  */
45
- interface VoiceSummary {
46
- name: string | undefined;
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
+ /**
142
+ * @public
143
+ */
144
+ interface Track$1 {
47
145
  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;
48
153
  }
49
154
  /**
50
155
  * @public
51
156
  */
52
- interface SpeechPart$1 {
157
+ interface Attachment {
158
+ part_id: string | undefined;
159
+ relative_time_position: number | undefined;
160
+ }
161
+ /**
162
+ * @public
163
+ */
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 {
53
198
  id: string | undefined;
54
199
  duration_ms: number | undefined;
55
200
  /**
@@ -57,12 +202,68 @@ interface SpeechPart$1 {
57
202
  * @public
58
203
  */
59
204
  kind: PartKind$1 | undefined;
60
- audio_script: string | undefined;
61
- volume: number | undefined;
62
205
  audio_storage_key: string | undefined;
63
- origin_speech_id: string | undefined;
64
- voice: VoiceSummary | undefined;
65
- caption_ids: string[] | undefined;
206
+ 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;
66
267
  }
67
268
  /**
68
269
  * Caption visual style configuration
@@ -139,102 +340,100 @@ interface CaptionPart$1 {
139
340
  * @public
140
341
  */
141
342
  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;
142
366
  }
143
367
  /**
368
+ * Typed phoneme payload consumed by FE and MEngine compatibility projections.
144
369
  * @public
145
- * @enum
146
370
  */
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];
371
+ interface PhonemeControlContent {
372
+ ssml: string | undefined;
373
+ }
155
374
  /**
156
375
  * @public
157
376
  * @enum
158
377
  */
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";
378
+ declare const PhonemeControlStatus: {
379
+ readonly APPLIED: "applied";
380
+ readonly DRAFT: "draft";
381
+ readonly OBSOLETE: "obsolete";
164
382
  };
165
383
  /**
166
384
  * @public
167
385
  */
168
- type AssetSource = (typeof AssetSource)[keyof typeof AssetSource];
169
- /**
170
- * An extra aspect ratio variant with independent storage keys for thumbnail,
171
- * preview video, and highlight video. Stored inside video_settings JSONB.
172
- * @public
173
- */
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
- }
386
+ type PhonemeControlStatus = (typeof PhonemeControlStatus)[keyof typeof PhonemeControlStatus];
180
387
  /**
388
+ * Resolved phoneme revision attached eagerly to SpeechPart.
181
389
  * @public
182
390
  */
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;
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;
192
396
  /**
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).
397
+ * Typed phoneme payload consumed by FE and MEngine compatibility projections.
196
398
  * @public
197
399
  */
198
- extra_ratios?: RatioVariant[] | undefined;
199
- }
200
- /**
201
- * @public
202
- */
203
- interface TrackItem$1 {
204
- abs_time_position: number | undefined;
205
- part_id: string | undefined;
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;
405
+ /**
406
+ * Legacy read-only projection for round-tripping historical drafts. This
407
+ * is not v29 relation authority.
408
+ * @public
409
+ */
410
+ source_ref?: DslSourceRef | undefined;
206
411
  }
207
412
  /**
208
413
  * @public
209
414
  */
210
- interface Track$1 {
415
+ interface VoiceSummary {
416
+ name: string | undefined;
211
417
  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;
219
418
  }
220
419
  /**
221
420
  * @public
421
+ * @enum
222
422
  */
223
- interface Attachment {
224
- part_id: string | undefined;
225
- relative_time_position: number | undefined;
226
- }
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
+ };
227
429
  /**
228
430
  * @public
229
431
  */
230
- interface PartAggregation {
231
- body_part_id: string | undefined;
232
- attachments: Attachment[] | undefined;
233
- }
432
+ type SpeechVoiceSyncStatus = (typeof SpeechVoiceSyncStatus)[keyof typeof SpeechVoiceSyncStatus];
234
433
  /**
235
434
  * @public
236
435
  */
237
- interface BgmPart$1 {
436
+ interface SpeechPart$1 {
238
437
  id: string | undefined;
239
438
  duration_ms: number | undefined;
240
439
  /**
@@ -242,9 +441,65 @@ interface BgmPart$1 {
242
441
  * @public
243
442
  */
244
443
  kind: PartKind$1 | undefined;
245
- audio_storage_key: string | undefined;
444
+ audio_script: string | undefined;
246
445
  volume: number | undefined;
247
- origin_media_id: string | undefined;
446
+ 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;
248
503
  }
249
504
  /**
250
505
  * @public
@@ -349,6 +604,16 @@ interface VideoClipPart$1 {
349
604
  volume: number | undefined;
350
605
  origin_media_id: string | undefined;
351
606
  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;
352
617
  }
353
618
  /**
354
619
  * @public