mulmocast 2.8.1 → 2.9.1
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/lib/actions/image_agents.d.ts +20 -0
- package/lib/actions/image_agents.js +83 -15
- package/lib/actions/image_references.d.ts +3 -0
- package/lib/actions/image_references.js +55 -33
- package/lib/actions/images.d.ts +30 -0
- package/lib/actions/images.js +16 -4
- package/lib/actions/movie.d.ts +2 -9
- package/lib/actions/movie.js +149 -147
- package/lib/methods/index.d.ts +1 -0
- package/lib/methods/index.js +1 -0
- package/lib/methods/mulmo_beat.d.ts +3 -0
- package/lib/methods/mulmo_beat.js +17 -0
- package/lib/methods/mulmo_beat_node.d.ts +3 -0
- package/lib/methods/mulmo_image_prompt_media.d.ts +14 -0
- package/lib/methods/mulmo_image_prompt_media.js +45 -0
- package/lib/methods/mulmo_presentation_style.d.ts +5 -1
- package/lib/methods/mulmo_presentation_style.js +43 -1
- package/lib/methods/mulmo_studio_context.d.ts +6 -1
- package/lib/methods/mulmo_studio_context.js +36 -1
- package/lib/types/provider2agent.d.ts +15 -0
- package/lib/types/provider2agent.js +31 -0
- package/lib/types/schema.d.ts +192 -0
- package/lib/types/schema.js +42 -12
- package/lib/types/type.d.ts +2 -1
- package/lib/utils/context.d.ts +70 -0
- package/lib/utils/error_cause.d.ts +12 -0
- package/lib/utils/error_cause.js +15 -0
- package/package.json +9 -9
- package/scripts/test/test_voice_over_transition_no_audio.json +71 -0
package/lib/utils/context.d.ts
CHANGED
|
@@ -103,6 +103,20 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
103
103
|
kind: "path";
|
|
104
104
|
path: string;
|
|
105
105
|
} | undefined;
|
|
106
|
+
references?: {
|
|
107
|
+
name?: string | undefined;
|
|
108
|
+
source?: {
|
|
109
|
+
kind: "url";
|
|
110
|
+
url: string;
|
|
111
|
+
} | {
|
|
112
|
+
kind: "base64";
|
|
113
|
+
data: string;
|
|
114
|
+
} | {
|
|
115
|
+
kind: "path";
|
|
116
|
+
path: string;
|
|
117
|
+
} | undefined;
|
|
118
|
+
label?: string | undefined;
|
|
119
|
+
}[] | undefined;
|
|
106
120
|
}> | undefined;
|
|
107
121
|
backgroundImage?: string | {
|
|
108
122
|
source: {
|
|
@@ -2404,6 +2418,20 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
2404
2418
|
kind: "path";
|
|
2405
2419
|
path: string;
|
|
2406
2420
|
} | undefined;
|
|
2421
|
+
references?: {
|
|
2422
|
+
name?: string | undefined;
|
|
2423
|
+
source?: {
|
|
2424
|
+
kind: "url";
|
|
2425
|
+
url: string;
|
|
2426
|
+
} | {
|
|
2427
|
+
kind: "base64";
|
|
2428
|
+
data: string;
|
|
2429
|
+
} | {
|
|
2430
|
+
kind: "path";
|
|
2431
|
+
path: string;
|
|
2432
|
+
} | undefined;
|
|
2433
|
+
label?: string | undefined;
|
|
2434
|
+
}[] | undefined;
|
|
2407
2435
|
}> | undefined;
|
|
2408
2436
|
imageNames?: string[] | undefined;
|
|
2409
2437
|
imagePrompt?: string | undefined;
|
|
@@ -2641,6 +2669,20 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
2641
2669
|
kind: "path";
|
|
2642
2670
|
path: string;
|
|
2643
2671
|
} | undefined;
|
|
2672
|
+
references?: {
|
|
2673
|
+
name?: string | undefined;
|
|
2674
|
+
source?: {
|
|
2675
|
+
kind: "url";
|
|
2676
|
+
url: string;
|
|
2677
|
+
} | {
|
|
2678
|
+
kind: "base64";
|
|
2679
|
+
data: string;
|
|
2680
|
+
} | {
|
|
2681
|
+
kind: "path";
|
|
2682
|
+
path: string;
|
|
2683
|
+
} | undefined;
|
|
2684
|
+
label?: string | undefined;
|
|
2685
|
+
}[] | undefined;
|
|
2644
2686
|
}> | undefined;
|
|
2645
2687
|
backgroundImage?: string | {
|
|
2646
2688
|
source: {
|
|
@@ -4942,6 +4984,20 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
4942
4984
|
kind: "path";
|
|
4943
4985
|
path: string;
|
|
4944
4986
|
} | undefined;
|
|
4987
|
+
references?: {
|
|
4988
|
+
name?: string | undefined;
|
|
4989
|
+
source?: {
|
|
4990
|
+
kind: "url";
|
|
4991
|
+
url: string;
|
|
4992
|
+
} | {
|
|
4993
|
+
kind: "base64";
|
|
4994
|
+
data: string;
|
|
4995
|
+
} | {
|
|
4996
|
+
kind: "path";
|
|
4997
|
+
path: string;
|
|
4998
|
+
} | undefined;
|
|
4999
|
+
label?: string | undefined;
|
|
5000
|
+
}[] | undefined;
|
|
4945
5001
|
}> | undefined;
|
|
4946
5002
|
imageNames?: string[] | undefined;
|
|
4947
5003
|
imagePrompt?: string | undefined;
|
|
@@ -5186,6 +5242,20 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
5186
5242
|
kind: "path";
|
|
5187
5243
|
path: string;
|
|
5188
5244
|
} | undefined;
|
|
5245
|
+
references?: {
|
|
5246
|
+
name?: string | undefined;
|
|
5247
|
+
source?: {
|
|
5248
|
+
kind: "url";
|
|
5249
|
+
url: string;
|
|
5250
|
+
} | {
|
|
5251
|
+
kind: "base64";
|
|
5252
|
+
data: string;
|
|
5253
|
+
} | {
|
|
5254
|
+
kind: "path";
|
|
5255
|
+
path: string;
|
|
5256
|
+
} | undefined;
|
|
5257
|
+
label?: string | undefined;
|
|
5258
|
+
}[] | undefined;
|
|
5189
5259
|
}> | undefined;
|
|
5190
5260
|
backgroundImage?: string | {
|
|
5191
5261
|
source: {
|
|
@@ -55,6 +55,7 @@ export declare const apiRateLimitErrorType = "apiRateLimit";
|
|
|
55
55
|
export declare const apiKeyMissingType = "apiKeyMissing";
|
|
56
56
|
export declare const invalidResponseType = "invalidResponse";
|
|
57
57
|
export declare const voiceLimitReachedType = "voice_limit_reached";
|
|
58
|
+
export declare const invalidFrameSentinelType = "invalidFrameSentinel";
|
|
58
59
|
export declare const movieAction = "movie";
|
|
59
60
|
export declare const imageAction = "images";
|
|
60
61
|
export declare const audioAction = "audio";
|
|
@@ -69,6 +70,10 @@ export declare const multiLingualFileTarget = "multiLingualFile";
|
|
|
69
70
|
export declare const videoSourceTarget = "videoSource";
|
|
70
71
|
export declare const audioSourceTarget = "audioSource";
|
|
71
72
|
export declare const codeTextTarget = "codeText";
|
|
73
|
+
export declare const bothFramesTarget = "bothFrames";
|
|
74
|
+
export declare const missingBeatImageTarget = "missingBeatImage";
|
|
75
|
+
export declare const unsupportedImageTypeTarget = "unsupportedImageType";
|
|
76
|
+
export declare const missingFirstFrameTarget = "missingFirstFrame";
|
|
72
77
|
export declare const agentFileNotExistError: (agentName: string, action: string, target: string, fileName: string, beatIndex?: number) => {
|
|
73
78
|
beatIndex?: number | undefined;
|
|
74
79
|
type: string;
|
|
@@ -115,6 +120,13 @@ export declare const invalidAudioSourceError: (beatIndex: number) => {
|
|
|
115
120
|
agentName: string;
|
|
116
121
|
beatIndex: number;
|
|
117
122
|
};
|
|
123
|
+
export declare const beatImageSentinelError: (beatIndex: number, target: string) => {
|
|
124
|
+
type: string;
|
|
125
|
+
action: string;
|
|
126
|
+
target: string;
|
|
127
|
+
agentName: string;
|
|
128
|
+
beatIndex: number;
|
|
129
|
+
};
|
|
118
130
|
export declare const downLoadReferenceImageError: (key: string, url: string) => {
|
|
119
131
|
type: string;
|
|
120
132
|
action: string;
|
package/lib/utils/error_cause.js
CHANGED
|
@@ -56,6 +56,7 @@ export const apiRateLimitErrorType = "apiRateLimit";
|
|
|
56
56
|
export const apiKeyMissingType = "apiKeyMissing";
|
|
57
57
|
export const invalidResponseType = "invalidResponse";
|
|
58
58
|
export const voiceLimitReachedType = "voice_limit_reached";
|
|
59
|
+
export const invalidFrameSentinelType = "invalidFrameSentinel";
|
|
59
60
|
// Actions
|
|
60
61
|
export const movieAction = "movie";
|
|
61
62
|
export const imageAction = "images";
|
|
@@ -72,6 +73,10 @@ export const multiLingualFileTarget = "multiLingualFile";
|
|
|
72
73
|
export const videoSourceTarget = "videoSource";
|
|
73
74
|
export const audioSourceTarget = "audioSource";
|
|
74
75
|
export const codeTextTarget = "codeText";
|
|
76
|
+
export const bothFramesTarget = "bothFrames";
|
|
77
|
+
export const missingBeatImageTarget = "missingBeatImage";
|
|
78
|
+
export const unsupportedImageTypeTarget = "unsupportedImageType";
|
|
79
|
+
export const missingFirstFrameTarget = "missingFirstFrame";
|
|
75
80
|
// Agent File Not Exist Errors
|
|
76
81
|
export const agentFileNotExistError = (agentName, action, target, fileName, beatIndex) => {
|
|
77
82
|
return {
|
|
@@ -111,6 +116,16 @@ export const invalidAudioSourceError = (beatIndex) => {
|
|
|
111
116
|
beatIndex,
|
|
112
117
|
};
|
|
113
118
|
};
|
|
119
|
+
// $beatImage frame sentinel misuse (invalid combination or beat cannot supply its own image)
|
|
120
|
+
export const beatImageSentinelError = (beatIndex, target) => {
|
|
121
|
+
return {
|
|
122
|
+
type: invalidFrameSentinelType,
|
|
123
|
+
action: imageAction,
|
|
124
|
+
target,
|
|
125
|
+
agentName: "imagePreprocessAgent",
|
|
126
|
+
beatIndex,
|
|
127
|
+
};
|
|
128
|
+
};
|
|
114
129
|
// 404
|
|
115
130
|
export const downLoadReferenceImageError = (key, url) => {
|
|
116
131
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mulmocast",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.node.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"resolutions": {
|
|
27
27
|
"minimatch": "^10.2.5",
|
|
28
|
-
"tar": "7.5.
|
|
28
|
+
"tar": "7.5.22",
|
|
29
29
|
"yauzl": "^3.4.0"
|
|
30
30
|
},
|
|
31
31
|
"bin": {
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"homepage": "https://github.com/receptron/mulmocast-cli#readme",
|
|
90
90
|
"dependencies": {
|
|
91
91
|
"@google-cloud/text-to-speech": "^6.4.1",
|
|
92
|
-
"@google/genai": "^2.
|
|
92
|
+
"@google/genai": "^2.13.0",
|
|
93
93
|
"@graphai/anthropic_agent": "^2.0.12",
|
|
94
94
|
"@graphai/browserless_agent": "^2.0.3",
|
|
95
95
|
"@graphai/gemini_agent": "^2.0.5",
|
|
@@ -102,17 +102,17 @@
|
|
|
102
102
|
"@inquirer/input": "^5.1.2",
|
|
103
103
|
"@inquirer/select": "^5.2.1",
|
|
104
104
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
105
|
-
"@modernized/fluent-ffmpeg": "^1.0.
|
|
105
|
+
"@modernized/fluent-ffmpeg": "^1.0.2",
|
|
106
106
|
"@mozilla/readability": "^0.6.0",
|
|
107
107
|
"@mulmocast/deck": "^1.1.0",
|
|
108
108
|
"@tavily/core": "^0.7.6",
|
|
109
109
|
"archiver": "^8.0.0",
|
|
110
|
-
"clipboardy": "^5.3.
|
|
110
|
+
"clipboardy": "^5.3.2",
|
|
111
111
|
"dotenv": "^17.4.2",
|
|
112
112
|
"graphai": "^2.0.18",
|
|
113
113
|
"js-tiktoken": "^1.0.21",
|
|
114
114
|
"jsdom": "^29.1.1",
|
|
115
|
-
"marked": "^18.0.
|
|
115
|
+
"marked": "^18.0.7",
|
|
116
116
|
"mulmocast-vision": "^1.0.12",
|
|
117
117
|
"ora": "^9.4.1",
|
|
118
118
|
"puppeteer": "^25.3.0",
|
|
@@ -128,16 +128,16 @@
|
|
|
128
128
|
"@types/jsdom": "^28.0.3",
|
|
129
129
|
"@types/yargs": "^17.0.35",
|
|
130
130
|
"cross-env": "^10.1.0",
|
|
131
|
-
"eslint": "^10.
|
|
131
|
+
"eslint": "^10.8.0",
|
|
132
132
|
"eslint-config-prettier": "^10.1.8",
|
|
133
133
|
"eslint-plugin-import": "^2.32.0",
|
|
134
134
|
"eslint-plugin-prettier": "^5.5.6",
|
|
135
135
|
"eslint-plugin-sonarjs": "^4.2.0",
|
|
136
136
|
"globals": "^17.7.0",
|
|
137
|
-
"prettier": "^3.9.
|
|
137
|
+
"prettier": "^3.9.6",
|
|
138
138
|
"tsx": "^4.23.1",
|
|
139
139
|
"typescript": "6.0.3",
|
|
140
|
-
"typescript-eslint": "^8.
|
|
140
|
+
"typescript-eslint": "^8.65.0"
|
|
141
141
|
},
|
|
142
142
|
"engines": {
|
|
143
143
|
"node": ">=22.0.0"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"title": "VoiceOver Transition Test",
|
|
7
|
+
"movieParams": {
|
|
8
|
+
"transition": {
|
|
9
|
+
"type": "fade",
|
|
10
|
+
"duration": 1.0
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"beats": [
|
|
14
|
+
{
|
|
15
|
+
"speaker": "Presenter",
|
|
16
|
+
"text": "",
|
|
17
|
+
"duration": 3.0,
|
|
18
|
+
"image": {
|
|
19
|
+
"type": "image",
|
|
20
|
+
"source": {
|
|
21
|
+
"kind": "path",
|
|
22
|
+
"path": "../../assets/images/mulmocast_credit.png"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"speaker": "Presenter",
|
|
28
|
+
"text": "",
|
|
29
|
+
"duration": 2.0,
|
|
30
|
+
"image": {
|
|
31
|
+
"type": "voice_over"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"speaker": "Presenter",
|
|
36
|
+
"text": "",
|
|
37
|
+
"duration": 3.0,
|
|
38
|
+
"image": {
|
|
39
|
+
"type": "textSlide",
|
|
40
|
+
"slide": {
|
|
41
|
+
"title": "Fade after a voice_over"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"speaker": "Presenter",
|
|
47
|
+
"text": "",
|
|
48
|
+
"duration": 2.0,
|
|
49
|
+
"image": {
|
|
50
|
+
"type": "voice_over"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"speaker": "Presenter",
|
|
55
|
+
"text": "",
|
|
56
|
+
"duration": 3.0,
|
|
57
|
+
"movieParams": {
|
|
58
|
+
"transition": {
|
|
59
|
+
"type": "wipeleft",
|
|
60
|
+
"duration": 1.0
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"image": {
|
|
64
|
+
"type": "textSlide",
|
|
65
|
+
"slide": {
|
|
66
|
+
"title": "Wipe after a voice_over"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|