ó
    lQjWÖ  ã                  ó†  • S r SSKJr  SSKrSSKJs  Jr  SSK	J
r
  SSKJrJrJr  SSK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  SS
KJr  SSKJrJ r J!r!J"r"J#r#J$r$J%r%  SSK&J'r'J(r(J)r)  \\#\%\$S4   r*\\+\,\#\%\$S4   r- " S S\5      r.\+\,\\/\,\04   \.\/\,\4   4   4   r1 \ " S S\5      5       r2 " S S\5      r3 " S S\)5      r4\\.\4\/\,\04   \/\,\4   4   r5 " S S\5      r6\6r7 " S S\65      r8 " S S\)5      r9 " S S\35      r: " S S\5      r; " S S \5      r<\<r= " S! S"\,\5      r> " S# S$\5      r?\'S%   r@ " S& S'\)S(S)9rA " S* S+\?5      rB " S, S-\5      rCS. rD " S/ S0\5      rE " S1 S2\E5      rF " S3 S4\,\5      rG " S5 S6\)S(S)9rH " S7 S8\E5      rI " S9 S:\5      rJ " S; S<\J5      rK " S= S>\J5      rL " S? S@\5      rM " SA SB\5      rN " SC SD\)S(S)9rO " SE SF\)S(S)9rP " SG SH\N5      rQ " SI SJ\N5      rR " SK SL\5      rS " SM SN\S5      rT\ " SO SP\5      5       rU " SQ SR\)S(S)9rV " SS ST\)S(S)9rW " SU SV\5      rX " SW SX\X5      rY " SY SZ\)S(S)9rZ " S[ S\\5      r[\:R¹                  5          " S] S^\5      r] " S_ S`\5      r^ " Sa Sb\)S(S)9r_ " Sc Sd\)S(S)9r` " Se Sf\5      ra " Sg Sh\5      rb " Si Sj\5      rc " Sk Sl\5      rd " Sm Sn\5      re " So Sp\5      rf " Sq Sr\,\5      rg " Ss St\5      rh " Su Sv\5      ri " Sw Sx\5      rj\\\h\i\j4   \!" SySz94   rk  " S{ S|\5      rl " S} S~\5      rm " S S€\5      rn " S� S‚\5      ro " Sƒ S„\)S(S)9rp " S… S†\)S(S)9rq " S‡ Sˆ\)S(S)9rr " S‰ SŠ\)S(S)9rs " S‹ SŒ\)5      rt " S� SŽ\)S(S)9ru " S� S�\)5      rv " S‘ S’\:5      rw " S“ S”\)5      rx " S• S–\)5      ry " S— S˜\5      rz " S™ Sš\5      r{ " S› Sœ\5      r| " S� Sž\5      r}SSŸ.         S±S  jjr~ " S¡ S¢5      r " S£ S¤5      r€ " S¥ S¦\5      r� " S§ S¨\5      r‚ " S© Sª\5      rƒ " S« S¬\5      r„ " S­ S®\ƒ5      r… " S¯ S°\5      r†g)²zSchemas for the LangSmith API.é    )ÚannotationsN)ÚIterator)ÚdatetimeÚ	timedeltaÚtimezone)ÚDecimal)ÚEnum)ÚPath)Ú	AnnotatedÚAnyÚ
NamedTupleÚOptionalÚProtocolÚUnionÚruntime_checkable)ÚUUID)Ú	BaseModelÚ
ConfigDictÚFieldÚPrivateAttrÚ
StrictBoolÚStrictFloatÚ	StrictInt)ÚLiteralÚNotRequiredÚ	TypedDictc                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	Ú
Attachmenté$   a^  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]Údata© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r$   ó    ÚN/home/mande/repo/quber/.venv/lib/python3.13/site-packages/langsmith/schemas.pyr   r   $   s   ‡ ñð  ƒNØ
Ör-   r   c                  ó>   • \ rS rSrSrSS	S jjrS
SS jjrSS jrSrg)ÚBinaryIOLikeé@   z$Protocol for binary IO-like objects.c                ó   • g)zRead function.Nr$   )ÚselfÚsizes     r.   ÚreadÚBinaryIOLike.readD   ó   € àr-   c                ó   • g)zSeek function.Nr$   )r3   ÚoffsetÚwhences      r.   ÚseekÚBinaryIOLike.seekH   r7   r-   c                ó   • g)zGet value function.Nr$   ©r3   s    r.   ÚgetvalueÚBinaryIOLike.getvalueL   r7   r-   r$   N)éÿÿÿÿ)r4   ÚintÚreturnÚbytes)r   )r9   rB   r:   rB   rC   rB   )rC   rD   )	r&   r'   r(   r)   r*   r5   r;   r?   r,   r$   r-   r.   r0   r0   @   s   † á.öö÷r-   r0   c                  ót   • \ rS rSr% SrS\S'   \" SS9rS\S'   \" SS9rS\S	'   \" SS9r	S\S
'   \
" SSS9rSrg)ÚExampleBaseéQ   zExample base model.r   Ú
dataset_idN©ÚdefaultúOptional[dict[str, Any]]ÚinputsÚoutputsÚmetadataT)ÚfrozenÚarbitrary_types_allowedr$   )r&   r'   r(   r)   r*   r+   r   rL   rM   rN   r   Úmodel_configr,   r$   r-   r.   rF   rF   Q   sG   ‡ ÙàÓÙ',°TÑ':€FÐ$Ó:Ù(-°dÑ(;€GÐ%Ó;Ù).°tÑ)<€HÐ&Ó<á TÀ4ÑHƒLr-   rF   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)Ú_AttachmentDicté\   r    r!   r"   r#   r$   N)r&   r'   r(   r)   r+   r,   r$   r-   r.   rS   rS   \   s   ‡ ØƒNØ
Ör-   rS   c                  óÜ   ^ • \ rS rSr% SrSrS\S'   \" S S9rS\S	'   \" SS
9r	S\S'   \" SS
9r
S\S'   \" SS
9rS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   U 4S jrSrU =r$ )ÚExampleCreateéf   z Example upload with attachments.NúOptional[UUID]Úidc                 óJ   • [         R                  " [        R                  5      $ ©N©r   Únowr   Úutcr$   r-   r.   Ú<lambda>ÚExampleCreate.<lambda>j   ó   € ¼¿ºÄhÇlÁlÔ9Sr-   ©Údefault_factoryr   Ú
created_atrI   rK   rL   rM   rN   ú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U ]  " S0 UD6  g©zInitialize from dict.Nr$   ©ÚsuperÚ__init__©r3   r#   Ú	__class__s     €r.   rq   ÚExampleCreate.__init__t   ó   ø€ ä‰ÒÑ ˜4Ó r-   r$   )r&   r'   r(   r)   r*   rY   r+   r   rd   rL   rM   rN   rf   rg   ri   rk   rl   rq   r,   Ú__classcell__©rs   s   @r.   rV   rV   f   s‘   ø‡ Ù*à€BˆÓÙ Ñ1SÑT€J�ÓTÙ',°TÑ':€FÐ$Ó:Ù(-°dÑ(;€GÐ%Ó;Ù).°tÑ)<€HÐ&Ó<Ø-1€EÐ*Ó1Ø8<€KÐ5Ó<Ø#Ð�tÓ#Ø6:ÐÐ 3Ó:Ø$(€M�>Ó(÷!ó !r-   rV   c                  ó$   • \ rS rSr% SrS\S'   Srg)ÚExampleUpsertWithAttachmentsé|   z Example create with attachments.r   rH   r$   Nr%   r$   r-   r.   ry   ry   |   s   ‡ Ù*àÖr-   ry   c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)ÚAttachmentInfoé‚   zInfo for an attachment.r    Úpresigned_urlr0   ÚreaderúOptional[str]r!   r$   Nr%   r$   r-   r.   r|   r|   ‚   s   ‡ Ù!àÓØÓØÖr-   r|   c                  ó  ^ • \ rS rSr% SrS\S'   \" S S9rS\S'   \" \" S	5      S
9r	S\S'   \" SS
9r
S\S'   SrS\S'   \" SS
9rS\S'    \" SS
9rS\S'   \" SS
9rS\S'     S       SU 4S jjjr\SS j5       rS rSrU =r$ )ÚExampleéŠ   zExample model.r   rY   c                 óH   • [         R                  " S[        R                  S9$ )Nr   )Útz)r   Úfromtimestampr   r^   r$   r-   r.   r_   ÚExample.<lambda>�   s   € ¤× 6Ò 6°q¼X¿\¹\Ò Jr-   rb   r   rd   z$00000000-0000-0000-0000-000000000000rI   rH   NúOptional[datetime]Úmodified_atrX   rl   z#Optional[dict[str, AttachmentInfo]]rg   r€   Ú	_host_urlÚ
_tenant_idc                ó>   >• [         TU ]  " S0 UD6  Xl        X l        g)úInitialize a Dataset object.Nr$   )rp   rq   rŠ   r‹   )r3   rŠ   r‹   Úkwargsrs   s       €r.   rq   ÚExample.__init__š   s   ø€ ô 	‰ÒÑ"˜6Ò"Ø"ŒØ$�r-   c                óì   • U R                   (       ac  SU R                   SU R                   3nU R                  (       a&  U R                    S[	        U R                  5       U 3$ U R                    U 3$ g)úURL of this run within the app.ú
/datasets/z/e/ú/o/N)rŠ   rH   rY   r‹   r    )r3   Úpaths     r.   ÚurlÚExample.url¥   sh   € ð �>�>Ø §¡Ð0°°D·G±G°9Ð=ˆDØ��ØŸ.™.Ð)¨¬S°·±Ó-AÐ,BÀ4À&ÐIÐIØ—n‘nÐ% d VÐ,Ð,Ør-   c                ón   • U R                    SU R                   SU R                   SU R                   S3$ )ú5Return a string representation of the RunBase object.ú(id=z, dataset_id=z, link='ú'))rs   rY   rH   r•   r>   s    r.   Ú__repr__ÚExample.__repr__¯   s8   € à—.‘.Ð!  d§g¡g Y¨m¸D¿O¹OÐ;LÈHÐUY×U]ÑU]ÐT^Ð^`ÐaÐar-   )rŠ   r‹   )NN)rŠ   r€   r‹   rX   rŽ   r   rC   ÚNone©rC   r€   )r&   r'   r(   r)   r*   r+   r   rd   r   rH   r‰   rl   rg   r   rŠ   r‹   rq   Úpropertyr•   r›   r,   rv   rw   s   @r.   r‚   r‚   Š   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ð br-   r‚   c                  óJ   • \ rS rSr% Sr\" \SS9rS\S'   \" \	SS9r
S\S	'   S
rg)ÚAttachmentsOperationsé´   z%Operations to perform on attachments.z,Mapping of old attachment names to new names)rc   Údescriptionzdict[str, str]Úrenamez List of attachment names to keepú	list[str]Úretainr$   N)r&   r'   r(   r)   r*   r   Údictr¤   r+   Úlistr¦   r,   r$   r-   r.   r¡   r¡   ´   s5   ‡ Ù/á"ØÐ*Xñ€FˆNó ñ ØÐ*Lñ€FˆIö r-   r¡   c                  ó¾   ^ • \ rS rSr% SrS\S'   SrS\S'   \" SS9rS	\S
'   \" SS9r	S	\S'   \" SS9r
S	\S'   SrS\S'   SrS\S'   SrS\S'   \" SS9rU 4S jrSrU =r$ )ÚExampleUpdateé¿   z Example update with attachments.r   rY   NrX   rH   rI   rK   rL   rM   rN   re   rf   zOptional[Attachments]rg   zOptional[AttachmentsOperations]Úattachments_operationsT©rO   c                ó&   >• [         TU ]  " S0 UD6  grn   ro   rr   s     €r.   rq   ÚExampleUpdate.__init__Í   ru   r-   r$   )r&   r'   r(   r)   r*   r+   rH   r   rL   rM   rN   rf   rg   r¬   r   rQ   rq   r,   rv   rw   s   @r.   rª   rª   ¿   s{   ø‡ Ù*àƒHØ!%€J�Ó%Ù',°TÑ':€FÐ$Ó:Ù(-°dÑ(;€GÐ%Ó;Ù).°tÑ)<€HÐ&Ó<Ø-1€EÐ*Ó1Ø)-€KÐ&Ó-Ø>BÐÐ;ÓBá TÑ*€L÷!ó !r-   rª   c                  ó$   • \ rS rSrSrSrSrSrSrg)ÚDataTypeéÕ   zEnum for dataset data types.ÚkvÚllmÚchatr$   N)	r&   r'   r(   r)   r*   r³   r´   rµ   r,   r$   r-   r.   r±   r±   Õ   s   † Ù&à	€BØ
€CØƒDr-   r±   c                  óL   • \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   \" S
S9r	Sr
g)ÚDatasetBaseéÝ   zDataset base model.r    ÚnameNr€   r£   zOptional[DataType]Ú	data_typeTr­   r$   )r&   r'   r(   r)   r*   r+   r£   rº   r   rQ   r,   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                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚDatasetTransformationéð   z#Schema for dataset transformations.r¥   r”   z%Union[DatasetTransformationType, str]Útransformation_typer$   Nr%   r$   r-   r.   rÁ   rÁ   ð   s   ‡ Ù-à
ƒOØ>Ö>r-   rÁ   F)Útotalc                  ó0  ^ • \ rS rSr% SrS\S'   S\S'   \" SS9rS	\S
'   SrS\S'   Sr	S\S'   Sr
S	\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   \" SS9rS\S'   \" SS9rS\S'   \" SS9rS\S'      S         SU 4S jjjr\SS j5       rSrU =r$ ) ÚDataseté÷   zDataset ORM model.r   rY   r   rd   NrI   rˆ   r‰   úOptional[int]Úexample_countÚsession_countÚlast_session_start_timerK   Úinputs_schemaÚoutputs_schemaz%Optional[list[DatasetTransformation]]ÚtransformationsrN   r€   rŠ   rX   r‹   Ú_public_pathc                ó²   >• SU;   a  UR                  S5      US'   SU;   a  UR                  S5      US'   [        TU ]  " S0 UD6  Xl        X l        X0l        g)r�   Úinputs_schema_definitionrÌ   Úoutputs_schema_definitionrÍ   Nr$   )Úpoprp   rq   rŠ   r‹   rÏ   )r3   rŠ   r‹   rÏ   rŽ   rs   s        €r.   rq   ÚDataset.__init__  s^   ø€ ð &¨Ó/Ø&,§j¡jÐ1KÓ&LˆF�?Ñ#à&¨&Ó0Ø'-§z¡zÐ2MÓ'NˆFÐ#Ñ$ä‰ÒÑ"˜6Ò"Ø"ŒØ$ŒØ(Õr-   c                ó6  • U R                   (       aˆ  U R                  (       a  U R                    U R                   3$ U R                  (       a1  U R                    S[        U R                  5       SU R                   3$ U R                    SU R                   3$ g)r‘   r“   r’   N)rŠ   rÏ   r‹   r    rY   r>   s    r.   r•   ÚDataset.url  s}   € ð �>�>Ø× × ØŸ.™.Ð)¨$×*;Ñ*;Ð)<Ð=Ð=Ø��ØŸ.™.Ð)¨¬S°·±Ó-AÐ,BÀ*ÈTÏWÉWÈIÐVÐVØ—n‘nÐ% Z°·±¨yÐ9Ð9Ør-   )rŠ   rÏ   r‹   )NNN)
rŠ   r€   r‹   rX   rÏ   r€   rŽ   r   rC   r�   rž   )r&   r'   r(   r)   r*   r+   r   r‰   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rN   r   rŠ   r‹   rÏ   rq   rŸ   r•   r,   rv   rw   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                  ó2   • \ rS rSr% SrSrS\S'   S\S'   Srg)	ÚDatasetVersioni'  z%Class representing a dataset version.Nrj   Útagsr   Úas_ofr$   )r&   r'   r(   r)   r*   rÙ   r+   r,   r$   r-   r.   rØ   rØ   '  s   ‡ Ù/à $€DÐ
Ó$Ø†Or-   rØ   c                 ó
   • S0 0$ )NrN   r$   r$   r-   r.   Ú_default_extrarÜ   .  s   € Ø˜ÐÐr-   c                  ó`  • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
rS\S'    \" \S9r	S\S'    S
r
S\S'    S
rS\S'    S
rS\S'    \" \S9rS\S'    S
rS\S'    S
rS\S'    S
rS\S'    S
rS\S'    \" \S9rS\S'    \S&S j5       r\S'S  j5       r\S(S! j5       rS" r\" S#S$9rS%rg
))ÚRunBasei2  a  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   rY   r    r¹   r   Ú
start_timeÚrun_typeNrˆ   Úend_timerb   úOptional[dict]Úextrar€   ÚerrorÚ
serializedúOptional[list[dict]]Úeventsr§   rL   rM   rX   Úreference_example_idÚparent_run_idrj   rÙ   z-Union[Attachments, dict[str, AttachmentInfo]]rg   c                ób   • U R                   c  0 U l         U R                   R                  S0 5      $ ©zRetrieve the metadata (if any).rN   )rã   Ú
setdefaultr>   s    r.   rN   ÚRunBase.metadatao  s,   € ð �:‰:ÑØˆDŒJØ�z‰z×$Ñ$ Z°Ó4Ð4r-   c                ó8   • U R                   R                  S5      $ )z"Retrieve the revision ID (if any).Úrevision_id)rN   Úgetr>   s    r.   rï   ÚRunBase.revision_idv  s   € ð �}‰}× Ñ  Ó/Ð/r-   c                ól   • U R                   c  gU R                   U R                  -
  R                  5       $ )zLatency in seconds.N)rá   rß   Útotal_secondsr>   s    r.   ÚlatencyÚRunBase.latency{  s-   € ð �=‰=Ñ ØØ—‘ §¡Ñ/×>Ñ>Ó@Ð@r-   c                ón   • U R                    SU R                   SU R                   SU R                   S3$ )r˜   r™   z, name='z', run_type='rš   )rs   rY   r¹   rà   r>   s    r.   r›   ÚRunBase.__repr__‚  s3   € à—.‘.Ð!  d§g¡g Y¨h°t·y±y°kÀÈtÏ}É}ÈoÐ]_Ð`Ð`r-   T)rP   ©rã   ©rC   údict[str, Any])rC   rX   )rC   úOptional[float])r&   r'   r(   r)   r*   r+   rá   r   rÜ   rã   rä   rå   rç   r§   rL   rM   rè   ré   rÙ   rg   rŸ   rN   rï   rô   r›   r   rQ   r,   r$   r-   r.   rÞ   rÞ   2  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                  ód  ^ • \ rS rSr% SrSrS\S'    SrS\S'    SrS\S	'    Sr	S
\S'    Sr
S\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S '    S!\S"'    \" S#S$9rS%\S&'    SrS'\S('    \" SS$9rS\S)'   S5S6U 4S* jjjr\S7S+ j5       r \S8S, j5       r!\S8S- j5       r"\S9S. j5       r#\S9S/ j5       r$\S:S0 j5       r%\S:S1 j5       r&\S;S2 j5       r'\S;S3 j5       r(S4r)U =r*$ )<ÚRuni‰  z$Run schema when loading from the DB.NrX   Ú
session_idúOptional[list[UUID]]Úchild_run_idszOptional[list[Run]]Ú
child_runsrK   Úfeedback_statsr€   Úapp_pathÚmanifest_idÚstatusrÈ   Úprompt_tokensÚcompletion_tokensÚtotal_tokenszOptional[dict[str, int]]Úprompt_token_detailsÚcompletion_token_detailsrˆ   Ú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Ú rI   r    Údotted_orderúOptional[bool]Ú
in_datasetrŠ   c                óª  >• UR                  S5      (       d  SUR                  S5      0UEnUR                  SS5      =(       d    0 n[        TU ]  " S0 UDSU0D6  Xl        U R
                  R                  c,  U R
                  R                  [        R                  S9U l        U R                  bC  U R                  R                  c,  U R                  R                  [        R                  S9U l
        U R                  R                  5       (       d@  U R                  (       d.  U R
                  R                  5        U R                   3U l        ggg)úInitialize a Run object.r  rY   rL   N©Útzinfor$   )rð   rÓ   rp   rq   rŠ   rß   r  Úreplacer   r^   rá   r  Ústripré   Ú	isoformatrY   )r3   rŠ   rŽ   rL   rs   s       €r.   rq   Ú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                ó|   • U R                   (       a+  U R                  (       a  U R                    U R                   3$ g)r‘   N)rŠ   r  r>   s    r.   r•   ÚRun.urlß  s,   € ð �>�>˜dŸmŸmØ—n‘nÐ% d§m¡m _Ð5Ð5Ør-   c                ó   • U R                   $ )zAlias for prompt_tokens.)r  r>   s    r.   Úinput_tokensÚRun.input_tokensæ  s   € ð ×!Ñ!Ð!r-   c                ó   • U R                   $ )zAlias for completion_tokens.)r  r>   s    r.   Úoutput_tokensÚRun.output_tokensë  s   € ð ×%Ñ%Ð%r-   c                ó   • U R                   $ )zAlias for prompt_cost.)r  r>   s    r.   Ú
input_costÚRun.input_costð  s   € ð ×ÑÐr-   c                ó   • U R                   $ )zAlias for completion_cost.)r  r>   s    r.   Úoutput_costÚRun.output_costõ  s   € ð ×#Ñ#Ð#r-   c                ó   • U R                   $ )zAlias for prompt_token_details.)r	  r>   s    r.   Úinput_token_detailsÚRun.input_token_detailsú  s   € ð ×(Ñ(Ð(r-   c                ó   • U R                   $ )zAlias for output_token_details.)r
  r>   s    r.   Úoutput_token_detailsÚRun.output_token_detailsÿ  s   € ð ×,Ñ,Ð,r-   c                ó   • U R                   $ )zAlias for prompt_cost_details.)r  r>   s    r.   Úinput_cost_detailsÚRun.input_cost_details  s   € ð ×'Ñ'Ð'r-   c                ó   • U R                   $ )z"Alias for completion_cost_details.)r  r>   s    r.   Úoutput_cost_detailsÚRun.output_cost_details	  s   € ð ×+Ñ+Ð+r-   )rŠ   r  rá   rß   r[   ©rŠ   r€   rŽ   r   rC   r�   rž   )rC   z
int | None)rC   zDecimal | None)rC   údict[str, int] | None)rC   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   rŠ   rq   rŸ   r•   r#  r&  r)  r,  r/  r2  r5  r8  r,   rv   rw   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ñ Jð óó ðð ó"ó ð"ð ó&ó ð&ð ó ó ð ð ó$ó ð$ð ó)ó ð)ð ó-ó ð-ð ó(ó ð(ð ó,ó ö,r-   rý   c                  ó4   • \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)ÚRunTypeEnumi  z5(Deprecated) Enum for run types. Use string directly.ÚtoolÚchainr´   Ú	retrieverÚ	embeddingÚpromptÚparserr$   N)r&   r'   r(   r)   r*   r>  r?  r´   r@  rA  rB  rC  r,   r$   r-   r.   r=  r=    s(   † Ù?à€DØ€EØ
€CØ€IØ€IØ€FØƒFr-   r=  c                  ó
  • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   S	\S'   S\S'   S	\S'   S\S'   S\S'   S\S'   S\S'   S	\S'   S	\S'   S\S'   S\S'   S\S'   S\S'   S	\S'   S	\S '   S!\S"'   S\S#'   S$\S%'   S&rg')(ÚRunLikeDicti  z&Run-like dictionary, for type-hinting.r    r¹   r=  rà   r   rß   râ   rL   rM   rˆ   rá   rã   r€   rä   rå   rX   ré   r  ræ   rç   rj   rÙ   Úinputs_s3_urlsÚoutputs_s3_urlsrY   rþ   Úsession_namerè   Úinput_attachmentsÚoutput_attachmentsr   r  r  ÚAttachmentsrg   r$   Nr%   r$   r-   r.   rE  rE    s“   ‡ Ù0à
ƒIØÓØÓØÓØÓØ Ó ØÓØÓØÓØ!Ó!ØÓØ Ó Ø
ÓØ"Ó"Ø#Ó#ØÓØÓØÓØ(Ó(Ø%Ó%Ø&Ó&ØƒNØÓØÖr-   rE  c                  ó8   • \ rS rSr% SrSrS\S'    SrS\S'   Srg)ÚRunWithAnnotationQueueInfoi8  z&Run schema with annotation queue info.Nrˆ   Úlast_reviewed_timeÚadded_atr$   )	r&   r'   r(   r)   r*   rN  r+   rO  r,   r$   r-   r.   rM  rM  8  s"   ‡ Ù0à-1ÐÐ*Ó1Ø.Ø#'€HÐ Ó'Ú3r-   rM  c                  ó\   • \ rS rSr% SrS\S'    \" \S9rS\S'    Sr	S	\S
'    Sr
S\S'   Srg)ÚFeedbackSourceBaseiA  z}Base class for feedback sources.

This represents whether feedback is submitted from the API, model, human labeler,
    etc.
r    Útyperb   rK   rN   NzOptional[Union[UUID, str]]Úuser_idr€   Ú	user_namer$   )r&   r'   r(   r)   r*   r+   r   r§   rN   rS  rT  r,   r$   r-   r.   rQ  rQ  A  s?   ‡ ñð ƒIØ*Ù).¸tÑ)D€HÐ&ÓDØ6Ø*.€GÐ'Ó.Ø:Ø#€Iˆ}Ó#Ú<r-   rQ  c                  ó(   • \ rS rSr% SrSrS\S'   Srg)ÚAPIFeedbackSourceiR  zAPI feedback source.ÚapizLiteral['api']rR  r$   N©r&   r'   r(   r)   r*   rR  r+   r,   r$   r-   r.   rV  rV  R  s   ‡ Ùà €Dˆ.Ö r-   rV  c                  ó(   • \ rS rSr% SrSrS\S'   Srg)ÚModelFeedbackSourceiX  zModel feedback source.ÚmodelzLiteral['model']rR  r$   NrX  r$   r-   r.   rZ  rZ  X  s   ‡ Ù à$€DÐ
Ö$r-   rZ  c                  ó"   • \ rS rSrSrSr SrSrg)ÚFeedbackSourceTypei^  zFeedback source type.rW  r[  r$   N)r&   r'   r(   r)   r*   ÚAPIÚMODELr,   r$   r-   r.   r]  r]  ^  s   † Ùà
€CØ2Ø€EÚ"r-   r]  c                  ó  • \ rS rSr% SrS\S'    SrS\S'    SrS\S'    S	\S
'    S	\S'    S\S'    SrS\S'    Sr	S\S'    Sr
S\S'    SrS\S'    SrS\S'    SrS	\S'    SrS\S'    SrS	\S'    SrS	\S'    SrS\S'    \" SS9rS rg)!ÚFeedbackBaseig  zFeedback schema.r   rY   Nrˆ   rd   r‰   rX   Úrun_idr  r    ÚkeyÚ
SCORE_TYPEÚscoreÚ
VALUE_TYPEÚvaluer€   ÚcommentzUnion[str, dict, None]Ú
correctionúOptional[FeedbackSourceBase]Úfeedback_sourcerþ   rß   Úcomparative_experiment_idÚfeedback_group_idrâ   rã   Tr­   r$   )r&   r'   r(   r)   r*   r+   rd   r‰   re  rg  rh  ri  rk  rþ   rß   rl  rm  rã   r   rQ   r,   r$   r-   r.   ra  ra  g  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-   ra  c                  ó0   • \ rS rSr% SrS\S'    S\S'   Srg)	ÚFeedbackCategoryi�  z+Specific value and label pair for feedback.Úfloatrg  r€   Úlabelr$   Nr%   r$   r-   r.   ro  ro  �  s   ‡ Ù5àƒLØCØÓÚNr-   ro  c                  óH   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'   S
rg)ÚFeedbackConfigi™  z:Represents _how_ a feedback value ought to be interpreted.z0Literal['continuous', 'categorical', 'freeform']rR  rû   ÚminÚmaxz Optional[list[FeedbackCategory]]Ú
categoriesr$   Nr%   r$   r-   r.   rs  rs  ™  s,   ‡ ÙDà
:Ó:ØØ	ÓØ4Ø	ÓØ4Ø0Ó0ò@r-   rs  c                  óD   • \ rS rSr% SrS\S'    SrS\S'    SrS\S	'   S
rg)ÚFeedbackCreatei§  z"Schema used for creating feedback.rQ  rk  NzOptional[FeedbackConfig]Úfeedback_configr  rä   r$   )	r&   r'   r(   r)   r*   r+   ry  rä   r,   r$   r-   r.   rx  rx  §  s&   ‡ Ù,à'Ó'Ø%Ø04€OÐ-Ó4Ø%Ø €Eˆ>Ö r-   rx  c                  óJ   • \ rS rSr% SrS\S'   S\S'    S\S'    SrS	\S
'   Srg)ÚFeedbacki±  zSchema for getting feedback.r   rY   r   rd   r‰   Nrj  rk  r$   )r&   r'   r(   r)   r*   r+   rk  r,   r$   r-   r.   r{  r{  ±  s*   ‡ Ù&àƒHØÓØ,ØÓØ2Ø48€OÐ1Ó8Ú2r-   r{  c                  ó  ^ • \ rS rSr% SrS\S'    \" S S9rS\S'    S	rS
\S'    S	r	S\S'    S	r
S\S'    S	rS\S'    S\S'    S\S'    \" S	S9rS\S'   SSU 4S jjjr\SS j5       r\SS j5       r\SS j5       rSrU =r$ ) ÚTracerSessioni½  zZTracerSession schema for the API.

Sessions are also referred to as "Projects" in the UI.
r   rY   c                 óJ   • [         R                  " [        R                  5      $ r[   r\   r$   r-   r.   r_   ÚTracerSession.<lambda>Å  ra   r-   rb   r   rß   Nrˆ   rá   r€   r£   r¹   rK   rã   Ú	tenant_idrX   Úreference_dataset_idrI   rŠ   c                óº   >• [         TU ]  " S0 UD6  Xl        U R                  R                  c-  U R                  R                  [        R                  S9U l        gg)r  Nr  r$   )rp   rq   rŠ   rß   r  r  r   r^   )r3   rŠ   rŽ   rs   s      €r.   rq   ÚTracerSession.__init__Ö  sJ   ø€ ä‰ÒÑ"˜6Ò"Ø"ŒØ�?‰?×!Ñ!Ñ)Ø"Ÿo™o×5Ñ5¼X¿\¹\Ð5ÐJˆD�Oð *r-   c                óv   • U R                   (       a(  U R                    SU R                   SU R                   3$ g)r‘   r“   ú/projects/p/N)rŠ   r€  rY   r>   s    r.   r•   ÚTracerSession.urlÝ  s3   € ð �>�>Ø—n‘nÐ% S¨¯©Ð(8¸ÀTÇWÁWÀIÐNÐNØr-   c                ó^   • U R                   b  SU R                   ;  a  0 $ U R                   S   $ rë   rø   r>   s    r.   rN   ÚTracerSession.metadataä  ó-   € ð �:‰:Ñ °4·:±:Ó!=ØˆIØ�z‰z˜*Ñ%Ð%r-   c                ó^   • U R                   b  SU R                   ;  a  / $ U R                   S   $ )zRetrieve the tags (if any).rÙ   rø   r>   s    r.   rÙ   ÚTracerSession.tagsë  s-   € ð �:‰:Ñ ¨t¯z©zÓ!9ØˆIØ�z‰z˜&Ñ!Ð!r-   )rŠ   rß   r[   r:  rž   rù   ©rC   r¥   )r&   r'   r(   r)   r*   r+   r   rß   rá   r£   r¹   rã   r   rŠ   rq   rŸ   r•   rN   rÙ   r,   rv   rw   s   @r.   r}  r}  ½  sÃ   ø‡ ñð
 	ƒHØ Ù Ñ1SÑT€J�ÓTØ+Ø#'€HÐ Ó'Ø)Ø!%€K�Ó%Ø)Ø€Dˆ-ÓØ"Ø&*€EÐ#Ó*Ø)ØƒOØ0Ø(Ó(ØJá*°4Ñ8€Iˆ}Ó8÷Kñ Kð óó ðð ó&ó ð&ð ó"ó ö"r-   r}  c                  ó  • \ rS rSr% SrSrS\S'    SrS\S'    SrS\S'    Sr	S\S	'    Sr
S\S
'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'   Srg)ÚTracerSessionResultió  ziA 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  rˆ   Úlast_run_start_timerK   r  Úsession_feedback_statsúOptional[list[dict[str, Any]]]Ú
run_facetsr  r  r  r  Úfirst_token_p50Úfirst_token_p99rû   Ú
error_rater$   )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Ž  ó  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-   rŽ  c                  óF   • \ rS rSr% SrS\S'    S\S'    \S
S j5       rSrg	)ÚBaseMessageLikei  z7A protocol representing objects similar to BaseMessage.r    Úcontentzdict[Any, Any]Úadditional_kwargsc                ó   • g)z,Type of the Message, used for serialization.Nr$   r>   s    r.   rR  ÚBaseMessageLike.type$  s   � r-   r$   N©rC   r    )	r&   r'   r(   r)   r*   r+   rŸ   rR  r,   r$   r-   r.   r›  r›    s(   ‡ áAàƒLØ%Ø%Ó%ØCàó;ó ó;r-   r›  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   Srg	)
ÚDatasetShareSchemai)  z*Represents the schema for a dataset share.r   rH   Úshare_tokenr    r•   r$   Nr%   r$   r-   r.   r¢  r¢  )  s   ‡ Ù4àÓØ ØÓØ,Ø	ƒHÚ(r-   r¢  c                  óT   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
\S'   Srg)ÚAnnotationQueueRubricItemi4  z…Represents a rubric item assigned to an annotation queue.

Links a feedback config to a queue with optional per-queue customization.
r    Úfeedback_keyr€   r£   zOptional[dict[str, str]]Úvalue_descriptionsÚscore_descriptionsr  Úis_requiredr$   Nr%   r$   r-   r.   r¥  r¥  4  s6   ‡ ñð
 ÓØ=ØÓØCØ0Ó0Ø7Ø0Ó0Ø(ØÓÚNr-   r¥  c                  ó€   • \ rS rSr% SrS\S'    S\S'    SrS\S	'    \" S
 S9rS\S'    \" S S9r	S\S'    S\S'   Sr
g)ÚAnnotationQueueiF  zRepresents an annotation queue.r   rY   r    r¹   Nr€   r£   c                 óJ   • [         R                  " [        R                  5      $ r[   r\   r$   r-   r.   r_   ÚAnnotationQueue.<lambda>O  ra   r-   rb   r   rd   c                 óJ   • [         R                  " [        R                  5      $ r[   r\   r$   r-   r.   r_   r­  Q  ra   r-   Ú
updated_atr€  r$   )r&   r'   r(   r)   r*   r+   r£   r   rd   r¯  r,   r$   r-   r.   r«  r«  F  sP   ‡ Ù)àƒHØ8Ø
ƒIØ+Ø!%€K�Ó%Ø:Ù Ñ1SÑT€J�ÓTØ>Ù Ñ1SÑT€J�ÓTØCØƒOÚDr-   r«  c                  ó(   • \ rS rSr% SrSrS\S'   Srg)ÚAnnotationQueueWithDetailsiW  z,Represents an annotation queue with details.Nr€   Úrubric_instructionsr$   )r&   r'   r(   r)   r*   r²  r+   r,   r$   r-   r.   r±  r±  W  s   ‡ Ù6à)-Ð˜Ó-Ú;r-   r±  c                  ó`   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S\S	'    S
\S'   Srg)ÚBatchIngestConfigi^  z"Configuration for batch ingestion.rh   Úuse_multipart_endpointrB   Úscale_up_qsize_triggerÚscale_up_nthreads_limitÚscale_down_nempty_triggerÚ
size_limitrÈ   Úsize_limit_bytesr$   Nr%   r$   r-   r.   r´  r´  ^  s:   ‡ Ù,à Ó ØDØÓØ<Ø Ó Ø7Ø"Ó"ØAØƒOØ/Ø#Ó#Ú8r-   r´  c                  óX   • \ rS rSr% SrSrS\S'    SrS\S'    SrS	\S
'    Sr	S\S'   Sr
g)ÚLangSmithInfoio  z'Information about the LangSmith server.r  r    ÚversionNrˆ   Úlicense_expiration_timezOptional[BatchIngestConfig]Úbatch_ingest_configrK   Úinstance_flagsr$   )r&   r'   r(   r)   r*   r½  r+   r¾  r¿  rÀ  r,   r$   r-   r.   r¼  r¼  o  s;   ‡ Ù1à€GˆSÓØ.Ø26ÐÐ/Ó6Ø+Ø7;ÐÐ4Ó;ØØ/3€NÐ,Ö3r-   r¼  c                  óL   • \ rS rSr% SrS\S'    S\S'    S\S'    SrS	\S
'   Srg)ÚLangSmithSettingsi~  z"Settings for the LangSmith tenant.r    rY   Údisplay_namer   rd   Nr€   Útenant_handler$   )r&   r'   r(   r)   r*   r+   rÄ  r,   r$   r-   r.   rÂ  rÂ  ~  s)   ‡ Ù,àƒGØØÓØ)ØÓØ*Ø#'€M�=Ö'r-   rÂ  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ÚFeedbackIngestTokeniŠ  z2Represents the schema for a feedback ingest token.r   rY   r    r•   r   Ú
expires_atr$   Nr%   r$   r-   r.   rÆ  rÆ  Š  s   ‡ Ù<àƒHØ.Ø	ƒHØ3ØÓÚ+r-   rÆ  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ÚRunEventi•  zRun event schema.r    r¹   zUnion[datetime, str]ÚtimerK   rŽ   r$   Nr%   r$   r-   r.   rÉ  rÉ  •  s   ‡ Ùà
ƒIØØ
ÓØØ$Ó$Ú,r-   rÉ  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   Srg)	ÚTimeDeltaInputi   zTimedelta input schema.rB   ÚdaysÚhoursÚminutesr$   Nr%   r$   r-   r.   rÌ  rÌ     s   ‡ Ù!à
ƒIØØƒJØØƒLÚr-   rÌ  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   Srg)	ÚDatasetDiffInfoi«  z;Represents the difference information between two datasets.z
list[UUID]Úexamples_modifiedÚexamples_addedÚexamples_removedr$   Nr%   r$   r-   r.   rÑ  rÑ  «  s    ‡ ÙEà!Ó!Ø=ØÓØ:Ø Ó Ú<r-   rÑ  c                  óº   • \ rS rSr% SrS\S'    SrS\S'    SrS\S'    S\S	'    S
\S'    S
\S'    S\S'    SrS\S'    Sr	S\S'    Sr
S\S'    \SS j5       rSrg)ÚComparativeExperimenti¶  z†Represents a comparative experiment.

This information summarizes evaluation results comparing
two or more models on a given dataset.
r   rY   Nr€   r¹   r£   r€  r   rd   r‰   r�  rK   rã   ræ   Úexperiments_infor  c                ó^   • U R                   b  SU R                   ;  a  0 $ U R                   S   $ rë   rø   r>   s    r.   rN   ÚComparativeExperiment.metadataÒ  r‰  r-   r$   rù   )r&   r'   r(   r)   r*   r+   r¹   r£   rã   r×  r  rŸ   rN   r,   r$   r-   r.   rÖ  rÖ  ¶  s‹   ‡ ñð 	ƒHØ?Ø€Dˆ-ÓØ:Ø!%€K�Ó%Ø@ØƒOØGØÓØDØÓØJØÓØJØ&*€EÐ#Ó*Ø?Ø-1ÐÐ*Ó1Ø\Ø/3€NÐ,Ó3ØPàó&ó ó&r-   rÖ  c                  ó¤   • \ rS rSr% Sr\" SS9rS\S'    S\S'    S\S'    S	\S
'    S\S'    SrS\S'    \	" SSS9r
S\S'    \	" SSS9rS\S'   Srg)ÚPromptCommitiÚ  z$Represents a Prompt with a manifest.T)Úpopulate_by_namer    ÚownerÚrepoÚcommit_hashrú   Úmanifestz
list[dict]ÚexamplesNr€   r£   rQ   )rJ   Úaliasrâ   Úhub_model_configÚmodel_providerÚhub_model_providerr$   )r&   r'   r(   r)   r*   r   rQ   r+   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                  óô   • \ rS rSr% SrS\S'    S\S'    S\S'    SrS	\S
'    SrS	\S'    SrS	\S'    Sr	S\S'    Sr
S\S'    SrS\S'    \" \S9rS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'   Srg)ÚListedPromptCommitiñ  z;Represents a listed prompt commit with associated metadata.r   rY   r    rÝ  rÞ  NrX   r  Úrepo_idÚ	parent_idr€   rß  rˆ   rd   r¯  rb   rÿ   Úexample_run_idsr   rÈ   Únum_downloadsÚ	num_viewsÚparent_commit_hashr£   r$   )r&   r'   r(   r)   r*   r+   r  rè  ré  rß  rd   r¯  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                  ó@  • \ rS rSr% SrS\S'    SrS\S'    SrS\S'    S\S	'    S\S
'    S\S'    S\S'    S\S'    S\S'    S\S'    SrS\S'    Sr	S\S'    S\S'    S\S'    S\S'    S\S'    S\S'    Sr
S\S'    SrS\S'    S\S'    SrS\S'    SrS\S '   S!rg)"ÚPrompti  z"Represents a Prompt with metadata.r    Úrepo_handleNr€   r£   ÚreadmerY   r€  r   rd   r¯  rh   Ú	is_publicÚis_archivedr¥   rÙ   Úoriginal_repo_idÚupstream_repo_idrÝ  Ú	full_namerB   Ú	num_likesrë  rì  r  Úliked_by_auth_userÚlast_commit_hashÚnum_commitsÚoriginal_repo_full_nameÚupstream_repo_full_namer$   )r&   r'   r(   r)   r*   r+   r£   rñ  rô  rõ  rø  rù  rû  rü  r,   r$   r-   r.   rï  rï    sê   ‡ Ù,àÓØ!Ø!%€K�Ó%Ø(Ø €FˆMÓ Ø#ØƒGØØƒNØ,ØÓØ*ØÓØ-ØƒOØ'ØÓØ)Ø
ƒOØ.Ø&*Ð�mÓ*Ø3Ø&*Ð�mÓ*Ø3ØÓØ0ØƒNØ<ØƒNØØÓØ"ØƒNØØ)-Ð˜Ó-Ø@Ø&*Ð�mÓ*Ø&ØÓØ Ø-1Ð˜]Ó1Ø:Ø-1Ð˜]Ó1Ú:r-   rï  c                  ó0   • \ rS rSr% SrS\S'    S\S'   Srg)	ÚListPromptsResponseiP  z A list of prompts with metadata.zlist[Prompt]ÚreposrB   rÄ   r$   Nr%   r$   r-   r.   rþ  rþ  P  s   ‡ Ù*àÓØØƒJÚ&r-   rþ  c                  ó.   • \ rS rSrSrSr Sr Sr SrSr	g)	ÚPromptSortFieldiY  z$Enum for sorting fields for prompts.rë  rì  r¯  r÷  r$   N)
r&   r'   r(   r)   r*   rë  rì  r¯  r÷  r,   r$   r-   r.   r  r  Y  s%   † Ù.à#€MØØ€IØØ€JØØ€IÚr-   r  c                  ó4   • \ rS rSr% SrSrS\S'    S\S'   Srg	)
Ú	FileEntryif  zA file with inline content.ÚfilezLiteral['file']rR  r    rœ  r$   NrX  r$   r-   r.   r  r  f  s   ‡ Ù%à"€Dˆ/Ó"ØØƒLÚr-   r  c                  ód   • \ rS rSr% SrSrS\S'    S\S'    SrS	\S
'    SrS\S'    Sr	S\S'   Sr
g)Ú
AgentEntryio  zA link to another agent repo.ÚagentzLiteral['agent']rR  r    rð  NrX   Ú	commit_idr€   rÝ  rß  r$   ©r&   r'   r(   r)   r*   rR  r+   r  rÝ  rß  r,   r$   r-   r.   r  r  o  sC   ‡ Ù'à$€DÐ
Ó$ØØÓØ(Ø $€Iˆ~Ó$Ø6Ø€Eˆ=ÓØ'Ø!%€K�Ó%Ú-r-   r  c                  ód   • \ rS rSr% SrSrS\S'    S\S'    SrS	\S
'    SrS\S'    Sr	S\S'   Sr
g)Ú
SkillEntryi~  zA link to a skill repo.ÚskillzLiteral['skill']rR  r    rð  NrX   r  r€   rÝ  rß  r$   r	  r$   r-   r.   r  r  ~  sC   ‡ Ù!à$€DÐ
Ó$ØØÓØ(Ø $€Iˆ~Ó$Ø6Ø€Eˆ=ÓØ'Ø!%€K�Ó%Ú-r-   r  rR  )Údiscriminatorc                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ÚAgentContexti‘  zAn agent pulled from hub.r   r  r    rß  údict[str, Entry]Úfilesr$   Nr%   r$   r-   r.   r  r  ‘  s   ‡ Ù#àƒOØØÓØØÓÚ!r-   r  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ÚSkillContextiœ  zA skill pulled from hub.r   r  r    rß  r  r  r$   Nr%   r$   r-   r.   r  r  œ  s   ‡ Ù"àƒOØØÓØØÓÚ!r-   r  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ÚDirectoryCommitInfoi§  z0Commit details returned from a directory commit.r   rY   r    rß  r   rd   r$   Nr%   r$   r-   r.   r  r  §  s   ‡ Ù:àƒHØØÓØØÓÚ&r-   r  c                  ó$   • \ rS rSr% SrS\S'   Srg)ÚDirectoryCommitResponsei²  z0Response body for ``POST /directories/commits``.r  Úcommitr$   Nr%   r$   r-   r.   r  r  ²  s   ‡ Ù:àÓÚr-   r  c                  ó`   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S\S'    S\S	'   S
rg)ÚInputTokenDetailsi¹  zvBreakdown of input token counts.

Does *not* need to sum to full input token count. Does *not* need to have all keys.
rB   ÚaudioÚcache_creationÚ
cache_readÚcache_read_over_200kÚephemeral_5m_input_tokensÚephemeral_1h_input_tokensr$   Nr%   r$   r-   r.   r  r  ¹  sG   ‡ ñð
 ƒJØØÓðð ƒOðð Óðà"Ó"ØSØ"Ó"ÚQr-   r  c                  ó0   • \ rS rSr% SrS\S'    S\S'   Srg)ÚOutputTokenDetailsiÔ  zxBreakdown of output token counts.

Does *not* need to sum to full output token count. Does *not* need to have all keys.
rB   r  Ú	reasoningr$   Nr%   r$   r-   r.   r"  r"  Ô  s   ‡ ñð
 ƒJØØƒNòr-   r"  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   Srg)	ÚInputCostDetailsiä  znBreakdown of input token costs.

Does *not* need to sum to full input cost. Does *not* need to have all keys.
rp  r  r  r  r$   Nr%   r$   r-   r.   r%  r%  ä  s)   ‡ ñð
 ƒLØ%ØÓðð Óòr-   r%  c                  ó0   • \ rS rSr% SrS\S'    S\S'   Srg)ÚOutputCostDetailsiù  zpBreakdown of output token costs.

Does *not* need to sum to full output cost. Does *not* need to have all keys.
rp  r  r#  r$   Nr%   r$   r-   r.   r'  r'  ù  s   ‡ ñð
 ƒLØ&ØÓòr-   r'  c                  ó�   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S	\S
'    S\S'    S\S'    S\S'    S\S'    S\S'   Srg)ÚUsageMetadatai	  zˆUsage metadata for a message, such as token counts.

This is a standard representation of token usage that is consistent across models.
rB   r#  r&  r  zNotRequired[InputTokenDetails]r/  zNotRequired[OutputTokenDetails]r2  zNotRequired[float]r)  r,  r  zNotRequired[InputCostDetails]r5  zNotRequired[OutputCostDetails]r8  r$   Nr%   r$   r-   r.   r)  r)  	  sk   ‡ ñð
 ÓØJØÓØPØÓØAØ7Ó7ðð :Ó9ðð #Ó"Ø'Ø#Ó#Ø(Ø"Ó"Ø'Ø5Ó5Ø/Ø7Ó7Ú0r-   r)  c                  ó�   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S	\S
'    S\S'    S\S'    S\S'    S\S'    S\S'   Srg)ÚExtractedUsageMetadatai+  zƒUsage metadata dictionary extracted from a run.

Should be the same as UsageMetadata, but does not require all
keys to be present.
rB   r#  r&  r  r  r/  r"  r2  rp  r)  r,  r  r%  r5  r'  r8  r$   Nr%   r$   r-   r.   r+  r+  +  sc   ‡ ñð ÓØ3ØÓØ3ØÓØ*Ø*Ó*Ø*Ø,Ó,Ø+ØÓØ'ØÓØ(ØÓØ'Ø(Ó(Ø/Ø*Ó*Ú0r-   r+  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ÚUpsertExamplesResponseiH  zCResponse object returned from the upsert_examples_multipart method.rB   Úcountr¥   Úexample_idszNotRequired[str | None]rÚ   r$   Nr%   r$   r-   r.   r-  r-  H  s   ‡ ÙMàƒJØ4ØÓØ5Ø"Ó"Úcr-   r-  c                  ó0   • \ rS rSr% Sr\" \S9rS\S'   Sr	g)ÚExampleWithRunsiS  zExample with runs.rb   z	list[Run]Úrunsr$   N)
r&   r'   r(   r)   r*   r   r¨   r2  r+   r,   r$   r-   r.   r1  r1  S  s   ‡ Ùá¨DÑ1€Dˆ)Ó1â"r-   r1  c                  óÀ   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S'    S\S	'    S\S
'    S\S'    S\S'    S\S'    S\S'    S\S'    S\S'    S\S'    S\S'   Srg)ÚExperimentRunStatsi[  z!Run statistics for an experiment.rÈ   r�  r�  r‘  r’  r  r  r  rˆ   r“  r•  r–  r  r  r  r  r—  r˜  rû   r™  r$   Nr%   r$   r-   r.   r4  r4  [  sƒ   ‡ Ù+àÓØ,Ø$Ó$Ø?Ø$Ó$Ø6ØÓØ=Ø Ó ØDØ$Ó$ØHØ+Ó+Ø8Ø.Ó.Ø-Ø!Ó!ØMØ"Ó"ØGØ&Ó&ØCØ(Ó(ØGØ(Ó(Ø>ØÓÚ)r-   r4  c                  ó<   • \ rS rSr% SrS\S'    S\S'    S\S'   S	rg
)ÚExperimentResultsi|  z¨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  r4  Ú	run_statszIterator[ExampleWithRuns]Úexamples_with_runsr$   Nr%   r$   r-   r.   r6  r6  |  s!   ‡ ñð ÓØ1Ø!Ó!Ø6Ø1Ö1r-   r6  c                  ó‚   • \ rS rSr% SrS\S'   S\S'   S\S'   SrS	\S
'   S\S'   S\S'   S\S'   \SS j5       rSS jr	Sr
g)ÚInsightsReportiŠ  zHAn Insights Report created by the Insights Agent over a tracing project.ú
UUID | strrY   r    r¹   r  Nú
str | Nonerä   Ú
project_idÚhost_urlr€  c           	     ó¢   • U R                    S[        U R                  5       S[        U R                  5       S[        U R                  5       3$ )z1URL to view this Insights Report in LangSmith UI.r“   r…  z?tab=4&clusterJobId=)r>  r    r€  r=  rY   r>   s    r.   ÚlinkÚInsightsReport.link•  sH   € ð —-‘-� ¤C¨¯©Ó$7Ð#8¸ÄSÈÏÉÓEYÐDZÐZnÔorÐsw×szÑszÓo{Ðn|Ð}Ð}r-   c                ó<   • SU R                    SU R                   S3$ )Nz	<a href="z2", target="_blank" rel="noopener">InsightsReport('z')</a>)r@  r¹   r>   s    r.   Ú_repr_html_ÚInsightsReport._repr_html_š  s%   € Ø˜4Ÿ9™9˜+Ð%XÐY]×YbÑYbÐXcÐcjÐkÐkr-   r$   r   )r&   r'   r(   r)   r*   r+   rä   rŸ   r@  rC  r,   r$   r-   r.   r:  r:  Š  sI   ‡ ÙRàƒNØ
ƒIØƒKØ€Eˆ:ÓØÓØƒMØÓàó~ó ð~÷lr-   r:  c                  ób   • \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   S
\S'   S\S'   SrS\S'   Sr	g)ÚInsightsHighlightedTraceiž  z2A trace highlighted in an insights report summary.r;  rb  NúUUID | str | NoneÚ
cluster_idr<  Úcluster_namerB   Úrankr    Úhighlight_reasonÚsummaryr$   )
r&   r'   r(   r)   r*   r+   rH  rI  rL  r,   r$   r-   r.   rF  rF  ž  s5   ‡ Ù<àÓØ$(€JÐ!Ó(Ø#€L�*Ó#Ø
ƒIØÓØ€GˆZÖr-   rF  c                  ób   • \ rS rSr% Sr\" \S9rS\S'   Sr	S\S'   \" \S9r
S	\S
'   SrS\S'   Srg)ÚInsightsSummaryReporti©  zIHigh-level summary of an insights job: key points and highlighted traces.rb   r¥   Ú
key_pointsNr<  Útitlezlist[InsightsHighlightedTrace]Úhighlighted_traceszdatetime | Nonerd   r$   )r&   r'   r(   r)   r*   r   r¨   rO  r+   rP  rQ  rd   r,   r$   r-   r.   rN  rN  ©  s9   ‡ ÙSá!°$Ñ7€J�	Ó7Ø€Eˆ:ÓÙ9>ÈtÑ9TÐÐ6ÓTØ"&€J�Ö&r-   rN  c                  óv   • \ rS rSr% SrS\S'   SrS\S'   S\S	'   S
\S'   S
\S'   SrS\S'   S\S'   SrS\S'   Sr	g)ÚInsightsClusteri²  z/A single cluster of runs in an insights report.r;  rY   NrG  ré  rB   Úlevelr    r¹   r£   r<  Úparent_nameÚnum_runsúdict[str, Any] | NoneÚstatsr$   )
r&   r'   r(   r)   r*   r+   ré  rU  rX  r,   r$   r-   r.   rS  rS  ²  s?   ‡ Ù9àƒNØ#'€IÐ Ó'ØƒJØ
ƒIØÓØ"€K�Ó"ØƒMØ#'€EÐ Ö'r-   rS  )rH  c               óx  • SSK Jn  / nSnSnUbª  XgS.nUb  [        U5      US'   U R                  SSU S	U S
3US9n	UR	                  U	5        U	R                  5       n
U
R                  S/ 5      =(       d    / nUR                  U5        U
R                  S5      nUc  SnO[        U5      nU(       d  SnUb  Mª  U$ )zHFetch runs for an Insights job, optionally filtered to a single cluster.r   )Úutilséd   N)Úlimitr9   rH  ÚGETz
/sessions/z
/insights/z/runs)Úparamsr2  r9   )	Ú	langsmithrZ  r    Úrequest_with_retriesÚraise_for_status_with_textÚjsonrð   ÚextendrB   )Úclientrþ   Újob_idrH  Úls_utilsÚall_runsr\  Únext_offsetr^  ÚrespÚbodyÚbatchÚreturned_offsets                r.   Ú_fetch_insights_runsrm  ¿  sÛ   € õ ,à%'€HØ€EØ€KØ
Ñ
!Ø+0Ñ!HˆØÑ!Ü#& z£?ˆF�<Ñ à×*Ñ*ØØ˜˜ J¨v¨h°eÐ<Øð +ð 
ˆð
 	×+Ñ+¨DÔ1Ø�y‰y‹{ˆØ—‘˜ Ó$×*¨ˆØ�‰˜ÔØŸ(™( 8Ó,ˆØÑ"Ø‰Kä˜oÓ.ˆKÞØ"�ð) Ó
!ð* €Or-   c                  óN   • \ rS 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r
Srg	)Ú_ClusterWithTracesiä  zYCluster wrapper that can load its traces from the API. Returned by report.clusters[name].©Ú_clusterÚ_reportc                ó   • Xl         X l        g r[   rp  )r3   ÚclusterÚreports      r.   rq   Ú_ClusterWithTraces.__init__é  s   € ØŒØ�r-   c                ó.   • [        U R                  U5      $ r[   )Úgetattrrq  )r3   r¹   s     r.   Ú__getattr__Ú_ClusterWithTraces.__getattr__í  s   € Ü�t—}‘} dÓ+Ð+r-   c                óŽ   • [        [        [        U R                  5      5      [        [        U R                  5      5      -  5      $ r[   )r¨   ÚsetÚdirrs   rq  r>   s    r.   Ú__dir__Ú_ClusterWithTraces.__dir__ð  s.   € Ü”Cœ˜DŸN™NÓ+Ó,¬s´3°t·}±}Ó3EÓ/FÑFÓGÐGr-   c                ó8   • SU R                   R                  < S3$ )Nz_ClusterWithTraces(name=Ú))rq  r¹   r>   s    r.   r›   Ú_ClusterWithTraces.__repr__ó  s   € Ø)¨$¯-©-×*<Ñ*<Ñ)?¸qÐAÐAr-   c                ó
  • [        U R                  SS5      nUc  [        S5      e[        U R                  SS5      n[        U R                  SS5      nUb  Uc  [        S5      e[        UUUU R                  R
                  S9$ )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)rd  rþ   re  rH  )rx  rr  Ú
ValueErrorrm  rq  rY   ©r3   rd  rþ   re  s       r.   Úload_tracesÚ_ClusterWithTraces.load_tracesö  sˆ   € ä˜Ÿ™ y°$Ó7ˆØ‰>ÜØ_óð ô ˜TŸ\™\¨=¸$Ó?ˆ
Ü˜Ÿ™ y°$Ó7ˆØÑ ¡ÜÐ=Ó>Ð>ä#ØØ!ØØ—}‘}×'Ñ'ñ	
ð 	
r-   N)rt  rS  ru  ÚInsightsReportResultrC   r�   )r¹   r    rC   r   rŒ  r   )rC   úlist[dict[str, Any]])r&   r'   r(   r)   r*   Ú	__slots__rq   ry  r~  r›   r‰  r,   r$   r-   r.   ro  ro  ä  s%   † Ùcà'€Iôô,ôHôB÷
r-   ro  c                  óV   • \ rS rSrSrSr      S
S jrSS jrS rSS jr	SS jr
Srg	)Ú_ClustersMapi
  zWList-like map of clusters by name. Supports report.clusters['name'] and .load_traces().)Ú	_clustersrr  c                ó0   • [        U5      U l        X l        g r[   )r¨   r�  rr  )r3   Úclustersru  s      r.   rq   Ú_ClustersMap.__init__  s   € ô
 ˜h›ˆŒØ�r-   c           	     ó0  • [        U[        5      (       a  U R                  U   nOXU R                   Vs0 s H  o3R                  U_M     nnX;  a)  [	        SU< S[        UR                  5       5       35      eXA   n[        X R                  5      $ s  snf )NzCluster z not found; available: )	Ú
isinstancerB   r�  r¹   ÚKeyErrorr¨   Úkeysro  rr  )r3   rc  rt  ÚcÚby_names        r.   Ú__getitem__Ú_ClustersMap.__getitem__  sˆ   € Ü�cœ3×ÑØ—n‘n SÑ)‰Gà*.¯.ª.Ó9ª. Q—v‘v˜q’y©.ˆGÐ9ØÓ!ÜØ˜s™gÐ%<¼TÀ'Ç,Á,Ã.Ó=QÐ<RÐSóð ð ‘lˆGÜ! '¯<©<Ó8Ð8ùò :s   ´Bc                ó0   ^ • U 4S jT R                    5       $ )Nc              3  óP   >#   • U  H  n[        UTR                  5      v •  M     g 7fr[   )ro  rr  )Ú.0r˜  r3   s     €r.   Ú	<genexpr>Ú(_ClustersMap.__iter__.<locals>.<genexpr>$  s    øé € ÐLº^¸Ô" 1 d§l¡l×3Ð3º^ùs   ƒ#&)r�  r>   s   `r.   Ú__iter__Ú_ClustersMap.__iter__#  s   ø€ ÜL¸T¿^º^ÓLÐLr-   c                ó,   • [        U R                  5      $ r[   ©Úlenr�  r>   s    r.   Ú__len__Ú_ClustersMap.__len__&  s   € Ü�4—>‘>Ó"Ð"r-   c                ó4   • S[        U R                  5       S3$ )Nz_ClustersMap(n_clusters=r�  r¤  r>   s    r.   r›   Ú_ClustersMap.__repr__)  s   € Ø)¬#¨d¯n©nÓ*=Ð)>¸aÐ@Ð@r-   N)r’  úlist[InsightsCluster]ru  r‹  rC   r�   )rc  z	str | intrC   ro  )rC   rB   r   )r&   r'   r(   r)   r*   r�  rq   rš  r¡  r¦  r›   r,   r$   r-   r.   r�  r�  
  sA   † Ùaà(€Iðà'ðð %ðð 
ô	ô
9òMô#÷Ar-   r�  c                  óR  • \ rS rSr% SrS\S'   S\S'   S\S'   SrS	\S
'   SrS	\S'   SrS	\S'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   \" \S9rS\S'   SrS\S'   \" \S9rS\S'    \" SS9rS\S'   \" SS9rS\S'   \" SS9rS\S '   \" S!S"9r        S'S# jrS(S$ jrS(S% jrS&rg))r‹  i-  zVFull result of fetching an Insights report (job + clusters + summary + optional runs).r;  rY   r    r¹   r  Nzdatetime | str | Nonerß   rá   rd   rW  rN   r;  Úshaper<  rä   rG  Ú	config_idrb   rª  r’  zInsightsSummaryReport | Noneru  rŒ  r2  rI   r   r„  r…  r†  Úallowrø   c                ó  • [         R                  U SU5        [         R                  U S[        U5      5        [         R                  U S[        U5      5        [         R                  U S[        U R                  U 5      5        g)zXAttach client and ids so clusters can load traces. Called by Client.get_insights_report.r„  r…  r†  r’  N)ÚobjectÚ__setattr__r    r�  r’  rˆ  s       r.   Ú_attach_clientÚ#InsightsReportResult._attach_clientE  sd   € ô 	×Ñ˜4 ¨FÔ3Ü×Ñ˜4 ´°J³Ô@Ü×Ñ˜4 ¬C°«KÔ8Ü×ÑØØÜ˜Ÿ™¨Ó-õ	
r-   c                óL  • U R                   n[        US5      (       a!  [        R                  U SUR                  5         U R                  SS9[        US5      (       a  [        R                  U SU5        $ $ ! [        US5      (       a  [        R                  U SU5        f f = f)z?Return the report as a JSON-serializable dict (raw JSON shape).r�  r’  rb  ©Úmode)r’  Úhasattrr°  r±  r�  Ú
model_dump)r3   Úclusters_vals     r.   Úto_jsonÚInsightsReportResult.to_jsonU  s�   € à—}‘}ˆÜ�< ×-Ñ-Ü×Ñ˜t Z°×1GÑ1GÔHð	CØ—?‘?¨�?Ð/ä�| [×1Ñ1Ü×"Ñ" 4¨°\ÕBð 2øŒw�| [×1Ñ1Ü×"Ñ" 4¨°\ÕBð 2ús   Á A8 Á8+B#c                ó    • U R                  SS9$ )zHReturn the report as a JSON-serializable dict (e.g. for saving to file).rb  rµ  )r¸  r>   s    r.   Úmodel_dump_json_dictÚ)InsightsReportResult.model_dump_json_dict`  s   € à�‰ FˆÐ+Ð+r-   r$   )rd  r   rþ   ú
str | UUIDre  r¿  rC   r�   rù   )r&   r'   r(   r)   r*   r+   rß   rá   rd   rN   r¬  rä   r­  r   r¨   r’  ru  r2  r   r„  r…  r†  r   rQ   r²  rº  r½  r,   r$   r-   r.   r‹  r‹  -  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-   r‹  c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)ÚFeedbackFormulaWeightedVariableie  zBA feedback key and weight used when calculating feedback formulas.zLiteral['weighted_key']Ú	part_typerp  Úweightz#Annotated[str, Field(min_length=1)]rc  r$   Nr%   r$   r-   r.   rÁ  rÁ  e  s   ‡ ÙLà&Ó&ØƒMØ	,Ö,r-   rÁ  c                  ód   • \ rS rSr% SrSrS\S'   SrS\S'   S\S'   S	\S
'   \" SSSS9r	S\S'   Sr
g)ÚFeedbackFormulaCreateim  z,Schema used for creating a feedback formula.NrX   rH   rþ   r    r¦  úLiteral['sum', 'avg']Úaggregation_type.é   é2   ©Ú
min_lengthÚ
max_lengthú%list[FeedbackFormulaWeightedVariable]Úformula_partsr$   )r&   r'   r(   r)   r*   rH   r+   rþ   r   rÎ  r,   r$   r-   r.   rÅ  rÅ  m  s>   ‡ Ù6à!%€J�Ó%Ø!%€J�Ó%ØÓØ+Ó+Ù;@Ø˜ bñ<€MÐ8ö r-   rÅ  c                  óH   • \ rS rSr% SrS\S'   S\S'   \" SSS	S
9rS\S'   Srg)ÚFeedbackFormulaUpdateiy  z,Schema used for updating a feedback formula.r    r¦  rÆ  rÇ  .rÈ  rÉ  rÊ  rÍ  rÎ  r$   N)	r&   r'   r(   r)   r*   r+   r   rÎ  r,   r$   r-   r.   rÐ  rÐ  y  s*   ‡ Ù6àÓØ+Ó+Ù;@Ø˜ bñ<€MÐ8ö r-   rÐ  c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
ÚFeedbackFormulaiƒ  z%Schema for getting feedback formulas.r   rY   r   rd   r‰   r$   Nr%   r$   r-   r.   rÒ  rÒ  ƒ  s   ‡ Ù/àƒHØÓØÖr-   rÒ  c                  óX   • \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    SrS\S'   Srg)ÚFeedbackConfigSchemai‹  z÷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    r¦  rs  ry  r   r€  r   r‰   Nr  Úis_lower_score_betterr$   )r&   r'   r(   r)   r*   r+   rÕ  r,   r$   r-   r.   rÔ  rÔ  ‹  s:   ‡ ñð ÓØAØ#Ó#ØHØƒOØEØÓØ=Ø,0Ð˜>Ó0ÚKr-   rÔ  )
rd  r   rþ   r¿  re  r¿  rH  zstr | UUID | NonerC   rŒ  )‡r*   Ú
__future__r   ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arÚcollections.abcr   r   r   r   Údecimalr   Úenumr	   Úpathlibr
   Útypingr   r   r   r   r   r   r   Úuuidr   Úpydanticr   r   r   r   r   r   r   Útyping_extensionsr   r   r   rd  r§   r    rf  r   ÚtuplerD   rK  r0   rF   rS   Ú_AttachmentLikerV   ÚExampleUploadWithAttachmentsry   r|   r‚   r¡   rª   ÚExampleUpdateWithAttachmentsr±   r·   ÚDatasetTransformationTyperÁ   rÆ   rØ   rÜ   rÞ   rý   r=  rE  rM  rQ  rV  rZ  r]  ra  ro  rs  rx  r{  r}  rŽ  r›  r¢  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-  r1  r4  r6  r:  rF  rN  rS  rm  ro  r�  r‹  rÁ  rÅ  rÐ  rÒ  rÔ  r$   r-   r.   Ú<module>rì     sy  ðÙ $å "ç  „ Õ $ß 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ô"< ô <ô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ôl�Yô lô(˜yô ô'˜Iô 'ô
(�iô 
(ð$ %)ñ"Øð"àð"ð ð"ð
 "ð"ð õ"÷J#
ñ #
÷L Añ  AôF5,˜9ô 5,ôp- iô -ô	˜Iô 	ô˜Iô ôÐ+ô ôL˜9õ Lr-   