+
    iHàjØ  ã                  óB   € R t ^ RIHt ^ RIHt ^ RIHt RtRtR R lt	R# )	aš  Whether a reasoning-only clean stop may be promoted to the visible answer.

A field name is not provenance: OpenRouter, DeepSeek, Bedrock and several adapters all put
private chain-of-thought in ``reasoning``. Promotion is therefore limited to trusted routes,
decided from the agent's LIVE route on every call so fallback activation, primary restore and
model switches never carry a decision to another route.
)Úannotations)ÚAny)Úbase_url_host_matchesÚanswer_in_reasoningznemotron-3.5-lightningc               ó    € V ^8„  d   QhRRRR/# )é   Úagentr   ÚreturnÚbool© )Úformats   "Ú>/home/ubuntu/.hermes/hermes-agent/agent/reasoning_promotion.pyÚ__annotate__r      s   € ÷ 3'ñ 3'¨#ð 3'°$ñ 3'ó    c           	     óô  € \        \        V RR4      ;'       g    R4      p\        \        V RR4      ;'       g    R4      P                  4       P                  4       pVR8X  g   \	        VR4      '       d   R# \        \        V RR4      ;'       g    R4      P                  4       P                  4       pV'       d
   VR8w  d   R# ^ R	IHpHp \        \        V R
R4      ;'       g    R4      p\        V RR4      pV! VV\        VR7      pVe   V# ^ RI	H
p	 \        \        V RR4      ;'       g    R4      P                  4       P                  4       p
W*3 Uu0 uF#  q»P                  R4      '       g   K  V	! V4      kK%  	  pp\        V! WR4      4      pV Uu. uF3  pV	! VP                  R4      VP                  R4      4      V9   g   K1  VNK5  	  ppT;'       g    T Uu0 uFK  p\        VP                  R4      ;'       g    / P                  \        4      ;p\        4      '       g   KI  VkKM  	  ppV'       d   VR08H  # \         VP                  4       9  d   R# ^ RIHp V! V4      # u upi u upi u upi )aq  True when the live route may return a clean-stop reasoning payload as the answer.

Trusted: a custom_providers per-model ``answer_in_reasoning`` opt-in or provider-level
``capabilities: {answer_in_reasoning: ...}`` block on the live route, or the local
Nemotron-3.5-Lightning parser route from #109205. OpenRouter and non-chat-completions
transports are never trusted.
Úbase_urlÚ ÚproviderÚ
openrouterzopenrouter.aiFÚapi_modeÚchat_completions)Ú_entries_for_routeÚ$get_custom_provider_model_capabilityÚmodelÚ_custom_providersN)r   r   Ú
capabilityÚcustom_providers)Úcustom_provider_slugÚrequested_providerzcustom:ÚnameÚprovider_keyÚcapabilitiesT)Úis_local_endpoint)ÚstrÚgetattrÚstripÚlowerr   Úhermes_cli.configr   r   Ú_ANSWER_IN_REASONING_CAPABILITYÚhermes_cli.providersr   Ú
startswithÚlistÚgetÚ
isinstancer
   Ú_NEMOTRON_PARSER_MODEL_MARKERÚagent.model_metadatar"   )r   r   r   r   r   r   r   r   Ú
configuredr   Ú	requestedÚpÚidsÚentriesÚeÚliveÚvÚflagsr"   s   &                  r   Úanswer_in_reasoning_capabilityr9      s8  € ô ”7˜5 *¨bÓ1×7Ð7°RÓ8€HÜ”7˜5 *¨bÓ1×7Ð7°RÓ8×>Ñ>Ó@×FÑFÓH€HØ�<ÔÔ#8¸À?×#SÒ#SÙä”7˜5 *¨bÓ1×7Ð7°RÓ8×>Ñ>Ó@×FÑFÓH€Hß�HÐ 2Ô2Ù÷ [ä”˜˜w¨Ó+×1Ð1¨rÓ2€EÜ˜uÐ&9¸4Ó@ÐÙ5ØØÜ2Ø)ô	€Jð ÒØÐõ :ä”G˜EÐ#7¸Ó<×BÐBÀÓC×IÑIÓK×QÑQÓS€IØ-5Ñ,AÓ
]Ñ,A qÇ\Á\ÐR[×E\Ô"Ñ Ö"Ñ,A€CÐ
]ÜÑ% hÀ$ÓGÓH€GÙó R‘w�!Ù# A§E¡E¨&£M°1·5±5¸Ó3HÓIÈSÑP÷ ˆA‘w€Dð RàŸ˜ ˜ó k™�1Ü §¡ ~Ó!6×!<Ð!<¸"× AÑ AÔBaÓ bÐb˜1Ôdh×i÷ ˆQ™€Eð kçØ˜˜‰Ðä$¨E¯K©K«MÔ9ÙÝ6á˜XÓ&Ð&ùò ^ùòRùòks*   ÅI+Å4I+Æ.I0ÇI0Ç!!I5È$I5È,I5N)
Ú__doc__Ú
__future__r   Útypingr   Úutilsr   r(   r.   r9   r   r   r   Ú<module>r>      s&   ðñõ #å å 'à"7Ð Ø 8Ð ÷3'r   