llm 1.3.8

A Rust library unifying multiple LLM backends.
Documentation
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("?"),
        ),
        // Dialogue commands
        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,
        ),
    ]
}