
    (Gj                        d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	m
Z
  ej        e          Zdd
ZddddddZdS )z8TLS verify resolution for httpx/OpenAI provider clients.    )annotationsN)Path)AnyOptional
ssl_verifyr   returnboolc                    | du rdS t          | t                    r*|                                                                 dv rdS dS )NFT>   0noofffalse)
isinstancestrstriplower)r   s    6/home/rurouni/.hermes/hermes-agent/agent/ssl_verify.py_coerce_insecurer      sQ    Ut*c"" z'7'7'9'9'?'?'A'AE`'`'`t5     )	ca_bundler   base_urlr   Optional[str]r   r   bool | ssl.SSLContextc                   t          |          rt                              d|pd           dS | pd                                pt	          j        dd                                          ptt	          j        dd                                          pMt	          j        dd                                          p&t	          j        dd                                          }|r}t          t          |                                                    }t          j	        
                    |          rt          j        |	          S t                              d
|           dS )u  Resolve httpx ``verify`` for provider HTTP clients.

    Priority:
    1. ``ssl_verify: false`` — disable verification (local dev only)
    2. explicit ``ca_bundle`` (per-provider ``ssl_ca_cert`` config field)
    3. ``HERMES_CA_BUNDLE``, ``SSL_CERT_FILE``, ``REQUESTS_CA_BUNDLE``,
       ``CURL_CA_BUNDLE`` env vars
    4. ``True`` (httpx/certifi default)

    ``base_url`` is used only for the insecure-mode warning message.
    u   TLS certificate verification DISABLED (ssl_verify: false) for %s — this is intended for local development only and is unsafe on any network you do not fully control.za custom provider endpointFr   HERMES_CA_BUNDLESSL_CERT_FILEREQUESTS_CA_BUNDLECURL_CA_BUNDLE)cafileuJ   CA bundle path does not exist: %s — falling back to default certificatesT)r   loggerwarningr   osgetenvr   r   
expanduserpathisfilesslcreate_default_context)r   r   r   effective_caca_paths        r   resolve_httpx_verifyr,      sZ   " 
## 0 44		
 	
 	
 u 
b!! 	39',,2244	39_b))//11	3 9)2..4466	3 9%r**0022   
d<((3355667>>'"" 	>-W====X	
 	
 	
 4r   )r   r   r   r	   )r   r   r   r   r   r   r   r   )__doc__
__future__r   loggingr#   r(   pathlibr   typingr   r   	getLogger__name__r!   r   r,    r   r   <module>r5      s    > > " " " " " "  				 



                      		8	$	$     $	) ) ) ) ) ) ) )r   