assistant2: Define built-in agent profiles in the default settings (#27251)

This PR moves the definitions of the built-in agent profiles into the
default `settings.json`.

It also changes the behavior of how this setting is treated when merging
settings such that the set of profiles will be merged. This is so users
don't clobber the built-in profiles when adding profiles of their own.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2025-03-21 11:11:45 -04:00 committed by GitHub
parent 4e93e38b0a
commit f119550838
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 47 additions and 71 deletions

View file

@ -499,24 +499,21 @@ impl Settings for AssistantSettings {
&mut settings.enable_experimental_live_diffs,
value.enable_experimental_live_diffs,
);
merge(
&mut settings.profiles,
value.profiles.map(|profiles| {
profiles
.into_iter()
.map(|(id, profile)| {
(
id,
AgentProfile {
name: profile.name.into(),
tools: profile.tools,
context_servers: HashMap::default(),
},
)
})
.collect()
}),
);
if let Some(profiles) = value.profiles {
settings
.profiles
.extend(profiles.into_iter().map(|(id, profile)| {
(
id,
AgentProfile {
name: profile.name.into(),
tools: profile.tools,
context_servers: HashMap::default(),
},
)
}));
}
}
Ok(settings)