@contractspec/lib.video-gen 2.7.5 → 2.7.7
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 +67 -25
- package/dist/browser/compositions/api-overview.js +114 -114
- package/dist/browser/compositions/index.js +115 -115
- package/dist/browser/compositions/primitives/index.js +113 -113
- package/dist/browser/compositions/social-clip.js +114 -114
- package/dist/browser/compositions/terminal-demo.js +113 -113
- package/dist/browser/design/index.js +35 -35
- package/dist/browser/generators/index.js +94 -94
- package/dist/browser/generators/scene-planner.js +94 -94
- package/dist/browser/generators/script-generator.js +94 -94
- package/dist/browser/generators/video-generator.js +94 -94
- package/dist/browser/i18n/catalogs/index.js +74 -74
- package/dist/browser/i18n/index.js +94 -94
- package/dist/browser/i18n/locale.js +2 -2
- package/dist/browser/i18n/messages.js +74 -74
- package/dist/browser/index.js +212 -212
- package/dist/browser/player/demo-player.js +116 -116
- package/dist/browser/player/index.js +116 -116
- package/dist/browser/remotion/Root.js +115 -115
- package/dist/browser/remotion/index.js +115 -115
- package/dist/compositions/api-overview.js +114 -114
- package/dist/compositions/index.d.ts +4 -4
- package/dist/compositions/index.js +115 -115
- package/dist/compositions/primitives/animated-text.d.ts +1 -1
- package/dist/compositions/primitives/brand-frame.d.ts +1 -1
- package/dist/compositions/primitives/index.d.ts +8 -8
- package/dist/compositions/primitives/index.js +113 -113
- package/dist/compositions/primitives/transition.d.ts +1 -1
- package/dist/compositions/social-clip.js +114 -114
- package/dist/compositions/terminal-demo.js +113 -113
- package/dist/design/index.d.ts +2 -2
- package/dist/design/index.js +35 -35
- package/dist/generators/index.d.ts +2 -2
- package/dist/generators/index.js +94 -94
- package/dist/generators/scene-planner.d.ts +1 -1
- package/dist/generators/scene-planner.js +94 -94
- package/dist/generators/script-generator.d.ts +2 -2
- package/dist/generators/script-generator.js +94 -94
- package/dist/generators/video-generator.js +94 -94
- package/dist/i18n/catalogs/index.d.ts +1 -1
- package/dist/i18n/catalogs/index.js +74 -74
- package/dist/i18n/index.d.ts +7 -7
- package/dist/i18n/index.js +94 -94
- package/dist/i18n/locale.d.ts +1 -1
- package/dist/i18n/locale.js +2 -2
- package/dist/i18n/messages.js +74 -74
- package/dist/index.d.ts +3 -3
- package/dist/index.js +212 -212
- package/dist/node/compositions/api-overview.js +114 -114
- package/dist/node/compositions/index.js +115 -115
- package/dist/node/compositions/primitives/index.js +113 -113
- package/dist/node/compositions/social-clip.js +114 -114
- package/dist/node/compositions/terminal-demo.js +113 -113
- package/dist/node/design/index.js +35 -35
- package/dist/node/generators/index.js +94 -94
- package/dist/node/generators/scene-planner.js +94 -94
- package/dist/node/generators/script-generator.js +94 -94
- package/dist/node/generators/video-generator.js +94 -94
- package/dist/node/i18n/catalogs/index.js +74 -74
- package/dist/node/i18n/index.js +94 -94
- package/dist/node/i18n/locale.js +2 -2
- package/dist/node/i18n/messages.js +74 -74
- package/dist/node/index.js +212 -212
- package/dist/node/player/demo-player.js +116 -116
- package/dist/node/player/index.js +116 -116
- package/dist/node/remotion/Root.js +115 -115
- package/dist/node/remotion/index.js +115 -115
- package/dist/player/demo-player.js +116 -116
- package/dist/player/index.d.ts +1 -1
- package/dist/player/index.js +116 -116
- package/dist/remotion/Root.js +115 -115
- package/dist/remotion/index.js +115 -115
- package/dist/renderers/index.d.ts +2 -2
- package/dist/types.d.ts +6 -6
- package/package.json +18 -18
|
@@ -191,54 +191,54 @@ Prioritize clarity and pacing. Each scene should communicate one idea.`,
|
|
|
191
191
|
}
|
|
192
192
|
});
|
|
193
193
|
|
|
194
|
-
// src/i18n/catalogs/
|
|
194
|
+
// src/i18n/catalogs/es.ts
|
|
195
195
|
import { defineTranslation as defineTranslation2 } from "@contractspec/lib.contracts-spec/translations";
|
|
196
|
-
var
|
|
196
|
+
var esMessages = defineTranslation2({
|
|
197
197
|
meta: {
|
|
198
198
|
key: "video-gen.messages",
|
|
199
199
|
version: "1.0.0",
|
|
200
200
|
domain: "video-gen",
|
|
201
|
-
description: "
|
|
201
|
+
description: "Spanish translations for the video-gen package",
|
|
202
202
|
owners: ["platform"],
|
|
203
203
|
stability: "experimental"
|
|
204
204
|
},
|
|
205
|
-
locale: "
|
|
205
|
+
locale: "es",
|
|
206
206
|
fallback: "en",
|
|
207
207
|
messages: {
|
|
208
208
|
"prompt.script.system": {
|
|
209
|
-
value: `
|
|
210
|
-
|
|
209
|
+
value: `Eres un redactor de guiones de narración para vídeo.
|
|
210
|
+
Escribe un guión de narración para un vídeo corto (30-60 segundos).
|
|
211
211
|
{styleGuide}
|
|
212
212
|
|
|
213
|
-
|
|
213
|
+
Devuelve JSON con la forma:
|
|
214
214
|
{
|
|
215
215
|
"segments": [{ "sceneId": string, "text": string }],
|
|
216
216
|
"fullText": string
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
Los identificadores de escena deben ser: "intro", "problems", "solutions", "metrics", "cta".
|
|
220
|
+
Incluye solo los segmentos relevantes para el brief.`,
|
|
221
221
|
description: "Script generator LLM system prompt",
|
|
222
222
|
placeholders: [{ name: "styleGuide", type: "string" }]
|
|
223
223
|
},
|
|
224
224
|
"prompt.scenePlanner.system": {
|
|
225
|
-
value: `
|
|
226
|
-
|
|
225
|
+
value: `Eres un planificador de escenas de vídeo para vídeos de marketing/documentación de ContractSpec.
|
|
226
|
+
Dado un brief de contenido, divídelo en escenas de vídeo.
|
|
227
227
|
|
|
228
|
-
|
|
229
|
-
- compositionId
|
|
230
|
-
- props
|
|
231
|
-
- durationInFrames
|
|
232
|
-
- narrationText
|
|
228
|
+
Cada escena debe tener:
|
|
229
|
+
- compositionId: uno de "ApiOverview", "SocialClip", "TerminalDemo"
|
|
230
|
+
- props: las propiedades de entrada de esa composición
|
|
231
|
+
- durationInFrames: duración a {fps} fps
|
|
232
|
+
- narrationText: lo que dice el narrador durante esta escena
|
|
233
233
|
|
|
234
|
-
|
|
234
|
+
Devuelve un objeto JSON con la forma:
|
|
235
235
|
{
|
|
236
236
|
"scenes": [{ "compositionId": string, "props": object, "durationInFrames": number, "narrationText": string }],
|
|
237
237
|
"narrationScript": string
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
|
|
241
|
-
|
|
240
|
+
Mantén la duración total alrededor de {targetSeconds} segundos.
|
|
241
|
+
Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
242
242
|
description: "Scene planner LLM system prompt",
|
|
243
243
|
placeholders: [
|
|
244
244
|
{ name: "fps", type: "number" },
|
|
@@ -246,64 +246,64 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
246
246
|
]
|
|
247
247
|
},
|
|
248
248
|
"prompt.style.professional": {
|
|
249
|
-
value: "
|
|
249
|
+
value: "Usa un tono claro, autoritario y profesional. Sé conciso y directo.",
|
|
250
250
|
description: "Style guide for professional narration"
|
|
251
251
|
},
|
|
252
252
|
"prompt.style.casual": {
|
|
253
|
-
value: "
|
|
253
|
+
value: "Usa un tono amigable y conversacional. Sé accesible y cercano.",
|
|
254
254
|
description: "Style guide for casual narration"
|
|
255
255
|
},
|
|
256
256
|
"prompt.style.technical": {
|
|
257
|
-
value: "
|
|
257
|
+
value: "Usa un lenguaje técnico preciso. Sé detallado y exacto.",
|
|
258
258
|
description: "Style guide for technical narration"
|
|
259
259
|
},
|
|
260
260
|
"script.segment.challenge": {
|
|
261
|
-
value: "
|
|
261
|
+
value: "El desafío: {content}",
|
|
262
262
|
description: "Narration segment prefix for problems",
|
|
263
263
|
placeholders: [{ name: "content", type: "string" }]
|
|
264
264
|
},
|
|
265
265
|
"script.segment.solution": {
|
|
266
|
-
value: "La
|
|
266
|
+
value: "La solución: {content}",
|
|
267
267
|
description: "Narration segment prefix for solutions",
|
|
268
268
|
placeholders: [{ name: "content", type: "string" }]
|
|
269
269
|
},
|
|
270
270
|
"script.segment.results": {
|
|
271
|
-
value: "
|
|
271
|
+
value: "Los resultados: {content}",
|
|
272
272
|
description: "Narration segment prefix for metrics",
|
|
273
273
|
placeholders: [{ name: "content", type: "string" }]
|
|
274
274
|
},
|
|
275
275
|
"scene.cta.default": {
|
|
276
|
-
value: "
|
|
276
|
+
value: "Más información",
|
|
277
277
|
description: "Default call-to-action text for scenes"
|
|
278
278
|
},
|
|
279
279
|
"scene.hook.problem": {
|
|
280
|
-
value: "
|
|
280
|
+
value: "El problema",
|
|
281
281
|
description: "Scene hook label for problem statement"
|
|
282
282
|
},
|
|
283
283
|
"scene.narration.problem": {
|
|
284
|
-
value: "
|
|
284
|
+
value: "El problema: {content}",
|
|
285
285
|
description: "Scene narration for problem statement",
|
|
286
286
|
placeholders: [{ name: "content", type: "string" }]
|
|
287
287
|
},
|
|
288
288
|
"scene.hook.solution": {
|
|
289
|
-
value: "La
|
|
289
|
+
value: "La solución",
|
|
290
290
|
description: "Scene hook label for solution"
|
|
291
291
|
},
|
|
292
292
|
"scene.narration.solution": {
|
|
293
|
-
value: "La
|
|
293
|
+
value: "La solución: {content}",
|
|
294
294
|
description: "Scene narration for solution",
|
|
295
295
|
placeholders: [{ name: "content", type: "string" }]
|
|
296
296
|
},
|
|
297
297
|
"scene.hook.results": {
|
|
298
|
-
value: "
|
|
298
|
+
value: "Resultados",
|
|
299
299
|
description: "Scene hook label for results/metrics"
|
|
300
300
|
},
|
|
301
301
|
"composition.apiOverview.generates": {
|
|
302
|
-
value: "
|
|
302
|
+
value: "Genera:",
|
|
303
303
|
description: "ApiOverview heading for generated outputs"
|
|
304
304
|
},
|
|
305
305
|
"composition.apiOverview.tagline": {
|
|
306
|
-
value: "
|
|
306
|
+
value: "Una spec. Todas las superficies.",
|
|
307
307
|
description: "ApiOverview default tagline"
|
|
308
308
|
},
|
|
309
309
|
"composition.apiOverview.output.rest": {
|
|
@@ -311,11 +311,11 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
311
311
|
description: "Generated output label: REST"
|
|
312
312
|
},
|
|
313
313
|
"composition.apiOverview.output.graphql": {
|
|
314
|
-
value: "
|
|
314
|
+
value: "Mutación GraphQL",
|
|
315
315
|
description: "Generated output label: GraphQL"
|
|
316
316
|
},
|
|
317
317
|
"composition.apiOverview.output.prisma": {
|
|
318
|
-
value: "
|
|
318
|
+
value: "Modelo Prisma",
|
|
319
319
|
description: "Generated output label: Prisma"
|
|
320
320
|
},
|
|
321
321
|
"composition.apiOverview.output.typescript": {
|
|
@@ -323,7 +323,7 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
323
323
|
description: "Generated output label: TypeScript SDK"
|
|
324
324
|
},
|
|
325
325
|
"composition.apiOverview.output.mcp": {
|
|
326
|
-
value: "
|
|
326
|
+
value: "Herramienta MCP",
|
|
327
327
|
description: "Generated output label: MCP Tool"
|
|
328
328
|
},
|
|
329
329
|
"composition.apiOverview.output.openapi": {
|
|
@@ -331,7 +331,7 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
331
331
|
description: "Generated output label: OpenAPI"
|
|
332
332
|
},
|
|
333
333
|
"composition.socialClip.cta": {
|
|
334
|
-
value: "
|
|
334
|
+
value: "Más información",
|
|
335
335
|
description: "SocialClip default CTA"
|
|
336
336
|
},
|
|
337
337
|
"composition.terminal.title": {
|
|
@@ -341,54 +341,54 @@ Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`
|
|
|
341
341
|
}
|
|
342
342
|
});
|
|
343
343
|
|
|
344
|
-
// src/i18n/catalogs/
|
|
344
|
+
// src/i18n/catalogs/fr.ts
|
|
345
345
|
import { defineTranslation as defineTranslation3 } from "@contractspec/lib.contracts-spec/translations";
|
|
346
|
-
var
|
|
346
|
+
var frMessages = defineTranslation3({
|
|
347
347
|
meta: {
|
|
348
348
|
key: "video-gen.messages",
|
|
349
349
|
version: "1.0.0",
|
|
350
350
|
domain: "video-gen",
|
|
351
|
-
description: "
|
|
351
|
+
description: "French translations for the video-gen package",
|
|
352
352
|
owners: ["platform"],
|
|
353
353
|
stability: "experimental"
|
|
354
354
|
},
|
|
355
|
-
locale: "
|
|
355
|
+
locale: "fr",
|
|
356
356
|
fallback: "en",
|
|
357
357
|
messages: {
|
|
358
358
|
"prompt.script.system": {
|
|
359
|
-
value: `
|
|
360
|
-
|
|
359
|
+
value: `Vous êtes un rédacteur de scripts de narration vidéo.
|
|
360
|
+
Écrivez un script de narration pour une courte vidéo (30-60 secondes).
|
|
361
361
|
{styleGuide}
|
|
362
362
|
|
|
363
|
-
|
|
363
|
+
Retournez du JSON avec la forme :
|
|
364
364
|
{
|
|
365
365
|
"segments": [{ "sceneId": string, "text": string }],
|
|
366
366
|
"fullText": string
|
|
367
367
|
}
|
|
368
368
|
|
|
369
|
-
|
|
370
|
-
|
|
369
|
+
Les identifiants de scène doivent être : "intro", "problems", "solutions", "metrics", "cta".
|
|
370
|
+
N'incluez que les segments pertinents au brief.`,
|
|
371
371
|
description: "Script generator LLM system prompt",
|
|
372
372
|
placeholders: [{ name: "styleGuide", type: "string" }]
|
|
373
373
|
},
|
|
374
374
|
"prompt.scenePlanner.system": {
|
|
375
|
-
value: `
|
|
376
|
-
|
|
375
|
+
value: `Vous êtes un planificateur de scènes vidéo pour les vidéos marketing/documentation de ContractSpec.
|
|
376
|
+
À partir d'un brief, décomposez-le en scènes vidéo.
|
|
377
377
|
|
|
378
|
-
|
|
379
|
-
- compositionId:
|
|
380
|
-
- props:
|
|
381
|
-
- durationInFrames:
|
|
382
|
-
- narrationText:
|
|
378
|
+
Chaque scène doit avoir :
|
|
379
|
+
- compositionId : un parmi "ApiOverview", "SocialClip", "TerminalDemo"
|
|
380
|
+
- props : les propriétés d'entrée de cette composition
|
|
381
|
+
- durationInFrames : durée à {fps} fps
|
|
382
|
+
- narrationText : ce que le narrateur dit pendant cette scène
|
|
383
383
|
|
|
384
|
-
|
|
384
|
+
Retournez un objet JSON avec la forme :
|
|
385
385
|
{
|
|
386
386
|
"scenes": [{ "compositionId": string, "props": object, "durationInFrames": number, "narrationText": string }],
|
|
387
387
|
"narrationScript": string
|
|
388
388
|
}
|
|
389
389
|
|
|
390
|
-
|
|
391
|
-
|
|
390
|
+
Gardez la durée totale autour de {targetSeconds} secondes.
|
|
391
|
+
Privilégiez la clarté et le rythme. Chaque scène doit communiquer une idée.`,
|
|
392
392
|
description: "Scene planner LLM system prompt",
|
|
393
393
|
placeholders: [
|
|
394
394
|
{ name: "fps", type: "number" },
|
|
@@ -396,64 +396,64 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
396
396
|
]
|
|
397
397
|
},
|
|
398
398
|
"prompt.style.professional": {
|
|
399
|
-
value: "
|
|
399
|
+
value: "Utilisez un ton clair, autoritaire et professionnel. Soyez concis et direct.",
|
|
400
400
|
description: "Style guide for professional narration"
|
|
401
401
|
},
|
|
402
402
|
"prompt.style.casual": {
|
|
403
|
-
value: "
|
|
403
|
+
value: "Utilisez un ton amical et conversationnel. Soyez accessible et proche.",
|
|
404
404
|
description: "Style guide for casual narration"
|
|
405
405
|
},
|
|
406
406
|
"prompt.style.technical": {
|
|
407
|
-
value: "
|
|
407
|
+
value: "Utilisez un langage technique précis. Soyez détaillé et exact.",
|
|
408
408
|
description: "Style guide for technical narration"
|
|
409
409
|
},
|
|
410
410
|
"script.segment.challenge": {
|
|
411
|
-
value: "
|
|
411
|
+
value: "Le défi : {content}",
|
|
412
412
|
description: "Narration segment prefix for problems",
|
|
413
413
|
placeholders: [{ name: "content", type: "string" }]
|
|
414
414
|
},
|
|
415
415
|
"script.segment.solution": {
|
|
416
|
-
value: "La
|
|
416
|
+
value: "La solution : {content}",
|
|
417
417
|
description: "Narration segment prefix for solutions",
|
|
418
418
|
placeholders: [{ name: "content", type: "string" }]
|
|
419
419
|
},
|
|
420
420
|
"script.segment.results": {
|
|
421
|
-
value: "
|
|
421
|
+
value: "Les résultats : {content}",
|
|
422
422
|
description: "Narration segment prefix for metrics",
|
|
423
423
|
placeholders: [{ name: "content", type: "string" }]
|
|
424
424
|
},
|
|
425
425
|
"scene.cta.default": {
|
|
426
|
-
value: "
|
|
426
|
+
value: "En savoir plus",
|
|
427
427
|
description: "Default call-to-action text for scenes"
|
|
428
428
|
},
|
|
429
429
|
"scene.hook.problem": {
|
|
430
|
-
value: "
|
|
430
|
+
value: "Le problème",
|
|
431
431
|
description: "Scene hook label for problem statement"
|
|
432
432
|
},
|
|
433
433
|
"scene.narration.problem": {
|
|
434
|
-
value: "
|
|
434
|
+
value: "Le problème : {content}",
|
|
435
435
|
description: "Scene narration for problem statement",
|
|
436
436
|
placeholders: [{ name: "content", type: "string" }]
|
|
437
437
|
},
|
|
438
438
|
"scene.hook.solution": {
|
|
439
|
-
value: "La
|
|
439
|
+
value: "La solution",
|
|
440
440
|
description: "Scene hook label for solution"
|
|
441
441
|
},
|
|
442
442
|
"scene.narration.solution": {
|
|
443
|
-
value: "La
|
|
443
|
+
value: "La solution : {content}",
|
|
444
444
|
description: "Scene narration for solution",
|
|
445
445
|
placeholders: [{ name: "content", type: "string" }]
|
|
446
446
|
},
|
|
447
447
|
"scene.hook.results": {
|
|
448
|
-
value: "
|
|
448
|
+
value: "Résultats",
|
|
449
449
|
description: "Scene hook label for results/metrics"
|
|
450
450
|
},
|
|
451
451
|
"composition.apiOverview.generates": {
|
|
452
|
-
value: "
|
|
452
|
+
value: "Génère :",
|
|
453
453
|
description: "ApiOverview heading for generated outputs"
|
|
454
454
|
},
|
|
455
455
|
"composition.apiOverview.tagline": {
|
|
456
|
-
value: "
|
|
456
|
+
value: "Un spec. Toutes les surfaces.",
|
|
457
457
|
description: "ApiOverview default tagline"
|
|
458
458
|
},
|
|
459
459
|
"composition.apiOverview.output.rest": {
|
|
@@ -461,11 +461,11 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
461
461
|
description: "Generated output label: REST"
|
|
462
462
|
},
|
|
463
463
|
"composition.apiOverview.output.graphql": {
|
|
464
|
-
value: "
|
|
464
|
+
value: "Mutation GraphQL",
|
|
465
465
|
description: "Generated output label: GraphQL"
|
|
466
466
|
},
|
|
467
467
|
"composition.apiOverview.output.prisma": {
|
|
468
|
-
value: "
|
|
468
|
+
value: "Modèle Prisma",
|
|
469
469
|
description: "Generated output label: Prisma"
|
|
470
470
|
},
|
|
471
471
|
"composition.apiOverview.output.typescript": {
|
|
@@ -473,7 +473,7 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
473
473
|
description: "Generated output label: TypeScript SDK"
|
|
474
474
|
},
|
|
475
475
|
"composition.apiOverview.output.mcp": {
|
|
476
|
-
value: "
|
|
476
|
+
value: "Outil MCP",
|
|
477
477
|
description: "Generated output label: MCP Tool"
|
|
478
478
|
},
|
|
479
479
|
"composition.apiOverview.output.openapi": {
|
|
@@ -481,7 +481,7 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
481
481
|
description: "Generated output label: OpenAPI"
|
|
482
482
|
},
|
|
483
483
|
"composition.socialClip.cta": {
|
|
484
|
-
value: "
|
|
484
|
+
value: "En savoir plus",
|
|
485
485
|
description: "SocialClip default CTA"
|
|
486
486
|
},
|
|
487
487
|
"composition.terminal.title": {
|
|
@@ -491,26 +491,6 @@ Prioriza la claridad y el ritmo. Cada escena debe comunicar una idea.`,
|
|
|
491
491
|
}
|
|
492
492
|
});
|
|
493
493
|
|
|
494
|
-
// src/i18n/messages.ts
|
|
495
|
-
import {
|
|
496
|
-
createI18nFactory
|
|
497
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
498
|
-
var factory = createI18nFactory({
|
|
499
|
-
specKey: "video-gen.messages",
|
|
500
|
-
catalogs: [enMessages, frMessages, esMessages]
|
|
501
|
-
});
|
|
502
|
-
var createVideoGenI18n = factory.create;
|
|
503
|
-
var getDefaultI18n = factory.getDefault;
|
|
504
|
-
var resetI18nRegistry = factory.resetRegistry;
|
|
505
|
-
|
|
506
|
-
// src/i18n/locale.ts
|
|
507
|
-
import {
|
|
508
|
-
DEFAULT_LOCALE,
|
|
509
|
-
SUPPORTED_LOCALES,
|
|
510
|
-
resolveLocale,
|
|
511
|
-
isSupportedLocale
|
|
512
|
-
} from "@contractspec/lib.contracts-spec/translations";
|
|
513
|
-
|
|
514
494
|
// src/i18n/keys.ts
|
|
515
495
|
var PROMPT_KEYS = {
|
|
516
496
|
"prompt.script.system": "prompt.script.system",
|
|
@@ -550,6 +530,26 @@ var I18N_KEYS = {
|
|
|
550
530
|
...SCENE_KEYS,
|
|
551
531
|
...COMPOSITION_KEYS
|
|
552
532
|
};
|
|
533
|
+
|
|
534
|
+
// src/i18n/locale.ts
|
|
535
|
+
import {
|
|
536
|
+
DEFAULT_LOCALE,
|
|
537
|
+
isSupportedLocale,
|
|
538
|
+
resolveLocale,
|
|
539
|
+
SUPPORTED_LOCALES
|
|
540
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
541
|
+
|
|
542
|
+
// src/i18n/messages.ts
|
|
543
|
+
import {
|
|
544
|
+
createI18nFactory
|
|
545
|
+
} from "@contractspec/lib.contracts-spec/translations";
|
|
546
|
+
var factory = createI18nFactory({
|
|
547
|
+
specKey: "video-gen.messages",
|
|
548
|
+
catalogs: [enMessages, frMessages, esMessages]
|
|
549
|
+
});
|
|
550
|
+
var createVideoGenI18n = factory.create;
|
|
551
|
+
var getDefaultI18n = factory.getDefault;
|
|
552
|
+
var resetI18nRegistry = factory.resetRegistry;
|
|
553
553
|
// src/generators/scene-planner.ts
|
|
554
554
|
class ScenePlanner {
|
|
555
555
|
llm;
|