Fix View Options popup not responding to clicks
Remove duplicate popup rendering from render_vertical_tabs_panel. The popup was rendered both inside the panel's stack AND at the workspace level in a Dismiss overlay, causing event dispatch conflicts due to shared MouseStateHandle instances between the two identical popup trees.
This commit is contained in:
+81
-77
@@ -25,7 +25,7 @@ use regex::Regex;
|
||||
use galaxy_core::execution_mode::AppExecutionMode;
|
||||
use galaxy_core::features::FeatureFlag;
|
||||
use settings::{
|
||||
define_settings_group, RespectUserSyncSetting, Setting, SupportedPlatforms, SyncToCloud,
|
||||
define_settings_group, Setting, SupportedPlatforms, SyncToCloud,
|
||||
};
|
||||
|
||||
use serde::{de::Deserializer, Deserialize, Serialize};
|
||||
@@ -311,7 +311,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
DefaultSessionMode,
|
||||
AISettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.default_session_mode",
|
||||
description: "The default mode for new terminal sessions.",
|
||||
@@ -361,7 +361,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
ThinkingDisplayMode,
|
||||
AISettings,
|
||||
SupportedPlatforms::ALL,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.thinking_display_mode",
|
||||
description: "Controls how agent thinking traces are displayed after streaming.",
|
||||
@@ -422,7 +422,7 @@ settings::macros::implement_setting_for_enum!(
|
||||
BedrockAuthMethod,
|
||||
AISettings,
|
||||
SupportedPlatforms::DESKTOP,
|
||||
SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.auth_method",
|
||||
description: "Authentication method for AWS Bedrock.",
|
||||
@@ -825,7 +825,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.is_any_ai_enabled",
|
||||
description: "Controls whether all AI features are enabled.",
|
||||
@@ -836,7 +836,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.enabled",
|
||||
description: "Controls whether proactive AI features like suggestions are enabled.",
|
||||
@@ -847,7 +847,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.ai_auto_detection_enabled",
|
||||
description: "Controls whether AI automatically detects natural language input.",
|
||||
@@ -861,7 +861,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.nld_in_terminal_enabled",
|
||||
description: "Controls whether natural language detection is enabled in the terminal input.",
|
||||
@@ -870,7 +870,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.ai_command_denylist",
|
||||
description: "Commands to exclude from AI natural language autodetection.",
|
||||
@@ -882,7 +882,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.use_local_model",
|
||||
description: "Use a locally downloaded AI model for command recognition and suggestions instead of Bedrock.",
|
||||
@@ -893,7 +893,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true, // TODO(roland): revisit this when launched to stable
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.intelligent_autosuggestions_enabled",
|
||||
description: "Controls whether AI-powered intelligent autosuggestions are enabled.",
|
||||
@@ -907,7 +907,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true, // TODO(advait): revisit this when launched to stable
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.agent_mode_query_suggestions_enabled",
|
||||
description: "Controls whether prompt suggestions are shown in agent mode.",
|
||||
@@ -919,7 +919,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.code_suggestions_enabled",
|
||||
description: "Controls whether AI code suggestions are enabled.",
|
||||
@@ -931,7 +931,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.natural_language_autosuggestions_enabled",
|
||||
description: "Controls whether ghosted text autosuggestions are shown for AI input queries.",
|
||||
@@ -944,7 +944,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.shared_block_title_generation_enabled",
|
||||
description: "Controls whether titles are auto-generated when sharing blocks.",
|
||||
@@ -955,7 +955,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.git_operations_autogen_enabled",
|
||||
description: "Controls whether AI auto-generates commit messages and PR title/body in the code review dialogs.",
|
||||
@@ -966,7 +966,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.active_ai.rule_suggestions_enabled",
|
||||
description: "Controls whether the agent suggests rules to save after responses.",
|
||||
@@ -978,7 +978,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.voice.voice_input_enabled",
|
||||
description: "Controls whether voice input is enabled for AI interactions.",
|
||||
@@ -990,7 +990,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: usize,
|
||||
default: 0,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// Whether or not the user has manually dismissed the voice input new feature popup.
|
||||
@@ -998,7 +998,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
// This field is used to store the key used for voice input toggling.
|
||||
@@ -1011,8 +1011,8 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
// Never sync to cloud to keep state separate across devices, since microphone access is per-device.
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never, // Never sync to cloud to keep state separate across devices, since microphone access is per-device.
|
||||
|
||||
private: true,
|
||||
},
|
||||
// Predicates that Agent Mode can use to decide if it can execute
|
||||
@@ -1024,7 +1024,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<AgentModeCommandExecutionPredicate>,
|
||||
default: DEFAULT_COMMAND_EXECUTION_ALLOWLIST.clone(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_command_execution_allowlist",
|
||||
description: "Commands that the agent can execute without explicit permission.",
|
||||
@@ -1038,7 +1038,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<AgentModeCommandExecutionPredicate>,
|
||||
default: DEFAULT_COMMAND_EXECUTION_DENYLIST.clone(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_command_execution_denylist",
|
||||
description: "Commands that the agent must always ask before executing.",
|
||||
@@ -1051,7 +1051,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_execute_readonly_commands",
|
||||
description: "Whether the agent can auto-execute read-only commands without asking.",
|
||||
@@ -1066,7 +1066,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: AgentModeCodingPermissionsType,
|
||||
default: AgentModeCodingPermissionsType::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_coding_permissions",
|
||||
description: "The file read permission level for the agent.",
|
||||
@@ -1082,7 +1082,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<PathBuf>,
|
||||
default: vec![],
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.profiles.agent_mode_coding_file_read_allowlist",
|
||||
description: "File paths the agent can read without asking for permission.",
|
||||
@@ -1095,7 +1095,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether or not we should show the speedbump for auto-executing readonly cmds.
|
||||
@@ -1106,7 +1106,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether or not we should show the speedbump for auto-writing to the PTY.
|
||||
@@ -1117,7 +1117,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether or not we should show the speedbump for auto-reading files.
|
||||
@@ -1128,7 +1128,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether direct Bedrock integration is enabled (client calls Bedrock API directly).
|
||||
@@ -1136,7 +1136,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.enabled",
|
||||
description: "Whether to use AWS Bedrock directly for AI requests.",
|
||||
@@ -1148,7 +1148,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: "default".to_string(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.profile",
|
||||
description: "The AWS profile name to use for Bedrock credentials.",
|
||||
@@ -1158,7 +1158,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.region",
|
||||
description: "AWS region for Bedrock API calls. Leave empty to auto-detect from profile.",
|
||||
@@ -1168,7 +1168,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.cross_region_inference",
|
||||
description: "Whether to automatically add cross-region inference prefixes to model IDs.",
|
||||
@@ -1178,7 +1178,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<BedrockModelConfig>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.models",
|
||||
description: "Custom AWS Bedrock model configurations.",
|
||||
@@ -1188,7 +1188,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.auto_login",
|
||||
description: "Whether to automatically run the login command when Bedrock credentials expire.",
|
||||
@@ -1198,7 +1198,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: "aws sso login".to_string(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.bedrock.auth_refresh_command",
|
||||
description: "The command to run to refresh AWS credentials for Bedrock.",
|
||||
@@ -1208,7 +1208,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// AWS secret access key for static key authentication (stored in OS keychain).
|
||||
@@ -1216,7 +1216,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether the Bedrock login banner has been permanently dismissed.
|
||||
@@ -1224,7 +1224,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
// Whether the OpenAI-compatible (LiteLLM) provider is enabled.
|
||||
@@ -1232,17 +1232,18 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.openai.enabled",
|
||||
description: "Whether to use an OpenAI-compatible endpoint (e.g. LiteLLM) for AI requests.",
|
||||
}
|
||||
// Base URL for the OpenAI-compatible API endpoint.
|
||||
// Never synced — machine-local infrastructure (e.g. localhost).
|
||||
openai_base_url: OpenAIBaseUrl {
|
||||
type: String,
|
||||
default: "http://localhost:4000/v1".to_string(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.openai.base_url",
|
||||
description: "Base URL for the OpenAI-compatible API endpoint (e.g. LiteLLM proxy).",
|
||||
@@ -1252,38 +1253,41 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.openai.api_key",
|
||||
description: "API key for the OpenAI-compatible endpoint (optional if proxy handles auth).",
|
||||
}
|
||||
// Model name to send to the OpenAI-compatible endpoint. Empty = use selected model ID.
|
||||
// Never synced — tied to the specific endpoint configuration.
|
||||
openai_model: OpenAIModel {
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.openai.model",
|
||||
description: "Model name to send to the OpenAI-compatible endpoint. Leave empty to use the selected model ID.",
|
||||
}
|
||||
// Custom OpenAI-compatible model configurations (fetched from LiteLLM or manually configured).
|
||||
// Never synced to cloud — these are machine-local (tied to local endpoints).
|
||||
openai_models: OpenAIModels {
|
||||
type: Vec<OpenAIModelConfig>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.openai.models",
|
||||
description: "Custom OpenAI-compatible model configurations (e.g. from LiteLLM).",
|
||||
}
|
||||
// Multiple OpenAI-compatible provider endpoints (LiteLLM, Ollama, vLLM, etc.).
|
||||
// Each provider has its own name, base_url, api_key, and model list.
|
||||
// Never synced to cloud — these are machine-local infrastructure configs.
|
||||
openai_providers: OpenAIProviders {
|
||||
type: Vec<OpenAIProviderConfig>,
|
||||
default: Vec::new(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "ai.providers",
|
||||
description: "Multiple OpenAI-compatible provider endpoints (e.g. LiteLLM, Ollama, local models).",
|
||||
@@ -1293,7 +1297,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.knowledge.rules_enabled",
|
||||
description: "Whether the agent uses your saved rules during requests.",
|
||||
@@ -1303,7 +1307,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.knowledge.warp_drive_context_enabled",
|
||||
description: "Whether Galaxy Drive context is included in AI requests.",
|
||||
@@ -1316,7 +1320,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<PathBuf>,
|
||||
default: vec![],
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1328,7 +1332,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Vec<PathBuf>,
|
||||
default: vec![],
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1339,7 +1343,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1348,7 +1352,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: AIRequestQuotaInfo,
|
||||
default: AIRequestQuotaInfo::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
|
||||
@@ -1360,7 +1364,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1368,7 +1372,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: Option<String>,
|
||||
default: None,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
},
|
||||
|
||||
@@ -1381,7 +1385,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1394,7 +1398,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1406,7 +1410,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "cloud_platform.third_party_api_keys.can_use_warp_credits_with_byok",
|
||||
description: "Whether Galaxy credits can be used even when providing your own API key.",
|
||||
@@ -1416,7 +1420,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.should_render_use_agent_toolbar_for_user_commands",
|
||||
description: "Whether to show the \"Use Agent\" footer for terminal commands.",
|
||||
@@ -1428,7 +1432,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.should_render_cli_agent_toolbar",
|
||||
description: "Whether to show the CLI agent footer for coding agent commands.",
|
||||
@@ -1440,7 +1444,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.auto_toggle_composer",
|
||||
description: "Whether CLI agent Rich Input automatically closes and reopens based on the agent's blocked state.",
|
||||
@@ -1452,7 +1456,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.auto_open_composer_on_cli_agent_start",
|
||||
description: "Whether CLI agent Rich Input automatically opens when a CLI agent session starts.",
|
||||
@@ -1466,7 +1470,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.auto_dismiss_composer_after_submit",
|
||||
description: "Whether CLI agent Rich Input automatically closes after the user submits a prompt.",
|
||||
@@ -1480,7 +1484,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: ToolbarCommandMap,
|
||||
default: ToolbarCommandMap::default(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.third_party.cli_agent_toolbar_enabled_commands",
|
||||
max_table_depth: 1,
|
||||
@@ -1497,7 +1501,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1512,7 +1516,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1522,7 +1526,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1533,7 +1537,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1548,7 +1552,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: String,
|
||||
default: String::new(),
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "general.default_tab_config_path",
|
||||
}
|
||||
@@ -1561,7 +1565,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.mcp_servers.file_based_mcp_enabled",
|
||||
description: "Whether third-party file-based MCP servers are automatically detected.",
|
||||
@@ -1577,7 +1581,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.input.include_agent_commands_in_history",
|
||||
description: "Whether agent-executed commands are included in command history.",
|
||||
@@ -1588,7 +1592,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.show_conversation_history",
|
||||
description: "Whether conversation history appears in the tools panel.",
|
||||
@@ -1600,7 +1604,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.show_agent_notifications",
|
||||
description: "Whether agent notifications are shown.",
|
||||
@@ -1613,7 +1617,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: HashMap<String, bool>,
|
||||
default: HashMap::default(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1625,7 +1629,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: HashMap<String, String>,
|
||||
default: HashMap::default(),
|
||||
supported_platforms: SupportedPlatforms::DESKTOP,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
|
||||
@@ -1637,7 +1641,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: true,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: false,
|
||||
toml_path: "agents.warp_agent.other.agent_attribution_enabled",
|
||||
description: "Whether the Galaxy Agent adds an attribution co-author line to commit messages and pull requests it creates.",
|
||||
@@ -1650,7 +1654,7 @@ define_settings_group!(AISettings, settings: [
|
||||
type: bool,
|
||||
default: false,
|
||||
supported_platforms: SupportedPlatforms::ALL,
|
||||
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
|
||||
sync_to_cloud: SyncToCloud::Never,
|
||||
private: true,
|
||||
}
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user