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.
@@ -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;
@@ -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.8.1",
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.20",
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.10.0",
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.1",
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.1",
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.6",
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.7.0",
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.5",
137
+ "prettier": "^3.9.6",
138
138
  "tsx": "^4.23.1",
139
139
  "typescript": "6.0.3",
140
- "typescript-eslint": "^8.64.0"
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
+ }