mulmocast 1.2.5 → 1.2.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/assets/templates/sifi_story.json +29 -0
- package/lib/actions/image_agents.d.ts +4 -0
- package/lib/actions/image_agents.js +3 -3
- package/lib/actions/images.js +4 -2
- package/lib/actions/movie.js +1 -1
- package/lib/agents/image_openai_agent.js +1 -1
- package/lib/agents/lipsync_replicate_agent.js +9 -3
- package/lib/cli/commands/tool/index.js +2 -1
- package/lib/cli/commands/tool/whisper/builder.d.ts +4 -0
- package/lib/cli/commands/tool/whisper/builder.js +7 -0
- package/lib/cli/commands/tool/whisper/handler.d.ts +5 -0
- package/lib/cli/commands/tool/whisper/handler.js +100 -0
- package/lib/cli/commands/tool/whisper/index.d.ts +4 -0
- package/lib/cli/commands/tool/whisper/index.js +4 -0
- package/lib/data/promptTemplates.d.ts +76 -0
- package/lib/data/promptTemplates.js +55 -0
- package/lib/data/scriptTemplates.d.ts +20 -0
- package/lib/data/scriptTemplates.js +26 -0
- package/lib/data/templateDataSet.d.ts +1 -0
- package/lib/data/templateDataSet.js +4 -0
- package/lib/types/schema.d.ts +8 -0
- package/lib/types/schema.js +1 -0
- package/lib/utils/context.d.ts +2 -0
- package/lib/utils/context.js +1 -0
- package/lib/utils/file.d.ts +4 -1
- package/lib/utils/file.js +4 -4
- package/package.json +8 -7
- package/scripts/templates/story_with_characters.json +25 -0
- package/lib/index.d.ts +0 -8
- package/lib/index.js +0 -9
- package/lib/methods/mulmo_script_template.d.ts +0 -4
- package/lib/methods/mulmo_script_template.js +0 -6
- package/lib/utils/assets.d.ts +0 -18
- package/lib/utils/assets.js +0 -101
- package/lib/utils/preprocess.d.ts +0 -343
- package/lib/utils/preprocess.js +0 -58
- package/lib/utils/system_prompt.d.ts +0 -1
- package/lib/utils/system_prompt.js +0 -1
- package/lib/utils/templates.d.ts +0 -3
- package/lib/utils/templates.js +0 -46
package/lib/utils/context.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
14
14
|
soundEffectFile?: string | undefined;
|
|
15
15
|
lipSyncFile?: string | undefined;
|
|
16
16
|
captionFile?: string | undefined;
|
|
17
|
+
htmlImageFile?: string | undefined;
|
|
17
18
|
}[];
|
|
18
19
|
script: {
|
|
19
20
|
lang: string;
|
|
@@ -360,6 +361,7 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
360
361
|
soundEffectFile?: string | undefined;
|
|
361
362
|
lipSyncFile?: string | undefined;
|
|
362
363
|
captionFile?: string | undefined;
|
|
364
|
+
htmlImageFile?: string | undefined;
|
|
363
365
|
}[];
|
|
364
366
|
script: {
|
|
365
367
|
lang: string;
|
package/lib/utils/context.js
CHANGED
|
@@ -5,6 +5,7 @@ import { mulmoStudioSchema, mulmoCaptionParamsSchema, mulmoPresentationStyleSche
|
|
|
5
5
|
import { MulmoPresentationStyleMethods, MulmoScriptMethods, MulmoStudioMultiLingualMethod } from "../methods/index.js";
|
|
6
6
|
const mulmoCredit = (speaker) => {
|
|
7
7
|
return {
|
|
8
|
+
id: "mulmo_credit",
|
|
8
9
|
speaker,
|
|
9
10
|
text: "",
|
|
10
11
|
image: {
|
package/lib/utils/file.d.ts
CHANGED
|
@@ -24,7 +24,10 @@ export declare const getAudioFilePath: (audioDirPath: string, dirName: string, f
|
|
|
24
24
|
export declare const getAudioArtifactFilePath: (context: MulmoStudioContext) => string;
|
|
25
25
|
export declare const getOutputVideoFilePath: (outDirPath: string, fileName: string, lang?: string, caption?: string) => string;
|
|
26
26
|
export declare const imageSuffix = "p";
|
|
27
|
-
export declare const getBeatPngImagePath: (context: MulmoStudioContext, index: number) =>
|
|
27
|
+
export declare const getBeatPngImagePath: (context: MulmoStudioContext, index: number) => {
|
|
28
|
+
imagePath: string;
|
|
29
|
+
htmlImageFile: string;
|
|
30
|
+
};
|
|
28
31
|
export declare const getBeatMoviePaths: (context: MulmoStudioContext, index: number) => {
|
|
29
32
|
movieFile: string;
|
|
30
33
|
soundEffectFile: string;
|
package/lib/utils/file.js
CHANGED
|
@@ -89,10 +89,10 @@ export const imageSuffix = "p";
|
|
|
89
89
|
export const getBeatPngImagePath = (context, index) => {
|
|
90
90
|
const imageProjectDirPath = MulmoStudioContextMethods.getImageProjectDirPath(context);
|
|
91
91
|
const beat = context.studio.script.beats[index]; // beat could be undefined only in a test case.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
return
|
|
92
|
+
const filename = beat?.id ? `${beat.id}` : `${index}${imageSuffix}`;
|
|
93
|
+
const imagePath = `${imageProjectDirPath}/${filename}.png`;
|
|
94
|
+
const htmlImageFile = `${imageProjectDirPath}/${filename}_html.png`;
|
|
95
|
+
return { imagePath, htmlImageFile };
|
|
96
96
|
};
|
|
97
97
|
export const getBeatMoviePaths = (context, index) => {
|
|
98
98
|
const imageProjectDirPath = MulmoStudioContextMethods.getImageProjectDirPath(context);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mulmocast",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.node.js",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"prompt": "npx tsx ./src/cli/bin.ts tool prompt",
|
|
51
51
|
"schema": "npx tsx ./src/cli/bin.ts tool schema",
|
|
52
52
|
"story_to_script": "npx tsx ./src/cli/bin.ts tool story_to_script",
|
|
53
|
+
"whisper": "npx tsx ./src/cli/bin.ts tool whisper",
|
|
53
54
|
"latest": "yarn upgrade-interactive --latest",
|
|
54
55
|
"format": "prettier --write '{src,scripts,assets/templates,assets/styles,draft,ideason,scripts_mag2,proto,test,batch,graphai,output,docs/scripts}/**/*.{ts,json,yaml}'",
|
|
55
56
|
"deep_research": "npx tsx ./src/tools/deep_research.ts",
|
|
@@ -66,20 +67,20 @@
|
|
|
66
67
|
"homepage": "https://github.com/receptron/mulmocast-cli#readme",
|
|
67
68
|
"dependencies": {
|
|
68
69
|
"@google-cloud/text-to-speech": "^6.2.0",
|
|
69
|
-
"@google/genai": "^1.
|
|
70
|
+
"@google/genai": "^1.15.0",
|
|
70
71
|
"@graphai/anthropic_agent": "^2.0.11",
|
|
71
72
|
"@graphai/browserless_agent": "^2.0.1",
|
|
72
73
|
"@graphai/gemini_agent": "^2.0.1",
|
|
73
74
|
"@graphai/groq_agent": "^2.0.2",
|
|
74
75
|
"@graphai/input_agents": "^1.0.2",
|
|
75
|
-
"@graphai/openai_agent": "^2.0.
|
|
76
|
+
"@graphai/openai_agent": "^2.0.7",
|
|
76
77
|
"@graphai/stream_agent_filter": "^2.0.2",
|
|
77
78
|
"@graphai/vanilla": "^2.0.12",
|
|
78
79
|
"@graphai/vanilla_node_agents": "^2.0.4",
|
|
79
80
|
"@inquirer/input": "^4.2.1",
|
|
80
81
|
"@inquirer/select": "^4.3.1",
|
|
81
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
82
|
-
"@tavily/core": "^0.5.
|
|
82
|
+
"@modelcontextprotocol/sdk": "^1.17.3",
|
|
83
|
+
"@tavily/core": "^0.5.11",
|
|
83
84
|
"canvas": "^3.2.0",
|
|
84
85
|
"clipboardy": "^4.0.0",
|
|
85
86
|
"dotenv": "^17.2.1",
|
|
@@ -87,8 +88,8 @@
|
|
|
87
88
|
"graphai": "^2.0.14",
|
|
88
89
|
"marked": "^16.2.0",
|
|
89
90
|
"ora": "^8.2.0",
|
|
90
|
-
"puppeteer": "^24.
|
|
91
|
-
"replicate": "^1.0
|
|
91
|
+
"puppeteer": "^24.17.0",
|
|
92
|
+
"replicate": "^1.1.0",
|
|
92
93
|
"yaml": "^2.8.1",
|
|
93
94
|
"yargs": "^18.0.0",
|
|
94
95
|
"zod": "^3.25.76",
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1",
|
|
4
|
+
"credit": "closing"
|
|
5
|
+
},
|
|
6
|
+
"title": "[TITLE: Brief, engaging title for the topic]",
|
|
7
|
+
"lang": "en",
|
|
8
|
+
"beats": [
|
|
9
|
+
{
|
|
10
|
+
"text": "[STORY TEXT FOR THIS BEAT FOR THIS BEAT]",
|
|
11
|
+
"imagePrompt": "[IMAGE_PROMPT FOR THIS BEAT with both characters]",
|
|
12
|
+
"imageNames": ["[CHARACTER_ID_1]", "[CHARACTER_ID_2]"]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"text": "[STORY TEXT FOR THIS BEAT FOR THIS BEAT]",
|
|
16
|
+
"imagePrompt": "[IMAGE_PROMPT FOR THIS BEAT with a single character]",
|
|
17
|
+
"imageNames": ["[CHARACTER_ID_1]"]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"text": "[STORY TEXT FOR THIS BEAT FOR THIS BEAT]",
|
|
21
|
+
"imagePrompt": "[IMAGE_PROMPT FOR THIS BEAT with another character]",
|
|
22
|
+
"imageNames": ["[CHARACTER_ID_2]"]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
package/lib/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from "./actions/index.js";
|
|
2
|
-
export * from "./cli/helpers.js";
|
|
3
|
-
export * from "./utils/file.js";
|
|
4
|
-
export * from "./utils/ffmpeg_utils.js";
|
|
5
|
-
export * from "./utils/provider2agent.js";
|
|
6
|
-
export * from "./methods/index.js";
|
|
7
|
-
export * from "./agents/index.js";
|
|
8
|
-
export * from "./types/index.js";
|
package/lib/index.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// NOTE: If you want to support usage in the browser codebase, also add to src/index.browser.ts
|
|
2
|
-
export * from "./actions/index.js";
|
|
3
|
-
export * from "./cli/helpers.js";
|
|
4
|
-
export * from "./utils/file.js";
|
|
5
|
-
export * from "./utils/ffmpeg_utils.js";
|
|
6
|
-
export * from "./utils/provider2agent.js";
|
|
7
|
-
export * from "./methods/index.js";
|
|
8
|
-
export * from "./agents/index.js";
|
|
9
|
-
export * from "./types/index.js";
|
package/lib/utils/assets.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
type BgmAsset = {
|
|
2
|
-
name: string;
|
|
3
|
-
title: string;
|
|
4
|
-
url: string;
|
|
5
|
-
suno_url: string;
|
|
6
|
-
date: string;
|
|
7
|
-
duration: string;
|
|
8
|
-
account: string;
|
|
9
|
-
original_license: string;
|
|
10
|
-
prompt: string;
|
|
11
|
-
model: string;
|
|
12
|
-
};
|
|
13
|
-
export type BgmAssets = {
|
|
14
|
-
license: string;
|
|
15
|
-
bgms: BgmAsset[];
|
|
16
|
-
};
|
|
17
|
-
export declare const bgmAssets: BgmAssets;
|
|
18
|
-
export {};
|
package/lib/utils/assets.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
export const bgmAssets = {
|
|
2
|
-
license: "Free to distribute as the BMG of media generated by MulmoCast, including commercial use.",
|
|
3
|
-
bgms: [
|
|
4
|
-
{
|
|
5
|
-
name: "story001.mp3",
|
|
6
|
-
title: "Whispered Melody",
|
|
7
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story001.mp3",
|
|
8
|
-
suno_url: "https://suno.com/s/v6zer50aQJu8Y0qA",
|
|
9
|
-
date: "2025-06-17",
|
|
10
|
-
duration: "03:17",
|
|
11
|
-
account: "@snakajima",
|
|
12
|
-
original_license: "Generated by Suno with commercial use rights (PRO Plan)",
|
|
13
|
-
prompt: "instrumental, smooth, piano",
|
|
14
|
-
model: "v4.5 beta",
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: "story002.mp3",
|
|
18
|
-
title: "Rise and Shine",
|
|
19
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story002.mp3",
|
|
20
|
-
suno_url: "https://suno.com/s/mJnvyu3UXnkdAPfQ",
|
|
21
|
-
date: "2025-06-17",
|
|
22
|
-
duration: "04:04",
|
|
23
|
-
account: "@snakajima",
|
|
24
|
-
original_license: "Generated by Suno with commercial use rights (PRO Plan)",
|
|
25
|
-
prompt: "techno, inspiring, piano",
|
|
26
|
-
model: "v4.5 beta",
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "story003.mp3",
|
|
30
|
-
title: "Chasing the Sunset",
|
|
31
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story003.mp3",
|
|
32
|
-
suno_url: "https://suno.com/s/2zGjMQ9vURJbaMZA",
|
|
33
|
-
date: "2025-06-17",
|
|
34
|
-
duration: "02:49",
|
|
35
|
-
account: "@snakajima",
|
|
36
|
-
original_license: "Generated by Suno with commercial use rights (PRO Plan)",
|
|
37
|
-
prompt: "piano, inspiring, sunset",
|
|
38
|
-
model: "v4.5 beta",
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "story004.mp3",
|
|
42
|
-
title: "Whispering Keys",
|
|
43
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story004.mp3",
|
|
44
|
-
suno_url: "https://suno.com/s/0SFoBRsBWsncw6tu",
|
|
45
|
-
date: "2025-06-17",
|
|
46
|
-
duration: "04:00",
|
|
47
|
-
account: "@snakajima",
|
|
48
|
-
original_license: "Generated by Suno with commercial use rights (PRO Plan)",
|
|
49
|
-
prompt: "Piano, classical, ambient",
|
|
50
|
-
model: "v4",
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "story005.mp3",
|
|
54
|
-
title: "Whisper of Ivory",
|
|
55
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story005.mp3",
|
|
56
|
-
suno_url: "https://suno.com/s/0SFoBRsBWsncw6tu",
|
|
57
|
-
date: "2025-06-17",
|
|
58
|
-
duration: "04:00",
|
|
59
|
-
account: "@snakajima",
|
|
60
|
-
original_license: "Generated by Suno with commercial use rights (PRO Plan)",
|
|
61
|
-
prompt: "Piano solo, classical, ambient",
|
|
62
|
-
model: "v4",
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: "theme001.mp3",
|
|
66
|
-
title: "Rise of the Flame",
|
|
67
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/theme001.mp3",
|
|
68
|
-
suno_url: "https://suno.com/s/WhYOf8oJYhBgSKET",
|
|
69
|
-
date: "2025-06-20",
|
|
70
|
-
duration: "03:23",
|
|
71
|
-
account: "@snakajima",
|
|
72
|
-
original_license: "Generated by Suno with commercial use rights (PRO Plan)",
|
|
73
|
-
prompt: "Olympic Theme, classical, emotional",
|
|
74
|
-
model: "v4",
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: "olympic001.mp3",
|
|
78
|
-
title: "Olympic-style Theme Music",
|
|
79
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/olympic001.mp3",
|
|
80
|
-
suno_url: "https://suno.com/s/32wpnmCrkFVvkTSQ",
|
|
81
|
-
date: "2025-07-17",
|
|
82
|
-
duration: "02:54",
|
|
83
|
-
account: "@snakajima",
|
|
84
|
-
original_license: "Generated by Suno with commercial use rights (PRO Plan)",
|
|
85
|
-
prompt: "Epic orchestral fanfare in the style of John Williams' Olympic Fanfare and Theme. Bright brass fanfare, soaring strings, powerful percussion, and heroic French horn melodies. Triumphant and majestic mood, suitable for an opening ceremony or national celebration. Emphasize dynamic builds, rich harmonies, and cinematic grandeur.",
|
|
86
|
-
model: "v4.5+",
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: "morning001.mp3",
|
|
90
|
-
title: "Morning Dance",
|
|
91
|
-
url: "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/morning001.mp3",
|
|
92
|
-
suno_url: "https://suno.com/s/9MTkutZYqxeyBlwK",
|
|
93
|
-
date: "2025-07-17",
|
|
94
|
-
duration: "03:52",
|
|
95
|
-
account: "@snakajima",
|
|
96
|
-
original_license: "morning, piano solo, Japanese name, sexy",
|
|
97
|
-
prompt: "morning, piano solo, Japanese name, sexy",
|
|
98
|
-
model: "v4.5+",
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
|
-
};
|
|
@@ -1,343 +0,0 @@
|
|
|
1
|
-
import { MulmoStudio, MulmoScript, MulmoPresentationStyle } from "../types/index.js";
|
|
2
|
-
export declare const createOrUpdateStudioData: (_mulmoScript: MulmoScript, currentStudio: MulmoStudio | undefined, fileName: string, videoCaptionLang?: string, presentationStyle?: MulmoPresentationStyle | null) => {
|
|
3
|
-
beats: {
|
|
4
|
-
duration?: number | undefined;
|
|
5
|
-
startAt?: number | undefined;
|
|
6
|
-
hash?: string | undefined;
|
|
7
|
-
audioDuration?: number | undefined;
|
|
8
|
-
movieDuration?: number | undefined;
|
|
9
|
-
silenceDuration?: number | undefined;
|
|
10
|
-
hasMovieAudio?: boolean | undefined;
|
|
11
|
-
audioFile?: string | undefined;
|
|
12
|
-
imageFile?: string | undefined;
|
|
13
|
-
movieFile?: string | undefined;
|
|
14
|
-
soundEffectFile?: string | undefined;
|
|
15
|
-
lipSyncFile?: string | undefined;
|
|
16
|
-
captionFile?: string | undefined;
|
|
17
|
-
}[];
|
|
18
|
-
script: {
|
|
19
|
-
lang: string;
|
|
20
|
-
imageParams: {
|
|
21
|
-
provider: string;
|
|
22
|
-
model?: string | undefined;
|
|
23
|
-
style?: string | undefined;
|
|
24
|
-
quality?: string | undefined;
|
|
25
|
-
moderation?: string | undefined;
|
|
26
|
-
images?: Record<string, {
|
|
27
|
-
type: "image";
|
|
28
|
-
source: {
|
|
29
|
-
url: string;
|
|
30
|
-
kind: "url";
|
|
31
|
-
} | {
|
|
32
|
-
kind: "base64";
|
|
33
|
-
data: string;
|
|
34
|
-
} | {
|
|
35
|
-
text: string;
|
|
36
|
-
kind: "text";
|
|
37
|
-
} | {
|
|
38
|
-
path: string;
|
|
39
|
-
kind: "path";
|
|
40
|
-
};
|
|
41
|
-
} | {
|
|
42
|
-
type: "imagePrompt";
|
|
43
|
-
prompt: string;
|
|
44
|
-
}> | undefined;
|
|
45
|
-
};
|
|
46
|
-
audioParams: {
|
|
47
|
-
padding: number;
|
|
48
|
-
introPadding: number;
|
|
49
|
-
closingPadding: number;
|
|
50
|
-
outroPadding: number;
|
|
51
|
-
bgmVolume: number;
|
|
52
|
-
audioVolume: number;
|
|
53
|
-
suppressSpeech: boolean;
|
|
54
|
-
bgm?: {
|
|
55
|
-
url: string;
|
|
56
|
-
kind: "url";
|
|
57
|
-
} | {
|
|
58
|
-
kind: "base64";
|
|
59
|
-
data: string;
|
|
60
|
-
} | {
|
|
61
|
-
text: string;
|
|
62
|
-
kind: "text";
|
|
63
|
-
} | {
|
|
64
|
-
path: string;
|
|
65
|
-
kind: "path";
|
|
66
|
-
} | undefined;
|
|
67
|
-
};
|
|
68
|
-
movieParams: {
|
|
69
|
-
provider?: string | undefined;
|
|
70
|
-
model?: string | undefined;
|
|
71
|
-
fillOption?: {
|
|
72
|
-
style: "aspectFit" | "aspectFill";
|
|
73
|
-
} | undefined;
|
|
74
|
-
transition?: {
|
|
75
|
-
type: "fade" | "slideout_left";
|
|
76
|
-
duration: number;
|
|
77
|
-
} | undefined;
|
|
78
|
-
};
|
|
79
|
-
soundEffectParams: {
|
|
80
|
-
provider?: string | undefined;
|
|
81
|
-
model?: string | undefined;
|
|
82
|
-
};
|
|
83
|
-
$mulmocast: {
|
|
84
|
-
version: "1.1";
|
|
85
|
-
credit?: "closing" | undefined;
|
|
86
|
-
};
|
|
87
|
-
canvasSize: {
|
|
88
|
-
width: number;
|
|
89
|
-
height: number;
|
|
90
|
-
};
|
|
91
|
-
speechParams: {
|
|
92
|
-
speakers: Record<string, {
|
|
93
|
-
voiceId: string;
|
|
94
|
-
lang?: Record<string, {
|
|
95
|
-
voiceId: string;
|
|
96
|
-
displayName?: Record<string, string> | undefined;
|
|
97
|
-
isDefault?: boolean | undefined;
|
|
98
|
-
speechOptions?: {
|
|
99
|
-
speed?: number | undefined;
|
|
100
|
-
instruction?: string | undefined;
|
|
101
|
-
} | undefined;
|
|
102
|
-
provider?: string | undefined;
|
|
103
|
-
model?: string | undefined;
|
|
104
|
-
}> | undefined;
|
|
105
|
-
displayName?: Record<string, string> | undefined;
|
|
106
|
-
isDefault?: boolean | undefined;
|
|
107
|
-
speechOptions?: {
|
|
108
|
-
speed?: number | undefined;
|
|
109
|
-
instruction?: string | undefined;
|
|
110
|
-
} | undefined;
|
|
111
|
-
provider?: string | undefined;
|
|
112
|
-
model?: string | undefined;
|
|
113
|
-
}>;
|
|
114
|
-
};
|
|
115
|
-
beats: {
|
|
116
|
-
text: string;
|
|
117
|
-
image?: {
|
|
118
|
-
type: "markdown";
|
|
119
|
-
markdown: string | string[];
|
|
120
|
-
} | {
|
|
121
|
-
type: "web";
|
|
122
|
-
url: string;
|
|
123
|
-
} | {
|
|
124
|
-
type: "pdf";
|
|
125
|
-
source: {
|
|
126
|
-
url: string;
|
|
127
|
-
kind: "url";
|
|
128
|
-
} | {
|
|
129
|
-
kind: "base64";
|
|
130
|
-
data: string;
|
|
131
|
-
} | {
|
|
132
|
-
text: string;
|
|
133
|
-
kind: "text";
|
|
134
|
-
} | {
|
|
135
|
-
path: string;
|
|
136
|
-
kind: "path";
|
|
137
|
-
};
|
|
138
|
-
} | {
|
|
139
|
-
type: "image";
|
|
140
|
-
source: {
|
|
141
|
-
url: string;
|
|
142
|
-
kind: "url";
|
|
143
|
-
} | {
|
|
144
|
-
kind: "base64";
|
|
145
|
-
data: string;
|
|
146
|
-
} | {
|
|
147
|
-
text: string;
|
|
148
|
-
kind: "text";
|
|
149
|
-
} | {
|
|
150
|
-
path: string;
|
|
151
|
-
kind: "path";
|
|
152
|
-
};
|
|
153
|
-
} | {
|
|
154
|
-
type: "svg";
|
|
155
|
-
source: {
|
|
156
|
-
url: string;
|
|
157
|
-
kind: "url";
|
|
158
|
-
} | {
|
|
159
|
-
kind: "base64";
|
|
160
|
-
data: string;
|
|
161
|
-
} | {
|
|
162
|
-
text: string;
|
|
163
|
-
kind: "text";
|
|
164
|
-
} | {
|
|
165
|
-
path: string;
|
|
166
|
-
kind: "path";
|
|
167
|
-
};
|
|
168
|
-
} | {
|
|
169
|
-
type: "movie";
|
|
170
|
-
source: {
|
|
171
|
-
url: string;
|
|
172
|
-
kind: "url";
|
|
173
|
-
} | {
|
|
174
|
-
kind: "base64";
|
|
175
|
-
data: string;
|
|
176
|
-
} | {
|
|
177
|
-
text: string;
|
|
178
|
-
kind: "text";
|
|
179
|
-
} | {
|
|
180
|
-
path: string;
|
|
181
|
-
kind: "path";
|
|
182
|
-
};
|
|
183
|
-
} | {
|
|
184
|
-
type: "textSlide";
|
|
185
|
-
slide: {
|
|
186
|
-
title: string;
|
|
187
|
-
subtitle?: string | undefined;
|
|
188
|
-
bullets?: string[] | undefined;
|
|
189
|
-
};
|
|
190
|
-
} | {
|
|
191
|
-
type: "chart";
|
|
192
|
-
title: string;
|
|
193
|
-
chartData: Record<string, any>;
|
|
194
|
-
} | {
|
|
195
|
-
code: {
|
|
196
|
-
url: string;
|
|
197
|
-
kind: "url";
|
|
198
|
-
} | {
|
|
199
|
-
kind: "base64";
|
|
200
|
-
data: string;
|
|
201
|
-
} | {
|
|
202
|
-
text: string;
|
|
203
|
-
kind: "text";
|
|
204
|
-
} | {
|
|
205
|
-
path: string;
|
|
206
|
-
kind: "path";
|
|
207
|
-
};
|
|
208
|
-
type: "mermaid";
|
|
209
|
-
title: string;
|
|
210
|
-
appendix?: string[] | undefined;
|
|
211
|
-
} | {
|
|
212
|
-
type: "html_tailwind";
|
|
213
|
-
html: string | string[];
|
|
214
|
-
} | {
|
|
215
|
-
type: "beat";
|
|
216
|
-
id?: string | undefined;
|
|
217
|
-
} | {
|
|
218
|
-
type: "voice_over";
|
|
219
|
-
startAt?: number | undefined;
|
|
220
|
-
} | undefined;
|
|
221
|
-
audio?: {
|
|
222
|
-
type: "audio";
|
|
223
|
-
source: {
|
|
224
|
-
url: string;
|
|
225
|
-
kind: "url";
|
|
226
|
-
} | {
|
|
227
|
-
kind: "base64";
|
|
228
|
-
data: string;
|
|
229
|
-
} | {
|
|
230
|
-
text: string;
|
|
231
|
-
kind: "text";
|
|
232
|
-
} | {
|
|
233
|
-
path: string;
|
|
234
|
-
kind: "path";
|
|
235
|
-
};
|
|
236
|
-
} | {
|
|
237
|
-
type: "midi";
|
|
238
|
-
source: string;
|
|
239
|
-
} | undefined;
|
|
240
|
-
duration?: number | undefined;
|
|
241
|
-
speechOptions?: {
|
|
242
|
-
speed?: number | undefined;
|
|
243
|
-
instruction?: string | undefined;
|
|
244
|
-
} | undefined;
|
|
245
|
-
id?: string | undefined;
|
|
246
|
-
imagePrompt?: string | undefined;
|
|
247
|
-
speaker?: string | undefined;
|
|
248
|
-
description?: string | undefined;
|
|
249
|
-
imageParams?: {
|
|
250
|
-
provider: string;
|
|
251
|
-
model?: string | undefined;
|
|
252
|
-
style?: string | undefined;
|
|
253
|
-
quality?: string | undefined;
|
|
254
|
-
moderation?: string | undefined;
|
|
255
|
-
images?: Record<string, {
|
|
256
|
-
type: "image";
|
|
257
|
-
source: {
|
|
258
|
-
url: string;
|
|
259
|
-
kind: "url";
|
|
260
|
-
} | {
|
|
261
|
-
kind: "base64";
|
|
262
|
-
data: string;
|
|
263
|
-
} | {
|
|
264
|
-
text: string;
|
|
265
|
-
kind: "text";
|
|
266
|
-
} | {
|
|
267
|
-
path: string;
|
|
268
|
-
kind: "path";
|
|
269
|
-
};
|
|
270
|
-
} | {
|
|
271
|
-
type: "imagePrompt";
|
|
272
|
-
prompt: string;
|
|
273
|
-
}> | undefined;
|
|
274
|
-
} | undefined;
|
|
275
|
-
audioParams?: {
|
|
276
|
-
movieVolume: number;
|
|
277
|
-
padding?: number | undefined;
|
|
278
|
-
} | undefined;
|
|
279
|
-
movieParams?: {
|
|
280
|
-
speed?: number | undefined;
|
|
281
|
-
provider?: string | undefined;
|
|
282
|
-
model?: string | undefined;
|
|
283
|
-
fillOption?: {
|
|
284
|
-
style: "aspectFit" | "aspectFill";
|
|
285
|
-
} | undefined;
|
|
286
|
-
} | undefined;
|
|
287
|
-
soundEffectParams?: {
|
|
288
|
-
provider?: string | undefined;
|
|
289
|
-
model?: string | undefined;
|
|
290
|
-
} | undefined;
|
|
291
|
-
lipSyncParams?: {
|
|
292
|
-
provider?: string | undefined;
|
|
293
|
-
model?: string | undefined;
|
|
294
|
-
} | undefined;
|
|
295
|
-
htmlImageParams?: {
|
|
296
|
-
model?: string | undefined;
|
|
297
|
-
} | undefined;
|
|
298
|
-
textSlideParams?: {
|
|
299
|
-
cssStyles: string | string[];
|
|
300
|
-
} | undefined;
|
|
301
|
-
captionParams?: {
|
|
302
|
-
styles: string[];
|
|
303
|
-
lang?: string | undefined;
|
|
304
|
-
} | undefined;
|
|
305
|
-
imageNames?: string[] | undefined;
|
|
306
|
-
moviePrompt?: string | undefined;
|
|
307
|
-
soundEffectPrompt?: string | undefined;
|
|
308
|
-
htmlPrompt?: {
|
|
309
|
-
prompt: string;
|
|
310
|
-
data?: any;
|
|
311
|
-
images?: Record<string, any> | undefined;
|
|
312
|
-
systemPrompt?: string | undefined;
|
|
313
|
-
} | undefined;
|
|
314
|
-
enableLipSync?: boolean | undefined;
|
|
315
|
-
}[];
|
|
316
|
-
title?: string | undefined;
|
|
317
|
-
description?: string | undefined;
|
|
318
|
-
lipSyncParams?: {
|
|
319
|
-
provider?: string | undefined;
|
|
320
|
-
model?: string | undefined;
|
|
321
|
-
} | undefined;
|
|
322
|
-
htmlImageParams?: {
|
|
323
|
-
provider: string;
|
|
324
|
-
model?: string | undefined;
|
|
325
|
-
} | undefined;
|
|
326
|
-
textSlideParams?: {
|
|
327
|
-
cssStyles: string | string[];
|
|
328
|
-
} | undefined;
|
|
329
|
-
captionParams?: {
|
|
330
|
-
styles: string[];
|
|
331
|
-
lang?: string | undefined;
|
|
332
|
-
} | undefined;
|
|
333
|
-
references?: {
|
|
334
|
-
type: string;
|
|
335
|
-
url: string;
|
|
336
|
-
title?: string | undefined;
|
|
337
|
-
description?: string | undefined;
|
|
338
|
-
}[] | undefined;
|
|
339
|
-
imagePath?: string | undefined;
|
|
340
|
-
__test_invalid__?: boolean | undefined;
|
|
341
|
-
};
|
|
342
|
-
filename: string;
|
|
343
|
-
};
|