@mulmocast/slide 0.2.0 → 0.3.0
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 +120 -0
- package/.claude/skills/extend/references/extended-script-schema.md +153 -0
- package/.claude/skills/narrate/SKILL.md +145 -0
- package/.claude/skills/narrate/references/extended-script-schema.md +153 -0
- package/README.md +83 -0
- package/lib/actions/extend-init.d.ts +2 -0
- package/lib/actions/extend-init.d.ts.map +1 -0
- package/lib/actions/extend-init.js +49 -0
- package/lib/actions/extend-init.js.map +1 -0
- package/lib/actions/extend-validate.d.ts +2 -0
- package/lib/actions/extend-validate.d.ts.map +1 -0
- package/lib/actions/extend-validate.js +56 -0
- package/lib/actions/extend-validate.js.map +1 -0
- package/lib/cli.js +18 -0
- package/lib/cli.js.map +1 -1
- package/lib/convert/pdf.d.ts +1 -0
- package/lib/convert/pdf.d.ts.map +1 -1
- package/lib/convert/pdf.js +9 -0
- package/lib/convert/pdf.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# /extend - MulmoScript to ExtendedScript Conversion
|
|
2
|
+
|
|
3
|
+
Convert a MulmoScript JSON into an ExtendedScript by adding `scriptMeta` and `beats[].meta` metadata fields. The metadata is used by mulmocast-preprocessor's AI features (summarize, query).
|
|
4
|
+
|
|
5
|
+
## Invocation
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/extend <mulmo_script.json path> [--source <source file path>]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Instructions
|
|
12
|
+
|
|
13
|
+
### Step 1: Read Inputs
|
|
14
|
+
|
|
15
|
+
1. Read the MulmoScript JSON at the specified path
|
|
16
|
+
2. Read the ExtendedScript schema: `.claude/skills/extend/references/extended-script-schema.md`
|
|
17
|
+
3. Check for extracted texts file:
|
|
18
|
+
- Look for `extracted_texts.json` in the same directory as the MulmoScript
|
|
19
|
+
- This file is generated by `mulmo-slide pdf` and contains per-page text extracted from the source PDF
|
|
20
|
+
- If found, read it — this provides the raw text content for each beat
|
|
21
|
+
4. Locate the source file:
|
|
22
|
+
- If `--source` is specified, use that file
|
|
23
|
+
- Otherwise, infer from the MulmoScript path:
|
|
24
|
+
- `scripts/{basename}/mulmo_script.json` -> search for `samples/{basename}.*` (try `.md`, `.pptx`, `.pdf`, `.key`)
|
|
25
|
+
- If no source file found, work from the MulmoScript content and extracted texts alone
|
|
26
|
+
5. If a source file is found, read it
|
|
27
|
+
|
|
28
|
+
### Step 2: Analyze Content
|
|
29
|
+
|
|
30
|
+
Analyze the MulmoScript beats and source file (if available) to understand:
|
|
31
|
+
|
|
32
|
+
- The overall theme and purpose of the presentation
|
|
33
|
+
- The target audience
|
|
34
|
+
- The logical structure (sections, flow)
|
|
35
|
+
- Content types in each slide (text, code, diagrams, tables, data)
|
|
36
|
+
- URLs and external references mentioned
|
|
37
|
+
- Key terminology and concepts
|
|
38
|
+
|
|
39
|
+
For Markdown sources, also examine:
|
|
40
|
+
- Header hierarchy and structure
|
|
41
|
+
- Speaker notes (after `---` or in HTML comments)
|
|
42
|
+
- Code blocks and their languages
|
|
43
|
+
- Mermaid diagrams
|
|
44
|
+
- Links and references
|
|
45
|
+
|
|
46
|
+
### Step 3: Generate Metadata
|
|
47
|
+
|
|
48
|
+
Based on the analysis, generate:
|
|
49
|
+
|
|
50
|
+
**`scriptMeta`** (script-level):
|
|
51
|
+
- `background`: 1-2 sentence overview of the presentation's theme
|
|
52
|
+
- `audience`: Who this presentation is for
|
|
53
|
+
- `goals`: 2-4 learning objectives or presentation goals
|
|
54
|
+
- `keywords`: 5-10 main keywords for search/discovery
|
|
55
|
+
- `references`: Extract URLs from slides, categorize as web/code/document/video
|
|
56
|
+
- `author`: If identifiable from content
|
|
57
|
+
- `faq`: 2-4 likely questions with answers based on the content
|
|
58
|
+
|
|
59
|
+
**`beats[].meta`** (per-beat):
|
|
60
|
+
- `section`: Logical section name (e.g., "opening", "introduction", "main-topic-1", "demo", "closing")
|
|
61
|
+
- Use consistent naming: consecutive beats in the same logical section share the same section value
|
|
62
|
+
- `tags`: Content type and topic tags. Use from this vocabulary when applicable:
|
|
63
|
+
- Content type: `intro`, `overview`, `definition`, `example`, `code`, `diagram`, `data`, `table`, `demo`, `comparison`, `summary`, `conclusion`, `q-and-a`
|
|
64
|
+
- Add topic-specific tags as needed
|
|
65
|
+
- `keywords`: 2-5 beat-specific important terms
|
|
66
|
+
- `notes`: If `extracted_texts.json` exists, put the corresponding extracted text for that beat here. This preserves the raw source content as metadata.
|
|
67
|
+
- `context`: Background information that would help an AI answer questions about this beat. Add supplementary information: related concepts, technical details, connections to other topics. This is the most valuable field - be substantive.
|
|
68
|
+
- `expectedQuestions`: 1-3 questions the audience might ask about this specific beat's content
|
|
69
|
+
|
|
70
|
+
**`beats[].text`** (narration):
|
|
71
|
+
- If the beat's `text` field is empty and `extracted_texts.json` is available, generate a concise narration text based on the extracted text. The narration should be a natural spoken summary of the slide content, NOT a verbatim copy of the extracted text.
|
|
72
|
+
- If the beat already has `text`, preserve it as-is.
|
|
73
|
+
|
|
74
|
+
### Step 4: Build ExtendedScript
|
|
75
|
+
|
|
76
|
+
1. Start with the original MulmoScript (preserve ALL existing fields exactly)
|
|
77
|
+
2. Add `scriptMeta` at the top level
|
|
78
|
+
3. Add `meta` to each beat
|
|
79
|
+
4. Add `outputProfiles: {}` (empty, for user to configure later)
|
|
80
|
+
5. If beats don't have `id` fields, add them (e.g., `"beat-1"`, `"beat-2"`, ...)
|
|
81
|
+
|
|
82
|
+
### Step 5: Write and Validate Output
|
|
83
|
+
|
|
84
|
+
1. Determine output path:
|
|
85
|
+
- Same directory as input: replace `mulmo_script.json` with `extended_script.json`
|
|
86
|
+
- Example: `scripts/simple_text/mulmo_script.json` -> `scripts/simple_text/extended_script.json`
|
|
87
|
+
2. Write the JSON with 2-space indentation
|
|
88
|
+
3. Run `mulmo-slide extend validate <output_path>` (or `yarn cli extend validate <output_path>`) to validate against the schema
|
|
89
|
+
4. If validation fails, fix the errors and re-write the file, then validate again
|
|
90
|
+
5. Generate MulmoScript from ExtendedScript using the preprocessor:
|
|
91
|
+
```bash
|
|
92
|
+
npx mulmocast-preprocessor <extended_script.json> -o <mulmo_script.json>
|
|
93
|
+
```
|
|
94
|
+
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:
|
|
95
|
+
```bash
|
|
96
|
+
node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync('<mulmo_script.json>','utf8'));delete d.scriptMeta;delete d.outputProfiles;d.beats.forEach(b=>{delete b.meta;delete b.variants});fs.writeFileSync('<mulmo_script.json>',JSON.stringify(d,null,2))"
|
|
97
|
+
```
|
|
98
|
+
6. Display a summary to the user:
|
|
99
|
+
- Number of beats processed
|
|
100
|
+
- Sections identified
|
|
101
|
+
- Key topics/keywords
|
|
102
|
+
- Output file path
|
|
103
|
+
|
|
104
|
+
### Step 6: Offer Adjustments
|
|
105
|
+
|
|
106
|
+
Ask the user if they want to adjust any of the generated metadata. Common adjustments:
|
|
107
|
+
- Refine audience description
|
|
108
|
+
- Add/remove keywords
|
|
109
|
+
- Adjust FAQ entries
|
|
110
|
+
- Modify section boundaries
|
|
111
|
+
- Enhance context fields
|
|
112
|
+
|
|
113
|
+
## Quality Guidelines
|
|
114
|
+
|
|
115
|
+
- **context field**: This is the most important field for AI features. Don't just restate the slide text. Add supplementary information: related concepts, technical background, real-world examples, historical context, common misconceptions.
|
|
116
|
+
- **section naming**: Use lowercase-kebab-case. Keep section names meaningful and consistent across beats.
|
|
117
|
+
- **tags**: Be specific but not excessive. 2-4 tags per beat is typical.
|
|
118
|
+
- **expectedQuestions**: Write natural questions a real audience member would ask, not generic ones.
|
|
119
|
+
- **keywords**: Prefer specific technical terms over generic words.
|
|
120
|
+
- **Preserve original content**: Never modify existing MulmoScript fields (text, image, speaker, etc.).
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# ExtendedScript Schema Reference
|
|
2
|
+
|
|
3
|
+
This document defines the ExtendedScript format used by `mulmocast-preprocessor`.
|
|
4
|
+
Canonical source: `@mulmocast/extended-types` npm package (`mulmocast-plus/packages/mulmocast-extended-types/src/index.ts`)
|
|
5
|
+
|
|
6
|
+
## Type Definitions
|
|
7
|
+
|
|
8
|
+
### BeatMeta
|
|
9
|
+
|
|
10
|
+
Metadata for filtering and context, attached to each beat.
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
{
|
|
14
|
+
tags?: string[]; // Content type/topic tags (e.g., "intro", "code", "diagram", "data", "demo", "conclusion")
|
|
15
|
+
section?: string; // Logical section identifier (e.g., "opening", "chapter1", "closing")
|
|
16
|
+
context?: string; // Background info not in the slide text (for AI summarize/query)
|
|
17
|
+
notes?: string; // Raw extracted text from source document (e.g., PDF text)
|
|
18
|
+
keywords?: string[]; // Beat-specific search keywords
|
|
19
|
+
expectedQuestions?: string[]; // Questions the audience might ask about this beat
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### BeatVariant
|
|
24
|
+
|
|
25
|
+
Profile-specific content overrides (not generated by `/extend`).
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
{
|
|
29
|
+
text?: string; // Override text for this profile
|
|
30
|
+
skip?: boolean; // Skip this beat in this profile
|
|
31
|
+
image?: MulmoImageAsset; // Override image
|
|
32
|
+
imagePrompt?: string; // Override image prompt
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### ExtendedBeat
|
|
37
|
+
|
|
38
|
+
A beat with optional `variants` and `meta` fields (extends MulmoBeat).
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
{
|
|
42
|
+
// ... all MulmoBeat fields preserved ...
|
|
43
|
+
variants?: Record<string, BeatVariant>; // Profile-keyed overrides
|
|
44
|
+
meta?: BeatMeta; // Metadata for this beat
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Reference
|
|
49
|
+
|
|
50
|
+
External resource reference.
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
{
|
|
54
|
+
type?: "web" | "code" | "document" | "video";
|
|
55
|
+
url: string;
|
|
56
|
+
title?: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### FAQ
|
|
62
|
+
|
|
63
|
+
Frequently asked question for quick Q&A matching.
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
{
|
|
67
|
+
question: string;
|
|
68
|
+
answer: string;
|
|
69
|
+
relatedBeats?: string[]; // Beat IDs related to this FAQ
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### ScriptMeta
|
|
74
|
+
|
|
75
|
+
Script-level metadata for AI features.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
{
|
|
79
|
+
audience?: string; // Target audience description
|
|
80
|
+
prerequisites?: string[]; // Required knowledge
|
|
81
|
+
goals?: string[]; // Learning goals / presentation objectives
|
|
82
|
+
background?: string; // Overview / theme of the presentation
|
|
83
|
+
faq?: FAQ[]; // Frequently asked questions
|
|
84
|
+
keywords?: string[]; // Script-wide search keywords
|
|
85
|
+
references?: Reference[]; // External resource links
|
|
86
|
+
author?: string; // Author name
|
|
87
|
+
version?: string; // Version string
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### OutputProfile
|
|
92
|
+
|
|
93
|
+
Profile display information (not generated by `/extend`).
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
{
|
|
97
|
+
name: string;
|
|
98
|
+
description?: string;
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### ExtendedScript
|
|
103
|
+
|
|
104
|
+
The top-level type (extends MulmoScript).
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
{
|
|
108
|
+
// ... all MulmoScript fields preserved ...
|
|
109
|
+
beats: ExtendedBeat[]; // Beats with meta
|
|
110
|
+
outputProfiles?: Record<string, OutputProfile>; // Profile definitions
|
|
111
|
+
scriptMeta?: ScriptMeta; // Script-level metadata
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Example
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"$mulmocast": { "version": "1.1" },
|
|
120
|
+
"title": "Example Presentation",
|
|
121
|
+
"lang": "en",
|
|
122
|
+
"speechParams": { "speakers": { "Presenter": { "voiceId": "alloy" } } },
|
|
123
|
+
"scriptMeta": {
|
|
124
|
+
"audience": "Software engineers interested in AI",
|
|
125
|
+
"goals": ["Understand LLM agent patterns", "Learn practical implementation approaches"],
|
|
126
|
+
"background": "LLM agents combine language models with tools and memory for autonomous task execution.",
|
|
127
|
+
"keywords": ["LLM", "agents", "AI"],
|
|
128
|
+
"references": [
|
|
129
|
+
{
|
|
130
|
+
"type": "document",
|
|
131
|
+
"url": "https://arxiv.org/abs/2210.03629",
|
|
132
|
+
"title": "ReAct Paper"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"author": "AI Team"
|
|
136
|
+
},
|
|
137
|
+
"beats": [
|
|
138
|
+
{
|
|
139
|
+
"id": "intro-1",
|
|
140
|
+
"speaker": "Presenter",
|
|
141
|
+
"text": "Welcome to this presentation about LLM agents.",
|
|
142
|
+
"meta": {
|
|
143
|
+
"section": "opening",
|
|
144
|
+
"tags": ["intro"],
|
|
145
|
+
"keywords": ["LLM agents"],
|
|
146
|
+
"context": "This is the opening slide that sets the stage for the presentation.",
|
|
147
|
+
"expectedQuestions": ["What are LLM agents?"]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"outputProfiles": {}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# /narrate - Source File to Narrated ExtendedScript
|
|
2
|
+
|
|
3
|
+
Convert any supported source file (PDF, PPTX, Markdown, Keynote) into a validated ExtendedScript with AI-generated narration and metadata. This is the main entry point for the full pipeline.
|
|
4
|
+
|
|
5
|
+
## Invocation
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/narrate <source file path>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Supported formats: `.pdf`, `.pptx`, `.md`, `.key`
|
|
12
|
+
|
|
13
|
+
## Instructions
|
|
14
|
+
|
|
15
|
+
### Step 1: Convert Source to MulmoScript
|
|
16
|
+
|
|
17
|
+
Detect the file format and run the appropriate converter.
|
|
18
|
+
|
|
19
|
+
**PDF:**
|
|
20
|
+
```bash
|
|
21
|
+
yarn cli pdf <file>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**PPTX:**
|
|
25
|
+
```bash
|
|
26
|
+
yarn cli pptx <file>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Markdown:**
|
|
30
|
+
```bash
|
|
31
|
+
yarn cli markdown <file>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Keynote (.key):**
|
|
35
|
+
```bash
|
|
36
|
+
yarn cli keynote <file>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This produces `scripts/{basename}/mulmo_script.json` and (for PDF) `scripts/{basename}/extracted_texts.json`.
|
|
40
|
+
|
|
41
|
+
Confirm the output:
|
|
42
|
+
- How many slides/beats were generated
|
|
43
|
+
- Whether `extracted_texts.json` exists (PDF only)
|
|
44
|
+
|
|
45
|
+
### Step 2: Read Inputs
|
|
46
|
+
|
|
47
|
+
1. Read the generated `scripts/{basename}/mulmo_script.json`
|
|
48
|
+
2. Read the ExtendedScript schema: `.claude/skills/narrate/references/extended-script-schema.md`
|
|
49
|
+
3. Check for `scripts/{basename}/extracted_texts.json` (generated by PDF converter)
|
|
50
|
+
- If found, read it — this provides raw text content for each beat
|
|
51
|
+
4. If the source is Markdown, also read the original `.md` file for speaker notes and structure
|
|
52
|
+
|
|
53
|
+
### Step 3: Analyze Content
|
|
54
|
+
|
|
55
|
+
Analyze the MulmoScript beats, extracted texts, and source file to understand:
|
|
56
|
+
|
|
57
|
+
- The overall theme and purpose
|
|
58
|
+
- The target audience
|
|
59
|
+
- The logical structure (sections, flow)
|
|
60
|
+
- Content types in each slide (text, code, diagrams, tables, data)
|
|
61
|
+
- URLs and external references
|
|
62
|
+
- Key terminology and concepts
|
|
63
|
+
|
|
64
|
+
For slides with images, read the slide images to understand visual content that may not be in extracted text.
|
|
65
|
+
|
|
66
|
+
### Step 4: Generate Narration and Metadata
|
|
67
|
+
|
|
68
|
+
Based on the analysis, generate:
|
|
69
|
+
|
|
70
|
+
**`scriptMeta`** (script-level):
|
|
71
|
+
- `background`: 1-2 sentence overview of the theme
|
|
72
|
+
- `audience`: Who this is for
|
|
73
|
+
- `goals`: 2-4 learning objectives or goals
|
|
74
|
+
- `keywords`: 5-10 main keywords
|
|
75
|
+
- `references`: Extract URLs, categorize as web/code/document/video
|
|
76
|
+
- `author`: If identifiable from content
|
|
77
|
+
- `faq`: 2-4 likely questions with answers
|
|
78
|
+
|
|
79
|
+
**`beats[].text`** (narration):
|
|
80
|
+
- If the beat's `text` is empty, generate a concise narration based on the slide content and extracted text
|
|
81
|
+
- The narration should be natural spoken language, NOT a verbatim copy of source text
|
|
82
|
+
- Match the language specified in `lang` field of the MulmoScript
|
|
83
|
+
- If the beat already has `text`, preserve it as-is
|
|
84
|
+
|
|
85
|
+
**`beats[].meta`** (per-beat):
|
|
86
|
+
- `section`: Logical section name (lowercase-kebab-case, e.g., "introduction", "main-topic-1", "conclusion")
|
|
87
|
+
- `tags`: Content type tags from: `intro`, `overview`, `definition`, `example`, `code`, `diagram`, `data`, `table`, `demo`, `comparison`, `summary`, `conclusion`, `q-and-a`
|
|
88
|
+
- `keywords`: 2-5 beat-specific terms
|
|
89
|
+
- `notes`: If `extracted_texts.json` exists, put the raw extracted text here
|
|
90
|
+
- `context`: Background info for AI query/summarize. Be substantive — don't just restate the slide
|
|
91
|
+
- `expectedQuestions`: 1-3 natural audience questions
|
|
92
|
+
|
|
93
|
+
### Step 5: Build and Write ExtendedScript
|
|
94
|
+
|
|
95
|
+
1. Start with the original MulmoScript (preserve ALL existing fields)
|
|
96
|
+
2. Add `scriptMeta` at the top level
|
|
97
|
+
3. Add `meta` to each beat, set `text` for narration
|
|
98
|
+
4. Add `outputProfiles: {}` (empty)
|
|
99
|
+
5. If beats don't have `id` fields, add them (`"beat-1"`, `"beat-2"`, ...)
|
|
100
|
+
6. Write to `scripts/{basename}/extended_script.json` with 2-space indentation
|
|
101
|
+
|
|
102
|
+
### Step 6: Validate
|
|
103
|
+
|
|
104
|
+
Run validation:
|
|
105
|
+
```bash
|
|
106
|
+
yarn cli extend validate scripts/{basename}/extended_script.json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If validation fails, fix the errors and re-write the file. Repeat until validation passes.
|
|
110
|
+
|
|
111
|
+
### Step 7: Present Results and Next Steps
|
|
112
|
+
|
|
113
|
+
Display a summary:
|
|
114
|
+
- Number of beats processed
|
|
115
|
+
- Sections identified
|
|
116
|
+
- Key topics/keywords
|
|
117
|
+
- Output file path
|
|
118
|
+
|
|
119
|
+
Then show the user the next steps they can take:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
ExtendedScript is ready! Here's what you can do next:
|
|
123
|
+
|
|
124
|
+
## Query the content interactively
|
|
125
|
+
npx mulmocast-preprocessor query scripts/{basename}/extended_script.json -i
|
|
126
|
+
|
|
127
|
+
## Generate a summary
|
|
128
|
+
npx mulmocast-preprocessor summarize scripts/{basename}/extended_script.json
|
|
129
|
+
|
|
130
|
+
## Generate a narrated video
|
|
131
|
+
npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/mulmo_script.json
|
|
132
|
+
npx mulmo movie scripts/{basename}/mulmo_script.json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Ask the user if they want to adjust any narration or metadata before proceeding.
|
|
136
|
+
|
|
137
|
+
## Quality Guidelines
|
|
138
|
+
|
|
139
|
+
- **Narration**: Write as if presenting to an audience. Use clear, spoken language. Avoid reading raw data verbatim — summarize and explain instead.
|
|
140
|
+
- **context field**: Most important for AI features. Add supplementary info: related concepts, technical background, real-world examples, historical context.
|
|
141
|
+
- **section naming**: Use lowercase-kebab-case. Consecutive beats in the same logical section share the same section value.
|
|
142
|
+
- **tags**: 2-4 tags per beat. Be specific but not excessive.
|
|
143
|
+
- **expectedQuestions**: Natural questions a real audience member would ask.
|
|
144
|
+
- **keywords**: Prefer specific technical terms over generic words.
|
|
145
|
+
- **Preserve original content**: Never modify existing MulmoScript fields (image, speaker, etc.) except `text` when generating narration.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# ExtendedScript Schema Reference
|
|
2
|
+
|
|
3
|
+
This document defines the ExtendedScript format used by `mulmocast-preprocessor`.
|
|
4
|
+
Canonical source: `@mulmocast/extended-types` npm package (`mulmocast-plus/packages/mulmocast-extended-types/src/index.ts`)
|
|
5
|
+
|
|
6
|
+
## Type Definitions
|
|
7
|
+
|
|
8
|
+
### BeatMeta
|
|
9
|
+
|
|
10
|
+
Metadata for filtering and context, attached to each beat.
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
{
|
|
14
|
+
tags?: string[]; // Content type/topic tags (e.g., "intro", "code", "diagram", "data", "demo", "conclusion")
|
|
15
|
+
section?: string; // Logical section identifier (e.g., "opening", "chapter1", "closing")
|
|
16
|
+
context?: string; // Background info not in the slide text (for AI summarize/query)
|
|
17
|
+
notes?: string; // Raw extracted text from source document (e.g., PDF text)
|
|
18
|
+
keywords?: string[]; // Beat-specific search keywords
|
|
19
|
+
expectedQuestions?: string[]; // Questions the audience might ask about this beat
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### BeatVariant
|
|
24
|
+
|
|
25
|
+
Profile-specific content overrides (not generated by `/extend`).
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
{
|
|
29
|
+
text?: string; // Override text for this profile
|
|
30
|
+
skip?: boolean; // Skip this beat in this profile
|
|
31
|
+
image?: MulmoImageAsset; // Override image
|
|
32
|
+
imagePrompt?: string; // Override image prompt
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### ExtendedBeat
|
|
37
|
+
|
|
38
|
+
A beat with optional `variants` and `meta` fields (extends MulmoBeat).
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
{
|
|
42
|
+
// ... all MulmoBeat fields preserved ...
|
|
43
|
+
variants?: Record<string, BeatVariant>; // Profile-keyed overrides
|
|
44
|
+
meta?: BeatMeta; // Metadata for this beat
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Reference
|
|
49
|
+
|
|
50
|
+
External resource reference.
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
{
|
|
54
|
+
type?: "web" | "code" | "document" | "video";
|
|
55
|
+
url: string;
|
|
56
|
+
title?: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### FAQ
|
|
62
|
+
|
|
63
|
+
Frequently asked question for quick Q&A matching.
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
{
|
|
67
|
+
question: string;
|
|
68
|
+
answer: string;
|
|
69
|
+
relatedBeats?: string[]; // Beat IDs related to this FAQ
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### ScriptMeta
|
|
74
|
+
|
|
75
|
+
Script-level metadata for AI features.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
{
|
|
79
|
+
audience?: string; // Target audience description
|
|
80
|
+
prerequisites?: string[]; // Required knowledge
|
|
81
|
+
goals?: string[]; // Learning goals / presentation objectives
|
|
82
|
+
background?: string; // Overview / theme of the presentation
|
|
83
|
+
faq?: FAQ[]; // Frequently asked questions
|
|
84
|
+
keywords?: string[]; // Script-wide search keywords
|
|
85
|
+
references?: Reference[]; // External resource links
|
|
86
|
+
author?: string; // Author name
|
|
87
|
+
version?: string; // Version string
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### OutputProfile
|
|
92
|
+
|
|
93
|
+
Profile display information (not generated by `/extend`).
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
{
|
|
97
|
+
name: string;
|
|
98
|
+
description?: string;
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### ExtendedScript
|
|
103
|
+
|
|
104
|
+
The top-level type (extends MulmoScript).
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
{
|
|
108
|
+
// ... all MulmoScript fields preserved ...
|
|
109
|
+
beats: ExtendedBeat[]; // Beats with meta
|
|
110
|
+
outputProfiles?: Record<string, OutputProfile>; // Profile definitions
|
|
111
|
+
scriptMeta?: ScriptMeta; // Script-level metadata
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Example
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"$mulmocast": { "version": "1.1" },
|
|
120
|
+
"title": "Example Presentation",
|
|
121
|
+
"lang": "en",
|
|
122
|
+
"speechParams": { "speakers": { "Presenter": { "voiceId": "alloy" } } },
|
|
123
|
+
"scriptMeta": {
|
|
124
|
+
"audience": "Software engineers interested in AI",
|
|
125
|
+
"goals": ["Understand LLM agent patterns", "Learn practical implementation approaches"],
|
|
126
|
+
"background": "LLM agents combine language models with tools and memory for autonomous task execution.",
|
|
127
|
+
"keywords": ["LLM", "agents", "AI"],
|
|
128
|
+
"references": [
|
|
129
|
+
{
|
|
130
|
+
"type": "document",
|
|
131
|
+
"url": "https://arxiv.org/abs/2210.03629",
|
|
132
|
+
"title": "ReAct Paper"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"author": "AI Team"
|
|
136
|
+
},
|
|
137
|
+
"beats": [
|
|
138
|
+
{
|
|
139
|
+
"id": "intro-1",
|
|
140
|
+
"speaker": "Presenter",
|
|
141
|
+
"text": "Welcome to this presentation about LLM agents.",
|
|
142
|
+
"meta": {
|
|
143
|
+
"section": "opening",
|
|
144
|
+
"tags": ["intro"],
|
|
145
|
+
"keywords": ["LLM agents"],
|
|
146
|
+
"context": "This is the opening slide that sets the stage for the presentation.",
|
|
147
|
+
"expectedQuestions": ["What are LLM agents?"]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"outputProfiles": {}
|
|
152
|
+
}
|
|
153
|
+
```
|
package/README.md
CHANGED
|
@@ -136,6 +136,8 @@ 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 extend init Install Claude Code skills (/narrate, /extend)
|
|
140
|
+
mulmo-slide extend validate Validate ExtendedScript JSON against schema
|
|
139
141
|
```
|
|
140
142
|
|
|
141
143
|
The `convert` command auto-detects file format by extension (.pptx, .md, .key, .pdf).
|
|
@@ -555,6 +557,87 @@ mulmo-slide bundle presentation.pptx -f -g
|
|
|
555
557
|
- The LLM considers the overall presentation structure to generate contextual narration
|
|
556
558
|
- Output is in the specified language (`-l` option)
|
|
557
559
|
|
|
560
|
+
## Narrate: Source File to Narrated Video (Claude Code Skill)
|
|
561
|
+
|
|
562
|
+
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
|
+
|
|
564
|
+
### Setup
|
|
565
|
+
|
|
566
|
+
Install the Claude Code skills into your project:
|
|
567
|
+
|
|
568
|
+
```bash
|
|
569
|
+
# If installed globally
|
|
570
|
+
mulmo-slide extend init
|
|
571
|
+
|
|
572
|
+
# With npx
|
|
573
|
+
npx @mulmocast/slide extend init
|
|
574
|
+
|
|
575
|
+
# Development
|
|
576
|
+
yarn cli extend init
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
This copies the skill files to `.claude/skills/` in your project directory.
|
|
580
|
+
|
|
581
|
+
### Usage
|
|
582
|
+
|
|
583
|
+
In Claude Code, use the `/narrate` command with any supported source file:
|
|
584
|
+
|
|
585
|
+
```
|
|
586
|
+
/narrate your-paper.pdf
|
|
587
|
+
/narrate your-slides.pptx
|
|
588
|
+
/narrate your-slides.md
|
|
589
|
+
/narrate your-slides.key
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
The skill automatically:
|
|
593
|
+
1. Converts the source file to MulmoScript (slide images + text extraction)
|
|
594
|
+
2. Generates AI narration for each slide
|
|
595
|
+
3. Adds metadata (keywords, sections, context, FAQ)
|
|
596
|
+
4. Validates the output
|
|
597
|
+
5. Shows you the next steps
|
|
598
|
+
|
|
599
|
+
**Output:** `scripts/{basename}/extended_script.json`
|
|
600
|
+
|
|
601
|
+
### After `/narrate`: Next Steps
|
|
602
|
+
|
|
603
|
+
```bash
|
|
604
|
+
# Query the content interactively
|
|
605
|
+
npx mulmocast-preprocessor query scripts/{basename}/extended_script.json -i
|
|
606
|
+
|
|
607
|
+
# Generate a summary
|
|
608
|
+
npx mulmocast-preprocessor summarize scripts/{basename}/extended_script.json
|
|
609
|
+
|
|
610
|
+
# Generate a narrated video
|
|
611
|
+
npx mulmocast-preprocessor scripts/{basename}/extended_script.json -o scripts/{basename}/mulmo_script.json
|
|
612
|
+
npx mulmo movie scripts/{basename}/mulmo_script.json
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
### Validating ExtendedScript
|
|
616
|
+
|
|
617
|
+
Validate an ExtendedScript JSON file against the schema:
|
|
618
|
+
|
|
619
|
+
```bash
|
|
620
|
+
mulmo-slide extend validate scripts/simple_text/extended_script.json
|
|
621
|
+
|
|
622
|
+
# Development
|
|
623
|
+
yarn cli extend validate scripts/simple_text/extended_script.json
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
Outputs beat count, scriptMeta presence, meta coverage percentage, and sections found.
|
|
627
|
+
|
|
628
|
+
### Low-level: `/extend`
|
|
629
|
+
|
|
630
|
+
If you already have a MulmoScript and just want to add metadata:
|
|
631
|
+
|
|
632
|
+
```
|
|
633
|
+
/extend scripts/simple_text/mulmo_script.json
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
### Tutorials
|
|
637
|
+
|
|
638
|
+
- [English: PDF to Narrated Video](docs/tutorial-pdf-to-video-en.md)
|
|
639
|
+
- [Japanese: PDF からナレーション付き動画](docs/tutorial-pdf-to-video-ja.md)
|
|
640
|
+
|
|
558
641
|
## Output Structure
|
|
559
642
|
|
|
560
643
|
All tools generate MulmoScript output in `scripts/<basename>/` with a unified structure:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-init.d.ts","sourceRoot":"","sources":["../../src/actions/extend-init.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,aAAa,QAAO,IA2BhC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
const SKILL_DIRS = [".claude/skills/extend", ".claude/skills/narrate"];
|
|
5
|
+
const getPackageRoot = () => {
|
|
6
|
+
const currentDir = path.dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
// From lib/actions/ or src/actions/, go up two levels to package root
|
|
8
|
+
return path.resolve(currentDir, "..", "..");
|
|
9
|
+
};
|
|
10
|
+
const copyDirRecursive = (src, dest) => {
|
|
11
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
12
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
13
|
+
let count = 0;
|
|
14
|
+
entries.forEach((entry) => {
|
|
15
|
+
const srcPath = path.join(src, entry.name);
|
|
16
|
+
const destPath = path.join(dest, entry.name);
|
|
17
|
+
if (entry.isDirectory()) {
|
|
18
|
+
count += copyDirRecursive(srcPath, destPath);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
fs.copyFileSync(srcPath, destPath);
|
|
22
|
+
count++;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return count;
|
|
26
|
+
};
|
|
27
|
+
export const runExtendInit = () => {
|
|
28
|
+
const packageRoot = getPackageRoot();
|
|
29
|
+
let totalFiles = 0;
|
|
30
|
+
SKILL_DIRS.forEach((skillDir) => {
|
|
31
|
+
const srcSkillDir = path.join(packageRoot, skillDir);
|
|
32
|
+
if (!fs.existsSync(srcSkillDir)) {
|
|
33
|
+
console.warn(`Skill files not found at: ${srcSkillDir}, skipping`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const destSkillDir = path.join(process.cwd(), skillDir);
|
|
37
|
+
if (fs.existsSync(destSkillDir)) {
|
|
38
|
+
console.log(`Overwriting: ${destSkillDir}`);
|
|
39
|
+
}
|
|
40
|
+
const fileCount = copyDirRecursive(srcSkillDir, destSkillDir);
|
|
41
|
+
totalFiles += fileCount;
|
|
42
|
+
console.log(` ${skillDir}/ (${fileCount} files)`);
|
|
43
|
+
});
|
|
44
|
+
console.log(`\nInstalled skills (${totalFiles} files total)`);
|
|
45
|
+
console.log(`\nUsage in Claude Code:`);
|
|
46
|
+
console.log(` /narrate <source file> Full pipeline (recommended)`);
|
|
47
|
+
console.log(` /extend <mulmo_script.json> Add metadata to existing MulmoScript`);
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=extend-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-init.js","sourceRoot":"","sources":["../../src/actions/extend-init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;AAEvE,MAAM,cAAc,GAAG,GAAW,EAAE;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,sEAAsE;IACtE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE;IAC7D,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnC,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,6BAA6B,WAAW,YAAY,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC9D,UAAU,IAAI,SAAS,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,MAAM,SAAS,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,eAAe,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;AACvF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-validate.d.ts","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,IAmCpD,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { extendedScriptSchema } from "@mulmocast/extended-types";
|
|
4
|
+
const summarizeScript = (data) => {
|
|
5
|
+
const script = data;
|
|
6
|
+
const beats = script.beats;
|
|
7
|
+
const beatsWithMeta = beats.filter((b) => b.meta);
|
|
8
|
+
const sections = [
|
|
9
|
+
...new Set(beats.map((b) => b.meta?.section).filter(Boolean)),
|
|
10
|
+
];
|
|
11
|
+
return {
|
|
12
|
+
beatCount: beats.length,
|
|
13
|
+
hasScriptMeta: !!script.scriptMeta,
|
|
14
|
+
metaCoverage: beats.length > 0 ? Math.round((beatsWithMeta.length / beats.length) * 100) : 0,
|
|
15
|
+
sections,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
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
|
+
export const runExtendValidate = (filePath) => {
|
|
26
|
+
const resolvedPath = path.resolve(filePath);
|
|
27
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
28
|
+
console.error(`File not found: ${resolvedPath}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
let data;
|
|
32
|
+
try {
|
|
33
|
+
const content = fs.readFileSync(resolvedPath, "utf-8");
|
|
34
|
+
data = JSON.parse(content);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
38
|
+
console.error(`Failed to parse JSON: ${message}`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
const result = extendedScriptSchema.safeParse(data);
|
|
42
|
+
if (!result.success) {
|
|
43
|
+
console.error(`\n✗ Validation failed: ${resolvedPath}\n`);
|
|
44
|
+
console.error(formatZodError(result.error));
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
const summary = summarizeScript(data);
|
|
48
|
+
console.log(`\n✓ Valid ExtendedScript: ${resolvedPath}`);
|
|
49
|
+
console.log(` Beats: ${summary.beatCount}`);
|
|
50
|
+
console.log(` ScriptMeta: ${summary.hasScriptMeta ? "yes" : "no"}`);
|
|
51
|
+
console.log(` Meta coverage: ${summary.metaCoverage}%`);
|
|
52
|
+
if (summary.sections.length > 0) {
|
|
53
|
+
console.log(` Sections: ${summary.sections.join(", ")}`);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=extend-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-validate.js","sourceRoot":"","sources":["../../src/actions/extend-validate.ts"],"names":[],"mappings":"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"}
|
package/lib/cli.js
CHANGED
|
@@ -405,6 +405,24 @@ yargs(hideBin(process.argv))
|
|
|
405
405
|
}, async (argv) => {
|
|
406
406
|
await runUpload(argv.basename);
|
|
407
407
|
})
|
|
408
|
+
.command("extend", "Manage /extend Claude Code skill", (yargs) => {
|
|
409
|
+
return yargs
|
|
410
|
+
.command("init", "Install /extend skill into current project (.claude/skills/extend/)", () => { }, async () => {
|
|
411
|
+
const { runExtendInit } = await import("./actions/extend-init.js");
|
|
412
|
+
runExtendInit();
|
|
413
|
+
})
|
|
414
|
+
.command("validate <file>", "Validate an ExtendedScript JSON file against the schema", (yargs) => {
|
|
415
|
+
return yargs.positional("file", {
|
|
416
|
+
describe: "ExtendedScript JSON file to validate",
|
|
417
|
+
type: "string",
|
|
418
|
+
demandOption: true,
|
|
419
|
+
});
|
|
420
|
+
}, async (argv) => {
|
|
421
|
+
const { runExtendValidate } = await import("./actions/extend-validate.js");
|
|
422
|
+
runExtendValidate(argv.file);
|
|
423
|
+
})
|
|
424
|
+
.demandCommand(1, "Use 'mulmo-slide extend init' or 'mulmo-slide extend validate <file>'");
|
|
425
|
+
}, () => { })
|
|
408
426
|
.command("preview [port]", "Start MulmoViewer preview server", (yargs) => {
|
|
409
427
|
return yargs.positional("port", {
|
|
410
428
|
describe: "Port number for the server",
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/convert/pdf.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface ConvertPdfOptions {
|
|
|
8
8
|
}
|
|
9
9
|
export interface ConvertPdfResult {
|
|
10
10
|
mulmoScriptPath: string;
|
|
11
|
+
extractedTextsPath: string | null;
|
|
11
12
|
slideCount: number;
|
|
12
13
|
}
|
|
13
14
|
export declare function convertPdf(options: ConvertPdfOptions): Promise<ConvertPdfResult>;
|
package/lib/convert/pdf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":";AAMA,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAS/E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":";AAMA,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAS/E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuEtF"}
|
package/lib/convert/pdf.js
CHANGED
|
@@ -52,8 +52,17 @@ export async function convertPdf(options) {
|
|
|
52
52
|
// Write MulmoScript to JSON file
|
|
53
53
|
const jsonPath = path.join(outputDir, "mulmo_script.json");
|
|
54
54
|
writeMulmoScript(mulmoScript, jsonPath);
|
|
55
|
+
// Save extracted texts for later use (e.g., /extend skill)
|
|
56
|
+
const hasExtractedText = extractedTexts.some((t) => t && t.length > 0);
|
|
57
|
+
let extractedTextsPath = null;
|
|
58
|
+
if (hasExtractedText) {
|
|
59
|
+
extractedTextsPath = path.join(outputDir, "extracted_texts.json");
|
|
60
|
+
fs.writeFileSync(extractedTextsPath, JSON.stringify(extractedTexts, null, 2));
|
|
61
|
+
console.log(`Saved extracted texts: ${extractedTextsPath}`);
|
|
62
|
+
}
|
|
55
63
|
return {
|
|
56
64
|
mulmoScriptPath: jsonPath,
|
|
65
|
+
extractedTextsPath,
|
|
57
66
|
slideCount,
|
|
58
67
|
};
|
|
59
68
|
}
|
package/lib/convert/pdf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/convert/pdf.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mulmocast/slide",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Convert presentations (Keynote, PowerPoint, PDF, Marp) and videos to MulmoScript format",
|
|
5
5
|
"homepage": "https://github.com/receptron/MulmoCast-Slides#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
32
|
"lib",
|
|
33
|
-
"tools"
|
|
33
|
+
"tools",
|
|
34
|
+
".claude/skills"
|
|
34
35
|
],
|
|
35
36
|
"scripts": {
|
|
36
37
|
"build": "tsc",
|
|
@@ -60,6 +61,7 @@
|
|
|
60
61
|
},
|
|
61
62
|
"dependencies": {
|
|
62
63
|
"@marp-team/marp-cli": "^4.0.0",
|
|
64
|
+
"@mulmocast/extended-types": "^0.2.0",
|
|
63
65
|
"dotenv": "^17.2.4",
|
|
64
66
|
"franc": "^6.2.0",
|
|
65
67
|
"mulmocast": "^2.1.35",
|