mulmocast 2.1.22 → 2.1.24
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/agents/image_genai_agent.js +14 -6
- package/lib/agents/image_openai_agent.js +4 -3
- package/lib/agents/movie_genai_agent.js +35 -19
- package/lib/agents/tts_openai_agent.js +4 -3
- package/lib/methods/mulmo_presentation_style.d.ts +2 -0
- package/lib/types/agent.d.ts +5 -0
- package/lib/types/provider2agent.d.ts +2 -1
- package/lib/types/provider2agent.js +9 -2
- package/lib/types/schema.d.ts +92 -0
- package/lib/types/schema.js +8 -0
- package/lib/utils/context.d.ts +42 -0
- package/lib/utils/openai_client.d.ts +17 -0
- package/lib/utils/openai_client.js +35 -0
- package/lib/utils/utils.js +3 -0
- package/package.json +5 -5
- package/scripts/test/test_audio_azure.json +24 -0
- package/scripts/test/test_images_azure.json +26 -0
- package/scripts/test/test_vertexai.json +21 -0
- package/lib/agents/tts_nijivoice_agent.d.ts +0 -5
- package/lib/agents/tts_nijivoice_agent.js +0 -76
- package/lib/agents/utils.d.ts +0 -1
- package/lib/agents/utils.js +0 -1
- package/lib/utils/const.d.ts +0 -15
- package/lib/utils/const.js +0 -15
- package/lib/utils/provider2agent.d.ts +0 -191
- package/lib/utils/provider2agent.js +0 -326
package/lib/utils/context.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
24
24
|
} | undefined;
|
|
25
25
|
provider?: string | undefined;
|
|
26
26
|
model?: string | undefined;
|
|
27
|
+
baseURL?: string | undefined;
|
|
28
|
+
apiVersion?: string | undefined;
|
|
27
29
|
lang?: Record<string, {
|
|
28
30
|
voiceId: string;
|
|
29
31
|
displayName?: Record<string, string> | undefined;
|
|
@@ -37,6 +39,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
37
39
|
} | undefined;
|
|
38
40
|
provider?: string | undefined;
|
|
39
41
|
model?: string | undefined;
|
|
42
|
+
baseURL?: string | undefined;
|
|
43
|
+
apiVersion?: string | undefined;
|
|
40
44
|
}> | undefined;
|
|
41
45
|
}>;
|
|
42
46
|
};
|
|
@@ -46,6 +50,10 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
46
50
|
quality?: string | undefined;
|
|
47
51
|
style?: string | undefined;
|
|
48
52
|
moderation?: string | undefined;
|
|
53
|
+
baseURL?: string | undefined;
|
|
54
|
+
apiVersion?: string | undefined;
|
|
55
|
+
vertexai_project?: string | undefined;
|
|
56
|
+
vertexai_location?: string | undefined;
|
|
49
57
|
images?: Record<string, {
|
|
50
58
|
type: "image";
|
|
51
59
|
source: {
|
|
@@ -219,6 +227,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
219
227
|
type: "custom";
|
|
220
228
|
filter: string;
|
|
221
229
|
})[] | undefined;
|
|
230
|
+
vertexai_project?: string | undefined;
|
|
231
|
+
vertexai_location?: string | undefined;
|
|
222
232
|
};
|
|
223
233
|
soundEffectParams: {
|
|
224
234
|
provider?: string | undefined;
|
|
@@ -369,6 +379,10 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
369
379
|
quality?: string | undefined;
|
|
370
380
|
style?: string | undefined;
|
|
371
381
|
moderation?: string | undefined;
|
|
382
|
+
baseURL?: string | undefined;
|
|
383
|
+
apiVersion?: string | undefined;
|
|
384
|
+
vertexai_project?: string | undefined;
|
|
385
|
+
vertexai_location?: string | undefined;
|
|
372
386
|
} | undefined;
|
|
373
387
|
audioParams?: {
|
|
374
388
|
movieVolume: number;
|
|
@@ -530,6 +544,8 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
530
544
|
type: "custom";
|
|
531
545
|
filter: string;
|
|
532
546
|
})[] | undefined;
|
|
547
|
+
vertexai_project?: string | undefined;
|
|
548
|
+
vertexai_location?: string | undefined;
|
|
533
549
|
speed?: number | undefined;
|
|
534
550
|
} | undefined;
|
|
535
551
|
soundEffectParams?: {
|
|
@@ -664,6 +680,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
664
680
|
} | undefined;
|
|
665
681
|
provider?: string | undefined;
|
|
666
682
|
model?: string | undefined;
|
|
683
|
+
baseURL?: string | undefined;
|
|
684
|
+
apiVersion?: string | undefined;
|
|
667
685
|
lang?: Record<string, {
|
|
668
686
|
voiceId: string;
|
|
669
687
|
displayName?: Record<string, string> | undefined;
|
|
@@ -677,6 +695,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
677
695
|
} | undefined;
|
|
678
696
|
provider?: string | undefined;
|
|
679
697
|
model?: string | undefined;
|
|
698
|
+
baseURL?: string | undefined;
|
|
699
|
+
apiVersion?: string | undefined;
|
|
680
700
|
}> | undefined;
|
|
681
701
|
}>;
|
|
682
702
|
};
|
|
@@ -686,6 +706,10 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
686
706
|
quality?: string | undefined;
|
|
687
707
|
style?: string | undefined;
|
|
688
708
|
moderation?: string | undefined;
|
|
709
|
+
baseURL?: string | undefined;
|
|
710
|
+
apiVersion?: string | undefined;
|
|
711
|
+
vertexai_project?: string | undefined;
|
|
712
|
+
vertexai_location?: string | undefined;
|
|
689
713
|
images?: Record<string, {
|
|
690
714
|
type: "image";
|
|
691
715
|
source: {
|
|
@@ -859,6 +883,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
859
883
|
type: "custom";
|
|
860
884
|
filter: string;
|
|
861
885
|
})[] | undefined;
|
|
886
|
+
vertexai_project?: string | undefined;
|
|
887
|
+
vertexai_location?: string | undefined;
|
|
862
888
|
};
|
|
863
889
|
soundEffectParams: {
|
|
864
890
|
provider?: string | undefined;
|
|
@@ -1009,6 +1035,10 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
1009
1035
|
quality?: string | undefined;
|
|
1010
1036
|
style?: string | undefined;
|
|
1011
1037
|
moderation?: string | undefined;
|
|
1038
|
+
baseURL?: string | undefined;
|
|
1039
|
+
apiVersion?: string | undefined;
|
|
1040
|
+
vertexai_project?: string | undefined;
|
|
1041
|
+
vertexai_location?: string | undefined;
|
|
1012
1042
|
} | undefined;
|
|
1013
1043
|
audioParams?: {
|
|
1014
1044
|
movieVolume: number;
|
|
@@ -1170,6 +1200,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
1170
1200
|
type: "custom";
|
|
1171
1201
|
filter: string;
|
|
1172
1202
|
})[] | undefined;
|
|
1203
|
+
vertexai_project?: string | undefined;
|
|
1204
|
+
vertexai_location?: string | undefined;
|
|
1173
1205
|
speed?: number | undefined;
|
|
1174
1206
|
} | undefined;
|
|
1175
1207
|
soundEffectParams?: {
|
|
@@ -1311,6 +1343,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
1311
1343
|
} | undefined;
|
|
1312
1344
|
provider?: string | undefined;
|
|
1313
1345
|
model?: string | undefined;
|
|
1346
|
+
baseURL?: string | undefined;
|
|
1347
|
+
apiVersion?: string | undefined;
|
|
1314
1348
|
lang?: Record<string, {
|
|
1315
1349
|
voiceId: string;
|
|
1316
1350
|
displayName?: Record<string, string> | undefined;
|
|
@@ -1324,6 +1358,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
1324
1358
|
} | undefined;
|
|
1325
1359
|
provider?: string | undefined;
|
|
1326
1360
|
model?: string | undefined;
|
|
1361
|
+
baseURL?: string | undefined;
|
|
1362
|
+
apiVersion?: string | undefined;
|
|
1327
1363
|
}> | undefined;
|
|
1328
1364
|
}>;
|
|
1329
1365
|
};
|
|
@@ -1333,6 +1369,10 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
1333
1369
|
quality?: string | undefined;
|
|
1334
1370
|
style?: string | undefined;
|
|
1335
1371
|
moderation?: string | undefined;
|
|
1372
|
+
baseURL?: string | undefined;
|
|
1373
|
+
apiVersion?: string | undefined;
|
|
1374
|
+
vertexai_project?: string | undefined;
|
|
1375
|
+
vertexai_location?: string | undefined;
|
|
1336
1376
|
images?: Record<string, {
|
|
1337
1377
|
type: "image";
|
|
1338
1378
|
source: {
|
|
@@ -1506,6 +1546,8 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
1506
1546
|
type: "custom";
|
|
1507
1547
|
filter: string;
|
|
1508
1548
|
})[] | undefined;
|
|
1549
|
+
vertexai_project?: string | undefined;
|
|
1550
|
+
vertexai_location?: string | undefined;
|
|
1509
1551
|
};
|
|
1510
1552
|
soundEffectParams: {
|
|
1511
1553
|
provider?: string | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import OpenAI from "openai";
|
|
2
|
+
export interface OpenAIClientOptions {
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
baseURL?: string;
|
|
5
|
+
apiVersion?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Detects if the given URL is an Azure OpenAI endpoint
|
|
9
|
+
* Safely parses the URL and checks if the hostname ends with ".openai.azure.com"
|
|
10
|
+
*/
|
|
11
|
+
export declare const isAzureEndpoint: (baseURL: string | undefined) => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an OpenAI or AzureOpenAI client based on the baseURL
|
|
14
|
+
* - If baseURL contains ".openai.azure.com", returns AzureOpenAI client
|
|
15
|
+
* - Otherwise, returns standard OpenAI client
|
|
16
|
+
*/
|
|
17
|
+
export declare const createOpenAIClient: (options: OpenAIClientOptions) => OpenAI;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import OpenAI, { AzureOpenAI } from "openai";
|
|
2
|
+
/**
|
|
3
|
+
* Detects if the given URL is an Azure OpenAI endpoint
|
|
4
|
+
* Safely parses the URL and checks if the hostname ends with ".openai.azure.com"
|
|
5
|
+
*/
|
|
6
|
+
export const isAzureEndpoint = (baseURL) => {
|
|
7
|
+
if (!baseURL)
|
|
8
|
+
return false;
|
|
9
|
+
try {
|
|
10
|
+
const url = new URL(baseURL);
|
|
11
|
+
return url.hostname.endsWith(".openai.azure.com");
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Creates an OpenAI or AzureOpenAI client based on the baseURL
|
|
19
|
+
* - If baseURL contains ".openai.azure.com", returns AzureOpenAI client
|
|
20
|
+
* - Otherwise, returns standard OpenAI client
|
|
21
|
+
*/
|
|
22
|
+
export const createOpenAIClient = (options) => {
|
|
23
|
+
const { apiKey, baseURL, apiVersion } = options;
|
|
24
|
+
if (isAzureEndpoint(baseURL)) {
|
|
25
|
+
return new AzureOpenAI({
|
|
26
|
+
apiKey,
|
|
27
|
+
endpoint: baseURL,
|
|
28
|
+
apiVersion: apiVersion ?? "2025-04-01-preview",
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return new OpenAI({
|
|
32
|
+
apiKey,
|
|
33
|
+
baseURL,
|
|
34
|
+
});
|
|
35
|
+
};
|
package/lib/utils/utils.js
CHANGED
|
@@ -53,6 +53,9 @@ export const settings2GraphAIConfig = (settings, env) => {
|
|
|
53
53
|
if (info.baseURLKeyName) {
|
|
54
54
|
config[info.agentName].baseURL = getKey(prefix, info.baseURLKeyName);
|
|
55
55
|
}
|
|
56
|
+
if (info.apiVersionKeyName) {
|
|
57
|
+
config[info.agentName].apiVersion = getKey(prefix, info.apiVersionKeyName);
|
|
58
|
+
}
|
|
56
59
|
});
|
|
57
60
|
};
|
|
58
61
|
const config = {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mulmocast",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.24",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.node.js",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@graphai/gemini_agent": "^2.0.4",
|
|
84
84
|
"@graphai/groq_agent": "^2.0.2",
|
|
85
85
|
"@graphai/input_agents": "^1.0.2",
|
|
86
|
-
"@graphai/openai_agent": "^2.0.
|
|
86
|
+
"@graphai/openai_agent": "^2.0.9",
|
|
87
87
|
"@graphai/stream_agent_filter": "^2.0.2",
|
|
88
88
|
"@graphai/vanilla": "^2.0.12",
|
|
89
89
|
"@graphai/vanilla_node_agents": "^2.0.4",
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"marked": "^17.0.1",
|
|
102
102
|
"mulmocast-vision": "^1.0.8",
|
|
103
103
|
"ora": "^9.1.0",
|
|
104
|
-
"puppeteer": "^24.36.
|
|
104
|
+
"puppeteer": "^24.36.1",
|
|
105
105
|
"replicate": "^1.4.0",
|
|
106
106
|
"yaml": "^2.8.2",
|
|
107
107
|
"yargs": "^18.0.0",
|
|
@@ -116,11 +116,11 @@
|
|
|
116
116
|
"eslint": "^9.39.2",
|
|
117
117
|
"eslint-config-prettier": "^10.1.8",
|
|
118
118
|
"eslint-plugin-prettier": "^5.5.5",
|
|
119
|
-
"eslint-plugin-sonarjs": "^3.0.
|
|
119
|
+
"eslint-plugin-sonarjs": "^3.0.6",
|
|
120
120
|
"prettier": "^3.8.1",
|
|
121
121
|
"tsx": "^4.21.0",
|
|
122
122
|
"typescript": "^5.9.3",
|
|
123
|
-
"typescript-eslint": "^8.
|
|
123
|
+
"typescript-eslint": "^8.54.0"
|
|
124
124
|
},
|
|
125
125
|
"engines": {
|
|
126
126
|
"node": ">=20.0.0"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"title": "Test Audio with Azure OpenAI TTS",
|
|
7
|
+
"speechParams": {
|
|
8
|
+
"speakers": {
|
|
9
|
+
"Presenter": {
|
|
10
|
+
"provider": "openai",
|
|
11
|
+
"voiceId": "alloy",
|
|
12
|
+
"model": "tts"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"beats": [
|
|
17
|
+
{
|
|
18
|
+
"text": "Hello, this is a test of Azure OpenAI text to speech."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"text": "MulmoCast now supports Azure OpenAI for both image generation and speech synthesis."
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": {
|
|
3
|
+
"version": "1.1"
|
|
4
|
+
},
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"title": "Test Images with Azure OpenAI",
|
|
7
|
+
"imageParams": {
|
|
8
|
+
"provider": "openai",
|
|
9
|
+
"model": "gpt-image-1.5"
|
|
10
|
+
},
|
|
11
|
+
"audioParams": {
|
|
12
|
+
"suppressSpeech": true
|
|
13
|
+
},
|
|
14
|
+
"beats": [
|
|
15
|
+
{
|
|
16
|
+
"text": "",
|
|
17
|
+
"imagePrompt": "A beautiful sunset over mountains, photorealistic style",
|
|
18
|
+
"duration": 3
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"text": "",
|
|
22
|
+
"imagePrompt": "A cute robot waving hello, digital art style",
|
|
23
|
+
"duration": 3
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../assets/schema.json",
|
|
3
|
+
"title": "Vertex AI Test",
|
|
4
|
+
"description": "Test Vertex AI integration",
|
|
5
|
+
"lang": "en",
|
|
6
|
+
"imageParams": {
|
|
7
|
+
"provider": "google",
|
|
8
|
+
"model": "imagen-4.0-generate-001",
|
|
9
|
+
"vertexai_project": "${GOOGLE_PROJECT_ID}",
|
|
10
|
+
"vertexai_location": "us-central1"
|
|
11
|
+
},
|
|
12
|
+
"speechParams": {
|
|
13
|
+
"provider": "mock"
|
|
14
|
+
},
|
|
15
|
+
"beats": [
|
|
16
|
+
{
|
|
17
|
+
"text": "Hello",
|
|
18
|
+
"imagePrompt": "A simple blue circle on white background"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { AgentFunction, AgentFunctionInfo } from "graphai";
|
|
2
|
-
import type { NijivoiceTTSAgentParams, AgentBufferResult, AgentTextInputs, AgentErrorResult, AgentConfig } from "../types/agent.js";
|
|
3
|
-
export declare const ttsNijivoiceAgent: AgentFunction<NijivoiceTTSAgentParams, AgentBufferResult | AgentErrorResult, AgentTextInputs, AgentConfig>;
|
|
4
|
-
declare const ttsNijivoiceAgentInfo: AgentFunctionInfo;
|
|
5
|
-
export default ttsNijivoiceAgentInfo;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { GraphAILogger } from "graphai";
|
|
2
|
-
import { apiKeyMissingError, agentGenerationError, audioAction, audioFileTarget } from "../utils/error_cause.js";
|
|
3
|
-
/*
|
|
4
|
-
const errorMessage = [
|
|
5
|
-
"TTS NijiVoice: No API key. ",
|
|
6
|
-
"You have the following options:",
|
|
7
|
-
"1. Obtain an API key from Niji Voice (https://platform.nijivoice.com/) and set it as the NIJIVOICE_API_KEY environment variable.",
|
|
8
|
-
'2. Use OpenAI\'s TTS instead of Niji Voice by changing speechParams.provider from "nijivoice" to "openai".',
|
|
9
|
-
].join("\n");
|
|
10
|
-
*/
|
|
11
|
-
export const ttsNijivoiceAgent = async ({ params, namedInputs, config, }) => {
|
|
12
|
-
const { suppressError, voice, speed, speed_global } = params;
|
|
13
|
-
const { apiKey } = config ?? {};
|
|
14
|
-
const { text } = namedInputs;
|
|
15
|
-
if (!apiKey) {
|
|
16
|
-
throw new Error("NijiVoice API key is required (NIJIVOICE_API_KEY)", {
|
|
17
|
-
cause: apiKeyMissingError("ttsNijivoiceAgent", audioAction, "NIJIVOICE_API_KEY"),
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
const url = `https://api.nijivoice.com/api/platform/v1/voice-actors/${voice}/generate-voice`;
|
|
21
|
-
const options = {
|
|
22
|
-
method: "POST",
|
|
23
|
-
headers: {
|
|
24
|
-
"x-api-key": apiKey,
|
|
25
|
-
accept: "application/json",
|
|
26
|
-
"content-type": "application/json",
|
|
27
|
-
},
|
|
28
|
-
body: JSON.stringify({
|
|
29
|
-
format: "mp3",
|
|
30
|
-
speed: String(speed ?? speed_global ?? "1.0"),
|
|
31
|
-
script: text,
|
|
32
|
-
}),
|
|
33
|
-
};
|
|
34
|
-
try {
|
|
35
|
-
const voiceRes = await fetch(url, options);
|
|
36
|
-
const voiceJson = await voiceRes.json();
|
|
37
|
-
if (voiceJson?.generatedVoice?.audioFileDownloadUrl) {
|
|
38
|
-
const audioRes = await fetch(voiceJson.generatedVoice.audioFileDownloadUrl);
|
|
39
|
-
const buffer = Buffer.from(await audioRes.arrayBuffer());
|
|
40
|
-
return { buffer };
|
|
41
|
-
}
|
|
42
|
-
if (suppressError) {
|
|
43
|
-
return {
|
|
44
|
-
error: voiceJson,
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
GraphAILogger.info(voiceJson);
|
|
48
|
-
throw new Error("TTS Nijivoice Error", {
|
|
49
|
-
cause: agentGenerationError("ttsNijivoiceAgent", audioAction, audioFileTarget),
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
if (suppressError) {
|
|
54
|
-
return {
|
|
55
|
-
error: e,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
GraphAILogger.info(e);
|
|
59
|
-
throw new Error("TTS Nijivoice Error", {
|
|
60
|
-
cause: agentGenerationError("ttsNijivoiceAgent", audioAction, audioFileTarget),
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
const ttsNijivoiceAgentInfo = {
|
|
65
|
-
name: "ttsNijivoiceAgent",
|
|
66
|
-
agent: ttsNijivoiceAgent,
|
|
67
|
-
mock: ttsNijivoiceAgent,
|
|
68
|
-
samples: [],
|
|
69
|
-
description: "TTS nijivoice agent",
|
|
70
|
-
category: ["tts"],
|
|
71
|
-
author: "Receptron Team",
|
|
72
|
-
repository: "https://github.com/receptron/mulmocast-cli/",
|
|
73
|
-
license: "MIT",
|
|
74
|
-
environmentVariables: ["NIJIVOICE_API_KEY"],
|
|
75
|
-
};
|
|
76
|
-
export default ttsNijivoiceAgentInfo;
|
package/lib/agents/utils.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/agents/utils.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/utils/const.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare const currentMulmoScriptVersion = "1.1";
|
|
2
|
-
export declare const outDirName = "output";
|
|
3
|
-
export declare const audioDirName = "audio";
|
|
4
|
-
export declare const imageDirName = "images";
|
|
5
|
-
export declare const cacheDirName = "cache";
|
|
6
|
-
export declare const pdf_modes: string[];
|
|
7
|
-
export declare const pdf_sizes: string[];
|
|
8
|
-
export declare const languages: string[];
|
|
9
|
-
export declare const storyToScriptGenerateMode: {
|
|
10
|
-
stepWise: string;
|
|
11
|
-
oneStep: string;
|
|
12
|
-
};
|
|
13
|
-
export declare const bundleTargetLang: string[];
|
|
14
|
-
export declare const ASPECT_RATIOS: string[];
|
|
15
|
-
export declare const PRO_ASPECT_RATIOS: string[];
|
package/lib/utils/const.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const currentMulmoScriptVersion = "1.1";
|
|
2
|
-
export const outDirName = "output";
|
|
3
|
-
export const audioDirName = "audio";
|
|
4
|
-
export const imageDirName = "images";
|
|
5
|
-
export const cacheDirName = "cache";
|
|
6
|
-
export const pdf_modes = ["slide", "talk", "handout"];
|
|
7
|
-
export const pdf_sizes = ["letter", "a4"];
|
|
8
|
-
export const languages = ["en", "ja", "fr", "es", "de", "zh-CN", "zh-TW", "ko", "it", "pt", "ar", "hi"];
|
|
9
|
-
export const storyToScriptGenerateMode = {
|
|
10
|
-
stepWise: "step_wise",
|
|
11
|
-
oneStep: "one_step",
|
|
12
|
-
};
|
|
13
|
-
export const bundleTargetLang = ["ja", "en"];
|
|
14
|
-
export const ASPECT_RATIOS = ["1:1", "9:16", "16:9"];
|
|
15
|
-
export const PRO_ASPECT_RATIOS = ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"];
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
export declare const provider2TTSAgent: {
|
|
2
|
-
nijivoice: {
|
|
3
|
-
agentName: string;
|
|
4
|
-
hasLimitedConcurrency: boolean;
|
|
5
|
-
keyName: string;
|
|
6
|
-
};
|
|
7
|
-
openai: {
|
|
8
|
-
agentName: string;
|
|
9
|
-
hasLimitedConcurrency: boolean;
|
|
10
|
-
defaultModel: string;
|
|
11
|
-
defaultVoice: string;
|
|
12
|
-
keyName: string;
|
|
13
|
-
baseURLKeyName: string;
|
|
14
|
-
};
|
|
15
|
-
google: {
|
|
16
|
-
agentName: string;
|
|
17
|
-
hasLimitedConcurrency: boolean;
|
|
18
|
-
keyName: string;
|
|
19
|
-
};
|
|
20
|
-
gemini: {
|
|
21
|
-
agentName: string;
|
|
22
|
-
hasLimitedConcurrency: boolean;
|
|
23
|
-
defaultModel: string;
|
|
24
|
-
defaultVoice: string;
|
|
25
|
-
models: string[];
|
|
26
|
-
keyName: string;
|
|
27
|
-
};
|
|
28
|
-
elevenlabs: {
|
|
29
|
-
agentName: string;
|
|
30
|
-
hasLimitedConcurrency: boolean;
|
|
31
|
-
defaultModel: string;
|
|
32
|
-
models: string[];
|
|
33
|
-
keyName: string;
|
|
34
|
-
};
|
|
35
|
-
kotodama: {
|
|
36
|
-
agentName: string;
|
|
37
|
-
hasLimitedConcurrency: boolean;
|
|
38
|
-
defaultVoice: string;
|
|
39
|
-
defaultDecoration: string;
|
|
40
|
-
keyName: string;
|
|
41
|
-
};
|
|
42
|
-
mock: {
|
|
43
|
-
agentName: string;
|
|
44
|
-
hasLimitedConcurrency: boolean;
|
|
45
|
-
defaultModel: string;
|
|
46
|
-
models: string[];
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
export declare const gptImages: string[];
|
|
50
|
-
export declare const provider2ImageAgent: {
|
|
51
|
-
openai: {
|
|
52
|
-
agentName: string;
|
|
53
|
-
defaultModel: string;
|
|
54
|
-
models: string[];
|
|
55
|
-
keyName: string;
|
|
56
|
-
baseURLKeyName: string;
|
|
57
|
-
};
|
|
58
|
-
google: {
|
|
59
|
-
agentName: string;
|
|
60
|
-
defaultModel: string;
|
|
61
|
-
models: string[];
|
|
62
|
-
keyName: string;
|
|
63
|
-
};
|
|
64
|
-
replicate: {
|
|
65
|
-
agentName: string;
|
|
66
|
-
defaultModel: string;
|
|
67
|
-
models: string[];
|
|
68
|
-
keyName: string;
|
|
69
|
-
};
|
|
70
|
-
mock: {
|
|
71
|
-
agentName: string;
|
|
72
|
-
defaultModel: string;
|
|
73
|
-
models: string[];
|
|
74
|
-
keyName: string;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
export type ReplicateModel = `${string}/${string}`;
|
|
78
|
-
export declare const provider2MovieAgent: {
|
|
79
|
-
replicate: {
|
|
80
|
-
agentName: string;
|
|
81
|
-
defaultModel: ReplicateModel;
|
|
82
|
-
keyName: string;
|
|
83
|
-
models: string[];
|
|
84
|
-
modelParams: Record<ReplicateModel, {
|
|
85
|
-
durations: number[];
|
|
86
|
-
start_image: string | undefined;
|
|
87
|
-
last_image?: string;
|
|
88
|
-
price_per_sec: number;
|
|
89
|
-
}>;
|
|
90
|
-
};
|
|
91
|
-
google: {
|
|
92
|
-
agentName: string;
|
|
93
|
-
defaultModel: string;
|
|
94
|
-
models: string[];
|
|
95
|
-
keyName: string;
|
|
96
|
-
modelParams: {
|
|
97
|
-
"veo-3.1-generate-preview": {
|
|
98
|
-
durations: number[];
|
|
99
|
-
};
|
|
100
|
-
"veo-3.0-generate-001": {
|
|
101
|
-
durations: number[];
|
|
102
|
-
};
|
|
103
|
-
"veo-2.0-generate-001": {
|
|
104
|
-
durations: number[];
|
|
105
|
-
};
|
|
106
|
-
};
|
|
107
|
-
};
|
|
108
|
-
mock: {
|
|
109
|
-
agentName: string;
|
|
110
|
-
defaultModel: string;
|
|
111
|
-
models: string[];
|
|
112
|
-
keyName: string;
|
|
113
|
-
modelParams: {};
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
export declare const provider2SoundEffectAgent: {
|
|
117
|
-
replicate: {
|
|
118
|
-
agentName: string;
|
|
119
|
-
defaultModel: ReplicateModel;
|
|
120
|
-
keyName: string;
|
|
121
|
-
models: ReplicateModel[];
|
|
122
|
-
modelParams: Record<ReplicateModel, {
|
|
123
|
-
identifier?: `${string}/${string}:${string}`;
|
|
124
|
-
}>;
|
|
125
|
-
};
|
|
126
|
-
};
|
|
127
|
-
export declare const provider2LipSyncAgent: {
|
|
128
|
-
replicate: {
|
|
129
|
-
agentName: string;
|
|
130
|
-
defaultModel: ReplicateModel;
|
|
131
|
-
keyName: string;
|
|
132
|
-
models: ReplicateModel[];
|
|
133
|
-
modelParams: Record<ReplicateModel, {
|
|
134
|
-
identifier?: `${string}/${string}:${string}` | `${string}/${string}`;
|
|
135
|
-
video?: string;
|
|
136
|
-
audio: string;
|
|
137
|
-
image?: string;
|
|
138
|
-
}>;
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
export declare const provider2LLMAgent: {
|
|
142
|
-
readonly openai: {
|
|
143
|
-
readonly agentName: "openAIAgent";
|
|
144
|
-
readonly defaultModel: "gpt-5";
|
|
145
|
-
readonly keyName: "OPENAI_API_KEY";
|
|
146
|
-
readonly baseURLKeyName: "OPENAI_BASE_URL";
|
|
147
|
-
readonly max_tokens: 8192;
|
|
148
|
-
readonly models: readonly ["gpt-5", "gpt-5-nano", "gpt-5-mini", "gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", "o3", "o3-mini", "o3-pro", "o1", "o1-pro", "gpt-4o", "gpt-4o-mini"];
|
|
149
|
-
};
|
|
150
|
-
readonly anthropic: {
|
|
151
|
-
readonly agentName: "anthropicAgent";
|
|
152
|
-
readonly defaultModel: "claude-3-7-sonnet-20250219";
|
|
153
|
-
readonly max_tokens: 8192;
|
|
154
|
-
readonly models: readonly ["claude-opus-4-1-20250805", "claude-opus-4-20250514", "claude-sonnet-4-20250514", "claude-3-7-sonnet-20250219", "claude-3-haiku-20240307"];
|
|
155
|
-
readonly keyName: "ANTHROPIC_API_KEY";
|
|
156
|
-
readonly apiKeyNameOverride: "ANTHROPIC_API_TOKEN";
|
|
157
|
-
};
|
|
158
|
-
readonly gemini: {
|
|
159
|
-
readonly agentName: "geminiAgent";
|
|
160
|
-
readonly defaultModel: "gemini-2.5-flash";
|
|
161
|
-
readonly max_tokens: 8192;
|
|
162
|
-
readonly models: readonly ["gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "gemini-2.0-flash"];
|
|
163
|
-
readonly keyName: "GEMINI_API_KEY";
|
|
164
|
-
};
|
|
165
|
-
readonly groq: {
|
|
166
|
-
readonly agentName: "groqAgent";
|
|
167
|
-
readonly defaultModel: "llama-3.1-8b-instant";
|
|
168
|
-
readonly keyName: "GROQ_API_KEY";
|
|
169
|
-
readonly max_tokens: 4096;
|
|
170
|
-
readonly models: readonly ["llama-3.1-8b-instant", "llama-3.3-70b-versatile", "deepseek-r1-distill-llama-70b", "openai/gpt-oss-120b", "openai/gpt-oss-20b"];
|
|
171
|
-
};
|
|
172
|
-
readonly mock: {
|
|
173
|
-
readonly agentName: "mediaMockAgent";
|
|
174
|
-
readonly defaultModel: "mock";
|
|
175
|
-
readonly max_tokens: 4096;
|
|
176
|
-
readonly models: readonly ["mock"];
|
|
177
|
-
};
|
|
178
|
-
};
|
|
179
|
-
export declare const defaultProviders: {
|
|
180
|
-
tts: keyof typeof provider2TTSAgent;
|
|
181
|
-
text2image: keyof typeof provider2ImageAgent;
|
|
182
|
-
text2movie: keyof typeof provider2MovieAgent;
|
|
183
|
-
text2Html: keyof typeof provider2LLMAgent;
|
|
184
|
-
llm: keyof typeof provider2LLMAgent;
|
|
185
|
-
soundEffect: keyof typeof provider2SoundEffectAgent;
|
|
186
|
-
lipSync: keyof typeof provider2LipSyncAgent;
|
|
187
|
-
};
|
|
188
|
-
export declare const llm: (keyof typeof provider2LLMAgent)[];
|
|
189
|
-
export type LLM = keyof typeof provider2LLMAgent;
|
|
190
|
-
export declare const htmlLLMProvider: string[];
|
|
191
|
-
export declare const getModelDuration: (provider: keyof typeof provider2MovieAgent, model: string, movieDuration?: number) => number | undefined;
|