§
    ]ÚÄj,‰  ã                  óø   — d dl mZ d dlZd dlZd dlZ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mZ d dlmZ d dlmZmZ d dlmZ d	d
lmZmZmZmZ d	dlmZmZmZ d	dlmZ d	dl m!Z!m"Z"m#Z#  G d„ d¦  «        Z$dS )é    )ÚannotationsN)ÚOrderedDict)Úuuid4)ÚdatetimeÚtimezone)ÚPath)Únormalize_activityÚ	utf8_tail)Údevice_final_texté   )ÚINVALIDÚ
CodexQuotaÚ	normalizeÚnormalize_notification)ÚAgentSessionÚControlErrorÚProject)ÚJsonUnixSocket)Ú	idle_onlyÚsettings_viewÚvalidate_settingsc                  óþ   — e Zd ZdZdZdZdZdZd,d„Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd-d„Zd.d„Zd„ Zd„ Zd/d„Zd „ Zd!„ Zd"„ Z d#„ Z!d$„ Z"d0d%„Z#d&„ Z$d'„ Z%d(„ d)œd*„Z&d+„ Z'dS )1ÚCodexAdapterÚcodexé€   é   é   é   Nc           	     ó  — || _         d | _        d | _        t          ¦   «         | _        || _        || _        t          ¦   «         j        | _	        t          ¦   «         | _
        i | _        t          ¦   «         | _        i | _        i | _        t          ¦   «         | _        t#          j        ¦   «         | _        i | _        d| _        t#          j        ¦   «         | _        t#          j        ¦   «         | _        t0          | _        d | _        t#          j        ¦   «         | _        d | _        d | _        t=          t>          j          !                    dd¦  «        ¦  «        | _"        tG          t>          j          !                    dtI          tG          j%        ¦   «         dz  ¦  «        ¦  «        ¦  «        }t>          j          !                    dtI          |dz  ¦  «        ¦  «        }|ptM          || j'        | j(        ¬¦  «        | _)        d S )	Nr   Ú#GATEWAY_CODEX_QUOTA_REFRESH_SECONDSÚ60Ú
CODEX_HOMEz.codexÚGATEWAY_CODEX_SOCKETz*app-server-control/app-server-control.sock)Úon_eventÚon_disconnect)*ÚprojectsÚon_activityÚon_terminalÚsetÚobservedÚ	approvalsÚuser_inputsr   ÚhexÚinstanceÚapproval_tasksÚrequest_tasksÚapproval_ownersÚfile_changesÚliver   Úlast_repliesÚasyncioÚLockÚhistory_lockÚcreating_threadsÚready_generationÚinitialize_lockÚ
input_lockr   ÚquotaÚquota_refresh_taskÚquota_refresh_lockÚquota_updated_atÚquota_periodic_taskÚfloatÚosÚenvironÚgetÚquota_periodic_secondsr   ÚstrÚhomer   ÚeventÚdisconnectedÚrpc)Úselfr&   rJ   r+   r,   Ú
codex_homeÚsockets          úX/home/lighthouse/esp32-dev/.cache/stopwatch-0.7.0/server/device_gateway/control/codex.pyÚ__init__zCodexAdapter.__init__   s„  € Ø ˆŒØˆÔØˆÔÝ™œˆŒØ"ˆŒØ&ˆÔÝ™œœˆŒÝ!™eœeˆÔØˆÔÝ"™uœuˆÔØˆÔØ%'ˆŒ	å'™MœMˆÔÝ#œL™NœNˆÔØ ˆÔØ !ˆÔÝ&œ|™~œ~ˆÔÝ!œ,™.œ.ˆŒõ ")ˆŒ
Ø7;ˆÔÝ")¤,¡.¤.ˆÔð /3ˆÔð 9=ˆÔ Ý&+­B¬J¯NªNÐ;`ÐbfÑ,gÔ,gÑ&hÔ&hˆÔ#õ �"œ*Ÿ.š.¨µs½4¼9¹;¼;ÈÑ;QÑ7RÔ7RÑSÔSÑTÔTˆ
Ý”—’Ð 6½¸JÐIuÑ<uÑ8vÔ8vÑwÔwˆØÐf�.¨¸$¼*ÐTXÔTeÐfÑfÔfˆŒˆˆó    c                óö  — t           | _        d | _        |                      ¦   «          | j        r2| j                             ¦   «         s| j                             ¦   «          d | _        | j        r$| j        D ]}| j         	                    |¦  «         Œ| j
        r$| j        D ]}| j
         	                    |¦  «         Œ| j                             ¦   «          | j        D ]}|                     ¦   «          Œ| j                             ¦   «          | j                             ¦   «          | j                             ¦   «          | j                             ¦   «          | j                             ¦   «          d| _        d S )Nr   )r   r<   r?   Ú_stop_quota_periodicr=   ÚdoneÚcancelr+   r1   Úcancel_ownerr,   Úclearr/   r0   r2   r3   r4   r*   r9   )rK   ÚownerÚtasks      rN   rI   zCodexAdapter.disconnectedD   sr  € ÝˆŒ
Ø $ˆÔØ×!Ò!Ñ#Ô#Ð#ØÔ"ð 	-¨4Ô+B×+GÒ+GÑ+IÔ+Ið 	-ØÔ#×*Ò*Ñ,Ô,Ð,Ø"&ˆÔØŒ>ð 	3ØÔ-ð 3ð 3�Ø”×+Ò+¨EÑ2Ô2Ð2Ð2ØÔð 	TØÔ-ÐSÐS�¨tÔ/?×/LÒ/LÈUÑ/SÔ/SÐ/SÐ/SØÔ×"Ò"Ñ$Ô$Ð$ØÔ'ð 	ð 	ˆDØ�KŠK‰MŒMˆMˆMØÔ× Ò Ñ"Ô"Ð"ØÔ×ÒÑ!Ô!Ð!ØŒ	�ŠÑÔÐØÔ×ÒÑ!Ô!Ð!ØŒ×ÒÑÔÐØ !ˆÔÐÐrP   c              ƒ  óê  K  — | j         4 ƒd {V —† | j                             ¦   «         ƒ d {V —† | j        | j        j        k    rŠ| j                             ddddœddidœ¦  «        ƒ d {V —† | j                             dd	i¦  «        ƒ d {V —† | j        j        | _        |                      ¦   «         ƒ d {V —† |                      ¦   «          d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )
NÚ
initializeÚdevice_lab_gatewayz0.5.0)ÚnameÚversionÚexperimentalApiT)Ú
clientInfoÚcapabilitiesÚmethodÚinitialized)	r:   rJ   Ústartr9   Ú
generationÚcallÚwriteÚrefresh_quotaÚ_start_quota_periodic©rK   s    rN   ÚreadyzCodexAdapter.readyZ   sÓ  è è € ØÔ'ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-Ø”(—.’.Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ØÔ$¨¬Ô(;Ò;Ð;Ø”h—m’m LÐJ^ÐkrÐAsÐAsØ%6¸Ð$=ð3?ð 3?ñ @ô @ð @ð @ð @ð @ð @ð @ð @à”h—n’n h°Ð%>Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ø(,¬Ô(;�Ô%ð ×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø×*Ò*Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s   �B?C"Ã"
C,Ã/C,c              ƒ  ó|   K  — |                       ¦   «         ƒ d {V —† | j                             ||¦  «        ƒ d {V —†S ©N)rj   rJ   re   )rK   ra   Úparamss      rN   re   zCodexAdapter.callh   sN   è è € Ø�jŠj‰lŒlÐÐÐÐÐÐÐØ”X—]’] 6¨6Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2rP   c              ƒ  ó¸  K  — | j         4 ƒd{V —† 	 | j                             di ¦  «        ƒ d{V —†}nP# t          $ rC t	          j        d¦  «                             d¦  «         | j        cY cddd¦  «        ƒd{V —† S w xY wt          |¦  «        | _        t          j
        ¦   «         | _        | j        cddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   dS )zARead the account snapshot once, concurrently bounded to one call.Nzaccount/rateLimits/readú"uvicorn.error.device_gateway.codexz%Codex account rate limits unavailable)r>   rJ   re   Ú	ExceptionÚloggingÚ	getLoggerÚinfor<   r   ÚtimeÚ	monotonicr?   )rK   Úresults     rN   rg   zCodexAdapter.refresh_quotal   s·  è è € àÔ*ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð"Ø#œxŸ}š}Ð-FÈÑKÔKÐKÐKÐKÐKÐKÐK��øÝð "ð "ð "õ Ô!Ð"FÑGÔG×LÒLØ;ñ=ô =ð =à”zÐ!Ð!ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð"øøøõ # 6Ñ*Ô*ˆDŒJÝ$(¤NÑ$4Ô$4ˆDÔ!Ø”:ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s1   �C	’!4³C	´8BÁ,C	Â BÂ5C	Ã	
CÃCc                óð   — | j         dk    rdS | j        r| j                             ¦   «         sdS t          j        |                      ¦   «         ¦  «        | _        | j                             d„ ¦  «         dS )z5Start (once) the bounded periodic quota refresh task.r   Nc                ó   — d S rl   © ©Ú_s    rN   ú<lambda>z4CodexAdapter._start_quota_periodic.<locals>.<lambda>‚   s   € ¸T€ rP   )rE   r@   rS   r5   Úcreate_taskÚ_quota_periodic_loopÚadd_done_callbackri   s    rN   rh   z"CodexAdapter._start_quota_periodic{   sy   € àÔ&¨!Ò+Ð+ØˆFØÔ#ð 	¨DÔ,D×,IÒ,IÑ,KÔ,Kð 	ØˆFÝ#*Ô#6°t×7PÒ7PÑ7RÔ7RÑ#SÔ#SˆÔ ØÔ ×2Ò2°>°>ÑBÔBÐBÐBÐBrP   c                ó†   — | j         r2| j                              ¦   «         s| j                              ¦   «          d | _         d S rl   )r@   rS   rT   ri   s    rN   rR   z!CodexAdapter._stop_quota_periodic„   sF   € ØÔ#ð 	.¨DÔ,D×,IÒ,IÑ,KÔ,Kð 	.ØÔ$×+Ò+Ñ-Ô-Ð-Ø#'ˆÔ Ð Ð rP   c              ƒ  ó  K  — 	 	 t          j        | j        ¦  «        ƒ d{V —† |                      ¦   «         ƒ d{V —† Œ:# t           j        $ r ‚ t
          $ r+ t          j        d¦  «                             d¦  «         Y dS w xY w)zîRefresh the quota on a fixed cadence, independent of native events.

        A failure is swallowed by refresh_quota (the previous value is kept) and
        the loop simply retries next cycle, so agent control is never affected.
        TNro   z$Codex quota periodic refresh stopped)	r5   ÚsleeprE   rg   ÚCancelledErrorrp   rq   rr   Úwarningri   s    rN   r~   z!CodexAdapter._quota_periodic_loop‰   sÉ   è è € ð	8ð+Ý”m DÔ$?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð+øõ Ô%ð 	ð 	ð 	ØÝð 	8ð 	8ð 	8ÝÔÐBÑCÔC×KÒKØ6ñ8ô 8ð 8ð 8ð 8ð 8ð	8øøøs   „;? ¿A BÂBc                ó  — t          |¦  «        }|j        r|| _        | j        r| j                             ¦   «         sd S t          j        |                      ¦   «         ¦  «        | _        | j                             d„ ¦  «         d S )Nc                ó   — d S rl   ry   rz   s    rN   r|   z5CodexAdapter.schedule_quota_refresh.<locals>.<lambda>¢   s   € ¸D€ rP   )	r   Úvalidr<   r=   rS   r5   r}   Ú_bounded_quota_refreshr   )rK   Úpayloadr*   s      rN   Úschedule_quota_refreshz#CodexAdapter.schedule_quota_refresh™   s†   € õ *¨'Ñ2Ô2ˆØŒ>ð 	"Ø!ˆDŒJØÔ"ð 	¨4Ô+B×+GÒ+GÑ+IÔ+Ið 	ØˆFÝ")Ô"5°d×6QÒ6QÑ6SÔ6SÑ"TÔ"TˆÔØÔ×1Ò1°.°.ÑAÔAÐAÐAÐArP   c              ƒ  óÎ   K  — 	 |                       ¦   «         ƒ d {V —† d S # t          j        $ r ‚ t          $ r+ t	          j        d¦  «                             d¦  «         Y d S w xY w)Nro   zCodex quota refresh failed)rg   r5   rƒ   rp   rq   rr   r„   ri   s    rN   rˆ   z#CodexAdapter._bounded_quota_refresh¤   sž   è è € ð	.Ø×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&øÝÔ%ð 	ð 	ð 	ØÝð 	.ð 	.ð 	.ÝÔÐBÑCÔC×KÒKØ,ñ.ô .ð .ð .ð .ð .ð	.øøøs   „   A A$Á#A$c              ƒ  ó¬  ‡ ‡‡K  — |d         |                      di ¦  «        c}Š‰                      d¦  «        }d|v �rX|dv �r%|dk    }|r‰ j        n‰ j        €-‰ j                             |d         ddid	œ¦  «        ƒ d {V —† �n‰ j        j        t          |d         ¦  «        j        |d         f}|‰ j        v rd S t          j
         |r‰ j        n‰ j        |‰ j        j        ¦  «        ¦  «        }‰ j                             |¦  «         ||‰                      d
¦  «        f‰ j        |<   |                     ‰ j        j        ¦  «         |                     |fˆ fd„	¦  «         n,‰ j                             |d         dddœdœ¦  «        ƒ d {V —† d S |dk    r}‰ j        j        t          ‰                      d¦  «        ¦  «        j        ‰                      d¦  «        f}‰ j                              |¦  «        }|r|d                              ¦   «          |dk    r‰                      ‰¦  «         d S |sd S ‰ j                             |i ¦  «        }|dv r‰ j                             |d ¦  «         |dk    rd|                     i g dd‰                      di ¦  «                              d¦  «        dt1          j        t4          j        ¦  «        ddd ¬¦
  «
         �nÖ|dk    �r‰                      di ¦  «        }	|                      d¦  «        r!|d         |	                      d¦  «        k    rd S |                      d¦  «        r.|                      d¦  «        |	                      d¦  «        k    rd S |                      d¦  «        |	                      d¦  «        k    o|                      dd¦  «         }
d|d<   |	                      dg ¦  «        D ]}‰                      ||¦  «         Œ|                      d i ¦  «        Šˆfd!„|                      d"g ¦  «        D ¦   «         }d#„ |D ¦   «         }|pd$„ |D ¦   «         }|r|d%         d&         nd|d'<   t;          ‰ j                             ¦   «         ¦  «        D ]M\  }}}||k    rA|‰                      di ¦  «                              d¦  «        k    r|                     ¦   «          ŒN‰ j        r‰ j                             d(|¦  «         ‰ j        r‰ j                             d(|¦  «         ‰                      di ¦  «        }	|	                      d)¦  «        d*k    rd+nd,|d-<   |                      d.¦  «        rItA          t1          j        t4          j        ¦  «        |d.         z
   !                    ¦   «         ¦  «        |d/<   ‰ j"        rQ|
rO‰  "                    d(||d-         |d'         |                      d0|¦  «        |                      d1d¦  «        ¬2¦  «         �n¼|d3k    r#|                     ˆfd4„d5D ¦   «         ¦  «         �n“|d6k    rï‰                      d)i ¦  «                              d7¦  «        }|d8k    rd|d-<   �nW|d9v r³t;          ‰ j                             ¦   «         ¦  «        D ] \  }}}||k    r|                     ¦   «          Œ!‰ j        r‰ j                             d(|¦  «         ‰ j        r‰ j                             d(|¦  «         |d:k    r‰ j                             |d ¦  «         �n¥d,|d-<   �nž|d;k    �rvtG          ‰                      d<d¦  «        ¦  «        }‰                      d
¦  «        |                      d¦  «        k    rÝ|                      dd¦  «        sÇ‰                      d=d>¦  «        }|                     d i ¦  «        Š|‰vrutI          ‰¦  «        d?k    r1|d"                              d¦  «        }‰                     |d ¦  «         dd d@œ‰|<   |                     d"g ¦  «         %                    |¦  «         ‰|         d&         |z   d dA…         ‰|         d&<   tM          |                      dBd¦  «        |z   dC¦  «        |dB<   tM          |dB         dD¦  «        |d1<   d&|dE<   �n!|dFv �r‰                      dGi ¦  «        }|                      d7¦  «        }‰                      d
¦  «        |                      d¦  «        k    r,|                      dd¦  «        s‰                      ||¦  «         |dHk    ri||                      d¦  «        f}|dIk    r1dJ„ |                      dKg ¦  «        D ¦   «         d dL…         ‰ j'        |<   n‰ j'                             |d ¦  «         |dMvr&|› dN| (                    dO¦  «        rdPnd*› �|d1<   dQ|dE<   ‰ j)        r‰  )                    ||¦  «         d S d S )RNra   rm   ÚthreadIdÚid)z%item/commandExecution/requestApprovalúitem/fileChange/requestApprovalúitem/tool/requestUserInputr�   ÚdecisionrT   ©rŽ   rv   ÚturnIdc                ó:   •— ‰j                              |d ¦  «        S rl   )r0   Úpop)rS   ÚkeyrK   s     €rN   r|   z$CodexAdapter.event.<locals>.<lambda>¾   s   ø€ ÀÔAS×AWÒAWÐX[Ð]aÑAbÔAb€ rP   i§€ÿÿz,Gateway does not support this server request©ÚcodeÚmessage©rŽ   ÚerrorzserverRequest/resolvedÚ	requestIdr   zaccount/rateLimits/updated)úturn/startedúturn/completedr�   FÚ ÚturnÚRUNNING)
Úfinal_itemsÚfinal_orderÚterminal_sentÚ
final_textÚturn_idÚstateÚ
started_atÚlatest_activityÚrecent_textÚwaiting_reasonrž   r¦   r¤   TÚitemsr¢   c                ó(   •— g | ]}|‰v ¯‰|         ‘ŒS ry   ry   )Ú.0Úir¬   s     €rN   ú
<listcomp>z&CodexAdapter.event.<locals>.<listcomp>Þ   s#   ø€ ÐWÐWÐW qÈAÐQVÈJÈJ˜% œ(ÈJÈJÈJrP   r£   c                óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS ©ÚphaseÚfinal_answer©rD   ©r®   r¯   s     rN   r°   z&CodexAdapter.event.<locals>.<listcomp>ß   s,   € ÐPÐPÐP˜A¨q¯uªu°W©~¬~ÀÒ/OÐ/O�aÐ/OÐ/OÐ/OrP   c                óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )r³   Ú
commentaryrµ   r¶   s     rN   r°   z&CodexAdapter.event.<locals>.<listcomp>à   s,   € Ð"[Ð"[Ð"[¨¸A¿EºEÀ'¹N¼NÈlÒ<ZÐ<Z 1Ð<ZÐ<ZÐ<ZrP   éÿÿÿÿÚtextr¥   r   ÚstatusÚ	completedÚDONEÚFAILEDr§   r¨   Úelapsed_secondsr\   r©   )r\   r©   zthread/settings/updatedc                ód   •— i | ],}|‰                      d i ¦  «                              |¦  «        “Œ-S )ÚthreadSettingsrµ   ©r®   Úkrm   s     €rN   ú
<dictcomp>z&CodexAdapter.event.<locals>.<dictcomp>ð   s8   ø€ ÐbÐbÐbÈ˜!˜VŸZšZÐ(8¸"Ñ=Ô=×AÒAÀ!ÑDÔDÐbÐbÐbrP   ©ÚmodelÚeffortzthread/status/changedÚtypeÚactive)Ú	notLoadedÚsystemErrorrÊ   zitem/agentMessage/deltaÚdeltaÚitemIdr™   é@   ©rº   r³   é€>  rª   éà.  ià  Úactivity_type)úitem/startedzitem/completedÚitemÚ
fileChangerÓ   c                ó:   — g | ]}|                      d d¦  «        ‘ŒS )ÚpathrŸ   rµ   )r®   Úcs     rN   r°   z&CodexAdapter.event.<locals>.<listcomp>  s&   € Ð-aÐ-aÐ-aÀA¨a¯eªe°F¸BÑ.?Ô.?Ð-aÐ-aÐ-arP   Úchangesé(   )ÚagentMessageÚuserMessageÚ	reasoningz: z/startedÚstartedÚtool)*rD   r,   r+   rJ   rf   rd   rÈ   Ú__name__r0   r5   r}   Úrequest_user_inputÚrequest_approvalr/   Úaddr   ÚdiscardrT   rŠ   r3   Ú
setdefaultr4   r•   Úupdater   Únowr   ÚutcÚ
final_itemÚlistÚvaluesÚcancel_sessionÚintÚtotal_secondsr(   r	   ÚlenÚappendr
   r2   Úendswithr'   )rK   r™   ra   Ú
session_idÚis_inputr–   rX   Úentryr§   r    Úspeak_terminalrÔ   Ú
candidatesÚfinalsÚselectedÚsidr¦   r»   r{   ÚvalueÚiidÚoldÚkindr¬   rm   s   `                      @@rN   rH   zCodexAdapter.event­   sí
  øøøè è € Ø  Ô*¨G¯KªK¸À"Ñ,EÔ,Eˆˆ�Ø—Z’Z 
Ñ+Ô+ˆ
Ø�7ˆ?‰?Øð  Dð  Dñ  DØÐ!=Ò=�Ø(0ÐD�DÔ$Ð$°d´nÐMØœ(Ÿ.š.°¸´È*ÐV^ÐI_Ð)`Ð)`ÑaÔaÐaÐaÐaÐaÐaÐaÐaÑað  œ8Ô.µ°W¸T´]Ñ0CÔ0CÔ0LÈgÐVZÌmÐ\�CØ˜dÔ0Ð0Ð0Ø˜Ý"Ô.Ð0nÈ8Ð0n°Ô0GÐ0GÐY]ÔYnÐpwÐy}ô  zBô  zMñ  0Nô  0Nñ  Oô  O�DØÔ'×+Ò+¨DÑ1Ô1Ð1Ø/3°ZÀÇÂÈHÑAUÔAUÐ.V�DÔ& sÑ+Ø×*Ò*¨4Ô+>Ô+FÑGÔGÐGØ×*Ò*¸CÐ+bÐ+bÐ+bÐ+bÐ+bÑcÔcÐcÐcà”h—n’n¨G°D¬MÈVð  aOð  EPð  EPð  &Qð  &Qñ  Rô  Rð  Rð  Rð  Rð  Rð  Rð  Rð  RØˆFØÐ-Ò-Ð-Ø”8Ô&­¨V¯ZªZ¸Ñ-DÔ-DÑ(EÔ(EÔ(NÐPV×PZÒPZÐ[fÑPgÔPgÐhˆCØÔ&×*Ò*¨3Ñ/Ô/ˆEØð "Ø�a”—’Ñ!Ô!Ð!ØÐ1Ò1Ð1ð ×'Ò'¨Ñ/Ô/Ð/ØˆFØð 	ØˆFØ”	×$Ò$ Z°Ñ4Ô4ˆØÐ7Ð7Ð7ØÔ×!Ò! *¨dÑ3Ô3Ð3Ø�^Ò#Ð#Ø�LŠL R°RÀuÐY[Ðek×eoÒeoÐpvÐxzÑe{Ôe{×eÒeð  AEñ  fFô  fFð  NWõ  dlô  dpõ  qyô  q}ñ  d~ô  d~ð  PRð  `bð  swˆLñ  xô  xð  xñ  xØÐ'Ò'Ñ'Ø—:’:˜f bÑ)Ô)ˆDØ�yŠy˜Ñ#Ô#ð ¨¨iÔ(8¸D¿HºHÀT¹N¼NÒ(JÐ(JØ�Ø�yŠy˜Ñ)Ô)ð ¨e¯iªi¸	Ñ.BÔ.BÀdÇhÂhÈtÁnÄnÒ.TÐ.TØ�Ø"ŸYšY yÑ1Ô1°T·X²X¸d±^´^ÒCÐlÈEÏIÊIÐVeÐgkÑLlÔLlÐHlˆNØ%)ˆE�/Ñ"ØŸš ¨"Ñ-Ô-ð -ð -�Ø—’  tÑ,Ô,Ð,Ð,Ø—I’I˜m¨RÑ0Ô0ˆEØWÐWÐWÐW¨E¯IªI°mÀRÑ,HÔ,HÐWÑWÔWˆJØPÐP ÐPÑPÔPˆFØÐ[Ð"[Ð"[¨jÐ"[Ñ"[Ô"[ˆHØ:BÐ"J (¨2¤,¨vÔ"6Ð"6ÈˆE�,ÑÝ&*¨4Ô+=×+DÒ+DÑ+FÔ+FÑ&GÔ&Gð "ð "Ñ"��c˜7Ø˜*Ò$Ð$¨°F·J²J¸vÀrÑ4JÔ4J×4NÒ4NÈtÑ4TÔ4TÒ)TÐ)TØ—K’K‘M”M�MøØŒ~ð CØ”×-Ò-¨g°zÑBÔBÐBØÔÐT Ô!1×!@Ò!@ÀÈÑ!TÔ!TÐ!TØ—:’:˜f bÑ)Ô)ˆDØ'+§x¢x°Ñ'9Ô'9¸[Ò'HÐ'H˜V˜VÈhˆE�'‰NØ�yŠy˜Ñ&Ô&ð qÝ+.µ´½X¼\Ñ0JÔ0JÈ5ÐQ]ÔK^Ñ0^×/mÒ/mÑ/oÔ/oÑ+pÔ+p�Ð'Ñ(ØÔð w Nð wØ× Ò  ¨*°e¸G´nÀeÈLÔFYØ&+§i¢i°¸
Ñ&CÔ&CÐUZ×U^ÒU^Ð_pÐrtÑUuÔUuð !ñ wô wð wùàÐ0Ò0Ð0Ø�LŠLÐbÐbÐbÐbÐNaÐbÑbÔbÑcÔcÐcÑcØÐ.Ò.Ð.Ø—Z’Z ¨"Ñ-Ô-×1Ò1°&Ñ9Ô9ˆFØ˜Ò!Ð!Ø!*��g‘‘ØÐ7Ð7Ð7Ý$(¨Ô);×)BÒ)BÑ)DÔ)DÑ$EÔ$Eð &ð &‘L�D˜#˜qØ˜jÒ(Ð(ØŸš™œ˜øØ”>ð GØ”N×1Ò1°'¸:ÑFÔFÐFØÔ#ÐX TÔ%5×%DÒ%DÀWÈZÑ%XÔ%XÐ%XØ˜[Ò(Ð(Ø”I—M’M *¨dÑ3Ô3Ð3Ñ3à%-�E˜'‘NùØÐ0Ò0Ñ0Ý& v§z¢z°'¸2Ñ'>Ô'>Ñ?Ô?ˆEØ�zŠz˜(Ñ#Ô# u§y¢y°Ñ';Ô';Ò;Ð;ÀEÇIÂIÈoÐ_cÑDdÔDdÐ;Ø—j’j ¨9Ñ5Ô5�Ø×(Ò(¨¸Ñ;Ô;�Ø˜eÐ#Ð#Ý˜5‘z”z RÒ'Ð'Ø# MÔ2×6Ò6°qÑ9Ô9˜¸5¿9º9ÀSÈ$Ñ;OÔ;OÐ;OØ*,°tÐ!<Ð!<�E˜#‘J¸e×>NÒ>NÈ}Ð^`Ñ>aÔ>a×>hÒ>hÐilÑ>mÔ>mÐ>mØ&+¨C¤j°Ô&8¸5Ñ&@À&À5À&Ô%I��c”
˜6Ñ"Ý#,¨U¯YªY°}ÀbÑ-IÔ-IÈEÑ-QÐSXÑ#YÔ#YˆE�-Ñ Ý'0°°}Ô1EÀsÑ'KÔ'KˆEÐ#Ñ$Ø%+ˆE�/Ñ"Ñ"ØÐ9Ð9Ñ9Ø—:’:˜f bÑ)Ô)ˆDØ—8’8˜FÑ#Ô#ˆDØ�zŠz˜(Ñ#Ô# u§y¢y°Ñ';Ô';Ò;Ð;ÀEÇIÂIÈoÐ_cÑDdÔDdÐ;Ø—’  tÑ,Ô,Ð,Ø�|Ò#Ð#Ø! 4§8¢8¨D¡>¤>Ð2�Ø˜^Ò+Ð+Ø-aÐ-aÈÏÊÐR[Ð]_ÑI`ÔI`Ð-aÑ-aÔ-aÐbeÐceÐbeÔ-f�DÔ% cÑ*Ð*àÔ%×)Ò)¨#¨tÑ4Ô4Ð4ØÐGÐGÐGØ.2Ð+qÐ+qÀ6Ç?Â?ÐS]ÑC^ÔC^Ð6o°i°iÐdoÐ+qÐ+q�Ð'Ñ(Ø)/��oÑ&ØÔð 	1Ø×Ò˜Z¨Ñ0Ô0Ð0Ð0Ð0ð	1ð 	1rP   c                óä  — |                      d¦  «        dk    rd S |                      dd¦  «        }|                      di ¦  «        }||vrmt          |¦  «        dk    r1| d                              d¦  «        }|                     |d ¦  «         |                      dg ¦  «                             |¦  «         |                      d	d
¦  «        d d…         |                      d¦  «        dœ||<   d S )NrÈ   rÛ   rŽ   r™   r¢   rÎ   r£   r   rº   rŸ   rÐ   r³   rÏ   )rD   rå   rï   r•   rð   )r§   rÔ   rû   r¬   rü   s        rN   ré   zCodexAdapter.final_item  sé   € à�8Š8�FÑÔ˜~Ò-Ð-ØˆFØ�hŠh�t˜YÑ'Ô'ˆØ× Ò  °Ñ3Ô3ˆØ�eÐÐÝ�5‰zŒz˜RÒÐØ˜MÔ*×.Ò.¨qÑ1Ô1�°5·9²9¸SÀ$Ñ3GÔ3GÐ3GØ×Ò˜]¨BÑ/Ô/×6Ò6°sÑ;Ô;Ð;Ø"Ÿhšh v¨rÑ2Ô2°6°E°6Ô:ÀTÇXÂXÈgÑEVÔEVÐWÐWˆˆc‰
ˆ
ˆ
rP   c              ƒ  ót  ‡K  — |                      di ¦  «        Šd }d| j        › d|› �}| j                             |¦  «         	 t	          ˆfd„dD ¦   «         ¦  «        st          d¦  «        ‚|                      ‰d         ¦  «        ƒ d {V —†}| j        j        |k    s	|| j        vr&	 |r!| j	         
                    |j        ¦  «         d S d S |d         d	k    }‰                      d
¦  «        }|�|ng d¢}d„ |D ¦   «         }|st          d¦  «        ‚|rI| j                              |j        ‰d         fg ¦  «        }	d                     |	¦  «        p
d‰d         z   }
n ‰                      d¦  «        p
d‰d         z   }
‰                      d¦  «        r|
d‰d         z   z  }
| j	                             d|j        |j        |rdnd|rdnd|
|t#          j        |d         ‰d         ‰d         ‰d         ‰                      d¦  «        g¦  «        |¬¦	  «	        }| j	                             |¦  «        ƒ d {V —†}|dv r3| j                             |d         d|j        pdidœ|¦  «        ƒ d {V —† n}# t,          j        $ r Y nlt0          $ r` t3          j        t0          ¦  «        5  | j                             |d         ddidœ|¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   Y nw xY w|r!| j	         
                    |j        ¦  «         d S d S # |r | j	         
                    |j        ¦  «         w w xY w) Nrm   úcodex:ú:c              3  óx   •K  — | ]4}t          ‰                     |¦  «        t          ¦  «        o‰|         V — Œ5d S rl   )Ú
isinstancerD   rF   rÂ   s     €rN   ú	<genexpr>z0CodexAdapter.request_approval.<locals>.<genexpr>1  s@   øè è € ÐnÐnÈ•z &§*¢*¨Q¡-¤-µÑ5Ô5ÐC¸&À¼)ÐnÐnÐnÐnÐnÐnrP   )r�   r“   rÍ   zmalformed approval identityr�   ra   r�   ÚavailableDecisions©ÚacceptÚacceptForSessionÚdeclinerT   c                óD   — g | ]}t          |t          ¦  «        ¯|d v ¯|‘ŒS )r  )r  rF   )r®   Úds     rN   r°   z1CodexAdapter.request_approval.<locals>.<listcomp>;  s2   € ÐwÐwÐw˜1­:°a½Ñ+<Ô+<ÐwÀÐFvÐAvÐAv�QÐAvÐAvÐAvrP   zUnsupported native decisionsrÍ   ú
zFile changes: Úcommandz	Command: Úreasonr   Úfile_changezEdit files?zRun command?rŽ   r“   Ú
approvalId)	Úagentrò   Ú
project_idrý   ÚtitleÚdetailrW   Úrequest_identityÚchoices)ÚAPPROVEDÚREJECTEDÚ	CANCELLEDr‘   rT   r’   )rD   r.   r1   rã   Úallr   Úget_sessionrJ   rd   r+   rT   Úapproval_idr2   rò   ÚjoinÚcreater  ÚjsonÚdumpsÚwaitÚreplyr‘   r5   rƒ   rp   Ú
contextlibÚsuppress)rK   r™   rd   ÚapprovalrW   Úsessionr  Ú	availabler  Úpathsr  r§   rm   s               @rN   râ   zCodexAdapter.request_approval*  s{  øè è € Ø—’˜X rÑ*Ô*ˆØˆØ5˜œÐ5Ð5¨Ð5Ð5ˆØÔ× Ò  Ñ'Ô'Ð'ð'	<åÐnÐnÐnÐnÐMmÐnÑnÔnÑnÔnð BÝ"Ð#@ÑAÔAÐAØ ×,Ò,¨V°JÔ-?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@ˆGØŒxÔ" jÒ0Ð0°EÀÔAUÐ4UÐ4UØð@ ð <Ø”×%Ò% hÔ&:Ñ;Ô;Ð;Ð;Ð;ð<ð <ð? " (Ô+Ð/PÒPˆKØŸ
š
Ð#7Ñ8Ô8ˆIð "+Ð!6�I�IÐ<lÐ<lÐ<lˆGØwÐw ÐwÑwÔwˆGØÐN¥,Ð/MÑ"NÔ"NÐNØð Qð Ô)×-Ò-¨wÔ/AÀ6È(ÔCSÐ.TÐVXÑYÔY�ØŸš 5Ñ)Ô)ÐPÐ-=ÀÀxÔ@PÑ-P��àŸš IÑ.Ô.ÐP°+ÀÀxÔ@PÑ2P�Ø�zŠz˜(Ñ#Ô#ð 2Ø˜$ ¨Ô!1Ñ1Ñ1�Ø”~×,Ò,°7ÀwÔGYØ"Ô-À[Ð4_°M°MÐV_Ø'2ÐF�m�m¸ÈvÐ]bÝ!%¤¨W°T¬]¸FÀ:Ô<NÐPVÐW_ÔP`Ø˜8Ô$ f§j¢j°Ñ&>Ô&>ð-@ñ "Aô "AØJQð	 -ñ Sô SˆHð
 œ.×-Ò-¨hÑ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7ˆEØÐ=Ð=Ð=Ø”h—n’n¨G°D¬MØ Ô 1Ð =°XðF?ð &@ð &@ØAKñMô Mð Mð Mð Mð Mð Mð Mð MøøåÔ%ð 	ð 	ð 	ØˆDÝð 	jð 	jð 	jÝÔ$¥YÑ/Ô/ð jð jØ”h—n’n¨G°D¬MÀjÐRZÐE[Ð%\Ð%\Ð^hÑiÔiÐiÐiÐiÐiÐiÐiÐiðjð jð jñ jô jð jð jð jð jð jð jøøøð jð jð jð jøøð	jøøøð ð <Ø”×%Ò% hÔ&:Ñ;Ô;Ð;Ð;Ð;ð<ð <øˆxð <Ø”×%Ò% hÔ&:Ñ;Ô;Ð;Ð;ð<øøøsb   ÁA$I1 ÃF"I1 É0L É1K+Ê L Ê"K+Ê$-KËK+ËK!	Ë!K+Ë$K!	Ë%K+Ë(L Ë*K+Ë+L Ì$L7c              ƒ  óÐ  K  — d }d| j         › d|› �}| j                             |¦  «         	 |d         }|                      |d         ¦  «        ƒ d {V —†}| j        j        |k    r!	 |r| j                             |¦  «         d S d S | j                             d|j	        |j
        t          j        |d         |d         |d         g¦  «        |d	         |¦  «        }| j                             |¦  «        ƒ d {V —†}| j                             |d         |d
œ|¦  «        ƒ d {V —† n~# t          j        $ r Y nmt"          $ ra t%          j        t"          ¦  «        5  | j                             |d         dddœdœ|¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   Y nw xY w|r| j                             |¦  «         d S d S # |r| j                             |¦  «         w w xY w)Nr   r  rm   r�   r   rŽ   r“   rÍ   Ú	questionsr’   i¦€ÿÿzUnsupported native user inputr—   rš   )r.   r1   rã   r  rJ   rd   r,   rT   r  rò   r  r  r   r!  r"  r5   rƒ   rp   r#  r$  )rK   r™   rd   rô   rW   rm   r&  rv   s           rN   rá   zCodexAdapter.request_user_inputX  s¸  è è € ØˆÐ> $¤-Ð>Ð>°*Ð>Ð>�5¸tÔ?S×?WÒ?WÐX]Ñ?^Ô?^Ð?^ð	4Ø˜8Ô$ˆF°4×3CÒ3CÀFÈ:ÔDVÑ3WÔ3WÐ-WÐ-WÐ-WÐ-WÐ-WÐ-W WØŒxÔ" JÒ.Ð.¨vð Ð3�TÔ%×,Ò,¨UÑ3Ô3Ð3Ð3Ð3Ð3Ð3ð Ô"×)Ò)¨'°'Ô2DÀWÔEWÝ”
˜G DœM¨&°Ô*:¸6À(Ô;KÐLÑMÔMÈfÐU`ÔNaÐbgñiô iˆEàÔ)×.Ò.¨uÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5ˆFØ”(—.’. w¨t¤}¸fÐ!EÐ!EÀjÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQøÝÔ%Ð+Ð+Ð+ t tÝð 	Hð 	Hð 	HÝÔ$¥YÑ/Ô/ð Hð HØ”h—n’n¨7°4¬=ÈÐZyÐAzÐAzÐ%{Ð%{ð  }Gñ  Hô  Hð  Hð  Hð  Hð  Hð  Hð  Hð  HðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Høøð	Høøøð Ð3�TÔ%×,Ò,¨UÑ3Ô3Ð3Ð3Ð3Ð3Ð3øˆuÐ3�TÔ%×,Ò,¨UÑ3Ô3Ð3Ð3Ð3øøøs`   ­9D( ÂB D( Ä'G Ä(F#Ä7G Ä9"F#Å.FÆ	F#ÆF	ÆF#ÆF	ÆF#Æ G Æ"F#Æ#G ÇG%c           
   ƒ  óÌ  K  — |                       |¦  «        ƒ d {V —† |                      d|ddœ¦  «        ƒ d {V —†}|d         d         |k    rt          d¦  «        ‚| j                             |¦  «         |                     d¦  «        }t          ||                     d¦  «        |                     d	¦  «        |                     d
¦  «        |r
dddœdddœgng ¬¦  «        S )Núthread/resumeT©r�   ÚexcludeTurnsÚthreadrŽ   zThread identity changedÚapprovalsReviewerÚapprovalPolicyÚsandboxÚactivePermissionProfileÚuserzAsk for approval)rŽ   r\   Úauto_reviewzApprove for me)Úcurrentr1  ÚsandboxPolicyr3  Úavailable_modes)r  re   r   r*   rã   rD   Údict)rK   rò   rv   Úreviewers       rN   ÚpermissionszCodexAdapter.permissionsh  s  è è € à×Ò˜zÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø—Y’Y˜¸:ÐUYÐ/ZÐ/ZÑ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[ˆØ�(Ô˜DÔ! :Ò-Ð-µLÐAZÑ4[Ô4[Ð.[ØŒ×Ò˜*Ñ%Ô%Ð%Ø—’Ð/Ñ0Ô0ˆÝ˜H°F·J²JÐ?OÑ4PÔ4PÐ_e×_iÒ_iÐjsÑ_tÔ_tØ$*§J¢JÐ/HÑ$IÔ$IØv~ð  G 6Ð1CÐDÐDÈ=Ð`pÐEqÐEqÐrÐrð  EGðHñ Hô Hð 	HrP   c              ƒ  ó‚  K  — | j         4 ƒd {V —† |                      ¦   «         ƒ d {V —†}t          |t          ddd d |¦  «        ¦  «        \  }}|j        |dœ}|j        �#|j        dvrt          dd¦  «        ‚|j        |d<   |                      d|¦  «        ƒ d {V —†}	|	d	         d
         }
 ||
¦  «         |	d	         t          j	        ¦   «         f| j
        |
<   t          | j
        ¦  «        dk    rQ| j
                             t          t          | j
        ¦  «        ¦  «        ¦  «         t          | j
        ¦  «        dk    °Q|	d	         d         |j        k    rt          d¦  «        ‚| j                             |
¦  «         |�|                      d|
|dœ¦  «        ƒ d {V —† |                      d|
d|dœgdœ¦  «        ƒ d {V —†}| j                             |
i ¦  «                             d|d         d
         ¬¦  «         t)          dd|
|j        ¬¦  «        cd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   d S )Nr   rŸ   )ÚcwdrÆ   ©r4  r5  úUnsupported native revieweré�  r0  zthread/startr/  rŽ   rÎ   r=  zNative cwd mismatchúthread/settings/update)r�   rÇ   ú
turn/startrº   ©rÈ   rº   ©r�   Úinputr¡   r    )r§   r¦   T)Úacceptedr  rò   r  )r;   Úlist_modelsr   r   r×   r;  r   re   rt   ru   r8   rï   r•   ÚnextÚiterr*   rã   r3   rå   ræ   r9  rŽ   )rK   Úprojectrº   ÚsettingsÚ
on_createdÚmodelsrÆ   rÇ   rm   rv   rù   r    s               rN   Úcreate_sessionzCodexAdapter.create_sessions  s)  è è € Ø”?ð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	ZØ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆFÝ*¨8µMÀ'È"ÈTÐRVÐW]Ñ4^Ô4^Ñ_Ô_‰LˆE�&Ø!œ,¨uÐ5Ð5ˆFØÔ#Ð/ØÔ'Ð/EÐEÐEÍLÐYvÐwzÑL{ÔL{ÐF{Ø,4Ô,@�Ð*Ñ+ØŸš >°&Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9ˆFØ�xÔ  Ô&ˆC z z°#¡¤ Ø(.¨xÔ(8½¼Ñ9IÔ9IÐ'JˆDÔ! #Ñ&Ý�dÔ+Ñ,Ô,¨RÒ/Ð/°Ô0E×0IÒ0IÍ$ÍtÐTXÔTiÑOjÔOjÑJkÔJkÑ0lÔ0lÐ0l•#�dÔ+Ñ,Ô,¨RÒ/Ð/Ø�hÔ Ô&¨¬Ò4Ð4½<ÐH]Ñ;^Ô;^Ð5^ØŒM×Ò˜cÑ"Ô"Ð"ØÐ!¨¯ªÐ3KÐX[ÐekÐLlÐLlÑ)mÔ)mÐ#mÐ#mÐ#mÐ#mÐ#mÐ#mÐ#mØ—y’y ¸#ÈvÐ]aÐGbÐGbÐFcÐ.dÐ.dÑeÔeÐeÐeÐeÐeÐeÐeˆDØŒI× Ò   RÑ(Ô(×/Ò/°iÈÈVÌÐUYÔHZÐ/Ñ[Ô[Ð[Ý ¨G¸sÈgÌjÐYÑYÔYð!	Zð 	Zð 	Zð 	Zñ 	Zô 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zøøøð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zs   �HH.È.
H8È;H8rŸ   c                óf  — |d         }|                      di ¦  «                              dd¦  «        }| j                              |i ¦  «        }|dk    }|dk    rdn|dk    rdn|rd	nd
}|                      d¦  «        dv }	|s|	r|                      d|¦  «        nd
}
|dk    r|
dvrd}
|                      d¦  «        dv r|                      dd¦  «        nd}|
dv r|s|}t          d(i dd“d|“d|j        “d|                      d¦  «        p|                      dd¦  «        d d…         p|“d|d         “dt	          j        |d         t          j        ¦  «                             ¦   «         “d|                      d¦  «        p|                      d¦  «        “d|                      d¦  «        p|                      d¦  «        “d|“d |                      d!¦  «        r_|                      d¦  «        dk    rFt          t	          j
        t          j        ¦  «        |d!         z
                       ¦   «         ¦  «        n|                      d d"¦  «        “d|
“d#|                      d#d¦  «        “d$t          |                      d$d¦  «        d%¦  «        “d|“d&|                      d&¦  «        “d'|                      d'¦  «        “Ž}|| j        v r|j        | j        |         d<   | j        r| j                             |¦  «        }| j        r| j                             |¦  «        }|j        dv rd|_        |S ))NrŽ   r»   rÈ   rÊ   rÉ   r¡   rË   r¾   ÚIDLEÚDORMANTr§   ©r¡   ÚWAITING_APPROVALÚWAITING_INPUT)rS  rT  )r½   r¾   r¥   rŸ   ©rQ  rP  r  r   rò   r  r\   Úpreviewé    r=  Ú
updated_atÚ	updatedAtrÆ   rÇ   ÚreasoningEffortr3   r¿   r¨   r   r©   rª   rÑ   rÒ   r«   ry   )rD   r3   r   rŽ   r   Úfromtimestampr   rè   Ú	isoformatrí   rç   rî   r
   r\   r,   Úoverlayr+   r§   r¥   )rK   r/  rJ  Ú	recoveredrù   r»   r]  r3   r§   Úactive_overlayÚeffective_stateÚfinalr&  s                rN   ÚconvertzCodexAdapter.convert†  s
  € Ø�TŒlˆØ—’˜H bÑ)Ô)×-Ò-¨f°kÑBÔBˆØ”)—-’-  RÑ(Ô(ˆØ˜Ò$ˆØ# xÒ/Ð/�	�	ÀÈ=ÒAXÐAX°X°XÐhlÐ^{Ð^dÐ^dÐr{ˆà Ÿš WÑ-Ô-Ð1aÐaˆØ9=Ð^ÀÐ^˜'Ÿ+š+ g¨uÑ5Ô5Ð5ÐU^ˆØ�XÒÐ /Ð9^Ð"^Ð"^Ø'ˆOØ18·²¸WÑ1EÔ1EÐI[Ð1[Ð1[�—’˜L¨"Ñ-Ô-Ð-ÐacˆØÐ1Ð1Ð1¸%Ð1ØˆEÝð fð fð f W Wð f¸¸ð fÈÌÈð fØ—’˜FÑ#Ô#ÐM v§z¢z°)¸RÑ'@Ô'@ÀÀ#ÀÔ'FÐMÈ#øðfØSYÐZ_ÔS`ÐS`ðfåÔ-¨f°[Ô.AÅ8Ä<ÑPÔP×ZÒZÑ\Ô\Ð\ðfð —*’*˜WÑ%Ô%Ð=¨¯ª°WÑ)=Ô)=øðfð GMÇjÂjÐQbÑFcÔFcÐF|Ðgn×grÒgrÐs{Ñg|Ôg|øðfð DHð  DHðfð ho×grÒgrÐsñ  hAô  hAð  Kð  FM÷  FQò  FQð  RYñ  FZô  FZð  \eò  Feð  Fe�C¥¤­h¬lÑ!;Ô!;¸GÀLÔ<QÑ!Q× `Ò `Ñ bÔ bÑcÔcÐcð  kr÷  kvò  kvð  wHð  IJñ  kKô  kKøð	fð
 "�/ðfð $ŸKšKÐ(9¸2Ñ>Ô>Ð>ðfõ MVÐV]×VaÒVaÐboÐqsÑVtÔVtÐv{ÑL|ÔL|ÐL|ðfð �uðfð "Ÿ+š+ oÑ6Ô6Ð6ðfð HOÇ{Â{ÐScÑGdÔGdÐGdðfˆð �$”)ÐÐ°g´l˜TœY sœ^¨FÑ3ØÔÐE DÔ$4×$<Ò$<¸WÑ$EÔ$E˜GØŒ>ÐA $¤.×"8Ò"8¸Ñ"AÔ"A˜'ØŒ=ÐLÐLÐLØ!#ˆGÔØˆrP   rÎ   c              ƒ  ó”  K  — ddl m} g }d}t          | j        ¦  «        D �]}|                      dt          || j        |dd¬¦  «        ¦  «        ƒ d{V —†}t          |t
          ¦  «        r(t          |                     d¦  «        t          ¦  «        st          d	¦  «        ‚|d         d| j        …         D ]-}|                     t           ||¦  «        ¦  «        ¦  «         Œ.|                     d
¦  «        }	|	rt          |¦  «        |k    r n.t          |	t          ¦  «        r|	|k    rt          d¦  «        ‚|	}�Œ|d|…         S )ag  Newest-first user/assistant messages, read-only.

        Uses the same thread/turns/list native API as the Last Reply reader and
        never resumes a dormant thread. Reasoning, commentary, tool and command
        items are dropped by normalize_codex_turn. The scan is bounded so an
        arbitrarily long thread cannot be hydrated into memory.
        r   )Únormalize_codex_turnNúthread/turns/listÚdescÚfull©r�   ÚlimitÚcursorÚsortDirectionÚ	itemsViewÚdataúunsupported history responseÚ
nextCursorúunsupported history cursor)Úhistoryrd  ÚrangeÚLAST_REPLY_MAX_PAGESre   r9  ÚLAST_REPLY_PAGE_SIZEr  rD   rê   Ú
ValueErrorÚextendÚreversedrï   rF   )
rK   rò   Úmax_messagesrd  Ú	collectedrj  r{   Úpager    Únext_cursors
             rN   Úread_historyzCodexAdapter.read_history¤  sœ  è è € ð 	2Ð1Ð1Ð1Ð1Ð1Øˆ	ØˆÝ�tÔ0Ñ1Ô1ð 	!ñ 	!ˆAØŸšÐ#6½ÀjØÔ/¸ÈfÐ`fð9hñ 9hô 9hñ iô ið ið ið ið ið ið iˆDå˜d¥DÑ)Ô)ð Aµ¸D¿HºHÀVÑ<LÔ<LÍdÑ1SÔ1Sð AÝ Ð!?Ñ@Ô@Ð@Ø˜VœÐ%? dÔ&?Ð%?Ô@ð Gð G�ð × Ò ¥Ð*>Ð*>¸tÑ*DÔ*DÑ!EÔ!EÑFÔFÐFÐFØŸ(š( <Ñ0Ô0ˆKØð ¥# i¡.¤.°LÒ"@Ð"@Ø�Ý˜k­3Ñ/Ô/ð ?°;À&Ò3HÐ3HÝ Ð!=Ñ>Ô>Ð>Ø ˆF‰FØ˜˜,˜Ô'Ð'rP   c              ƒ  ó˜  K  — d }t          | j        ¦  «        D �]¯}|                      dt          || j        |dd¬¦  «        ¦  «        ƒ d {V —†}t          |t          ¦  «        r(t          |                     d¦  «        t          ¦  «        st          d¦  «        ‚|d         d | j        …         D ]Ò}t          |t          ¦  «        r(t          |                     d¦  «        t          ¦  «        st          d¦  «        ‚|                     d	¦  «        d
k    rŒh|                     dd¦  «        dk    rt          d¦  «        ‚d„ |d         D ¦   «         }d„ |D ¦   «         }|r!t          |p|d         d         ¦  «        c c S ŒÓ|                     d¦  «        }|s n.t          |t          ¦  «        r||k    rt          d¦  «        ‚|}�Œ±dS )Nre  rf  rg  rh  rm  rn  r¬   zunsupported turn responser»   r¼   rl  zincomplete turn itemsc                ó$  — g | ]�}t          |t          ¦  «        rv|                     d ¦  «        dk    ¯0|                     d¦  «        dk    ¯It          |                     d¦  «        t          ¦  «        ¯q|d                              ¦   «         ¯‹|‘ŒŽS )rÈ   rÛ   r³   r¸   rº   )r  r9  rD   rF   Ústrip©r®   rÔ   s     rN   r°   z0CodexAdapter.read_last_reply.<locals>.<listcomp>Ð  sž   € ð Tð Tð T T½jÈÍtÑ>TÔ>Tð TØŸš Ñ(Ô(¨NÒ:Ð:¸t¿xºxÈÑ?PÔ?PÐT`Ò?`Ð?`Ý" 4§8¢8¨FÑ#3Ô#3µSÑ9Ô9ð @aØ>BÀ6¼l×>PÒ>PÑ>RÔ>Rð @að !Ø?`Ð?`Ð?`rP   c                óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS r²   rµ   r€  s     rN   r°   z0CodexAdapter.read_last_reply.<locals>.<listcomp>Ó  s.   € Ð[Ð[Ð[ 4°t·x²xÀÑ7HÔ7HÈNÒ7ZÐ7Z˜$Ð7ZÐ7ZÐ7ZrP   r¹   rº   ro  rp  rŸ   )rr  rs  re   r9  rt  r  rD   rê   ru  r   rF   )	rK   rò   rj  r{   rz  r    Úmessagesr÷   r{  s	            rN   Úread_last_replyzCodexAdapter.read_last_replyÀ  s5  è è € ð ˆÝ�tÔ0Ñ1Ô1ð 	!ñ 	!ˆAØŸšÐ#6½ÀjØÔ/¸ÈfÐ`fð9hñ 9hô 9hñ iô ið ið ið ið ið ið iˆDå˜d¥DÑ)Ô)ð Aµ¸D¿HºHÀVÑ<LÔ<LÍdÑ1SÔ1Sð AÝ Ð!?Ñ@Ô@Ð@Ø˜VœÐ%? dÔ&?Ð%?Ô@ð Oð O�Ý! $­Ñ-Ô-ð BµZÀÇÂÈÑ@QÔ@QÕSWÑ5XÔ5Xð BÝ$Ð%@ÑAÔAÐAØ—8’8˜HÑ%Ô%¨Ò4Ð4ØØ—8’8˜K¨Ñ0Ô0°FÒ:Ð:Ý$Ð%<Ñ=Ô=Ð=ðTð T¨T°'¬]ð Tñ Tô T�ð \Ð[¨8Ð[Ñ[Ô[�Øð OÝ,¨fÐ.@¸À"Ô-EÀfÔ-MÑNÔNÐNÐNÐNÐNÐNðOàŸ(š( <Ñ0Ô0ˆKØð Ø�Ý˜k­3Ñ/Ô/ð ?°;À&Ò3HÐ3HÝ Ð!=Ñ>Ô>Ð>Ø ˆF‰FØˆrrP   c           	   ƒ  ó`  K  — |d         |d         }}| j         4 ƒd {V —† | j                             |¦  «        }|�@|d         |k    r4| j                             |¦  «         |d         cd d d ¦  «        ƒd {V —† S 	 t	          j        |                      |¦  «        | j        ¦  «        ƒ d {V —†}n\# t          $ rO}t          j
        d¦  «                             d|d d…         t          |¦  «        j        ¦  «         d}Y d }~nd }~ww xY w||f| j        |<   | j                             |¦  «         t          | j        ¦  «        | j        k    r8| j                             d	¬
¦  «         t          | j        ¦  «        | j        k    °8|cd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   d S )NrŽ   rY  r   r   ro   z3Codex last reply unavailable session=%s category=%srÎ   rŸ   F)Úlast)r7   r4   rD   Úmove_to_endr5   Úwait_forrƒ  ÚLAST_REPLY_TIMEOUTrp   rq   rr   r„   rÈ   rà   rï   ÚLAST_REPLY_CACHE_MAXÚpopitem)rK   r/  rù   ÚrevisionÚcachedrº   Úexcs          rN   Úrecover_last_replyzCodexAdapter.recover_last_replyÞ  s™  è è € Ø˜tœ f¨[Ô&9ˆXˆØÔ$ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ØÔ&×*Ò*¨3Ñ/Ô/ˆFØÐ! f¨Q¤i°8Ò&;Ð&;ØÔ!×-Ò-¨cÑ2Ô2Ð2Ø˜a”yð		ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð
Ý$Ô-¨d×.BÒ.BÀ3Ñ.GÔ.GÈÔI`ÑaÔaÐaÐaÐaÐaÐaÐa��øÝð ð ð õ Ô!Ð"FÑGÔG×OÒOØIÈ3ÈsÐPRÈsÌ8ÕUYÐZ]ÑU^ÔU^ÔUgñiô ið ià������øøøøðøøøð '/°Ð%5ˆDÔ˜cÑ"ØÔ×)Ò)¨#Ñ.Ô.Ð.Ý�dÔ'Ñ(Ô(¨4Ô+DÒDÐDØÔ!×)Ò)¨uÐ)Ñ5Ô5Ð5õ �dÔ'Ñ(Ô(¨4Ô+DÒDÐDàð#	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s>    A
FÁ>3B2Â1FÂ2
DÂ<ADÄFÄDÄA?FÆ
F'Æ*F'rJ  r   c              ƒ  óâ   ‡ ‡K  — g d }}	 ‰                       d‰j        d|dœ¦  «        ƒ d {V —†}|                     ˆˆ fd„|d         D ¦   «         ¦  «         |                     d¦  «        }|s|S Œg)NTzthread/listéd   )r=  ri  rj  c              3  óf   •K  — | ]+}|d          ‰j         k    ¯‰                     |‰¦  «        V — Œ,dS )r=  N)r×   rb  )r®   ÚtrJ  rK   s     €€rN   r  z-CodexAdapter.list_sessions.<locals>.<genexpr>÷  sD   øè è € ÐgÐg¸ÈaÐPUÌhÐZaÔZfÒNfÐNf˜DŸLšL¨¨GÑ4Ô4ÐNfÐNfÐNfÐNfÐgÐgrP   rm  ro  )re   r×   rv  rD   )rK   rJ  Úsessionsrj  rz  s   ``   rN   Úlist_sessionszCodexAdapter.list_sessionsó  sš   øøè è € Ø˜t�&ˆð	 ØŸš =¸'¼,ÐQTÐ`fÐ2gÐ2gÑhÔhÐhÐhÐhÐhÐhÐhˆDØ�OŠOÐgÐgÐgÐgÐg¸dÀ6¼lÐgÑgÔgÑgÔgÐgØ—X’X˜lÑ+Ô+ˆFØð  Ø�ð	 rP   c              ƒ  óâ  K  — 	 |                       d|ddœ¦  «        ƒ d {V —†d         }| j                             |d ¦  «         nw# t          $ rj}| j                             |¦  «        }|r;t          j        ¦   «         |d         z
  dk    sd|j        v rd|j        v s
d	|j        v s‚ |d
         }Y d }~nd }~ww xY w| j         	                    ¦   «         D ]‹}|j
        |d         k    rx|                      ||¦  «        }|j        dv rUt          |j        |j        |j        f¦  «        s4|                      |¦  «        ƒ d {V —†}|                      |||¦  «        c S |c S ŒŒt          dd¦  «        ‚)Núthread/readF)r�   ÚincludeTurnsr/  r   é
   ÚrolloutÚemptyzno rollout foundr   r=  rU  z(session not found in registered projectsi”  )re   r8   r•   r   rD   rt   ru   r  r&   rê   r×   rb  r§   Úanyr¥   rª   r©   rŽ  )rK   rò   r/  r�  ÚcreatingrJ  r&  r^  s           rN   r  zCodexAdapter.get_sessionü  sò  è è € ð		Ø ŸIšI mÀ*Ð^cÐ5dÐ5dÑeÔeÐeÐeÐeÐeÐeÐeÐgoÔpˆFØÔ!×%Ò% j°Ñ6Ô6Ð6Ð6øÝð 	ð 	ð 	ØÔ*×.Ò.¨zÑ:Ô:ˆHð ð  f�tœ~Ñ/Ô/°¸´Ñ;¸BÒ>Ð>ÀyÐTWÔT^ÐG^ÐG^ÐdkÐorÔoyÐdyÐdyð  ~Pð  TWô  T^ð  ~^ð  ~^ð  afØ˜A”;ˆFˆFˆFˆFˆFˆFøøøøð	øøøð ”}×)Ò)Ñ+Ô+ð 	ð 	ˆGØŒ|˜v eœ}Ò,Ð,ØŸ,š, v¨wÑ7Ô7�Ø”=Ð$7Ð7Ð7ÅÀWÔEWÐY`ÔYlÐnuô  oFð  EGñ  AHô  AHÐ7Ø&*×&=Ò&=¸fÑ&EÔ&EÐ EÐ EÐ EÐ EÐ EÐ E�IàŸ<š<¨°¸ÑCÔCÐCÐCÐCØ���ð -õ ÐEÀsÑKÔKÐKs   „A A Á
B9ÁA B4Â4B9c              ƒ  ó  K  — || j         vr~|                      |¦  «        ƒ d {V —†}|j        r^|                      d|ddœ¦  «        ƒ d {V —†}|d         d         |k    rt	          d¦  «        ‚| j                              |¦  «         d S d S d S )Nr,  Tr-  r/  rŽ   z)Codex observation changed thread identity)r*   r  r3   re   r   rã   ©rK   rò   r&  rv   s       rN   Úobserve_sessionzCodexAdapter.observe_session  sÃ   è è € ð ˜Tœ]Ð*Ð*Ø ×,Ò,¨ZÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆGØŒ|ð .Ø#Ÿyšy¨ÀzÐcgÐ:hÐ:hÑiÔiÐiÐiÐiÐiÐiÐi�Ø˜(Ô# DÔ)¨ZÒ7Ð7½|ÐLwÑ?xÔ?xÐ9xØ”×!Ò! *Ñ-Ô-Ð-Ð-Ð-ð +Ð*ð.ð .rP   c              ƒ  ó¬  K  — |                       |¦  «        ƒ d {V —†}|                      d|ddœ¦  «        ƒ d {V —†}|d         d         |k    rt          d¦  «        ‚| j                             |¦  «         | j                             |i ¦  «                             |                     d¦  «        |                     d¦  «        ¬	¦  «         |j         S )
Nr,  Tr-  r/  rŽ   z$Codex resume changed thread identityrÆ   rZ  rÅ   )	r  re   r   r*   rã   r3   rå   ræ   rD   rž  s       rN   Ú_resumezCodexAdapter._resume  så   è è € Ø×(Ò(¨Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4ˆØ—y’y ¸zÐ[_Ð2`Ð2`ÑaÔaÐaÐaÐaÐaÐaÐaˆØ�(Ô˜DÔ! ZÒ/Ð/ÝÐEÑFÔFÐFØŒ×Ò˜*Ñ%Ô%Ð%ØŒ	×Ò˜Z¨Ñ,Ô,×3Ò3¸&¿*º*ÀWÑ:MÔ:MÐV\×V`ÒV`ÐarÑVsÔVsÐ3ÑtÔtÐtØ”<ÐÐrP   c              ƒ  ó¢   K  — | j         4 ƒd {V —† |                      |¦  «        ƒ d {V —†cd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   d S rl   )r;   r¡  )rK   rò   s     rN   Úresume_sessionzCodexAdapter.resume_session$  sí   è è € Ø”?ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ØŸš jÑ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1ð	2ð 	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s   �>¾
AÁAc              ƒ  ó†  K  — | j         4 ƒd {V —† |                      |¦  «        ƒ d {V —†}|                      |¦  «        ƒ d {V —†}|j        dv rt	          dd¦  «        ‚|                      d|d|dœgdœ¦  «        ƒ d {V —†}| j                             |i ¦  «        }|                     d¦  «        |d	         d
         k    rG| 	                    i g dd|d	         d
         dt          j        t          j        ¦  «        ddd ¬¦
  «
         dd|||d	         d
         dœcd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   d S )NrR  z@Codex turn is already running; wait before sending another inputé™  rB  rº   rC  rD  r¦   r    rŽ   rŸ   Fr¡   )
r¢   r£   r¥   r¤   r¦   r§   r¨   r©   rª   r«   Tr   )rF  r  rò   Úresumedr¦   )r;   r¡  r  r§   r   re   r3   rå   rD   ræ   r   rç   r   rè   )rK   rò   rº   r¦  r&  rv   r]  s          rN   Ú
send_inputzCodexAdapter.send_input(  sf  è è € Ø”?ð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	GØ ŸLšL¨Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4ˆGØ ×,Ò,¨ZÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆGØŒ}Ð PÐPÐPÝ"Ð#eÐgjÑkÔkÐkØŸ9š9 \À
Ð_eÐosÐVtÐVtÐUuÐ3vÐ3vÑwÔwÐwÐwÐwÐwÐwÐwˆFØ”i×*Ò*¨:°rÑ:Ô:ˆGØ�{Š{˜9Ñ%Ô%¨°¬¸Ô)=Ò=Ð=Ø—’¨2¸2È"Ð\aÐkqÐrxÔkyÐz~Ôkð  HQõ  ^fô  ^jõ  ksô  kwñ  ^xô  ^xØ$&°BÀtð ñ Mô Mð Mà $¨wÀjÐ]dÐqwÐx~Ôqð  AEô  rFð  Gð  Gð
	Gð 
	Gð 
	Gð 
	Gñ 
	Gô 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gøøøð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gð 
	Gs   �DD0Ä0
D:Ä=D:c              ƒ  óÌ   K  — g d }}	 |                       d|ddœ¦  «        ƒ d {V —†}|                     d„ |d         D ¦   «         ¦  «         |                     d¦  «        }|s|S Œ^)NTz
model/listr�  )rj  ri  c              3  óî   K  — | ]p}|                      d ¦  «        °t          |d         |d         |d         |                      d¦  «        d„ |                      dg ¦  «        D ¦   «         ¬¦  «        V — ŒqdS )	ÚhiddenrÆ   ÚdisplayNameÚ	isDefaultÚdefaultReasoningEffortc                ó   — g | ]
}|d          ‘ŒS )rZ  ry   )r®   Úes     rN   r°   z6CodexAdapter.list_models.<locals>.<genexpr>.<listcomp>;  s   € Ð"hÐ"hÐ"h¸A 1Ð%6Ô#7Ð"hÐ"hÐ"hrP   ÚsupportedReasoningEfforts)rŽ   r\   Ú
is_defaultÚdefault_effortÚavailable_effortsN)rD   r9  )r®   Úms     rN   r  z+CodexAdapter.list_models.<locals>.<genexpr>9  sŸ   è è € ð >ð >ð ¨Q¯UªU°8©_¬_ð>�$ ! G¤*°1°]Ô3CÐPQÐR]ÔP^Ø ŸušuÐ%=Ñ>Ô>Ø"hÐ"hÀÇÂÐGbÐdfÑAgÔAgÐ"hÑ"hÔ"hðjñ jô jð >ð >ð >ð >ð >ð >rP   rm  ro  )re   rv  rD   )rK   rò   rv   rj  rz  s        rN   rG  zCodexAdapter.list_models5  sž   è è € Ø˜T�ˆð	ØŸš <¸FÈSÐ1QÐ1QÑRÔRÐRÐRÐRÐRÐRÐRˆDØ�MŠMð >ð >ð ˜fœð>ñ >ô >ñ >ô >ð >ð —X’X˜lÑ+Ô+ˆFØð Ø�ð	rP   c              ƒ  óÚ   K  — |                       |¦  «        ƒ d {V —† |                      dd|i¦  «        ƒ d {V —†d         }|                     d¦  «        |                     d¦  «        dœS )Nr–  r�   r/  rÆ   rZ  rÅ   )r  re   rD   )rK   rò   r/  s      rN   Ú_read_settingszCodexAdapter._read_settingsA  s„   è è € ð ×Ò˜zÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØŸ	š	 -°*¸jÐ1IÑJÔJÐJÐJÐJÐJÐJÐJÈHÔUˆØŸš GÑ,Ô,¸¿
º
ÐCTÑ8UÔ8UÐVÐVÐVrP   c           	   ƒ  óÎ  K  — | j         4 ƒd {V —† |                      |¦  «        ƒ d {V —†}t          d||d         |                     d¦  «        |                      ¦   «         ƒ d {V —†¦  «        }|                      |¦  «        ƒ d {V —†j        r|                      |¦  «        ƒ d {V —†nt          d g d¬¦  «        |d<   |cd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   d S )Nr   rÆ   rÇ   ú'Load session to read native permissions©r6  r8  r»   r;  )	r;   r¶  r   rD   rG  r  r3   r;  r9  )rK   rò   r6  Úviews       rN   Úget_settingszCodexAdapter.get_settingsH  sÀ  è è € Ø”?ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø ×/Ò/°
Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆGÝ˜w¨
°G¸GÔ4DÀgÇkÂkÐRZÑF[ÔF[Ðcg×csÒcsÑcuÔcuÐ]uÐ]uÐ]uÐ]uÐ]uÐ]uÑvÔvˆDØMQ×M]ÒM]Ð^hÑMiÔMiÐGiÐGiÐGiÐGiÐGiÐGiÔFoð  !L d×&6Ò&6°zÑ&BÔ&BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÕuyð  CGð  XZð  bKð  vLñ  vLô  vLˆD�ÑØð		ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �B1CÃ
CÃ!Cc                 ó   — dS )NTry   ry   rP   rN   r|   zCodexAdapter.<lambda>O  s   € Èd€ rP   )Ústill_validc             ƒ  óô  K  — | j         4 ƒd {V —† t          |                      |¦  «        ƒ d {V —†¦  «         |                      |¦  «        ƒ d {V —†}|                      ¦   «         ƒ d {V —†}|j        �+|j        €$|j        €|d         |                     d¦  «        fn9t          |t          d||d         |                     d¦  «        |¦  «        ¦  «        \  }}t          |                      |¦  «        ƒ d {V —†¦  «         |                      |¦  «        ƒ d {V —†}|j        s|                      |¦  «        ƒ d {V —† t          |                      |¦  «        ƒ d {V —†¦  «          |¦   «         st          dd¦  «        ‚d|i}	|j        €|j        �|	                     ||¬¦  «         |j        �#|j        dvrt          d	d
¦  «        ‚|j        |	d<   |                      d|	¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —†}| j                             |i ¦  «                             |d         |                     d¦  «        ¬¦  «         t          d||d         |                     d¦  «        |¦  «        }
|                      |¦  «        ƒ d {V —†j        r|                      |¦  «        ƒ d {V —†nt#          d g d¬¦  «        |
d<   |
cd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   d S )NrÆ   rÇ   r   zsettings request cancelledr¥  r�   rÅ   r>  r?  r@  r0  rA  r¸  r¹  r;  )r;   r   r  r¶  rG  r;  rÆ   rÇ   rD   r   r   r3   r¡  r   ræ   re   rå   r9  )rK   rò   rú   r½  r6  rM  rÆ   rÇ   r&  rm   rº  s              rN   Úupdate_settingszCodexAdapter.update_settingsO  s~  è è € Ø”?ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ý˜D×,Ò,¨ZÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9Ø ×/Ò/°
Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆGØ×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-ˆFØEJÔEVÐEbÐglÔgrÐgzð  @Eô  @Lð  @T˜' 'Ô*¨7¯;ª;°xÑ+@Ô+@ÐAÐAõ  Zkð  lqõ  rð  @Gð  HRð  SZð  [bô  Scð  dk÷  doò  doð  pxñ  dyô  dyð  z@ñ  rAô  rAñ  ZBô  ZB‰LˆE�&Ý˜D×,Ò,¨ZÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9Ø ×,Ò,¨ZÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆGØ”<ð /Ø—l’l :Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ý˜D×,Ò,¨ZÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9Ø�;‘=”=ÐW­Ð5QÐSVÑ(WÔ(WÐ"WØ˜zÐ*ˆFØŒ{Ð&¨%¬,Ð*BÀ6Ç=Â=ÐW\ÐdjÀ=ÑCkÔCkÐCkØÔ Ð,ØÔ$Ð,BÐBÐBÍÐVsÐtwÑIxÔIxÐCxØ,1Ô,=�Ð*Ñ+Ø—)’)Ð4°VÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ø ×/Ò/°
Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆGØŒI× Ò  ¨RÑ0Ô0×7Ò7¸gÀgÔ>NÐW^×WbÒWbÐckÑWlÔWlÐ7ÑmÔmÐmÝ˜w z°'¸'Ô2BÀ7Ç;Â;ÈxÑCXÔCXÐY_Ñ`Ô`ˆDØMQ×M]ÒM]Ð^hÑMiÔMiÐGiÐGiÐGiÐGiÐGiÐGiÔFoð  !L d×&6Ò&6°zÑ&BÔ&BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÕuyð  CGð  XZð  bKð  vLñ  vLô  vLˆD�ÑØð+	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �KK'Ë'
K1Ë4K1c              ƒ  óÂ   K  — |                       ¦   «          t          j        t          | j        ¦  «        ddiŽƒ d {V —† | j                             ¦   «         ƒ d {V —† d S )NÚreturn_exceptionsT)rI   r5   Úgatherrê   r/   rJ   Úcloseri   s    rN   rÃ  zCodexAdapter.closeg  st   è è € Ø×ÒÑÔÐÝŒn�d 4Ô#6Ñ7Ô7ÐPÈ4ÐPÐPÐPÐPÐPÐPÐPÐPÐPØŒh�nŠnÑÔÐÐÐÐÐÐÐÐÐrP   )NNN)rŸ   )rÎ   )rJ  r   rl   )(rà   Ú
__module__Ú__qualname__Ú
agent_typer‰  rt  rs  rˆ  rO   rI   rj   re   rg   rh   rR   r~   rŠ   rˆ   rH   Ústaticmethodré   râ   rá   r;  rN  rb  r|  rƒ  rŽ  r”  r  rŸ  r¡  r£  r§  rG  r¶  r»  r¿  rÃ  ry   rP   rN   r   r      s\  € € € € € Ø€JØÐØÐØÐØÐð$gð $gð $gð $gðL"ð "ð "ð,-ð -ð -ð3ð 3ð 3ðð ð ðCð Cð Cð(ð (ð (ð
8ð 8ð 8ð 	Bð 	Bð 	Bð.ð .ð .ðo1ð o1ð o1ðb ð	Xð 	Xñ „\ð	Xð,<ð ,<ð ,<ð\4ð 4ð 4ð 	Hð 	Hð 	HðZð Zð Zð&ð ð ð ð<(ð (ð (ð (ð8ð ð ð<ð ð ð* ð  ð  ð  ðLð Lð Lð*.ð .ð .ð ð  ð  ð2ð 2ð 2ðGð Gð Gð
ð 
ð 
ð 
ðWð Wð Wðð ð ð GSÀlð ð ð ð ð ð0ð ð ð ð rP   r   )%Ú
__future__r   r5   r#  rB   r  rq   rt   Úcollectionsr   Úuuidr   r   r   Úpathlibr   Údevice_gateway.integrations.pir	   r
   Údevice_gateway.display_textr   Úcodex_quotar   r   r   r   rM  r   r   r   rJ   r   rK  r   r   r   r   ry   rP   rN   ú<module>rÏ     sv  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 9Ð 9Ð 9Ð 9Ð 9Ð 9à OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AðS	ð S	ð S	ð S	ð S	ñ S	ô S	ð S	ð S	ð S	rP   