use super::{SlashCategory, SlashCommand, SlashCommandId};
pub(super) fn default_commands() -> Vec<SlashCommand> {
vec![
SlashCommand::new(
SlashCommandId::Model,
"model",
"Change model for this session",
SlashCategory::ModelProvider,
None,
),
SlashCommand::new(
SlashCommandId::Provider,
"provider",
"Switch provider for this session",
SlashCategory::ModelProvider,
Some("Ctrl+P"),
),
SlashCommand::new(
SlashCommandId::New,
"new",
"Start a new conversation",
SlashCategory::Sessions,
Some("Ctrl+N"),
),
SlashCommand::new(
SlashCommandId::Save,
"save",
"Save the current conversation",
SlashCategory::Sessions,
Some("Ctrl+S"),
),
SlashCommand::new(
SlashCommandId::Load,
"load",
"Open a saved conversation",
SlashCategory::Sessions,
Some("Ctrl+O"),
),
SlashCommand::new(
SlashCommandId::List,
"list",
"List saved conversations",
SlashCategory::Sessions,
Some("Ctrl+O"),
),
SlashCommand::new(
SlashCommandId::Resume,
"resume",
"Resume a saved conversation",
SlashCategory::Sessions,
Some("Ctrl+O"),
),
SlashCommand::new(
SlashCommandId::Branches,
"branches",
"Show conversation branches",
SlashCategory::Sessions,
None,
),
SlashCommand::new(
SlashCommandId::Config,
"config",
"Open configuration actions",
SlashCategory::Configuration,
None,
),
SlashCommand::new(
SlashCommandId::Theme,
"theme",
"Switch UI theme",
SlashCategory::Configuration,
None,
),
SlashCommand::new(
SlashCommandId::Mode,
"mode",
"Switch navigation mode",
SlashCategory::Configuration,
None,
),
SlashCommand::new(
SlashCommandId::Copy,
"copy",
"Copy the selected message",
SlashCategory::MessageActions,
Some("y"),
),
SlashCommand::new(
SlashCommandId::Edit,
"edit",
"Edit the last user message",
SlashCategory::MessageActions,
Some("e"),
),
SlashCommand::new(
SlashCommandId::Regenerate,
"regenerate",
"Regenerate the last response",
SlashCategory::MessageActions,
Some("r"),
),
SlashCommand::new(
SlashCommandId::Delete,
"delete",
"Delete the selected message",
SlashCategory::MessageActions,
Some("d"),
),
SlashCommand::new(
SlashCommandId::Undo,
"undo",
"Restore an earlier conversation state",
SlashCategory::MessageActions,
Some("Ctrl+Z"),
),
SlashCommand::new(
SlashCommandId::Status,
"status",
"Show context usage details",
SlashCategory::Context,
None,
),
SlashCommand::new(
SlashCommandId::Summarize,
"summarize",
"Summarize earlier messages",
SlashCategory::Context,
None,
),
SlashCommand::new(
SlashCommandId::Compact,
"compact",
"Compact the conversation context",
SlashCategory::Context,
None,
),
SlashCommand::new(
SlashCommandId::Skill,
"skill",
"Activate a skill",
SlashCategory::Skills,
None,
),
SlashCommand::new(
SlashCommandId::Tool,
"tool",
"Manage custom tools",
SlashCategory::Tools,
None,
),
SlashCommand::new(
SlashCommandId::ToolAdd,
"tool-add",
"Create a new custom tool",
SlashCategory::Tools,
None,
),
SlashCommand::new(
SlashCommandId::ToolList,
"tools",
"List available tools",
SlashCategory::Tools,
None,
),
SlashCommand::with_arg(
SlashCommandId::ToolRemove,
"tool-remove",
"Remove a custom tool",
SlashCategory::Tools,
"<tool_name>",
),
SlashCommand::new(
SlashCommandId::Help,
"help",
"Show help",
SlashCategory::Help,
Some("?"),
),
SlashCommand::new(
SlashCommandId::Keys,
"keys",
"Show keybindings",
SlashCategory::Help,
Some("?"),
),
SlashCommand::with_arg(
SlashCommandId::Multi,
"multi",
"Start multi-LLM dialogue",
SlashCategory::Dialogue,
"@provider:model @provider:model",
),
SlashCommand::with_arg(
SlashCommandId::Invite,
"invite",
"Invite a participant to dialogue",
SlashCategory::Dialogue,
"@provider:model",
),
SlashCommand::with_arg(
SlashCommandId::Kick,
"kick",
"Remove participant from dialogue",
SlashCategory::Dialogue,
"<name>",
),
SlashCommand::new(
SlashCommandId::Stop,
"stop",
"Stop the current dialogue",
SlashCategory::Dialogue,
None,
),
SlashCommand::new(
SlashCommandId::Continue,
"continue",
"Continue dialogue with next participant",
SlashCategory::Dialogue,
None,
),
]
}