mulmocast 2.1.32 → 2.1.34

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/cli/bin.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- export declare const main: () => Promise<void>;
2
+ export {};
package/lib/cli/bin.js CHANGED
@@ -1,64 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import dotenv from "dotenv";
3
- import yargs from "yargs/yargs";
4
- import { hideBin } from "yargs/helpers";
5
- import { readFileSync } from "fs";
6
- import { fileURLToPath } from "url";
7
- import { dirname, join } from "path";
8
- import * as translateCmd from "./commands/translate/index.js";
9
- import * as audioCmd from "./commands/audio/index.js";
10
- import * as imagesCmd from "./commands/image/index.js";
11
- import * as movieCmd from "./commands/movie/index.js";
12
- import * as pdfCmd from "./commands/pdf/index.js";
13
- import * as markdownCmd from "./commands/markdown/index.js";
14
- import * as bundleCmd from "./commands/bundle/index.js";
15
- import * as htmlCmd from "./commands/html/index.js";
16
- import * as toolCmd from "./commands/tool/index.js";
2
+ import { cliMain } from "./main.js";
17
3
  import { GraphAILogger } from "graphai";
18
- dotenv.config({ quiet: true });
19
- const __filename = fileURLToPath(import.meta.url);
20
- const __dirname = dirname(__filename);
21
- const packageJson = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf8"));
22
- export const main = async () => {
23
- const cli = yargs(hideBin(process.argv))
24
- .scriptName("mulmo")
25
- .version(packageJson.version)
26
- .usage("$0 <command> [options]")
27
- .option("v", {
28
- alias: "verbose",
29
- describe: "verbose log",
30
- demandOption: true,
31
- default: false,
32
- type: "boolean",
33
- })
34
- .command(translateCmd)
35
- .command(audioCmd)
36
- .command(imagesCmd)
37
- .command(movieCmd)
38
- .command(pdfCmd)
39
- .command(markdownCmd)
40
- .command(bundleCmd)
41
- .command(htmlCmd)
42
- .command(toolCmd)
43
- .demandCommand()
44
- .strict()
45
- .help()
46
- .showHelpOnFail(false)
47
- .fail((msg, err, y) => {
48
- // if yargs detect error, show help and exit
49
- if (msg) {
50
- y.showHelp();
51
- GraphAILogger.info("\\n" + msg);
52
- process.exit(1);
53
- }
54
- if (err) {
55
- throw err;
56
- }
57
- })
58
- .alias("help", "h");
59
- await cli.parseAsync();
60
- };
61
- main().catch((error) => {
4
+ cliMain().catch((error) => {
62
5
  GraphAILogger.info("An unexpected error occurred:", error);
63
6
  process.exit(1);
64
7
  });
@@ -0,0 +1,5 @@
1
+ /**
2
+ * CLI main function for programmatic usage.
3
+ * This function only defines the CLI, it does not execute automatically.
4
+ */
5
+ export declare const cliMain: () => Promise<void>;
@@ -0,0 +1,63 @@
1
+ import dotenv from "dotenv";
2
+ import yargs from "yargs/yargs";
3
+ import { hideBin } from "yargs/helpers";
4
+ import { readFileSync } from "fs";
5
+ import { fileURLToPath } from "url";
6
+ import { dirname, join } from "path";
7
+ import * as translateCmd from "./commands/translate/index.js";
8
+ import * as audioCmd from "./commands/audio/index.js";
9
+ import * as imagesCmd from "./commands/image/index.js";
10
+ import * as movieCmd from "./commands/movie/index.js";
11
+ import * as pdfCmd from "./commands/pdf/index.js";
12
+ import * as markdownCmd from "./commands/markdown/index.js";
13
+ import * as bundleCmd from "./commands/bundle/index.js";
14
+ import * as htmlCmd from "./commands/html/index.js";
15
+ import * as toolCmd from "./commands/tool/index.js";
16
+ import { GraphAILogger } from "graphai";
17
+ dotenv.config({ quiet: true });
18
+ const __filename = fileURLToPath(import.meta.url);
19
+ const __dirname = dirname(__filename);
20
+ const packageJson = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf8"));
21
+ /**
22
+ * CLI main function for programmatic usage.
23
+ * This function only defines the CLI, it does not execute automatically.
24
+ */
25
+ export const cliMain = async () => {
26
+ const cli = yargs(hideBin(process.argv))
27
+ .scriptName("mulmo")
28
+ .version(packageJson.version)
29
+ .usage("$0 <command> [options]")
30
+ .option("v", {
31
+ alias: "verbose",
32
+ describe: "verbose log",
33
+ demandOption: true,
34
+ default: false,
35
+ type: "boolean",
36
+ })
37
+ .command(translateCmd)
38
+ .command(audioCmd)
39
+ .command(imagesCmd)
40
+ .command(movieCmd)
41
+ .command(pdfCmd)
42
+ .command(markdownCmd)
43
+ .command(bundleCmd)
44
+ .command(htmlCmd)
45
+ .command(toolCmd)
46
+ .demandCommand()
47
+ .strict()
48
+ .help()
49
+ .showHelpOnFail(false)
50
+ .fail((msg, err, y) => {
51
+ // if yargs detect error, show help and exit
52
+ if (msg) {
53
+ y.showHelp();
54
+ GraphAILogger.info("\n" + msg);
55
+ process.exit(1);
56
+ }
57
+ if (err) {
58
+ throw err;
59
+ }
60
+ })
61
+ .alias("help", "h");
62
+ await cli.parseAsync();
63
+ };
@@ -6,3 +6,4 @@ export * from "./utils/context.js";
6
6
  export * from "./utils/ffmpeg_utils.js";
7
7
  export * from "./methods/index.js";
8
8
  export * from "./agents/index.js";
9
+ export { cliMain } from "./cli/main.js";
package/lib/index.node.js CHANGED
@@ -7,3 +7,5 @@ export * from "./utils/context.js";
7
7
  export * from "./utils/ffmpeg_utils.js";
8
8
  export * from "./methods/index.js";
9
9
  export * from "./agents/index.js";
10
+ // CLI entry point for programmatic usage (e.g., mulmocast-easy)
11
+ export { cliMain } from "./cli/main.js";
@@ -21,7 +21,7 @@ export const localizedTextSchema = z
21
21
  export const multiLingualTextsSchema = z.record(langSchema, localizedTextSchema);
22
22
  export const speechOptionsSchema = z
23
23
  .object({
24
- speed: z.number().optional(), // default: 1.0 for google and niji voice, elevenLabs
24
+ speed: z.number().optional(), // default: 1.0 for google, elevenlabs
25
25
  instruction: z.string().optional(), // for tts openai
26
26
  decoration: z.string().optional(), // for kotodama. default: neutral
27
27
  stability: z.number().optional(), // for elevenLabs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mulmocast",
3
- "version": "2.1.32",
3
+ "version": "2.1.34",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "lib/index.node.js",
@@ -62,7 +62,6 @@
62
62
  "template": "npx tsx batch/template2tsobject.ts && yarn run format",
63
63
  "mcp_server": "npx tsx ./src/mcp/server.ts",
64
64
  "voice": "npx tsx batch/openai_sample.ts && yarn run movie scripts/samples/openai_voice.json",
65
- "nijivoice": "npx tsx batch/niji_sample.ts && yarn run movie scripts/samples/niji_voice.json",
66
65
  "generate_action_docs": "npx tsx ./automation/generate_actions_docs/generate_action_docs.ts"
67
66
  },
68
67
  "repository": {
@@ -77,7 +76,7 @@
77
76
  "homepage": "https://github.com/receptron/mulmocast-cli#readme",
78
77
  "dependencies": {
79
78
  "@google-cloud/text-to-speech": "^6.4.0",
80
- "@google/genai": "^1.38.0",
79
+ "@google/genai": "^1.39.0",
81
80
  "@graphai/anthropic_agent": "^2.0.12",
82
81
  "@graphai/browserless_agent": "^2.0.1",
83
82
  "@graphai/gemini_agent": "^2.0.5",
@@ -89,18 +88,18 @@
89
88
  "@graphai/vanilla_node_agents": "^2.0.4",
90
89
  "@inquirer/input": "^5.0.4",
91
90
  "@inquirer/select": "^5.0.4",
92
- "@modelcontextprotocol/sdk": "^1.25.3",
91
+ "@modelcontextprotocol/sdk": "^1.26.0",
93
92
  "@mozilla/readability": "^0.6.0",
94
93
  "@tavily/core": "^0.5.11",
95
94
  "archiver": "^7.0.1",
96
- "clipboardy": "^5.1.0",
95
+ "clipboardy": "^5.2.1",
97
96
  "dotenv": "^17.2.3",
98
97
  "fluent-ffmpeg": "^2.1.3",
99
98
  "graphai": "^2.0.16",
100
- "jsdom": "^27.4.0",
99
+ "jsdom": "^28.0.0",
101
100
  "marked": "^17.0.1",
102
101
  "mulmocast-vision": "^1.0.8",
103
- "ora": "^9.1.0",
102
+ "ora": "^9.2.0",
104
103
  "puppeteer": "^24.36.1",
105
104
  "replicate": "^1.4.0",
106
105
  "yaml": "^2.8.2",
@@ -23,7 +23,7 @@ Simple test scripts for basic functionality verification
23
23
 
24
24
  Tests for various TTS providers
25
25
 
26
- - [**test_all_tts.json**](./test_all_tts.json) - 全TTSプロバイダーのテスト(OpenAI, Gemini, Google, ElevenLabs, Nijivoice) / All TTS providers test
26
+ - [**test_all_tts.json**](./test_all_tts.json) - 全TTSプロバイダーのテスト(OpenAI, Gemini, Google, ElevenLabs) / All TTS providers test
27
27
  - [**test_audio.json**](./test_audio.json) - 音声パラメータのテスト(padding, duration, movieVolumeなど) / Audio parameters test
28
28
  - [**test_audio_gemini.json**](./test_audio_gemini.json) - Gemini TTSの個別テスト / Gemini TTS specific test
29
29
  - [**test_audio_instructions.json**](./test_audio_instructions.json) - OpenAI TTS instructionsのテスト / OpenAI TTS instructions test
@@ -0,0 +1,26 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "lang": "en",
6
+ "title": "Test Azure OpenAI (TTS + Images)",
7
+ "speechParams": {
8
+ "speakers": {
9
+ "Presenter": {
10
+ "provider": "openai",
11
+ "voiceId": "alloy",
12
+ "model": "tts"
13
+ }
14
+ }
15
+ },
16
+ "imageParams": {
17
+ "provider": "openai",
18
+ "model": "gpt-image-1.5"
19
+ },
20
+ "beats": [
21
+ {
22
+ "text": "Hello, this is a test of Azure OpenAI text to speech.",
23
+ "imagePrompt": "A beautiful sunset over mountains, photorealistic style"
24
+ }
25
+ ]
26
+ }