agent: Remove unused max monthly spend reached error (#30615)
This PR removes the code for showing the max monthly spend limit reached error, as it is no longer used. Release Notes: - N/A
This commit is contained in:
parent
29da105dd5
commit
7cad943fde
6 changed files with 9 additions and 143 deletions
|
@ -2439,9 +2439,6 @@ impl AgentPanel {
|
||||||
.occlude()
|
.occlude()
|
||||||
.child(match last_error {
|
.child(match last_error {
|
||||||
ThreadError::PaymentRequired => self.render_payment_required_error(cx),
|
ThreadError::PaymentRequired => self.render_payment_required_error(cx),
|
||||||
ThreadError::MaxMonthlySpendReached => {
|
|
||||||
self.render_max_monthly_spend_reached_error(cx)
|
|
||||||
}
|
|
||||||
ThreadError::ModelRequestLimitReached { plan } => {
|
ThreadError::ModelRequestLimitReached { plan } => {
|
||||||
self.render_model_request_limit_reached_error(plan, cx)
|
self.render_model_request_limit_reached_error(plan, cx)
|
||||||
}
|
}
|
||||||
|
@ -2501,56 +2498,6 @@ impl AgentPanel {
|
||||||
.into_any()
|
.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(
|
fn render_model_request_limit_reached_error(
|
||||||
&self,
|
&self,
|
||||||
plan: Plan,
|
plan: Plan,
|
||||||
|
|
|
@ -22,9 +22,9 @@ use language_model::{
|
||||||
ConfiguredModel, LanguageModel, LanguageModelCompletionError, LanguageModelCompletionEvent,
|
ConfiguredModel, LanguageModel, LanguageModelCompletionError, LanguageModelCompletionEvent,
|
||||||
LanguageModelId, LanguageModelKnownError, LanguageModelRegistry, LanguageModelRequest,
|
LanguageModelId, LanguageModelKnownError, LanguageModelRegistry, LanguageModelRequest,
|
||||||
LanguageModelRequestMessage, LanguageModelRequestTool, LanguageModelToolResult,
|
LanguageModelRequestMessage, LanguageModelRequestTool, LanguageModelToolResult,
|
||||||
LanguageModelToolResultContent, LanguageModelToolUseId, MaxMonthlySpendReachedError,
|
LanguageModelToolResultContent, LanguageModelToolUseId, MessageContent,
|
||||||
MessageContent, ModelRequestLimitReachedError, PaymentRequiredError, RequestUsage, Role,
|
ModelRequestLimitReachedError, PaymentRequiredError, RequestUsage, Role, SelectedModel,
|
||||||
SelectedModel, StopReason, TokenUsage,
|
StopReason, TokenUsage,
|
||||||
};
|
};
|
||||||
use postage::stream::Stream as _;
|
use postage::stream::Stream as _;
|
||||||
use project::Project;
|
use project::Project;
|
||||||
|
@ -1688,10 +1688,6 @@ impl Thread {
|
||||||
|
|
||||||
if error.is::<PaymentRequiredError>() {
|
if error.is::<PaymentRequiredError>() {
|
||||||
cx.emit(ThreadEvent::ShowError(ThreadError::PaymentRequired));
|
cx.emit(ThreadEvent::ShowError(ThreadError::PaymentRequired));
|
||||||
} else if error.is::<MaxMonthlySpendReachedError>() {
|
|
||||||
cx.emit(ThreadEvent::ShowError(
|
|
||||||
ThreadError::MaxMonthlySpendReached,
|
|
||||||
));
|
|
||||||
} else if let Some(error) =
|
} else if let Some(error) =
|
||||||
error.downcast_ref::<ModelRequestLimitReachedError>()
|
error.downcast_ref::<ModelRequestLimitReachedError>()
|
||||||
{
|
{
|
||||||
|
@ -2706,8 +2702,6 @@ impl Thread {
|
||||||
pub enum ThreadError {
|
pub enum ThreadError {
|
||||||
#[error("Payment required")]
|
#[error("Payment required")]
|
||||||
PaymentRequired,
|
PaymentRequired,
|
||||||
#[error("Max monthly spend reached")]
|
|
||||||
MaxMonthlySpendReached,
|
|
||||||
#[error("Model request limit reached")]
|
#[error("Model request limit reached")]
|
||||||
ModelRequestLimitReached { plan: Plan },
|
ModelRequestLimitReached { plan: Plan },
|
||||||
#[error("Message {header}: {message}")]
|
#[error("Message {header}: {message}")]
|
||||||
|
|
|
@ -21,8 +21,8 @@ use language::{AnchorRangeExt, Bias, Buffer, LanguageRegistry, OffsetRangeExt, P
|
||||||
use language_model::{
|
use language_model::{
|
||||||
LanguageModel, LanguageModelCacheConfiguration, LanguageModelCompletionEvent,
|
LanguageModel, LanguageModelCacheConfiguration, LanguageModelCompletionEvent,
|
||||||
LanguageModelImage, LanguageModelRegistry, LanguageModelRequest, LanguageModelRequestMessage,
|
LanguageModelImage, LanguageModelRegistry, LanguageModelRequest, LanguageModelRequestMessage,
|
||||||
LanguageModelToolUseId, MaxMonthlySpendReachedError, MessageContent, PaymentRequiredError,
|
LanguageModelToolUseId, MessageContent, PaymentRequiredError, Role, StopReason,
|
||||||
Role, StopReason, report_assistant_event,
|
report_assistant_event,
|
||||||
};
|
};
|
||||||
use open_ai::Model as OpenAiModel;
|
use open_ai::Model as OpenAiModel;
|
||||||
use paths::contexts_dir;
|
use paths::contexts_dir;
|
||||||
|
@ -447,7 +447,6 @@ impl ContextOperation {
|
||||||
pub enum ContextEvent {
|
pub enum ContextEvent {
|
||||||
ShowAssistError(SharedString),
|
ShowAssistError(SharedString),
|
||||||
ShowPaymentRequiredError,
|
ShowPaymentRequiredError,
|
||||||
ShowMaxMonthlySpendReachedError,
|
|
||||||
MessagesEdited,
|
MessagesEdited,
|
||||||
SummaryChanged,
|
SummaryChanged,
|
||||||
SummaryGenerated,
|
SummaryGenerated,
|
||||||
|
@ -2155,12 +2154,6 @@ impl AssistantContext {
|
||||||
metadata.status = MessageStatus::Canceled;
|
metadata.status = MessageStatus::Canceled;
|
||||||
});
|
});
|
||||||
Some(error.to_string())
|
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 {
|
} else {
|
||||||
let error_message = error
|
let error_message = error
|
||||||
.chain()
|
.chain()
|
||||||
|
|
|
@ -114,7 +114,6 @@ type MessageHeader = MessageMetadata;
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
enum AssistError {
|
enum AssistError {
|
||||||
PaymentRequired,
|
PaymentRequired,
|
||||||
MaxMonthlySpendReached,
|
|
||||||
Message(SharedString),
|
Message(SharedString),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -732,9 +731,6 @@ impl ContextEditor {
|
||||||
ContextEvent::ShowPaymentRequiredError => {
|
ContextEvent::ShowPaymentRequiredError => {
|
||||||
self.last_error = Some(AssistError::PaymentRequired);
|
self.last_error = Some(AssistError::PaymentRequired);
|
||||||
}
|
}
|
||||||
ContextEvent::ShowMaxMonthlySpendReachedError => {
|
|
||||||
self.last_error = Some(AssistError::MaxMonthlySpendReached);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2107,9 +2103,6 @@ impl ContextEditor {
|
||||||
.occlude()
|
.occlude()
|
||||||
.child(match last_error {
|
.child(match last_error {
|
||||||
AssistError::PaymentRequired => self.render_payment_required_error(cx),
|
AssistError::PaymentRequired => self.render_payment_required_error(cx),
|
||||||
AssistError::MaxMonthlySpendReached => {
|
|
||||||
self.render_max_monthly_spend_reached_error(cx)
|
|
||||||
}
|
|
||||||
AssistError::Message(error_message) => {
|
AssistError::Message(error_message) => {
|
||||||
self.render_assist_error(error_message, cx)
|
self.render_assist_error(error_message, cx)
|
||||||
}
|
}
|
||||||
|
@ -2158,48 +2151,6 @@ impl ContextEditor {
|
||||||
.into_any()
|
.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(
|
fn render_assist_error(
|
||||||
&self,
|
&self,
|
||||||
error_message: &SharedString,
|
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)]
|
#[derive(Error, Debug)]
|
||||||
pub struct ModelRequestLimitReachedError {
|
pub struct ModelRequestLimitReachedError {
|
||||||
pub plan: Plan,
|
pub plan: Plan,
|
||||||
|
|
|
@ -20,7 +20,7 @@ use language_model::{
|
||||||
};
|
};
|
||||||
use language_model::{
|
use language_model::{
|
||||||
LanguageModelAvailability, LanguageModelCompletionEvent, LanguageModelProvider, LlmApiToken,
|
LanguageModelAvailability, LanguageModelCompletionEvent, LanguageModelProvider, LlmApiToken,
|
||||||
MaxMonthlySpendReachedError, PaymentRequiredError, RefreshLlmTokenListener,
|
PaymentRequiredError, RefreshLlmTokenListener,
|
||||||
};
|
};
|
||||||
use proto::Plan;
|
use proto::Plan;
|
||||||
use release_channel::AppVersion;
|
use release_channel::AppVersion;
|
||||||
|
@ -41,9 +41,9 @@ use ui::{TintColor, prelude::*};
|
||||||
use zed_llm_client::{
|
use zed_llm_client::{
|
||||||
CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, CURRENT_PLAN_HEADER_NAME, CompletionBody,
|
CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, CURRENT_PLAN_HEADER_NAME, CompletionBody,
|
||||||
CompletionRequestStatus, CountTokensBody, CountTokensResponse, EXPIRED_LLM_TOKEN_HEADER_NAME,
|
CompletionRequestStatus, CountTokensBody, CountTokensResponse, EXPIRED_LLM_TOKEN_HEADER_NAME,
|
||||||
MAX_LLM_MONTHLY_SPEND_REACHED_HEADER_NAME, MODEL_REQUESTS_RESOURCE_HEADER_VALUE,
|
MODEL_REQUESTS_RESOURCE_HEADER_VALUE, SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME,
|
||||||
SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME,
|
SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME, TOOL_USE_LIMIT_REACHED_HEADER_NAME,
|
||||||
TOOL_USE_LIMIT_REACHED_HEADER_NAME, ZED_VERSION_HEADER_NAME,
|
ZED_VERSION_HEADER_NAME,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::AllLanguageModelSettings;
|
use crate::AllLanguageModelSettings;
|
||||||
|
@ -589,13 +589,6 @@ impl CloudLanguageModel {
|
||||||
{
|
{
|
||||||
retries_remaining -= 1;
|
retries_remaining -= 1;
|
||||||
token = llm_api_token.refresh(&client).await?;
|
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
|
} else if status == StatusCode::FORBIDDEN
|
||||||
&& response
|
&& response
|
||||||
.headers()
|
.headers()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue