@autoaiai/aicut 0.1.7 → 0.1.11
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/MANUAL.md +10 -0
- package/package.json +1 -1
- package/product.json +2 -1
- package/skills/30x-web-to-video/SKILL.md +421 -0
- package/skills/30x-web-to-video/examples/INDEX.md +26 -0
- package/skills/30x-web-to-video/references/animations.md +539 -0
- package/skills/30x-web-to-video/references/audio.md +256 -0
- package/skills/30x-web-to-video/references/components.md +340 -0
- package/skills/30x-web-to-video/references/lottie.md +174 -0
- package/skills/30x-web-to-video/references/visual-effects.md +157 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +169 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +134 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +120 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +154 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +38 -0
- package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +152 -0
- package/skills/3d-asset-generation/SKILL.md +142 -0
- package/skills/action-fight-prompt/SKILL.md +136 -0
- package/skills/action-fight-prompt/references/camera-and-impact.md +64 -0
- package/skills/action-fight-prompt/references/example-15s-duel.md +59 -0
- package/skills/action-fight-prompt/references/scene-patterns.md +80 -0
- package/skills/ad-creative-video/SKILL.md +205 -0
- package/skills/ad-creative-video/references/batch-ad-pipeline.md +289 -0
- package/skills/ad-creative-video/references/platform-specs.md +72 -0
- package/skills/after-effects/SKILL.md +123 -0
- package/skills/after-effects/references/export-recipes.md +168 -0
- package/skills/after-effects/references/expression-library.md +184 -0
- package/skills/after-effects/references/expressions.md +134 -0
- package/skills/after-effects/references/performance-triage.md +138 -0
- package/skills/after-effects/references/project-hygiene.md +188 -0
- package/skills/ai-media-quality-review/SKILL.md +72 -0
- package/skills/ai-product-video/SKILL.md +296 -0
- package/skills/ai-product-video/references/aesthetic-rules.md +177 -0
- package/skills/ai-product-video/references/final-review.md +110 -0
- package/skills/ai-product-video/references/guided-free-creation.md +194 -0
- package/skills/ai-product-video/references/music-beat-sync.md +219 -0
- package/skills/ai-product-video/references/pipeline.md +392 -0
- package/skills/ai-product-video/references/sequences/promo-energy-arc.md +50 -0
- package/skills/ai-product-video/references/shots/ATTRIBUTION.md +65 -0
- package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +39 -0
- package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +38 -0
- package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +40 -0
- package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +57 -0
- package/skills/aicut/SKILL.md +4 -4
- package/skills/aicut/references/commands.md +15 -15
- package/skills/aicut/references/film-format.md +1 -1
- package/skills/aicut/references/recipes.md +4 -4
- package/skills/aicut/references/troubleshooting.md +2 -2
- package/skills/aicut-motion/SKILL.md +6 -6
- package/skills/aicut-motion/references/design-systems/README.md +1 -1
- package/skills/aicut-motion/references/pages.md +1 -1
- package/skills/anidoodle/SKILL.md +185 -0
- package/skills/anidoodle/references/anatomy.md +91 -0
- package/skills/anidoodle/references/backends-and-adapters.md +82 -0
- package/skills/anidoodle/references/camera.md +148 -0
- package/skills/anidoodle/references/craft-bar.md +72 -0
- package/skills/anidoodle/references/determinism-and-contract.md +46 -0
- package/skills/anidoodle/references/formats.md +121 -0
- package/skills/anidoodle/references/motion-grammar.md +234 -0
- package/skills/anidoodle/references/music/compose.md +388 -0
- package/skills/anidoodle/references/music/sound-design.md +245 -0
- package/skills/anidoodle/references/music/sounds-licenses.md +69 -0
- package/skills/anidoodle/references/music/styles/lofi-electronic.md +112 -0
- package/skills/anidoodle/references/music/styles/music-box.md +57 -0
- package/skills/animated-component-libraries/SKILL.md +820 -0
- package/skills/animated-component-libraries/references/customization_guide.md +699 -0
- package/skills/animated-component-libraries/references/magic_ui_components.md +422 -0
- package/skills/animated-component-libraries/references/react_bits_components.md +587 -0
- package/skills/animated-infographic/SKILL.md +211 -0
- package/skills/animated-infographic/references/sequenced-infographic.md +286 -0
- package/skills/appshot-core/SKILL.md +872 -0
- package/skills/article-highlights/SKILL.md +151 -0
- package/skills/avatar-mix/SKILL.md +301 -0
- package/skills/bang-motion/SKILL.md +583 -0
- package/skills/bang-motion/references/ae-bridge-higgsfield.md +160 -0
- package/skills/bang-motion/references/anti-ppt.md +110 -0
- package/skills/bang-motion/references/architecture.md +188 -0
- package/skills/bang-motion/references/explainer.md +579 -0
- package/skills/bang-motion/references/kartun-panggung.md +221 -0
- package/skills/bang-motion/references/opener-konsep.md +817 -0
- package/skills/bang-motion/references/roadmap.md +85 -0
- package/skills/bang-motion/references/techniques.md +690 -0
- package/skills/beat-sync-edit/SKILL.md +148 -0
- package/skills/book-video-factory/SKILL.md +139 -0
- package/skills/book-video-factory/references/first-run.md +50 -0
- package/skills/book-video-factory/references/paper-collage-explainer.md +127 -0
- package/skills/book-video-factory/references/quality-gates.md +87 -0
- package/skills/book-video-production/SKILL.md +211 -0
- package/skills/brag/SKILL.md +195 -0
- package/skills/brag/references/audio.md +312 -0
- package/skills/brag/references/step-1-inspect.md +125 -0
- package/skills/brag/references/step-2-plan.md +234 -0
- package/skills/brag/references/step-3-compose.md +199 -0
- package/skills/brag/references/step-4-deliver.md +141 -0
- package/skills/brag/references/tones.md +231 -0
- package/skills/brand-setup/SKILL.md +228 -0
- package/skills/brewreel/SKILL.md +491 -0
- package/skills/brewreel/docs/broll.en.md +252 -0
- package/skills/brewreel/docs/broll.md +252 -0
- package/skills/brewreel/docs/custom-shot.en.md +66 -0
- package/skills/brewreel/docs/custom-shot.md +103 -0
- package/skills/brewreel/docs/faq.en.md +90 -0
- package/skills/brewreel/docs/faq.md +90 -0
- package/skills/brewreel/docs/features.en.md +157 -0
- package/skills/brewreel/docs/features.md +157 -0
- package/skills/brewreel/docs/gallery.en.md +44 -0
- package/skills/brewreel/docs/gallery.md +44 -0
- package/skills/brewreel/docs/how-it-works.en.md +64 -0
- package/skills/brewreel/docs/how-it-works.md +64 -0
- package/skills/caption-animation/SKILL.md +216 -0
- package/skills/caption-animation/references/word-timed-captions.md +254 -0
- package/skills/cartcut-editing/SKILL.md +615 -0
- package/skills/cartcut-editing/references/html-typography.md +277 -0
- package/skills/cassette-video-edit/SKILL.md +129 -0
- package/skills/ccvideo/SKILL.md +264 -0
- package/skills/chekhov-dramaturgy/SKILL.md +367 -0
- package/skills/chekhov-dramaturgy/reference.md +375 -0
- package/skills/chengfeng-check-updates/SKILL.md +283 -0
- package/skills/cinematic-product-promo-skill/SKILL.md +295 -0
- package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +187 -0
- package/skills/cinematic-product-promo-skill/references/final-review.md +116 -0
- package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +199 -0
- package/skills/cinematic-product-promo-skill/references/jianying-export.md +183 -0
- package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +257 -0
- package/skills/cinematic-product-promo-skill/references/pipeline.md +393 -0
- package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +50 -0
- package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +65 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +39 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +38 -0
- package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +40 -0
- package/skills/claude-gif/SKILL.md +211 -0
- package/skills/claude-gif/references/gif-optimization.md +209 -0
- package/skills/claude-gif/references/perfect-loops.md +295 -0
- package/skills/claude-gif/references/platform-specs.md +138 -0
- package/skills/claude-gif/references/prompt-engineering.md +211 -0
- package/skills/claude-gif/references/remotion-gif.md +560 -0
- package/skills/codex-video-pipeline/SKILL.md +213 -0
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +10 -0
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +22 -0
- package/skills/codex-video-pipeline/references/captions.md +39 -0
- package/skills/codex-video-pipeline/references/cover-system.md +72 -0
- package/skills/codex-video-pipeline/references/cross-platform.md +77 -0
- package/skills/codex-video-pipeline/references/example-run.md +54 -0
- package/skills/codex-video-pipeline/references/first-run.md +130 -0
- package/skills/codex-video-pipeline/references/project-contract.md +54 -0
- package/skills/codex-video-pipeline/references/quality-gates.md +44 -0
- package/skills/codex-video-pipeline/references/research-and-script.md +50 -0
- package/skills/collage-broll-explainers/SKILL.md +429 -0
- package/skills/create-onboarding-video/SKILL.md +233 -0
- package/skills/cs-shotcraft-skill/SKILL.md +218 -0
- package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +207 -0
- package/skills/cs-shotcraft-skill/references/camera-table.md +88 -0
- package/skills/cs-shotcraft-skill/references/engineering.md +132 -0
- package/skills/cs-shotcraft-skill/references/final-review.md +118 -0
- package/skills/cs-shotcraft-skill/references/guided-free-creation.md +199 -0
- package/skills/cs-shotcraft-skill/references/jianying-export.md +183 -0
- package/skills/cs-shotcraft-skill/references/music-beat-sync.md +257 -0
- package/skills/cs-shotcraft-skill/references/pipeline.md +408 -0
- package/skills/cs-shotcraft-skill/references/product-machine.md +56 -0
- package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +50 -0
- package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +65 -0
- package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/cut-video/SKILL.md +387 -0
- package/skills/cyxj-hyperframes-overlay/SKILL.md +75 -0
- package/skills/cyxj-remotion-evolve/SKILL.md +123 -0
- package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +123 -0
- package/skills/demo-video-creation-skill/SKILL.md +152 -0
- package/skills/demo-video-creation-skill/references/capture-workflow.md +74 -0
- package/skills/demo-video-creation-skill/references/qc-checklist.md +61 -0
- package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +94 -0
- package/skills/demo-video-creation-skill/references/storytelling.md +86 -0
- package/skills/demo-video-creation-skill/references/visual-system.md +83 -0
- package/skills/demoday/SKILL.md +148 -0
- package/skills/develop-premiere-pro-mcp/SKILL.md +131 -0
- package/skills/diagram-animation/SKILL.md +200 -0
- package/skills/diagram-animation/references/diagram-and-chart-recipes.md +218 -0
- package/skills/diagram-tour/SKILL.md +287 -0
- package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +78 -0
- package/skills/docvideoer/SKILL.md +139 -0
- package/skills/draftcut/SKILL.md +104 -0
- package/skills/draftcut/docs/agent-bootstrap.md +64 -0
- package/skills/draftcut/docs/approvals.md +45 -0
- package/skills/draftcut/docs/audio-first-migration.md +35 -0
- package/skills/draftcut/docs/configuration.md +54 -0
- package/skills/draftcut/docs/getting-started.md +63 -0
- package/skills/draftcut/docs/harness-case-study.en.md +23 -0
- package/skills/draftcut/docs/harness-case-study.md +47 -0
- package/skills/draftcut/references/01-plan.md +30 -0
- package/skills/draftcut/references/03-deliver.md +26 -0
- package/skills/draftcut/references/04-reference-theme-prompt.md +7 -0
- package/skills/draftcut/references/05-social-loudness.md +58 -0
- package/skills/draftcut/references/06-modern-components.md +72 -0
- package/skills/easyedit/SKILL.md +66 -0
- package/skills/erduo-broll-loop-engineering/SKILL.md +136 -0
- package/skills/erduo-broll-loop-engineering/references/animation-craft.md +208 -0
- package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +107 -0
- package/skills/erduo-broll-loop-engineering/references/handoff-template.md +70 -0
- package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +122 -0
- package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +171 -0
- package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +322 -0
- package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +334 -0
- package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +76 -0
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +174 -0
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +135 -0
- package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +7 -0
- package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +65 -0
- package/skills/explainer-assets/SKILL.md +98 -0
- package/skills/explainer-video/SKILL.md +146 -0
- package/skills/framewright/SKILL.md +324 -0
- package/skills/framewright/references/audio.md +230 -0
- package/skills/framewright/references/guide.md +276 -0
- package/skills/framewright/references/painting.md +425 -0
- package/skills/framewright/references/photo.md +75 -0
- package/skills/framewright/references/questionnaire.md +115 -0
- package/skills/framewright/references/styles.md +388 -0
- package/skills/framewright/references/troubleshooting.md +119 -0
- package/skills/framewright/references/world.md +215 -0
- package/skills/gbro-collage-broll/SKILL.md +435 -0
- package/skills/gbro-collage-info/SKILL.md +135 -0
- package/skills/gbro-collage-info/references/motion-grammar.md +66 -0
- package/skills/gbro-collage-info/references/production.md +67 -0
- package/skills/gbro-collage-info/references/style-system.md +38 -0
- package/skills/gemini-tts/SKILL.md +208 -0
- package/skills/gemini-tts/references/prompting-guide.md +169 -0
- package/skills/gen/SKILL.md +282 -0
- package/skills/ghost-editor/SKILL.md +437 -0
- package/skills/ghost-editor/docs/HOW-IT-WORKS.md +82 -0
- package/skills/ghost-editor/docs/PLAYBOOK.md +139 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +17 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +13 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +20 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +17 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +22 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +22 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +20 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/models.md +11 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +13 -0
- package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +15 -0
- package/skills/git-story-film/SKILL.md +220 -0
- package/skills/git-story-film/examples/raven-story/FONTS.md +8 -0
- package/skills/git-story-film/examples/raven-story/OUTLINE.md +93 -0
- package/skills/git-story-film/references/craft.md +148 -0
- package/skills/git-story-film/references/directing.md +185 -0
- package/skills/git-story-film/references/forms.md +150 -0
- package/skills/git-story-film/references/production.md +150 -0
- package/skills/git-story-film/references/story.md +137 -0
- package/skills/git-story-film/references/text-and-fonts.md +90 -0
- package/skills/guizang-product-video-skill/SKILL.md +96 -0
- package/skills/guizang-product-video-skill/references/audio-and-qa.md +113 -0
- package/skills/guizang-product-video-skill/references/audio-sourcing.md +80 -0
- package/skills/guizang-product-video-skill/references/case-study.md +63 -0
- package/skills/guizang-product-video-skill/references/component-pipeline.md +86 -0
- package/skills/guizang-product-video-skill/references/cover.md +43 -0
- package/skills/guizang-product-video-skill/references/direction.md +91 -0
- package/skills/guizang-product-video-skill/references/onboarding.md +98 -0
- package/skills/guizang-product-video-skill/references/repo-and-style.md +44 -0
- package/skills/guizang-product-video-skill/references/review.md +38 -0
- package/skills/guizang-product-video-skill/references/starter.md +168 -0
- package/skills/guizang-product-video-skill/references/story-and-copy.md +88 -0
- package/skills/guizang-product-video-skill/references/visual-vocabulary.md +78 -0
- package/skills/guofeng-paper-video/SKILL.md +159 -0
- package/skills/guofeng-paper-video/style/design.md +43 -0
- package/skills/guofeng-paper-video/style/palette.md +21 -0
- package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +19 -0
- package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +37 -0
- package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +27 -0
- package/skills/guofeng-paper-video/style//345/210/206/351/225/234/344/270/216/345/233/276/345/261/202/350/247/204/350/214/203.md +67 -0
- package/skills/guofeng-paper-video/style//347/272/270/347/211/207/347/264/240/346/235/220/350/247/204/350/214/203.md +29 -0
- package/skills/hand-drawn-explainer-video-nikola/SKILL.md +113 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +18 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +22 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +28 -0
- package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +35 -0
- package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +24 -0
- package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +67 -0
- package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +79 -0
- package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +49 -0
- package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +82 -0
- package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +39 -0
- package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +30 -0
- package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +37 -0
- package/skills/hbg-life-simulation/SKILL.md +285 -0
- package/skills/hbg-life-simulation/references/image-generation.md +53 -0
- package/skills/hbg-life-simulation/references/local-account-api.md +112 -0
- package/skills/hbg-life-simulation/references/opening-system.md +45 -0
- package/skills/hbg-life-simulation/references/project-spec.md +62 -0
- package/skills/hbg-life-simulation/references/render-and-qa.md +107 -0
- package/skills/hbg-life-simulation/references/storyboarding.md +69 -0
- package/skills/hbg-life-simulation/references/style-system.md +80 -0
- package/skills/hbg-life-simulation/references/visual-system.md +44 -0
- package/skills/heygen-avatar/SKILL.md +489 -0
- package/skills/heygen-avatar/references/asset-routing.md +86 -0
- package/skills/heygen-avatar/references/avatar-creation.md +181 -0
- package/skills/heygen-avatar/references/troubleshooting.md +137 -0
- package/skills/heytea-doodle-poster/SKILL.md +132 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +103 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +122 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +106 -0
- package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +264 -0
- package/skills/heytea-doodle-poster/references/evaluation.md +246 -0
- package/skills/heytea-doodle-poster/references/lettering-guide.md +213 -0
- package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +101 -0
- package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +56 -0
- package/skills/heytea-doodle-poster/references/style-guide.md +412 -0
- package/skills/heytea-doodle-poster-hosted/SKILL.md +132 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +103 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +122 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +106 -0
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +264 -0
- package/skills/heytea-doodle-poster-hosted/references/evaluation.md +246 -0
- package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +213 -0
- package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +101 -0
- package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +56 -0
- package/skills/heytea-doodle-poster-hosted/references/style-guide.md +412 -0
- package/skills/html2video/SKILL.md +290 -0
- package/skills/html2video/references/cjk-type.md +173 -0
- package/skills/html2video/references/editorial.md +145 -0
- package/skills/html2video/references/narration.md +111 -0
- package/skills/html2video/references/pitfalls.md +238 -0
- package/skills/html2video/references/shots.md +198 -0
- package/skills/html2video/references/storyboard.md +323 -0
- package/skills/hyperdirector/SKILL.md +202 -0
- package/skills/hyperdirector/docs/audio-workflow.md +160 -0
- package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +244 -0
- package/skills/hyperdirector/docs/brand-kit-setup.md +322 -0
- package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +277 -0
- package/skills/hyperdirector/docs/cursor-development-notes.md +474 -0
- package/skills/hyperdirector/docs/faq.md +285 -0
- package/skills/hyperdirector/docs/faq.zh-CN.md +198 -0
- package/skills/hyperdirector/docs/first-video.md +320 -0
- package/skills/hyperdirector/docs/first-video.zh-CN.md +265 -0
- package/skills/hyperdirector/docs/installation.md +254 -0
- package/skills/hyperdirector/docs/installation.zh-CN.md +222 -0
- package/skills/hyperdirector/docs/quickstart.md +203 -0
- package/skills/hyperframes/SKILL.md +117 -0
- package/skills/hyperframes/references/captions.md +46 -0
- package/skills/hyperframes/references/film.md +48 -0
- package/skills/hyperframes/references/format.md +158 -0
- package/skills/hyperframes/references/look.md +69 -0
- package/skills/hyperframes/references/motion.md +95 -0
- package/skills/hyperframes/references/overlays.md +39 -0
- package/skills/hyperframes/references/review.md +51 -0
- package/skills/hyperframes/references/runtimes.md +69 -0
- package/skills/hyperframes/references/skill-lifecycle.md +49 -0
- package/skills/hyperframes/references/sound.md +43 -0
- package/skills/hyperframes/references/spec.md +76 -0
- package/skills/hyperframes/references/story.md +103 -0
- package/skills/hyperframes-motion-director/SKILL.md +920 -0
- package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +185 -0
- package/skills/hyperframes-motion-director/references/audio-sync.md +83 -0
- package/skills/hyperframes-motion-director/references/design-engineering.md +156 -0
- package/skills/hyperframes-motion-director/references/gsap-choreography.md +202 -0
- package/skills/hyperframes-motion-director/references/hyperframes-stability.md +99 -0
- package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +227 -0
- package/skills/hyperframes-motion-director/references/motion-background-system.md +165 -0
- package/skills/hyperframes-motion-director/references/motion-craft.md +182 -0
- package/skills/hyperframes-motion-director/references/premium-product-promo.md +287 -0
- package/skills/hyperframes-motion-director/references/text-over-background-layout.md +221 -0
- package/skills/hyperframes-motion-director/references/visual-standard.md +174 -0
- package/skills/hyperframes-motion-director/references/workflow.md +320 -0
- package/skills/hypit/SKILL.md +367 -0
- package/skills/hypit/references/creation/brief.md +93 -0
- package/skills/hypit/references/creation/script-and-time.md +259 -0
- package/skills/hypit/references/creation/transformations.md +143 -0
- package/skills/hypit/references/playbooks/craft/b-roll.md +94 -0
- package/skills/hypit/references/playbooks/craft/caption-tracking.md +126 -0
- package/skills/hypit/references/playbooks/craft/captions.md +253 -0
- package/skills/hypit/references/playbooks/craft/generated-dependencies.md +38 -0
- package/skills/hypit/references/playbooks/craft/graphic-compositions.md +85 -0
- package/skills/hypit/references/playbooks/craft/motion-graphics.md +68 -0
- package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +51 -0
- package/skills/hypit/references/playbooks/craft/sound-mix.md +70 -0
- package/skills/hypit/references/playbooks/formats/narration-led-demo.md +87 -0
- package/skills/image/SKILL.md +153 -0
- package/skills/image/references/characters.md +86 -0
- package/skills/image/references/creative-direction.md +137 -0
- package/skills/image/references/de-slop.md +95 -0
- package/skills/image/references/dimensional.md +88 -0
- package/skills/image/references/editing.md +112 -0
- package/skills/image/references/golden-rules.md +198 -0
- package/skills/image/references/gpt-image.md +228 -0
- package/skills/image/references/models.md +78 -0
- package/skills/image/references/multi-panel.md +354 -0
- package/skills/image/references/nano-banana.md +150 -0
- package/skills/image/references/patterns/character-design.md +150 -0
- package/skills/image/references/patterns/ecommerce.md +124 -0
- package/skills/image-smixs/SKILL.md +153 -0
- package/skills/image-smixs/references/characters.md +86 -0
- package/skills/image-smixs/references/creative-direction.md +137 -0
- package/skills/image-smixs/references/de-slop.md +95 -0
- package/skills/image-smixs/references/dimensional.md +88 -0
- package/skills/image-smixs/references/editing.md +112 -0
- package/skills/image-smixs/references/golden-rules.md +198 -0
- package/skills/image-smixs/references/gpt-image.md +228 -0
- package/skills/image-smixs/references/models.md +78 -0
- package/skills/image-smixs/references/multi-panel.md +354 -0
- package/skills/image-smixs/references/nano-banana.md +150 -0
- package/skills/image-smixs/references/patterns/character-design.md +150 -0
- package/skills/image-smixs/references/patterns/ecommerce.md +124 -0
- package/skills/image-story-video-wizard/SKILL.md +148 -0
- package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +29 -0
- package/skills/image-story-video-wizard/references/host-routing.md +44 -0
- package/skills/image-story-video-wizard/references/state-schema.md +79 -0
- package/skills/image-story-video-wizard/references/workflow.md +203 -0
- package/skills/image-story-video-wizard/references/writing-and-review.md +60 -0
- package/skills/ip-as-logo/SKILL.md +151 -0
- package/skills/ip-as-logo-s1dashu/SKILL.md +151 -0
- package/skills/jtxvideo-skill/SKILL.md +337 -0
- package/skills/kinetic-reel/SKILL.md +140 -0
- package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +51 -0
- package/skills/kinetic-reel/references/sound.md +40 -0
- package/skills/kinetic-reel/references/style-guide.md +79 -0
- package/skills/knowledge-explainer-skill/SKILL.md +149 -0
- package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +61 -0
- package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +20 -0
- package/skills/knowledge-explainer-skill/examples/before_after_demo.md +38 -0
- package/skills/knowledge-explainer-skill/examples/cta_outro.md +11 -0
- package/skills/knowledge-explainer-skill/examples/double_pendulum.md +20 -0
- package/skills/knowledge-explainer-skill/examples/paper_fold.md +20 -0
- package/skills/knowledge-explainer-skill/examples/script.md +40 -0
- package/skills/lanshu-create-ai-presenter-video/SKILL.md +253 -0
- package/skills/lanshu-create-ai-presenter-video/references/editing.md +67 -0
- package/skills/lanshu-create-ai-presenter-video/references/generation.md +94 -0
- package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +83 -0
- package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +189 -0
- package/skills/laoxu-video-script/SKILL.md +117 -0
- package/skills/laoxu-video-script/references/cases.md +305 -0
- package/skills/laoxu-video-script/references/de-ai.md +32 -0
- package/skills/laoxu-video-script/references/diagnostics.md +67 -0
- package/skills/laoxu-video-script/references/format.md +62 -0
- package/skills/laoxu-video-script/references/formulas.md +43 -0
- package/skills/laoxu-video-script/references/method.md +115 -0
- package/skills/laoxu-video-script/references/motifs-and-lines.md +829 -0
- package/skills/laoxu-video-script/references/persona.md +38 -0
- package/skills/laoxu-video-script/references/qihao-path.md +35 -0
- package/skills/laoxu-video-script/references/qihao-xinfa.md +39 -0
- package/skills/laoxu-video-script/references/redlines.md +26 -0
- package/skills/lemo-opuscar/SKILL.md +67 -0
- package/skills/lipnardo/SKILL.md +308 -0
- package/skills/lipnardo/examples/batch-personalized.md +44 -0
- package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +56 -0
- package/skills/lipnardo/examples/single-video.md +44 -0
- package/skills/lipnardo/references/avatar-types.md +42 -0
- package/skills/lipnardo/references/credit-costs.md +39 -0
- package/skills/lipnardo/references/error-codes.md +66 -0
- package/skills/lipnardo/references/heygen-api-reference.md +416 -0
- package/skills/ll-video-decomposer/SKILL.md +105 -0
- package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +44 -0
- package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +41 -0
- package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +48 -0
- package/skills/ll-video-decomposer/references/single-video-report-template.md +47 -0
- package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +30 -0
- package/skills/ll-video-decomposer/references/transcription-routing.md +65 -0
- package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +30 -0
- package/skills/ltx2-video/SKILL.md +193 -0
- package/skills/ltx2-video/references/mode_ux.md +293 -0
- package/skills/make-ai-short/SKILL.md +130 -0
- package/skills/make-blender-education-video/SKILL.md +247 -0
- package/skills/make-blender-education-video/references/evidence-and-explanation.md +62 -0
- package/skills/make-blender-education-video/references/github-workflow-discovery.md +55 -0
- package/skills/make-blender-education-video/references/production-workflow.md +62 -0
- package/skills/make-blender-education-video/references/story-patterns.md +65 -0
- package/skills/make-blender-education-video/references/visual-quality.md +82 -0
- package/skills/manage-storyboard-projects/SKILL.md +128 -0
- package/skills/manim-composer/SKILL.md +176 -0
- package/skills/manim-composer/references/narrative-patterns.md +125 -0
- package/skills/manim-composer/references/scene-examples.md +216 -0
- package/skills/manim-composer/references/visual-techniques.md +223 -0
- package/skills/manim-composer/templates/scenes-template.md +147 -0
- package/skills/monet-ai-editor-monet/SKILL.md +367 -0
- package/skills/motion-graphics/SKILL.md +206 -0
- package/skills/motion-graphics/references/craft.md +136 -0
- package/skills/motion-graphics/references/engine.md +130 -0
- package/skills/motion-graphics/references/export.md +67 -0
- package/skills/motion-graphics/references/physics.md +100 -0
- package/skills/motion-graphics/references/verify.md +124 -0
- package/skills/motion-video/SKILL.md +133 -0
- package/skills/motion-video/references/audio-and-beat-sync.md +109 -0
- package/skills/motion-video/references/composition-contract.md +107 -0
- package/skills/motion-video/references/production-pipeline.md +147 -0
- package/skills/motion-video/references/style-comic-spiderverse.md +87 -0
- package/skills/motion-video/references/style-glass-keynote.md +69 -0
- package/skills/motion-video-maker/SKILL.md +1452 -0
- package/skills/motion-video-maker/reference/components.md +451 -0
- package/skills/motion-video-maker/reference/workflow.md +190 -0
- package/skills/motioncraft/SKILL.md +221 -0
- package/skills/motioncraft/references/animation-system.md +57 -0
- package/skills/motioncraft/references/assets-and-licensing.md +21 -0
- package/skills/motioncraft/references/customization.md +52 -0
- package/skills/motioncraft/references/gpu-cloud-render.md +15 -0
- package/skills/motioncraft/references/music.md +43 -0
- package/skills/motioncraft/references/phase1-planning-and-preview.md +74 -0
- package/skills/motioncraft/references/phase2-timeline-audio.md +33 -0
- package/skills/motioncraft/references/phase3-pixel-review.md +13 -0
- package/skills/motioncraft/references/phase4-templates.md +30 -0
- package/skills/motioncraft/references/preflight.md +27 -0
- package/skills/motioncraft/references/qa.md +53 -0
- package/skills/motioncraft/references/reference-analysis.md +37 -0
- package/skills/narrator-ai-cli/SKILL.md +256 -0
- package/skills/narrator-ai-cli/references/magic-video.md +205 -0
- package/skills/narrator-ai-cli/references/operations.md +230 -0
- package/skills/narrator-ai-cli/references/resources.md +126 -0
- package/skills/narrator-ai-cli/references/workflows.md +332 -0
- package/skills/newcut-video-clipping/SKILL.md +194 -0
- package/skills/newcut-video-clipping/references/examples.md +59 -0
- package/skills/newcut-video-clipping/references/provider-config.md +110 -0
- package/skills/newcut-video-clipping/references/quality-check.md +35 -0
- package/skills/newcut-video-clipping/references/semantic-plan.md +65 -0
- package/skills/notes-to-video/SKILL.md +476 -0
- package/skills/openchatcut/SKILL.md +100 -0
- package/skills/openchatcut/references/editing-workflow.md +54 -0
- package/skills/openchatcut/references/getting-started.md +106 -0
- package/skills/openchatcut/references/known-errors.md +62 -0
- package/skills/openstoryline-install/SKILL.md +228 -0
- package/skills/orca-motion/SKILL.md +100 -0
- package/skills/orca-motion/references/api.md +100 -0
- package/skills/orca-motion/references/integration.md +59 -0
- package/skills/orca-motion/references/kinetic-type.md +59 -0
- package/skills/orca-motion/references/principles.md +76 -0
- package/skills/package-talking-head-video/SKILL.md +90 -0
- package/skills/package-talking-head-video/docs/EXAMPLES.md +18 -0
- package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +29 -0
- package/skills/package-talking-head-video/docs/USAGE.md +83 -0
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +144 -0
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +1099 -0
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +154 -0
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +365 -0
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +56 -0
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +8 -0
- package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +34 -0
- package/skills/package-talking-head-video/references/director-rules.md +29 -0
- package/skills/package-talking-head-video/references/motion-and-illustration.md +25 -0
- package/skills/paper-cut/SKILL.md +164 -0
- package/skills/paper-cut/references/asset-spec.md +47 -0
- package/skills/paper-cut/references/audio-and-chatcut.md +26 -0
- package/skills/paper-cut/references/hyperframes-assembly.md +47 -0
- package/skills/paper-cut/references/image-led-production.md +65 -0
- package/skills/paper-cut/references/storyboard-schema.md +48 -0
- package/skills/paper-cut/references/workflow.md +39 -0
- package/skills/personal-ip-brand-intro/SKILL.md +216 -0
- package/skills/personal-ip-brand-intro/references/intake-schema.md +79 -0
- package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +40 -0
- package/skills/personal-ip-brand-intro/references/originality-rules.md +42 -0
- package/skills/personal-ip-brand-intro/references/qa-checklist.md +60 -0
- package/skills/personal-ip-brand-intro/references/rhythm-routing.md +41 -0
- package/skills/personal-ip-brand-intro/references/storyboard-contract.md +42 -0
- package/skills/pixel2motion/SKILL.md +279 -0
- package/skills/pixel2motion/references/html-delivery-template.md +42 -0
- package/skills/pixel2motion/references/motion-personality.md +109 -0
- package/skills/pixel2motion/references/reveal-patterns.md +163 -0
- package/skills/pixel2motion/references/ribbon-fitting.md +90 -0
- package/skills/pixel2motion/references/twelve-principles-for-logos.md +116 -0
- package/skills/premiere-batch-delivery/SKILL.md +71 -0
- package/skills/premiere-pro-mcp/SKILL.md +161 -0
- package/skills/promo-creator-skills/SKILL.md +209 -0
- package/skills/promo-creator-skills/references/mureka_prompt_guide.md +251 -0
- package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +100 -0
- package/skills/promo-video/SKILL.md +408 -0
- package/skills/qisi-video-remix/SKILL.md +134 -0
- package/skills/qisi-video-remix/examples/creative-plan.md +133 -0
- package/skills/qisi-video-remix/references/delivery-guide.md +63 -0
- package/skills/reel-video/SKILL.md +237 -0
- package/skills/remotion-ad-video/SKILL.md +252 -0
- package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +60 -0
- package/skills/remotion-ad-video/references/ad-brief-contract.md +235 -0
- package/skills/remotion-ad-video/references/ad-exemplars.md +186 -0
- package/skills/remotion-ad-video/references/ad-intake.md +54 -0
- package/skills/remotion-ad-video/references/asset-harvest.md +56 -0
- package/skills/remotion-ad-video/references/audio-caption-system.md +202 -0
- package/skills/remotion-ad-video/references/concept-contract.md +128 -0
- package/skills/remotion-ad-video/references/creative-direction.md +146 -0
- package/skills/remotion-ad-video/references/fast-test-workflow.md +86 -0
- package/skills/remotion-ad-video/references/game-ad-patterns.md +75 -0
- package/skills/remotion-ad-video/references/hyperframes-output.md +90 -0
- package/skills/remotion-ad-video/references/industry-angle-library.md +71 -0
- package/skills/remotion-ads/SKILL.md +278 -0
- package/skills/remotion-ads/references/ad-copywriting.md +229 -0
- package/skills/remotion-ads/references/animations.md +693 -0
- package/skills/remotion-ads/references/brand-config-template.md +355 -0
- package/skills/remotion-ads/references/captions.md +529 -0
- package/skills/remotion-ads/references/carousels.md +580 -0
- package/skills/remotion-ads/references/components.md +897 -0
- package/skills/remotion-ads/references/copy-frameworks.md +144 -0
- package/skills/remotion-ads/references/formats.md +436 -0
- package/skills/remotion-ads/references/gemini-tts.md +473 -0
- package/skills/remotion-ads/references/html-in-canvas.md +555 -0
- package/skills/remotion-ads/references/local-assets.md +543 -0
- package/skills/remotion-ads/references/music.md +656 -0
- package/skills/remotion-code-motion-explainer/SKILL.md +178 -0
- package/skills/remotion-code-motion-explainer/references/code-motion-design.md +86 -0
- package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +93 -0
- package/skills/remotion-code-motion-explainer/references/production-and-qc.md +99 -0
- package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +48 -0
- package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +62 -0
- package/skills/remotion-motion-graphics/SKILL.md +169 -0
- package/skills/remotion-motion-graphics/references/patterns.md +355 -0
- package/skills/remotion-motion-graphics/references/polish.md +102 -0
- package/skills/remotion-motion-graphics/references/scaffold.md +144 -0
- package/skills/remotion-motion-graphics/references/traps.md +152 -0
- package/skills/remotion-resemble-ai/SKILL.md +879 -0
- package/skills/remotion-resemble-ai/rules/resemble-captions.md +350 -0
- package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +305 -0
- package/skills/remotion-resemble-ai/rules/resemble-setup.md +284 -0
- package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +225 -0
- package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +239 -0
- package/skills/remotion-resemble-ai/rules/resemble-voices.md +213 -0
- package/skills/remotion-resemble-ai/rules/visual-animations.md +567 -0
- package/skills/riffkit/SKILL.md +196 -0
- package/skills/riffkit/examples/any-look-styles.md +11 -0
- package/skills/riffkit/examples/faceless-and-auto.md +16 -0
- package/skills/riffkit/examples/localize-spanish.md +18 -0
- package/skills/riffkit/examples/tiktok-shop-product.md +22 -0
- package/skills/riffkit/references/anchor.md +62 -0
- package/skills/riffkit/references/api.md +806 -0
- package/skills/riffkit/references/details.md +153 -0
- package/skills/riffkit/references/errors.md +69 -0
- package/skills/riffkit/references/intents.md +29 -0
- package/skills/saas-motion-video/SKILL.md +71 -0
- package/skills/script-to-video/SKILL.md +2627 -0
- package/skills/shorts/SKILL.md +372 -0
- package/skills/shorts/references/caption-styles.md +105 -0
- package/skills/shorts/references/platform-specs.md +149 -0
- package/skills/shorts/references/remotion-patterns.md +180 -0
- package/skills/shorts/references/scoring-rubric.md +106 -0
- package/skills/smart-video-editor/SKILL.md +327 -0
- package/skills/smart-video-editor/docs/FONTS.md +57 -0
- package/skills/story-telling/SKILL.md +222 -0
- package/skills/story-telling/rules/composition.md +130 -0
- package/skills/story-telling/rules/images.md +119 -0
- package/skills/story-telling/rules/models.md +98 -0
- package/skills/story-telling/rules/narration.md +87 -0
- package/skills/story-telling/rules/pitfalls.md +140 -0
- package/skills/story-telling/rules/story-formats.md +108 -0
- package/skills/story-telling/rules/story-json.md +143 -0
- package/skills/story-telling/rules/voices.md +114 -0
- package/skills/story-telling/rules/workflow.md +105 -0
- package/skills/story-to-handdrawn-video/SKILL.md +216 -0
- package/skills/story-to-handdrawn-video/references/asset-workflow.md +24 -0
- package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +27 -0
- package/skills/su-card-to-video/SKILL.md +103 -0
- package/skills/talking-head-video-pipeline/SKILL.md +224 -0
- package/skills/talking-head-video-pipeline/examples/prompts.md +217 -0
- package/skills/talking-head-video-pipeline/references/asr-adapters.md +51 -0
- package/skills/talking-head-video-pipeline/references/caption-workflow.md +53 -0
- package/skills/talking-head-video-pipeline/references/export-recipes.md +78 -0
- package/skills/talking-head-video-pipeline/references/layout-safety.md +49 -0
- package/skills/talking-head-video-pipeline/references/video-use-integration.md +71 -0
- package/skills/talking-head-video-pipeline/references/workflows/captions.md +52 -0
- package/skills/talking-head-video-pipeline/references/workflows/design.md +77 -0
- package/skills/talking-head-video-pipeline/references/workflows/doctor.md +51 -0
- package/skills/talking-head-video-pipeline/references/workflows/export.md +50 -0
- package/skills/talking-head-video-pipeline/references/workflows/init.md +51 -0
- package/skills/talking-head-video-pipeline/references/workflows/learn.md +36 -0
- package/skills/text-to-lottie/SKILL.md +202 -0
- package/skills/text-to-lottie/references/chapterization-transition-grammar.md +132 -0
- package/skills/text-to-lottie/references/design-taste.md +292 -0
- package/skills/text-to-lottie/references/lottie-spec-map.md +82 -0
- package/skills/text-to-lottie/references/motion-taste.md +260 -0
- package/skills/text-to-lottie/references/player-contract.md +325 -0
- package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +65 -0
- package/skills/text-to-lottie/references/recipe-data-stats.md +104 -0
- package/skills/text-to-lottie/references/recipe-diagram-technical.md +106 -0
- package/skills/text-to-lottie/references/recipe-loaders-icons.md +70 -0
- package/skills/text-to-lottie/references/recipe-logo.md +72 -0
- package/skills/text-to-lottie/references/recipe-lower-thirds.md +62 -0
- package/skills/text-to-lottie/references/recipe-product-promo.md +99 -0
- package/skills/ultrademo/SKILL.md +212 -0
- package/skills/video-assemble/SKILL.md +101 -0
- package/skills/video-assemble-zenstory-ai/SKILL.md +153 -0
- package/skills/video-assemble-zenstory-ai/references/audio-modes.md +63 -0
- package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +77 -0
- package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +14 -0
- package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +103 -0
- package/skills/video-assemble-zenstory-ai/references/packaging.md +44 -0
- package/skills/video-assemble-zenstory-ai/references/source-score.md +146 -0
- package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +202 -0
- package/skills/video-editing/SKILL.md +688 -0
- package/skills/video-explainer/SKILL.md +163 -0
- package/skills/video-explainer/references/brief-to-script.md +56 -0
- package/skills/video-explainer/references/errors-and-privacy.md +18 -0
- package/skills/video-explainer/references/motion-storyboard.md +82 -0
- package/skills/video-explainer/references/render-and-verify.md +62 -0
- package/skills/video-explainer/references/review-gate.md +82 -0
- package/skills/video-explainer/references/setup-and-doctor.md +33 -0
- package/skills/video-script-builder/SKILL.md +329 -0
- package/skills/video-script-builder/examples/quick-start-transcript.md +19 -0
- package/skills/video-script-builder/references/audio-workflow.md +84 -0
- package/skills/video-script-builder/references/caption-components.md +70 -0
- package/skills/video-script-builder/references/common-pitfalls.md +80 -0
- package/skills/video-script-builder/references/component-catalog.md +197 -0
- package/skills/video-script-builder/references/component-recipes.md +165 -0
- package/skills/video-script-builder/references/gsap-patterns.md +112 -0
- package/skills/video-script-builder/references/pacing-rules.md +78 -0
- package/skills/video-script-builder/references/quality-checklist.md +98 -0
- package/skills/video-script-builder/references/remotion-patterns.md +211 -0
- package/skills/video-script-builder/references/shader-transitions.md +115 -0
- package/skills/video-script-builder/references/taste-principles.md +160 -0
- package/skills/video-scrub/SKILL.md +216 -0
- package/skills/video-scrub/references/profiles.md +89 -0
- package/skills/video-scrub/references/residue-map.md +204 -0
- package/skills/video-short-maker/SKILL.md +182 -0
- package/skills/video-shot-analysis-feishu/SKILL.md +173 -0
- package/skills/video-shotcraft/SKILL.md +267 -0
- package/skills/video-shotcraft/docs/deepseek-harness.md +69 -0
- package/skills/video-shotcraft/references/aesthetic-rules.md +177 -0
- package/skills/video-shotcraft/references/final-review.md +112 -0
- package/skills/video-shotcraft/references/guided-free-creation.md +199 -0
- package/skills/video-shotcraft/references/jianying-export.md +182 -0
- package/skills/video-shotcraft/references/music-beat-sync.md +219 -0
- package/skills/video-shotcraft/references/pipeline.md +390 -0
- package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +50 -0
- package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +65 -0
- package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +37 -0
- package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +39 -0
- package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +38 -0
- package/skills/video-shotcraft-vincentwei10/SKILL.md +316 -0
- package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +187 -0
- package/skills/video-shotcraft-vincentwei10/references/final-review.md +116 -0
- package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +199 -0
- package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +183 -0
- package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +257 -0
- package/skills/video-shotcraft-vincentwei10/references/pipeline.md +401 -0
- package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +111 -0
- package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +50 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +62 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +41 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +52 -0
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +39 -0
- package/skills/video-structure-analyzer/SKILL.md +148 -0
- package/skills/video-structure-analyzer/examples/xhs-rook-time-spend/xhs-rook-time-spend_/346/213/211/347/211/207/346/213/206/350/247/243.md +50 -0
- package/skills/video-structure-analyzer/examples/xhs-smelly-cat/xhs-smelly-cat_/346/213/211/347/211/207/346/213/206/350/247/243.md +19 -0
- package/skills/video-toolkit/SKILL.md +686 -0
- package/skills/videocut/SKILL.md +159 -0
- package/skills/videodb/SKILL.md +497 -0
- package/skills/videodb/reference/api-reference.md +741 -0
- package/skills/videodb/reference/capture-reference.md +399 -0
- package/skills/videodb/reference/capture.md +110 -0
- package/skills/videodb/reference/editor-reference.md +506 -0
- package/skills/videodb/reference/editor.md +389 -0
- package/skills/videodb/reference/generative.md +344 -0
- package/skills/videodb/reference/indexing-reference.md +481 -0
- package/skills/videodb/reference/indexing.md +537 -0
- package/skills/videodb/reference/legacy/index-reference.md +223 -0
- package/skills/videodb/reference/legacy/index.md +241 -0
- package/skills/videodb/reference/legacy/search.md +249 -0
- package/skills/videodb/reference/migration.md +113 -0
- package/skills/vlog-auto-edit/SKILL.md +982 -0
- package/skills/vlog-auto-edit/examples/project_structure.md +84 -0
- package/skills/vox-animated-ad-mcp/SKILL.md +419 -0
- package/skills/vox-director/SKILL.md +351 -0
- package/skills/vox-director/references/beat-layer.md +143 -0
- package/skills/vox-director/references/host-mode.md +120 -0
- package/skills/vox-director/references/local-engine.md +73 -0
- package/skills/vox-director/references/models-and-gotchas.md +91 -0
- package/skills/vox-director/references/prompt-guide.md +275 -0
- package/skills/vox-director/references/voices.md +59 -0
- package/skills/xingchen-vox-collage/SKILL.md +251 -0
- package/skills/xingchen-vox-collage/references/asset-layer-contract.md +98 -0
- package/skills/xingchen-vox-collage/references/creative-exploration.md +19 -0
- package/skills/xingchen-vox-collage/references/learned-branches.md +34 -0
- package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +77 -0
- package/skills/xingchen-vox-collage/references/visual-language.md +74 -0
- package/skills/xingchen-vox-collage/references/visual-qa.md +59 -0
- package/skills/youtube/SKILL.md +147 -0
- package/skills/youtube/references/algorithm-guide.md +59 -0
- package/skills/youtube/references/analytics-benchmarks.md +67 -0
- package/skills/youtube/references/dataforseo-integration.md +51 -0
- package/skills/youtube/references/monetization-guide.md +62 -0
- package/skills/youtube/references/repurposing-guide.md +54 -0
- package/skills/youtube/references/retention-scripting-guide.md +75 -0
- package/skills/youtube/references/seo-playbook.md +77 -0
- package/skills/youtube/references/shorts-playbook.md +64 -0
- package/skills/youtube/references/thumbnail-ctr-guide.md +73 -0
- package/skills/youtube-shorts-factory/SKILL.md +358 -0
- package/skills/youtube-shorts-factory/resources/adaptation-guide.md +133 -0
- package/skills/youtube-shorts-factory/resources/storyboard-template.md +271 -0
- package/skills/youtube-shorts-factory/resources/workflow-steps.md +139 -0
- package/studio/client.mjs +3 -3
- package/studio/server/server.mjs +31 -3
- package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +1 -0
- package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +2 -0
- package/studio/ui/dist/assets/apple-touch-icon-ClxQ7j-O.png +0 -0
- package/studio/ui/dist/assets/{es-BRUzvuoM.js → es-AqUfIkAy.js} +1 -1
- package/studio/ui/dist/assets/favicon-Blwx8Trs.png +0 -0
- package/studio/ui/dist/assets/index-C7moXjTY.css +1 -0
- package/studio/ui/dist/assets/index-DdU5QNpY.js +1623 -0
- package/studio/ui/dist/assets/{ja-Cth-uDcW.js → ja-YwiCB4QQ.js} +1 -1
- package/studio/ui/dist/assets/{ko-upvw591D.js → ko-CKtBPDze.js} +1 -1
- package/studio/ui/dist/assets/{zh-CN-BCfJFazB.js → zh-CN-DtNEwKWJ.js} +1 -1
- package/studio/ui/dist/index.html +4 -3
- package/studio/ui/dist/assets/ExportCenter-F-2vF-lQ.js +0 -1
- package/studio/ui/dist/assets/SettingsModal-BgVYguNu.js +0 -2
- package/studio/ui/dist/assets/index-Bhg-9dA3.css +0 -1
- package/studio/ui/dist/assets/index-CWur1Iw9.js +0 -1625
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as W,R as m,j as e,P as ye,C as G,a as ke,u as M,s as T,L as P,b as Pe,d as Q,D as ue,e as J,f as Be,X as we,B as ge,M as Ue,g as Ne,E as Se,h as Ie,T as Ce,i as Ee,p as _e,r as We,S as He,k as Ge,l as Ve,m as Ye,n as Je,o as fe,q as Ze,t as $e,v as oe,w as Qe,x as ae,y as Me,z as Xe}from"./index-DdU5QNpY.js";const et=W("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);const tt=W("Keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]);const st=W("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const nt=W("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);const at=W("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]);const rt=W("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);const it=W("SquareTerminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),lt=Object.freeze({deepseek:"settings.agents.presetDeepSeek"});function ot(t,s,a){const n=lt[t];return n?a(n):s}const ct=["codex","claude","gemini","copilot","cursor","opencode","codebuddy","qwen","kimi"],dt=["deepseek"];function te(t){return dt.includes(t)}function xe({label:t,value:s,options:a,onChange:n,width:r}){const[c,o]=m.useState(!1),x=m.useRef(null),h=m.useRef({text:"",at:0}),u=a.find(d=>d.value===s)??a[0];m.useEffect(()=>{if(!c)return;const d=requestAnimationFrame(()=>(x.current?.querySelector('[aria-selected="true"]')??x.current?.querySelector('[role="option"]'))?.focus());return()=>cancelAnimationFrame(d)},[c]);const b=d=>{o(!1),d.value!==s&&n(d.value)},l=d=>{const g=Array.from(x.current?.querySelectorAll('[role="option"]')??[]),y=g.indexOf(document.activeElement);if(d.key==="ArrowDown"||d.key==="ArrowUp")d.preventDefault(),g[(y+(d.key==="ArrowDown"?1:-1)+g.length)%g.length]?.focus();else if(d.key==="Home"||d.key==="End")d.preventDefault(),g[d.key==="Home"?0:g.length-1]?.focus();else if(d.key.length===1&&!d.metaKey&&!d.ctrlKey&&!d.altKey){const C=Date.now();h.current={text:(C-h.current.at<700?h.current.text:"")+d.key.toLowerCase(),at:C};const $=a.findIndex(E=>E.label.toLowerCase().startsWith(h.current.text));$>=0&&g[$]?.focus()}};return e.jsx(ye,{open:c,onOpenChange:o,placement:"auto",align:"end",layer:10060,trigger:e.jsxs("button",{type:"button","aria-label":`${t}: ${u.label}`,"aria-haspopup":"listbox","aria-expanded":c,style:r?{width:r}:void 0,className:`flex h-10 max-w-full items-center gap-2 ${r?"":"w-auto"} rounded-[8px] border px-3 text-left text-[14.5px] text-[var(--text)] transition ${c?"border-[var(--text-muted)]":"border-[var(--border)] hover:border-[var(--border-strong)]"}`,children:[u.icon?e.jsx("span",{className:"flex shrink-0 text-[var(--text-muted)]",children:u.icon}):null,e.jsx("span",{className:r?"min-w-0 flex-1 truncate":"whitespace-nowrap",children:u.label}),e.jsx(ke,{size:15,className:"shrink-0 text-[var(--text-muted)]"})]}),children:e.jsx("div",{ref:x,role:"listbox","aria-label":t,onKeyDown:l,style:{minWidth:r??160},className:"max-h-[min(320px,var(--popover-max-h))] overflow-y-auto rounded-[10px] border border-[var(--border)] bg-[var(--surface)] p-1 shadow-[var(--shadow-lg)]",children:a.map(d=>{const g=d.value===s;return e.jsxs("button",{type:"button",role:"option","aria-selected":g,onClick:()=>b(d),className:"flex h-9 w-full items-center gap-2 rounded-[6px] px-2 text-left text-[14.5px] text-[var(--text)] outline-none hover:bg-[var(--bg-hover)] focus-visible:bg-[var(--bg-hover)]",children:[d.icon?e.jsx("span",{className:"flex shrink-0 text-[var(--text-muted)]",children:d.icon}):null,e.jsx("span",{className:"min-w-0 flex-1 truncate",children:d.label}),e.jsx(G,{size:16,className:g?"shrink-0 text-[var(--text)]":"invisible shrink-0"})]},d.value)})})})}function H({note:t,children:s}){return e.jsxs("div",{className:"flex max-w-[880px] flex-col",children:[t?e.jsx("p",{className:"mb-8 text-[14.5px] leading-relaxed text-[var(--text-muted)]",children:t}):null,s]})}function F({title:t,footnote:s,children:a}){return e.jsxs("section",{className:"mb-10 last:mb-0",children:[t?e.jsx("h3",{className:"mb-1 text-[17px] font-semibold tracking-[-0.01em] text-[var(--text)]",children:t}):null,e.jsx("div",{className:"flex flex-col divide-y divide-[var(--border)]",children:a}),s?e.jsx("p",{className:"pt-2 text-[13.5px] leading-relaxed text-[var(--text-faint)]",children:s}):null]})}function z({mark:t,title:s,badge:a,description:n,control:r,children:c}){return e.jsxs("div",{className:"py-4",children:[e.jsxs("div",{className:"flex min-h-10 items-center gap-4",children:[t?e.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-[8px] bg-[var(--fill-tsp)] text-[var(--text)]",children:t}):null,e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-0.5",children:[e.jsx("span",{className:"text-[15px] text-[var(--text)]",children:s}),a]}),n?e.jsx("div",{className:"mt-1 text-[14px] leading-[1.55] text-[var(--text-muted)]",children:n}):null]}),r?e.jsx("div",{className:"flex shrink-0 items-center gap-2",children:r}):null]}),c?e.jsx("div",{className:"pt-3",children:c}):null]})}function U({tone:t="ok",children:s}){return e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-[13.5px] text-[var(--text-muted)]",children:[e.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${t==="ok"?"bg-[var(--ok)]":"bg-[var(--text-faint)]"}`,"aria-hidden":!0}),s]})}const Ae={default:"border border-[var(--border)] text-[var(--text)] hover:bg-[var(--bg-hover)]",primary:"border border-transparent bg-[var(--text)] text-[var(--bg)] hover:opacity-90",quiet:"border border-transparent text-[var(--text-muted)] hover:bg-[var(--bg-hover)] hover:text-[var(--text)]"};function k({variant:t="default",className:s="",...a}){return e.jsx("button",{type:"button",...a,className:`inline-flex h-9 shrink-0 items-center justify-center gap-1.5 rounded-[8px] px-3.5 text-[14px] font-medium transition disabled:pointer-events-none disabled:opacity-50 ${Ae[t]} ${s}`})}function ut({className:t="",...s}){return e.jsx("a",{target:"_blank",rel:"noreferrer",...s,className:`inline-flex h-9 shrink-0 items-center justify-center gap-1.5 rounded-[8px] px-3.5 text-[14px] font-medium transition ${Ae.default} ${t}`})}function Z({checked:t,onChange:s,label:a,disabled:n}){return e.jsx("button",{type:"button",role:"switch","aria-checked":t,"aria-label":a,title:a,disabled:n,onClick:()=>s(!t),className:`relative h-6 w-10 shrink-0 rounded-full transition-colors disabled:opacity-50 ${t?"bg-[var(--text)]":"bg-[var(--surface-3)]"}`,children:e.jsx("span",{className:`absolute top-[3px] h-[18px] w-[18px] rounded-full bg-[var(--bg)] shadow-[0_1px_2px_rgba(0,0,0,0.2)] transition-all ${t?"left-[19px]":"left-[3px]"}`})})}function ze({label:t,value:s,options:a,onChange:n}){return e.jsx("div",{role:"radiogroup","aria-label":t,className:"inline-flex shrink-0 gap-0.5 rounded-[10px] bg-[var(--fill-tsp)] p-[3px]",children:a.map(r=>{const c=r.value===s;return e.jsxs("button",{type:"button",role:"radio","aria-checked":c,onClick:()=>{c||n(r.value)},className:`inline-flex h-[30px] items-center gap-1.5 whitespace-nowrap rounded-[7px] px-3 text-[14px] transition ${c?"bg-[var(--dock-pane)] text-[var(--text)] shadow-[0_1px_2px_rgba(0,0,0,0.08)] ring-1 ring-[var(--border)]":"text-[var(--text-muted)] hover:text-[var(--text)]"}`,children:[r.icon?e.jsx("span",{className:"flex shrink-0",children:r.icon}):null,r.label]},r.value)})})}const q=m.forwardRef(function({className:s="",...a},n){return e.jsx("input",{ref:n,...a,className:`h-10 w-full min-w-0 rounded-[8px] border border-[var(--border)] bg-transparent px-3 text-[14px] text-[var(--text)] outline-none transition placeholder:text-[var(--text-faint)] hover:border-[var(--border-strong)] focus:border-[var(--text-muted)] ${s}`})});function X({children:t}){return e.jsx("div",{className:"flex flex-col gap-2.5 rounded-[10px] border border-[var(--border)] p-4",children:t})}const re="inline-flex items-center gap-1 text-[var(--text-muted)] underline-offset-2 hover:text-[var(--text)] hover:underline",I="text-[13.5px] leading-relaxed text-[var(--err)]",Re=["codex"];function xt(){const[t,s]=m.useState(null);return m.useEffect(()=>{const a=T?.agents;if(!a)return;let n=!0;a.list().then(o=>{n&&s(o)}).catch(()=>{});const r=a.onChange(o=>s(o)),c=()=>{a.list(!0).then(o=>{n&&s(o)}).catch(()=>{})};return window.addEventListener("focus",c),()=>{n=!1,r(),window.removeEventListener("focus",c)}},[]),t}function pt({id:t}){return t==="byok"?e.jsx(et,{size:16}):e.jsx(J,{id:Be(t),size:17})}function mt(t){const[s,a]=m.useState({}),n=(t??[]).filter(r=>Re.includes(r.id)&&r.status==="ready").map(r=>r.id).join(",");return m.useEffect(()=>{const r=T?.agents?.usage;if(!r||!n)return;let c=!0;const o=()=>{for(const x of n.split(","))r(x).then(h=>{c&&a(u=>({...u,[x]:h}))}).catch(()=>{c&&a(h=>({...h,[x]:null}))})};return o(),window.addEventListener("focus",o),()=>{c=!1,window.removeEventListener("focus",o)}},[n]),s}function ht({window:t}){const s=M(),a=Q(),n=t.kind==="five_hour"?s("settings.agents.usageFiveHour"):t.kind==="seven_day"?s("settings.agents.usageWeek"):s("settings.agents.usageWindow").replace("{hours}",String(Math.round((t.minutes??0)/60))),r=Math.round(t.usedPercent),c=(()=>{if(t.resetsAt==null)return null;const o=Math.max(0,Math.round((t.resetsAt-Date.now())/6e4)),x=new Intl.RelativeTimeFormat(a,{numeric:"auto"}),h=o<60?x.format(o,"minute"):o<2880?x.format(Math.round(o/60),"hour"):x.format(Math.round(o/1440),"day");return s("settings.agents.usageResets").replace("{time}",h)})();return e.jsxs("div",{className:"flex items-center gap-3 text-[13px]",children:[e.jsx("span",{className:"w-[92px] shrink-0 text-[var(--text-muted)]",children:n}),e.jsx("div",{className:"h-1.5 min-w-[80px] flex-1 overflow-hidden rounded-full bg-[var(--fill-tsp)]",role:"progressbar","aria-label":n,"aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,children:e.jsx("div",{className:`h-full rounded-full ${r>=90?"bg-[var(--danger,#e5484d)]":r>=70?"bg-[var(--warn,#f5a524)]":"bg-[var(--text)]"}`,style:{width:`${Math.max(r,1.5)}%`}})}),e.jsx("span",{className:"w-[64px] shrink-0 text-right tabular-nums text-[var(--text)]",children:s("settings.agents.usageUsed").replace("{percent}",String(r))}),e.jsx("span",{className:"w-[120px] shrink-0 truncate text-[var(--text-faint)]",children:c??""})]})}function gt(){const t=M(),s=xt(),a=mt(s),n=T?.agents,[r,c]=m.useState(null),[o,x]=m.useState(null),[h,u]=m.useState(null),[b,l]=m.useState(null);if(!n)return null;const d=(i,S)=>{c(i),x(null),S().then(N=>{const K=N;K&&K.ok===!1&&x({id:i,text:K.error??t("settings.agents.failed")})}).catch(N=>x({id:i,text:N instanceof Error?N.message:String(N)})).finally(()=>c(null))},g=i=>d(i.id,async()=>{const S=await n.locate(i.id,{title:t("settings.agents.locateTitle").replace("{name}",i.name),button:t("settings.agents.locateButton")});return S.ok&&l(null),S.ok||!S.error&&!S.code?{ok:!0}:S.code==="not-a-program"?{ok:!1,error:t("settings.agents.notAProgram")}:S.code==="did-not-start"?{ok:!1,error:`${t("settings.agents.didNotStart")} ${S.error??""}`.trim()}:S}),y=i=>{l({id:i.id,report:null}),n.diagnose(i.id).then(S=>l(N=>N?.id===i.id?{id:i.id,report:S}:N)).catch(S=>{l(null),x({id:i.id,text:S instanceof Error?S.message:String(S)})})},C=i=>{switch(i.hint){case"chosen-missing":return t("settings.agents.hintChosenMissing");case"wsl":return t("settings.agents.hintWsl");case"unusable":return t("settings.agents.hintUnusable");case"none":return t("settings.agents.hintNone").replaceAll("{program}",i.program??"");default:return i.found?t("settings.agents.hintFound").replace("{path}",i.found):null}},$=(i,S)=>{navigator.clipboard.writeText(i.text).then(()=>l(N=>N?.id===S?{...N,copied:!0}:N)).catch(()=>{})},E=i=>{switch(i.status){case"off":return t("settings.agents.off");case"sign-in":return t("settings.agents.signedOut");case"waiting":return t("settings.agents.waiting");case"missing":return i.setupRequired==="code-tab"?t("settings.agents.claudeSetup"):t("settings.agents.missing");case"key":return t("settings.agents.needsKey");case"unavailable":return t("settings.agents.unavailable");case"checking":return t("settings.agents.checking");default:return null}},D=i=>{const S=a[i.id]?.account,N=i.account?{...i.account,...S?.email?{email:S.email}:{},...S?.plan&&!i.account.plan?{plan:S.plan}:{}}:null;if(!N)return null;const K=N.method==="chatgpt"?t("settings.agents.accountChatgpt"):N.method==="api-key"?t("settings.agents.accountApiKey"):N.method==="console"?t("settings.agents.accountConsole"):null,L=N.plan?N.plan.charAt(0).toUpperCase()+N.plan.slice(1):null,_=[N.org,N.email,L,N.email||N.org?null:K].filter(Boolean);return _.length?_.join(" · "):null},f=(i,S=!0)=>{const N=r===i.id,K=!te(i.id);if(i.status==="ready"&&S){const L=n.locate&&i.id!=="byok"&&K;return e.jsxs(e.Fragment,{children:[L?e.jsxs(k,{variant:"quiet",disabled:N,onClick:()=>g(i),children:[N?e.jsx(P,{size:16,className:"animate-spin","aria-hidden":!0}):null,t("settings.agents.locate")]}):null,e.jsx(k,{variant:"quiet",disabled:N,title:i.id==="byok"?void 0:t("settings.agents.disconnectHint").replaceAll("{name}",i.name),onClick:()=>d(i.id,()=>n.disconnect(i.id)),children:t("settings.agents.disconnect")})]})}if(i.status==="missing"){const L=n.locate&&i.setupRequired!=="code-tab"&&!te(i.id);return!i.install&&!L?null:e.jsxs(e.Fragment,{children:[L?e.jsxs(k,{variant:"quiet",disabled:N,onClick:()=>g(i),children:[N?e.jsx(P,{size:16,className:"animate-spin","aria-hidden":!0}):null,t("settings.agents.locate")]}):null,i.install?e.jsxs(ut,{href:i.install,children:[e.jsx(ue,{size:16}),t("settings.agents.install")]}):null]})}return i.status==="key"?e.jsx(k,{onClick:()=>u(i.id),children:t("settings.agents.setUpKey")}):i.status==="unavailable"?null:i.status==="checking"?e.jsx(P,{size:16,className:"animate-spin text-[var(--text-muted)]","aria-hidden":!0}):e.jsxs(k,{disabled:N||i.status==="waiting",onClick:()=>d(i.id,()=>n.connect(i.id)),children:[N?e.jsx(P,{size:16,className:"animate-spin","aria-hidden":!0}):null,i.status==="sign-in"?t("settings.agents.signIn"):t("settings.agents.connect")]})},j=(i,S=!0)=>{const N=i.id==="byok"||te(i.id)?i.byok:void 0,K=o?.id===i.id?o.text:i.error,L=h===i.id,_=!!n.diagnose&&i.status==="missing"&&i.setupRequired!=="code-tab",O=b?.id===i.id?b:null,ee=a[i.id],me=S&&i.status==="ready"&&Re.includes(i.id)&&!!n.usage&&(ee===void 0||!!ee?.windows.length),he=O?.report?C(O.report):null;return e.jsx(z,{mark:e.jsx(pt,{id:i.id}),title:i.id==="byok"?t("settings.agents.byokName"):ot(i.id,i.name,t),badge:e.jsxs(e.Fragment,{children:[i.id==="codex"||i.id==="claude"?e.jsx("span",{title:t("settings.agents.recommendedHint"),className:"inline-flex h-[18px] items-center rounded-full border border-[var(--border)] px-1.5 text-[11px] text-[var(--text-muted)]",children:t("settings.agents.recommended")}):null,i.status==="ready"&&S?e.jsx(U,{children:N?`${De(i).join(", ")} · •••• ${i.byok.last4}`:t("settings.agents.ready")}):null]}),description:i.status==="ready"?D(i):E(i),control:e.jsxs(e.Fragment,{children:[N&&!L?e.jsx(k,{variant:"quiet",onClick:()=>u(i.id),children:t("settings.agents.change")}):null,f(i,S),f(i,S)?e.jsx("span",{className:"mx-1 h-5 w-px bg-[var(--border)]","aria-hidden":!0}):null,e.jsx(Z,{checked:i.shown,label:t("settings.agents.showInChat"),onChange:Y=>{n.setShown(i.id,Y)}})]}),children:i.status==="waiting"||L||K||i.chosen||_||me?e.jsxs("div",{className:"flex flex-col gap-1.5 pl-[34px]",children:[me?e.jsx("div",{className:"flex flex-col gap-1.5","aria-label":t("settings.agents.usage"),children:ee===void 0?e.jsxs("p",{className:"flex items-center gap-1.5 text-[13px] text-[var(--text-faint)]",children:[e.jsx(P,{size:13,className:"animate-spin","aria-hidden":!0}),t("settings.agents.usageLoading")]}):ee?.windows.map(Y=>e.jsx(ht,{window:Y},Y.kind+(Y.minutes??"")))}):null,i.chosen?e.jsxs("p",{className:"break-all text-[13.5px] leading-relaxed text-[var(--text-muted)]",children:[t("settings.agents.chosenAt").replace("{path}",i.chosen)," ",n.useAutomatic?e.jsx("button",{type:"button",onClick:()=>d(i.id,()=>n.useAutomatic(i.id)),className:"underline underline-offset-2 hover:text-[var(--text)]",children:t("settings.agents.automatic")}):null]}):null,_&&!O?e.jsx("p",{className:"text-[13.5px] leading-relaxed text-[var(--text-muted)]",children:e.jsx("button",{type:"button",onClick:()=>y(i),className:"underline underline-offset-2 hover:text-[var(--text)]",children:t("settings.agents.whyMissing")})}):null,_&&O&&!O.report?e.jsxs("p",{className:"flex items-center gap-1.5 text-[13.5px] text-[var(--text-muted)]",children:[e.jsx(P,{size:14,className:"animate-spin","aria-hidden":!0}),t("settings.agents.searching")]}):null,_&&O?.report?e.jsxs(X,{children:[he?e.jsx("p",{className:"break-words text-[14px] leading-relaxed text-[var(--text)]",children:he}):null,e.jsx("p",{className:"text-[13px] leading-relaxed text-[var(--text-faint)]",children:t("settings.agents.reportNote")}),e.jsxs("div",{className:"flex justify-end gap-1.5",children:[e.jsx(k,{variant:"quiet",onClick:()=>l(null),children:t("settings.agents.close")}),e.jsxs(k,{onClick:()=>$(O.report,i.id),children:[O.copied?e.jsx(G,{size:15,"aria-hidden":!0}):e.jsx(Pe,{size:15,"aria-hidden":!0}),O.copied?t("settings.agents.copied"):t("settings.agents.copyReport")]})]})]}):null,i.status==="waiting"?e.jsxs("p",{className:"text-[14.5px] leading-relaxed text-[var(--text-muted)]",children:[t("settings.agents.waitingHint")," ",e.jsx("button",{type:"button",onClick:()=>d(i.id,()=>n.connect(i.id)),className:"underline underline-offset-2 hover:text-[var(--text)]",children:t("settings.agents.startAgain")})]}):null,L?e.jsx(bt,{agent:i,onDone:()=>u(null)}):null,K?e.jsx("p",{className:I,children:K}):null]}):null},i.id)},p=s??[],A=i=>p.find(S=>S.id===i),v=["codex","claude","byok"].map(A).filter(i=>!!i),w=p.filter(i=>ct.includes(i.id)&&!v.includes(i)),R=p.filter(i=>te(i.id)),B=[...v,...w.filter(i=>i.shown),...R.filter(i=>i.shown)],V=[...R.filter(i=>!i.shown),...w.filter(i=>!i.shown)];return e.jsxs(H,{note:t("settings.agents.intro"),children:[e.jsx(F,{title:t("settings.agents.groupYours"),footnote:t("settings.agents.showHint"),children:B.map(i=>j(i))}),V.length?e.jsx(F,{title:t("settings.agents.groupMore"),children:V.map(i=>j(i,!1))}):null]})}const se=[{value:"responses",label:"OpenAI Responses",address:"https://api.openai.com/v1"},{value:"chat",label:"OpenAI Chat Completions",address:"https://api.openai.com/v1"},{value:"anthropic",label:"Anthropic Messages",address:"https://api.anthropic.com"}],De=t=>t.byok?.models?.length?t.byok.models:t.preset?.models??[t.byok?.model??""].filter(Boolean),ve=t=>[...new Set(t.split(/[,\n]/).map(s=>s.trim()).filter(Boolean))],ft=t=>De(t).map(s=>({name:s,...t.byok?.efforts?.[s]??{levels:["auto"],effort:"auto"}}));function vt({row:t,onChange:s,onRemove:a}){const n=M(),r=o=>n(`settings.agents.effortLevels.${o}`),c=o=>{const x=t.levels.includes(o);if(x&&t.levels.length===1)return;const h=ge.filter(u=>u===o?!x:t.levels.includes(u));s({...t,levels:h,effort:h.includes(t.effort)?t.effort:h[0]})};return e.jsxs("div",{className:"flex flex-col gap-2 rounded-[8px] border border-[var(--border)] px-3 py-2.5",children:[e.jsxs("div",{className:"flex min-h-8 items-center gap-2",children:[e.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-[13.5px] text-[var(--text)]",title:t.name,children:t.name}),t.levels.length>1?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"shrink-0 text-[13px] text-[var(--text-muted)]",children:n("settings.agents.effortStart")}),e.jsx(xe,{label:n("settings.agents.effortStart"),value:t.effort,width:128,onChange:o=>s({...t,effort:o}),options:t.levels.map(o=>({value:o,label:r(o)}))})]}):null,e.jsx("button",{type:"button",onClick:a,"aria-label":n("settings.agents.removeModel").replace("{name}",t.name),title:n("settings.agents.removeModel").replace("{name}",t.name),className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-[6px] text-[var(--text-faint)] transition hover:bg-[var(--bg-hover)] hover:text-[var(--text)]",children:e.jsx(we,{size:14,"aria-hidden":!0})})]}),e.jsx("div",{role:"group","aria-label":`${n("settings.agents.efforts")} · ${t.name}`,className:"flex flex-wrap items-center gap-1",children:ge.map(o=>{const x=t.levels.includes(o);return e.jsxs("button",{type:"button","aria-pressed":x,onClick:()=>c(o),className:`inline-flex h-7 items-center gap-1 rounded-full border px-2.5 text-[12.5px] transition ${x?"border-[var(--text-muted)] bg-[var(--fill-tsp)] text-[var(--text)]":"border-[var(--border)] text-[var(--text-muted)] hover:border-[var(--border-strong)] hover:text-[var(--text)]"}`,children:[x?e.jsx(G,{size:12,"aria-hidden":!0}):null,r(o)]},o)})})]})}function bt({agent:t,onDone:s}){const a=M(),n=T?.agents,[r,c]=m.useState(t.byok?.format??t.preset?.format??"responses"),o=se.find(v=>v.value===r),[x,h]=m.useState(t.byok?.baseUrl??t.preset?.baseUrl??o.address),[u,b]=m.useState(()=>ft(t)),[l,d]=m.useState(""),g=()=>{const v=ve(l).filter(w=>!u.some(R=>R.name===w));v.length&&b(w=>[...w,...v.map(R=>({name:R,levels:["auto"],effort:"auto"}))]),d("")},y=()=>[...u,...ve(l).filter(v=>!u.some(w=>w.name===v)).map(v=>({name:v,levels:["auto"],effort:"auto"}))],[C,$]=m.useState(""),[E,D]=m.useState({busy:!1,error:null}),f=v=>{(se.some(w=>w.address===x.trim())||!x.trim())&&h(se.find(w=>w.value===v).address),c(v)},j=()=>{if(!n)return;D({busy:!0,error:null});const v=y();n.configureByok({provider:t.id,format:r,baseUrl:x,models:v.map(w=>w.name),efforts:Object.fromEntries(v.map(w=>[w.name,{levels:w.levels,effort:w.effort}])),...C?{key:C}:{}}).then(w=>{w.ok?($(""),d(""),D({busy:!1,error:null}),s()):D({busy:!1,error:w.error??a("settings.agents.failed")})}).catch(w=>D({busy:!1,error:w instanceof Error?w.message:String(w)}))},p=y().length>0&&x.trim()&&(C.trim()||t.byok),A=v=>e.jsx("span",{className:"w-[92px] shrink-0 text-[13px] text-[var(--text-muted)]",children:v});return e.jsx(X,{children:e.jsxs("form",{className:"contents",onSubmit:v=>{v.preventDefault(),p&&!E.busy&&j()},children:[e.jsxs("div",{className:"flex items-center gap-2",children:[A(a("settings.agents.format")),e.jsx(xe,{label:a("settings.agents.format"),value:r,onChange:f,width:220,options:se.map(v=>({value:v.value,label:v.label}))})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[A(a("settings.agents.address")),e.jsx(q,{value:x,onChange:v=>h(v.target.value),placeholder:o.address,"aria-label":a("settings.agents.address"),spellCheck:!1})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"flex h-10 items-center",children:A(a("settings.agents.model"))}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[u.map(v=>e.jsx(vt,{row:v,onChange:w=>b(R=>R.map(B=>B.name===v.name?w:B)),onRemove:()=>b(w=>w.filter(R=>R.name!==v.name))},v.name)),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{value:l,onChange:v=>d(v.target.value),placeholder:a("settings.agents.modelPlaceholder"),"aria-label":a("settings.agents.model"),spellCheck:!1,onKeyDown:v=>{v.key==="Enter"&&l.trim()&&(v.preventDefault(),g())}}),e.jsx(k,{onClick:g,disabled:!l.trim(),children:a("settings.agents.addModel")})]}),u.length?e.jsx("p",{className:"text-[12.5px] leading-relaxed text-[var(--text-faint)]",children:a("settings.agents.effortHint")}):null]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[A(a("settings.agents.key")),e.jsx(q,{type:"password",value:C,onChange:v=>$(v.target.value),autoComplete:"off",className:"font-mono placeholder:font-sans",placeholder:t.byok?a("settings.agents.keyKept").replace("{last4}",t.byok.last4):a("settings.agents.keyPlaceholder"),"aria-label":a("settings.agents.key")})]}),e.jsx("p",{className:"text-[13px] leading-relaxed text-[var(--text-faint)]",children:a("settings.agents.byokNote")}),E.error?e.jsx("p",{className:I,children:E.error}):null,e.jsxs("div",{className:"flex justify-end gap-1.5",children:[e.jsx(k,{variant:"quiet",onClick:s,children:a("settings.agents.cancel")}),e.jsxs(k,{type:"submit",variant:"primary",disabled:E.busy||!p,children:[E.busy?e.jsx(P,{size:15,className:"animate-spin","aria-hidden":!0}):null,E.busy?a("settings.agents.checkingKey"):a("settings.agents.save")]})]})]})})}function jt(t,s){return t.providers.filter(a=>!a.source&&a.verbs.includes(s)).map(a=>a.name).sort((a,n)=>a.localeCompare(n))}const yt=(t,s)=>t.providers.some(a=>a.verbs.includes(s)),kt=["tts","music","sfx","asr","image","image-search","video","translate","web-search"];async function ce(t,s){const a=await fetch(`/api/providers${t}`,{method:s?.method??"GET",cache:"no-store",headers:s?.json===void 0?void 0:{"content-type":"application/json"},body:s?.json===void 0?void 0:JSON.stringify(s.json)}),n=await a.json().catch(()=>({}));if(!a.ok)throw new Error(n.error??`Studio answered ${a.status}`);return n}function pe(){const[t,s]=m.useState(null),[a,n]=m.useState(null),[r,c]=m.useState(null),[o,x]=m.useState(null);m.useEffect(()=>{let l=!0,d=0;const g=y=>{ce("").then(C=>{l&&(s(C),n(null),c(null))},C=>{l&&(y<4?d=window.setTimeout(()=>g(y+1),1e3*2**y):n(C.message))})};return g(0),()=>{l=!1,window.clearTimeout(d)}},[]);const h=m.useCallback(async(l,d,g)=>{x(l),n(null);try{const y=await ce(d,g),{whisper:C,separator:$,...E}=y,D=d.split("/")[1]??"";return s(()=>!C&&!$?E:{...E,providers:E.providers.map(f=>f.id!==D?f:C?{...f,whisper:C}:$?{...f,separator:$}:f)}),E}catch(y){return n(y instanceof Error?y.message:String(y)),c(l),null}finally{x(null)}},[]),u=m.useCallback(async()=>{try{s(await ce("")),n(null),c(null)}catch(l){n(l instanceof Error?l.message:String(l))}},[]),b=t?.providers.some(l=>[...l.whisper?.models??[],...l.separator?.models??[]].some(d=>d.progress!=null))??!1;return m.useEffect(()=>{if(!b)return;const l=window.setInterval(()=>{u()},1500);return()=>window.clearInterval(l)},[b,u]),{state:t,problem:a,problemFor:r,busy:o,saveKey:async(l,d)=>!!await h(l,`/${encodeURIComponent(l)}/key`,{method:"PUT",json:{key:d}}),removeKey:async l=>{await h(l,`/${encodeURIComponent(l)}/key`,{method:"DELETE"})},useEnvKey:async l=>!!await h(l,`/${encodeURIComponent(l)}/key`,{method:"PUT",json:{env:!0}}),choose:async(l,d,g)=>{await h(l,"/use",{method:"PUT",json:{verb:l,provider:d||null,...g}})},saveService:async(l,d)=>!!await h(l??"custom",l?`/custom/${encodeURIComponent(l)}`:"/custom",{method:l?"PUT":"POST",json:d}),removeService:async l=>{await h(l,`/custom/${encodeURIComponent(l)}`,{method:"DELETE"})},reload:u,downloadModel:async(l,d)=>{await h(`${l}:${d}`,`/${encodeURIComponent(l)}/models`,{method:"POST",json:{model:d}})},removeModel:async(l,d)=>{await h(`${l}:${d}`,`/${encodeURIComponent(l)}/models/${encodeURIComponent(d)}`,{method:"DELETE"})}}}async function ne(t,s){const a=await fetch(`/api/video-models${t}`,{method:s?.method??"GET",cache:"no-store",headers:s?.json===void 0?void 0:{"content-type":"application/json"},body:s?.json===void 0?void 0:JSON.stringify(s.json)}),n=await a.json().catch(()=>({}));if(!a.ok)throw new Error(n.error??`Studio answered ${a.status}`);return n}function wt(){const[t,s]=m.useState(null),[a,n]=m.useState(null),[r,c]=m.useState(null);m.useEffect(()=>{let u=!0,b=0;const l=d=>{ne("").then(g=>{u&&(s(g),n(null))},g=>{u&&(d<4?b=window.setTimeout(()=>l(d+1),1e3*2**d):n(g.message))})};return l(0),()=>{u=!1,window.clearTimeout(b)}},[]);const o=async u=>{c("endpoint"),n(null);try{const b=await ne("",{method:"PUT",json:{endpoint:u}});return s(b),b.local.reachable===!0}catch(b){return n(b instanceof Error?b.message:String(b)),!1}finally{c(null)}},x=async()=>{c("check"),n(null);try{s(await ne("/check",{method:"POST"}))}catch(u){n(u instanceof Error?u.message:String(u))}finally{c(null)}},h=m.useCallback(async()=>{try{s(await ne("")),n(null)}catch(u){n(u instanceof Error?u.message:String(u))}},[]);return{state:t,problem:a,busy:r,save:o,check:x,reload:h}}function Nt({onConnect:t}){const s=M(),a=wt(),n=pe(),[r,c]=m.useState(null),[o,x]=m.useState(""),[h,u]=m.useState(!1),[b,l]=m.useState(null),d=a.state?.cloud??[],g=d.filter(p=>p.builtin),y=d.filter(p=>!p.builtin),C=a.state?.local,$=n.state?{provider:n.state.use.video??null,model:n.state.model.video??null}:null,E=()=>{c(null),x(""),l(null)},D=async p=>{if(!p.provider||!o.trim()||h)return;u(!0),l(null);const A=await n.saveKey(p.provider,o.trim());if(u(!1),!A){l(n.problem??s("settings.video.cloud.keyRefused"));return}E(),await a.reload();const v=!n.state?.use.video;await n.reload(),v&&p.model&&await n.choose("video",p.provider,{model:p.model})},f=p=>{const A=p.via??"",v=s("settings.video.cloud.pasteKey").replace("{service}",A);return e.jsx("form",{className:"pl-[34px]",onSubmit:w=>{w.preventDefault(),D(p)},children:e.jsxs(X,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{type:"password",autoFocus:!0,autoComplete:"off",spellCheck:!1,value:o,onChange:w=>x(w.target.value),onKeyDown:w=>{w.key==="Escape"&&(w.preventDefault(),E())},placeholder:v,"aria-label":v,className:"flex-1 font-mono placeholder:font-sans"}),e.jsx(k,{variant:"quiet",onClick:E,children:s("settings.video.cloud.cancel")}),e.jsx(k,{type:"submit",variant:"primary",disabled:!o.trim()||h,children:s("settings.video.cloud.save")})]}),b?e.jsx("p",{className:I,role:"alert",children:b}):null,p.keysUrl?e.jsxs("a",{href:p.keysUrl,target:"_blank",rel:"noreferrer",className:`${re} text-[13.5px]`,children:[s("settings.video.cloud.getKey").replace("{service}",A),e.jsx(Se,{size:12})]}):null]})})},j=p=>e.jsx(St,{model:p,on:!!($&&p.provider&&$.provider===p.provider&&$.model===p.model),busy:n.busy==="video"||h,onUse:()=>{p.provider&&p.model&&n.choose("video",p.provider,{model:p.model})},onConnect:()=>{if(!p.builtin){t();return}c(p.id),x(""),l(null)},below:p.builtin&&r===p.id?f(p):null},p.id);return e.jsxs(H,{note:s("settings.video.desc"),children:[e.jsx(F,{title:s("settings.video.cloud.title"),footnote:s("settings.video.cloud.note"),children:g.map(j)}),y.length?e.jsx(F,{title:s("settings.video.cloud.more"),footnote:s("settings.video.cloud.moreNote"),children:y.map(j)}):null,C?e.jsx(Ct,{local:C,hook:a}):null,a.problem?e.jsx("p",{className:I,children:a.problem}):null]})}function St({model:t,on:s,busy:a,onUse:n,onConnect:r,below:c}){const o=M(),x=t.builtin?t.connected?s?e.jsxs(U,{children:[e.jsx(G,{size:14,"aria-hidden":!0}),o("settings.video.cloud.using")]}):e.jsx(k,{disabled:a,onClick:n,children:o("settings.video.cloud.use")}):e.jsx(k,{onClick:r,children:o("settings.video.cloud.connect")}):e.jsx(k,{variant:"quiet",onClick:r,children:o("settings.video.cloud.addOwn")});return e.jsx(z,{mark:t.provider?e.jsx(J,{id:t.provider,size:17}):e.jsx(Ne,{size:16}),title:t.name,badge:t.maker?e.jsx("span",{className:"text-[13.5px] text-[var(--text-faint)]",children:t.maker}):null,description:t.builtin?t.connected?o("settings.video.cloud.servedBy").replace("{service}",t.via??""):o("settings.video.cloud.notConnected").replace("{service}",t.via??""):o("settings.video.cloud.own"),control:x,children:c})}function Ct({local:t,hook:s}){const a=M(),[n,r]=m.useState(t.endpoint);m.useEffect(()=>{r(t.endpoint)},[t.endpoint]);const c=s.busy,o=n.trim().replace(/\/+$/,"")!==t.endpoint,x=()=>{c||s.save(n)};return e.jsxs(F,{title:a("settings.video.local.title"),footnote:a("settings.video.local.note"),children:[e.jsx(z,{mark:e.jsx(Ue,{size:16}),title:a("settings.video.local.endpoint"),description:a("settings.video.local.endpointHint"),badge:c?e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-[13.5px] text-[var(--text-muted)]",children:[e.jsx(P,{size:13,className:"animate-spin","aria-hidden":!0}),a("settings.video.local.asking")]}):t.reachable===!0?e.jsx(U,{children:a("settings.video.local.reachable")}):t.reachable===!1?e.jsx(U,{tone:"muted",children:a("settings.video.local.unreachable")}):null,control:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{"aria-label":a("settings.video.local.endpoint"),value:n,spellCheck:!1,placeholder:"http://127.0.0.1:8188",onChange:h=>r(h.target.value),onKeyDown:h=>{h.key==="Enter"&&(h.preventDefault(),x())},className:"w-[248px] font-mono text-[13.5px]"}),e.jsx(k,{disabled:!!c,onClick:x,children:a(o?"settings.video.local.save":"settings.video.local.check")})]})}),t.models.map(h=>e.jsx(z,{title:h.name,badge:e.jsx("span",{className:"text-[13.5px] text-[var(--text-faint)]",children:h.maker}),description:e.jsx("span",{className:"font-mono text-[12.5px] text-[var(--text-faint)]",children:h.nodes.join(" / ")}),control:h.installed?e.jsxs(U,{children:[e.jsx(G,{size:14,"aria-hidden":!0}),a("settings.video.local.installed")]}):e.jsx(U,{tone:"muted",children:a("settings.video.local.missing")})},h.id))]})}function Et({onConnect:t}){const s=M(),a=pe(),n=a.state,r=!!n?.providers.some(c=>c.source);return e.jsxs(H,{note:s("settings.models.desc"),children:[n&&!r?e.jsx(F,{children:e.jsx(z,{description:s("settings.models.nothing"),title:s("settings.models.goConnect"),control:e.jsx(k,{onClick:t,children:s("settings.models.goConnect")})})}):null,n?e.jsx(F,{footnote:s("settings.models.otherBody"),children:kt.filter(c=>yt(n,c)).map(c=>e.jsx($t,{verb:c,hook:a,onConnect:t},c))}):null,a.problem?e.jsx("p",{className:I,children:a.problem}):null]})}function $t({verb:t,hook:s,onConnect:a}){const n=M(),r=s.state,c=n(`settings.providers.verbs.${t}`),o=r.use[t]??"",x=[];for(const d of r.providers)if(d.source&&d.verbs.includes(t)||d.id===o)for(const g of d.models[t]??[])x.push({value:`${d.id}:${g.id}`,provider:d.id,providerName:d.name,name:g.name,pick:{model:g.id}});x.sort((d,g)=>d.providerName.localeCompare(g.providerName));const h=d=>r.providers.find(g=>g.id===d)?.models[t]?.[0]?.id,u=o?`${o}:${r.model[t]??h(o)??""}`:"",b=x.find(d=>d.value===u),l=jt(r,t);return e.jsx(z,{title:c,description:n(`settings.models.about.${t}`),control:e.jsx(Mt,{label:c,choices:x,current:b??null,busy:s.busy===t,could:l,onConnect:a,onPick:d=>{s.choose(t,d?.provider??"",d?.pick)}})})}function Mt({label:t,choices:s,current:a,busy:n,could:r,onConnect:c,onPick:o}){const x=M(),h=Q(),[u,b]=m.useState(!1),l=m.useRef(null),d=s.length===0,g=s.reduce((f,j)=>{const p=f.find(A=>A.provider===j.provider);return p?p.choices.push(j):f.push({provider:j.provider,name:j.providerName,choices:[j]}),f},[]);m.useEffect(()=>{if(!u)return;const f=requestAnimationFrame(()=>(l.current?.querySelector('[aria-selected="true"]')??l.current?.querySelector('[role="option"]'))?.focus());return()=>cancelAnimationFrame(f)},[u]);const y=f=>{if(f.key!=="ArrowDown"&&f.key!=="ArrowUp")return;f.preventDefault();const j=Array.from(l.current?.querySelectorAll('[role="option"]')??[]),p=j.indexOf(document.activeElement);j[(p+(f.key==="ArrowDown"?1:-1)+j.length)%j.length]?.focus()},C=f=>{b(!1),f?.value!==a?.value&&o(f)},$=(f,j)=>{const p=(f?.value??"")===(a?.value??"");return e.jsxs("button",{type:"button",role:"option","aria-selected":p,onClick:()=>C(f),className:"flex h-9 w-full items-center gap-2 rounded-[6px] px-2 text-left text-[14.5px] text-[var(--text)] outline-none hover:bg-[var(--bg-hover)] focus-visible:bg-[var(--bg-hover)]",children:[e.jsx("span",{className:"min-w-0 flex-1 truncate",children:j}),p?e.jsx(G,{size:17,className:"shrink-0 text-[var(--text-muted)]"}):null]},f?.value??"")},E=r.length?x("settings.models.connectNamed").replace("{names}",new Intl.ListFormat(h,{type:"disjunction"}).format(r)):x("settings.models.goConnect"),D=d?e.jsxs("button",{type:"button","aria-label":`${t}: ${E}`,title:E,disabled:n,onClick:c,className:"flex h-10 w-[280px] items-center gap-2 rounded-[8px] border border-[var(--border)] px-3 text-left text-[14.5px] text-[var(--text-muted)] transition hover:border-[var(--border-strong)] hover:text-[var(--text)] disabled:opacity-60",children:[e.jsx("span",{className:"min-w-0 flex-1 truncate",children:E}),e.jsx(Ie,{size:15,className:"shrink-0"})]}):e.jsxs("button",{type:"button","aria-label":t,"aria-haspopup":"listbox","aria-expanded":u,disabled:n,className:`flex h-10 w-[280px] items-center gap-2 rounded-[8px] border px-3 text-left text-[14.5px] text-[var(--text)] transition disabled:opacity-60 ${u?"border-[var(--text-muted)]":"border-[var(--border)] hover:border-[var(--border-strong)]"}`,children:[a?e.jsx(J,{id:a.provider,size:15}):null,e.jsx("span",{className:`min-w-0 flex-1 truncate ${a?"":"text-[var(--text-muted)]"}`,children:a?`${a.providerName} · ${a.name}`:x("settings.models.none")}),e.jsx(ke,{size:15,className:"shrink-0 text-[var(--text-muted)]"})]});return e.jsx("div",{className:"shrink-0",children:e.jsx(ye,{open:u&&!d,onOpenChange:b,placement:"auto",align:"end",layer:10060,trigger:D,children:e.jsxs("div",{ref:l,role:"listbox","aria-label":t,onKeyDown:y,className:"max-h-[min(360px,var(--popover-max-h))] w-[288px] overflow-y-auto rounded-[10px] border border-[var(--border)] bg-[var(--surface)] p-1 shadow-[var(--shadow-lg)]",children:[g.map(f=>e.jsxs("div",{className:"mb-1",role:"group","aria-label":f.name,children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-2 pb-1 pt-1.5 text-[14px] font-medium text-[var(--text-muted)]",children:[e.jsx(J,{id:f.provider,size:15}),f.name]}),f.choices.map(j=>$(j,j.name))]},f.provider)),e.jsx("div",{className:"border-t border-[var(--border-soft)] pt-1",children:$(null,x("settings.models.none"))})]})})})}const At=["tts","music","sfx","asr","image","image-search","video","translate","web-search"];function zt({highlight:t=null}){const s=M(),a=pe(),n=[...a.state?.providers??[]].sort((r,c)=>r.name.localeCompare(c.name));return e.jsxs(H,{note:s("settings.providers.desc"),children:[e.jsx(F,{footnote:s("settings.providers.keyNote"),children:n.map(r=>r.local?r.separator?e.jsx(qt,{provider:r,hook:a,highlighted:t===r.id},r.id):r.whisper?e.jsx(Ot,{provider:r,hook:a,highlighted:t===r.id},r.id):e.jsx(Lt,{provider:r,hook:a,highlighted:t===r.id},r.id):e.jsx(Tt,{provider:r,hook:a,highlighted:t===r.id},r.id))}),e.jsx(Dt,{hook:a}),a.problem&&!n.some(r=>r.id===a.problemFor)&&!Rt(a)?e.jsx("p",{className:I,children:a.problem}):null]})}const Rt=t=>t.problemFor==="custom"||!!t.state?.custom.some(s=>s.id===t.problemFor);function Dt({hook:t}){const s=M(),a=t.state?.custom??[],[n,r]=m.useState(null);return t.state?e.jsxs(F,{title:s("settings.providers.own.title"),footnote:s("settings.providers.own.note"),children:[a.map(c=>e.jsx(z,{mark:e.jsx(rt,{size:16}),title:c.name,badge:c.last4?e.jsx(U,{tone:"muted",children:e.jsxs("span",{className:"font-mono tabular-nums",children:["•••• ",c.last4]})}):null,description:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"font-mono text-[13px] text-[var(--text-faint)]",children:c.url}),c.note?e.jsx("span",{className:"mt-0.5 block whitespace-pre-line",children:c.note}):null]}),control:n===c.id?null:e.jsxs(e.Fragment,{children:[e.jsx(k,{variant:"quiet",disabled:t.busy===c.id,onClick:()=>{t.removeService(c.id)},children:s("settings.providers.own.remove")}),e.jsx(k,{onClick:()=>r(c.id),children:s("settings.providers.own.edit")})]}),children:n===c.id?e.jsx(be,{hook:t,service:c,onDone:()=>r(null)}):null},c.id)),n===""?e.jsx("div",{className:"py-4",children:e.jsx(be,{hook:t,service:null,onDone:()=>r(null)})}):e.jsx("div",{className:"py-4",children:e.jsxs(k,{onClick:()=>r(""),children:[e.jsx(Ee,{size:15,strokeWidth:2}),s("settings.providers.own.add")]})})]}):null}function be({hook:t,service:s,onDone:a}){const n=M(),[r,c]=m.useState({name:s?.name??"",url:s?.url??"",auth:s?.auth??Ft,note:s?.note??""}),[o,x]=m.useState(""),[h,u]=m.useState(!1),b=t.busy===(s?.id??"custom"),l=y=>C=>c($=>({...$,[y]:C.target.value})),d=async()=>{if(b||!r.name.trim()||!r.url.trim())return;const y={...r,...o.trim()?{key:o.trim()}:h||!s?{key:""}:{}};await t.saveService(s?.id??null,y)&&a()},g=(y,C)=>e.jsxs("label",{className:"flex flex-col gap-1.5 text-[13.5px] text-[var(--text-muted)]",children:[y,C]});return e.jsx("form",{className:s?"pl-[52px]":"",onSubmit:y=>{y.preventDefault(),d()},onKeyDown:y=>{y.key==="Escape"&&(y.preventDefault(),a())},children:e.jsxs(X,{children:[g(n("settings.providers.own.name"),e.jsx(q,{autoFocus:!0,value:r.name,onChange:l("name"),placeholder:n("settings.providers.own.namePlaceholder")})),g(n("settings.providers.own.url"),e.jsx(q,{value:r.url,onChange:l("url"),placeholder:"http://localhost:8000",spellCheck:!1,className:"font-mono placeholder:font-sans"})),g(n("settings.providers.own.key"),e.jsx(q,{type:"password",autoComplete:"off",spellCheck:!1,value:o,onChange:y=>{x(y.target.value),u(!1)},placeholder:s?.last4&&!h?n("settings.providers.own.keyKeep").replaceAll("{last4}",s.last4):n("settings.providers.own.keyOptional"),className:"font-mono placeholder:font-sans"})),s?.last4&&!o&&!h?e.jsx("button",{type:"button",className:`${re} self-start text-[13.5px]`,onClick:()=>u(!0),children:n("settings.providers.own.removeKey")}):null,g(n("settings.providers.own.auth"),e.jsx(q,{value:r.auth,onChange:l("auth"),spellCheck:!1,className:"font-mono"})),g(n("settings.providers.own.what"),e.jsx("textarea",{value:r.note,onChange:l("note"),rows:3,maxLength:600,placeholder:n("settings.providers.own.whatPlaceholder"),className:"w-full min-w-0 resize-y rounded-[8px] border border-[var(--border)] bg-transparent px-3 py-2 text-[14px] leading-[1.5] text-[var(--text)] outline-none transition placeholder:text-[var(--text-faint)] hover:border-[var(--border-strong)] focus:border-[var(--text-muted)]"})),t.problem&&t.problemFor===(s?.id??"custom")?e.jsx("p",{className:I,role:"alert",children:t.problem}):null,e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(k,{variant:"quiet",onClick:a,children:n("settings.providers.cancel")}),e.jsx(k,{type:"submit",variant:"primary",disabled:b||!r.name.trim()||!r.url.trim(),children:n("settings.providers.save")})]})]})})}const Ft="Authorization: Bearer {key}";function ie({id:t,name:s,badge:a,children:n,action:r,below:c,highlighted:o=!1}){const x=m.useRef(null);return m.useEffect(()=>{if(!o)return;const h=x.current;h&&(h.scrollIntoView({block:"center"}),h.querySelector("[data-row-action]")?.focus({preventScroll:!0}))},[o]),e.jsx("div",{ref:x,"data-provider":t,...o?{"data-highlight":""}:{},className:"rounded-[10px] transition-colors duration-500",style:o?{background:"var(--bg-active)",outline:"2px solid var(--text-muted)",outlineOffset:2}:void 0,children:e.jsx(z,{mark:e.jsx(J,{id:t,size:17}),title:s,badge:a,description:n,control:r,children:c})})}function le({children:t}){const s=M();return e.jsxs(U,{children:[s("settings.providers.connected"),t]})}function Kt(t,s){const a=t.map((n,r)=>r?s(`settings.providers.verbs.${n}`).toLowerCase():s(`settings.providers.verbs.${n}`));return a.length>1?`${a.slice(0,-1).join(", ")} ${s("settings.providers.and")} ${a.at(-1)}`:a[0]??""}function Tt({provider:t,hook:s,highlighted:a=!1}){const n=M(),[r,c]=m.useState(!1),[o,x]=m.useState(""),h=s.busy===t.id,u=()=>{c(!1),x("")},b=async()=>{!o.trim()||h||await s.saveKey(t.id,o)&&u()},l=n("settings.providers.pasteKey").replaceAll("{name}",t.name);return e.jsx(ie,{id:t.id,name:t.name,highlighted:a,badge:t.source?e.jsx(le,{children:e.jsxs("span",{className:"font-mono tabular-nums text-[var(--text-faint)]","aria-label":n("settings.providers.keyEnding").replaceAll("{last4}",t.last4??""),children:["•••• ",t.last4]})}):null,action:t.source?e.jsx(k,{variant:"quiet",disabled:h,onClick:()=>{s.removeKey(t.id)},children:n("settings.providers.disconnect")}):r?null:e.jsxs(k,{onClick:()=>c(!0),children:[e.jsx(Ee,{size:15,strokeWidth:2}),n("settings.providers.connect")]}),below:r&&!t.source?e.jsx("form",{className:"pl-[34px]",onSubmit:d=>{d.preventDefault(),b()},children:e.jsxs(X,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{type:"password",autoFocus:!0,autoComplete:"off",spellCheck:!1,value:o,onChange:d=>x(d.target.value),onKeyDown:d=>{d.key==="Escape"&&(d.preventDefault(),u())},placeholder:l,"aria-label":l,className:"flex-1 font-mono placeholder:font-sans"}),e.jsx(k,{variant:"quiet",onClick:u,children:n("settings.providers.cancel")}),e.jsx(k,{type:"submit",variant:"primary",disabled:!o.trim()||h,children:n("settings.providers.save")})]}),s.problem&&s.problemFor===t.id?e.jsx("p",{className:I,role:"alert",children:s.problem}):null,t.envKey?e.jsx("button",{type:"button",disabled:h,onClick:()=>{s.useEnvKey(t.id).then(d=>{d&&u()})},className:`${re} self-start text-[14.5px]`,children:n("settings.providers.useEnv").replaceAll("{env}",t.env)}):null,e.jsxs("a",{href:t.keysUrl,target:"_blank",rel:"noreferrer",className:`${re} text-[14.5px]`,children:[n("settings.providers.getKey").replaceAll("{name}",t.name),e.jsx(Se,{size:12})]})]})}):null,children:Kt(At.filter(d=>t.verbs.includes(d)),n)})}function Fe(t){return t>=1024*1024*1024?`${(t/1024**3).toFixed(1)} GB`:`${Math.round(t/1024**2)} MB`}function Lt({provider:t,hook:s,highlighted:a=!1}){const n=M(),r=s.state?.use.tts===t.id;return e.jsxs(ie,{id:t.id,name:t.name,highlighted:a,badge:e.jsx(le,{}),action:null,children:[e.jsx("span",{className:"block",children:n("settings.providers.edge.desc")}),e.jsx("span",{className:"mt-1 block text-[12.5px] text-[var(--text-faint)]",children:n("settings.providers.edge.languages")}),e.jsxs("span",{className:"mt-1.5 flex items-center gap-2",children:[e.jsx("span",{className:"min-w-0 flex-1 text-[13px] text-[var(--text-faint)]",children:n(r?"settings.providers.edge.ready":"settings.providers.edge.pick")}),r?null:e.jsx(k,{variant:"quiet","data-row-action":!0,disabled:s.busy==="edge-tts:tts",onClick:()=>{s.choose("tts",t.id)},children:n("settings.providers.edge.use")})]})]})}function qt({provider:t,hook:s,highlighted:a=!1}){const n=M(),r=t.separator,c=s.busy?.startsWith(`${t.id}:`)?s.busy:null;return e.jsxs(ie,{id:t.id,name:t.name,highlighted:a,badge:r?.models.some(o=>o.downloaded)?e.jsx(le,{}):null,action:null,children:[e.jsx("span",{className:"block",children:n("settings.providers.separate.desc")}),e.jsx("span",{className:"mt-1.5 block",children:r?.models.map(o=>{const x=c===`${t.id}:${o.id}`;return e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"shrink-0 text-[13.5px] text-[var(--text)]",children:o.name}),e.jsx("span",{className:"shrink-0 text-[12.5px] tabular-nums text-[var(--text-faint)]",children:Fe(o.bytes)}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-[12.5px] text-[var(--text-faint)]",children:o.progress!=null?n("settings.providers.local.progress").replace("{p}",`${Math.round(o.progress*100)}`):o.error??""}),o.downloaded?e.jsxs(k,{variant:"quiet",disabled:x,onClick:()=>{s.removeModel(t.id,o.id)},children:[e.jsx(Ce,{size:14,strokeWidth:2}),n("settings.providers.local.remove")]}):e.jsxs(k,{"data-row-action":!0,disabled:x||o.progress!=null,onClick:()=>{s.downloadModel(t.id,o.id)},children:[e.jsx(ue,{size:14,strokeWidth:2}),n("settings.providers.local.download")]})]},o.id)})}),e.jsx("span",{className:"mt-1 block text-[12.5px] text-[var(--text-faint)]",children:n("settings.providers.separate.note")})]})}function Ot({provider:t,hook:s,highlighted:a=!1}){const n=M(),r=t.whisper,c=s.busy?.startsWith(`${t.id}:`)?s.busy:null,o=t.id==="local-whisper",x=o?t.name:`${t.name}${n("settings.providers.sensevoice.tag")}`,h=(r?.models.length??0)>1;return e.jsxs(ie,{id:t.id,name:x,highlighted:a,badge:r?.models.some(u=>u.downloaded)?e.jsx(le,{}):null,action:null,children:[e.jsx("span",{className:"block",children:n(o?"settings.providers.local.desc":"settings.providers.sensevoice.desc")}),o?e.jsx("span",{className:"mt-1.5 block text-[13px] text-[var(--text)]",children:n("settings.providers.local.chinese")}):null,e.jsx("span",{className:"mt-1.5 block",children:r?.models.map(u=>{const b=c===`${t.id}:${u.id}`;return e.jsxs("span",{className:"mb-1 block",children:[e.jsxs("span",{className:"flex items-center gap-2",children:[h?e.jsx("span",{className:"w-[9.5em] shrink-0 truncate text-[13.5px] text-[var(--text)]",children:u.name}):null,e.jsx("span",{className:"shrink-0 text-[12.5px] tabular-nums text-[var(--text-faint)]",children:Fe(u.bytes)}),u.vram!=null?e.jsx("span",{className:"shrink-0 text-[12.5px] tabular-nums text-[var(--text-faint)]",children:n("settings.providers.local.vram").replace("{g}",String(u.vram))}):null,e.jsx("span",{className:"min-w-0 flex-1 truncate text-[12.5px] text-[var(--text-faint)]",children:u.progress!=null?n("settings.providers.local.progress").replace("{p}",`${Math.round(u.progress*100)}`):u.error??""}),u.downloaded?e.jsxs(k,{variant:"quiet",disabled:b,onClick:()=>{s.removeModel(t.id,u.id)},children:[e.jsx(Ce,{size:14,strokeWidth:2}),n("settings.providers.local.remove")]}):e.jsxs(k,{"data-row-action":!0,disabled:b||u.progress!=null,onClick:()=>{s.downloadModel(t.id,u.id)},children:[e.jsx(ue,{size:14,strokeWidth:2}),n("settings.providers.local.download")]})]}),u.languages?.length?e.jsx("span",{className:"mt-0.5 block text-[12px] text-[var(--text-faint)]",children:n("settings.providers.local.languages").replace("{list}",u.languages.map(l=>n(`settings.providers.local.lang.${l}`)).join(n("settings.providers.local.langSep")))}):null]},u.id)})}),o?e.jsx("span",{className:"mt-1 block text-[12.5px] text-[var(--text-faint)]",children:n("settings.providers.local.vramHint")}):null,r?.models.some(u=>u.downloaded)?s.state?.use.asr===t.id?e.jsx("span",{className:"mt-0.5 block text-[13px] text-[var(--text-faint)]",children:n("settings.providers.local.ready")}):e.jsxs("span",{className:"mt-0.5 flex items-center gap-2",children:[e.jsx("span",{className:"min-w-0 flex-1 text-[13px] text-[var(--text-faint)]",children:n("settings.providers.local.pick")}),e.jsx(k,{variant:"quiet","data-row-action":!0,disabled:s.busy===`${t.id}:asr`,onClick:()=>{s.choose("asr",t.id)},children:n("settings.providers.local.use")})]}):null]})}const Ke="aicut.theme",Te=()=>window.matchMedia("(prefers-color-scheme: dark)");function Le(){try{const t=localStorage.getItem(Ke);return t==="light"||t==="system"?t:"dark"}catch{return"dark"}}function qe(t){document.documentElement.dataset.theme=t==="system"?Te().matches?"dark":"light":t}const de=new Set;typeof window<"u"&&Te().addEventListener("change",()=>{Le()==="system"&&qe("system")});function Pt(t){try{localStorage.setItem(Ke,t)}catch{}qe(t);for(const s of de)s()}function Bt(){return[m.useSyncExternalStore(s=>(de.add(s),()=>de.delete(s)),Le,()=>"dark"),Pt]}const Ut=[{group:"settings",sections:["general",...T?.agents?["agents"]:[],"video","providers","models"]},{group:"help",sections:["shortcuts",...T?.developer?["developer"]:[]]}],It=[{label:"settings.links.github",href:"https://github.com/autoaiai/aicut"},{label:"settings.links.site",href:"http://autoaiai.com/aicut"}],_t={general:e.jsx(Ye,{size:18,strokeWidth:1.75}),agents:e.jsx(Ve,{size:18,strokeWidth:1.75}),video:e.jsx(Ne,{size:18,strokeWidth:1.75}),providers:e.jsx(at,{size:18,strokeWidth:1.75}),models:e.jsx(Ge,{size:18,strokeWidth:1.75}),developer:e.jsx(it,{size:18,strokeWidth:1.75}),shortcuts:e.jsx(tt,{size:18,strokeWidth:1.75})},je={general:["settings.appearance","settings.performance","settings.playback"],agents:"settings.agents",video:"settings.video",providers:"settings.providers",models:"settings.models",developer:"settings.developer",shortcuts:"settings.shortcuts"};function es({open:t,onClose:s,section:a,highlight:n}){const r=M(),c=Q(),[o,x]=m.useState("general"),[h,u]=m.useState(""),[b,l]=m.useState(!1),d=m.useRef(null),g=m.useRef(null),y=m.useRef(s);y.current=s;const C=m.useRef(n);C.current=n,m.useLayoutEffect(()=>{t&&(x(a??"general"),u(""))},[t,a]);const $=m.useMemo(()=>Object.fromEntries(Object.keys(je).map(p=>[p,[r(`settings.sections.${p}`),...[je[p]].flat().flatMap(A=>_e(A,c))].join(`
|
|
2
|
+
`).toLowerCase()])),[r,c]),E=h.trim().toLowerCase(),D=Ut.map(p=>({...p,sections:p.sections.filter(A=>!E||$[A].includes(E))})).filter(p=>p.sections.length>0),f=D.flatMap(p=>p.sections),j=f.includes(o)?o:f[0]??null;return m.useEffect(()=>{if(!t)return;const p=document.activeElement,A=R=>{if(R.defaultPrevented||(R.key==="Escape"&&y.current(),R.key!=="Tab"||!d.current?.contains(document.activeElement)))return;const B=Array.from(d.current.querySelectorAll('button:not(:disabled), a[href], input:not(:disabled), select:not(:disabled), [tabindex="0"]')).filter(S=>S.getClientRects().length>0),V=B[0],i=B[B.length-1];R.shiftKey&&document.activeElement===V?(R.preventDefault(),i?.focus()):!R.shiftKey&&document.activeElement===i&&(R.preventDefault(),V?.focus())};window.addEventListener("keydown",A);const v=document.body.style.overflow;document.body.style.overflow="hidden";const w=requestAnimationFrame(()=>{l(!0),C.current||g.current?.focus()});return()=>{window.removeEventListener("keydown",A),document.body.style.overflow=v,cancelAnimationFrame(w),l(!1),p?.isConnected&&p.focus()}},[t]),t?We.createPortal(e.jsx("div",{className:"fixed inset-0 z-[10050] grid place-items-center p-6",style:{background:"rgba(0,0,0,0.5)",opacity:b?1:0,transition:"opacity 160ms ease"},onMouseDown:p=>{p.target===p.currentTarget&&s()},children:e.jsxs("div",{ref:d,role:"dialog","aria-modal":"true","aria-labelledby":"settings-title",className:"relative flex h-[min(800px,90vh)] w-full max-w-[1120px] overflow-hidden rounded-[14px] border border-[var(--border)] bg-[var(--dock-pane)] shadow-[0_24px_64px_-12px_rgba(0,0,0,0.5),0_4px_16px_rgba(0,0,0,0.14)]",style:{opacity:b?1:0,transform:b?"scale(1)":"scale(0.98)",transition:"opacity 160ms ease, transform 200ms ease"},children:[e.jsxs("nav",{"aria-label":r("settings.title"),className:"flex w-[264px] shrink-0 flex-col overflow-y-auto border-r border-[var(--border)] px-3 pb-4 pt-3",children:[e.jsxs("label",{className:"mb-3 flex h-10 shrink-0 items-center gap-2.5 rounded-[9px] border border-[var(--border)] px-3 text-[var(--text-muted)] transition focus-within:border-[var(--text-muted)]",children:[e.jsx(He,{size:17,strokeWidth:1.75,className:"shrink-0","aria-hidden":!0}),e.jsx("input",{ref:g,value:h,onChange:p=>u(p.target.value),placeholder:r("settings.search"),"aria-label":r("settings.search"),className:"min-w-0 flex-1 bg-transparent text-[15px] text-[var(--text)] outline-none placeholder:text-[var(--text-faint)]"})]}),D.map(p=>e.jsxs("div",{className:"mt-3 flex flex-col gap-0.5",children:[e.jsx("div",{className:"px-2.5 pb-1.5 text-[13px] text-[var(--text-faint)]",children:r(p.group==="help"?"settings.groups.help":"settings.title")}),p.sections.map(A=>{const v=j===A;return e.jsxs("button",{type:"button","aria-current":v?"page":void 0,onClick:()=>x(A),className:`flex h-10 min-w-0 items-center gap-3 rounded-[8px] px-2.5 text-left text-[15px] transition ${v?"bg-[var(--bg-active)] text-[var(--text)]":"text-[var(--text-dim)] hover:bg-[var(--bg-hover)] hover:text-[var(--text)]"}`,children:[e.jsx("span",{className:`shrink-0 ${v?"text-[var(--text)]":"text-[var(--text-muted)]"}`,children:_t[A]}),e.jsx("span",{className:"min-w-0 truncate",children:r(`settings.sections.${A}`)})]},A)})]},p.group)),f.length===0?e.jsx("p",{className:"px-2.5 pt-4 text-[14px] text-[var(--text-faint)]",children:r("settings.noResults")}):null,e.jsx("div",{className:"mt-auto flex flex-wrap gap-x-4 gap-y-1 px-2.5 pt-6 text-[13px] text-[var(--text-faint)]",children:It.map(p=>e.jsx("a",{href:p.href,target:"_blank",rel:"noreferrer",className:"rounded-[4px] transition hover:text-[var(--text)]",children:r(p.label)},p.href))})]}),e.jsxs("div",{className:"relative flex min-w-0 flex-1 flex-col",children:[e.jsx("button",{type:"button",onClick:s,"aria-label":r("settings.done"),className:"absolute right-4 top-4 z-10 flex h-9 w-9 items-center justify-center rounded-[8px] text-[var(--text-muted)] transition hover:bg-[var(--bg-hover)] hover:text-[var(--text)]",children:e.jsx(we,{size:19,strokeWidth:1.75})}),e.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain px-10 pb-12 pt-9",children:[j?e.jsx("h2",{id:"settings-title",className:"mb-7 text-[22px] font-semibold tracking-[-0.015em] text-[var(--text)]",children:r(`settings.sections.${j}`)}):null,j==="general"&&e.jsx(Wt,{}),j==="agents"&&e.jsx(gt,{}),j==="video"&&e.jsx(Nt,{onConnect:()=>{u(""),x("providers")}}),j==="providers"&&e.jsx(zt,{highlight:n??null}),j==="models"&&e.jsx(Et,{onConnect:()=>{u(""),x("providers")}}),j==="developer"&&e.jsx(Zt,{}),j==="shortcuts"&&e.jsx(Qt,{})]},j??"none")]})]})}),document.body):null}function Wt(){const t=M(),[s,a]=Bt(),[n,r]=Je(),c=Q(),o=fe.find(x=>x.code===c)?.name??c;return e.jsxs(H,{children:[e.jsxs(F,{title:t("settings.appearance.group"),children:[e.jsx(z,{title:t("settings.appearance.theme"),description:t("settings.appearance.themeHint"),control:e.jsx(ze,{label:t("settings.appearance.theme"),value:s,onChange:a,options:[{value:"system",label:t("settings.appearance.system"),icon:e.jsx(st,{size:15})},{value:"light",label:t("settings.appearance.light"),icon:e.jsx(Ze,{size:15})},{value:"dark",label:t("settings.appearance.dark"),icon:e.jsx(nt,{size:15})}]})}),e.jsx(z,{title:t("settings.appearance.language"),description:n==="system"?`${t("settings.appearance.languageHint")} · ${o}`:t("settings.appearance.languageHint"),control:e.jsx(xe,{label:t("settings.appearance.language"),value:n,onChange:r,options:[{value:"system",label:t("settings.appearance.languageSystem")},...fe.map(x=>({value:x.code,label:x.name}))]})})]}),e.jsx(Ht,{}),e.jsx(Gt,{}),T?.update?.onState?e.jsx(Jt,{}):e.jsx(Vt,{})]})}function Ht(){const t=M(),s=T?.acceleration,[a,n]=m.useState(null);if(m.useEffect(()=>{if(s)return s.get().then(n).catch(()=>{}),s.onChange(n)},[s]),!s)return null;const r=!!a&&a.on!==a.atStart;return e.jsx(F,{title:t("settings.performance.group"),children:e.jsx(z,{title:t("settings.performance.gpu"),badge:r?e.jsx("span",{className:"rounded-full bg-[var(--fill-tsp)] px-2 py-0.5 text-[11.5px] text-[var(--text-muted)]",children:t("settings.performance.gpuWaiting")}):null,description:t(r?"settings.performance.gpuRestartHint":"settings.performance.gpuHint"),control:e.jsxs(e.Fragment,{children:[r?e.jsx(k,{onClick:()=>s.restart(),children:t("settings.performance.restart")}):null,a?e.jsx(Z,{checked:a.on,label:t("settings.performance.gpu"),onChange:c=>{n({...a,on:c}),s.set(c).then(n).catch(()=>{})}}):null]})})})}function Gt(){const t=M(),[s,a]=m.useState(null);if(m.useEffect(()=>{ae.prefs().then(a).catch(()=>{})},[]),!s)return null;const n=r=>{a({...s,proxies:{...s.proxies,...r}}),ae.setPrefs({proxies:r}).then(a).catch(()=>{})};return e.jsxs(F,{title:t("settings.playback.group"),children:[e.jsx(z,{title:t("settings.playback.proxies"),description:t("settings.playback.proxiesHint"),control:e.jsx(Z,{checked:s.proxies.on,onChange:r=>n({on:r}),label:t("settings.playback.proxies")})}),s.proxies.on?e.jsx(z,{title:t("settings.playback.proxySize"),description:t("settings.playback.proxySizeHint"),control:e.jsx(ze,{label:t("settings.playback.proxySize"),value:String(s.proxies.height),onChange:r=>n({height:Number(r)}),options:[{value:"540",label:"540p"},{value:"720",label:"720p"},{value:"1080",label:"1080p"}]})}):null]})}function Vt(){const t=M(),[s,a]=m.useState(null),[n,r]=m.useState("idle");m.useEffect(()=>{ae.version().then(a).catch(()=>{})},[]);const c=!!T,o=()=>{r("checking");const h=s?.checkedAt??null;ae.version(!0).then(u=>{a(u),r(u.checkedAt!=null&&u.checkedAt!==h?"idle":"failed")}).catch(()=>r("failed"))},x=c?t("settings.about.inApp"):s?.source?t("settings.about.source"):s&&!s.checking?t("settings.about.off"):n==="checking"?t("settings.about.checking"):n==="failed"?t("settings.about.failed"):s?.newer?t("settings.about.newer").replace("{version}",s.latest??""):s?.latest?t("settings.about.upToDate"):t("settings.about.never");return e.jsxs(F,{title:t("settings.about.group"),children:[e.jsx(z,{title:s?`AiCut ${s.version}`:"AiCut",description:x,control:c||!s?.checking?null:e.jsx(k,{disabled:n==="checking",onClick:o,children:t("settings.about.check")}),children:Me(s?.version)?e.jsx(Oe,{version:s.version}):null}),!c&&!s?.source&&s?.newer?e.jsx(z,{title:t("settings.about.howTitle"),description:t("settings.about.how"),control:e.jsx("code",{className:"select-all rounded-md bg-[var(--surface-2)] px-2 py-1 font-mono text-[12px] text-[var(--text)]",children:"npx -y @autoaiai/aicut@latest open"})}):null]})}function Oe({version:t}){const s=M();return e.jsx("button",{type:"button",onClick:()=>$e([t]),className:"mb-2 text-[13.5px] text-[var(--text-muted)] underline underline-offset-2 transition hover:text-[var(--text)]",children:s("settings.about.whatsNew")})}const Yt=10*6e4;function Jt(){const t=M(),s=Q(),a=T?.update,[n,r]=m.useState(null),[c,o]=m.useState(null);m.useEffect(()=>a?.onState?.(r),[a]);const x=m.useRef(!1);m.useEffect(()=>{if(!n||x.current)return;x.current=!0,(n.checkedAt==null||Date.now()-n.checkedAt>Yt)&&["idle","current","error"].includes(n.status)&&a?.check?.()},[n,a]);const h=()=>{o(null),a?.check?.()},u=()=>{o(null),a?.restart().then(f=>{!f.ok&&f.error&&o(f.error)})},b=f=>{const j=Math.round((Date.now()-f)/6e4),p=new Intl.RelativeTimeFormat(s,{numeric:"auto"});return j<60?p.format(-j,"minute"):j<2880?p.format(-Math.round(j/60),"hour"):p.format(-Math.round(j/1440),"day")},l=n,d=l?.availableVersion??"",g=c??(l?.status==="ready"?l.error:null),y=g==="agent-busy"?t("update.agentBusy"):g==="exporting"?t("update.exporting"):g==="install-failed"?t("update.installFailed").replace("{version}",d):null,C=l?.error==="offline"?t("settings.about.appOffline"):l?.error==="unavailable"?t("settings.about.appUnavailable"):t("settings.about.appFailed"),$=f=>e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(P,{size:13,className:"animate-spin","aria-hidden":!0}),f]}),E=l?l.status==="off"?t("settings.about.appOff"):l.status==="idle"||l.status==="checking"?$(t("settings.about.checking")):l.status==="current"?`${t("settings.about.upToDate")}${l.checkedAt?` ${t("settings.about.appChecked").replace("{time}",b(l.checkedAt))}`:""}`:l.status==="available"||l.status==="downloading"?$(`${t("settings.about.appDownloading").replace("{version}",d)}${l.status==="downloading"?` ${Math.round(l.progress)}%`:""}`):l.status==="staging"?$(t("settings.about.appStaging").replace("{version}",d)):l.status==="ready"?y??t("update.ready").replace("{version}",d):l.status==="installing"?$(t("update.installing")):C:null,D=l?l.status==="current"?e.jsx(k,{onClick:h,children:t("settings.about.check")}):l.status==="error"?e.jsx(k,{onClick:h,children:t("settings.about.appRetry")}):l.status==="ready"?e.jsx(k,{variant:"primary",onClick:u,children:t("update.restart")}):null:null;return e.jsx(F,{title:t("settings.about.group"),children:e.jsxs(z,{title:`AiCut ${l?.version??""}`.trim(),badge:l?.channel==="beta"?e.jsx("span",{className:"rounded-full bg-[var(--fill-tsp)] px-2 py-0.5 text-[11.5px] text-[var(--text-muted)]",children:"beta"}):null,description:E,control:D,children:[Me(l?.version)?e.jsx(Oe,{version:l.version}):null,l?.status==="downloading"?e.jsx("div",{className:"h-1 overflow-hidden rounded-full bg-[var(--fill-tsp)]",role:"progressbar","aria-valuenow":Math.round(l.progress),"aria-valuemin":0,"aria-valuemax":100,children:e.jsx("div",{className:"h-full rounded-full bg-[var(--text)] transition-[width]",style:{width:`${Math.max(2,l.progress)}%`}})}):null]})})}function Zt(){const t=M(),s=T?.developer,[a,n]=m.useState(null);if(m.useEffect(()=>{if(s)return s.get().then(n),s.onChange(n)},[s]),!s)return null;const r=c=>{n(o=>o&&{...o,...c}),s.set(c)};return e.jsxs(H,{note:t("settings.developer.intro"),children:[e.jsxs(F,{title:t("settings.developer.group"),footnote:t("settings.developer.where"),children:[e.jsx(z,{title:t("settings.developer.changes"),description:t("settings.developer.changesHint"),control:a?e.jsx(Z,{checked:a.changes,label:t("settings.developer.changes"),onChange:c=>r({changes:c})}):null}),e.jsx(z,{title:t("settings.developer.logs"),description:t("settings.developer.logsHint"),control:a?e.jsx(Z,{checked:a.logs,label:t("settings.developer.logs"),onChange:c=>r({logs:c})}):null})]}),oe()?e.jsx(F,{title:t("settings.developer.releaseGroup"),children:e.jsx(z,{title:t("settings.developer.previewWhatsNew"),description:t("settings.developer.previewWhatsNewHint").replace("{version}",oe()),control:e.jsx(k,{onClick:()=>$e([oe()]),children:t("settings.developer.preview")})})}):null]})}function Qt(){const t=M(),s=Qe(t,Xe());return e.jsx(H,{note:t("settings.shortcuts.hint"),children:s.map(a=>e.jsx(F,{title:a.title,children:a.items.map(n=>e.jsxs("div",{className:"flex min-h-[52px] items-center justify-between gap-6 py-2.5",children:[e.jsx("span",{className:"text-[15px] text-[var(--text)]",children:n.label}),e.jsx("span",{className:"flex max-w-[55%] shrink-0 flex-wrap items-center justify-end gap-1",children:n.keys.map((r,c)=>e.jsxs(m.Fragment,{children:[c>0?e.jsx("span",{className:"px-0.5 text-[13px] text-[var(--text-faint)]",children:"/"}):null,e.jsx("kbd",{className:"inline-flex h-7 min-w-7 items-center justify-center rounded-[6px] border border-[var(--border)] px-1.5 font-sans text-[13px] text-[var(--text-dim)]",children:r})]},r))})]},n.label))},a.title))})}export{es as SettingsModal};
|
|
Binary file
|