ó
    ±"³j $  ã            	      óÎ  • S SK Jr  S SKJrJr  S SKJrJrJr  S SK	J
r
JrJrJrJr  SSKJrJrJrJrJr  SSKJrJr  \" S5      r\" S	5      r\" S
5      r\" S5      r\" S5      r\" S5      r\" S5      r " S S\
\\\4   \5      r " S S\\
\   5      r  " S S\\\\4   \
\\\4   5      r! " S S\ \   5      r" " S S\"\   5      r# " S S\
\   5      r$ " S S\ \   5      r%g)é    )Úannotations)ÚABCÚabstractmethod)Ú	AwaitableÚCallableÚSequence)ÚGenericÚLiteralÚProtocolÚTypeVarÚcasté   )ÚDurableOperationÚDurableOperationConfigÚDurableOperationIdÚOperationConfigRoleÚresolve_tool_operation_config)ÚDurableOperationNamerÚJournalOperationNamerÚParamsTÚWireTÚResultTÚConfigTÚParamsT_boundÚWireT_boundÚResultT_boundc                  óN   • \ rS rSr\\SS j5       5       r\SS.SS jj5       rSrg)	ÚBoundDurableOperationé   c                ó   • g ©N© ©Úselfs    Úh/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/durable_exec/_operation_backend.pyÚ	operationÚBoundDurableOperation.operation   s   € àX[ó    N©Úconfigc             ƒ  ó   #   • g 7fr!   r"   ©r$   Úparamsr*   s      r%   Ú__call__ÚBoundDurableOperation.__call__   s   é € Øgjùó   ‚r"   )Úreturnz;DurableOperation[ParamsT_bound, WireT_bound, ResultT_bound])r-   r   r*   úobject | Noner1   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úpropertyr   r&   r.   Ú__static_attributes__r"   r(   r%   r   r      s)   † ØØÛ[ó ó à[àØOSÖjó Ûjr(   r   c                  ól   • \ rS rSrSr\    SS j5       r\        S	S j5       r\S
S j5       rSr	g)ÚDurableOperationBackendé%   a&  Contract between `BaseDurabilityCapability` and an engine's durable primitive.

Engine authors normally implement this by subclassing `CallableOperationBackend` or
`RegisteredOperationBackend`. See
[durable backend guide](https://pydantic.dev/docs/ai/capabilities/durable_execution/backends/).
c                ó   • g r!   r"   )r$   r&   s     r%   ÚbindÚDurableOperationBackend.bind-   s   € ð :=r(   c               ó   • g r!   r"   ©r$   r&   ÚtoolÚ	tool_names       r%   Úconfig_for_toolÚ'DurableOperationBackend.config_for_tool2   s   € ð $'r(   c                ó   • g r!   r"   r#   s    r%   ÚregistrationsÚ%DurableOperationBackend.registrations;   s   € Ø@Cr(   r"   N©r&   ú)DurableOperation[ParamsT, WireT, ResultT]r1   z.BoundDurableOperation[ParamsT, WireT, ResultT]©r&   rI   rA   r2   rB   Ústrr1   úConfigT | Literal[False]©r1   zSequence[Callable[..., object]])
r3   r4   r5   r6   Ú__doc__r   r=   rC   rF   r8   r"   r(   r%   r:   r:   %   su   † ñð ð=ØBð=à	7ó=ó ð=ð ð'à<ð'ð ð	'ð
 ð'ð 
"ó'ó ð'ð ÛCó ÛCr(   r:   c                  óP   • \ rS rSr      SS jr\S	S j5       rSS.S
S jjrSrg)Ú_CallableBoundOperationé?   c               ó   • Xl         X l        g r!   )Ú
_operationÚ	_dispatch©r$   r&   Údispatchs      r%   Ú__init__Ú _CallableBoundOperation.__init__@   s   € ð $ŒØ!�r(   c                ó   • U R                   $ r!   )rS   r#   s    r%   r&   Ú!_CallableBoundOperation.operationI   s   € à�‰Ðr(   Nr)   c             ƒ  ó@   #   • U R                  X5      I S h  v•N $  N7fr!   )rT   r,   s      r%   r.   Ú _CallableBoundOperation.__call__M   s   é € Ø—^‘^ FÓ3×3Ð3Ñ3ùs   ‚—˜)rT   rS   )r&   rI   rV   z6Callable[[ParamsT, object | None], Awaitable[ResultT]]r1   ÚNone)r1   rI   )r-   r   r*   r2   r1   r   )	r3   r4   r5   r6   rW   r7   r&   r.   r8   r"   r(   r%   rP   rP   ?   sI   † ð"à<ð"ð Ið	"ð
 
ô"ð óó ðð JN÷ 4ò 4r(   rP   c                  ó„   • \ rS rSrSrS
S jr    SS jr        SS jrSS jr\	            SS j5       r
Srg	)ÚCallableOperationBackendéQ   a  Base for engines that execute an async callback in a named durable unit.

Subclasses implement `execute`; this base owns naming, configuration, cache identity, and
result encoding. See the
[durable backend guide](https://pydantic.dev/docs/ai/capabilities/durable_execution/backends/).
c               ó   • Xl         X l        g r!   )Ú_namerÚ_config©r$   Únamerr*   s      r%   rW   Ú!CallableOperationBackend.__init__Y   s   € ØŒØ�r(   c                ó,   ^ ^• SUU 4S jjn[        TUS9$ )Nc              “  óø  >^ #   • TR                   b  TR                  T 5      OS nT	R                  R                  TR                  US9nUb  [	        [
        U5      O-T	R                  R                  TR                  TR                  S9nTR                  R                  T 5      nSUU 4S jjnT	R                  TR                  UR                  UUUS9I S h  v•N nTR                  R                  U5      $  N7f)N)Úlabel©Úoperation_idc               “  ót   >#   • T R                   R                  T R                  T5      I S h  v•N 5      $  N7fr!   )Úresult_codecÚdumpÚhandler)r&   r-   s   €€r%   ÚbodyÚ=CallableOperationBackend.bind.<locals>.dispatch.<locals>.bodyl   s.   øé € Ø ×-Ñ-×2Ñ2¸×9JÑ9JÈ6Ó9R×3RÓSÐSÑ3Rùs   ƒ*8­6®	8)rk   Únamerp   Ú	cache_keyr*   )r1   Úobject)Úinvocation_labelrb   Úinvocation_namerk   r   r   rc   ÚbaseÚconfig_roleÚcache_identityÚprojectÚexecuteÚoperation_namerm   Úload)
r-   Úexplicit_configri   rv   Úresolved_configrs   rp   Úpayloadr&   r$   s
   `       €€r%   rV   Ú/CallableOperationBackend.bind.<locals>.dispatch`   s÷   ùé € Ø:C×:TÑ:TÑ:`�I×.Ñ.¨vÔ6ÐfjˆEØ"Ÿk™k×9Ñ9¸)×:PÑ:PÐX]Ð9Ð^ˆOð
 #Ñ.ô ”W˜oÔ.à—\‘\×&Ñ& y×'<Ñ'<È9×KaÑKaÐ&Ðbð ð
 "×0Ñ0×8Ñ8¸Ó@ˆI÷Tð Tð !ŸL™LØ&×3Ñ3Ø$×3Ñ3ØØ#Ø&ð )ð ÷ ˆGð ×)Ñ)×.Ñ.¨wÓ7Ð7ñùs   „CC:ÃC8Ã C:)rV   )r-   r   r~   r2   r1   r   )rP   rU   s   `` r%   r=   ÚCallableOperationBackend.bind]   s   ù€ ÷	8ð 	8ô0 ' y¸8ÑDÐDr(   c               ó,   • [        U R                  XUS9$ ©N)rA   rB   ©r   rc   r@   s       r%   rC   Ú(CallableOperationBackend.config_for_toolz   ó   € ô -¨T¯\©\¸9Ð[dÑeÐer(   c                ó   • g)Nr"   r"   r#   s    r%   rF   Ú&CallableOperationBackend.registrationsƒ   s   € Ør(   c             ƒ  ó   #   • g7f)aH  Execute `body` as one named durable unit.

Args:
    operation_id: Typed identity of the semantic operation.
    name: Persisted durable unit name.
    body: Encoded semantic operation body.
    cache_key: Opaque hash inputs for engines that identify cached work by hash.
    config: Engine-specific durable unit configuration.
Nr"   )r$   rk   rr   rp   rs   r*   s         r%   r{   Ú CallableOperationBackend.execute†   s
   é € ð& 	ùr0   )rc   rb   N©re   r   r*   úDurableOperationConfig[ConfigT]r1   r]   rH   rJ   rM   )rk   r   rr   rK   rp   zCallable[[], Awaitable[object]]rs   ztuple[object, ...]r*   r   r1   rt   )r3   r4   r5   r6   rN   rW   r=   rC   rF   r   r{   r8   r"   r(   r%   r_   r_   Q   s©   † ñôðEØBðEà	7ôEð:fà<ðfð ð	fð
 ðfð 
"ôfôð ðð )ðð ð	ð
 .ðð &ðð ðð 
óó ór(   r_   c                  óF   ^ • \ rS rSrSrSS.       SU 4S jjjrSrU =r$ )ÚJournalCallableOperationBackendéœ   zHCallable backend using the standard journal operation naming convention.N©Údefault_model_idc               óB   >• [         TU ]  [        X=(       d    SS9US9  g )NÚdefaultr‘   )re   r*   )ÚsuperrW   r   )r$   Ú
agent_namer’   r*   Ú	__class__s       €r%   rW   Ú(JournalCallableOperationBackend.__init__Ÿ   s(   ø€ ô 	‰ÑÜ'¨
×EbÐYbÑcÐlrð 	ò 	
r(   r"   )r–   rK   r’   z
str | Noner*   r�   r1   r]   )r3   r4   r5   r6   rN   rW   r8   Ú__classcell__)r—   s   @r%   r�   r�   œ   s=   ø† ÙRð (,ñ		
ð ð	
ð %ð		
ð
 0ð	
ð 
÷	
ö 	
r(   r�   c                  óh   • \ rS rSrSrSS.           S	S jjrS
S jr          SS jrSrg)ÚRoleBasedOperationConfigé«   zUResolve operation configuration from role defaults and an optional per-tool resolver.N)Úresolve_toolc               ó$   • XX4S.U l         XPl        g )N)ÚmodelÚeventÚ
capabilityrA   ©Ú_configsÚ_resolve_tool)r$   rŸ   r    r¡   rA   r�   s         r%   rW   Ú!RoleBasedOperationConfig.__init__®   s   € ð #(ÀzÑ`ˆŒØ)Õr(   c               ó~   • US:X  a)  U R                   b  U R                  US S5      nUSLd   eU$ U R                  U   $ )NrA   Ú F©r¤   r£   )r$   Úrolerk   r*   s       r%   rw   ÚRoleBasedOperationConfig.baseº   sJ   € Ø�6‹>˜d×0Ñ0Ñ<Ø×'Ñ'¨°d¸BÓ?ˆFØ Ò&Ð&Ð&ØˆMØ�}‰}˜TÑ"Ð"r(   c               ón   • US:X  d   eU R                   b  U R                  X#U5      $ U R                  S   $ )NrA   r¨   )r$   r©   rk   rA   rB   s        r%   Úfor_toolÚ!RoleBasedOperationConfig.for_toolÁ   s>   € ð �v‹~Ðˆ~Ø×ÑÑ)Ø×%Ñ% l¸)ÓDÐDØ�}‰}˜VÑ$Ð$r(   r¢   )rŸ   r   r    r   r¡   r   rA   r   r�   zSCallable[[DurableOperationId, object | None, str], ConfigT | Literal[False]] | Noner1   r]   )r©   r   rk   r   r1   r   )
r©   r   rk   r   rA   r2   rB   rK   r1   rL   )	r3   r4   r5   r6   rN   rW   rw   r¬   r8   r"   r(   r%   r›   r›   «   sˆ   † Ù_ð mqñ
*ð ð
*ð ð	
*ð
 ð
*ð ð
*ð jð
*ð 
õ
*ô#ð%à!ð%ð )ð	%ð
 ð%ð ð%ð 
"÷%r(   r›   c                  ó|   • \ rS rSrSrS
S jr    SS jr        SS jrSS jr\	        SS j5       r
Srg	)ÚRegisteredOperationBackendéÏ   a*  Base for engines that register named SDK handlers while binding operations.

Subclasses implement `register`; this base collects the returned worker registrations and
owns naming and configuration. See
[durable backend guide](https://pydantic.dev/docs/ai/capabilities/durable_execution/backends/).
c               ó*   • Xl         X l        / U l        g r!   )rb   rc   Ú_registrationsrd   s      r%   rW   Ú#RegisteredOperationBackend.__init__×   s   € ØŒØŒØ;=ˆÕr(   c                ó  • U R                   R                  UR                  5      nU R                  R	                  UR
                  UR                  S9nU R                  XUS9u  pEU R                  R                  U5        U$ )Nrj   )rr   r*   )	rb   r|   rk   rc   rw   rx   Úregisterr²   Úextend)r$   r&   rr   r*   Úbound_operationrF   s         r%   r=   ÚRegisteredOperationBackend.bindÜ   ss   € ð �{‰{×)Ñ)¨)×*@Ñ*@ÓAˆØ—‘×"Ñ" 9×#8Ñ#8Ày×G]ÑG]Ð"Ð^ˆØ)-¯©°yÐTZ¨Ð)[Ñ&ˆØ×Ñ×"Ñ" =Ô1ØÐr(   c               ó,   • [        U R                  XUS9$ r„   r…   r@   s       r%   rC   Ú*RegisteredOperationBackend.config_for_toolå   r‡   r(   c                ó   • U R                   $ r!   )r²   r#   s    r%   rF   Ú(RegisteredOperationBackend.registrationsî   s   € Ø×"Ñ"Ð"r(   c               ó   • g r!   r"   )r$   r&   rr   r*   s       r%   rµ   Ú#RegisteredOperationBackend.registerñ   s	   € ð ber(   )rc   rb   r²   NrŒ   rH   rJ   rM   )r&   rI   rr   rK   r*   r   r1   zVtuple[BoundDurableOperation[ParamsT, WireT, ResultT], Sequence[Callable[..., object]]])r3   r4   r5   r6   rN   rW   r=   rC   rF   r   rµ   r8   r"   r(   r%   r¯   r¯   Ï   s—   † ñô>ð
ØBðà	7ôðfà<ðfð ð	fð
 ðfð 
"ôfô#ð ðeà<ðeð ð	eð
 ðeð 
`óeó óer(   r¯   N)&Ú
__future__r   Úabcr   r   Úcollections.abcr   r   r   Útypingr	   r
   r   r   r   rS   r   r   r   r   r   Ú_operation_namesr   r   r   r   r   r   r   r   r   r   r:   rP   r_   r�   r›   r¯   r"   r(   r%   Ú<module>rÄ      s  ðÝ "ç #ß 9Ñ 9ß <Õ <÷õ ÷ Ká
�)Ó
€Ù�Ó€Ù
�)Ó
€Ù
�)Ó
€Ù˜Ó(€Ù�mÓ$€Ù˜Ó(€ôk˜G M°;ÀÐ$MÑNÐPXô kôD˜c 7¨7Ñ#3ô Dô44Ð3°G¸UÀGÐ4KÑLÈgÐV]Ð_dÐfmÐVmÑNnô 4ô$HÐ6°wÑ?ô HôV
Ð&>¸wÑ&Gô 
ô!%˜w wÑ/ô !%ôH)eÐ!8¸Ñ!Aõ )er(   