diff --git a/src/app/runtime/commands.rs b/src/app/runtime/commands.rs index 24b346e..395d280 100644 --- a/src/app/runtime/commands.rs +++ b/src/app/runtime/commands.rs @@ -69,6 +69,12 @@ pub fn apply_command(command: Command) -> Vec { Command::WorkflowRun { script } => { vec![Action::RunWorkflow { script }] } + Command::TodoOpen => { + vec![Action::OpenOverlay(Overlay::Todo)] + } + Command::UsageOpen => { + vec![Action::OpenOverlay(Overlay::Usage)] + } Command::Unknown(cmd) => { vec![Action::SystemNote { kind: "error".to_string(), diff --git a/src/app/state/misc.rs b/src/app/state/misc.rs index 35e1f9e..c967980 100644 --- a/src/app/state/misc.rs +++ b/src/app/state/misc.rs @@ -90,6 +90,8 @@ const COMMANDS: &[&str] = &[ "/model add", "/workflow", "/workflow run", + "/todo", + "/usage", "/compact", ]; diff --git a/src/controller/command.rs b/src/controller/command.rs index c5c5ad7..a37ab80 100644 --- a/src/controller/command.rs +++ b/src/controller/command.rs @@ -22,6 +22,8 @@ pub enum Command { WorkflowRun { script: String, }, + TodoOpen, + UsageOpen, Unknown(String), } @@ -75,6 +77,23 @@ pub fn parse_command(text: &str) -> Command { "/workflow" => Command::WorkflowRun { script: arg1.to_string(), }, + "/todo" => Command::TodoOpen, + "/usage" => Command::UsageOpen, _ => Command::Unknown(cmd.to_string()), } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parses_todo_open() { + assert_eq!(parse_command("/todo"), Command::TodoOpen); + } + + #[test] + fn parses_usage_open() { + assert_eq!(parse_command("/usage"), Command::UsageOpen); + } +} diff --git a/src/resources.rs b/src/resources.rs index 73f8584..06f3ca0 100644 --- a/src/resources.rs +++ b/src/resources.rs @@ -36,6 +36,8 @@ Input: /workflow Open workflow panel /workflow run

Run a workflow with prompt

/mode workflow Open workflow panel + /todo Open task list + /usage Open usage details /compact Compact conversation history /exit Exit application