+
    WiZ(                    V   ^ RI Ht ^ RIHtHtHtHtHtHtH	t	 ^ RI
HtHtHt ]RI,          t ! R R]4      t ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t]]	]]]3,          ]! RR7      3,          t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R  R!]4      t ! R" R#]4      t ! R$ R%]4      t ! R& R']4      t  ! R( R)]4      t!]	]]3,          t"]	]]]3,          t#]	]]]!3,          t$]	]"]#]$3,          t% ! R* R+]4      t& ! R, R-]4      t' ! R. R/]'4      t( ! R0 R1]'4      t) ! R2 R3]'4      t* ! R4 R5]'4      t+ ! R6 R7]'4      t,]]	](])]*]+],3,          ]! R8R7      3,          t- ! R9 R:]4      t. ! R; R<]4      t/]]-,          t0]/t1]]%,          t2]],          t3. RNRNR	NRNRNR=NRNRNRNRNRNRNRNRNR!NR#NR%NR'NR)NR>NR?NR@NRANRBNR+NR-NR/NR1NR3NR5NR7NRCNR:NR<NRDNRENRFNRGNt4RH# )J    )annotations)	AnnotatedAnyDictListLiteralOptionalUnion)	BaseModelField	RootModelc                  @    ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R	tR
# )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       U/home/ubuntu/hermes-agent/venv/lib/python3.14/site-packages/exa_py/research/models.pyr   r      s    L88>>FFr   r   c                  "    ] tR t^t$ R]R&   RtR# )Resultstrurlr   Nr   r   r   r   r    r       s    	Hr   r    c                  ,    ] tR t^t$ R]R&   R]R&   RtR# )ResearchThinkOperationzLiteral['think']typer!   contentr   Nr   r   r   r   r$   r$      s    
Lr   r$   c                  X    ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   RtR]R&   RtR# )ResearchSearchOperationz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   r/   r   r   r   r   r(   r(      s/    
  J<<D-r   r(   c                  D    ] tR t^&t$ R]R&   R]R&   R]R&   RtR]R	&   R
tR# )ResearchCrawlOperationzLiteral['crawl']r%   r    resultr,   r-   Nr.   r/   r   r0   r   r   r   r2   r2   &   s    
N<<D-r   r2   r%   )discriminatorc                  N    ] tR t^3t$ R]R&   R]R&   R]R&   R]R&   R	tR
]R&   RtR	# )ResearchDefinitionEventzCAnnotated[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   r>   r   r   r   r   r6   r6   3   s0    SS::   S r   r6   c                  D    ] tR t^?t$ R]R&   R]R&   R]R&   RtR]R	&   R
tR# )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   rF   r   r   r   r   r@   r@   ?   s    KKLDD'+F$+r   r@   c                  ,    ] tR t^Ft$ R]R&   R]R&   RtR# )ResearchOutputFailedz7Annotated[Literal['failed'], Field(alias='outputType')]rB   r!   errorr   Nr   r   r   r   rI   rI   F   s    HHJr   rI   c                  @    ] tR t^Kt$ R]R&   R]R&   R]R&   R]R&   R	tR
# )ResearchOutputEventz?Annotated[Literal['research-output'], Field(alias='eventType')]r7   r8   r9   r:   r;   zcAnnotated[Union[ResearchOutputCompleted, ResearchOutputFailed], Field(discriminator='output_type')]outputr   Nr   r   r   r   rL   rL   K   s"    OO::  r   rL   c                  @    ] tR t^Wt$ R]R&   R]R&   R]R&   R]R&   R	tR
# )ResearchPlanDefinitionEventz?Annotated[Literal['plan-definition'], Field(alias='eventType')]r7   r8   r9   %Annotated[str, Field(alias='planId')]plan_idr:   r;   r   Nr   r   r   r   rO   rO   W   s    OO::22 r   rO   c                  T    ] tR t^`t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   RtR# )ResearchPlanOperationEventz>Annotated[Literal['plan-operation'], Field(alias='eventType')]r7   r8   r9   rP   rQ   *Annotated[str, Field(alias='operationId')]operation_idr:   r;   ResearchOperationdatar   Nr   r   r   r   rS   rS   `   s,    NN::22<<  r   rS   c                  6    ] tR t^kt$ R]R&   R]R&   R]R&   RtR# )	ResearchPlanOutputTasksz6Annotated[Literal['tasks'], Field(alias='outputType')]rB   r!   	reasoningz6Annotated[List[str], Field(alias='tasksInstructions')]tasks_instructionsr   Nr   r   r   r   rY   rY   k   s    GGNNNr   rY   c                  ,    ] tR t^qt$ R]R&   R]R&   RtR# )ResearchPlanOutputStopz5Annotated[Literal['stop'], Field(alias='outputType')]rB   r!   rZ   r   Nr   r   r   r   r]   r]   q   s    FFNr   r]   c                  J    ] tR t^vt$ R]R&   R]R&   R]R&   R]R&   R	]R
&   RtR# )ResearchPlanOutputEventz;Annotated[Literal['plan-output'], Field(alias='eventType')]r7   r8   r9   rP   rQ   r:   r;   zeAnnotated[Union[ResearchPlanOutputTasks, ResearchPlanOutputStop], Field(discriminator='output_type')]rM   r   Nr   r   r   r   r_   r_   v   s(    KK::22  r   r_   c                  T    ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   RtR# )ResearchTaskDefinitionEventz?Annotated[Literal['task-definition'], Field(alias='eventType')]r7   r8   r9   rP   rQ   %Annotated[str, Field(alias='taskId')]task_idr:   r;   r!   r<   r   Nr   r   r   r   ra   ra      s,    OO::2222  r   ra   c                  ^    ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R]R&   RtR# )ResearchTaskOperationEventz>Annotated[Literal['task-operation'], Field(alias='eventType')]r7   r8   r9   rP   rQ   rb   rc   rT   rU   r:   r;   rV   rW   r   Nr   r   r   r   re   re      s2    NN::2222<<  r   re   c                  ,    ] tR t^t$ R]R&   R]R&   RtR# )ResearchTaskOutputrA   rB   r!   r&   r   Nr   r   r   r   rg   rg      s    KKLr   rg   c                  T    ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   RtR# )ResearchTaskOutputEventz;Annotated[Literal['task-output'], Field(alias='eventType')]r7   r8   r9   rP   rQ   rb   rc   r:   r;   rg   rM   r   Nr   r   r   r   ri   ri      s,    KK::2222  r   ri   c                  0    ] tR t^t$ R]R&   RtR]R&   RtR# )ResearchOutputr!   r&   NrE   rF   r   rG   r   r   r   rk   rk      s    L'+F$+r   rk   c                  R    ] tR t^t$ R]R&   R]R&   RtR]R&   R]R	&   R
tR]R&   RtR
# )ResearchBaseDtozgAnnotated[str, Field(alias='researchId', description='The unique identifier for the research request')]r9   r:   r;   exa-researchzVAnnotated[ResearchModel, Field(description='The model used for the research request')]modelzTAnnotated[str, Field(description='The instructions given to this research request')]r<   Nr=   r>   r   )r   r   r   r   r   ro   r>   r   r   r   r   rm   rm      sF       	 
    	 S r   rm   c                  "    ] tR t^t$ R]R&   RtR# )ResearchPendingDtozLiteral['pending']statusr   Nr   r   r   r   rq   rq      s    r   rq   c                  0    ] tR t^t$ R]R&   RtR]R&   RtR# )ResearchRunningDtozLiteral['running']rr   NOptional[List[ResearchEvent]]eventsr   r   r   r   r   r   rv   r   r   r   r   rt   rt      s    ,0F)0r   rt   c                  N    ] tR t^t$ R]R&   R]R&   RtR]R&   R]R	&   R
]R&   RtR# )ResearchCompletedDtozLiteral['completed']rr   r:   finished_atNru   rv   rk   rM   rC   rD   r   rw   r   r   r   ry   ry      s+        -1F)0DDr   ry   c                  :    ] tR t^t$ R]R&   R]R&   RtR]R&   RtR# )	ResearchCanceledDtozLiteral['canceled']rr   r:   rz   Nru   rv   r   rw   r   r   r   r|   r|      s      -1F)0r   r|   c                  D    ] tR t^t$ R]R&   R]R&   RtR]R&   R]R	&   R
tR# )ResearchFailedDtozLiteral['failed']rr   r:   rz   Nru   rv   zPAnnotated[str, Field(description='A message indicating why the request failed')]rJ   r   rw   r   r   r   r~   r~      s)      -1F)0 r   r~   rr   c                  6    ] tR tRt$ R]R&   R]R&   R]R&   RtR	# )
ListResearchResponseDtoi  zPAnnotated[List[ResearchDto], Field(description='The list of research requests')]rW   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                  >    ] tR tRt$ RtR]R&   R]R&   RtR]R	&   R
tR# )ResearchCreateRequestDtoi  rn   ResearchModelro   zhAnnotated[str, Field(description='Instructions for what research should be conducted', max_length=4096)]r<   Nr=   r>   r   )r   r   r   r   ro   r   r>   r   r   r   r   r   r     s(    )E=)  	 S r   r   rV   ResearchMetaEventr   ResearchPlanEventResearchTaskEventResearchEventResearchDtoResearchDtoClassResearchCreateRequestDtoClassResearchEventDtoClassResearchOperationDtoClassN)zexa-research-fastrn   zexa-research-pro)5
__future__r   typingr   r   r   r   r   r	   r
   pydanticr   r   r   r   r   r    r$   r(   r2   rV   r6   r@   rI   rL   rO   rS   rY   r]   r_   ra   re   rg   ri   r   r   r   r   rk   rm   rq   rt   ry   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 ''' ' 	'
 ' ' ' ' ' ' "' !' ' ' '  "!'" !#'$ %'& ''( )'* +', -'. /'0 1'2 3'4 5'6 7'8 9': ;'< ='> ?'@ A'B C'D E'F G'H $I'J K'L  M'r   