+
    „WÝjG  ã                  óâ   € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	 ]! RR7      t
R R lt]R	 R
 l4       t]
P                  R4      RR R ll4       t]
P                  R4      RR R ll4       tR# )zIHTTP routes for memory-provider OAuth connect, mounted by ``web_server``.)Úannotations)Úcontextmanager)ÚOptional)Ú	APIRouterÚHTTPExceptionz/api/memory/providers)Úprefixc               ó   € V ^8„  d   QhRR/# )é   ÚproviderÚstr© )Úformats   "ÚKC:\Users\johnn\AppData\Local\hermes\hermes-agent\hermes_cli\memory_oauth.pyÚ__annotate__r      s   € ÷ 	bñ 	b˜Cñ 	bó    c                ó®   € V P                  4       '       g   \        RRV : 2R7      h^ RIHp  V! V R4      #   \         d    \        RT  R2R7      hi ; i)zSReturn a provider's ``oauth_flow`` module (bundled or user-dir copy), or raise 404.é”  zunknown memory provider ©Ústatus_codeÚdetail)Úimport_provider_moduleÚ
oauth_flowz does not support OAuth connect)Úisidentifierr   Úplugins.memoryr   ÚImportError)r
   r   s   & r   Ú_resolve_flowr      sb   € à× Ñ ×"Ò"Ü¨Ð6NÈxÉlÐ4[Ô\Ð\Ý5ðbÙ% h°Ó=Ð=øÜô bÜ¨°x°jÐ@_Ð4`ÔaÐaðbús	   ¯8 ¸Ac               ó   € V ^8„  d   QhRR/# )r	   ÚprofileúOptional[str]r   )r   s   "r   r   r      s   € ÷ *ñ *˜}ñ *r   c              #  óÞ  "  € T ;'       g    RP                  4       pV'       d   VP                  4       R8X  d   Rx € R# ^ RIHp ^ RIHpHp  VP                  V4       TP                  T4      '       g   \        RR	T R
2R7      hT! \        TP                  T4      4      4      p Rx € T! T4       R#   \         d   p\        R\        T4      R7      hRp?ii ; i  T! T4       i ; i5i)z’Scope config resolution to ``profile`` so the flow's eager path resolve targets that profile's
honcho.json. None/""/"current" leaves it untouched.Ú ÚcurrentN)Úprofiles)Úreset_hermes_home_overrideÚset_hermes_home_overridei�  r   r   z	Profile 'z' does not exist.)ÚstripÚlowerÚ
hermes_clir"   Úhermes_constantsr#   r$   Úvalidate_profile_nameÚ
ValueErrorr   r   Úprofile_existsÚget_profile_dir)r   Ú	requestedÚprofiles_modr#   r$   ÚeÚtokens   &      r   Ú_scope_to_profiler1      sÌ   é € ð —�˜B×%Ñ%Ó'€Iß˜	Ÿ™Ó)¨YÔ6ÛÙå3ßUð<Ø×*Ñ*¨9Ô5ð ×&Ñ& y×1Ò1Ü¨°iÀ	¸{ÐJ[Ð4\Ô]Ð]á$¤S¨×)EÑ)EÀiÓ)PÓ%QÓR€Eð*Ûá" 5Ö)øô ô <Ü¨´C¸³FÔ;Ð;ûð<ûñ 	# 5Õ)üsL   ‚"C-¥)C-ÁB7 Á C-Á71C-Â)C  Â-
C-Â7CÃCÃCÃC-Ã 
C*Ã*C-z/{provider}/oauth/startNc               ó    € V ^8„  d   QhRRRR/# ©r	   r
   r   r   r   r   )r   s   "r   r   r   4   s   € ÷ 
`ñ 
` sð 
`°]ñ 
`r   c              ƒ  ó  "  €  \        V4      ;_uu_ 4        \        V 4      pVP                  4       uuRRR4       #   + '       g   i     R# ; i  \         d    h \         d   p\        RRT  RT 2R7      hRp?ii ; i5i)zgBegin a provider's zero-CLI OAuth flow (browser + loopback listener); returns immediately, poll status.Néô  zFailed to start z OAuth: r   )r1   r   Ústart_loopback_flow_backgroundr   Ú	Exception©r
   r   ÚflowÚexcs   &&  r   Ústart_memory_oauthr;   3   sv   é € ð`ä˜w×'Õ'Ü  Ó*ˆDØ×6Ñ6Ó8÷ (×'×'Ó'ûô ô ØÜô `Ü¨Ð6FÀxÀjÐPXÐY\ÐX]Ð4^Ô_Ð_ûð`üóM   ‚B„A —=²
A ¼B½A	ÁA ÁBÁA ÁA?Á&A?Á'A:Á:A?Á?Bz/{provider}/oauth/statusc               ó    € V ^8„  d   QhRRRR/# r3   r   )r   s   "r   r   r   B   s   € ÷ 	fñ 	f¨ð 	f°mñ 	fr   c              ƒ  ó  "  €  \        V4      ;_uu_ 4        \        V 4      pVP                  4       uuRRR4       #   + '       g   i     R# ; i  \         d    h \         d   p\        RRT  RT 2R7      hRp?ii ; i5i)zAPoll a provider's OAuth flow: idle | pending | connected | error.Nr5   zFailed to read z OAuth status: r   )r1   r   Úget_flow_statusr   r7   r8   s   &&  r   Úmemory_oauth_statusr@   A   st   é € ðfÜ˜w×'Õ'Ü  Ó*ˆDØ×'Ñ'Ó)÷ (×'×'Ó'ûô ô ØÜô fÜ¨°oÀhÀZÈÐ_bÐ^cÐ4dÔeÐeûðfür<   )N)Ú__doc__Ú
__future__r   Ú
contextlibr   Útypingr   Úfastapir   r   Úrouterr   r1   Úpostr;   Úgetr@   r   r   r   Ú<module>rI      sy   ðÙ Oå "å %Ý ç ,á	Ð1Ô	2€õ	bð ô*ó ð*ð2 ‡�Ð&Ó'ö
`ó (ð
`ð ‡�Ð&Ó'ö	fó (ò	fr   