mulmocast 0.0.18 → 0.0.20

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.
Files changed (77) hide show
  1. package/README.md +44 -36
  2. package/assets/templates/ghibli_image_only.json +28 -0
  3. package/lib/actions/audio.js +13 -11
  4. package/lib/actions/captions.js +2 -3
  5. package/lib/actions/images.d.ts +5 -0
  6. package/lib/actions/images.js +41 -17
  7. package/lib/actions/movie.js +17 -3
  8. package/lib/actions/translate.js +3 -3
  9. package/lib/agents/add_bgm_agent.js +2 -2
  10. package/lib/agents/combine_audio_files_agent.js +96 -53
  11. package/lib/agents/image_openai_agent.js +2 -1
  12. package/lib/agents/validate_schema_agent.d.ts +1 -1
  13. package/lib/agents/validate_schema_agent.js +3 -3
  14. package/lib/cli/helpers.js +6 -1
  15. package/lib/index.browser.d.ts +2 -0
  16. package/lib/index.browser.js +3 -0
  17. package/lib/index.d.ts +1 -0
  18. package/lib/index.js +1 -0
  19. package/lib/methods/mulmo_presentation_style.js +2 -1
  20. package/lib/types/schema.d.ts +197 -129
  21. package/lib/types/schema.js +9 -5
  22. package/lib/utils/const.d.ts +1 -0
  23. package/lib/utils/const.js +1 -0
  24. package/lib/utils/file.d.ts +1 -0
  25. package/lib/utils/file.js +4 -0
  26. package/lib/utils/image_plugins/beat.d.ts +1 -0
  27. package/lib/utils/image_plugins/beat.js +3 -0
  28. package/lib/utils/image_plugins/chart.d.ts +1 -0
  29. package/lib/utils/image_plugins/chart.js +2 -0
  30. package/lib/utils/image_plugins/html_tailwind.d.ts +1 -0
  31. package/lib/utils/image_plugins/html_tailwind.js +2 -0
  32. package/lib/utils/image_plugins/image.d.ts +1 -0
  33. package/lib/utils/image_plugins/image.js +1 -0
  34. package/lib/utils/image_plugins/index.d.ts +3 -3
  35. package/lib/utils/image_plugins/index.js +6 -3
  36. package/lib/utils/image_plugins/markdown.d.ts +1 -0
  37. package/lib/utils/image_plugins/markdown.js +2 -0
  38. package/lib/utils/image_plugins/mermaid.d.ts +1 -0
  39. package/lib/utils/image_plugins/mermaid.js +3 -1
  40. package/lib/utils/image_plugins/movie.d.ts +1 -0
  41. package/lib/utils/image_plugins/movie.js +1 -0
  42. package/lib/utils/image_plugins/source.js +1 -1
  43. package/lib/utils/image_plugins/text_slide.d.ts +1 -0
  44. package/lib/utils/image_plugins/text_slide.js +2 -0
  45. package/lib/utils/image_plugins/utils.d.ts +2 -0
  46. package/lib/utils/image_plugins/utils.js +3 -0
  47. package/lib/utils/preprocess.d.ts +3 -1
  48. package/package.json +13 -3
  49. package/scripts/templates/image_prompt_only_template.json +27 -0
  50. package/lib/agents/image_mock_agent.d.ts +0 -4
  51. package/lib/agents/image_mock_agent.js +0 -18
  52. package/lib/agents/mulmo_prompts_agent.d.ts +0 -7
  53. package/lib/agents/mulmo_prompts_agent.js +0 -37
  54. package/lib/agents/prompts_data.d.ts +0 -15
  55. package/lib/agents/prompts_data.js +0 -16
  56. package/lib/agents/validate_mulmo_script_agent.d.ts +0 -17
  57. package/lib/agents/validate_mulmo_script_agent.js +0 -34
  58. package/lib/cli/args.d.ts +0 -15
  59. package/lib/cli/args.js +0 -62
  60. package/lib/cli/cli.d.ts +0 -17
  61. package/lib/cli/cli.js +0 -117
  62. package/lib/cli/run.d.ts +0 -2
  63. package/lib/cli/run.js +0 -3
  64. package/lib/cli/tool-args.d.ts +0 -16
  65. package/lib/cli/tool-args.js +0 -64
  66. package/lib/cli/tool-cli.d.ts +0 -2
  67. package/lib/cli/tool-cli.js +0 -69
  68. package/lib/methods/mulmo_script.d.ts +0 -11
  69. package/lib/methods/mulmo_script.js +0 -59
  70. package/lib/methods/mulmo_studio.d.ts +0 -8
  71. package/lib/methods/mulmo_studio.js +0 -24
  72. package/lib/tools/prompt.d.ts +0 -1
  73. package/lib/tools/prompt.js +0 -18
  74. package/lib/utils/image_plugins/tailwind.d.ts +0 -3
  75. package/lib/utils/image_plugins/tailwind.js +0 -18
  76. package/lib/utils/pdf.d.ts +0 -9
  77. package/lib/utils/pdf.js +0 -77
@@ -162,11 +162,13 @@ export const beatAudioParamsSchema = z
162
162
  // Note: we can't extend beatAudioParamsSchema because it has padding as optional
163
163
  export const audioParamsSchema = z
164
164
  .object({
165
- padding: z.number().describe("Padding between beats"), // seconds
166
- introPadding: z.number().describe("Padding at the beginning of the audio"), // seconds
167
- closingPadding: z.number().describe("Padding before the last beat"), // seconds
168
- outroPadding: z.number().describe("Padding at the end of the audio"), // seconds
165
+ padding: z.number().default(0.3).describe("Padding between beats"), // seconds
166
+ introPadding: z.number().default(1.0).describe("Padding at the beginning of the audio"), // seconds
167
+ closingPadding: z.number().default(0.8).describe("Padding before the last beat"), // seconds
168
+ outroPadding: z.number().default(1.0).describe("Padding at the end of the audio"), // seconds
169
169
  bgm: mediaSourceSchema.optional(),
170
+ bgmVolume: z.number().default(0.2).describe("Volume of the background music"),
171
+ audioVolume: z.number().default(1.0).describe("Volume of the audio"),
170
172
  })
171
173
  .strict();
172
174
  export const mulmoBeatSchema = z
@@ -209,7 +211,7 @@ export const mulmoSpeechParamsSchema = z
209
211
  export const text2ImageProviderSchema = z.union([z.literal("openai"), z.literal("google")]).default("openai");
210
212
  export const text2MovieProviderSchema = z.union([z.literal("openai"), z.literal("google")]).default("google");
211
213
  export const mulmoTransitionSchema = z.object({
212
- type: z.enum(["fade"]),
214
+ type: z.enum(["fade", "slideout_left"]),
213
215
  duration: z.number().min(0).max(2).default(0.3), // transition duration in seconds
214
216
  });
215
217
  export const mulmoMovieParamsSchema = z
@@ -245,6 +247,8 @@ export const mulmoPresentationStyleSchema = z.object({
245
247
  padding: 0.3,
246
248
  closingPadding: 0.8,
247
249
  outroPadding: 1.0,
250
+ bgmVolume: 0.2,
251
+ audioVolume: 1.0,
248
252
  }),
249
253
  });
250
254
  export const mulmoReferenceSchema = z.object({
@@ -9,3 +9,4 @@ export declare const storyToScriptGenerateMode: {
9
9
  stepWise: string;
10
10
  oneStep: string;
11
11
  };
12
+ export declare const defaultOpenAIImageModel = "dall-e-3";
@@ -9,3 +9,4 @@ export const storyToScriptGenerateMode = {
9
9
  stepWise: "step_wise",
10
10
  oneStep: "one_step",
11
11
  };
12
+ export const defaultOpenAIImageModel = "dall-e-3";
@@ -27,6 +27,7 @@ export declare const imageSuffix = "p";
27
27
  export declare const getBeatPngImagePath: (context: MulmoStudioContext, index: number) => string;
28
28
  export declare const getBeatMoviePath: (context: MulmoStudioContext, index: number) => string;
29
29
  export declare const getReferenceImagePath: (context: MulmoStudioContext, key: string, extension: string) => string;
30
+ export declare const getCaptionImagePath: (context: MulmoStudioContext, index: number) => string;
30
31
  export declare const getOutputPdfFilePath: (outDirPath: string, fileName: string, pdfMode: PDFMode, lang?: string) => string;
31
32
  export declare const getTemplateFilePath: (templateName: string) => string;
32
33
  export declare const mkdir: (dirPath: string) => void;
package/lib/utils/file.js CHANGED
@@ -91,6 +91,10 @@ export const getReferenceImagePath = (context, key, extension) => {
91
91
  const imageProjectDirPath = MulmoStudioContextMethods.getImageProjectDirPath(context);
92
92
  return `${imageProjectDirPath}/${key}.${extension}`;
93
93
  };
94
+ export const getCaptionImagePath = (context, index) => {
95
+ const imageProjectDirPath = MulmoStudioContextMethods.getImageProjectDirPath(context);
96
+ return `${imageProjectDirPath}/${index}_caption.png`;
97
+ };
94
98
  // pdf
95
99
  export const getOutputPdfFilePath = (outDirPath, fileName, pdfMode, lang) => {
96
100
  if (lang) {
@@ -2,3 +2,4 @@ import { ImageProcessorParams } from "../../types/index.js";
2
2
  export declare const imageType = "beat";
3
3
  export declare const processBeatReference: (__: ImageProcessorParams) => Promise<undefined>;
4
4
  export declare const process: (__: ImageProcessorParams) => Promise<undefined>;
5
+ export declare const path: (__: ImageProcessorParams) => undefined;
@@ -5,3 +5,6 @@ export const processBeatReference = async (__) => {
5
5
  return undefined;
6
6
  };
7
7
  export const process = processBeatReference;
8
+ export const path = (__) => {
9
+ return undefined;
10
+ };
@@ -1,3 +1,4 @@
1
1
  import { ImageProcessorParams } from "../../types/index.js";
2
2
  export declare const imageType = "chart";
3
3
  export declare const process: (params: ImageProcessorParams) => Promise<string | undefined>;
4
+ export declare const path: (params: ImageProcessorParams) => string;
@@ -1,5 +1,6 @@
1
1
  import { getHTMLFile } from "../file.js";
2
2
  import { renderHTMLToImage, interpolate } from "../markdown.js";
3
+ import { parrotingImagePath } from "./utils.js";
3
4
  export const imageType = "chart";
4
5
  const processChart = async (params) => {
5
6
  const { beat, imagePath, canvasSize, textSlideStyle } = params;
@@ -21,3 +22,4 @@ const processChart = async (params) => {
21
22
  return imagePath;
22
23
  };
23
24
  export const process = processChart;
25
+ export const path = parrotingImagePath;
@@ -1,3 +1,4 @@
1
1
  import { ImageProcessorParams } from "../../types/index.js";
2
2
  export declare const imageType = "html_tailwind";
3
3
  export declare const process: (params: ImageProcessorParams) => Promise<string | undefined>;
4
+ export declare const path: (params: ImageProcessorParams) => string;
@@ -1,5 +1,6 @@
1
1
  import { getHTMLFile } from "../file.js";
2
2
  import { renderHTMLToImage, interpolate } from "../markdown.js";
3
+ import { parrotingImagePath } from "./utils.js";
3
4
  export const imageType = "html_tailwind";
4
5
  const processHtmlTailwind = async (params) => {
5
6
  const { beat, imagePath, canvasSize } = params;
@@ -16,3 +17,4 @@ const processHtmlTailwind = async (params) => {
16
17
  return imagePath;
17
18
  };
18
19
  export const process = processHtmlTailwind;
20
+ export const path = parrotingImagePath;
@@ -1,2 +1,3 @@
1
1
  export declare const imageType = "image";
2
2
  export declare const process: (params: import("../../index.js").ImageProcessorParams) => string | undefined;
3
+ export declare const path: (params: import("../../index.js").ImageProcessorParams) => string | undefined;
@@ -1,3 +1,4 @@
1
1
  import { processSource } from "./source.js";
2
2
  export const imageType = "image";
3
3
  export const process = processSource(imageType);
4
+ export const path = processSource(imageType);
@@ -1,9 +1,9 @@
1
1
  import * as pluginTextSlide from "./text_slide.js";
2
2
  import * as pluginMarkdown from "./markdown.js";
3
- import * as pluginImage from "./image.js";
4
3
  import * as pluginChart from "./chart.js";
5
4
  import * as pluginMermaid from "./mermaid.js";
6
- import * as pluginMovie from "./movie.js";
7
5
  import * as pluginHtmlTailwind from "./html_tailwind.js";
6
+ import * as pluginImage from "./image.js";
7
+ import * as pluginMovie from "./movie.js";
8
8
  import * as pluginBeat from "./beat.js";
9
- export declare const imagePlugins: (typeof pluginTextSlide | typeof pluginMarkdown | typeof pluginImage | typeof pluginChart | typeof pluginMermaid | typeof pluginMovie | typeof pluginHtmlTailwind | typeof pluginBeat)[];
9
+ export declare const findImagePlugin: (imageType?: string) => typeof pluginTextSlide | typeof pluginMarkdown | typeof pluginChart | typeof pluginMermaid | typeof pluginHtmlTailwind | typeof pluginImage | typeof pluginMovie | typeof pluginBeat | undefined;
@@ -1,9 +1,12 @@
1
1
  import * as pluginTextSlide from "./text_slide.js";
2
2
  import * as pluginMarkdown from "./markdown.js";
3
- import * as pluginImage from "./image.js";
4
3
  import * as pluginChart from "./chart.js";
5
4
  import * as pluginMermaid from "./mermaid.js";
6
- import * as pluginMovie from "./movie.js";
7
5
  import * as pluginHtmlTailwind from "./html_tailwind.js";
6
+ import * as pluginImage from "./image.js";
7
+ import * as pluginMovie from "./movie.js";
8
8
  import * as pluginBeat from "./beat.js";
9
- export const imagePlugins = [pluginTextSlide, pluginMarkdown, pluginImage, pluginChart, pluginMermaid, pluginMovie, pluginHtmlTailwind, pluginBeat];
9
+ const imagePlugins = [pluginTextSlide, pluginMarkdown, pluginImage, pluginChart, pluginMermaid, pluginMovie, pluginHtmlTailwind, pluginBeat];
10
+ export const findImagePlugin = (imageType) => {
11
+ return imagePlugins.find((plugin) => plugin.imageType === imageType);
12
+ };
@@ -1,3 +1,4 @@
1
1
  import { ImageProcessorParams } from "../../types/index.js";
2
2
  export declare const imageType = "markdown";
3
3
  export declare const process: (params: ImageProcessorParams) => Promise<string | undefined>;
4
+ export declare const path: (params: ImageProcessorParams) => string;
@@ -1,4 +1,5 @@
1
1
  import { renderMarkdownToImage } from "../markdown.js";
2
+ import { parrotingImagePath } from "./utils.js";
2
3
  export const imageType = "markdown";
3
4
  const processMarkdown = async (params) => {
4
5
  const { beat, imagePath, textSlideStyle, canvasSize } = params;
@@ -9,3 +10,4 @@ const processMarkdown = async (params) => {
9
10
  return imagePath;
10
11
  };
11
12
  export const process = processMarkdown;
13
+ export const path = parrotingImagePath;
@@ -1,3 +1,4 @@
1
1
  import { ImageProcessorParams } from "../../types/index.js";
2
2
  export declare const imageType = "mermaid";
3
3
  export declare const process: (params: ImageProcessorParams) => Promise<string | undefined>;
4
+ export declare const path: (params: ImageProcessorParams) => string;
@@ -1,10 +1,11 @@
1
1
  import { MulmoMediaSourceMethods } from "../../methods/index.js";
2
2
  import { getHTMLFile } from "../file.js";
3
3
  import { renderHTMLToImage, interpolate } from "../markdown.js";
4
+ import { parrotingImagePath } from "./utils.js";
4
5
  export const imageType = "mermaid";
5
6
  const processMermaid = async (params) => {
6
7
  const { beat, imagePath, canvasSize, context, textSlideStyle } = params;
7
- if (!beat.image || beat.image.type !== imageType)
8
+ if (!beat || !beat.image || beat.image.type !== imageType)
8
9
  return;
9
10
  const template = getHTMLFile("mermaid");
10
11
  const diagram_code = await MulmoMediaSourceMethods.getText(beat.image.code, context);
@@ -19,3 +20,4 @@ const processMermaid = async (params) => {
19
20
  return imagePath;
20
21
  };
21
22
  export const process = processMermaid;
23
+ export const path = parrotingImagePath;
@@ -1,2 +1,3 @@
1
1
  export declare const imageType = "movie";
2
2
  export declare const process: (params: import("../../index.js").ImageProcessorParams) => string | undefined;
3
+ export declare const path: (params: import("../../index.js").ImageProcessorParams) => string | undefined;
@@ -1,3 +1,4 @@
1
1
  import { processSource } from "./source.js";
2
2
  export const imageType = "movie";
3
3
  export const process = processSource(imageType);
4
+ export const path = processSource(imageType);
@@ -3,7 +3,7 @@ import { MulmoMediaSourceMethods } from "../../methods/mulmo_media_source.js";
3
3
  export const processSource = (imageType) => {
4
4
  return (params) => {
5
5
  const { beat, context } = params;
6
- if (!beat.image || beat.image.type !== imageType)
6
+ if (!beat || !beat.image || beat.image.type !== imageType)
7
7
  return;
8
8
  const path = MulmoMediaSourceMethods.resolve(beat.image.source, context);
9
9
  if (path) {
@@ -1,3 +1,4 @@
1
1
  import { ImageProcessorParams } from "../../types/index.js";
2
2
  export declare const imageType = "textSlide";
3
3
  export declare const process: (params: ImageProcessorParams) => Promise<string | undefined>;
4
+ export declare const path: (params: ImageProcessorParams) => string;
@@ -1,4 +1,5 @@
1
1
  import { renderMarkdownToImage } from "../markdown.js";
2
+ import { parrotingImagePath } from "./utils.js";
2
3
  export const imageType = "textSlide";
3
4
  const processTextSlide = async (params) => {
4
5
  const { beat, imagePath, textSlideStyle, canvasSize } = params;
@@ -17,3 +18,4 @@ const processTextSlide = async (params) => {
17
18
  return imagePath;
18
19
  };
19
20
  export const process = processTextSlide;
21
+ export const path = parrotingImagePath;
@@ -0,0 +1,2 @@
1
+ import { ImageProcessorParams } from "../../types/index.js";
2
+ export declare const parrotingImagePath: (params: ImageProcessorParams) => string;
@@ -0,0 +1,3 @@
1
+ export const parrotingImagePath = (params) => {
2
+ return params.imagePath;
3
+ };
@@ -14,6 +14,8 @@ export declare const createOrUpdateStudioData: (_mulmoScript: MulmoScript, curre
14
14
  introPadding: number;
15
15
  closingPadding: number;
16
16
  outroPadding: number;
17
+ bgmVolume: number;
18
+ audioVolume: number;
17
19
  bgm?: {
18
20
  url: string;
19
21
  kind: "url";
@@ -242,7 +244,7 @@ export declare const createOrUpdateStudioData: (_mulmoScript: MulmoScript, curre
242
244
  provider?: "openai" | "google" | undefined;
243
245
  model?: string | undefined;
244
246
  transition?: {
245
- type: "fade";
247
+ type: "fade" | "slideout_left";
246
248
  duration: number;
247
249
  } | undefined;
248
250
  } | undefined;
package/package.json CHANGED
@@ -1,9 +1,19 @@
1
1
  {
2
2
  "name": "mulmocast",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./lib/index.d.ts",
10
+ "default": "./lib/index.js"
11
+ },
12
+ "./browser": {
13
+ "types": "./lib/index.browser.d.ts",
14
+ "default": "./lib/index.browser.js"
15
+ }
16
+ },
7
17
  "bin": {
8
18
  "mulmo": "lib/cli/bin.js"
9
19
  },
@@ -14,7 +24,6 @@
14
24
  "./assets/html/",
15
25
  "./assets/templates/"
16
26
  ],
17
- "types": "./lib/types/index.d.ts",
18
27
  "directories": {
19
28
  "lib": "lib",
20
29
  "test": "tests"
@@ -38,7 +47,8 @@
38
47
  "story_to_script": "npx tsx ./src/cli/bin.ts tool story_to_script",
39
48
  "latest": "yarn upgrade-interactive --latest",
40
49
  "format": "prettier --write '{src,scripts,assets/templates,assets/styles,draft,ideason,scripts_mag2,proto,test,graphai,output,docs/scripts}/**/*.{ts,json,yaml}'",
41
- "deep_research": "npx tsx ./src/tools/deep_research.ts"
50
+ "deep_research": "npx tsx ./src/tools/deep_research.ts",
51
+ "fake_data": "npx tsx test/fake/sample.ts"
42
52
  },
43
53
  "repository": "git+ssh://git@github.com/receptron/mulmocast-cli.git",
44
54
  "author": "snakajima",
@@ -0,0 +1,27 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.0",
4
+ "credit": "closing"
5
+ },
6
+ "title": "[TITLE: Brief, engaging title for the topic]",
7
+ "beats": [
8
+ {
9
+ "imagePrompt": "[IMAGE_PROMPT: A prompt for the image to be generated for this beat.]"
10
+ },
11
+ {
12
+ "imagePrompt": "[IMAGE_PROMPT: A prompt for the image to be generated for this beat.]"
13
+ },
14
+ {
15
+ "imagePrompt": "[IMAGE_PROMPT: A prompt for the image to be generated for this beat.]"
16
+ },
17
+ {
18
+ "imagePrompt": "[IMAGE_PROMPT: A prompt for the image to be generated for this beat.]"
19
+ },
20
+ {
21
+ "imagePrompt": "[IMAGE_PROMPT: A prompt for the image to be generated for this beat.]"
22
+ },
23
+ {
24
+ "imagePrompt": "[IMAGE_PROMPT: A prompt for the image to be generated for this beat.]"
25
+ }
26
+ ]
27
+ }
@@ -1,4 +0,0 @@
1
- import { AgentFunction, AgentFunctionInfo } from "graphai";
2
- export declare const imageMockAgent: AgentFunction;
3
- declare const imageMockAgentInfo: AgentFunctionInfo;
4
- export default imageMockAgentInfo;
@@ -1,18 +0,0 @@
1
- import { GraphAILogger } from "graphai";
2
- export const imageMockAgent = async () => {
3
- GraphAILogger.debug("agent dryRun");
4
- return { buffer: Buffer.from([]) };
5
- };
6
- const imageMockAgentInfo = {
7
- name: "imageMockAgent",
8
- agent: imageMockAgent,
9
- mock: imageMockAgent,
10
- samples: [],
11
- description: "Image mock agent",
12
- category: ["image"],
13
- author: "Receptron Team",
14
- repository: "https://github.com/receptron/mulmocast-cli/",
15
- license: "MIT",
16
- environmentVariables: [],
17
- };
18
- export default imageMockAgentInfo;
@@ -1,7 +0,0 @@
1
- import { AgentFunction, AgentFunctionInfo } from "graphai";
2
- import { prompts } from "./prompts_data.js";
3
- export declare const mulmoPromptsAgent: AgentFunction<{
4
- promptKey: keyof typeof prompts;
5
- }>;
6
- declare const mulmoPromptsAgentInfo: AgentFunctionInfo;
7
- export default mulmoPromptsAgentInfo;
@@ -1,37 +0,0 @@
1
- import { prompts } from "./prompts_data.js";
2
- export const mulmoPromptsAgent = async ({ params }) => {
3
- const { promptKey } = params;
4
- if (promptKey) {
5
- const prompt = prompts[promptKey];
6
- if (prompt) {
7
- return {
8
- text: prompt,
9
- };
10
- }
11
- }
12
- return prompts;
13
- };
14
- const mulmoPromptsAgentInfo = {
15
- name: "mulmoPromptsAgent",
16
- agent: mulmoPromptsAgent,
17
- mock: mulmoPromptsAgent,
18
- samples: [
19
- {
20
- inputs: {},
21
- params: {
22
- promptKey: "abstract",
23
- },
24
- result: {
25
- text: "We need to add a summary at the beginning of script, which summarizes this episode, which is very engaging. Please come up with a few sentences for the announcer to read, enter them into this script, and present it as an artifact.",
26
- },
27
- },
28
- ],
29
- description: "Prompts Agent",
30
- category: ["prompt"],
31
- author: "Receptron team",
32
- repository: "https://github.com/receptron/mulmocast-cli",
33
- source: "https://github.com/receptron/mulmocast-cli/tree/main/src/agents/prompts_agent.ts",
34
- // package: "@graphai/prompts",
35
- license: "MIT",
36
- };
37
- export default mulmoPromptsAgentInfo;
@@ -1,15 +0,0 @@
1
- export declare const prompts: {
2
- abstract: string;
3
- image_prompt: string;
4
- prompt: string;
5
- prompt2: string;
6
- prompt3: string;
7
- prompt_eng3: string;
8
- prompt_seed: string;
9
- prompt_seed_materials: string;
10
- prompt_taro: string;
11
- prompt_taro3_json: string;
12
- prompt_taro3_json2: string;
13
- prompt_taro_json: string;
14
- summary: string;
15
- };
@@ -1,16 +0,0 @@
1
- // This file is auto-generated by src/tools/prompt.ts and Do not be edited manually.
2
- export const prompts = {
3
- abstract: "We need to add a summary at the beginning of script, which summarizes this episode, which is very engaging. Please come up with a few sentences for the announcer to read, enter them into this script, and present it as an artifact.",
4
- image_prompt: 'We need to generate a series of images for this podcast. For each line of given json, generate an appropriate text prompt for text-2-image AI, considering the flow of whole discussion and add it as "imagePrompt" property to the script. We don\'t want to show student, teacher or classroom in the image. Do not eliminate any lines.\n\n[Examples]\nA modern tech conference stage with a speaker discussing AI advancements, futuristic lighting and a large digital screen displaying AI-related graphics.\nA close-up of an AI executive speaking at a press conference, with a backdrop displaying AI chip designs and a world map.\nA futuristic AI research lab with glowing blue data streams and a large AI model being visualized on a digital display.\nA high-tech meeting room with analysts discussing global AI trends, holographic charts displaying AI development.\nA balanced scale with AI progress on one side and economic factors on the other, symbolizing analysis and perspective.\nA newspaper headline about a breakthrough in AI technology, with digital code overlaying the article.\nA timeline showing the gradual evolution of AI models, with key milestones highlighted.\n',
5
- prompt: 'generate a podcast script based on this topic in the JSON format using the opening statement below. Monologue by the Host. Complete story.\nClearly mention the news source.\nNews source:\nArticle url: ...\n\n```json\n{\n "title": "(title of this episode)",\n "description": "(short description of this episode)",\n "reference": "(url to the article)",\n "tts": "openAI", // or "nijivoice", default is "openAI"\n "speakers": {\n "Host": {\n "voiceId": "shimmer",\n "displayName": {\n "en": "Host"\n }\n },\n },\n "beats": [\n {\n "speaker": "Host",\n "text": "Hello and welcome to another episode of \'life is artificial\', where we explore the cutting edge of technology, innovation, and what the future could look like.",\n },\n {\n "speaker": "Host",\n "text": "Today, ...",\n },\n ...\n ]\n}\n```\n\n',
6
- prompt2: 'generate a podcast interview script of Steve Jobs about Elon Musk and his achievements with Tesla and SpaceX, in the JSON format using the opening statement below. \n\n```json\n{\n title: "(title of this episode)",\n description: "(short description of this episode)",\n script:[\n {\n speaker: "Host",\n text: "Hello and welcome to another episode of \'life is artificial\', where we explore the cutting edge of technology, innovation, and what the future could look like.",\n },\n {\n speaker: "Host",\n text: "Today, ...",\n }\n ]\n}\n```\n\n',
7
- prompt3: 'Turn this interview into a script in the follwing JSON format without remove any discussions between host and guest, but remove unnecessary text like advertisements. \n\n```json\n{\n "title": "(title of this episode)",\n "description": "(short description of this episode)",\n "script":[\n {\n "speaker": "Host",\n "text": "Hello, thank you for taking an interview from me.",\n },\n {\n "speaker": "Guest",\n "text": "You are welcome",\n }\n ]\n}\n```\n',
8
- prompt_eng3: 'Please create a script as an artifact in the form of a conversation between a Student and a Teacher, with the goal of explaining everything about this topic in a way that even a middle schooler can understand. However, be sure to cover all the key points. The opening line should always start with an introduction by an Announcer, saying:\n"Welcome to another episode of Life is Beautiful by Satoshi Nakajima."\nBelow, I’ll provide an example on a different topic in JSON format. Please follow this format.\n\n{\n "title": "Martial Law in Korea and Its Impact on Japan",\n "description": "An insightful discussion about the recently declared martial law in Korea and its potential implications, including parallels with constitutional considerations in Japan.",\n "tts": "openAI",\n "voices": [\n "nova",\n "echo",\n "shimmer"\n ],\n "speakers": ["Announcer", "Student", "Teacher"],\n "script": [\n {\n "speaker": "Announcer",\n "text": "Welcome to another episode of Life is Beautiful by Satoshi Nakajima."\n },\n {\n "speaker": "Announcer",\n "text": "Today\'s topic is about the recently declared martial law in Korea."\n },\n {\n "speaker": "Student",\n "text": "Could you tell me about the martial law that was declared in Korea?"\n },\n {\n "speaker": "Teacher",\n "text": "Of course. Recently, the president in Korea suddenly declared what we call \'martial law.\'"\n },\n {\n "speaker": "Student",\n "text": "What is martial law?"\n },\n {\n "speaker": "Teacher",\n "text": "Simply put, it\'s a measure used to restrict people\'s freedoms using the military when the country is in an extremely dangerous situation. For example, they can prohibit political activities and control public gatherings."\n },\n {\n "speaker": "Student",\n "text": "That\'s scary. Why did they do that?"\n },\n {\n "speaker": "Teacher",\n "text": "While the president claimed it was because \'the National Assembly wasn\'t functioning properly,\' it appears he used it to protect his own position. The military then tried to enter the National Assembly and arrest the assembly members."\n },\n {\n "speaker": "Student",\n "text": "What!? Trying to arrest National Assembly members sounds really dangerous!"\n },\n {\n "speaker": "Teacher",\n "text": "That\'s right. If the military had occupied the National Assembly, they might not have been able to lift the martial law there. In other words, the president could have controlled the country as he wished indefinitely."\n },\n {\n "speaker": "Student",\n "text": "What happened in Korea?"\n },\n {\n "speaker": "Teacher",\n "text": "Fortunately, opposition party members and citizens quickly gathered to protest, and the martial law was lifted after six hours. But it was a close call - Korea\'s democracy could have been severely damaged."\n },\n {\n "speaker": "Student",\n "text": "That\'s serious... Could something like this happen in Japan?"\n },\n {\n "speaker": "Teacher",\n "text": "Actually, there\'s a similar discussion happening in Japan right now. The Liberal Democratic Party is trying to add an \'emergency declaration\' clause to the constitution."\n },\n {\n "speaker": "Student",\n "text": "Is the emergency declaration similar to Korea\'s martial law?"\n },\n {\n "speaker": "Teacher",\n "text": "There are similarities. For instance, if the Prime Minister claims there\'s a \'risk of social order disruption,\' they can use special powers to run the country. They can issue orders with the same force as laws and give directions to local governments."\n },\n {\n "speaker": "Student",\n "text": "That sounds convenient, but I\'m worried."\n },\n {\n "speaker": "Teacher",\n "text": "Yes, you\'re right. While it\'s useful to respond quickly in emergencies, it can be very dangerous if these powers are abused. For example, the Prime Minister might run the country in ways that benefit them or take away people\'s freedoms."\n },\n {\n "speaker": "Student",\n "text": "Could the military get involved in politics like in Korea?"\n },\n {\n "speaker": "Teacher",\n "text": "We can\'t completely rule it out, which is why we need to be careful. We citizens need to closely monitor whether the LDP\'s constitutional amendment proposal includes appropriate restrictions to prevent abuse of power and speak up. It\'s important for each of us to take an active interest in preventing damage to our democracy."\n }\n ]\n}',
9
- prompt_seed: 'Please generate a podcast script based on the topic provided by the user.\nIf there are any unclear points, be sure to ask the user questions and clarify them before generating the script.\nThe output should follow the JSON format specified below.\n\n```json\n{\n "title": "(title of this episode)",\n "description": "(short description of this episode)",\n "reference": "(url to the article)",\n "tts": "openAI", // or "nijivoice", default is "openAI"\n "speakers": {\n "Host": {\n "voiceId": "shimmer",\n "displayName": {\n "en": "Host"\n }\n },\n },\n "beats": [\n {\n "speaker": "Host",\n "text": "Hello and welcome to another episode of \'life is artificial\', where we explore the cutting edge of technology, innovation, and what the future could look like.",\n },\n {\n "speaker": "Host",\n "text": "Today, ...",\n },\n ...\n ]\n}\n```\n\n',
10
- prompt_seed_materials: 'Generate a podcast script based on the materials provided by the user. The script should follow the JSON format specified below.\n\n```json\n{\n "title": "(title of this episode)",\n "description": "(short description of this episode)",\n "reference": "(url to the article)",\n "tts": "openAI", // or "nijivoice", default is "openAI"\n "speechParams": {\n "speakers": {\n "Host": {\n "voiceId": "shimmer",\n "displayName": {\n "en": "Host"\n }\n }\n }\n },\n "beats": [\n {\n "speaker": "Host",\n "text": "Hello and welcome to another episode of \'life is artificial\', where we explore the cutting edge of technology, innovation, and what the future could look like.",\n },\n {\n "speaker": "Host",\n "text": "Today, ...",\n },\n ...\n ]\n}\n```\n',
11
- prompt_taro: "この件について、内容全てを小学生にも分かるように、太郎くんと先生の会話、という形の台本にしてください。以下に別のトピックに関するサンプルを貼り付けます。\n\n太郎:先生、今日は原子炉の「冷温停止」について説明していただけますか?\n\n先生:もちろんだよ。でも同じ「冷温停止」でも言う人によって色々な意味があって、簡単じゃあないんだよ。\n\n太郎:そうなんですか。\n\n先生:もともとはね、「冷温停止」とは「制御棒を挿入して核反応を止めた後、冷却水を循環させて原子炉の温度を安定的に100度以下に保つ事」の意味なんだけどね、福島第一の場合はそうはいかないんだ。\n\n太郎:メルトダウンしてしまっているからですね。\n\n先生:そうなんだ、核燃料は本来なら燃料棒という形で原子炉の中に整然と並んでいるはずなんだが、福島第一の場合、それが熱で溶けて流れ落ちてしまった上に、その熱で原子炉にも、その外側にある格納容器にも穴が空いてしまっているんだ。\n\n太郎:じゃあ、いったいどうやってそれを安定して冷却するんですか?\n\n先生:それがとっても大変なんだよ。分かりやすくするために、トイレに例えてみよう。君のうちには水洗トイレがあるよね。\n\n太郎:もちろんです。ウォシュレットだって付いてます。\n\n先生:君のうちにあるトイレみたいに、使った後にはちゃんと汚いものを流してくれるトイレを「安定したトイレ」と呼ぶことにしよう。\n\n太郎:はい。\n\n先生:福島第一のトイレは、まず水を流すためのタンクがこわれちゃっているんだ。\n\n太郎:あの、トイレの上についている四角いタンクですね。\n\n先生:福島第一の場合、あのタンクが壊れているんで、仕方がなく洗面台からホースで水を引っ張って来て流しているんだ。\n\n太郎:ずいぶん不便ですね。\n\n先生:でも、問題はそれだけじゃなくて、便器も壊れて穴が空いちゃっているんだ。\n\n太郎:ええ、それじゃあ、トイレの床が水びたしじゃないですか。\n\n先生:そうだよ。それも水だけじゃなくて、便とか尿とかも穴から漏れているんだ。\n\n太郎:それはひどいですね。",
12
- prompt_taro3_json: 'この件について、内容全てを中学生にも分かるように、太郎くん(Student)と先生(Teacher)の会話、という形の台本をArtifactとして作って。ただし要点はしっかりと押さえて。\n最初の一言は、Announcerによるトピックの紹介にし、常に、"米国で活躍するエンジニアが新しい技術やビジネスを分かりやすく解説する、中島聡のLife is beautiful。"でスタートして。\n以下に別のトピックに関するサンプルを貼り付けます。このJSONフォーマットに従って。\n\n{\n "title": "韓国の戒厳令とその日本への影響",\n "description": "韓国で最近発令された戒厳令とその可能性のある影響について、また日本の憲法に関する考慮事項との類似点を含めた洞察に満ちた議論。",\n "tts": "nijivoice",\n "voices": [\n "c05bf02d-bed2-4335-aa69-0798e9e85205",\n "b9277ce3-ba1c-4f6f-9a65-c05ca102ded0",\n "bc06c63f-fef6-43b6-92f7-67f919bd5dae"\n ],\n "speakers": ["Announcer", "Student", "Teacher"],\n "script": [\n {\n "speaker": "Announcer",\n "text": "米国で活躍するエンジニアが、新しい技術やビジネスを分かりやすく解説する、中島聡のLife is beautiful。今日は、韓国で最近発令された戒厳令についての解説です。"\n },\n {\n "speaker": "Student",\n "text": "先生、今日は韓国で起きた戒厳令のことを教えてもらえますか?"\n },\n {\n "speaker": "Teacher",\n "text": "もちろんだよ、太郎くん。韓国で最近、大統領が「戒厳令」っていうのを突然宣言したんだ。"\n },\n {\n "speaker": "Student",\n "text": "戒厳令ってなんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "簡単に言うと、国がすごく危ない状態にあるとき、軍隊を使って人々の自由を制限するためのものなんだ。たとえば、政治活動を禁止したり、人の集まりを取り締まったりするんだよ。"\n },\n {\n "speaker": "Student",\n "text": "それって怖いですね。なんでそんなことをしたんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "大統領は「国会がうまく機能していないから」と言っていたけど、実際には自分の立場を守るために使ったように見えるんだ。それで、軍隊が国会に突入して、議員たちを捕まえようとしたんだ。"\n },\n {\n "speaker": "Student",\n "text": "ええっ!?国会議員を捕まえようとするなんて、すごく危ないことじゃないですか。"\n },\n {\n "speaker": "Teacher",\n "text": "その通りだよ。もし軍隊が国会を占拠していたら、国会で戒厳令を解除することもできなかったかもしれない。つまり、大統領がずっと自分の好きなように国を支配できるようになってしまうんだ。"\n },\n {\n "speaker": "Student",\n "text": "韓国ではどうなったんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "幸い、野党の議員や市民たちが急いで集まって抗議して、6時間後に戒厳令は解除されたんだ。でも、ほんの少しの違いで、韓国の民主主義が大きく傷つけられるところだったんだよ。"\n },\n {\n "speaker": "Student",\n "text": "それは大変なことですね…。日本ではそんなこと起きないんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "実はね、今、日本でも似たような話があるんだよ。自民党が「緊急事態宣言」を憲法に追加しようとしているんだ。"\n },\n {\n "speaker": "Student",\n "text": "緊急事態宣言って、韓国の戒厳令と同じようなものなんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "似ている部分があるね。たとえば、総理大臣が「社会秩序の混乱の危険があるから」と言えば、特別な権限を使って国を動かすことができるんだ。法律と同じ力を持つ命令を出したり、地方自治体に指示を出したりすることができるんだよ。"\n },\n {\n "speaker": "Student",\n "text": "それって便利そうですけど、なんだか心配です。"\n },\n {\n "speaker": "Teacher",\n "text": "そうだね。もちろん、緊急時には素早い対応が必要だから便利な面もあるけど、その権限が濫用されると、とても危険なんだ。たとえば、総理大臣が自分に都合のいいように国を動かしたり、国民の自由を奪ったりすることができるようになってしまうかもしれない。"\n },\n {\n "speaker": "Student",\n "text": "韓国みたいに、軍隊が政治に口を出してくることもあり得るんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "完全にあり得ないとは言えないからこそ、注意が必要なんだ。私たち国民は、自民党の改憲案が権力の濫用を防ぐための適切な制限を含んでいるのかをしっかり監視し、声を上げることが求められる。民主主義が損なわれるのを防ぐために、私たち一人ひとりが積極的に関心を持つことが大切なんだよ。"\n },\n {\n "speaker": "Student",\n "text": "ありがとうございます。とても良い勉強になりました。"\n }\n ]\n}',
13
- prompt_taro3_json2: 'この件について、内容全てを高校生にも分かるように、太郎くん(Student)と先生(Teacher)の会話、という形の台本をArtifactとして作って。ただし要点はしっかりと押さえて。\n以下に別のトピックに関するサンプルを貼り付けます。このJSONフォーマットに従って。\n\n{\n "title": "韓国の戒厳令とその日本への影響",\n "description": "韓国で最近発令された戒厳令とその可能性のある影響について、また日本の憲法に関する考慮事項との類似点を含めた洞察に満ちた議論。",\n "tts": "nijivoice",\n "voices": [\n "afd7df65-0fdc-4d31-ae8b-a29f0f5eed62",\n "a7619e48-bf6a-4f9f-843f-40485651257f",\n "bc06c63f-fef6-43b6-92f7-67f919bd5dae"\n ],\n "charactors": ["春玲", "森野颯太", "ベン・カーター"],\n "speakers": ["Announcer", "Student", "Teacher"],\n "script": [\n {\n "speaker": "Student",\n "text": "先生、今日は韓国で起きた戒厳令のことを教えてもらえますか?"\n },\n {\n "speaker": "Teacher",\n "text": "もちろんだよ、太郎くん。韓国で最近、大統領が「戒厳令」っていうのを突然宣言したんだ。"\n },\n {\n "speaker": "Student",\n "text": "戒厳令ってなんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "簡単に言うと、国がすごく危ない状態にあるとき、軍隊を使って人々の自由を制限するためのものなんだ。たとえば、政治活動を禁止したり、人の集まりを取り締まったりするんだよ。"\n },\n {\n "speaker": "Student",\n "text": "それって怖いですね。なんでそんなことをしたんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "大統領は「国会がうまく機能していないから」と言っていたけど、実際には自分の立場を守るために使ったように見えるんだ。それで、軍隊が国会に突入して、議員たちを捕まえようとしたんだ。"\n },\n {\n "speaker": "Student",\n "text": "ええっ!?国会議員を捕まえようとするなんて、すごく危ないことじゃないですか。"\n },\n {\n "speaker": "Teacher",\n "text": "その通りだよ。もし軍隊が国会を占拠していたら、国会で戒厳令を解除することもできなかったかもしれない。つまり、大統領がずっと自分の好きなように国を支配できるようになってしまうんだ。"\n },\n {\n "speaker": "Student",\n "text": "韓国ではどうなったんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "幸い、野党の議員や市民たちが急いで集まって抗議して、6時間後に戒厳令は解除されたんだ。でも、ほんの少しの違いで、韓国の民主主義が大きく傷つけられるところだったんだよ。"\n },\n {\n "speaker": "Student",\n "text": "それは大変なことですね…。日本ではそんなこと起きないんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "実はね、今、日本でも似たような話があるんだよ。自民党が「緊急事態宣言」を憲法に追加しようとしているんだ。"\n },\n {\n "speaker": "Student",\n "text": "緊急事態宣言って、韓国の戒厳令と同じようなものなんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "似ている部分があるね。たとえば、総理大臣が「社会秩序の混乱の危険があるから」と言えば、特別な権限を使って国を動かすことができるんだ。法律と同じ力を持つ命令を出したり、地方自治体に指示を出したりすることができるんだよ。"\n },\n {\n "speaker": "Student",\n "text": "それって便利そうですけど、なんだか心配です。"\n },\n {\n "speaker": "Teacher",\n "text": "そうだね。もちろん、緊急時には素早い対応が必要だから便利な面もあるけど、その権限が濫用されると、とても危険なんだ。たとえば、総理大臣が自分に都合のいいように国を動かしたり、国民の自由を奪ったりすることができるようになってしまうかもしれない。"\n },\n {\n "speaker": "Student",\n "text": "韓国みたいに、軍隊が政治に口を出してくることもあり得るんですか?"\n },\n {\n "speaker": "Teacher",\n "text": "完全にあり得ないとは言えないからこそ、注意が必要なんだ。私たち国民は、自民党の改憲案が権力の濫用を防ぐための適切な制限を含んでいるのかをしっかり監視し、声を上げることが求められる。民主主義が損なわれるのを防ぐために、私たち一人ひとりが積極的に関心を持つことが大切なんだよ。"\n },\n {\n "speaker": "Student",\n "text": "ありがとうございます。とても良い勉強になりました。"\n },\n {\n "speaker": "Announcer",\n "text": "ご視聴、ありがとうございました。次回の放送もお楽しみに。"\n }\n ]\n}',
14
- prompt_taro_json: 'この件について、内容全てを小学生にも分かるように、太郎くん(Guest)と先生(Host)の会話、という形の台本にしてください。以下に別のトピックに関するサンプルを貼り付けます。このJSONフォーマットに従ってください。\n\n{\n "title": "韓国の戒厳令とその日本への影響",\n "description": "韓国で最近発令された戒厳令とその可能性のある影響について、また日本の憲法に関する考慮事項との類似点を含めた洞察に満ちた議論。",\n "tts": "nijivoice",\n "script": [\n {\n "speaker": "Host",\n "text": "先生、今日は韓国で起きた戒厳令のことを教えてもらえますか?"\n },\n {\n "speaker": "Guest",\n "text": "もちろんだよ、太郎くん。韓国で最近、大統領が「戒厳令」っていうのを突然宣言したんだ。"\n },\n {\n "speaker": "Host",\n "text": "戒厳令ってなんですか?"\n },\n {\n "speaker": "Guest",\n "text": "簡単に言うと、国がすごく危ない状態にあるとき、軍隊を使って人々の自由を制限するためのものなんだ。たとえば、政治活動を禁止したり、人の集まりを取り締まったりするんだよ。"\n },\n {\n "speaker": "Host",\n "text": "それって怖いですね。なんでそんなことをしたんですか?"\n },\n {\n "speaker": "Guest",\n "text": "大統領は「国会がうまく機能していないから」と言っていたけど、実際には自分の立場を守るために使ったように見えるんだ。それで、軍隊が国会に突入して、議員たちを捕まえようとしたんだ。"\n },\n {\n "speaker": "Host",\n "text": "ええっ!?国会議員を捕まえようとするなんて、すごく危ないことじゃないですか。"\n },\n {\n "speaker": "Guest",\n "text": "その通りだよ。もし軍隊が国会を占拠していたら、国会で戒厳令を解除することもできなかったかもしれない。つまり、大統領がずっと自分の好きなように国を支配できるようになってしまうんだ。"\n },\n {\n "speaker": "Host",\n "text": "韓国ではどうなったんですか?"\n },\n {\n "speaker": "Guest",\n "text": "幸い、野党の議員や市民たちが急いで集まって抗議して、6時間後に戒厳令は解除されたんだ。でも、ほんの少しの違いで、韓国の民主主義が大きく傷つけられるところだったんだよ。"\n },\n {\n "speaker": "Host",\n "text": "それは大変なことですね…。日本ではそんなこと起きないんですか?"\n },\n {\n "speaker": "Guest",\n "text": "実はね、今、日本でも似たような話があるんだよ。自民党が「緊急事態宣言」を憲法に追加しようとしているんだ。"\n },\n {\n "speaker": "Host",\n "text": "緊急事態宣言って、韓国の戒厳令と同じようなものなんですか?"\n },\n {\n "speaker": "Guest",\n "text": "似ている部分があるね。たとえば、総理大臣が「社会秩序の混乱の危険があるから」と言えば、特別な権限を使って国を動かすことができるんだ。法律と同じ力を持つ命令を出したり、地方自治体に指示を出したりすることができるんだよ。"\n },\n {\n "speaker": "Host",\n "text": "それって便利そうですけど、なんだか心配です。"\n },\n {\n "speaker": "Guest",\n "text": "そうだね。もちろん、緊急時には素早い対応が必要だから便利な面もあるけど、その権限が濫用されると、とても危険なんだ。たとえば、総理大臣が自分に都合のいいように国を動かしたり、国民の自由を奪ったりすることができるようになってしまうかもしれない。"\n },\n {\n "speaker": "Host",\n "text": "韓国みたいに、軍隊が政治に口を出してくることもあり得るんですか?"\n },\n {\n "speaker": "Guest",\n "text": "完全にあり得ないとは言えないからこそ、注意が必要なんだ。私たち国民は、自民党の改憲案が権力の濫用を防ぐための適切な制限を含んでいるのかをしっかり監視し、声を上げることが求められる。民主主義が損なわれるのを防ぐために、私たち一人ひとりが積極的に関心を持つことが大切なんだよ。"\n }\n ]\n}',
15
- summary: "We need to add a summary at the end of script, which summarizes this episode. Please come up with a few sentences for the announcer to read, enter them into this script, and present it as an artifact.",
16
- };
@@ -1,17 +0,0 @@
1
- import type { AgentFunction, AgentFunctionInfo, DefaultConfigData } from "graphai";
2
- import { MulmoScript } from "../types/index.js";
3
- interface ValidateMulmoScriptInputs {
4
- text: string;
5
- }
6
- interface ValidateMulmoScriptResponse {
7
- isValid: boolean;
8
- data?: MulmoScript;
9
- error?: string;
10
- }
11
- /**
12
- * MulmoScript JSON validation agent
13
- * Validates if a JSON string conforms to the MulmoScript schema
14
- */
15
- export declare const validateMulmoScriptAgent: AgentFunction<object, ValidateMulmoScriptResponse, ValidateMulmoScriptInputs, DefaultConfigData>;
16
- declare const validateMulmoScriptAgentInfo: AgentFunctionInfo;
17
- export default validateMulmoScriptAgentInfo;
@@ -1,34 +0,0 @@
1
- import { mulmoScriptSchema } from "../types/schema.js";
2
- /**
3
- * MulmoScript JSON validation agent
4
- * Validates if a JSON string conforms to the MulmoScript schema
5
- */
6
- export const validateMulmoScriptAgent = async ({ namedInputs, }) => {
7
- const { text } = namedInputs;
8
- try {
9
- const jsonData = JSON.parse(text);
10
- const parsed = mulmoScriptSchema.parse(jsonData);
11
- return {
12
- isValid: true,
13
- data: parsed,
14
- };
15
- }
16
- catch (error) {
17
- return {
18
- isValid: false,
19
- error: error instanceof Error ? error.message : String(error),
20
- };
21
- }
22
- };
23
- const validateMulmoScriptAgentInfo = {
24
- name: "validateMulmoScriptAgent",
25
- agent: validateMulmoScriptAgent,
26
- mock: validateMulmoScriptAgent,
27
- samples: [],
28
- description: "Validates if a JSON string conforms to the MulmoScript schema",
29
- category: ["validation"],
30
- author: "Receptron Team",
31
- repository: "https://github.com/receptron/mulmocast-cli/tree/main/src/agents/validate_script_agent.ts",
32
- license: "MIT",
33
- };
34
- export default validateMulmoScriptAgentInfo;
package/lib/cli/args.d.ts DELETED
@@ -1,15 +0,0 @@
1
- export declare const getArgs: () => {
2
- [x: string]: unknown;
3
- v: boolean;
4
- o: string | undefined;
5
- b: string | undefined;
6
- l: string | undefined;
7
- a: string | undefined;
8
- i: string | undefined;
9
- f: boolean;
10
- c: string | undefined;
11
- pdf_mode: string;
12
- pdf_size: string;
13
- _: (string | number)[];
14
- $0: string;
15
- };