@mulmocast/slide 0.3.2 → 0.4.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/.claude/skills/extend/SKILL.md +36 -11
- package/.claude/skills/narrate/SKILL.md +36 -29
- package/README.md +57 -13
- package/lib/actions/common.d.ts +10 -0
- package/lib/actions/common.d.ts.map +1 -1
- package/lib/actions/common.js +33 -2
- package/lib/actions/common.js.map +1 -1
- package/lib/actions/extend-init.js +1 -1
- package/lib/actions/extend-scaffold.d.ts +5 -0
- package/lib/actions/extend-scaffold.d.ts.map +1 -0
- package/lib/actions/extend-scaffold.js +63 -0
- package/lib/actions/extend-scaffold.js.map +1 -0
- package/lib/actions/extend-validate.d.ts.map +1 -1
- package/lib/actions/extend-validate.js +1 -7
- package/lib/actions/extend-validate.js.map +1 -1
- package/lib/actions/narrate.d.ts +10 -0
- package/lib/actions/narrate.d.ts.map +1 -0
- package/lib/actions/narrate.js +162 -0
- package/lib/actions/narrate.js.map +1 -0
- package/lib/cli.js +62 -1
- package/lib/cli.js.map +1 -1
- package/lib/convert/markdown-utils.d.ts.map +1 -1
- package/lib/convert/markdown-utils.js +2 -1
- package/lib/convert/markdown-utils.js.map +1 -1
- package/lib/convert/marp.d.ts.map +1 -1
- package/lib/convert/marp.js +4 -2
- package/lib/convert/marp.js.map +1 -1
- package/lib/convert/movie.js +2 -2
- package/lib/convert/movie.js.map +1 -1
- package/lib/convert/pdf.js +1 -1
- package/lib/convert/pdf.js.map +1 -1
- package/lib/convert/pptx.js +1 -1
- package/lib/convert/pptx.js.map +1 -1
- package/lib/utils/audio-save.d.ts.map +1 -1
- package/lib/utils/audio-save.js +4 -3
- package/lib/utils/audio-save.js.map +1 -1
- package/lib/utils/bundle-server.js +1 -1
- package/lib/utils/bundle-server.js.map +1 -1
- package/lib/utils/llm-metadata.d.ts +28 -0
- package/lib/utils/llm-metadata.d.ts.map +1 -0
- package/lib/utils/llm-metadata.js +187 -0
- package/lib/utils/llm-metadata.js.map +1 -0
- package/lib/utils/llm.d.ts +6 -0
- package/lib/utils/llm.d.ts.map +1 -1
- package/lib/utils/llm.js +13 -14
- package/lib/utils/llm.js.map +1 -1
- package/package.json +2 -1
- package/tools/keynote/extract.scpt +1 -1
|
@@ -5,19 +5,44 @@ Convert a MulmoScript JSON into an ExtendedScript by adding `scriptMeta` and `be
|
|
|
5
5
|
## Invocation
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
/extend <
|
|
8
|
+
/extend <MulmoScript.json path> [--source <source file path>]
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
## CLI
|
|
11
|
+
## CLI Commands Overview
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
- If `name` is `"@mulmocast/slide"` (i.e., developing MulmoCast-Slides itself) → use `yarn cli`
|
|
15
|
-
- Otherwise → use `npx mulmo-slide`
|
|
13
|
+
This project uses multiple CLI tools. Do NOT confuse them:
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
| Command | Package | Purpose | Input |
|
|
16
|
+
|---------|---------|---------|-------|
|
|
17
|
+
| `mulmo-slide` (or `yarn cli`) | `@mulmocast/slide` | Convert source files to MulmoScript, scaffold ExtendedScript | Presentation files (.pdf, .pptx, .md, .key) |
|
|
18
|
+
| `mulmo` | `mulmocast` | Generate movie/PDF/audio from MulmoScript | `{basename}.json` |
|
|
19
|
+
| `mulmocast-preprocessor` | `mulmocast-preprocessor` | Convert ExtendedScript → MulmoScript, query, summarize | `extended_script.json` |
|
|
20
|
+
|
|
21
|
+
**IMPORTANT**: `mulmo-slide movie` and `mulmo movie` are DIFFERENT commands. Use `npx mulmo movie` (not `mulmo-slide`) when generating video from a MulmoScript JSON.
|
|
22
|
+
|
|
23
|
+
**NOTE**: MulmoScript files are named `{basename}.json` (e.g., `scripts/paper/paper.json`), NOT `mulmo_script.json`.
|
|
24
|
+
|
|
25
|
+
### CLI prefix for mulmo-slide
|
|
26
|
+
|
|
27
|
+
Determine the correct CLI command prefix:
|
|
28
|
+
- If `package.json` exists in the project root and its `name` is `"@mulmocast/slide"` (i.e., developing MulmoCast-Slides itself) → use `yarn cli`
|
|
29
|
+
- Otherwise (including when no `package.json` exists) → use `npx mulmo-slide`
|
|
30
|
+
- NEVER create a `package.json` file for this purpose
|
|
31
|
+
|
|
32
|
+
Use this prefix (referred to as `{cli}` below) for `mulmo-slide` CLI calls in the steps.
|
|
18
33
|
|
|
19
34
|
## Instructions
|
|
20
35
|
|
|
36
|
+
### Step 0 (Optional): Scaffold
|
|
37
|
+
|
|
38
|
+
If the MulmoScript doesn't already have an `extended_script.json`, you can create a skeleton first:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
{cli} extend scaffold <MulmoScript.json>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This adds beat IDs, empty metadata, and imports extracted texts as notes. You can then skip to Step 2 and analyze the scaffolded output.
|
|
45
|
+
|
|
21
46
|
### Step 1: Read Inputs
|
|
22
47
|
|
|
23
48
|
Use the Read tool (not bash/node commands) to read the following files:
|
|
@@ -27,7 +52,7 @@ Use the Read tool (not bash/node commands) to read the following files:
|
|
|
27
52
|
3. `extracted_texts.json` in the same directory as the MulmoScript (if it exists — generated by PDF converter, provides raw text per beat)
|
|
28
53
|
4. The source file:
|
|
29
54
|
- If `--source` is specified, use that file
|
|
30
|
-
- Otherwise, infer from the MulmoScript path: `scripts/{basename}/
|
|
55
|
+
- Otherwise, infer from the MulmoScript path: `scripts/{basename}/{basename}.json` -> search for `samples/{basename}.*` (try `.md`, `.pptx`, `.pdf`, `.key`)
|
|
31
56
|
- If no source file found, work from the MulmoScript content and extracted texts alone
|
|
32
57
|
|
|
33
58
|
### Step 2: Analyze Content
|
|
@@ -87,18 +112,18 @@ Based on the analysis, generate:
|
|
|
87
112
|
### Step 5: Write and Validate Output
|
|
88
113
|
|
|
89
114
|
1. Determine output path:
|
|
90
|
-
- Same directory as input: replace `
|
|
91
|
-
- Example: `scripts/simple_text/
|
|
115
|
+
- Same directory as input: replace `{basename}.json` with `extended_script.json`
|
|
116
|
+
- Example: `scripts/simple_text/simple_text.json` -> `scripts/simple_text/extended_script.json`
|
|
92
117
|
2. Write the JSON with 2-space indentation
|
|
93
118
|
3. Run `{cli} extend validate <output_path>` to validate against the schema
|
|
94
119
|
4. If validation fails, fix the errors and re-write the file, then validate again
|
|
95
120
|
5. Generate MulmoScript from ExtendedScript using the preprocessor:
|
|
96
121
|
```bash
|
|
97
|
-
npx mulmocast-preprocessor
|
|
122
|
+
npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/{basename}.json
|
|
98
123
|
```
|
|
99
124
|
Note: The preprocessor may not fully strip `scriptMeta`. If `mulmo movie` fails with "Unrecognized key" errors, manually strip remaining fields with a node one-liner:
|
|
100
125
|
```bash
|
|
101
|
-
node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync('
|
|
126
|
+
node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync('scripts/{basename}/{basename}.json','utf8'));delete d.scriptMeta;delete d.outputProfiles;d.beats.forEach(b=>{delete b.meta;delete b.variants});fs.writeFileSync('scripts/{basename}/{basename}.json',JSON.stringify(d,null,2))"
|
|
102
127
|
```
|
|
103
128
|
6. Display a summary to the user:
|
|
104
129
|
- Number of beats processed
|
|
@@ -10,54 +10,61 @@ Convert any supported source file (PDF, PPTX, Markdown, Keynote) into a validate
|
|
|
10
10
|
|
|
11
11
|
Supported formats: `.pdf`, `.pptx`, `.md`, `.key`
|
|
12
12
|
|
|
13
|
-
## CLI
|
|
13
|
+
## CLI Commands Overview
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- If `name` is `"@mulmocast/slide"` (i.e., developing MulmoCast-Slides itself) → use `yarn cli`
|
|
17
|
-
- Otherwise → use `npx mulmo-slide`
|
|
15
|
+
This project uses multiple CLI tools. Do NOT confuse them:
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
| Command | Package | Purpose | Input |
|
|
18
|
+
|---------|---------|---------|-------|
|
|
19
|
+
| `mulmo-slide` (or `yarn cli`) | `@mulmocast/slide` | Convert source files to MulmoScript, scaffold ExtendedScript | Presentation files (.pdf, .pptx, .md, .key) |
|
|
20
|
+
| `mulmo` | `mulmocast` | Generate movie/PDF/audio from MulmoScript | `{basename}.json` |
|
|
21
|
+
| `mulmocast-preprocessor` | `mulmocast-preprocessor` | Convert ExtendedScript → MulmoScript, query, summarize | `extended_script.json` |
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
**IMPORTANT**: `mulmo-slide movie` and `mulmo movie` are DIFFERENT commands. Use `npx mulmo movie` (not `mulmo-slide`) when generating video from a MulmoScript JSON.
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
**NOTE**: MulmoScript files are named `{basename}.json` (e.g., `scripts/paper/paper.json`), NOT `mulmo_script.json`.
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
### CLI prefix for mulmo-slide
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
Determine the correct CLI command prefix:
|
|
30
|
+
- If `package.json` exists in the project root and its `name` is `"@mulmocast/slide"` (i.e., developing MulmoCast-Slides itself) → use `yarn cli`
|
|
31
|
+
- Otherwise (including when no `package.json` exists) → use `npx mulmo-slide`
|
|
32
|
+
- NEVER create a `package.json` file for this purpose
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
Use this prefix (referred to as `{cli}` below) for `mulmo-slide` CLI calls in the steps.
|
|
35
|
+
|
|
36
|
+
## Instructions
|
|
37
|
+
|
|
38
|
+
### Step 1: Scaffold ExtendedScript
|
|
39
|
+
|
|
40
|
+
Run the narrate CLI with `--scaffold-only` to convert the source and create the ExtendedScript skeleton in one step:
|
|
36
41
|
|
|
37
|
-
**Markdown:**
|
|
38
42
|
```bash
|
|
39
|
-
{cli}
|
|
43
|
+
{cli} narrate <file> --scaffold-only
|
|
40
44
|
```
|
|
41
45
|
|
|
42
|
-
|
|
46
|
+
This automatically detects the file format, converts to MulmoScript, and creates `scripts/{basename}/extended_script.json` with:
|
|
47
|
+
- Beat IDs assigned
|
|
48
|
+
- Empty metadata fields ready for AI analysis
|
|
49
|
+
- Extracted texts imported as notes (for PDF)
|
|
50
|
+
|
|
51
|
+
If the MulmoScript already exists and you want to regenerate it, add `-f`:
|
|
43
52
|
```bash
|
|
44
|
-
{cli}
|
|
53
|
+
{cli} narrate <file> --scaffold-only -f
|
|
45
54
|
```
|
|
46
55
|
|
|
47
|
-
This produces `scripts/{basename}/mulmo_script.json` and (for PDF) `scripts/{basename}/extracted_texts.json`.
|
|
48
|
-
|
|
49
56
|
Confirm the output:
|
|
50
|
-
- How many
|
|
51
|
-
- Whether
|
|
57
|
+
- How many beats were scaffolded
|
|
58
|
+
- Whether notes were imported from extracted texts
|
|
52
59
|
|
|
53
60
|
### Step 2: Read Inputs
|
|
54
61
|
|
|
55
62
|
Use the Read tool (not bash/node commands) to read the following files:
|
|
56
63
|
|
|
57
|
-
1. `scripts/{basename}/
|
|
64
|
+
1. `scripts/{basename}/extended_script.json` (the scaffolded output from Step 1)
|
|
58
65
|
2. `.claude/skills/narrate/references/extended-script-schema.md`
|
|
59
|
-
3. `
|
|
60
|
-
4.
|
|
66
|
+
3. The original source `.md` file (if Markdown, for speaker notes and structure)
|
|
67
|
+
4. For image-based slides (PDF/PPTX), read the slide images to understand visual content
|
|
61
68
|
|
|
62
69
|
### Step 3: Analyze Content
|
|
63
70
|
|
|
@@ -137,8 +144,8 @@ npx mulmocast-preprocessor query scripts/{basename}/extended_script.json -i
|
|
|
137
144
|
npx mulmocast-preprocessor summarize scripts/{basename}/extended_script.json
|
|
138
145
|
|
|
139
146
|
## Generate a narrated video
|
|
140
|
-
npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/
|
|
141
|
-
npx mulmo movie scripts/{basename}/
|
|
147
|
+
npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/{basename}.json
|
|
148
|
+
npx mulmo movie scripts/{basename}/{basename}.json
|
|
142
149
|
```
|
|
143
150
|
|
|
144
151
|
Ask the user if they want to adjust any narration or metadata before proceeding.
|
package/README.md
CHANGED
|
@@ -117,8 +117,8 @@ yarn movie samples/omochikaeri.pptx -g -l ja
|
|
|
117
117
|
yarn bundle samples/sample.md -g -l ja
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
**Note:** When re-running commands, the existing
|
|
121
|
-
- Delete the existing JSON file: `rm scripts/<basename
|
|
120
|
+
**Note:** When re-running commands, the existing MulmoScript JSON will be reused. To regenerate:
|
|
121
|
+
- Delete the existing JSON file: `rm scripts/<basename>/<basename>.json`
|
|
122
122
|
- Or use the `-f` (force) flag with movie/bundle: `yarn movie samples/sample.pptx -f -g`
|
|
123
123
|
|
|
124
124
|
## Unified CLI
|
|
@@ -136,8 +136,10 @@ Commands:
|
|
|
136
136
|
mulmo-slide keynote <file> Convert Keynote to MulmoScript (macOS only)
|
|
137
137
|
mulmo-slide movie <file> Generate movie from presentation
|
|
138
138
|
mulmo-slide bundle <file> Generate MulmoViewer bundle from presentation
|
|
139
|
+
mulmo-slide narrate <file> Generate narrated ExtendedScript (full pipeline)
|
|
139
140
|
mulmo-slide extend init Install Claude Code skills (/narrate, /extend)
|
|
140
141
|
mulmo-slide extend validate Validate ExtendedScript JSON against schema
|
|
142
|
+
mulmo-slide extend scaffold Create ExtendedScript skeleton from MulmoScript
|
|
141
143
|
```
|
|
142
144
|
|
|
143
145
|
The `convert` command auto-detects file format by extension (.pptx, .md, .key, .pdf).
|
|
@@ -226,7 +228,7 @@ yarn test:keynote
|
|
|
226
228
|
|
|
227
229
|
**Output:**
|
|
228
230
|
- `scripts/<basename>/images/` - PNG images of each slide
|
|
229
|
-
- `scripts/<basename
|
|
231
|
+
- `scripts/<basename>/<basename>.json` - MulmoScript JSON file
|
|
230
232
|
|
|
231
233
|
### Marp Extractor
|
|
232
234
|
|
|
@@ -261,8 +263,8 @@ yarn test:marp
|
|
|
261
263
|
|
|
262
264
|
**Output:**
|
|
263
265
|
- `scripts/<basename>/images/` - PNG images of each slide
|
|
264
|
-
- `scripts/<basename
|
|
265
|
-
- `scripts/<basename
|
|
266
|
+
- `scripts/<basename>/<basename>.json` - MulmoScript JSON file (PNG format)
|
|
267
|
+
- `scripts/<basename>/<basename>-markdown.json` - MulmoScript JSON file (Markdown format)
|
|
266
268
|
|
|
267
269
|
**Features:**
|
|
268
270
|
- Extracts speaker notes from HTML comments (`<!-- note text -->`)
|
|
@@ -380,7 +382,7 @@ mulmo-slide markdown document.md --layout --style corporate-blue
|
|
|
380
382
|
```
|
|
381
383
|
|
|
382
384
|
**Output:**
|
|
383
|
-
- `scripts/<basename
|
|
385
|
+
- `scripts/<basename>/<basename>.json` - MulmoScript JSON file (Markdown format)
|
|
384
386
|
|
|
385
387
|
### PowerPoint (PPTX) Converter
|
|
386
388
|
|
|
@@ -411,7 +413,7 @@ yarn pptx path/to/presentation.pptx -g -l ja
|
|
|
411
413
|
**Output:**
|
|
412
414
|
- `scripts/<basename>/` - Directory named after input file
|
|
413
415
|
- `scripts/<basename>/images/<basename>-0.png, -1.png, ...` - PNG images of each slide
|
|
414
|
-
- `scripts/<basename
|
|
416
|
+
- `scripts/<basename>/<basename>.json` - MulmoScript JSON file
|
|
415
417
|
|
|
416
418
|
### PDF Converter
|
|
417
419
|
|
|
@@ -441,7 +443,7 @@ yarn pdf path/to/presentation.pdf -g -l ja
|
|
|
441
443
|
**Output:**
|
|
442
444
|
- `scripts/<basename>/` - Directory named after input file
|
|
443
445
|
- `scripts/<basename>/images/<basename>-0.png, -1.png, ...` - PNG images of each page
|
|
444
|
-
- `scripts/<basename
|
|
446
|
+
- `scripts/<basename>/<basename>.json` - MulmoScript JSON file
|
|
445
447
|
|
|
446
448
|
## Movie Generation
|
|
447
449
|
|
|
@@ -557,8 +559,50 @@ mulmo-slide bundle presentation.pptx -f -g
|
|
|
557
559
|
- The LLM considers the overall presentation structure to generate contextual narration
|
|
558
560
|
- Output is in the specified language (`-l` option)
|
|
559
561
|
|
|
562
|
+
## Narrate CLI
|
|
563
|
+
|
|
564
|
+
Generate a narrated ExtendedScript from any supported source file in one command. This automates the full pipeline: conversion to MulmoScript, LLM-based narration and metadata generation, and validation.
|
|
565
|
+
|
|
566
|
+
**Usage:**
|
|
567
|
+
|
|
568
|
+
```bash
|
|
569
|
+
# Full pipeline (requires OPENAI_API_KEY)
|
|
570
|
+
mulmo-slide narrate paper.pdf
|
|
571
|
+
mulmo-slide narrate slides.pptx -l ja
|
|
572
|
+
mulmo-slide narrate document.md --mermaid -s heading
|
|
573
|
+
|
|
574
|
+
# Scaffold only (no LLM, for Claude Code handoff)
|
|
575
|
+
mulmo-slide narrate paper.pdf --scaffold-only
|
|
576
|
+
|
|
577
|
+
# yarn (development)
|
|
578
|
+
yarn narrate samples/sample.pdf -l ja
|
|
579
|
+
yarn narrate samples/sample.pdf --scaffold-only
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
**Options:**
|
|
583
|
+
- `-l, --lang` - Language for narration (en, ja, fr, de)
|
|
584
|
+
- `--scaffold-only` - Only create ExtendedScript skeleton (no LLM). Useful as preparation for Claude Code `/narrate` analysis
|
|
585
|
+
- `-f, --force` - Force regenerate MulmoScript even if it exists
|
|
586
|
+
- `-s, --separator` - Slide separator mode (for Markdown files)
|
|
587
|
+
- `--mermaid` - Convert mermaid code blocks (for Markdown files)
|
|
588
|
+
|
|
589
|
+
**Output:** `scripts/{basename}/extended_script.json`
|
|
590
|
+
|
|
591
|
+
### Extend Scaffold
|
|
592
|
+
|
|
593
|
+
Create an ExtendedScript skeleton from an existing MulmoScript without any LLM calls. This adds beat IDs, empty metadata fields, and imports extracted texts as notes.
|
|
594
|
+
|
|
595
|
+
```bash
|
|
596
|
+
mulmo-slide extend scaffold scripts/<basename>/<basename>.json
|
|
597
|
+
|
|
598
|
+
# yarn (development)
|
|
599
|
+
yarn cli extend scaffold scripts/<basename>/<basename>.json
|
|
600
|
+
```
|
|
601
|
+
|
|
560
602
|
## Narrate: Source File to Narrated Video (Claude Code Skill)
|
|
561
603
|
|
|
604
|
+
> **Tip:** If you don't need interactive analysis and want a fully automated pipeline, use the [Narrate CLI](#narrate-cli) instead (`mulmo-slide narrate <file>`). It runs the full pipeline with OpenAI GPT-4o without requiring Claude Code.
|
|
605
|
+
|
|
562
606
|
The `/narrate` skill converts any supported source file into a narrated ExtendedScript in one step. It handles the full pipeline: conversion, narration generation, metadata, and validation.
|
|
563
607
|
|
|
564
608
|
### Setup
|
|
@@ -608,8 +652,8 @@ npx mulmocast-preprocessor query scripts/{basename}/extended_script.json -i
|
|
|
608
652
|
npx mulmocast-preprocessor summarize scripts/{basename}/extended_script.json
|
|
609
653
|
|
|
610
654
|
# Generate a narrated video
|
|
611
|
-
npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/
|
|
612
|
-
npx mulmo movie scripts/{basename}/
|
|
655
|
+
npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/{basename}.json
|
|
656
|
+
npx mulmo movie scripts/{basename}/{basename}.json
|
|
613
657
|
```
|
|
614
658
|
|
|
615
659
|
### Validating ExtendedScript
|
|
@@ -630,7 +674,7 @@ Outputs beat count, scriptMeta presence, meta coverage percentage, and sections
|
|
|
630
674
|
If you already have a MulmoScript and just want to add metadata:
|
|
631
675
|
|
|
632
676
|
```
|
|
633
|
-
/extend scripts/simple_text/
|
|
677
|
+
/extend scripts/simple_text/simple_text.json
|
|
634
678
|
```
|
|
635
679
|
|
|
636
680
|
### Tutorials
|
|
@@ -648,8 +692,8 @@ scripts/<basename>/
|
|
|
648
692
|
│ ├── <basename>-0.png (or images.001.png for Marp)
|
|
649
693
|
│ ├── <basename>-1.png (or images.002.png for Marp)
|
|
650
694
|
│ └── ...
|
|
651
|
-
├──
|
|
652
|
-
└──
|
|
695
|
+
├── <basename>.json # MulmoScript (all formats)
|
|
696
|
+
└── <basename>-markdown.json # Marp only: Markdown format
|
|
653
697
|
```
|
|
654
698
|
|
|
655
699
|
## License
|
package/lib/actions/common.d.ts
CHANGED
|
@@ -15,11 +15,21 @@ export interface InitializeContextOptions {
|
|
|
15
15
|
captionLang?: string;
|
|
16
16
|
}
|
|
17
17
|
export declare function initializeContext(mulmoScriptPath: string, outputDir: string, options?: InitializeContextOptions): Promise<MulmoStudioContext>;
|
|
18
|
+
export declare const readJsonFile: <T>(filePath: string) => T;
|
|
19
|
+
export declare const writeJsonFile: (filePath: string, data: unknown) => void;
|
|
20
|
+
export declare const loadExtractedTexts: (dir: string) => string[] | null;
|
|
21
|
+
export declare const formatZodError: (error: {
|
|
22
|
+
issues: Array<{
|
|
23
|
+
path: PropertyKey[];
|
|
24
|
+
message: string;
|
|
25
|
+
}>;
|
|
26
|
+
}) => string;
|
|
18
27
|
export type ActionRunner = (mulmoScriptPath: string, outputDir: string) => Promise<void>;
|
|
19
28
|
export interface RunActionOptions {
|
|
20
29
|
force?: boolean;
|
|
21
30
|
generateText?: boolean;
|
|
22
31
|
}
|
|
32
|
+
export declare function getMulmoScriptFilename(basename: string): string;
|
|
23
33
|
export declare function getMulmoScriptPath(basename: string): string;
|
|
24
34
|
export declare function runAction(commandName: string, inputFile: string, actionRunner: ActionRunner, options?: RunActionOptions): Promise<void>;
|
|
25
35
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/actions/common.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAGD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAIrE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAiBzD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/actions/common.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAGD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAIrE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAiBzD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,UAAU,MAAM,KAAG,CAGlD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,MAAM,OAAO,KAAG,IAE/D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAAM,EAAE,GAAG,IAW3D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO;IACpC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD,KAAG,MAOH,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
|
package/lib/actions/common.js
CHANGED
|
@@ -69,7 +69,7 @@ export async function convertToMulmoScript(filePath, fileType, options = {}) {
|
|
|
69
69
|
stdio: "inherit",
|
|
70
70
|
cwd: process.cwd(),
|
|
71
71
|
});
|
|
72
|
-
return path.join("scripts", basename,
|
|
72
|
+
return path.join("scripts", basename, getMulmoScriptFilename(basename));
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -92,8 +92,39 @@ export async function initializeContext(mulmoScriptPath, outputDir, options = {}
|
|
|
92
92
|
}
|
|
93
93
|
return context;
|
|
94
94
|
}
|
|
95
|
+
export const readJsonFile = (filePath) => {
|
|
96
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
97
|
+
return JSON.parse(content);
|
|
98
|
+
};
|
|
99
|
+
export const writeJsonFile = (filePath, data) => {
|
|
100
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n");
|
|
101
|
+
};
|
|
102
|
+
export const loadExtractedTexts = (dir) => {
|
|
103
|
+
const textsPath = path.join(dir, "extracted_texts.json");
|
|
104
|
+
if (!fs.existsSync(textsPath)) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
return readJsonFile(textsPath);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
console.warn(`Warning: Could not parse ${textsPath}, skipping notes`);
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
export const formatZodError = (error) => {
|
|
116
|
+
return error.issues
|
|
117
|
+
.map((issue) => {
|
|
118
|
+
const pathStr = issue.path.length > 0 ? issue.path.map(String).join(".") : "(root)";
|
|
119
|
+
return ` - ${pathStr}: ${issue.message}`;
|
|
120
|
+
})
|
|
121
|
+
.join("\n");
|
|
122
|
+
};
|
|
123
|
+
export function getMulmoScriptFilename(basename) {
|
|
124
|
+
return `${basename}.json`;
|
|
125
|
+
}
|
|
95
126
|
export function getMulmoScriptPath(basename) {
|
|
96
|
-
return path.join("scripts", basename,
|
|
127
|
+
return path.join("scripts", basename, getMulmoScriptFilename(basename));
|
|
97
128
|
}
|
|
98
129
|
export async function runAction(commandName, inputFile, actionRunner, options = {}) {
|
|
99
130
|
const { force = false, generateText = false } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/actions/common.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/actions/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,6 @@ export const runExtendInit = () => {
|
|
|
44
44
|
console.log(`\nInstalled skills (${totalFiles} files total)`);
|
|
45
45
|
console.log(`\nUsage in Claude Code:`);
|
|
46
46
|
console.log(` /narrate <source file> Full pipeline (recommended)`);
|
|
47
|
-
console.log(` /extend <
|
|
47
|
+
console.log(` /extend <MulmoScript.json> Add metadata to existing MulmoScript`);
|
|
48
48
|
};
|
|
49
49
|
//# sourceMappingURL=extend-init.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MulmoScript } from "@mulmocast/types";
|
|
2
|
+
import type { ExtendedScript } from "@mulmocast/extended-types";
|
|
3
|
+
export declare const scaffoldExtendedScript: (mulmoScript: MulmoScript, extractedTexts: string[] | null) => ExtendedScript;
|
|
4
|
+
export declare const runExtendScaffold: (filePath: string) => void;
|
|
5
|
+
//# sourceMappingURL=extend-scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-scaffold.d.ts","sourceRoot":"","sources":["../../src/actions/extend-scaffold.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAA0B,MAAM,2BAA2B,CAAC;AAsBxF,eAAO,MAAM,sBAAsB,GACjC,aAAa,WAAW,EACxB,gBAAgB,MAAM,EAAE,GAAG,IAAI,KAC9B,cAWF,CAAC;AAgCF,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,IAiBpD,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { readJsonFile, writeJsonFile, loadExtractedTexts } from "./common.js";
|
|
4
|
+
const addBeatIds = (beats) => {
|
|
5
|
+
return beats.map((beat, i) => {
|
|
6
|
+
if (beat.id) {
|
|
7
|
+
return beat;
|
|
8
|
+
}
|
|
9
|
+
return { ...beat, id: `beat-${i + 1}` };
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
const addBeatMeta = (beats, extractedTexts) => {
|
|
13
|
+
return beats.map((beat, i) => {
|
|
14
|
+
const meta = { ...(beat.meta ?? {}) };
|
|
15
|
+
if (extractedTexts && i < extractedTexts.length && extractedTexts[i]) {
|
|
16
|
+
meta.notes = extractedTexts[i];
|
|
17
|
+
}
|
|
18
|
+
return { ...beat, meta };
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
export const scaffoldExtendedScript = (mulmoScript, extractedTexts) => {
|
|
22
|
+
const beats = addBeatMeta(addBeatIds(mulmoScript.beats), extractedTexts);
|
|
23
|
+
// Set defaults first so the spread preserves existing values
|
|
24
|
+
// (JSON may include scriptMeta/outputProfiles not in MulmoScript type)
|
|
25
|
+
return {
|
|
26
|
+
scriptMeta: {},
|
|
27
|
+
outputProfiles: {},
|
|
28
|
+
...mulmoScript,
|
|
29
|
+
beats,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const buildSummary = (mulmoScript, result, outputPath) => ({
|
|
33
|
+
beatCount: result.beats.length,
|
|
34
|
+
idsAdded: mulmoScript.beats.filter((b) => !b.id).length,
|
|
35
|
+
notesAdded: result.beats.filter((b) => b.meta?.notes).length,
|
|
36
|
+
outputPath,
|
|
37
|
+
});
|
|
38
|
+
const printSummary = (summary) => {
|
|
39
|
+
console.log(`\n✓ Scaffolded ExtendedScript: ${summary.outputPath}`);
|
|
40
|
+
console.log(` Beats: ${summary.beatCount}`);
|
|
41
|
+
if (summary.idsAdded > 0) {
|
|
42
|
+
console.log(` IDs added: ${summary.idsAdded}`);
|
|
43
|
+
}
|
|
44
|
+
if (summary.notesAdded > 0) {
|
|
45
|
+
console.log(` Notes from extracted_texts: ${summary.notesAdded}`);
|
|
46
|
+
}
|
|
47
|
+
console.log(`\nNext: Add narration and metadata manually or with LLM`);
|
|
48
|
+
};
|
|
49
|
+
export const runExtendScaffold = (filePath) => {
|
|
50
|
+
const resolvedPath = path.resolve(filePath);
|
|
51
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
52
|
+
console.error(`File not found: ${resolvedPath}`);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const mulmoScript = readJsonFile(resolvedPath);
|
|
56
|
+
const dir = path.dirname(resolvedPath);
|
|
57
|
+
const extractedTexts = loadExtractedTexts(dir);
|
|
58
|
+
const result = scaffoldExtendedScript(mulmoScript, extractedTexts);
|
|
59
|
+
const outputPath = path.join(dir, "extended_script.json");
|
|
60
|
+
writeJsonFile(outputPath, result);
|
|
61
|
+
printSummary(buildSummary(mulmoScript, result, outputPath));
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=extend-scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-scaffold.js","sourceRoot":"","sources":["../../src/actions/extend-scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,UAAU,GAAG,CAAC,KAAkB,EAAkB,EAAE;IACxD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,IAAoB,CAAC;QAC9B,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAkB,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAqB,EAAE,cAA+B,EAAkB,EAAE;IAC7F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAa,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAChD,IAAI,cAAc,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,WAAwB,EACxB,cAA+B,EACf,EAAE;IAClB,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IAEzE,6DAA6D;IAC7D,uEAAuE;IACvE,OAAO;QACL,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,EAAE;QAClB,GAAG,WAAW;QACd,KAAK;KACY,CAAC;AACtB,CAAC,CAAC;AASF,MAAM,YAAY,GAAG,CACnB,WAAwB,EACxB,MAAsB,EACtB,UAAkB,EACD,EAAE,CAAC,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;IAC9B,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;IACvD,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM;IAC5D,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,OAAwB,EAAQ,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAQ,EAAE;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAc,YAAY,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC1D,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAElC,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-validate.d.ts","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extend-validate.d.ts","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,IAmCpD,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from "fs";
|
|
2
2
|
import * as path from "path";
|
|
3
3
|
import { extendedScriptSchema } from "@mulmocast/extended-types";
|
|
4
|
+
import { formatZodError } from "./common.js";
|
|
4
5
|
const summarizeScript = (data) => {
|
|
5
6
|
const script = data;
|
|
6
7
|
const beats = script.beats;
|
|
@@ -15,13 +16,6 @@ const summarizeScript = (data) => {
|
|
|
15
16
|
sections,
|
|
16
17
|
};
|
|
17
18
|
};
|
|
18
|
-
const formatZodError = (error) => {
|
|
19
|
-
const lines = error.issues.map((issue) => {
|
|
20
|
-
const pathStr = issue.path.length > 0 ? issue.path.map((p) => String(p)).join(".") : "(root)";
|
|
21
|
-
return ` - ${pathStr}: ${issue.message}`;
|
|
22
|
-
});
|
|
23
|
-
return lines.join("\n");
|
|
24
|
-
};
|
|
25
19
|
export const runExtendValidate = (filePath) => {
|
|
26
20
|
const resolvedPath = path.resolve(filePath);
|
|
27
21
|
if (!fs.existsSync(resolvedPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-validate.js","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"extend-validate.js","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SupportedLang } from "../utils/lang.js";
|
|
2
|
+
export interface NarrateOptions {
|
|
3
|
+
lang?: SupportedLang;
|
|
4
|
+
scaffoldOnly?: boolean;
|
|
5
|
+
force?: boolean;
|
|
6
|
+
separator?: string;
|
|
7
|
+
mermaid?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const runNarrate: (filePath: string, options: NarrateOptions) => Promise<void>;
|
|
10
|
+
//# sourceMappingURL=narrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"narrate.d.ts","sourceRoot":"","sources":["../../src/actions/narrate.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAmGD,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CA6FxF,CAAC"}
|