demofly 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/commands/auth/login.js +1 -1
  2. package/dist/commands/auth/login.js.map +1 -1
  3. package/dist/commands/demos/delete.d.ts +3 -0
  4. package/dist/commands/demos/delete.d.ts.map +1 -0
  5. package/dist/commands/demos/delete.js +41 -0
  6. package/dist/commands/demos/delete.js.map +1 -0
  7. package/dist/commands/demos/get.d.ts +3 -0
  8. package/dist/commands/demos/get.d.ts.map +1 -0
  9. package/dist/commands/demos/get.js +30 -0
  10. package/dist/commands/demos/get.js.map +1 -0
  11. package/dist/commands/demos/index.d.ts +3 -0
  12. package/dist/commands/demos/index.d.ts.map +1 -0
  13. package/dist/commands/demos/index.js +17 -0
  14. package/dist/commands/demos/index.js.map +1 -0
  15. package/dist/commands/demos/list.d.ts +3 -0
  16. package/dist/commands/demos/list.d.ts.map +1 -0
  17. package/dist/commands/demos/list.js +117 -0
  18. package/dist/commands/demos/list.js.map +1 -0
  19. package/dist/commands/demos/open.d.ts +3 -0
  20. package/dist/commands/demos/open.d.ts.map +1 -0
  21. package/dist/commands/demos/open.js +45 -0
  22. package/dist/commands/demos/open.js.map +1 -0
  23. package/dist/commands/demos/update.d.ts +3 -0
  24. package/dist/commands/demos/update.d.ts.map +1 -0
  25. package/dist/commands/demos/update.js +31 -0
  26. package/dist/commands/demos/update.js.map +1 -0
  27. package/dist/commands/generate.d.ts +6 -0
  28. package/dist/commands/generate.d.ts.map +1 -1
  29. package/dist/commands/generate.js +73 -17
  30. package/dist/commands/generate.js.map +1 -1
  31. package/dist/commands/push.d.ts.map +1 -1
  32. package/dist/commands/push.js +12 -9
  33. package/dist/commands/push.js.map +1 -1
  34. package/dist/commands/render.d.ts +11 -0
  35. package/dist/commands/render.d.ts.map +1 -0
  36. package/dist/commands/render.js +161 -0
  37. package/dist/commands/render.js.map +1 -0
  38. package/dist/index.js +10 -3
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/api-client.d.ts +2 -1
  41. package/dist/lib/api-client.d.ts.map +1 -1
  42. package/dist/lib/api-client.js +22 -10
  43. package/dist/lib/api-client.js.map +1 -1
  44. package/dist/lib/audio-stitching.d.ts +64 -0
  45. package/dist/lib/audio-stitching.d.ts.map +1 -0
  46. package/dist/lib/audio-stitching.js +260 -0
  47. package/dist/lib/audio-stitching.js.map +1 -0
  48. package/dist/lib/credentials.d.ts.map +1 -1
  49. package/dist/lib/credentials.js +2 -0
  50. package/dist/lib/credentials.js.map +1 -1
  51. package/dist/lib/demo-scanner.d.ts +17 -0
  52. package/dist/lib/demo-scanner.d.ts.map +1 -0
  53. package/dist/lib/demo-scanner.js +70 -0
  54. package/dist/lib/demo-scanner.js.map +1 -0
  55. package/dist/lib/enhancement-client.d.ts +17 -0
  56. package/dist/lib/enhancement-client.d.ts.map +1 -0
  57. package/dist/lib/enhancement-client.js +129 -0
  58. package/dist/lib/enhancement-client.js.map +1 -0
  59. package/dist/lib/hybrid-rendering.d.ts +52 -0
  60. package/dist/lib/hybrid-rendering.d.ts.map +1 -0
  61. package/dist/lib/hybrid-rendering.js +161 -0
  62. package/dist/lib/hybrid-rendering.js.map +1 -0
  63. package/dist/lib/logger.d.ts +7 -0
  64. package/dist/lib/logger.d.ts.map +1 -0
  65. package/dist/lib/logger.js +19 -0
  66. package/dist/lib/logger.js.map +1 -0
  67. package/dist/lib/tts.d.ts +12 -0
  68. package/dist/lib/tts.d.ts.map +1 -1
  69. package/dist/lib/tts.js +64 -28
  70. package/dist/lib/tts.js.map +1 -1
  71. package/package.json +1 -1
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Hybrid Rendering Pipeline - CLI Side
3
+ *
4
+ * Handles local audio generation with timing metadata extraction,
5
+ * then optionally sends to cloud for enhancement while preserving sync.
6
+ */
7
+ import { readFileSync, writeFileSync, existsSync } from "node:fs";
8
+ import { resolve } from "node:path";
9
+ import {} from "./timing.js";
10
+ import { parseTranscript, generateAudio } from "./tts.js";
11
+ /** Segment speech text at natural boundaries */
12
+ export function segmentSpeech(text) {
13
+ const sentences = text.split(/([.!?]+)\s*/);
14
+ const segments = [];
15
+ let current = "";
16
+ let isStart = true;
17
+ for (let i = 0; i < sentences.length; i++) {
18
+ const part = sentences[i].trim();
19
+ if (!part)
20
+ continue;
21
+ const isPunctuation = /^[.!?]+$/.test(part);
22
+ if (isPunctuation) {
23
+ current += part;
24
+ const isEnd = true;
25
+ const pauseAfter = part.includes('.') ? 0.8 : part.includes('!') || part.includes('?') ? 0.6 : 0.3;
26
+ segments.push({
27
+ text: current.trim(),
28
+ boundaryInfo: {
29
+ sentenceStart: isStart,
30
+ sentenceEnd: isEnd,
31
+ pauseAfter
32
+ }
33
+ });
34
+ current = "";
35
+ isStart = true;
36
+ }
37
+ else {
38
+ // Handle clause boundaries within sentences
39
+ const clauses = part.split(/,\s*|\s*;\s*/);
40
+ for (let j = 0; j < clauses.length; j++) {
41
+ const clause = clauses[j].trim();
42
+ if (!clause)
43
+ continue;
44
+ current += (current ? " " : "") + clause;
45
+ if (j < clauses.length - 1) {
46
+ // Mid-sentence clause boundary
47
+ segments.push({
48
+ text: current.trim(),
49
+ boundaryInfo: {
50
+ sentenceStart: isStart,
51
+ sentenceEnd: false,
52
+ pauseAfter: 0.2
53
+ }
54
+ });
55
+ current = "";
56
+ isStart = false;
57
+ }
58
+ }
59
+ isStart = false;
60
+ }
61
+ }
62
+ // Handle any remaining text
63
+ if (current.trim()) {
64
+ segments.push({
65
+ text: current.trim(),
66
+ boundaryInfo: {
67
+ sentenceStart: isStart,
68
+ sentenceEnd: true,
69
+ pauseAfter: 0.0
70
+ }
71
+ });
72
+ }
73
+ return segments;
74
+ }
75
+ /** Generate local audio with enhanced timing metadata */
76
+ export function generateLocalRender(transcriptPath, timingPath, projectDir, options = {}) {
77
+ const transcriptContent = readFileSync(transcriptPath, "utf-8");
78
+ // Load timing data for future scene-matching (currently segments are placed sequentially)
79
+ if (existsSync(timingPath)) {
80
+ JSON.parse(readFileSync(timingPath, "utf-8"));
81
+ }
82
+ const transcriptScenes = parseTranscript(transcriptContent);
83
+ const audioDir = resolve(projectDir, "audio");
84
+ const segments = [];
85
+ const silenceRegions = [];
86
+ let currentTime = 0;
87
+ for (let sceneIndex = 0; sceneIndex < transcriptScenes.length; sceneIndex++) {
88
+ const scene = transcriptScenes[sceneIndex];
89
+ // Generate speech segments for this scene
90
+ const speechSegments = segmentSpeech(scene.text);
91
+ for (let segmentIndex = 0; segmentIndex < speechSegments.length; segmentIndex++) {
92
+ const segment = speechSegments[segmentIndex];
93
+ const segmentId = `${scene.sceneId}_seg${segmentIndex.toString().padStart(3, '0')}`;
94
+ // Generate audio for this segment
95
+ const audioPath = resolve(audioDir, `${segmentId}.wav`);
96
+ try {
97
+ console.log(` 🎵 Generating: ${segmentId} (${segment.text.substring(0, 50)}...)`);
98
+ const result = generateAudio(segment.text, audioPath, options);
99
+ const startTime = currentTime;
100
+ const endTime = currentTime + result.durationS;
101
+ segments.push({
102
+ id: segmentId,
103
+ startTime,
104
+ endTime,
105
+ text: segment.text,
106
+ type: "speech",
107
+ naturalBoundaries: segment.boundaryInfo,
108
+ audioPath,
109
+ duration: result.durationS
110
+ });
111
+ currentTime = endTime;
112
+ // Add silence after this segment if indicated
113
+ if (segment.boundaryInfo.pauseAfter > 0) {
114
+ silenceRegions.push({
115
+ startTime: currentTime,
116
+ endTime: currentTime + segment.boundaryInfo.pauseAfter,
117
+ type: segment.boundaryInfo.sentenceEnd ? "natural_pause" : "breathing"
118
+ });
119
+ currentTime += segment.boundaryInfo.pauseAfter;
120
+ }
121
+ console.log(` ✅ ${result.durationS.toFixed(1)}s audio @ ${startTime.toFixed(1)}s`);
122
+ }
123
+ catch (error) {
124
+ console.error(` ❌ Failed to generate ${segmentId}:`, error);
125
+ }
126
+ }
127
+ // Add scene transition silence
128
+ if (sceneIndex < transcriptScenes.length - 1) {
129
+ const transitionDuration = 1.2;
130
+ silenceRegions.push({
131
+ startTime: currentTime,
132
+ endTime: currentTime + transitionDuration,
133
+ type: "scene_transition"
134
+ });
135
+ currentTime += transitionDuration;
136
+ }
137
+ }
138
+ const metadata = {
139
+ version: "1.0",
140
+ totalDuration: currentTime,
141
+ segments,
142
+ silenceRegions
143
+ };
144
+ // Save timing metadata
145
+ const metadataPath = resolve(projectDir, "audio-timing.json");
146
+ writeFileSync(metadataPath, JSON.stringify(metadata, null, 2));
147
+ console.log(`\n📋 Timing metadata saved: ${metadataPath}`);
148
+ return metadata;
149
+ }
150
+ export function prepareCloudEnhancement(projectId, metadata, options = {}) {
151
+ return {
152
+ projectId,
153
+ metadata,
154
+ preferences: {
155
+ voice: options.voice,
156
+ speed: options.speed,
157
+ enhancementLevel: "standard"
158
+ }
159
+ };
160
+ }
161
+ //# sourceMappingURL=hybrid-rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-rendering.js","sourceRoot":"","sources":["../../src/lib/hybrid-rendering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare let verbose: boolean;
2
+ export declare function setVerbose(v: boolean): void;
3
+ export declare function debug(msg: string): void;
4
+ export declare function info(msg: string): void;
5
+ export declare function warn(msg: string): void;
6
+ export declare function error(msg: string): void;
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,eAAO,IAAI,OAAO,SAAQ,CAAC;AAE3B,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE3C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIvC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC"}
@@ -0,0 +1,19 @@
1
+ export let verbose = false;
2
+ export function setVerbose(v) {
3
+ verbose = v;
4
+ }
5
+ export function debug(msg) {
6
+ if (verbose) {
7
+ console.error(`[debug] ${msg}`);
8
+ }
9
+ }
10
+ export function info(msg) {
11
+ console.log(msg);
12
+ }
13
+ export function warn(msg) {
14
+ console.warn(msg);
15
+ }
16
+ export function error(msg) {
17
+ console.error(msg);
18
+ }
19
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC;AAE3B,MAAM,UAAU,UAAU,CAAC,CAAU;IACnC,OAAO,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
package/dist/lib/tts.d.ts CHANGED
@@ -29,6 +29,18 @@ export interface TranscriptScene {
29
29
  * Scene IDs default to "scene-N" (matching timing.json convention).
30
30
  * Override with explicit ID in header: ## Scene 1: Title {#my-custom-id}
31
31
  */
32
+ /**
33
+ * Parse transcript.md — extracts narration text from `<narration>` tags.
34
+ *
35
+ * Only text inside `<narration>...</narration>` is extracted. Everything
36
+ * outside (headers, word budgets, metadata, comments) is ignored.
37
+ *
38
+ * Format:
39
+ * ## Scene 1: Title
40
+ * ### Beat 1.1 — Label [at 0ms, window: 5.2s]
41
+ * **Word budget**: 8 words
42
+ * <narration>Welcome to the app. It's really simple.</narration>
43
+ */
32
44
  export declare function parseTranscript(content: string): TranscriptScene[];
33
45
  /**
34
46
  * Generate TTS audio for a single piece of text.
@@ -1 +1 @@
1
- {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../src/lib/tts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkCH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAoElE;AA0DD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,UAAe,EACxB,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAsBX;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,UAAe,GACvB,SAAS,EAAE,CAmCb"}
1
+ {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../src/lib/tts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkCH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAsElE;AAmFD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,UAAe,EACxB,WAAW,CAAC,EAAE,GAAG,GAChB,SAAS,CAsBX;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,UAAe,GACvB,SAAS,EAAE,CAmCb"}
package/dist/lib/tts.js CHANGED
@@ -38,12 +38,25 @@ const DEFAULT_VOICE = "af_heart";
38
38
  * Scene IDs default to "scene-N" (matching timing.json convention).
39
39
  * Override with explicit ID in header: ## Scene 1: Title {#my-custom-id}
40
40
  */
41
+ /**
42
+ * Parse transcript.md — extracts narration text from `<narration>` tags.
43
+ *
44
+ * Only text inside `<narration>...</narration>` is extracted. Everything
45
+ * outside (headers, word budgets, metadata, comments) is ignored.
46
+ *
47
+ * Format:
48
+ * ## Scene 1: Title
49
+ * ### Beat 1.1 — Label [at 0ms, window: 5.2s]
50
+ * **Word budget**: 8 words
51
+ * <narration>Welcome to the app. It's really simple.</narration>
52
+ */
41
53
  export function parseTranscript(content) {
42
54
  const scenes = [];
43
55
  let currentScene = null;
44
56
  let sceneIndex = 0;
57
+ let insideNarration = false;
45
58
  for (const line of content.split("\n")) {
46
- // Scene header: ## Scene 1: Create First Note or ## Scene 1: Title {#custom-id}
59
+ // Scene header
47
60
  const sceneMatch = line.match(/^## Scene (\d+):\s*(.+)/);
48
61
  if (sceneMatch) {
49
62
  if (currentScene && currentScene.lines.length > 0) {
@@ -54,44 +67,49 @@ export function parseTranscript(content) {
54
67
  }
55
68
  sceneIndex++;
56
69
  const title = sceneMatch[2].trim();
57
- // Check for explicit ID override: {#my-id}
58
70
  const idOverride = title.match(/\{#([^}]+)\}/);
59
71
  const id = idOverride ? idOverride[1] : `scene-${sceneIndex}`;
60
72
  currentScene = { id, lines: [] };
73
+ insideNarration = false;
61
74
  continue;
62
75
  }
63
- // Skip headers, beat headers, empty lines, silent portion notes
64
- if (line.startsWith("#") || line.startsWith("### Beat") || line.trim() === "")
65
- continue;
66
- if (line.match(/^_\(.*silent.*\)_/i))
76
+ if (!currentScene)
67
77
  continue;
68
- if (line.startsWith("Generated from") || line.startsWith("---"))
78
+ // Handle single-line: <narration>text here</narration>
79
+ const singleLine = line.match(/<narration>(.*?)<\/narration>/i);
80
+ if (singleLine) {
81
+ const cleaned = cleanNarrationText(singleLine[1]);
82
+ if (cleaned)
83
+ currentScene.lines.push(cleaned);
69
84
  continue;
70
- if (line.match(/^\*\*[^*]+\*\*\s*:/))
85
+ }
86
+ // Handle multi-line open/close
87
+ if (/<narration>/i.test(line)) {
88
+ insideNarration = true;
89
+ const after = line.replace(/.*<narration>/i, "").trim();
90
+ if (after) {
91
+ const cleaned = cleanNarrationText(after);
92
+ if (cleaned)
93
+ currentScene.lines.push(cleaned);
94
+ }
71
95
  continue;
72
- // Skip timestamp + marker lines: **[0.00s]** `scene-1:start`
73
- if (line.match(/^\*\*\[[\d.]+s?\]\*\*/))
96
+ }
97
+ if (/<\/narration>/i.test(line)) {
98
+ const before = line.replace(/<\/narration>.*/i, "").trim();
99
+ if (before) {
100
+ const cleaned = cleanNarrationText(before);
101
+ if (cleaned)
102
+ currentScene.lines.push(cleaned);
103
+ }
104
+ insideNarration = false;
74
105
  continue;
75
- // Strip directives: [warmly], [casual], [pause: 0.3s], [confidently], [impressed], etc.
76
- let cleaned = line.replace(/\[(?:warmly|casual|confidently|impressed|pause:\s*[\d.]+s?)\]\s*/gi, "");
77
- cleaned = cleaned.replace(/\[.*?\]\s*/g, ""); // catch any remaining bracketed directives
78
- // Strip SSML-like tags
79
- cleaned = cleaned.replace(/<[^>]+\/?>/g, "");
80
- // Strip inline backtick code spans
81
- cleaned = cleaned.replace(/`[^`]+`/g, "");
82
- // Strip inline markdown bold and italic
83
- cleaned = cleaned.replace(/\*\*([^*]+)\*\*/g, "$1");
84
- cleaned = cleaned.replace(/(?<!\w)_([^_]+)_(?!\w)/g, "$1");
85
- // Strip surrounding double quotes from narration lines
86
- cleaned = cleaned.replace(/^"(.*)"$/, "$1");
87
- // Collapse multiple spaces into one
88
- cleaned = cleaned.replace(/\s{2,}/g, " ");
89
- cleaned = cleaned.trim();
90
- if (cleaned && currentScene) {
91
- currentScene.lines.push(cleaned);
106
+ }
107
+ if (insideNarration) {
108
+ const cleaned = cleanNarrationText(line);
109
+ if (cleaned)
110
+ currentScene.lines.push(cleaned);
92
111
  }
93
112
  }
94
- // Push last scene
95
113
  if (currentScene && currentScene.lines.length > 0) {
96
114
  scenes.push({
97
115
  sceneId: currentScene.id,
@@ -100,6 +118,24 @@ export function parseTranscript(content) {
100
118
  }
101
119
  return scenes;
102
120
  }
121
+ /** Clean a single line of narration text — strip TTS directives, markdown, quotes. */
122
+ function cleanNarrationText(line) {
123
+ // Strip directives: [warmly], [casual], [pause: 0.3s], [confidently], [impressed], etc.
124
+ let cleaned = line.replace(/\[(?:warmly|casual|confidently|impressed|pause:\s*[\d.]+s?)\]\s*/gi, "");
125
+ cleaned = cleaned.replace(/\[.*?\]\s*/g, ""); // catch any remaining bracketed directives
126
+ // Strip SSML-like tags (but not <narration> tags — those are structural)
127
+ cleaned = cleaned.replace(/<(?!\/?\s*narration)[^>]+\/?>/gi, "");
128
+ // Strip inline backtick code spans
129
+ cleaned = cleaned.replace(/`[^`]+`/g, "");
130
+ // Strip inline markdown bold and italic
131
+ cleaned = cleaned.replace(/\*\*([^*]+)\*\*/g, "$1");
132
+ cleaned = cleaned.replace(/(?<!\w)_([^_]+)_(?!\w)/g, "$1");
133
+ // Strip surrounding double quotes from narration lines
134
+ cleaned = cleaned.replace(/^"(.*)"$/, "$1");
135
+ // Collapse multiple spaces into one
136
+ cleaned = cleaned.replace(/\s{2,}/g, " ");
137
+ return cleaned.trim();
138
+ }
103
139
  /** Resolve the model directory, checking that required files exist. */
104
140
  function resolveModelDir(options) {
105
141
  const modelDir = options.modelDir ?? process.env.DEMOFLY_TTS_MODEL_DIR ?? DEFAULT_MODEL_DIR;
@@ -1 +1 @@
1
- {"version":3,"file":"tts.js","sourceRoot":"","sources":["../../src/lib/tts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tts.js","sourceRoot":"","sources":["../../src/lib/tts.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "demofly",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "CLI for demofly — automated demo video generation",
5
5
  "type": "module",
6
6
  "bin": {