@conceptcraft/mindframes 0.1.11 → 0.1.12
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/dist/index.js +32 -31
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3422,10 +3422,10 @@ cat scenes.json | ${cmd2} video create -o product-demo/public
|
|
|
3422
3422
|
|
|
3423
3423
|
# 3. Implement in Remotion (see ${name}-video skill)
|
|
3424
3424
|
|
|
3425
|
-
# 4. Render and add thumbnail
|
|
3425
|
+
# 4. Render and add thumbnail (version files: v1, v2, v3...)
|
|
3426
3426
|
cd product-demo
|
|
3427
|
-
pnpm exec remotion render FullVideo
|
|
3428
|
-
${cmd2} video thumbnail out/FullVideo.mp4 --frame 60
|
|
3427
|
+
pnpm exec remotion render FullVideo out/FullVideo-v1.mp4
|
|
3428
|
+
${cmd2} video thumbnail out/FullVideo-v1.mp4 --frame 60
|
|
3429
3429
|
\`\`\`
|
|
3430
3430
|
|
|
3431
3431
|
### Presentation from Research
|
|
@@ -3672,14 +3672,18 @@ cd my-video
|
|
|
3672
3672
|
|
|
3673
3673
|
### 3. Render Video
|
|
3674
3674
|
|
|
3675
|
+
**IMPORTANT:** Always version output files to avoid overwriting. Check existing files and increment version:
|
|
3676
|
+
- First render: \`out/video-v1.mp4\`
|
|
3677
|
+
- Re-render: \`out/video-v2.mp4\`, \`out/video-v3.mp4\`, etc.
|
|
3678
|
+
|
|
3675
3679
|
**For landscape videos (16:9):**
|
|
3676
3680
|
\`\`\`bash
|
|
3677
|
-
pnpm exec remotion render FullVideo out/video.mp4
|
|
3681
|
+
pnpm exec remotion render FullVideo out/video-v1.mp4
|
|
3678
3682
|
\`\`\`
|
|
3679
3683
|
|
|
3680
3684
|
**For vertical videos (9:16) with captions:**
|
|
3681
3685
|
\`\`\`bash
|
|
3682
|
-
pnpm exec remotion render CaptionedVideo out/tiktok.mp4 \\
|
|
3686
|
+
pnpm exec remotion render CaptionedVideo out/tiktok-v1.mp4 \\
|
|
3683
3687
|
--props='{"timeline":'$(cat public/video-manifest.json | jq -c .timeline)',"showCaptions":true}'
|
|
3684
3688
|
\`\`\`
|
|
3685
3689
|
|
|
@@ -4117,7 +4121,8 @@ skillCommand.command("uninstall").description(`Remove ${brand.displayName} skill
|
|
|
4117
4121
|
import { Command as Command15 } from "commander";
|
|
4118
4122
|
import ora8 from "ora";
|
|
4119
4123
|
import { writeFile as writeFile2 } from "fs/promises";
|
|
4120
|
-
var
|
|
4124
|
+
var DEFAULT_ELEVENLABS_VOICE_ID = "21m00Tcm4TlvDq8ikWAM";
|
|
4125
|
+
var generateCommand = new Command15("generate").description("Generate speech from text (uses ElevenLabs)").requiredOption("-t, --text <text>", "Text to convert to speech").requiredOption("-o, --output <path>", "Output file path").option("--voice-id <voiceId>", `ElevenLabs voice ID (default: ${DEFAULT_ELEVENLABS_VOICE_ID})`).option("-m, --model <model>", "Model (provider-specific)").option("-s, --speed <speed>", "Speech speed 0.25-4.0 (default: 1.0)").option("-f, --format <format>", "Output format: human, json, quiet", "human").action(async (options) => {
|
|
4121
4126
|
const format = options.format;
|
|
4122
4127
|
const spinner = format === "human" ? ora8("Generating speech...").start() : null;
|
|
4123
4128
|
let speed;
|
|
@@ -4130,11 +4135,13 @@ var generateCommand = new Command15("generate").description("Generate speech fro
|
|
|
4130
4135
|
}
|
|
4131
4136
|
}
|
|
4132
4137
|
try {
|
|
4138
|
+
const voiceId = options.voiceId || DEFAULT_ELEVENLABS_VOICE_ID;
|
|
4133
4139
|
const result = await generateSpeech({
|
|
4134
4140
|
text: options.text,
|
|
4135
4141
|
options: {
|
|
4136
|
-
provider:
|
|
4137
|
-
|
|
4142
|
+
provider: "elevenlabs",
|
|
4143
|
+
// Currently only ElevenLabs is supported
|
|
4144
|
+
voiceId,
|
|
4138
4145
|
model: options.model,
|
|
4139
4146
|
speed
|
|
4140
4147
|
}
|
|
@@ -4167,31 +4174,28 @@ var generateCommand = new Command15("generate").description("Generate speech fro
|
|
|
4167
4174
|
process.exit(EXIT_CODES.GENERAL_ERROR);
|
|
4168
4175
|
}
|
|
4169
4176
|
});
|
|
4170
|
-
var voicesCommand = new Command15("voices").description("List available voices
|
|
4177
|
+
var voicesCommand = new Command15("voices").description("List available voices (currently only ElevenLabs)").option("-f, --format <format>", "Output format: human, json", "human").action(async (options) => {
|
|
4171
4178
|
const spinner = options.format === "human" ? ora8("Fetching voices...").start() : null;
|
|
4172
4179
|
try {
|
|
4173
4180
|
const result = await getVoices();
|
|
4174
4181
|
spinner?.stop();
|
|
4182
|
+
const provider = "elevenlabs";
|
|
4175
4183
|
if (options.format === "json") {
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
printJson(providerVoices || []);
|
|
4179
|
-
} else {
|
|
4180
|
-
printJson(result.voices);
|
|
4181
|
-
}
|
|
4184
|
+
const providerVoices = result.voices[provider];
|
|
4185
|
+
printJson(providerVoices || []);
|
|
4182
4186
|
return;
|
|
4183
4187
|
}
|
|
4184
|
-
const
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
}
|
|
4188
|
+
const voices = result.voices[provider];
|
|
4189
|
+
if (!voices || voices.length === 0) {
|
|
4190
|
+
info("No ElevenLabs voices available");
|
|
4191
|
+
return;
|
|
4192
|
+
}
|
|
4193
|
+
console.log();
|
|
4194
|
+
console.log(`ELEVENLABS Voices:`);
|
|
4195
|
+
console.log("-".repeat(50));
|
|
4196
|
+
for (const voice of voices) {
|
|
4197
|
+
console.log(` ${voice.name} (${voice.id})`);
|
|
4198
|
+
console.log(` ${voice.description}`);
|
|
4195
4199
|
}
|
|
4196
4200
|
} catch (err) {
|
|
4197
4201
|
spinner?.stop();
|
|
@@ -5184,9 +5188,6 @@ var initCommand = new Command19("init").description("Create a new Remotion video
|
|
|
5184
5188
|
).replace(
|
|
5185
5189
|
/export const VIDEO_HEIGHT = 1080;/,
|
|
5186
5190
|
"export const VIDEO_HEIGHT = 1920; // TikTok 9:16"
|
|
5187
|
-
).replace(
|
|
5188
|
-
/export const VIDEO_FPS = 60;/,
|
|
5189
|
-
"export const VIDEO_FPS = 30; // TikTok standard"
|
|
5190
5191
|
);
|
|
5191
5192
|
await writeFile5(constantsPath, constantsContent, "utf-8");
|
|
5192
5193
|
if (format === "human") {
|
|
@@ -5217,7 +5218,7 @@ var initCommand = new Command19("init").description("Create a new Remotion video
|
|
|
5217
5218
|
if (options.type === "tiktok") {
|
|
5218
5219
|
info("Format: TikTok/Reels/Shorts (1080x1920 @ 30fps)");
|
|
5219
5220
|
} else {
|
|
5220
|
-
info("Format: Landscape (1920x1080 @
|
|
5221
|
+
info("Format: Landscape (1920x1080 @ 30fps)");
|
|
5221
5222
|
}
|
|
5222
5223
|
console.log();
|
|
5223
5224
|
info("Next steps:");
|
|
@@ -5378,7 +5379,7 @@ var thumbnailCommand = new Command19("thumbnail").description("Embed a thumbnail
|
|
|
5378
5379
|
var videoCommand = new Command19("video").description("Video asset generation commands").addCommand(initCommand).addCommand(createCommand3).addCommand(searchCommand2).addCommand(thumbnailCommand);
|
|
5379
5380
|
|
|
5380
5381
|
// src/index.ts
|
|
5381
|
-
var VERSION = "0.1.
|
|
5382
|
+
var VERSION = "0.1.12";
|
|
5382
5383
|
var program = new Command20();
|
|
5383
5384
|
var cmdName = brand.commands[0];
|
|
5384
5385
|
program.name(cmdName).description(brand.description).version(VERSION, "-v, --version", "Show version number").option("--debug", "Enable debug logging").option("--no-color", "Disable colored output").configureOutput({
|