agent: Add "max mode" toggle (#29549)

This PR adds a "max mode" toggle to the Agent panel, for models that
support it.

Only visible to folks in the `new-billing` feature flag.

Icon is just a placeholder.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2025-04-28 12:50:47 -04:00 committed by GitHub
parent e3c987e2fb
commit ce93961fe0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 87 additions and 1 deletions

View file

@ -240,6 +240,26 @@ pub trait LanguageModel: Send + Sync {
/// Whether this model supports tools.
fn supports_tools(&self) -> bool;
/// Returns whether this model supports "max mode";
fn supports_max_mode(&self) -> bool {
if self.provider_id().0 != ZED_CLOUD_PROVIDER_ID {
return false;
}
const MAX_MODE_CAPABLE_MODELS: &[CloudModel] = &[
CloudModel::Anthropic(anthropic::Model::Claude3_7Sonnet),
CloudModel::Anthropic(anthropic::Model::Claude3_7SonnetThinking),
];
for model in MAX_MODE_CAPABLE_MODELS {
if self.id().0 == model.id() {
return true;
}
}
false
}
fn tool_input_format(&self) -> LanguageModelToolSchemaFormat {
LanguageModelToolSchemaFormat::JsonSchema
}