| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import type { ExperienceMode } from "./types"; |
|
|
| |
| |
| |
| |
| |
| |
| |
| export type RenderMediaType = "video" | "image"; |
|
|
| export interface WizardForm { |
| |
| interaction_type: "standard_project" | "persona_live_play"; |
| persona_project_id: string; |
| persona_label: string; |
|
|
| |
| render_media_type: RenderMediaType; |
|
|
| |
| title: string; |
| prompt: string; |
| experience_mode: ExperienceMode; |
|
|
| |
| audience_role: string; |
| audience_level: "beginner" | "intermediate" | "advanced"; |
| audience_language: string; |
| audience_locale_hint: string; |
|
|
| |
| branch_count: number; |
| depth: number; |
| scenes_per_branch: number; |
|
|
| |
| policy_profile_id: string; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| adult_llm: string; |
| } |
|
|
| export const DEFAULT_WIZARD_FORM: WizardForm = { |
| interaction_type: "standard_project", |
| persona_project_id: "", |
| persona_label: "", |
| render_media_type: "video", |
| title: "", |
| prompt: "", |
| experience_mode: "sfw_general", |
| audience_role: "viewer", |
| audience_level: "beginner", |
| audience_language: "en", |
| audience_locale_hint: "", |
| branch_count: 3, |
| depth: 3, |
| scenes_per_branch: 3, |
| policy_profile_id: "sfw_general", |
| adult_llm: "", |
| }; |
|
|
| export function toCreatePayload(f: WizardForm) { |
| return { |
| title: f.title.trim(), |
| description: f.prompt.trim(), |
| experience_mode: f.experience_mode, |
| policy_profile_id: f.policy_profile_id, |
| project_type: f.interaction_type === "persona_live_play" ? "persona_live" : "standard", |
| audience_profile: { |
| role: f.audience_role, |
| level: f.audience_level, |
| language: f.audience_language, |
| locale_hint: f.audience_locale_hint, |
| interaction_type: f.interaction_type, |
| persona_project_id: f.persona_project_id || undefined, |
| persona_label: f.persona_label || undefined, |
| render_media_type: f.render_media_type, |
| |
| |
| |
| adult_llm: |
| f.experience_mode === "mature_gated" && f.adult_llm |
| ? f.adult_llm |
| : undefined, |
| }, |
| }; |
| } |
|
|
| export function toPlanPayload(f: WizardForm) { |
| return { |
| prompt: f.prompt.trim(), |
| mode: f.experience_mode, |
| audience_hints: { |
| role: f.audience_role, |
| level: f.audience_level, |
| language: f.audience_language, |
| locale_hint: f.audience_locale_hint, |
| interaction_type: f.interaction_type, |
| persona_project_id: f.persona_project_id || undefined, |
| persona_label: f.persona_label || undefined, |
| render_media_type: f.render_media_type, |
| |
| |
| |
| |
| |
| |
| |
| adult_llm: |
| f.experience_mode === "mature_gated" && f.adult_llm |
| ? f.adult_llm |
| : undefined, |
| }, |
| }; |
| } |
|
|