@@ -90,9 +90,10 @@ def _resolve_env_auth(provider_name: str, config: dict[str, Any]) -> ProviderCon
9090 f"'{ config ['api_key' ]} ' not set or empty"
9191 )
9292
93+ # base_url field contains the env var name to look up
9394 base_url = None
94- if "base_url_env " in config :
95- base_url = os .getenv (config ["base_url_env " ])
95+ if "base_url " in config :
96+ base_url = os .getenv (config ["base_url " ])
9697 if not base_url :
9798 base_url = config .get ("default_base_url" )
9899 if not base_url :
@@ -101,9 +102,10 @@ def _resolve_env_auth(provider_name: str, config: dict[str, Any]) -> ProviderCon
101102 f"(env var not set and no default)"
102103 )
103104
105+ # model field contains the env var name to look up
104106 model = None
105- if "model_env " in config :
106- model = os .getenv (config ["model_env " ])
107+ if "model " in config :
108+ model = os .getenv (config ["model " ])
107109 if not model :
108110 model = config .get ("default_model" )
109111 if not model :
@@ -142,9 +144,10 @@ def _resolve_dotenv_auth(provider_name: str, config: dict[str, Any]) -> Provider
142144 f"not found in { dotenv_path } "
143145 )
144146
147+ # base_url field contains the key name to look up in dotenv
145148 base_url = None
146- if "base_url_key " in config :
147- base_url = os .getenv (config ["base_url_key " ])
149+ if "base_url " in config :
150+ base_url = os .getenv (config ["base_url " ])
148151 if not base_url :
149152 base_url = config .get ("default_base_url" )
150153 if not base_url :
@@ -153,9 +156,10 @@ def _resolve_dotenv_auth(provider_name: str, config: dict[str, Any]) -> Provider
153156 f"(not in dotenv and no default)"
154157 )
155158
159+ # model field contains the key name to look up in dotenv
156160 model = None
157- if "model_key " in config :
158- model = os .getenv (config ["model_key " ])
161+ if "model " in config :
162+ model = os .getenv (config ["model " ])
159163 if not model :
160164 model = config .get ("default_model" )
161165 if not model :
@@ -201,6 +205,53 @@ def get_provider_config(config_path: Path, provider_name: str) -> ProviderConfig
201205 return resolve_provider_config (provider_name , provider_config )
202206
203207
208+ def _resolve_display_values_env (config : dict [str , Any ]) -> tuple [str | None , str | None ]:
209+ """Resolve base_url and model for env auth type for display purposes."""
210+ base_url = None
211+ model = None
212+
213+ # base_url/model fields contain env var names
214+ if "base_url" in config :
215+ base_url = os .getenv (config ["base_url" ])
216+ if not base_url :
217+ base_url = config .get ("default_base_url" )
218+
219+ if "model" in config :
220+ model = os .getenv (config ["model" ])
221+ if not model :
222+ model = config .get ("default_model" )
223+
224+ return base_url , model
225+
226+
227+ def _resolve_display_values_dotenv (
228+ config : dict [str , Any ],
229+ ) -> tuple [str | None , str | None ]:
230+ """Resolve base_url and model for dotenv auth type for display purposes."""
231+ base_url = None
232+ model = None
233+
234+ # Try to load dotenv file if it exists
235+ if "dotenv_path" in config :
236+ dotenv_path = Path (config ["dotenv_path" ])
237+ if dotenv_path .exists ():
238+ load_dotenv (dotenv_path , override = True )
239+
240+ # base_url/model fields contain key names in dotenv
241+ if "base_url" in config :
242+ base_url = os .getenv (config ["base_url" ])
243+ if "model" in config :
244+ model = os .getenv (config ["model" ])
245+
246+ # Fallback to defaults
247+ if not base_url :
248+ base_url = config .get ("default_base_url" )
249+ if not model :
250+ model = config .get ("default_model" )
251+
252+ return base_url , model
253+
254+
204255def list_providers (config_path : Path , show_all : bool = False ) -> list [ProviderInfo ]:
205256 """
206257 List all providers from configuration.
@@ -225,16 +276,17 @@ def list_providers(config_path: Path, show_all: bool = False) -> list[ProviderIn
225276
226277 auth_type = config .get ("auth_type" , "unknown" )
227278
228- # Try to get model info without resolving full config
279+ # Resolve actual model and base_url values
229280 model = None
230281 base_url = None
231282
232283 if auth_type == "direct" :
233284 model = config .get ("model" )
234285 base_url = config .get ("base_url" )
235- elif auth_type in ("env" , "dotenv" ):
236- model = config .get ("default_model" )
237- base_url = config .get ("default_base_url" )
286+ elif auth_type == "env" :
287+ base_url , model = _resolve_display_values_env (config )
288+ elif auth_type == "dotenv" :
289+ base_url , model = _resolve_display_values_dotenv (config )
238290
239291 providers .append (
240292 ProviderInfo (
0 commit comments