ó
    ±"³jã  ã                  óÈ   • S SK Jr  S SKJrJr  S SKJr  S SKJr  SSK	J
r
JrJrJrJrJrJrJrJrJrJr  \" SS9 " S	 S
5      5       r " S S\5      rSS jr " S S\5      rg)é    )Úannotations)ÚKW_ONLYÚ	dataclass)ÚProtocol)Úassert_neveré   )ÚCapabilityOperationIdÚDurableOperationIdÚEventStreamHandlerIdÚModelCancelSuspendedResponseIdÚModelCompactMessagesIdÚModelRequestIdÚToolsetCallToolIdÚToolsetGetInstructionsIdÚToolsetGetToolsIdÚToolsetKindÚToolsetValidateToolArgumentsIdT)Úfrozenc                  ó8   • \ rS rSr% S\S'   S\S'   SrS\S'   S	rg)
ÚDurableInvocationNameé   ÚstrÚoperation_namer   Ú_Nú
str | NoneÚdisplay_name© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   Ú__static_attributes__r   ó    Úf/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/durable_exec/_operation_names.pyr   r      s   ‡ àÓØƒJØ#€L�*Ö#r$   r   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	ÚDurableOperationNameré   a  Maps typed operation IDs to stable persisted and display names.

Engine authors can implement this protocol when `JournalOperationNamer` does not match their
runtime's naming rules. See the
[durable backend guide](https://pydantic.dev/docs/ai/capabilities/durable_execution/backends/).
c                ó   • g ©Nr   )ÚselfÚoperation_ids     r%   r   Ú$DurableOperationNamer.operation_name&   s   € Àsr$   c               ó   • g r*   r   )r+   r,   Úlabels      r%   Úinvocation_nameÚ%DurableOperationNamer.invocation_name(   s   € Ðpsr$   r   N©r,   r
   Úreturnr   ©r,   r
   r/   r   r3   r   )r   r   r    r!   Ú__doc__r   r0   r#   r   r$   r%   r'   r'      s   † ñô Kçsr$   r'   c                ó   • U S:X  a  S$ U  S3$ )NÚmcpÚ
mcp_serverÚ_toolsetr   )Úkinds    r%   Ú_toolset_prefixr;   +   s   € à 5›=ˆ<Ð?°°°hÐ.?Ð?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S jrS	r	g
)ÚJournalOperationNameré0   aø  Stable default naming policy for sequence-based journal engines.

Generated names are persisted compatibility data and must essentially never change. Changing
them can strand in-flight workflows and recorded runs.

Use this with either backend tier when persisted operation names can follow Pydantic AI's
journal convention. Pin the generated names before changing agent, model, or toolset identity.
See the [durable backend guide](https://pydantic.dev/docs/ai/capabilities/durable_execution/backends/).
Údefault)Údefault_model_idc               ó   • Xl         X l        g r*   ©Ú_agent_nameÚ_default_model_id)r+   Ú
agent_namer@   s      r%   Ú__init__ÚJournalOperationNamer.__init__;   s   € Ø%ÔØ!1Õr$   c                ó4   • Ub  XR                   :X  a  S$ SU 3$ )NÚ Ú.)rD   )r+   Úmodel_ids     r%   Ú_model_suffixÚ#JournalOperationNamer._model_suffix?   s'   € ØÑ%¨×5KÑ5KÓ)KˆrÐ_ÐSTÐU]ÐT^ÐQ_Ð_r$   c                ó.  • U=[         S` =b  u  p#  U R                   SU SU 3$   =[        S` =b1  u  pE  U(       a  SOSnU R                   SU U R                  U5       3$   =[        S` =b$  u  n  U R                   S	U R                  U5       3$   =[
        S` =b$  u  n  U R                   S
U R                  U5       3$   =[        S` =b  u     U R                   S3$   =[        S` =b"  u  pg  U R                   S[        U5       SU S3$   =[        S` =b  u  n  U R                   SU S3$   =[        S` =b"  u  pg  U R                   S[        U5       SU S3$   [        S` =b!  u  pgU R                   S[        U5       SU S3$   [        U5        g )N)Úcapability_idÚ	operationÚ__capability__rJ   )rK   Ú	streamingzmodel.request_streamzmodel.requestÚ__)rK   z!__model.cancel_suspended_responsez__model.compact_messagesr   Ú__event_stream_handler)Útoolset_kindÚ
toolset_idz
.get_tools)rV   Ú__mcp_server__z.get_instructionsz.validate_argsz
.call_tool)r	   rC   r   rL   r   r   r   r   r;   r   r   r   r   )r+   r,   rO   rP   rK   rR   r:   rV   s           r%   r   Ú$JournalOperationNamer.operation_nameB   sç  € ØØXÔ&×XÐXØ×*Ñ*Ð+¨>¸-¸ÈÈ)ÈÐUÐUð YàG”×GÐGÞ6?Ñ2À_�	Ø×*Ñ*Ð+¨2¨i¨[¸×9KÑ9KÈHÓ9UÐ8VÐWÐWð Hð CÔ/×BÐBØ×*Ñ*Ð+Ð+LÈT×M_ÑM_Ð`hÓMiÐLjÐkÐkð Cà:Ô'×:Ð:Ø×*Ñ*Ð+Ð+CÀD×DVÑDVÐW_ÓD`ÐCaÐbÐbð ;à'Ô%×'Ø×*Ñ*Ð+Ð+AÐBÐBð (àLÔ"×LÐLØ×*Ñ*Ð+¨2¬o¸dÓ.CÐ-DÀBÀzÀlÐR\Ð]Ð]ð Mà@Ô)×@Ð@Ø×*Ñ*Ð+¨>¸*¸ÐEVÐWÐWð AàYÔ/×YÐYØ×*Ñ*Ð+¨2¬o¸dÓ.CÐ-DÀBÀzÀlÐR`ÐaÐað Zä"×LØ×*Ñ*Ð+¨2¬o¸dÓ.CÐ-DÀBÀzÀlÐR\Ð]Ð]ð Mä�\Õ"r$   c               óœ   • U R                  U5      n[        U[        5      (       a  UR                  S:w  a  Uc   eU SU 3n[	        U5      $ )Nr7   Ú:)r   Ú
isinstancer   rU   r   )r+   r,   r/   Únames       r%   r0   Ú%JournalOperationNamer.invocation_nameY   sU   € Ø×"Ñ" <Ó0ˆÜ�lÔ$5×6Ñ6¸<×;TÑ;TÐX]Ó;]ØÑ$Ð$Ð$Ø�V˜1˜U˜GÐ$ˆDÜ$ TÓ*Ð*r$   rB   N)rE   r   r@   r   r3   ÚNone)rK   r   r3   r   r2   r4   )
r   r   r    r!   r5   rF   rL   r   r0   r#   r   r$   r%   r=   r=   0   s#   † ñð DM÷ 2ô`ô#÷.+r$   r=   N)r:   r   r3   r   )Ú
__future__r   Údataclassesr   r   Útypingr   Útyping_extensionsr   Ú
_operationr	   r
   r   r   r   r   r   r   r   r   r   r   r'   r;   r=   r   r$   r%   Ú<module>rd      sd   ðÝ "ç *Ý å *÷÷ ÷ ñ ñ �$Ñ÷$ð $ó ð$ô
t˜Hô 
tô@ô
.+Ð1õ .+r$   