diff --git a/crates/collab/src/llm/token.rs b/crates/collab/src/llm/token.rs index a550255ed8e33cbde1bcb50d5111b0d9a0e41054..b08230269c010cef4aafe70bc19e6c91fc5b4466 100644 --- a/crates/collab/src/llm/token.rs +++ b/crates/collab/src/llm/token.rs @@ -34,6 +34,10 @@ pub struct LlmTokenClaims { #[serde(default)] pub subscription_period: Option<(NaiveDateTime, NaiveDateTime)>, #[serde(default)] + pub enable_model_request_overages: bool, + #[serde(default)] + pub model_request_overages_spend_limit_in_cents: u32, + #[serde(default)] pub can_use_web_search_tool: bool, } @@ -75,6 +79,7 @@ impl LlmTokenClaims { can_use_web_search_tool: feature_flags.iter().any(|flag| flag == "assistant2"), has_llm_subscription: has_legacy_llm_subscription, max_monthly_spend_in_cents: billing_preferences + .as_ref() .map_or(DEFAULT_MAX_MONTHLY_SPEND.0, |preferences| { preferences.max_monthly_llm_usage_spending_in_cents as u32 }), @@ -96,6 +101,16 @@ impl LlmTokenClaims { Some((period_start_at.naive_utc(), period_end_at.naive_utc())) }), + enable_model_request_overages: billing_preferences + .as_ref() + .map_or(false, |preferences| { + preferences.model_request_overages_enabled + }), + model_request_overages_spend_limit_in_cents: billing_preferences + .as_ref() + .map_or(0, |preferences| { + preferences.model_request_overages_spend_limit_in_cents as u32 + }), }; Ok(jsonwebtoken::encode(