From 8b62dcb891b9989cb387510c5fe1e9b37c57fe9d Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Wed, 17 Sep 2025 11:41:45 -0600 Subject: [PATCH] agent2 --- crates/agent2/src/agent.rs | 12 ++++++++++-- crates/agent2/src/tools/grep_tool.rs | 2 +- crates/agent2/src/tools/list_directory_tool.rs | 8 ++++---- crates/agent2/src/tools/read_file_tool.rs | 13 ++++++------- .../agent_configuration/add_llm_provider_modal.rs | 1 + 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/crates/agent2/src/agent.rs b/crates/agent2/src/agent.rs index 0b7680c7afa8dfa2c963a6ff0423ebca2dcfb846..86fb50242c64917248df5c620782af066e639b54 100644 --- a/crates/agent2/src/agent.rs +++ b/crates/agent2/src/agent.rs @@ -20,7 +20,7 @@ use project::{Project, ProjectItem, ProjectPath, Worktree}; use prompt_store::{ ProjectContext, PromptId, PromptStore, RulesFileContext, UserRulesContext, WorktreeContext, }; -use settings::update_settings_file; +use settings::{LanguageModelSelection, update_settings_file}; use std::any::Any; use std::collections::HashMap; use std::path::{Path, PathBuf}; @@ -873,7 +873,15 @@ impl AgentModelSelector for NativeAgentConnection { }); update_settings_file(self.0.read(cx).fs.clone(), cx, move |settings, _cx| { - settings.agent.get_or_insert_default().set_model(model); + let provider = model.provider_id().0.to_string(); + let model = model.id().0.to_string(); + settings + .agent + .get_or_insert_default() + .set_model(LanguageModelSelection { + provider: provider.into(), + model, + }); }); Task::ready(Ok(())) diff --git a/crates/agent2/src/tools/grep_tool.rs b/crates/agent2/src/tools/grep_tool.rs index 8ede37e66b904cfafd91b357a6bfdb201757eb0a..a1cd088c858683429103670c604ed3e08d179483 100644 --- a/crates/agent2/src/tools/grep_tool.rs +++ b/crates/agent2/src/tools/grep_tool.rs @@ -308,7 +308,7 @@ mod tests { use super::*; use gpui::{TestAppContext, UpdateGlobal}; use language::{Language, LanguageConfig, LanguageMatcher}; - use project::{FakeFs, Project, WorktreeSettings}; + use project::{FakeFs, Project}; use serde_json::json; use settings::SettingsStore; use unindent::Unindent; diff --git a/crates/agent2/src/tools/list_directory_tool.rs b/crates/agent2/src/tools/list_directory_tool.rs index 80cffa1fecc805920ecbc99a0afdfc47e05ee654..41198269d69c17e028cca250069c2e1000ac8dfe 100644 --- a/crates/agent2/src/tools/list_directory_tool.rs +++ b/crates/agent2/src/tools/list_directory_tool.rs @@ -214,7 +214,7 @@ mod tests { use super::*; use gpui::{TestAppContext, UpdateGlobal}; use indoc::indoc; - use project::{FakeFs, Project, WorktreeSettings}; + use project::{FakeFs, Project}; use serde_json::json; use settings::SettingsStore; use util::path; @@ -565,10 +565,10 @@ mod tests { // Set global settings cx.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.file_scan_exclusions = + store.update_user_settings(cx, |settings| { + settings.project.worktree.file_scan_exclusions = Some(vec!["**/.git".to_string(), "**/node_modules".to_string()]); - settings.private_files = Some(vec!["**/.env".to_string()]); + settings.project.worktree.private_files = Some(vec!["**/.env".to_string()]); }); }); }); diff --git a/crates/agent2/src/tools/read_file_tool.rs b/crates/agent2/src/tools/read_file_tool.rs index 87163e769c26b0cee053fcf149d047fc451c470f..0d1913572cb663fc11cde2342edfc74be5b92ae0 100644 --- a/crates/agent2/src/tools/read_file_tool.rs +++ b/crates/agent2/src/tools/read_file_tool.rs @@ -587,15 +587,14 @@ mod test { cx.update(|cx| { use gpui::UpdateGlobal; - use project::WorktreeSettings; use settings::SettingsStore; SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.file_scan_exclusions = Some(vec![ + store.update_user_settings(cx, |settings| { + settings.project.worktree.file_scan_exclusions = Some(vec![ "**/.secretdir".to_string(), "**/.mymetadata".to_string(), ]); - settings.private_files = Some(vec![ + settings.project.worktree.private_files = Some(vec![ "**/.mysecrets".to_string(), "**/*.privatekey".to_string(), "**/*.mysensitive".to_string(), @@ -803,10 +802,10 @@ mod test { // Set global settings cx.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.file_scan_exclusions = + store.update_user_settings(cx, |settings| { + settings.project.worktree.file_scan_exclusions = Some(vec!["**/.git".to_string(), "**/node_modules".to_string()]); - settings.private_files = Some(vec!["**/.env".to_string()]); + settings.project.worktree.private_files = Some(vec!["**/.env".to_string()]); }); }); }); diff --git a/crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs b/crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs index 182831f488870997d175cce0ad7e1c94e392f1ea..080a32ca128a4563020eb35e4543c1a14e0df920 100644 --- a/crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs +++ b/crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs @@ -239,6 +239,7 @@ fn save_provider_to_settings( .map_err(|_| "Failed to write API key to keychain")?; cx.update(|cx| { update_settings_file::(fs, cx, |settings, _cx| { + settings.language_models.getO settings.openai_compatible.get_or_insert_default().insert( provider_name, OpenAiCompatibleSettingsContent {