Ë
    ³ŒjáÞ  ã                  óä  — d Z ddlmZ ddlmZ ddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZmZmZmZmZmZmZ dd
lmZ ddlmZmZmZmZm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z& ee e"e!df   Z'ee(e)e e"e!df   Z* G d„ de«      Z+e(e)ee,e)e-f   e+e,e)ef   f   f   Z.	 e G d„ de«      «       Z/ G d„ de«      Z0 G d„ de&«      Z1ee+e1e,e)e-f   e,e)ef   f   Z2 G d„ de«      Z3e3Z4 G d„ de3«      Z5 G d„ de&«      Z6 G d„ de0«      Z7 G d„ de«      Z8 G d „ d!e«      Z9e9Z: G d"„ d#e)e«      Z; G d$„ d%e«      Z<e$d&   Z= G d'„ d(e&d)¬*«      Z> G d+„ d,e<«      Z? G d-„ d.e«      Z@d/„ ZA G d0„ d1e«      ZB G d2„ d3eB«      ZC G d4„ d5e)e«      ZD G d6„ d7e&d)¬*«      ZE G d8„ d9eB«      ZF G d:„ d;e«      ZG G d<„ d=eG«      ZH G d>„ d?eG«      ZI G d@„ dAe«      ZJ G dB„ dCe«      ZK G dD„ dEe&d)¬*«      ZL G dF„ dGe&d)¬*«      ZM G dH„ dIeK«      ZN G dJ„ dKeK«      ZO G dL„ dMe«      ZP G dN„ dOeP«      ZQe G dP„ dQe«      «       ZR G dR„ dSe&d)¬*«      ZS G dT„ dUe&d)¬*«      ZT G dV„ dWe«      ZU G dX„ dYeU«      ZV G dZ„ d[e&«      ZW G d\„ d]e&d)¬*«      ZX G d^„ d_e«      ZYe7jµ                  «         G d`„ dae«      Z[ G db„ dce«      Z\ G dd„ dee&d)¬*«      Z] G df„ dge&d)¬*«      Z^ G dh„ die«      Z_ G dj„ dke«      Z` G dl„ dme«      Za G dn„ doe«      Zb G dp„ dqe«      Zc G dr„ dse«      Zd G dt„ due)e«      Ze G dv„ dwe«      Zf G dx„ dye«      Zg G dz„ d{e«      Zheeefegehf    ed|¬}«      f   Zi	  G d~„ de«      Zj G d€„ d�e«      Zk G d‚„ dƒe«      Zl G d„„ d…e«      Zm G d†„ d‡e&d)¬*«      Zn G dˆ„ d‰e&d)¬*«      Zo G dŠ„ d‹e&d)¬*«      Zp G dŒ„ d�e&d)¬*«      Zq G dŽ„ d�e&«      Zr G d�„ d‘e&d)¬*«      Zs G d’„ d“e&«      Zt G d”„ d•e7«      Zu G d–„ d—e&«      Zv G d˜„ d™e&«      Zw G dš„ d›e«      Zx G dœ„ d�e«      Zy G dž„ dŸe«      Zz G d „ d¡e«      Z{dd¢œ	 	 	 	 	 	 	 	 	 d´d£„Z| G d¤„ d¥«      Z} G d¦„ d§«      Z~ G d¨„ d©e«      Z G dª„ d«e«      Z€ G d¬„ d­e«      Z� G d®„ d¯e«      Z‚ G d°„ d±e�«      Zƒ G d²„ d³e«      Z„y)µzSchemas for the LangSmith API.é    )Úannotations)ÚIterator)ÚdatetimeÚ	timedeltaÚtimezone)ÚDecimal)ÚEnum)Úescape)ÚPath)Ú	AnnotatedÚAnyÚ
NamedTupleÚOptionalÚProtocolÚUnionÚruntime_checkable)ÚUUID)Ú	BaseModelÚ
ConfigDictÚFieldÚPrivateAttrÚ
StrictBoolÚStrictFloatÚ	StrictInt)ÚLiteralÚNotRequiredÚ	TypedDictNc                  ó&   — e Zd ZU dZded<   ded<   y)Ú
AttachmentaŠ  Annotated type that will be stored as an attachment if used.

    Examples:
        ```python
        from langsmith import traceable
        from langsmith.schemas import Attachment


        @traceable
        def my_function(bar: int, my_val: Attachment):
            # my_val will be stored as an attachment
            # bar will be stored as inputs
            return bar
        ```
    ÚstrÚ	mime_typeúUnion[bytes, Path]ÚdataN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    ú[/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langsmith/schemas.pyr   r   %   s   … ñð  ƒNØ
Ôr+   r   c                  ó,   — e Zd ZdZddd„Zdd	d„Zd
d„Zy)ÚBinaryIOLikez$Protocol for binary IO-like objects.c                 ó   — y)zRead function.Nr*   )ÚselfÚsizes     r,   ÚreadzBinaryIOLike.readE   ó   € àr+   c                 ó   — y)zSeek function.Nr*   )r0   ÚoffsetÚwhences      r,   ÚseekzBinaryIOLike.seekI   r3   r+   c                 ó   — y)zGet value function.Nr*   ©r0   s    r,   ÚgetvaluezBinaryIOLike.getvalueM   r3   r+   N)éÿÿÿÿ)r1   ÚintÚreturnÚbytes)r   )r5   r<   r6   r<   r=   r<   )r=   r>   )r%   r&   r'   r(   r2   r7   r:   r*   r+   r,   r.   r.   A   s   „ á.ôôôr+   r.   c                  ó„   — e Zd ZU dZded<    ed¬«      Zded<    ed¬«      Zded<    ed¬«      Zded	<    e	d
d
¬«      Z
y)ÚExampleBasezExample base model.r   Ú
dataset_idN©ÚdefaultúOptional[dict[str, Any]]ÚinputsÚoutputsÚmetadataT)ÚfrozenÚarbitrary_types_allowed)r%   r&   r'   r(   r)   r   rE   rF   rG   r   Úmodel_configr*   r+   r,   r@   r@   R   sG   … ÙàÓÙ',°TÔ':€FÐ$Ó:Ù(-°dÔ(;€GÐ%Ó;Ù).°tÔ)<€HÐ&Ó<á TÀ4ÔH�Lr+   r@   c                  ó"   — e Zd ZU ded<   ded<   y)Ú_AttachmentDictr    r!   r"   r#   N)r%   r&   r'   r)   r*   r+   r,   rL   rL   ]   s   … ØƒNØ
Ôr+   rL   c                  óê   ‡ — e Zd ZU dZdZded<    ed„ ¬«      Zded<    ed¬	«      Zd
ed<    ed¬	«      Z	d
ed<    ed¬	«      Z
d
ed<   dZded<   dZded<   dZded<   dZded<   dZded<   ˆ fd„Zˆ xZS )ÚExampleCreatez Example upload with attachments.NúOptional[UUID]Úidc                 óH   — t        j                  t        j                  «      S ©N©r   Únowr   Úutcr*   r+   r,   Ú<lambda>zExampleCreate.<lambda>k   ó   € ¼¿¹ÄhÇlÁlÔ9Sr+   ©Údefault_factoryr   Ú
created_atrB   rD   rE   rF   rG   úOptional[Union[str, list[str]]]Úsplitz$Optional[dict[str, _AttachmentLike]]ÚattachmentsFÚboolÚuse_source_run_ioúOptional[list[str]]Úuse_source_run_attachmentsÚsource_run_idc                ó$   •— t        ‰| �  di |¤Ž y©zInitialize from dict.Nr*   ©ÚsuperÚ__init__©r0   r#   Ú	__class__s     €r,   rg   zExampleCreate.__init__u   ó   ø€ ä‰ÑÑ ˜4Ó r+   )r%   r&   r'   r(   rP   r)   r   rZ   rE   rF   rG   r\   r]   r_   ra   rb   rg   Ú__classcell__©ri   s   @r,   rN   rN   g   s‘   ø… Ù*à€BˆÓÙ Ñ1SÔT€J�ÓTÙ',°TÔ':€FÐ$Ó:Ù(-°dÔ(;€GÐ%Ó;Ù).°tÔ)<€HÐ&Ó<Ø-1€EÐ*Ó1Ø8<€KÐ5Ó<Ø#Ð�tÓ#Ø6:ÐÐ 3Ó:Ø$(€M�>Ó(÷!ð !r+   rN   c                  ó   — e Zd ZU dZded<   y)ÚExampleUpsertWithAttachmentsz Example create with attachments.r   rA   Nr$   r*   r+   r,   rn   rn   }   s   … Ù*àÔr+   rn   c                  ó0   — e Zd ZU dZded<   ded<   ded<   y)	ÚAttachmentInfozInfo for an attachment.r    Úpresigned_urlr.   ÚreaderúOptional[str]r!   Nr$   r*   r+   r,   rp   rp   ƒ   s   … Ù!àÓØÓØÔr+   rp   c                  ó"  ‡ — e Zd ZU dZded<    ed„ ¬«      Zded<    e ed«      ¬	«      Zded
<    ed¬	«      Z	ded<   dZ
ded<    ed¬	«      Zded<   	  ed¬	«      Zded<    ed¬	«      Zded<   	 	 d	 	 	 	 	 	 	 dˆ fd„Zedd„«       Zd„ Zˆ xZS )ÚExamplezExample model.r   rP   c                 óL   — t        j                  dt        j                  ¬«      S )Nr   )Útz)r   Úfromtimestampr   rU   r*   r+   r,   rV   zExample.<lambda>�   s   € ¤× 6Ñ 6°q¼X¿\¹\Õ Jr+   rX   r   rZ   z$00000000-0000-0000-0000-000000000000rB   rA   NúOptional[datetime]Úmodified_atrO   rb   z#Optional[dict[str, AttachmentInfo]]r]   rs   Ú	_host_urlÚ
_tenant_idc                ó@   •— t        ‰| �  di |¤Ž || _        || _        y)úInitialize a Dataset object.Nr*   )rf   rg   r{   r|   )r0   r{   r|   Úkwargsri   s       €r,   rg   zExample.__init__›   s#   ø€ ô 	‰ÑÑ"˜6Ò"Ø"ˆŒØ$ˆ�r+   c                óØ   — | j                   r^d| j                  › d| j                  › �}| j                  r&| j                   › dt	        | j                  «      › |› �S | j                   › |› �S y)úURL of this run within the app.ú
/datasets/z/e/ú/o/N)r{   rA   rP   r|   r    )r0   Úpaths     r,   ÚurlzExample.url¦   sh   € ð �>Š>Ø §¡Ð0°°D·G±G°9Ð=ˆDØ�ŠØŸ.™.Ð)¨¬S°·±Ó-AÐ,BÀ4À&ÐIÐIØ—n‘nÐ% d VÐ,Ð,Ør+   c                ón   — | j                   › d| j                  › d| j                  › d| j                  › d�S )ú5Return a string representation of the RunBase object.ú(id=z, dataset_id=z, link='ú'))ri   rP   rA   r…   r9   s    r,   Ú__repr__zExample.__repr__°   s8   € à—.‘.Ð!  d§g¡g Y¨m¸D¿O¹OÐ;LÈHÐUY×U]ÑU]ÐT^Ð^`ÐaÐar+   )NN)r{   rs   r|   rO   r   r   r=   ÚNone©r=   rs   )r%   r&   r'   r(   r)   r   rZ   r   rA   rz   rb   r]   r   r{   r|   rg   Úpropertyr…   rŠ   rk   rl   s   @r,   ru   ru   ‹   sÐ   ø… ÙàƒHÙ ÙJô€J�ó ñ ¡TÐ*PÓ%QÔR€J�ÓRÙ&+°DÔ&9€KÐ#Ó9Ø$(€M�>Ó(Ù7<ÀTÔ7J€KÐ4ÓJð.á*°4Ô8€Iˆ}Ó8Ù!,°TÔ!:€J�Ó:ð $(Ø%)ð	%à ð	%ð #ð	%ð ð		%ð
 
õ	%ð òó ðöbr+   ru   c                  óN   — e Zd ZU dZ eed¬«      Zded<    eed¬«      Z	ded<   y	)
ÚAttachmentsOperationsz%Operations to perform on attachments.z,Mapping of old attachment names to new names)rY   Údescriptionzdict[str, str]Úrenamez List of attachment names to keepú	list[str]ÚretainN)
r%   r&   r'   r(   r   Údictr‘   r)   Úlistr“   r*   r+   r,   r�   r�   µ   s5   … Ù/á"ØÐ*Xô€FˆNó ñ ØÐ*Lô€FˆIô r+   r�   c                  óÌ   ‡ — e Zd ZU dZded<   dZded<    ed¬«      Zded	<    ed¬«      Zded
<    ed¬«      Z	ded<   dZ
ded<   dZded<   dZded<    ed¬«      Zˆ fd„Zˆ xZS )ÚExampleUpdatez Example update with attachments.r   rP   NrO   rA   rB   rD   rE   rF   rG   r[   r\   zOptional[Attachments]r]   zOptional[AttachmentsOperations]Úattachments_operationsT©rH   c                ó$   •— t        ‰| �  di |¤Ž yrd   re   rh   s     €r,   rg   zExampleUpdate.__init__Î   rj   r+   )r%   r&   r'   r(   r)   rA   r   rE   rF   rG   r\   r]   r˜   r   rJ   rg   rk   rl   s   @r,   r—   r—   À   s{   ø… Ù*àƒHØ!%€J�Ó%Ù',°TÔ':€FÐ$Ó:Ù(-°dÔ(;€GÐ%Ó;Ù).°tÔ)<€HÐ&Ó<Ø-1€EÐ*Ó1Ø)-€KÐ&Ó-Ø>BÐÐ;ÓBá TÔ*€L÷!ð !r+   r—   c                  ó   — e Zd ZdZdZdZdZy)ÚDataTypezEnum for dataset data types.ÚkvÚllmÚchatN)r%   r&   r'   r(   r�   rž   rŸ   r*   r+   r,   rœ   rœ   Ö   s   „ Ù&à	€BØ
€CØ�Dr+   rœ   c                  óJ   — e Zd ZU dZded<   dZded<   dZded<    ed	¬
«      Zy)ÚDatasetBasezDataset base model.r    ÚnameNrs   r�   zOptional[DataType]Ú	data_typeTr™   )	r%   r&   r'   r(   r)   r�   r£   r   rJ   r*   r+   r,   r¡   r¡   Þ   s)   … Ùà
ƒIØ!%€K�Ó%Ø$(€IÐ!Ó(á TÔ*�Lr+   r¡   )Úremove_system_messagesÚconvert_to_openai_messageÚconvert_to_openai_toolÚremove_extra_fieldsÚextract_tools_from_runc                  ó&   — e Zd ZU dZded<   ded<   y)ÚDatasetTransformationz#Schema for dataset transformations.r’   r„   z%Union[DatasetTransformationType, str]Útransformation_typeNr$   r*   r+   r,   rª   rª   ñ   s   … Ù-à
ƒOØ>Ô>r+   rª   F)Útotalc                  ó8  ‡ — e Zd ZU dZded<   ded<    ed¬«      Zded	<   dZd
ed<   dZd
ed<   dZ	ded<   dZ
ded<   dZded<   dZded<   dZded<    ed¬«      Zded<    ed¬«      Zded<    ed¬«      Zded<   	 	 	 d	 	 	 	 	 	 	 	 	 dˆ fd„Zedd„«       Zˆ xZS )ÚDatasetzDataset ORM model.r   rP   r   rZ   NrB   ry   rz   úOptional[int]Úexample_countÚsession_countÚlast_session_start_timerD   Úinputs_schemaÚoutputs_schemaz%Optional[list[DatasetTransformation]]ÚtransformationsrG   rs   r{   rO   r|   Ú_public_pathc                ó®   •— d|v r|j                  d«      |d<   d|v r|j                  d«      |d<   t        ‰| �  di |¤Ž || _        || _        || _        y)r~   Úinputs_schema_definitionr³   Úoutputs_schema_definitionr´   Nr*   )Úpoprf   rg   r{   r|   r¶   )r0   r{   r|   r¶   r   ri   s        €r,   rg   zDataset.__init__	  sd   ø€ ð &¨Ñ/Ø&,§j¡jÐ1KÓ&LˆF�?Ñ#à&¨&Ñ0Ø'-§z¡zÐ2MÓ'NˆFÐ#Ñ$ä‰ÑÑ"˜6Ò"Ø"ˆŒØ$ˆŒØ(ˆÕr+   c                ó  — | j                   r~| j                  r| j                   › | j                  › �S | j                  r1| j                   › dt        | j                  «      › d| j                  › �S | j                   › d| j                  › �S y)r�   rƒ   r‚   N)r{   r¶   r|   r    rP   r9   s    r,   r…   zDataset.url  s}   € ð �>Š>Ø× Ò ØŸ.™.Ð)¨$×*;Ñ*;Ð)<Ð=Ð=Ø�ŠØŸ.™.Ð)¨¬S°·±Ó-AÐ,BÀ*ÈTÏWÉWÈIÐVÐVØ—n‘nÐ% Z°·±¨yÐ9Ð9Ør+   )NNN)
r{   rs   r|   rO   r¶   rs   r   r   r=   r‹   rŒ   )r%   r&   r'   r(   r)   r   rz   r°   r±   r²   r³   r´   rµ   rG   r   r{   r|   r¶   rg   r�   r…   rk   rl   s   @r,   r®   r®   ø   sî   ø… ÙàƒHØÓÙ&+°DÔ&9€KÐ#Ó9Ø#'€M�=Ó'Ø#'€M�=Ó'Ø26ÐÐ/Ó6Ø.2€MÐ+Ó2Ø/3€NÐ,Ó3Ø=A€OÐ:ÓAØ)-€HÐ&Ó-Ù*°4Ô8€Iˆ}Ó8Ù!,°TÔ!:€J�Ó:Ù"-°dÔ";€L�-Ó;ð $(Ø%)Ø&*ð	)à ð)ð #ð)ð $ð	)ð
 ð)ð 
õ)ð& òó ôr+   r®   c                  ó*   — e Zd ZU dZdZded<   ded<   y)ÚDatasetVersionz%Class representing a dataset version.Nr`   Útagsr   Úas_of)r%   r&   r'   r(   r¾   r)   r*   r+   r,   r½   r½   (  s   … Ù/à $€DÐ
Ó$Ø„Or+   r½   c                 ó
   — di iS )NrG   r*   r*   r+   r,   Ú_default_extrarÁ   /  s   € Ø˜ÐÐr+   c                  ój  — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 d	Zd
ed<   	  ee¬«      Zded<   	 d	Z	ded<   	 d	Z
ded<   	 d	Zded<   	  ee¬«      Zded<   	 d	Zded<   	 d	Zded<   	 d	Zded<   	 d	Zded<   	  ee¬«      Zded<   	 ed$d„«       Zed%d„«       Zed&d „«       Zd!„ Z ed"¬#«      Zy	)'ÚRunBasea3  Base Run schema.

    A Run is a span representing a single unit of work or operation within your LLM app.
    This could be a single call to an LLM or chain, to a prompt formatting call,
    to a runnable lambda invocation. If you are familiar with OpenTelemetry,
    you can think of a run as a span.
    r   rP   r    r¢   r   Ú
start_timeÚrun_typeNry   Úend_timerX   úOptional[dict]Úextrars   ÚerrorÚ
serializedúOptional[list[dict]]Úeventsr”   rE   rF   rO   Úreference_example_idÚparent_run_idr`   r¾   z-Union[Attachments, dict[str, AttachmentInfo]]r]   c                ó`   — | j                   €i | _         | j                   j                  di «      S ©zRetrieve the metadata (if any).rG   )rÈ   Ú
setdefaultr9   s    r,   rG   zRunBase.metadatap  s,   € ð �:‰:ÐØˆDŒJØ�z‰z×$Ñ$ Z°Ó4Ð4r+   c                ó8   — | j                   j                  d«      S )z"Retrieve the revision ID (if any).Úrevision_id)rG   Úgetr9   s    r,   rÓ   zRunBase.revision_idw  s   € ð �}‰}× Ñ  Ó/Ð/r+   c                ój   — | j                   €y| j                   | j                  z
  j                  «       S )zLatency in seconds.N)rÆ   rÄ   Útotal_secondsr9   s    r,   ÚlatencyzRunBase.latency|  s-   € ð �=‰=Ð ØØ—‘ §¡Ñ/×>Ñ>Ó@Ð@r+   c                ón   — | j                   › d| j                  › d| j                  › d| j                  › d�S )r‡   rˆ   z, name='z', run_type='r‰   )ri   rP   r¢   rÅ   r9   s    r,   rŠ   zRunBase.__repr__ƒ  s3   € à—.‘.Ð!  d§g¡g Y¨h°t·y±y°kÀÈtÏ}É}ÈoÐ]_Ð`Ð`r+   T)rI   ©r=   údict[str, Any])r=   rO   )r=   úOptional[float])r%   r&   r'   r(   r)   rÆ   r   rÁ   rÈ   rÉ   rÊ   rÌ   r”   rE   rF   rÍ   rÎ   r¾   r]   r�   rG   rÓ   r×   rŠ   r   rJ   r*   r+   r,   rÃ   rÃ   3  s-  … ñð 	ƒHØ(à
ƒIØ*àÓØ àƒMð"ð $(€HÐ Ó'Ø-á!°.ÔA€Eˆ>ÓAØ=à€Eˆ=ÓØ;à!%€J�Ó%ØFà#'€FÐ Ó'ðñ ¨Ô.€FˆDÓ.Ø"à"€Gˆ^Ó"Ø/à+/Ð˜.Ó/Ø@à$(€M�>Ó(Ø@à $€DÐ
Ó$Ø6áAFØôB€KÐ>ó ðð
 ò5ó ð5ð ò0ó ð0ð òAó ðAòañ °dÔ;�Lr+   rÃ   c                  óP  ‡ — e Zd ZU dZdZded<   	 dZded<   	 dZded<   	 dZd	ed
<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 d ed!<   	  ed"¬#«      Zd$ed%<   	 dZd&ed'<   	  ed¬#«      Zded(<   d3d4ˆ fd)„Zed5d*„«       Zed6d+„«       Z ed6d,„«       Z!ed7d-„«       Z"ed7d.„«       Z#ed8d/„«       Z$ed8d0„«       Z%ed9d1„«       Z&ed9d2„«       Z'ˆ xZ(S ):ÚRunz$Run schema when loading from the DB.NrO   Ú
session_idúOptional[list[UUID]]Úchild_run_idszOptional[list[Run]]Ú
child_runsrD   Úfeedback_statsrs   Úapp_pathÚmanifest_idÚstatusr¯   Úprompt_tokensÚcompletion_tokensÚtotal_tokenszOptional[dict[str, int]]Úprompt_token_detailsÚcompletion_token_detailsry   Úfirst_token_timeúOptional[Decimal]Ú
total_costÚprompt_costÚcompletion_costzOptional[dict[str, Decimal]]Úprompt_cost_detailsÚcompletion_cost_detailsÚparent_run_idsr   Útrace_idÚ rB   r    Údotted_orderúOptional[bool]Ú
in_datasetr{   c                óˆ  •— |j                  d«      sd|j                  d«      i|¥}|j                  dd«      xs i }t        ‰| �  di |¤d|i¤Ž || _        | j
                  j                  €/| j
                  j                  t        j                  ¬«      | _        | j                  �E| j                  j                  €/| j                  j                  t        j                  ¬«      | _
        | j                  j                  «       s;| j                  s.| j
                  j                  «       › | j                  › �| _        yyy)úInitialize a Run object.ró   rP   rE   N©Útzinfor*   )rÔ   rº   rf   rg   r{   rÄ   rû   Úreplacer   rU   rÆ   rõ   ÚstriprÎ   Ú	isoformatrP   )r0   r{   r   rE   ri   s       €r,   rg   zRun.__init__Ò  s  ø€ à�z‰z˜*Ô%Ø  &§*¡*¨TÓ"2Ð=°fÐ=ˆFØ—‘˜H dÓ+Ò1¨rˆÜ‰ÑÑ1˜6Ñ1¨&Ó1Ø"ˆŒØ�?‰?×!Ñ!Ð)Ø"Ÿo™o×5Ñ5¼X¿\¹\Ð5ÓJˆDŒOØ�=‰=Ð$¨¯©×)=Ñ)=Ð)EØ ŸM™M×1Ñ1¼¿¹Ð1ÓFˆDŒMØ× Ñ ×&Ñ&Ô(°×1CÒ1CØ#'§?¡?×#<Ñ#<Ó#>Ð"?ÀÇÁ¸yÐ IˆDÕð 2DÐ(r+   c                óh   — | j                   r&| j                  r| j                   › | j                  › �S y)r�   N)r{   rã   r9   s    r,   r…   zRun.urlà  s,   € ð �>Š>˜dŸmšmØ—n‘nÐ% d§m¡m _Ð5Ð5Ør+   c                ó   — | j                   S )zAlias for prompt_tokens.)ræ   r9   s    r,   Úinput_tokenszRun.input_tokensç  s   € ð ×!Ñ!Ð!r+   c                ó   — | j                   S )zAlias for completion_tokens.)rç   r9   s    r,   Úoutput_tokenszRun.output_tokensì  s   € ð ×%Ñ%Ð%r+   c                ó   — | j                   S )zAlias for prompt_cost.)rî   r9   s    r,   Ú
input_costzRun.input_costñ  s   € ð ×ÑÐr+   c                ó   — | j                   S )zAlias for completion_cost.)rï   r9   s    r,   Úoutput_costzRun.output_costö  s   € ð ×#Ñ#Ð#r+   c                ó   — | j                   S )zAlias for prompt_token_details.)ré   r9   s    r,   Úinput_token_detailszRun.input_token_detailsû  s   € ð ×(Ñ(Ð(r+   c                ó   — | j                   S )zAlias for output_token_details.)rê   r9   s    r,   Úoutput_token_detailszRun.output_token_details   s   € ð ×,Ñ,Ð,r+   c                ó   — | j                   S )zAlias for prompt_cost_details.)rð   r9   s    r,   Úinput_cost_detailszRun.input_cost_details  s   € ð ×'Ñ'Ð'r+   c                ó   — | j                   S )z"Alias for completion_cost_details.)rñ   r9   s    r,   Úoutput_cost_detailszRun.output_cost_details
  s   € ð ×+Ñ+Ð+r+   rR   ©r{   rs   r   r   r=   r‹   rŒ   )r=   z
int | None)r=   zDecimal | None)r=   údict[str, int] | None)r=   zdict[str, Decimal] | None))r%   r&   r'   r(   rÞ   r)   rà   rá   râ   rã   rä   rå   ræ   rç   rè   ré   rê   rë   rí   rî   rï   rð   rñ   rò   r   rõ   r÷   r   r{   rg   r�   r…   r  r  r  r  r	  r  r  r  rk   rl   s   @r,   rÝ   rÝ   Š  s  ø… Ù.à!%€J�Ó%Ø-Ø*.€MÐ'Ó.Ø4Ø&*€JÐ#Ó*ðMà/3€NÐ,Ó3Ø&Ø"€HˆmÓ"Ø7Ø"&€K�Ó&Ø:Ø €FˆMÓ Ø.Ø#'€M�=Ó'Ø/Ø'+Ð�}Ó+Ø/Ø"&€L�-Ó&Ø1Ø59ÐÐ2Ó9ðð :>ÐÐ6Ó=ðð ,0ÐÐ(Ó/Ø-Ø$(€JÐ!Ó(ØMØ%)€KÐ"Ó)ØGØ)-€OÐ&Ó-ØCØ8<ÐÐ5Ó<ðð =AÐÐ9Ó@ðð ,0€NÐ(Ó/Ø!ØƒNØCÙ bÔ)€L�#Ó)ð
ð "&€J�Ó%Ø+Ù*°4Ô8€Iˆ}Ó8öJð òó ðð ò"ó ð"ð ò&ó ð&ð ò ó ð ð ò$ó ð$ð ò)ó ð)ð ò-ó ð-ð ò(ó ð(ð ò,ó ô,r+   rÝ   c                  ó,   — e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
ÚRunTypeEnumz5(Deprecated) Enum for run types. Use string directly.ÚtoolÚchainrž   Ú	retrieverÚ	embeddingÚpromptÚparserN)r%   r&   r'   r(   r  r  rž   r  r  r  r  r*   r+   r,   r  r    s(   „ Ù?à€DØ€EØ
€CØ€IØ€IØ€FØ�Fr+   r  c                  ó  — e Zd ZU dZded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d ed!<   ded"<   d#ed$<   y%)&ÚRunLikeDictz&Run-like dictionary, for type-hinting.r    r¢   r  rÅ   r   rÄ   rÇ   rE   rF   ry   rÆ   rÈ   rs   rÉ   rÊ   rO   rÎ   rä   rË   rÌ   r`   r¾   Úinputs_s3_urlsÚoutputs_s3_urlsrP   rÞ   Úsession_namerÍ   Úinput_attachmentsÚoutput_attachmentsr   ró   rõ   ÚAttachmentsr]   Nr$   r*   r+   r,   r  r    s“   … Ù0à
ƒIØÓØÓØÓØÓØ Ó ØÓØÓØÓØ!Ó!ØÓØ Ó Ø
ÓØ"Ó"Ø#Ó#ØÓØÓØÓØ(Ó(Ø%Ó%Ø&Ó&ØƒNØÓØÔr+   r  c                  ó0   — e Zd ZU dZdZded<   	 dZded<   y)ÚRunWithAnnotationQueueInfoz&Run schema with annotation queue info.Nry   Úlast_reviewed_timeÚadded_at)r%   r&   r'   r(   r$  r)   r%  r*   r+   r,   r#  r#  9  s"   … Ù0à-1ÐÐ*Ó1Ø.Ø#'€HÐ Ó'Ø3r+   r#  c                  óZ   — e Zd ZU dZded<   	  ee¬«      Zded<   	 dZded	<   	 dZ	d
ed<   y)ÚFeedbackSourceBasez‰Base class for feedback sources.

    This represents whether feedback is submitted from the API, model, human labeler,
        etc.
    r    ÚtyperX   rD   rG   NzOptional[Union[UUID, str]]Úuser_idrs   Ú	user_name)
r%   r&   r'   r(   r)   r   r”   rG   r)  r*  r*   r+   r,   r'  r'  B  s?   … ñð ƒIØ*Ù).¸tÔ)D€HÐ&ÓDØ6Ø*.€GÐ'Ó.Ø:Ø#€Iˆ}Ó#Ø<r+   r'  c                  ó    — e Zd ZU dZdZded<   y)ÚAPIFeedbackSourcezAPI feedback source.ÚapizLiteral['api']r(  N©r%   r&   r'   r(   r(  r)   r*   r+   r,   r,  r,  S  s   … Ùà €Dˆ.Ô r+   r,  c                  ó    — e Zd ZU dZdZded<   y)ÚModelFeedbackSourcezModel feedback source.ÚmodelzLiteral['model']r(  Nr.  r*   r+   r,   r0  r0  Y  s   … Ù à$€DÐ
Ô$r+   r0  c                  ó   — e Zd ZdZdZ	 dZy)ÚFeedbackSourceTypezFeedback source type.r-  r1  N)r%   r&   r'   r(   ÚAPIÚMODELr*   r+   r,   r3  r3  _  s   „ Ùà
€CØ2Ø€EØ"r+   r3  c                  ó  — e Zd ZU dZded<   	 dZded<   	 dZded<   	 ded	<   	 ded
<   	 ded<   	 dZded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	  ed¬«      Zy)ÚFeedbackBasezFeedback schema.r   rP   Nry   rZ   rz   rO   Úrun_idró   r    ÚkeyÚ
SCORE_TYPEÚscoreÚ
VALUE_TYPEÚvaluers   ÚcommentzUnion[str, dict, None]Ú
correctionúOptional[FeedbackSourceBase]Úfeedback_sourcerÞ   rÄ   Úcomparative_experiment_idÚfeedback_group_idrÇ   rÈ   Tr™   )r%   r&   r'   r(   r)   rZ   rz   r;  r=  r>  r?  rA  rÞ   rÄ   rB  rC  rÈ   r   rJ   r*   r+   r,   r7  r7  h  sØ   … ÙàƒHØ(Ø%)€JÐ"Ó)Ø,Ø&*€KÐ#Ó*Ø2ØÓØ<ØÓØ>Ø	ƒHØAØ€Eˆ:ÓØ+Ø€Eˆ:ÓØQØ!€Gˆ]Ó!Ø2Ø)-€JÐ&Ó-Ø!Ø48€OÐ1Ó8Ø%Ø!%€J�Ó%ØTØ%)€JÐ"Ó)ØEØ04Ð˜~Ó4ØXØ(,Ð�~Ó,ð1ð !€Eˆ>Ó Ø'á TÔ*�Lr+   r7  c                  ó(   — e Zd ZU dZded<   	 ded<   y)ÚFeedbackCategoryz+Specific value and label pair for feedback.Úfloatr=  rs   ÚlabelNr$   r*   r+   r,   rE  rE  ‘  s   … Ù5àƒLØCØÓØNr+   rE  c                  ó@   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   y	)
ÚFeedbackConfigz:Represents _how_ a feedback value ought to be interpreted.z0Literal['continuous', 'categorical', 'freeform']r(  rÛ   ÚminÚmaxz Optional[list[FeedbackCategory]]Ú
categoriesNr$   r*   r+   r,   rI  rI  š  s,   … ÙDà
:Ó:ØØ	ÓØ4Ø	ÓØ4Ø0Ó0ð@r+   rI  c                  óL   — e Zd ZU dZded<   	 dZded<   	 dZded	<   	 dZd
ed<   y)ÚFeedbackCreatez"Schema used for creating feedback.r'  rA  NzOptional[FeedbackConfig]Úfeedback_configTr^   Úextend_trace_retentionrö   rÉ   )r%   r&   r'   r(   r)   rO  rP  rÉ   r*   r+   r,   rN  rN  ¨  s4   … Ù,à'Ó'Ø%Ø04€OÐ-Ó4Ø%Ø#'Ð˜DÓ'ØWØ €Eˆ>Ô r+   rN  c                  óB   — e Zd ZU dZded<   ded<   	 ded<   	 dZded	<   y)
ÚFeedbackzSchema for getting feedback.r   rP   r   rZ   rz   Nr@  rA  )r%   r&   r'   r(   r)   rA  r*   r+   r,   rR  rR  ´  s*   … Ù&àƒHØÓØ,ØÓØ2Ø48€OÐ1Ó8Ø2r+   rR  c                  óþ   ‡ — e Zd ZU dZded<   	  ed„ ¬«      Zded<   	 dZd	ed
<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 ded<   	 ded<   	  ed¬«      Zded<   ddˆ fd„Zedd„«       Zedd„«       Zedd„«       Zˆ xZS )ÚTracerSessionzbTracerSession schema for the API.

    Sessions are also referred to as "Projects" in the UI.
    r   rP   c                 óH   — t        j                  t        j                  «      S rR   rS   r*   r+   r,   rV   zTracerSession.<lambda>È  rW   r+   rX   r   rÄ   Nry   rÆ   rs   r�   r¢   rD   rÈ   Ú	tenant_idrO   Úreference_dataset_idrB   r{   c                ó¾   •— t        ‰| �  di |¤Ž || _        | j                  j                  €0| j                  j                  t        j                  ¬«      | _        yy)rù   Nrú   r*   )rf   rg   r{   rÄ   rû   rü   r   rU   )r0   r{   r   ri   s      €r,   rg   zTracerSession.__init__Ù  sL   ø€ ä‰ÑÑ"˜6Ò"Ø"ˆŒØ�?‰?×!Ñ!Ð)Ø"Ÿo™o×5Ñ5¼X¿\¹\Ð5ÓJˆD�Oð *r+   c                ól   — | j                   r(| j                   › d| j                  › d| j                  › �S y)r�   rƒ   ú/projects/p/N)r{   rV  rP   r9   s    r,   r…   zTracerSession.urlà  s3   € ð �>Š>Ø—n‘nÐ% S¨¯©Ð(8¸ÀTÇWÁWÀIÐNÐNØr+   c                óX   — | j                   �d| j                   vri S | j                   d   S rÐ   ©rÈ   r9   s    r,   rG   zTracerSession.metadataç  ó-   € ð �:‰:Ð °4·:±:Ñ!=ØˆIØ�z‰z˜*Ñ%Ð%r+   c                óX   — | j                   �d| j                   vrg S | j                   d   S )zRetrieve the tags (if any).r¾   r\  r9   s    r,   r¾   zTracerSession.tagsî  s-   € ð �:‰:Ð ¨t¯z©zÑ!9ØˆIØ�z‰z˜&Ñ!Ð!r+   rR   r  rŒ   rÙ   ©r=   r’   )r%   r&   r'   r(   r)   r   rÄ   rÆ   r�   r¢   rÈ   r   r{   rg   r�   r…   rG   r¾   rk   rl   s   @r,   rT  rT  À  s½   ø… ñð
 	ƒHØ Ù Ñ1SÔT€J�ÓTØ+Ø#'€HÐ Ó'Ø)Ø!%€K�Ó%Ø)Ø€Dˆ-ÓØ"Ø&*€EÐ#Ó*Ø)ØƒOØ0Ø(Ó(ØJá*°4Ô8€Iˆ}Ó8öKð òó ðð ò&ó ð&ð ò"ó ô"r+   rT  c                  ó  — e Zd ZU dZdZded<   	 dZded<   	 dZded<   	 dZded<   	 dZ	ded	<   	 dZ
ded
<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   y)ÚTracerSessionResultzqA project, hydrated with additional information.

    Sessions are also referred to as "Projects" in the UI.
    Nr¯   Ú	run_countúOptional[timedelta]Úlatency_p50Úlatency_p99rè   ræ   rç   ry   Úlast_run_start_timerD   râ   Úsession_feedback_statsúOptional[list[dict[str, Any]]]Ú
run_facetsrì   rí   rî   rï   Úfirst_token_p50Úfirst_token_p99rÛ   Ú
error_rate)r%   r&   r'   r(   rb  r)   rd  re  rè   ræ   rç   rf  râ   rg  ri  rí   rî   rï   rj  rk  rl  r*   r+   r,   ra  ra  ö  sç   … ñð
  $€Iˆ}Ó#Ø,Ø'+€KÐ$Ó+Ø?Ø'+€KÐ$Ó+Ø6Ø"&€L�-Ó&Ø=Ø#'€M�=Ó'ØDØ'+Ð�}Ó+ØHØ.2ÐÐ+Ó2Ø8Ø/3€NÐ,Ó3Ø)Ø7;ÐÐ4Ó;Ø1Ø15€JÐ.Ó5Ø-Ø$(€JÐ!Ó(ØMØ%)€KÐ"Ó)ØGØ)-€OÐ&Ó-ØCØ+/€OÐ(Ó/ØGØ+/€OÐ(Ó/Ø>Ø"&€J�Ó&Ø)r+   ra  c                  ó<   — e Zd ZU dZded<   	 ded<   	 edd„«       Zy)	ÚBaseMessageLikez7A protocol representing objects similar to BaseMessage.r    Úcontentzdict[Any, Any]Úadditional_kwargsc                 ó   — y)z,Type of the Message, used for serialization.Nr*   r9   s    r,   r(  zBaseMessageLike.type'  s   � r+   N©r=   r    )r%   r&   r'   r(   r)   r�   r(  r*   r+   r,   rn  rn    s(   … áAàƒLØ%Ø%Ó%ØCàò;ó ñ;r+   rn  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)ÚDatasetShareSchemaz*Represents the schema for a dataset share.r   rA   Úshare_tokenr    r…   Nr$   r*   r+   r,   rt  rt  ,  s   … Ù4àÓØ ØÓØ,Ø	ƒHØ(r+   rt  c                  óL   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 d	ed
<   y)ÚAnnotationQueueRubricItemz�Represents a rubric item assigned to an annotation queue.

    Links a feedback config to a queue with optional per-queue customization.
    r    Úfeedback_keyrs   r�   zOptional[dict[str, str]]Úvalue_descriptionsÚscore_descriptionsrö   Úis_requiredNr$   r*   r+   r,   rw  rw  7  s6   … ñð
 ÓØ=ØÓØCØ0Ó0Ø7Ø0Ó0Ø(ØÓØNr+   rw  c                  ó„   — e Zd ZU dZded<   	 ded<   	 dZded<   	  ed	„ ¬
«      Zded<   	  ed„ ¬
«      Zded<   	 ded<   y)ÚAnnotationQueuezRepresents an annotation queue.r   rP   r    r¢   Nrs   r�   c                 óH   — t        j                  t        j                  «      S rR   rS   r*   r+   r,   rV   zAnnotationQueue.<lambda>R  rW   r+   rX   r   rZ   c                 óH   — t        j                  t        j                  «      S rR   rS   r*   r+   r,   rV   zAnnotationQueue.<lambda>T  rW   r+   Ú
updated_atrV  )	r%   r&   r'   r(   r)   r�   r   rZ   r€  r*   r+   r,   r}  r}  I  sP   … Ù)àƒHØ8Ø
ƒIØ+Ø!%€K�Ó%Ø:Ù Ñ1SÔT€J�ÓTØ>Ù Ñ1SÔT€J�ÓTØCØƒOØDr+   r}  c                  ó    — e Zd ZU dZdZded<   y)ÚAnnotationQueueWithDetailsz,Represents an annotation queue with details.Nrs   Úrubric_instructions)r%   r&   r'   r(   rƒ  r)   r*   r+   r,   r‚  r‚  Z  s   … Ù6à)-Ð˜Ó-Ø;r+   r‚  c                  ó@   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   y	)
ÚRunKeyzæA run identified by its full lookup key, for adding to an annotation queue.

    Unlike a bare run ID, this carries the partition key (``session_id`` and
    ``start_time``) so the run can be located directly, without a scan.
    zUnion[UUID, str]r8  rÞ   úUnion[datetime, str]rÄ   zNotRequired[Union[UUID, str]]Úsource_proposed_example_idNr$   r*   r+   r,   r…  r…  a  s2   … ñð ÓØ0Ø Ó ØKØ$Ó$ðà =Ó=ðRr+   r…  c                  óX   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 d	ed
<   y)ÚBatchIngestConfigz"Configuration for batch ingestion.r^   Úuse_multipart_endpointr<   Úscale_up_qsize_triggerÚscale_up_nthreads_limitÚscale_down_nempty_triggerÚ
size_limitr¯   Úsize_limit_bytesNr$   r*   r+   r,   r‰  r‰  t  s:   … Ù,à Ó ØDØÓØ<Ø Ó Ø7Ø"Ó"ØAØƒOØ/Ø#Ó#Ø8r+   r‰  c                  óP   — e Zd ZU dZdZded<   	 dZded<   	 dZded	<   	 dZd
ed<   y)ÚLangSmithInfoz'Information about the LangSmith server.rô   r    ÚversionNry   Úlicense_expiration_timezOptional[BatchIngestConfig]Úbatch_ingest_configrD   Úinstance_flags)	r%   r&   r'   r(   r’  r)   r“  r”  r•  r*   r+   r,   r‘  r‘  …  s;   … Ù1à€GˆSÓØ.Ø26ÐÐ/Ó6Ø+Ø7;ÐÐ4Ó;ØØ/3€NÐ,Ô3r+   r‘  c                  óD   — e Zd ZU dZded<   	 ded<   	 ded<   	 dZded	<   y)
ÚLangSmithSettingsz"Settings for the LangSmith tenant.r    rP   Údisplay_namer   rZ   Nrs   Útenant_handle)r%   r&   r'   r(   r)   r™  r*   r+   r,   r—  r—  ”  s)   … Ù,àƒGØØÓØ)ØÓØ*Ø#'€M�=Ô'r+   r—  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)	ÚFeedbackIngestTokenz2Represents the schema for a feedback ingest token.r   rP   r    r…   r   Ú
expires_atNr$   r*   r+   r,   r›  r›     s   … Ù<àƒHØ.Ø	ƒHØ3ØÓØ+r+   r›  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)	ÚRunEventzRun event schema.r    r¢   r†  ÚtimerD   r   Nr$   r*   r+   r,   rž  rž  «  s   … Ùà
ƒIØØ
ÓØØ$Ó$Ø,r+   rž  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)ÚTimeDeltaInputzTimedelta input schema.r<   ÚdaysÚhoursÚminutesNr$   r*   r+   r,   r¡  r¡  ¶  s   … Ù!à
ƒIØØƒJØØƒLØr+   r¡  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)ÚDatasetDiffInfoz;Represents the difference information between two datasets.z
list[UUID]Úexamples_modifiedÚexamples_addedÚexamples_removedNr$   r*   r+   r,   r¦  r¦  Á  s    … ÙEà!Ó!Ø=ØÓØ:Ø Ó Ø<r+   r¦  c                  ó°   — e Zd ZU dZded<   	 dZded<   	 dZded<   	 ded<   	 d	ed
<   	 d	ed<   	 ded<   	 dZded<   	 dZded<   	 dZ	ded<   	 e
dd„«       Zy)ÚComparativeExperimentz’Represents a comparative experiment.

    This information summarizes evaluation results comparing
    two or more models on a given dataset.
    r   rP   Nrs   r¢   r�   rV  r   rZ   rz   rW  rD   rÈ   rË   Úexperiments_inforâ   c                óX   — | j                   �d| j                   vri S | j                   d   S rÐ   r\  r9   s    r,   rG   zComparativeExperiment.metadataè  r]  r+   rÙ   )r%   r&   r'   r(   r)   r¢   r�   rÈ   r¬  râ   r�   rG   r*   r+   r,   r«  r«  Ì  s‹   … ñð 	ƒHØ?Ø€Dˆ-ÓØ:Ø!%€K�Ó%Ø@ØƒOØGØÓØDØÓØJØÓØJØ&*€EÐ#Ó*Ø?Ø-1ÐÐ*Ó1Ø\Ø/3€NÐ,Ó3ØPàò&ó ñ&r+   r«  c                  ó®   — e Zd ZU dZ ed¬«      Zded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 dZded<   	  edd¬«      Z	ded<   	  edd¬«      Z
ded<   y)ÚPromptCommitz$Represents a Prompt with a manifest.T)Úpopulate_by_namer    ÚownerÚrepoÚcommit_hashrÚ   Úmanifestz
list[dict]ÚexamplesNrs   r�   rJ   )rC   ÚaliasrÇ   Úhub_model_configÚmodel_providerÚhub_model_provider)r%   r&   r'   r(   r   rJ   r)   r�   r   r·  r¹  r*   r+   r,   r¯  r¯  ð  sr   … Ù.á¨tÔ4€LàƒJØ0Ø
ƒIØ!ØÓØ(ØÓØ%ØÓØØ!%€K�Ó%Ø=Ù',°TÀÔ'PÐ�nÓPØ1Ù(-°dÐBRÔ(SÐ˜ÓSØ/r+   r¯  c                  óò   — e Zd ZU dZded<   	 ded<   	 ded<   	 dZded	<   	 dZded
<   	 dZded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	  ee¬«      Zded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   y)ÚListedPromptCommitz;Represents a listed prompt commit with associated metadata.r   rP   r    r±  r²  NrO   rä   Úrepo_idÚ	parent_idrs   r³  ry   rZ   r€  rX   rß   Úexample_run_idsr   r¯   Únum_downloadsÚ	num_viewsÚparent_commit_hashr�   )r%   r&   r'   r(   r)   rä   r¼  r½  r³  rZ   r€  r   r•   r¾  r¿  rÀ  rÁ  r�   r*   r+   r,   r»  r»    sµ   … ÙEàƒHØ6àƒJØ)à
ƒIØ3à"&€K�Ó&ØOà"€Gˆ^Ó"Ø5à $€Iˆ~Ó$Ø8à!%€K�Ó%Ø*à%)€JÐ"Ó)Ø=à%)€JÐ"Ó)ØBá,1À$Ô,G€OÐ)ÓGØHà#$€M�=Ó$Ø>à €Iˆ}Ó Ø:à(,Ð˜Ó,Ø1à!%€K�Ó%Ø=r+   r»  c                  ó8  — e Zd ZU dZded<   	 dZded<   	 dZded<   	 ded<   	 ded	<   	 d
ed<   	 d
ed<   	 ded<   	 ded<   	 ded<   	 dZded<   	 dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 dZ	ded<   	 dZ
ded<   	 ded<   	 dZded<   	 dZded<   y) ÚPromptz"Represents a Prompt with metadata.r    Úrepo_handleNrs   r�   ÚreadmerP   rV  r   rZ   r€  r^   Ú	is_publicÚis_archivedr’   r¾   Úoriginal_repo_idÚupstream_repo_idr±  Ú	full_namer<   Ú	num_likesr¿  rÀ  rö   Úliked_by_auth_userÚlast_commit_hashÚnum_commitsÚoriginal_repo_full_nameÚupstream_repo_full_name)r%   r&   r'   r(   r)   r�   rÅ  rÈ  rÉ  rÌ  rÍ  rÏ  rÐ  r*   r+   r,   rÃ  rÃ  5  sê   … Ù,àÓØ!Ø!%€K�Ó%Ø(Ø €FˆMÓ Ø#ØƒGØØƒNØ,ØÓØ*ØÓØ-ØƒOØ'ØÓØ)Ø
ƒOØ.Ø&*Ð�mÓ*Ø3Ø&*Ð�mÓ*Ø3ØÓØ0ØƒNØ<ØƒNØØÓØ"ØƒNØØ)-Ð˜Ó-Ø@Ø&*Ð�mÓ*Ø&ØÓØ Ø-1Ð˜]Ó1Ø:Ø-1Ð˜]Ó1Ø:r+   rÃ  c                  ó(   — e Zd ZU dZded<   	 ded<   y)ÚListPromptsResponsez A list of prompts with metadata.zlist[Prompt]Úreposr<   r¬   Nr$   r*   r+   r,   rÒ  rÒ  f  s   … Ù*àÓØØƒJØ&r+   rÒ  c                  ó&   — e Zd ZdZdZ	 dZ	 dZ	 dZy)ÚPromptSortFieldz$Enum for sorting fields for prompts.r¿  rÀ  r€  rË  N)r%   r&   r'   r(   r¿  rÀ  r€  rË  r*   r+   r,   rÕ  rÕ  o  s%   „ Ù.à#€MØØ€IØØ€JØØ€IØr+   rÕ  c                  ó,   — e Zd ZU dZdZded<   	 ded<   y)Ú	FileEntryzA file with inline content.ÚfilezLiteral['file']r(  r    ro  Nr.  r*   r+   r,   r×  r×  |  s   … Ù%à"€Dˆ/Ó"ØØƒLØr+   r×  c                  ó\   — e Zd ZU dZdZded<   	 ded<   	 dZded	<   	 dZd
ed<   	 dZd
ed<   y)Ú
AgentEntryzA link to another agent repo.ÚagentzLiteral['agent']r(  r    rÄ  NrO   Ú	commit_idrs   r±  r³  ©	r%   r&   r'   r(   r(  r)   rÜ  r±  r³  r*   r+   r,   rÚ  rÚ  …  sC   … Ù'à$€DÐ
Ó$ØØÓØ(Ø $€Iˆ~Ó$Ø6Ø€Eˆ=ÓØ'Ø!%€K�Ó%Ø-r+   rÚ  c                  ó\   — e Zd ZU dZdZded<   	 ded<   	 dZded	<   	 dZd
ed<   	 dZd
ed<   y)Ú
SkillEntryzA link to a skill repo.ÚskillzLiteral['skill']r(  r    rÄ  NrO   rÜ  rs   r±  r³  rÝ  r*   r+   r,   rß  rß  ”  sC   … Ù!à$€DÐ
Ó$ØØÓØ(Ø $€Iˆ~Ó$Ø6Ø€Eˆ=ÓØ'Ø!%€K�Ó%Ø-r+   rß  r(  )Údiscriminatorc                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)	ÚAgentContextzAn agent pulled from hub.r   rÜ  r    r³  údict[str, Entry]ÚfilesNr$   r*   r+   r,   rã  rã  §  s   … Ù#àƒOØØÓØØÓØ!r+   rã  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)	ÚSkillContextzA skill pulled from hub.r   rÜ  r    r³  rä  rå  Nr$   r*   r+   r,   rç  rç  ²  s   … Ù"àƒOØØÓØØÓØ!r+   rç  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)	ÚDirectoryCommitInfoz0Commit details returned from a directory commit.r   rP   r    r³  r   rZ   Nr$   r*   r+   r,   ré  ré  ½  s   … Ù:àƒHØØÓØØÓØ&r+   ré  c                  ó   — e Zd ZU dZded<   y)ÚDirectoryCommitResponsez0Response body for ``POST /directories/commits``.ré  ÚcommitNr$   r*   r+   r,   rë  rë  È  s   … Ù:àÓØr+   rë  c                  óX   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   y	)
ÚInputTokenDetailsz~Breakdown of input token counts.

    Does *not* need to sum to full input token count. Does *not* need to have all keys.
    r<   ÚaudioÚcache_creationÚ
cache_readÚcache_read_over_200kÚephemeral_5m_input_tokensÚephemeral_1h_input_tokensNr$   r*   r+   r,   rî  rî  Ï  sG   … ñð
 ƒJØØÓðð ƒOðð Óðà"Ó"ØSØ"Ó"ØQr+   rî  c                  ó(   — e Zd ZU dZded<   	 ded<   y)ÚOutputTokenDetailsz€Breakdown of output token counts.

    Does *not* need to sum to full output token count. Does *not* need to have all keys.
    r<   rï  Ú	reasoningNr$   r*   r+   r,   rö  rö  ê  s   … ñð
 ƒJØØƒNðr+   rö  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)ÚInputCostDetailszvBreakdown of input token costs.

    Does *not* need to sum to full input cost. Does *not* need to have all keys.
    rF  rï  rð  rñ  Nr$   r*   r+   r,   rù  rù  ú  s)   … ñð
 ƒLØ%ØÓðð Óðr+   rù  c                  ó(   — e Zd ZU dZded<   	 ded<   y)ÚOutputCostDetailszxBreakdown of output token costs.

    Does *not* need to sum to full output cost. Does *not* need to have all keys.
    rF  rï  r÷  Nr$   r*   r+   r,   rû  rû    s   … ñð
 ƒLØ&ØÓðr+   rû  c                  óˆ   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 d
ed<   	 d
ed<   	 ded<   	 ded<   y)ÚUsageMetadataz�Usage metadata for a message, such as token counts.

    This is a standard representation of token usage that is consistent across models.
    r<   r  r  rè   zNotRequired[InputTokenDetails]r	  zNotRequired[OutputTokenDetails]r  zNotRequired[float]r  r  rí   zNotRequired[InputCostDetails]r  zNotRequired[OutputCostDetails]r  Nr$   r*   r+   r,   rý  rý    sk   … ñð
 ÓØJØÓØPØÓØAØ7Ó7ðð :Ó9ðð #Ó"Ø'Ø#Ó#Ø(Ø"Ó"Ø'Ø5Ó5Ø/Ø7Ó7Ø0r+   rý  c                  óˆ   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 d
ed<   	 d
ed<   	 ded<   	 ded<   y)ÚExtractedUsageMetadataz�Usage metadata dictionary extracted from a run.

    Should be the same as UsageMetadata, but does not require all
    keys to be present.
    r<   r  r  rè   rî  r	  rö  r  rF  r  r  rí   rù  r  rû  r  Nr$   r*   r+   r,   rÿ  rÿ  A  sc   … ñð ÓØ3ØÓØ3ØÓØ*Ø*Ó*Ø*Ø,Ó,Ø+ØÓØ'ØÓØ(ØÓØ'Ø(Ó(Ø/Ø*Ó*Ø0r+   rÿ  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)	ÚUpsertExamplesResponsezCResponse object returned from the upsert_examples_multipart method.r<   Úcountr’   Úexample_idszNotRequired[str | None]r¿   Nr$   r*   r+   r,   r  r  ^  s   … ÙMàƒJØ4ØÓØ5Ø"Ó"Øcr+   r  c                  ó.   — e Zd ZU dZ ee¬«      Zded<   y)ÚExampleWithRunszExample with runs.rX   z	list[Run]ÚrunsN)r%   r&   r'   r(   r   r•   r  r)   r*   r+   r,   r  r  i  s   … Ùá¨DÔ1€Dˆ)Ó1à"r+   r  c                  ó¸   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   y)ÚExperimentRunStatsz!Run statistics for an experiment.r¯   rb  rc  rd  re  rè   ræ   rç   ry   rf  rh  ri  rì   rí   rî   rï   rj  rk  rÛ   rl  Nr$   r*   r+   r,   r  r  q  sƒ   … Ù+àÓØ,Ø$Ó$Ø?Ø$Ó$Ø6ØÓØ=Ø Ó ØDØ$Ó$ØHØ+Ó+Ø8Ø.Ó.Ø-Ø!Ó!ØMØ"Ó"ØGØ&Ó&ØCØ(Ó(ØGØ(Ó(Ø>ØÓØ)r+   r  c                  ó4   — e Zd ZU dZded<   	 ded<   	 ded<   y)	ÚExperimentResultsz´Results container for experiment data with stats and examples.

    Breaking change in v0.4.32:
        The 'stats' field has been split into 'feedback_stats' and 'run_stats'.
    r”   râ   r  Ú	run_statszIterator[ExampleWithRuns]Úexamples_with_runsNr$   r*   r+   r,   r
  r
  ’  s!   … ñð ÓØ1Ø!Ó!Ø6Ø1Ô1r+   r
  c                  óv   — e Zd ZU dZded<   ded<   ded<   dZded	<   ded
<   ded<   ded<   edd„«       Zdd„Zy)ÚInsightsReportzHAn Insights Report created by the Insights Agent over a tracing project.ú
UUID | strrP   r    r¢   rå   Nú
str | NonerÉ   Ú
project_idÚhost_urlrV  c           	     ó¢   — | j                   › dt        | j                  «      › dt        | j                  «      › dt        | j                  «      › �S )z1URL to view this Insights Report in LangSmith UI.rƒ   rZ  z?tab=3&clusterJobId=)r  r    rV  r  rP   r9   s    r,   ÚlinkzInsightsReport.link«  sH   € ð —-‘-� ¤C¨¯©Ó$7Ð#8¸ÄSÈÏÉÓEYÐDZÐZnÔorÐsw×szÑszÓo{Ðn|Ð}Ð}r+   c                ód   — dt        | j                  d¬«      › dt        | j                  «      › d�S )Nz	<a href="T)Úquotez2", target="_blank" rel="noopener">InsightsReport('z')</a>)Ú_html_escaper  r¢   r9   s    r,   Ú_repr_html_zInsightsReport._repr_html_°  sQ   € Øœ<¨¯	©	¸Ô>Ð?Ð?rÔsð  AE÷  AJñ  AJó  tKð  sLð  LSð  Tð  	Tr+   rr  )	r%   r&   r'   r(   r)   rÉ   r�   r  r  r*   r+   r,   r  r     sI   … ÙRàƒNØ
ƒIØƒKØ€Eˆ:ÓØÓØƒMØÓàò~ó ð~ôTr+   r  c                  óZ   — e Zd ZU dZded<   dZded<   dZded<   d	ed
<   ded<   dZded<   y)ÚInsightsHighlightedTracez2A trace highlighted in an insights report summary.r  r8  NúUUID | str | NoneÚ
cluster_idr  Úcluster_namer<   Úrankr    Úhighlight_reasonÚsummary)r%   r&   r'   r(   r)   r  r  r   r*   r+   r,   r  r  ´  s5   … Ù<àÓØ$(€JÐ!Ó(Ø#€L�*Ó#Ø
ƒIØÓØ€GˆZÔr+   r  c                  óf   — e Zd ZU dZ ee¬«      Zded<   dZded<    ee¬«      Z	ded	<   dZ
d
ed<   y)ÚInsightsSummaryReportzIHigh-level summary of an insights job: key points and highlighted traces.rX   r’   Ú
key_pointsNr  Útitlezlist[InsightsHighlightedTrace]Úhighlighted_traceszdatetime | NonerZ   )r%   r&   r'   r(   r   r•   r#  r)   r$  r%  rZ   r*   r+   r,   r"  r"  ¿  s9   … ÙSá!°$Ô7€J�	Ó7Ø€Eˆ:ÓÙ9>ÈtÔ9TÐÐ6ÓTØ"&€J�Ô&r+   r"  c                  ón   — e Zd ZU dZded<   dZded<   ded<   d	ed
<   d	ed<   dZded<   ded<   dZded<   y)ÚInsightsClusterz/A single cluster of runs in an insights report.r  rP   Nr  r½  r<   Úlevelr    r¢   r�   r  Úparent_nameÚnum_runsúdict[str, Any] | NoneÚstats)r%   r&   r'   r(   r)   r½  r)  r,  r*   r+   r,   r'  r'  È  s?   … Ù9àƒNØ#'€IÐ Ó'ØƒJØ
ƒIØÓØ"€K�Ó"ØƒMØ#'€EÐ Ô'r+   r'  )r  c               ób  — ddl m} g }d}d}|� ||dœ}|�t        |«      |d<   | j                  dd|› d	|› d
�|¬«      }	|j	                  |	«       |	j                  «       }
|
j                  dg «      xs g }|j                  |«       |
j                  d«      }|€d}nt        |«      }|sd}|�Œ |S )zHFetch runs for an Insights job, optionally filtered to a single cluster.r   )Úutilséd   N)Úlimitr5   r  ÚGETz
/sessions/z
/insights/z/runs)Úparamsr  r5   )	Ú	langsmithr.  r    Úrequest_with_retriesÚraise_for_status_with_textÚjsonrÔ   Úextendr<   )ÚclientrÞ   Újob_idr  Úls_utilsÚall_runsr0  Únext_offsetr2  ÚrespÚbodyÚbatchÚreturned_offsets                r,   Ú_fetch_insights_runsrA  Õ  sÝ   € õ ,à%'€HØ€EØ€KØ
Ð
!Ø+0¸KÑ!HˆØÐ!Ü#& z£?ˆF�<Ñ à×*Ñ*ØØ˜˜ J¨v¨h°eÐ<Øð +ó 
ˆð
 	×+Ñ+¨DÔ1Ø�y‰y‹{ˆØ—‘˜ Ó$Ò*¨ˆØ�‰˜ÔØŸ(™( 8Ó,ˆØÐ"Ø‰Kä˜oÓ.ˆKÙØ"�ð) Ñ
!ð* €Or+   c                  ó<   — e Zd ZdZdZd	d„Zd
d„Zdd„Zdd„Zdd„Z	y)Ú_ClusterWithTraceszYCluster wrapper that can load its traces from the API. Returned by report.clusters[name].©Ú_clusterÚ_reportc                ó    — || _         || _        y rR   rD  )r0   ÚclusterÚreports      r,   rg   z_ClusterWithTraces.__init__ÿ  s   € ØˆŒØˆ�r+   c                ó.   — t        | j                  |«      S rR   )ÚgetattrrE  )r0   r¢   s     r,   Ú__getattr__z_ClusterWithTraces.__getattr__  s   € Ü�t—}‘} dÓ+Ð+r+   c                óŽ   — t        t        t        | j                  «      «      t        t        | j                  «      «      z  «      S rR   )r•   ÚsetÚdirri   rE  r9   s    r,   Ú__dir__z_ClusterWithTraces.__dir__  s.   € Ü”Cœ˜DŸN™NÓ+Ó,¬s´3°t·}±}Ó3EÓ/FÑFÓGÐGr+   c                ó6   — d| j                   j                  ›d�S )Nz_ClusterWithTraces(name=Ú))rE  r¢   r9   s    r,   rŠ   z_ClusterWithTraces.__repr__	  s   € Ø)¨$¯-©-×*<Ñ*<Ð)?¸qÐAÐAr+   c                ó
  — t        | j                  dd«      }|€t        d«      ‚t        | j                  dd«      }t        | j                  dd«      }|�|€t        d«      ‚t        |||| j                  j
                  ¬«      S )z.Fetch run dicts for this cluster from the API.Ú_clientNzMReport not attached to a client; get reports via Client.get_insights_report()Ú_session_idÚ_job_idzReport missing session/job ids)r8  rÞ   r9  r  )rK  rF  Ú
ValueErrorrA  rE  rP   ©r0   r8  rÞ   r9  s       r,   Úload_tracesz_ClusterWithTraces.load_traces  sˆ   € ä˜Ÿ™ y°$Ó7ˆØˆ>ÜØ_óð ô ˜TŸ\™\¨=¸$Ó?ˆ
Ü˜Ÿ™ y°$Ó7ˆØÐ  ÜÐ=Ó>Ð>ä#ØØ!ØØ—}‘}×'Ñ'ô	
ð 	
r+   N)rH  r'  rI  ÚInsightsReportResultr=   r‹   )r¢   r    r=   r   r_  rr  )r=   úlist[dict[str, Any]])
r%   r&   r'   r(   Ú	__slots__rg   rL  rP  rŠ   rY  r*   r+   r,   rC  rC  ú  s%   „ Ùcà'€Ióó,óHóBô
r+   rC  c                  óF   — e Zd ZdZdZ	 	 	 	 	 	 d	d„Zd
d„Zd„ Zdd„Zdd„Z	y)Ú_ClustersMapzWList-like map of clusters by name. Supports report.clusters['name'] and .load_traces().)Ú	_clustersrF  c                ó2   — t        |«      | _        || _        y rR   )r•   r_  rF  )r0   ÚclustersrI  s      r,   rg   z_ClustersMap.__init__%  s   € ô
 ˜h›ˆŒØˆ�r+   c           	     ó"  — t        |t        «      r| j                  |   }nU| j                  D �ci c]  }|j                  |“Œ }}||vr(t	        d|›dt        |j                  «       «      › �«      ‚||   }t        || j                  «      S c c}w )NzCluster z not found; available: )	Ú
isinstancer<   r_  r¢   ÚKeyErrorr•   ÚkeysrC  rF  )r0   r9  rH  ÚcÚby_names        r,   Ú__getitem__z_ClustersMap.__getitem__-  s�   € Ü�cœ3ÔØ—n‘n SÑ)‰Gà*.¯.ª.Ó9©. Q�q—v‘v˜q‘y¨.ˆGÐ9Ø˜'Ñ!ÜØ˜s˜gÐ%<¼TÀ'Ç,Á,Ã.Ó=QÐ<RÐSóð ð ˜c‘lˆGÜ! '¨4¯<©<Ó8Ð8ùò :s   ¯Bc                ó.   ‡ — ˆ fd„‰ j                   D «       S )Nc              3  óJ   •K  — | ]  }t        |‰j                  «      –— Œ y ­wrR   )rC  rF  )Ú.0rf  r0   s     €r,   Ú	<genexpr>z(_ClustersMap.__iter__.<locals>.<genexpr>:  s   øè ø€ ÐL¹^¸Ô" 1 d§l¡l×3¹^ùs   ƒ #)r_  r9   s   `r,   Ú__iter__z_ClustersMap.__iter__9  s   ø€ ÛL¸T¿^º^ÓLÐLr+   c                ó,   — t        | j                  «      S rR   ©Úlenr_  r9   s    r,   Ú__len__z_ClustersMap.__len__<  s   € Ü�4—>‘>Ó"Ð"r+   c                ó4   — dt        | j                  «      › d�S )Nz_ClustersMap(n_clusters=rR  ro  r9   s    r,   rŠ   z_ClustersMap.__repr__?  s   € Ø)¬#¨d¯n©nÓ*=Ð)>¸aÐ@Ð@r+   N)ra  úlist[InsightsCluster]rI  rZ  r=   r‹   )r9  z	str | intr=   rC  )r=   r<   rr  )
r%   r&   r'   r(   r\  rg   rh  rm  rq  rŠ   r*   r+   r,   r^  r^     sA   „ Ùaà(€Iðà'ðð %ðð 
ó	ó
9òMó#ôAr+   r^  c                  óh  — e Zd ZU dZded<   ded<   ded<   dZded	<   dZded
<   dZded<   dZded<   dZ	ded<   dZ
ded<   dZded<    ee¬«      Zded<   dZded<    ee¬«      Zded<   	  ed¬«      Zded<    ed¬«      Zded<    ed¬«      Zded<    ed ¬!«      Z	 	 	 	 	 	 	 	 d%d"„Zd&d#„Zd&d$„Zy)'rZ  zVFull result of fetching an Insights report (job + clusters + summary + optional runs).r  rP   r    r¢   rå   Nzdatetime | str | NonerÄ   rÆ   rZ   r+  rG   r  Úshaper  rÉ   r  Ú	config_idrX   rs  ra  zInsightsSummaryReport | NonerI  r[  r  rB   r   rT  rU  rV  Úallowr\  c                ó  — t         j                  | d|«       t         j                  | dt        |«      «       t         j                  | dt        |«      «       t         j                  | dt        | j                  | «      «       y)zXAttach client and ids so clusters can load traces. Called by Client.get_insights_report.rT  rU  rV  ra  N)ÚobjectÚ__setattr__r    r^  ra  rX  s       r,   Ú_attach_clientz#InsightsReportResult._attach_client[  sd   € ô 	×Ñ˜4 ¨FÔ3Ü×Ñ˜4 ´°J³Ô@Ü×Ñ˜4 ¬C°«KÔ8Ü×ÑØØÜ˜Ÿ™¨Ó-õ	
r+   c                ó4  — | j                   }t        |d«      r!t        j                  | d|j                  «       	 | j                  d¬«      t        |d«      rt        j                  | d|«       S S # t        |d«      rt        j                  | d|«       w w xY w)z?Return the report as a JSON-serializable dict (raw JSON shape).r_  ra  r6  ©Úmode)ra  Úhasattrry  rz  r_  Ú
model_dump)r0   Úclusters_vals     r,   Úto_jsonzInsightsReportResult.to_jsonk  s„   € à—}‘}ˆÜ�< Ô-Ü×Ñ˜t Z°×1GÑ1GÔHð	CØ—?‘?¨�?Ó/ä�| [Ô1Ü×"Ñ" 4¨°\ÕBð 2øŒw�| [Ô1Ü×"Ñ" 4¨°\ÕBð 2ús   »A1 Á1&Bc                ó&   — | j                  d¬«      S )zHReturn the report as a JSON-serializable dict (e.g. for saving to file).r6  r}  )r€  r9   s    r,   Úmodel_dump_json_dictz)InsightsReportResult.model_dump_json_dictv  s   € à�‰ FˆÓ+Ð+r+   )r8  r   rÞ   ú
str | UUIDr9  r…  r=   r‹   rÙ   )r%   r&   r'   r(   r)   rÄ   rÆ   rZ   rG   ru  rÉ   rv  r   r•   ra  rI  r  r   rT  rU  rV  r   rJ   r{  r‚  r„  r*   r+   r,   rZ  rZ  C  sû   … Ù`àƒNØ
ƒIØƒKØ(,€JÐ%Ó,Ø&*€HÐ#Ó*Ø(,€JÐ%Ó,Ø&*€HÐ#Ó*Ø#'€EÐ Ó'Ø€Eˆ:ÓØ#'€IÐ Ó'Ù&+¸DÔ&A€HÐ#ÓAØ+/€FÐ(Ó/Ù!&°tÔ!<€DÐ
Ó<Ø8á tÔ,€GˆSÓ,Ù"¨4Ô0€K�Ó0Ù tÔ,€GˆSÓ,á GÔ,€Lð
àð
ð ð
ð ð	
ð
 
ó
ó 	Cô,r+   rZ  c                  ó0   — e Zd ZU dZded<   ded<   ded<   y)	ÚFeedbackFormulaWeightedVariableaf  A feedback key and weight used when calculating feedback formulas.

    .. admonition:: Deprecated

        Composite feedback formulas are no longer supported in the SDK.
        Add composite feedback scores via the LangSmith UI instead. This
        schema is retained only for backwards compatibility and will be
        removed in a future release.
    zLiteral['weighted_key']Ú	part_typerF  Úweightz#Annotated[str, Field(min_length=1)]r9  Nr$   r*   r+   r,   r‡  r‡  {  s   … ñð 'Ó&ØƒMØ	,Ô,r+   r‡  c                  ób   — e Zd ZU dZdZded<   dZded<   ded<   ded	<    ed
dd¬«      Zded<   y)ÚFeedbackFormulaCreateaP  Schema used for creating a feedback formula.

    .. admonition:: Deprecated

        Composite feedback formulas are no longer supported in the SDK.
        Add composite feedback scores via the LangSmith UI instead. This
        schema is retained only for backwards compatibility and will be
        removed in a future release.
    NrO   rA   rÞ   r    rx  úLiteral['sum', 'avg']Úaggregation_type.é   é2   ©Ú
min_lengthÚ
max_lengthú%list[FeedbackFormulaWeightedVariable]Úformula_parts)	r%   r&   r'   r(   rA   r)   rÞ   r   r”  r*   r+   r,   r‹  r‹  ‹  sB   … ñð "&€J�Ó%Ø!%€J�Ó%ØÓØ+Ó+Ù;@Ø˜ bô<€MÐ8ô r+   r‹  c                  óF   — e Zd ZU dZded<   ded<    eddd¬	«      Zd
ed<   y)ÚFeedbackFormulaUpdateaP  Schema used for updating a feedback formula.

    .. admonition:: Deprecated

        Composite feedback formulas are no longer supported in the SDK.
        Add composite feedback scores via the LangSmith UI instead. This
        schema is retained only for backwards compatibility and will be
        removed in a future release.
    r    rx  rŒ  r�  .rŽ  r�  r�  r“  r”  N)r%   r&   r'   r(   r)   r   r”  r*   r+   r,   r–  r–  Ÿ  s.   … ñð ÓØ+Ó+Ù;@Ø˜ bô<€MÐ8ô r+   r–  c                  ó0   — e Zd ZU dZded<   ded<   ded<   y)ÚFeedbackFormulaaI  Schema for getting feedback formulas.

    .. admonition:: Deprecated

        Composite feedback formulas are no longer supported in the SDK.
        Add composite feedback scores via the LangSmith UI instead. This
        schema is retained only for backwards compatibility and will be
        removed in a future release.
    r   rP   r   rZ   rz   Nr$   r*   r+   r,   r˜  r˜  ±  s   … ñð 	ƒHØÓØÔr+   r˜  c                  óP   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded	<   	 d
Zded<   y
)ÚFeedbackConfigSchemaa  Represents a feedback configuration for a tenant's feedback key.

    Feedback configurations define how feedback with a given key should be
    interpreted, including its type (continuous, categorical, or freeform),
    scoring bounds, and valid categories.
    r    rx  rI  rO  r   rV  r   rz   Nrö   Úis_lower_score_better)r%   r&   r'   r(   r)   r›  r*   r+   r,   rš  rš  Á  s:   … ñð ÓØAØ#Ó#ØHØƒOØEØÓØ=Ø,0Ð˜>Ó0ØKr+   rš  )
r8  r   rÞ   r…  r9  r…  r  zstr | UUID | Noner=   r[  )…r(   Ú
__future__r   Úcollections.abcr   r   r   r   Údecimalr   Úenumr	   Úhtmlr
   r  Úpathlibr   Útypingr   r   r   r   r   r   r   Úuuidr   Úpydanticr   r   r   r   r   r   r   Útyping_extensionsr   r   r   r:  r”   r    r<  r   Útupler>   r!  r.   r@   rL   Ú_AttachmentLikerN   ÚExampleUploadWithAttachmentsrn   rp   ru   r�   r—   ÚExampleUpdateWithAttachmentsrœ   r¡   ÚDatasetTransformationTyperª   r®   r½   rÁ   rÃ   rÝ   r  r  r#  r'  r,  r0  r3  r7  rE  rI  rN  rR  rT  ra  rn  rt  rw  r}  r‚  r…  r‰  r‘  Úmodel_rebuildr—  r›  rž  r¡  r¦  r«  r¯  r»  rÃ  rÒ  rÕ  r×  rÚ  rß  ÚEntryrã  rç  ré  rë  rî  rö  rù  rû  rý  rÿ  r  r  r  r
  r  r  r"  r'  rA  rC  r^  rZ  r‡  r‹  r–  r˜  rš  r*   r+   r,   Ú<module>r­     s…  ðÙ $å "å $ß 2Ñ 2Ý Ý Ý 'Ý ÷÷ ñ õ ÷÷ ñ ÷ >Ñ =à�:˜y¨+°tÐ;Ñ<€
Ø�4˜˜j¨)°[À$ÐFÑG€
ô�ô ð* �3˜˜e C¨ JÑ/°¸UÀ3ÈÀ9Ñ=MÐMÑNÐNÑO€ðð ô�8ó ó ðô I�)ô Iô�iô ð
 Ø�  s¨E zÑ!2°E¸#¸t¸)Ñ4DÐDñ€ô
!�Iô !ð&  -Ð ô =ô ô�Yô ô'bˆkô 'bôT˜Iô ô!�Iô !ð&  -Ð ôˆs�Dô ô+�)ô +ð $ðñÐ ô?˜I¨Uõ ?ô-ˆkô -ô`�Yô òôT<ˆiô T<ônC,ˆ'ô C,ôL	�#�tô 	ô�) 5õ ô:4 ô 4ô=˜ô =ô"!Ð*ô !ô%Ð,ô %ô#˜ô #ô&+�9ô &+ôRO�y¨õ Oô@�Y eõ @ô	!�\ô 	!ô	3ˆ|ô 	3ô3"�Iô 3"ôl%*˜-ô %*ðP ô
;�hó 
;ó ð
;ô)˜¨%õ )ôO 	°õ Oô$E�iô Eô"< ô <ôRˆYô Rô&9˜	¨õ 9ô"	4�Iô 	4ð × Ñ Ô ô	(˜	ô 	(ô,˜)ô ,ô-ˆy õ -ô�Y eõ ô=�iô =ô!&˜Iô !&ôH0�9ô 0ô.+>˜ô +>ô\.;ˆYô .;ôb'˜)ô 'ô
�c˜4ô 
ô�	ô ô.�ô .ô.�ô .ð 	�%˜	 :¨zÐ9Ñ:¹EÐPVÔ<WÐWÑX€Ø 5ô"�9ô "ô"�9ô "ô'˜)ô 'ô˜iô ôR˜	¨õ Rô6˜¨%õ ô �y¨õ ô*˜	¨õ ô 1�Iô 1ôD1˜Y¨eõ 1ô:d˜Yô dô#�gô #ô*˜ô *ôB2˜	ô 2ôT�Yô Tô(˜yô ô'˜Iô 'ô
(�iô 
(ð$ %)ñ"Øð"àð"ð ð"ð
 "ð"ð ó"÷J#
ñ #
÷L Añ  AôF5,˜9ô 5,ôp- iô -ô ˜Iô ô(˜Iô ô$Ð+ô ô L˜9õ Lr+   