Detailed changes
@@ -2439,9 +2439,6 @@ impl AgentPanel {
.occlude()
.child(match last_error {
ThreadError::PaymentRequired => self.render_payment_required_error(cx),
- ThreadError::MaxMonthlySpendReached => {
- self.render_max_monthly_spend_reached_error(cx)
- }
ThreadError::ModelRequestLimitReached { plan } => {
self.render_model_request_limit_reached_error(plan, cx)
}
@@ -2501,56 +2498,6 @@ impl AgentPanel {
.into_any()
}
- fn render_max_monthly_spend_reached_error(&self, cx: &mut Context<Self>) -> AnyElement {
- const ERROR_MESSAGE: &str = "You have reached your maximum monthly spend. Increase your spend limit to continue using Zed LLMs.";
-
- v_flex()
- .gap_0p5()
- .child(
- h_flex()
- .gap_1p5()
- .items_center()
- .child(Icon::new(IconName::XCircle).color(Color::Error))
- .child(Label::new("Max Monthly Spend Reached").weight(FontWeight::MEDIUM)),
- )
- .child(
- div()
- .id("error-message")
- .max_h_24()
- .overflow_y_scroll()
- .child(Label::new(ERROR_MESSAGE)),
- )
- .child(
- h_flex()
- .justify_end()
- .mt_1()
- .gap_1()
- .child(self.create_copy_button(ERROR_MESSAGE))
- .child(
- Button::new("subscribe", "Update Monthly Spend Limit").on_click(
- cx.listener(|this, _, _, cx| {
- this.thread.update(cx, |this, _cx| {
- this.clear_last_error();
- });
-
- cx.open_url(&zed_urls::account_url(cx));
- cx.notify();
- }),
- ),
- )
- .child(Button::new("dismiss", "Dismiss").on_click(cx.listener(
- |this, _, _, cx| {
- this.thread.update(cx, |this, _cx| {
- this.clear_last_error();
- });
-
- cx.notify();
- },
- ))),
- )
- .into_any()
- }
-
fn render_model_request_limit_reached_error(
&self,
plan: Plan,
@@ -22,9 +22,9 @@ use language_model::{
ConfiguredModel, LanguageModel, LanguageModelCompletionError, LanguageModelCompletionEvent,
LanguageModelId, LanguageModelKnownError, LanguageModelRegistry, LanguageModelRequest,
LanguageModelRequestMessage, LanguageModelRequestTool, LanguageModelToolResult,
- LanguageModelToolResultContent, LanguageModelToolUseId, MaxMonthlySpendReachedError,
- MessageContent, ModelRequestLimitReachedError, PaymentRequiredError, RequestUsage, Role,
- SelectedModel, StopReason, TokenUsage,
+ LanguageModelToolResultContent, LanguageModelToolUseId, MessageContent,
+ ModelRequestLimitReachedError, PaymentRequiredError, RequestUsage, Role, SelectedModel,
+ StopReason, TokenUsage,
};
use postage::stream::Stream as _;
use project::Project;
@@ -1688,10 +1688,6 @@ impl Thread {
if error.is::<PaymentRequiredError>() {
cx.emit(ThreadEvent::ShowError(ThreadError::PaymentRequired));
- } else if error.is::<MaxMonthlySpendReachedError>() {
- cx.emit(ThreadEvent::ShowError(
- ThreadError::MaxMonthlySpendReached,
- ));
} else if let Some(error) =
error.downcast_ref::<ModelRequestLimitReachedError>()
{
@@ -2706,8 +2702,6 @@ impl Thread {
pub enum ThreadError {
#[error("Payment required")]
PaymentRequired,
- #[error("Max monthly spend reached")]
- MaxMonthlySpendReached,
#[error("Model request limit reached")]
ModelRequestLimitReached { plan: Plan },
#[error("Message {header}: {message}")]
@@ -21,8 +21,8 @@ use language::{AnchorRangeExt, Bias, Buffer, LanguageRegistry, OffsetRangeExt, P
use language_model::{
LanguageModel, LanguageModelCacheConfiguration, LanguageModelCompletionEvent,
LanguageModelImage, LanguageModelRegistry, LanguageModelRequest, LanguageModelRequestMessage,
- LanguageModelToolUseId, MaxMonthlySpendReachedError, MessageContent, PaymentRequiredError,
- Role, StopReason, report_assistant_event,
+ LanguageModelToolUseId, MessageContent, PaymentRequiredError, Role, StopReason,
+ report_assistant_event,
};
use open_ai::Model as OpenAiModel;
use paths::contexts_dir;
@@ -447,7 +447,6 @@ impl ContextOperation {
pub enum ContextEvent {
ShowAssistError(SharedString),
ShowPaymentRequiredError,
- ShowMaxMonthlySpendReachedError,
MessagesEdited,
SummaryChanged,
SummaryGenerated,
@@ -2155,12 +2154,6 @@ impl AssistantContext {
metadata.status = MessageStatus::Canceled;
});
Some(error.to_string())
- } else if error.is::<MaxMonthlySpendReachedError>() {
- cx.emit(ContextEvent::ShowMaxMonthlySpendReachedError);
- this.update_metadata(assistant_message_id, cx, |metadata| {
- metadata.status = MessageStatus::Canceled;
- });
- Some(error.to_string())
} else {
let error_message = error
.chain()
@@ -114,7 +114,6 @@ type MessageHeader = MessageMetadata;
#[derive(Clone)]
enum AssistError {
PaymentRequired,
- MaxMonthlySpendReached,
Message(SharedString),
}
@@ -732,9 +731,6 @@ impl ContextEditor {
ContextEvent::ShowPaymentRequiredError => {
self.last_error = Some(AssistError::PaymentRequired);
}
- ContextEvent::ShowMaxMonthlySpendReachedError => {
- self.last_error = Some(AssistError::MaxMonthlySpendReached);
- }
}
}
@@ -2107,9 +2103,6 @@ impl ContextEditor {
.occlude()
.child(match last_error {
AssistError::PaymentRequired => self.render_payment_required_error(cx),
- AssistError::MaxMonthlySpendReached => {
- self.render_max_monthly_spend_reached_error(cx)
- }
AssistError::Message(error_message) => {
self.render_assist_error(error_message, cx)
}
@@ -2158,48 +2151,6 @@ impl ContextEditor {
.into_any()
}
- fn render_max_monthly_spend_reached_error(&self, cx: &mut Context<Self>) -> AnyElement {
- const ERROR_MESSAGE: &str = "You have reached your maximum monthly spend. Increase your spend limit to continue using Zed LLMs.";
-
- v_flex()
- .gap_0p5()
- .child(
- h_flex()
- .gap_1p5()
- .items_center()
- .child(Icon::new(IconName::XCircle).color(Color::Error))
- .child(Label::new("Max Monthly Spend Reached").weight(FontWeight::MEDIUM)),
- )
- .child(
- div()
- .id("error-message")
- .max_h_24()
- .overflow_y_scroll()
- .child(Label::new(ERROR_MESSAGE)),
- )
- .child(
- h_flex()
- .justify_end()
- .mt_1()
- .child(
- Button::new("subscribe", "Update Monthly Spend Limit").on_click(
- cx.listener(|this, _, _window, cx| {
- this.last_error = None;
- cx.open_url(&zed_urls::account_url(cx));
- cx.notify();
- }),
- ),
- )
- .child(Button::new("dismiss", "Dismiss").on_click(cx.listener(
- |this, _, _window, cx| {
- this.last_error = None;
- cx.notify();
- },
- ))),
- )
- .into_any()
- }
-
fn render_assist_error(
&self,
error_message: &SharedString,
@@ -133,18 +133,6 @@ impl fmt::Display for PaymentRequiredError {
}
}
-#[derive(Error, Debug)]
-pub struct MaxMonthlySpendReachedError;
-
-impl fmt::Display for MaxMonthlySpendReachedError {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- write!(
- f,
- "Maximum spending limit reached for this month. For more usage, increase your spending limit."
- )
- }
-}
-
#[derive(Error, Debug)]
pub struct ModelRequestLimitReachedError {
pub plan: Plan,
@@ -20,7 +20,7 @@ use language_model::{
};
use language_model::{
LanguageModelAvailability, LanguageModelCompletionEvent, LanguageModelProvider, LlmApiToken,
- MaxMonthlySpendReachedError, PaymentRequiredError, RefreshLlmTokenListener,
+ PaymentRequiredError, RefreshLlmTokenListener,
};
use proto::Plan;
use release_channel::AppVersion;
@@ -41,9 +41,9 @@ use ui::{TintColor, prelude::*};
use zed_llm_client::{
CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, CURRENT_PLAN_HEADER_NAME, CompletionBody,
CompletionRequestStatus, CountTokensBody, CountTokensResponse, EXPIRED_LLM_TOKEN_HEADER_NAME,
- MAX_LLM_MONTHLY_SPEND_REACHED_HEADER_NAME, MODEL_REQUESTS_RESOURCE_HEADER_VALUE,
- SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME,
- TOOL_USE_LIMIT_REACHED_HEADER_NAME, ZED_VERSION_HEADER_NAME,
+ MODEL_REQUESTS_RESOURCE_HEADER_VALUE, SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME,
+ SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME, TOOL_USE_LIMIT_REACHED_HEADER_NAME,
+ ZED_VERSION_HEADER_NAME,
};
use crate::AllLanguageModelSettings;
@@ -589,13 +589,6 @@ impl CloudLanguageModel {
{
retries_remaining -= 1;
token = llm_api_token.refresh(&client).await?;
- } else if status == StatusCode::FORBIDDEN
- && response
- .headers()
- .get(MAX_LLM_MONTHLY_SPEND_REACHED_HEADER_NAME)
- .is_some()
- {
- return Err(anyhow!(MaxMonthlySpendReachedError));
} else if status == StatusCode::FORBIDDEN
&& response
.headers()