+
    iA                      a  0 t $ R t^ RIHt ^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
HtHtHtHtHtHt ]	! 4        ]! ]4      P%                  4       P&                  t]R,          t]R,          tR R	 ltR
 R ltR]! R^RRR7      R]! R^RRR7      R]! R^RRR7      R]! R^RRR7      /tR]R&   RRRRRRRRRRRRR R!R"^R#R$R%RR&RR'R/R( R) lltR# )*u@   
Configuration loader – reads .env and builds PipelineConfig.
)annotationsN)Path)load_dotenv)CharacterTemplateExportSettingsPipelineConfigPipelineModeTargetPlatformVoiceSettingscharacter_templatesoutputc                    V ^8  d   QhRRRR/# )   name_or_pathstrreturnr    )formats   "	config.py__annotate__r   %   s     % %# %2C %    c                h   \        V 4      pVP                  4       '       g   \        V  R2,          pVP                  4       '       g   \        RV  R\	        4        24      h\        VRRR7      ;_uu_ 4       p\        P                  ! V4      pRRR4       \        R/ XB #   + '       g   i     L; i)	zDLoad a character template by name (from templates dir) or file path.z.jsonzCharacter template not found: z. Available templates: rzutf-8)encodingNr   )	r   existsTEMPLATES_DIRFileNotFoundErrorlist_available_templatesopenjsonloadr   )r   pathfdatas   &   r   load_character_templater$   %   s    D;;==,u55;;==,\N ;$$<$>#?A
 	
 
dC'	*	*ayy| 
+$t$$ 
+	*s   7B!!B1	c                   V ^8  d   QhRR/# )r   r   z	list[str]r   )r   s   "r   r   r   4   s     : :) :r   c                     \         P                  4       '       g   . # \         P                  R4       U u. uF  q P                  NK  	  up # u up i )z(List available character template names.z*.json)r   r   globstem)ps    r   r   r   4   s=    !!	)..x898qFF8999s   Atiktok	1080x1920mp4z9:16)
resolutionfpsvideo_formataspect_ratioinstagram_reelsyoutube_shortsyoutube	1920x1080z16:9zdict[str, ExportSettings]PLATFORM_PRESETSmodeplan	characterskeletoncharacter_templateplatform
output_dirframes_per_minuteenable_coverage_shotsFcoverage_angles_per_scenecoverage_modealltts_providerchatterbox_languagechatterbox_voice_refc               L    V ^8  d   QhRRRRRRRRRRR	R
RRRRRRRRRRRRRR/# )r   r6   r   r8   z
str | Noner:   zCharacterTemplate | Noner;   r<   r=   z
int | Noner>   boolr?   intr@   rB   rC   rD   r   r   r   )r   s   "r   r   r   S   s     5 5
5 5 1	5
 5 5 "5  5  #5 5 5 $5 %5 5r   c                   \        T;'       g    \        P                  ! RR4      4      p\        P	                  VP
                  \        R,          4      p\        T	;'       g    \        P                  ! RR4      \        P                  ! RR4      \        P                  ! RR4      T
;'       g    \        P                  ! R	R
4      T;'       g    \        P                  ! RR4      R7      pVf   V'       d   \        V4      pT;'       g!    \        \        P                  ! RR4      4      p\        \        V 4      \        P                  ! RR4      TTTTT;'       g%    \        P                  ! R\        \        4      4      VVVVR7      # )z1Build a PipelineConfig from env vars + overrides.TARGET_PLATFORMr*   TTS_PROVIDER
chatterboxELEVENLABS_VOICE_IDJBFqnCBsd6RMkjVDRZzbELEVENLABS_MODEL_IDeleven_multilingual_v2CHATTERBOX_LANGUAGEptCHATTERBOX_VOICE_REF )rB   voice_idmodel_idrC   rD   FRAMES_PER_MINUTE25	LLM_MODELzopenai/gpt-4o
OUTPUT_DIR)r6   	llm_modeltarget_platformr:   voice_settingsexport_settingsr<   r=   r>   r?   r@   )r	   osgetenvr5   getvaluer
   r$   rG   r   r   r   DEFAULT_OUTPUT_DIR)r6   r8   r:   r;   r<   r=   r>   r?   r@   rB   rC   rD   r[   r]   r\   fpms   $$$$$$$$$$$$    r   build_configrd   S   sD   $ %::BII/:O '**/9O #!LLRYY~|%L02HI02JK/YY299=RTX3Y1ZZRYY?UWY5Z	N !i4Y?

H
Hs299-@$#GHC$))K9'-%'QQ<=O9P!Q3";# r   )__conditional_annotations____doc__
__future__r   r   r^   pathlibr   dotenvr   modelsr   r   r   r   r	   r
   __file__resolveparentPROJECT_ROOTr   rb   r$   r   r5   __annotations__rd   )re   s   @r   <module>rp      sK   #  	     H~%%'..44!H, %: nBU ~BU nBU ~BU/ + (55 '5 48	5
  5 "5 %)5 #(5 &'5 5  $5 '+5 (,5 5r   