Improve Galaxy permissions, computer-use routing, and agent UX
This commit is contained in:
@@ -1415,10 +1415,6 @@ impl AISettingsPageView {
|
||||
|
||||
dropdown.set_items(
|
||||
vec![
|
||||
DropdownItem::new(
|
||||
"Agent decides",
|
||||
AISettingsPageAction::SetApplyCodeDiffs(ActionPermission::AgentDecides),
|
||||
),
|
||||
DropdownItem::new(
|
||||
"Always allow",
|
||||
AISettingsPageAction::SetApplyCodeDiffs(ActionPermission::AlwaysAllow),
|
||||
@@ -1449,10 +1445,6 @@ impl AISettingsPageView {
|
||||
dropdown.set_menu_width(AI_SETTINGS_DROPDOWN_WIDTH, ctx);
|
||||
dropdown.set_items(
|
||||
vec![
|
||||
DropdownItem::new(
|
||||
"Agent decides",
|
||||
AISettingsPageAction::SetReadFiles(ActionPermission::AgentDecides),
|
||||
),
|
||||
DropdownItem::new(
|
||||
"Always allow",
|
||||
AISettingsPageAction::SetReadFiles(ActionPermission::AlwaysAllow),
|
||||
@@ -1483,10 +1475,6 @@ impl AISettingsPageView {
|
||||
dropdown.set_menu_width(AI_SETTINGS_DROPDOWN_WIDTH, ctx);
|
||||
dropdown.set_items(
|
||||
vec![
|
||||
DropdownItem::new(
|
||||
"Agent decides",
|
||||
AISettingsPageAction::SetExecuteCommands(ActionPermission::AgentDecides),
|
||||
),
|
||||
DropdownItem::new(
|
||||
"Always allow",
|
||||
AISettingsPageAction::SetExecuteCommands(ActionPermission::AlwaysAllow),
|
||||
@@ -1551,10 +1539,6 @@ impl AISettingsPageView {
|
||||
dropdown.set_menu_width(AI_SETTINGS_DROPDOWN_WIDTH, ctx);
|
||||
dropdown.set_items(
|
||||
vec![
|
||||
DropdownItem::new(
|
||||
"Agent decides",
|
||||
AISettingsPageAction::SetMCPPermissions(ActionPermission::AgentDecides),
|
||||
),
|
||||
DropdownItem::new(
|
||||
"Always allow",
|
||||
AISettingsPageAction::SetMCPPermissions(ActionPermission::AlwaysAllow),
|
||||
@@ -2609,10 +2593,9 @@ impl AISettingsPageView {
|
||||
}
|
||||
|
||||
let active = match current_permission {
|
||||
ActionPermission::AgentDecides | ActionPermission::Unknown => 0,
|
||||
ActionPermission::AlwaysAllow => 1,
|
||||
ActionPermission::AlwaysAsk => 2,
|
||||
ActionPermission::GalaxyDecides => 3,
|
||||
ActionPermission::AlwaysAllow => 0,
|
||||
ActionPermission::AlwaysAsk | ActionPermission::Unknown => 1,
|
||||
ActionPermission::GalaxyDecides => 2,
|
||||
};
|
||||
|
||||
menu.set_selected_by_index(active, ctx);
|
||||
@@ -4748,9 +4731,7 @@ impl AgentsWidget {
|
||||
app,
|
||||
));
|
||||
|
||||
if execute_commands_setting == ActionPermission::AlwaysAsk
|
||||
|| execute_commands_setting == ActionPermission::AgentDecides
|
||||
{
|
||||
if execute_commands_setting == ActionPermission::AlwaysAsk {
|
||||
let command_allowlist =
|
||||
BlocklistAIPermissions::as_ref(app).get_execute_commands_allowlist(app, None);
|
||||
execute_commands_flex.add_child(
|
||||
@@ -5256,9 +5237,7 @@ impl AgentsWidget {
|
||||
);
|
||||
column.add_child(permission_setting);
|
||||
|
||||
if current_mcp_setting == ActionPermission::AlwaysAsk
|
||||
|| current_mcp_setting == ActionPermission::AgentDecides
|
||||
{
|
||||
if current_mcp_setting == ActionPermission::AlwaysAsk {
|
||||
let allowlist = self.render_mcp_list(
|
||||
"MCP allowlist",
|
||||
"Allow the Galaxy Agent to call these MCP servers.",
|
||||
@@ -5275,7 +5254,6 @@ impl AgentsWidget {
|
||||
|
||||
if current_mcp_setting == ActionPermission::AlwaysAllow
|
||||
|| current_mcp_setting == ActionPermission::GalaxyDecides
|
||||
|| current_mcp_setting == ActionPermission::AgentDecides
|
||||
{
|
||||
let denylist = self.render_mcp_list(
|
||||
"MCP denylist",
|
||||
|
||||
@@ -122,7 +122,11 @@ impl View for ExecutionProfileView {
|
||||
let computer_use_model = profile
|
||||
.computer_use_model
|
||||
.as_ref()
|
||||
.and_then(|id| llm_preferences.get_llm_info(id))
|
||||
.and_then(|id| {
|
||||
llm_preferences
|
||||
.get_computer_use_llm_choices(app)
|
||||
.find(|info| info.id == *id)
|
||||
})
|
||||
.map(|info| info.display_name.clone())
|
||||
.unwrap_or_else(|| "Auto".to_string());
|
||||
|
||||
@@ -224,9 +228,7 @@ impl View for ExecutionProfileView {
|
||||
),
|
||||
));
|
||||
|
||||
if profile.read_files == ActionPermission::AlwaysAsk
|
||||
|| profile.read_files == ActionPermission::AgentDecides
|
||||
{
|
||||
if profile.read_files == ActionPermission::AlwaysAsk {
|
||||
permissions_column.add_child(render_directory_allowlist(
|
||||
&profile,
|
||||
appearance,
|
||||
@@ -259,7 +261,7 @@ impl View for ExecutionProfileView {
|
||||
is_any_ai_enabled,
|
||||
));
|
||||
}
|
||||
ActionPermission::AgentDecides | ActionPermission::Unknown => {
|
||||
ActionPermission::Unknown => {
|
||||
permissions_column.add_child(render_command_allowlist(
|
||||
&profile,
|
||||
appearance,
|
||||
@@ -341,7 +343,7 @@ impl View for ExecutionProfileView {
|
||||
is_any_ai_enabled,
|
||||
));
|
||||
}
|
||||
ActionPermission::AgentDecides | ActionPermission::Unknown => {
|
||||
ActionPermission::Unknown => {
|
||||
permissions_column.add_child(render_mcp_allowlist(
|
||||
&profile,
|
||||
appearance,
|
||||
@@ -697,7 +699,6 @@ fn render_action_permission_line_with_icon(
|
||||
is_ai_enabled: bool,
|
||||
) -> Box<dyn Element> {
|
||||
let permission_text = match permission {
|
||||
ActionPermission::AgentDecides => "Agent decides",
|
||||
ActionPermission::AlwaysAllow => "Always allow",
|
||||
ActionPermission::AlwaysAsk => "Always ask",
|
||||
ActionPermission::GalaxyDecides => "Galaxy Decides",
|
||||
|
||||
Reference in New Issue
Block a user