From 4823508cae0a2340c6fa528dcd34f3c3d3b6593e Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Mon, 30 Jun 2025 22:02:34 -0600 Subject: [PATCH] agent: Fix fetch of cloud models before TOS is accepted --- crates/language_models/src/provider/cloud.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index 62a24282dd1efb54b1f6a3ba25d65f559c59fd2e..9e1ae68f5ae32d06ffbb6766bcba5861a0d0b0be 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -269,13 +269,17 @@ impl State { llm_api_token: LlmApiToken, ) -> Result { let http_client = &client.http_client(); - let token = llm_api_token.acquire(&client).await?; - let request = http_client::Request::builder() + // token is optional here, it's provided because some models are conditionally available + let token = llm_api_token.acquire(&client).await.ok(); + + let mut request = http_client::Request::builder() .method(Method::GET) - .uri(http_client.build_zed_llm_url("/models", &[])?.as_ref()) - .header("Authorization", format!("Bearer {token}")) - .body(AsyncBody::empty())?; + .uri(http_client.build_zed_llm_url("/models", &[])?.as_ref()); + if let Some(token) = token { + request = request.header("Authorization", format!("Bearer {token}")); + } + let request = request.body(AsyncBody::empty())?; let mut response = http_client .send(request) .await