feat: podcast demo mode with ALWRITY_ENABLED_FEATURES support

- Add ALWRITY_ENABLED_FEATURES env var for feature gating
- Podcast-only mode: skip LLM bootstrap, scheduler, persona services
- Enhance video generation prompt with scene context, analysis, narration
- Add voice cloning support via custom_voice_id in WaveSpeed
- Add text-to-speech for research results (browser speechSynthesis)
- Fix render queue to sync images from script phase
- Add WaveSpeed LLM pricing (gpt-oss-120b)
- Fix podcast bible generation error handling
- Refactor RouterManager for feature-based router loading
This commit is contained in:
ajaysi
2026-04-03 06:59:59 +05:30
parent c52b1eabc9
commit 63bb937796
58 changed files with 3568 additions and 1597 deletions

View File

@@ -61,6 +61,8 @@ export interface PodcastProjectState {
const DEFAULT_KNOBS: Knobs = {
voice_emotion: "neutral",
voice_speed: 1,
voice_id: "Wise_Woman",
custom_voice_id: undefined,
resolution: "720p",
scene_length_target: 45,
sample_rate: 24000,
@@ -338,7 +340,12 @@ export const usePodcastProjectState = () => {
budget_cap: payload.budgetCap,
avatar_url: finalAvatarUrl,
});
} catch (error) {
} catch (error: any) {
const errorStr = error?.message || "";
if (errorStr.includes("DUPLICATE_IDEA")) {
// Re-throw duplicate idea error for UI handling
throw error;
}
console.error('Error creating project in database:', error);
// Continue anyway - localStorage fallback
}