@mulmocast/slide 0.5.1 → 0.6.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/README.md +170 -10
- package/lib/actions/bundle.d.ts.map +1 -1
- package/lib/actions/bundle.js +10 -0
- package/lib/actions/bundle.js.map +1 -1
- package/lib/actions/common.d.ts +1 -0
- package/lib/actions/common.d.ts.map +1 -1
- package/lib/actions/common.js +9 -1
- package/lib/actions/common.js.map +1 -1
- package/lib/actions/extend-merge.d.ts +2 -0
- package/lib/actions/extend-merge.d.ts.map +1 -0
- package/lib/actions/extend-merge.js +22 -0
- package/lib/actions/extend-merge.js.map +1 -0
- package/lib/actions/narrate.d.ts +1 -1
- package/lib/actions/narrate.d.ts.map +1 -1
- package/lib/actions/narrate.js +6 -8
- package/lib/actions/narrate.js.map +1 -1
- package/lib/actions/pipeline.d.ts +13 -0
- package/lib/actions/pipeline.d.ts.map +1 -0
- package/lib/actions/pipeline.js +78 -0
- package/lib/actions/pipeline.js.map +1 -0
- package/lib/cli/action-commands.d.ts +3 -0
- package/lib/cli/action-commands.d.ts.map +1 -0
- package/lib/cli/action-commands.js +144 -0
- package/lib/cli/action-commands.js.map +1 -0
- package/lib/cli/convert-commands.d.ts +3 -0
- package/lib/cli/convert-commands.d.ts.map +1 -0
- package/lib/cli/convert-commands.js +190 -0
- package/lib/cli/convert-commands.js.map +1 -0
- package/lib/cli/extend-commands.d.ts +3 -0
- package/lib/cli/extend-commands.d.ts.map +1 -0
- package/lib/cli/extend-commands.js +41 -0
- package/lib/cli/extend-commands.js.map +1 -0
- package/lib/cli/index.d.ts +3 -0
- package/lib/cli/index.d.ts.map +1 -0
- package/lib/cli/index.js +31 -0
- package/lib/cli/index.js.map +1 -0
- package/lib/cli/misc-commands.d.ts +3 -0
- package/lib/cli/misc-commands.d.ts.map +1 -0
- package/lib/cli/misc-commands.js +86 -0
- package/lib/cli/misc-commands.js.map +1 -0
- package/lib/cli/options.d.ts +194 -0
- package/lib/cli/options.d.ts.map +1 -0
- package/lib/cli/options.js +125 -0
- package/lib/cli/options.js.map +1 -0
- package/lib/cli.js +80 -23
- package/lib/cli.js.map +1 -1
- package/lib/convert/movie.d.ts.map +1 -1
- package/lib/convert/movie.js +15 -3
- package/lib/convert/movie.js.map +1 -1
- package/lib/utils/extended-bundle-merge.d.ts +6 -0
- package/lib/utils/extended-bundle-merge.d.ts.map +1 -0
- package/lib/utils/extended-bundle-merge.js +71 -0
- package/lib/utils/extended-bundle-merge.js.map +1 -0
- package/lib/vue/assets/index-BZu3TPGe.js +115 -0
- package/lib/vue/assets/index-DyeW2SiG.css +1 -0
- package/lib/vue/index.html +13 -0
- package/lib/vue/openai-chat.d.ts +12 -0
- package/lib/vue/openai-chat.d.ts.map +1 -0
- package/lib/vue/openai-chat.js +85 -0
- package/lib/vue/openai-chat.js.map +1 -0
- package/package.json +27 -24
package/README.md
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
[](https://badge.fury.io/js/%40mulmocast%2Fslide)
|
|
2
2
|
# MulmoCast-Slides
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
Convert presentations (PPTX, PDF, Markdown, Keynote) and videos into **narrated movies** or **interactive web viewer bundles**.
|
|
5
|
+
|
|
6
|
+
| Input | Output | Command |
|
|
7
|
+
|-------|--------|---------|
|
|
8
|
+
| PPTX / PDF / Markdown / Keynote | Narrated video (.mp4) | `mulmo-slide movie <file> -g -l ja` |
|
|
9
|
+
| PPTX / PDF / Markdown / Keynote | Web viewer bundle | `mulmo-slide bundle <file> -g -l ja` |
|
|
10
|
+
| Video (.mp4, .webm, etc.) | Transcribed & translated bundle | `mulmo-slide transcribe <file>` |
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Generate a narrated video from slides
|
|
14
|
+
mulmo-slide movie presentation.pptx -g -l ja
|
|
15
|
+
|
|
16
|
+
# Generate a web viewer bundle and preview in browser
|
|
17
|
+
mulmo-slide bundle presentation.pptx -g -l ja
|
|
18
|
+
mulmo-slide preview
|
|
19
|
+
```
|
|
5
20
|
|
|
6
21
|
## Overview
|
|
7
22
|
|
|
@@ -135,6 +150,7 @@ Commands:
|
|
|
135
150
|
mulmo-slide pptx <file> Convert PowerPoint to MulmoScript
|
|
136
151
|
mulmo-slide pdf <file> Convert PDF to MulmoScript
|
|
137
152
|
mulmo-slide keynote <file> Convert Keynote to MulmoScript (macOS only)
|
|
153
|
+
mulmo-slide transcribe <file> Transcribe video to MulmoScript with translations and TTS
|
|
138
154
|
mulmo-slide movie <file> Generate movie from presentation
|
|
139
155
|
mulmo-slide bundle <file> Generate MulmoViewer bundle from presentation
|
|
140
156
|
mulmo-slide narrate <file> Generate narrated ExtendedMulmoScript (full pipeline)
|
|
@@ -145,7 +161,7 @@ Commands:
|
|
|
145
161
|
mulmo-slide assemble-extended <file> Assemble ExtendedMulmoScript from presentation plan
|
|
146
162
|
```
|
|
147
163
|
|
|
148
|
-
The `convert` command auto-detects file format by extension (.pptx, .md, .key, .pdf).
|
|
164
|
+
The `convert` command auto-detects file format by extension (.pptx, .md, .key, .pdf, .mp4, .mov, .mkv, .webm, .avi).
|
|
149
165
|
|
|
150
166
|
For development, you can also use yarn commands:
|
|
151
167
|
|
|
@@ -513,6 +529,27 @@ This command:
|
|
|
513
529
|
**Output:**
|
|
514
530
|
- `output/<basename>/` - Bundle files for MulmoViewer
|
|
515
531
|
|
|
532
|
+
## Previewing Bundles (Web Viewer)
|
|
533
|
+
|
|
534
|
+
Preview generated bundles in the browser using the built-in Vue 3 web viewer.
|
|
535
|
+
|
|
536
|
+
```bash
|
|
537
|
+
# Production preview (npm global install)
|
|
538
|
+
mulmo-slide preview
|
|
539
|
+
mulmo-slide preview 8080 # custom port
|
|
540
|
+
|
|
541
|
+
# Development mode (hot reload)
|
|
542
|
+
yarn dev
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
Opens http://localhost:3000 and automatically discovers bundles from the `output/` directory.
|
|
546
|
+
|
|
547
|
+
**Features:**
|
|
548
|
+
- Slide display with narration playback
|
|
549
|
+
- Audio / text language switching (multilingual support)
|
|
550
|
+
- Recording mode: record via microphone → Whisper transcription → edit text → save
|
|
551
|
+
- AI Q&A chat: ask questions about the presentation content (GPT-4o-mini, requires `VITE_OPENAI_API_KEY` in `.env`)
|
|
552
|
+
|
|
516
553
|
## Language Setting
|
|
517
554
|
|
|
518
555
|
All converters support setting the language for the generated MulmoScript.
|
|
@@ -730,16 +767,139 @@ If you already have a MulmoScript and just want to add metadata:
|
|
|
730
767
|
|
|
731
768
|
## Output Structure
|
|
732
769
|
|
|
733
|
-
|
|
770
|
+
This tool generates files in two directories: `scripts/` for intermediate data (MulmoScript, metadata) and `output/` for final deliverables (movies, bundles). The `<basename>` is derived from the input filename without extension (e.g., `presentation.pptx` → `presentation`).
|
|
771
|
+
|
|
772
|
+
### `scripts/<basename>/` — Intermediate Files
|
|
773
|
+
|
|
774
|
+
Generated by conversion commands (`convert`, `marp`, `pptx`, `pdf`, `keynote`, `markdown`, `transcribe`) and narration/metadata commands (`narrate`, `extend`, `parse-md`, `assemble-extended`).
|
|
775
|
+
|
|
776
|
+
#### Conversion Output
|
|
777
|
+
|
|
778
|
+
| File | Generated by | Description |
|
|
779
|
+
|------|-------------|-------------|
|
|
780
|
+
| `<basename>.json` | All converters | **MulmoScript** — the core JSON format pairing slides with narration text |
|
|
781
|
+
| `<basename>-markdown.json` | `marp` only | MulmoScript using Markdown content instead of PNG images |
|
|
782
|
+
| `images/` | `marp`, `pptx`, `pdf`, `keynote` | Slide images as PNG files |
|
|
783
|
+
| `images/<basename>-0.png`, `-1.png`, ... | `pptx`, `pdf`, `keynote` | One PNG per slide/page (zero-indexed) |
|
|
784
|
+
| `images/images.001.png`, `.002.png`, ... | `marp` | One PNG per slide (one-indexed, Marp naming convention) |
|
|
785
|
+
| `<basename>.pdf` | `pptx` | Intermediate PDF created by LibreOffice during PPTX→PNG conversion |
|
|
786
|
+
| `extracted_texts.json` | `pdf` | Array of raw text extracted from each PDF page (used by `/extend` and `narrate` for metadata) |
|
|
787
|
+
|
|
788
|
+
#### Video Transcription Output (`transcribe` / `convert` with video files)
|
|
789
|
+
|
|
790
|
+
The video transcription pipeline splits a video by silence detection, transcribes each segment with OpenAI Whisper, and optionally generates a multi-language bundle.
|
|
791
|
+
|
|
792
|
+
| File | Description |
|
|
793
|
+
|------|-------------|
|
|
794
|
+
| `<basename>.json` | MulmoScript with `type: "movie"` beats referencing video segments |
|
|
795
|
+
| `1.mp4`, `2.mp4`, ... | Split video segments (one per detected segment) |
|
|
796
|
+
| `1.mp3`, `2.mp3`, ... | Extracted audio from each video segment (used for Whisper transcription) |
|
|
797
|
+
| `1.jpg`, `2.jpg`, ... | Thumbnail images from each video segment (first frame) |
|
|
798
|
+
|
|
799
|
+
When bundle generation is enabled (default), additional files are created in `output/<basename>/<basename>/`:
|
|
800
|
+
|
|
801
|
+
| File | Description |
|
|
802
|
+
|------|-------------|
|
|
803
|
+
| `mulmo_view.json` | Viewer data with multi-language text and audio references |
|
|
804
|
+
| `1.mp4`, `2.mp4`, ... | Video segments (copied from scripts) |
|
|
805
|
+
| `1.mp3`, `2.mp3`, ... | Source language audio (copied from scripts) |
|
|
806
|
+
| `1.jpg`, `2.jpg`, ... | Thumbnails (copied from scripts) |
|
|
807
|
+
| `<N>_<lang>.mp3` | TTS audio for translated text (e.g., `1_ja.mp3`, `2_ja.mp3`) |
|
|
808
|
+
|
|
809
|
+
#### Narration & Metadata Output
|
|
810
|
+
|
|
811
|
+
| File | Generated by | Description |
|
|
812
|
+
|------|-------------|-------------|
|
|
813
|
+
| `extended_script.json` | `narrate`, `extend scaffold`, `assemble-extended` | **ExtendedMulmoScript** — MulmoScript enriched with `scriptMeta`, `beats[].meta`, output profiles, and variants |
|
|
814
|
+
| `analysis.json` | `narrate` (LLM mode) | LLM analysis of slide content used during narration generation |
|
|
734
815
|
|
|
816
|
+
#### Markdown-to-ExtendedMulmoScript Pipeline (`parse-md` → `/md-to-mulmo` → `assemble-extended`)
|
|
817
|
+
|
|
818
|
+
| File | Generated by | Description |
|
|
819
|
+
|------|-------------|-------------|
|
|
820
|
+
| `parsed_structure.json` | `parse-md` | Structured representation of the markdown document (sections, elements, hierarchy) |
|
|
821
|
+
| `extended-script.schema.json` | `parse-md` | JSON Schema for ExtendedMulmoScript (generated from Zod, for LLM reference) |
|
|
822
|
+
| `presentation-plan.schema.json` | `parse-md` | JSON Schema for the intermediate presentation plan format |
|
|
823
|
+
| `presentation_plan.json` | `/md-to-mulmo` skill (LLM) | Presentation plan with beat allocation, narration, and core/optional flags |
|
|
824
|
+
|
|
825
|
+
### `output/<basename>/` — Final Deliverables
|
|
826
|
+
|
|
827
|
+
Generated by `movie`, `bundle`, and `publish` commands.
|
|
828
|
+
|
|
829
|
+
#### Top-Level Files (generated by `mulmocast` library)
|
|
830
|
+
|
|
831
|
+
| File | Generated by | Description |
|
|
832
|
+
|------|-------------|-------------|
|
|
833
|
+
| `<basename>_<lang>.mp4` | `movie` | Final narrated video (e.g., `sample_ja.mp4`) |
|
|
834
|
+
| `<basename>_<lang>.mp3` | `movie`, `bundle` | Concatenated audio for the entire presentation in one language |
|
|
835
|
+
| `<basename>_studio.json` | `movie`, `bundle` | Studio data (timing, beat metadata) used by mulmocast internally |
|
|
836
|
+
| `<basename>_lang.json` | `bundle` | Multi-language translation data for the viewer |
|
|
837
|
+
|
|
838
|
+
#### `output/<basename>/<basename>/` — Bundle Directory
|
|
839
|
+
|
|
840
|
+
Contains all files needed for MulmoViewer. Generated by `bundle` (and used by `upload`/`publish`).
|
|
841
|
+
|
|
842
|
+
| File / Directory | Description |
|
|
843
|
+
|-----------------|-------------|
|
|
844
|
+
| `mulmo_view.json` | **Viewer data** — beats with audio/image references, metadata, output profiles. This is the main file the viewer reads |
|
|
845
|
+
| `images.001.png`, `.002.png`, ... | Slide images for the viewer |
|
|
846
|
+
| `beat-1.png`, `beat-2.png`, ... | Rendered slide images (for markdown-based presentations) |
|
|
847
|
+
| `mulmo_credit.png` | MulmoCast credit image (auto-generated) |
|
|
848
|
+
| `<basename>_<hash>_<lang>.mp3` | Per-beat audio files (hash identifies the text content, lang is `ja`/`en`/etc.) |
|
|
849
|
+
| `silent300.mp3` | Short silent audio clip used for padding between beats |
|
|
850
|
+
|
|
851
|
+
#### `output/<basename>/audio/<basename>/` and `output/<basename>/images/<basename>/`
|
|
852
|
+
|
|
853
|
+
Working directories used by `mulmocast` during generation. Contents are the same audio and image files that end up in the bundle directory.
|
|
854
|
+
|
|
855
|
+
### `extend merge` — Updates Existing Bundle
|
|
856
|
+
|
|
857
|
+
The `extend merge` command reads `scripts/<basename>/extended_script.json` and merges its metadata (beat IDs, `meta`, `scriptMeta`, `outputProfiles`, `variants`) into the existing `output/<basename>/<basename>/mulmo_view.json`. No new files are created.
|
|
858
|
+
|
|
859
|
+
### Example: Presentation Pipeline
|
|
860
|
+
|
|
861
|
+
```bash
|
|
862
|
+
# 1. Convert PPTX → MulmoScript
|
|
863
|
+
mulmo-slide pptx presentation.pptx -g -l ja
|
|
864
|
+
|
|
865
|
+
# Files created:
|
|
866
|
+
# scripts/presentation/presentation.json (MulmoScript)
|
|
867
|
+
# scripts/presentation/images/ (slide PNGs)
|
|
868
|
+
# scripts/presentation/presentation.pdf (intermediate)
|
|
869
|
+
|
|
870
|
+
# 2. Generate ExtendedMulmoScript with narration
|
|
871
|
+
mulmo-slide narrate presentation.pptx --scaffold-only
|
|
872
|
+
|
|
873
|
+
# Files created:
|
|
874
|
+
# scripts/presentation/extended_script.json (ExtendedMulmoScript)
|
|
875
|
+
|
|
876
|
+
# 3. Generate bundle for MulmoViewer
|
|
877
|
+
mulmo-slide bundle presentation.pptx -g -l ja
|
|
878
|
+
|
|
879
|
+
# Files created:
|
|
880
|
+
# output/presentation/presentation/mulmo_view.json
|
|
881
|
+
# output/presentation/presentation/*.mp3 (per-beat audio)
|
|
882
|
+
# output/presentation/presentation/*.png (slide images)
|
|
883
|
+
# output/presentation/presentation_ja.mp3 (concatenated audio)
|
|
884
|
+
# output/presentation/presentation_studio.json
|
|
735
885
|
```
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
886
|
+
|
|
887
|
+
### Example: Video Transcription Pipeline
|
|
888
|
+
|
|
889
|
+
```bash
|
|
890
|
+
# Transcribe video with Japanese translation
|
|
891
|
+
mulmo-slide transcribe talk.mp4 --target-langs=ja
|
|
892
|
+
|
|
893
|
+
# Files created in scripts/talk/:
|
|
894
|
+
# talk.json (MulmoScript with movie beats)
|
|
895
|
+
# 1.mp4, 2.mp4, ... (split video segments)
|
|
896
|
+
# 1.mp3, 2.mp3, ... (extracted audio per segment)
|
|
897
|
+
# 1.jpg, 2.jpg, ... (thumbnail per segment)
|
|
898
|
+
#
|
|
899
|
+
# Files created in output/talk/talk/ (bundle):
|
|
900
|
+
# mulmo_view.json (viewer data with ja/en text + audio)
|
|
901
|
+
# 1.mp4, 2.mp4, ... (video segments)
|
|
902
|
+
# 1_ja.mp3, 2_ja.mp3, ... (Japanese TTS audio)
|
|
743
903
|
```
|
|
744
904
|
|
|
745
905
|
## License
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/actions/bundle.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/actions/bundle.ts"],"names":[],"mappings":";AASA,wBAAsB,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC9F"}
|
package/lib/actions/bundle.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
|
+
import * as path from "path";
|
|
2
3
|
import { audio, images, translate, mulmoViewerBundle, bundleTargetLang } from "mulmocast";
|
|
3
4
|
import yargs from "yargs";
|
|
4
5
|
import { hideBin } from "yargs/helpers";
|
|
5
6
|
import { initializeContext, runAction } from "./common.js";
|
|
7
|
+
import { mergeExtendedMetadata } from "../utils/extended-bundle-merge.js";
|
|
6
8
|
export async function runMulmoBundle(mulmoScriptPath, outputDir) {
|
|
7
9
|
console.log(`\nGenerating bundle with mulmo...`);
|
|
8
10
|
console.log(` Input: ${mulmoScriptPath}`);
|
|
@@ -21,6 +23,14 @@ export async function runMulmoBundle(mulmoScriptPath, outputDir) {
|
|
|
21
23
|
current.context = await images(current.context);
|
|
22
24
|
console.log(" Creating bundle...");
|
|
23
25
|
await mulmoViewerBundle(current.context, { skipZip: true });
|
|
26
|
+
const scriptsDir = path.dirname(path.resolve(mulmoScriptPath));
|
|
27
|
+
const bundleSubDir = path.resolve(outputDir, current.context.studio.filename);
|
|
28
|
+
try {
|
|
29
|
+
mergeExtendedMetadata(bundleSubDir, scriptsDir);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
console.warn(" Warning: failed to merge extended metadata:", e.message);
|
|
33
|
+
}
|
|
24
34
|
}
|
|
25
35
|
async function main() {
|
|
26
36
|
const argv = await yargs(hideBin(process.argv))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/actions/bundle.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/actions/bundle.ts"],"names":[],"mappings":"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"}
|
package/lib/actions/common.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare function getPackageRoot(): string;
|
|
|
4
4
|
export declare function getKeynoteScriptPath(): string;
|
|
5
5
|
export type FileType = "pptx" | "marp" | "keynote" | "pdf" | "movie";
|
|
6
6
|
export declare function detectFileType(filePath: string): FileType;
|
|
7
|
+
export declare function sanitizeBasename(name: string): string;
|
|
7
8
|
export declare function getBasename(filePath: string): string;
|
|
8
9
|
export interface ConvertOptions {
|
|
9
10
|
generateText?: boolean;
|
|
@@ -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,
|
|
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,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIpD;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
|
@@ -37,9 +37,17 @@ export function detectFileType(filePath) {
|
|
|
37
37
|
throw new Error(`Unsupported file type: ${ext}`);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
export function sanitizeBasename(name) {
|
|
41
|
+
return name
|
|
42
|
+
.replace(/\s+/g, "-")
|
|
43
|
+
.replace(/[^\w\-.]/g, "")
|
|
44
|
+
.replace(/-+/g, "-")
|
|
45
|
+
.replace(/^-+|-+$/g, "");
|
|
46
|
+
}
|
|
40
47
|
export function getBasename(filePath) {
|
|
41
48
|
const ext = path.extname(filePath);
|
|
42
|
-
|
|
49
|
+
const raw = path.basename(filePath, ext);
|
|
50
|
+
return sanitizeBasename(raw);
|
|
43
51
|
}
|
|
44
52
|
export async function convertToMulmoScript(filePath, fileType, options = {}) {
|
|
45
53
|
const absolutePath = path.resolve(filePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/actions/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAItE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,4EAA4E;AAC5E,MAAM,UAAU,cAAc;IAC5B,oEAAoE;IACpE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AACzE,CAAC;AAID,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3E,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,MAAM,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf;YACE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/actions/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-merge.d.ts","sourceRoot":"","sources":["../../src/actions/extend-merge.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAsBrD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { mergeExtendedMetadata } from "../utils/extended-bundle-merge.js";
|
|
4
|
+
export function runExtendMerge(basename) {
|
|
5
|
+
const scriptsDir = path.join("scripts", basename);
|
|
6
|
+
const extendedPath = path.join(scriptsDir, "extended_script.json");
|
|
7
|
+
if (!fs.existsSync(extendedPath)) {
|
|
8
|
+
console.error(`✗ Not found: ${extendedPath}`);
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
const bundleDir = path.join("output", basename, basename);
|
|
12
|
+
const viewJsonPath = path.join(bundleDir, "mulmo_view.json");
|
|
13
|
+
if (!fs.existsSync(viewJsonPath)) {
|
|
14
|
+
console.error(`✗ Not found: ${viewJsonPath}`);
|
|
15
|
+
console.error(` Run 'mulmo-slide bundle' first to generate the bundle.`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
mergeExtendedMetadata(bundleDir, scriptsDir);
|
|
19
|
+
console.log(`✓ Merged extended metadata into ${viewJsonPath}`);
|
|
20
|
+
console.log(` Source: ${extendedPath}`);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=extend-merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-merge.js","sourceRoot":"","sources":["../../src/actions/extend-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAEnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,EAAE,CAAC,CAAC;AAC3C,CAAC"}
|
package/lib/actions/narrate.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export interface NarrateOptions {
|
|
|
6
6
|
separator?: string;
|
|
7
7
|
mermaid?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export declare const runNarrate: (filePath: string, options: NarrateOptions) => Promise<
|
|
9
|
+
export declare const runNarrate: (filePath: string, options: NarrateOptions) => Promise<string>;
|
|
10
10
|
//# sourceMappingURL=narrate.d.ts.map
|
|
@@ -1 +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;AAsGD,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,
|
|
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;AAsGD,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,MAAM,CA4F1F,CAAC"}
|
package/lib/actions/narrate.js
CHANGED
|
@@ -82,8 +82,7 @@ const applyLLMResults = (scaffolded, llmResult) => {
|
|
|
82
82
|
export const runNarrate = async (filePath, options) => {
|
|
83
83
|
const inputPath = path.resolve(filePath);
|
|
84
84
|
if (!fs.existsSync(inputPath)) {
|
|
85
|
-
|
|
86
|
-
process.exit(1);
|
|
85
|
+
throw new Error(`File not found: ${inputPath}`);
|
|
87
86
|
}
|
|
88
87
|
const basename = getBasename(inputPath);
|
|
89
88
|
const mulmoScriptPath = getMulmoScriptPath(basename);
|
|
@@ -96,8 +95,7 @@ export const runNarrate = async (filePath, options) => {
|
|
|
96
95
|
console.log(`\nConverting ${path.basename(inputPath)} to MulmoScript...`);
|
|
97
96
|
await convertSourceToMulmoScript(inputPath, options);
|
|
98
97
|
if (!fs.existsSync(mulmoScriptPath)) {
|
|
99
|
-
|
|
100
|
-
process.exit(1);
|
|
98
|
+
throw new Error(`MulmoScript not generated: ${mulmoScriptPath}`);
|
|
101
99
|
}
|
|
102
100
|
console.log(`✓ MulmoScript generated: ${mulmoScriptPath}`);
|
|
103
101
|
}
|
|
@@ -113,7 +111,7 @@ export const runNarrate = async (filePath, options) => {
|
|
|
113
111
|
console.log(`\n✓ Scaffolded ExtendedMulmoScript: ${outputPath}`);
|
|
114
112
|
console.log(` Beats: ${scaffolded.beats.length}`);
|
|
115
113
|
console.log(`\nNext: Use Claude Code to analyze and add narration/metadata`);
|
|
116
|
-
return;
|
|
114
|
+
return outputPath;
|
|
117
115
|
}
|
|
118
116
|
// Step 4: LLM generation
|
|
119
117
|
console.log(`\nGenerating narration and metadata for ${scaffolded.beats.length} beats...`);
|
|
@@ -155,8 +153,8 @@ export const runNarrate = async (filePath, options) => {
|
|
|
155
153
|
console.log(`\nNext steps:`);
|
|
156
154
|
console.log(` # Validate`);
|
|
157
155
|
console.log(` yarn cli extend validate ${outputPath}`);
|
|
158
|
-
console.log(` # Generate
|
|
159
|
-
console.log(`
|
|
160
|
-
|
|
156
|
+
console.log(` # Generate movie`);
|
|
157
|
+
console.log(` mulmo-slide movie ${filePath} -g`);
|
|
158
|
+
return outputPath;
|
|
161
159
|
};
|
|
162
160
|
//# sourceMappingURL=narrate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narrate.js","sourceRoot":"","sources":["../../src/actions/narrate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"narrate.js","sourceRoot":"","sources":["../../src/actions/narrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SupportedLang } from "../utils/lang.js";
|
|
2
|
+
export interface PipelineOptions {
|
|
3
|
+
lang?: SupportedLang;
|
|
4
|
+
force?: boolean;
|
|
5
|
+
generateText?: boolean;
|
|
6
|
+
profile?: string;
|
|
7
|
+
section?: string;
|
|
8
|
+
tags?: string[];
|
|
9
|
+
separator?: string;
|
|
10
|
+
mermaid?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function ensureMulmoScript(inputPath: string, options?: PipelineOptions): Promise<string>;
|
|
13
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/actions/pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUtD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkCD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAkDjB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { processScript } from "@mulmocast/script-utils";
|
|
4
|
+
import { detectFileType, getBasename, convertToMulmoScript, getMulmoScriptPath, readJsonFile, writeJsonFile, } from "./common.js";
|
|
5
|
+
import { runNarrate } from "./narrate.js";
|
|
6
|
+
const getExtendedScriptPath = (basename) => {
|
|
7
|
+
return path.join("scripts", basename, "extended_script.json");
|
|
8
|
+
};
|
|
9
|
+
const processExtendedScript = (extendedScriptPath, mulmoScriptPath, options) => {
|
|
10
|
+
const extendedScript = readJsonFile(extendedScriptPath);
|
|
11
|
+
const mulmoScript = processScript(extendedScript, {
|
|
12
|
+
profile: options.profile,
|
|
13
|
+
section: options.section,
|
|
14
|
+
tags: options.tags,
|
|
15
|
+
});
|
|
16
|
+
writeJsonFile(mulmoScriptPath, mulmoScript);
|
|
17
|
+
console.log(`✓ Processed ExtendedMulmoScript → MulmoScript: ${mulmoScriptPath}`);
|
|
18
|
+
if (options.profile) {
|
|
19
|
+
console.log(` Profile: ${options.profile}`);
|
|
20
|
+
}
|
|
21
|
+
if (options.section) {
|
|
22
|
+
console.log(` Section: ${options.section}`);
|
|
23
|
+
}
|
|
24
|
+
if (options.tags && options.tags.length > 0) {
|
|
25
|
+
console.log(` Tags: ${options.tags.join(", ")}`);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const hasProcessOptions = (options) => {
|
|
29
|
+
return !!(options.profile || options.section || (options.tags && options.tags.length > 0));
|
|
30
|
+
};
|
|
31
|
+
export async function ensureMulmoScript(inputPath, options = {}) {
|
|
32
|
+
const absolutePath = path.resolve(inputPath);
|
|
33
|
+
if (!fs.existsSync(absolutePath)) {
|
|
34
|
+
throw new Error(`File not found: ${absolutePath}`);
|
|
35
|
+
}
|
|
36
|
+
const basename = getBasename(absolutePath);
|
|
37
|
+
const mulmoScriptPath = getMulmoScriptPath(basename);
|
|
38
|
+
const extendedScriptPath = getExtendedScriptPath(basename);
|
|
39
|
+
if (options.generateText) {
|
|
40
|
+
// LLM narration pipeline: narrate → processScript → MulmoScript
|
|
41
|
+
if (!options.force && fs.existsSync(extendedScriptPath)) {
|
|
42
|
+
console.log(`\n✓ Using existing ExtendedMulmoScript: ${extendedScriptPath}`);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
await runNarrate(inputPath, {
|
|
46
|
+
lang: options.lang,
|
|
47
|
+
force: options.force,
|
|
48
|
+
separator: options.separator,
|
|
49
|
+
mermaid: options.mermaid,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
// Process ExtendedMulmoScript → MulmoScript
|
|
53
|
+
processExtendedScript(extendedScriptPath, mulmoScriptPath, options);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Simple conversion: source → MulmoScript
|
|
57
|
+
if (!options.force && fs.existsSync(mulmoScriptPath)) {
|
|
58
|
+
console.log(`\n✓ Using existing MulmoScript: ${mulmoScriptPath}`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const fileType = detectFileType(absolutePath);
|
|
62
|
+
await convertToMulmoScript(absolutePath, fileType, {
|
|
63
|
+
generateText: false,
|
|
64
|
+
lang: options.lang,
|
|
65
|
+
});
|
|
66
|
+
if (!fs.existsSync(mulmoScriptPath)) {
|
|
67
|
+
throw new Error(`MulmoScript not generated: ${mulmoScriptPath}`);
|
|
68
|
+
}
|
|
69
|
+
console.log(`\n✓ MulmoScript generated: ${mulmoScriptPath}`);
|
|
70
|
+
}
|
|
71
|
+
// Apply profile/section/tags if extended_script.json exists and options specified
|
|
72
|
+
if (hasProcessOptions(options) && fs.existsSync(extendedScriptPath)) {
|
|
73
|
+
processExtendedScript(extendedScriptPath, mulmoScriptPath, options);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return mulmoScriptPath;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/actions/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-commands.d.ts","sourceRoot":"","sources":["../../src/cli/action-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AA4ElC,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA4GxD"}
|