@conceptcraft/mindframes 0.1.8 → 0.1.9

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 CHANGED
@@ -3144,6 +3144,421 @@ init_brand();
3144
3144
  import { Command as Command14 } from "commander";
3145
3145
  import chalk12 from "chalk";
3146
3146
 
3147
+ // src/commands/skill/generate-main-skill.ts
3148
+ function generateMainSkillContent(context) {
3149
+ const { name, cmd: cmd2, displayName } = context;
3150
+ const envPrefix = name.toUpperCase().replace(/-/g, "_");
3151
+ return `---
3152
+ name: ${name}
3153
+ description: ${displayName} CLI for AI-powered content creation. Use when user needs to create presentations, generate video assets (voiceover, music, images, stock videos), use text-to-speech, mix audio, search stock media, or manage branding. This is the main entry point - load specialized skills (${name}-video, ${name}-presentation) for detailed workflows.
3154
+ ---
3155
+
3156
+ # ${displayName} CLI
3157
+
3158
+ A comprehensive CLI for AI-powered content creation. Generate presentations, video assets, voiceovers, music, and search stock media - all from your terminal.
3159
+
3160
+ **Install:** \`npm install -g @${name}/cli\` or \`pnpm add -g @${name}/cli\`
3161
+
3162
+ ---
3163
+
3164
+ ## Quick Reference
3165
+
3166
+ | Task | Command |
3167
+ |------|---------|
3168
+ | Create presentation | \`${cmd2} create "Topic"\` |
3169
+ | Generate video assets | \`${cmd2} video create < scenes.json\` |
3170
+ | Text-to-speech | \`${cmd2} tts generate -t "Text" -o voice.mp3\` |
3171
+ | Generate music | \`${cmd2} music generate -p "upbeat corporate"\` |
3172
+ | Search images | \`${cmd2} image search -q "mountain landscape"\` |
3173
+ | Search videos | \`${cmd2} video search "ocean waves"\` |
3174
+ | Mix audio tracks | \`${cmd2} mix create --video v.mp4 --music m.mp3\` |
3175
+
3176
+ ---
3177
+
3178
+ ## Authentication
3179
+
3180
+ \`\`\`bash
3181
+ # Login via OAuth (recommended)
3182
+ ${cmd2} login
3183
+
3184
+ # Or set API key directly
3185
+ export ${envPrefix}_API_KEY="your-key-here"
3186
+
3187
+ # Verify authentication
3188
+ ${cmd2} whoami
3189
+ \`\`\`
3190
+
3191
+ ---
3192
+
3193
+ ## 1. Presentations
3194
+
3195
+ Create AI-powered presentations from text, files, URLs, or piped content.
3196
+
3197
+ \`\`\`bash
3198
+ # From topic
3199
+ ${cmd2} create "AI-powered analytics platform"
3200
+
3201
+ # From file (PDF, PPTX, DOCX, Markdown)
3202
+ ${cmd2} create "Quarterly Report" --file report.pdf
3203
+
3204
+ # From URL
3205
+ ${cmd2} create "Product Overview" --sources https://company.com/product
3206
+
3207
+ # From piped content
3208
+ cat notes.md | ${cmd2} create "Meeting Summary"
3209
+
3210
+ # With options
3211
+ ${cmd2} create "Pitch Deck" \\
3212
+ --slides 10 \\
3213
+ --mode balanced \\
3214
+ --tone professional \\
3215
+ --audience "Investors" \\
3216
+ --brand my-company \\
3217
+ --open
3218
+ \`\`\`
3219
+
3220
+ **Key Options:**
3221
+ - \`--slides <1-20>\` - Number of slides (default: 10)
3222
+ - \`--mode <instant|ultrafast|fast|balanced|best>\` - Quality/speed tradeoff
3223
+ - \`--tone <creative|professional|educational|formal|casual>\`
3224
+ - \`--file <paths...>\` - Extract content from files
3225
+ - \`--sources <urls...>\` - Scrape URLs for context
3226
+ - \`--brand <id|url>\` - Apply branding
3227
+ - \`--open\` - Open in browser when done
3228
+
3229
+ **Manage presentations:**
3230
+ \`\`\`bash
3231
+ ${cmd2} list # List all presentations
3232
+ ${cmd2} get <slug> # Get details
3233
+ ${cmd2} export <slug> -o p.zip # Export to ZIP
3234
+ ${cmd2} delete <slug> # Delete
3235
+ \`\`\`
3236
+
3237
+ ---
3238
+
3239
+ ## 2. Video Asset Generation
3240
+
3241
+ Generate voiceovers, music, and find stock media for video production. Works with Remotion or any video framework.
3242
+
3243
+ ### Generate All Assets at Once
3244
+
3245
+ \`\`\`bash
3246
+ cat <<'EOF' | ${cmd2} video create --output ./public
3247
+ {
3248
+ "scenes": [
3249
+ {
3250
+ "name": "Hook",
3251
+ "script": "Watch how we transformed complex workflows into a single click.",
3252
+ "imageQuery": "modern dashboard dark theme",
3253
+ "videoQuery": "abstract tech particles"
3254
+ },
3255
+ {
3256
+ "name": "Demo",
3257
+ "script": "Our AI analyzes data in real-time, surfacing insights that matter.",
3258
+ "imageQuery": "data visualization charts"
3259
+ },
3260
+ {
3261
+ "name": "CTA",
3262
+ "script": "Start your free trial today.",
3263
+ "imageQuery": "call to action button"
3264
+ }
3265
+ ],
3266
+ "voice": "Kore",
3267
+ "voiceSettings": {
3268
+ "speed": 0.95,
3269
+ "stability": 0.4,
3270
+ "style": 0.6
3271
+ },
3272
+ "musicPrompt": "upbeat corporate, positive energy, modern synth"
3273
+ }
3274
+ EOF
3275
+ \`\`\`
3276
+
3277
+ **Output:** Per-scene voiceovers, background music, stock images/videos, and \`video-manifest.json\` with timing data.
3278
+
3279
+ ### Initialize Remotion Project
3280
+
3281
+ \`\`\`bash
3282
+ ${cmd2} video init my-video # 16:9 landscape
3283
+ ${cmd2} video init my-video --type tiktok # 9:16 vertical
3284
+ \`\`\`
3285
+
3286
+ ### Embed Thumbnail
3287
+
3288
+ \`\`\`bash
3289
+ ${cmd2} video thumbnail video.mp4 --frame 60
3290
+ \`\`\`
3291
+
3292
+ ---
3293
+
3294
+ ## 3. Text-to-Speech (TTS)
3295
+
3296
+ Convert text to natural speech with multiple providers and voices.
3297
+
3298
+ \`\`\`bash
3299
+ # Basic usage
3300
+ ${cmd2} tts generate -t "Hello world" -o output.mp3
3301
+
3302
+ # With voice selection
3303
+ ${cmd2} tts generate -t "Welcome to the demo" -v Rachel -o welcome.mp3
3304
+
3305
+ # With provider and settings
3306
+ ${cmd2} tts generate \\
3307
+ -t "Professional narration" \\
3308
+ -v Kore \\
3309
+ -p gemini \\
3310
+ -s 0.9 \\
3311
+ -o narration.mp3
3312
+
3313
+ # List available voices
3314
+ ${cmd2} tts voices
3315
+ ${cmd2} tts voices --provider elevenlabs
3316
+ \`\`\`
3317
+
3318
+ **Providers:** \`gemini\`, \`elevenlabs\`, \`openai\`
3319
+ **Popular voices:** \`Kore\`, \`Puck\`, \`Rachel\`, \`alloy\`
3320
+ **Speed range:** 0.25 - 4.0 (default: 1.0)
3321
+
3322
+ ---
3323
+
3324
+ ## 4. Music Generation
3325
+
3326
+ Generate AI music from text descriptions.
3327
+
3328
+ \`\`\`bash
3329
+ # Generate music
3330
+ ${cmd2} music generate -p "upbeat corporate, modern synth" --duration 30
3331
+
3332
+ # Save to file
3333
+ ${cmd2} music generate -p "calm ambient background" -o music.mp3
3334
+
3335
+ # Check generation status (for async operations)
3336
+ ${cmd2} music status <request-id>
3337
+ \`\`\`
3338
+
3339
+ **Duration:** 3-30 seconds
3340
+ **Providers:** \`elevenlabs\`, \`suno\`
3341
+
3342
+ ---
3343
+
3344
+ ## 5. Image Search
3345
+
3346
+ Search for stock images from multiple sources.
3347
+
3348
+ \`\`\`bash
3349
+ # Basic search
3350
+ ${cmd2} image search -q "mountain landscape"
3351
+
3352
+ # With options
3353
+ ${cmd2} image search -q "business team meeting" \\
3354
+ --max-results 20 \\
3355
+ --size large \\
3356
+ --format json
3357
+
3358
+ # Download for video project
3359
+ ${cmd2} image search -q "tech abstract" -n 5 --format json > images.json
3360
+ \`\`\`
3361
+
3362
+ **Options:**
3363
+ - \`--max-results <n>\` - Number of results (default: 10)
3364
+ - \`--size <small|medium|large|any>\` - Image size
3365
+ - \`--safe-search / --no-safe-search\` - Filter adult content
3366
+
3367
+ ---
3368
+
3369
+ ## 6. Video Search
3370
+
3371
+ Search for stock video clips.
3372
+
3373
+ \`\`\`bash
3374
+ # Basic search
3375
+ ${cmd2} video search "ocean waves"
3376
+
3377
+ # With filters
3378
+ ${cmd2} video search "city timelapse" \\
3379
+ --max-results 5 \\
3380
+ --orientation landscape \\
3381
+ --license free
3382
+ \`\`\`
3383
+
3384
+ **Options:**
3385
+ - \`--orientation <landscape|portrait|square|any>\`
3386
+ - \`--license <free|premium|any>\`
3387
+
3388
+ ---
3389
+
3390
+ ## 7. Audio Mixing
3391
+
3392
+ Mix video with voiceover and background music.
3393
+
3394
+ \`\`\`bash
3395
+ # Mix audio tracks
3396
+ ${cmd2} mix create \\
3397
+ --video input.mp4 \\
3398
+ --voice voiceover.mp3 \\
3399
+ --music background.mp3 \\
3400
+ --music-volume 30 \\
3401
+ --voice-volume 100 \\
3402
+ -o final.mp4
3403
+
3404
+ # Check mixing status
3405
+ ${cmd2} mix status <request-id>
3406
+ \`\`\`
3407
+
3408
+ Music automatically loops to match video duration.
3409
+
3410
+ ---
3411
+
3412
+ ## 8. Branding
3413
+
3414
+ Manage brand profiles for consistent styling.
3415
+
3416
+ \`\`\`bash
3417
+ # List saved brands
3418
+ ${cmd2} branding list
3419
+
3420
+ # Extract branding from website
3421
+ ${cmd2} branding extract https://company.com
3422
+
3423
+ # Get brand details
3424
+ ${cmd2} branding get <brand-id>
3425
+
3426
+ # Set default brand
3427
+ ${cmd2} branding set-default <brand-id>
3428
+
3429
+ # Use in presentations
3430
+ ${cmd2} create "Topic" --brand my-company
3431
+ \`\`\`
3432
+
3433
+ ---
3434
+
3435
+ ## 9. Configuration
3436
+
3437
+ \`\`\`bash
3438
+ # Interactive setup
3439
+ ${cmd2} config init
3440
+
3441
+ # Show current config
3442
+ ${cmd2} config show
3443
+ ${cmd2} config show --verify # Verify API key
3444
+
3445
+ # Set values
3446
+ ${cmd2} config set api-key <key>
3447
+ ${cmd2} config set team-id <id>
3448
+
3449
+ # Clear config
3450
+ ${cmd2} config clear
3451
+
3452
+ # Show config file location
3453
+ ${cmd2} config path
3454
+ \`\`\`
3455
+
3456
+ ---
3457
+
3458
+ ## Output Formats
3459
+
3460
+ All commands support multiple output formats:
3461
+
3462
+ \`\`\`bash
3463
+ ${cmd2} <command> --format human # Default, colored terminal output
3464
+ ${cmd2} <command> --format json # Machine-readable JSON
3465
+ ${cmd2} <command> --format quiet # Minimal output, errors only
3466
+ \`\`\`
3467
+
3468
+ ---
3469
+
3470
+ ## Environment Variables
3471
+
3472
+ \`\`\`bash
3473
+ ${envPrefix}_API_KEY # API key for authentication
3474
+ ${envPrefix}_API_URL # Custom API URL (optional)
3475
+ \`\`\`
3476
+
3477
+ ---
3478
+
3479
+ ## Specialized Skills
3480
+
3481
+ For detailed workflows, load these skills:
3482
+
3483
+ - **\`${name}-video\`** - Detailed video creation workflow, Remotion integration, composition rules, R3F/Three.js patterns
3484
+ - **\`${name}-presentation\`** - Detailed presentation creation, styling options, export formats
3485
+
3486
+ ---
3487
+
3488
+ ## Common Workflows
3489
+
3490
+ ### Video Production Pipeline
3491
+
3492
+ \`\`\`bash
3493
+ # 1. Initialize project
3494
+ ${cmd2} video init product-demo
3495
+
3496
+ # 2. Generate assets
3497
+ cat scenes.json | ${cmd2} video create -o product-demo/public
3498
+
3499
+ # 3. Implement in Remotion (see ${name}-video skill)
3500
+
3501
+ # 4. Render and add thumbnail
3502
+ cd product-demo
3503
+ pnpm exec remotion render FullVideo
3504
+ ${cmd2} video thumbnail out/FullVideo.mp4 --frame 60
3505
+ \`\`\`
3506
+
3507
+ ### Presentation from Research
3508
+
3509
+ \`\`\`bash
3510
+ # Gather content from multiple sources
3511
+ ${cmd2} create "Market Analysis" \\
3512
+ --file research.pdf \\
3513
+ --sources https://industry-report.com \\
3514
+ --context "Focus on Q4 trends" \\
3515
+ --slides 15 \\
3516
+ --tone professional \\
3517
+ --brand company \\
3518
+ --open
3519
+ \`\`\`
3520
+
3521
+ ### Batch Image Collection
3522
+
3523
+ \`\`\`bash
3524
+ # Get images for video scenes
3525
+ for query in "hero shot" "team photo" "product showcase"; do
3526
+ ${cmd2} image search -q "$query" -n 3 --format json
3527
+ done
3528
+ \`\`\`
3529
+
3530
+ ---
3531
+
3532
+ ## Troubleshooting
3533
+
3534
+ **Authentication issues:**
3535
+ \`\`\`bash
3536
+ ${cmd2} whoami # Check current user
3537
+ ${cmd2} logout && ${cmd2} login # Re-authenticate
3538
+ \`\`\`
3539
+
3540
+ **Check API status:**
3541
+ \`\`\`bash
3542
+ ${cmd2} config show --verify
3543
+ \`\`\`
3544
+
3545
+ **Debug mode:**
3546
+ \`\`\`bash
3547
+ ${cmd2} <command> --debug
3548
+ \`\`\`
3549
+
3550
+ ---
3551
+
3552
+ ## Help
3553
+
3554
+ \`\`\`bash
3555
+ ${cmd2} --help # General help
3556
+ ${cmd2} <command> --help # Command-specific help
3557
+ ${cmd2} --version # Version info
3558
+ \`\`\`
3559
+ `;
3560
+ }
3561
+
3147
3562
  // src/commands/skill/rules/video/content.ts
3148
3563
  var VIDEO_RULE_CONTENTS = [
3149
3564
  {
@@ -4405,6 +4820,7 @@ function getSupportedEditorNames() {
4405
4820
  }
4406
4821
 
4407
4822
  // src/commands/skill/index.ts
4823
+ var SKILL_TYPES = ["main", "video", "presentation"];
4408
4824
  var skillContext = {
4409
4825
  name: brand.name,
4410
4826
  cmd: brand.commands[0],
@@ -4413,25 +4829,39 @@ var skillContext = {
4413
4829
  var skillCommand = new Command14("skill").description(`Manage ${brand.displayName} skills for AI coding assistants`).addHelpText(
4414
4830
  "after",
4415
4831
  `
4832
+ ${chalk12.bold("Skill Types:")}
4833
+ ${chalk12.cyan("main")} Main CLI skill with all capabilities (TTS, music, images, videos, presentations)
4834
+ ${chalk12.cyan("video")} Detailed video creation workflow with Remotion/R3F patterns
4835
+ ${chalk12.cyan("presentation")} Detailed presentation creation workflow
4836
+
4416
4837
  ${chalk12.bold("Examples:")}
4838
+ ${chalk12.gray("# Install main CLI skill (comprehensive overview)")}
4839
+ $ ${brand.commands[0]} skill install main
4840
+
4417
4841
  ${chalk12.gray("# Install video skill")}
4418
4842
  $ ${brand.commands[0]} skill install video
4419
4843
 
4420
4844
  ${chalk12.gray("# Install presentation skill")}
4421
4845
  $ ${brand.commands[0]} skill install presentation
4422
4846
 
4423
- ${chalk12.gray("# Install both skills")}
4847
+ ${chalk12.gray("# Install all skills")}
4424
4848
  $ ${brand.commands[0]} skill install
4425
4849
 
4426
4850
  ${chalk12.gray("# Install to specific directory")}
4427
- $ ${brand.commands[0]} skill install video --dir ~/.claude
4851
+ $ ${brand.commands[0]} skill install main --dir ~/.claude
4428
4852
 
4429
4853
  ${chalk12.gray("# Show skill content")}
4430
- $ ${brand.commands[0]} skill show video
4854
+ $ ${brand.commands[0]} skill show main
4431
4855
  `
4432
4856
  );
4433
- skillCommand.command("install").description(`Install ${brand.displayName} skills for AI coding assistants`).argument("[type]", "Skill type: video, presentation, or omit for both").option("-d, --dir <path>", "Install to specific directory").option("-g, --global", "Install globally (to home directory)", true).option("-l, --local", "Install locally (to current directory)").option("-f, --force", "Overwrite existing skill files").action(async (type, options) => {
4857
+ skillCommand.command("install").description(`Install ${brand.displayName} skills for AI coding assistants`).argument("[type]", "Skill type: main, video, presentation, or omit for all").option("-d, --dir <path>", "Install to specific directory").option("-g, --global", "Install globally (to home directory)", true).option("-l, --local", "Install locally (to current directory)").option("-f, --force", "Overwrite existing skill files").action(async (type, options) => {
4434
4858
  const skillsToInstall = [];
4859
+ if (!type || type === "main") {
4860
+ skillsToInstall.push({
4861
+ name: brand.name,
4862
+ content: generateMainSkillContent(skillContext)
4863
+ });
4864
+ }
4435
4865
  if (!type || type === "video") {
4436
4866
  skillsToInstall.push({
4437
4867
  name: `${brand.name}-video`,
@@ -4444,8 +4874,8 @@ skillCommand.command("install").description(`Install ${brand.displayName} skills
4444
4874
  content: generatePresentationSkillContent(skillContext)
4445
4875
  });
4446
4876
  }
4447
- if (type && type !== "video" && type !== "presentation") {
4448
- error(`Invalid skill type: ${type}. Must be "video" or "presentation"`);
4877
+ if (type && !SKILL_TYPES.includes(type)) {
4878
+ error(`Invalid skill type: ${type}. Must be one of: ${SKILL_TYPES.join(", ")}`);
4449
4879
  process.exit(1);
4450
4880
  }
4451
4881
  console.log();
@@ -4477,26 +4907,31 @@ skillCommand.command("install").description(`Install ${brand.displayName} skills
4477
4907
  console.log();
4478
4908
  }
4479
4909
  });
4480
- skillCommand.command("show").description("Display skill content").argument("[type]", "Skill type: video or presentation (default: video)").action((type = "video") => {
4481
- if (type === "video") {
4910
+ skillCommand.command("show").description("Display skill content").argument("[type]", "Skill type: main, video, or presentation (default: main)").action((type = "main") => {
4911
+ if (type === "main") {
4912
+ console.log(generateMainSkillContent(skillContext));
4913
+ } else if (type === "video") {
4482
4914
  console.log(generateVideoSkillContent(skillContext));
4483
4915
  } else if (type === "presentation") {
4484
4916
  console.log(generatePresentationSkillContent(skillContext));
4485
4917
  } else {
4486
- error(`Invalid skill type: ${type}. Must be "video" or "presentation"`);
4918
+ error(`Invalid skill type: ${type}. Must be one of: ${SKILL_TYPES.join(", ")}`);
4487
4919
  process.exit(1);
4488
4920
  }
4489
4921
  });
4490
- skillCommand.command("uninstall").description(`Remove ${brand.displayName} skills from AI coding assistants`).argument("[type]", "Skill type: video, presentation, or omit for both").option("-g, --global", "Uninstall globally (from home directory)", true).option("-l, --local", "Uninstall locally (from current directory)").action(async (type, options) => {
4922
+ skillCommand.command("uninstall").description(`Remove ${brand.displayName} skills from AI coding assistants`).argument("[type]", "Skill type: main, video, presentation, or omit for all").option("-g, --global", "Uninstall globally (from home directory)", true).option("-l, --local", "Uninstall locally (from current directory)").action(async (type, options) => {
4491
4923
  const skillsToRemove = [];
4924
+ if (!type || type === "main") {
4925
+ skillsToRemove.push(brand.name);
4926
+ }
4492
4927
  if (!type || type === "video") {
4493
4928
  skillsToRemove.push(`${brand.name}-video`);
4494
4929
  }
4495
4930
  if (!type || type === "presentation") {
4496
4931
  skillsToRemove.push(`${brand.name}-presentation`);
4497
4932
  }
4498
- if (type && type !== "video" && type !== "presentation") {
4499
- error(`Invalid skill type: ${type}. Must be "video" or "presentation"`);
4933
+ if (type && !SKILL_TYPES.includes(type)) {
4934
+ error(`Invalid skill type: ${type}. Must be one of: ${SKILL_TYPES.join(", ")}`);
4500
4935
  process.exit(1);
4501
4936
  }
4502
4937
  console.log();
@@ -5686,7 +6121,7 @@ var thumbnailCommand = new Command19("thumbnail").description("Embed a thumbnail
5686
6121
  var videoCommand = new Command19("video").description("Video asset generation commands").addCommand(initCommand).addCommand(createCommand2).addCommand(searchCommand2).addCommand(thumbnailCommand);
5687
6122
 
5688
6123
  // src/index.ts
5689
- var VERSION = "0.1.8";
6124
+ var VERSION = "0.1.9";
5690
6125
  var program = new Command20();
5691
6126
  var cmdName = brand.commands[0];
5692
6127
  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({