
    j              
          d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ ddlmZ d	ej                   d
edej$                  fdZd	ej                   d
edefdZdedej*                  ej,                  eej$                  f      dej,                  eej$                  f   fdZdededej*                  ej,                  eej$                  f      defdZdededej*                  ej,                  eej$                  f      defdZdedej,                  eej$                  f   dej*                  ej,                  eej$                  f      d	ej                   ddf
dZdedej*                  ej,                  eej$                  f      d	ej*                  ej                      dej,                  eej$                  f   fdZ G d d      Zy)    N)client)AgentBlueprintPublic)Prompt)
ChatPrompt)PromptVersionDetail   )type_helpersrest_client_commitreturnc                     | j                   j                  |      }|j                  }|j                  dk(  r!t	        j
                  |j                  |      S t        j
                  |j                  |      S )Nchat)nameprompt_version)promptsget_prompt_by_commitrequested_versiontemplate_structurer   from_fern_prompt_versionr   r   )r
   r   prompt_detailversion_details       /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/api_objects/agent_config/blueprint.py_resolve_prompt_from_commitr      sq     !((==fEM"44N((F222##N
 	
 **     c                 P    | j                   j                  |      }|j                  S N)r   r   r   )r
   r   r   s      r   #_resolve_prompt_version_from_commitr      s&     !((==fEM***r   raw_blueprintfield_typesc                 R   i }| j                   D ]  }|r|j                  |v r||j                     }nt        j                  |j                        }|9t        j
                  |j                  |j                  |      ||j                  <   }|j                  ||j                  <    |S r   )valueskeyr	   backend_type_to_python_typetypebackend_value_to_python_valuevalue)r   r   r!   parampy_types        r   _convert_primitivesr)   "   s     ,.F%%5993!%)),G">>uzzJG , J JUZZ!F599 !&F599 & Mr   r"   backend_typec                 H    |r| |v rt        j                  ||          S |dk(  S )Nprompt)r	   is_prompt_typer"   r*   r   s      r   _is_prompt_fieldr/   6   s/    
 sk)**;s+;<<8##r   c                 H    |r| |v rt        j                  ||          S |dk(  S )Nprompt_commit)r	   is_prompt_version_typer.   s      r   _is_prompt_version_fieldr3   @   s/    
 sk)22;s3CDD?**r   r!   c                 j   | j                   D ]  }|j                  |j                        }t        |t              s/t        |j                  |j                  |      rt        ||      ||j                  <   jt        |j                  |j                  |      st        ||      ||j                  <    y r   )
r!   getr"   
isinstancestrr/   r$   r   r3   r   )r   r!   r   r
   r'   	raw_values         r   _resolve_promptsr9   J   s     %%JJuyy)	)S)EIIuzz;? ;L) TF599%eii[I Ci!F599 &r   c                 >    t        | |      }|rt        | |||       |S r   )r)   r9   )r   r   r
   r!   s       r   _resolve_valuesr;   ]   s&    
 !<F\JMr   c            	          e Zd ZdZ	 	 ddedej                  ej                  eej                  f      dej                  e
j                     ddfdZedej                  e   fd       Zedej                  e   fd	       Zedej                  e   fd
       Zedej                  e   fd       Zedej                  ej$                  e      fd       Zedej                  e   fd       Zedej                  ej*                     fd       Zedej                  eej                  f   fd       Zddedej                  dej                  fdZdedej                  fdZdej4                  e   fdZy)	BlueprintzAA specific versioned snapshot of agent config values (read-only).Nr   r   r
   r   c                 6    || _         t        |||      | _        y r   )_rawr;   _values)selfr   r   r
   s       r   __init__zBlueprint.__init__k   s     "	&}k<Pr   c                 .    | j                   j                  S r   )r?   idrA   s    r   rD   zBlueprint.idt   s    yy||r   c                 .    | j                   j                  S r   )r?   r   rE   s    r   r   zBlueprint.namex       yy~~r   c                 .    | j                   j                  S r   )r?   descriptionrE   s    r   rI   zBlueprint.description|   s    yy$$$r   c                 .    | j                   j                  S r   )r?   r$   rE   s    r   r$   zBlueprint.type   rG   r   c                 .    | j                   j                  S r   )r?   envsrE   s    r   rL   zBlueprint.envs   rG   r   c                 .    | j                   j                  S r   )r?   
created_byrE   s    r   rN   zBlueprint.created_by       yy###r   c                 .    | j                   j                  S r   )r?   
created_atrE   s    r   rQ   zBlueprint.created_at   rO   r   c                 @    t        j                  | j                        S r   )copydeepcopyr@   rE   s    r   r!   zBlueprint.values   s    }}T\\**r   r"   defaultc                 :    | j                   j                  ||      S r   )r@   r5   )rA   r"   rU   s      r   r5   zBlueprint.get   s    ||W--r   c                      | j                   |   S r   )r@   )rA   r"   s     r   __getitem__zBlueprint.__getitem__   s    ||C  r   c                 6    | j                   j                         S r   )r@   keysrE   s    r   rZ   zBlueprint.keys   s    ||  ""r   )NNr   )__name__
__module____qualname____doc__r   typingOptionalDictr7   Anyrest_clientOpikApirB   propertyrD   r   rI   r$   ListrL   rN   datetimerQ   r!   r5   rX   KeysViewrZ    r   r   r=   r=   h   s   K
 FJ=A	Q+Q __V[[fjj%ABQ ook&9&9:	Q
 
Q FOOC(   fooc*   %V__S1 % % fooc*   foofkk#&67   $FOOC0 $ $ $FOOH,=,=> $ $ +CO4 + +.s .VZZ .6:: .!s !vzz !#fooc* #r   r=   )rS   rg   r_   opik.rest_apir   rc   *opik.rest_api.types.agent_blueprint_publicr   #opik.api_objects.prompt.text.promptr   (opik.api_objects.prompt.chat.chat_promptr   )opik.rest_api.types.prompt_version_detailr    r	   rd   r7   rb   r   r   r`   ra   r)   boolr/   r3   r9   r;   r=   ri   r   r   <module>rq      s      / K 6 ? I %%/2ZZ+%%+/2++'S&**_!=> [[fjj!($	$$ S&**_!=>$ 
	$+	++ S&**_!=>+ 
	+'KKVZZ( S&**_!=> %%	
 
&'S&**_!=> //+"5"56 [[fjj!	3# 3#r   