From f6884f9ae6447bc21a74ee41d6fc479a017db0b0 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Tue, 31 Mar 2026 23:44:56 +0200 Subject: [PATCH] Address feedback --- crates/agent/src/native_agent_server.rs | 4 ++-- crates/agent/src/thread.rs | 2 +- crates/agent/src/tools/web_search_tool.rs | 2 +- crates/agent_ui/src/agent_configuration.rs | 2 +- crates/agent_ui/src/agent_panel.rs | 4 ++-- .../ai_onboarding/src/agent_api_keys_onboarding.rs | 2 +- .../src/agent_panel_onboarding_content.rs | 2 +- crates/language_model/src/language_model.rs | 11 +++-------- crates/language_models/src/provider/anthropic.rs | 4 ++-- .../src/provider/anthropic/telemetry.rs | 2 +- crates/language_models/src/provider/cloud.rs | 12 +++++------- crates/language_models/src/provider/google.rs | 7 +++---- crates/language_models/src/provider/open_ai.rs | 4 ++-- 13 files changed, 25 insertions(+), 33 deletions(-) diff --git a/crates/agent/src/native_agent_server.rs b/crates/agent/src/native_agent_server.rs index 88f41117fefff2d06091e1c0411398ca0e6c87f1..7f19f9005e3ff54e361f57075b7af06508476564 100644 --- a/crates/agent/src/native_agent_server.rs +++ b/crates/agent/src/native_agent_server.rs @@ -112,7 +112,7 @@ mod tests { prompt_store::init(cx); let registry = language_model::LanguageModelRegistry::read_global(cx); let auth = registry - .provider(&language_model::provider::ANTHROPIC_PROVIDER_ID) + .provider(&language_model::ANTHROPIC_PROVIDER_ID) .unwrap() .authenticate(cx); @@ -127,7 +127,7 @@ mod tests { registry.update(cx, |registry, cx| { registry.select_default_model( Some(&language_model::SelectedModel { - provider: language_model::provider::ANTHROPIC_PROVIDER_ID, + provider: language_model::ANTHROPIC_PROVIDER_ID, model: language_model::LanguageModelId("claude-sonnet-4-latest".into()), }), cx, diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index e979c329defa071b382eaf720b435a7ff31990a6..b61df1b8af84d312d7f186fb85e5a1d04ab59dfd 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -39,7 +39,7 @@ use language_model::{ LanguageModelRequest, LanguageModelRequestMessage, LanguageModelRequestTool, LanguageModelToolResult, LanguageModelToolResultContent, LanguageModelToolSchemaFormat, LanguageModelToolUse, LanguageModelToolUseId, Role, SelectedModel, Speed, StopReason, - TokenUsage, provider::ZED_CLOUD_PROVIDER_ID, + TokenUsage, ZED_CLOUD_PROVIDER_ID, }; use project::Project; use prompt_store::ProjectContext; diff --git a/crates/agent/src/tools/web_search_tool.rs b/crates/agent/src/tools/web_search_tool.rs index d265bee6f9c4140a24c07ef126ddf1ee3388c4b4..c697a5b78f1fe8c84d6ed58db13f651a493ae8c3 100644 --- a/crates/agent/src/tools/web_search_tool.rs +++ b/crates/agent/src/tools/web_search_tool.rs @@ -11,7 +11,7 @@ use cloud_llm_client::WebSearchResponse; use futures::FutureExt as _; use gpui::{App, Task}; use language_model::{ - LanguageModelProviderId, LanguageModelToolResultContent, provider::ZED_CLOUD_PROVIDER_ID, + LanguageModelProviderId, LanguageModelToolResultContent, ZED_CLOUD_PROVIDER_ID, }; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index 1bf6384cc3ff182645f39bb7a7ebd6dd902b6be4..fda3cb9907b2f02cce29ff0ae8c4762e6efa625a 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -23,7 +23,7 @@ use itertools::Itertools; use language::LanguageRegistry; use language_model::{ IconOrSvg, LanguageModelProvider, LanguageModelProviderId, LanguageModelRegistry, - provider::ZED_CLOUD_PROVIDER_ID, + ZED_CLOUD_PROVIDER_ID, }; use language_models::AllLanguageModelSettings; use notifications::status_toast::{StatusToast, ToastIcon}; diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 18083595f8acb25522a35593ca375a0c0ea04d22..e6ef267a95110e745534010bae32b1b1fd6c0f0c 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -3726,7 +3726,7 @@ impl AgentPanel { .read(cx) .default_model() .is_some_and(|model| { - model.provider.id() != language_model::provider::ZED_CLOUD_PROVIDER_ID + model.provider.id() != language_model::ZED_CLOUD_PROVIDER_ID }) { return false; @@ -3767,7 +3767,7 @@ impl AgentPanel { .iter() .any(|provider| { provider.is_authenticated(cx) - && provider.id() != language_model::provider::ZED_CLOUD_PROVIDER_ID + && provider.id() != language_model::ZED_CLOUD_PROVIDER_ID }); match &self.active_view { diff --git a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs index aa9488fd5ad6fc9085f2f0aa16cea07f65737845..47197ec2331b97dd4d7561d9f14c91c7f91c9fa0 100644 --- a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs +++ b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs @@ -1,5 +1,5 @@ use gpui::{Action, IntoElement, ParentElement, RenderOnce, point}; -use language_model::{IconOrSvg, LanguageModelRegistry, provider::ZED_CLOUD_PROVIDER_ID}; +use language_model::{IconOrSvg, LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID}; use ui::{Divider, List, ListBulletItem, prelude::*}; pub struct ApiKeysWithProviders { diff --git a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs index 4b6163d9f69776d448cad0e695bfe0a046a5b9c5..cc60a35e501329b0ca089e2f218ab1551ca35d93 100644 --- a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs +++ b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use client::{Client, UserStore}; use cloud_api_types::Plan; use gpui::{Entity, IntoElement, ParentElement}; -use language_model::{LanguageModelRegistry, provider::ZED_CLOUD_PROVIDER_ID}; +use language_model::{LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID}; use ui::prelude::*; use crate::{AgentPanelOnboardingCard, ApiKeysWithoutProviders, ZedAiOnboarding}; diff --git a/crates/language_model/src/language_model.rs b/crates/language_model/src/language_model.rs index df6e468e88b04bb2ed094d6ba3fe707a09d89011..ce71cee6bcaf4f7ea1e210cc3756bd3162715f55 100644 --- a/crates/language_model/src/language_model.rs +++ b/crates/language_model/src/language_model.rs @@ -1,6 +1,6 @@ mod api_key; mod model; -pub mod provider; +mod provider; mod rate_limiter; mod registry; mod request; @@ -20,7 +20,6 @@ use gpui::{AnyView, App, AsyncApp, Entity, SharedString, Task, Window}; use http_client::{StatusCode, http}; use icons::IconName; use parking_lot::Mutex; -use provider::parse_prompt_too_long; use serde::{Deserialize, Serialize}; use std::ops::{Add, Sub}; use std::str::FromStr; @@ -37,6 +36,7 @@ pub use crate::registry::*; pub use crate::request::*; pub use crate::role::*; pub use crate::tool_schema::LanguageModelToolSchemaFormat; +pub use provider::*; pub use zed_env_vars::{EnvVar, env_var}; pub fn init(user_store: Entity, client: Arc, cx: &mut App) { @@ -252,12 +252,7 @@ impl LanguageModelCompletionError { .strip_prefix("http_") .and_then(|code| StatusCode::from_str(code).ok()) { - Self::from_http_status( - provider::ZED_CLOUD_PROVIDER_NAME, - status_code, - message, - retry_after, - ) + Self::from_http_status(ZED_CLOUD_PROVIDER_NAME, status_code, message, retry_after) } else { anyhow!("completion request failed, code: {code}, message: {message}").into() } diff --git a/crates/language_models/src/provider/anthropic.rs b/crates/language_models/src/provider/anthropic.rs index 7d05202c4d180c1082f06bc91e2d714f30197371..a98a0ce142dfdbaaaddc056ab378455a45147830 100644 --- a/crates/language_models/src/provider/anthropic.rs +++ b/crates/language_models/src/provider/anthropic.rs @@ -10,13 +10,13 @@ use futures::{FutureExt, Stream, StreamExt, future::BoxFuture, stream::BoxStream use gpui::{AnyView, App, AsyncApp, Context, Entity, Task}; use http_client::HttpClient; use language_model::{ - ApiKeyState, AuthenticateError, ConfigurationViewTargetAgent, EnvVar, IconOrSvg, LanguageModel, + ANTHROPIC_PROVIDER_ID, ANTHROPIC_PROVIDER_NAME, ApiKeyState, AuthenticateError, + ConfigurationViewTargetAgent, EnvVar, IconOrSvg, LanguageModel, LanguageModelCacheConfiguration, LanguageModelCompletionError, LanguageModelCompletionEvent, LanguageModelId, LanguageModelName, LanguageModelProvider, LanguageModelProviderId, LanguageModelProviderName, LanguageModelProviderState, LanguageModelRequest, LanguageModelToolChoice, LanguageModelToolResultContent, LanguageModelToolUse, MessageContent, RateLimiter, Role, StopReason, env_var, - provider::{ANTHROPIC_PROVIDER_ID, ANTHROPIC_PROVIDER_NAME}, }; use settings::{Settings, SettingsStore}; use std::pin::Pin; diff --git a/crates/language_models/src/provider/anthropic/telemetry.rs b/crates/language_models/src/provider/anthropic/telemetry.rs index 6c017d7c65a8da47c9344f240aa0c2bf38a4bac5..75fb11a81b479635ea02db77a2df8a769e795e01 100644 --- a/crates/language_models/src/provider/anthropic/telemetry.rs +++ b/crates/language_models/src/provider/anthropic/telemetry.rs @@ -2,7 +2,7 @@ use anthropic::ANTHROPIC_API_URL; use anyhow::{Context as _, anyhow}; use gpui::BackgroundExecutor; use http_client::{AsyncBody, HttpClient, Method, Request as HttpRequest}; -use language_model::{LanguageModel, provider::ANTHROPIC_PROVIDER_ID}; +use language_model::{ANTHROPIC_PROVIDER_ID, LanguageModel}; use std::env; use std::sync::Arc; use util::ResultExt; diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index a451a5c27973e643c16939f39dd42d6a9a17773b..f9372a4d7ea9c078c58f633cc58bd5597ef49212 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -19,17 +19,15 @@ use gpui::{AnyElement, AnyView, App, AsyncApp, Context, Entity, Subscription, Ta use http_client::http::{HeaderMap, HeaderValue}; use http_client::{AsyncBody, HttpClient, HttpRequestExt, Method, Response, StatusCode}; use language_model::{ - AuthenticateError, IconOrSvg, LanguageModel, LanguageModelCacheConfiguration, + ANTHROPIC_PROVIDER_ID, ANTHROPIC_PROVIDER_NAME, AuthenticateError, GOOGLE_PROVIDER_ID, + GOOGLE_PROVIDER_NAME, IconOrSvg, LanguageModel, LanguageModelCacheConfiguration, LanguageModelCompletionError, LanguageModelCompletionEvent, LanguageModelEffortLevel, LanguageModelId, LanguageModelName, LanguageModelProvider, LanguageModelProviderId, LanguageModelProviderName, LanguageModelProviderState, LanguageModelRequest, LanguageModelToolChoice, LanguageModelToolSchemaFormat, LlmApiToken, NeedsLlmTokenRefresh, - PaymentRequiredError, RateLimiter, RefreshLlmTokenListener, - provider::{ - ANTHROPIC_PROVIDER_ID, ANTHROPIC_PROVIDER_NAME, GOOGLE_PROVIDER_ID, GOOGLE_PROVIDER_NAME, - OPEN_AI_PROVIDER_ID, OPEN_AI_PROVIDER_NAME, X_AI_PROVIDER_ID, X_AI_PROVIDER_NAME, - ZED_CLOUD_PROVIDER_ID, ZED_CLOUD_PROVIDER_NAME, - }, + OPEN_AI_PROVIDER_ID, OPEN_AI_PROVIDER_NAME, PaymentRequiredError, RateLimiter, + RefreshLlmTokenListener, X_AI_PROVIDER_ID, X_AI_PROVIDER_NAME, ZED_CLOUD_PROVIDER_ID, + ZED_CLOUD_PROVIDER_NAME, }; use release_channel::AppVersion; use schemars::JsonSchema; diff --git a/crates/language_models/src/provider/google.rs b/crates/language_models/src/provider/google.rs index ea2134234995273fa574b08052390c4a9f07eacc..8fdfb514ac6e872bd24968d33f2c1169401d5a9c 100644 --- a/crates/language_models/src/provider/google.rs +++ b/crates/language_models/src/provider/google.rs @@ -13,10 +13,9 @@ use language_model::{ LanguageModelToolUse, LanguageModelToolUseId, MessageContent, StopReason, }; use language_model::{ - IconOrSvg, LanguageModel, LanguageModelId, LanguageModelName, LanguageModelProvider, - LanguageModelProviderId, LanguageModelProviderName, LanguageModelProviderState, - LanguageModelRequest, RateLimiter, Role, - provider::{GOOGLE_PROVIDER_ID, GOOGLE_PROVIDER_NAME}, + GOOGLE_PROVIDER_ID, GOOGLE_PROVIDER_NAME, IconOrSvg, LanguageModel, LanguageModelId, + LanguageModelName, LanguageModelProvider, LanguageModelProviderId, LanguageModelProviderName, + LanguageModelProviderState, LanguageModelRequest, RateLimiter, Role, }; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; diff --git a/crates/language_models/src/provider/open_ai.rs b/crates/language_models/src/provider/open_ai.rs index 266ef69e3d6fd9ebd22ad6997d8679c758509907..9289c66b2a4c9213826d2d027555511c9746d00e 100644 --- a/crates/language_models/src/provider/open_ai.rs +++ b/crates/language_models/src/provider/open_ai.rs @@ -10,8 +10,8 @@ use language_model::{ LanguageModelProvider, LanguageModelProviderId, LanguageModelProviderName, LanguageModelProviderState, LanguageModelRequest, LanguageModelRequestMessage, LanguageModelToolChoice, LanguageModelToolResultContent, LanguageModelToolUse, - LanguageModelToolUseId, MessageContent, RateLimiter, Role, StopReason, TokenUsage, env_var, - provider::{OPEN_AI_PROVIDER_ID, OPEN_AI_PROVIDER_NAME}, + LanguageModelToolUseId, MessageContent, OPEN_AI_PROVIDER_ID, OPEN_AI_PROVIDER_NAME, + RateLimiter, Role, StopReason, TokenUsage, env_var, }; use menu; use open_ai::responses::{