
    _jZ(                    T   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   r " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r\\	\\\4   \" SS94   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 " S! S"\5      r " S# S$\5      r " S% S&\5      r " S' S(\5      r  " S) S*\5      r!\	\\4   r"\	\\\4   r#\	\\\!4   r$\	\"\#\$4   r% " S+ S,\5      r& " S- S.\5      r' " S/ S0\'5      r( " S1 S2\'5      r) " S3 S4\'5      r* " S5 S6\'5      r+ " S7 S8\'5      r,\\	\(\)\*\+\,4   \" S9S94   r- " S: S;\5      r. " S< S=\5      r/\\-   r0\/r1\\%   r2\\   r3/ S>Qr4g?)@    )annotations)	AnnotatedAnyDictListLiteralOptionalUnion)	BaseModelField	RootModel)zexa-research-fastexa-researchzexa-research-proc                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)CostDollars   floattotalz)Annotated[float, Field(alias='numPages')]	num_pagesz,Annotated[float, Field(alias='numSearches')]num_searchesz0Annotated[float, Field(alias='reasoningTokens')]reasoning_tokens N__name__
__module____qualname____firstlineno____annotations____static_attributes__r       K/home/rurouni/.local/lib/python3.13/site-packages/exa_py/research/models.pyr   r      s    L88>>FFr   r   c                       \ rS rSr% S\S'   Srg)Result   strurlr   Nr   r   r   r    r"   r"      s    	Hr   r"   c                  *    \ rS rSr% S\S'   S\S'   Srg)ResearchThinkOperation   zLiteral['think']typer$   contentr   Nr   r   r   r    r'   r'      s    
Lr   r'   c                  V    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   SrS\S'   Srg)ResearchSearchOperation   zLiteral['search']r)   zRAnnotated[Literal['neural', 'keyword', 'auto', 'fast'], Field(alias='searchType')]search_typer$   queryzList[Result]results+Annotated[float, Field(alias='pageTokens')]page_tokensNOptional[str]goalr   r   r   r   r   r   r4   r   r   r   r    r,   r,      s/    
  J<<D-r   r,   c                  B    \ rS rSr% S\S'   S\S'   S\S'   SrS	\S
'   Srg)ResearchCrawlOperation&   zLiteral['crawl']r)   r"   resultr1   r2   Nr3   r4   r   r5   r   r   r    r7   r7   &   s    
N<<D-r   r7   r)   )discriminatorc                  L    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rS\S'   Srg
)ResearchDefinitionEvent3   zCAnnotated[Literal['research-definition'], Field(alias='eventType')]
event_type)Annotated[str, Field(alias='researchId')]research_idWAnnotated[float, Field(alias='createdAt', description='Milliseconds since epoch time')]
created_atr$   instructionsN@Annotated[Optional[Dict[str, Any]], Field(alias='outputSchema')]output_schemar   )r   r   r   r   r   rE   r   r   r   r    r<   r<   3   s0    SS::   S r   r<   c                  B    \ rS rSr% S\S'   S\S'   S\S'   SrS	\S
'   Srg)ResearchOutputCompleted?   :Annotated[Literal['completed'], Field(alias='outputType')]output_typer$   r*   2Annotated[CostDollars, Field(alias='costDollars')]cost_dollarsNOptional[Dict[str, Any]]parsedr   r   r   r   r   r   rN   r   r   r   r    rG   rG   ?   s    KKLDD'+F$+r   rG   c                  *    \ rS rSr% S\S'   S\S'   Srg)ResearchOutputFailedF   z7Annotated[Literal['failed'], Field(alias='outputType')]rJ   r$   errorr   Nr   r   r   r    rQ   rQ   F   s    HHJr   rQ   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)ResearchOutputEventK   z?Annotated[Literal['research-output'], Field(alias='eventType')]r>   r?   r@   rA   rB   zcAnnotated[Union[ResearchOutputCompleted, ResearchOutputFailed], Field(discriminator='output_type')]outputr   Nr   r   r   r    rU   rU   K   s"    OO::  r   rU   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)ResearchPlanDefinitionEventW   z?Annotated[Literal['plan-definition'], Field(alias='eventType')]r>   r?   r@   %Annotated[str, Field(alias='planId')]plan_idrA   rB   r   Nr   r   r   r    rY   rY   W   s    OO::22 r   rY   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)ResearchPlanOperationEvent`   z>Annotated[Literal['plan-operation'], Field(alias='eventType')]r>   r?   r@   r[   r\   *Annotated[str, Field(alias='operationId')]operation_idrA   rB   ResearchOperationdatar   Nr   r   r   r    r^   r^   `   s,    NN::22<<  r   r^   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
ResearchPlanOutputTasksk   z6Annotated[Literal['tasks'], Field(alias='outputType')]rJ   r$   	reasoningz6Annotated[List[str], Field(alias='tasksInstructions')]tasks_instructionsr   Nr   r   r   r    re   re   k   s    GGNNNr   re   c                  *    \ rS rSr% S\S'   S\S'   Srg)ResearchPlanOutputStopq   z5Annotated[Literal['stop'], Field(alias='outputType')]rJ   r$   rg   r   Nr   r   r   r    rj   rj   q   s    FFNr   rj   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)ResearchPlanOutputEventv   z;Annotated[Literal['plan-output'], Field(alias='eventType')]r>   r?   r@   r[   r\   rA   rB   zeAnnotated[Union[ResearchPlanOutputTasks, ResearchPlanOutputStop], Field(discriminator='output_type')]rW   r   Nr   r   r   r    rm   rm   v   s(    KK::22  r   rm   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)ResearchTaskDefinitionEvent   z?Annotated[Literal['task-definition'], Field(alias='eventType')]r>   r?   r@   r[   r\   %Annotated[str, Field(alias='taskId')]task_idrA   rB   r$   rC   r   Nr   r   r   r    rp   rp      s,    OO::2222  r   rp   c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   Srg)ResearchTaskOperationEvent   z>Annotated[Literal['task-operation'], Field(alias='eventType')]r>   r?   r@   r[   r\   rr   rs   r`   ra   rA   rB   rb   rc   r   Nr   r   r   r    ru   ru      s2    NN::2222<<  r   ru   c                  *    \ rS rSr% S\S'   S\S'   Srg)ResearchTaskOutput   rI   rJ   r$   r*   r   Nr   r   r   r    rx   rx      s    KKLr   rx   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   Srg)ResearchTaskOutputEvent   z;Annotated[Literal['task-output'], Field(alias='eventType')]r>   r?   r@   r[   r\   rr   rs   rA   rB   rx   rW   r   Nr   r   r   r    r{   r{      s,    KK::2222  r   r{   c                  .    \ rS rSr% S\S'   SrS\S'   Srg)ResearchOutput   r$   r*   NrM   rN   r   rO   r   r   r    r~   r~      s    L'+F$+r   r~   c                  P    \ rS rSr% S\S'   S\S'   SrS\S'   S	\S
'   SrS\S'   Srg)ResearchBaseDto   zgAnnotated[str, Field(alias='researchId', description='The unique identifier for the research request')]r@   rA   rB   r   zVAnnotated[ResearchModel, Field(description='The model used for the research request')]modelzTAnnotated[str, Field(description='The instructions given to this research request')]rC   NrD   rE   r   )r   r   r   r   r   r   rE   r   r   r   r    r   r      sF       	 
    	 S r   r   c                       \ rS rSr% S\S'   Srg)ResearchPendingDto   zLiteral['pending']statusr   Nr   r   r   r    r   r      s    r   r   c                  .    \ rS rSr% S\S'   SrS\S'   Srg)ResearchRunningDto   zLiteral['running']r   NOptional[List[ResearchEvent]]eventsr   r   r   r   r   r   r   r   r   r   r    r   r      s    ,0F)0r   r   c                  L    \ rS rSr% S\S'   S\S'   SrS\S'   S	\S
'   S\S'   Srg)ResearchCompletedDto   zLiteral['completed']r   rA   finished_atNr   r   r~   rW   rK   rL   r   r   r   r   r    r   r      s+        -1F)0DDr   r   c                  8    \ rS rSr% S\S'   S\S'   SrS\S'   S	rg)
ResearchCanceledDto   zLiteral['canceled']r   rA   r   Nr   r   r   r   r   r   r    r   r      s      -1F)0r   r   c                  B    \ rS rSr% S\S'   S\S'   SrS\S'   S	\S
'   Srg)ResearchFailedDto   zLiteral['failed']r   rA   r   Nr   r   zPAnnotated[str, Field(description='A message indicating why the request failed')]rS   r   r   r   r   r    r   r      s)      -1F)0 r   r   r   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
ListResearchResponseDtoi  zPAnnotated[List[ResearchDto], Field(description='The list of research requests')]rc   ziAnnotated[bool, Field(alias='hasMore', description='Whether there are more results to paginate through')]has_morezyAnnotated[Optional[str], Field(alias='nextCursor', description='The cursor to paginate through the next set of results')]next_cursorr   Nr   r   r   r    r   r     s        r   r   c                  <    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
rg)ResearchCreateRequestDtoi  r   ResearchModelr   zhAnnotated[str, Field(description='Instructions for what research should be conducted', max_length=4096)]rC   NrD   rE   r   )r   r   r   r   r   r   rE   r   r   r   r    r   r     s(    )E=)  	 S r   r   )&r   r"   r'   r,   r7   rb   r<   rG   rQ   rU   rY   r^   re   rj   rm   rp   ru   rx   r{   ResearchMetaEventr   ResearchPlanEventResearchTaskEventResearchEventr~   r   r   r   r   r   r   ResearchDtor   r   ResearchDtoClassResearchCreateRequestDtoClassResearchEventDtoClassResearchOperationDtoClassN)5
__future__r   typingr   r   r   r   r   r	   r
   pydanticr   r   r   r   r   r"   r'   r,   r7   rb   r<   rG   rQ   rU   rY   r^   re   rj   rm   rp   ru   rx   r{   r   r   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   __all__r   r   r    <module>r      s\   " G G G 0 0 OPG) GY Y 
i Y  	
 "9;Q
QR	! 	i 	,i ,9 
	) 	)  Oi OY 

i 
) 	 	 
i  13FFG !;=TT  !;=TT  '):<MMN,Y ,
i . 1 1
E? E1/ 1  			 
!#	i (y  [)  8 !-0 %&78 'r   