+
    TV-j  ã                   ó  € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIt]P                  ! R]P                  4      t
]P                  ! R]P                  4      tRtRtR R ltR	 R
 ltRR R lltR R ltRR R lltR R ltRR R lltR# )zi
Modified from:
https://github.com/vllm-project/vllm/blob/main/vllm/tool_parsers/glm4_moe_tool_parser.py
N)ÚAnyz^(.*?)<arg_key>z?<arg_key>(.*?)</arg_key>(?:\\n|\s)*<arg_value>(.*?)</arg_value>z<tool_call>z</tool_call>c                óv   € V ^8„  d   QhR\         R\        \        ,          R,          R\        \         ,          /# )é   Ú	tool_nameÚtoolsNÚreturn)ÚstrÚlistr   Úset)Úformats   "Új/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/tool_parsers/glm47.pyÚ__annotate__r      s.   € ÷ ñ ¤Sð ´´cµ¸TÕ1Að ÄcÌ#Åhñ ó    c                 ó–  € Vf   \        4       # V F¦  pVP                  R4      pV'       d   VP                  R4      V 8w  d   K4  VP                  R4      ;'       g    / pVP                  R4      ;'       g    / pVP                  4        UUu0 uF  w  rgVP                  R4      R8X  g   K  VkK!  	  uppu # 	  \        4       # u uppi )NÚfunctionÚnameÚ
parametersÚ
propertiesÚtypeÚstring)r
   ÚgetÚitems)r   r   ÚtoolÚfuncÚparamsr   r   Úschemas   &&      r   Ú_get_string_arg_namesr      s¶   € Ø‚}Ü‹uˆÛˆØ�x‰x˜
Ó#ˆß�t—x‘x Ó'¨9Ô4ÙØ—‘˜,Ó'×-Ð-¨2ˆØ—Z‘Z Ó-×3Ð3°ˆ
ð !+× 0Ñ 0Ô 2ô
á 2‘�Ø�z‰z˜&Ó! XÑ-÷ ˆDÙ 2ò
ò 	
ñ ô ‹5€Lùó
s   ÂCÂ-Cc                ó0   € V ^8„  d   QhR\         R\        /# )r   Úvaluer   )r   r   )r   s   "r   r   r   *   s   € ÷ 
ñ 
œð 
¤ñ 
r   c                 ó¤   €  \         P                  ! V 4      #   \         d     Mi ; i \        P                  ! T 4      #   \         d     T # i ; i©N)ÚjsonÚloadsÚ	ExceptionÚastÚliteral_eval)r   s   &r   Ú_deserializer&   *   sU   € ðÜ�zŠz˜%Ó Ð øÜô ÙðúðÜ×Ò Ó&Ð&øÜô ØØ€Lðús   ‚ ˜&¥&ªA  Á AÁAc                óà   € V ^8„  d   QhR\         R\        \         \        3,          R\        \        ,          R,          R\        \         ,          R,          R\        \         \        3,          /# )r   Ú	func_nameÚ	argumentsr   NÚstring_argsr   )r   Údictr   r	   r
   )r   s   "r   r   r   8   s[   € ÷ ñ Üðä”Cœ�H�~ðô ”�9�tÕðô ”S•˜D•ð	ô
 
Œ#Œsˆ(…^ñr   c                 ó  € Vf   \        W4      p/ pVP                  4        F[  w  rVWS9   d(   \        V\        4      '       d   TM
\        V4      WE&   K2  \        V\        4      '       d   \	        V4      WE&   KW  WdV&   K]  	  V# r    )r   r   Ú
isinstancer   r&   )r(   r)   r   r*   Ú
normalizedÚkeyr   s   &&&&   r   Ú_normalize_argumentsr0   8   sv   € ð ÒÜ+¨IÓ=ˆØ€JØ—o‘oÖ'‰
ˆàÔÜ'1°%¼×'=Ò'=™eÄ3ÀuÃ:ˆJ‰OÙÜ�eœS×!Ò!Ü*¨5Ó1ˆJ‹Oà#�s‹Oñ (ð Ðr   c                óT   € V ^8„  d   QhR\         R\        \        ,          R,          /# ©r   Útextr   N©r   r	   r   )r   s   "r   r   r   N   s#   € ÷ -ñ -¤ð -¬D´­I¸Õ,<ñ -r   c           
      óˆ  €  \         P                  ! V P                  4       4      p\	        T\
        4      '       d/   T'       d'   \	        T^ ,          \        4      '       d
   T^ ,          p\	        T\        4      '       g   R # R pR pRT9   d+   RT9   d$   TP                  R4      pTP                  R4      pMˆRT9   d+   RT9   d$   TP                  R4      pTP                  R4      pMWRT9   dQ   \	        TP                  R4      \        4      '       d,   TR,          pTP                  R4      pTP                  R4      p\	        T\        4      '       d-   T;'       g    TP                  R4      pTP                  R4      p\	        T\        4      '       d   \        T4      p\	        T\        4      '       d   \        Y14      MR p\	        T\        4      '       d   Tf   \        T/ R7      # \	        T\        4      '       d/   \	        T\        4      '       d   \        T\        Y4YR7      R7      # R #   \         d     R # i ; i)Nr   r)   r   r   ©r   r)   ©r*   )r!   r"   Ústripr#   r-   r	   r+   r   r   r&   r   r0   )r3   r   Úparsedr   r)   r   r*   s   &&     r   Ú_parse_json_tool_callr:   N   sË  € ðÜ—’˜DŸJ™J›LÓ)ˆô �&œ$×Ò§FÜ�f˜Q•i¤×&Ò&Ø˜A•YˆFÜ�fœd×#Ò#Ùð €DØ€IØ�Ô˜K¨6Ô1Ø�z‰z˜&Ó!ˆØ—J‘J˜{Ó+‰	Ø	�vÔ	 +°Ô"7Ø�z‰z˜*Ó%ˆØ—J‘J˜{Ó+‰	Ø	�6Ô	œj¨¯©°FÓ);¼T×BÒBØ�f�~ˆØ�x‰x˜ÓˆØ—H‘H˜[Ó)ˆ	ä�$œ×ÒØ×6Ð6 §¡¨+Ó!6ˆ	Ø�x‰x˜Óˆä�)œS×!Ò!Ü  Ó+ˆ	ä8BÀ4Ì×8MÒ8MÔ'¨Ô4ÐSW€Kä�$œ×Ò Ò!2Ü˜¨Ô,Ð,Ü�$œ×Ò¤¨I´t×!<Ò!<ÜØÜ*Ø ôô
ð 	
ñ øôU ô Úðús   ‚$H2 È2IÉ Ic                óÌ   € V ^8„  d   QhR\         R\         R\        \        ,          R,          R\        \         ,          R,          R\        \         \        3,          R,          /# )r   r3   r(   r   Nr*   r   )r   r	   r   r
   r+   )r   s   "r   r   r      sX   € ÷ ñ Ü
ðäðô ”�9�tÕðô ”S•˜D•ð	ô
 
Œ#Œsˆ(…^�dÕñr   c                 óV  € R V 9  d   R#  \         P                  ! V 4      pT'       g   R# Tf   \        Y4      p/ pT FU  pR T9  d    R# TP                  R ^4      w  rxTP	                  4       pT'       g    R# Ys9   d   Y…T&   KH  \        T4      YW&   KW  	  T#   \         d     R# i ; i)Ú=N)ÚshlexÚsplitÚ
ValueErrorr   r8   r&   )	r3   r(   r   r*   Útokensr)   Útokenr/   r   s	   &&&&     r   Ú_parse_key_value_pairsrC      s«   € ð �$„ÙðÜ—’˜TÓ"ˆ÷ ÙàÒÜ+¨IÓ=ˆà€IÛˆà�eÔÚØ—[‘[  aÓ(‰
ˆØ�i‰i‹kˆßÚØÔØ"�c‹Nä)¨%Ó0ˆI‹Nñ ð Ðøô+ ô Úðús   ‹B ÂB(Â'B(c                óT   € V ^8„  d   QhR\         R\        \        ,          R,          /# r2   r4   )r   s   "r   r   r   ¢   s#   € ÷ +4ñ +4¤cð +4´$´sµ)¸dÕ2Bñ +4r   c           
      óº  € V P                  4       pV'       g   R # RV9   d‰   VP                  R^4      w  r4VP                  4       pVP                  4       pV'       dM   V'       dE   \        WQ4      p\        V4      p\	        V\
        4      '       d   \        V\        WWWR7      R7      # VP                  R4      w  rXpV'       g   R # VP                  4       pV'       g   \        V/ R7      # \        WQ4      p\        V4      p\	        V\
        4      '       d   \        V\        WWWR7      R7      # \        WEWR7      p	V	e   \        WYR7      # \        VRV/R7      # )NÚ
r7   r6   Ú Úraw)	r8   r?   r   r&   r-   r+   r0   Ú	partitionrC   )
r3   r   ÚstrippedÚ
first_lineÚrestr   r*   r)   Ú_Úkv_argumentss
   &&        r   Ú_parse_plain_text_tool_callrO   ¢   s1  € Ø�z‰z‹|€HßÙð ˆxÔØ#Ÿ>™>¨$°Ó2Ñˆ
Ø×ÑÓ!ˆØ�z‰z‹|ˆß—DÜ/°Ó<ˆKÜ$ TÓ*ˆIÜ˜)¤T×*Ò*ÜØÜ2Ø¨ôôð ð ×&Ñ& sÓ+�M€DˆTßÙØ�:‰:‹<€DßÜ˜¨Ô,Ð,ä'¨Ó4€KÜ˜TÓ"€IÜ�)œT×"Ò"ÜØÜ*Ø ôô
ð 	
ô *¨$°eÔU€LØÒÜ˜Ô6Ð6ä�T e¨T ]Ô3Ð3r   c                óT   € V ^8„  d   QhR\         R\        \        ,          R,          /# r2   r4   )r   s   "r   r   r   Ð   s#   € ÷ 3ñ 3œ#ð 3¤d¬3¥i°$Õ&6ñ 3r   c                óì  € \         P                  V 4      pV'       g@   \        W4      pVe   V# \        W4      pVe   V# \	        RRV P                  4       /R7      # VP                  ^4      p\        WA4      p/ p\        P                  V 4       FV  pVP                  ^4      P                  4       pVP                  ^4      P                  4       pWu9  d   \        V4      pW†V&   KX  	  \	        WFR7      # )z@Parse a GLM 4.7 tool call string into a name and arguments dict.ÚunknownrH   r6   )Ú_func_name_regexÚsearchr:   rO   r+   r8   Úgroupr   Ú_func_arg_regexÚfinditerr&   )	r3   r   ÚmatchÚfallbackr(   r*   Úarg_dctÚarg_keyÚarg_vals	   &&       r   Úparse_tool_callr]   Ð   sÙ   € ä×#Ñ# DÓ)€Eßä(¨Ó5ˆØÒØˆOÜ.¨tÓ;ˆØÒØˆOÜ˜¨u°d·j±j³lÐ.CÔDÐDà—‘˜A“€IÜ'¨	Ó9€KØ€GÜ ×)Ñ)¨$Ö/ˆØ—+‘+˜a“.×&Ñ&Ó(ˆØ—+‘+˜a“.×&Ñ&Ó(ˆØÔ%Ü" 7Ó+ˆGØ"�Óñ 0ô �YÔ2Ð2r   r    )Ú__doc__r$   r!   r>   Útypingr   ÚregexÚreÚcompileÚDOTALLrS   rV   Útool_call_startÚtool_call_endr   r&   r0   r:   rC   rO   r]   © r   r   Ú<module>rg      s€   ðñó
 Û Û Ý ã à—:’:Ð0°"·)±)Ó<Ð Ø—*’*ØFØ‡I�Ió€ð
  €Ø€õõ"
÷õ,-÷bõF+4÷\3ñ 3r   