
    hjy                       d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 ddlZddlmZ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mZmZmZmZm Z m!Z! ddl"m#Z#m$Z$ ddl%mZ ddl&m'Z' ddl(m)Z)m*Z*m+Z+ ddl,m-Z. ddl,m/Z0 eZ e1ddh          Z2 ed          Z3dRdZ4dRdZ5dSdZ6dTdZ7 G d d           Z8dUd"Z9d#Z:d$Z;d%Z<d#Z=d&Z>dVd)Z?	 dWdXd,Z@	 dWdYd.ZA G d/ d0e          ZB G d1 d2e          ZC G d3 d4e0          ZD G d5 d6e.          ZE G d7 d8e          ZF G d9 d:e          ZGdZd<ZHd[d=ZId\dAZJd]dCZK e1dD ejL        ejM        fD                       ZNdEZOd^dGZPd_dIZQd_dJZRd`dKZSdWdadNZTdbdOZUdcdQZVdS )dzKHelpers for embedding the generated NextGen SDK in the Google GenAI client.    )annotations)TYPE_CHECKINGAnyMappingOptionalTypeVarUnioncastN   )GOOGLE_GENAI_API_REVISIONGoogleGenAISecurityProvider)AsyncAgents)Agents)AsyncInteractions)Interactions)_AsyncRawResponseAccessorProxy_RawResponseAccessorProxyasync_wrap_sdk_call	is_streamwrap_async_stream_errorswrap_sdk_callwrap_stream_errors)
AsyncGenAIGenAI)interactions)Security)BackoffStrategyRetryConfigeventstreaming)AsyncWebhooks)Webhookszlyria-3-pro-previewzlyria-3-clip-previewModelT
api_clientr   returnstrc                    | j         j        }|st          d          t          |                              d          S )z?Returns the server URL from the parent Google GenAI API client.zBase URL must be set./)_http_optionsbase_url
ValueErrorr%   rstrip)r#   
server_urls     c/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/google/genai/_gaos/google_genai.pyget_google_genai_server_urlr.   <   s>    )2J 20111z??!!#&&&    c                t    | j         j        pd}| j        r"| j        r| j        r| d| j         d| j         S |S )z@Returns the generated path parameter for the parent client mode. z
/projects/z/locations/)r(   api_versionvertexaiprojectlocation)r#   r2   s     r-   get_google_genai_api_versionr6   D   sj    *6<"K 
z1 
j6I 
 0 0j&8 0 0$-0 0	
 r/   Optional[dict[str, str]]c                @    | j         j        }|rt          |          nd S N)r(   headersdict)r#   r:   s     r-   !_get_google_genai_default_headersr<   O   s$     &.G#-4===-r/   Optional[str]c                F    t          | dd           }t          |dd           S )N_credentialsquota_project_id)getattr)r#   credentialss     r-   _get_google_genai_user_projectrC   V   s&    *nd;;K; 2D999r/   c                      e Zd Zd	dZd
dZdS )_GoogleGenAIAccessTokenProviderr#   r   r$   Nonec                    || _         d S r9   )_api_client)selfr#   s     r-   __init__z(_GoogleGenAIAccessTokenProvider.__init__\   s    %r/   r%   c                4    | j                                         S r9   )rH   _access_token)rI   s    r-   __call__z(_GoogleGenAIAccessTokenProvider.__call___   s    --///r/   N)r#   r   r$   rF   )r$   r%   )__name__
__module____qualname__rJ   rM    r/   r-   rE   rE   [   s<        & & & &0 0 0 0 0 0r/   rE   Optional[Any]c                    t          |           }| j        rt          | j        |          S | j        r,| j        s| j        rt          t          |           |          S |rt          |          S d S )N)api_keydefault_headers)access_tokenrU   )rU   )r<   rT   r   r3   r4   r5   r   rE   )r#   rU   s     r-   _get_google_genai_securityrW   c   s    7
CCO 
&+
 
 
 	

  

 2 
j6I 
*8DD+
 
 
 	

  988884r/      i  i@  i0u  http_optionsr   c           
        t          | dd          }|t          |dd          nd}||n	t          dz   }t          }t          }t          }d}d}||j        t          |j        dz            }|j        t          |j        dz            }|j        |j        }|j	        t          |j	        dz            }|j
        rd |j
        D             }t          dt          |||t          |          d	||
          S )al  Maps parent `HttpOptions.retry_options` onto a `RetryConfig`.

    `attempts` becomes the retry count (an unset `attempts` falls back to the
    default retry count). The delay-shaping options (`initial_delay`,
    `max_delay`, `exp_base`, `jitter`) and `http_status_codes` are honored when
    provided, each defaulting to the built-in behavior when omitted.
    retry_optionsNattemptsr   i  c                ,    g | ]}t          |          S rQ   )r%   ).0codes     r-   
<listcomp>z+_translate_retry_config.<locals>.<listcomp>   s    $U$U$U4SYY$U$U$Ur/   zattempt-count-backoff)	jitter_msT)max_retriesstatus_codes_override)rA   _DEFAULT_MAX_RETRIES_DEFAULT_INITIAL_INTERVAL_MS_DEFAULT_MAX_INTERVAL_MS_DEFAULT_EXPONENTinitial_delayint	max_delayexp_basejitterhttp_status_codesr   r   _MAX_ELAPSED_TIME_MS)	rY   optionsr\   rb   initial_intervalmax_intervalexponentra   rc   s	            r-   _translate_retry_configrs      s8    lOT::G5<5Hww
D111dH&2((8Lq8PK3+L HI  ,"7#84#?@@(w04788L''H>%GNT122I$ 	V$U$U7;T$U$U$U! 	
 	
 	
 	3   r/   r2   r   c                    | j         }t          t          |           |pt          |           t	          |           t          |           t          | dd          |j        t          |                    }|S )?Builds a generated NextGen client from the parent GenAI client._httpx_clientN)securityr2   user_projectr,   client
timeout_msretry_config)	r(   r   rW   r6   rC   r.   rA   timeoutrs   r#   r2   rY   sdks       r-   build_google_genai_clientr      sy     +L
+J77K#?
#K#K3J??.z::z?D99',\::  C Jr/   r   c                    | j         }t          t          |           |pt          |           t	          |           t          |           t          | dd          |j        t          |                    }|S )ru   _async_httpx_clientN)rw   r2   rx   r,   async_clientrz   r{   )	r(   r   rW   r6   rC   r.   rA   r|   rs   r}   s       r-   build_google_genai_async_clientr      sz     +L
+J77K#?
#K#K3J??.z::Z)>EE',\::  C Jr/   c                       e Zd ZdZd# fdZese fd            Ze fd            Zesdddddddd$ fdZ	esddddddddd% fdZ
esdddddd& fd!Zesdddddd' fd"Z xZS  xZS )(GeminiNextGenInteractionsa  Public interactions resource backed by the NextGen client.

    Subclasses the generated resource so newly generated methods (and the
    raw/streaming response wrappers) are exposed automatically. Only the
    methods that need legacy input/output normalization are overridden.

    Each override sits inside `if not TYPE_CHECKING:` so static type checkers
    see the inherited generated signature (full overload sets) rather than the
    runtime stub here.
    r#   r   c                v    t          |          }t                                          |j        |           d S N)
parent_refr   superrJ   sdk_configurationrI   r#   r~   	__class__s      r-   rJ   z"GeminiNextGenInteractions.__init__   6    '
33.3?????r/   c                D    t          t                      j                  S r9   r   r   with_raw_responserI   r   s    r-   r   z+GeminiNextGenInteractions.with_raw_response       ,UWW-FGGGr/   c                D    t          t                      j                  S r9   r   r   with_streaming_responser   s    r-   r   z1GeminiNextGenInteractions.with_streaming_response       ,UWW-LMMMr/   Nrequestr2   extra_headersextra_query
extra_bodyr|   r   r2   r=   r   Optional[Mapping[str, str]]r   Optional[Mapping[str, Any]]r   r|   %Optional[Union[float, httpx.Timeout]]bodyr$   XUnion[interactions.Interaction, eventstreaming.Stream[interactions.InteractionSSEEvent]]c          	     >   |}|rt          t                    t          |          }t          t	                      j        ||||||          }	|r t          |	          rt          |	          S |	S t          |	          S t          |
                    d          d          }t          |          }t          t	                      j        fd|it          t          |          ||||d}	|r t          |	          rt          |	          S |	S t          |	          S Nr   streamFdefaultr2   )r   r   r   r|   )	TypeError_REQUEST_AND_BODY_ERROR_request_streamr   r   creater   r   %_add_output_properties_if_interaction_optional_boolget_normalize_create_bodyr
   r   rI   r   r2   r   r   r   r|   r   r   responser   s             r-   r   z GeminiNextGenInteractions.create   sS    " =#$;<<<(11(GGN# +"/ +)#    $ ** <1(;;;#O<XFFF#DHHX$6$6FFFF)$//D$ ' sD// ,'%   H   X&& 8-h7778BBBr/   Fr2   include_inputlast_event_idr   r   r   r|   idr%   r   r   r   c                  t          t          |d                    }	t          t                      j        ||t          |          t          |          |	|||	  	        }
|	rHt          |
          s|
S t          t          j	        t          j                 t          |
                    S t          t          j        t          |
                    S NFr   )r   r2   r   r   r   r   r   r|   )boolr   r   r   r   _optional_strr   r
   r   Streamr   InteractionSSEEventr   Interactionr   rI   r   r2   r   r   r   r   r   r|   stream_boolr   r   s              r-   r   zGeminiNextGenInteractions.get   s     ~feDDDEEK$',];;+M::"+'
 
 
H   ** $#O"),*JK&x00   (*OPX*Y*Y  r/   r2   r   r   r|   interactions.Interactionc                   t          t          j        t          t	          t                      j        |||||                              S N)r   r2   r   r   r|   )r
   r   r   r   r   r   cancelrI   r   r2   r   r   r|   r   s         r-   r   z GeminiNextGenInteractions.cancelG  sT     (5!$/&3$/ '  	 	  r/   c               P    t          t                      j        |||||          S r   r   r   deleter   s         r-   r   z GeminiNextGenInteractions.delete_  s4     !'+'   r/   r#   r   )r   r   r2   r=   r   r   r   r   r   r   r|   r   r   r   r$   r   )r   r%   r2   r=   r   r   r   r   r   r   r   r   r   r   r|   r   r$   r   r   r%   r2   r=   r   r   r   r   r|   r   r$   r   r   r%   r2   r=   r   r   r   r   r|   r   r$   r   rN   rO   rP   __doc__rJ   r   propertyr   r   r   r   r   r   __classcell__r   s   @r-   r   r      s       	 	@ @ @ @ @ @  N		H 	H 	H 	H 
	H 
	N 	N 	N 	N 
	N  1C  )-9=7;6:=A0	C 0	C 0	C 0	C 0	C 0	C 0	C 0	Cf  %
 *.!%!%9=7;=A$	 $	 $	 $	 $	 $	 $	 $	L  
 *.9=7;=A	 	 	 	 	 	 	 	.  
 *.9=7;=A	 	 	 	 	 	 	 	 	 	 	 	   r/   r   c                       e Zd ZdZd# fdZese fd            Ze fd            Zesdddddddd$ fdZ	esddddddddd% fdZ
esdddddd& fd!Zesdddddd' fd"Z xZS  xZS )(AsyncGeminiNextGenInteractionsz@Async public interactions resource backed by the NextGen client.r#   r   c                v    t          |          }t                                          |j        |           d S r   r   r   rJ   r   r   s      r-   rJ   z'AsyncGeminiNextGenInteractions.__init__u  6    -j99.3?????r/   c                D    t          t                      j                  S r9   r   r   r   r   s    r-   r   z0AsyncGeminiNextGenInteractions.with_raw_responsez      1%''2KLLLr/   c                D    t          t                      j                  S r9   r   r   r   r   s    r-   r   z6AsyncGeminiNextGenInteractions.with_streaming_response~      1%''2QRRRr/   Nr   r   r2   r=   r   r   r   r   r   r|   r   r   r$   ]Union[interactions.Interaction, eventstreaming.AsyncStream[interactions.InteractionSSEEvent]]c          	     Z  K   ||rt          t                    t          |          }t          t	                      j        ||||||           d {V }	|r t          |	          rt          |	          S |	S t          |	          S t          |
                    d          d          }t          |          }t          t	                      j        fd|it          t          |          ||||d d {V }	|r t          |	          rt          |	          S |	S t          |	          S r   )r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   s             r-   r   z%AsyncGeminiNextGenInteractions.create  s      " =#$;<<<(11!4GGN# +"/ +)#" " "        $ ** B7AAA#O<XFFF#DHHX$6$6FFFF)$//D0 ' sD// ,'%         H   X&& >3H===8BBBr/   Fr   r   r%   r   r   r   c                 K   t          t          |d                    }	t          t                      j        ||t          |          t          |          |	|||	  	         d {V }
|	rHt          |
          s|
S t          t          j	        t          j                 t          |
                    S t          t          j        t          |
                    S r   )r   r   r   r   r   r   r   r
   r   AsyncStreamr   r   r   r   r   r   s              r-   r   z"AsyncGeminiNextGenInteractions.get  s       ~feDDDEEK0',];;+M::"+'
 
 
 
 
 
 
 
 
H   ** $#O".|/OP,X66   (*OPX*Y*Y  r/   r   r   c                  K   t          t          j        t          t	          t                      j        |||||           d {V                     S r   )r
   r   r   r   r   r   r   r   s         r-   r   z%AsyncGeminiNextGenInteractions.cancel  sv       (5-$/&3$/ '        	 	  r/   c               `   K   t          t                      j        |||||           d {V S r   r   r   r   r   s         r-   r   z%AsyncGeminiNextGenInteractions.delete  sV       -'+'         r/   r   )r   r   r2   r=   r   r   r   r   r   r   r|   r   r   r   r$   r   )r   r%   r2   r=   r   r   r   r   r   r   r   r   r   r   r|   r   r$   r   r   r   r   r   s   @r-   r   r   r  s       JJ@ @ @ @ @ @  S		M 	M 	M 	M 
	M 
	S 	S 	S 	S 
	S  1C  )-9=7;6:=A0	C 0	C 0	C 0	C 0	C 0	C 0	C 0	Cf  %
 *.!%!%9=7;=A$	 $	 $	 $	 $	 $	 $	 $	L  
 *.9=7;=A	 	 	 	 	 	 	 	.  
 *.9=7;=A	 	 	 	 	 	 	 	 	 	 	 	   r/   r   c                       e Zd ZdZd fdZesHe fd            Ze fd            Zd fd
Z	d fdZ
d fdZd fdZd fdZd fdZd fdZ xZS  xZS )GeminiNextGenWebhooksa8  Public webhooks resource backed by the NextGen client.

    Subclasses the generated resource so every public method is wrapped in
    `wrap_sdk_call`, translating per-operation `GenAiError` raises into the
    status-code `APIError` hierarchy exposed at the
    `google.genai._interactions` import surface.
    r#   r   c                v    t          |          }t                                          |j        |           d S r   r   r   s      r-   rJ   zGeminiNextGenWebhooks.__init__  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z'GeminiNextGenWebhooks.with_raw_response  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z-GeminiNextGenWebhooks.with_streaming_response  r   r/   argskwargsr$   c                F    t          t                      j        g|R i |S r9   r   r   r   rI   r   r   r   s      r-   r   zGeminiNextGenWebhooks.create   '     A$AAA&AAAr/   c                F    t          t                      j        g|R i |S r9   r   r   listr   s      r-   r   zGeminiNextGenWebhooks.list#  '     ???????r/   c                F    t          t                      j        g|R i |S r9   r   r   r   r   s      r-   r   zGeminiNextGenWebhooks.get&  '     >t>>>v>>>r/   c                F    t          t                      j        g|R i |S r9   )r   r   updater   s      r-   r   zGeminiNextGenWebhooks.update)  r   r/   c                F    t          t                      j        g|R i |S r9   r   r   s      r-   r   zGeminiNextGenWebhooks.delete,  r   r/   c                F    t          t                      j        g|R i |S r9   )r   r   rotate_signing_secretr   s      r-   r   z+GeminiNextGenWebhooks.rotate_signing_secret/  s(     !>PPPPPPPr/   c                F    t          t                      j        g|R i |S r9   )r   r   pingr   s      r-   r   zGeminiNextGenWebhooks.ping2  r   r/   r   r   r   r   r   r$   r   rN   rO   rP   r   rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r-   r   r   
  s        @ @ @ @ @ @  @		H 	H 	H 	H 
	H 
	N 	N 	N 	N 
	N	B 	B 	B 	B 	B 	B	@ 	@ 	@ 	@ 	@ 	@	? 	? 	? 	? 	? 	?	B 	B 	B 	B 	B 	B	B 	B 	B 	B 	B 	B	Q 	Q 	Q 	Q 	Q 	Q	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@7@ @ @ @r/   r   c                       e Zd ZdZd fdZesHe fd            Ze fd            Zd fd
Z	d fdZ
d fdZd fdZd fdZd fdZd fdZ xZS  xZS )AsyncGeminiNextGenWebhooksz<Async public webhooks resource backed by the NextGen client.r#   r   c                v    t          |          }t                                          |j        |           d S r   r   r   s      r-   rJ   z#AsyncGeminiNextGenWebhooks.__init__9  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z,AsyncGeminiNextGenWebhooks.with_raw_response>  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z2AsyncGeminiNextGenWebhooks.with_streaming_responseB  r   r/   r   r   r$   c                V   K   t          t                      j        g|R i | d {V S r9   r   r   r   r   s      r-   r   z!AsyncGeminiNextGenWebhooks.createF  =      ,UWW^MdMMMfMMMMMMMMMr/   c                V   K   t          t                      j        g|R i | d {V S r9   r   r   r   r   s      r-   r   zAsyncGeminiNextGenWebhooks.listI  =      ,UWW\KDKKKFKKKKKKKKKr/   c                V   K   t          t                      j        g|R i | d {V S r9   r   r   r   r   s      r-   r   zAsyncGeminiNextGenWebhooks.getL  =      ,UWW[J4JJJ6JJJJJJJJJr/   c                V   K   t          t                      j        g|R i | d {V S r9   )r   r   r   r   s      r-   r   z!AsyncGeminiNextGenWebhooks.updateO  r  r/   c                V   K   t          t                      j        g|R i | d {V S r9   r   r   s      r-   r   z!AsyncGeminiNextGenWebhooks.deleteR  r  r/   c                V   K   t          t                      j        g|R i | d {V S r9   )r   r   r   r   s      r-   r   z0AsyncGeminiNextGenWebhooks.rotate_signing_secretU  s[      ,-04  8>        r/   c                V   K   t          t                      j        g|R i | d {V S r9   )r   r   r   r   s      r-   r   zAsyncGeminiNextGenWebhooks.pingZ  r  r/   r   r   r   r   s   @r-   r   r   6  s       FF@ @ @ @ @ @  L		M 	M 	M 	M 
	M 
	S 	S 	S 	S 
	S	N 	N 	N 	N 	N 	N	L 	L 	L 	L 	L 	L	K 	K 	K 	K 	K 	K	N 	N 	N 	N 	N 	N	N 	N 	N 	N 	N 	N	 	 	 	 	 	
	L 	L 	L 	L 	L 	L 	L 	L 	L 	L;L L L Lr/   r   c                       e Zd ZdZd fdZes6e fd            Ze fd            Zd fd
Z	d fdZ
d fdZd fdZ xZS  xZS )GeminiNextGenAgentsa6  Public agents resource backed by the NextGen client.

    Subclasses the generated resource so every public method is wrapped in
    `wrap_sdk_call`, translating per-operation `GenAiError` raises into the
    status-code `APIError` hierarchy exposed at the
    `google.genai._interactions` import surface.
    r#   r   c                v    t          |          }t                                          |j        |           d S r   r   r   s      r-   rJ   zGeminiNextGenAgents.__init__g  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z%GeminiNextGenAgents.with_raw_responsel  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z+GeminiNextGenAgents.with_streaming_responsep  r   r/   r   r   r$   c                F    t          t                      j        g|R i |S r9   r   r   s      r-   r   zGeminiNextGenAgents.createt  r   r/   c                F    t          t                      j        g|R i |S r9   r   r   s      r-   r   zGeminiNextGenAgents.listw  r   r/   c                F    t          t                      j        g|R i |S r9   r   r   s      r-   r   zGeminiNextGenAgents.getz  r   r/   c                F    t          t                      j        g|R i |S r9   r   r   s      r-   r   zGeminiNextGenAgents.delete}  r   r/   r   r   rN   rO   rP   r   rJ   r   r   r   r   r   r   r   r   r   r   s   @r-   r  r  ^  sP        @ @ @ @ @ @  B		H 	H 	H 	H 
	H 
	N 	N 	N 	N 
	N	B 	B 	B 	B 	B 	B	@ 	@ 	@ 	@ 	@ 	@	? 	? 	? 	? 	? 	?	B 	B 	B 	B 	B 	B 	B 	B 	B 	B%B B B Br/   r  c                       e Zd ZdZd fdZes6e fd            Ze fd            Zd fd
Z	d fdZ
d fdZd fdZ xZS  xZS )AsyncGeminiNextGenAgentsz:Async public agents resource backed by the NextGen client.r#   r   c                v    t          |          }t                                          |j        |           d S r   r   r   s      r-   rJ   z!AsyncGeminiNextGenAgents.__init__  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z*AsyncGeminiNextGenAgents.with_raw_response  r   r/   c                D    t          t                      j                  S r9   r   r   s    r-   r   z0AsyncGeminiNextGenAgents.with_streaming_response  r   r/   r   r   r$   c                V   K   t          t                      j        g|R i | d {V S r9   r  r   s      r-   r   zAsyncGeminiNextGenAgents.create  r  r/   c                V   K   t          t                      j        g|R i | d {V S r9   r  r   s      r-   r   zAsyncGeminiNextGenAgents.list  r  r/   c                V   K   t          t                      j        g|R i | d {V S r9   r  r   s      r-   r   zAsyncGeminiNextGenAgents.get  r	  r/   c                V   K   t          t                      j        g|R i | d {V S r9   r   r   s      r-   r   zAsyncGeminiNextGenAgents.delete  r  r/   r   r   r  r   s   @r-   r  r    sR       DD@ @ @ @ @ @  N		M 	M 	M 	M 
	M 
	S 	S 	S 	S 
	S	N 	N 	N 	N 	N 	N	L 	L 	L 	L 	L 	L	K 	K 	K 	K 	K 	K	N 	N 	N 	N 	N 	N 	N 	N 	N 	N%N N N Nr/   r  valuec                J   t          |           }|| S t          |d          }t          |          }|s| S t          |d          r|                    |          S t          |t                    ri ||S |                                D ]\  }}t          |||           |S )Nsteps
model_copyr   )	_normalize_interaction_shape
_get_value_output_properties_from_stepshasattrr$  
isinstancer;   itemssetattr)r!  
normalizedr#  updatesnameoutput_values         r-   r   r     s    -e44Jz7++E+E22G z<(( 5$$G$444*d## )(*(((%mmoo 0 0l
D,////r/   c                6   t          | d          }t          |t                    r| S t          | d          }t          |t                    r	|t          vrd S t          | d          }t          |t                    sg }|rd|dgng }t          | d          r|                     |d d          S t          | t                    r i | d|i}|                    dd            |S t          | d|           t          | d          rt          | dd            | S )	Nr#  modeloutputsmodel_outputtypecontentr$  )r#  r3  r%  )
r'  r*  r   r%   _LEGACY_LYRIA_MODELSr)  r$  r;   popr,  )r!  r#  r2  r3  r-  s        r-   r&  r&    sF   ug&&E% ug&&EeS!! U2F%F%Ft	**Ggt$$ >EMn99::2Eul## J4'H'HIII% ..w..
y$'''E7E"""ui   (y$'''Lr/   r#  	list[Any]dict[str, Any]c                   g }d}t          |           D ]}t          |d          dk    r nt          |d          dk    r|r n1t          |d          }t          |t                    s|r ns[d}t          |          D ][}t          |d          dk    r?d}t          |d          }|                    t          |t
                    r|nd           U|rd} n\|r ni }d                    t          |                    }	|	r|	|d	<   d }
d }d }t          |           D ]}t          |d          dk    r n|t          |d          dk    r-t          |d          }t          |t                    sSt          |          D ]0}t          |d          }|d
k    r|
|}
|dk    r||}|dk    r||}1|
|
|d<   |||d<   |||d<   |S )NFr6  
user_inputr4  r7  textTr1   output_textimageaudiovideooutput_imageoutput_audiooutput_video)reversedr'  r*  r   appendr%   join)r#  
text_parts
collectingstepr7  should_stopitemr>  r.  r?  rC  rD  rE  content_types                 r-   r(  r(    sy   JJ  dF##|33EdF##~55 T9--'4(( 	 W%% 	 	D$''611!
!$//!!*T3*?*?"G$$RHHHH "  	E	 !G''(:..//K -!,LLL $ $dF##|33EdF##~55T9--'4(( 	W%% 	$ 	$D%dF33Lw&&<+?#w&&<+?#w&&<+?#	$ ".".".Nr/   r/  c                x    t          | t                    r|                     |          S t          | |d           S r9   )r*  r;   r   rA   )r!  r/  s     r-   r'  r'    s6    % yy5$%%%r/   c              #  f   K   | ],}|j                                         D ]\  }}|j        p|V  -d S r9   )model_fieldsr+  alias)r^   r2  r/  fields       r-   	<genexpr>rT    si         )//11  	e 
K4      r/   zScreate() accepts either request=... or individual body keyword arguments, not both.r   c                   t          |           t          z
  }|r5t          dd                    t	          |                    z   dz             |                     d          }t          |          s| S i | dd|dgiS )Nz-create() got unexpected keyword argument(s): z, z<. Use extra_body=... to send additional request body fields.inputr=  r5  )set_CREATE_BODY_KEYSr   rH  sortedr   _is_content_list)r   unknowninput_values      r-   r   r   )  s    $ii++G 
;iiw(()LM
 
 	
 ((7##KK(( NdNG|LLMNNNr/   r   c                |    t          | t                    o't          |           ot          d | D                       S )Nc              3  4   K   | ]}t          |          V  d S r9   )_is_content_block)r^   rM  s     r-   rT  z#_is_content_list.<locals>.<genexpr>=  s+      ::D!$''::::::r/   )r*  r   r   allr!  s    r-   rZ  rZ  9  sA    5$ 	;KK	;::E:::::r/   c                L    t          | t                    ot          |            S r9   )r*  r;   _is_step_blockra  s    r-   r_  r_  A  s"    eT""@>%+@+@'@@r/   c                0    |                      d          dv S )Nr6  >   thoughtr=  r4  function_callfunction_resultfile_search_callgoogle_maps_callurl_context_callfile_search_resultgoogle_maps_resultgoogle_search_callurl_context_resultcode_execution_callgoogle_search_resultmcp_server_tool_callcode_execution_resultmcp_server_tool_result)r   ra  s    r-   rc  rc  E  s     99V !  r/   r   Optional[bool]c                4    t          | t                    r| S |S r9   )r*  r   )r!  r   s     r-   r   r   [  s    % Nr/   c                4    t          | t                    r| S d S r9   )r*  r%   ra  s    r-   r   r   a  s    % 4r/   r   c                *   t          | t                    r|                     d          nt          | dd           }t          |t                    r|                    d          nt          |dd           }t	          t          |d                    S )Nr   r   Fr   )r*  r   r   rA   r   r   )r   r   r   s      r-   r   r   g  s     gw''	,FWfd++ 	 dG$$	+T8T** 
 vu555666r/   )r#   r   r$   r%   )r#   r   r$   r7   )r#   r   r$   r=   )r#   r   r$   rR   )rY   r   r$   r   r9   )r#   r   r2   r=   r$   r   )r#   r   r2   r=   r$   r   )r!  r   r$   r   )r!  r   r$   rR   )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   rt  r$   rt  )r!  r   r$   r=   )r   r   r$   r   )Wr   
__future__r   typingr   r   r   r   r   r	   r
   httpx_hooks.google_genai_authr   _GOOGLE_GENAI_API_REVISIONr   agentsr   GeneratedAsyncAgentsr   GeneratedAgentsr   r   GeneratedAsyncInteractionsr   GeneratedInteractionslib.compat_errorsr   r   r   r   r   r   r   r~   r   r   typestypes.securityr   utilsr   r   r   webhooksr    GeneratedAsyncWebhooksr!   GeneratedWebhooks	frozensetr8  r"   r.   r6   r<   rC   rE   rW   rd   re   rf   rg   rn   rs   r   r   r   r   r   r   r  r  r   r&  r(  r'  CreateModelInteractionCreateAgentInteractionrX  r   r   rZ  r_  rc  r   r   r   rQ   r/   r-   <module>r     sR  " R Q # " " " " " N N N N N N N N N N N N N N N N N N         8 7 7 7 7 7 - - - - - - I I I I I I ? ? ? ? ? ?                  # " " " " " " "       $ $ $ $ $ $ ? ? ? ? ? ? ? ? ? ? = = = = = = 3 3 3 3 3 3 7  y"79O!PQQ 			' ' ' '   . . . .: : : :
0 0 0 0 0 0 0 0   *    #    + + + +^ 37    $ 37    "^ ^ ^ ^ ^ 5 ^ ^ ^BU U U U U%? U U Up)@ )@ )@ )@ )@- )@ )@ )@X%L %L %L %L %L!7 %L %L %LP B  B  B  B  B/  B  B  BFN N N N N3 N N N:   (   6A A A AH& & & & I   	++      O O O O    A A A A   ,       7 7 7 7 7 7r/   