@muskanmeet/invoicing-design-system 0.1.0
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/.cache/replit/env/latest +78 -0
- package/.cache/replit/env/latest.json +1 -0
- package/.cache/replit/modules/nodejs-20.res +1 -0
- package/.cache/replit/modules/python-3.11.res +1 -0
- package/.cache/replit/modules/replit-rtld-loader.res +1 -0
- package/.cache/replit/modules/replit.res +1 -0
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/replit/nix/dotreplitenv.json +1 -0
- package/.cache/replit/toolchain.json +1 -0
- package/.cache/typescript/5.9/package-lock.json +50 -0
- package/.cache/typescript/5.9/package.json +1 -0
- package/.config/nextjs-nodejs/config.json +7 -0
- package/.eslintrc.json +3 -0
- package/.local/.commit_message +31 -0
- package/.local/secondary_skills/LICENSE.txt +21 -0
- package/.local/secondary_skills/ad-creative/.fingerprint +1 -0
- package/.local/secondary_skills/ad-creative/SKILL.md +872 -0
- package/.local/secondary_skills/ai-recruiter/.fingerprint +1 -0
- package/.local/secondary_skills/ai-recruiter/SKILL.md +1087 -0
- package/.local/secondary_skills/ai-sdr/.fingerprint +1 -0
- package/.local/secondary_skills/ai-sdr/SKILL.md +204 -0
- package/.local/secondary_skills/ai-secretary/.fingerprint +1 -0
- package/.local/secondary_skills/ai-secretary/SKILL.md +1132 -0
- package/.local/secondary_skills/branding-generator/.fingerprint +1 -0
- package/.local/secondary_skills/branding-generator/SKILL.md +286 -0
- package/.local/secondary_skills/competitive-analysis/.fingerprint +1 -0
- package/.local/secondary_skills/competitive-analysis/SKILL.md +429 -0
- package/.local/secondary_skills/content-machine/.fingerprint +1 -0
- package/.local/secondary_skills/content-machine/SKILL.md +321 -0
- package/.local/secondary_skills/deep-research/.fingerprint +1 -0
- package/.local/secondary_skills/deep-research/SKILL.md +517 -0
- package/.local/secondary_skills/design-thinker/.fingerprint +1 -0
- package/.local/secondary_skills/design-thinker/SKILL.md +327 -0
- package/.local/secondary_skills/excel-generator/.fingerprint +1 -0
- package/.local/secondary_skills/excel-generator/SKILL.md +954 -0
- package/.local/secondary_skills/excel-generator/financial-models.md +289 -0
- package/.local/secondary_skills/file-converter/.fingerprint +1 -0
- package/.local/secondary_skills/file-converter/SKILL.md +823 -0
- package/.local/secondary_skills/flashcard-generator/.fingerprint +1 -0
- package/.local/secondary_skills/flashcard-generator/SKILL.md +233 -0
- package/.local/secondary_skills/geo/.fingerprint +1 -0
- package/.local/secondary_skills/geo/SKILL.md +378 -0
- package/.local/secondary_skills/geo/references/content-patterns.md +158 -0
- package/.local/secondary_skills/geo/references/platform-notes.md +128 -0
- package/.local/secondary_skills/geo/references/scorecard.md +113 -0
- package/.local/secondary_skills/geo/references/technical-checklist.md +257 -0
- package/.local/secondary_skills/github-solution-finder/.fingerprint +1 -0
- package/.local/secondary_skills/github-solution-finder/SKILL.md +174 -0
- package/.local/secondary_skills/infographic-builder/.fingerprint +1 -0
- package/.local/secondary_skills/infographic-builder/SKILL.md +317 -0
- package/.local/secondary_skills/infographic-builder/antv-syntax.md +470 -0
- package/.local/secondary_skills/infographic-builder/react-fallback.md +210 -0
- package/.local/secondary_skills/insurance-optimizer/.fingerprint +1 -0
- package/.local/secondary_skills/insurance-optimizer/SKILL.md +209 -0
- package/.local/secondary_skills/interview-prep/.fingerprint +1 -0
- package/.local/secondary_skills/interview-prep/SKILL.md +349 -0
- package/.local/secondary_skills/invoice-generator/.fingerprint +1 -0
- package/.local/secondary_skills/invoice-generator/SKILL.md +527 -0
- package/.local/secondary_skills/legal-contract/.fingerprint +1 -0
- package/.local/secondary_skills/legal-contract/SKILL.md +977 -0
- package/.local/secondary_skills/meal-planner/.fingerprint +1 -0
- package/.local/secondary_skills/meal-planner/SKILL.md +517 -0
- package/.local/secondary_skills/personal-shopper/.fingerprint +1 -0
- package/.local/secondary_skills/personal-shopper/SKILL.md +361 -0
- package/.local/secondary_skills/photo-editor/.fingerprint +1 -0
- package/.local/secondary_skills/photo-editor/SKILL.md +605 -0
- package/.local/secondary_skills/podcast-generator/.fingerprint +1 -0
- package/.local/secondary_skills/podcast-generator/SKILL.md +560 -0
- package/.local/secondary_skills/podcast-marketing/.fingerprint +1 -0
- package/.local/secondary_skills/podcast-marketing/SKILL.md +550 -0
- package/.local/secondary_skills/podcast-marketing/audio-processing.md +530 -0
- package/.local/secondary_skills/podcast-marketing/content-atoms.md +253 -0
- package/.local/secondary_skills/podcast-marketing/content-calendar.md +318 -0
- package/.local/secondary_skills/podcast-marketing/content-templates.md +325 -0
- package/.local/secondary_skills/podcast-marketing/quote-cards.md +238 -0
- package/.local/secondary_skills/podcast-marketing/rss-and-batch.md +359 -0
- package/.local/secondary_skills/podcast-marketing/video-clips.md +660 -0
- package/.local/secondary_skills/podcast-marketing/youtube-processing.md +328 -0
- package/.local/secondary_skills/product-manager/.fingerprint +1 -0
- package/.local/secondary_skills/product-manager/SKILL.md +272 -0
- package/.local/secondary_skills/programmatic-seo/.fingerprint +1 -0
- package/.local/secondary_skills/programmatic-seo/SKILL.md +1207 -0
- package/.local/secondary_skills/real-estate-analyzer/.fingerprint +1 -0
- package/.local/secondary_skills/real-estate-analyzer/SKILL.md +786 -0
- package/.local/secondary_skills/recipe-creator/.fingerprint +1 -0
- package/.local/secondary_skills/recipe-creator/SKILL.md +259 -0
- package/.local/secondary_skills/recreate-screenshot/.fingerprint +1 -0
- package/.local/secondary_skills/recreate-screenshot/SKILL.md +215 -0
- package/.local/secondary_skills/replit-migration-guardrails/.fingerprint +1 -0
- package/.local/secondary_skills/replit-migration-guardrails/SKILL.md +55 -0
- package/.local/secondary_skills/replit-migration-guardrails/references/base44.md +47 -0
- package/.local/secondary_skills/replit-migration-guardrails/references/vercel.md +78 -0
- package/.local/secondary_skills/resume-maker/.fingerprint +1 -0
- package/.local/secondary_skills/resume-maker/SKILL.md +790 -0
- package/.local/secondary_skills/seo-auditor/.fingerprint +1 -0
- package/.local/secondary_skills/seo-auditor/SKILL.md +448 -0
- package/.local/secondary_skills/skill-creator/.fingerprint +1 -0
- package/.local/secondary_skills/skill-creator/SKILL.md +214 -0
- package/.local/secondary_skills/skill-finder/.fingerprint +1 -0
- package/.local/secondary_skills/skill-finder/SKILL.md +299 -0
- package/.local/secondary_skills/stock-analyzer/.fingerprint +1 -0
- package/.local/secondary_skills/stock-analyzer/SKILL.md +798 -0
- package/.local/secondary_skills/storyboard/.fingerprint +1 -0
- package/.local/secondary_skills/storyboard/SKILL.md +558 -0
- package/.local/secondary_skills/supplier-research/.fingerprint +1 -0
- package/.local/secondary_skills/supplier-research/SKILL.md +213 -0
- package/.local/secondary_skills/tax-reviewer/.fingerprint +1 -0
- package/.local/secondary_skills/tax-reviewer/SKILL.md +131 -0
- package/.local/secondary_skills/travel-assistant/.fingerprint +1 -0
- package/.local/secondary_skills/travel-assistant/SKILL.md +667 -0
- package/.local/secondary_skills/video-editing/.fingerprint +1 -0
- package/.local/secondary_skills/video-editing/SKILL.md +705 -0
- package/.local/secondary_skills/video-editing/dead-space-and-chunking.md +1081 -0
- package/.local/secondary_skills/video-editing/operations.md +1719 -0
- package/.local/secondary_skills/video-editing/virality-scoring.md +1212 -0
- package/.local/secondary_skills/video-editing/voiceover.md +788 -0
- package/.local/secondary_skills/website-cloning/.fingerprint +1 -0
- package/.local/secondary_skills/website-cloning/SKILL.md +544 -0
- package/.local/secondary_skills/website-cloning/extraction.md +1207 -0
- package/.local/secondary_skills/website-cloning/pitfalls.md +297 -0
- package/.local/skills/LICENSE.txt +21 -0
- package/.local/skills/agent-inbox/.fingerprint +1 -0
- package/.local/skills/agent-inbox/SKILL.md +128 -0
- package/.local/skills/artifacts/.fingerprint +1 -0
- package/.local/skills/artifacts/SKILL.md +21 -0
- package/.local/skills/artifacts/artifacts/automation/artifact.yaml +40 -0
- package/.local/skills/artifacts/artifacts/automation/files/package.json.template +47 -0
- package/.local/skills/artifacts/artifacts/automation/files/scripts/build.sh +6 -0
- package/.local/skills/artifacts/artifacts/automation/files/scripts/inngest.sh +18 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/global.d.ts +1 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/agents/agent.ts +89 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/index.ts +212 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/client.ts +17 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/index.ts +214 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/storage/index.ts +8 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/tools/exampleTool.ts +71 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/workflows/workflow.ts +203 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/cronTriggers.ts +61 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/exampleConnectorTrigger.ts +153 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/slackTriggers.ts +638 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/telegramTriggers.ts +94 -0
- package/.local/skills/artifacts/artifacts/automation/files/tests/testCronAutomation.ts +86 -0
- package/.local/skills/artifacts/artifacts/automation/files/tests/testWebhookAutomation.ts +118 -0
- package/.local/skills/artifacts/artifacts/automation/files/tsconfig.json +26 -0
- package/.local/skills/artifacts/artifacts/data-visualization/artifact.yaml +48 -0
- package/.local/skills/artifacts/artifacts/expo/OWNERS +2 -0
- package/.local/skills/artifacts/artifacts/expo/artifact.yaml +47 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/_layout.tsx +86 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/index.tsx +28 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/+not-found.tsx +45 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/_layout.tsx +60 -0
- package/.local/skills/artifacts/artifacts/expo/files/app.json.template +38 -0
- package/.local/skills/artifacts/artifacts/expo/files/assets/images/icon.png +0 -0
- package/.local/skills/artifacts/artifacts/expo/files/babel.config.js +6 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/ErrorBoundary.tsx +54 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/ErrorFallback.tsx +278 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/KeyboardAwareScrollViewCompat.tsx +29 -0
- package/.local/skills/artifacts/artifacts/expo/files/constants/colors.ts +59 -0
- package/.local/skills/artifacts/artifacts/expo/files/hooks/useColors.ts +24 -0
- package/.local/skills/artifacts/artifacts/expo/files/metro.config.js +3 -0
- package/.local/skills/artifacts/artifacts/expo/files/package.json.template +58 -0
- package/.local/skills/artifacts/artifacts/expo/files/scripts/build.js +573 -0
- package/.local/skills/artifacts/artifacts/expo/files/server/serve.js +135 -0
- package/.local/skills/artifacts/artifacts/expo/files/server/templates/landing-page.html +460 -0
- package/.local/skills/artifacts/artifacts/expo/files/tsconfig.json +23 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/artifact.yaml +15 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/components.json +21 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/index.html +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/mockupPreviewPlugin.ts +199 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/package.json.template +75 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/.generated/mockup-components.ts +3 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/App.tsx +146 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/accordion.tsx +55 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert-dialog.tsx +139 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert.tsx +59 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/aspect-ratio.tsx +5 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/avatar.tsx +50 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/badge.tsx +43 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/breadcrumb.tsx +115 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button-group.tsx +83 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button.tsx +65 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/calendar.tsx +213 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/card.tsx +76 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/carousel.tsx +260 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/chart.tsx +367 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/checkbox.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/collapsible.tsx +11 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/command.tsx +153 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/context-menu.tsx +198 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dialog.tsx +120 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/drawer.tsx +116 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dropdown-menu.tsx +201 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/empty.tsx +104 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/field.tsx +244 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/form.tsx +176 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/hover-card.tsx +27 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-group.tsx +168 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-otp.tsx +69 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input.tsx +22 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/item.tsx +193 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/kbd.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/label.tsx +26 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/menubar.tsx +254 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/navigation-menu.tsx +128 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/pagination.tsx +117 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/popover.tsx +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/progress.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/radio-group.tsx +42 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/resizable.tsx +45 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/scroll-area.tsx +46 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/select.tsx +159 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/separator.tsx +29 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sheet.tsx +140 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sidebar.tsx +727 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/skeleton.tsx +15 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/slider.tsx +26 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sonner.tsx +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/spinner.tsx +16 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/switch.tsx +27 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/table.tsx +120 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tabs.tsx +53 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/textarea.tsx +22 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toast.tsx +127 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toaster.tsx +33 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle-group.tsx +61 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle.tsx +43 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tooltip.tsx +32 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-toast.ts +189 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/index.css +158 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/tsconfig.json +20 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/vite.config.ts +72 -0
- package/.local/skills/artifacts/artifacts/react-vite/artifact.yaml +41 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/components.json +20 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/index.html.template +24 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/package.json.template +77 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/public/robots.txt +2 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/App.tsx +42 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/accordion.tsx +55 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert-dialog.tsx +139 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert.tsx +59 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/aspect-ratio.tsx +5 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/avatar.tsx +50 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/badge.tsx +43 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/breadcrumb.tsx +115 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button-group.tsx +83 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button.tsx +65 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/calendar.tsx +213 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/card.tsx +76 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/carousel.tsx +260 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/chart.tsx +367 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/checkbox.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/collapsible.tsx +11 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/command.tsx +153 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/context-menu.tsx +198 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dialog.tsx +120 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/drawer.tsx +116 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dropdown-menu.tsx +201 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/empty.tsx +104 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/field.tsx +244 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/form.tsx +176 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/hover-card.tsx +27 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-group.tsx +168 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-otp.tsx +69 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input.tsx +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/item.tsx +193 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/kbd.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/label.tsx +26 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/menubar.tsx +254 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/navigation-menu.tsx +128 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/pagination.tsx +117 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/popover.tsx +31 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/progress.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/radio-group.tsx +42 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/resizable.tsx +45 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/scroll-area.tsx +46 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/select.tsx +159 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/separator.tsx +29 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sheet.tsx +140 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sidebar.tsx +727 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/skeleton.tsx +15 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/slider.tsx +26 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sonner.tsx +31 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/spinner.tsx +16 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/switch.tsx +27 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/table.tsx +120 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tabs.tsx +53 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/textarea.tsx +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toast.tsx +127 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toaster.tsx +33 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle-group.tsx +61 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle.tsx +43 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tooltip.tsx +32 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-toast.ts +191 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/index.css +393 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/pages/not-found.tsx +21 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/tsconfig.json +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/vite.config.ts +75 -0
- package/.local/skills/artifacts/artifacts/slides/artifact.yaml +33 -0
- package/.local/skills/artifacts/artifacts/slides/files/index.html.template +46 -0
- package/.local/skills/artifacts/artifacts/slides/files/package.json.template +30 -0
- package/.local/skills/artifacts/artifacts/slides/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/slides/files/scripts/validate-slides.ts +193 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/App.tsx +251 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/data/slides-manifest.json +1 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/data/slidesManifestSchema.ts +33 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/index.css +48 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/main.tsx +14 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/slideLoader.ts +51 -0
- package/.local/skills/artifacts/artifacts/slides/files/tsconfig.json +17 -0
- package/.local/skills/artifacts/artifacts/slides/files/vite.config.ts +74 -0
- package/.local/skills/artifacts/artifacts/video-js/artifact.yaml +38 -0
- package/.local/skills/artifacts/artifacts/video-js/files/index.html.template +27 -0
- package/.local/skills/artifacts/artifacts/video-js/files/package.json.template +36 -0
- package/.local/skills/artifacts/artifacts/video-js/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/video-js/files/scripts/validate-recording.sh +38 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/App.tsx +5 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/ReplitLoadingScene.tsx +105 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/VideoTemplate.tsx +30 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/index.ts +1 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/index.css +50 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/animations.ts +239 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/hooks.ts +104 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/index.ts +19 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/video-js/files/tsconfig.json +16 -0
- package/.local/skills/artifacts/artifacts/video-js/files/vite.config.ts +79 -0
- package/.local/skills/artifacts/bootstrap-legacy.js +115 -0
- package/.local/skills/artifacts/bootstrap.js +118 -0
- package/.local/skills/artifacts/references/multi-artifact-creation.md +94 -0
- package/.local/skills/canvas/.fingerprint +1 -0
- package/.local/skills/canvas/SKILL.md +534 -0
- package/.local/skills/canvas/__init__.py +1 -0
- package/.local/skills/code_review/.fingerprint +1 -0
- package/.local/skills/code_review/SKILL.md +82 -0
- package/.local/skills/database/.fingerprint +1 -0
- package/.local/skills/database/SKILL.md +351 -0
- package/.local/skills/database/references/database-migrations-on-publish.md +57 -0
- package/.local/skills/delegation/.fingerprint +1 -0
- package/.local/skills/delegation/SKILL.md +200 -0
- package/.local/skills/deployment/.fingerprint +1 -0
- package/.local/skills/deployment/SKILL.md +261 -0
- package/.local/skills/deployment/references/deployment-failure-debugging.md +243 -0
- package/.local/skills/deployment/references/deployment-logs.md +147 -0
- package/.local/skills/design/.fingerprint +1 -0
- package/.local/skills/design/SKILL.md +235 -0
- package/.local/skills/design-exploration/.fingerprint +1 -0
- package/.local/skills/design-exploration/SKILL.md +95 -0
- package/.local/skills/diagnostics/.fingerprint +1 -0
- package/.local/skills/diagnostics/SKILL.md +122 -0
- package/.local/skills/environment-secrets/.fingerprint +1 -0
- package/.local/skills/environment-secrets/SKILL.md +201 -0
- package/.local/skills/expo/.fingerprint +1 -0
- package/.local/skills/expo/OWNERS +2 -0
- package/.local/skills/expo/SKILL.md +298 -0
- package/.local/skills/expo/references/design_and_aesthetics.md +141 -0
- package/.local/skills/expo/references/device_features_and_permissions.md +48 -0
- package/.local/skills/expo/references/first_build.md +114 -0
- package/.local/skills/expo/references/react_context.md +54 -0
- package/.local/skills/external_apis/.fingerprint +1 -0
- package/.local/skills/external_apis/SKILL.md +25 -0
- package/.local/skills/external_apis/references/brave.md +116 -0
- package/.local/skills/external_apis/references/elevenlabs.md +44 -0
- package/.local/skills/external_apis/references/exa.md +34 -0
- package/.local/skills/external_apis/references/firecrawl.md +37 -0
- package/.local/skills/external_apis/references/nano_banana.md +33 -0
- package/.local/skills/follow-up-tasks/.fingerprint +1 -0
- package/.local/skills/follow-up-tasks/SKILL.md +80 -0
- package/.local/skills/image-search/.fingerprint +1 -0
- package/.local/skills/image-search/SKILL.md +150 -0
- package/.local/skills/integrations/.fingerprint +1 -0
- package/.local/skills/integrations/SKILL.md +205 -0
- package/.local/skills/media-generation/.fingerprint +1 -0
- package/.local/skills/media-generation/SKILL.md +170 -0
- package/.local/skills/media-generation/audio_generation.md +138 -0
- package/.local/skills/media-generation/video_generation.md +82 -0
- package/.local/skills/mockup-extract/.fingerprint +1 -0
- package/.local/skills/mockup-extract/SKILL.md +123 -0
- package/.local/skills/mockup-graduate/.fingerprint +1 -0
- package/.local/skills/mockup-graduate/SKILL.md +97 -0
- package/.local/skills/mockup-sandbox/.fingerprint +1 -0
- package/.local/skills/mockup-sandbox/SKILL.md +750 -0
- package/.local/skills/package-management/.fingerprint +1 -0
- package/.local/skills/package-management/SKILL.md +264 -0
- package/.local/skills/post_merge_setup/.fingerprint +1 -0
- package/.local/skills/post_merge_setup/SKILL.md +102 -0
- package/.local/skills/project_tasks/.fingerprint +1 -0
- package/.local/skills/project_tasks/SKILL.md +361 -0
- package/.local/skills/query-integration-data/.fingerprint +1 -0
- package/.local/skills/query-integration-data/SKILL.md +385 -0
- package/.local/skills/react-vite/.fingerprint +1 -0
- package/.local/skills/react-vite/SKILL.md +110 -0
- package/.local/skills/react-vite/references/frontend_general_rules.md +66 -0
- package/.local/skills/react-vite/references/seo.md +158 -0
- package/.local/skills/remove-image-background/.fingerprint +1 -0
- package/.local/skills/remove-image-background/SKILL.md +55 -0
- package/.local/skills/repl_setup/.fingerprint +1 -0
- package/.local/skills/repl_setup/SKILL.md +90 -0
- package/.local/skills/repl_setup/references/angular.md +103 -0
- package/.local/skills/repl_setup/references/react_vite.md +121 -0
- package/.local/skills/repl_setup/references/vue.md +102 -0
- package/.local/skills/replit-docs/.fingerprint +1 -0
- package/.local/skills/replit-docs/SKILL.md +81 -0
- package/.local/skills/revenuecat/.fingerprint +1 -0
- package/.local/skills/revenuecat/SKILL.md +133 -0
- package/.local/skills/revenuecat/references/initial-setup.md +566 -0
- package/.local/skills/revenuecat/references/replit-revenuecat-sdk-docs.md +279 -0
- package/.local/skills/revenuecat/references/subsequent-management.md +63 -0
- package/.local/skills/security_scan/.fingerprint +1 -0
- package/.local/skills/security_scan/SKILL.md +51 -0
- package/.local/skills/skill-authoring/.fingerprint +1 -0
- package/.local/skills/skill-authoring/SKILL.md +99 -0
- package/.local/skills/slides/.fingerprint +1 -0
- package/.local/skills/slides/SKILL.md +523 -0
- package/.local/skills/slides/references/brand_research.md +86 -0
- package/.local/skills/slides/references/export_failures.md +36 -0
- package/.local/skills/slides/references/exporting.md +49 -0
- package/.local/skills/slides/references/importing.md +40 -0
- package/.local/skills/slides/references/visual_qa.md +121 -0
- package/.local/skills/slides/templates/90s-board-deck.md +285 -0
- package/.local/skills/slides/templates/academic-lecture.md +437 -0
- package/.local/skills/slides/templates/adventure-outdoor.md +845 -0
- package/.local/skills/slides/templates/analytics-dashboard.md +407 -0
- package/.local/skills/slides/templates/annual-report-cover.md +592 -0
- package/.local/skills/slides/templates/apple-minimal.md +570 -0
- package/.local/skills/slides/templates/architecture-studio.md +339 -0
- package/.local/skills/slides/templates/arctic-expedition.md +582 -0
- package/.local/skills/slides/templates/arctic-minimal.md +364 -0
- package/.local/skills/slides/templates/art-deco.md +308 -0
- package/.local/skills/slides/templates/artisan-ceramics.md +659 -0
- package/.local/skills/slides/templates/artisan-food.md +709 -0
- package/.local/skills/slides/templates/artisanal-chalkboard.md +623 -0
- package/.local/skills/slides/templates/astronomy-log.md +562 -0
- package/.local/skills/slides/templates/aurora-expedition.md +754 -0
- package/.local/skills/slides/templates/automotive-electric.md +339 -0
- package/.local/skills/slides/templates/bauhaus-avant-garde.md +443 -0
- package/.local/skills/slides/templates/bioluminescent-sea.md +814 -0
- package/.local/skills/slides/templates/biophilic-urban.md +565 -0
- package/.local/skills/slides/templates/blackboard-chalk.md +517 -0
- package/.local/skills/slides/templates/blueprint.md +478 -0
- package/.local/skills/slides/templates/botanical-index.md +822 -0
- package/.local/skills/slides/templates/botanical-wellness.md +611 -0
- package/.local/skills/slides/templates/brand-book-page.md +466 -0
- package/.local/skills/slides/templates/brutalist-concrete.md +362 -0
- package/.local/skills/slides/templates/brutalist-studio.md +325 -0
- package/.local/skills/slides/templates/brutalist-web-punk.md +591 -0
- package/.local/skills/slides/templates/celestial-observatory.md +453 -0
- package/.local/skills/slides/templates/ceramics-artisan.md +740 -0
- package/.local/skills/slides/templates/cinema-verite.md +415 -0
- package/.local/skills/slides/templates/claymorphism.md +737 -0
- package/.local/skills/slides/templates/collage-zine.md +357 -0
- package/.local/skills/slides/templates/copper-sage.md +325 -0
- package/.local/skills/slides/templates/coral-reef.md +508 -0
- package/.local/skills/slides/templates/corporate-grid.md +331 -0
- package/.local/skills/slides/templates/corporate-memphis-flat.md +938 -0
- package/.local/skills/slides/templates/cosmos-explorer.md +998 -0
- package/.local/skills/slides/templates/cpg-coffee.md +850 -0
- package/.local/skills/slides/templates/craft-coffee-roast.md +693 -0
- package/.local/skills/slides/templates/creative-agency.md +244 -0
- package/.local/skills/slides/templates/creative-director.md +875 -0
- package/.local/skills/slides/templates/culinary-brand.md +698 -0
- package/.local/skills/slides/templates/de-stijl-construct.md +320 -0
- package/.local/skills/slides/templates/desert-dunes-photo.md +483 -0
- package/.local/skills/slides/templates/desert-mirror.md +577 -0
- package/.local/skills/slides/templates/desert-modernism.md +439 -0
- package/.local/skills/slides/templates/developer-api-docs.md +654 -0
- package/.local/skills/slides/templates/editorial-magazine.md +694 -0
- package/.local/skills/slides/templates/engineering-blueprint.md +730 -0
- package/.local/skills/slides/templates/executive-mono.md +363 -0
- package/.local/skills/slides/templates/expedition-peak.md +298 -0
- package/.local/skills/slides/templates/fashion-campaign.md +681 -0
- package/.local/skills/slides/templates/fashion-editorial.md +497 -0
- package/.local/skills/slides/templates/figma-geometric.md +420 -0
- package/.local/skills/slides/templates/film-noir.md +857 -0
- package/.local/skills/slides/templates/fitness-athletics.md +663 -0
- package/.local/skills/slides/templates/flat-vector.md +912 -0
- package/.local/skills/slides/templates/fluid-luxe.md +665 -0
- package/.local/skills/slides/templates/furniture-brand.md +505 -0
- package/.local/skills/slides/templates/gallery-modern.md +436 -0
- package/.local/skills/slides/templates/gaming-esports.md +410 -0
- package/.local/skills/slides/templates/geodesic-future.md +368 -0
- package/.local/skills/slides/templates/glass-artisan.md +666 -0
- package/.local/skills/slides/templates/glassmorphism.md +320 -0
- package/.local/skills/slides/templates/greenhouse-botanical.md +662 -0
- package/.local/skills/slides/templates/healthcare-clarity.md +468 -0
- package/.local/skills/slides/templates/holographic-drop.md +663 -0
- package/.local/skills/slides/templates/hospitality-resort.md +608 -0
- package/.local/skills/slides/templates/hypercar-launch.md +557 -0
- package/.local/skills/slides/templates/infographic-title.md +306 -0
- package/.local/skills/slides/templates/ink-wash.md +244 -0
- package/.local/skills/slides/templates/investor-memo.md +509 -0
- package/.local/skills/slides/templates/isometric-data.md +703 -0
- package/.local/skills/slides/templates/ivory-boardroom.md +439 -0
- package/.local/skills/slides/templates/japanese-minimal.md +308 -0
- package/.local/skills/slides/templates/jazz-blue-note.md +478 -0
- package/.local/skills/slides/templates/kinetic-type.md +206 -0
- package/.local/skills/slides/templates/lagoon-luxury.md +320 -0
- package/.local/skills/slides/templates/lavender-pastoral.md +577 -0
- package/.local/skills/slides/templates/linear-precise.md +460 -0
- package/.local/skills/slides/templates/lineart-sketch.md +930 -0
- package/.local/skills/slides/templates/lost-temple.md +689 -0
- package/.local/skills/slides/templates/luxury-fashion.md +269 -0
- package/.local/skills/slides/templates/luxury-watch.md +678 -0
- package/.local/skills/slides/templates/marble-elegance.md +673 -0
- package/.local/skills/slides/templates/mediterranean-travel.md +811 -0
- package/.local/skills/slides/templates/memphis-design.md +426 -0
- package/.local/skills/slides/templates/midnight-jazz.md +260 -0
- package/.local/skills/slides/templates/minimalist-poster.md +538 -0
- package/.local/skills/slides/templates/molten-craft.md +743 -0
- package/.local/skills/slides/templates/moroccan-tile.md +738 -0
- package/.local/skills/slides/templates/motorsport.md +782 -0
- package/.local/skills/slides/templates/mountain-drift.md +311 -0
- package/.local/skills/slides/templates/music-label.md +641 -0
- package/.local/skills/slides/templates/neo-tokyo.md +637 -0
- package/.local/skills/slides/templates/neobrutalism.md +334 -0
- package/.local/skills/slides/templates/newspaper-broadsheet.md +687 -0
- package/.local/skills/slides/templates/noir-fragrance.md +672 -0
- package/.local/skills/slides/templates/non-profit-impact.md +320 -0
- package/.local/skills/slides/templates/ocean-breeze.md +398 -0
- package/.local/skills/slides/templates/origami-couture.md +636 -0
- package/.local/skills/slides/templates/origami-paper.md +308 -0
- package/.local/skills/slides/templates/pastel-playground.md +1114 -0
- package/.local/skills/slides/templates/perfume-noir.md +646 -0
- package/.local/skills/slides/templates/prairie-storm.md +625 -0
- package/.local/skills/slides/templates/private-equity-dark.md +506 -0
- package/.local/skills/slides/templates/renaissance-florals.md +225 -0
- package/.local/skills/slides/templates/retro-print.md +880 -0
- package/.local/skills/slides/templates/retro-vinyl-sleeve.md +229 -0
- package/.local/skills/slides/templates/riso-zine.md +1094 -0
- package/.local/skills/slides/templates/risograph.md +1151 -0
- package/.local/skills/slides/templates/saas-product-launch.md +972 -0
- package/.local/skills/slides/templates/scandinavian.md +372 -0
- package/.local/skills/slides/templates/skater-culture.md +583 -0
- package/.local/skills/slides/templates/slate-modern.md +469 -0
- package/.local/skills/slides/templates/sneaker-drop.md +1006 -0
- package/.local/skills/slides/templates/social-campaign.md +321 -0
- package/.local/skills/slides/templates/stained-glass.md +574 -0
- package/.local/skills/slides/templates/strategy-one-pager.md +508 -0
- package/.local/skills/slides/templates/street-drop.md +677 -0
- package/.local/skills/slides/templates/street-mural.md +588 -0
- package/.local/skills/slides/templates/studio-noir.md +466 -0
- package/.local/skills/slides/templates/sustainability-esg.md +686 -0
- package/.local/skills/slides/templates/swiss-archive.md +648 -0
- package/.local/skills/slides/templates/swiss-typographic.md +364 -0
- package/.local/skills/slides/templates/tea-ceremony.md +456 -0
- package/.local/skills/slides/templates/tech-earbuds.md +870 -0
- package/.local/skills/slides/templates/terracotta-studio.md +235 -0
- package/.local/skills/slides/templates/thesis-defense.md +390 -0
- package/.local/skills/slides/templates/travel-aerial.md +648 -0
- package/.local/skills/slides/templates/treasury-policy.md +475 -0
- package/.local/skills/slides/templates/tropical-lush.md +332 -0
- package/.local/skills/slides/templates/underwater-dream.md +627 -0
- package/.local/skills/slides/templates/urban-golden.md +342 -0
- package/.local/skills/slides/templates/vintage-apothecary.md +552 -0
- package/.local/skills/slides/templates/vintage-ticket-stub.md +637 -0
- package/.local/skills/slides/templates/vinyl-crate.md +550 -0
- package/.local/skills/slides/templates/vision-editorial.md +612 -0
- package/.local/skills/slides/templates/volcanic-edge.md +347 -0
- package/.local/skills/slides/templates/watercolor-city.md +827 -0
- package/.local/skills/slides/templates/wine-spirits.md +203 -0
- package/.local/skills/slides/templates/wireframe-prototype.md +718 -0
- package/.local/skills/slides/templates/workspace-design.md +782 -0
- package/.local/skills/slides/templates/workspace-modern.md +406 -0
- package/.local/skills/slides/templates/zen-meditation.md +284 -0
- package/.local/skills/slides/templates/zen-void.md +244 -0
- package/.local/skills/stripe/.fingerprint +1 -0
- package/.local/skills/stripe/SKILL.md +455 -0
- package/.local/skills/stripe/references/code-templates.md +588 -0
- package/.local/skills/threat_modeling/.fingerprint +1 -0
- package/.local/skills/threat_modeling/SKILL.md +240 -0
- package/.local/skills/validation/.fingerprint +1 -0
- package/.local/skills/validation/SKILL.md +237 -0
- package/.local/skills/video-js/.fingerprint +1 -0
- package/.local/skills/video-js/SKILL.md +793 -0
- package/.local/skills/video-js/references/audio.md +237 -0
- package/.local/skills/video-js/references/finalize_playback.md +16 -0
- package/.local/skills/video-js/references/first_build.md +87 -0
- package/.local/skills/video-js/references/scene_selectors.md +428 -0
- package/.local/skills/web-search/.fingerprint +1 -0
- package/.local/skills/web-search/SKILL.md +110 -0
- package/.local/skills/whop/.fingerprint +1 -0
- package/.local/skills/whop/SKILL.md +104 -0
- package/.local/skills/whop/references/code-templates.md +66 -0
- package/.local/skills/whop/references/whop-api.mjs +22 -0
- package/.local/skills/whop/references/whop-mcp.mjs +40 -0
- package/.local/skills/whop/references/whopClient.ts +54 -0
- package/.local/skills/workflows/.fingerprint +1 -0
- package/.local/skills/workflows/SKILL.md +245 -0
- package/.local/state/replit/agent/.agent_state_037313043e76b5c652f276153ea014a68570e145.bin +0 -0
- package/.local/state/replit/agent/.agent_state_0f5361c2a53ab324b2a941a797f6494891be084c.bin +0 -0
- package/.local/state/replit/agent/.agent_state_4272443827dc90eac8c5b1963a34ee86da70bb99.bin +0 -0
- package/.local/state/replit/agent/.agent_state_4f14655950cbd611b228b4f0e1f664b66a56af24.bin +0 -0
- package/.local/state/replit/agent/.agent_state_ce28955a30856aa3d095b3568c322c8ec098993f.bin +0 -0
- package/.local/state/replit/agent/.agent_state_ec5347d04ebfbf6cf850fe04e15590d423e96d1d.bin +0 -0
- package/.local/state/replit/agent/.agent_state_f68f8c104d815ccc387290f0fba2c87c818d29f1.bin +0 -0
- package/.local/state/replit/agent/.agent_state_f87c1803a179510408c57c7a380c26f5c2197a30.bin +0 -0
- package/.local/state/replit/agent/.agent_state_main.bin +0 -0
- package/.local/state/replit/agent/.latest.json +1 -0
- package/.local/state/replit/agent/repl_state.bin +0 -0
- package/.local/state/scribe/scribe.db +0 -0
- package/.local/state/scribe/scribe.db-shm +0 -0
- package/.local/state/scribe/scribe.db-wal +0 -0
- package/.local/state/workflow-logs/2tfQP52ibxJTy4lpZ7_JX/start_application.shell.exec.0 +27 -0
- package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.external.managed.0 +31 -0
- package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.json +1 -0
- package/.local/state/workflow-logs/85n-z_SHy4JSGaUeJIcxy/start_application.shell.exec.0 +18 -0
- package/.local/state/workflow-logs/GIL2Ql5124lrEqGrfRO4k/start_application.shell.exec.0 +222 -0
- package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.external.managed.0 +45 -0
- package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.json +1 -0
- package/.local/state/workflow-logs/OKp1t-fEO5U_zQi1SKOQ-/start_application.shell.exec.0 +10 -0
- package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.external.managed.0 +43 -0
- package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.json +1 -0
- package/.local/state/workflow-logs/UDYycRqPV-N4B7whZP-yX/start_application.shell.exec.0 +252 -0
- package/.local/state/workflow-logs/V8Anmvz-HuvAztflZ8yCo/start_application.shell.exec.0 +87 -0
- package/.local/state/workflow-logs/a5fMnjr9tCwoaFY93pYuN/start_application.shell.exec.0 +2519 -0
- package/.local/state/workflow-logs/ggFzYcdHfIlW0owP2pb0U/start_application.shell.exec.0 +28 -0
- package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.external.managed.0 +41 -0
- package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.json +1 -0
- package/.local/state/workflow-logs/nbLvtuGJXB0wPmnruB3BE/start_application.shell.exec.0 +199 -0
- package/.local/state/workflow-logs/uDhN6S0ypUEh0MphXaFGY/start_application.shell.exec.0 +73 -0
- package/.local/state/workflow-logs/xZqU5CdTivcY6KEDEcVmD/start_application.shell.exec.0 +17 -0
- package/.local/tasks/breadcrumb-component.md +89 -0
- package/.local/tasks/calendar-component.md +93 -0
- package/.local/tasks/invoicing-design-system-app.md +39 -0
- package/.local/tasks/task-1.md +42 -0
- package/.local/tasks/task-7.md +92 -0
- package/.local/tasks/task-8.md +96 -0
- package/.replit +34 -0
- package/.upm/store.json +1 -0
- package/README.md +121 -0
- package/app/dashboard/page.tsx +10 -0
- package/app/design-system/page.tsx +802 -0
- package/app/invoices/page.tsx +10 -0
- package/app/layout.tsx +28 -0
- package/app/login/page.tsx +5 -0
- package/app/page.tsx +93 -0
- package/app/signup/page.tsx +5 -0
- package/attached_assets/Colors_1779781016394.png +0 -0
- package/attached_assets/Navy_1779781016404.png +0 -0
- package/attached_assets/Orange_1779781016405.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_1.14.29_PM_1779781472515.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_11.28.20_AM_1779775171071.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_2.04.42_PM_1779784485318.png +0 -0
- package/attached_assets/Typography_1779781016406.png +0 -0
- package/design-system/components/avatar.tsx +46 -0
- package/design-system/components/badge.tsx +34 -0
- package/design-system/components/breadcrumb.tsx +149 -0
- package/design-system/components/button.tsx +57 -0
- package/design-system/components/calendar.tsx +77 -0
- package/design-system/components/card.tsx +62 -0
- package/design-system/components/checkbox.tsx +27 -0
- package/design-system/components/date-picker.tsx +153 -0
- package/design-system/components/dialog.tsx +106 -0
- package/design-system/components/dropdown-menu.tsx +88 -0
- package/design-system/components/form-field.tsx +78 -0
- package/design-system/components/input.tsx +25 -0
- package/design-system/components/label.tsx +25 -0
- package/design-system/components/popover.tsx +30 -0
- package/design-system/components/radio-group.tsx +35 -0
- package/design-system/components/select.tsx +84 -0
- package/design-system/components/separator.tsx +24 -0
- package/design-system/components/switch.tsx +28 -0
- package/design-system/components/table.tsx +80 -0
- package/design-system/components/tabs.tsx +54 -0
- package/design-system/components/textarea.tsx +25 -0
- package/design-system/components/toast.tsx +118 -0
- package/design-system/components/toaster.tsx +38 -0
- package/design-system/components/tooltip.tsx +27 -0
- package/design-system/hooks/index.ts +2 -0
- package/design-system/hooks/use-media-query.ts +27 -0
- package/design-system/hooks/use-toast.ts +91 -0
- package/design-system/index.ts +36 -0
- package/design-system/lib/cn.ts +6 -0
- package/design-system/styles.css +142 -0
- package/design-system/tokens/tokens.css +149 -0
- package/design-system/tokens/tokens.ts +190 -0
- package/next.config.mjs +6 -0
- package/package.json +46 -0
- package/postcss.config.mjs +6 -0
- package/screens/_shared/app-shell.tsx +145 -0
- package/screens/auth/auth-screen.tsx +156 -0
- package/screens/dashboard/dashboard-screen.tsx +207 -0
- package/screens/index.ts +17 -0
- package/screens/invoices/invoices-screen.tsx +317 -0
- package/tailwind.config.ts +110 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,560 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: podcast-generator
|
|
3
|
+
description: Turn topics into podcast scripts and audio with ElevenLabs production.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Podcast Generator
|
|
7
|
+
|
|
8
|
+
Turn research, articles, or topics into podcast-ready scripts and audio content. Generate conversational scripts with host/guest dynamics and produce audio using ElevenLabs text-to-speech. Supports script-only workflows, multilingual episodes, and series planning.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- User wants to turn written content into a podcast episode
|
|
13
|
+
- User wants to create a podcast-style summary of a topic or paper
|
|
14
|
+
|
|
15
|
+
- User wants to generate audio content from research
|
|
16
|
+
- User mentions "AI Pods", podcast, or audio content creation
|
|
17
|
+
|
|
18
|
+
- User wants a podcast script without audio generation (script-only mode)
|
|
19
|
+
- User wants to plan a podcast series or recurring show
|
|
20
|
+
|
|
21
|
+
- User says "create an episode about..." (topic-first requests without explicitly saying "podcast")
|
|
22
|
+
- User says "write a script for..." (scriptwriting intent that maps to podcast format)
|
|
23
|
+
|
|
24
|
+
- User says "make an audio version of..." (converting written content like articles, blog posts, or reports into listenable content)
|
|
25
|
+
- User says "plan my next episode" (continuing an existing series)
|
|
26
|
+
|
|
27
|
+
- User says "record / produce / generate an episode" (audio production intent)
|
|
28
|
+
|
|
29
|
+
## When NOT to Use
|
|
30
|
+
|
|
31
|
+
- Music creation or sound effects
|
|
32
|
+
- Video content (use storyboard skill for planning)
|
|
33
|
+
|
|
34
|
+
- Written summaries only (use deep-research skill)
|
|
35
|
+
|
|
36
|
+
## Workflow Modes
|
|
37
|
+
|
|
38
|
+
Before starting, determine which workflow the user needs:
|
|
39
|
+
|
|
40
|
+
| Mode | Description | When to Use |
|
|
41
|
+
|
|
42
|
+
|------|-------------|-------------|
|
|
43
|
+
|
|
44
|
+
| **Script-only** | Research + script writing, no audio | User wants the script first, no ElevenLabs key, or iterating on content before committing to audio |
|
|
45
|
+
|
|
46
|
+
| **Full production** | Research + script + audio generation + normalization | User has ElevenLabs key and wants the finished audio file |
|
|
47
|
+
|
|
48
|
+
| **Series planning** | Define show identity + episode calendar + recurring structure | User wants to build an ongoing podcast, not just a one-off episode |
|
|
49
|
+
|
|
50
|
+
If the user's intent is ambiguous, ask which mode they prefer. Default to **script-only** if no ElevenLabs key is available — do not block progress on audio setup.
|
|
51
|
+
|
|
52
|
+
## Methodology
|
|
53
|
+
|
|
54
|
+
### Step 1: Structured Research
|
|
55
|
+
|
|
56
|
+
Gather source material systematically. Do not skip this step — a well-researched script sounds authoritative; a loosely researched one sounds generic.
|
|
57
|
+
|
|
58
|
+
#### Research checklist — run these searches in parallel
|
|
59
|
+
|
|
60
|
+
| Category | What to Gather | How |
|
|
61
|
+
|
|
62
|
+
|----------|---------------|-----|
|
|
63
|
+
|
|
64
|
+
| **Recent events** | Latest results, scores, announcements, breaking news | `webSearch` with date-specific queries (e.g., "Real Madrid results April 2026") |
|
|
65
|
+
|
|
66
|
+
| **Statistics & data** | Standings, player stats, records, rankings | `webSearch` for official stats pages (fbref, transfermarkt, official league sites) |
|
|
67
|
+
|
|
68
|
+
| **Quotes & reactions** | Press conference quotes, player interviews, social media reactions | `webSearch` for post-match quotes, press conferences |
|
|
69
|
+
|
|
70
|
+
| **Context & history** | Historical comparisons, records being chased, milestones | `webSearch` for historical context related to current events |
|
|
71
|
+
|
|
72
|
+
| **Narrative angles** | Controversies, storylines, fan sentiment, trending debates | `webSearch` for opinion pieces, fan forums, trending topics |
|
|
73
|
+
|
|
74
|
+
##### Research template — fill this before writing
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
|
|
78
|
+
EPISODE RESEARCH BRIEF
|
|
79
|
+
|
|
80
|
+
======================
|
|
81
|
+
|
|
82
|
+
Topic: [main topic]
|
|
83
|
+
|
|
84
|
+
Date context: [what just happened / why this is timely]
|
|
85
|
+
|
|
86
|
+
KEY FACTS:
|
|
87
|
+
|
|
88
|
+
- [fact 1 with source]
|
|
89
|
+
- [fact 2 with source]
|
|
90
|
+
|
|
91
|
+
- [fact 3 with source]
|
|
92
|
+
|
|
93
|
+
STATISTICS:
|
|
94
|
+
|
|
95
|
+
- [stat 1]
|
|
96
|
+
- [stat 2]
|
|
97
|
+
|
|
98
|
+
QUOTES:
|
|
99
|
+
|
|
100
|
+
- "[quote]" — [who said it, when]
|
|
101
|
+
|
|
102
|
+
NARRATIVE ANGLES:
|
|
103
|
+
|
|
104
|
+
- [angle 1: why it's interesting]
|
|
105
|
+
- [angle 2: the contrarian take]
|
|
106
|
+
|
|
107
|
+
OPEN QUESTIONS:
|
|
108
|
+
|
|
109
|
+
- [what's still uncertain / debatable]
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Run at least 3 parallel web searches covering different facets of the topic. Cross-reference facts across sources. Flag anything that's unverified or contradictory — use it as discussion material in the script rather than stating it as fact.
|
|
114
|
+
|
|
115
|
+
### Step 2: Format Selection
|
|
116
|
+
|
|
117
|
+
Choose the podcast format:
|
|
118
|
+
|
|
119
|
+
| Format | Description | Best For |
|
|
120
|
+
|
|
121
|
+
|--------|-------------|----------|
|
|
122
|
+
|
|
123
|
+
| **Solo explainer** | One host walks through the topic | Tutorials, news summaries, deep dives |
|
|
124
|
+
|
|
125
|
+
| **Conversational duo** | Two hosts discuss and riff | Making complex topics accessible, entertainment |
|
|
126
|
+
|
|
127
|
+
| **Interview style** | Host asks questions, expert answers | Technical topics, research papers |
|
|
128
|
+
|
|
129
|
+
| **Debate** | Two perspectives argue a topic | Controversial or nuanced subjects |
|
|
130
|
+
|
|
131
|
+
| **Narrative** | Storytelling with narration | Case studies, historical events |
|
|
132
|
+
|
|
133
|
+
#### Format templates with segment timing
|
|
134
|
+
|
|
135
|
+
#### Conversational Duo (recommended default)
|
|
136
|
+
|
|
137
|
+
| Segment | Duration | Word Count | Speaker Balance |
|
|
138
|
+
|
|
139
|
+
|---------|----------|------------|-----------------|
|
|
140
|
+
|
|
141
|
+
| Cold open | 15–30s | 40–75 | 50/50 |
|
|
142
|
+
|
|
143
|
+
| Setup/intro | 30–60s | 75–150 | 60/40 (Explainer leads) |
|
|
144
|
+
|
|
145
|
+
| Segment 1 | 3–5 min | 450–750 | 55/45 |
|
|
146
|
+
|
|
147
|
+
| Segment 2 | 3–5 min | 450–750 | 45/55 |
|
|
148
|
+
|
|
149
|
+
| Segment 3 | 3–5 min | 450–750 | 55/45 |
|
|
150
|
+
|
|
151
|
+
| Segment 4 (optional) | 3–5 min | 450–750 | 50/50 |
|
|
152
|
+
|
|
153
|
+
| Segment 5 (optional) | 3–5 min | 450–750 | 50/50 |
|
|
154
|
+
|
|
155
|
+
| Takeaways | 1–2 min | 150–300 | 50/50 |
|
|
156
|
+
|
|
157
|
+
| Outro | 15–30s | 40–75 | 50/50 |
|
|
158
|
+
|
|
159
|
+
Target overall speaker balance: **no host should have less than 40% of total lines.** The Questioner is not a sidekick — they drive the conversation forward.
|
|
160
|
+
|
|
161
|
+
#### Solo Explainer
|
|
162
|
+
|
|
163
|
+
| Segment | Duration | Word Count |
|
|
164
|
+
|
|
165
|
+
|---------|----------|------------|
|
|
166
|
+
|
|
167
|
+
| Hook | 15–30s | 40–75 |
|
|
168
|
+
|
|
169
|
+
| Context | 1–2 min | 150–300 |
|
|
170
|
+
|
|
171
|
+
| Main body (3–4 sections) | 3–5 min each | 450–750 each |
|
|
172
|
+
|
|
173
|
+
| Summary + CTA | 1–2 min | 150–300 |
|
|
174
|
+
|
|
175
|
+
#### Interview Style
|
|
176
|
+
|
|
177
|
+
| Segment | Duration | Word Count | Speaker Balance |
|
|
178
|
+
|
|
179
|
+
|---------|----------|------------|-----------------|
|
|
180
|
+
|
|
181
|
+
| Host intro | 30–60s | 75–150 | Host only |
|
|
182
|
+
|
|
183
|
+
| Guest intro | 1–2 min | 150–300 | 70/30 (Host leads) |
|
|
184
|
+
|
|
185
|
+
| Q&A blocks (4–6) | 3–5 min each | 450–750 each | 30/70 (Guest leads) |
|
|
186
|
+
|
|
187
|
+
| Rapid fire | 2–3 min | 300–450 | 50/50 |
|
|
188
|
+
|
|
189
|
+
| Closing | 30–60s | 75–150 | Host only |
|
|
190
|
+
|
|
191
|
+
### Step 3: Script Writing — NotebookLM Pattern
|
|
192
|
+
|
|
193
|
+
The two-host format that works (reverse-engineered from Google's Audio Overviews):
|
|
194
|
+
|
|
195
|
+
- **Host A = "The Explainer"** — knows the material, breaks down concepts
|
|
196
|
+
- **Host B = "The Questioner"** — audience surrogate, asks the "wait, why?" questions
|
|
197
|
+
|
|
198
|
+
- **Dialog rhythm:** alternate short punchy lines with longer explanations. Sprinkle affirmations: "Right.", "Exactly.", "Okay so—"
|
|
199
|
+
- **Arc:** open with common misconception → introduce source that challenges it → unpack implications → "so what does this mean for you"
|
|
200
|
+
|
|
201
|
+
- **Transitions:** "And on that note..." / "Which brings us to..." / "Here's where it gets weird—"
|
|
202
|
+
|
|
203
|
+
#### Structure (target ~150 words per minute of audio)
|
|
204
|
+
|
|
205
|
+
1. **Cold open** (15–30s) — the single most surprising finding, stated as a question or contradiction
|
|
206
|
+
2. **Setup** (30–60s) — what we're covering, why it matters now
|
|
207
|
+
|
|
208
|
+
3. **Segments** (3–5 × 2–4 min) — one idea each; end each with a mini-hook into the next
|
|
209
|
+
4. **Takeaways** (1–2 min) — 3 things to remember
|
|
210
|
+
|
|
211
|
+
5. **Outro** (15s) — sign-off
|
|
212
|
+
|
|
213
|
+
**Write for ears, not eyes:** contractions always, no semicolons, no parentheticals. If you wouldn't say it out loud, rewrite it.
|
|
214
|
+
|
|
215
|
+
**Script format** — one line per utterance, speaker tag in brackets, blank line between speakers. This is the unit you'll chunk for TTS:
|
|
216
|
+
|
|
217
|
+
```text
|
|
218
|
+
|
|
219
|
+
[ALEX]: So today we're diving into something that honestly broke my brain a little.
|
|
220
|
+
|
|
221
|
+
[SAM]: Oh no. What now.
|
|
222
|
+
|
|
223
|
+
[ALEX]: Okay — you know how everyone says [common belief]? There's this paper from [source] that basically says... the opposite.
|
|
224
|
+
|
|
225
|
+
[SAM]: Wait. The *opposite* opposite?
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
##### Script-only deliverable format
|
|
230
|
+
|
|
231
|
+
When delivering a script without audio, include these production notes at the end:
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
|
|
235
|
+
PRODUCTION NOTES:
|
|
236
|
+
|
|
237
|
+
- Total word count: [number]
|
|
238
|
+
- Estimated duration: [minutes] (at 150 wpm)
|
|
239
|
+
|
|
240
|
+
- Segment breakdown: [list segments with word counts]
|
|
241
|
+
- Voice recommendations: [suggested voice profiles for each host]
|
|
242
|
+
|
|
243
|
+
- Music/SFX suggestions: [intro, transitions, outro, background]
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Step 4: Audio Generation — ElevenLabs
|
|
248
|
+
|
|
249
|
+
> **Skip this step in script-only mode.** If the user doesn't have an ElevenLabs key or only wants the script, deliver the script with production notes and stop here.
|
|
250
|
+
|
|
251
|
+
**Install:** `pip install elevenlabs pydub`
|
|
252
|
+
|
|
253
|
+
**Model choice:** `eleven_multilingual_v2`for quality (10K char limit per call);`eleven_turbo_v2_5` for speed/cost (40K char limit, ~300ms latency, ~3x faster).
|
|
254
|
+
|
|
255
|
+
**Voice IDs that work for duo podcasts** (from the default library — verify with `client.voices.search()`):
|
|
256
|
+
|
|
257
|
+
- `JBFqnCBsd6RMkjVDRZzb` (George — warm, mid-range male)
|
|
258
|
+
- `21m00Tcm4TlvDq8ikWAM` (Rachel — clear, measured female)
|
|
259
|
+
|
|
260
|
+
- `pNInz6obpgDQGcFmaJgB` (Adam — energetic narrator)
|
|
261
|
+
- `EXAVITQu4vr4xnSDxMaL` (Bella — conversational female)
|
|
262
|
+
|
|
263
|
+
#### Settings for conversational podcast delivery
|
|
264
|
+
|
|
265
|
+
- `stability: 0.45` — lower = more expressive; below 0.3 gets inconsistent
|
|
266
|
+
- `similarity_boost: 0.8` — keeps voice consistent across chunks
|
|
267
|
+
|
|
268
|
+
- `style: 0.3` — mild exaggeration for energy (0 = flat)
|
|
269
|
+
- `use_speaker_boost: True`
|
|
270
|
+
|
|
271
|
+
```python
|
|
272
|
+
|
|
273
|
+
import os
|
|
274
|
+
|
|
275
|
+
from elevenlabs.client import ElevenLabs
|
|
276
|
+
|
|
277
|
+
from pydub import AudioSegment
|
|
278
|
+
|
|
279
|
+
import io
|
|
280
|
+
|
|
281
|
+
client = ElevenLabs(api_key=os.environ["ELEVENLABS_API_KEY"])
|
|
282
|
+
|
|
283
|
+
VOICES = {"ALEX": "JBFqnCBsd6RMkjVDRZzb", "SAM": "21m00Tcm4TlvDq8ikWAM"}
|
|
284
|
+
|
|
285
|
+
def render_line(speaker: str, text: str) -> AudioSegment:
|
|
286
|
+
|
|
287
|
+
audio = client.text_to_speech.convert(
|
|
288
|
+
|
|
289
|
+
voice_id=VOICES[speaker],
|
|
290
|
+
|
|
291
|
+
text=text,
|
|
292
|
+
|
|
293
|
+
model_id="eleven_multilingual_v2",
|
|
294
|
+
|
|
295
|
+
output_format="mp3_44100_128",
|
|
296
|
+
|
|
297
|
+
voice_settings={"stability": 0.45, "similarity_boost": 0.8,
|
|
298
|
+
|
|
299
|
+
"style": 0.3, "use_speaker_boost": True},
|
|
300
|
+
|
|
301
|
+
)
|
|
302
|
+
|
|
303
|
+
return AudioSegment.from_mp3(io.BytesIO(b"".join(audio)))
|
|
304
|
+
|
|
305
|
+
# parse script → list of (speaker, text) tuples, render each, concat
|
|
306
|
+
|
|
307
|
+
gap = AudioSegment.silent(duration=350) \# 350ms between speakers
|
|
308
|
+
|
|
309
|
+
episode = sum((render_line(s, t) + gap for s, t in lines), AudioSegment.empty())
|
|
310
|
+
|
|
311
|
+
episode.export("episode_raw.mp3", format="mp3", bitrate="128k")
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**Chunking long utterances:** split at sentence boundaries (`.`,`?`,`!`), keep under ~800 chars per call. Pass`previous_text`/`next_text` params to preserve prosody across chunk boundaries.
|
|
316
|
+
|
|
317
|
+
### Step 5: Loudness Normalization
|
|
318
|
+
|
|
319
|
+
> **Skip this step in script-only mode.**
|
|
320
|
+
|
|
321
|
+
Podcast standard is **-16 LUFS** (stereo) per Apple/Spotify specs. pydub's `normalize()`is peak-only — not LUFS. Use ffmpeg's two-pass`loudnorm`via the`ffmpeg-normalize` wrapper:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
|
|
325
|
+
pip install ffmpeg-normalize
|
|
326
|
+
|
|
327
|
+
ffmpeg-normalize episode_raw.mp3 -o episode.mp3 -c:a libmp3lame -b:a 128k \\
|
|
328
|
+
|
|
329
|
+
-t -16 -tp -1.5 -lra 11 --normalization-type ebu
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
`-t -16`= target LUFS,`-tp -1.5`= true-peak ceiling (prevents clipping),`-lra 11` = loudness range. This runs two passes automatically (analyze, then correct).
|
|
334
|
+
|
|
335
|
+
## Multilingual & Localization Support
|
|
336
|
+
|
|
337
|
+
When the target audience speaks a language other than English, follow these guidelines:
|
|
338
|
+
|
|
339
|
+
### Language Selection
|
|
340
|
+
|
|
341
|
+
- Ask the user what language the podcast should be in during the initial questions
|
|
342
|
+
- If the audience is region-specific (e.g., LATAM, Brazil, France), default to the primary language of that region
|
|
343
|
+
|
|
344
|
+
- If the user doesn't specify, infer from context (e.g., "LATAM market" → Spanish)
|
|
345
|
+
|
|
346
|
+
### Model Selection for Non-English
|
|
347
|
+
|
|
348
|
+
- **Always use `eleven_multilingual_v2`** for non-English scripts —`eleven_turbo_v2_5` has limited language support and may produce artifacts in non-English speech
|
|
349
|
+
- Set `stability` slightly higher (0.50–0.55) for non-English languages to reduce mispronunciation
|
|
350
|
+
|
|
351
|
+
- Test voice IDs with a short sample in the target language before rendering the full episode — not all default voices perform equally across languages
|
|
352
|
+
|
|
353
|
+
### Voice Selection by Language
|
|
354
|
+
|
|
355
|
+
| Language | Recommended Approach |
|
|
356
|
+
|
|
357
|
+
|----------|---------------------|
|
|
358
|
+
|
|
359
|
+
| Spanish | Use `client.voices.search()`to find native Spanish voices. Fallback: George and Rachel handle Spanish reasonably well with`eleven_multilingual_v2` |
|
|
360
|
+
|
|
361
|
+
| Portuguese | Search for native Portuguese voices. Brazilian Portuguese and European Portuguese differ significantly — match the audience |
|
|
362
|
+
|
|
363
|
+
| French | Search for native French voices |
|
|
364
|
+
|
|
365
|
+
| Other | Always search for native voices first; multilingual fallbacks as backup |
|
|
366
|
+
|
|
367
|
+
### Script Writing for Non-English
|
|
368
|
+
|
|
369
|
+
- Write the entire script in the target language — do not write in English and translate
|
|
370
|
+
- Use natural spoken patterns of the target language, not literal translations of English idioms
|
|
371
|
+
|
|
372
|
+
- Proper nouns and brand names: keep the original spelling but add phonetic hints in parentheses if the TTS might mispronounce them
|
|
373
|
+
- For mixed-language audiences (e.g., Spanglish), be intentional about when and why you switch languages — it should feel natural, not random
|
|
374
|
+
|
|
375
|
+
## Series Planning
|
|
376
|
+
|
|
377
|
+
When the user wants to build an ongoing podcast (not just a one-off episode), establish the series identity first.
|
|
378
|
+
|
|
379
|
+
### Show Bible
|
|
380
|
+
|
|
381
|
+
Create a show bible document that defines the recurring elements:
|
|
382
|
+
|
|
383
|
+
```text
|
|
384
|
+
|
|
385
|
+
SHOW BIBLE
|
|
386
|
+
|
|
387
|
+
==========
|
|
388
|
+
|
|
389
|
+
Show name: [name]
|
|
390
|
+
|
|
391
|
+
Tagline: [one-line description]
|
|
392
|
+
|
|
393
|
+
Target audience: [who listens]
|
|
394
|
+
|
|
395
|
+
Language: [primary language]
|
|
396
|
+
|
|
397
|
+
Format: [solo / duo / interview / rotating]
|
|
398
|
+
|
|
399
|
+
Tone: [casual-analytical / high-energy / calm-thoughtful / etc.]
|
|
400
|
+
|
|
401
|
+
HOSTS:
|
|
402
|
+
|
|
403
|
+
- [Host 1 name]: [role — explainer/questioner/narrator] — [personality in 1 sentence]
|
|
404
|
+
- [Host 2 name]: [role] — [personality in 1 sentence]
|
|
405
|
+
|
|
406
|
+
RECURRING SEGMENTS:
|
|
407
|
+
|
|
408
|
+
- [Segment name]: [what it covers, where it appears in the episode]
|
|
409
|
+
- [Segment name]: [what it covers, where it appears in the episode]
|
|
410
|
+
|
|
411
|
+
EPISODE STRUCTURE:
|
|
412
|
+
|
|
413
|
+
1. [Opening element — jingle, cold open, catchphrase]
|
|
414
|
+
2. [Main content — how many segments, typical length]
|
|
415
|
+
|
|
416
|
+
3. [Recurring closer — sign-off phrase, CTA]
|
|
417
|
+
|
|
418
|
+
BRANDING:
|
|
419
|
+
|
|
420
|
+
- Opening catchphrase: "[phrase]"
|
|
421
|
+
- Closing catchphrase: "[phrase]"
|
|
422
|
+
|
|
423
|
+
- Episode naming convention: [e.g., "Ep. XX: [Topic]"]
|
|
424
|
+
|
|
425
|
+
CONTENT PILLARS:
|
|
426
|
+
|
|
427
|
+
- [Pillar 1]: [description — e.g., "Match analysis and tactical breakdowns"]
|
|
428
|
+
- [Pillar 2]: [description — e.g., "Transfer rumors and squad management"]
|
|
429
|
+
|
|
430
|
+
- [Pillar 3]: [description — e.g., "Historical deep dives and legend profiles"]
|
|
431
|
+
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Episode Calendar
|
|
435
|
+
|
|
436
|
+
Plan episodes in advance to maintain consistency and cover the content pillars:
|
|
437
|
+
|
|
438
|
+
```text
|
|
439
|
+
|
|
440
|
+
EPISODE CALENDAR
|
|
441
|
+
|
|
442
|
+
================
|
|
443
|
+
|
|
444
|
+
Frequency: [weekly / biweekly / monthly]
|
|
445
|
+
|
|
446
|
+
Release day: [e.g., "Every Monday"]
|
|
447
|
+
|
|
448
|
+
UPCOMING EPISODES:
|
|
449
|
+
|
|
450
|
+
| Ep \# | Target Date | Topic | Content Pillar | Status |
|
|
451
|
+
|
|
452
|
+
|------|-------------|-------|----------------|--------|
|
|
453
|
+
|
|
454
|
+
| 01 | [date] | [topic] | [pillar] | [draft/recorded/published] |
|
|
455
|
+
|
|
456
|
+
| 02 | [date] | [topic] | [pillar] | [planned] |
|
|
457
|
+
|
|
458
|
+
| 03 | [date] | [topic] | [pillar] | [planned] |
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### Series Continuity
|
|
463
|
+
|
|
464
|
+
Across episodes, maintain:
|
|
465
|
+
|
|
466
|
+
- **Consistent host names and personalities** — don't change character traits between episodes
|
|
467
|
+
- **Running references** — callbacks to previous episodes ("as we talked about last week...")
|
|
468
|
+
|
|
469
|
+
- **Episode numbering** — sequential numbering in the script header and file names
|
|
470
|
+
- **File naming convention** — `episodio_XX_script.txt`or`episode_XX_script.txt`
|
|
471
|
+
|
|
472
|
+
- **Evolving storylines** — for topic-based series, track ongoing narratives (e.g., a team's season, a company's trajectory) and reference the arc across episodes
|
|
473
|
+
|
|
474
|
+
## AI-Assisted Research Integration
|
|
475
|
+
|
|
476
|
+
Leverage web search systematically to make each episode timely and data-rich. Do not rely on general knowledge alone — always ground the script in current, verifiable information.
|
|
477
|
+
|
|
478
|
+
### Search Strategy
|
|
479
|
+
|
|
480
|
+
Run searches in parallel to maximize speed. Use at least 3 different search queries per episode:
|
|
481
|
+
|
|
482
|
+
```javascript
|
|
483
|
+
|
|
484
|
+
// Run these in parallel — don't serialize
|
|
485
|
+
|
|
486
|
+
const [results1, results2, results3] = await Promise.all([
|
|
487
|
+
|
|
488
|
+
webSearch({ query: "[topic] latest news [current month year]" }),
|
|
489
|
+
|
|
490
|
+
webSearch({ query: "[topic] statistics standings data [year]" }),
|
|
491
|
+
|
|
492
|
+
webSearch({ query: "[topic] analysis reactions opinions [current month year]" })
|
|
493
|
+
|
|
494
|
+
]);
|
|
495
|
+
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Data Verification
|
|
499
|
+
|
|
500
|
+
- Cross-reference statistics across at least 2 sources before including them in the script
|
|
501
|
+
- When sources conflict, acknowledge the discrepancy in the script — it makes good discussion material
|
|
502
|
+
|
|
503
|
+
- Always include the date context of your research — "as of [date]" — so listeners know the information is current
|
|
504
|
+
- For rapidly changing topics (sports scores, stock prices, breaking news), note in the script header when the research was conducted
|
|
505
|
+
|
|
506
|
+
### Enriching the Script with Data
|
|
507
|
+
|
|
508
|
+
Transform raw research into conversational content:
|
|
509
|
+
|
|
510
|
+
| Raw Data | Script Version |
|
|
511
|
+
|
|
512
|
+
|----------|---------------|
|
|
513
|
+
|
|
514
|
+
| "Player scored 59 goals in 2025" | "Fifty-nine goals. In one calendar year. That ties the all-time club record." |
|
|
515
|
+
|
|
516
|
+
| "Team is 4 points behind leader" | "Four points. That's the gap. And with eight games left, there's almost no margin for error." |
|
|
517
|
+
|
|
518
|
+
| "Manager was fired after 7 months" | "Seven months. That's all it lasted. One of the shortest managerial stints in the club's recent history." |
|
|
519
|
+
|
|
520
|
+
Numbers should be spoken out in script form when they open a sentence or carry dramatic weight. Use digits when they're mid-sentence and factual.
|
|
521
|
+
|
|
522
|
+
## Episode Length Guidelines
|
|
523
|
+
|
|
524
|
+
| Content Type | Target Length | Script Word Count |
|
|
525
|
+
|
|
526
|
+
|-------------|-------------|-------------------|
|
|
527
|
+
|
|
528
|
+
| News summary | 5-10 min | 750-1,500 words |
|
|
529
|
+
|
|
530
|
+
| Topic explainer | 10-20 min | 1,500-3,000 words |
|
|
531
|
+
|
|
532
|
+
| Deep dive | 20-40 min | 3,000-6,000 words |
|
|
533
|
+
|
|
534
|
+
| Research paper review | 15-25 min | 2,250-3,750 words |
|
|
535
|
+
|
|
536
|
+
Rule of thumb: ~150 words per minute of audio.
|
|
537
|
+
|
|
538
|
+
## Best Practices
|
|
539
|
+
|
|
540
|
+
1. **Hook early** — if the first 30 seconds aren't interesting, listeners skip
|
|
541
|
+
2. **One idea per segment** — don't cram too much; let ideas breathe
|
|
542
|
+
|
|
543
|
+
3. **Use stories and examples** — abstract concepts need concrete illustrations
|
|
544
|
+
4. **Vary pacing** — alternate between fast energy and slow, thoughtful moments
|
|
545
|
+
|
|
546
|
+
5. **End with value** — give listeners a clear takeaway or action item
|
|
547
|
+
6. **Ground in data** — every claim should trace back to your research; vague statements kill credibility
|
|
548
|
+
|
|
549
|
+
7. **Name your sources** — "according to fbref" or "the manager said in the press conference" adds authority
|
|
550
|
+
8. **Maintain series identity** — if this is part of a series, use the show bible for consistent tone, host names, and recurring elements
|
|
551
|
+
|
|
552
|
+
## Limitations
|
|
553
|
+
|
|
554
|
+
- Audio generation requires `ELEVENLABS_API_KEY` env var (script-only mode does not)
|
|
555
|
+
- Voices mispronounce technical terms/acronyms — spell phonetically in the script (`"Kubernetes"`→`"koo-ber-NET-eez"`) or use ElevenLabs pronunciation dictionaries
|
|
556
|
+
|
|
557
|
+
- `eleven_multilingual_v2` has known issues with very long single calls (voice drift, occasional stutter) — chunk at sentence boundaries, don't send 5K-char blobs
|
|
558
|
+
- Cost: ~$0.18–0.30 per 1000 characters depending on plan; a 20-min episode (~3000 words) ≈ $3–5
|
|
559
|
+
|
|
560
|
+
- Non-English voices: quality varies by language and voice; always test with a short sample before full rendering
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cb56d61e090603d2ef122d1cd3ca8c25
|