+
    ix                     \   R t ^ RIt^ RIt^ RIt^ RIHt ^ RIt^RIHt ^RIH	t	 ^RIH
t ^RIHt ^RIHt ^RIHt ^R	IHt ^R
I	Ht ]P(                  t ^ RIHt ^ RIHt ]P4                  ! R4      t ! R R4      t ! R R]P:                  4      tR#   ] d    ^ RIHt ^ RIHt  LHi ; i)z%[Experimental] Live Music API client.N)AsyncIterator)_api_module)_common)_live_converters)_transformers)errors)types)BaseApiClient)set_value_by_path)ClientConnection)connectzgoogle_genai.live_musicc                      a  ] tR t^-t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )AsyncMusicSessionz![Experimental] AsyncMusicSession.c                &   < V ^8  d   QhRS[ RS[/# )   
api_client	websocket)r	   r   )format__classdict__s   "j/Users/igloo/.openclaw/workspace/scratch/fb_ad_env/lib/python3.14/site-packages/google/genai/live_music.py__annotate__AsyncMusicSession.__annotate__0   s       ;K     c                    Wn         W n        R # )N_api_client_ws)selfr   r   s   &&&r   __init__AsyncMusicSession.__init__0   s    !Hr   c                H   < V ^8  d   QhRS[ S[P                  ,          RR/# )r   promptsreturnN)listr   WeightedPrompt)r   r   s   "r   r   r   4   s,     L L%../LLr   c           	     0  "   V P                   P                  '       d   \        R 4      hRV Uu. uF  p\        P                  ! VRR7      NK  	  up/pV P
                  P                  \        P                  ! RV/4      4      G Rj  xL
  R# u upi  L5i)4Live music generation is not supported in Vertex AI.weightedPromptsTconvert_keysclientContentN	r   vertexaiNotImplementedErrorr   convert_to_dictr   sendjsondumps)r   r!   promptclient_content_dicts   &&  r   set_weighted_prompts&AsyncMusicSession.set_weighted_prompts4   s         
@ 
 ##& %%f4@# ((--

O5H#IJ
KKK Ls   -B!B8BB	Bc                8   < V ^8  d   QhRS[ P                  RR/# )r   configr"   N)r   LiveMusicGenerationConfig)r   r   s   "r   r   r   E   s'     	L 	L33	L	Lr   c                  "   V P                   P                  '       d   \        R 4      h\        P                  ! VRR7      pV P
                  P                  \        P                  ! RV/4      4      G Rj  xL
  R#  L5i)r&   Tr(   musicGenerationConfigNr+   )r   r7   config_dicts   && r   set_music_generation_config-AsyncMusicSession.set_music_generation_configE   sb         
@  ++FFk
((--

$;[#IJ
KKKs   A4A?6A=7A?c                8   < V ^8  d   QhRS[ P                  RR/# )r   playback_controlr"   N)r   LiveMusicPlaybackControl)r   r   s   "r   r   r   P   s#     	= 	=#<<	=	=r   c                   "   V P                   P                  '       d   \        R 4      hRVP                  /pV P                  P                  \        P                  ! V4      4      G Rj  xL
  R#  L5i)r&   playbackControlN)r   r,   r-   valuer   r/   r0   r1   )r   r?   playback_control_dicts   && r   _send_control_signal&AsyncMusicSession._send_control_signalP   s]         
@   12B2H2HIHHMM$**%:;<<<s   A(A3*A1+A3c                   < V ^8  d   QhRR/# r   r"   N )r   r   s   "r   r   r   [   s     P P$ Pr   c                p   "   V P                  \        P                  P                  4      G Rj  xL
 #  L5i)z0Sends playback signal to start the music stream.N)rE   r   r@   PLAYr   s   &r   playAsyncMusicSession.play[   s(     **5+I+I+N+NOOOO   -646c                   < V ^8  d   QhRR/# rH   rI   )r   r   s   "r   r   r   _   s     Q Q4 Qr   c                p   "   V P                  \        P                  P                  4      G Rj  xL
 #  L5i)z2Sends a playback signal to pause the music stream.N)rE   r   r@   PAUSErL   s   &r   pauseAsyncMusicSession.pause_   s(     **5+I+I+O+OPPPPrO   c                   < V ^8  d   QhRR/# rH   rI   )r   r   s   "r   r   r   c   s     P P$ Pr   c                p   "   V P                  \        P                  P                  4      G Rj  xL
 #  L5i)z{Sends a playback signal to stop the music stream.

Resets the music generation context while retaining the current config.
N)rE   r   r@   STOPrL   s   &r   stopAsyncMusicSession.stopc   s*     
 **5+I+I+N+NOOOOrO   c                   < V ^8  d   QhRR/# rH   rI   )r   r   s   "r   r   r   j   s      4 r   c                p   "   V P                  \        P                  P                  4      G Rj  xL
 #  L5i)zKReset the context (prompts retained) without stopping the music generation.N)rE   r   r@   RESET_CONTEXTrL   s   &r   reset_contextAsyncMusicSession.reset_contextj   s1     **&&44   rO   c                D   < V ^8  d   QhRS[ S[P                  ,          /# r   r"   )r   r   LiveMusicServerMessage)r   r   s   "r   r   r   p   s      ]5+G+GH r   c               `   "   V P                  4       G Rj  xL
 ;p'       d   V5x  K'  R#  L5i)zVReceive model responses from the server.

Yields:
  The audio chunks from the server.
N)_receive)r   results   & r   receiveAsyncMusicSession.receivep   s(      --/)
)&
)l *)s   .,.
.c                4   < V ^8  d   QhRS[ P                  /# r`   )r   ra   )r   r   s   "r   r   r   z   s      e:: r   c                  "   \         P                  ! 4       p V P                  P                  R R7      G Rj  xL
 pX'       d    \         P"                  ! V4      pM/ pV P*                  P,                  '       d   \/        R4      hTpV'       g9   V'       d1   \        P                  P                  VP                  R4      VR4       \         P                  P1                  WqP3                  4       R7      #  L  \         d'    T P                  P                  4       G Rj  xL 
 p L\
         d   pTP                  '       d.   TP                  P                  pTP                  P                  pM,Rp\        P                  P                  P                  TR4      p\        P                  P                  YER4        Rp?ELRp?ii ; i  \         P$                  P&                   d    \)        RT: 24      hi ; i5i)	FdecodeNi  zAbnormal closure.zFailed to parse response: r&   code)responsekwargs)r   ra   r   recv	TypeErrorConnectionClosedrcvdrk   reason
websocketsframesCLOSE_CODE_EXPLANATIONSgetr   APIErrorraise_errorr0   loadsdecoderJSONDecodeError
ValueErrorr   r,   r-   _from_response
model_dump)r   parameter_modelraw_responseerk   rr   rl   response_dicts   &       r   rc   AsyncMusicSession._receivez   s    224O688===66l H::l+ h    VWWmXoo!!(,,v"6$G''66'A'A'C 7  5 7 +88==?**l 6	
vv{{""::>>tEXYoo!!$556 \\)) H5l5EFGGHs   G=C8 C6C8 G=G G=;G=G=AG=6C8 8(G D#!G&G=(G1G2BG=G=GG=/G::G=c                   < V ^8  d   QhRR/# rH   rI   )r   r   s   "r   r   r      s      4 r   c                V   "   V P                   P                  4       G Rj  xL
  R#  L5i)z<Closes the bi-directional stream and terminates the session.N)r   closerL   s   &r   r   AsyncMusicSession.close   s     
((..
s   )')r   N)__name__
__module____qualname____firstlineno____doc__r   r4   r<   rE   rM   rS   rX   r]   re   rc   r   __static_attributes____classdictcell__r   s   @r   r   r   -   s     ) L L"	L 	L	= 	=P PQ QP P   B r   r   c                   ~   a  ] tR t^t o Rt]P                  ! R4      ]P                  V 3R lR l4       4       t	Rt
V tR# )AsyncLiveMusicz[[Experimental] Live music module.

Live music can be accessed via `client.aio.live.music`.
zLRealtime music generation is experimental and may change in future versions.c                6   < V ^8  d   QhRS[ RS[S[,          /# )r   modelr"   )strr   r   )r   r   s   "r   r   AsyncLiveMusic.__annotate__   s%     (K (KC (KM:K,L (Kr   c          	      "   V P                   P                  4       p\        V\        4      '       d   VP	                  R4      p\
        P                  ! V P                   V4      pV P                   P                  '       d   V P                   P                  pV P                   P                  P                  pV RV RV 2pV P                   P                  P                  p\        P                  ! \        P                  ! \        P                   ! VR7      P#                  RR7      R7      4      p\%        VRR	.V4       \&        P(                  ! V4      p	M\+        R
4      h \-        WgR7      ;_uu_4       GRj  xL
 p
V
P/                  V	4      G Rj  xL
  \0        P3                  V
P5                  RR7      G Rj  xL
 4       \7        V P                   V
R7      5x  RRR4      GRj  xL
  R#  Lv L_ L8 L  + GRj  xL 
 '       g   i     R# ; i  \8         d    \-        YgR7      ;_uu_4       GRj  xL 
 p
T
P/                  T	4      G Rj  xL 
  \0        P3                  T
P5                  4       G Rj  xL 
 4       \7        T P                   T
R7      5x  RRR4      GRj  xL 
   R#   + GRj  xL 
 '       g   i      R# ; ii ; i5i)z0[Experimental] Connect to the live music server.zutf-8z!/ws/google.ai.generativelanguage.z).GenerativeService.BidiGenerateMusic?key=)r   T)exclude_none)from_objectsetupr   r&   )additional_headersNFri   )r   r   )extra_headers)r   _websocket_base_url
isinstancebytesrj   tt_modelapi_key_http_optionsapi_versionheadersr   r.   live_converters$_LiveMusicConnectParameters_to_mldevr   LiveMusicConnectParametersr~   setvr0   r1   r-   r   r/   loggerinforn   r   ro   )r   r   base_urltransformed_modelr   versionurir   request_dictrequestwss   &$         r   r   AsyncLiveMusic.connect   s	     335H(E"")h		$"2"2E:  ((g  ..::gj9'Bklsktuc  ..66g ,,

>
>::'

-l <'7+->?

<(g VWWK999Rggg"'''//04+;+;rJJ	 :99/ :999
  K444ggg"'')OO$4+;+;rJJ	 544444Ks  A>KC!K#H ;G2<H ?G:G4(G:=G6>"G: H +G8,H 0K2H 4G:6G:8H :H	 H
H	H	H KH #K:H=
;K?J4I
'J4<I?=#J4 K+J.,K1K4K:J=;
KKKKKKrI   N)r   r   r   r   r   r   experimental_warning
contextlibasynccontextmanagerr   r   r   r   s   @r   r   r      s>     
 T !!(K "(Kr   r   )r   r   r0   loggingtypingr   rs    r   r   r   r   r   r   r   r   r   r	   r
   r   rp   websockets.asyncio.clientr   r   ModuleNotFoundErrorwebsockets.client	getLoggerr   r   
BaseModuler   rI   r   r   <module>r      s     ,         1     & ... (8/
 
		4	5p pf2K[++ 2Ku  (0'(s   B B+*B+