§
    Í~ji  ã                   ó:   — d Z ddlmZmZmZmZmZmZmZm	Z	 g d¢Z
dS )u»  Provider package.

Every AI provider client in this package follows the same shape:
  - async high-level method for the pipeline stage (e.g. `fact_check(...)`).
  - all credentials from `app.config.settings` via env vars â€” never inline.
  - semaphore-bounded to respect the configured `*_MAX_CONCURRENCY`.
  - returns a typed Pydantic model from `app.models` (not raw dicts).

The shared HTTP + JSON-extraction helpers live in `_common.py`.
é    )ÚJsonExtractionErrorÚNonRetryableProviderErrorÚProviderHttpErrorÚRetryableProviderErrorÚboundedÚcomplete_chatÚextract_jsonÚhttp_post_json)r   r   r	   r
   r   r   r   r   N)Ú__doc__Úapp.providers._commonr   r   r   r   r   r   r	   r
   Ú__all__© ó    úo/Users/abstractioneditor2/ai-workstation/projects/automation/show-city-briefing-agent/app/providers/__init__.pyú<module>r      sˆ   ðð	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	€€€r   